@univerjs/engine-formula 0.4.2 → 0.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +1 -0
- package/lib/cjs/index.js +2 -2
- package/lib/es/facade.js +79 -0
- package/lib/es/index.js +24016 -21692
- package/lib/types/basics/common.d.ts +6 -2
- package/lib/types/basics/format.d.ts +2 -15
- package/lib/types/basics/math.d.ts +3 -0
- package/lib/types/basics/statistical.d.ts +19 -3
- package/lib/types/commands/mutations/set-other-formula.mutation.d.ts +2 -2
- package/lib/types/controller/calculate.controller.d.ts +2 -2
- package/lib/types/engine/analysis/parser.d.ts +0 -2
- package/lib/types/engine/ast-node/base-ast-node.d.ts +1 -0
- package/lib/types/engine/ast-node/function-node.d.ts +5 -2
- package/lib/types/engine/ast-node/operator-node.d.ts +1 -2
- package/lib/types/engine/ast-node/prefix-node.d.ts +6 -5
- package/lib/types/engine/ast-node/reference-node.d.ts +8 -10
- package/lib/types/engine/ast-node/suffix-node.d.ts +8 -5
- package/lib/types/engine/ast-node/union-node.d.ts +1 -2
- package/lib/types/engine/ast-node/value-node.d.ts +1 -2
- package/lib/types/engine/dependency/dependency-tree.d.ts +85 -38
- package/lib/types/engine/dependency/formula-dependency.d.ts +45 -36
- package/lib/types/engine/interpreter/interpreter.d.ts +3 -3
- package/lib/types/engine/utils/array-object.d.ts +1 -1
- package/lib/types/engine/utils/ast-node-tool.d.ts +1 -1
- package/lib/types/engine/utils/generate-ast-node.d.ts +8 -0
- package/lib/types/engine/utils/prefixHandler.d.ts +3 -2
- package/lib/types/engine/utils/value-object.d.ts +9 -1
- package/lib/types/engine/value-object/__tests__/array-inverted-index-cache.spec.d.ts +16 -0
- package/lib/types/engine/value-object/__tests__/array-inverted-index-cache2.spec.d.ts +16 -0
- package/lib/types/engine/value-object/cube-value-object.d.ts +1 -0
- package/lib/types/engine/value-object/lambda-value-object.d.ts +3 -1
- package/lib/types/engine/value-object/primitive-object.d.ts +0 -1
- package/lib/types/facade/f-formula.d.ts +31 -0
- package/lib/types/facade/f-univer.d.ts +9 -0
- package/lib/types/facade/index.d.ts +17 -0
- package/lib/types/functions/base-function.d.ts +14 -0
- package/lib/types/functions/compatibility/hypgeomdist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/compatibility/hypgeomdist/index.d.ts +8 -0
- package/lib/types/functions/compatibility/lognormdist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/compatibility/lognormdist/index.d.ts +8 -0
- package/lib/types/functions/compatibility/negbinomdist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/compatibility/negbinomdist/index.d.ts +8 -0
- package/lib/types/functions/compatibility/tdist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/compatibility/tdist/index.d.ts +8 -0
- package/lib/types/functions/financial/fv/index.d.ts +1 -1
- package/lib/types/functions/financial/ipmt/index.d.ts +1 -1
- package/lib/types/functions/financial/pmt/index.d.ts +1 -1
- package/lib/types/functions/financial/ppmt/index.d.ts +1 -1
- package/lib/types/functions/financial/pv/index.d.ts +1 -1
- package/lib/types/functions/lookup/formulatext/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/lookup/formulatext/index.d.ts +10 -0
- package/lib/types/functions/lookup/lookup/index.d.ts +1 -1
- package/lib/types/functions/math/mmult/index.d.ts +0 -1
- package/lib/types/functions/math/randarray/index.d.ts +1 -0
- package/lib/types/functions/math/sequence/index.d.ts +2 -1
- package/lib/types/functions/statistical/frequency/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/frequency/index.d.ts +9 -0
- package/lib/types/functions/statistical/gamma/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/gamma/index.d.ts +8 -0
- package/lib/types/functions/statistical/gamma-dist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/gamma-dist/index.d.ts +8 -0
- package/lib/types/functions/statistical/gamma-inv/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/gamma-inv/index.d.ts +8 -0
- package/lib/types/functions/statistical/gammaln/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/gammaln/index.d.ts +8 -0
- package/lib/types/functions/statistical/gauss/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/gauss/index.d.ts +8 -0
- package/lib/types/functions/statistical/geomean/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/geomean/index.d.ts +7 -0
- package/lib/types/functions/statistical/growth/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/growth/index.d.ts +16 -0
- package/lib/types/functions/statistical/harmean/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/harmean/index.d.ts +7 -0
- package/lib/types/functions/statistical/hypgeom-dist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/hypgeom-dist/index.d.ts +8 -0
- package/lib/types/functions/statistical/kurt/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/kurt/index.d.ts +8 -0
- package/lib/types/functions/statistical/large/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/large/index.d.ts +9 -0
- package/lib/types/functions/statistical/lognorm-dist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/lognorm-dist/index.d.ts +8 -0
- package/lib/types/functions/statistical/lognorm-inv/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/lognorm-inv/index.d.ts +8 -0
- package/lib/types/functions/statistical/median/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/median/index.d.ts +8 -0
- package/lib/types/functions/statistical/mode-mult/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/mode-mult/index.d.ts +8 -0
- package/lib/types/functions/statistical/mode-sngl/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/mode-sngl/index.d.ts +8 -0
- package/lib/types/functions/statistical/negbinom-dist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/negbinom-dist/index.d.ts +8 -0
- package/lib/types/functions/statistical/pearson/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/pearson/index.d.ts +8 -0
- package/lib/types/functions/statistical/percentile-exc/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/percentile-exc/index.d.ts +9 -0
- package/lib/types/functions/statistical/percentile-inc/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/percentile-inc/index.d.ts +9 -0
- package/lib/types/functions/statistical/percentrank-exc/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/percentrank-exc/index.d.ts +9 -0
- package/lib/types/functions/statistical/percentrank-inc/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/percentrank-inc/index.d.ts +9 -0
- package/lib/types/functions/statistical/permut/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/permut/index.d.ts +7 -0
- package/lib/types/functions/statistical/permutationa/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/permutationa/index.d.ts +7 -0
- package/lib/types/functions/statistical/phi/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/phi/index.d.ts +8 -0
- package/lib/types/functions/statistical/poisson-dist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/poisson-dist/index.d.ts +8 -0
- package/lib/types/functions/statistical/prob/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/prob/index.d.ts +9 -0
- package/lib/types/functions/statistical/quartile-exc/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/quartile-exc/index.d.ts +9 -0
- package/lib/types/functions/statistical/quartile-inc/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/quartile-inc/index.d.ts +9 -0
- package/lib/types/functions/statistical/rsq/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/rsq/index.d.ts +8 -0
- package/lib/types/functions/statistical/skew/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/skew/index.d.ts +8 -0
- package/lib/types/functions/statistical/skew-p/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/skew-p/index.d.ts +8 -0
- package/lib/types/functions/statistical/slope/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/slope/index.d.ts +8 -0
- package/lib/types/functions/statistical/small/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/small/index.d.ts +9 -0
- package/lib/types/functions/statistical/standardize/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/standardize/index.d.ts +8 -0
- package/lib/types/functions/statistical/steyx/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/steyx/index.d.ts +8 -0
- package/lib/types/functions/statistical/t-dist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/t-dist/index.d.ts +8 -0
- package/lib/types/functions/statistical/t-dist-2t/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/t-dist-2t/index.d.ts +8 -0
- package/lib/types/functions/statistical/t-dist-rt/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/t-dist-rt/index.d.ts +8 -0
- package/lib/types/functions/statistical/t-inv/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/t-inv/index.d.ts +8 -0
- package/lib/types/functions/statistical/t-inv-2t/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/t-inv-2t/index.d.ts +8 -0
- package/lib/types/functions/statistical/t-test/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/t-test/index.d.ts +14 -0
- package/lib/types/functions/statistical/trimmean/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/trimmean/index.d.ts +9 -0
- package/lib/types/functions/statistical/weibull-dist/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/weibull-dist/index.d.ts +8 -0
- package/lib/types/functions/statistical/z-test/__tests__/index.spec.d.ts +16 -0
- package/lib/types/functions/statistical/z-test/index.d.ts +9 -0
- package/lib/types/functions/text/exact/index.d.ts +1 -1
- package/lib/types/functions/text/find/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/find/index.d.ts +8 -0
- package/lib/types/functions/text/findb/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/findb/index.d.ts +8 -0
- package/lib/types/functions/text/function-map.d.ts +1 -2
- package/lib/types/functions/text/left/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/left/index.d.ts +8 -0
- package/lib/types/functions/text/lower/index.d.ts +2 -3
- package/lib/types/functions/text/mid/index.d.ts +2 -2
- package/lib/types/functions/text/midb/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/midb/index.d.ts +8 -0
- package/lib/types/functions/text/proper/index.d.ts +1 -1
- package/lib/types/functions/text/replace/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/replace/index.d.ts +8 -0
- package/lib/types/functions/text/replaceb/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/replaceb/index.d.ts +8 -0
- package/lib/types/functions/text/search/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/search/index.d.ts +8 -0
- package/lib/types/functions/text/searchb/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/searchb/index.d.ts +8 -0
- package/lib/types/functions/text/t/index.d.ts +1 -1
- package/lib/types/functions/text/textjoin/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/textjoin/index.d.ts +10 -0
- package/lib/types/functions/text/trim/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/trim/index.d.ts +8 -0
- package/lib/types/functions/text/upper/__test__/index.spec.d.ts +16 -0
- package/lib/types/functions/text/upper/index.d.ts +8 -0
- package/lib/types/index.d.ts +13 -2
- package/lib/types/models/formula-data.model.d.ts +6 -1
- package/lib/types/plugin.d.ts +3 -2
- package/lib/types/services/calculate-formula.service.d.ts +25 -14
- package/lib/types/services/current-data.service.d.ts +8 -0
- package/lib/types/services/dependency-manager.service.d.ts +70 -69
- package/lib/types/services/other-formula-manager.service.d.ts +4 -4
- package/lib/types/services/runtime.service.d.ts +2 -2
- package/lib/umd/facade.js +1 -0
- package/lib/umd/index.js +2 -2
- package/package.json +21 -11
package/lib/cjs/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),rxjs=require("rxjs"),rpc=require("@univerjs/rpc");var BooleanValue=(BooleanValue2=>(BooleanValue2.FALSE="FALSE",BooleanValue2.TRUE="TRUE",BooleanValue2))(BooleanValue||{}),AstNodePromiseType=(AstNodePromiseType2=>(AstNodePromiseType2[AstNodePromiseType2.SUCCESS=0]="SUCCESS",AstNodePromiseType2[AstNodePromiseType2.ERROR=1]="ERROR",AstNodePromiseType2))(AstNodePromiseType||{}),ConcatenateType=(ConcatenateType2=>(ConcatenateType2[ConcatenateType2.FRONT=0]="FRONT",ConcatenateType2[ConcatenateType2.BACK=1]="BACK",ConcatenateType2))(ConcatenateType||{});function isInDirtyRange(dirtyRanges,unitId,sheetId,row,column){for(let i=0,len=dirtyRanges.length;i<len;i++){const dirtyRange=dirtyRanges[i];if(unitId!==dirtyRange.unitId||sheetId!==dirtyRange.sheetId)continue;const{startRow,startColumn,endRow,endColumn}=dirtyRange.range;if(row>=startRow&&row<=endRow&&column>=startColumn&&column<=endColumn)return!0}return!1}__name(isInDirtyRange,"isInDirtyRange");var ErrorType$1=(ErrorType2=>(ErrorType2.DIV_BY_ZERO="#DIV/0!",ErrorType2.NAME="#NAME?",ErrorType2.VALUE="#VALUE!",ErrorType2.NUM="#NUM!",ErrorType2.NA="#N/A",ErrorType2.CYCLE="#CYCLE!",ErrorType2.REF="#REF!",ErrorType2.SPILL="#SPILL!",ErrorType2.CALC="#CALC!",ErrorType2.ERROR="#ERROR!",ErrorType2.CONNECT="#GETTING_DATA",ErrorType2.NULL="#NULL!",ErrorType2))(ErrorType$1||{});const ERROR_TYPE_SET=new Set(Object.values(ErrorType$1)),ERROR_TYPE_COUNT_ARRAY=[...new Set(Object.values(ErrorType$1).map(error=>error.length))];var FunctionType=(FunctionType2=>(FunctionType2[FunctionType2.Financial=0]="Financial",FunctionType2[FunctionType2.Date=1]="Date",FunctionType2[FunctionType2.Math=2]="Math",FunctionType2[FunctionType2.Statistical=3]="Statistical",FunctionType2[FunctionType2.Lookup=4]="Lookup",FunctionType2[FunctionType2.Database=5]="Database",FunctionType2[FunctionType2.Text=6]="Text",FunctionType2[FunctionType2.Logical=7]="Logical",FunctionType2[FunctionType2.Information=8]="Information",FunctionType2[FunctionType2.Engineering=9]="Engineering",FunctionType2[FunctionType2.Cube=10]="Cube",FunctionType2[FunctionType2.Compatibility=11]="Compatibility",FunctionType2[FunctionType2.Web=12]="Web",FunctionType2[FunctionType2.Array=13]="Array",FunctionType2[FunctionType2.Univer=14]="Univer",FunctionType2[FunctionType2.User=15]="User",FunctionType2[FunctionType2.DefinedName=16]="DefinedName",FunctionType2))(FunctionType||{}),operatorToken=(operatorToken2=>(operatorToken2.PLUS="+",operatorToken2.MINUS="-",operatorToken2.MULTIPLY="*",operatorToken2.DIVIDED="/",operatorToken2.CONCATENATE="&",operatorToken2.POWER="^",operatorToken2.EQUALS="=",operatorToken2.NOT_EQUAL="<>",operatorToken2.GREATER_THAN=">",operatorToken2.GREATER_THAN_OR_EQUAL=">=",operatorToken2.LESS_THAN="<",operatorToken2.LESS_THAN_OR_EQUAL="<=",operatorToken2))(operatorToken||{}),compareToken=(compareToken2=>(compareToken2.EQUALS="=",compareToken2.NOT_EQUAL="<>",compareToken2.GREATER_THAN=">",compareToken2.GREATER_THAN_OR_EQUAL=">=",compareToken2.LESS_THAN="<",compareToken2.LESS_THAN_OR_EQUAL="<=",compareToken2))(compareToken||{});const OPERATOR_TOKEN_PRIORITY=new Map([["<>",4],["<",4],[">=",4],["=",4],[">",4],["<=",4],["&",3],["+",2],["-",2],["/",1],["*",1],["^",0]]),OPERATOR_TOKEN_SET=new Set(OPERATOR_TOKEN_PRIORITY.keys()),OPERATOR_TOKEN_COMPARE_SET=new Set(["=","<>",">",">=","<","<="]);var matchToken=(matchToken2=>(matchToken2.OPEN_BRACKET="(",matchToken2.CLOSE_BRACKET=")",matchToken2.COMMA=",",matchToken2.SINGLE_QUOTATION="'",matchToken2.DOUBLE_QUOTATION='"',matchToken2.OPEN_BRACES="{",matchToken2.CLOSE_BRACES="}",matchToken2.COLON=":",matchToken2.OPEN_SQUARE_BRACKET="[",matchToken2.CLOSE_SQUARE_BRACKET="]",matchToken2))(matchToken||{}),suffixToken=(suffixToken2=>(suffixToken2.PERCENTAGE="%",suffixToken2.POUND="#",suffixToken2))(suffixToken||{});const SUFFIX_TOKEN_SET=new Set(["%","#"]);var prefixToken=(prefixToken2=>(prefixToken2.AT="@",prefixToken2.MINUS="-",prefixToken2.PLUS="+",prefixToken2))(prefixToken||{});const SPACE_TOKEN=" ",FORMULA_LEXER_TOKENS=[...Object.values(compareToken),...Object.values(operatorToken),...Object.values(matchToken),...Object.values(suffixToken),...Object.values(prefixToken)];function isFormulaLexerToken(str){return FORMULA_LEXER_TOKENS.includes(str)}__name(isFormulaLexerToken,"isFormulaLexerToken");function includeFormulaLexerToken(str){for(const token of FORMULA_LEXER_TOKENS)if(str.indexOf(token)>-1)return!0;return!1}__name(includeFormulaLexerToken,"includeFormulaLexerToken");function normalizeSheetName(sheetName){return sheetName[0]==="'"&&sheetName[sheetName.length-1]==="'"?sheetName.substring(1,sheetName.length-1):sheetName}__name(normalizeSheetName,"normalizeSheetName");function matchRefDrawToken(char){return isFormulaLexerToken(char)&&char!==matchToken.CLOSE_BRACES&&char!==matchToken.CLOSE_BRACKET&&char!==matchToken.SINGLE_QUOTATION&&char!==matchToken.DOUBLE_QUOTATION||char===" "}__name(matchRefDrawToken,"matchRefDrawToken");const TOKEN_CANNOT_BE_AT_END_SET=new Set([operatorToken.PLUS,operatorToken.MINUS,operatorToken.MULTIPLY,operatorToken.DIVIDED,operatorToken.CONCATENATE,operatorToken.POWER,operatorToken.EQUALS,operatorToken.NOT_EQUAL,operatorToken.GREATER_THAN,operatorToken.GREATER_THAN_OR_EQUAL,operatorToken.LESS_THAN,operatorToken.LESS_THAN_OR_EQUAL,matchToken.OPEN_BRACKET,matchToken.COMMA,matchToken.COLON,matchToken.OPEN_BRACES,matchToken.OPEN_SQUARE_BRACKET]);function isTokenCannotBeAtEnd(token){return TOKEN_CANNOT_BE_AT_END_SET.has(token)}__name(isTokenCannotBeAtEnd,"isTokenCannotBeAtEnd");const TOKEN_CANNOT_PRECEDE_SUFFIX_TOKEN_SET=new Set([operatorToken.PLUS,operatorToken.MINUS,operatorToken.MULTIPLY,operatorToken.DIVIDED,operatorToken.CONCATENATE,operatorToken.POWER,operatorToken.EQUALS,operatorToken.NOT_EQUAL,operatorToken.GREATER_THAN,operatorToken.GREATER_THAN_OR_EQUAL,operatorToken.LESS_THAN,operatorToken.LESS_THAN_OR_EQUAL,matchToken.OPEN_BRACKET,matchToken.COMMA,matchToken.COLON,matchToken.OPEN_BRACES,matchToken.OPEN_SQUARE_BRACKET,suffixToken.PERCENTAGE,suffixToken.POUND]);function isTokenCannotPrecedeSuffixToken(token){return TOKEN_CANNOT_PRECEDE_SUFFIX_TOKEN_SET.has(token)}__name(isTokenCannotPrecedeSuffixToken,"isTokenCannotPrecedeSuffixToken");function convertUnitDataToRuntime(unitData){const arrayFormulaCellData={};return Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;arrayFormulaCellData[unitId]==null&&(arrayFormulaCellData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{const cellData=sheetData[sheetId];arrayFormulaCellData[unitId][sheetId]=new core.ObjectMatrix(cellData)})}),arrayFormulaCellData}__name(convertUnitDataToRuntime,"convertUnitDataToRuntime");function convertRuntimeToUnitData(unitData){const unitPrimitiveData={};return Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;unitPrimitiveData[unitId]==null&&(unitPrimitiveData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{const cellData=sheetData[sheetId];unitPrimitiveData[unitId][sheetId]=cellData.getData()})}),unitPrimitiveData}__name(convertRuntimeToUnitData,"convertRuntimeToUnitData");const UNIT_NAME_REGEX='\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]',UNIT_NAME_REGEX_PRECOMPILING=new RegExp(UNIT_NAME_REGEX),SHEET_NAME_REGEX="((?![\\[\\]\\/?*\\\\]).)*!",ABSOLUTE_SYMBOL="$",RANGE_SYMBOL="\\s*?:\\s*?",COLUMN_REGEX="[A-Za-z]+",ROW_REGEX="[1-9][0-9]*",UNIT_NAME_SHEET_NAME_REGEX=`'?(${UNIT_NAME_REGEX})?(${SHEET_NAME_REGEX})?'?`,SIMPLE_SINGLE_RANGE_REGEX=`\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}`,REFERENCE_MULTIPLE_RANGE_REGEX=`^(${prefixToken.AT})?${UNIT_NAME_SHEET_NAME_REGEX}${SIMPLE_SINGLE_RANGE_REGEX}${RANGE_SYMBOL}${SIMPLE_SINGLE_RANGE_REGEX}$`,REFERENCE_MULTIPLE_RANGE_REGEX_PRECOMPILING=new RegExp(REFERENCE_MULTIPLE_RANGE_REGEX),REFERENCE_SINGLE_RANGE_REGEX=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?${SIMPLE_SINGLE_RANGE_REGEX}(${suffixToken.POUND})?$`,REFERENCE_SINGLE_RANGE_REGEX_PRECOMPILING=new RegExp(REFERENCE_SINGLE_RANGE_REGEX),REFERENCE_REGEX_ROW=`^${UNIT_NAME_SHEET_NAME_REGEX}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}${RANGE_SYMBOL}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}$`,REFERENCE_REGEX_ROW_PRECOMPILING=new RegExp(REFERENCE_REGEX_ROW),REFERENCE_REGEX_COLUMN=`^${UNIT_NAME_SHEET_NAME_REGEX}\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}${RANGE_SYMBOL}\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}$`,REFERENCE_REGEX_COLUMN_PRECOMPILING=new RegExp(REFERENCE_REGEX_COLUMN),REFERENCE_REGEX_SINGLE_ROW=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}$`,REFERENCE_REGEX_SINGLE_ROW_PRECOMPILING=new RegExp(REFERENCE_REGEX_SINGLE_ROW),REFERENCE_REGEX_SINGLE_COLUMN=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}$`,REFERENCE_REGEX_SINGLE_COLUMN_PRECOMPILING=new RegExp(REFERENCE_REGEX_SINGLE_COLUMN),ARRAY_VALUE_REGEX="{.*?}",ARRAY_VALUE_REGEX_PRECOMPILING=new RegExp(ARRAY_VALUE_REGEX,"g");function regexTestSingeRange(token){return REFERENCE_SINGLE_RANGE_REGEX_PRECOMPILING.lastIndex=0,REFERENCE_SINGLE_RANGE_REGEX_PRECOMPILING.test(token)}__name(regexTestSingeRange,"regexTestSingeRange");function regexTestMultipleRange(token){return REFERENCE_MULTIPLE_RANGE_REGEX_PRECOMPILING.lastIndex=0,REFERENCE_MULTIPLE_RANGE_REGEX_PRECOMPILING.test(token)}__name(regexTestMultipleRange,"regexTestMultipleRange");function regexTestRow(token){return REFERENCE_REGEX_ROW_PRECOMPILING.lastIndex=0,REFERENCE_REGEX_ROW_PRECOMPILING.test(token)}__name(regexTestRow,"regexTestRow");function regexTestColumn(token){return REFERENCE_REGEX_COLUMN_PRECOMPILING.lastIndex=0,REFERENCE_REGEX_COLUMN_PRECOMPILING.test(token)}__name(regexTestColumn,"regexTestColumn");function regexTestSingleRow(token){return REFERENCE_REGEX_SINGLE_ROW_PRECOMPILING.lastIndex=0,REFERENCE_REGEX_SINGLE_ROW_PRECOMPILING.test(token)}__name(regexTestSingleRow,"regexTestSingleRow");function regexTestSingleColumn(token){return REFERENCE_REGEX_SINGLE_COLUMN_PRECOMPILING.lastIndex=0,REFERENCE_REGEX_SINGLE_COLUMN_PRECOMPILING.test(token)}__name(regexTestSingleColumn,"regexTestSingleColumn");function regexTestArrayValue(token){return ARRAY_VALUE_REGEX_PRECOMPILING.lastIndex=0,ARRAY_VALUE_REGEX_PRECOMPILING.test(token)}__name(regexTestArrayValue,"regexTestArrayValue");function isReferenceString(refString){return regexTestSingeRange(refString)||regexTestMultipleRange(refString)||regexTestRow(refString)||regexTestColumn(refString)}__name(isReferenceString,"isReferenceString");const RegisterFunctionMutation={id:"formula.mutation.register-function",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetArrayFormulaDataMutation={id:"formula.mutation.set-array-formula-data",type:core.CommandType.MUTATION,handler:__name((accessor,params)=>!0,"handler")},$ROW_REGEX=/[^0-9]/g,$COLUMN_REGEX=/[^A-Za-z]/g;function getAbsoluteRefTypeWithSingleString(singleRefString){let isColumnAbsolute=singleRefString[0]==="$";const remainChar=singleRefString.substring(1);let isRowAbsolute=remainChar.indexOf("$")>-1;return core.Tools.isStringNumber(remainChar)&&isColumnAbsolute&&!isRowAbsolute&&(isColumnAbsolute=!1,isRowAbsolute=!0),isColumnAbsolute&&isRowAbsolute?core.AbsoluteRefType.ALL:isColumnAbsolute?core.AbsoluteRefType.COLUMN:isRowAbsolute?core.AbsoluteRefType.ROW:core.AbsoluteRefType.NONE}__name(getAbsoluteRefTypeWithSingleString,"getAbsoluteRefTypeWithSingleString");function getAbsoluteRefTypeWitString(refString){const sheetArray=refString.split("!");sheetArray.length>1&&(refString=sheetArray[sheetArray.length-1]);const refArray=refString.split(":");return refArray.length>1?{startAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[0]),endAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[1])}:{startAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[0])}}__name(getAbsoluteRefTypeWitString,"getAbsoluteRefTypeWitString");function _getAbsoluteToken(absoluteRefType=core.AbsoluteRefType.NONE){let rowAbsoluteString="",columnAbsoluteString="";return absoluteRefType===core.AbsoluteRefType.ROW?rowAbsoluteString="$":absoluteRefType===core.AbsoluteRefType.COLUMN?columnAbsoluteString="$":absoluteRefType===core.AbsoluteRefType.ALL&&(rowAbsoluteString="$",columnAbsoluteString="$"),{rowAbsoluteString,columnAbsoluteString}}__name(_getAbsoluteToken,"_getAbsoluteToken");function serializeRange(range){const{startColumn,startRow,endColumn,endRow,startAbsoluteRefType,endAbsoluteRefType,rangeType=core.RANGE_TYPE.NORMAL}=range,start=_getAbsoluteToken(startAbsoluteRefType),end=_getAbsoluteToken(endAbsoluteRefType);if(rangeType===core.RANGE_TYPE.ROW||rangeType===core.RANGE_TYPE.ALL){const startStr2=`${start.rowAbsoluteString}${startRow+1}`,endStr2=`${end.rowAbsoluteString}${endRow+1}`;return`${startStr2}:${endStr2}`}if(rangeType===core.RANGE_TYPE.COLUMN){const startStr2=`${start.columnAbsoluteString}${core.Tools.chatAtABC(startColumn)}`,endStr2=`${end.columnAbsoluteString}${core.Tools.chatAtABC(endColumn)}`;return`${startStr2}:${endStr2}`}const startStr=`${start.columnAbsoluteString}${core.Tools.chatAtABC(startColumn)}${start.rowAbsoluteString}${startRow+1}`,endStr=`${end.columnAbsoluteString}${core.Tools.chatAtABC(endColumn)}${end.rowAbsoluteString}${endRow+1}`;return startStr===endStr?startStr:`${startStr}:${endStr}`}__name(serializeRange,"serializeRange");function serializeRangeWithSheet(sheetName,range){return needsQuoting(sheetName)?`'${sheetName}'!${serializeRange(range)}`:`${sheetName}!${serializeRange(range)}`}__name(serializeRangeWithSheet,"serializeRangeWithSheet");function serializeRangeWithSpreadsheet(unit,sheetName,range){return needsQuoting(unit)||needsQuoting(sheetName)?`'[${unit}]${sheetName}'!${serializeRange(range)}`:`[${unit}]${sheetName}!${serializeRange(range)}`}__name(serializeRangeWithSpreadsheet,"serializeRangeWithSpreadsheet");function serializeRangeToRefString(gridRangeName){const{unitId,sheetName,range}=gridRangeName;return unitId!=null&&unitId.length>0&&sheetName!=null&&sheetName.length>0?serializeRangeWithSpreadsheet(unitId,sheetName,range):sheetName!=null&&sheetName.length>0?serializeRangeWithSheet(sheetName,range):serializeRange(range)}__name(serializeRangeToRefString,"serializeRangeToRefString");function singleReferenceToGrid(refBody){const row=Number.parseInt(refBody.replace($ROW_REGEX,""))-1,column=core.Tools.ABCatNum(refBody.replace($COLUMN_REGEX,"")),absoluteRefType=getAbsoluteRefTypeWithSingleString(refBody);return{row,column,absoluteRefType}}__name(singleReferenceToGrid,"singleReferenceToGrid");function handleRefStringInfo(refString){const unitIdMatch=UNIT_NAME_REGEX_PRECOMPILING.exec(refString);let unitId="";unitIdMatch!=null&&(unitId=unitIdMatch[0].trim(),unitId=unitId.slice(1,unitId.length-1),refString=refString.replace(UNIT_NAME_REGEX_PRECOMPILING,""));const sheetNameIndex=refString.indexOf("!");let sheetName="",refBody="";return sheetNameIndex>-1?(sheetName=refString.substring(0,sheetNameIndex),sheetName[0]==="'"&&sheetName[sheetName.length-1]==="'"&&(sheetName=sheetName.substring(1,sheetName.length-1)),refBody=refString.substring(sheetNameIndex+1)):refBody=refString,{refBody,sheetName,unitId}}__name(handleRefStringInfo,"handleRefStringInfo");function deserializeRangeWithSheet(refString){const{refBody,sheetName,unitId}=handleRefStringInfo(refString),colonIndex=refBody.indexOf(":");if(colonIndex===-1){const grid=singleReferenceToGrid(refBody),row=grid.row,column=grid.column,absoluteRefType=grid.absoluteRefType;return{unitId,sheetName,range:{startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absoluteRefType,endAbsoluteRefType:absoluteRefType}}}const refStartString=refBody.substring(0,colonIndex),refEndString=refBody.substring(colonIndex+1),startGrid=singleReferenceToGrid(refStartString),endGrid=singleReferenceToGrid(refEndString),startRow=startGrid.row>endGrid.row?endGrid.row:startGrid.row,startColumn=startGrid.column>endGrid.column?endGrid.column:startGrid.column,endRow=startGrid.row>endGrid.row?startGrid.row:endGrid.row,endColumn=startGrid.column>endGrid.column?startGrid.column:endGrid.column;let rangeType=core.RANGE_TYPE.NORMAL;return Number.isNaN(startRow)&&Number.isNaN(endRow)?rangeType=core.RANGE_TYPE.COLUMN:Number.isNaN(startColumn)&&Number.isNaN(endColumn)&&(rangeType=core.RANGE_TYPE.ROW),{unitId,sheetName,range:{startRow,startColumn,endRow,endColumn,startAbsoluteRefType:startGrid.absoluteRefType,endAbsoluteRefType:endGrid.absoluteRefType,rangeType}}}__name(deserializeRangeWithSheet,"deserializeRangeWithSheet");const EXCEPTION_REF_STRINGS=["LOG10"];function isReferenceStringWithEffectiveColumn(refString){const noPrefixRefString=replaceRefPrefixString(refString);if(!isReferenceString(noPrefixRefString)||EXCEPTION_REF_STRINGS.includes(noPrefixRefString.toUpperCase().trim()))return!1;const{range}=deserializeRangeWithSheet(noPrefixRefString);return!(range.endColumn>=16384)}__name(isReferenceStringWithEffectiveColumn,"isReferenceStringWithEffectiveColumn");function replaceRefPrefixString(token){const tokenArray=[];let isNotPreFix=!1;for(let i=0,len=token.length;i<len;i++){const char=token[i];if(char===SPACE_TOKEN&&!isNotPreFix)tokenArray.push(char);else{if(!isNotPreFix&&(char===prefixToken.AT||char===prefixToken.MINUS||char===prefixToken.PLUS))continue;tokenArray.push(char),isNotPreFix=!0}}return tokenArray.join("")}__name(replaceRefPrefixString,"replaceRefPrefixString");function getRangeWithRefsString(refString,getSheetIdByName){const valueArray=(refString==null?void 0:refString.split(","))||[];return refString===""||valueArray.length===0?[]:isReferenceStrings(refString)?valueArray.map(ref=>{const unitRange=deserializeRangeWithSheet(ref);return{unitId:unitRange.unitId,sheetId:getSheetIdByName(unitRange.sheetName),range:unitRange.range,sheetName:unitRange.sheetName}}):[]}__name(getRangeWithRefsString,"getRangeWithRefsString");function isReferenceStrings(refString){return((refString==null?void 0:refString.split(","))||[]).every(refString2=>isReferenceStringWithEffectiveColumn(refString2.trim()))}__name(isReferenceStrings,"isReferenceStrings");function needsQuoting(name){return name.length===0?!1:!!(includeFormulaLexerToken(name)||isA1Notation(name)||isR1C1Notation(name)||startsWithNonAlphabetic(name)||/[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/.test(name))}__name(needsQuoting,"needsQuoting");function isA1Notation(name){const match=name.match(/[1-9][0-9]{0,6}/);return/^[A-Z]+[1-9][0-9]{0,6}$/.test(name)&&match!==null}__name(isA1Notation,"isA1Notation");function isR1C1Notation(name){return/^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(name)}__name(isR1C1Notation,"isR1C1Notation");function startsWithNonAlphabetic(name){return!new RegExp("^\\p{Letter}","u").test(name.charAt(0))}__name(startsWithNonAlphabetic,"startsWithNonAlphabetic");var __defProp$n=Object.defineProperty,__getOwnPropDesc$n=Object.getOwnPropertyDescriptor,__decorateClass$n=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$n(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$n(target,key,result),result},"__decorateClass$n"),__decorateParam$n=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$n"),_a;exports.DefinedNamesService=(_a=class extends core.Disposable{constructor(_univerInstanceService){super();__publicField(this,"_definedNameMap",{});__publicField(this,"_update$",new rxjs.Subject);__publicField(this,"update$",this._update$.asObservable());__publicField(this,"_currentRange",{unitId:"",sheetId:"",range:{startRow:0,endRow:0,startColumn:0,endColumn:0}});__publicField(this,"_currentRange$",new rxjs.Subject);__publicField(this,"currentRange$",this._currentRange$.asObservable());__publicField(this,"_focusRange$",new rxjs.Subject);__publicField(this,"focusRange$",this._focusRange$.asObservable());this._univerInstanceService=_univerInstanceService}dispose(){this._definedNameMap={}}getWorksheetByRef(unitId,ref){var _a28;const{sheetName}=handleRefStringInfo(ref);return(_a28=this._univerInstanceService.getUnit(unitId))==null?void 0:_a28.getSheetBySheetName(sheetName)}focusRange(unitId,id){const item=this.getValueById(unitId,id);item!=null&&this._focusRange$.next({...item,unitId})}setCurrentRange(range){this._currentRange=range,this._currentRange$.next(range)}getCurrentRange(){return this._currentRange}getCurrentRangeForString(){return serializeRange(this._currentRange.range)}registerDefinedNames(unitId,params){this._definedNameMap[unitId]=params,this._update()}registerDefinedName(unitId,param){this._definedNameMap[unitId]==null&&(this._definedNameMap[unitId]={}),this._definedNameMap[unitId][param.id]=param,this._update()}removeDefinedName(unitId,id){var _a28;(_a28=this._definedNameMap[unitId])==null||delete _a28[id],this._update()}removeUnitDefinedName(unitId){delete this._definedNameMap[unitId],this._update()}getDefinedNameMap(unitId){return this._definedNameMap[unitId]}getValueByName(unitId,name){var _a28;const nameMap=this._definedNameMap[unitId];return nameMap==null?null:(_a28=Array.from(Object.values(nameMap)).filter(value=>value.name===name))==null?void 0:_a28[0]}getValueById(unitId,id){var _a28;return(_a28=this._definedNameMap[unitId])==null?void 0:_a28[id]}hasDefinedName(unitId){return this._definedNameMap[unitId]==null?!1:(Array.from(Object.values(this._definedNameMap[unitId])).length||0)!==0}_update(){this._update$.next(null)}},__name(_a,"DefinedNamesService"),_a);exports.DefinedNamesService=__decorateClass$n([__decorateParam$n(0,core.IUniverInstanceService)],exports.DefinedNamesService);const IDefinedNamesService=core.createIdentifier("univer.formula.defined-names.service"),SetDefinedNameMutationFactory=__name((accessor,params)=>{const{unitId,id}=params;return{...accessor.get(IDefinedNamesService).getValueById(unitId,id),unitId}},"SetDefinedNameMutationFactory"),SetDefinedNameMutation={id:"formula.mutation.set-defined-name",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveDefinedNameMutation={id:"formula.mutation.remove-defined-name",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFeatureCalculationMutation={id:"formula.mutation.set-feature-calculation",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveFeatureCalculationMutation={id:"formula.mutation.remove-feature-calculation",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationStartMutation={id:"formula.mutation.set-formula-calculation-start",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationStopMutation={id:"formula.mutation.set-formula-calculation-stop",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationNotificationMutation={id:"formula.mutation.set-formula-calculation-notification",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationResultMutation={id:"formula.mutation.set-formula-calculation-result",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaDataMutation={id:"formula.mutation.set-formula-data",type:core.CommandType.MUTATION,handler:__name((accessor,params)=>!0,"handler")},SetOtherFormulaMutation={id:"formula.mutation.set-other-formula",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveOtherFormulaMutation={id:"formula.mutation.remove-other-formula",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetSuperTableMutation={id:"formula.mutation.set-super-table",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveSuperTableMutation={id:"formula.mutation.remove-super-table",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetSuperTableOptionMutation={id:"formula.mutation.set-super-table-option",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},_FormulaAstLRU=class _FormulaAstLRU{constructor(cacheCount){__publicField(this,"_cache");this._cache=new core.LRUMap(cacheCount)}set(formulaString,node){const hash=this._hash(formulaString);this._cache.set(hash,node)}get(formulaString){const hash=this._hash(formulaString);return this._cache.get(hash)}clear(){this._cache.clear()}_hash(formulaString){return formulaString.length<=64?formulaString:core.hashAlgorithm(formulaString).toString()}};__name(_FormulaAstLRU,"FormulaAstLRU");let FormulaAstLRU=_FormulaAstLRU;const DEFAULT_TOKEN_TYPE_PARAMETER="P_1",DEFAULT_TOKEN_TYPE_ROOT="R_1",DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER="L_1",DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER="LR_1",DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER="LO_1",DEFAULT_TOKEN_LET_FUNCTION_NAME="LET",DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME="LAMBDA",DEFAULT_TOKEN_CUBE_FUNCTION_NAME="CUBE",FORCED_RECALCULATION_FUNCTION_NAME=new Set(["RAND","RANDBETWEEN","NOW","TODAY"]),referenceToRangeCache=new FormulaAstLRU(1e5);function deserializeRangeWithSheetWithCache(refString){const refCache=referenceToRangeCache.get(refString);if(refCache)return refCache;const result=deserializeRangeWithSheet(refString);return referenceToRangeCache.set(refString,result),deserializeRangeWithSheet(refString)}__name(deserializeRangeWithSheetWithCache,"deserializeRangeWithSheetWithCache");function clearReferenceToRangeCache(){referenceToRangeCache.clear()}__name(clearReferenceToRangeCache,"clearReferenceToRangeCache");var sequenceNodeType=(sequenceNodeType2=>(sequenceNodeType2[sequenceNodeType2.NORMAL=0]="NORMAL",sequenceNodeType2[sequenceNodeType2.NUMBER=1]="NUMBER",sequenceNodeType2[sequenceNodeType2.STRING=2]="STRING",sequenceNodeType2[sequenceNodeType2.FUNCTION=3]="FUNCTION",sequenceNodeType2[sequenceNodeType2.REFERENCE=4]="REFERENCE",sequenceNodeType2[sequenceNodeType2.ARRAY=5]="ARRAY",sequenceNodeType2[sequenceNodeType2.DEFINED_NAME=6]="DEFINED_NAME",sequenceNodeType2))(sequenceNodeType||{});function generateStringWithSequence(newSequenceNodes){let sequenceString="";for(const node of newSequenceNodes)typeof node=="string"?sequenceString+=node:sequenceString+=node.token;return sequenceString}__name(generateStringWithSequence,"generateStringWithSequence");const _LexerNode=class _LexerNode{constructor(){__publicField(this,"_parent");__publicField(this,"_token",DEFAULT_TOKEN_TYPE_ROOT);__publicField(this,"_children",[]);__publicField(this,"_lambdaId");__publicField(this,"_functionDefinitionPrivacyVar");__publicField(this,"_lambdaParameter","");__publicField(this,"_startIndex",-1);__publicField(this,"_endIndex",-1);__publicField(this,"_definedNames",[])}dispose(){var _a28;this._children.forEach(node=>{typeof node!="string"&&node.dispose()}),(_a28=this._functionDefinitionPrivacyVar)==null||_a28.clear(),this._parent=null}getDefinedNames(){return this._definedNames}getStartIndex(){return this._startIndex}getLambdaId(){return this._lambdaId}setLambdaId(lambdaId){this._lambdaId=lambdaId}getFunctionDefinitionPrivacyVar(){return this._functionDefinitionPrivacyVar}setLambdaPrivacyVar(lambdaPrivacyVar){this._functionDefinitionPrivacyVar=lambdaPrivacyVar}getLambdaParameter(){return this._lambdaParameter}setLambdaParameter(lambdaParameter){this._lambdaParameter=lambdaParameter}getParent(){return this._parent}setParent(lexerNode){this._parent=lexerNode}getChildren(){return this._children}setChildren(children){this._children=children}addChildren(children){this._children.push(children)}addChildrenFirst(children){this._children.unshift(children)}getToken(){return this._token}setToken(token){this._token=token}setIndex(st,ed){this._startIndex=st,this._endIndex=ed}setDefinedNames(definedNames){this._definedNames=definedNames}hasDefinedNames(){return this._definedNames.length>0}replaceChild(lexerNode,newLexerNode){const i=this._getIndexInParent(lexerNode);i!=null&&(this.getChildren().splice(i,1,newLexerNode),newLexerNode.setParent(this))}changeToParent(newParentLexerNode){const parentNode=this.getParent();parentNode&&parentNode.removeChild(this),this.setParent(newParentLexerNode),newParentLexerNode.getChildren().push(this)}removeChild(lexerNode){const i=this._getIndexInParent(lexerNode);i!=null&&this.getChildren().splice(i,1)}serialize(){const token=this.getToken(),children=this.getChildren(),childrenSerialization=[],childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];item instanceof _LexerNode?childrenSerialization.push(item.serialize()):childrenSerialization.push(item)}return{token,st:this._startIndex,ed:this._endIndex,children:childrenSerialization}}_getIndexInParent(lexerNode){const childrenNode=this.getChildren(),childrenCount=childrenNode.length;for(let i=0;i<childrenCount;i++)if(childrenNode[i]===lexerNode)return i}};__name(_LexerNode,"LexerNode");let LexerNode=_LexerNode;const FORMULA_CACHE_LRU_COUNT$2=1e5,FormulaLexerNodeCache=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$2),FormulaSequenceNodeCache=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$2),_LexerTreeBuilder=class _LexerTreeBuilder extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_currentLexerNode",new LexerNode);__publicField(this,"_upLevel",0);__publicField(this,"_segment","");__publicField(this,"_bracketState",[]);__publicField(this,"_squareBracketState",0);__publicField(this,"_bracesState",0);__publicField(this,"_singleQuotationState",0);__publicField(this,"_doubleQuotationState",0);__publicField(this,"_lambdaState",!1);__publicField(this,"_colonState",!1);__publicField(this,"_formulaErrorCount",0);__publicField(this,"_tableBracketState",!1)}dispose(){this._resetTemp(),this._currentLexerNode.dispose(),FormulaLexerNodeCache.clear(),FormulaSequenceNodeCache.clear()}getUpLevel(){return this._upLevel}isColonClose(){return this._colonState===!1}isColonOpen(){return this._colonState===!0}isDoubleQuotationClose(){return this._doubleQuotationState===0}isLambdaOpen(){return this._lambdaState===!0}isLambdaClose(){return this._lambdaState===!1}isSingleQuotationClose(){return this._singleQuotationState===0}isBracesClose(){return this._bracesState===0}isBracketClose(){return this._bracketState.length===0}isSquareBracketClose(){return this._squareBracketState===0}getCurrentLexerNode(){return this._currentLexerNode}getFunctionAndParameter(formulaString,strIndex){const current=this._getCurrentParamIndex(formulaString,strIndex);if(current==null||current===ErrorType$1.VALUE)return;const lexerNode=current[0];if(typeof lexerNode=="string")return;let parent=lexerNode.getParent(),children=lexerNode;for(;parent;){const token=parent.getToken();if(token!==DEFAULT_TOKEN_TYPE_PARAMETER&&!isFormulaLexerToken(token)&&parent.getStartIndex()!==-1){const paramIndex=parent.getChildren().indexOf(children);return{functionName:token,paramIndex}}children=parent,parent=parent.getParent()}}checkIfAddBracket(formulaString){let lastBracketCount=0,lastIndex=formulaString.length-1,lastString=formulaString[lastIndex];for(;(lastString===matchToken.CLOSE_BRACKET||lastString===" ")&&lastIndex>=0;)lastString===matchToken.CLOSE_BRACKET&&lastBracketCount++,lastString=formulaString[--lastIndex];const current=this._getCurrentParamIndex(formulaString,formulaString.length-2);if(current==null||current===ErrorType$1.VALUE)return 0;const lexerNode=current[0];if(typeof lexerNode=="string")return 0;let parent=lexerNode.getParent(),bracketCount=0;for(current[1]===matchToken.OPEN_BRACKET&&bracketCount++;parent;){const token=parent.getToken();token!==DEFAULT_TOKEN_TYPE_PARAMETER&&token!==matchToken.COLON&&parent.getStartIndex()!==-1&&token.toUpperCase()!==DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&(lastBracketCount===0?bracketCount+=1:lastBracketCount--),parent=parent.getParent()}return bracketCount}sequenceNodesBuilder(formulaString){const sequenceNodesCache=FormulaSequenceNodeCache.get(formulaString);if(sequenceNodesCache)return[...sequenceNodesCache];const sequenceArray=this._getSequenceArray(formulaString);if(sequenceArray.length===0)return;const newSequenceNodes=this.getSequenceNode(sequenceArray);return FormulaSequenceNodeCache.set(formulaString,[...newSequenceNodes]),newSequenceNodes}convertRefersToAbsolute(formulaString,startAbsoluteRefType,endAbsoluteRefType){const nodes=this.sequenceNodesBuilder(formulaString);if(nodes==null)return formulaString;let prefixToken2="";formulaString.substring(0,1)===operatorToken.EQUALS&&(prefixToken2=operatorToken.EQUALS);for(let i=0,len=nodes.length;i<len;i++){const node=nodes[i];if(typeof node!="string"&&node.nodeType===sequenceNodeType.REFERENCE){const{token,endIndex}=node,sequenceGrid=deserializeRangeWithSheetWithCache(token);if(sequenceGrid==null)continue;const{range,sheetName,unitId}=sequenceGrid,newRange={...range,startAbsoluteRefType,endAbsoluteRefType},newToken=serializeRangeToRefString({range:newRange,unitId,sheetName}),minusCount=newToken.length-token.length;nodes[i]={...node,token:newToken,endIndex:endIndex+minusCount};for(let j=i+1;j<len;j++){const nextNode=nodes[j];typeof nextNode!="string"&&(nextNode.startIndex+=minusCount,nextNode.endIndex+=minusCount)}}}return`${prefixToken2}${generateStringWithSequence(nodes)}`}moveFormulaRefOffset(formulaString,refOffsetX,refOffsetY,ignoreAbsolute=!1){const sequenceNodes=this.sequenceNodesBuilder(formulaString);if(sequenceNodes==null)return formulaString;const newSequenceNodes=[];for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"||node.nodeType!==sequenceNodeType.REFERENCE){newSequenceNodes.push(node);continue}const{token}=node,sequenceGrid=deserializeRangeWithSheetWithCache(token),{sheetName,unitId:sequenceUnitId}=sequenceGrid;let newRange=sequenceGrid.range;if(!ignoreAbsolute&&newRange.startAbsoluteRefType===core.AbsoluteRefType.ALL&&newRange.endAbsoluteRefType===core.AbsoluteRefType.ALL){newSequenceNodes.push(node);continue}else newRange=core.moveRangeByOffset(newRange,refOffsetX,refOffsetY,ignoreAbsolute);let newToken="";core.isValidRange(newRange)?newToken=serializeRangeToRefString({range:newRange,unitId:sequenceUnitId,sheetName}):newToken=ErrorType$1.REF,newSequenceNodes.push({...node,token:newToken})}return`=${generateStringWithSequence(newSequenceNodes)}`}_formulaSpellCheck(){if(this._currentLexerNode.getChildren().length===0)return!0;const node=this._currentLexerNode.getChildren()[0];return!!(node instanceof LexerNode||OPERATOR_TOKEN_SET.has(node)||SUFFIX_TOKEN_SET.has(node)||node===prefixToken.AT||node===matchToken.COMMA||node===matchToken.COLON||node===matchToken.OPEN_BRACKET)}getSequenceNode(sequenceArray){const sequenceNodes=[];let maybeString=!1;for(let i=0,len=sequenceArray.length;i<len;i++){const item=sequenceArray[i],preItem=sequenceArray[i-1],{segment,currentString}=item;if(currentString===matchToken.DOUBLE_QUOTATION&&(maybeString=!0),(segment!==""||i===0)&&i!==len-1){sequenceNodes.push(currentString);continue}let preSegment=(preItem==null?void 0:preItem.segment)||"";const startIndex=i-preSegment.length;let endIndex=i-1;const deleteEndIndex=i-1;if(i===len-1&&this._isLastMergeString(currentString)&&(preSegment+=currentString,endIndex+=1),preSegment===""||OPERATOR_TOKEN_PRIORITY.has(preSegment)){sequenceNodes.push(currentString);continue}const preSegmentTrim=preSegment.trim(),preSegmentNotPrefixToken=replaceRefPrefixString(preSegmentTrim);maybeString===!0&&preSegmentTrim[preSegmentTrim.length-1]===matchToken.DOUBLE_QUOTATION&&preSegmentTrim[0]!==matchToken.OPEN_BRACES?(maybeString=!1,this._processPushSequenceNode(sequenceNodes,sequenceNodeType.STRING,preSegment,startIndex,endIndex,deleteEndIndex)):regexTestSingeRange(preSegmentNotPrefixToken)&&isReferenceStringWithEffectiveColumn(preSegmentNotPrefixToken)?this._processPushSequenceNode(sequenceNodes,sequenceNodeType.REFERENCE,preSegment,startIndex,endIndex,deleteEndIndex):core.Tools.isStringNumber(preSegmentTrim)?this._processPushSequenceNode(sequenceNodes,sequenceNodeType.NUMBER,preSegment,startIndex,endIndex,deleteEndIndex):preSegmentTrim.length>0&&this._processPushSequenceNode(sequenceNodes,sequenceNodeType.FUNCTION,preSegment,startIndex,endIndex,deleteEndIndex),(i!==len-1||!this._isLastMergeString(currentString))&&sequenceNodes.push(currentString)}return this._mergeSequenceNodeReference(sequenceNodes)}_processPushSequenceNode(sequenceNodes,nodeType,token,startIndex,endIndex,deleteEndIndex){this._pushSequenceNode(sequenceNodes,{nodeType,token,startIndex,endIndex},deleteEndIndex)}_getCurrentParamIndex(formulaString,index){return this._nodeMaker(formulaString,void 0,index)}_isLastMergeString(str){return str===matchToken.DOUBLE_QUOTATION||core.Tools.isStringNumber(str)||!isFormulaLexerToken(str)}_mergeSequenceNodeReference(sequenceNodes){const newSequenceNodes=[],sequenceNodesCount=sequenceNodes.length;let i=0;for(;i<sequenceNodesCount;){const node=sequenceNodes[i];if(typeof node=="string"){const preNode=sequenceNodes[i-1];if(node.trim()===matchToken.CLOSE_BRACES&&preNode!=null&&typeof preNode!="string"&&preNode.nodeType===sequenceNodeType.FUNCTION&&preNode.token.trim().substring(0,1)===matchToken.OPEN_BRACES){preNode.nodeType=sequenceNodeType.ARRAY,preNode.token+=node,preNode.endIndex+=node.length,i++;continue}newSequenceNodes.push(node)}else{const nextOneNode=sequenceNodes[i+1],nextTwoNode=sequenceNodes[i+2];nextOneNode===matchToken.COLON&&typeof node!="string"&&nextTwoNode!=null&&typeof nextTwoNode!="string"&&isReferenceStringWithEffectiveColumn((node.token+nextOneNode+nextTwoNode.token).trim())&&(node.nodeType=sequenceNodeType.REFERENCE,node.token+=nextOneNode+nextTwoNode.token,node.endIndex=nextTwoNode.endIndex,i+=2),newSequenceNodes.push(node)}i++}return this._minusSplitSequenceNode(newSequenceNodes)}_minusSplitSequenceNode(sequenceNodes){const finalSequenceNodes=[];for(const node of sequenceNodes){if(typeof node!="string"){const match=node.token.match(/^(\s*([-@+]\s*)+)(.*)$/);if(match){const operatorPart=match[1],referencePart=match[3];if(isReferenceStringWithEffectiveColumn(referencePart.trim())){const operatorLength=operatorPart.length,operatorStart=node.startIndex,operatorEnd=node.startIndex+operatorLength-1,operatorNode={nodeType:sequenceNodeType.NORMAL,token:operatorPart,startIndex:operatorStart,endIndex:operatorEnd},refNode={nodeType:sequenceNodeType.REFERENCE,token:referencePart,startIndex:operatorEnd+1,endIndex:node.endIndex};finalSequenceNodes.push(operatorNode),finalSequenceNodes.push(refNode);continue}}}finalSequenceNodes.push(node)}return finalSequenceNodes}_pushSequenceNode(sequenceNodes,node,deleteEndIndex){const segmentCount=deleteEndIndex-node.startIndex+1;sequenceNodes.splice(sequenceNodes.length-segmentCount,segmentCount,node)}nodeMakerTest(formulaString){return this._nodeMaker(formulaString)}treeBuilder(formulaString,transformSuffix=!0,injectDefinedName,simpleCheckDefinedName){if(transformSuffix===!0){const lexerNode=FormulaLexerNodeCache.get(formulaString),simpleCheckDefinedNameResult=simpleCheckDefinedName==null?void 0:simpleCheckDefinedName(formulaString);if(lexerNode&&!simpleCheckDefinedNameResult)return lexerNode}this._resetCurrentLexerNode(),this._currentLexerNode.setToken(DEFAULT_TOKEN_TYPE_ROOT);const sequenceArray=[];let state=this._nodeMaker(formulaString,sequenceArray);if(state===ErrorType$1.VALUE||sequenceArray.length===0)return state;let currentHasDefinedName=!1,currentSequenceString="",currentDefinedNames=[];if(injectDefinedName){const{hasDefinedName,sequenceString,definedNames}=injectDefinedName(sequenceArray);currentHasDefinedName=hasDefinedName,currentSequenceString=sequenceString,currentDefinedNames=definedNames}if(currentHasDefinedName&&(this._resetCurrentLexerNode(),this._currentLexerNode.setToken(DEFAULT_TOKEN_TYPE_ROOT),state=this._nodeMaker(`=${currentSequenceString}`),state===ErrorType$1.VALUE))return state;const node=this._getTopNode(this._currentLexerNode);if(node&&(this._currentLexerNode=node),transformSuffix){if(!this._suffixExpressionHandler(this._currentLexerNode))return ErrorType$1.VALUE;FormulaLexerNodeCache.set(formulaString,this._currentLexerNode)}return currentHasDefinedName&&this._currentLexerNode.setDefinedNames(currentDefinedNames),this._currentLexerNode}_suffixExpressionHandler(lexerNode){var _a28;const children=lexerNode.getChildren();if(!children)return!1;const childrenCount=children.length,baseStack=[],symbolStack=[];let isChildValid=!0;for(let i=0;i<childrenCount;i++){const node=children[i];if(node instanceof LexerNode)isChildValid=this._suffixExpressionHandler(node),baseStack.push(node);else{const char=node.trim();if(char==="")continue;if(OPERATOR_TOKEN_SET.has(char)){if(char===operatorToken.PLUS&&this._deletePlusForPreNode(children[i-1]))continue;if(char!==operatorToken.PLUS&&char!==operatorToken.MINUS&&this._deletePlusForPreNode(children[i-1]))return!1;for(;symbolStack.length>0;){const lastSymbol=(_a28=symbolStack[symbolStack.length-1])==null?void 0:_a28.trim();if(!lastSymbol||lastSymbol===matchToken.OPEN_BRACKET)break;const lastSymbolPriority=OPERATOR_TOKEN_PRIORITY.get(lastSymbol),charPriority=OPERATOR_TOKEN_PRIORITY.get(char);if(!lastSymbolPriority||!charPriority)break;if(charPriority>=lastSymbolPriority)baseStack.push(symbolStack.pop());else break}symbolStack.push(node)}else if(char===matchToken.OPEN_BRACKET)symbolStack.push(node);else if(char===matchToken.CLOSE_BRACKET)this._processSuffixExpressionCloseBracket(baseStack,symbolStack,children,i);else{if(this._checkCloseBracket(children[i-1]))return!1;baseStack.push(node)}}}return isChildValid?this._processSuffixExpressionRemain(baseStack,symbolStack,lexerNode):!1}_processSuffixExpressionRemain(baseStack,symbolStack,lexerNode){const baseStackLength=baseStack.length,lastBaseStack=baseStack[baseStackLength-1];for(;symbolStack.length>0;){const symbol=symbolStack.pop();if(!(lastBaseStack instanceof LexerNode)&&(symbol===matchToken.OPEN_BRACKET||symbol===matchToken.CLOSE_BRACKET))return!1;baseStack.push(symbol)}return lexerNode.setChildren(baseStack),!0}_processSuffixExpressionCloseBracket(baseStack,symbolStack,children,i){var _a28;if(this._checkOpenBracket(children[i-1])||this._checkOperator(children[i-1]))return!1;for(;symbolStack.length>0;){const lastSymbol=(_a28=symbolStack[symbolStack.length-1])==null?void 0:_a28.trim();if(!lastSymbol)break;if(lastSymbol===matchToken.OPEN_BRACKET){symbolStack.pop();break}baseStack.push(symbolStack.pop())}}_checkCloseBracket(node){return node===matchToken.CLOSE_BRACKET||node instanceof LexerNode}_checkOpenBracket(node){return node===matchToken.OPEN_BRACKET}_checkOperator(node){return node==null||node instanceof LexerNode?!1:OPERATOR_TOKEN_SET.has(node)}_deletePlusForPreNode(preNode){if(preNode==null)return!0;if(!(preNode instanceof LexerNode)){const preChar=preNode.trim();if(OPERATOR_TOKEN_SET.has(preChar)||preChar===matchToken.OPEN_BRACKET)return!0}return!1}_resetCurrentLexerNode(){this._currentLexerNode=new LexerNode}_resetSegment(){this._segment=""}_openBracket(type=0){this._bracketState.push(type)}_closeBracket(){this._bracketState.pop()}_openSquareBracket(){this._squareBracketState+=1}_closeSquareBracket(){this._squareBracketState-=1}_getCurrentBracket(){const bracketState=this._bracketState;return bracketState[bracketState.length-1]}_changeCurrentBracket(type){const bracketState=this._bracketState;bracketState[bracketState.length-1]=type}_openBraces(){this._bracesState+=1}_closeBraces(){this._bracesState-=1}_openSingleQuotation(){this._singleQuotationState+=1}_closeSingleQuotation(){this._singleQuotationState-=1}_openDoubleQuotation(){this._doubleQuotationState+=1}_closeDoubleQuotation(){this._doubleQuotationState-=1}_openLambda(){this._lambdaState=!0}_closeLambda(){this._lambdaState=!1}_openColon(upLevel){this._upLevel=upLevel,this._colonState=!0}_closeColon(){this._upLevel=0,this._colonState=!1}_isTableBracket(){return this._tableBracketState}_openTableBracket(){this._tableBracketState=!0}_closeTableBracket(){this._tableBracketState=!1}_formalErrorOccurred(){this._formulaErrorCount+=1}_hasFormalError(){return this._formulaErrorCount>0}_getLastChildCurrentLexerNode(){const children=this._currentLexerNode.getChildren();if(children&&children.length>0){const lastNode=children[children.length-1];if(lastNode instanceof LexerNode)return lastNode}return!1}_getLastChildCurrent(){const children=this._currentLexerNode.getChildren();return children&&children.length>0?children[children.length-1]:!1}_setParentCurrentLexerNode(){const parent=this._currentLexerNode.getParent();return parent?(this._currentLexerNode=parent,!0):!1}_setAncestorCurrentLexerNode(){var _a28,_b,_c,_d,_e,_f;const parent=(_a28=this._currentLexerNode)==null?void 0:_a28.getParent();let state=!1;if(parent&&parent.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){if((_b=parent==null?void 0:parent.getParent())!=null&&_b.getParent()){const node=(_d=(_c=this._currentLexerNode.getParent())==null?void 0:_c.getParent())==null?void 0:_d.getParent();node&&(this._currentLexerNode=node),state=!0}}else if(parent!=null&&parent.getParent()){const node=(_e=this._currentLexerNode.getParent())==null?void 0:_e.getParent();node&&(this._currentLexerNode=node),state=!0}for(let i=0;i<this._upLevel;i++){const node=(_f=this._currentLexerNode)==null?void 0:_f.getParent();node&&(this._currentLexerNode=node),this._currentLexerNode?state=!0:state=!1}return state}_segmentCount(){return this._segment.trim().length}_pushSegment(value){this._segment+=value}_pushNodeToChildren(valueRaw,isUnshift=!1){let value=valueRaw;if(value!==""){const children=this._currentLexerNode.getChildren();if(!(value instanceof LexerNode)&&this.isColonOpen()){const subLexerNode_ref=new LexerNode;subLexerNode_ref.setToken(value),subLexerNode_ref.setParent(this._currentLexerNode),value=subLexerNode_ref}isUnshift?children.unshift(value):children.push(value)}this.isColonOpen()&&(this._setAncestorCurrentLexerNode(),this._closeColon())}_setCurrentLexerNode(subLexerNode,isUnshift=!1){this._pushNodeToChildren(subLexerNode,isUnshift),subLexerNode.setParent(this._currentLexerNode),this._currentLexerNode=subLexerNode}_newAndPushCurrentLexerNode(token,current,isUnshift=!1){const subLexerNode=new LexerNode;subLexerNode.setToken(token),subLexerNode.setIndex(current-token.length,current-1),this._setCurrentLexerNode(subLexerNode,isUnshift)}_getTopNode(lexerNode){let parentNode=lexerNode;for(;parentNode!=null&&parentNode.getParent();)parentNode=parentNode.getParent();return parentNode}_removeLastChild(){this._currentLexerNode.getChildren().splice(-1)}_formulaErrorLastTokenCheck(formulaStringArray,indexRaw){const lastToken=this._findPreviousToken(formulaStringArray,indexRaw)||"",isFirstCheck=formulaStringArray.length-1===indexRaw;if(!isFirstCheck&&this._isOperatorToken(lastToken)||isFirstCheck&&isTokenCannotBeAtEnd(lastToken))return!0;if(SUFFIX_TOKEN_SET.has(lastToken)){const lastTwoToken=this._findSecondLastNonSpaceToken(formulaStringArray,indexRaw);if(lastTwoToken==null||isTokenCannotPrecedeSuffixToken(lastTwoToken))return!0}return!1}_findPreviousToken(data,indexRaw){let index=indexRaw;for(;index>=0;){const token=data[index];if(token!==" ")return token;index--}}_findSecondLastNonSpaceToken(data,indexRaw){let index=indexRaw,nonSpaceTokenCount=0;for(;index>=0;){const token=data[index];if(token!==" "&&(nonSpaceTokenCount++,nonSpaceTokenCount===2))return token;index--}return null}_findNextToken(data,indexRaw){let index=indexRaw;for(;index>=0;){const token=data[index];if(token!==" ")return token;index++}}_unexpectedEndingTokenExcludeOperator(prevString){return prevString===matchToken.OPEN_BRACKET||prevString===matchToken.COMMA||prevString===operatorToken.EQUALS||prevString===""}_unexpectedEndingToken(prevString){return!!(this._isOperatorToken(prevString)||this._unexpectedEndingTokenExcludeOperator(prevString))}_isOperatorToken(prevString){return!!OPERATOR_TOKEN_SET.has(prevString)}_getSequenceArray(formulaString){const sequenceArray=[];return this._nodeMaker(formulaString,sequenceArray),sequenceArray}_resetTemp(){this._currentLexerNode=new LexerNode,this._upLevel=0,this._segment="",this._bracketState=[],this._bracesState=0,this._singleQuotationState=0,this._doubleQuotationState=0,this._lambdaState=!1,this._colonState=!1,this._formulaErrorCount=0}_checkErrorState(){return!!(this._bracketState.length>0||this._bracesState>0||this._singleQuotationState>0||this._doubleQuotationState>0||this._hasFormalError())}_checkSimilarErrorToken(currentString,curRow,formulaStringArray){let cur=curRow;if(currentString!==suffixToken.POUND)return!0;let currentText=formulaStringArray[++cur];for(;currentText===" ";)currentText=formulaStringArray[++cur];return!!isFormulaLexerToken(currentText)}_checkIfErrorObject(cur,formulaStringArray){return!!this._findErrorObject(cur,formulaStringArray)}_findErrorObject(curRaw,formulaStringArray){for(let i=0;i<ERROR_TYPE_COUNT_ARRAY.length;i++){const errorTypeCount=ERROR_TYPE_COUNT_ARRAY[i],errorType=formulaStringArray.slice(curRaw,curRaw+errorTypeCount).join("").toUpperCase();if(ERROR_TYPE_SET.has(errorType))return errorType}}_nodeMaker(formulaStringRaw,sequenceArray,matchCurrentNodeIndex){let formulaString=formulaStringRaw.replace(/\r\n$/,"").replace(/\r/g," ").replace(/\n/g," ");formulaString.substring(0,1)===operatorToken.EQUALS&&(formulaString=formulaString.substring(1));const formulaStringArray=formulaString.split(""),formulaStringArrayCount=formulaStringArray.length;let cur=0;for(this._resetTemp(),this._formulaErrorLastTokenCheck(formulaStringArray,formulaStringArrayCount-1)&&this._formalErrorOccurred();cur<formulaStringArrayCount;){const currentString=formulaStringArray[cur];if(matchCurrentNodeIndex===cur)return[this._currentLexerNode,currentString];if(currentString===suffixToken.POUND&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()&&this._checkIfErrorObject(cur,formulaStringArray)){const errorType=this._findErrorObject(cur,formulaStringArray);if(errorType==null)return ErrorType$1.VALUE;this._pushNodeToChildren(errorType);for(let i=0;i<errorType.length;i++){const curStr=formulaStringArray[cur];this._pushSegment(curStr),this._addSequenceArray(sequenceArray,curStr,cur),cur++}this._resetSegment();continue}else if(currentString===matchToken.OPEN_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())if(this._segmentCount()>0||this.isLambdaOpen()){this.isLambdaClose()&&(this._newAndPushCurrentLexerNode(this._segment,cur),this._resetSegment()),this._openBracket(1),this._closeLambda();const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&nextCurrentString===matchToken.CLOSE_BRACKET){if(!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE;this._addSequenceArray(sequenceArray,currentString,cur),cur++,this._addSequenceArray(sequenceArray,nextCurrentString,cur),cur++,this._closeBracket();continue}else nextCurrentString&&this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}else this._pushNodeToChildren(currentString),this._openBracket(0),this._resetSegment();else if(currentString===matchToken.CLOSE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){this._formulaErrorLastTokenCheck(formulaStringArray,cur-1)&&this._formalErrorOccurred(),this._pushNodeToChildren(this._segment),this._resetSegment();const currentBracket=this._getCurrentBracket();if(currentBracket===0)this._pushNodeToChildren(currentString);else if(currentBracket===1){const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&nextCurrentString===matchToken.OPEN_BRACKET){if(!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE;this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER,cur,!0),this._openLambda()}else if(!this._setAncestorCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE}else return ErrorType$1.VALUE;this._closeBracket()}else if(currentString===matchToken.OPEN_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){if(this._pushSegment(currentString),this._openBraces(),!this._formulaSpellCheck())return ErrorType$1.VALUE}else if(currentString===matchToken.CLOSE_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(currentString),this._pushNodeToChildren(this._segment),this._resetSegment(),this._closeBraces();else if(currentString===matchToken.OPEN_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._segment.length>0&&this._openTableBracket(),this._pushSegment(currentString),this._openSquareBracket();else if(currentString===matchToken.CLOSE_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._closeSquareBracket(),this.isSquareBracketClose()?(this._pushSegment(currentString),this._isTableBracket()&&(this._pushNodeToChildren(this._segment),this._resetSegment()),this._closeTableBracket()):this._pushSegment(currentString);else if(currentString===matchToken.DOUBLE_QUOTATION&&this.isSingleQuotationClose()&&this.isSquareBracketClose()){if(this.isDoubleQuotationClose())this._openDoubleQuotation();else{const nextCurrentString=formulaStringArray[cur+1];nextCurrentString&&nextCurrentString===matchToken.DOUBLE_QUOTATION?cur++:this._closeDoubleQuotation()}this._pushSegment(currentString)}else if(currentString===matchToken.SINGLE_QUOTATION&&this.isDoubleQuotationClose()){if(this.isSingleQuotationClose())this._openSingleQuotation();else{const nextCurrentString=formulaStringArray[cur+1];nextCurrentString&&nextCurrentString===matchToken.SINGLE_QUOTATION?cur++:this._closeSingleQuotation()}this._pushSegment(currentString)}else if(currentString===matchToken.COMMA&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){this._formulaErrorLastTokenCheck(formulaStringArray,cur-1)&&this._formalErrorOccurred();const currentBracket=this._getCurrentBracket();if(currentBracket===1||currentBracket==null){if(this._pushNodeToChildren(this._segment),this._resetSegment(),!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1&¤tBracket!=null)return ErrorType$1.VALUE;this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}else{const cubeNode=new LexerNode;cubeNode.setToken(DEFAULT_TOKEN_CUBE_FUNCTION_NAME);const cubeParamNode=new LexerNode;cubeParamNode.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),cubeParamNode.changeToParent(cubeNode);const colonNode=this._currentLexerNode.getParent();if(colonNode&&colonNode.getToken()===matchToken.COLON){const colonNodeParent=colonNode.getParent();if(!colonNodeParent)return ErrorType$1.VALUE;colonNode.changeToParent(cubeParamNode),colonNodeParent.setChildren([]),cubeNode.changeToParent(colonNodeParent)}else return ErrorType$1.VALUE;this._changeCurrentBracket(1),this._pushNodeToChildren(this._segment),this._resetSegment(),this._currentLexerNode=cubeNode,this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}}else if(currentString===matchToken.COLON&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const subLexerNode_op=new LexerNode;subLexerNode_op.setToken(currentString);const subLexerNode_left=new LexerNode;subLexerNode_left.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),subLexerNode_left.setParent(subLexerNode_op);const subLexerNode_right=new LexerNode;subLexerNode_right.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),subLexerNode_right.setParent(subLexerNode_op),subLexerNode_op.getChildren().push(subLexerNode_left,subLexerNode_right);let subLexerNode_main=subLexerNode_op,upLevel=0;if(this._segmentCount()>0){let subLexerNode_minus,subLexerNode_at,sliceLength=0;const segmentTrim=this._segment.trim(),lastString=segmentTrim[0],twoLastString=segmentTrim[1];if(lastString===prefixToken.MINUS&&(subLexerNode_minus=new LexerNode,subLexerNode_minus.setToken(prefixToken.MINUS),sliceLength++),(lastString===prefixToken.AT||twoLastString===prefixToken.AT)&&(subLexerNode_at=new LexerNode,subLexerNode_at.setToken(prefixToken.AT),subLexerNode_minus&&(subLexerNode_minus.addChildren(subLexerNode_at),subLexerNode_at.setParent(subLexerNode_minus)),sliceLength++),sliceLength>0&&(this._segment=segmentTrim.slice(sliceLength)),upLevel=sliceLength,subLexerNode_at)if(subLexerNode_at.addChildren(subLexerNode_op),subLexerNode_op.setParent(subLexerNode_at),subLexerNode_at.getParent()){const node=subLexerNode_at.getParent();node&&(subLexerNode_main=node)}else subLexerNode_main=subLexerNode_at;else subLexerNode_minus&&(subLexerNode_main=subLexerNode_minus,subLexerNode_minus.addChildren(subLexerNode_op),subLexerNode_op.setParent(subLexerNode_minus));const subLexerNode_ref=new LexerNode;subLexerNode_ref.setToken(this._segment),subLexerNode_ref.setParent(subLexerNode_left),subLexerNode_left.getChildren().push(subLexerNode_ref),this._resetSegment()}else{const lastChildNode=this._getLastChildCurrentLexerNode();lastChildNode&&lastChildNode.changeToParent(subLexerNode_left)}this._setCurrentLexerNode(subLexerNode_main),this._currentLexerNode=subLexerNode_right,this._openColon(upLevel)}else if(SUFFIX_TOKEN_SET.has(currentString)&&this._checkSimilarErrorToken(currentString,cur,formulaStringArray)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){this._pushNodeToChildren(this._segment);const subLexerNode=new LexerNode;subLexerNode.setToken(currentString);const lastChildNode=this._getLastChildCurrent();lastChildNode instanceof LexerNode?lastChildNode.changeToParent(subLexerNode):lastChildNode!==!1&&(subLexerNode.getChildren().push(lastChildNode),this._removeLastChild()),this._pushNodeToChildren(subLexerNode),subLexerNode.setParent(this._currentLexerNode),this._resetSegment()}else if(OPERATOR_TOKEN_SET.has(currentString)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){let trimSegment=this._segment.trim();if(currentString===operatorToken.MINUS&&trimSegment===""){const prevString=this._findPreviousToken(formulaStringArray,cur-1)||"",nextString=this._findNextToken(formulaStringArray,cur+1)||"";if(this._unexpectedEndingTokenExcludeOperator(prevString)&&this._isOperatorToken(nextString)){this._pushNodeToChildren("0"),this._pushNodeToChildren(operatorToken.MINUS),this._addSequenceArray(sequenceArray,currentString,cur),this._resetSegment(),cur++;continue}else if(this._unexpectedEndingToken(prevString))if(nextString===operatorToken.PLUS){this._pushSegment(operatorToken.MINUS),this._addSequenceArray(sequenceArray,currentString,cur),this._addSequenceArray(sequenceArray,operatorToken.PLUS,cur+1),cur+=2;continue}else{this._pushSegment(operatorToken.MINUS),this._addSequenceArray(sequenceArray,currentString,cur),cur++;continue}}else if(this._segment.length>0&&this._isScientificNotation(formulaStringArray,cur,currentString)){this._pushSegment(currentString),this._addSequenceArray(sequenceArray,currentString,cur),cur++;continue}else this._segment.length>0&&trimSegment===""?trimSegment=this._segment:(this._pushNodeToChildren(this._segment),trimSegment="");if(currentString===operatorToken.LESS_THAN||currentString===operatorToken.GREATER_THAN){const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&OPERATOR_TOKEN_SET.has(currentString+nextCurrentString)){this._pushNodeToChildren(trimSegment+currentString+nextCurrentString),this._resetSegment(),this._addSequenceArray(sequenceArray,currentString,cur),cur++,this._addSequenceArray(sequenceArray,nextCurrentString,cur),cur++;continue}else this._pushNodeToChildren(trimSegment+currentString)}else this._pushNodeToChildren(trimSegment+currentString);this._resetSegment()}else this._pushSegment(currentString);this._addSequenceArray(sequenceArray,currentString,cur),cur++}if(this._pushNodeToChildren(this._segment),this._checkErrorState())return ErrorType$1.VALUE}_isScientificNotation(formulaStringArray,cur,currentString){const preTwoChar=formulaStringArray[cur-2];if(preTwoChar&&Number.isNaN(Number(preTwoChar))||!(currentString===operatorToken.MINUS||currentString===operatorToken.PLUS))return!1;const nextOneChar=formulaStringArray[cur+1];if(nextOneChar&&Number.isNaN(Number(nextOneChar)))return!1;const preOneChar=formulaStringArray[cur-1];return preOneChar&&preOneChar.toUpperCase()==="E"}_addSequenceArray(sequenceArray,currentString,cur){sequenceArray==null||sequenceArray.push({segment:this._segment,currentString,cur,currentLexerNode:this._currentLexerNode})}};__name(_LexerTreeBuilder,"LexerTreeBuilder");let LexerTreeBuilder=_LexerTreeBuilder;function updateFormulaDataByCellValue(sheetFormulaDataMatrix,newSheetFormulaDataMatrix,formulaIdMap,deleteFormulaIdMap,r,c,cell){const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",checkFormulaString=core.isFormulaString(formulaString),checkFormulaId=core.isFormulaId(formulaId),currentFormulaInfo=sheetFormulaDataMatrix.getValue(r,c),f=(currentFormulaInfo==null?void 0:currentFormulaInfo.f)||"",si=(currentFormulaInfo==null?void 0:currentFormulaInfo.si)||"";function clearFormulaData(){var _a28;if(core.isFormulaString(f)&&core.isFormulaId(si)){const updatedFormula=(_a28=formulaIdMap.get(si))==null?void 0:_a28.f;updatedFormula?deleteFormulaIdMap.set(si,updatedFormula):deleteFormulaIdMap.set(si,f)}}__name(clearFormulaData,"clearFormulaData"),checkFormulaString&&checkFormulaId?(si!==formulaId&&clearFormulaData(),sheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId}),formulaIdMap.set(formulaId,{f:formulaString,r,c}),newSheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId})):checkFormulaString&&!checkFormulaId?(f!==formulaString&&clearFormulaData(),sheetFormulaDataMatrix.setValue(r,c,{f:formulaString}),newSheetFormulaDataMatrix.setValue(r,c,{f:formulaString})):!checkFormulaString&&checkFormulaId?(si!==formulaId&&clearFormulaData(),sheetFormulaDataMatrix.setValue(r,c,{f:"",si:formulaId})):!checkFormulaString&&!checkFormulaId&&sheetFormulaDataMatrix.getValue(r,c)&&(clearFormulaData(),sheetFormulaDataMatrix.realDeleteValue(r,c),newSheetFormulaDataMatrix.setValue(r,c,null))}__name(updateFormulaDataByCellValue,"updateFormulaDataByCellValue");function clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix,arrayFormulaCellDataMatrix,r,c){const arrayFormulaRangeValue=arrayFormulaRangeMatrix==null?void 0:arrayFormulaRangeMatrix.getValue(r,c);if(arrayFormulaRangeValue==null)return!0;const intersection=[];arrayFormulaRangeMatrix.forValue((rangeRow,rangeCol,range)=>{rangeRow===r&&rangeCol===c||core.Rectangle.intersects(range,arrayFormulaRangeValue)&&intersection.push(range)});const{startRow,startColumn,endRow,endColumn}=arrayFormulaRangeValue;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){let isOverlapping=!1;const currentCell=core.cellToRange(row,col);intersection.some(range=>core.Rectangle.contains(range,currentCell)?(isOverlapping=!0,!0):!1),isOverlapping||arrayFormulaCellDataMatrix.realDeleteValue(row,col)}}__name(clearArrayFormulaCellDataByCell,"clearArrayFormulaCellDataByCell");var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$m(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$m(target,key,result),result},"__decorateClass$m"),__decorateParam$m=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$m"),_a2;exports.FormulaDataModel=(_a2=class extends core.Disposable{constructor(_univerInstanceService,_lexerTreeBuilder){super();__publicField(this,"_formulaData",{});__publicField(this,"_arrayFormulaRange",{});__publicField(this,"_arrayFormulaCellData",{});this._univerInstanceService=_univerInstanceService,this._lexerTreeBuilder=_lexerTreeBuilder,this.initFormulaData()}dispose(){super.dispose(),this._formulaData={},this._arrayFormulaRange={},this._arrayFormulaCellData={}}clearPreviousArrayFormulaCellData(clearArrayFormulaCellData){Object.keys(clearArrayFormulaCellData).forEach(unitId=>{const clearSheetData=clearArrayFormulaCellData[unitId];if(clearSheetData==null)return!0;Object.keys(clearSheetData).forEach(sheetId=>{var _a28,_b,_c,_d;const clearCellMatrixData=clearSheetData[sheetId],formulaRange=(_b=(_a28=this._arrayFormulaRange)==null?void 0:_a28[unitId])==null?void 0:_b[sheetId];if(formulaRange==null)return!0;const rangeMatrix=new core.ObjectMatrix(formulaRange);let arrayFormulaCellMatrixData=new core.ObjectMatrix;((_c=this._arrayFormulaCellData[unitId])==null?void 0:_c[sheetId])!=null&&(arrayFormulaCellMatrixData=new core.ObjectMatrix((_d=this._arrayFormulaCellData[unitId])==null?void 0:_d[sheetId])),clearCellMatrixData.forValue((row,column)=>{const range=rangeMatrix.getValue(row,column);if(range==null)return!0;const{startRow,startColumn,endRow,endColumn}=range;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)arrayFormulaCellMatrixData.setValue(r,c,null);rangeMatrix.realDeleteValue(row,column)}),this._arrayFormulaCellData[unitId]&&(this._arrayFormulaCellData[unitId][sheetId]=arrayFormulaCellMatrixData.getData())})})}mergeArrayFormulaCellData(unitData){Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;this._arrayFormulaRange[unitId]==null&&(this._arrayFormulaRange[unitId]={}),this._arrayFormulaCellData[unitId]==null&&(this._arrayFormulaCellData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a28,_b;const cellMatrixData=sheetData[sheetId],arrayFormulaRangeMatrix=new core.ObjectMatrix((_a28=this._arrayFormulaRange[unitId])==null?void 0:_a28[sheetId]),arrayFormulaCellMatrixData=new core.ObjectMatrix((_b=this._arrayFormulaCellData[unitId])==null?void 0:_b[sheetId]);cellMatrixData.forValue((row,column)=>{const arrayFormulaRange=arrayFormulaRangeMatrix==null?void 0:arrayFormulaRangeMatrix.getValue(row,column);if(arrayFormulaRange==null)return!0;const{startRow,startColumn,endRow,endColumn}=arrayFormulaRange;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)arrayFormulaCellMatrixData.setValue(r,c,null)}),cellMatrixData.forValue((row,column,cellData)=>{arrayFormulaCellMatrixData.setValue(row,column,cellData)}),this._arrayFormulaCellData[unitId]&&(this._arrayFormulaCellData[unitId][sheetId]=arrayFormulaCellMatrixData.getData())})})}getFormulaData(){return this._formulaData}setFormulaData(value){this._formulaData=value}getArrayFormulaRange(){return this._arrayFormulaRange}setArrayFormulaRange(value){this._arrayFormulaRange=value}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(value){this._arrayFormulaCellData=value}mergeArrayFormulaRange(formulaData){Object.keys(formulaData).forEach(unitId=>{const sheetData=formulaData[unitId];if(sheetData==null)return!0;this._arrayFormulaRange[unitId]||(this._arrayFormulaRange[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a28;const arrayFormula=new core.ObjectMatrix(sheetData[sheetId]),rangeMatrix=new core.ObjectMatrix((_a28=this._arrayFormulaRange[unitId])==null?void 0:_a28[sheetId]);arrayFormula.forValue((r,c,v)=>{rangeMatrix.setValue(r,c,v)}),this._arrayFormulaRange[unitId]&&(this._arrayFormulaRange[unitId][sheetId]=rangeMatrix.getData())})})}mergeFormulaData(formulaData){Object.keys(formulaData).forEach(unitId=>{const sheetData=formulaData[unitId];if(sheetData!==void 0){if(sheetData===null){delete this._formulaData[unitId];return}this._formulaData[unitId]||(this._formulaData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a28,_b;const currentSheetData=sheetData[sheetId];if(currentSheetData===void 0)return;if(currentSheetData===null){(_a28=this._formulaData[unitId])==null||delete _a28[sheetId];return}const sheetFormula=new core.ObjectMatrix(currentSheetData),formulaMatrix=new core.ObjectMatrix(((_b=this._formulaData[unitId])==null?void 0:_b[sheetId])||{});sheetFormula.forValue((r,c,v)=>{v==null?formulaMatrix.realDeleteValue(r,c):formulaMatrix.setValue(r,c,v)}),this._formulaData[unitId][sheetId]=formulaMatrix.clone()})}})}deleteArrayFormulaRange(unitId,sheetId,row,column){var _a28;const cellMatrixData=(_a28=this._arrayFormulaRange[unitId])==null?void 0:_a28[sheetId];if(cellMatrixData==null)return;const rangeMatrixData=new core.ObjectMatrix(cellMatrixData);rangeMatrixData.getValue(row,column)&&(rangeMatrixData.realDeleteValue(row,column),this._arrayFormulaRange[unitId]&&(this._arrayFormulaRange[unitId][sheetId]=rangeMatrixData.getData()))}initFormulaData(){if(this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).length===0)return;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId();this._formulaData[unitId]={},workbook.getSheets().forEach(worksheet=>{const cellMatrix=worksheet.getCellMatrix(),sheetId=worksheet.getSheetId();initSheetFormulaData(this._formulaData,unitId,sheetId,cellMatrix)})}getCalculateData(){const unitAllSheet=this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET),allUnitData={},unitSheetNameMap={};for(const workbook of unitAllSheet){const unitId=workbook.getUnitId(),sheets=workbook.getSheets(),sheetData={},sheetNameMap={};for(const sheet of sheets){const sheetId=sheet.getSheetId(),sheetConfig=sheet.getConfig();sheetData[sheetId]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData,defaultRowHeight:sheetConfig.defaultRowHeight,defaultColumnWidth:sheetConfig.defaultColumnWidth},sheetNameMap[sheet.getName()]=sheet.getSheetId()}allUnitData[unitId]=sheetData,unitSheetNameMap[unitId]=sheetNameMap}return{allUnitData,unitSheetNameMap}}updateFormulaData(unitId,sheetId,cellValue){const cellMatrix=new core.ObjectMatrix(cellValue),formulaIdMap=this.getFormulaIdMap(unitId,sheetId),deleteFormulaIdMap=new Map,formulaData=this._formulaData;formulaData[unitId]==null&&(formulaData[unitId]={});const workbookFormulaData=formulaData[unitId];workbookFormulaData[sheetId]==null&&(workbookFormulaData[sheetId]={});const sheetFormulaDataMatrix=new core.ObjectMatrix(workbookFormulaData[sheetId]||{}),newSheetFormulaDataMatrix=new core.ObjectMatrix;return cellMatrix.forValue((r,c,cell)=>{updateFormulaDataByCellValue(sheetFormulaDataMatrix,newSheetFormulaDataMatrix,formulaIdMap,deleteFormulaIdMap,r,c,cell)}),sheetFormulaDataMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"";if(core.isFormulaId(formulaId)){const formulaInfo=formulaIdMap.get(formulaId),deleteFormula=deleteFormulaIdMap.get(formulaId);if(formulaInfo&&!core.isFormulaString(formulaString)){const f=formulaInfo.f,x=c-formulaInfo.c,y=r-formulaInfo.r;sheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y}),newSheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y})}else if(typeof deleteFormula=="string"){const x=(cell==null?void 0:cell.x)||0,y=(cell==null?void 0:cell.y)||0,offsetFormula=this._lexerTreeBuilder.moveFormulaRefOffset(deleteFormula,x,y);deleteFormulaIdMap.set(formulaId,{r,c,f:offsetFormula}),sheetFormulaDataMatrix.setValue(r,c,{f:offsetFormula,si:formulaId}),newSheetFormulaDataMatrix.setValue(r,c,{f:offsetFormula,si:formulaId})}else if(typeof deleteFormula=="object"){const x=c-deleteFormula.c,y=r-deleteFormula.r;sheetFormulaDataMatrix.setValue(r,c,{f:deleteFormula.f,si:formulaId,x,y}),newSheetFormulaDataMatrix.setValue(r,c,{f:deleteFormula.f,si:formulaId,x,y})}}}),newSheetFormulaDataMatrix.clone()}updateArrayFormulaRange(unitId,sheetId,cellValue){var _a28;const arrayFormulaRange=(_a28=this._arrayFormulaRange[unitId])==null?void 0:_a28[sheetId];if(!arrayFormulaRange)return;const arrayFormulaRangeMatrix=new core.ObjectMatrix(arrayFormulaRange);new core.ObjectMatrix(cellValue).forValue((r,c,cell)=>{arrayFormulaRangeMatrix.realDeleteValue(r,c)})}updateArrayFormulaCellData(unitId,sheetId,cellValue){var _a28,_b;const arrayFormulaRange=(_a28=this._arrayFormulaRange[unitId])==null?void 0:_a28[sheetId];if(!arrayFormulaRange)return;const arrayFormulaRangeMatrix=new core.ObjectMatrix(arrayFormulaRange),arrayFormulaCellData=(_b=this._arrayFormulaCellData[unitId])==null?void 0:_b[sheetId];if(!arrayFormulaCellData)return;const arrayFormulaCellDataMatrix=new core.ObjectMatrix(arrayFormulaCellData);new core.ObjectMatrix(cellValue).forValue((r,c,cell)=>{clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix,arrayFormulaCellDataMatrix,r,c)})}getFormulaItemBySId(sId,sheetId,unitId){const formulaData=this._formulaData;if(formulaData[unitId]==null)return null;const workbookFormulaData=formulaData[unitId];if((workbookFormulaData==null?void 0:workbookFormulaData[sheetId])==null)return null;const cellMatrix=new core.ObjectMatrix(workbookFormulaData[sheetId]||{});let formulaDataItem=null;return cellMatrix.forValue((row,column,item)=>{if(item==null)return!0;const{f,si,x=0,y=0}=item;if(si===sId&&f.length>0&&x===0&&y===0)return formulaDataItem=item,!1}),formulaDataItem}getFormulaDataItem(row,column,sheetId,unitId){var _a28,_b,_c,_d;return(_d=(_c=(_b=(_a28=this._formulaData)==null?void 0:_a28[unitId])==null?void 0:_b[sheetId])==null?void 0:_c[row])==null?void 0:_d[column]}getFormulaIdMap(unitId,sheetId){const formulaIdMap=new Map,formulaData=this._formulaData;if(formulaData[unitId]==null)return formulaIdMap;const workbookFormulaData=formulaData[unitId];return(workbookFormulaData==null?void 0:workbookFormulaData[sheetId])==null||new core.ObjectMatrix(workbookFormulaData[sheetId]||{}).forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",x=(cell==null?void 0:cell.x)||0,y=(cell==null?void 0:cell.y)||0;core.isFormulaString(formulaString)&&core.isFormulaId(formulaId)&&x===0&&y===0&&formulaIdMap.set(formulaId,{f:formulaString,r,c})}),formulaIdMap}getFormulaStringByCell(row,column,sheetId,unitId){const formulaDataItem=this.getFormulaDataItem(row,column,sheetId,unitId);if(formulaDataItem==null)return null;const{f,si,x=0,y=0}=formulaDataItem;if(si!=null&&(x!==0||y!==0)){let formulaString="";if(f.length>0)formulaString=f;else{const originItem=this.getFormulaItemBySId(si,sheetId,unitId);if(originItem==null||originItem.f.length===0)return null;formulaString=originItem.f}return formulaString=this._lexerTreeBuilder.moveFormulaRefOffset(formulaString,x,y),formulaString}return core.isFormulaString(f)?f:null}},__name(_a2,"FormulaDataModel"),_a2);exports.FormulaDataModel=__decorateClass$m([__decorateParam$m(0,core.IUniverInstanceService),__decorateParam$m(1,core.Inject(LexerTreeBuilder))],exports.FormulaDataModel);function initSheetFormulaData(formulaData,unitId,sheetId,cellMatrix){const formulaIdMap=new Map,sheetFormulaDataMatrix=new core.ObjectMatrix;cellMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",checkFormulaString=core.isFormulaString(formulaString),checkFormulaId=core.isFormulaId(formulaId);checkFormulaString&&checkFormulaId?(sheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId}),formulaIdMap.set(formulaId,{f:formulaString,r,c})):checkFormulaString&&!checkFormulaId?sheetFormulaDataMatrix.setValue(r,c,{f:formulaString}):!checkFormulaString&&checkFormulaId&&sheetFormulaDataMatrix.setValue(r,c,{f:"",si:formulaId})}),sheetFormulaDataMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"";if(core.isFormulaId(formulaId)&&!core.isFormulaString(formulaString)){const formulaInfo=formulaIdMap.get(formulaId);if(formulaInfo){const f=formulaInfo.f,x=c-formulaInfo.c,y=r-formulaInfo.r;sheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y})}else sheetFormulaDataMatrix.realDeleteValue(r,c)}}),formulaData[unitId]||(formulaData[unitId]={});const newSheetFormulaData=sheetFormulaDataMatrix.clone();return formulaData[unitId][sheetId]=newSheetFormulaData,{[unitId]:{[sheetId]:newSheetFormulaData}}}__name(initSheetFormulaData,"initSheetFormulaData");var _a3;const Interval=(_a3=class{constructor(low,high){this.low=low,this.high=high}clone(){return new _a3(this.low,this.high)}get max(){return this.clone()}less_than(other_interval){return this.low<other_interval.low||this.low===other_interval.low&&this.high<other_interval.high}equal_to(other_interval){return this.low===other_interval.low&&this.high===other_interval.high}intersect(other_interval){return!this.not_intersect(other_interval)}not_intersect(other_interval){return this.high<other_interval.low||other_interval.high<this.low}merge(other_interval){return new _a3(this.low===void 0?other_interval.low:this.low<other_interval.low?this.low:other_interval.low,this.high===void 0?other_interval.high:this.high>other_interval.high?this.high:other_interval.high)}output(){return[this.low,this.high]}static comparable_max(interval1,interval2){return interval1.merge(interval2)}static comparable_less_than(val1,val2){return val1<val2}},__name(_a3,"Interval"),_a3),RB_TREE_COLOR_RED=0,RB_TREE_COLOR_BLACK=1,_Node=class _Node{constructor(key=void 0,value=void 0,left=null,right=null,parent=null,color=RB_TREE_COLOR_BLACK){if(this.left=left,this.right=right,this.parent=parent,this.color=color,this.item={key,value},key&&key instanceof Array&&key.length===2&&!Number.isNaN(key[0])&&!Number.isNaN(key[1])){let[low,high]=key;low>high&&([low,high]=[high,low]),this.item.key=new Interval(low,high)}this.max=this.item.key?this.item.key.max:void 0}isNil(){return this.item.key===void 0&&this.item.value===void 0&&this.left===null&&this.right===null&&this.color===RB_TREE_COLOR_BLACK}_value_less_than(other_node){return this.item.value&&other_node.item.value&&this.item.value.less_than?this.item.value.less_than(other_node.item.value):this.item.value<other_node.item.value}less_than(other_node){return this.item.value===this.item.key&&other_node.item.value===other_node.item.key?this.item.key.less_than(other_node.item.key):this.item.key.less_than(other_node.item.key)||this.item.key.equal_to(other_node.item.key)&&this._value_less_than(other_node)}_value_equal(other_node){return this.item.value&&other_node.item.value&&this.item.value.equal_to?this.item.value.equal_to(other_node.item.value):this.item.value===other_node.item.value}equal_to(other_node){return this.item.value===this.item.key&&other_node.item.value===other_node.item.key?this.item.key.equal_to(other_node.item.key):this.item.key.equal_to(other_node.item.key)&&this._value_equal(other_node)}intersect(other_node){return this.item.key.intersect(other_node.item.key)}copy_data(other_node){this.item.key=other_node.item.key,this.item.value=other_node.item.value}update_max(){if(this.max=this.item.key?this.item.key.max:void 0,this.right&&this.right.max){const comparable_max=this.item.key.constructor.comparable_max;this.max=comparable_max(this.max,this.right.max)}if(this.left&&this.left.max){const comparable_max=this.item.key.constructor.comparable_max;this.max=comparable_max(this.max,this.left.max)}}not_intersect_left_subtree(search_node){const comparable_less_than=this.item.key.constructor.comparable_less_than;let high=this.left.max.high!==void 0?this.left.max.high:this.left.max;return comparable_less_than(high,search_node.item.key.low)}not_intersect_right_subtree(search_node){const comparable_less_than=this.item.key.constructor.comparable_less_than;let low=this.right.max.low!==void 0?this.right.max.low:this.right.item.key.low;return comparable_less_than(search_node.item.key.high,low)}};__name(_Node,"Node");let Node=_Node;const _IntervalTree=class _IntervalTree{constructor(){this.root=null,this.nil_node=new Node}get size(){let count=0;return this.tree_walk(this.root,()=>count++),count}get keys(){let res=[];return this.tree_walk(this.root,node=>res.push(node.item.key.output?node.item.key.output():node.item.key)),res}get values(){let res=[];return this.tree_walk(this.root,node=>res.push(node.item.value)),res}get items(){let res=[];return this.tree_walk(this.root,node=>res.push({key:node.item.key.output?node.item.key.output():node.item.key,value:node.item.value})),res}isEmpty(){return this.root==null||this.root===this.nil_node}clear(){this.root=null}insert(key,value=key){if(key===void 0)return;let insert_node=new Node(key,value,this.nil_node,this.nil_node,null,RB_TREE_COLOR_RED);return this.tree_insert(insert_node),this.recalc_max(insert_node),insert_node}exist(key,value=key){let search_node=new Node(key,value);return!!this.tree_search(this.root,search_node)}remove(key,value=key){let search_node=new Node(key,value),delete_node=this.tree_search(this.root,search_node);return delete_node&&this.tree_delete(delete_node),delete_node}search(interval,outputMapperFn=(value,key)=>value===key?key.output():value){let search_node=new Node(interval),resp_nodes=[];return this.tree_search_interval(this.root,search_node,resp_nodes),resp_nodes.map(node=>outputMapperFn(node.item.value,node.item.key))}intersect_any(interval){let search_node=new Node(interval);return this.tree_find_any_interval(this.root,search_node)}forEach(visitor){this.tree_walk(this.root,node=>visitor(node.item.key,node.item.value))}map(callback){const tree=new _IntervalTree;return this.tree_walk(this.root,node=>tree.insert(node.item.key,callback(node.item.value,node.item.key))),tree}*iterate(interval,outputMapperFn=(value,key)=>value===key?key.output():value){let node;for(interval?node=this.tree_search_nearest_forward(this.root,new Node(interval)):this.root&&(node=this.local_minimum(this.root));node;)yield outputMapperFn(node.item.value,node.item.key),node=this.tree_successor(node)}recalc_max(node){let node_current=node;for(;node_current.parent!=null;)node_current.parent.update_max(),node_current=node_current.parent}tree_insert(insert_node){let current_node=this.root,parent_node=null;if(this.root==null||this.root===this.nil_node)this.root=insert_node;else{for(;current_node!==this.nil_node;)parent_node=current_node,insert_node.less_than(current_node)?current_node=current_node.left:current_node=current_node.right;insert_node.parent=parent_node,insert_node.less_than(parent_node)?parent_node.left=insert_node:parent_node.right=insert_node}this.insert_fixup(insert_node)}insert_fixup(insert_node){let current_node,uncle_node;for(current_node=insert_node;current_node!==this.root&¤t_node.parent.color===RB_TREE_COLOR_RED;)current_node.parent===current_node.parent.parent.left?(uncle_node=current_node.parent.parent.right,uncle_node.color===RB_TREE_COLOR_RED?(current_node.parent.color=RB_TREE_COLOR_BLACK,uncle_node.color=RB_TREE_COLOR_BLACK,current_node.parent.parent.color=RB_TREE_COLOR_RED,current_node=current_node.parent.parent):(current_node===current_node.parent.right&&(current_node=current_node.parent,this.rotate_left(current_node)),current_node.parent.color=RB_TREE_COLOR_BLACK,current_node.parent.parent.color=RB_TREE_COLOR_RED,this.rotate_right(current_node.parent.parent))):(uncle_node=current_node.parent.parent.left,uncle_node.color===RB_TREE_COLOR_RED?(current_node.parent.color=RB_TREE_COLOR_BLACK,uncle_node.color=RB_TREE_COLOR_BLACK,current_node.parent.parent.color=RB_TREE_COLOR_RED,current_node=current_node.parent.parent):(current_node===current_node.parent.left&&(current_node=current_node.parent,this.rotate_right(current_node)),current_node.parent.color=RB_TREE_COLOR_BLACK,current_node.parent.parent.color=RB_TREE_COLOR_RED,this.rotate_left(current_node.parent.parent)));this.root.color=RB_TREE_COLOR_BLACK}tree_delete(delete_node){let cut_node,fix_node;delete_node.left===this.nil_node||delete_node.right===this.nil_node?cut_node=delete_node:cut_node=this.tree_successor(delete_node),cut_node.left!==this.nil_node?fix_node=cut_node.left:fix_node=cut_node.right,fix_node.parent=cut_node.parent,cut_node===this.root?this.root=fix_node:(cut_node===cut_node.parent.left?cut_node.parent.left=fix_node:cut_node.parent.right=fix_node,cut_node.parent.update_max()),this.recalc_max(fix_node),cut_node!==delete_node&&(delete_node.copy_data(cut_node),delete_node.update_max(),this.recalc_max(delete_node)),cut_node.color===RB_TREE_COLOR_BLACK&&this.delete_fixup(fix_node)}delete_fixup(fix_node){let current_node=fix_node,brother_node;for(;current_node!==this.root&¤t_node.parent!=null&¤t_node.color===RB_TREE_COLOR_BLACK;)current_node===current_node.parent.left?(brother_node=current_node.parent.right,brother_node.color===RB_TREE_COLOR_RED&&(brother_node.color=RB_TREE_COLOR_BLACK,current_node.parent.color=RB_TREE_COLOR_RED,this.rotate_left(current_node.parent),brother_node=current_node.parent.right),brother_node.left.color===RB_TREE_COLOR_BLACK&&brother_node.right.color===RB_TREE_COLOR_BLACK?(brother_node.color=RB_TREE_COLOR_RED,current_node=current_node.parent):(brother_node.right.color===RB_TREE_COLOR_BLACK&&(brother_node.color=RB_TREE_COLOR_RED,brother_node.left.color=RB_TREE_COLOR_BLACK,this.rotate_right(brother_node),brother_node=current_node.parent.right),brother_node.color=current_node.parent.color,current_node.parent.color=RB_TREE_COLOR_BLACK,brother_node.right.color=RB_TREE_COLOR_BLACK,this.rotate_left(current_node.parent),current_node=this.root)):(brother_node=current_node.parent.left,brother_node.color===RB_TREE_COLOR_RED&&(brother_node.color=RB_TREE_COLOR_BLACK,current_node.parent.color=RB_TREE_COLOR_RED,this.rotate_right(current_node.parent),brother_node=current_node.parent.left),brother_node.left.color===RB_TREE_COLOR_BLACK&&brother_node.right.color===RB_TREE_COLOR_BLACK?(brother_node.color=RB_TREE_COLOR_RED,current_node=current_node.parent):(brother_node.left.color===RB_TREE_COLOR_BLACK&&(brother_node.color=RB_TREE_COLOR_RED,brother_node.right.color=RB_TREE_COLOR_BLACK,this.rotate_left(brother_node),brother_node=current_node.parent.left),brother_node.color=current_node.parent.color,current_node.parent.color=RB_TREE_COLOR_BLACK,brother_node.left.color=RB_TREE_COLOR_BLACK,this.rotate_right(current_node.parent),current_node=this.root));current_node.color=RB_TREE_COLOR_BLACK}tree_search(node,search_node){if(!(node==null||node===this.nil_node))return search_node.equal_to(node)?node:search_node.less_than(node)?this.tree_search(node.left,search_node):this.tree_search(node.right,search_node)}tree_search_nearest_forward(node,search_node){let best,curr=node;for(;curr&&curr!==this.nil_node;)curr.less_than(search_node)?curr.intersect(search_node)?(best=curr,curr=curr.left):curr=curr.right:((!best||curr.less_than(best))&&(best=curr),curr=curr.left);return best||null}tree_search_interval(node,search_node,res){node!=null&&node!==this.nil_node&&(node.left!==this.nil_node&&!node.not_intersect_left_subtree(search_node)&&this.tree_search_interval(node.left,search_node,res),node.intersect(search_node)&&res.push(node),node.right!==this.nil_node&&!node.not_intersect_right_subtree(search_node)&&this.tree_search_interval(node.right,search_node,res))}tree_find_any_interval(node,search_node){let found=!1;return node!=null&&node!==this.nil_node&&(node.left!==this.nil_node&&!node.not_intersect_left_subtree(search_node)&&(found=this.tree_find_any_interval(node.left,search_node)),found||(found=node.intersect(search_node)),!found&&node.right!==this.nil_node&&!node.not_intersect_right_subtree(search_node)&&(found=this.tree_find_any_interval(node.right,search_node))),found}local_minimum(node){let node_min=node;for(;node_min.left!=null&&node_min.left!==this.nil_node;)node_min=node_min.left;return node_min}local_maximum(node){let node_max=node;for(;node_max.right!=null&&node_max.right!==this.nil_node;)node_max=node_max.right;return node_max}tree_successor(node){let node_successor,current_node,parent_node;if(node.right!==this.nil_node)node_successor=this.local_minimum(node.right);else{for(current_node=node,parent_node=node.parent;parent_node!=null&&parent_node.right===current_node;)current_node=parent_node,parent_node=parent_node.parent;node_successor=parent_node}return node_successor}rotate_left(x){let y=x.right;x.right=y.left,y.left!==this.nil_node&&(y.left.parent=x),y.parent=x.parent,x===this.root?this.root=y:x===x.parent.left?x.parent.left=y:x.parent.right=y,y.left=x,x.parent=y,x!=null&&x!==this.nil_node&&x.update_max(),y=x.parent,y!=null&&y!==this.nil_node&&y.update_max()}rotate_right(y){let x=y.left;y.left=x.right,x.right!==this.nil_node&&(x.right.parent=y),x.parent=y.parent,y===this.root?this.root=x:y===y.parent.left?y.parent.left=x:y.parent.right=x,x.right=y,y.parent=x,y!==null&&y!==this.nil_node&&y.update_max(),x=y.parent,x!=null&&x!==this.nil_node&&x.update_max()}tree_walk(node,action){node!=null&&node!==this.nil_node&&(this.tree_walk(node.left,action),action(node),this.tree_walk(node.right,action))}testRedBlackProperty(){let res=!0;return this.tree_walk(this.root,function(node){node.color===RB_TREE_COLOR_RED&&(node.left.color===RB_TREE_COLOR_BLACK&&node.right.color===RB_TREE_COLOR_BLACK||(res=!1))}),res}testBlackHeightProperty(node){let height=0,heightLeft=0,heightRight=0;if(node.color===RB_TREE_COLOR_BLACK&&height++,node.left!==this.nil_node?heightLeft=this.testBlackHeightProperty(node.left):heightLeft=1,node.right!==this.nil_node?heightRight=this.testBlackHeightProperty(node.right):heightRight=1,heightLeft!==heightRight)throw new Error("Red-black height property violated");return height+=heightLeft,height}};__name(_IntervalTree,"IntervalTree");let IntervalTree=_IntervalTree;const _InvertedIndexCache=class _InvertedIndexCache{constructor(){__publicField(this,"_cache",new Map);__publicField(this,"_continueBuildingCache",new Map)}set(unitId,sheetId,column,value,row){if(!this.shouldContinueBuildingCache(unitId,sheetId,column,row))return;let unitMap=this._cache.get(unitId);unitMap==null&&(unitMap=new Map,this._cache.set(unitId,unitMap));let sheetMap=unitMap.get(sheetId);sheetMap==null&&(sheetMap=new Map,unitMap.set(sheetId,sheetMap));let columnMap=sheetMap.get(column);columnMap==null&&(columnMap=new Map,sheetMap.set(column,columnMap));let cellList=columnMap.get(value);cellList==null&&(cellList=new Set,columnMap.set(value,cellList)),cellList.add(row)}getCellValuePositions(unitId,sheetId,column){var _a28,_b;return(_b=(_a28=this._cache.get(unitId))==null?void 0:_a28.get(sheetId))==null?void 0:_b.get(column)}getCellPositions(unitId,sheetId,column,value,rowsInCache){var _a28,_b,_c;const rows=(_c=(_b=(_a28=this._cache.get(unitId))==null?void 0:_a28.get(sheetId))==null?void 0:_b.get(column))==null?void 0:_c.get(value);return rows&&[...rows].filter(row=>rowsInCache.some(([start,end])=>row>=start&&row<=end))}setContinueBuildingCache(unitId,sheetId,column,startRow,endRow){if(column===-1||startRow===-1||endRow===-1)return;let unitMap=this._continueBuildingCache.get(unitId);unitMap==null&&(unitMap=new Map,this._continueBuildingCache.set(unitId,unitMap));let sheetMap=unitMap.get(sheetId);sheetMap==null&&(sheetMap=new Map,unitMap.set(sheetId,sheetMap));let columnMap=sheetMap.get(column);if(columnMap==null){columnMap=new IntervalTree,columnMap.insert([startRow,endRow]),sheetMap.set(column,columnMap);return}this._handleNewInterval(columnMap,startRow,endRow)}shouldContinueBuildingCache(unitId,sheetId,column,row){var _a28,_b;const columnMap=(_b=(_a28=this._continueBuildingCache.get(unitId))==null?void 0:_a28.get(sheetId))==null?void 0:_b.get(column);return columnMap?columnMap.search([row,row]).length===0:!0}canUseCache(unitId,sheetId,column,rangeStartRow,rangeEndRow){var _a28,_b;const columnMap=(_b=(_a28=this._continueBuildingCache.get(unitId))==null?void 0:_a28.get(sheetId))==null?void 0:_b.get(column);if(column===-1||rangeStartRow===-1||rangeEndRow===-1||!columnMap)return{rowsInCache:[],rowsNotInCache:[]};const result=columnMap.search([rangeStartRow,rangeEndRow]);if(result.length===0)return{rowsInCache:[],rowsNotInCache:[]};result.sort((a,b)=>a[0]-b[0]);const rowsInCache=[],rowsNotInCache=[];let _rangeStartRow=rangeStartRow;for(const interval of result){const[start,end]=interval;if(_rangeStartRow>=start){if(rangeEndRow<=end){rowsInCache.push([_rangeStartRow,rangeEndRow]);break}rowsInCache.push([_rangeStartRow,end]),_rangeStartRow=end+1}else{if(rangeEndRow>end){rowsInCache.push([start,end]),rowsNotInCache.push([_rangeStartRow,start-1]),_rangeStartRow=end+1;continue}rowsInCache.push([start,rangeEndRow]),rowsNotInCache.push([_rangeStartRow,start-1])}}return{rowsInCache,rowsNotInCache}}clear(){this._cache.clear(),this._continueBuildingCache.clear()}_handleNewInterval(columnMap,startRow,endRow){let result=columnMap.search([startRow,endRow]);if(result.length===0){const adjacentRange=[startRow-1<0?0:startRow-1,endRow+1];if(result=columnMap.search(adjacentRange),result.length===0){columnMap.insert([startRow,endRow]);return}}let min2=startRow,max2=endRow;for(const interval of result)min2=Math.min(min2,interval[0]),max2=Math.max(max2,interval[1]),columnMap.remove(interval);columnMap.insert([min2,max2])}};__name(_InvertedIndexCache,"InvertedIndexCache");let InvertedIndexCache=_InvertedIndexCache;const CELL_INVERTED_INDEX_CACHE=new InvertedIndexCache,PLUGIN_CONFIG_KEY="engine-formula.config",defaultPluginConfig={};var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$l(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$l(target,key,result),result},"__decorateClass$l"),__decorateParam$l=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$l"),_a4;exports.FormulaCurrentConfigService=(_a4=class extends core.Disposable{constructor(_univerInstanceService,_localeService){super();__publicField(this,"_unitData",{});__publicField(this,"_unitStylesData",{});__publicField(this,"_arrayFormulaCellData",{});__publicField(this,"_arrayFormulaRange",{});__publicField(this,"_formulaData",{});__publicField(this,"_sheetNameMap",{});__publicField(this,"_forceCalculate",!1);__publicField(this,"_clearDependencyTreeCache",{});__publicField(this,"_dirtyRanges",[]);__publicField(this,"_dirtyNameMap",{});__publicField(this,"_dirtyDefinedNameMap",{});__publicField(this,"_dirtyUnitFeatureMap",{});__publicField(this,"_dirtyUnitOtherFormulaMap",{});__publicField(this,"_excludedCell");__publicField(this,"_sheetIdToNameMap",{});__publicField(this,"_executeUnitId","");__publicField(this,"_executeSubUnitId","");this._univerInstanceService=_univerInstanceService,this._localeService=_localeService}dispose(){this._unitData={},this._unitStylesData={},this._formulaData={},this._arrayFormulaCellData={},this._arrayFormulaRange={},this._sheetNameMap={},this._dirtyRanges=[],this._dirtyNameMap={},this._dirtyDefinedNameMap={},this._dirtyUnitFeatureMap={},this._excludedCell={},this._sheetIdToNameMap={},this._dirtyUnitOtherFormulaMap={}}getExecuteUnitId(){return this._executeUnitId}getExecuteSubUnitId(){return this._executeSubUnitId}setExecuteUnitId(unitId){this._executeUnitId=unitId}setExecuteSubUnitId(subUnitId){this._executeSubUnitId=subUnitId}getExcludedRange(){return this._excludedCell}getUnitData(){return this._unitData}getUnitStylesData(){return this._unitStylesData}getFormulaData(){return this._formulaData}getArrayFormulaCellData(){return this._arrayFormulaCellData}getArrayFormulaRange(){return this._arrayFormulaRange}getSheetNameMap(){return this._sheetNameMap}isForceCalculate(){return this._forceCalculate}getDirtyRanges(){return this._dirtyRanges}getDirtyNameMap(){return this._dirtyNameMap}getDirtyDefinedNameMap(){return this._dirtyDefinedNameMap}getDirtyUnitFeatureMap(){return this._dirtyUnitFeatureMap}getDirtyUnitOtherFormulaMap(){return this._dirtyUnitOtherFormulaMap}getSheetName(unitId,sheetId){return this._sheetIdToNameMap[unitId]==null?"":this._sheetIdToNameMap[unitId][sheetId]||""}getClearDependencyTreeCache(){return this._clearDependencyTreeCache}getLocale(){return this._localeService.getCurrentLocale()}getSheetsInfo(){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),{id,sheetOrder}=workbook.getSnapshot();return{sheetOrder,sheetNameMap:this._sheetIdToNameMap[id]}}load(config2){if(config2.allUnitData&&config2.unitSheetNameMap&&config2.unitStylesData)this._unitData=config2.allUnitData,this._unitStylesData=config2.unitStylesData,this._sheetNameMap=config2.unitSheetNameMap;else{const{allUnitData,unitSheetNameMap,unitStylesData}=this._loadSheetData();this._unitData=allUnitData,this._unitStylesData=unitStylesData,this._sheetNameMap=unitSheetNameMap}this._formulaData=config2.formulaData,this._arrayFormulaCellData=convertUnitDataToRuntime(config2.arrayFormulaCellData),this._arrayFormulaRange=config2.arrayFormulaRange,this._forceCalculate=config2.forceCalculate,this._clearDependencyTreeCache=config2.clearDependencyTreeCache||{},this._dirtyRanges=config2.dirtyRanges,this._dirtyNameMap=config2.dirtyNameMap,this._dirtyDefinedNameMap=config2.dirtyDefinedNameMap,this._dirtyUnitFeatureMap=config2.dirtyUnitFeatureMap,this._dirtyUnitOtherFormulaMap=config2.dirtyUnitOtherFormulaMap,this._excludedCell=config2.excludedCell,this._mergeNameMap(this._sheetNameMap,this._dirtyNameMap)}getDirtyData(){return{forceCalculation:this._forceCalculate,dirtyRanges:this._dirtyRanges,dirtyNameMap:this._dirtyNameMap,dirtyDefinedNameMap:this._dirtyDefinedNameMap,dirtyUnitFeatureMap:this._dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap:this._dirtyUnitOtherFormulaMap,clearDependencyTreeCache:this._clearDependencyTreeCache}}loadDirtyRangesAndExcludedCell(dirtyRanges,excludedCell){this._dirtyRanges=dirtyRanges,this._excludedCell=excludedCell,this._dirtyNameMap={}}registerUnitData(unitData){this._unitData=unitData}registerFormulaData(formulaData){this._formulaData=formulaData}registerSheetNameMap(sheetNameMap){this._sheetNameMap=sheetNameMap}_mergeNameMap(unitSheetNameMap,dirtyNameMap){Object.keys(dirtyNameMap).forEach(unitId=>{dirtyNameMap[unitId]&&Object.keys(dirtyNameMap[unitId]).forEach(sheetId=>{unitSheetNameMap[unitId]==null&&(unitSheetNameMap[unitId]={}),unitSheetNameMap[unitId][dirtyNameMap[unitId][sheetId]]=sheetId})}),this._sheetIdToNameMap={},Object.keys(unitSheetNameMap).forEach(unitId=>{Object.keys(unitSheetNameMap[unitId]).forEach(sheetName=>{this._sheetIdToNameMap[unitId]==null&&(this._sheetIdToNameMap[unitId]={}),this._sheetIdToNameMap[unitId][unitSheetNameMap[unitId][sheetName]]=sheetName})})}_loadSheetData(){const unitAllSheet=this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET),workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();this._executeUnitId=workbook==null?void 0:workbook.getUnitId(),this._executeSubUnitId=worksheet==null?void 0:worksheet.getSheetId();const allUnitData={},unitStylesData={},unitSheetNameMap={};for(const workbook2 of unitAllSheet){const unitId=workbook2.getUnitId(),sheets=workbook2.getSheets(),sheetData={},sheetNameMap={};for(const sheet of sheets){const sheetId=sheet.getSheetId(),sheetConfig=sheet.getConfig();sheetData[sheetId]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData,defaultRowHeight:sheetConfig.defaultRowHeight,defaultColumnWidth:sheetConfig.defaultColumnWidth},sheetNameMap[sheet.getName()]=sheet.getSheetId()}allUnitData[unitId]=sheetData,unitStylesData[unitId]=workbook2.getStyles(),unitSheetNameMap[unitId]=sheetNameMap}return{allUnitData,unitStylesData,unitSheetNameMap}}},__name(_a4,"FormulaCurrentConfigService"),_a4);exports.FormulaCurrentConfigService=__decorateClass$l([__decorateParam$l(0,core.IUniverInstanceService),__decorateParam$l(1,core.Inject(core.LocaleService))],exports.FormulaCurrentConfigService);const IFormulaCurrentConfigService=core.createIdentifier("univer.formula.current-data.service");var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$k(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$k(target,key,result),result},"__decorateClass$k"),__decorateParam$k=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$k"),_a5;exports.Lexer=(_a5=class extends core.Disposable{constructor(_definedNamesService,_lexerTreeBuilder,_formulaCurrentConfigService){super(),this._definedNamesService=_definedNamesService,this._lexerTreeBuilder=_lexerTreeBuilder,this._formulaCurrentConfigService=_formulaCurrentConfigService}treeBuilder(formulaString,transformSuffix=!0){return this._lexerTreeBuilder.treeBuilder(formulaString,transformSuffix,this._injectDefinedName.bind(this),this._simpleCheckDefinedName.bind(this))}_simpleCheckDefinedName(formulaString){const definedNameMap=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._formulaCurrentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++){const name=names[i];if(formulaString.indexOf(name)>-1)return!0}}return!1}_checkDefinedNameDirty(token){const definedNameMap=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._formulaCurrentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++)if(names[i]===token)return!0}return!1}_injectDefinedName(sequenceArray){const unitId=this._formulaCurrentConfigService.getExecuteUnitId();if(unitId==null)return{sequenceString:"",hasDefinedName:!1,definedNames:[]};const sequenceNodes=this._lexerTreeBuilder.getSequenceNode(sequenceArray);let sequenceString="",hasDefinedName=!1;const definedNames=[];for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"){sequenceString+=node;continue}const{nodeType,token}=node;if(nodeType===sequenceNodeType.REFERENCE||nodeType===sequenceNodeType.FUNCTION){const definedContent=this._definedNamesService.getValueByName(unitId,token);if(definedContent){let refString=definedContent.formulaOrRefString;refString.substring(0,1)===operatorToken.EQUALS&&(refString=refString.substring(1)),sequenceString+=refString,definedNames.push(definedContent.name),hasDefinedName=!0}else this._checkDefinedNameDirty(token)?(sequenceString+=ErrorType$1.NAME,hasDefinedName=!0,definedNames.push(token)):sequenceString+=token}else sequenceString+=token}return{sequenceString,hasDefinedName,definedNames}}},__name(_a5,"Lexer"),_a5);exports.Lexer=__decorateClass$k([__decorateParam$k(0,IDefinedNamesService),__decorateParam$k(1,core.Inject(LexerTreeBuilder)),__decorateParam$k(2,IFormulaCurrentConfigService)],exports.Lexer);function getRuntimeFeatureCell(row,column,sheetId,unitId,runtimeFeatureCellData){var _a28;const featureKeys=Object.keys(runtimeFeatureCellData);for(const featureId of featureKeys){const data=runtimeFeatureCellData[featureId],CellData=(_a28=data==null?void 0:data[unitId])==null?void 0:_a28[sheetId];if(CellData==null)continue;const value=CellData.getValue(row,column);if(value!=null)return value}}__name(getRuntimeFeatureCell,"getRuntimeFeatureCell");const currencySymbols=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],NumberFormatTypeMap={currency:2,date:4,datetime:5,error:11,fraction:7,general:0,grouped:11,number:1,percent:6,scientific:8,text:9,time:5,unknown:11};function handleNumfmtInCell(oldCell,cell,styles){var _a28,_b;if(oldCell==null||cell==null)return cell;const oldCellStyle=(styles==null?void 0:styles.getStyleByCell(oldCell))||oldCell.s,cellStyle=(styles==null?void 0:styles.getStyleByCell(cell))||cell.s;if(oldCellStyle==null||cellStyle==null||typeof oldCellStyle!="object"||typeof cellStyle!="object")return cell;const oldPattern=(_a28=oldCellStyle==null?void 0:oldCellStyle.n)==null?void 0:_a28.pattern,pattern=(_b=cellStyle==null?void 0:cellStyle.n)==null?void 0:_b.pattern;if(oldPattern==null||pattern==null)return cell;const newPattern=oldPattern||pattern;return cellStyle.n.pattern=newPattern,cell}__name(handleNumfmtInCell,"handleNumfmtInCell");const numberFormatTypeCache=new FormulaAstLRU(1e5);function getNumberFormatType(pattern){const patternTypeCache=numberFormatTypeCache.get(pattern);if(patternTypeCache!==void 0)return patternTypeCache;const type=getNumberFormatTypeRaw(pattern);return numberFormatTypeCache.set(pattern,type),type}__name(getNumberFormatType,"getNumberFormatType");function clearNumberFormatTypeCache(){numberFormatTypeCache.clear()}__name(clearNumberFormatTypeCache,"clearNumberFormatTypeCache");function getNumberFormatTypeRaw(pattern){if(isAccounting(pattern))return 3;const type=core.numfmt.getInfo(pattern).type||"unknown";return NumberFormatTypeMap[type]}__name(getNumberFormatTypeRaw,"getNumberFormatTypeRaw");function isAccounting(pattern){return!!currencySymbols.find(code=>pattern.includes(code))&&pattern.startsWith("_(")}__name(isAccounting,"isAccounting");function comparePatternPriority(previousPattern,nextPattern,operator){if(previousPattern==="")return nextPattern;if(nextPattern==="")return previousPattern;const previousPatternType=getNumberFormatType(previousPattern),nextPatternType=getNumberFormatType(nextPattern);return operator===operatorToken.PLUS||operator===operatorToken.MINUS?previousPatternType===4&&nextPatternType===4||previousPatternType===11&&nextPatternType===11?"":nextPattern:operator===operatorToken.MULTIPLY||operator===operatorToken.DIVIDED?previousPatternType===6&&nextPatternType===6||previousPatternType===7&&nextPatternType===7||previousPatternType===8&&nextPatternType===8||previousPatternType===9&&nextPatternType===9?nextPattern:"":previousPattern||nextPattern}__name(comparePatternPriority,"comparePatternPriority");const countryCurrencySymbolMap=new Map([[core.LocaleType.EN_US,"$"],[core.LocaleType.RU_RU,"₽"],[core.LocaleType.VI_VN,"₫"],[core.LocaleType.ZH_CN,"¥"],[core.LocaleType.ZH_TW,"NT$"]]);function getCurrencySymbol(locale){return countryCurrencySymbolMap.get(locale)||"$"}__name(getCurrencySymbol,"getCurrencySymbol");function getCurrencyFormat(locale,numberDigits=2){let _numberDigits=numberDigits;numberDigits>127&&(_numberDigits=127);let decimal="";return _numberDigits>0&&(decimal=`.${"0".repeat(_numberDigits)}`),`"${getCurrencySymbol(locale)}"#,##0${decimal}_);[Red]("${getCurrencySymbol(locale)}"#,##0${decimal})`}__name(getCurrencyFormat,"getCurrencyFormat");function applyCurrencyFormat(locale,number,numberDigits=2){return core.numfmt.format(getCurrencyFormat(locale,numberDigits),number)}__name(applyCurrencyFormat,"applyCurrencyFormat");const stringToNumberPatternCache=new FormulaAstLRU(1e5);function stringIsNumberPattern(input){let _input=input;_input.startsWith('"')&&_input.endsWith('"')&&(_input=_input.slice(1,-1));const cacheValue=stringToNumberPatternCache.get(_input);if(cacheValue)return{isNumberPattern:!0,value:cacheValue.value,pattern:cacheValue.pattern};const numberPattern=core.numfmt.parseNumber(_input);if(numberPattern)return setNumberPatternCache(_input,numberPattern.v,numberPattern.z);const datePattern=core.numfmt.parseDate(_input);if(datePattern)return setNumberPatternCache(_input,datePattern.v,datePattern.z);const timePattern=core.numfmt.parseTime(_input);return timePattern?setNumberPatternCache(_input,timePattern.v,timePattern.z):{isNumberPattern:!1}}__name(stringIsNumberPattern,"stringIsNumberPattern");function setNumberPatternCache(input,value,pattern){return stringToNumberPatternCache.set(input,{value,pattern}),{isNumberPattern:!0,value,pattern}}__name(setNumberPatternCache,"setNumberPatternCache");function clearStringToNumberPatternCache(){stringToNumberPatternCache.clear()}__name(clearStringToNumberPatternCache,"clearStringToNumberPatternCache");const _ObjectClassType=class _ObjectClassType{constructor(){__publicField(this,"pattern","")}dispose(){}getPattern(){return this.pattern}setPattern(pattern){this.pattern=pattern}isError(){return!1}isAsyncObject(){return!1}isAsyncArrayObject(){return!1}isReferenceObject(){return!1}isArray(){return!1}isValueObject(){return!1}isEqualType(object){return!1}};__name(_ObjectClassType,"ObjectClassType");let ObjectClassType=_ObjectClassType;const _BaseValueObject=class _BaseValueObject extends ObjectClassType{constructor(_rawValue){super(),this._rawValue=_rawValue}isValueObject(){return!0}toUnitRange(){return{range:{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1},sheetId:"",unitId:""}}getValue(){return 0}getArrayValue(){return[]}setValue(value){}setArrayValue(value){}isCube(){return!1}isString(){return!1}isNumber(){return!1}isBoolean(){return!1}isLambda(){return!1}isError(){return!1}isNull(){return!1}sum(){return ErrorValueObject.create(ErrorType$1.VALUE)}max(){return ErrorValueObject.create(ErrorType$1.VALUE)}min(){return ErrorValueObject.create(ErrorType$1.VALUE)}count(){return ErrorValueObject.create(ErrorType$1.VALUE)}countA(){return ErrorValueObject.create(ErrorType$1.VALUE)}countBlank(){return ErrorValueObject.create(ErrorType$1.VALUE)}getNegative(){return ErrorValueObject.create(ErrorType$1.VALUE)}getReciprocal(){return ErrorValueObject.create(ErrorType$1.VALUE)}plus(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}minus(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}multiply(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}divided(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}mod(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}map(callbackFn){return ErrorValueObject.create(ErrorType$1.NAME)}mapValue(callbackFn){return ErrorValueObject.create(ErrorType$1.NAME)}compare(valueObject,operator,isCaseSensitive=!1){return ErrorValueObject.create(ErrorType$1.NAME)}isEqual(valueObject){return this.compare(valueObject,compareToken.EQUALS)}isNotEqual(valueObject){return this.compare(valueObject,compareToken.NOT_EQUAL)}isGreaterThanOrEqual(valueObject){return this.compare(valueObject,compareToken.GREATER_THAN_OR_EQUAL)}isLessThanOrEqual(valueObject){return this.compare(valueObject,compareToken.LESS_THAN_OR_EQUAL)}isLessThan(valueObject){return this.compare(valueObject,compareToken.LESS_THAN)}isGreaterThan(valueObject){return this.compare(valueObject,compareToken.GREATER_THAN)}concatenateFront(valueObject){return ErrorValueObject.create(ErrorType$1.NAME)}concatenateBack(valueObject){return ErrorValueObject.create(ErrorType$1.NAME)}plusBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}minusBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}multiplyBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}dividedBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}modInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}compareBy(value,operator){return ErrorValueObject.create(ErrorType$1.NAME)}concatenate(value,concatenateType=ConcatenateType.FRONT){let currentValue=this.getValue().toString();if(typeof value=="string")concatenateType===ConcatenateType.FRONT?currentValue=value+currentValue:currentValue+=value;else if(typeof value=="number")concatenateType===ConcatenateType.FRONT?currentValue=value.toString()+currentValue:currentValue+=value.toString();else if(typeof value=="boolean"){const booleanString=value?"TRUE":"FALSE";concatenateType===ConcatenateType.FRONT?currentValue=booleanString+currentValue:currentValue+=booleanString}return currentValue}pow(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}powInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}sqrt(){return ErrorValueObject.create(ErrorType$1.VALUE)}cbrt(){return ErrorValueObject.create(ErrorType$1.VALUE)}cos(){return ErrorValueObject.create(ErrorType$1.VALUE)}cosh(){return ErrorValueObject.create(ErrorType$1.VALUE)}acos(){return ErrorValueObject.create(ErrorType$1.VALUE)}acosh(){return ErrorValueObject.create(ErrorType$1.VALUE)}sin(){return ErrorValueObject.create(ErrorType$1.VALUE)}sinh(){return ErrorValueObject.create(ErrorType$1.VALUE)}asin(){return ErrorValueObject.create(ErrorType$1.VALUE)}asinh(){return ErrorValueObject.create(ErrorType$1.VALUE)}tan(){return ErrorValueObject.create(ErrorType$1.VALUE)}tanh(){return ErrorValueObject.create(ErrorType$1.VALUE)}atan(){return ErrorValueObject.create(ErrorType$1.VALUE)}atan2(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}atan2Inverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}atanh(){return ErrorValueObject.create(ErrorType$1.VALUE)}mean(){return this}median(){return this}var(){return this}std(){return this}log(){return ErrorValueObject.create(ErrorType$1.VALUE)}log10(){return ErrorValueObject.create(ErrorType$1.VALUE)}exp(){return ErrorValueObject.create(ErrorType$1.VALUE)}abs(){return ErrorValueObject.create(ErrorType$1.VALUE)}round(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}roundInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}floor(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}floorInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}ceil(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}ceilInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}convertToNumberObjectValue(){return ErrorValueObject.create(ErrorType$1.VALUE)}convertToBooleanObjectValue(){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_BaseValueObject,"BaseValueObject");let BaseValueObject=_BaseValueObject;const Error_CACHE_LRU_COUNT=1e3,ErrorValueObjectCache=new FormulaAstLRU(Error_CACHE_LRU_COUNT),_ErrorValueObject=class _ErrorValueObject extends BaseValueObject{constructor(_errorType,_errorContent=""){super(_errorType),this._errorType=_errorType,this._errorContent=_errorContent}static create(errorType,errorContent=""){const key=`${errorType}-${errorContent}`,cached=ErrorValueObjectCache.get(key);if(cached)return cached;const instance=new _ErrorValueObject(errorType,errorContent);return ErrorValueObjectCache.set(key,instance),instance}getValue(){return this._errorType}getErrorType(){return this._errorType}getErrorContent(){return this._errorContent}isEqualType(object){return object.getErrorType()===this.getErrorType()}isError(){return!0}};__name(_ErrorValueObject,"ErrorValueObject");let ErrorValueObject=_ErrorValueObject;function reverseCompareOperator(operator){let result;switch(operator){case compareToken.EQUALS:result=compareToken.EQUALS;break;case compareToken.GREATER_THAN:result=compareToken.LESS_THAN;break;case compareToken.GREATER_THAN_OR_EQUAL:result=compareToken.LESS_THAN_OR_EQUAL;break;case compareToken.LESS_THAN:result=compareToken.GREATER_THAN;break;case compareToken.LESS_THAN_OR_EQUAL:result=compareToken.GREATER_THAN_OR_EQUAL;break;case compareToken.NOT_EQUAL:result=compareToken.NOT_EQUAL;break}return result}__name(reverseCompareOperator,"reverseCompareOperator");var ArrayBinarySearchType=(ArrayBinarySearchType2=>(ArrayBinarySearchType2[ArrayBinarySearchType2.MIN=0]="MIN",ArrayBinarySearchType2[ArrayBinarySearchType2.MAX=1]="MAX",ArrayBinarySearchType2))(ArrayBinarySearchType||{}),ArrayOrderSearchType=(ArrayOrderSearchType2=>(ArrayOrderSearchType2[ArrayOrderSearchType2.NORMAL=0]="NORMAL",ArrayOrderSearchType2[ArrayOrderSearchType2.MIN=1]="MIN",ArrayOrderSearchType2[ArrayOrderSearchType2.MAX=2]="MAX",ArrayOrderSearchType2))(ArrayOrderSearchType||{});function getCompare(){return Intl&&Intl.Collator?new Intl.Collator(void 0,{numeric:!1}).compare:(a,b)=>a.localeCompare(b)}__name(getCompare,"getCompare");function isWildcard(str){return str.indexOf("*")>-1||str.indexOf("?")>-1}__name(isWildcard,"isWildcard");function isMatchWildcard(currentValue,value){const pattern=escapeRegExp(value).replace(/~?[*?]/g,match=>match.startsWith("~")?`\\${match.substring(1)}`:match==="*"?".*":match==="?"?".":match);return new RegExp(`^${pattern}$`).test(currentValue)}__name(isMatchWildcard,"isMatchWildcard");function replaceWildcard(value){return value.replace(/~?[*?]/g,match=>match.startsWith("~")?match.substring(1):" ")}__name(replaceWildcard,"replaceWildcard");function compareWithWildcard(currentValue,value,operator){let result=!1;switch(operator){case compareToken.EQUALS:result=isMatchWildcard(currentValue,value);break;case compareToken.NOT_EQUAL:result=!isMatchWildcard(currentValue,value);break;case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:result=isMatchWildcard(currentValue,value)||currentValue>replaceWildcard(value);break;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:result=currentValue<replaceWildcard(value);break}return result}__name(compareWithWildcard,"compareWithWildcard");function escapeRegExp(str){return str.replace(/[.+^${}()|[\]\\]/g,"\\$&")}__name(escapeRegExp,"escapeRegExp");function getMatchModeValue(matchModeValue){switch(matchModeValue){case 1:return 2;case 0:return 0;case-1:return 1;default:return 0}}__name(getMatchModeValue,"getMatchModeValue");function getSearchModeValue(searchModeValue){return searchModeValue===-2?1:0}__name(getSearchModeValue,"getSearchModeValue");/*!
|
|
1
|
+
"use strict";var Du=Object.defineProperty;var wu=(i,o,e)=>o in i?Du(i,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[o]=e;var A=(i,o,e)=>wu(i,typeof o!="symbol"?o+"":o,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("@univerjs/core"),Jt=require("rxjs"),Pu=require("@univerjs/rpc"),dr=require("@univerjs/engine-formula");var Ot=(i=>(i.FALSE="FALSE",i.TRUE="TRUE",i))(Ot||{}),Rt=(i=>(i[i.SUCCESS=0]="SUCCESS",i[i.ERROR=1]="ERROR",i))(Rt||{}),Je=(i=>(i[i.FRONT=0]="FRONT",i[i.BACK=1]="BACK",i))(Je||{});function ri(i,o,e,t,r){for(let n=0,s=i.length;n<s;n++){const a=i[n];if(o!==a.unitId||e!==a.sheetId)continue;const{startRow:u,startColumn:c,endRow:l,endColumn:f}=a.range;if(t>=u&&t<=l&&r>=c&&r<=f)return!0}return!1}var h=(i=>(i.DIV_BY_ZERO="#DIV/0!",i.NAME="#NAME?",i.VALUE="#VALUE!",i.NUM="#NUM!",i.NA="#N/A",i.CYCLE="#CYCLE!",i.REF="#REF!",i.SPILL="#SPILL!",i.CALC="#CALC!",i.ERROR="#ERROR!",i.CONNECT="#GETTING_DATA",i.NULL="#NULL!",i))(h||{});const qt=new Set(Object.values(h)),ca=[...new Set(Object.values(h).map(i=>i.length))];var ni=(i=>(i[i.Financial=0]="Financial",i[i.Date=1]="Date",i[i.Math=2]="Math",i[i.Statistical=3]="Statistical",i[i.Lookup=4]="Lookup",i[i.Database=5]="Database",i[i.Text=6]="Text",i[i.Logical=7]="Logical",i[i.Information=8]="Information",i[i.Engineering=9]="Engineering",i[i.Cube=10]="Cube",i[i.Compatibility=11]="Compatibility",i[i.Web=12]="Web",i[i.Array=13]="Array",i[i.Univer=14]="Univer",i[i.User=15]="User",i[i.DefinedName=16]="DefinedName",i))(ni||{}),X=(i=>(i.PLUS="+",i.MINUS="-",i.MULTIPLY="*",i.DIVIDED="/",i.CONCATENATE="&",i.POWER="^",i.EQUALS="=",i.NOT_EQUAL="<>",i.GREATER_THAN=">",i.GREATER_THAN_OR_EQUAL=">=",i.LESS_THAN="<",i.LESS_THAN_OR_EQUAL="<=",i))(X||{}),$=(i=>(i.EQUALS="=",i.NOT_EQUAL="<>",i.GREATER_THAN=">",i.GREATER_THAN_OR_EQUAL=">=",i.LESS_THAN="<",i.LESS_THAN_OR_EQUAL="<=",i))($||{});const $r=new Map([["<>",4],["<",4],[">=",4],["=",4],[">",4],["<=",4],["&",3],["+",2],["-",2],["/",1],["*",1],["^",0]]),At=new Set($r.keys()),Lu=new Set(["=","<>",">",">=","<","<="]);var Q=(i=>(i.OPEN_BRACKET="(",i.CLOSE_BRACKET=")",i.COMMA=",",i.SINGLE_QUOTATION="'",i.DOUBLE_QUOTATION='"',i.OPEN_BRACES="{",i.CLOSE_BRACES="}",i.COLON=":",i.OPEN_SQUARE_BRACKET="[",i.CLOSE_SQUARE_BRACKET="]",i))(Q||{}),He=(i=>(i.PERCENTAGE="%",i.POUND="#",i))(He||{});const Yn=new Set(["%","#"]);var pe=(i=>(i.AT="@",i.MINUS="-",i.PLUS="+",i))(pe||{});const xu=" ",si=[...Object.values($),...Object.values(X),...Object.values(Q),...Object.values(He),...Object.values(pe)];function Cr(i){return si.includes(i)}function ai(i){for(const o of si)if(i.indexOf(o)>-1)return!0;return!1}function ju(i){return i[0]==="'"&&i[i.length-1]==="'"?i.substring(1,i.length-1):i}function Uu(i){return Cr(i)&&i!==Q.CLOSE_BRACES&&i!==Q.CLOSE_BRACKET&&i!==Q.SINGLE_QUOTATION&&i!==Q.DOUBLE_QUOTATION||i===" "}const vu=new Set([X.PLUS,X.MINUS,X.MULTIPLY,X.DIVIDED,X.CONCATENATE,X.POWER,X.EQUALS,X.NOT_EQUAL,X.GREATER_THAN,X.GREATER_THAN_OR_EQUAL,X.LESS_THAN,X.LESS_THAN_OR_EQUAL,Q.OPEN_BRACKET,Q.COMMA,Q.COLON,Q.OPEN_BRACES,Q.OPEN_SQUARE_BRACKET]);function Tu(i){return vu.has(i)}const Bu=new Set([X.PLUS,X.MINUS,X.MULTIPLY,X.DIVIDED,X.CONCATENATE,X.POWER,X.EQUALS,X.NOT_EQUAL,X.GREATER_THAN,X.GREATER_THAN_OR_EQUAL,X.LESS_THAN,X.LESS_THAN_OR_EQUAL,Q.OPEN_BRACKET,Q.COMMA,Q.COLON,Q.OPEN_BRACES,Q.OPEN_SQUARE_BRACKET,He.PERCENTAGE,He.POUND]);function Iu(i){return Bu.has(i)}function ii(i){const o={};return Object.keys(i).forEach(e=>{const t=i[e];if(t==null)return!0;o[e]==null&&(o[e]={}),Object.keys(t).forEach(r=>{const n=t[r];o[e][r]=new M.ObjectMatrix(n)})}),o}function Fu(i){const o={};for(const e in i){const t=i[e];if(t!=null){o[e]==null&&(o[e]={});for(const r in t){const n=t[r],s={};n.forValue((a,u,c)=>{s[a]===void 0&&(s[a]={}),s[a][u]=c}),o[e][r]=s}}}return o}const oi='\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]',la=new RegExp(oi),ku="((?![\\[\\]\\/?*\\\\]).)*!",Mt="$",Rs="\\s*?:\\s*?",Xr="[A-Za-z]+",Kr="[1-9][0-9]*",cr=`'?(${oi})?(${ku})?'?`,ns=`\\${Mt}?${Xr}\\${Mt}?${Kr}`,$u=`^(${pe.AT})?${cr}${ns}${Rs}${ns}$`,fa=new RegExp($u),Yu=`^${cr}\\s*?${ns}(${He.POUND})?$`,ma=new RegExp(Yu),Hu=`^${cr}\\${Mt}?${Kr}${Rs}\\${Mt}?${Kr}$`,ha=new RegExp(Hu),Gu=`^${cr}\\${Mt}?${Xr}${Rs}\\${Mt}?${Xr}$`,ga=new RegExp(Gu),Wu=`^${cr}\\s*?\\${Mt}?${Kr}$`,da=new RegExp(Wu),Qu=`^${cr}\\s*?\\${Mt}?${Xr}$`,Ca=new RegExp(Qu),qu="{.*?}",_a=new RegExp(qu,"g");function Nr(i){return ma.lastIndex=0,ma.test(i)}function Xu(i){return fa.lastIndex=0,fa.test(i)}function ui(i){return ha.lastIndex=0,ha.test(i)}function ci(i){return ga.lastIndex=0,ga.test(i)}function li(i){return da.lastIndex=0,da.test(i)}function fi(i){return Ca.lastIndex=0,Ca.test(i)}function Ku(i){return _a.lastIndex=0,_a.test(i)}function mi(i){return Nr(i)||Xu(i)||ui(i)||ci(i)}const hi={id:"formula.mutation.register-function",type:M.CommandType.MUTATION,handler:()=>!0},Zr={id:"formula.mutation.set-array-formula-data",type:M.CommandType.MUTATION,handler:(i,o)=>!0},Zu=/[^0-9]/g,zu=/[^A-Za-z]/g;function _r(i){let o=i[0]==="$";const e=i.substring(1);let t=e.indexOf("$")>-1;return M.Tools.isStringNumber(e)&&o&&!t&&(o=!1,t=!0),o&&t?M.AbsoluteRefType.ALL:o?M.AbsoluteRefType.COLUMN:t?M.AbsoluteRefType.ROW:M.AbsoluteRefType.NONE}function Ju(i){const o=i.split("!");o.length>1&&(i=o[o.length-1]);const e=i.split(":");return e.length>1?{startAbsoluteRefType:_r(e[0]),endAbsoluteRefType:_r(e[1])}:{startAbsoluteRefType:_r(e[0])}}function Aa(i=M.AbsoluteRefType.NONE){let o="",e="";return i===M.AbsoluteRefType.ROW?o="$":i===M.AbsoluteRefType.COLUMN?e="$":i===M.AbsoluteRefType.ALL&&(o="$",e="$"),{rowAbsoluteString:o,columnAbsoluteString:e}}function St(i){const{startColumn:o,startRow:e,endColumn:t,endRow:r,startAbsoluteRefType:n,endAbsoluteRefType:s,rangeType:a=M.RANGE_TYPE.NORMAL}=i,u=Aa(n),c=Aa(s);if(a===M.RANGE_TYPE.ROW||a===M.RANGE_TYPE.ALL){const m=`${u.rowAbsoluteString}${e+1}`,d=`${c.rowAbsoluteString}${r+1}`;return`${m}:${d}`}if(a===M.RANGE_TYPE.COLUMN){const m=`${u.columnAbsoluteString}${M.Tools.chatAtABC(o)}`,d=`${c.columnAbsoluteString}${M.Tools.chatAtABC(t)}`;return`${m}:${d}`}const l=`${u.columnAbsoluteString}${M.Tools.chatAtABC(o)}${u.rowAbsoluteString}${e+1}`,f=`${c.columnAbsoluteString}${M.Tools.chatAtABC(t)}${c.rowAbsoluteString}${r+1}`;return l===f?l:`${l}:${f}`}function gi(i,o){return Jr(i)?`'${i}'!${St(o)}`:`${i}!${St(o)}`}function di(i,o,e){return Jr(i)||Jr(o)?`'[${i}]${o}'!${St(e)}`:`[${i}]${o}!${St(e)}`}function zr(i){const{unitId:o,sheetName:e,range:t}=i;return o!=null&&o.length>0&&e!=null&&e.length>0?di(o,e,t):e!=null&&e.length>0?gi(e,t):St(t)}function Yr(i){const o=Number.parseInt(i.replace(Zu,""))-1,e=M.Tools.ABCatNum(i.replace(zu,"")),t=_r(i);return{row:o,column:e,absoluteRefType:t}}function An(i){const o=la.exec(i);let e="";o!=null&&(e=o[0].trim(),e=e.slice(1,e.length-1),i=i.replace(la,""));const t=i.indexOf("!");let r="",n="";return t>-1?(r=i.substring(0,t),r[0]==="'"&&r[r.length-1]==="'"&&(r=r.substring(1,r.length-1)),n=i.substring(t+1)):n=i,{refBody:n,sheetName:r,unitId:e}}function Er(i){const{refBody:o,sheetName:e,unitId:t}=An(i),r=o.indexOf(":");if(r===-1){const C=Yr(o),_=C.row,E=C.column,b=C.absoluteRefType;return{unitId:t,sheetName:e,range:{startRow:_,startColumn:E,endRow:_,endColumn:E,startAbsoluteRefType:b,endAbsoluteRefType:b}}}const n=o.substring(0,r),s=o.substring(r+1),a=Yr(n),u=Yr(s),c=a.row>u.row?u.row:a.row,l=a.column>u.column?u.column:a.column,f=a.row>u.row?a.row:u.row,m=a.column>u.column?a.column:u.column;let d=M.RANGE_TYPE.NORMAL;return Number.isNaN(c)&&Number.isNaN(f)?d=M.RANGE_TYPE.COLUMN:Number.isNaN(l)&&Number.isNaN(m)&&(d=M.RANGE_TYPE.ROW),{unitId:t,sheetName:e,range:{startRow:c,startColumn:l,endRow:f,endColumn:m,startAbsoluteRefType:a.absoluteRefType,endAbsoluteRefType:u.absoluteRefType,rangeType:d}}}const ec=["LOG10"];function Ar(i){const o=Ci(i);if(!mi(o)||ec.includes(o.toUpperCase().trim()))return!1;const{range:e}=Er(o);return!(e.endColumn>=16384)}function Ci(i){const o=[];let e=!1;for(let t=0,r=i.length;t<r;t++){const n=i[t];if(n===xu&&!e)o.push(n);else{if(!e&&(n===pe.AT||n===pe.MINUS||n===pe.PLUS))continue;o.push(n),e=!0}}return o.join("")}function tc(i,o){const e=(i==null?void 0:i.split(","))||[];return i===""||e.length===0?[]:_i(i)?e.map(n=>{const s=Er(n);return{unitId:s.unitId,sheetId:o(s.sheetName),range:s.range,sheetName:s.sheetName}}):[]}function _i(i){return((i==null?void 0:i.split(","))||[]).every(e=>Ar(e.trim()))}function Jr(i){return i.length===0?!1:!!(ai(i)||rc(i)||nc(i)||sc(i)||/[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/.test(i))}function rc(i){const o=i.match(/[1-9][0-9]{0,6}/);return/^[A-Z]+[1-9][0-9]{0,6}$/.test(i)&&o!==null}function nc(i){return/^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(i)}function sc(i){return!new RegExp("^\\p{Letter}","u").test(i.charAt(0))}var ac=Object.defineProperty,ic=Object.getOwnPropertyDescriptor,oc=(i,o,e,t)=>{for(var r=t>1?void 0:t?ic(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&ac(o,e,r),r},uc=(i,o)=>(e,t)=>o(e,t,i);exports.DefinedNamesService=class extends M.Disposable{constructor(e){super();A(this,"_definedNameMap",{});A(this,"_update$",new Jt.Subject);A(this,"update$",this._update$.asObservable());A(this,"_currentRange",{unitId:"",sheetId:"",range:{startRow:0,endRow:0,startColumn:0,endColumn:0}});A(this,"_currentRange$",new Jt.Subject);A(this,"currentRange$",this._currentRange$.asObservable());A(this,"_focusRange$",new Jt.Subject);A(this,"focusRange$",this._focusRange$.asObservable());this._univerInstanceService=e}dispose(){this._definedNameMap={}}getWorksheetByRef(e,t){var n;const{sheetName:r}=An(t);return(n=this._univerInstanceService.getUnit(e))==null?void 0:n.getSheetBySheetName(r)}focusRange(e,t){const r=this.getValueById(e,t);r!=null&&this._focusRange$.next({...r,unitId:e})}setCurrentRange(e){this._currentRange=e,this._currentRange$.next(e)}getCurrentRange(){return this._currentRange}getCurrentRangeForString(){return St(this._currentRange.range)}registerDefinedNames(e,t){this._definedNameMap[e]=t,this._update()}registerDefinedName(e,t){this._definedNameMap[e]==null&&(this._definedNameMap[e]={}),this._definedNameMap[e][t.id]=t,this._update()}removeDefinedName(e,t){var r;(r=this._definedNameMap[e])==null||delete r[t],this._update()}removeUnitDefinedName(e){delete this._definedNameMap[e],this._update()}getDefinedNameMap(e){return this._definedNameMap[e]}getValueByName(e,t){var n;const r=this._definedNameMap[e];return r==null?null:(n=Array.from(Object.values(r)).filter(s=>s.name===t))==null?void 0:n[0]}getValueById(e,t){var r;return(r=this._definedNameMap[e])==null?void 0:r[t]}hasDefinedName(e){return this._definedNameMap[e]==null?!1:(Array.from(Object.values(this._definedNameMap[e])).length||0)!==0}_update(){this._update$.next(null)}};exports.DefinedNamesService=oc([uc(0,M.IUniverInstanceService)],exports.DefinedNamesService);const lr=M.createIdentifier("univer.formula.defined-names.service"),cc=(i,o)=>{const{unitId:e,id:t}=o;return{...i.get(lr).getValueById(e,t),unitId:e}},Vr={id:"formula.mutation.set-defined-name",type:M.CommandType.MUTATION,handler:()=>!0},En={id:"formula.mutation.remove-defined-name",type:M.CommandType.MUTATION,handler:()=>!0},bn={id:"formula.mutation.set-feature-calculation",type:M.CommandType.MUTATION,handler:()=>!0},yn={id:"formula.mutation.remove-feature-calculation",type:M.CommandType.MUTATION,handler:()=>!0},ps={id:"formula.mutation.set-formula-calculation-start",type:M.CommandType.MUTATION,handler:()=>!0},Ns={id:"formula.mutation.set-formula-calculation-stop",type:M.CommandType.MUTATION,handler:()=>!0},en={id:"formula.mutation.set-formula-calculation-notification",type:M.CommandType.MUTATION,handler:()=>!0},Vs={id:"formula.mutation.set-formula-calculation-result",type:M.CommandType.MUTATION,handler:()=>!0},Rn={id:"formula.mutation.set-formula-data",type:M.CommandType.MUTATION,handler:(i,o)=>!0},pn={id:"formula.mutation.set-other-formula",type:M.CommandType.MUTATION,handler:()=>!0},Nn={id:"formula.mutation.remove-other-formula",type:M.CommandType.MUTATION,handler:()=>!0},Ai={id:"formula.mutation.set-super-table",type:M.CommandType.MUTATION,handler:()=>!0},Ei={id:"formula.mutation.remove-super-table",type:M.CommandType.MUTATION,handler:()=>!0},Os={id:"formula.mutation.set-super-table-option",type:M.CommandType.MUTATION,handler:()=>!0};class ft{constructor(o){A(this,"_cache");this._cache=new M.LRUMap(o)}set(o,e){const t=this._hash(o);this._cache.set(t,e)}get(o){const e=this._hash(o);return this._cache.get(e)}clear(){this._cache.clear()}_hash(o){return o.length<=64?o:M.hashAlgorithm(o).toString()}}const ut="P_1",Nt="R_1",nr="L_1",Or="LR_1",bi="LO_1",lc="LET",br="LAMBDA",fc="CUBE",mc=new Set(["RAND","RANDBETWEEN","NOW","TODAY"]),ss=new ft(1e5);function Yt(i){const o=ss.get(i);if(o)return o;const e=Er(i);return ss.set(i,e),Er(i)}function hc(){ss.clear()}var ve=(i=>(i[i.NORMAL=0]="NORMAL",i[i.NUMBER=1]="NUMBER",i[i.STRING=2]="STRING",i[i.FUNCTION=3]="FUNCTION",i[i.REFERENCE=4]="REFERENCE",i[i.ARRAY=5]="ARRAY",i[i.DEFINED_NAME=6]="DEFINED_NAME",i))(ve||{});function as(i){let o="";for(const e of i)typeof e=="string"?o+=e:o+=e.token;return o}class se{constructor(){A(this,"_parent");A(this,"_token",Nt);A(this,"_children",[]);A(this,"_lambdaId");A(this,"_functionDefinitionPrivacyVar");A(this,"_lambdaParameter","");A(this,"_startIndex",-1);A(this,"_endIndex",-1);A(this,"_definedNames",[])}dispose(){var o;this._children.forEach(e=>{typeof e!="string"&&e.dispose()}),(o=this._functionDefinitionPrivacyVar)==null||o.clear(),this._functionDefinitionPrivacyVar=null,this._children=[],this._parent=null,this._definedNames=[]}getDefinedNames(){return this._definedNames}getStartIndex(){return this._startIndex}getLambdaId(){return this._lambdaId}setLambdaId(o){this._lambdaId=o}getFunctionDefinitionPrivacyVar(){return this._functionDefinitionPrivacyVar}setLambdaPrivacyVar(o){this._functionDefinitionPrivacyVar=o}getLambdaParameter(){return this._lambdaParameter}setLambdaParameter(o){this._lambdaParameter=o}getParent(){return this._parent}setParent(o){this._parent=o}getChildren(){return this._children}setChildren(o){this._children=o}addChildren(o){this._children.push(o)}addChildrenFirst(o){this._children.unshift(o)}getToken(){return this._token}setToken(o){this._token=o}setIndex(o,e){this._startIndex=o,this._endIndex=e}setDefinedNames(o){this._definedNames=o}hasDefinedNames(){return this._definedNames.length>0}replaceChild(o,e){const t=this._getIndexInParent(o);t!=null&&(this.getChildren().splice(t,1,e),e.setParent(this))}changeToParent(o){const e=this.getParent();e&&e.removeChild(this),this.setParent(o),o.getChildren().push(this)}removeChild(o){const e=this._getIndexInParent(o);e!=null&&this.getChildren().splice(e,1)}serialize(){const o=this.getToken(),e=this.getChildren(),t=[],r=e.length;for(let n=0;n<r;n++){const s=e[n];s instanceof se?t.push(s.serialize()):t.push(s)}return{token:o,st:this._startIndex,ed:this._endIndex,children:t}}_getIndexInParent(o){const e=this.getChildren(),t=e.length;for(let r=0;r<t;r++)if(e[r]===o)return r}}const yi=2e3,Hn=new ft(yi),Gn=new ft(yi);class Vn extends M.Disposable{constructor(){super(...arguments);A(this,"_currentLexerNode",new se);A(this,"_upLevel",0);A(this,"_segment","");A(this,"_bracketState",[]);A(this,"_squareBracketState",0);A(this,"_bracesState",0);A(this,"_singleQuotationState",0);A(this,"_doubleQuotationState",0);A(this,"_lambdaState",!1);A(this,"_colonState",!1);A(this,"_formulaErrorCount",0);A(this,"_tableBracketState",!1)}dispose(){this._resetTemp(),this._currentLexerNode.dispose(),Hn.clear(),Gn.clear()}getUpLevel(){return this._upLevel}isColonClose(){return this._colonState===!1}isColonOpen(){return this._colonState===!0}isDoubleQuotationClose(){return this._doubleQuotationState===0}isLambdaOpen(){return this._lambdaState===!0}isLambdaClose(){return this._lambdaState===!1}isSingleQuotationClose(){return this._singleQuotationState===0}isBracesClose(){return this._bracesState===0}isBracketClose(){return this._bracketState.length===0}isSquareBracketClose(){return this._squareBracketState===0}getCurrentLexerNode(){return this._currentLexerNode}getFunctionAndParameter(e,t){const r=this._getCurrentParamIndex(e,t);if(r==null||r===h.VALUE)return;const n=r[0];if(typeof n=="string")return;let s=n.getParent(),a=n;for(;s;){const u=s.getToken();if(u!==ut&&!Cr(u)&&s.getStartIndex()!==-1){const c=s.getChildren().indexOf(a);return{functionName:u,paramIndex:c}}a=s,s=s.getParent()}}checkIfAddBracket(e){let t=0,r=e.length-1,n=e[r];for(;(n===Q.CLOSE_BRACKET||n===" ")&&r>=0;)n===Q.CLOSE_BRACKET&&t++,n=e[--r];const s=this._getCurrentParamIndex(e,e.length-2);if(s==null||s===h.VALUE)return 0;const a=s[0];if(typeof a=="string")return 0;let u=a.getParent(),c=0;for(s[1]===Q.OPEN_BRACKET&&c++;u;){const l=u.getToken();l!==ut&&l!==Q.COLON&&u.getStartIndex()!==-1&&l.toUpperCase()!==br&&(t===0?c+=1:t--),u=u.getParent()}return c}sequenceNodesBuilder(e){const t=Gn.get(e);if(t)return[...t];const r=this._getSequenceArray(e);if(r.length===0)return;const n=this.getSequenceNode(r);return Gn.set(e,[...n]),n}convertRefersToAbsolute(e,t,r){const n=this.sequenceNodesBuilder(e);if(n==null)return e;let s="";e.substring(0,1)===X.EQUALS&&(s=X.EQUALS);for(let a=0,u=n.length;a<u;a++){const c=n[a];if(typeof c!="string"&&c.nodeType===ve.REFERENCE){const{token:l,endIndex:f}=c,m=Yt(l);if(m==null)continue;const{range:d,sheetName:C,unitId:_}=m,E={...d,startAbsoluteRefType:t,endAbsoluteRefType:r},b=zr({range:E,unitId:_,sheetName:C}),R=b.length-l.length;n[a]={...c,token:b,endIndex:f+R};for(let p=a+1;p<u;p++){const V=n[p];typeof V!="string"&&(V.startIndex+=R,V.endIndex+=R)}}}return`${s}${as(n)}`}moveFormulaRefOffset(e,t,r,n=!1){const s=this.sequenceNodesBuilder(e);if(s==null)return e;const a=[];for(let u=0,c=s.length;u<c;u++){const l=s[u];if(typeof l=="string"||l.nodeType!==ve.REFERENCE){a.push(l);continue}const{token:f}=l,m=Yt(f),{sheetName:d,unitId:C}=m;let _=m.range;if(!n&&_.startAbsoluteRefType===M.AbsoluteRefType.ALL&&_.endAbsoluteRefType===M.AbsoluteRefType.ALL){a.push(l);continue}else _=M.moveRangeByOffset(_,t,r,n);let E="";M.isValidRange(_)?E=zr({range:_,unitId:C,sheetName:d}):E=h.REF,a.push({...l,token:E})}return`=${as(a)}`}_formulaSpellCheck(){if(this._currentLexerNode.getChildren().length===0)return!0;const e=this._currentLexerNode.getChildren()[0];return!!(e instanceof se||At.has(e)||Yn.has(e)||e===pe.AT||e===Q.COMMA||e===Q.COLON||e===Q.OPEN_BRACKET)}getSequenceNode(e){const t=[];let r=!1;for(let n=0,s=e.length;n<s;n++){const a=e[n],u=e[n-1],{segment:c,currentString:l}=a;if(l===Q.DOUBLE_QUOTATION&&(r=!0),(c!==""||n===0)&&n!==s-1){t.push(l);continue}let f=(u==null?void 0:u.segment)||"";const m=n-f.length;let d=n-1;const C=n-1;if(n===s-1&&this._isLastMergeString(l)&&(f+=l,d+=1),f===""||$r.has(f)){t.push(l);continue}const _=f.trim(),E=Ci(_);r===!0&&_[_.length-1]===Q.DOUBLE_QUOTATION&&_[0]!==Q.OPEN_BRACES?(r=!1,this._processPushSequenceNode(t,ve.STRING,f,m,d,C)):Nr(E)&&Ar(E)?this._processPushSequenceNode(t,ve.REFERENCE,f,m,d,C):M.Tools.isStringNumber(_)?this._processPushSequenceNode(t,ve.NUMBER,f,m,d,C):_.length>0&&this._processPushSequenceNode(t,ve.FUNCTION,f,m,d,C),(n!==s-1||!this._isLastMergeString(l))&&t.push(l)}return this._mergeSequenceNodeReference(t)}_processPushSequenceNode(e,t,r,n,s,a){this._pushSequenceNode(e,{nodeType:t,token:r,startIndex:n,endIndex:s},a)}_getCurrentParamIndex(e,t){return this._nodeMaker(e,void 0,t)}_isLastMergeString(e){return e===Q.DOUBLE_QUOTATION||M.Tools.isStringNumber(e)||!Cr(e)}_mergeSequenceNodeReference(e){const t=[],r=e.length;let n=0;for(;n<r;){const s=e[n];if(typeof s=="string"){const a=e[n-1];if(s.trim()===Q.CLOSE_BRACES&&a!=null&&typeof a!="string"&&a.nodeType===ve.FUNCTION&&a.token.trim().substring(0,1)===Q.OPEN_BRACES){a.nodeType=ve.ARRAY,a.token+=s,a.endIndex+=s.length,n++;continue}t.push(s)}else{const a=e[n+1],u=e[n+2];a===Q.COLON&&typeof s!="string"&&u!=null&&typeof u!="string"&&Ar((s.token+a+u.token).trim())&&(s.nodeType=ve.REFERENCE,s.token+=a+u.token,s.endIndex=u.endIndex,n+=2),t.push(s)}n++}return this._minusSplitSequenceNode(t)}_minusSplitSequenceNode(e){const t=[];for(const r of e){if(typeof r!="string"){const s=r.token.match(/^(\s*([-@+]\s*)+)(.*)$/);if(s){const a=s[1],u=s[3];if(Ar(u.trim())){const c=a.length,l=r.startIndex,f=r.startIndex+c-1,m={nodeType:ve.NORMAL,token:a,startIndex:l,endIndex:f},d={nodeType:ve.REFERENCE,token:u,startIndex:f+1,endIndex:r.endIndex};t.push(m),t.push(d);continue}}}t.push(r)}return t}_pushSequenceNode(e,t,r){const n=r-t.startIndex+1;e.splice(e.length-n,n,t)}nodeMakerTest(e){return this._nodeMaker(e)}treeBuilder(e,t=!0,r,n){if(t===!0){const m=Hn.get(e),d=n==null?void 0:n(e);if(m&&!d)return m}this._resetCurrentLexerNode(),this._currentLexerNode.setToken(Nt);const s=[];let a=this._nodeMaker(e,s);if(a===h.VALUE||s.length===0)return a;let u=!1,c="",l=[];if(r){const{hasDefinedName:m,sequenceString:d,definedNames:C}=r(s);u=m,c=d,l=C}if(u&&(this._resetCurrentLexerNode(),this._currentLexerNode.setToken(Nt),a=this._nodeMaker(`=${c}`),a===h.VALUE))return a;const f=this._getTopNode(this._currentLexerNode);if(f&&(this._currentLexerNode=f),t){if(!this._suffixExpressionHandler(this._currentLexerNode))return h.VALUE;Hn.set(e,this._currentLexerNode)}return u&&this._currentLexerNode.setDefinedNames(l),this._currentLexerNode}_suffixExpressionHandler(e){var u;const t=e.getChildren();if(!t)return!1;const r=t.length,n=[],s=[];let a=!0;for(let c=0;c<r;c++){const l=t[c];if(l instanceof se)a=this._suffixExpressionHandler(l),n.push(l);else{const f=l.trim();if(f==="")continue;if(At.has(f)){if(f===X.PLUS&&this._deletePlusForPreNode(t[c-1]))continue;if(f!==X.PLUS&&f!==X.MINUS&&this._deletePlusForPreNode(t[c-1]))return!1;for(;s.length>0;){const m=(u=s[s.length-1])==null?void 0:u.trim();if(!m||m===Q.OPEN_BRACKET)break;const d=$r.get(m),C=$r.get(f);if(!d||!C)break;if(C>=d)n.push(s.pop());else break}s.push(l)}else if(f===Q.OPEN_BRACKET)s.push(l);else if(f===Q.CLOSE_BRACKET)this._processSuffixExpressionCloseBracket(n,s,t,c);else{if(this._checkCloseBracket(t[c-1]))return!1;n.push(l)}}}return a?this._processSuffixExpressionRemain(n,s,e):!1}_processSuffixExpressionRemain(e,t,r){const n=e.length,s=e[n-1];for(;t.length>0;){const a=t.pop();if(!(s instanceof se)&&(a===Q.OPEN_BRACKET||a===Q.CLOSE_BRACKET))return!1;e.push(a)}return r.setChildren(e),!0}_processSuffixExpressionCloseBracket(e,t,r,n){var s;if(this._checkOpenBracket(r[n-1])||this._checkOperator(r[n-1]))return!1;for(;t.length>0;){const a=(s=t[t.length-1])==null?void 0:s.trim();if(!a)break;if(a===Q.OPEN_BRACKET){t.pop();break}e.push(t.pop())}}_checkCloseBracket(e){return e===Q.CLOSE_BRACKET||e instanceof se}_checkOpenBracket(e){return e===Q.OPEN_BRACKET}_checkOperator(e){return e==null||e instanceof se?!1:At.has(e)}_deletePlusForPreNode(e){if(e==null)return!0;if(!(e instanceof se)){const t=e.trim();if(At.has(t)||t===Q.OPEN_BRACKET)return!0}return!1}_resetCurrentLexerNode(){this._currentLexerNode=new se}_resetSegment(){this._segment=""}_openBracket(e=0){this._bracketState.push(e)}_closeBracket(){this._bracketState.pop()}_openSquareBracket(){this._squareBracketState+=1}_closeSquareBracket(){this._squareBracketState-=1}_getCurrentBracket(){const e=this._bracketState;return e[e.length-1]}_changeCurrentBracket(e){const t=this._bracketState;t[t.length-1]=e}_openBraces(){this._bracesState+=1}_closeBraces(){this._bracesState-=1}_openSingleQuotation(){this._singleQuotationState+=1}_closeSingleQuotation(){this._singleQuotationState-=1}_openDoubleQuotation(){this._doubleQuotationState+=1}_closeDoubleQuotation(){this._doubleQuotationState-=1}_openLambda(){this._lambdaState=!0}_closeLambda(){this._lambdaState=!1}_openColon(e){this._upLevel=e,this._colonState=!0}_closeColon(){this._upLevel=0,this._colonState=!1}_isTableBracket(){return this._tableBracketState}_openTableBracket(){this._tableBracketState=!0}_closeTableBracket(){this._tableBracketState=!1}_formalErrorOccurred(){this._formulaErrorCount+=1}_hasFormalError(){return this._formulaErrorCount>0}_getLastChildCurrentLexerNode(){const e=this._currentLexerNode.getChildren();if(e&&e.length>0){const t=e[e.length-1];if(t instanceof se)return t}return!1}_getLastChildCurrent(){const e=this._currentLexerNode.getChildren();return e&&e.length>0?e[e.length-1]:!1}_setParentCurrentLexerNode(){const e=this._currentLexerNode.getParent();return e?(this._currentLexerNode=e,!0):!1}_setAncestorCurrentLexerNode(){var r,n,s,a,u,c;const e=(r=this._currentLexerNode)==null?void 0:r.getParent();let t=!1;if(e&&e.getToken()===nr){if((n=e==null?void 0:e.getParent())!=null&&n.getParent()){const l=(a=(s=this._currentLexerNode.getParent())==null?void 0:s.getParent())==null?void 0:a.getParent();l&&(this._currentLexerNode=l),t=!0}}else if(e!=null&&e.getParent()){const l=(u=this._currentLexerNode.getParent())==null?void 0:u.getParent();l&&(this._currentLexerNode=l),t=!0}for(let l=0;l<this._upLevel;l++){const f=(c=this._currentLexerNode)==null?void 0:c.getParent();f&&(this._currentLexerNode=f),this._currentLexerNode?t=!0:t=!1}return t}_segmentCount(){return this._segment.trim().length}_pushSegment(e){this._segment+=e}_pushNodeToChildren(e,t=!1){let r=e;if(r!==""){const n=this._currentLexerNode.getChildren();if(!(r instanceof se)&&this.isColonOpen()){const s=new se;s.setToken(r),s.setParent(this._currentLexerNode),r=s}t?n.unshift(r):n.push(r)}this.isColonOpen()&&(this._setAncestorCurrentLexerNode(),this._closeColon())}_setCurrentLexerNode(e,t=!1){this._pushNodeToChildren(e,t),e.setParent(this._currentLexerNode),this._currentLexerNode=e}_newAndPushCurrentLexerNode(e,t,r=!1){const n=new se;n.setToken(e),n.setIndex(t-e.length,t-1),this._setCurrentLexerNode(n,r)}_getTopNode(e){let t=e;for(;t!=null&&t.getParent();)t=t.getParent();return t}_removeLastChild(){this._currentLexerNode.getChildren().splice(-1)}_formulaErrorLastTokenCheck(e,t){const r=this._findPreviousToken(e,t)||"",n=e.length-1===t;if(!n&&this._isOperatorToken(r)||n&&Tu(r))return!0;if(Yn.has(r)){const s=this._findSecondLastNonSpaceToken(e,t);if(s==null||Iu(s))return!0}return!1}_findPreviousToken(e,t){let r=t;for(;r>=0;){const n=e[r];if(n!==" ")return n;r--}}_findSecondLastNonSpaceToken(e,t){let r=t,n=0;for(;r>=0;){const s=e[r];if(s!==" "&&(n++,n===2))return s;r--}return null}_findNextToken(e,t){let r=t;for(;r>=0;){const n=e[r];if(n!==" ")return n;r++}}_unexpectedEndingTokenExcludeOperator(e){return e===Q.OPEN_BRACKET||e===Q.COMMA||e===X.EQUALS||e===""}_unexpectedEndingToken(e){return!!(this._isOperatorToken(e)||this._unexpectedEndingTokenExcludeOperator(e))}_isOperatorToken(e){return!!At.has(e)}_getSequenceArray(e){const t=[];return this._nodeMaker(e,t),t}_resetTemp(){this._currentLexerNode=new se,this._upLevel=0,this._segment="",this._bracketState=[],this._bracesState=0,this._singleQuotationState=0,this._doubleQuotationState=0,this._lambdaState=!1,this._colonState=!1,this._formulaErrorCount=0}_checkErrorState(){return!!(this._bracketState.length>0||this._bracesState>0||this._singleQuotationState>0||this._doubleQuotationState>0||this._hasFormalError())}_checkSimilarErrorToken(e,t,r){let n=t;if(e!==He.POUND)return!0;let s=r[++n];for(;s===" ";)s=r[++n];return!!Cr(s)}_checkIfErrorObject(e,t){return!!this._findErrorObject(e,t)}_findErrorObject(e,t){for(let r=0;r<ca.length;r++){const n=ca[r],s=t.slice(e,e+n).join("").toUpperCase();if(qt.has(s))return s}}_nodeMaker(e,t,r){let n=e.replace(/\r\n$/,"").replace(/\r/g," ").replace(/\n/g," ");n.substring(0,1)===X.EQUALS&&(n=n.substring(1));const s=n.split(""),a=s.length;let u=0;for(this._resetTemp(),this._formulaErrorLastTokenCheck(s,a-1)&&this._formalErrorOccurred();u<a;){const c=s[u];if(r===u)return[this._currentLexerNode,c];if(c===He.POUND&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()&&this._checkIfErrorObject(u,s)){const l=this._findErrorObject(u,s);if(l==null)return h.VALUE;this._pushNodeToChildren(l);for(let f=0;f<l.length;f++){const m=s[u];this._pushSegment(m),this._addSequenceArray(t,m,u),u++}this._resetSegment();continue}else if(c===Q.OPEN_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())if(this._segmentCount()>0||this.isLambdaOpen()){this.isLambdaClose()&&(this._newAndPushCurrentLexerNode(this._segment,u),this._resetSegment()),this._openBracket(1),this._closeLambda();const l=s[u+1];if(l&&l===Q.CLOSE_BRACKET){if(!this._setParentCurrentLexerNode()&&u!==a-1)return h.VALUE;this._addSequenceArray(t,c,u),u++,this._addSequenceArray(t,l,u),u++,this._closeBracket();continue}else l&&this._newAndPushCurrentLexerNode(ut,u)}else this._pushNodeToChildren(c),this._openBracket(0),this._resetSegment();else if(c===Q.CLOSE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){this._formulaErrorLastTokenCheck(s,u-1)&&this._formalErrorOccurred(),this._pushNodeToChildren(this._segment),this._resetSegment();const l=this._getCurrentBracket();if(l===0)this._pushNodeToChildren(c);else if(l===1){const f=s[u+1];if(f&&f===Q.OPEN_BRACKET){if(!this._setParentCurrentLexerNode()&&u!==a-1)return h.VALUE;this._newAndPushCurrentLexerNode(nr,u,!0),this._openLambda()}else if(!this._setAncestorCurrentLexerNode()&&u!==a-1)return h.VALUE}else return h.VALUE;this._closeBracket()}else if(c===Q.OPEN_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){if(this._pushSegment(c),this._openBraces(),!this._formulaSpellCheck())return h.VALUE}else if(c===Q.CLOSE_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(c),this._pushNodeToChildren(this._segment),this._resetSegment(),this._closeBraces();else if(c===Q.OPEN_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._segment.length>0&&this._openTableBracket(),this._pushSegment(c),this._openSquareBracket();else if(c===Q.CLOSE_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._closeSquareBracket(),this.isSquareBracketClose()?(this._pushSegment(c),this._isTableBracket()&&(this._pushNodeToChildren(this._segment),this._resetSegment()),this._closeTableBracket()):this._pushSegment(c);else if(c===Q.DOUBLE_QUOTATION&&this.isSingleQuotationClose()&&this.isSquareBracketClose()){if(this.isDoubleQuotationClose())this._openDoubleQuotation();else{const l=s[u+1];l&&l===Q.DOUBLE_QUOTATION?u++:this._closeDoubleQuotation()}this._pushSegment(c)}else if(c===Q.SINGLE_QUOTATION&&this.isDoubleQuotationClose()){if(this.isSingleQuotationClose())this._openSingleQuotation();else{const l=s[u+1];l&&l===Q.SINGLE_QUOTATION?u++:this._closeSingleQuotation()}this._pushSegment(c)}else if(c===Q.COMMA&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){this._formulaErrorLastTokenCheck(s,u-1)&&this._formalErrorOccurred();const l=this._getCurrentBracket();if(l===1||l==null){if(this._pushNodeToChildren(this._segment),this._resetSegment(),!this._setParentCurrentLexerNode()&&u!==a-1&&l!=null)return h.VALUE;this._newAndPushCurrentLexerNode(ut,u)}else{const f=new se;f.setToken(fc);const m=new se;m.setToken(ut),m.changeToParent(f);const d=this._currentLexerNode.getParent();if(d&&d.getToken()===Q.COLON){const C=d.getParent();if(!C)return h.VALUE;d.changeToParent(m),C.setChildren([]),f.changeToParent(C)}else return h.VALUE;this._changeCurrentBracket(1),this._pushNodeToChildren(this._segment),this._resetSegment(),this._currentLexerNode=f,this._newAndPushCurrentLexerNode(ut,u)}}else if(c===Q.COLON&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const l=new se;l.setToken(c);const f=new se;f.setToken(ut),f.setParent(l);const m=new se;m.setToken(ut),m.setParent(l),l.getChildren().push(f,m);let d=l,C=0;if(this._segmentCount()>0){let _,E,b=0;const R=this._segment.trim(),p=R[0],V=R[1];if(p===pe.MINUS&&(_=new se,_.setToken(pe.MINUS),b++),(p===pe.AT||V===pe.AT)&&(E=new se,E.setToken(pe.AT),_&&(_.addChildren(E),E.setParent(_)),b++),b>0&&(this._segment=R.slice(b)),C=b,E)if(E.addChildren(l),l.setParent(E),E.getParent()){const D=E.getParent();D&&(d=D)}else d=E;else _&&(d=_,_.addChildren(l),l.setParent(_));const S=new se;S.setToken(this._segment),S.setParent(f),f.getChildren().push(S),this._resetSegment()}else{const _=this._getLastChildCurrentLexerNode();_&&_.changeToParent(f)}this._setCurrentLexerNode(d),this._currentLexerNode=m,this._openColon(C)}else if(Yn.has(c)&&this._checkSimilarErrorToken(c,u,s)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){this._pushNodeToChildren(this._segment);const l=new se;l.setToken(c);const f=this._getLastChildCurrent();f instanceof se?f.changeToParent(l):f!==!1&&(l.getChildren().push(f),this._removeLastChild()),this._pushNodeToChildren(l),l.setParent(this._currentLexerNode),this._resetSegment()}else if(At.has(c)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){let l=this._segment.trim();if(c===X.MINUS&&l===""){const f=this._findPreviousToken(s,u-1)||"",m=this._findNextToken(s,u+1)||"";if(this._unexpectedEndingTokenExcludeOperator(f)&&this._isOperatorToken(m)){this._pushNodeToChildren("0"),this._pushNodeToChildren(X.MINUS),this._addSequenceArray(t,c,u),this._resetSegment(),u++;continue}else if(this._unexpectedEndingToken(f))if(m===X.PLUS){this._pushSegment(X.MINUS),this._addSequenceArray(t,c,u),this._addSequenceArray(t,X.PLUS,u+1),u+=2;continue}else{this._pushSegment(X.MINUS),this._addSequenceArray(t,c,u),u++;continue}}else if(this._segment.length>0&&this._isScientificNotation(s,u,c)){this._pushSegment(c),this._addSequenceArray(t,c,u),u++;continue}else this._segment.length>0&&l===""?l=this._segment:(this._pushNodeToChildren(this._segment),l="");if(c===X.LESS_THAN||c===X.GREATER_THAN){const f=s[u+1];if(f&&At.has(c+f)){this._pushNodeToChildren(l+c+f),this._resetSegment(),this._addSequenceArray(t,c,u),u++,this._addSequenceArray(t,f,u),u++;continue}else this._pushNodeToChildren(l+c)}else this._pushNodeToChildren(l+c);this._resetSegment()}else this._pushSegment(c);this._addSequenceArray(t,c,u),u++}if(this._pushNodeToChildren(this._segment),this._checkErrorState())return h.VALUE}_isScientificNotation(e,t,r){const n=e[t-2];if(n&&Number.isNaN(Number(n))||!(r===X.MINUS||r===X.PLUS))return!1;const s=e[t+1];if(s&&Number.isNaN(Number(s)))return!1;const a=e[t-1];return a&&a.toUpperCase()==="E"}_addSequenceArray(e,t,r){e==null||e.push({segment:this._segment,currentString:t,cur:r,currentLexerNode:this._currentLexerNode})}}function gc(i,o,e,t,r,n,s){const a=(s==null?void 0:s.f)||"",u=(s==null?void 0:s.si)||"",c=M.isFormulaString(a),l=M.isFormulaId(u),f=i.getValue(r,n),m=(f==null?void 0:f.f)||"",d=(f==null?void 0:f.si)||"";function C(){var _;if(M.isFormulaString(m)&&M.isFormulaId(d)){const E=(_=e.get(d))==null?void 0:_.f;E?t.set(d,E):t.set(d,m)}}c&&l?(d!==u&&C(),i.setValue(r,n,{f:a,si:u}),e.set(u,{f:a,r,c:n}),o.setValue(r,n,{f:a,si:u})):c&&!l?(m!==a&&C(),i.setValue(r,n,{f:a}),o.setValue(r,n,{f:a})):!c&&l?(d!==u&&C(),i.setValue(r,n,{f:"",si:u})):!c&&!l&&i.getValue(r,n)&&(C(),i.realDeleteValue(r,n),o.setValue(r,n,null))}function dc(i,o,e,t){const r=i==null?void 0:i.getValue(e,t);if(r==null)return!0;const n=[];i.forValue((l,f,m)=>{l===e&&f===t||M.Rectangle.intersects(m,r)&&n.push(m)});const{startRow:s,startColumn:a,endRow:u,endColumn:c}=r;for(let l=s;l<=u;l++)for(let f=a;f<=c;f++){let m=!1;const d=M.cellToRange(l,f);n.some(C=>M.Rectangle.contains(C,d)?(m=!0,!0):!1),m||o.realDeleteValue(l,f)}}var Cc=Object.defineProperty,_c=Object.getOwnPropertyDescriptor,Ac=(i,o,e,t)=>{for(var r=t>1?void 0:t?_c(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&Cc(o,e,r),r},Ea=(i,o)=>(e,t)=>o(e,t,i);exports.FormulaDataModel=class extends M.Disposable{constructor(e,t){super();A(this,"_formulaData",{});A(this,"_arrayFormulaRange",{});A(this,"_arrayFormulaCellData",{});this._univerInstanceService=e,this._lexerTreeBuilder=t,this.initFormulaData()}dispose(){super.dispose(),this._formulaData={},this._arrayFormulaRange={},this._arrayFormulaCellData={}}clearPreviousArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(n=>{var l,f,m,d;const s=r[n],a=(f=(l=this._arrayFormulaRange)==null?void 0:l[t])==null?void 0:f[n];if(a==null)return!0;const u=new M.ObjectMatrix(a);let c=new M.ObjectMatrix;((m=this._arrayFormulaCellData[t])==null?void 0:m[n])!=null&&(c=new M.ObjectMatrix((d=this._arrayFormulaCellData[t])==null?void 0:d[n])),s.forValue((C,_)=>{const E=u.getValue(C,_);if(E==null)return!0;const{startRow:b,startColumn:R,endRow:p,endColumn:V}=E;for(let S=b;S<=p;S++)for(let D=R;D<=V;D++)c.setValue(S,D,null);u.realDeleteValue(C,_)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][n]=c.getData())})})}mergeArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]==null&&(this._arrayFormulaRange[t]={}),this._arrayFormulaCellData[t]==null&&(this._arrayFormulaCellData[t]={}),Object.keys(r).forEach(n=>{var c,l;const s=r[n],a=new M.ObjectMatrix((c=this._arrayFormulaRange[t])==null?void 0:c[n]),u=new M.ObjectMatrix((l=this._arrayFormulaCellData[t])==null?void 0:l[n]);s.forValue((f,m)=>{const d=a==null?void 0:a.getValue(f,m);if(d==null)return!0;const{startRow:C,startColumn:_,endRow:E,endColumn:b}=d;for(let R=C;R<=E;R++)for(let p=_;p<=b;p++)u.setValue(R,p,null)}),s.forValue((f,m,d)=>{u.setValue(f,m,d)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][n]=u.getData())})})}getFormulaData(){return this._formulaData}setFormulaData(e){this._formulaData=e}getArrayFormulaRange(){return this._arrayFormulaRange}setArrayFormulaRange(e){this._arrayFormulaRange=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}mergeArrayFormulaRange(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]||(this._arrayFormulaRange[t]={}),Object.keys(r).forEach(n=>{var u;const s=new M.ObjectMatrix(r[n]),a=new M.ObjectMatrix((u=this._arrayFormulaRange[t])==null?void 0:u[n]);s.forValue((c,l,f)=>{a.setValue(c,l,f)}),this._arrayFormulaRange[t]&&(this._arrayFormulaRange[t][n]=a.getData())})})}mergeFormulaData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r!==void 0){if(r===null){delete this._formulaData[t];return}this._formulaData[t]||(this._formulaData[t]={}),Object.keys(r).forEach(n=>{var c,l;const s=r[n];if(s===void 0)return;if(s===null){(c=this._formulaData[t])==null||delete c[n];return}(l=this._formulaData[t])!=null&&l[n]||(this._formulaData[t][n]={});const a=new M.ObjectMatrix(s),u=new M.ObjectMatrix(this._formulaData[t][n]);a.forValue((f,m,d)=>{d==null?u.realDeleteValue(f,m):u.setValue(f,m,d)})})}})}deleteArrayFormulaRange(e,t,r,n){var u;const s=(u=this._arrayFormulaRange[e])==null?void 0:u[t];if(s==null)return;const a=new M.ObjectMatrix(s);a.getValue(r,n)&&(a.realDeleteValue(r,n),this._arrayFormulaRange[e]&&(this._arrayFormulaRange[e][t]=a.getData()))}initFormulaData(){if(this._univerInstanceService.getAllUnitsForType(M.UniverInstanceType.UNIVER_SHEET).length===0)return;const t=this._univerInstanceService.getCurrentUnitForType(M.UniverInstanceType.UNIVER_SHEET),r=t.getUnitId();this._formulaData[r]={},t.getSheets().forEach(s=>{const a=s.getCellMatrix(),u=s.getSheetId();Ri(this._formulaData,r,u,a)})}getCalculateData(){const e=this._univerInstanceService.getAllUnitsForType(M.UniverInstanceType.UNIVER_SHEET),t={},r={};for(const n of e){const s=n.getUnitId(),a=n.getSheets(),u={},c={};for(const l of a){const f=l.getSheetId(),m=l.getConfig();u[f]={cellData:new M.ObjectMatrix(m.cellData),rowCount:m.rowCount,columnCount:m.columnCount,rowData:m.rowData,columnData:m.columnData,defaultRowHeight:m.defaultRowHeight,defaultColumnWidth:m.defaultColumnWidth},c[l.getName()]=l.getSheetId()}t[s]=u,r[s]=c}return{allUnitData:t,unitSheetNameMap:r}}updateFormulaData(e,t,r){const n=new M.ObjectMatrix(r),s=this.getFormulaIdMap(e,t),a=new Map,u=this._formulaData;u[e]==null&&(u[e]={});const c=u[e];c[t]==null&&(c[t]={});const l=new M.ObjectMatrix(c[t]||{}),f=new M.ObjectMatrix;return n.forValue((m,d,C)=>{gc(l,f,s,a,m,d,C)}),l.forValue((m,d,C)=>{const _=(C==null?void 0:C.f)||"",E=(C==null?void 0:C.si)||"";if(M.isFormulaId(E)){const b=s.get(E),R=a.get(E);if(b&&!M.isFormulaString(_)){const p=b.f,V=d-b.c,S=m-b.r;l.setValue(m,d,{f:p,si:E,x:V,y:S}),f.setValue(m,d,{f:p,si:E,x:V,y:S})}else if(typeof R=="string"){const p=(C==null?void 0:C.x)||0,V=(C==null?void 0:C.y)||0,S=this._lexerTreeBuilder.moveFormulaRefOffset(R,p,V);a.set(E,{r:m,c:d,f:S}),l.setValue(m,d,{f:S,si:E}),f.setValue(m,d,{f:S,si:E})}else if(typeof R=="object"){const p=d-R.c,V=m-R.r;l.setValue(m,d,{f:R.f,si:E,x:p,y:V}),f.setValue(m,d,{f:R.f,si:E,x:p,y:V})}}}),f.getMatrix()}updateArrayFormulaRange(e,t,r){var u;const n=(u=this._arrayFormulaRange[e])==null?void 0:u[t];if(!n)return;const s=new M.ObjectMatrix(n);new M.ObjectMatrix(r).forValue((c,l,f)=>{s.realDeleteValue(c,l)})}updateArrayFormulaCellData(e,t,r){var l,f;const n=(l=this._arrayFormulaRange[e])==null?void 0:l[t];if(!n)return;const s=new M.ObjectMatrix(n),a=(f=this._arrayFormulaCellData[e])==null?void 0:f[t];if(!a)return;const u=new M.ObjectMatrix(a);new M.ObjectMatrix(r).forValue((m,d,C)=>{dc(s,u,m,d)})}getFormulaItemBySId(e,t,r){const n=this._formulaData;if(n[r]==null)return null;const s=n[r];if((s==null?void 0:s[t])==null)return null;const a=new M.ObjectMatrix(s[t]||{});let u=null;return a.forValue((c,l,f)=>{if(f==null)return!0;const{f:m,si:d,x:C=0,y:_=0}=f;if(d===e&&m.length>0&&C===0&&_===0)return u=f,!1}),u}getFormulaDataItem(e,t,r,n){var s,a,u,c;return(c=(u=(a=(s=this._formulaData)==null?void 0:s[n])==null?void 0:a[r])==null?void 0:u[e])==null?void 0:c[t]}getFormulaIdMap(e,t){const r=new Map,n=this._formulaData;if(n[e]==null)return r;const s=n[e];return(s==null?void 0:s[t])==null||new M.ObjectMatrix(s[t]||{}).forValue((u,c,l)=>{const f=(l==null?void 0:l.f)||"",m=(l==null?void 0:l.si)||"",d=(l==null?void 0:l.x)||0,C=(l==null?void 0:l.y)||0;M.isFormulaString(f)&&M.isFormulaId(m)&&d===0&&C===0&&r.set(m,{f,r:u,c})}),r}getFormulaStringByCell(e,t,r,n){const s=this.getFormulaDataItem(e,t,r,n);if(s==null)return null;const{f:a,si:u,x:c=0,y:l=0}=s;if(u!=null&&(c!==0||l!==0)){let f="";if(a.length>0)f=a;else{const m=this.getFormulaItemBySId(u,r,n);if(m==null||m.f.length===0)return null;f=m.f}return f=this._lexerTreeBuilder.moveFormulaRefOffset(f,c,l),f}return M.isFormulaString(a)?a:null}getFormulaDirtyRanges(){const e=this._formulaData,t=[];for(const r in e){const n=e[r];if(!n)continue;const s=this._univerInstanceService.getUnit(r);if(s)for(const a in n){const u=n[a];if(!u)continue;const c=s.getSheetBySheetId(a);if(!c)continue;const l={};for(const f of Object.keys(u)){const m=Number(f);for(const d in u[m]){const C=Number(d),_=c.getCellRaw(m,C),E=M.isFormulaString(_==null?void 0:_.f)||M.isFormulaId(_==null?void 0:_.si),b=(_==null?void 0:_.v)===void 0;if(!(E&&b))continue;l[C]||(l[C]=[]);const R=l[C].slice(-1)[0];R&&R.endRow===m-1?R.endRow=m:l[C].push({startRow:m,endRow:m})}}for(const f in l){const m=l[f];for(let d=0;d<m.length;d++){const C=m[d];t.push({unitId:r,sheetId:a,range:{rangeType:M.RANGE_TYPE.NORMAL,startRow:C.startRow,endRow:C.endRow,startColumn:Number(f),endColumn:Number(f)}})}}}}return t}};exports.FormulaDataModel=Ac([Ea(0,M.IUniverInstanceService),Ea(1,M.Inject(Vn))],exports.FormulaDataModel);function Ri(i,o,e,t){i[o]||(i[o]={}),i[o][e]||(i[o][e]={});const r=new Map,n=new M.ObjectMatrix(i[o][e]);t.forValue((a,u,c)=>{const l=(c==null?void 0:c.f)||"",f=(c==null?void 0:c.si)||"",m=M.isFormulaString(l),d=M.isFormulaId(f);m&&d?(n.setValue(a,u,{f:l,si:f}),r.set(f,{f:l,r:a,c:u})):m&&!d?n.setValue(a,u,{f:l}):!m&&d&&n.setValue(a,u,{f:"",si:f})}),n.forValue((a,u,c)=>{const l=(c==null?void 0:c.f)||"",f=(c==null?void 0:c.si)||"";if(M.isFormulaId(f)&&!M.isFormulaString(l)){const m=r.get(f);if(m){const d=m.f,C=u-m.c,_=a-m.r;n.setValue(a,u,{f:d,si:f,x:C,y:_})}else n.realDeleteValue(a,u)}});const s=n.getMatrix();return{[o]:{[e]:s}}}const Ec=class is{constructor(o,e){this.low=o,this.high=e}clone(){return new is(this.low,this.high)}get max(){return this.clone()}less_than(o){return this.low<o.low||this.low===o.low&&this.high<o.high}equal_to(o){return this.low===o.low&&this.high===o.high}intersect(o){return!this.not_intersect(o)}not_intersect(o){return this.high<o.low||o.high<this.low}merge(o){return new is(this.low===void 0?o.low:this.low<o.low?this.low:o.low,this.high===void 0?o.high:this.high>o.high?this.high:o.high)}output(){return[this.low,this.high]}static comparable_max(o,e){return o.merge(e)}static comparable_less_than(o,e){return o<e}},we=0,_e=1;class Lt{constructor(o=void 0,e=void 0,t=null,r=null,n=null,s=_e){if(this.left=t,this.right=r,this.parent=n,this.color=s,this.item={key:o,value:e},o&&o instanceof Array&&o.length===2&&!Number.isNaN(o[0])&&!Number.isNaN(o[1])){let[a,u]=o;a>u&&([a,u]=[u,a]),this.item.key=new Ec(a,u)}this.max=this.item.key?this.item.key.max:void 0}isNil(){return this.item.key===void 0&&this.item.value===void 0&&this.left===null&&this.right===null&&this.color===_e}_value_less_than(o){return this.item.value&&o.item.value&&this.item.value.less_than?this.item.value.less_than(o.item.value):this.item.value<o.item.value}less_than(o){return this.item.value===this.item.key&&o.item.value===o.item.key?this.item.key.less_than(o.item.key):this.item.key.less_than(o.item.key)||this.item.key.equal_to(o.item.key)&&this._value_less_than(o)}_value_equal(o){return this.item.value&&o.item.value&&this.item.value.equal_to?this.item.value.equal_to(o.item.value):this.item.value===o.item.value}equal_to(o){return this.item.value===this.item.key&&o.item.value===o.item.key?this.item.key.equal_to(o.item.key):this.item.key.equal_to(o.item.key)&&this._value_equal(o)}intersect(o){return this.item.key.intersect(o.item.key)}copy_data(o){this.item.key=o.item.key,this.item.value=o.item.value}update_max(){if(this.max=this.item.key?this.item.key.max:void 0,this.right&&this.right.max){const o=this.item.key.constructor.comparable_max;this.max=o(this.max,this.right.max)}if(this.left&&this.left.max){const o=this.item.key.constructor.comparable_max;this.max=o(this.max,this.left.max)}}not_intersect_left_subtree(o){const e=this.item.key.constructor.comparable_less_than;let t=this.left.max.high!==void 0?this.left.max.high:this.left.max;return e(t,o.item.key.low)}not_intersect_right_subtree(o){const e=this.item.key.constructor.comparable_less_than;let t=this.right.max.low!==void 0?this.right.max.low:this.right.item.key.low;return e(o.item.key.high,t)}}class Ms{constructor(){this.root=null,this.nil_node=new Lt}get size(){let o=0;return this.tree_walk(this.root,()=>o++),o}get keys(){let o=[];return this.tree_walk(this.root,e=>o.push(e.item.key.output?e.item.key.output():e.item.key)),o}get values(){let o=[];return this.tree_walk(this.root,e=>o.push(e.item.value)),o}get items(){let o=[];return this.tree_walk(this.root,e=>o.push({key:e.item.key.output?e.item.key.output():e.item.key,value:e.item.value})),o}isEmpty(){return this.root==null||this.root===this.nil_node}clear(){this.root=null}insert(o,e=o){if(o===void 0)return;let t=new Lt(o,e,this.nil_node,this.nil_node,null,we);return this.tree_insert(t),this.recalc_max(t),t}exist(o,e=o){let t=new Lt(o,e);return!!this.tree_search(this.root,t)}remove(o,e=o){let t=new Lt(o,e),r=this.tree_search(this.root,t);return r&&this.tree_delete(r),r}search(o,e=(t,r)=>t===r?r.output():t){let t=new Lt(o),r=[];return this.tree_search_interval(this.root,t,r),r.map(n=>e(n.item.value,n.item.key))}intersect_any(o){let e=new Lt(o);return this.tree_find_any_interval(this.root,e)}forEach(o){this.tree_walk(this.root,e=>o(e.item.key,e.item.value))}map(o){const e=new Ms;return this.tree_walk(this.root,t=>e.insert(t.item.key,o(t.item.value,t.item.key))),e}*iterate(o,e=(t,r)=>t===r?r.output():t){let t;for(o?t=this.tree_search_nearest_forward(this.root,new Lt(o)):this.root&&(t=this.local_minimum(this.root));t;)yield e(t.item.value,t.item.key),t=this.tree_successor(t)}recalc_max(o){let e=o;for(;e.parent!=null;)e.parent.update_max(),e=e.parent}tree_insert(o){let e=this.root,t=null;if(this.root==null||this.root===this.nil_node)this.root=o;else{for(;e!==this.nil_node;)t=e,o.less_than(e)?e=e.left:e=e.right;o.parent=t,o.less_than(t)?t.left=o:t.right=o}this.insert_fixup(o)}insert_fixup(o){let e,t;for(e=o;e!==this.root&&e.parent.color===we;)e.parent===e.parent.parent.left?(t=e.parent.parent.right,t.color===we?(e.parent.color=_e,t.color=_e,e.parent.parent.color=we,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,this.rotate_left(e)),e.parent.color=_e,e.parent.parent.color=we,this.rotate_right(e.parent.parent))):(t=e.parent.parent.left,t.color===we?(e.parent.color=_e,t.color=_e,e.parent.parent.color=we,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,this.rotate_right(e)),e.parent.color=_e,e.parent.parent.color=we,this.rotate_left(e.parent.parent)));this.root.color=_e}tree_delete(o){let e,t;o.left===this.nil_node||o.right===this.nil_node?e=o:e=this.tree_successor(o),e.left!==this.nil_node?t=e.left:t=e.right,t.parent=e.parent,e===this.root?this.root=t:(e===e.parent.left?e.parent.left=t:e.parent.right=t,e.parent.update_max()),this.recalc_max(t),e!==o&&(o.copy_data(e),o.update_max(),this.recalc_max(o)),e.color===_e&&this.delete_fixup(t)}delete_fixup(o){let e=o,t;for(;e!==this.root&&e.parent!=null&&e.color===_e;)e===e.parent.left?(t=e.parent.right,t.color===we&&(t.color=_e,e.parent.color=we,this.rotate_left(e.parent),t=e.parent.right),t.left.color===_e&&t.right.color===_e?(t.color=we,e=e.parent):(t.right.color===_e&&(t.color=we,t.left.color=_e,this.rotate_right(t),t=e.parent.right),t.color=e.parent.color,e.parent.color=_e,t.right.color=_e,this.rotate_left(e.parent),e=this.root)):(t=e.parent.left,t.color===we&&(t.color=_e,e.parent.color=we,this.rotate_right(e.parent),t=e.parent.left),t.left.color===_e&&t.right.color===_e?(t.color=we,e=e.parent):(t.left.color===_e&&(t.color=we,t.right.color=_e,this.rotate_left(t),t=e.parent.left),t.color=e.parent.color,e.parent.color=_e,t.left.color=_e,this.rotate_right(e.parent),e=this.root));e.color=_e}tree_search(o,e){if(!(o==null||o===this.nil_node))return e.equal_to(o)?o:e.less_than(o)?this.tree_search(o.left,e):this.tree_search(o.right,e)}tree_search_nearest_forward(o,e){let t,r=o;for(;r&&r!==this.nil_node;)r.less_than(e)?r.intersect(e)?(t=r,r=r.left):r=r.right:((!t||r.less_than(t))&&(t=r),r=r.left);return t||null}tree_search_interval(o,e,t){o!=null&&o!==this.nil_node&&(o.left!==this.nil_node&&!o.not_intersect_left_subtree(e)&&this.tree_search_interval(o.left,e,t),o.intersect(e)&&t.push(o),o.right!==this.nil_node&&!o.not_intersect_right_subtree(e)&&this.tree_search_interval(o.right,e,t))}tree_find_any_interval(o,e){let t=!1;return o!=null&&o!==this.nil_node&&(o.left!==this.nil_node&&!o.not_intersect_left_subtree(e)&&(t=this.tree_find_any_interval(o.left,e)),t||(t=o.intersect(e)),!t&&o.right!==this.nil_node&&!o.not_intersect_right_subtree(e)&&(t=this.tree_find_any_interval(o.right,e))),t}local_minimum(o){let e=o;for(;e.left!=null&&e.left!==this.nil_node;)e=e.left;return e}local_maximum(o){let e=o;for(;e.right!=null&&e.right!==this.nil_node;)e=e.right;return e}tree_successor(o){let e,t,r;if(o.right!==this.nil_node)e=this.local_minimum(o.right);else{for(t=o,r=o.parent;r!=null&&r.right===t;)t=r,r=r.parent;e=r}return e}rotate_left(o){let e=o.right;o.right=e.left,e.left!==this.nil_node&&(e.left.parent=o),e.parent=o.parent,o===this.root?this.root=e:o===o.parent.left?o.parent.left=e:o.parent.right=e,e.left=o,o.parent=e,o!=null&&o!==this.nil_node&&o.update_max(),e=o.parent,e!=null&&e!==this.nil_node&&e.update_max()}rotate_right(o){let e=o.left;o.left=e.right,e.right!==this.nil_node&&(e.right.parent=o),e.parent=o.parent,o===this.root?this.root=e:o===o.parent.left?o.parent.left=e:o.parent.right=e,e.right=o,o.parent=e,o!==null&&o!==this.nil_node&&o.update_max(),e=o.parent,e!=null&&e!==this.nil_node&&e.update_max()}tree_walk(o,e){o!=null&&o!==this.nil_node&&(this.tree_walk(o.left,e),e(o),this.tree_walk(o.right,e))}testRedBlackProperty(){let o=!0;return this.tree_walk(this.root,function(e){e.color===we&&(e.left.color===_e&&e.right.color===_e||(o=!1))}),o}testBlackHeightProperty(o){let e=0,t=0,r=0;if(o.color===_e&&e++,o.left!==this.nil_node?t=this.testBlackHeightProperty(o.left):t=1,o.right!==this.nil_node?r=this.testBlackHeightProperty(o.right):r=1,t!==r)throw new Error("Red-black height property violated");return e+=t,e}}class bc{constructor(){A(this,"_cache",new Map);A(this,"_continueBuildingCache",new Map)}set(o,e,t,r,n){if(!this.shouldContinueBuildingCache(o,e,t,n))return;let s=this._cache.get(o);s==null&&(s=new Map,this._cache.set(o,s));let a=s.get(e);a==null&&(a=new Map,s.set(e,a));let u=a.get(t);u==null&&(u=new Map,a.set(t,u));let c=u.get(r);c==null&&(c=new Set,u.set(r,c)),c.add(n)}getCellValuePositions(o,e,t){var r,n;return(n=(r=this._cache.get(o))==null?void 0:r.get(e))==null?void 0:n.get(t)}getCellPositions(o,e,t,r,n){var a,u,c;const s=(c=(u=(a=this._cache.get(o))==null?void 0:a.get(e))==null?void 0:u.get(t))==null?void 0:c.get(r);return s&&[...s].filter(l=>n.some(([f,m])=>l>=f&&l<=m))}setContinueBuildingCache(o,e,t,r,n){if(t===-1||r===-1||n===-1)return;let s=this._continueBuildingCache.get(o);s==null&&(s=new Map,this._continueBuildingCache.set(o,s));let a=s.get(e);a==null&&(a=new Map,s.set(e,a));let u=a.get(t);if(u==null){u=new Ms,u.insert([r,n]),a.set(t,u);return}this._handleNewInterval(u,r,n)}shouldContinueBuildingCache(o,e,t,r){var a,u;if(t===-1||r===-1)return!1;const n=(u=(a=this._continueBuildingCache.get(o))==null?void 0:a.get(e))==null?void 0:u.get(t);return n?n.search([r,r]).length===0:!0}canUseCache(o,e,t,r,n){var f,m;const s=(m=(f=this._continueBuildingCache.get(o))==null?void 0:f.get(e))==null?void 0:m.get(t);if(t===-1||r===-1||n===-1||!s)return{rowsInCache:[],rowsNotInCache:[]};const a=s.search([r,n]);if(a.length===0)return{rowsInCache:[],rowsNotInCache:[]};a.sort((d,C)=>d[0]-C[0]);const u=[],c=[];let l=r;for(let d=0;d<a.length;d++){const[C,_]=a[d];if(l>=C){if(n<=_){u.push([l,n]);break}u.push([l,_]),l=_+1,d===a.length-1&&l<=n&&c.push([l,n])}else{if(n>_){u.push([C,_]),c.push([l,C-1]),l=_+1,d===a.length-1&&l<=n&&c.push([l,n]);continue}u.push([C,n]),c.push([l,C-1])}}return{rowsInCache:u,rowsNotInCache:c}}clear(){this._cache.clear(),this._continueBuildingCache.clear()}_handleNewInterval(o,e,t){let r=o.search([e,t]);if(r.length===0){const a=[e-1<0?0:e-1,t+1];if(r=o.search(a),r.length===0){o.insert([e,t]);return}}let n=e,s=t;for(const a of r)n=Math.min(n,a[0]),s=Math.max(s,a[1]),o.remove(a);o.insert([n,s])}}const Et=new bc,On="engine-formula.config",yc={};var Rc=Object.defineProperty,pc=Object.getOwnPropertyDescriptor,Nc=(i,o,e,t)=>{for(var r=t>1?void 0:t?pc(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&Rc(o,e,r),r},ba=(i,o)=>(e,t)=>o(e,t,i);exports.FormulaCurrentConfigService=class extends M.Disposable{constructor(e,t){super();A(this,"_unitData",{});A(this,"_unitStylesData",{});A(this,"_arrayFormulaCellData",{});A(this,"_arrayFormulaRange",{});A(this,"_formulaData",{});A(this,"_sheetNameMap",{});A(this,"_forceCalculate",!1);A(this,"_clearDependencyTreeCache",{});A(this,"_dirtyRanges",[]);A(this,"_dirtyNameMap",{});A(this,"_dirtyDefinedNameMap",{});A(this,"_dirtyUnitFeatureMap",{});A(this,"_dirtyUnitOtherFormulaMap",{});A(this,"_excludedCell");A(this,"_sheetIdToNameMap",{});A(this,"_executeUnitId","");A(this,"_executeSubUnitId","");this._univerInstanceService=e,this._localeService=t}dispose(){this._unitData={},this._unitStylesData={},this._formulaData={},this._arrayFormulaCellData={},this._arrayFormulaRange={},this._sheetNameMap={},this._dirtyRanges=[],this._dirtyNameMap={},this._dirtyDefinedNameMap={},this._dirtyUnitFeatureMap={},this._excludedCell={},this._sheetIdToNameMap={},this._dirtyUnitOtherFormulaMap={}}getExecuteUnitId(){return this._executeUnitId}getExecuteSubUnitId(){return this._executeSubUnitId}setExecuteUnitId(e){this._executeUnitId=e}setExecuteSubUnitId(e){this._executeSubUnitId=e}getExcludedRange(){return this._excludedCell}getUnitData(){return this._unitData}getUnitStylesData(){return this._unitStylesData}getFormulaData(){return this._formulaData}getArrayFormulaCellData(){return this._arrayFormulaCellData}getArrayFormulaRange(){return this._arrayFormulaRange}getSheetNameMap(){return this._sheetNameMap}isForceCalculate(){return this._forceCalculate}getDirtyRanges(){return this._dirtyRanges}getDirtyNameMap(){return this._dirtyNameMap}getDirtyDefinedNameMap(){return this._dirtyDefinedNameMap}getDirtyUnitFeatureMap(){return this._dirtyUnitFeatureMap}getDirtyUnitOtherFormulaMap(){return this._dirtyUnitOtherFormulaMap}getSheetName(e,t){return this._sheetIdToNameMap[e]==null?"":this._sheetIdToNameMap[e][t]||""}getClearDependencyTreeCache(){return this._clearDependencyTreeCache}getLocale(){return this._localeService.getCurrentLocale()}getSheetsInfo(){const e=this._univerInstanceService.getCurrentUnitForType(M.UniverInstanceType.UNIVER_SHEET),{id:t,sheetOrder:r}=e.getSnapshot();return{sheetOrder:r,sheetNameMap:this._sheetIdToNameMap[t]}}getSheetRowColumnCount(e,t){const r=this._univerInstanceService.getUnit(e),n=r==null?void 0:r.getSheetBySheetId(t),s=n==null?void 0:n.getSnapshot();if(!s)return{rowCount:0,columnCount:0};const{rowCount:a,columnCount:u}=s;return{rowCount:a,columnCount:u}}load(e){if(e.allUnitData&&e.unitSheetNameMap&&e.unitStylesData)this._unitData=e.allUnitData,this._unitStylesData=e.unitStylesData,this._sheetNameMap=e.unitSheetNameMap;else{const{allUnitData:t,unitSheetNameMap:r,unitStylesData:n}=this._loadSheetData();this._unitData=t,this._unitStylesData=n,this._sheetNameMap=r}this._formulaData=e.formulaData,this._arrayFormulaCellData=ii(e.arrayFormulaCellData),this._arrayFormulaRange=e.arrayFormulaRange,this._forceCalculate=e.forceCalculate,this._clearDependencyTreeCache=e.clearDependencyTreeCache||{},this._dirtyRanges=e.dirtyRanges,this._dirtyNameMap=e.dirtyNameMap,this._dirtyDefinedNameMap=e.dirtyDefinedNameMap,this._dirtyUnitFeatureMap=e.dirtyUnitFeatureMap,this._dirtyUnitOtherFormulaMap=e.dirtyUnitOtherFormulaMap,this._excludedCell=e.excludedCell,this._mergeNameMap(this._sheetNameMap,this._dirtyNameMap)}getDirtyData(){return{forceCalculation:this._forceCalculate,dirtyRanges:this._dirtyRanges,dirtyNameMap:this._dirtyNameMap,dirtyDefinedNameMap:this._dirtyDefinedNameMap,dirtyUnitFeatureMap:this._dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap:this._dirtyUnitOtherFormulaMap,clearDependencyTreeCache:this._clearDependencyTreeCache}}loadDirtyRangesAndExcludedCell(e,t){this._dirtyRanges=e,this._excludedCell=t,this._dirtyNameMap={}}registerUnitData(e){this._unitData=e}registerFormulaData(e){this._formulaData=e}registerSheetNameMap(e){this._sheetNameMap=e}_mergeNameMap(e,t){Object.keys(t).forEach(r=>{t[r]&&Object.keys(t[r]).forEach(n=>{e[r]==null&&(e[r]={}),e[r][t[r][n]]=n})}),this._sheetIdToNameMap={},Object.keys(e).forEach(r=>{Object.keys(e[r]).forEach(n=>{this._sheetIdToNameMap[r]==null&&(this._sheetIdToNameMap[r]={}),this._sheetIdToNameMap[r][e[r][n]]=n})})}_loadSheetData(){const e=this._univerInstanceService.getAllUnitsForType(M.UniverInstanceType.UNIVER_SHEET),t=this._univerInstanceService.getCurrentUnitForType(M.UniverInstanceType.UNIVER_SHEET),r=t==null?void 0:t.getActiveSheet();this._executeUnitId=t==null?void 0:t.getUnitId(),this._executeSubUnitId=r==null?void 0:r.getSheetId();const n={},s={},a={};for(const u of e){const c=u.getUnitId(),l=u.getSheets(),f={},m={};for(const d of l){const C=d.getSheetId(),_=d.getConfig();f[C]={cellData:new M.ObjectMatrix(_.cellData),rowCount:_.rowCount,columnCount:_.columnCount,rowData:_.rowData,columnData:_.columnData,defaultRowHeight:_.defaultRowHeight,defaultColumnWidth:_.defaultColumnWidth},m[d.getName()]=d.getSheetId()}n[c]=f,s[c]=u.getStyles(),a[c]=m}return{allUnitData:n,unitStylesData:s,unitSheetNameMap:a}}};exports.FormulaCurrentConfigService=Nc([ba(0,M.IUniverInstanceService),ba(1,M.Inject(M.LocaleService))],exports.FormulaCurrentConfigService);const mt=M.createIdentifier("univer.formula.current-data.service");var Vc=Object.defineProperty,Oc=Object.getOwnPropertyDescriptor,Mc=(i,o,e,t)=>{for(var r=t>1?void 0:t?Oc(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&Vc(o,e,r),r},Wn=(i,o)=>(e,t)=>o(e,t,i);exports.Lexer=class extends M.Disposable{constructor(o,e,t){super(),this._definedNamesService=o,this._lexerTreeBuilder=e,this._formulaCurrentConfigService=t}treeBuilder(o,e=!0){return this._lexerTreeBuilder.treeBuilder(o,e,this._injectDefinedName.bind(this),this._simpleCheckDefinedName.bind(this))}_simpleCheckDefinedName(o){const e=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),t=this._formulaCurrentConfigService.getExecuteUnitId();if(t!=null&&e[t]!=null){const r=Object.keys(e[t]);for(let n=0,s=r.length;n<s;n++){const a=r[n];if(o.indexOf(a)>-1)return!0}}return!1}_checkDefinedNameDirty(o){const e=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),t=this._formulaCurrentConfigService.getExecuteUnitId();if(t!=null&&e[t]!=null){const r=Object.keys(e[t]);for(let n=0,s=r.length;n<s;n++)if(r[n]===o)return!0}return!1}_injectDefinedName(o){const e=this._formulaCurrentConfigService.getExecuteUnitId();if(e==null)return{sequenceString:"",hasDefinedName:!1,definedNames:[]};const t=this._lexerTreeBuilder.getSequenceNode(o);let r="",n=!1;const s=[];for(let a=0,u=t.length;a<u;a++){const c=t[a];if(typeof c=="string"){r+=c;continue}const{nodeType:l,token:f}=c;if(l===ve.REFERENCE||l===ve.FUNCTION){const m=this._definedNamesService.getValueByName(e,f);if(m){let d=m.formulaOrRefString;d.substring(0,1)===X.EQUALS&&(d=d.substring(1)),r+=d,s.push(m.name),n=!0}else this._checkDefinedNameDirty(f)?(r+=h.NAME,n=!0,s.push(f)):r+=f}else r+=f}return{sequenceString:r,hasDefinedName:n,definedNames:s}}};exports.Lexer=Mc([Wn(0,lr),Wn(1,M.Inject(Vn)),Wn(2,mt)],exports.Lexer);function pi(i,o,e,t,r){var s;const n=Object.keys(r);for(const a of n){const u=r[a],c=(s=u==null?void 0:u[t])==null?void 0:s[e];if(c==null)continue;const l=c.getValue(i,o);if(l!=null)return l}}const Sc=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],Dc={currency:2,date:4,datetime:5,error:11,fraction:7,general:0,grouped:11,number:1,percent:6,scientific:8,text:9,time:5,unknown:11};function wc(i,o,e){var u,c;if(i==null||o==null)return o;const t=(e==null?void 0:e.getStyleByCell(i))||i.s,r=(e==null?void 0:e.getStyleByCell(o))||o.s;if(t==null||r==null||typeof t!="object"||typeof r!="object")return o;const n=(u=t==null?void 0:t.n)==null?void 0:u.pattern,s=(c=r==null?void 0:r.n)==null?void 0:c.pattern;if(n==null||s==null)return o;const a=n||s;return r.n.pattern=a,o}const os=new ft(1e5);function ya(i){const o=os.get(i);if(o!==void 0)return o;const e=Lc(i);return os.set(i,e),e}function Pc(){os.clear()}function Lc(i){if(xc(i))return 3;const o=M.numfmt.getInfo(i).type||"unknown";return Dc[o]}function xc(i){return!!Sc.find(o=>i.includes(o))&&i.startsWith("_(")}function vr(i,o,e){if(i==="")return o;if(o==="")return i;const t=ya(i),r=ya(o);return e===X.PLUS||e===X.MINUS?t===4&&r===4||t===11&&r===11?"":o:e===X.MULTIPLY||e===X.DIVIDED?t===6&&r===6||t===7&&r===7||t===8&&r===8||t===9&&r===9?o:"":i||o}const jc=new Map([[M.LocaleType.EN_US,"$"],[M.LocaleType.RU_RU,"₽"],[M.LocaleType.VI_VN,"₫"],[M.LocaleType.ZH_CN,"¥"],[M.LocaleType.ZH_TW,"NT$"]]);function Ra(i){return jc.get(i)||"$"}function Ye(i,o=2){let e=o;o>127&&(e=127);let t="";return e>0&&(t=`.${"0".repeat(e)}`),`"${Ra(i)}"#,##0${t}_);[Red]("${Ra(i)}"#,##0${t})`}function Uc(i,o,e=2){return M.numfmt.format(Ye(i,e),o)}const Ss=new ft(1e5);function vc(i){let o=i;o.startsWith('"')&&o.endsWith('"')&&(o=o.slice(1,-1));const e=Ss.get(o);if(e)return{isNumberPattern:!0,value:e.value,pattern:e.pattern};const t=M.numfmt.parseNumber(o);if(t)return Qn(o,t.v,t.z);const r=M.numfmt.parseDate(o);if(r)return Qn(o,r.v,r.z);const n=M.numfmt.parseTime(o);return n?Qn(o,n.v,n.z):{isNumberPattern:!1}}function Qn(i,o,e){return Ss.set(i,{value:o,pattern:e}),{isNumberPattern:!0,value:o,pattern:e}}function Tc(){Ss.clear()}class Mn{constructor(){A(this,"pattern","")}dispose(){}getPattern(){return this.pattern}setPattern(o){this.pattern=o}isError(){return!1}isAsyncObject(){return!1}isAsyncArrayObject(){return!1}isReferenceObject(){return!1}isArray(){return!1}isValueObject(){return!1}isEqualType(o){return!1}}class ht extends Mn{constructor(o){super(),this._rawValue=o}isValueObject(){return!0}toUnitRange(){return{range:{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1},sheetId:"",unitId:""}}getValue(){return 0}getArrayValue(){return[]}setValue(o){}setArrayValue(o){}isCube(){return!1}isString(){return!1}isNumber(){return!1}isBoolean(){return!1}isLambda(){return!1}isError(){return!1}isNull(){return!1}sum(){return g.create(h.VALUE)}max(){return g.create(h.VALUE)}min(){return g.create(h.VALUE)}count(){return g.create(h.VALUE)}countA(){return g.create(h.VALUE)}countBlank(){return g.create(h.VALUE)}getNegative(){return g.create(h.VALUE)}getReciprocal(){return g.create(h.VALUE)}plus(o){return g.create(h.VALUE)}minus(o){return g.create(h.VALUE)}multiply(o){return g.create(h.VALUE)}divided(o){return g.create(h.VALUE)}mod(o){return g.create(h.VALUE)}map(o){return g.create(h.NAME)}mapValue(o){return g.create(h.NAME)}compare(o,e,t=!1){return g.create(h.NAME)}isEqual(o){return this.compare(o,$.EQUALS)}isNotEqual(o){return this.compare(o,$.NOT_EQUAL)}isGreaterThanOrEqual(o){return this.compare(o,$.GREATER_THAN_OR_EQUAL)}isLessThanOrEqual(o){return this.compare(o,$.LESS_THAN_OR_EQUAL)}isLessThan(o){return this.compare(o,$.LESS_THAN)}isGreaterThan(o){return this.compare(o,$.GREATER_THAN)}concatenateFront(o){return g.create(h.NAME)}concatenateBack(o){return g.create(h.NAME)}plusBy(o){return g.create(h.VALUE)}minusBy(o){return g.create(h.VALUE)}multiplyBy(o){return g.create(h.VALUE)}dividedBy(o){return g.create(h.VALUE)}modInverse(o){return g.create(h.VALUE)}compareBy(o,e){return g.create(h.NAME)}concatenate(o,e=Je.FRONT){let t=this.getValue().toString();if(typeof o=="string")e===Je.FRONT?t=o+t:t+=o;else if(typeof o=="number")e===Je.FRONT?t=o.toString()+t:t+=o.toString();else if(typeof o=="boolean"){const r=o?"TRUE":"FALSE";e===Je.FRONT?t=r+t:t+=r}return t}pow(o){return g.create(h.VALUE)}powInverse(o){return g.create(h.VALUE)}sqrt(){return g.create(h.VALUE)}cbrt(){return g.create(h.VALUE)}cos(){return g.create(h.VALUE)}cosh(){return g.create(h.VALUE)}acos(){return g.create(h.VALUE)}acosh(){return g.create(h.VALUE)}sin(){return g.create(h.VALUE)}sinh(){return g.create(h.VALUE)}asin(){return g.create(h.VALUE)}asinh(){return g.create(h.VALUE)}tan(){return g.create(h.VALUE)}tanh(){return g.create(h.VALUE)}atan(){return g.create(h.VALUE)}atan2(o){return g.create(h.VALUE)}atan2Inverse(o){return g.create(h.VALUE)}atanh(){return g.create(h.VALUE)}mean(){return this}median(){return this}var(){return this}std(){return this}log(){return g.create(h.VALUE)}log10(){return g.create(h.VALUE)}exp(){return g.create(h.VALUE)}abs(){return g.create(h.VALUE)}round(o){return g.create(h.VALUE)}roundInverse(o){return g.create(h.VALUE)}floor(o){return g.create(h.VALUE)}floorInverse(o){return g.create(h.VALUE)}ceil(o){return g.create(h.VALUE)}ceilInverse(o){return g.create(h.VALUE)}convertToNumberObjectValue(){return g.create(h.VALUE)}convertToBooleanObjectValue(){return g.create(h.VALUE)}}const Bc=1e3,pa=new ft(Bc);class g extends ht{constructor(o,e=""){super(o),this._errorType=o,this._errorContent=e}static create(o,e=""){const t=`${o}-${e}`,r=pa.get(t);if(r)return r;const n=new g(o,e);return pa.set(t,n),n}getValue(){return this._errorType}getErrorType(){return this._errorType}getErrorContent(){return this._errorContent}isEqualType(o){return o.getErrorType()===this.getErrorType()}isError(){return!0}}function Ic(i){if(i===null)return 0;if(i!=null&&i.p){const o=i==null?void 0:i.p.body;if(o==null)return 0;const e=o.dataStream;return M.BuildTextUtils.transform.getPlainText(e)}return(i==null?void 0:i.v)||0}var Ut=(i=>(i[i.MIN=0]="MIN",i[i.MAX=1]="MAX",i))(Ut||{}),Oe=(i=>(i[i.NORMAL=0]="NORMAL",i[i.MIN=1]="MIN",i[i.MAX=2]="MAX",i))(Oe||{});function tn(){return Intl&&Intl.Collator?new Intl.Collator(void 0,{numeric:!1}).compare:(i,o)=>i.localeCompare(o)}function Fc(i){return i.indexOf("*")>-1||i.indexOf("?")>-1}function qn(i,o){const e=$c(o).replace(/~?[*?]/g,r=>r.startsWith("~")?`\\${r.substring(1)}`:r==="*"?".*":r==="?"?".":r);return new RegExp(`^${e}$`).test(i)}function Na(i){return i.replace(/~?[*?]/g,o=>o.startsWith("~")?o.substring(1):" ")}function kc(i,o,e){let t=!1;switch(e){case $.EQUALS:t=qn(i,o);break;case $.NOT_EQUAL:t=!qn(i,o);break;case $.GREATER_THAN:case $.GREATER_THAN_OR_EQUAL:t=qn(i,o)||i>Na(o);break;case $.LESS_THAN:case $.LESS_THAN_OR_EQUAL:t=i<Na(o);break}return t}function $c(i){return i.replace(/[.+^${}()|[\]\\]/g,"\\$&")}function us(i){switch(i){case 1:return 2;case 0:return 0;case-1:return 1;default:return 0}}function cs(i){return i===-2?1:0}function Ds(i){let o;switch(i){case $.EQUALS:o=$.EQUALS;break;case $.GREATER_THAN:o=$.LESS_THAN;break;case $.GREATER_THAN_OR_EQUAL:o=$.LESS_THAN_OR_EQUAL;break;case $.LESS_THAN:o=$.GREATER_THAN;break;case $.LESS_THAN_OR_EQUAL:o=$.GREATER_THAN_OR_EQUAL;break;case $.NOT_EQUAL:o=$.NOT_EQUAL;break}return o}/*!
|
|
2
2
|
* decimal.js v10.4.3
|
|
3
3
|
* An arbitrary-precision Decimal type for JavaScript.
|
|
4
4
|
* https://github.com/MikeMcl/decimal.js
|
|
5
5
|
* Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>
|
|
6
6
|
* MIT Licence
|
|
7
|
-
*/var EXP_LIMIT=9e15,MAX_DIGITS=1e9,NUMERALS="0123456789abcdef",LN10="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",PI="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",DEFAULTS={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-EXP_LIMIT,maxE:EXP_LIMIT,crypto:!1},inexact,quadrant,external=!0,decimalError="[DecimalError] ",invalidArgument=decimalError+"Invalid argument: ",precisionLimitExceeded=decimalError+"Precision limit exceeded",cryptoUnavailable=decimalError+"crypto unavailable",tag="[object Decimal]",mathfloor=Math.floor,mathpow=Math.pow,isBinary=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,isHex=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,isOctal=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,isDecimal=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,BASE=1e7,LOG_BASE=7,MAX_SAFE_INTEGER=9007199254740991,LN10_PRECISION=LN10.length-1,PI_PRECISION=PI.length-1,P={toStringTag:tag};P.absoluteValue=P.abs=function(){var x=new this.constructor(this);return x.s<0&&(x.s=1),finalise(x)};P.ceil=function(){return finalise(new this.constructor(this),this.e+1,2)};P.clampedTo=P.clamp=function(min2,max2){var k,x=this,Ctor=x.constructor;if(min2=new Ctor(min2),max2=new Ctor(max2),!min2.s||!max2.s)return new Ctor(NaN);if(min2.gt(max2))throw Error(invalidArgument+max2);return k=x.cmp(min2),k<0?min2:x.cmp(max2)>0?max2:new Ctor(x)};P.comparedTo=P.cmp=function(y){var i,j,xdL,ydL,x=this,xd=x.d,yd=(y=new x.constructor(y)).d,xs=x.s,ys=y.s;if(!xd||!yd)return!xs||!ys?NaN:xs!==ys?xs:xd===yd?0:!xd^xs<0?1:-1;if(!xd[0]||!yd[0])return xd[0]?xs:yd[0]?-ys:0;if(xs!==ys)return xs;if(x.e!==y.e)return x.e>y.e^xs<0?1:-1;for(xdL=xd.length,ydL=yd.length,i=0,j=xdL<ydL?xdL:ydL;i<j;++i)if(xd[i]!==yd[i])return xd[i]>yd[i]^xs<0?1:-1;return xdL===ydL?0:xdL>ydL^xs<0?1:-1};P.cosine=P.cos=function(){var pr,rm,x=this,Ctor=x.constructor;return x.d?x.d[0]?(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(x.e,x.sd())+LOG_BASE,Ctor.rounding=1,x=cosine(Ctor,toLessThanHalfPi(Ctor,x)),Ctor.precision=pr,Ctor.rounding=rm,finalise(quadrant==2||quadrant==3?x.neg():x,pr,rm,!0)):new Ctor(1):new Ctor(NaN)};P.cubeRoot=P.cbrt=function(){var e,m,n,r,rep,s,sd,t,t3,t3plusx,x=this,Ctor=x.constructor;if(!x.isFinite()||x.isZero())return new Ctor(x);for(external=!1,s=x.s*mathpow(x.s*x,1/3),!s||Math.abs(s)==1/0?(n=digitsToString(x.d),e=x.e,(s=(e-n.length+1)%3)&&(n+=s==1||s==-2?"0":"00"),s=mathpow(n,1/3),e=mathfloor((e+1)/3)-(e%3==(e<0?-1:2)),s==1/0?n="5e"+e:(n=s.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new Ctor(n),r.s=x.s):r=new Ctor(s.toString()),sd=(e=Ctor.precision)+3;;)if(t=r,t3=t.times(t).times(t),t3plusx=t3.plus(x),r=divide$1(t3plusx.plus(x).times(t),t3plusx.plus(t3),sd+2,1),digitsToString(t.d).slice(0,sd)===(n=digitsToString(r.d)).slice(0,sd))if(n=n.slice(sd-3,sd+1),n=="9999"||!rep&&n=="4999"){if(!rep&&(finalise(t,e+1,0),t.times(t).times(t).eq(x))){r=t;break}sd+=4,rep=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(finalise(r,e+1,1),m=!r.times(r).times(r).eq(x));break}return external=!0,finalise(r,e,Ctor.rounding,m)};P.decimalPlaces=P.dp=function(){var w,d=this.d,n=NaN;if(d){if(w=d.length-1,n=(w-mathfloor(this.e/LOG_BASE))*LOG_BASE,w=d[w],w)for(;w%10==0;w/=10)n--;n<0&&(n=0)}return n};P.dividedBy=P.div=function(y){return divide$1(this,new this.constructor(y))};P.dividedToIntegerBy=P.divToInt=function(y){var x=this,Ctor=x.constructor;return finalise(divide$1(x,new Ctor(y),0,1,1),Ctor.precision,Ctor.rounding)};P.equals=P.eq=function(y){return this.cmp(y)===0};P.floor=function(){return finalise(new this.constructor(this),this.e+1,3)};P.greaterThan=P.gt=function(y){return this.cmp(y)>0};P.greaterThanOrEqualTo=P.gte=function(y){var k=this.cmp(y);return k==1||k===0};P.hyperbolicCosine=P.cosh=function(){var k,n,pr,rm,len,x=this,Ctor=x.constructor,one=new Ctor(1);if(!x.isFinite())return new Ctor(x.s?1/0:NaN);if(x.isZero())return one;pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(x.e,x.sd())+4,Ctor.rounding=1,len=x.d.length,len<32?(k=Math.ceil(len/3),n=(1/tinyPow(4,k)).toString()):(k=16,n="2.3283064365386962890625e-10"),x=taylorSeries(Ctor,1,x.times(n),new Ctor(1),!0);for(var cosh2_x,i=k,d8=new Ctor(8);i--;)cosh2_x=x.times(x),x=one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));return finalise(x,Ctor.precision=pr,Ctor.rounding=rm,!0)};P.hyperbolicSine=P.sinh=function(){var k,pr,rm,len,x=this,Ctor=x.constructor;if(!x.isFinite()||x.isZero())return new Ctor(x);if(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(x.e,x.sd())+4,Ctor.rounding=1,len=x.d.length,len<3)x=taylorSeries(Ctor,2,x,x,!0);else{k=1.4*Math.sqrt(len),k=k>16?16:k|0,x=x.times(1/tinyPow(5,k)),x=taylorSeries(Ctor,2,x,x,!0);for(var sinh2_x,d5=new Ctor(5),d16=new Ctor(16),d20=new Ctor(20);k--;)sinh2_x=x.times(x),x=x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))))}return Ctor.precision=pr,Ctor.rounding=rm,finalise(x,pr,rm,!0)};P.hyperbolicTangent=P.tanh=function(){var pr,rm,x=this,Ctor=x.constructor;return x.isFinite()?x.isZero()?new Ctor(x):(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+7,Ctor.rounding=1,divide$1(x.sinh(),x.cosh(),Ctor.precision=pr,Ctor.rounding=rm)):new Ctor(x.s)};P.inverseCosine=P.acos=function(){var halfPi,x=this,Ctor=x.constructor,k=x.abs().cmp(1),pr=Ctor.precision,rm=Ctor.rounding;return k!==-1?k===0?x.isNeg()?getPi(Ctor,pr,rm):new Ctor(0):new Ctor(NaN):x.isZero()?getPi(Ctor,pr+4,rm).times(.5):(Ctor.precision=pr+6,Ctor.rounding=1,x=x.asin(),halfPi=getPi(Ctor,pr+4,rm).times(.5),Ctor.precision=pr,Ctor.rounding=rm,halfPi.minus(x))};P.inverseHyperbolicCosine=P.acosh=function(){var pr,rm,x=this,Ctor=x.constructor;return x.lte(1)?new Ctor(x.eq(1)?0:NaN):x.isFinite()?(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(Math.abs(x.e),x.sd())+4,Ctor.rounding=1,external=!1,x=x.times(x).minus(1).sqrt().plus(x),external=!0,Ctor.precision=pr,Ctor.rounding=rm,x.ln()):new Ctor(x)};P.inverseHyperbolicSine=P.asinh=function(){var pr,rm,x=this,Ctor=x.constructor;return!x.isFinite()||x.isZero()?new Ctor(x):(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+2*Math.max(Math.abs(x.e),x.sd())+6,Ctor.rounding=1,external=!1,x=x.times(x).plus(1).sqrt().plus(x),external=!0,Ctor.precision=pr,Ctor.rounding=rm,x.ln())};P.inverseHyperbolicTangent=P.atanh=function(){var pr,rm,wpr,xsd,x=this,Ctor=x.constructor;return x.isFinite()?x.e>=0?new Ctor(x.abs().eq(1)?x.s/0:x.isZero()?x:NaN):(pr=Ctor.precision,rm=Ctor.rounding,xsd=x.sd(),Math.max(xsd,pr)<2*-x.e-1?finalise(new Ctor(x),pr,rm,!0):(Ctor.precision=wpr=xsd-x.e,x=divide$1(x.plus(1),new Ctor(1).minus(x),wpr+pr,1),Ctor.precision=pr+4,Ctor.rounding=1,x=x.ln(),Ctor.precision=pr,Ctor.rounding=rm,x.times(.5))):new Ctor(NaN)};P.inverseSine=P.asin=function(){var halfPi,k,pr,rm,x=this,Ctor=x.constructor;return x.isZero()?new Ctor(x):(k=x.abs().cmp(1),pr=Ctor.precision,rm=Ctor.rounding,k!==-1?k===0?(halfPi=getPi(Ctor,pr+4,rm).times(.5),halfPi.s=x.s,halfPi):new Ctor(NaN):(Ctor.precision=pr+6,Ctor.rounding=1,x=x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan(),Ctor.precision=pr,Ctor.rounding=rm,x.times(2)))};P.inverseTangent=P.atan=function(){var i,j,k,n,px,t,r,wpr,x2,x=this,Ctor=x.constructor,pr=Ctor.precision,rm=Ctor.rounding;if(x.isFinite()){if(x.isZero())return new Ctor(x);if(x.abs().eq(1)&&pr+4<=PI_PRECISION)return r=getPi(Ctor,pr+4,rm).times(.25),r.s=x.s,r}else{if(!x.s)return new Ctor(NaN);if(pr+4<=PI_PRECISION)return r=getPi(Ctor,pr+4,rm).times(.5),r.s=x.s,r}for(Ctor.precision=wpr=pr+10,Ctor.rounding=1,k=Math.min(28,wpr/LOG_BASE+2|0),i=k;i;--i)x=x.div(x.times(x).plus(1).sqrt().plus(1));for(external=!1,j=Math.ceil(wpr/LOG_BASE),n=1,x2=x.times(x),r=new Ctor(x),px=x;i!==-1;)if(px=px.times(x2),t=r.minus(px.div(n+=2)),px=px.times(x2),r=t.plus(px.div(n+=2)),r.d[j]!==void 0)for(i=j;r.d[i]===t.d[i]&&i--;);return k&&(r=r.times(2<<k-1)),external=!0,finalise(r,Ctor.precision=pr,Ctor.rounding=rm,!0)};P.isFinite=function(){return!!this.d};P.isInteger=P.isInt=function(){return!!this.d&&mathfloor(this.e/LOG_BASE)>this.d.length-2};P.isNaN=function(){return!this.s};P.isNegative=P.isNeg=function(){return this.s<0};P.isPositive=P.isPos=function(){return this.s>0};P.isZero=function(){return!!this.d&&this.d[0]===0};P.lessThan=P.lt=function(y){return this.cmp(y)<0};P.lessThanOrEqualTo=P.lte=function(y){return this.cmp(y)<1};P.logarithm=P.log=function(base){var isBase10,d,denominator,k,inf,num,sd,r,arg=this,Ctor=arg.constructor,pr=Ctor.precision,rm=Ctor.rounding,guard=5;if(base==null)base=new Ctor(10),isBase10=!0;else{if(base=new Ctor(base),d=base.d,base.s<0||!d||!d[0]||base.eq(1))return new Ctor(NaN);isBase10=base.eq(10)}if(d=arg.d,arg.s<0||!d||!d[0]||arg.eq(1))return new Ctor(d&&!d[0]?-1/0:arg.s!=1?NaN:d?0:1/0);if(isBase10)if(d.length>1)inf=!0;else{for(k=d[0];k%10===0;)k/=10;inf=k!==1}if(external=!1,sd=pr+guard,num=naturalLogarithm(arg,sd),denominator=isBase10?getLn10(Ctor,sd+10):naturalLogarithm(base,sd),r=divide$1(num,denominator,sd,1),checkRoundingDigits(r.d,k=pr,rm))do if(sd+=10,num=naturalLogarithm(arg,sd),denominator=isBase10?getLn10(Ctor,sd+10):naturalLogarithm(base,sd),r=divide$1(num,denominator,sd,1),!inf){+digitsToString(r.d).slice(k+1,k+15)+1==1e14&&(r=finalise(r,pr+1,0));break}while(checkRoundingDigits(r.d,k+=10,rm));return external=!0,finalise(r,pr,rm)};P.minus=P.sub=function(y){var d,e,i,j,k,len,pr,rm,xd,xe,xLTy,yd,x=this,Ctor=x.constructor;if(y=new Ctor(y),!x.d||!y.d)return!x.s||!y.s?y=new Ctor(NaN):x.d?y.s=-y.s:y=new Ctor(y.d||x.s!==y.s?x:NaN),y;if(x.s!=y.s)return y.s=-y.s,x.plus(y);if(xd=x.d,yd=y.d,pr=Ctor.precision,rm=Ctor.rounding,!xd[0]||!yd[0]){if(yd[0])y.s=-y.s;else if(xd[0])y=new Ctor(x);else return new Ctor(rm===3?-0:0);return external?finalise(y,pr,rm):y}if(e=mathfloor(y.e/LOG_BASE),xe=mathfloor(x.e/LOG_BASE),xd=xd.slice(),k=xe-e,k){for(xLTy=k<0,xLTy?(d=xd,k=-k,len=yd.length):(d=yd,e=xe,len=xd.length),i=Math.max(Math.ceil(pr/LOG_BASE),len)+2,k>i&&(k=i,d.length=1),d.reverse(),i=k;i--;)d.push(0);d.reverse()}else{for(i=xd.length,len=yd.length,xLTy=i<len,xLTy&&(len=i),i=0;i<len;i++)if(xd[i]!=yd[i]){xLTy=xd[i]<yd[i];break}k=0}for(xLTy&&(d=xd,xd=yd,yd=d,y.s=-y.s),len=xd.length,i=yd.length-len;i>0;--i)xd[len++]=0;for(i=yd.length;i>k;){if(xd[--i]<yd[i]){for(j=i;j&&xd[--j]===0;)xd[j]=BASE-1;--xd[j],xd[i]+=BASE}xd[i]-=yd[i]}for(;xd[--len]===0;)xd.pop();for(;xd[0]===0;xd.shift())--e;return xd[0]?(y.d=xd,y.e=getBase10Exponent(xd,e),external?finalise(y,pr,rm):y):new Ctor(rm===3?-0:0)};P.modulo=P.mod=function(y){var q,x=this,Ctor=x.constructor;return y=new Ctor(y),!x.d||!y.s||y.d&&!y.d[0]?new Ctor(NaN):!y.d||x.d&&!x.d[0]?finalise(new Ctor(x),Ctor.precision,Ctor.rounding):(external=!1,Ctor.modulo==9?(q=divide$1(x,y.abs(),0,3,1),q.s*=y.s):q=divide$1(x,y,0,Ctor.modulo,1),q=q.times(y),external=!0,x.minus(q))};P.naturalExponential=P.exp=function(){return naturalExponential(this)};P.naturalLogarithm=P.ln=function(){return naturalLogarithm(this)};P.negated=P.neg=function(){var x=new this.constructor(this);return x.s=-x.s,finalise(x)};P.plus=P.add=function(y){var carry,d,e,i,k,len,pr,rm,xd,yd,x=this,Ctor=x.constructor;if(y=new Ctor(y),!x.d||!y.d)return!x.s||!y.s?y=new Ctor(NaN):x.d||(y=new Ctor(y.d||x.s===y.s?x:NaN)),y;if(x.s!=y.s)return y.s=-y.s,x.minus(y);if(xd=x.d,yd=y.d,pr=Ctor.precision,rm=Ctor.rounding,!xd[0]||!yd[0])return yd[0]||(y=new Ctor(x)),external?finalise(y,pr,rm):y;if(k=mathfloor(x.e/LOG_BASE),e=mathfloor(y.e/LOG_BASE),xd=xd.slice(),i=k-e,i){for(i<0?(d=xd,i=-i,len=yd.length):(d=yd,e=k,len=xd.length),k=Math.ceil(pr/LOG_BASE),len=k>len?k+1:len+1,i>len&&(i=len,d.length=1),d.reverse();i--;)d.push(0);d.reverse()}for(len=xd.length,i=yd.length,len-i<0&&(i=len,d=yd,yd=xd,xd=d),carry=0;i;)carry=(xd[--i]=xd[i]+yd[i]+carry)/BASE|0,xd[i]%=BASE;for(carry&&(xd.unshift(carry),++e),len=xd.length;xd[--len]==0;)xd.pop();return y.d=xd,y.e=getBase10Exponent(xd,e),external?finalise(y,pr,rm):y};P.precision=P.sd=function(z){var k,x=this;if(z!==void 0&&z!==!!z&&z!==1&&z!==0)throw Error(invalidArgument+z);return x.d?(k=getPrecision(x.d),z&&x.e+1>k&&(k=x.e+1)):k=NaN,k};P.round=function(){var x=this,Ctor=x.constructor;return finalise(new Ctor(x),x.e+1,Ctor.rounding)};P.sine=P.sin=function(){var pr,rm,x=this,Ctor=x.constructor;return x.isFinite()?x.isZero()?new Ctor(x):(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(x.e,x.sd())+LOG_BASE,Ctor.rounding=1,x=sine(Ctor,toLessThanHalfPi(Ctor,x)),Ctor.precision=pr,Ctor.rounding=rm,finalise(quadrant>2?x.neg():x,pr,rm,!0)):new Ctor(NaN)};P.squareRoot=P.sqrt=function(){var m,n,sd,r,rep,t,x=this,d=x.d,e=x.e,s=x.s,Ctor=x.constructor;if(s!==1||!d||!d[0])return new Ctor(!s||s<0&&(!d||d[0])?NaN:d?x:1/0);for(external=!1,s=Math.sqrt(+x),s==0||s==1/0?(n=digitsToString(d),(n.length+e)%2==0&&(n+="0"),s=Math.sqrt(n),e=mathfloor((e+1)/2)-(e<0||e%2),s==1/0?n="5e"+e:(n=s.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new Ctor(n)):r=new Ctor(s.toString()),sd=(e=Ctor.precision)+3;;)if(t=r,r=t.plus(divide$1(x,t,sd+2,1)).times(.5),digitsToString(t.d).slice(0,sd)===(n=digitsToString(r.d)).slice(0,sd))if(n=n.slice(sd-3,sd+1),n=="9999"||!rep&&n=="4999"){if(!rep&&(finalise(t,e+1,0),t.times(t).eq(x))){r=t;break}sd+=4,rep=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(finalise(r,e+1,1),m=!r.times(r).eq(x));break}return external=!0,finalise(r,e,Ctor.rounding,m)};P.tangent=P.tan=function(){var pr,rm,x=this,Ctor=x.constructor;return x.isFinite()?x.isZero()?new Ctor(x):(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+10,Ctor.rounding=1,x=x.sin(),x.s=1,x=divide$1(x,new Ctor(1).minus(x.times(x)).sqrt(),pr+10,0),Ctor.precision=pr,Ctor.rounding=rm,finalise(quadrant==2||quadrant==4?x.neg():x,pr,rm,!0)):new Ctor(NaN)};P.times=P.mul=function(y){var carry,e,i,k,r,rL,t,xdL,ydL,x=this,Ctor=x.constructor,xd=x.d,yd=(y=new Ctor(y)).d;if(y.s*=x.s,!xd||!xd[0]||!yd||!yd[0])return new Ctor(!y.s||xd&&!xd[0]&&!yd||yd&&!yd[0]&&!xd?NaN:!xd||!yd?y.s/0:y.s*0);for(e=mathfloor(x.e/LOG_BASE)+mathfloor(y.e/LOG_BASE),xdL=xd.length,ydL=yd.length,xdL<ydL&&(r=xd,xd=yd,yd=r,rL=xdL,xdL=ydL,ydL=rL),r=[],rL=xdL+ydL,i=rL;i--;)r.push(0);for(i=ydL;--i>=0;){for(carry=0,k=xdL+i;k>i;)t=r[k]+yd[i]*xd[k-i-1]+carry,r[k--]=t%BASE|0,carry=t/BASE|0;r[k]=(r[k]+carry)%BASE|0}for(;!r[--rL];)r.pop();return carry?++e:r.shift(),y.d=r,y.e=getBase10Exponent(r,e),external?finalise(y,Ctor.precision,Ctor.rounding):y};P.toBinary=function(sd,rm){return toStringBinary(this,2,sd,rm)};P.toDecimalPlaces=P.toDP=function(dp,rm){var x=this,Ctor=x.constructor;return x=new Ctor(x),dp===void 0?x:(checkInt32(dp,0,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),finalise(x,dp+x.e+1,rm))};P.toExponential=function(dp,rm){var str,x=this,Ctor=x.constructor;return dp===void 0?str=finiteToString(x,!0):(checkInt32(dp,0,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),x=finalise(new Ctor(x),dp+1,rm),str=finiteToString(x,!0,dp+1)),x.isNeg()&&!x.isZero()?"-"+str:str};P.toFixed=function(dp,rm){var str,y,x=this,Ctor=x.constructor;return dp===void 0?str=finiteToString(x):(checkInt32(dp,0,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),y=finalise(new Ctor(x),dp+x.e+1,rm),str=finiteToString(y,!1,dp+y.e+1)),x.isNeg()&&!x.isZero()?"-"+str:str};P.toFraction=function(maxD){var d,d0,d1,d2,e,k,n,n0,n1,pr,q,r,x=this,xd=x.d,Ctor=x.constructor;if(!xd)return new Ctor(x);if(n1=d0=new Ctor(1),d1=n0=new Ctor(0),d=new Ctor(d1),e=d.e=getPrecision(xd)-x.e-1,k=e%LOG_BASE,d.d[0]=mathpow(10,k<0?LOG_BASE+k:k),maxD==null)maxD=e>0?d:n1;else{if(n=new Ctor(maxD),!n.isInt()||n.lt(n1))throw Error(invalidArgument+n);maxD=n.gt(d)?e>0?d:n1:n}for(external=!1,n=new Ctor(digitsToString(xd)),pr=Ctor.precision,Ctor.precision=e=xd.length*LOG_BASE*2;q=divide$1(n,d,0,1,1),d2=d0.plus(q.times(d1)),d2.cmp(maxD)!=1;)d0=d1,d1=d2,d2=n1,n1=n0.plus(q.times(d2)),n0=d2,d2=d,d=n.minus(q.times(d2)),n=d2;return d2=divide$1(maxD.minus(d0),d1,0,1,1),n0=n0.plus(d2.times(n1)),d0=d0.plus(d2.times(d1)),n0.s=n1.s=x.s,r=divide$1(n1,d1,e,1).minus(x).abs().cmp(divide$1(n0,d0,e,1).minus(x).abs())<1?[n1,d1]:[n0,d0],Ctor.precision=pr,external=!0,r};P.toHexadecimal=P.toHex=function(sd,rm){return toStringBinary(this,16,sd,rm)};P.toNearest=function(y,rm){var x=this,Ctor=x.constructor;if(x=new Ctor(x),y==null){if(!x.d)return x;y=new Ctor(1),rm=Ctor.rounding}else{if(y=new Ctor(y),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),!x.d)return y.s?x:y;if(!y.d)return y.s&&(y.s=x.s),y}return y.d[0]?(external=!1,x=divide$1(x,y,0,rm,1).times(y),external=!0,finalise(x)):(y.s=x.s,x=y),x};P.toNumber=function(){return+this};P.toOctal=function(sd,rm){return toStringBinary(this,8,sd,rm)};P.toPower=P.pow=function(y){var e,k,pr,r,rm,s,x=this,Ctor=x.constructor,yn=+(y=new Ctor(y));if(!x.d||!y.d||!x.d[0]||!y.d[0])return new Ctor(mathpow(+x,yn));if(x=new Ctor(x),x.eq(1))return x;if(pr=Ctor.precision,rm=Ctor.rounding,y.eq(1))return finalise(x,pr,rm);if(e=mathfloor(y.e/LOG_BASE),e>=y.d.length-1&&(k=yn<0?-yn:yn)<=MAX_SAFE_INTEGER)return r=intPow(Ctor,x,k,pr),y.s<0?new Ctor(1).div(r):finalise(r,pr,rm);if(s=x.s,s<0){if(e<y.d.length-1)return new Ctor(NaN);if(y.d[e]&1||(s=1),x.e==0&&x.d[0]==1&&x.d.length==1)return x.s=s,x}return k=mathpow(+x,yn),e=k==0||!isFinite(k)?mathfloor(yn*(Math.log("0."+digitsToString(x.d))/Math.LN10+x.e+1)):new Ctor(k+"").e,e>Ctor.maxE+1||e<Ctor.minE-1?new Ctor(e>0?s/0:0):(external=!1,Ctor.rounding=x.s=1,k=Math.min(12,(e+"").length),r=naturalExponential(y.times(naturalLogarithm(x,pr+k)),pr),r.d&&(r=finalise(r,pr+5,1),checkRoundingDigits(r.d,pr,rm)&&(e=pr+10,r=finalise(naturalExponential(y.times(naturalLogarithm(x,e+k)),e),e+5,1),+digitsToString(r.d).slice(pr+1,pr+15)+1==1e14&&(r=finalise(r,pr+1,0)))),r.s=s,external=!0,Ctor.rounding=rm,finalise(r,pr,rm))};P.toPrecision=function(sd,rm){var str,x=this,Ctor=x.constructor;return sd===void 0?str=finiteToString(x,x.e<=Ctor.toExpNeg||x.e>=Ctor.toExpPos):(checkInt32(sd,1,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),x=finalise(new Ctor(x),sd,rm),str=finiteToString(x,sd<=x.e||x.e<=Ctor.toExpNeg,sd)),x.isNeg()&&!x.isZero()?"-"+str:str};P.toSignificantDigits=P.toSD=function(sd,rm){var x=this,Ctor=x.constructor;return sd===void 0?(sd=Ctor.precision,rm=Ctor.rounding):(checkInt32(sd,1,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8)),finalise(new Ctor(x),sd,rm)};P.toString=function(){var x=this,Ctor=x.constructor,str=finiteToString(x,x.e<=Ctor.toExpNeg||x.e>=Ctor.toExpPos);return x.isNeg()&&!x.isZero()?"-"+str:str};P.truncated=P.trunc=function(){return finalise(new this.constructor(this),this.e+1,1)};P.valueOf=P.toJSON=function(){var x=this,Ctor=x.constructor,str=finiteToString(x,x.e<=Ctor.toExpNeg||x.e>=Ctor.toExpPos);return x.isNeg()?"-"+str:str};function digitsToString(d){var i,k,ws,indexOfLastWord=d.length-1,str="",w=d[0];if(indexOfLastWord>0){for(str+=w,i=1;i<indexOfLastWord;i++)ws=d[i]+"",k=LOG_BASE-ws.length,k&&(str+=getZeroString(k)),str+=ws;w=d[i],ws=w+"",k=LOG_BASE-ws.length,k&&(str+=getZeroString(k))}else if(w===0)return"0";for(;w%10===0;)w/=10;return str+w}__name(digitsToString,"digitsToString");function checkInt32(i,min2,max2){if(i!==~~i||i<min2||i>max2)throw Error(invalidArgument+i)}__name(checkInt32,"checkInt32");function checkRoundingDigits(d,i,rm,repeating){var di,k,r,rd;for(k=d[0];k>=10;k/=10)--i;return--i<0?(i+=LOG_BASE,di=0):(di=Math.ceil((i+1)/LOG_BASE),i%=LOG_BASE),k=mathpow(10,LOG_BASE-i),rd=d[di]%k|0,repeating==null?i<3?(i==0?rd=rd/100|0:i==1&&(rd=rd/10|0),r=rm<4&&rd==99999||rm>3&&rd==49999||rd==5e4||rd==0):r=(rm<4&&rd+1==k||rm>3&&rd+1==k/2)&&(d[di+1]/k/100|0)==mathpow(10,i-2)-1||(rd==k/2||rd==0)&&(d[di+1]/k/100|0)==0:i<4?(i==0?rd=rd/1e3|0:i==1?rd=rd/100|0:i==2&&(rd=rd/10|0),r=(repeating||rm<4)&&rd==9999||!repeating&&rm>3&&rd==4999):r=((repeating||rm<4)&&rd+1==k||!repeating&&rm>3&&rd+1==k/2)&&(d[di+1]/k/1e3|0)==mathpow(10,i-3)-1,r}__name(checkRoundingDigits,"checkRoundingDigits");function convertBase(str,baseIn,baseOut){for(var j,arr=[0],arrL,i=0,strL=str.length;i<strL;){for(arrL=arr.length;arrL--;)arr[arrL]*=baseIn;for(arr[0]+=NUMERALS.indexOf(str.charAt(i++)),j=0;j<arr.length;j++)arr[j]>baseOut-1&&(arr[j+1]===void 0&&(arr[j+1]=0),arr[j+1]+=arr[j]/baseOut|0,arr[j]%=baseOut)}return arr.reverse()}__name(convertBase,"convertBase");function cosine(Ctor,x){var k,len,y;if(x.isZero())return x;len=x.d.length,len<32?(k=Math.ceil(len/3),y=(1/tinyPow(4,k)).toString()):(k=16,y="2.3283064365386962890625e-10"),Ctor.precision+=k,x=taylorSeries(Ctor,1,x.times(y),new Ctor(1));for(var i=k;i--;){var cos2x=x.times(x);x=cos2x.times(cos2x).minus(cos2x).times(8).plus(1)}return Ctor.precision-=k,x}__name(cosine,"cosine");var divide$1=function(){function multiplyInteger(x,k,base){var temp,carry=0,i=x.length;for(x=x.slice();i--;)temp=x[i]*k+carry,x[i]=temp%base|0,carry=temp/base|0;return carry&&x.unshift(carry),x}__name(multiplyInteger,"multiplyInteger");function compare(a,b,aL,bL){var i,r;if(aL!=bL)r=aL>bL?1:-1;else for(i=r=0;i<aL;i++)if(a[i]!=b[i]){r=a[i]>b[i]?1:-1;break}return r}__name(compare,"compare");function subtract(a,b,aL,base){for(var i=0;aL--;)a[aL]-=i,i=a[aL]<b[aL]?1:0,a[aL]=i*base+a[aL]-b[aL];for(;!a[0]&&a.length>1;)a.shift()}return __name(subtract,"subtract"),function(x,y,pr,rm,dp,base){var cmp,e,i,k,logBase,more,prod,prodL,q,qd,rem,remL,rem0,sd,t,xi,xL,yd0,yL,yz,Ctor=x.constructor,sign2=x.s==y.s?1:-1,xd=x.d,yd=y.d;if(!xd||!xd[0]||!yd||!yd[0])return new Ctor(!x.s||!y.s||(xd?yd&&xd[0]==yd[0]:!yd)?NaN:xd&&xd[0]==0||!yd?sign2*0:sign2/0);for(base?(logBase=1,e=x.e-y.e):(base=BASE,logBase=LOG_BASE,e=mathfloor(x.e/logBase)-mathfloor(y.e/logBase)),yL=yd.length,xL=xd.length,q=new Ctor(sign2),qd=q.d=[],i=0;yd[i]==(xd[i]||0);i++);if(yd[i]>(xd[i]||0)&&e--,pr==null?(sd=pr=Ctor.precision,rm=Ctor.rounding):dp?sd=pr+(x.e-y.e)+1:sd=pr,sd<0)qd.push(1),more=!0;else{if(sd=sd/logBase+2|0,i=0,yL==1){for(k=0,yd=yd[0],sd++;(i<xL||k)&&sd--;i++)t=k*base+(xd[i]||0),qd[i]=t/yd|0,k=t%yd|0;more=k||i<xL}else{for(k=base/(yd[0]+1)|0,k>1&&(yd=multiplyInteger(yd,k,base),xd=multiplyInteger(xd,k,base),yL=yd.length,xL=xd.length),xi=yL,rem=xd.slice(0,yL),remL=rem.length;remL<yL;)rem[remL++]=0;yz=yd.slice(),yz.unshift(0),yd0=yd[0],yd[1]>=base/2&&++yd0;do k=0,cmp=compare(yd,rem,yL,remL),cmp<0?(rem0=rem[0],yL!=remL&&(rem0=rem0*base+(rem[1]||0)),k=rem0/yd0|0,k>1?(k>=base&&(k=base-1),prod=multiplyInteger(yd,k,base),prodL=prod.length,remL=rem.length,cmp=compare(prod,rem,prodL,remL),cmp==1&&(k--,subtract(prod,yL<prodL?yz:yd,prodL,base))):(k==0&&(cmp=k=1),prod=yd.slice()),prodL=prod.length,prodL<remL&&prod.unshift(0),subtract(rem,prod,remL,base),cmp==-1&&(remL=rem.length,cmp=compare(yd,rem,yL,remL),cmp<1&&(k++,subtract(rem,yL<remL?yz:yd,remL,base))),remL=rem.length):cmp===0&&(k++,rem=[0]),qd[i++]=k,cmp&&rem[0]?rem[remL++]=xd[xi]||0:(rem=[xd[xi]],remL=1);while((xi++<xL||rem[0]!==void 0)&&sd--);more=rem[0]!==void 0}qd[0]||qd.shift()}if(logBase==1)q.e=e,inexact=more;else{for(i=1,k=qd[0];k>=10;k/=10)i++;q.e=i+e*logBase-1,finalise(q,dp?pr+q.e+1:pr,rm,more)}return q}}();function finalise(x,sd,rm,isTruncated){var digits,i,j,k,rd,roundUp,w,xd,xdi,Ctor=x.constructor;out:if(sd!=null){if(xd=x.d,!xd)return x;for(digits=1,k=xd[0];k>=10;k/=10)digits++;if(i=sd-digits,i<0)i+=LOG_BASE,j=sd,w=xd[xdi=0],rd=w/mathpow(10,digits-j-1)%10|0;else if(xdi=Math.ceil((i+1)/LOG_BASE),k=xd.length,xdi>=k)if(isTruncated){for(;k++<=xdi;)xd.push(0);w=rd=0,digits=1,i%=LOG_BASE,j=i-LOG_BASE+1}else break out;else{for(w=k=xd[xdi],digits=1;k>=10;k/=10)digits++;i%=LOG_BASE,j=i-LOG_BASE+digits,rd=j<0?0:w/mathpow(10,digits-j-1)%10|0}if(isTruncated=isTruncated||sd<0||xd[xdi+1]!==void 0||(j<0?w:w%mathpow(10,digits-j-1)),roundUp=rm<4?(rd||isTruncated)&&(rm==0||rm==(x.s<0?3:2)):rd>5||rd==5&&(rm==4||isTruncated||rm==6&&(i>0?j>0?w/mathpow(10,digits-j):0:xd[xdi-1])%10&1||rm==(x.s<0?8:7)),sd<1||!xd[0])return xd.length=0,roundUp?(sd-=x.e+1,xd[0]=mathpow(10,(LOG_BASE-sd%LOG_BASE)%LOG_BASE),x.e=-sd||0):xd[0]=x.e=0,x;if(i==0?(xd.length=xdi,k=1,xdi--):(xd.length=xdi+1,k=mathpow(10,LOG_BASE-i),xd[xdi]=j>0?(w/mathpow(10,digits-j)%mathpow(10,j)|0)*k:0),roundUp)for(;;)if(xdi==0){for(i=1,j=xd[0];j>=10;j/=10)i++;for(j=xd[0]+=k,k=1;j>=10;j/=10)k++;i!=k&&(x.e++,xd[0]==BASE&&(xd[0]=1));break}else{if(xd[xdi]+=k,xd[xdi]!=BASE)break;xd[xdi--]=0,k=1}for(i=xd.length;xd[--i]===0;)xd.pop()}return external&&(x.e>Ctor.maxE?(x.d=null,x.e=NaN):x.e<Ctor.minE&&(x.e=0,x.d=[0])),x}__name(finalise,"finalise");function finiteToString(x,isExp,sd){if(!x.isFinite())return nonFiniteToString(x);var k,e=x.e,str=digitsToString(x.d),len=str.length;return isExp?(sd&&(k=sd-len)>0?str=str.charAt(0)+"."+str.slice(1)+getZeroString(k):len>1&&(str=str.charAt(0)+"."+str.slice(1)),str=str+(x.e<0?"e":"e+")+x.e):e<0?(str="0."+getZeroString(-e-1)+str,sd&&(k=sd-len)>0&&(str+=getZeroString(k))):e>=len?(str+=getZeroString(e+1-len),sd&&(k=sd-e-1)>0&&(str=str+"."+getZeroString(k))):((k=e+1)<len&&(str=str.slice(0,k)+"."+str.slice(k)),sd&&(k=sd-len)>0&&(e+1===len&&(str+="."),str+=getZeroString(k))),str}__name(finiteToString,"finiteToString");function getBase10Exponent(digits,e){var w=digits[0];for(e*=LOG_BASE;w>=10;w/=10)e++;return e}__name(getBase10Exponent,"getBase10Exponent");function getLn10(Ctor,sd,pr){if(sd>LN10_PRECISION)throw external=!0,pr&&(Ctor.precision=pr),Error(precisionLimitExceeded);return finalise(new Ctor(LN10),sd,1,!0)}__name(getLn10,"getLn10");function getPi(Ctor,sd,rm){if(sd>PI_PRECISION)throw Error(precisionLimitExceeded);return finalise(new Ctor(PI),sd,rm,!0)}__name(getPi,"getPi");function getPrecision(digits){var w=digits.length-1,len=w*LOG_BASE+1;if(w=digits[w],w){for(;w%10==0;w/=10)len--;for(w=digits[0];w>=10;w/=10)len++}return len}__name(getPrecision,"getPrecision");function getZeroString(k){for(var zs="";k--;)zs+="0";return zs}__name(getZeroString,"getZeroString");function intPow(Ctor,x,n,pr){var isTruncated,r=new Ctor(1),k=Math.ceil(pr/LOG_BASE+4);for(external=!1;;){if(n%2&&(r=r.times(x),truncate(r.d,k)&&(isTruncated=!0)),n=mathfloor(n/2),n===0){n=r.d.length-1,isTruncated&&r.d[n]===0&&++r.d[n];break}x=x.times(x),truncate(x.d,k)}return external=!0,r}__name(intPow,"intPow");function isOdd(n){return n.d[n.d.length-1]&1}__name(isOdd,"isOdd");function maxOrMin(Ctor,args,ltgt){for(var y,x=new Ctor(args[0]),i=0;++i<args.length;)if(y=new Ctor(args[i]),y.s)x[ltgt](y)&&(x=y);else{x=y;break}return x}__name(maxOrMin,"maxOrMin");function naturalExponential(x,sd){var denominator,guard,j,pow2,sum2,t,wpr,rep=0,i=0,k=0,Ctor=x.constructor,rm=Ctor.rounding,pr=Ctor.precision;if(!x.d||!x.d[0]||x.e>17)return new Ctor(x.d?x.d[0]?x.s<0?0:1/0:1:x.s?x.s<0?0:x:NaN);for(sd==null?(external=!1,wpr=pr):wpr=sd,t=new Ctor(.03125);x.e>-2;)x=x.times(t),k+=5;for(guard=Math.log(mathpow(2,k))/Math.LN10*2+5|0,wpr+=guard,denominator=pow2=sum2=new Ctor(1),Ctor.precision=wpr;;){if(pow2=finalise(pow2.times(x),wpr,1),denominator=denominator.times(++i),t=sum2.plus(divide$1(pow2,denominator,wpr,1)),digitsToString(t.d).slice(0,wpr)===digitsToString(sum2.d).slice(0,wpr)){for(j=k;j--;)sum2=finalise(sum2.times(sum2),wpr,1);if(sd==null)if(rep<3&&checkRoundingDigits(sum2.d,wpr-guard,rm,rep))Ctor.precision=wpr+=10,denominator=pow2=t=new Ctor(1),i=0,rep++;else return finalise(sum2,Ctor.precision=pr,rm,external=!0);else return Ctor.precision=pr,sum2}sum2=t}}__name(naturalExponential,"naturalExponential");function naturalLogarithm(y,sd){var c,c0,denominator,e,numerator,rep,sum2,t,wpr,x1,x2,n=1,guard=10,x=y,xd=x.d,Ctor=x.constructor,rm=Ctor.rounding,pr=Ctor.precision;if(x.s<0||!xd||!xd[0]||!x.e&&xd[0]==1&&xd.length==1)return new Ctor(xd&&!xd[0]?-1/0:x.s!=1?NaN:xd?0:x);if(sd==null?(external=!1,wpr=pr):wpr=sd,Ctor.precision=wpr+=guard,c=digitsToString(xd),c0=c.charAt(0),Math.abs(e=x.e)<15e14){for(;c0<7&&c0!=1||c0==1&&c.charAt(1)>3;)x=x.times(y),c=digitsToString(x.d),c0=c.charAt(0),n++;e=x.e,c0>1?(x=new Ctor("0."+c),e++):x=new Ctor(c0+"."+c.slice(1))}else return t=getLn10(Ctor,wpr+2,pr).times(e+""),x=naturalLogarithm(new Ctor(c0+"."+c.slice(1)),wpr-guard).plus(t),Ctor.precision=pr,sd==null?finalise(x,pr,rm,external=!0):x;for(x1=x,sum2=numerator=x=divide$1(x.minus(1),x.plus(1),wpr,1),x2=finalise(x.times(x),wpr,1),denominator=3;;){if(numerator=finalise(numerator.times(x2),wpr,1),t=sum2.plus(divide$1(numerator,new Ctor(denominator),wpr,1)),digitsToString(t.d).slice(0,wpr)===digitsToString(sum2.d).slice(0,wpr))if(sum2=sum2.times(2),e!==0&&(sum2=sum2.plus(getLn10(Ctor,wpr+2,pr).times(e+""))),sum2=divide$1(sum2,new Ctor(n),wpr,1),sd==null)if(checkRoundingDigits(sum2.d,wpr-guard,rm,rep))Ctor.precision=wpr+=guard,t=numerator=x=divide$1(x1.minus(1),x1.plus(1),wpr,1),x2=finalise(x.times(x),wpr,1),denominator=rep=1;else return finalise(sum2,Ctor.precision=pr,rm,external=!0);else return Ctor.precision=pr,sum2;sum2=t,denominator+=2}}__name(naturalLogarithm,"naturalLogarithm");function nonFiniteToString(x){return String(x.s*x.s/0)}__name(nonFiniteToString,"nonFiniteToString");function parseDecimal(x,str){var e,i,len;for((e=str.indexOf("."))>-1&&(str=str.replace(".","")),(i=str.search(/e/i))>0?(e<0&&(e=i),e+=+str.slice(i+1),str=str.substring(0,i)):e<0&&(e=str.length),i=0;str.charCodeAt(i)===48;i++);for(len=str.length;str.charCodeAt(len-1)===48;--len);if(str=str.slice(i,len),str){if(len-=i,x.e=e=e-i-1,x.d=[],i=(e+1)%LOG_BASE,e<0&&(i+=LOG_BASE),i<len){for(i&&x.d.push(+str.slice(0,i)),len-=LOG_BASE;i<len;)x.d.push(+str.slice(i,i+=LOG_BASE));str=str.slice(i),i=LOG_BASE-str.length}else i-=len;for(;i--;)str+="0";x.d.push(+str),external&&(x.e>x.constructor.maxE?(x.d=null,x.e=NaN):x.e<x.constructor.minE&&(x.e=0,x.d=[0]))}else x.e=0,x.d=[0];return x}__name(parseDecimal,"parseDecimal");function parseOther(x,str){var base,Ctor,divisor,i,isFloat,len,p,xd,xe;if(str.indexOf("_")>-1){if(str=str.replace(/(\d)_(?=\d)/g,"$1"),isDecimal.test(str))return parseDecimal(x,str)}else if(str==="Infinity"||str==="NaN")return+str||(x.s=NaN),x.e=NaN,x.d=null,x;if(isHex.test(str))base=16,str=str.toLowerCase();else if(isBinary.test(str))base=2;else if(isOctal.test(str))base=8;else throw Error(invalidArgument+str);for(i=str.search(/p/i),i>0?(p=+str.slice(i+1),str=str.substring(2,i)):str=str.slice(2),i=str.indexOf("."),isFloat=i>=0,Ctor=x.constructor,isFloat&&(str=str.replace(".",""),len=str.length,i=len-i,divisor=intPow(Ctor,new Ctor(base),i,i*2)),xd=convertBase(str,base,BASE),xe=xd.length-1,i=xe;xd[i]===0;--i)xd.pop();return i<0?new Ctor(x.s*0):(x.e=getBase10Exponent(xd,xe),x.d=xd,external=!1,isFloat&&(x=divide$1(x,divisor,len*4)),p&&(x=x.times(Math.abs(p)<54?mathpow(2,p):Decimal$1.pow(2,p))),external=!0,x)}__name(parseOther,"parseOther");function sine(Ctor,x){var k,len=x.d.length;if(len<3)return x.isZero()?x:taylorSeries(Ctor,2,x,x);k=1.4*Math.sqrt(len),k=k>16?16:k|0,x=x.times(1/tinyPow(5,k)),x=taylorSeries(Ctor,2,x,x);for(var sin2_x,d5=new Ctor(5),d16=new Ctor(16),d20=new Ctor(20);k--;)sin2_x=x.times(x),x=x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));return x}__name(sine,"sine");function taylorSeries(Ctor,n,x,y,isHyperbolic){var j,t,u,x2,pr=Ctor.precision,k=Math.ceil(pr/LOG_BASE);for(external=!1,x2=x.times(x),u=new Ctor(y);;){if(t=divide$1(u.times(x2),new Ctor(n++*n++),pr,1),u=isHyperbolic?y.plus(t):y.minus(t),y=divide$1(t.times(x2),new Ctor(n++*n++),pr,1),t=u.plus(y),t.d[k]!==void 0){for(j=k;t.d[j]===u.d[j]&&j--;);if(j==-1)break}j=u,u=y,y=t,t=j}return external=!0,t.d.length=k+1,t}__name(taylorSeries,"taylorSeries");function tinyPow(b,e){for(var n=b;--e;)n*=b;return n}__name(tinyPow,"tinyPow");function toLessThanHalfPi(Ctor,x){var t,isNeg=x.s<0,pi=getPi(Ctor,Ctor.precision,1),halfPi=pi.times(.5);if(x=x.abs(),x.lte(halfPi))return quadrant=isNeg?4:1,x;if(t=x.divToInt(pi),t.isZero())quadrant=isNeg?3:2;else{if(x=x.minus(t.times(pi)),x.lte(halfPi))return quadrant=isOdd(t)?isNeg?2:3:isNeg?4:1,x;quadrant=isOdd(t)?isNeg?1:4:isNeg?3:2}return x.minus(pi).abs()}__name(toLessThanHalfPi,"toLessThanHalfPi");function toStringBinary(x,baseOut,sd,rm){var base,e,i,k,len,roundUp,str,xd,y,Ctor=x.constructor,isExp=sd!==void 0;if(isExp?(checkInt32(sd,1,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8)):(sd=Ctor.precision,rm=Ctor.rounding),!x.isFinite())str=nonFiniteToString(x);else{for(str=finiteToString(x),i=str.indexOf("."),isExp?(base=2,baseOut==16?sd=sd*4-3:baseOut==8&&(sd=sd*3-2)):base=baseOut,i>=0&&(str=str.replace(".",""),y=new Ctor(1),y.e=str.length-i,y.d=convertBase(finiteToString(y),10,base),y.e=y.d.length),xd=convertBase(str,10,base),e=len=xd.length;xd[--len]==0;)xd.pop();if(!xd[0])str=isExp?"0p+0":"0";else{if(i<0?e--:(x=new Ctor(x),x.d=xd,x.e=e,x=divide$1(x,y,sd,rm,0,base),xd=x.d,e=x.e,roundUp=inexact),i=xd[sd],k=base/2,roundUp=roundUp||xd[sd+1]!==void 0,roundUp=rm<4?(i!==void 0||roundUp)&&(rm===0||rm===(x.s<0?3:2)):i>k||i===k&&(rm===4||roundUp||rm===6&&xd[sd-1]&1||rm===(x.s<0?8:7)),xd.length=sd,roundUp)for(;++xd[--sd]>base-1;)xd[sd]=0,sd||(++e,xd.unshift(1));for(len=xd.length;!xd[len-1];--len);for(i=0,str="";i<len;i++)str+=NUMERALS.charAt(xd[i]);if(isExp){if(len>1)if(baseOut==16||baseOut==8){for(i=baseOut==16?4:3,--len;len%i;len++)str+="0";for(xd=convertBase(str,base,baseOut),len=xd.length;!xd[len-1];--len);for(i=1,str="1.";i<len;i++)str+=NUMERALS.charAt(xd[i])}else str=str.charAt(0)+"."+str.slice(1);str=str+(e<0?"p":"p+")+e}else if(e<0){for(;++e;)str="0"+str;str="0."+str}else if(++e>len)for(e-=len;e--;)str+="0";else e<len&&(str=str.slice(0,e)+"."+str.slice(e))}str=(baseOut==16?"0x":baseOut==2?"0b":baseOut==8?"0o":"")+str}return x.s<0?"-"+str:str}__name(toStringBinary,"toStringBinary");function truncate(arr,len){if(arr.length>len)return arr.length=len,!0}__name(truncate,"truncate");function abs(x){return new this(x).abs()}__name(abs,"abs");function acos(x){return new this(x).acos()}__name(acos,"acos");function acosh(x){return new this(x).acosh()}__name(acosh,"acosh");function add(x,y){return new this(x).plus(y)}__name(add,"add");function asin(x){return new this(x).asin()}__name(asin,"asin");function asinh(x){return new this(x).asinh()}__name(asinh,"asinh");function atan(x){return new this(x).atan()}__name(atan,"atan");function atanh(x){return new this(x).atanh()}__name(atanh,"atanh");function atan2(y,x){y=new this(y),x=new this(x);var r,pr=this.precision,rm=this.rounding,wpr=pr+4;return!y.s||!x.s?r=new this(NaN):!y.d&&!x.d?(r=getPi(this,wpr,1).times(x.s>0?.25:.75),r.s=y.s):!x.d||y.isZero()?(r=x.s<0?getPi(this,pr,rm):new this(0),r.s=y.s):!y.d||x.isZero()?(r=getPi(this,wpr,1).times(.5),r.s=y.s):x.s<0?(this.precision=wpr,this.rounding=1,r=this.atan(divide$1(y,x,wpr,1)),x=getPi(this,wpr,1),this.precision=pr,this.rounding=rm,r=y.s<0?r.minus(x):r.plus(x)):r=this.atan(divide$1(y,x,wpr,1)),r}__name(atan2,"atan2");function cbrt(x){return new this(x).cbrt()}__name(cbrt,"cbrt");function ceil$1(x){return finalise(x=new this(x),x.e+1,2)}__name(ceil$1,"ceil$1");function clamp(x,min2,max2){return new this(x).clamp(min2,max2)}__name(clamp,"clamp");function config(obj){if(!obj||typeof obj!="object")throw Error(decimalError+"Object expected");var i,p,v,useDefaults=obj.defaults===!0,ps=["precision",1,MAX_DIGITS,"rounding",0,8,"toExpNeg",-EXP_LIMIT,0,"toExpPos",0,EXP_LIMIT,"maxE",0,EXP_LIMIT,"minE",-EXP_LIMIT,0,"modulo",0,9];for(i=0;i<ps.length;i+=3)if(p=ps[i],useDefaults&&(this[p]=DEFAULTS[p]),(v=obj[p])!==void 0)if(mathfloor(v)===v&&v>=ps[i+1]&&v<=ps[i+2])this[p]=v;else throw Error(invalidArgument+p+": "+v);if(p="crypto",useDefaults&&(this[p]=DEFAULTS[p]),(v=obj[p])!==void 0)if(v===!0||v===!1||v===0||v===1)if(v)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[p]=!0;else throw Error(cryptoUnavailable);else this[p]=!1;else throw Error(invalidArgument+p+": "+v);return this}__name(config,"config");function cos(x){return new this(x).cos()}__name(cos,"cos");function cosh(x){return new this(x).cosh()}__name(cosh,"cosh");function clone(obj){var i,p,ps;function Decimal2(v){var e,i2,t,x=this;if(!(x instanceof Decimal2))return new Decimal2(v);if(x.constructor=Decimal2,isDecimalInstance(v)){x.s=v.s,external?!v.d||v.e>Decimal2.maxE?(x.e=NaN,x.d=null):v.e<Decimal2.minE?(x.e=0,x.d=[0]):(x.e=v.e,x.d=v.d.slice()):(x.e=v.e,x.d=v.d?v.d.slice():v.d);return}if(t=typeof v,t==="number"){if(v===0){x.s=1/v<0?-1:1,x.e=0,x.d=[0];return}if(v<0?(v=-v,x.s=-1):x.s=1,v===~~v&&v<1e7){for(e=0,i2=v;i2>=10;i2/=10)e++;external?e>Decimal2.maxE?(x.e=NaN,x.d=null):e<Decimal2.minE?(x.e=0,x.d=[0]):(x.e=e,x.d=[v]):(x.e=e,x.d=[v]);return}else if(v*0!==0){v||(x.s=NaN),x.e=NaN,x.d=null;return}return parseDecimal(x,v.toString())}else if(t!=="string")throw Error(invalidArgument+v);return(i2=v.charCodeAt(0))===45?(v=v.slice(1),x.s=-1):(i2===43&&(v=v.slice(1)),x.s=1),isDecimal.test(v)?parseDecimal(x,v):parseOther(x,v)}if(__name(Decimal2,"Decimal"),Decimal2.prototype=P,Decimal2.ROUND_UP=0,Decimal2.ROUND_DOWN=1,Decimal2.ROUND_CEIL=2,Decimal2.ROUND_FLOOR=3,Decimal2.ROUND_HALF_UP=4,Decimal2.ROUND_HALF_DOWN=5,Decimal2.ROUND_HALF_EVEN=6,Decimal2.ROUND_HALF_CEIL=7,Decimal2.ROUND_HALF_FLOOR=8,Decimal2.EUCLID=9,Decimal2.config=Decimal2.set=config,Decimal2.clone=clone,Decimal2.isDecimal=isDecimalInstance,Decimal2.abs=abs,Decimal2.acos=acos,Decimal2.acosh=acosh,Decimal2.add=add,Decimal2.asin=asin,Decimal2.asinh=asinh,Decimal2.atan=atan,Decimal2.atanh=atanh,Decimal2.atan2=atan2,Decimal2.cbrt=cbrt,Decimal2.ceil=ceil$1,Decimal2.clamp=clamp,Decimal2.cos=cos,Decimal2.cosh=cosh,Decimal2.div=div,Decimal2.exp=exp,Decimal2.floor=floor$1,Decimal2.hypot=hypot,Decimal2.ln=ln,Decimal2.log=log,Decimal2.log10=log10,Decimal2.log2=log2,Decimal2.max=max,Decimal2.min=min,Decimal2.mod=mod$1,Decimal2.mul=mul,Decimal2.pow=pow$1,Decimal2.random=random,Decimal2.round=round$1,Decimal2.sign=sign,Decimal2.sin=sin,Decimal2.sinh=sinh,Decimal2.sqrt=sqrt$1,Decimal2.sub=sub,Decimal2.sum=sum,Decimal2.tan=tan,Decimal2.tanh=tanh,Decimal2.trunc=trunc,obj===void 0&&(obj={}),obj&&obj.defaults!==!0)for(ps=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],i=0;i<ps.length;)obj.hasOwnProperty(p=ps[i++])||(obj[p]=this[p]);return Decimal2.config(obj),Decimal2}__name(clone,"clone");function div(x,y){return new this(x).div(y)}__name(div,"div");function exp(x){return new this(x).exp()}__name(exp,"exp");function floor$1(x){return finalise(x=new this(x),x.e+1,3)}__name(floor$1,"floor$1");function hypot(){var i,n,t=new this(0);for(external=!1,i=0;i<arguments.length;)if(n=new this(arguments[i++]),n.d)t.d&&(t=t.plus(n.times(n)));else{if(n.s)return external=!0,new this(1/0);t=n}return external=!0,t.sqrt()}__name(hypot,"hypot");function isDecimalInstance(obj){return obj instanceof Decimal$1||obj&&obj.toStringTag===tag||!1}__name(isDecimalInstance,"isDecimalInstance");function ln(x){return new this(x).ln()}__name(ln,"ln");function log(x,y){return new this(x).log(y)}__name(log,"log");function log2(x){return new this(x).log(2)}__name(log2,"log2");function log10(x){return new this(x).log(10)}__name(log10,"log10");function max(){return maxOrMin(this,arguments,"lt")}__name(max,"max");function min(){return maxOrMin(this,arguments,"gt")}__name(min,"min");function mod$1(x,y){return new this(x).mod(y)}__name(mod$1,"mod$1");function mul(x,y){return new this(x).mul(y)}__name(mul,"mul");function pow$1(x,y){return new this(x).pow(y)}__name(pow$1,"pow$1");function random(sd){var d,e,k,n,i=0,r=new this(1),rd=[];if(sd===void 0?sd=this.precision:checkInt32(sd,1,MAX_DIGITS),k=Math.ceil(sd/LOG_BASE),this.crypto)if(crypto.getRandomValues)for(d=crypto.getRandomValues(new Uint32Array(k));i<k;)n=d[i],n>=429e7?d[i]=crypto.getRandomValues(new Uint32Array(1))[0]:rd[i++]=n%1e7;else if(crypto.randomBytes){for(d=crypto.randomBytes(k*=4);i<k;)n=d[i]+(d[i+1]<<8)+(d[i+2]<<16)+((d[i+3]&127)<<24),n>=214e7?crypto.randomBytes(4).copy(d,i):(rd.push(n%1e7),i+=4);i=k/4}else throw Error(cryptoUnavailable);else for(;i<k;)rd[i++]=Math.random()*1e7|0;for(k=rd[--i],sd%=LOG_BASE,k&&sd&&(n=mathpow(10,LOG_BASE-sd),rd[i]=(k/n|0)*n);rd[i]===0;i--)rd.pop();if(i<0)e=0,rd=[0];else{for(e=-1;rd[0]===0;e-=LOG_BASE)rd.shift();for(k=1,n=rd[0];n>=10;n/=10)k++;k<LOG_BASE&&(e-=LOG_BASE-k)}return r.e=e,r.d=rd,r}__name(random,"random");function round$1(x){return finalise(x=new this(x),x.e+1,this.rounding)}__name(round$1,"round$1");function sign(x){return x=new this(x),x.d?x.d[0]?x.s:0*x.s:x.s||NaN}__name(sign,"sign");function sin(x){return new this(x).sin()}__name(sin,"sin");function sinh(x){return new this(x).sinh()}__name(sinh,"sinh");function sqrt$1(x){return new this(x).sqrt()}__name(sqrt$1,"sqrt$1");function sub(x,y){return new this(x).sub(y)}__name(sub,"sub");function sum(){var i=0,args=arguments,x=new this(args[i]);for(external=!1;x.s&&++i<args.length;)x=x.plus(args[i]);return external=!0,finalise(x,this.precision,this.rounding)}__name(sum,"sum");function tan(x){return new this(x).tan()}__name(tan,"tan");function tanh(x){return new this(x).tanh()}__name(tanh,"tanh");function trunc(x){return finalise(x=new this(x),x.e+1,1)}__name(trunc,"trunc");P[Symbol.for("nodejs.util.inspect.custom")]=P.toString;P[Symbol.toStringTag]="Decimal";var Decimal$1=P.constructor=clone(DEFAULTS);LN10=new Decimal$1(LN10);PI=new Decimal$1(PI);function plus(a,b){const result=a+b;return Number.isSafeInteger(result)?result:new Decimal$1(a).add(b).toNumber()}__name(plus,"plus");function minus(a,b){const result=a-b;return Number.isSafeInteger(result)?result:new Decimal$1(a).sub(b).toNumber()}__name(minus,"minus");function multiply(a,b){const result=a*b;return Number.isSafeInteger(result)?result:new Decimal$1(a).mul(b).toNumber()}__name(multiply,"multiply");function divide(a,b){const result=a/b;return Number.isSafeInteger(result)?result:new Decimal$1(a).div(b).toNumber()}__name(divide,"divide");function round(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.round(multiply(base,factor)+epsilon)/factor}__name(round,"round");function floor(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.floor(multiply(base,factor)+epsilon)/factor}__name(floor,"floor");function ceil(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.ceil(multiply(base,factor)-epsilon)/factor}__name(ceil,"ceil");function baseEpsilon(base,factor){return Number.EPSILON*Math.max(1,Math.abs(multiply(base,factor)))}__name(baseEpsilon,"baseEpsilon");function mod(base,divisor){return base-divisor*Math.floor(base/divisor)}__name(mod,"mod");function pow(base,exponent){return base**exponent}__name(pow,"pow");function sqrt(base){return Math.sqrt(base)}__name(sqrt,"sqrt");function equals(a,b){return a===b}__name(equals,"equals");function greaterThan(a,b){return a>b}__name(greaterThan,"greaterThan");function greaterThanOrEquals(a,b){return a>=b}__name(greaterThanOrEquals,"greaterThanOrEquals");function lessThan(a,b){return a<b}__name(lessThan,"lessThan");function lessThanOrEquals(a,b){return a<=b}__name(lessThanOrEquals,"lessThanOrEquals");function strip(num,precision=15){return Number.parseFloat(num.toPrecision(precision))}__name(strip,"strip");function withinErrorMargin(left,right,tolerance=Number.EPSILON){return Math.abs(left-right)<tolerance}__name(withinErrorMargin,"withinErrorMargin");function stripErrorMargin(num,precision=12,tolerance=1e-10){const stripResult=strip(num,precision);return withinErrorMargin(num,stripResult,tolerance)?stripResult:strip(num)}__name(stripErrorMargin,"stripErrorMargin");function getFractionalPart(num){return num-Math.trunc(num)}__name(getFractionalPart,"getFractionalPart");const _NullValueObject=class _NullValueObject extends BaseValueObject{static create(){return this._instance=this._instance||new _NullValueObject(0),this._instance}isNull(){return!0}plus(valueObject){return NumberValueObject.create(0).plus(valueObject)}minus(valueObject){return NumberValueObject.create(0).minus(valueObject)}multiply(valueObject){return NumberValueObject.create(0).multiply(valueObject)}divided(valueObject){return NumberValueObject.create(0).divided(valueObject)}mod(valueObject){return NumberValueObject.create(0).mod(valueObject)}compare(valueObject,operator){return valueObject.isString()?StringValueObject.create("").compare(valueObject,operator):valueObject.isBoolean()?BooleanValueObject.create(!1).compare(valueObject,operator):NumberValueObject.create(0).compare(valueObject,operator)}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(StringValueObject.create("")):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(StringValueObject.create("")):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}plusBy(value){return NumberValueObject.create(0).plusBy(value)}minusBy(value){return NumberValueObject.create(0).minusBy(value)}multiplyBy(value){return NumberValueObject.create(0).multiplyBy(value)}dividedBy(value){return NumberValueObject.create(0).dividedBy(value)}compareBy(value,operator){return typeof value=="string"?StringValueObject.create("").compareBy(value,operator):typeof value=="boolean"?BooleanValueObject.create(!1).compareBy(value,operator):NumberValueObject.create(0).compareBy(value,operator)}pow(valueObject){return NumberValueObject.create(0).pow(valueObject)}sqrt(){return NumberValueObject.create(0).sqrt()}cbrt(){return NumberValueObject.create(0).cbrt()}cos(){return NumberValueObject.create(0).cos()}cosh(){return NumberValueObject.create(0).cosh()}acos(){return NumberValueObject.create(0).acos()}acosh(){return NumberValueObject.create(0).acosh()}sin(){return NumberValueObject.create(0).sin()}sinh(){return NumberValueObject.create(0).sinh()}asin(){return NumberValueObject.create(0).asin()}asinh(){return NumberValueObject.create(0).asinh()}tan(){return NumberValueObject.create(0).tan()}tanh(){return NumberValueObject.create(0).tanh()}atan(){return NumberValueObject.create(0).atan()}atan2(valueObject){return NumberValueObject.create(0).atan2(valueObject)}atanh(){return NumberValueObject.create(0).atanh()}log(){return ErrorValueObject.create(ErrorType$1.NUM)}log10(){return ErrorValueObject.create(ErrorType$1.NUM)}exp(){return NumberValueObject.create(0).exp()}abs(){return NumberValueObject.create(0).abs()}round(valueObject){return NumberValueObject.create(0).round(valueObject)}floor(valueObject){return NumberValueObject.create(0).floor(valueObject)}ceil(valueObject){return NumberValueObject.create(0).ceil(valueObject)}convertToNumberObjectValue(){return NumberValueObject.create(0)}convertToBooleanObjectValue(){return BooleanValueObject.create(!1)}};__name(_NullValueObject,"NullValueObject"),__publicField(_NullValueObject,"_instance");let NullValueObject=_NullValueObject;const _BooleanValueObject=class _BooleanValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value",!1);this._value=rawValue}static create(value){return value?(this._instanceTrue=this._instanceTrue||new _BooleanValueObject(!0),this._instanceTrue):(this._instanceFalse=this._instanceFalse||new _BooleanValueObject(!1),this._instanceFalse)}getValue(){return this._value}isBoolean(){return!0}getNegative(){const currentValue=this.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(-result)}getReciprocal(){return this.getValue()?NumberValueObject.create(1):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO)}plus(valueObject){return this._convertToNumber().plus(valueObject)}minus(valueObject){return this._convertToNumber().minus(valueObject)}multiply(valueObject){return this._convertToNumber().multiply(valueObject)}divided(valueObject){return this._convertToNumber().divided(valueObject)}mod(valueObject){return this._convertToNumber().mod(valueObject)}compare(valueObject,operator){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator)):valueObject.isNull()?this._convertToNumber().compare(valueObject,operator):this.compareBy(valueObject.getValue(),operator)}compareBy(value,operator){let result=!1;if(typeof value=="string"||typeof value=="number")result=this._compareString(operator);else if(typeof value=="boolean"){const booleanNumber=NumberValueObject.create(value?1:0);return this._convertToNumber().compare(booleanNumber,operator)}return _BooleanValueObject.create(result)}_compareString(operator){switch(operator){case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!0;case compareToken.EQUALS:case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!1}}concatenateFront(valueObject){return this._convertToNumber().concatenateFront(valueObject)}concatenateBack(valueObject){return this._convertToNumber().concatenateBack(valueObject)}_convertToNumber(){const currentValue=this.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(result)}pow(valueObject){return this._convertToNumber().pow(valueObject)}sqrt(){return this._convertToNumber().sqrt()}cbrt(){return this._convertToNumber().cbrt()}cos(){return this._convertToNumber().cos()}cosh(){return this._convertToNumber().cosh()}acos(){return this._convertToNumber().acos()}acosh(){return this._convertToNumber().acosh()}sin(){return this._convertToNumber().sin()}sinh(){return this._convertToNumber().sinh()}asin(){return this._convertToNumber().asin()}asinh(){return this._convertToNumber().asinh()}tan(){return this._convertToNumber().tan()}tanh(){return this._convertToNumber().tanh()}atan(){return this._convertToNumber().atan()}atan2(valueObject){return this._convertToNumber().atan2(valueObject)}atanh(){return this._convertToNumber().atanh()}log(){return this._convertToNumber().log()}log10(){return this._convertToNumber().log10()}exp(){return this._convertToNumber().exp()}abs(){return this._convertToNumber().abs()}round(valueObject){return this._convertToNumber().round(valueObject)}floor(valueObject){return this._convertToNumber().floor(valueObject)}ceil(valueObject){return this._convertToNumber().ceil(valueObject)}convertToNumberObjectValue(){return createNumberValueObjectByRawValue(this.getValue())}convertToBooleanObjectValue(){return this}};__name(_BooleanValueObject,"BooleanValueObject"),__publicField(_BooleanValueObject,"_instanceTrue"),__publicField(_BooleanValueObject,"_instanceFalse");let BooleanValueObject=_BooleanValueObject;const NUMBER_CACHE_LRU_COUNT=2e5,NumberValueObjectCache=new FormulaAstLRU(NUMBER_CACHE_LRU_COUNT),_NumberValueObject=class _NumberValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value",0);this._value=Number(rawValue)}static create(value,pattern=""){const key=`${value}-${pattern}`,cached=NumberValueObjectCache.get(key);if(cached)return cached;const instance=new _NumberValueObject(value);return pattern&&instance.setPattern(pattern),NumberValueObjectCache.set(key,instance),instance}getValue(){return this._value}setValue(value){this._value=value}isNumber(){return!0}getNegative(){return _NumberValueObject.create(0).minus(this)}getReciprocal(){return _NumberValueObject.create(1).divided(this)}plus(valueObject){if(valueObject.isArray())return valueObject.plus(this);let object=this.plusBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.PLUS);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}equalZero(){return this._value===0}minus(valueObject){if(valueObject.isArray()){const o=valueObject.getNegative();return o.isError()?o:o.plus(this)}let object=this.minusBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.MINUS);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}multiply(valueObject){if(valueObject.isArray())return valueObject.multiply(this);let object=this.multiplyBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.MULTIPLY);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}divided(valueObject){if(valueObject.isArray()){const o=valueObject.getReciprocal();return o.isError()?o:o.multiply(this)}let object=this.dividedBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.DIVIDED);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}mod(valueObject){if(valueObject.isArray())return valueObject.modInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(valueObject.isNull())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(!Number.isFinite(currentValue)||!Number.isFinite(value)||Math.abs(value)*11259e8<=Math.abs(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=mod(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}if(typeof value=="boolean"){const booleanValue=value?1:0;return booleanValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):_NumberValueObject.create(mod(currentValue,booleanValue))}return this}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(this):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(this):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}compare(valueObject,operator){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator)):this.compareBy(valueObject.getValue(),operator)}plusBy(value){const currentValue=+this.getValue(),_value=+value;if(Number.isNaN(currentValue)||Number.isNaN(_value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(_value))return ErrorValueObject.create(ErrorType$1.NUM);const result=plus(currentValue,_value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}minusBy(value){const currentValue=+this.getValue(),_value=+value;if(Number.isNaN(currentValue)||Number.isNaN(_value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(_value))return ErrorValueObject.create(ErrorType$1.NUM);const result=minus(currentValue,_value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}multiplyBy(value){const currentValue=+this.getValue(),_value=+value;if(Number.isNaN(currentValue)||Number.isNaN(_value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(_value))return ErrorValueObject.create(ErrorType$1.NUM);const result=multiply(currentValue,_value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}dividedBy(value){const currentValue=+this.getValue(),_value=+value;if(Number.isNaN(currentValue)||Number.isNaN(_value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(_value))return ErrorValueObject.create(ErrorType$1.NUM);if(_value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=divide(currentValue,_value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}compareBy(value,operator){const currentValue=this.getValue();let result=!1;return typeof value=="string"?result=this._compareString(operator):typeof value=="number"?result=this._compareNumber(currentValue,value,operator):typeof value=="boolean"&&(result=this._compareBoolean(operator)),BooleanValueObject.create(result)}_compareString(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}_compareNumber(currentValue,value,operator){return!Number.isFinite(currentValue)||!Number.isFinite(value)?this._compareInfinity(currentValue,value,operator):this._compareFiniteNumber(currentValue,value,operator)}_compareFiniteNumber(currentValue,value,operator){switch(operator){case compareToken.EQUALS:return equals(currentValue,value);case compareToken.GREATER_THAN:return greaterThan(currentValue,value);case compareToken.GREATER_THAN_OR_EQUAL:return greaterThanOrEquals(currentValue,value);case compareToken.LESS_THAN:return lessThan(currentValue,value);case compareToken.LESS_THAN_OR_EQUAL:return lessThanOrEquals(currentValue,value);case compareToken.NOT_EQUAL:return!equals(currentValue,value)}}_compareBoolean(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}pow(valueObject){if(valueObject.isArray())return valueObject.powInverse(this);if(this.isError())return this;const currentValue=this.getValue();let _valueObject=valueObject;if(valueObject.isString()&&(_valueObject=valueObject.convertToNumberObjectValue()),_valueObject.isError())return _valueObject;const value=+_valueObject.getValue();if(Number.isNaN(value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);if(currentValue===0)return value<0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):value===0?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(0);const result=pow(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}sqrt(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=sqrt(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cbrt(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cbrt(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cos(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cos(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cosh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cosh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}acos(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.acos(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}acosh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.acosh(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}sin(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sin(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}sinh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sinh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}asin(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.asin(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}asinh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.asinh(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}tan(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.tan(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}tanh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.tanh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}atan(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.atan(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}atan2(valueObject){if(valueObject.isArray())return valueObject.atan2Inverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);if(currentValue===0&&value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.atan2(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(Math.atan2(currentValue,value?1:0)):this}atanh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.atanh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}log(){const currentValue=this.getValue();if(typeof currentValue=="number"&¤tValue<=0||!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}log10(){const currentValue=this.getValue();if(typeof currentValue=="number"&¤tValue<=0||!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log10(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}exp(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.exp(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}abs(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.abs(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}round(valueObject){if(valueObject.isArray())return valueObject.roundInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-round(Math.abs(currentValue),value):round(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(round(currentValue,value?1:0)):this}floor(valueObject){if(valueObject.isArray())return valueObject.floorInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-floor(Math.abs(currentValue),value):floor(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(floor(currentValue,value?1:0)):this}ceil(valueObject){if(valueObject.isArray())return valueObject.ceilInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-ceil(Math.abs(currentValue),value):ceil(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(ceil(currentValue,value?1:0)):this}convertToNumberObjectValue(){return this}convertToBooleanObjectValue(){return createBooleanValueObjectByRawValue(!0)}_compareInfinity(currentValue,value,operator){let result=!1;switch(operator){case compareToken.EQUALS:result=currentValue===value;break;case compareToken.GREATER_THAN:result=currentValue>value;break;case compareToken.GREATER_THAN_OR_EQUAL:result=currentValue>=value;break;case compareToken.LESS_THAN:result=currentValue<value;break;case compareToken.LESS_THAN_OR_EQUAL:result=currentValue<=value;break;case compareToken.NOT_EQUAL:result=currentValue!==value;break}return result}};__name(_NumberValueObject,"NumberValueObject");let NumberValueObject=_NumberValueObject;const STRING_CACHE_LRU_COUNT=2e5,StringValueObjectCache=new FormulaAstLRU(STRING_CACHE_LRU_COUNT),_StringValueObject=class _StringValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value");this._value=rawValue}static create(value){const cached=StringValueObjectCache.get(value);if(cached)return cached;const instance=new _StringValueObject(value);return StringValueObjectCache.set(value,instance),instance}getValue(){return this._value}isString(){return!0}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(this):_StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(this):_StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}plus(valueObject){return this.convertToNumberObjectValue().plus(valueObject)}minus(valueObject){return this.convertToNumberObjectValue().minus(valueObject)}multiply(valueObject){return this.convertToNumberObjectValue().multiply(valueObject)}divided(valueObject){return this.convertToNumberObjectValue().divided(valueObject)}compare(valueObject,operator,isCaseSensitive){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator),isCaseSensitive):this.compareBy(valueObject.getValue(),operator,isCaseSensitive)}compareBy(value,operator,isCaseSensitive=!1){let currentValue=this.getValue(),result=!1;if(typeof value=="string"){let _value=value;if(isCaseSensitive||(currentValue=currentValue.toLocaleLowerCase(),_value=_value.toLocaleLowerCase()),isWildcard(_value))return this._checkWildcard(_value,operator);result=this._compareString(currentValue,_value,operator)}else typeof value=="number"?result=this._compareNumber(operator):typeof value=="boolean"&&(result=this._compareBoolean(operator));return BooleanValueObject.create(result)}_compareString(currentValue,value,operator){switch(operator){case compareToken.EQUALS:return currentValue===value;case compareToken.GREATER_THAN:return currentValue>value;case compareToken.GREATER_THAN_OR_EQUAL:return currentValue>=value;case compareToken.LESS_THAN:return currentValue<value;case compareToken.LESS_THAN_OR_EQUAL:return currentValue<=value;case compareToken.NOT_EQUAL:return currentValue!==value}}_compareNumber(operator){switch(operator){case compareToken.NOT_EQUAL:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!0;case compareToken.EQUALS:case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:return!1}}_compareBoolean(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}convertToNumberObjectValue(){return createNumberValueObjectByRawValue(this.getValue())}convertToBooleanObjectValue(){return BooleanValueObject.create(!0)}_checkWildcard(value,operator){const currentValue=this.getValue().toLocaleLowerCase(),result=compareWithWildcard(currentValue,value,operator);return BooleanValueObject.create(result)}};__name(_StringValueObject,"StringValueObject");let StringValueObject=_StringValueObject;function createBooleanValueObjectByRawValue(rawValue){if(typeof rawValue=="boolean")return BooleanValueObject.create(rawValue);let value=!1;if(typeof rawValue=="string"){const rawValueUpper=rawValue.toLocaleUpperCase();rawValueUpper===BooleanValue.TRUE?value=!0:rawValueUpper===BooleanValue.FALSE&&(value=!1)}else rawValue===1?value=!0:value=!1;return BooleanValueObject.create(value)}__name(createBooleanValueObjectByRawValue,"createBooleanValueObjectByRawValue");function createStringValueObjectByRawValue(rawValue){let value=rawValue.toString();return value.charAt(0)==='"'&&value.charAt(value.length-1)==='"'&&(value=value.slice(1,-1),value=value.replace(/""/g,'"')),StringValueObject.create(value)}__name(createStringValueObjectByRawValue,"createStringValueObjectByRawValue");function createNumberValueObjectByRawValue(rawValue,pattern=""){if(typeof rawValue=="boolean"){let result=0;return rawValue&&(result=1),NumberValueObject.create(result,pattern)}else{if(typeof rawValue=="number")return Number.isFinite(rawValue)?NumberValueObject.create(rawValue,pattern):ErrorValueObject.create(ErrorType$1.NUM);if(core.isRealNum(rawValue))return NumberValueObject.create(Number(rawValue),pattern)}return ErrorValueObject.create(ErrorType$1.VALUE)}__name(createNumberValueObjectByRawValue,"createNumberValueObjectByRawValue");function fromObjectToString(array){return""}__name(fromObjectToString,"fromObjectToString");function transformToValueObject(array=[]){const arrayValueList=[];for(let r=0;r<array.length;r++){const row=array[r];arrayValueList[r]==null&&(arrayValueList[r]=[]);for(let c=0;c<row.length;c++){const cell=row[c];arrayValueList[r][c]=ValueObjectFactory.create(cell)}}return arrayValueList}__name(transformToValueObject,"transformToValueObject");function transformToValue(array=[]){const arrayValueList=[];for(let r=0;r<array.length;r++){const row=array[r];arrayValueList[r]==null&&(arrayValueList[r]=[]);for(let c=0;c<row.length;c++){const cell=row[c];cell==null?arrayValueList[r][c]=null:cell.isError()?arrayValueList[r][c]=cell.getErrorType():arrayValueList[r][c]=cell.getValue()}}return arrayValueList}__name(transformToValue,"transformToValue");const _ArrayValueObject=class _ArrayValueObject extends BaseValueObject{constructor(rawValue){super(typeof rawValue=="string"?rawValue:fromObjectToString());__publicField(this,"_values",[]);__publicField(this,"_rowCount",-1);__publicField(this,"_columnCount",-1);__publicField(this,"_unitId","");__publicField(this,"_sheetId","");__publicField(this,"_currentRow",-1);__publicField(this,"_currentColumn",-1);__publicField(this,"_sliceCache",new Map);__publicField(this,"_flattenCache");__publicField(this,"_defaultValue",null);__publicField(this,"_flattenPosition");this._values=this._formatValue(rawValue)}static create(rawValue){return new _ArrayValueObject(rawValue)}static createByArray(array){const arrayValueObjectData={calculateValueList:transformToValueObject(array),rowCount:array.length,columnCount:array[0].length||0,unitId:"",sheetId:"",row:-1,column:-1};return new _ArrayValueObject(arrayValueObjectData)}dispose(){this._values.forEach(cells=>{cells.forEach(cell=>{cell==null||cell.dispose()})}),this._values=[],this._clearCache()}clone(){return this.map(o=>o)}getRowCount(){return this._rowCount}setRowCount(rowCount){this._rowCount=rowCount}getColumnCount(){return this._columnCount}setColumnCount(columnCount){this._columnCount=columnCount}setCurrent(row,column){this._currentRow=row,this._currentColumn=column}setUnitId(unitId){this._unitId=unitId}getUnitId(){return this._unitId}setSheetId(sheetId){this._sheetId=sheetId}getSheetId(){return this._sheetId}getCurrentRow(){return this._currentRow}getCurrentColumn(){return this._currentColumn}getArrayValue(){return this._values}setArrayValue(value){this._clearCache(),this._values=value}isArray(){return!0}setDefaultValue(value){this._defaultValue=value}get(row,column){var _a28;return((_a28=this._values[row])==null?void 0:_a28[column])||this._defaultValue}getRealValue(row,column){const rowValues=this._values[row];if(rowValues==null)return null;const v=rowValues[column];return v==null?null:v}getValueOrDefault(row,column){return this.get(row,column)||this._defaultValue}set(row,column,value){if(row>=this._rowCount||column>=this._columnCount)throw new Error("Exceeding array bounds.");this._clearCache(),this._values[row][column]=value}getRangePosition(){const rowCount=this.getRowCount(),startColumn=0,columnCount=this.getColumnCount();return{startRow:0,endRow:rowCount-1,startColumn,endColumn:columnCount-1}}iterator(callback){var _a28;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),valueList=this.getArrayValue();for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)if(callback(((_a28=valueList[r])==null?void 0:_a28[c])||this._defaultValue,r,c)===!1)return}iteratorReverse(callback){var _a28;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),valueList=this.getArrayValue();for(let r=endRow;r>=startRow;r--)for(let c=endColumn;c>=startColumn;c--)if(callback(((_a28=valueList[r])==null?void 0:_a28[c])||this._defaultValue,r,c)===!1)return}getLastTruePosition(){let rangeSingle;return this.iteratorReverse((value,rowIndex,columnIndex)=>{if(value!=null&&value.isBoolean()&&value.getValue()===!0)return rangeSingle={row:rowIndex,column:columnIndex},!1}),rangeSingle}getFirstTruePosition(){let rangeSingle;return this.iterator((value,rowIndex,columnIndex)=>{if(value!=null&&value.isBoolean()&&value.getValue()===!0)return rangeSingle={row:rowIndex,column:columnIndex},!1}),rangeSingle}getFirstCell(){const{startRow,startColumn}=this.getRangePosition();return this.get(startRow,startColumn)||this._defaultValue||NullValueObject.create()}getLastCell(){const{endRow,endColumn}=this.getRangePosition();return this.get(endRow,endColumn)||this._defaultValue||NullValueObject.create()}pick(takeArray){const newValue=this.pickRaw(takeArray);return this._createNewArray(newValue,1,newValue[0].length)}pickRaw(takeArray){const takeArrayRowCount=takeArray.getRowCount(),takeArrayColumnCount=takeArray.getColumnCount();if(takeArrayRowCount!==this._rowCount||takeArrayColumnCount!==this._columnCount)return[[NullValueObject.create()]];const newValue=[];newValue[0]=[];for(let r=0;r<takeArrayRowCount;r++)for(let c=0;c<takeArrayColumnCount;c++){const takeCell=takeArray.get(r,c);if(!(takeCell==null||takeCell.isError())&&takeCell.getValue()===!0){const value=this.get(r,c);newValue[0].push(value)}}return newValue}flatten(){if(this._flattenCache!=null)return this._flattenCache;const newValue=[];newValue[0]=[];for(let r=0;r<this._rowCount;r++)for(let c=0;c<this._columnCount;c++){const value=this.get(r,c);newValue[0].push(value)}const arrayV=this._createNewArray(newValue,1,newValue[0].length);return arrayV.setDefaultValue(this._defaultValue),this._flattenCache=arrayV,arrayV}flattenPosition(){if(this._flattenPosition!=null)return this._flattenPosition;const stringValue=[],numberValue=[],stringPosition=[],numberPosition=[];let index=0;for(let r=0;r<this._rowCount;r++)for(let c=0;c<this._columnCount;c++){const value=this.get(r,c);if(value==null||value.isError()||value.isNull()){index++;continue}value.isString()?(stringValue.push(value),stringPosition.push(index++)):(numberValue.push(value),numberPosition.push(index++))}const result={stringArray:stringValue,numberArray:numberValue,stringPosition,numberPosition};return this._flattenPosition=result,result}slice(rowParam,columnParam){let rowStart=0,rowStop=this._rowCount,rowStep=1,columnStart=0,columnStop=this._columnCount,columnStep=1;if(rowParam!=null&&(rowStart=rowParam[0]||0,rowStop=rowParam[1]||this._rowCount,rowStep=rowParam[2]||1),columnParam!=null&&(columnStart=columnParam[0]||0,columnStop=columnParam[1]||this._columnCount,columnStep=columnParam[2]||1),rowStart>=this._rowCount||columnStart>=this._columnCount)return;const cacheKey=`${rowStart}_${rowStop}_${rowStep}_${columnStart}_${columnStop}_${columnStep}`,cache=this._sliceCache.get(cacheKey);if(cache!=null)return cache;const result=[],array=this._values;let result_row_index=0,result_column_index=0;for(let r=rowStart;r<rowStop;r+=rowStep){result_column_index=0,result[result_row_index]==null&&(result[result_row_index]=[]);for(let c=columnStart;c<columnStop;c+=columnStep){if(!array[r])return;let cell=array[r][c]||this._defaultValue;cell==null&&(cell=NullValueObject.create()),result[result_row_index][result_column_index]=cell,result_column_index++}result_row_index++}if(result.length===0||result[0].length===0)return;const startRow=rowStep>1?-1:rowStart+this._currentRow,startColumn=columnStep>1?-1:columnStart+this._currentColumn,newResultArray=this._createNewArray(result,result.length,result[0].length,startRow,startColumn);return newResultArray.setDefaultValue(this._defaultValue),this._sliceCache.set(cacheKey,newResultArray),newResultArray}sortByRow(index){const result=this._transposeArray(this._values);result.sort(this._sort(index)),this._clearCache(),this._values=this._transposeArray(result)}sortByColumn(index){this._clearCache(),this._values.sort(this._sort(index))}transpose(){const transposeArray=this._transposeArray(this._values),rowCount=this._rowCount,columnCount=this._columnCount,newArray=this._createNewArray(transposeArray,columnCount,rowCount);return newArray.setDefaultValue(this._defaultValue),newArray}orderSearch(valueObject,searchType=ArrayOrderSearchType.MIN,isDesc=!1,isFuzzyMatching=!1){let result,maxOrMin2,resultPosition,maxOrMinPosition;const _handleMatch=__name((itemValue,row,column)=>{if(itemValue==null)return!0;let matchObject;if(isFuzzyMatching===!0?matchObject=itemValue.compare(valueObject,compareToken.EQUALS):matchObject=itemValue.isEqual(valueObject),(matchObject==null?void 0:matchObject.getValue())===!0)return result=itemValue,resultPosition={row,column},!1;searchType===ArrayOrderSearchType.MAX?itemValue.isGreaterThan(valueObject).getValue()===!0&&(maxOrMin2==null||itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin2.minus(valueObject).abs()).getValue()===!0)&&(maxOrMin2=itemValue,maxOrMinPosition={row,column}):searchType===ArrayOrderSearchType.MIN&&itemValue.isLessThan(valueObject).getValue()===!0&&(maxOrMin2==null||itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin2.minus(valueObject).abs()).getValue()===!0)&&(maxOrMin2=itemValue,maxOrMinPosition={row,column})},"_handleMatch");if(isDesc?this.iteratorReverse((itemValue,r,c)=>_handleMatch(itemValue,r,c)):this.iterator((itemValue,r,c)=>_handleMatch(itemValue,r,c)),result!=null)return resultPosition;if(maxOrMin2!=null)return maxOrMinPosition}binarySearch(valueObject,searchType=ArrayBinarySearchType.MIN,matchType=ArrayOrderSearchType.MIN){if(valueObject.isError())return;const{stringArray,stringPosition,numberArray,numberPosition}=this.flattenPosition();return valueObject.isString()?this._binarySearch(valueObject,stringArray,stringPosition,searchType,matchType):this._binarySearch(valueObject,numberArray,numberPosition,searchType,matchType)}_binarySearch(valueObject,searchArray,positionArray,searchType=ArrayBinarySearchType.MIN,matchType=ArrayOrderSearchType.MIN){const compareFunc=getCompare(),value=Number(valueObject.getValue()),isValueNumber=!Number.isNaN(value);let start=0,end=searchArray.length-1,exactMatchIndex=-1,nearestSmallerIndex=-1,nearestLargerIndex=-1;for(;start<=end;){const middle=Math.floor((start+end)/2),compareTo=searchArray[middle];let compareResult;if(compareTo.isNull())compareResult=searchType===ArrayBinarySearchType.MIN?1:-1;else{const compareToValue=compareTo.getValue();if(isValueNumber){const compareToNumber=Number(compareToValue);compareResult=Number.isNaN(compareToNumber)?1:Math.sign(compareToNumber-value)}else compareResult=compareFunc(compareToValue.toString().toLocaleLowerCase(),valueObject.getValue().toString().toLocaleLowerCase())}if(searchType===ArrayBinarySearchType.MAX&&(compareResult=-compareResult),compareResult===0){exactMatchIndex=middle;break}compareResult<0?(nearestSmallerIndex=middle,start=middle+1):(nearestLargerIndex=middle,end=middle-1)}if(matchType===ArrayOrderSearchType.NORMAL)return exactMatchIndex!==-1?positionArray[exactMatchIndex]:void 0;if(matchType===ArrayOrderSearchType.MIN)return exactMatchIndex!==-1?positionArray[exactMatchIndex]:searchType===ArrayBinarySearchType.MIN?positionArray[nearestSmallerIndex]:positionArray[nearestLargerIndex];if(matchType===ArrayOrderSearchType.MAX)return exactMatchIndex!==-1?positionArray[exactMatchIndex]:searchType===ArrayBinarySearchType.MIN?positionArray[nearestLargerIndex]:positionArray[nearestSmallerIndex]}sum(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;accumulatorAll=accumulatorAll.plus(valueObject)}),accumulatorAll}max(){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);return this.iterator(valueObject=>{if(valueObject==null)return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;if(valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll.isLessThan(valueObject).getValue()&&(accumulatorAll=valueObject)}),accumulatorAll}min(){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);return this.iterator(valueObject=>{if(valueObject==null)return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;if(valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll.isGreaterThan(valueObject).getValue()&&(accumulatorAll=valueObject)}),accumulatorAll}count(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isError()||valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}countA(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}countBlank(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{(valueObject==null||valueObject.isNull()||valueObject.getValue()==="")&&(accumulatorAll=accumulatorAll.plusBy(1))}),accumulatorAll}getNegative(){return _ArrayValueObject.create("{0}").minus(this)}getReciprocal(){return _ArrayValueObject.create("{1}").divided(this)}plus(valueObject){return this._batchOperator(valueObject,1)}minus(valueObject){return this._batchOperator(valueObject,0)}multiply(valueObject){return this._batchOperator(valueObject,2)}divided(valueObject){return this._batchOperator(valueObject,3)}mod(valueObject){return this._batchOperator(valueObject,4)}modInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.mod(currentValue))}compare(valueObject,operator,isCaseSensitive){return this._batchOperator(valueObject,5,operator,isCaseSensitive)}concatenateFront(valueObject){return this._batchOperator(valueObject,6)}concatenateBack(valueObject){return this._batchOperator(valueObject,7)}map(callbackFn){const wrappedCallbackFn=__name((currentValue,r,c)=>currentValue==null?NullValueObject.create():currentValue.isError()?currentValue:callbackFn(currentValue,r,c),"wrappedCallbackFn");return this.mapValue(wrappedCallbackFn)}mapValue(callbackFn){var _a28;const rowCount=this._rowCount,columnCount=this._columnCount,result=[];for(let r=0;r<rowCount;r++){const rowList=[];for(let c=0;c<columnCount;c++){const row=(_a28=this._values)==null?void 0:_a28[r];if(row==null)rowList[c]=ErrorValueObject.create(ErrorType$1.VALUE);else{const currentValue=row[c]||this._defaultValue;currentValue?rowList[c]=callbackFn(currentValue,r,c):rowList[c]=NullValueObject.create()}}result.push(rowList)}return this._createNewArray(result,rowCount,columnCount)}pow(valueObject){return this._batchOperator(valueObject,8)}powInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.pow(currentValue))}sqrt(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sqrt())}cbrt(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cbrt())}cos(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cos())}cosh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cosh())}acos(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.acos())}acosh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.acosh())}sin(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sin())}sinh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sinh())}asin(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.asin())}asinh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.asinh())}tan(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.tan())}tanh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.tanh())}atan(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.atan())}atanh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.atanh())}atan2(valueObject){return this._batchOperator(valueObject,12)}atan2Inverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.atan2(currentValue))}mean(ddof=0){const sum2=this.sum(),count=this.count();return sum2.divided(ddof===0?count:count.minusBy(1))}median(){const numberArray=this.flattenPosition().numberArray,allValue=this._createNewArray([numberArray],1,numberArray.length),count=allValue.getColumnCount();if(count<=1)return allValue.get(0,0)||NullValueObject.create();if(allValue.sortByRow(0),count%2===0){const medianRight=allValue.get(0,count/2)||NullValueObject.create(),medianLeft=allValue.get(0,count/2-1)||NullValueObject.create();return medianRight.plus(medianLeft).divided(NumberValueObject.create(2))}return allValue.get(0,(count-1)/2)||NullValueObject.create()}var(ddof=0){const mean=this.mean(),squaredDifferences=[[]];this.iterator(valueObject=>{if(valueObject==null||valueObject.isError()||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return;const baseValueObject=valueObject.minus(mean).pow(NumberValueObject.create(2));baseValueObject.isError()||squaredDifferences[0].push(baseValueObject)});const{_unitId,_sheetId,_currentRow,_currentColumn}=this;return _ArrayValueObject.create({calculateValueList:squaredDifferences,rowCount:1,columnCount:squaredDifferences[0].length,unitId:_unitId,sheetId:_sheetId,row:_currentRow,column:_currentColumn}).mean(ddof)}std(ddof=0){const variance=this.var(ddof);return variance.isError()?variance:variance.sqrt()}log(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.log())}log10(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.log10())}exp(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.exp())}abs(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.abs())}round(valueObject){return this._batchOperator(valueObject,9)}roundInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.round(currentValue))}floor(valueObject){return this._batchOperator(valueObject,10)}floorInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.floor(currentValue))}ceil(valueObject){return this._batchOperator(valueObject,11)}ceilInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.ceil(currentValue))}toValue(){return transformToValue(this._values)}_clearCache(){this._flattenCache=null,this._sliceCache.clear()}_sort(index){const compare=getCompare();return(a,b)=>{const columnA=a[index],columnB=b[index];return columnA==null?1:columnB==null?-1:columnA.isError()&&columnA.isError()?0:columnA.isError()?1:columnB.isError()?-1:compare(columnA.getValue(),columnB.getValue())}}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}_batchOperator(valueObject,batchOperatorType,operator,isCaseSensitive){const valueList=[];let rowCount=this._rowCount,columnCount=this._columnCount;if(valueObject.isArray()){const valueRowCount=valueObject.getRowCount(),valueColumnCount=valueObject.getColumnCount();if(rowCount=Math.max(valueRowCount,rowCount),columnCount=Math.max(valueColumnCount,columnCount),valueRowCount===1&&valueColumnCount===1){const v=valueObject.getFirstCell();for(let c=0;c<columnCount;c++)valueList.push(v)}else if(valueRowCount===1&&this._columnCount>1){const list=valueObject.getArrayValue();for(let c=0;c<columnCount;c++)valueList.push(list[0][c])}else return this._batchOperatorArray(valueObject,batchOperatorType,operator,isCaseSensitive)}else for(let c=0;c<columnCount;c++)valueList.push(valueObject);const result=[];for(let c=0;c<columnCount;c++){const value=valueList[c];this._batchOperatorValue(value,c,result,batchOperatorType,operator,isCaseSensitive)}const newArray=this._createNewArray(result,rowCount,columnCount);return newArray.setDefaultValue(BooleanValueObject.create(!1)),newArray}_batchOperatorValue(valueObject,column,result,batchOperatorType,operator,isCaseSensitive){const rowCount=this._rowCount,unitId=this.getUnitId(),sheetId=this.getSheetId(),startRow=this.getCurrentRow(),startColumn=this.getCurrentColumn();if(batchOperatorType===5){const{rowsInCache,rowsNotInCache}=CELL_INVERTED_INDEX_CACHE.canUseCache(unitId,sheetId,column+startColumn,startRow,startRow+rowCount-1);if(rowsInCache.length>0){if(operator===compareToken.EQUALS){const rowPositions=CELL_INVERTED_INDEX_CACHE.getCellPositions(unitId,sheetId,column+startColumn,valueObject.getValue(),rowsInCache);rowPositions!=null&&rowPositions.forEach(row=>{if(row<startRow||row>startRow+rowCount-1)return;const r=row-startRow;result[r]==null&&(result[r]=[]),result[r][column]=BooleanValueObject.create(!0)})}else{const rowValuePositions=CELL_INVERTED_INDEX_CACHE.getCellValuePositions(unitId,sheetId,column+startColumn);rowValuePositions!=null&&rowValuePositions.forEach((rowPositions,rowValue)=>{let currentValue=NullValueObject.create();ERROR_TYPE_SET.has(rowValue)?currentValue=ErrorValueObject.create(rowValue):typeof rowValue=="string"?currentValue=StringValueObject.create(rowValue):typeof rowValue=="number"?currentValue=NumberValueObject.create(rowValue):typeof rowValue=="boolean"&&(currentValue=BooleanValueObject.create(rowValue));let matchResult;currentValue.isError()?matchResult=currentValue:valueObject.isError()?matchResult=valueObject:matchResult=currentValue.compare(valueObject,operator,isCaseSensitive),(matchResult.isError()||matchResult.getValue()===!0)&&rowPositions.forEach(index=>{index>=startRow&&index<=startRow+rowCount-1&&(result[index-startRow]==null&&(result[index-startRow]=[]),result[index-startRow][column]=matchResult)})})}if(rowsNotInCache.length>0)for(const interval of rowsNotInCache){const[start,end]=interval;for(let r=start;r<=end;r++)this.__batchOperatorRowValue(valueObject,column,result,batchOperatorType,r,unitId,sheetId,startRow,startColumn,operator,isCaseSensitive);CELL_INVERTED_INDEX_CACHE.setContinueBuildingCache(unitId,sheetId,column+startColumn,start,end)}return}}for(let r=0;r<rowCount;r++)this.__batchOperatorRowValue(valueObject,column,result,batchOperatorType,r,unitId,sheetId,startRow,startColumn,operator,isCaseSensitive);CELL_INVERTED_INDEX_CACHE.setContinueBuildingCache(unitId,sheetId,column+startColumn,startRow,startRow+rowCount-1)}__batchOperatorRowValue(valueObject,column,result,batchOperatorType,r,unitId,sheetId,startRow,startColumn,operator,isCaseSensitive){const currentValue=this.getValueOrDefault(r,column);if(result[r]==null&&(result[r]=[]),currentValue&&valueObject)if(currentValue.isError())result[r][column]=currentValue;else if(valueObject.isError())result[r][column]=valueObject;else switch(batchOperatorType){case 1:result[r][column]=currentValue.plus(valueObject);break;case 0:result[r][column]=currentValue.minus(valueObject);break;case 2:result[r][column]=currentValue.multiply(valueObject);break;case 3:result[r][column]=currentValue.divided(valueObject);break;case 4:result[r][column]=currentValue.mod(valueObject);break;case 5:operator?result[r][column]=currentValue.compare(valueObject,operator,isCaseSensitive):result[r][column]=ErrorValueObject.create(ErrorType$1.VALUE);break;case 6:result[r][column]=currentValue.concatenateFront(valueObject);break;case 7:result[r][column]=currentValue.concatenateBack(valueObject);break;case 8:result[r][column]=currentValue.pow(valueObject);break;case 9:result[r][column]=currentValue.round(valueObject);break;case 10:result[r][column]=currentValue.floor(valueObject);break;case 12:result[r][column]=currentValue.atan2(valueObject);break;case 11:result[r][column]=currentValue.ceil(valueObject);break}else result[r][column]=ErrorValueObject.create(ErrorType$1.NA);currentValue!=null&&(currentValue.isError()?CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column+startColumn,currentValue.getErrorType(),r+startRow):CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column+startColumn,currentValue.getValue(),r+startRow))}_batchOperatorArray(valueObject,batchOperatorType,operator,isCaseSensitive){let rowCount=valueObject.getRowCount(),columnCount=valueObject.getColumnCount();rowCount<this._rowCount&&(rowCount=this._rowCount),columnCount<this._columnCount&&(columnCount=this._columnCount);const result=[],currentCalculateType=this._checkArrayCalculateType(this),opCalculateType=this._checkArrayCalculateType(valueObject);for(let r=0;r<rowCount;r++){const rowList=[];for(let c=0;c<columnCount;c++){let currentValue;currentCalculateType===3?currentValue=this.getValueOrDefault(0,0):currentCalculateType===1?currentValue=this.getValueOrDefault(0,c):currentCalculateType===2?currentValue=this.getValueOrDefault(r,0):currentValue=this.getValueOrDefault(r,c);let opValue;if(opCalculateType===3?opValue=valueObject.getValueOrDefault(0,0):opCalculateType===1?opValue=valueObject.getValueOrDefault(0,c):opCalculateType===2?opValue=valueObject.getValueOrDefault(r,0):opValue=valueObject.getValueOrDefault(r,c),currentValue&&opValue)if(currentValue.isError())rowList[c]=currentValue;else if(opValue.isError())rowList[c]=opValue;else switch(batchOperatorType){case 1:rowList[c]=currentValue.plus(opValue);break;case 0:rowList[c]=currentValue.minus(opValue);break;case 2:rowList[c]=currentValue.multiply(opValue);break;case 3:rowList[c]=currentValue.divided(opValue);break;case 4:rowList[c]=currentValue.mod(opValue);break;case 5:operator?rowList[c]=currentValue.compare(opValue,operator,isCaseSensitive):rowList[c]=ErrorValueObject.create(ErrorType$1.VALUE);break;case 6:rowList[c]=currentValue.concatenateFront(opValue);break;case 7:rowList[c]=currentValue.concatenateBack(opValue);break;case 8:rowList[c]=currentValue.pow(opValue);break;case 9:rowList[c]=currentValue.round(opValue);break;case 12:rowList[c]=currentValue.atan2(opValue);break;case 10:rowList[c]=currentValue.floor(opValue);break;case 11:rowList[c]=currentValue.ceil(opValue);break}else rowList[c]=ErrorValueObject.create(ErrorType$1.NA)}result.push(rowList)}return this._createNewArray(result,rowCount,columnCount)}_checkArrayCalculateType(valueObject){return valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?3:valueObject.getRowCount()===1?1:valueObject.getColumnCount()===1?2:0}_formatValue(rawValue){if(typeof rawValue!="string")return rawValue=rawValue,this._rowCount=rawValue.rowCount,this._columnCount=rawValue.columnCount,this._unitId=rawValue.unitId,this._sheetId=rawValue.sheetId,this._currentRow=rawValue.row,this._currentColumn=rawValue.column,rawValue.calculateValueList;rawValue=rawValue.slice(1,-1);const rowArray=rawValue.split(";"),rowArrayCount=rowArray.length,result=[];let maxColumnCount=0;for(let r=0;r<rowArrayCount;r++){const columnArray=rowArray[r].split(","),columnArrayCount=columnArray.length;maxColumnCount<columnArrayCount&&(maxColumnCount=columnArrayCount);const row=[];for(let c=0;c<columnArrayCount;c++){const cellRaw=columnArray[c].trim();row.push(ValueObjectFactory.create(cellRaw))}result.push(row)}return this._rowCount=rowArrayCount,this._columnCount=maxColumnCount,result}_createNewArray(result,rowCount,columnCount,row=-1,column=-1){(this._currentColumn===-1||this._currentRow===-1)&&(row=-1,column=-1);const arrayValueObjectData={calculateValueList:result,rowCount,columnCount,unitId:this.getUnitId(),sheetId:this.getSheetId(),row,column};return _ArrayValueObject.create(arrayValueObjectData)}};__name(_ArrayValueObject,"ArrayValueObject");let ArrayValueObject=_ArrayValueObject;const _ValueObjectFactory=class _ValueObjectFactory{static create(rawValue){if(rawValue==null)return NullValueObject.create();if(typeof rawValue=="boolean")return BooleanValueObject.create(rawValue);if(typeof rawValue=="string"){const rawValueUpper=rawValue.toLocaleUpperCase().trim();if(ERROR_TYPE_SET.has(rawValueUpper))return ErrorValueObject.create(rawValueUpper);if(rawValueUpper===BooleanValue.TRUE||rawValueUpper===BooleanValue.FALSE)return createBooleanValueObjectByRawValue(rawValue);if(core.isRealNum(rawValue))return NumberValueObject.create(Number(rawValue));const{isNumberPattern,value,pattern}=stringIsNumberPattern(rawValue);if(isNumberPattern)return NumberValueObject.create(value,pattern);const rawValueSingleLine=rawValue.replace(/\n/g,"").replace(/\r/g,"");return!isStringWrappedByDoubleQuotes(rawValueSingleLine)&®exTestArrayValue(rawValueSingleLine)?ArrayValueObject.create(rawValueSingleLine):createStringValueObjectByRawValue(rawValue)}return typeof rawValue=="number"?createNumberValueObjectByRawValue(rawValue):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_ValueObjectFactory,"ValueObjectFactory");let ValueObjectFactory=_ValueObjectFactory;function isStringWrappedByDoubleQuotes(input){const trimmedInput=input.trim();return trimmedInput.startsWith('"')&&trimmedInput.endsWith('"')}__name(isStringWrappedByDoubleQuotes,"isStringWrappedByDoubleQuotes");function expandArrayValueObject(rowCount,columnCount,valueObject,defaultValue){const result=[];if(valueObject.isArray()){const valueRowCount=valueObject.getRowCount(),valueColumnCount=valueObject.getColumnCount();if(valueRowCount===1&&valueColumnCount===1){const v=valueObject.getFirstCell();for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++)row.push(v);result.push(row)}}else if(valueRowCount===1&&valueColumnCount>1)for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(0,c)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}else if(valueColumnCount===1&&valueRowCount>1)for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(r,0)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}else for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(r,c)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}}else for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++)row.push(valueObject);result.push(row)}return createNewArray(result,rowCount,columnCount)}__name(expandArrayValueObject,"expandArrayValueObject");function createNewArray(result,rowCount,columnCount,unitId="",sheetId=""){const arrayValueObjectData={calculateValueList:result,rowCount,columnCount,unitId,sheetId,row:-1,column:-1};return ArrayValueObject.create(arrayValueObjectData)}__name(createNewArray,"createNewArray");function findCompareToken(str){const comparisonTokens=[compareToken.EQUALS,compareToken.NOT_EQUAL,compareToken.GREATER_THAN_OR_EQUAL,compareToken.GREATER_THAN,compareToken.LESS_THAN_OR_EQUAL,compareToken.LESS_THAN];for(const token of comparisonTokens)if(str.startsWith(token)){const content=str.substring(token.length);return[token,ValueObjectFactory.create(content)]}return[compareToken.EQUALS,ValueObjectFactory.create(str)]}__name(findCompareToken,"findCompareToken");function valueObjectCompare(range,criteria,operator,isCaseSensitive){if(!operator)if(criteria.isString()){const criteriaValueString=`${criteria.getValue()}`,[token,criteriaStringObject]=findCompareToken(criteriaValueString);operator=token,criteria=criteriaStringObject}else operator=compareToken.EQUALS;return range.compare(criteria,operator,isCaseSensitive)}__name(valueObjectCompare,"valueObjectCompare");function booleanObjectIntersection(valueObject1,valueObject2){const maxRowLength=Math.max(valueObject1.isArray()?valueObject1.getRowCount():1,valueObject2.isArray()?valueObject2.getRowCount():1),maxColumnLength=Math.max(valueObject1.isArray()?valueObject1.getColumnCount():1,valueObject2.isArray()?valueObject2.getColumnCount():1),valueObject1Array=expandArrayValueObject(maxRowLength,maxColumnLength,valueObject1),valueObject2Array=expandArrayValueObject(maxRowLength,maxColumnLength,valueObject2);return valueObject1Array.mapValue((valueObject12,rowIndex,columnIndex)=>{const valueObject22=valueObject2Array.get(rowIndex,columnIndex);return valueObject12!=null&&valueObject12.isError()?valueObject12:valueObject22!=null&&valueObject22.isError()?valueObject22:valueObject12!=null&&valueObject12.isBoolean()&&(valueObject22!=null&&valueObject22.isBoolean())?createBooleanValueObjectByRawValue(valueObject12.getValue()&&valueObject22.getValue()):BooleanValueObject.create(!1)})}__name(booleanObjectIntersection,"booleanObjectIntersection");function convertTonNumber(valueObject){const currentValue=valueObject.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(result)}__name(convertTonNumber,"convertTonNumber");function isSingleValueObject(valueObject){return valueObject.isArray()&&valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?!0:valueObject.isReferenceObject()?!!(valueObject.isCell()||valueObject.getRowCount()===1&&valueObject.getColumnCount()===1):(valueObject=valueObject,!!(valueObject.isString()||valueObject.isNumber()||valueObject.isBoolean()||valueObject.isError()||valueObject.isNull()))}__name(isSingleValueObject,"isSingleValueObject");function objectValueToCellValue(objectValue){const pattern=objectValue==null?void 0:objectValue.getPattern();let cellWithStyle={};if(pattern&&(cellWithStyle={s:{n:{pattern}}}),objectValue==null)return{v:null,...cellWithStyle};if(objectValue.isError())return{v:objectValue.getErrorType(),t:core.CellValueType.STRING,...cellWithStyle};if(objectValue.isValueObject()){const vo=objectValue,v=vo.getValue();return vo.isNumber()?{v,t:core.CellValueType.NUMBER,...cellWithStyle}:vo.isBoolean()?{v:v?1:0,t:core.CellValueType.BOOLEAN,...cellWithStyle}:vo.isString()?{v,t:core.CellValueType.STRING,...cellWithStyle}:vo.isNull()?{v:null,...cellWithStyle}:{v,t:core.CellValueType.STRING,...cellWithStyle}}}__name(objectValueToCellValue,"objectValueToCellValue");function calculateMaxDimensions(variants){let maxRowLength=0,maxColumnLength=0;return variants.forEach((variant,i)=>{if(i%2===1)if(variant.isArray()){const arrayValue=variant;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)}),{maxRowLength,maxColumnLength}}__name(calculateMaxDimensions,"calculateMaxDimensions");function getErrorArray(variants,sumRange,maxRowLength,maxColumnLength){const sumRowLength=sumRange.getRowCount(),sumColumnLength=sumRange.getColumnCount();for(let i=0;i<variants.length;i++){if(i%2===1)continue;const range=variants[i],rangeRowLength=range.getRowCount(),rangeColumnLength=range.getColumnCount();if(rangeRowLength!==sumRowLength||rangeColumnLength!==sumColumnLength)return expandArrayValueObject(maxRowLength,maxColumnLength,ErrorValueObject.create(ErrorType$1.VALUE))}return null}__name(getErrorArray,"getErrorArray");function getBooleanResults(variants,maxRowLength,maxColumnLength,isNumberSensitive=!1){const booleanResults=[];for(let i=0;i<variants.length;i++){if(i%2===1)continue;const range=variants[i],criteria=variants[i+1];expandArrayValueObject(maxRowLength,maxColumnLength,criteria,ErrorValueObject.create(ErrorType$1.NA)).iterator((criteriaValueObject,rowIndex,columnIndex)=>{if(!criteriaValueObject)return;let resultArrayObject=valueObjectCompare(range,criteriaValueObject);const[,criteriaStringObject]=findCompareToken(`${criteriaValueObject.getValue()}`);if(isNumberSensitive&&(resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject)),booleanResults[rowIndex]===void 0&&(booleanResults[rowIndex]=[]),booleanResults[rowIndex][columnIndex]===void 0){booleanResults[rowIndex][columnIndex]=resultArrayObject;return}booleanResults[rowIndex][columnIndex]=booleanObjectIntersection(booleanResults[rowIndex][columnIndex],resultArrayObject)})}return booleanResults}__name(getBooleanResults,"getBooleanResults");function filterSameValueObjectResult(array,range,criteria){return array.mapValue((valueObject,r,c)=>{const rangeValueObject=range.get(r,c);return rangeValueObject&&isSameValueObjectType(rangeValueObject,criteria)?valueObject:rangeValueObject!=null&&rangeValueObject.isError()&&criteria.isError()&&rangeValueObject.getValue()===criteria.getValue()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)})}__name(filterSameValueObjectResult,"filterSameValueObjectResult");function isSameValueObjectType(left,right){if(left.isNumber()&&right.isNumber()||left.isBoolean()&&right.isBoolean())return!0;const isLeftBlank=left.isString()&&left.getValue()==="",isRightBlank=right.isString()&&right.getValue()==="";return!!((isLeftBlank||left.isNull())&&(isRightBlank||right.isNull())||left.isString()&&!isLeftBlank&&right.isString()&&!isRightBlank)}__name(isSameValueObjectType,"isSameValueObjectType");var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$j(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$j(target,key,result),result},"__decorateClass$j"),__decorateParam$j=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$j"),FormulaExecuteStageType=(FormulaExecuteStageType2=>(FormulaExecuteStageType2[FormulaExecuteStageType2.IDLE=0]="IDLE",FormulaExecuteStageType2[FormulaExecuteStageType2.START=1]="START",FormulaExecuteStageType2[FormulaExecuteStageType2.START_DEPENDENCY=2]="START_DEPENDENCY",FormulaExecuteStageType2[FormulaExecuteStageType2.START_CALCULATION=3]="START_CALCULATION",FormulaExecuteStageType2[FormulaExecuteStageType2.CURRENTLY_CALCULATING=4]="CURRENTLY_CALCULATING",FormulaExecuteStageType2[FormulaExecuteStageType2.START_DEPENDENCY_ARRAY_FORMULA=5]="START_DEPENDENCY_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.START_CALCULATION_ARRAY_FORMULA=6]="START_CALCULATION_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.CURRENTLY_CALCULATING_ARRAY_FORMULA=7]="CURRENTLY_CALCULATING_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.CALCULATION_COMPLETED=8]="CALCULATION_COMPLETED",FormulaExecuteStageType2))(FormulaExecuteStageType||{}),FormulaExecutedStateType=(FormulaExecutedStateType2=>(FormulaExecutedStateType2[FormulaExecutedStateType2.INITIAL=0]="INITIAL",FormulaExecutedStateType2[FormulaExecutedStateType2.STOP_EXECUTION=1]="STOP_EXECUTION",FormulaExecutedStateType2[FormulaExecutedStateType2.NOT_EXECUTED=2]="NOT_EXECUTED",FormulaExecutedStateType2[FormulaExecutedStateType2.SUCCESS=3]="SUCCESS",FormulaExecutedStateType2))(FormulaExecutedStateType||{}),_a6;exports.FormulaRuntimeService=(_a6=class extends core.Disposable{constructor(_currentConfigService){super();__publicField(this,"_formulaExecuteStage",0);__publicField(this,"_stopState",!1);__publicField(this,"_currentRow",-1);__publicField(this,"_currentColumn",-1);__publicField(this,"_currentRowCount",Number.NEGATIVE_INFINITY);__publicField(this,"_currentColumnCount",Number.NEGATIVE_INFINITY);__publicField(this,"_currentSubUnitId","");__publicField(this,"_currentUnitId","");__publicField(this,"_runtimeData",{});__publicField(this,"_runtimeOtherData",{});__publicField(this,"_unitArrayFormulaRange",{});__publicField(this,"_runtimeArrayFormulaCellData",{});__publicField(this,"_runtimeClearArrayFormulaCellData",{});__publicField(this,"_runtimeFeatureRange",{});__publicField(this,"_runtimeFeatureCellData",{});__publicField(this,"_functionsExecutedState",0);__publicField(this,"_functionDefinitionPrivacyVar",new Map);__publicField(this,"_totalFormulasToCalculate",0);__publicField(this,"_completedFormulasCount",0);__publicField(this,"_totalArrayFormulasToCalculate",0);__publicField(this,"_completedArrayFormulasCount",0);__publicField(this,"_formulaCycleIndex",0);__publicField(this,"_isCycleDependency",!1);this._currentConfigService=_currentConfigService}get currentRow(){return this._currentRow}get currentColumn(){return this._currentColumn}get currentRowCount(){return this._currentRowCount}get currentColumnCount(){return this._currentColumnCount}get currentSubUnitId(){return this._currentSubUnitId}get currentUnitId(){return this._currentUnitId}dispose(){this.reset(),this._runtimeFeatureCellData={},this._runtimeFeatureRange={},this.clearReferenceAndNumberformatCache()}enableCycleDependency(){this._isCycleDependency=!0}disableCycleDependency(){this._isCycleDependency=!1}isCycleDependency(){return this._isCycleDependency}setFormulaCycleIndex(index){this._formulaCycleIndex=index}getFormulaCycleIndex(){return this._formulaCycleIndex}setTotalArrayFormulasToCalculate(value){this._totalArrayFormulasToCalculate=value}getTotalArrayFormulasToCalculate(){return this._totalArrayFormulasToCalculate}setCompletedArrayFormulasCount(value){this._completedArrayFormulasCount=value}getCompletedArrayFormulasCount(){return this._completedArrayFormulasCount}setTotalFormulasToCalculate(value){this._totalFormulasToCalculate=value}getTotalFormulasToCalculate(){return this._totalFormulasToCalculate}setCompletedFormulasCount(value){this._completedFormulasCount=value}getCompletedFormulasCount(){return this._completedFormulasCount}markedAsSuccessfullyExecuted(){this._functionsExecutedState=3}markedAsNoFunctionsExecuted(){this._functionsExecutedState=2}markedAsStopFunctionsExecuted(){this._functionsExecutedState=1}markedAsInitialFunctionsExecuted(){this._functionsExecutedState=0}stopExecution(){this._stopState=!0,this.setFormulaExecuteStage(0)}isStopExecution(){return this._stopState}setFormulaExecuteStage(type){this._formulaExecuteStage=type}getFormulaExecuteStage(){return this._formulaExecuteStage}reset(){this._formulaExecuteStage=0,this._runtimeData={},this._runtimeOtherData={},this._unitArrayFormulaRange={},this._runtimeArrayFormulaCellData={},this._runtimeClearArrayFormulaCellData={},this._functionDefinitionPrivacyVar.clear(),this.markedAsInitialFunctionsExecuted(),this._stopState=!1,this._isCycleDependency=!1,this._totalFormulasToCalculate=0,this._completedFormulasCount=0}clearReferenceAndNumberformatCache(){clearNumberFormatTypeCache(),clearStringToNumberPatternCache(),clearReferenceToRangeCache()}setCurrent(row,column,rowCount,columnCount,sheetId,unitId){this._currentRow=row,this._currentColumn=column,this._currentRowCount=rowCount,this._currentColumnCount=columnCount,this._currentSubUnitId=sheetId,this._currentUnitId=unitId}clearFunctionDefinitionPrivacyVar(){this._functionDefinitionPrivacyVar.clear()}registerFunctionDefinitionPrivacyVar(lambdaId,lambdaVar){this._functionDefinitionPrivacyVar.set(lambdaId,lambdaVar)}getFunctionDefinitionPrivacyVar(lambdaId){return this._functionDefinitionPrivacyVar.get(lambdaId)}setRuntimeOtherData(formulaId,functionVariant){const subUnitId=this._currentSubUnitId,unitId=this._currentUnitId;this._runtimeOtherData[unitId]===void 0&&(this._runtimeOtherData[unitId]={});const unitData=this._runtimeOtherData[unitId];unitData[subUnitId]===void 0&&(unitData[subUnitId]={});const subComponentData=unitData[subUnitId];let cellDatas=[];if(functionVariant.isReferenceObject()||functionVariant.isValueObject()&&functionVariant.isArray()){const objectValueRefOrArray=functionVariant,{startRow,startColumn}=objectValueRefOrArray.getRangePosition();objectValueRefOrArray.iterator((valueObject,rowIndex,columnIndex)=>{const value=objectValueToCellValue(valueObject),row=rowIndex-startRow,column=columnIndex-startColumn;cellDatas[row]==null&&(cellDatas[row]=[]),cellDatas[row][column]=value})}else cellDatas=[[objectValueToCellValue(functionVariant)]];subComponentData[formulaId]=cellDatas}setRuntimeData(functionVariant){const row=this._currentRow,column=this._currentColumn,rowCount=this._currentRowCount,columnCount=this.currentColumnCount,sheetId=this._currentSubUnitId,unitId=this._currentUnitId;this._runtimeData[unitId]==null&&(this._runtimeData[unitId]={});const unitData=this._runtimeData[unitId];unitData[sheetId]==null&&(unitData[sheetId]=new core.ObjectMatrix),this._unitArrayFormulaRange[unitId]==null&&(this._unitArrayFormulaRange[unitId]={});const arrayFormulaRange=this._unitArrayFormulaRange[unitId];(arrayFormulaRange[sheetId]===null||arrayFormulaRange[sheetId]===void 0)&&(arrayFormulaRange[sheetId]={});const arrayData=new core.ObjectMatrix(arrayFormulaRange[sheetId]);this._runtimeArrayFormulaCellData[unitId]===void 0&&(this._runtimeArrayFormulaCellData[unitId]={});const runtimeArrayFormulaCellData=this._runtimeArrayFormulaCellData[unitId];runtimeArrayFormulaCellData[sheetId]==null&&(runtimeArrayFormulaCellData[sheetId]=new core.ObjectMatrix),this._runtimeClearArrayFormulaCellData[unitId]===void 0&&(this._runtimeClearArrayFormulaCellData[unitId]={});const clearArrayFormulaCellData=this._runtimeClearArrayFormulaCellData[unitId];clearArrayFormulaCellData[sheetId]==null&&(clearArrayFormulaCellData[sheetId]=new core.ObjectMatrix);const sheetData=unitData[sheetId],runtimeArrayUnitData=runtimeArrayFormulaCellData[sheetId],clearArrayUnitData=clearArrayFormulaCellData[sheetId];if(functionVariant.isReferenceObject()||functionVariant.isValueObject()&&functionVariant.isArray()){const objectValueRefOrArray=functionVariant,{startRow,startColumn,endRow,endColumn}=objectValueRefOrArray.getRangePosition();if(startRow===endRow&&startColumn===endColumn){const firstCell=objectValueRefOrArray.getFirstCell(),valueObject=objectValueToCellValue(firstCell);sheetData.setValue(row,column,valueObject),clearArrayUnitData.setValue(row,column,valueObject);return}const arrayRange={startRow:row,startColumn:column,endRow:endRow-startRow+row,endColumn:endColumn-startColumn+column};if(arrayData.setValue(row,column,arrayRange),this._checkIfArrayFormulaRangeHasData(unitId,sheetId,row,column,arrayRange)||this._checkIfArrayFormulaExceeded(rowCount,columnCount,arrayRange)){const errorObject=objectValueToCellValue(ErrorValueObject.create(ErrorType$1.SPILL));sheetData.setValue(row,column,errorObject),clearArrayUnitData.setValue(row,column,errorObject);const unitData2=this._currentConfigService.getUnitData();objectValueRefOrArray.iterator((_,rowIndex,columnIndex)=>{var _a28,_b;const currentRow=rowIndex-startRow+row,currentColumn=columnIndex-startColumn+column,cell=(_b=(_a28=unitData2[unitId])==null?void 0:_a28[sheetId])==null?void 0:_b.cellData.getValue(currentRow,currentColumn);if(rowIndex===startRow&&columnIndex===startColumn)runtimeArrayUnitData.setValue(row,column,errorObject);else if(cell!=null)cell.v==null&&(cell.v=""),runtimeArrayUnitData.setValue(currentRow,currentColumn,cell);else{if(this._isInOtherArrayFormulaRange(unitId,sheetId,row,column,currentRow,currentColumn))return!0;runtimeArrayUnitData.setValue(currentRow,currentColumn,{v:""})}})}else{const spillError=ErrorValueObject.create(ErrorType$1.SPILL);objectValueRefOrArray.iterator((valueObject,rowIndex,columnIndex)=>{const value=objectValueToCellValue(valueObject);if(rowIndex===startRow&&columnIndex===startColumn){if(valueObject!=null&&valueObject.isError()&&valueObject.isEqualType(spillError))return clearArrayUnitData.setValue(row,column,{}),sheetData.setValue(row,column,{...objectValueToCellValue(spillError)}),!1;sheetData.setValue(row,column,{...value})}const currentRow=rowIndex-startRow+row,currentColumn=columnIndex-startColumn+column;runtimeArrayUnitData.setValue(currentRow,currentColumn,value)})}}else{const valueObject=objectValueToCellValue(functionVariant);sheetData.setValue(row,column,valueObject),clearArrayUnitData.setValue(row,column,valueObject)}}getUnitData(){return this._runtimeData}getUnitArrayFormula(){return this._unitArrayFormulaRange}getRuntimeOtherData(){return this._runtimeOtherData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}getRuntimeClearArrayFormulaCellData(){return this._runtimeClearArrayFormulaCellData}getRuntimeFeatureRange(){return this._runtimeFeatureRange}setRuntimeFeatureRange(featureId,featureRange){this._runtimeFeatureRange[featureId]=featureRange}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(featureId,featureData){this._runtimeFeatureCellData[featureId]=featureData}getAllRuntimeData(){return{unitData:this.getUnitData(),arrayFormulaRange:this.getUnitArrayFormula(),unitOtherData:this.getRuntimeOtherData(),functionsExecutedState:this._functionsExecutedState,arrayFormulaCellData:this.getRuntimeArrayFormulaCellData(),clearArrayFormulaCellData:this.getRuntimeClearArrayFormulaCellData(),runtimeFeatureRange:this.getRuntimeFeatureRange(),runtimeFeatureCellData:this.getRuntimeFeatureCellData()}}getRuntimeState(){return{totalFormulasToCalculate:this.getTotalFormulasToCalculate(),completedFormulasCount:this.getCompletedFormulasCount(),totalArrayFormulasToCalculate:this.getTotalArrayFormulasToCalculate(),completedArrayFormulasCount:this.getCompletedArrayFormulasCount(),stage:this.getFormulaExecuteStage(),formulaCycleIndex:this.getFormulaCycleIndex()}}_checkIfArrayFormulaRangeHasData(formulaUnitId,formulaSheetId,formulaRow,formulaColumn,arrayRange){var _a28,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k;const{startRow,startColumn,endRow,endColumn}=arrayRange,unitData=this._currentConfigService.getUnitData(),arrayData=this._currentConfigService.getArrayFormulaCellData();(_c=(_b=(_a28=this._unitArrayFormulaRange[formulaUnitId])==null?void 0:_a28[formulaSheetId])==null?void 0:_b[formulaRow])==null||_c[formulaColumn];for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++){if(r===formulaRow&&formulaColumn===c)continue;const cell=(_f=(_e=(_d=this._runtimeData)==null?void 0:_d[formulaUnitId])==null?void 0:_e[formulaSheetId])==null?void 0:_f.getValue(r,c);(_h=(_g=arrayData==null?void 0:arrayData[formulaUnitId])==null?void 0:_g[formulaSheetId])==null||_h.getValue(r,c);const currentCell=(_k=(_j=(_i=unitData==null?void 0:unitData[formulaUnitId])==null?void 0:_i[formulaSheetId])==null?void 0:_j.cellData)==null?void 0:_k.getValue(r,c),featureCell=this._getRuntimeFeatureCellValue(r,c,formulaSheetId,formulaUnitId);if(!core.isNullCell(cell)||this._isInOtherArrayFormulaRange(formulaUnitId,formulaSheetId,formulaRow,formulaColumn,r,c)||!core.isNullCell(currentCell)||!core.isNullCell(featureCell))return!0}return!1}_getRuntimeFeatureCellValue(row,column,sheetId,unitId){return getRuntimeFeatureCell(row,column,sheetId,unitId,this._runtimeFeatureCellData)}_arrayCellHasData(cell){return cell==null?!1:cell.v!==void 0}_isInOtherArrayFormulaRange(formulaUnitId,formulaSheetId,formulaRow,formulaColumn,r,c){var _a28;const arrayFormulaRange=(_a28=this._currentConfigService.getArrayFormulaRange()[formulaUnitId])==null?void 0:_a28[formulaSheetId];if(arrayFormulaRange==null)return!1;let isCellOverlapping=!1;return new core.ObjectMatrix(arrayFormulaRange).forValue((rangeRow,rangeCol,range)=>{var _a29,_b;if(rangeRow===formulaRow&&rangeCol===formulaColumn)return;const isOverlapping=this._isInArrayFormulaRange(range,r,c),cell=(_b=(_a29=this._runtimeData[formulaUnitId])==null?void 0:_a29[formulaSheetId])==null?void 0:_b.getValue(rangeRow,rangeCol);isOverlapping&&(cell==null?void 0:cell.v)!==ErrorType$1.SPILL&&(isCellOverlapping=!0)}),isCellOverlapping}_isInArrayFormulaRange(range,r,c){if(range==null)return!1;const{startRow,startColumn,endRow,endColumn}=range;return r>=startRow&&r<=endRow&&c>=startColumn&&c<=endColumn}_checkIfArrayFormulaExceeded(rowCount,columnCount,arrayRange){return arrayRange.endRow>=rowCount||arrayRange.endColumn>=columnCount}_isInDirtyRange(unitId,sheetId,row,column){const dirtyRanges=this._currentConfigService.getDirtyRanges();return dirtyRanges.length===0?!0:isInDirtyRange(dirtyRanges,unitId,sheetId,row,column)}},__name(_a6,"FormulaRuntimeService"),_a6);exports.FormulaRuntimeService=__decorateClass$j([__decorateParam$j(0,IFormulaCurrentConfigService)],exports.FormulaRuntimeService);const IFormulaRuntimeService=core.createIdentifier("univer.formula.runtime.service");var NodeType=(NodeType2=>(NodeType2[NodeType2.REFERENCE=1]="REFERENCE",NodeType2[NodeType2.VALUE=2]="VALUE",NodeType2[NodeType2.OPERATOR=3]="OPERATOR",NodeType2[NodeType2.FUNCTION=4]="FUNCTION",NodeType2[NodeType2.LAMBDA=5]="LAMBDA",NodeType2[NodeType2.LAMBDA_PARAMETER=6]="LAMBDA_PARAMETER",NodeType2[NodeType2.ERROR=7]="ERROR",NodeType2[NodeType2.BASE=8]="BASE",NodeType2[NodeType2.ROOT=9]="ROOT",NodeType2[NodeType2.UNION=10]="UNION",NodeType2[NodeType2.PREFIX=11]="PREFIX",NodeType2[NodeType2.SUFFIX=12]="SUFFIX",NodeType2[NodeType2.NULL=13]="NULL",NodeType2))(NodeType||{});const NODE_ORDER_MAP=new Map([[1,7],[2,9],[3,8],[4,6],[5,1],[6,2],[9,10],[10,3],[11,4],[12,5]]),_BaseAstNode=class _BaseAstNode{constructor(_token){__publicField(this,"_children",[]);__publicField(this,"_definedNames",[]);__publicField(this,"_parent");__publicField(this,"_valueObject");__publicField(this,"_calculateState",!1);__publicField(this,"_async",!1);__publicField(this,"_address",!1);__publicField(this,"_isForcedCalculateFunction",!1);this._token=_token}dispose(){var _a28;this._children.forEach(node=>{node.dispose()}),(_a28=this._valueObject)==null||_a28.dispose(),this._parent=null}get nodeType(){return NodeType.BASE}isAsync(){return this._async}isAddress(){return this._address}isForcedCalculateFunction(){return this._isForcedCalculateFunction}setAsync(){this._async=!0}setAddress(){this._address=!0}getParent(){return this._parent}setParent(node){this._parent=node,node.addChildren(this)}setForcedCalculateFunction(){this._isForcedCalculateFunction=!0}getChildren(){return this._children}addChildren(...astNode){this._children.push(...astNode)}getToken(){return this._token}setValue(value){this._valueObject=value}getValue(){return this._valueObject}isCalculated(){return this._calculateState}setCalculated(){this._calculateState=!0}execute(){}setNotEmpty(state=!0){}async executeAsync(){return Promise.resolve(AstNodePromiseType.SUCCESS)}serialize(){const token=this.getToken(),children=this.getChildren(),childrenSerialization=[],childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];childrenSerialization.push(item.serialize())}const result={token,nodeType:this.nodeType};return childrenCount>0&&(result.children=childrenSerialization),result}hasDefinedName(definedName){return this._definedNames.includes(definedName)}setDefinedNames(definedNames){this._definedNames=definedNames}};__name(_BaseAstNode,"BaseAstNode");let BaseAstNode=_BaseAstNode;const _ErrorNode=class _ErrorNode extends BaseAstNode{constructor(errorType){super(errorType);__publicField(this,"_errorValueObject");this._errorValueObject=ErrorValueObject.create(errorType)}get nodeType(){return NodeType.ERROR}static create(errorType){return new _ErrorNode(errorType)}getValue(){return this._errorValueObject}};__name(_ErrorNode,"ErrorNode");let ErrorNode=_ErrorNode;const DEFAULT_AST_NODE_FACTORY_Z_INDEX=100,_BaseAstNodeFactory=class _BaseAstNodeFactory{get zIndex(){return 0}dispose(){}create(param,currentRow,currentColumn){let token;return param instanceof LexerNode?token=param.getToken():token=param,new BaseAstNode(token)}};__name(_BaseAstNodeFactory,"BaseAstNodeFactory");let BaseAstNodeFactory=_BaseAstNodeFactory;const _AstRootNode=class _AstRootNode extends BaseAstNode{get nodeType(){return NodeType.ROOT}execute(){const children=this.getChildren();if(children.length>1){this.setValue(ErrorValueObject.create(ErrorType$1.VALUE));return}const node=children[0];node==null?this.setValue(ErrorValueObject.create(ErrorType$1.VALUE)):this.setValue(node.getValue())}};__name(_AstRootNode,"AstRootNode");let AstRootNode=_AstRootNode;const _AstRootNodeFactory=class _AstRootNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.ROOT)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;if(param.getToken()===DEFAULT_TOKEN_TYPE_ROOT)return new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT)}};__name(_AstRootNodeFactory,"AstRootNodeFactory");let AstRootNodeFactory=_AstRootNodeFactory;const IFunctionService=core.createIdentifier("univer.formula-function.service"),_FunctionService=class _FunctionService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_functionExecutors",new Map);__publicField(this,"_functionDescriptions",new Map)}dispose(){this._functionExecutors.clear(),this._functionDescriptions.clear()}registerExecutors(...functions){for(let i=0;i<functions.length;i++){const func=functions[i];this._functionExecutors.set(func.name,func)}}getExecutors(){return this._functionExecutors}getExecutor(functionToken){return this._functionExecutors.get(functionToken)}hasExecutor(functionToken){return this._functionExecutors.has(functionToken)}unregisterExecutors(...functionTokens){for(let i=0;i<functionTokens.length;i++){const functionToken=functionTokens[i];this._functionExecutors.delete(functionToken)}}registerDescriptions(...descriptions){for(let i=0;i<descriptions.length;i++){const description=descriptions[i];this._functionDescriptions.set(description.functionName,description)}return core.toDisposable(()=>{for(let i=0;i<descriptions.length;i++){const description=descriptions[i];this._functionDescriptions.delete(description.functionName)}})}getDescriptions(){return this._functionDescriptions}getDescription(functionToken){return this._functionDescriptions.get(functionToken)}hasDescription(functionToken){return this._functionDescriptions.has(functionToken)}unregisterDescriptions(...functionTokens){for(let i=0;i<functionTokens.length;i++){const functionToken=functionTokens[i];this._functionDescriptions.delete(functionToken)}}};__name(_FunctionService,"FunctionService");let FunctionService=_FunctionService;var FUNCTION_NAMES_META=(FUNCTION_NAMES_META2=>(FUNCTION_NAMES_META2.COMPARE="COMPARE",FUNCTION_NAMES_META2.DIVIDED="DIVIDED",FUNCTION_NAMES_META2.MINUS="MINUS",FUNCTION_NAMES_META2.MULTIPLY="MULTIPLY",FUNCTION_NAMES_META2.PLUS="PLUS",FUNCTION_NAMES_META2.UNION="UNION",FUNCTION_NAMES_META2.CUBE="CUBE",FUNCTION_NAMES_META2))(FUNCTION_NAMES_META||{}),__defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$i(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$i(target,key,result),result},"__decorateClass$i"),__decorateParam$i=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$i");const _PrefixNode=class _PrefixNode extends BaseAstNode{constructor(_accessor,_operatorString,_functionExecutor){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.PREFIX}execute(){let value=this.getChildren()[0].getValue(),result;if(value==null)throw new Error("object is null");this._operatorString===prefixToken.MINUS?(value.isReferenceObject()&&(value=value.toArrayValueObject()),result=this._functionExecutor.calculate(NumberValueObject.create(0),value)):this._operatorString===prefixToken.AT?result=this._handlerAT(value):result=ErrorValueObject.create(ErrorType$1.VALUE),this.setValue(result)}_handlerAT(value){if(!value.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const currentValue=value;if(currentValue.isCell())return ErrorValueObject.create(ErrorType$1.VALUE);const runtimeService=this._accessor.get(IFormulaRuntimeService),currentRow=runtimeService.currentRow||0,currentColumn=runtimeService.currentColumn||0,rangePos=currentValue.getRangePosition(),{startRow,startColumn,endRow,endColumn}=rangePos;return endColumn!==startColumn&&endRow!==startRow||startRow===endRow&&startColumn===endColumn?ErrorValueObject.create(ErrorType$1.VALUE):endRow===startRow&¤tColumn>=startColumn&¤tColumn<=endColumn?currentValue.getCellByColumn(currentColumn):startColumn===endColumn&¤tRow>=startRow&¤tRow<=endRow?currentValue.getCellByRow(currentRow):currentValue.isTable()?currentValue.getCellByPosition(currentRow):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_PrefixNode,"PrefixNode");let PrefixNode=_PrefixNode;var _a7;exports.PrefixNodeFactory=(_a7=class extends BaseAstNodeFactory{constructor(_functionService,_injector){super(),this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.PREFIX)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const token=param.getToken(),tokenTrim=token.trim();if(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let functionName="";if(tokenTrim===prefixToken.MINUS)functionName=FUNCTION_NAMES_META.MINUS;else return tokenTrim===prefixToken.AT?new PrefixNode(this._injector,tokenTrim):void 0;const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new PrefixNode(this._injector,tokenTrim,functionExecutor):(console.error(`No function ${token}`),ErrorNode.create(ErrorType$1.NAME))}},__name(_a7,"PrefixNodeFactory"),_a7);exports.PrefixNodeFactory=__decorateClass$i([__decorateParam$i(0,IFunctionService),__decorateParam$i(1,core.Inject(core.Injector))],exports.PrefixNodeFactory);new RegExp(prefixToken.MINUS,"g");new RegExp(prefixToken.AT,"g");function prefixHandler(tokenTrimParam,functionService,injector){let minusPrefixNode,atPrefixNode,tokenTrim=tokenTrimParam;const prefix=tokenTrim.slice(0,2);let sliceLength=0;if(prefix[0]===prefixToken.MINUS){const functionExecutor=functionService.getExecutor(FUNCTION_NAMES_META.MINUS);minusPrefixNode=new PrefixNode(injector,prefixToken.MINUS,functionExecutor),sliceLength++}return prefix[0]===prefixToken.AT&&(atPrefixNode=new PrefixNode(injector,prefixToken.AT),minusPrefixNode&&atPrefixNode.setParent(minusPrefixNode),sliceLength++),sliceLength>0&&(tokenTrim=tokenTrim.slice(sliceLength)),{tokenTrim,minusPrefixNode,atPrefixNode}}__name(prefixHandler,"prefixHandler");var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h");const _FunctionNode=class _FunctionNode extends BaseAstNode{constructor(token,_functionExecutor,_currentConfigService,_runtimeService,_definedNamesService){super(token),this._functionExecutor=_functionExecutor,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._definedNamesService=_definedNamesService,this._functionExecutor.isAsync()&&this.setAsync(),this._functionExecutor.isAddress()&&this.setAddress(),this._functionExecutor.needsLocale&&this._setLocale(),this._functionExecutor.needsSheetsInfo&&this._setSheetsInfo()}get nodeType(){return NodeType.FUNCTION}async executeAsync(){const variants=[],children=this.getChildren(),childrenCount=children.length;this._compatibility();for(let i=0;i<childrenCount;i++){const object=children[i].getValue();object!=null&&(object.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?variants.push(object.toArrayValueObject()):variants.push(object))}const resultVariant=this._calculate(variants);let result;return resultVariant.isAsyncObject()||resultVariant.isAsyncArrayObject()?result=await resultVariant.getValue():result=resultVariant,this._setRefData(result),this.setValue(result),Promise.resolve(AstNodePromiseType.SUCCESS)}execute(){const variants=[],children=this.getChildren(),childrenCount=children.length;this._compatibility();for(let i=0;i<childrenCount;i++){const object=children[i].getValue();object!=null&&(object.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?variants.push(object.toArrayValueObject()):variants.push(object))}const resultVariant=this._calculate(variants);this._setRefData(resultVariant),this.setValue(resultVariant)}_compatibility(){this._lookupCompatibility()}_lookupCompatibility(){const children=this.getChildren(),childrenCount=children.length;if(!this._functionExecutor.needsExpandParams||childrenCount!==3)return;const lookupVectorOrArray=children[1].getValue(),resultVector=children[2].getValue();if(!(lookupVectorOrArray!=null&&lookupVectorOrArray.isReferenceObject())&&!(resultVector!=null&&resultVector.isReferenceObject()))return;const lookupVectorOrArrayRange=lookupVectorOrArray.getRangeData(),resultVectorRange=resultVector.getRangeData(),{startRow,startColumn,endRow,endColumn}=lookupVectorOrArrayRange,lookupCountRow=endRow-startRow+1,lookupCountColumn=endColumn-startColumn+1,{startRow:reStartRow,startColumn:reStartColumn,endRow:reEndRow,endColumn:reEndColumn}=resultVectorRange,resultCountRow=reEndRow-reStartRow+1,resultCountColumn=reEndColumn-reStartColumn+1;lookupCountRow!==resultCountRow&&(resultVectorRange.endRow+=lookupCountRow-resultCountRow),lookupCountColumn!==resultCountColumn&&(resultVectorRange.endColumn+=lookupCountColumn-resultCountColumn)}_calculate(variants){var _a28;const{minParams,maxParams}=this._functionExecutor;if(minParams!==-1&&maxParams!==-1&&(variants.length<minParams||variants.length>maxParams))return ErrorValueObject.create(ErrorType$1.NA);let resultVariant;if(this._setRefInfo(),this._functionExecutor.isCustom()){const resultVariantCustom=this._functionExecutor.calculateCustom(...variants.map(variant=>variant.isArray()?variant.toValue():variant.getValue()));if(typeof resultVariantCustom!="object"||resultVariantCustom==null)resultVariant=ValueObjectFactory.create(resultVariantCustom);else{const arrayValues=transformToValueObject(resultVariantCustom);resultVariant=ArrayValueObject.create({calculateValueList:arrayValues,rowCount:arrayValues.length,columnCount:((_a28=arrayValues[0])==null?void 0:_a28.length)||0,unitId:"",sheetId:"",row:-1,column:-1})}}else this._functionExecutor.isAddress()&&this._setDefinedNamesForFunction(),resultVariant=this._functionExecutor.calculate(...variants);return resultVariant}_setDefinedNamesForFunction(){const editorUnitId=this._currentConfigService.getExecuteUnitId();if(editorUnitId==null)return;const definedNames=this._definedNamesService.getDefinedNameMap(editorUnitId);definedNames!=null&&this._functionExecutor.setDefinedNames(definedNames)}_setRefInfo(){const{currentUnitId,currentSubUnitId,currentRow,currentColumn}=this._runtimeService;this._functionExecutor.setRefInfo(currentUnitId,currentSubUnitId,currentRow,currentColumn)}_setRefData(variant){if(!variant.isReferenceObject())return;const referenceObject=variant;referenceObject.setForcedSheetId(this._currentConfigService.getSheetNameMap()),referenceObject.setUnitData(this._currentConfigService.getUnitData()),referenceObject.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()),referenceObject.setRuntimeData(this._runtimeService.getUnitData()),referenceObject.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()),referenceObject.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData())}_setLocale(){this._functionExecutor.setLocale(this._currentConfigService.getLocale())}_setSheetsInfo(){this._functionExecutor.setSheetsInfo(this._currentConfigService.getSheetsInfo())}};__name(_FunctionNode,"FunctionNode");let FunctionNode=_FunctionNode;const _ErrorFunctionNode=class _ErrorFunctionNode extends BaseAstNode{constructor(token="Error"){super(token)}get nodeType(){return NodeType.FUNCTION}async executeAsync(){return this.setValue(ErrorValueObject.create(ErrorType$1.NAME)),Promise.resolve(AstNodePromiseType.SUCCESS)}execute(){this.setValue(ErrorValueObject.create(ErrorType$1.NAME))}};__name(_ErrorFunctionNode,"ErrorFunctionNode");let ErrorFunctionNode=_ErrorFunctionNode;var _a8;exports.FunctionNodeFactory=(_a8=class extends BaseAstNodeFactory{constructor(_functionService,_currentConfigService,_runtimeService,_definedNamesService,_injector){super(),this._functionService=_functionService,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._definedNamesService=_definedNamesService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.FUNCTION)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(token){const functionExecutor=this._functionService.getExecutor(token);return functionExecutor?new FunctionNode(token,functionExecutor,this._currentConfigService,this._runtimeService,this._definedNamesService):(console.error(`No function ${token}`),ErrorNode.create(ErrorType$1.NAME))}checkAndCreateNodeType(param){if(typeof param=="string")return;const token=param.getToken(),{tokenTrim,minusPrefixNode,atPrefixNode}=prefixHandler(token.trim(),this._functionService,this._injector);if(!Number.isNaN(Number(tokenTrim))&&!this._isParentUnionNode(param))return ErrorNode.create(ErrorType$1.VALUE);const tokenTrimUpper=tokenTrim.toUpperCase();if(this._functionService.hasExecutor(tokenTrimUpper)){const functionNode=this.create(tokenTrimUpper);return atPrefixNode?functionNode.setParent(atPrefixNode):minusPrefixNode&&functionNode.setParent(minusPrefixNode),functionNode}}_isParentUnionNode(param){var _a28,_b;return((_b=(_a28=param.getParent())==null?void 0:_a28.getParent())==null?void 0:_b.getToken())===matchToken.COLON}},__name(_a8,"FunctionNodeFactory"),_a8);exports.FunctionNodeFactory=__decorateClass$h([__decorateParam$h(0,IFunctionService),__decorateParam$h(1,IFormulaCurrentConfigService),__decorateParam$h(2,IFormulaRuntimeService),__decorateParam$h(3,IDefinedNamesService),__decorateParam$h(4,core.Inject(core.Injector))],exports.FunctionNodeFactory);var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g"),_a9;exports.Interpreter=(_a9=class extends core.Disposable{constructor(_runtimeService){super(),this._runtimeService=_runtimeService}async executeAsync(nodeData){if(!nodeData)return Promise.resolve(ErrorValueObject.create(ErrorType$1.VALUE));const node=nodeData.node,refOffsetX=nodeData.refOffsetX,refOffsetY=nodeData.refOffsetY;await this._executeAsync(node,refOffsetX,refOffsetY);const value=node.getValue();return value==null?Promise.resolve(ErrorValueObject.create(ErrorType$1.VALUE)):Promise.resolve(value)}execute(nodeData){if(!nodeData)return ErrorValueObject.create(ErrorType$1.VALUE);const node=nodeData.node,refOffsetX=nodeData.refOffsetX,refOffsetY=nodeData.refOffsetY;this._execute(node,refOffsetX,refOffsetY);const value=node.getValue();return value==null?ErrorValueObject.create(ErrorType$1.VALUE):value}executePreCalculateNode(node){return node.execute(),node.getValue()}checkAsyncNode(node){const result=[];this._checkAsyncNode(node,result);for(let i=0,len=result.length;i<len;i++)if(result[i]===!0)return!0;return!1}_checkAsyncNode(node,resultList){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];resultList.push(item.isAsync()),this._checkAsyncNode(item,resultList)}}async _executeAsync(node,refOffsetX=0,refOffsetY=0){if(this._runtimeService.isStopExecution())return Promise.resolve(AstNodePromiseType.ERROR);const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken().toUpperCase()===DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&item.isEmptyParamFunction()){item.execute();continue}await this._executeAsync(item,refOffsetX,refOffsetY)}return node.nodeType===NodeType.REFERENCE&&node.setRefOffset(refOffsetX,refOffsetY),node.nodeType===NodeType.FUNCTION&&node.isAsync()?await node.executeAsync():node.execute(),Promise.resolve(AstNodePromiseType.SUCCESS)}_execute(node,refOffsetX=0,refOffsetY=0){if(this._runtimeService.isStopExecution())return AstNodePromiseType.ERROR;const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken().toUpperCase()===DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&item.isEmptyParamFunction()){item.execute();continue}this._execute(item,refOffsetX,refOffsetY)}return node.nodeType===NodeType.REFERENCE&&node.setRefOffset(refOffsetX,refOffsetY),node.execute(),AstNodePromiseType.SUCCESS}},__name(_a9,"Interpreter"),_a9);exports.Interpreter=__decorateClass$g([__decorateParam$g(0,IFormulaRuntimeService)],exports.Interpreter);function isFirstChildParameter(lexerNode){return lexerNode instanceof LexerNode?lexerNode.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER:!1}__name(isFirstChildParameter,"isFirstChildParameter");function isChildRunTimeParameter(lexerNode){return lexerNode instanceof LexerNode?lexerNode.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER:!1}__name(isChildRunTimeParameter,"isChildRunTimeParameter");function updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar){const children=functionStatementNode.getChildren(),childrenCount=children.length,firstChild=children[0];for(let i=0;i<childrenCount;i++){const node=children[i];if(!(isFirstChildParameter(firstChild)&&i!==0))if(node instanceof LexerNode)updateLambdaStatement(node,lambdaId,currentLambdaPrivacyVar);else{const token=node.trim();if(currentLambdaPrivacyVar.has(token)){const newNode=new LexerNode;newNode.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER),newNode.setLambdaId(lambdaId),newNode.setLambdaPrivacyVar(currentLambdaPrivacyVar),newNode.setLambdaParameter(token),children[i]=newNode}}}}__name(updateLambdaStatement,"updateLambdaStatement");function getCellValue(cell){if(cell===null)return 0;if(cell!=null&&cell.p){const body=cell==null?void 0:cell.p.body;if(body==null)return 0;const data=body.dataStream;return core.BuildTextUtils.transform.getPlainText(data)}return(cell==null?void 0:cell.v)||0}__name(getCellValue,"getCellValue");const FORMULA_CACHE_LRU_COUNT$1=1e5,FORMULA_REF_TO_ARRAY_CACHE=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$1),_BaseReferenceObject=class _BaseReferenceObject extends ObjectClassType{constructor(_token){super();__publicField(this,"_forcedSheetId","");__publicField(this,"_forcedSheetName","");__publicField(this,"_defaultSheetId","");__publicField(this,"_rangeData",{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1});__publicField(this,"_unitData",{});__publicField(this,"_unitStylesData",{});__publicField(this,"_defaultUnitId","");__publicField(this,"_forcedUnitId","");__publicField(this,"_runtimeData",{});__publicField(this,"_arrayFormulaCellData",{});__publicField(this,"_runtimeArrayFormulaCellData",{});__publicField(this,"_runtimeFeatureCellData",{});__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._token=_token}dispose(){this._unitData={},this._unitStylesData={},this._runtimeData={}}getToken(){return this._token}setToken(token){this._token=token}isExceedRange(){const{startRow,endRow,startColumn,endColumn}=this.getRangePosition();return startRow<0||startColumn<0||endRow>=this.getActiveSheetRowCount()||endColumn>=this.getActiveSheetColumnCount()}setRefOffset(x=0,y=0){this._refOffsetX=x,this._refOffsetY=y}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}getRangePosition(){let{startRow,startColumn,endRow,endColumn}=core.moveRangeByOffset(this._rangeData,this._refOffsetX,this._refOffsetY);return Number.isNaN(startRow)&&(startRow=0),Number.isNaN(startColumn)&&(startColumn=0),Number.isNaN(endRow)&&(endRow=this.getActiveSheetRowCount()-1),Number.isNaN(endColumn)&&(endColumn=this.getActiveSheetColumnCount()-1),{...this._rangeData,startRow,endRow,startColumn,endColumn}}isReferenceObject(){return!0}iterator(callback){const{startRow,endRow,startColumn,endColumn}=this.getRangePosition();if(this._checkIfWorksheetMiss())return callback(ErrorValueObject.create(ErrorType$1.VALUE),startRow,startColumn);const unitId=this._forcedUnitId||this._defaultUnitId,sheetId=this._forcedSheetId||this._defaultSheetId;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++){if(r<0||c<0)return callback(ErrorValueObject.create(ErrorType$1.REF),r,c);const cell=this.getCellData(r,c);let result=!1;if(core.isNullCell(cell)){result=callback(null,r,c);continue}let resultObjectValue=this.getCellValueObject(cell);if(r===startRow&&c===startColumn){const pattern=this.getCellPattern(unitId,sheetId,r,c);if(pattern&&resultObjectValue.isNumber()){const value=Number(resultObjectValue.getValue());resultObjectValue=NumberValueObject.create(value,pattern)}}if(result=callback(resultObjectValue,r,c),result===!1)return}}getFirstCell(){const{startRow,startColumn}=this.getRangePosition(),cell=this.getCellData(startRow,startColumn);if(!cell)return NumberValueObject.create(0);let cellValueObject=this.getCellValueObject(cell);const unitId=this._forcedUnitId||this._defaultUnitId,sheetId=this._forcedSheetId||this._defaultSheetId,pattern=this.getCellPattern(unitId,sheetId,startRow,startColumn);if(pattern&&cellValueObject.isNumber()){const value=Number(cellValueObject.getValue());cellValueObject=NumberValueObject.create(value,pattern)}return cellValueObject}getRangeData(){return this._rangeData}setRangeData(range){this._rangeData=range}getUnitId(){return this._forcedUnitId&&this._forcedUnitId.length>0?this._forcedUnitId:this._defaultUnitId}getSheetId(){return this._forcedSheetId&&this._forcedSheetId.length>0?this._forcedSheetId:this._defaultSheetId}setForcedUnitIdDirect(unitId){unitId.length>0&&(this._forcedUnitId=unitId)}getForcedUnitId(){return this._forcedUnitId}setForcedSheetId(sheetNameMap){var _a28;this._forcedSheetId=(_a28=sheetNameMap[this.getUnitId()])==null?void 0:_a28[this._forcedSheetName]}setForcedSheetIdDirect(sheetId){this._forcedSheetId=sheetId}getForcedSheetId(){return this._forcedSheetId}setForcedSheetName(sheetName){sheetName.length>0&&(this._forcedSheetName=sheetName)}getForcedSheetName(){return this._forcedSheetName}setDefaultSheetId(sheetId){this._defaultSheetId=sheetId}getDefaultSheetId(){return this._defaultSheetId}setDefaultUnitId(unitId){this._defaultUnitId=unitId}getDefaultUnitId(){return this._defaultUnitId}getUnitData(){return this._unitData}setUnitData(unitData){this._unitData=unitData}getUnitStylesData(){return this._unitStylesData}setUnitStylesData(unitStylesData){this._unitStylesData=unitStylesData}getRuntimeData(){return this._runtimeData}setRuntimeData(runtimeData){this._runtimeData=runtimeData}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(unitData){this._arrayFormulaCellData=unitData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}setRuntimeArrayFormulaCellData(unitData){this._runtimeArrayFormulaCellData=unitData}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(unitData){this._runtimeFeatureCellData=unitData}getActiveSheetRowCount(){var _a28;return((_a28=this.getCurrentActiveSheetData())==null?void 0:_a28.rowCount)||0}getActiveSheetColumnCount(){var _a28;return((_a28=this.getCurrentActiveSheetData())==null?void 0:_a28.columnCount)||0}getRowCount(){return this._rangeData.endRow-this._rangeData.startRow+1}getColumnCount(){return this._rangeData.endColumn-this._rangeData.startColumn+1}getRowData(){var _a28;return((_a28=this.getCurrentActiveSheetData())==null?void 0:_a28.rowData)||{}}getColumnData(){var _a28;return((_a28=this.getCurrentActiveSheetData())==null?void 0:_a28.columnData)||{}}isCell(){return!1}isColumn(){return!1}isRow(){return!1}isRange(){return!1}isTable(){return!1}unionBy(referenceObject){return ErrorValueObject.create(ErrorType$1.REF)}unionRange(rangeData1,rangeData2){return{startRow:-1,startColumn:-1,endRow:-1,endColumn:-1}}getCellValueObject(cell){const value=getCellValue(cell);if(ERROR_TYPE_SET.has(value))return ErrorValueObject.create(value);if(cell.t===core.CellValueType.NUMBER){const pattern=this._getPatternByCell(cell);return createNumberValueObjectByRawValue(value,pattern)}return cell.t===core.CellValueType.STRING||cell.t===core.CellValueType.FORCE_STRING?StringValueObject.create(value.toString()):cell.t===core.CellValueType.BOOLEAN?createBooleanValueObjectByRawValue(value):ValueObjectFactory.create(value)}_getPatternByCell(cell){var _a28;const styles=this._unitStylesData[this.getUnitId()];if(!styles)return"";const style=styles.getStyleByCell(cell);return((_a28=style==null?void 0:style.n)==null?void 0:_a28.pattern)||""}getCellByRow(row){return this.getCellByPosition(row)}getCellByColumn(column){return this.getCellByPosition(void 0,column)}getCurrentActiveSheetData(){var _a28;return(_a28=this._unitData[this.getUnitId()])==null?void 0:_a28[this.getSheetId()]}getCurrentStylesData(){return this._unitStylesData[this.getUnitId()]}getCurrentRuntimeSheetData(){var _a28,_b;return(_b=(_a28=this._runtimeData)==null?void 0:_a28[this.getUnitId()])==null?void 0:_b[this.getSheetId()]}getCurrentActiveArrayFormulaCellData(){var _a28,_b;return(_b=(_a28=this._arrayFormulaCellData)==null?void 0:_a28[this.getUnitId()])==null?void 0:_b[this.getSheetId()]}getCurrentRuntimeActiveArrayFormulaCellData(){var _a28,_b;return(_b=(_a28=this._runtimeArrayFormulaCellData)==null?void 0:_a28[this.getUnitId()])==null?void 0:_b[this.getSheetId()]}getCellData(row,column){const activeSheetData=this.getCurrentActiveSheetData(),activeRuntimeData=this.getCurrentRuntimeSheetData(),activeArrayFormulaCellData=this.getCurrentActiveArrayFormulaCellData(),activeRuntimeArrayFormulaCellData=this.getCurrentRuntimeActiveArrayFormulaCellData();return(activeRuntimeData==null?void 0:activeRuntimeData.getValue(row,column))||(activeRuntimeArrayFormulaCellData==null?void 0:activeRuntimeArrayFormulaCellData.getValue(row,column))||this.getRuntimeFeatureCellValue(row,column)||(activeArrayFormulaCellData==null?void 0:activeArrayFormulaCellData.getValue(row,column))||(activeSheetData==null?void 0:activeSheetData.cellData.getValue(row,column))}getRuntimeFeatureCellValue(row,column){return getRuntimeFeatureCell(row,column,this.getSheetId(),this.getUnitId(),this._runtimeFeatureCellData)}getCellByPosition(rowRaw,columnRaw){let row=rowRaw,column=columnRaw;row||(row=this._rangeData.startRow),column||(column=this._rangeData.startColumn);const cell=this.getCellData(row,column);return cell?this.getCellValueObject(cell):ErrorValueObject.create(ErrorType$1.VALUE)}getCellPattern(unitId,sheetId,row,column){var _a28,_b,_c,_d;const currentStyles=this._unitStylesData[unitId];if(!currentStyles)return"";const currentCell=(_c=(_b=(_a28=this._unitData[unitId])==null?void 0:_a28[sheetId])==null?void 0:_b.cellData)==null?void 0:_c.getValue(row,column);if(!currentCell)return"";const style=currentStyles.getStyleByCell(currentCell);return((_d=style==null?void 0:style.n)==null?void 0:_d.pattern)||""}toArrayValueObject(useCache=!0){var _a28;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),key=`${this.getUnitId()}_${this.getSheetId()}_${startRow}_${endRow}_${startColumn}_${endColumn}`,array=FORMULA_REF_TO_ARRAY_CACHE.get(key);if(array&&useCache)return array;const rowSize=endRow-startRow+1,columnSize=endColumn-startColumn+1;if(rowSize<0||columnSize<0)return this._getBlankArrayValueObject();const arrayValueList=new Array(rowSize);this.iterator((valueObject,rowIndex,columnIndex)=>{const row=rowIndex-startRow,column=columnIndex-startColumn;arrayValueList[row]||(arrayValueList[row]=new Array(columnSize)),valueObject==null&&(valueObject=NullValueObject.create()),arrayValueList[row][column]=valueObject});const arrayValueObjectData={calculateValueList:arrayValueList,rowCount:arrayValueList.length,columnCount:((_a28=arrayValueList[0])==null?void 0:_a28.length)||0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:startRow,column:startColumn},arrayValueObject=ArrayValueObject.create(arrayValueObjectData);return useCache&&FORMULA_REF_TO_ARRAY_CACHE.set(key,arrayValueObject),arrayValueObject}toUnitRange(){return{range:this.getRangePosition(),sheetId:this.getSheetId(),unitId:this.getUnitId()}}_checkIfWorksheetMiss(){return(this._forcedSheetId==null||this._forcedSheetId.length===0)&&this._forcedSheetName.length>0}_getBlankArrayValueObject(){const arrayValueObjectData={calculateValueList:[],rowCount:0,columnCount:0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:0,column:0};return ArrayValueObject.create(arrayValueObjectData)}};__name(_BaseReferenceObject,"BaseReferenceObject");let BaseReferenceObject=_BaseReferenceObject;const _AsyncObject=class _AsyncObject extends ObjectClassType{constructor(_promise){super(),this._promise=_promise}isAsyncObject(){return!0}async getValue(){return this._promise}};__name(_AsyncObject,"AsyncObject");let AsyncObject=_AsyncObject;const _AsyncArrayObject=class _AsyncArrayObject extends ObjectClassType{constructor(_promiseList){super(),this._promiseList=_promiseList}isAsyncArrayObject(){return!0}async getValue(){var _a28;const variants=[];for(let r=0;r<this._promiseList.length;r++){const promiseCells=this._promiseList[r];variants[r]==null&&(variants[r]=[]);for(let c=0;c<promiseCells.length;c++){const promiseCell=promiseCells[c];promiseCell.isAsyncObject()?variants[r][c]=await promiseCell.getValue():variants[r][c]=promiseCell}}const arrayValueObjectData={calculateValueList:variants,rowCount:variants.length,columnCount:((_a28=variants[0])==null?void 0:_a28.length)||0,unitId:"",sheetId:"",row:0,column:0};return ArrayValueObject.create(arrayValueObjectData)}};__name(_AsyncArrayObject,"AsyncArrayObject");let AsyncArrayObject=_AsyncArrayObject;function getAstNodeTopParent(node){let parent=node;for(;parent!=null&&parent.getParent();)parent=parent.getParent();return parent}__name(getAstNodeTopParent,"getAstNodeTopParent");function generateExecuteAstNodeData(node,refOffsetX=0,refOffsetY=0){return{node,refOffsetX,refOffsetY}}__name(generateExecuteAstNodeData,"generateExecuteAstNodeData");function getRootLexerHasValueNode(node){if(!node)return;if(node.getToken()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER)return node;const parameterNode=node,currentLambdaPrivacyVar=parameterNode.getCurrentLambdaPrivacyVar(),lambdaParameter=parameterNode.getLambdaParameter();if(!currentLambdaPrivacyVar)return;const chainNode=currentLambdaPrivacyVar.get(lambdaParameter);return chainNode==null&&node.getValue()?node:getRootLexerHasValueNode(chainNode)}__name(getRootLexerHasValueNode,"getRootLexerHasValueNode");const _LambdaValueObjectObject=class _LambdaValueObjectObject extends BaseValueObject{constructor(_lambdaNode,_interpreter,_lambdaPrivacyVarKeys){super(0);__publicField(this,"_lambdaPrivacyValueMap",new Map);this._lambdaNode=_lambdaNode,this._interpreter=_interpreter,this._lambdaPrivacyVarKeys=_lambdaPrivacyVarKeys,this._lambdaPrivacyValueMap.clear()}static create(lambdaNode,interpreter,lambdaPrivacyVarKeys){return new _LambdaValueObjectObject(lambdaNode,interpreter,lambdaPrivacyVarKeys)}isLambda(){return!0}execute(...variants){const paramCount=this._lambdaPrivacyVarKeys.length;if(variants.length!==paramCount)return ErrorValueObject.create(ErrorType$1.VALUE);this._setLambdaPrivacyValueMap(variants),this._setLambdaNodeValue(this._lambdaNode),this._lambdaNode.setNotEmpty(!1);let value;if(this._interpreter.checkAsyncNode(this._lambdaNode))value=new AsyncObject(this._interpreter.executeAsync(generateExecuteAstNodeData(this._lambdaNode)));else{const o=this._interpreter.execute(generateExecuteAstNodeData(this._lambdaNode));o.isReferenceObject()?value=o.toArrayValueObject():value=o}return this._lambdaNode.setNotEmpty(!0),value}_setLambdaNodeValue(node){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER){const lambdaParameter=item.getLambdaParameter(),value=this._lambdaPrivacyValueMap.get(lambdaParameter);if(value)item.setValue(value);else{const currentLambdaPrivacyVar=item.getCurrentLambdaPrivacyVar(),node2=getRootLexerHasValueNode(currentLambdaPrivacyVar.get(lambdaParameter));node2!=null&&item.setValue(node2.getValue())}continue}this._setLambdaNodeValue(item)}}_setLambdaPrivacyValueMap(variants){for(let i=0;i<variants.length;i++){const variant=variants[i],key=this._lambdaPrivacyVarKeys[i];this._lambdaPrivacyValueMap.set(key,variant)}}getLambdaPrivacyVarKeys(){return this._lambdaPrivacyVarKeys}};__name(_LambdaValueObjectObject,"LambdaValueObjectObject");let LambdaValueObjectObject=_LambdaValueObjectObject;var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f");const _LambdaNode=class _LambdaNode extends BaseAstNode{constructor(token,_lambdaId,_interpreter,_lambdaPrivacyVarKeys){super(token);__publicField(this,"_isNotEmpty",!0);this._lambdaId=_lambdaId,this._interpreter=_interpreter,this._lambdaPrivacyVarKeys=_lambdaPrivacyVarKeys}get nodeType(){return NodeType.LAMBDA}setNotEmpty(state=!1){this._isNotEmpty=state}isEmptyParamFunction(){return this.getChildren().length<2&&this._isNotEmpty}isFunctionParameter(){return this._lambdaId===null}getLambdaId(){return this._lambdaId}execute(){if(this.isEmptyParamFunction())this.setValue(LambdaValueObjectObject.create(this,this._interpreter,this._lambdaPrivacyVarKeys));else{const children=this.getChildren(),childrenCount=children.length;this.setValue(children[childrenCount-1].getValue())}}};__name(_LambdaNode,"LambdaNode");let LambdaNode=_LambdaNode;var _a10;exports.LambdaNodeFactory=(_a10=class extends BaseAstNodeFactory{constructor(_runtimeService,_interpreter){super(),this._runtimeService=_runtimeService,this._interpreter=_interpreter}get zIndex(){return NODE_ORDER_MAP.get(NodeType.LAMBDA)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){const children=param.getChildren(),lambdaVar=children[0];let parameterArray=children.slice(1,-1);const functionStatementNode=children[children.length-1];if(!(lambdaVar instanceof LexerNode&&functionStatementNode instanceof LexerNode))return ErrorNode.create(ErrorType$1.NAME);if(lambdaVar.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){const lambdaVarChildren=lambdaVar.getChildren();if(parameterArray.length!==lambdaVarChildren.length)return ErrorNode.create(ErrorType$1.VALUE)}else parameterArray=children.slice(0,-1);const lambdaId=core.Tools.generateRandomId(8),currentLambdaPrivacyVar=new Map;for(let i=0;i<parameterArray.length;i++){const parameter=parameterArray[i];if(parameter instanceof LexerNode){const variant=parameter.getChildren()[0];parameter.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER),currentLambdaPrivacyVar.set(variant.trim(),void 0)}else return ErrorNode.create(ErrorType$1.VALUE)}return this._runtimeService.registerFunctionDefinitionPrivacyVar(lambdaId,currentLambdaPrivacyVar),this._updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar),new LambdaNode(param.getToken(),lambdaId,this._interpreter,[...currentLambdaPrivacyVar.keys()])}checkAndCreateNodeType(param){if(!(!(param instanceof LexerNode)||param.getToken().trim().toUpperCase()!==DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME))return this.create(param)}_updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar){updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar)}},__name(_a10,"LambdaNodeFactory"),_a10);exports.LambdaNodeFactory=__decorateClass$f([__decorateParam$f(0,IFormulaRuntimeService),__decorateParam$f(1,core.Inject(exports.Interpreter))],exports.LambdaNodeFactory);function getRootLexerNode(node){if(!node)return;if(node.getToken()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER)return node;const parameterNode=node,currentLambdaPrivacyVar=parameterNode.getCurrentLambdaPrivacyVar(),lambdaParameter=parameterNode.getLambdaParameter();if(currentLambdaPrivacyVar)return getRootLexerNode(currentLambdaPrivacyVar.get(lambdaParameter))}__name(getRootLexerNode,"getRootLexerNode");const _LambdaParameterNode=class _LambdaParameterNode extends BaseAstNode{constructor(token,_lambdaParameter,_currentLambdaPrivacyVar){super(token),this._lambdaParameter=_lambdaParameter,this._currentLambdaPrivacyVar=_currentLambdaPrivacyVar}getLambdaParameter(){return this._lambdaParameter}getCurrentLambdaPrivacyVar(){return this._currentLambdaPrivacyVar}get nodeType(){return NodeType.LAMBDA_PARAMETER}execute(){const node=getRootLexerNode(this._currentLambdaPrivacyVar.get(this._lambdaParameter));if(node)this.setValue(node.getValue());else{const value=this.getValue();(value==null||value.isError())&&this.setValue(ErrorValueObject.create(ErrorType$1.NAME))}}};__name(_LambdaParameterNode,"LambdaParameterNode");let LambdaParameterNode=_LambdaParameterNode;const _LambdaParameterNodeFactory=class _LambdaParameterNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.LAMBDA_PARAMETER)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){const currentLambdaPrivacyVar=param.getFunctionDefinitionPrivacyVar(),lambdaParameter=param.getLambdaParameter();return currentLambdaPrivacyVar?new LambdaParameterNode(param.getToken(),lambdaParameter,currentLambdaPrivacyVar):new ErrorNode(ErrorType$1.NAME)}checkAndCreateNodeType(param){if(!(!(param instanceof LexerNode)||param.getToken().trim()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER))return this.create(param)}};__name(_LambdaParameterNodeFactory,"LambdaParameterNodeFactory");let LambdaParameterNodeFactory=_LambdaParameterNodeFactory;const _NullNode=class _NullNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.NULL}execute(){this.setValue(NullValueObject.create())}};__name(_NullNode,"NullNode");let NullNode=_NullNode;var FUNCTION_NAMES_MATH=(FUNCTION_NAMES_MATH2=>(FUNCTION_NAMES_MATH2.ABS="ABS",FUNCTION_NAMES_MATH2.ACOS="ACOS",FUNCTION_NAMES_MATH2.ACOSH="ACOSH",FUNCTION_NAMES_MATH2.ACOT="ACOT",FUNCTION_NAMES_MATH2.ACOTH="ACOTH",FUNCTION_NAMES_MATH2.AGGREGATE="AGGREGATE",FUNCTION_NAMES_MATH2.ARABIC="ARABIC",FUNCTION_NAMES_MATH2.ASIN="ASIN",FUNCTION_NAMES_MATH2.ASINH="ASINH",FUNCTION_NAMES_MATH2.ATAN="ATAN",FUNCTION_NAMES_MATH2.ATAN2="ATAN2",FUNCTION_NAMES_MATH2.ATANH="ATANH",FUNCTION_NAMES_MATH2.BASE="BASE",FUNCTION_NAMES_MATH2.CEILING="CEILING",FUNCTION_NAMES_MATH2.CEILING_MATH="CEILING.MATH",FUNCTION_NAMES_MATH2.CEILING_PRECISE="CEILING.PRECISE",FUNCTION_NAMES_MATH2.COMBIN="COMBIN",FUNCTION_NAMES_MATH2.COMBINA="COMBINA",FUNCTION_NAMES_MATH2.COS="COS",FUNCTION_NAMES_MATH2.COSH="COSH",FUNCTION_NAMES_MATH2.COT="COT",FUNCTION_NAMES_MATH2.COTH="COTH",FUNCTION_NAMES_MATH2.CSC="CSC",FUNCTION_NAMES_MATH2.CSCH="CSCH",FUNCTION_NAMES_MATH2.DECIMAL="DECIMAL",FUNCTION_NAMES_MATH2.DEGREES="DEGREES",FUNCTION_NAMES_MATH2.EVEN="EVEN",FUNCTION_NAMES_MATH2.EXP="EXP",FUNCTION_NAMES_MATH2.FACT="FACT",FUNCTION_NAMES_MATH2.FACTDOUBLE="FACTDOUBLE",FUNCTION_NAMES_MATH2.FLOOR="FLOOR",FUNCTION_NAMES_MATH2.FLOOR_MATH="FLOOR.MATH",FUNCTION_NAMES_MATH2.FLOOR_PRECISE="FLOOR.PRECISE",FUNCTION_NAMES_MATH2.GCD="GCD",FUNCTION_NAMES_MATH2.INT="INT",FUNCTION_NAMES_MATH2.ISO_CEILING="ISO.CEILING",FUNCTION_NAMES_MATH2.LCM="LCM",FUNCTION_NAMES_MATH2.LET="LET",FUNCTION_NAMES_MATH2.LN="LN",FUNCTION_NAMES_MATH2.LOG="LOG",FUNCTION_NAMES_MATH2.LOG10="LOG10",FUNCTION_NAMES_MATH2.MDETERM="MDETERM",FUNCTION_NAMES_MATH2.MINVERSE="MINVERSE",FUNCTION_NAMES_MATH2.MMULT="MMULT",FUNCTION_NAMES_MATH2.MOD="MOD",FUNCTION_NAMES_MATH2.MROUND="MROUND",FUNCTION_NAMES_MATH2.MULTINOMIAL="MULTINOMIAL",FUNCTION_NAMES_MATH2.MUNIT="MUNIT",FUNCTION_NAMES_MATH2.ODD="ODD",FUNCTION_NAMES_MATH2.PI="PI",FUNCTION_NAMES_MATH2.POWER="POWER",FUNCTION_NAMES_MATH2.PRODUCT="PRODUCT",FUNCTION_NAMES_MATH2.QUOTIENT="QUOTIENT",FUNCTION_NAMES_MATH2.RADIANS="RADIANS",FUNCTION_NAMES_MATH2.RAND="RAND",FUNCTION_NAMES_MATH2.RANDARRAY="RANDARRAY",FUNCTION_NAMES_MATH2.RANDBETWEEN="RANDBETWEEN",FUNCTION_NAMES_MATH2.ROMAN="ROMAN",FUNCTION_NAMES_MATH2.ROUND="ROUND",FUNCTION_NAMES_MATH2.ROUNDDOWN="ROUNDDOWN",FUNCTION_NAMES_MATH2.ROUNDUP="ROUNDUP",FUNCTION_NAMES_MATH2.SEC="SEC",FUNCTION_NAMES_MATH2.SECH="SECH",FUNCTION_NAMES_MATH2.SERIESSUM="SERIESSUM",FUNCTION_NAMES_MATH2.SEQUENCE="SEQUENCE",FUNCTION_NAMES_MATH2.SIGN="SIGN",FUNCTION_NAMES_MATH2.SIN="SIN",FUNCTION_NAMES_MATH2.SINH="SINH",FUNCTION_NAMES_MATH2.SQRT="SQRT",FUNCTION_NAMES_MATH2.SQRTPI="SQRTPI",FUNCTION_NAMES_MATH2.SUBTOTAL="SUBTOTAL",FUNCTION_NAMES_MATH2.SUM="SUM",FUNCTION_NAMES_MATH2.SUMIF="SUMIF",FUNCTION_NAMES_MATH2.SUMIFS="SUMIFS",FUNCTION_NAMES_MATH2.SUMPRODUCT="SUMPRODUCT",FUNCTION_NAMES_MATH2.SUMSQ="SUMSQ",FUNCTION_NAMES_MATH2.SUMX2MY2="SUMX2MY2",FUNCTION_NAMES_MATH2.SUMX2PY2="SUMX2PY2",FUNCTION_NAMES_MATH2.SUMXMY2="SUMXMY2",FUNCTION_NAMES_MATH2.TAN="TAN",FUNCTION_NAMES_MATH2.TANH="TANH",FUNCTION_NAMES_MATH2.TRUNC="TRUNC",FUNCTION_NAMES_MATH2))(FUNCTION_NAMES_MATH||{}),FUNCTION_NAMES_TEXT=(FUNCTION_NAMES_TEXT2=>(FUNCTION_NAMES_TEXT2.ASC="ASC",FUNCTION_NAMES_TEXT2.ARRAYTOTEXT="ARRAYTOTEXT",FUNCTION_NAMES_TEXT2.BAHTTEXT="BAHTTEXT",FUNCTION_NAMES_TEXT2.CHAR="CHAR",FUNCTION_NAMES_TEXT2.CLEAN="CLEAN",FUNCTION_NAMES_TEXT2.CODE="CODE",FUNCTION_NAMES_TEXT2.CONCAT="CONCAT",FUNCTION_NAMES_TEXT2.CONCATENATE="CONCATENATE",FUNCTION_NAMES_TEXT2.DBCS="DBCS",FUNCTION_NAMES_TEXT2.DOLLAR="DOLLAR",FUNCTION_NAMES_TEXT2.EXACT="EXACT",FUNCTION_NAMES_TEXT2.FIND="FIND",FUNCTION_NAMES_TEXT2.FINDB="FINDB",FUNCTION_NAMES_TEXT2.FIXED="FIXED",FUNCTION_NAMES_TEXT2.LEFT="LEFT",FUNCTION_NAMES_TEXT2.LEFTB="LEFTB",FUNCTION_NAMES_TEXT2.LEN="LEN",FUNCTION_NAMES_TEXT2.LENB="LENB",FUNCTION_NAMES_TEXT2.LOWER="LOWER",FUNCTION_NAMES_TEXT2.MID="MID",FUNCTION_NAMES_TEXT2.MIDB="MIDB",FUNCTION_NAMES_TEXT2.NUMBERVALUE="NUMBERVALUE",FUNCTION_NAMES_TEXT2.PHONETIC="PHONETIC",FUNCTION_NAMES_TEXT2.PROPER="PROPER",FUNCTION_NAMES_TEXT2.REGEXEXTRACT="REGEXEXTRACT",FUNCTION_NAMES_TEXT2.REGEXMATCH="REGEXMATCH",FUNCTION_NAMES_TEXT2.REGEXREPLACE="REGEXREPLACE",FUNCTION_NAMES_TEXT2.REPLACE="REPLACE",FUNCTION_NAMES_TEXT2.REPLACEB="REPLACEB",FUNCTION_NAMES_TEXT2.REPT="REPT",FUNCTION_NAMES_TEXT2.RIGHT="RIGHT",FUNCTION_NAMES_TEXT2.RIGHTB="RIGHTB",FUNCTION_NAMES_TEXT2.SEARCH="SEARCH",FUNCTION_NAMES_TEXT2.SEARCHB="SEARCHB",FUNCTION_NAMES_TEXT2.SUBSTITUTE="SUBSTITUTE",FUNCTION_NAMES_TEXT2.T="T",FUNCTION_NAMES_TEXT2.TEXT="TEXT",FUNCTION_NAMES_TEXT2.TEXTAFTER="TEXTAFTER",FUNCTION_NAMES_TEXT2.TEXTBEFORE="TEXTBEFORE",FUNCTION_NAMES_TEXT2.TEXTJOIN="TEXTJOIN",FUNCTION_NAMES_TEXT2.TEXTSPLIT="TEXTSPLIT",FUNCTION_NAMES_TEXT2.TRIM="TRIM",FUNCTION_NAMES_TEXT2.UNICHAR="UNICHAR",FUNCTION_NAMES_TEXT2.UNICODE="UNICODE",FUNCTION_NAMES_TEXT2.UPPER="UPPER",FUNCTION_NAMES_TEXT2.VALUE="VALUE",FUNCTION_NAMES_TEXT2.VALUETOTEXT="VALUETOTEXT",FUNCTION_NAMES_TEXT2.CALL="CALL",FUNCTION_NAMES_TEXT2.EUROCONVERT="EUROCONVERT",FUNCTION_NAMES_TEXT2.REGISTER_ID="REGISTER.ID",FUNCTION_NAMES_TEXT2))(FUNCTION_NAMES_TEXT||{}),__defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");const _OperatorNode=class _OperatorNode extends BaseAstNode{constructor(_operatorString,_functionExecutor){super(_operatorString),this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.OPERATOR}execute(){var _a28,_b;const children=this.getChildren();this._functionExecutor.name===FUNCTION_NAMES_META.COMPARE&&this._functionExecutor.setCompareType(this.getToken());let object1=(_a28=children[0])==null?void 0:_a28.getValue(),object2=(_b=children[1])==null?void 0:_b.getValue();const token=this.getToken();if((object1==null||object2==null)&&token!==operatorToken.MINUS&&token!==operatorToken.PLUS){this.setValue(ErrorValueObject.create(ErrorType$1.VALUE));return}object1==null&&(object1=NullValueObject.create()),object2==null&&(object2=NullValueObject.create()),object1.isReferenceObject()&&(object1=object1.toArrayValueObject()),object2.isReferenceObject()&&(object2=object2.toArrayValueObject()),this.setValue(this._functionExecutor.calculate(object1,object2))}};__name(_OperatorNode,"OperatorNode");let OperatorNode=_OperatorNode;var _a11;exports.OperatorNodeFactory=(_a11=class extends BaseAstNodeFactory{constructor(_functionService){super(),this._functionService=_functionService}get zIndex(){return NODE_ORDER_MAP.get(NodeType.OPERATOR)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){let functionName="";const tokenTrim=param;tokenTrim===operatorToken.PLUS?functionName=FUNCTION_NAMES_META.PLUS:tokenTrim===operatorToken.MINUS?functionName=FUNCTION_NAMES_META.MINUS:tokenTrim===operatorToken.MULTIPLY?functionName=FUNCTION_NAMES_META.MULTIPLY:tokenTrim===operatorToken.DIVIDED?functionName=FUNCTION_NAMES_META.DIVIDED:tokenTrim===operatorToken.CONCATENATE?functionName=FUNCTION_NAMES_TEXT.CONCATENATE:tokenTrim===operatorToken.POWER?functionName=FUNCTION_NAMES_MATH.POWER:OPERATOR_TOKEN_COMPARE_SET.has(tokenTrim)&&(functionName=FUNCTION_NAMES_META.COMPARE);const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new OperatorNode(tokenTrim,functionExecutor):(console.error(`No function ${param}`),ErrorNode.create(ErrorType$1.NAME))}checkAndCreateNodeType(param){if(param instanceof LexerNode)return;const tokenTrim=param.trim();if(!(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')&&OPERATOR_TOKEN_SET.has(tokenTrim))return this.create(tokenTrim)}},__name(_a11,"OperatorNodeFactory"),_a11);exports.OperatorNodeFactory=__decorateClass$e([__decorateParam$e(0,IFunctionService)],exports.OperatorNodeFactory);const _SuperTableService=class _SuperTableService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_tableMap",new Map);__publicField(this,"_tableOptionMap",new Map)}dispose(){this._tableMap.clear(),this._tableOptionMap.clear()}remove(unitId,tableName){var _a28;(_a28=this._tableMap.get(unitId))==null||_a28.delete(tableName)}getTableMap(unitId){return this._tableMap.get(unitId)}getTableOptionMap(){return this._tableOptionMap}registerTable(unitId,tableName,reference){var _a28;this._tableMap.get(unitId)==null&&this._tableMap.set(unitId,new Map),(_a28=this._tableMap.get(unitId))==null||_a28.set(tableName,reference)}registerTableOptionMap(tableOption,tableOptionType){this._tableOptionMap.set(tableOption,tableOptionType)}};__name(_SuperTableService,"SuperTableService");let SuperTableService=_SuperTableService;const ISuperTableService=core.createIdentifier("univer.formula.super-table.service"),_RangeReferenceObject=class _RangeReferenceObject extends BaseReferenceObject{constructor(range,forcedSheetId,forcedUnitId){super(""),this.setRangeData(range),forcedSheetId&&this.setForcedSheetIdDirect(forcedSheetId),forcedUnitId&&this.setForcedUnitIdDirect(forcedUnitId)}isRange(){return!0}};__name(_RangeReferenceObject,"RangeReferenceObject");let RangeReferenceObject=_RangeReferenceObject;const _CellReferenceObject=class _CellReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheetWithCache(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName),this.setRangeData(grid.range)}isCell(){return!0}unionBy(referenceObject){if(!referenceObject.isCell())return ErrorValueObject.create(ErrorType$1.REF);const cellReferenceObject=referenceObject,newRangeData=this.unionRange(this.getRangeData(),cellReferenceObject.getRangeData());return this._createRange(newRangeData)}unionRange(rangeData1,rangeData2){const startRow1=rangeData1.startRow,startColumn1=rangeData1.startColumn,startRow2=rangeData2.startRow,startColumn2=rangeData2.startColumn,range={startRow:-1,startColumn:-1,endRow:-1,endColumn:-1};return startRow1>startRow2?(range.startRow=startRow2,range.endRow=startRow1):(range.startRow=startRow1,range.endRow=startRow2),startColumn1>startColumn2?(range.startColumn=startColumn2,range.endColumn=startColumn1):(range.startColumn=startColumn1,range.endColumn=startColumn2),rangeData1.startAbsoluteRefType&&(range.startAbsoluteRefType=rangeData1.startAbsoluteRefType),rangeData2.startAbsoluteRefType&&(range.endAbsoluteRefType=rangeData2.startAbsoluteRefType),range}_createRange(newRangeData){const rangeReferenceObject=new RangeReferenceObject(newRangeData,this.getForcedSheetId(),this.getForcedUnitId());rangeReferenceObject.setUnitData(this.getUnitData()),rangeReferenceObject.setDefaultSheetId(this.getDefaultSheetId()),rangeReferenceObject.setDefaultUnitId(this.getDefaultUnitId()),rangeReferenceObject.setRuntimeData(this.getRuntimeData()),rangeReferenceObject.setUnitStylesData(this.getUnitStylesData()),rangeReferenceObject.setArrayFormulaCellData(this.getArrayFormulaCellData()),rangeReferenceObject.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()),rangeReferenceObject.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());const{x,y}=this.getRefOffset();rangeReferenceObject.setRefOffset(x,y);const forceSheetId=this.getForcedSheetId();rangeReferenceObject.setForcedSheetName(this.getForcedSheetName()),forceSheetId!=null&&rangeReferenceObject.setForcedSheetIdDirect(forceSheetId);const forcedUnitId=this.getForcedUnitId();return forcedUnitId&&rangeReferenceObject.setForcedUnitIdDirect(forcedUnitId),rangeReferenceObject}};__name(_CellReferenceObject,"CellReferenceObject");let CellReferenceObject=_CellReferenceObject;const _ColumnReferenceObject=class _ColumnReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheetWithCache(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName);const range={...grid.range,startColumn:grid.range.startColumn,startRow:Number.NaN,endColumn:grid.range.endColumn,endRow:Number.NaN,rangeType:core.RANGE_TYPE.COLUMN};this.setRangeData(range)}isColumn(){return!0}unionBy(referenceObject){if(!referenceObject.isColumn())return ErrorValueObject.create(ErrorType$1.REF);const columnReferenceObject=referenceObject;if(columnReferenceObject.getForcedSheetName()!==void 0&&columnReferenceObject.getForcedSheetName()!=="")return ErrorValueObject.create(ErrorType$1.REF);const currentRangeData=this.getRangeData(),newColumnRange=columnReferenceObject.getRangeData(),newColumn=newColumnRange.startColumn;if(newColumn>=currentRangeData.startColumn&&newColumn<=currentRangeData.endColumn)return this;const column=currentRangeData.startColumn;return newColumn>column?currentRangeData.endColumn=newColumn:(currentRangeData.startColumn=newColumn,currentRangeData.endColumn=column),newColumnRange.startAbsoluteRefType&&(currentRangeData.endAbsoluteRefType=newColumnRange.startAbsoluteRefType),currentRangeData.rangeType=core.RANGE_TYPE.COLUMN,this.setToken(`${this.getToken()}${matchToken.COLON}${columnReferenceObject.getToken()}`),this}};__name(_ColumnReferenceObject,"ColumnReferenceObject");let ColumnReferenceObject=_ColumnReferenceObject;const _RowReferenceObject=class _RowReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheetWithCache(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName);const range={...grid.range,startColumn:Number.NaN,startRow:grid.range.startRow,endColumn:Number.NaN,endRow:grid.range.endRow,rangeType:core.RANGE_TYPE.ROW};this.setRangeData(range)}isRow(){return!0}unionBy(referenceObject){if(!referenceObject.isRow())return ErrorValueObject.create(ErrorType$1.REF);const rowReferenceObject=referenceObject;if(rowReferenceObject.getForcedSheetName()!==void 0&&rowReferenceObject.getForcedSheetName()!=="")return ErrorValueObject.create(ErrorType$1.REF);const currentRangeData=this.getRangeData(),newRowRange=rowReferenceObject.getRangeData(),newRow=newRowRange.startRow;if(newRow>=currentRangeData.startRow&&newRow<=currentRangeData.endRow)return this;const row=currentRangeData.startRow;return newRow>row?currentRangeData.endRow=newRow:(currentRangeData.startRow=newRow,currentRangeData.endRow=row),newRowRange.startAbsoluteRefType&&(currentRangeData.endAbsoluteRefType=newRowRange.startAbsoluteRefType),currentRangeData.rangeType=core.RANGE_TYPE.ROW,this.setToken(`${this.getToken()}${matchToken.COLON}${rowReferenceObject.getToken()}`),this}};__name(_RowReferenceObject,"RowReferenceObject");let RowReferenceObject=_RowReferenceObject;var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d");const _ReferenceNode=class _ReferenceNode extends BaseAstNode{constructor(_accessor,_operatorString,_referenceObject,_isPrepareMerge=!1){super(_operatorString);__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._accessor=_accessor,this._operatorString=_operatorString,this._referenceObject=_referenceObject,this._isPrepareMerge=_isPrepareMerge}get nodeType(){return NodeType.REFERENCE}execute(){const currentConfigService=this._accessor.get(IFormulaCurrentConfigService),runtimeService=this._accessor.get(IFormulaRuntimeService);this._referenceObject.setDefaultUnitId(runtimeService.currentUnitId),this._referenceObject.setDefaultSheetId(runtimeService.currentSubUnitId),this._referenceObject.setForcedSheetId(currentConfigService.getSheetNameMap()),this._referenceObject.setUnitData(currentConfigService.getUnitData()),this._referenceObject.setArrayFormulaCellData(currentConfigService.getArrayFormulaCellData()),this._referenceObject.setRuntimeData(runtimeService.getUnitData()),this._referenceObject.setUnitStylesData(currentConfigService.getUnitStylesData()),this._referenceObject.setRuntimeArrayFormulaCellData(runtimeService.getRuntimeArrayFormulaCellData()),this._referenceObject.setRuntimeFeatureCellData(runtimeService.getRuntimeFeatureCellData());const{x,y}=this.getRefOffset();this._referenceObject.setRefOffset(x,y),!this._isPrepareMerge&&this._referenceObject.isExceedRange()?this.setValue(ErrorValueObject.create(ErrorType$1.NAME)):this.setValue(this._referenceObject)}setRefOffset(x=0,y=0){this._refOffsetX=x,this._refOffsetY=y}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}};__name(_ReferenceNode,"ReferenceNode");let ReferenceNode=_ReferenceNode;var _a12;exports.ReferenceNodeFactory=(_a12=class extends BaseAstNodeFactory{constructor(_superTableService,_formulaRuntimeService,_functionService,_injector){super(),this._superTableService=_superTableService,this._formulaRuntimeService=_formulaRuntimeService,this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.REFERENCE)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){var _a28,_b;let isLexerNode=!1,tokenTrimPre,isPrepareMerge=!1;param instanceof LexerNode?(isLexerNode=!0,tokenTrimPre=param.getToken().trim(),((_b=(_a28=param.getParent())==null?void 0:_a28.getParent())==null?void 0:_b.getToken().trim())===matchToken.COLON&&(isPrepareMerge=!0)):tokenTrimPre=param.trim();const{tokenTrim,minusPrefixNode,atPrefixNode}=prefixHandler(tokenTrimPre,this._functionService,this._injector);if(!isLexerNode&&tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let node;if(regexTestSingeRange(tokenTrim)?node=new ReferenceNode(this._injector,tokenTrim,new CellReferenceObject(tokenTrim),isPrepareMerge):isLexerNode&&this._checkParentIsUnionOperator(param)&&(regexTestSingleRow(tokenTrim)?node=new ReferenceNode(this._injector,tokenTrim,new RowReferenceObject(tokenTrim),isPrepareMerge):regexTestSingleColumn(tokenTrim)&&(node=new ReferenceNode(this._injector,tokenTrim,new ColumnReferenceObject(tokenTrim),isPrepareMerge))),node)return atPrefixNode?node.setParent(atPrefixNode):minusPrefixNode&&node.setParent(minusPrefixNode),node}_checkParentIsUnionOperator(param){var _a28,_b;return((_b=(_a28=param.getParent())==null?void 0:_a28.getParent())==null?void 0:_b.getToken().trim())===matchToken.COLON}},__name(_a12,"ReferenceNodeFactory"),_a12);exports.ReferenceNodeFactory=__decorateClass$d([__decorateParam$d(0,ISuperTableService),__decorateParam$d(1,IFormulaRuntimeService),__decorateParam$d(2,IFunctionService),__decorateParam$d(3,core.Inject(core.Injector))],exports.ReferenceNodeFactory);var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c");const _SuffixNode=class _SuffixNode extends BaseAstNode{constructor(_accessor,_operatorString,_functionExecutor){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.SUFFIX}execute(){let value=this.getChildren()[0].getValue(),result;if(value==null)throw new Error("object is null");if(this._operatorString===suffixToken.PERCENTAGE){if(value.isReferenceObject()&&(value=value.toArrayValueObject()),result=this._functionExecutor.calculate(value,NumberValueObject.create(100)),result.isNumber()){const value2=Number(result.getValue());result=NumberValueObject.create(value2,"0.00%")}}else this._operatorString===suffixToken.POUND?result=this._handlerPound(value):result=ErrorValueObject.create(ErrorType$1.VALUE);this.setValue(result)}_handlerPound(value){var _a28,_b,_c,_d;if(!value.isReferenceObject()||!value.isCell())return ErrorValueObject.create(ErrorType$1.VALUE);const currentConfigService=this._accessor.get(IFormulaCurrentConfigService),lexer=this._accessor.get(exports.Lexer),cellValue=value,range=cellValue.getRangePosition(),unitId=cellValue.getUnitId(),sheetId=cellValue.getSheetId(),formulaData=currentConfigService.getFormulaData(),formulaString=(_d=(_c=(_b=(_a28=formulaData==null?void 0:formulaData[unitId])==null?void 0:_a28[sheetId])==null?void 0:_b[range.startRow])==null?void 0:_c[range.startColumn])==null?void 0:_d.f;return formulaString&&lexer.treeBuilder(formulaString),ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_SuffixNode,"SuffixNode");let SuffixNode=_SuffixNode;var _a13;exports.SuffixNodeFactory=(_a13=class extends BaseAstNodeFactory{constructor(_functionService,_injector){super(),this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.SUFFIX)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const tokenTrim=param.getToken().trim();if(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let functionName="";if(tokenTrim===suffixToken.PERCENTAGE)functionName=FUNCTION_NAMES_META.DIVIDED;else return tokenTrim===suffixToken.POUND?new SuffixNode(this._injector,tokenTrim):void 0;const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new SuffixNode(this._injector,tokenTrim,functionExecutor):(console.error(`No function ${param}`),ErrorNode.create(ErrorType$1.NAME))}},__name(_a13,"SuffixNodeFactory"),_a13);exports.SuffixNodeFactory=__decorateClass$c([__decorateParam$c(0,IFunctionService),__decorateParam$c(1,core.Inject(core.Injector))],exports.SuffixNodeFactory);var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b");const _UnionNode=class _UnionNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.UNION}execute(){const children=this.getChildren(),leftNode=children[0].getValue(),rightNode=children[1].getValue();if(leftNode==null||rightNode==null)throw new Error("leftNode and rightNode");let result;this._operatorString===matchToken.COLON?result=this._unionFunction(leftNode,rightNode):result=ErrorValueObject.create(ErrorType$1.NAME),this.setValue(result)}_unionFunction(variant1,variant2){return variant1.isError()||variant2.isError()||!variant1.isReferenceObject()||!variant2.isReferenceObject()?ErrorValueObject.create(ErrorType$1.REF):(variant1=variant1,variant2=variant2,variant1.isCell()&&variant2.isCell()||variant1.isRow()&&variant2.isRow()||variant1.isColumn()&&variant2.isColumn()?variant1.unionBy(variant2):ErrorValueObject.create(ErrorType$1.NAME))}};__name(_UnionNode,"UnionNode");let UnionNode=_UnionNode;var _a14;exports.UnionNodeFactory=(_a14=class extends BaseAstNodeFactory{constructor(_functionService){super(),this._functionService=_functionService}get zIndex(){return NODE_ORDER_MAP.get(NodeType.UNION)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){return new UnionNode(param)}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const tokenTrim=param.getToken().trim();if(!(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')&&tokenTrim===matchToken.COLON)return this.create(tokenTrim)}},__name(_a14,"UnionNodeFactory"),_a14);exports.UnionNodeFactory=__decorateClass$b([__decorateParam$b(0,IFunctionService)],exports.UnionNodeFactory);const _ValueNode=class _ValueNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.VALUE}execute(){this.setValue(ValueObjectFactory.create(this._operatorString))}};__name(_ValueNode,"ValueNode");let ValueNode=_ValueNode;const _ValueNodeFactory=class _ValueNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.VALUE)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}_checkValueNode(token){if(Number.isNaN(Number(token))){const tokenTrim=token.trim(),startToken=tokenTrim.charAt(0),endToken=tokenTrim.charAt(tokenTrim.length-1);if(ERROR_TYPE_SET.has(tokenTrim))return this.create(tokenTrim);if(startToken==='"'&&endToken==='"')return this.create(tokenTrim);if(startToken==="{"&&endToken==="}")return this.create(tokenTrim);const tokenTrimUpper=tokenTrim.toUpperCase();if(tokenTrimUpper===BooleanValue.TRUE||tokenTrimUpper===BooleanValue.FALSE)return this.create(tokenTrimUpper)}else return this.create(token)}create(param){return new ValueNode(param)}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return this._checkValueNode(param)}};__name(_ValueNodeFactory,"ValueNodeFactory");let ValueNodeFactory=_ValueNodeFactory;var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$a(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$a(target,key,result),result},"__decorateClass$a"),__decorateParam$a=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$a"),_a15;exports.AstTreeBuilder=(_a15=class extends core.Disposable{constructor(_runtimeService,_astRootNodeFactory,_functionNodeFactory,_lambdaNodeFactory,_lambdaParameterNodeFactory,_operatorNodeFactory,_prefixNodeFactory,_referenceNodeFactory,_suffixNodeFactory,_unionNodeFactory,_valueNodeFactory){super();__publicField(this,"_astNodeFactoryList",[]);__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._runtimeService=_runtimeService,this._astRootNodeFactory=_astRootNodeFactory,this._functionNodeFactory=_functionNodeFactory,this._lambdaNodeFactory=_lambdaNodeFactory,this._lambdaParameterNodeFactory=_lambdaParameterNodeFactory,this._operatorNodeFactory=_operatorNodeFactory,this._prefixNodeFactory=_prefixNodeFactory,this._referenceNodeFactory=_referenceNodeFactory,this._suffixNodeFactory=_suffixNodeFactory,this._unionNodeFactory=_unionNodeFactory,this._valueNodeFactory=_valueNodeFactory,this._initializeAstNode()}dispose(){this._astNodeFactoryList.forEach(nodeFactory=>{nodeFactory.dispose()}),this._astNodeFactoryList=[]}parse(lexerNode){const astNode=new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT),node=this._parse(lexerNode,astNode);return lexerNode.hasDefinedNames()&&(node==null||node.setDefinedNames(lexerNode.getDefinedNames())),node}_lambdaParameterHandler(lexerNode,parent){if(parent.getLambdaId==null)return ErrorNode.create(ErrorType$1.VALUE);const lambdaId=parent.getLambdaId(),parentAstNode=new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT),currentLambdaPrivacyVar=this._runtimeService.getFunctionDefinitionPrivacyVar(lambdaId);if(!currentLambdaPrivacyVar)return!1;const currentLambdaPrivacyVarKeys=[...currentLambdaPrivacyVar.keys()],children=lexerNode.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item instanceof LexerNode){updateLambdaStatement(item,lambdaId,currentLambdaPrivacyVar),this._parse(item,parentAstNode);const valueNode=parentAstNode.getChildren()[i];valueNode!=null&¤tLambdaPrivacyVar.set(currentLambdaPrivacyVarKeys[i],valueNode)}else return!1}return parentAstNode.setParent(parent),parent}_changeLetToLambda(letLexerNode){const letChildren=letLexerNode.getChildren(),letChildrenCount=letChildren.length;if(letChildrenCount%2!==1||letChildrenCount===0)return;const newLambdaNode=new LexerNode;newLambdaNode.setToken(DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME);const newLambdaParameterNode=new LexerNode;newLambdaParameterNode.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER);const copyChildren=[...letChildren];for(let i=0;i<letChildrenCount;i++){const child=copyChildren[i];if(!(child instanceof LexerNode))return;i%2===0?child.changeToParent(newLambdaNode):child.changeToParent(newLambdaParameterNode)}newLambdaNode.addChildrenFirst(newLambdaParameterNode),newLambdaParameterNode.setParent(newLambdaNode);const parent=letLexerNode.getParent();return parent==null||parent.replaceChild(letLexerNode,newLambdaNode),newLambdaNode}_parse(lexerNode,parent){const children=lexerNode.getChildren(),childrenCount=children.length,calculateStack=[];let currentAstNode=null;const token=lexerNode.getToken().trim().toUpperCase();if(token===DEFAULT_TOKEN_LET_FUNCTION_NAME){const resultNode=this._changeLetToLambda(lexerNode);return resultNode!=null?this._parse(resultNode,parent):ErrorNode.create(ErrorType$1.ERROR)}if(token===DEFAULT_TOKEN_TYPE_PARAMETER){if(currentAstNode=parent,childrenCount===0)return new NullNode(DEFAULT_TOKEN_TYPE_ROOT).setParent(parent),currentAstNode}else{if(token===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){let resultNode=this._lambdaParameterHandler(lexerNode,parent);return resultNode===!1&&(resultNode=ErrorNode.create(ErrorType$1.ERROR)),resultNode}if(currentAstNode=this._checkAstNode(lexerNode),currentAstNode==null)return ErrorNode.create(ErrorType$1.NAME)}const firstChild=children[0];for(let i=0;i<childrenCount;i++){const item=children[i];if(isFirstChildParameter(firstChild)){if(i!==0&&i!==childrenCount-1)continue}else if(isChildRunTimeParameter(item)&&i!==childrenCount-1)continue;let astNode=null;if(item instanceof LexerNode){if(astNode=this._parse(item,currentAstNode),astNode===currentAstNode)continue}else astNode=this._checkAstNode(item);if(astNode==null)return ErrorNode.create(ErrorType$1.NAME);if(astNode=getAstNodeTopParent(astNode),astNode==null)return;switch(astNode.nodeType){case NodeType.FUNCTION:{const token2=astNode.getToken().trim().toUpperCase();FORCED_RECALCULATION_FUNCTION_NAME.has(token2)&&astNode.setForcedCalculateFunction(),calculateStack.push(astNode);break}case NodeType.LAMBDA:calculateStack.push(astNode);break;case NodeType.LAMBDA_PARAMETER:calculateStack.push(astNode);break;case NodeType.OPERATOR:{const parameterNode1=calculateStack.pop(),parameterNode2=calculateStack.pop();parameterNode2&¶meterNode2.setParent(astNode),parameterNode1&¶meterNode1.setParent(astNode),calculateStack.push(astNode);break}case NodeType.REFERENCE:calculateStack.push(astNode);break;case NodeType.ROOT:calculateStack.push(astNode);break;case NodeType.UNION:calculateStack.push(astNode);break;case NodeType.VALUE:calculateStack.push(astNode);break;case NodeType.PREFIX:calculateStack.push(astNode);break;case NodeType.SUFFIX:calculateStack.push(astNode);break}}const calculateStackCount=calculateStack.length;for(let i=0;i<calculateStackCount;i++)calculateStack[i].setParent(currentAstNode);return currentAstNode}_checkAstNode(item){let astNode=null;const astNodeFactoryListCount=this._astNodeFactoryList.length;for(let x=0;x<astNodeFactoryListCount&&(astNode=this._astNodeFactoryList[x].checkAndCreateNodeType(item),astNode==null);x++);return astNode==null?new ErrorFunctionNode:astNode}_initializeAstNode(){this._astNodeFactoryList=[this._astRootNodeFactory,this._functionNodeFactory,this._lambdaNodeFactory,this._lambdaParameterNodeFactory,this._operatorNodeFactory,this._prefixNodeFactory,this._referenceNodeFactory,this._suffixNodeFactory,this._unionNodeFactory,this._valueNodeFactory].sort(core.sortRules)}},__name(_a15,"AstTreeBuilder"),_a15);exports.AstTreeBuilder=__decorateClass$a([__decorateParam$a(0,IFormulaRuntimeService),__decorateParam$a(1,core.Inject(AstRootNodeFactory)),__decorateParam$a(2,core.Inject(exports.FunctionNodeFactory)),__decorateParam$a(3,core.Inject(exports.LambdaNodeFactory)),__decorateParam$a(4,core.Inject(LambdaParameterNodeFactory)),__decorateParam$a(5,core.Inject(exports.OperatorNodeFactory)),__decorateParam$a(6,core.Inject(exports.PrefixNodeFactory)),__decorateParam$a(7,core.Inject(exports.ReferenceNodeFactory)),__decorateParam$a(8,core.Inject(exports.SuffixNodeFactory)),__decorateParam$a(9,core.Inject(exports.UnionNodeFactory)),__decorateParam$a(10,core.Inject(ValueNodeFactory))],exports.AstTreeBuilder);const _DependencyManagerService=class _DependencyManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_otherFormulaData",{});__publicField(this,"_featureFormulaData",{});__publicField(this,"_formulaData",{});__publicField(this,"_allTreeMap",new Map);__publicField(this,"_dependencyRTreeCache",new core.RTree(!0));__publicField(this,"_dependencyTreeIdLast",0)}dispose(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={},this._dependencyRTreeCache.dispose(),this._restDependencyTreeId(),this._allTreeMap.clear()}getAllTree(){const trees=[];return this._allTreeMap.forEach(tree=>{tree.resetState(),trees.push(tree)}),trees}getTreeById(treeId){return this._allTreeMap.get(treeId)}buildDependencyTree(shouldBeBuildTrees,dependencyTrees=[]){const allTrees=this.getAllTree();return shouldBeBuildTrees.length===0?(this._buildReverseDependency(allTrees,dependencyTrees),allTrees):(this._buildDependencyTree(allTrees,shouldBeBuildTrees),this._buildReverseDependency(allTrees,shouldBeBuildTrees),allTrees)}searchDependency(search){return this._dependencyRTreeCache.bulkSearch(search)}_buildDependencyTree(allTrees,shouldBeBuildTrees){const shouldBeBuildTreeMap=new Map;for(let i=0;i<shouldBeBuildTrees.length;i++){const tree=shouldBeBuildTrees[i];shouldBeBuildTreeMap.set(tree.treeId,tree)}for(let i=0;i<allTrees.length;i++){const tree=allTrees[i],RTreeItem=tree.toRTreeItem(),searchResults=this._dependencyRTreeCache.search(RTreeItem);for(let j=0;j<searchResults.length;j++){const id=searchResults[j],shouldBeBuildTree=shouldBeBuildTreeMap.get(id);shouldBeBuildTree&&tree!==shouldBeBuildTree&&!shouldBeBuildTree.hasChildren(tree.treeId)&&shouldBeBuildTree.pushChildren(tree)}}shouldBeBuildTreeMap.clear()}_buildReverseDependency(allTrees,dependencyTrees){const allTreeMap=new Map;for(let i=0;i<allTrees.length;i++){const tree=allTrees[i];allTreeMap.set(tree.treeId,tree)}for(let i=0;i<dependencyTrees.length;i++){const tree=dependencyTrees[i],RTreeItem=tree.toRTreeItem(),searchResults=this._dependencyRTreeCache.search(RTreeItem);for(let j=0;j<searchResults.length;j++){const id=searchResults[j],allTree=allTreeMap.get(id);allTree&&tree!==allTree&&!allTree.hasChildren(tree.treeId)&&allTree.pushChildren(tree)}}allTreeMap.clear()}clearDependencyForTree(shouldBeClearTree){if(shouldBeClearTree==null)return;const parents=shouldBeClearTree.parents,children=shouldBeClearTree.children,allTreeMap=this._allTreeMap;for(const parentTreeId of parents){const parent=allTreeMap.get(parentTreeId);parent==null||parent.children.delete(shouldBeClearTree.treeId)}for(const childTreeId of children){const child=allTreeMap.get(childTreeId);child==null||child.parents.delete(shouldBeClearTree.treeId)}shouldBeClearTree.dispose()}reset(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={},this._dependencyRTreeCache.clear(),this._allTreeMap.clear(),this._restDependencyTreeId()}addOtherFormulaDependency(unitId,sheetId,formulaId,dependencyTree){this._otherFormulaData[unitId]||(this._otherFormulaData[unitId]={}),this._otherFormulaData[unitId][sheetId]||(this._otherFormulaData[unitId][sheetId]={}),this._otherFormulaData[unitId][sheetId][formulaId]=dependencyTree.treeId,this._allTreeMap.set(dependencyTree.treeId,dependencyTree)}removeOtherFormulaDependency(unitId,sheetId,formulaIds){this._otherFormulaData[unitId]&&this._otherFormulaData[unitId][sheetId]&&formulaIds.forEach(formulaId=>{const deleteTreeId=this._otherFormulaData[unitId][sheetId][formulaId];if(deleteTreeId==null)return;const deleteTree=this._allTreeMap.get(deleteTreeId);this._removeDependencyRTreeCache(deleteTree),this.clearDependencyForTree(deleteTree),delete this._otherFormulaData[unitId][sheetId][formulaId],this._removeAllTreeMap(deleteTreeId)})}getOtherFormulaDependency(unitId,sheetId,formulaId){var _a28,_b;let treeId=(_b=(_a28=this._otherFormulaData[unitId])==null?void 0:_a28[sheetId])==null?void 0:_b[formulaId];return treeId==null&&(treeId=-1),this._allTreeMap.get(treeId)}hasOtherFormulaDependency(unitId,sheetId,formulaId){return this.getOtherFormulaDependency(unitId,sheetId,formulaId)!=null}clearOtherFormulaDependency(unitId,sheetId){if(sheetId&&this._otherFormulaData[unitId]&&this._otherFormulaData[unitId][sheetId])this._removeDependencyRTreeCacheById(unitId,sheetId),Object.values(this._otherFormulaData[unitId][sheetId]).forEach(formulaTreeId=>{if(formulaTreeId==null)return;const formula=this._allTreeMap.get(formulaTreeId);this.clearDependencyForTree(formula),this._removeAllTreeMap(formulaTreeId)}),this._otherFormulaData[unitId][sheetId]={};else if(this._otherFormulaData[unitId]){const unitOtherData=this._otherFormulaData[unitId];Object.keys(unitOtherData).forEach(sheetId2=>{sheetId2!=null&&(this._removeDependencyRTreeCacheById(unitId,sheetId2),Object.values(unitOtherData[sheetId2]).forEach(formulaTreeId=>{if(formulaTreeId==null)return;const formula=this._allTreeMap.get(formulaTreeId);this.clearDependencyForTree(formula),this._removeAllTreeMap(formulaTreeId)}))}),this._otherFormulaData[unitId]=null}}addFeatureFormulaDependency(unitId,sheetId,featureId,dependencyTree){this._featureFormulaData[unitId]||(this._featureFormulaData[unitId]={}),this._featureFormulaData[unitId][sheetId]||(this._featureFormulaData[unitId][sheetId]={}),this._featureFormulaData[unitId][sheetId][featureId]=dependencyTree.treeId,this._allTreeMap.set(dependencyTree.treeId,dependencyTree)}removeFeatureFormulaDependency(unitId,sheetId,featureIds){this._featureFormulaData[unitId]&&this._featureFormulaData[unitId][sheetId]&&featureIds.forEach(featureId=>{const deleteTreeId=this._featureFormulaData[unitId][sheetId][featureId];if(deleteTreeId==null)return;const deleteTree=this._allTreeMap.get(deleteTreeId);this._removeDependencyRTreeCache(deleteTree),this.clearDependencyForTree(deleteTree),delete this._featureFormulaData[unitId][sheetId][featureId],this._removeAllTreeMap(deleteTreeId)})}clearFeatureFormulaDependency(unitId,sheetId){if(sheetId&&this._featureFormulaData[unitId]&&this._featureFormulaData[unitId][sheetId])this._removeDependencyRTreeCacheById(unitId,sheetId),Object.values(this._featureFormulaData[unitId][sheetId]).forEach(featureTreeId=>{if(featureTreeId==null)return;const feature=this._allTreeMap.get(featureTreeId);this._removeDependencyRTreeCache(feature),this.clearDependencyForTree(feature),this._removeAllTreeMap(featureTreeId)}),this._featureFormulaData[unitId][sheetId]={};else if(this._featureFormulaData[unitId]){const unitFeatureData=this._featureFormulaData[unitId];Object.keys(unitFeatureData).forEach(sheetId2=>{sheetId2!=null&&(this._removeDependencyRTreeCacheById(unitId,sheetId2),Object.values(unitFeatureData[sheetId2]).forEach(featureTreeId=>{if(featureTreeId==null)return;const feature=this._allTreeMap.get(featureTreeId);this.clearDependencyForTree(feature),this._removeAllTreeMap(featureTreeId)}))}),this._featureFormulaData[unitId]=null}}getFeatureFormulaDependency(unitId,sheetId,featureId){var _a28,_b;const treeId=(_b=(_a28=this._featureFormulaData[unitId])==null?void 0:_a28[sheetId])==null?void 0:_b[featureId];return treeId==null?null:this._allTreeMap.get(treeId)}addFormulaDependency(unitId,sheetId,row,column,dependencyTree){this._formulaData[unitId]||(this._formulaData[unitId]={}),this._formulaData[unitId][sheetId]||(this._formulaData[unitId][sheetId]=new core.ObjectMatrix),this._formulaData[unitId][sheetId].setValue(row,column,dependencyTree.treeId),this._allTreeMap.set(dependencyTree.treeId,dependencyTree)}removeFormulaDependency(unitId,sheetId,row,column){if(this._formulaData[unitId]&&this._formulaData[unitId][sheetId]){const deleteTreeId=this._formulaData[unitId][sheetId].getValue(row,column);if(deleteTreeId==null)return;const deleteTree=this._allTreeMap.get(deleteTreeId);this._removeDependencyRTreeCache(deleteTree),this.clearDependencyForTree(deleteTree),this._formulaData[unitId][sheetId].realDeleteValue(row,column),this._removeAllTreeMap(deleteTreeId)}}clearFormulaDependency(unitId,sheetId){if(sheetId&&this._formulaData[unitId]&&this._formulaData[unitId][sheetId])this._removeDependencyRTreeCacheById(unitId,sheetId),this._formulaData[unitId][sheetId].forValue((row,column,treeId)=>{if(treeId==null)return!0;const tree=this._allTreeMap.get(treeId);this.clearDependencyForTree(tree),this._removeAllTreeMap(treeId)}),this._formulaData[unitId][sheetId].reset();else if(this._formulaData[unitId]){const unitFormulaData=this._formulaData[unitId];Object.keys(unitFormulaData).forEach(sheetId2=>{sheetId2!=null&&(this._removeDependencyRTreeCacheById(unitId,sheetId2),unitFormulaData[sheetId2].forValue((row,column,treeId)=>{if(treeId==null)return!0;const tree=this._allTreeMap.get(treeId);this.clearDependencyForTree(tree),this._removeAllTreeMap(treeId)}))}),this._formulaData[unitId]=null}}clearDependencyAll(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={},this._dependencyRTreeCache.clear(),this._restDependencyTreeId()}getFormulaDependency(unitId,sheetId,row,column){var _a28,_b;const treeId=(_b=(_a28=this._formulaData[unitId])==null?void 0:_a28[sheetId])==null?void 0:_b.getValue(row,column);return treeId==null?null:this._allTreeMap.get(treeId)}addDependencyRTreeCache(tree){const searchRanges=[];for(let i=0;i<tree.rangeList.length;i++){const unitRangeWithNum=tree.rangeList[i],{unitId,sheetId,range}=unitRangeWithNum;searchRanges.push({unitId,sheetId,range,id:tree.treeId})}this._dependencyRTreeCache.bulkInsert(searchRanges)}_restDependencyTreeId(){this._dependencyTreeIdLast=0}getLastTreeId(){const id=this._dependencyTreeIdLast;return this._dependencyTreeIdLast++,id}_removeDependencyRTreeCacheById(unitId,sheetId){this._dependencyRTreeCache.removeById(unitId,sheetId)}_removeDependencyRTreeCache(tree){if(tree==null)return;const searchRanges=[];for(let i=0;i<tree.rangeList.length;i++){const unitRangeWithNum=tree.rangeList[i],{unitId,sheetId,range}=unitRangeWithNum;searchRanges.push({unitId,sheetId,range,id:tree.treeId})}this._dependencyRTreeCache.bulkRemove(searchRanges)}removeFormulaDependencyByDefinedName(unitId,definedName){this._formulaData[unitId]&&Object.values(this._formulaData[unitId]).forEach(sheet=>{sheet.forValue((row,column,treeId)=>{var _a28;const tree=this._allTreeMap.get(treeId);(_a28=tree==null?void 0:tree.nodeData)!=null&&_a28.node.hasDefinedName(definedName)&&(this._removeDependencyRTreeCache(tree),this.clearDependencyForTree(tree),sheet.realDeleteValue(row,column))})})}openKdTree(){this._dependencyRTreeCache.openKdTree()}closeKdTree(){this._dependencyRTreeCache.closeKdTree()}_removeAllTreeMap(treeId){treeId!=null&&this._allTreeMap.delete(treeId)}};__name(_DependencyManagerService,"DependencyManagerService");let DependencyManagerService=_DependencyManagerService;const IDependencyManagerService=core.createIdentifier("univer.formula.dependency-manager.service"),_FeatureCalculationManagerService=class _FeatureCalculationManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_referenceExecutorMap",new Map);__publicField(this,"_onChanged$",new rxjs.Subject);__publicField(this,"onChanged$",this._onChanged$.asObservable())}dispose(){this._referenceExecutorMap.clear()}remove(unitId,subUnitId,featureIds){featureIds.forEach(featureId=>{var _a28,_b;(_b=(_a28=this._referenceExecutorMap.get(unitId))==null?void 0:_a28.get(subUnitId))==null||_b.delete(featureId)}),this._onChanged$.next({unitId,subUnitId,featureIds})}get(unitId,subUnitId,featureId){var _a28,_b;return(_b=(_a28=this._referenceExecutorMap.get(unitId))==null?void 0:_a28.get(subUnitId))==null?void 0:_b.get(featureId)}has(unitId,subUnitId,featureId){var _a28,_b;return!!((_b=(_a28=this._referenceExecutorMap.get(unitId))==null?void 0:_a28.get(subUnitId))!=null&&_b.has(featureId))}register(unitId,subUnitId,featureId,referenceExecutor){let unitMap=this._referenceExecutorMap.get(unitId);unitMap||(unitMap=new Map,this._referenceExecutorMap.set(unitId,unitMap));let subUnitMap=unitMap.get(subUnitId);subUnitMap||(subUnitMap=new Map,unitMap.set(subUnitId,subUnitMap)),this._onChanged$.next({unitId,subUnitId,featureIds:[featureId]}),subUnitMap.set(featureId,referenceExecutor)}getReferenceExecutorMap(){return this._referenceExecutorMap}};__name(_FeatureCalculationManagerService,"FeatureCalculationManagerService");let FeatureCalculationManagerService=_FeatureCalculationManagerService;const IFeatureCalculationManagerService=core.createIdentifier("univer.formula.feature-calculation-manager.service"),_OtherFormulaManagerService=class _OtherFormulaManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_otherFormulaData",{})}dispose(){this._otherFormulaData={}}remove(searchParam){var _a28,_b,_c;const{unitId,subUnitId,formulaId}=searchParam;(_c=(_b=(_a28=this._otherFormulaData)==null?void 0:_a28[unitId])==null?void 0:_b[subUnitId])==null||delete _c[formulaId]}get(searchParam){var _a28,_b;const{unitId,subUnitId,formulaId}=searchParam;return(_b=(_a28=this._otherFormulaData[unitId])==null?void 0:_a28[subUnitId])==null?void 0:_b[formulaId]}has(searchParam){var _a28,_b;const{unitId,subUnitId,formulaId}=searchParam;return((_b=(_a28=this._otherFormulaData[unitId])==null?void 0:_a28[subUnitId])==null?void 0:_b[formulaId])!=null}register(insertParam){const{unitId,subUnitId,formulaId,item}=insertParam;this._otherFormulaData[unitId]||(this._otherFormulaData[unitId]={}),this._otherFormulaData[unitId][subUnitId]||(this._otherFormulaData[unitId][subUnitId]={}),this._otherFormulaData[unitId][subUnitId][formulaId]=item}batchRegister(formulaData){Object.keys(formulaData).forEach(unitId=>{const subUnits=formulaData[unitId];if(subUnits==null)return!0;Object.keys(subUnits).forEach(subUnitId=>{const subUnit=subUnits[subUnitId];if(subUnit==null)return!0;Object.keys(subUnit).forEach(formulaId=>{const item=subUnit[formulaId];if(item==null)return!0;this.register({unitId,subUnitId,formulaId,item})})})})}batchRemove(formulaData){Object.keys(formulaData).forEach(unitId=>{const subUnits=formulaData[unitId];if(subUnits==null)return!0;Object.keys(subUnits).forEach(subUnitId=>{const subUnit=subUnits[subUnitId];if(subUnit==null)return!0;Object.keys(subUnit).forEach(formulaId=>{this.remove({unitId,subUnitId,formulaId})})})})}getOtherFormulaData(){return this._otherFormulaData}};__name(_OtherFormulaManagerService,"OtherFormulaManagerService");let OtherFormulaManagerService=_OtherFormulaManagerService;const IOtherFormulaManagerService=core.createIdentifier("univer.formula.other-formula-manager.service"),_FormulaDependencyTree=class _FormulaDependencyTree{constructor(treeId){__publicField(this,"treeId",-1);__publicField(this,"nodeData");__publicField(this,"children",new Set);__publicField(this,"parents",new Set);__publicField(this,"formula","");__publicField(this,"row",-1);__publicField(this,"column",-1);__publicField(this,"rowCount",Number.NEGATIVE_INFINITY);__publicField(this,"columnCount",Number.NEGATIVE_INFINITY);__publicField(this,"subUnitId","");__publicField(this,"unitId","");__publicField(this,"rangeList",[]);__publicField(this,"formulaId");__publicField(this,"featureId");__publicField(this,"isCache",!1);__publicField(this,"getDirtyData");__publicField(this,"_state",0);this.treeId=treeId}toJson(){return{formula:this.formula,row:this.row,column:this.column,subUnitId:this.subUnitId,unitId:this.unitId,formulaId:this.formulaId,featureId:this.featureId}}dispose(){var _a28;this.children.clear(),this.rangeList=[],this.parents.clear(),(_a28=this.nodeData)==null||_a28.node.dispose(),this.nodeData=null}resetState(){this._state=0}setAdded(){this._state=1}isAdded(){return this._state===1}setSkip(){this._state=2}isSkip(){return this._state===2}inRangeData(range){const startRow=range.startRow,startColumn=range.startColumn,endRow=range.endRow,endColumn=range.endColumn;return!(this.row<startRow||this.row>endRow||this.column<startColumn||this.column>endColumn)}dependencySheetName(dirtyUnitSheetNameMap){var _a28;if(this.rangeList.length===0||dirtyUnitSheetNameMap==null)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],{unitId,sheetId}=unitRange;if(((_a28=dirtyUnitSheetNameMap[unitId])==null?void 0:_a28[sheetId])!=null)return!0}return!1}isExcludeRange(unitExcludedCell){var _a28;if(this.rangeList.length===0)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],{unitId,sheetId,range}=unitRange,excludedCell=(_a28=unitExcludedCell==null?void 0:unitExcludedCell[unitId])==null?void 0:_a28[sheetId];let{startRow:rangeStartRow,endRow:rangeEndRow,startColumn:rangeStartColumn,endColumn:rangeEndColumn}=range;Number.isNaN(rangeStartRow)&&(rangeStartRow=0),Number.isNaN(rangeStartColumn)&&(rangeStartColumn=0),Number.isNaN(rangeEndRow)&&(rangeEndRow=Number.POSITIVE_INFINITY),Number.isNaN(rangeEndColumn)&&(rangeEndColumn=Number.POSITIVE_INFINITY);let isInclude=!1;if(excludedCell==null||excludedCell.forValue((row,column)=>{if(row>=rangeStartRow&&row<=rangeEndRow&&column>=rangeStartColumn&&column<=rangeEndColumn)return isInclude=!0,!1}),isInclude)return!0}return!1}pushChildren(tree){this.children.add(tree.treeId),tree._pushParent(this)}pushRangeList(ranges){this.rangeList.push(...ranges)}hasChildren(treeId){return this.children.has(treeId)}toRTreeItem(){return{unitId:this.unitId,sheetId:this.subUnitId,range:{startRow:this.row,startColumn:this.column,endRow:this.row,endColumn:this.column},id:this.treeId}}dependency(dependenceTree){if(this.rangeList.length===0)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],unitId=unitRange.unitId,sheetId=unitRange.sheetId,range=unitRange.range;if(dependenceTree.unitId===unitId&&dependenceTree.subUnitId===sheetId&&dependenceTree.inRangeData(range))return!0}return!1}_pushParent(tree){this.parents.add(tree.treeId)}};__name(_FormulaDependencyTree,"FormulaDependencyTree");let FormulaDependencyTree=_FormulaDependencyTree;var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9");const FORMULA_CACHE_LRU_COUNT=1e5;function generateRandomDependencyTreeId(dependencyManagerService){return dependencyManagerService.getLastTreeId()||0}__name(generateRandomDependencyTreeId,"generateRandomDependencyTreeId");var _a16;exports.FormulaDependencyGenerator=(_a16=class extends core.Disposable{constructor(_currentConfigService,_runtimeService,_otherFormulaManagerService,_featureCalculationManagerService,_interpreter,_astTreeBuilder,_lexer,_dependencyManagerService){super();__publicField(this,"_formulaASTCache",new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT));__publicField(this,"_updateRangeFlattenCache",new Map);this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._otherFormulaManagerService=_otherFormulaManagerService,this._featureCalculationManagerService=_featureCalculationManagerService,this._interpreter=_interpreter,this._astTreeBuilder=_astTreeBuilder,this._lexer=_lexer,this._dependencyManagerService=_dependencyManagerService}dispose(){this._formulaASTCache.clear()}async generate(){this._updateRangeFlatten();const formulaData=this._currentConfigService.getFormulaData(),otherFormulaData=this._otherFormulaManagerService.getOtherFormulaData(),clearDependencyTreeCache=this._currentConfigService.getClearDependencyTreeCache();clearDependencyTreeCache!=null&&Object.keys(clearDependencyTreeCache).forEach(unitId=>{unitId!=null&&Object.keys(clearDependencyTreeCache[unitId]).forEach(subUnitId=>{subUnitId!=null&&(this._dependencyManagerService.clearOtherFormulaDependency(unitId,subUnitId),this._dependencyManagerService.clearFeatureFormulaDependency(unitId,subUnitId),this._dependencyManagerService.clearFormulaDependency(unitId,subUnitId))})});const unitData=this._currentConfigService.getUnitData(),treeList=await this._generateTreeList(formulaData,otherFormulaData,unitData),updateTreeList=this._getUpdateTreeListAndMakeDependency(treeList);let finalTreeList=this._calculateRunList(updateTreeList);return this._dependencyFeatureCalculation(finalTreeList)&&(finalTreeList.forEach(tree=>{tree.resetState()}),finalTreeList=this._calculateRunList(finalTreeList)),this._checkIsCycleDependency(finalTreeList)&&this._runtimeService.enableCycleDependency(),Promise.resolve(finalTreeList)}_isCyclicUtil(treeId,visited,recursionStack){const node=this._dependencyManagerService.getTreeById(treeId);if(node==null)return!1;if(!visited.has(node.treeId)){visited.add(node.treeId),recursionStack.add(node.treeId);for(const childTreeId of node.children)if(!visited.has(childTreeId)&&this._isCyclicUtil(childTreeId,visited,recursionStack)||recursionStack.has(childTreeId))return!0}return recursionStack.delete(node.treeId),!1}_checkIsCycleDependency(treeList){const visited=new Set,recursionStack=new Set;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(this._isCyclicUtil(tree.treeId,visited,recursionStack)===!0)return!0}return!1}async _generateTreeList(formulaData,otherFormulaData,unitData){const formulaDataKeys=Object.keys(formulaData),otherFormulaDataKeys=Object.keys(otherFormulaData),treeList=[],formulaRefCache=new Map;this._currentConfigService.isForceCalculate()&&(this._dependencyManagerService.reset(),this._formulaASTCache.clear()),this._registerFormulas(formulaDataKeys,formulaData,unitData,treeList,formulaRefCache),this._registerOtherFormulas(otherFormulaData,otherFormulaDataKeys,treeList,formulaRefCache),this._registerFeatureFormulas(treeList);for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];this._runtimeService.setCurrent(tree.row,tree.column,tree.rowCount,tree.columnCount,tree.subUnitId,tree.unitId);const{unitId,formula,nodeData}=tree;if(nodeData==null)continue;const{refOffsetX,refOffsetY}=nodeData;let applyCacheRange=!1;if(refOffsetX!==0||refOffsetY!==0){const refTreeNode=formulaRefCache.get(`${unitId}${formula}`);refTreeNode&&refTreeNode.rangeList.length>0&&(tree.pushRangeList(this._moveRangeList(refTreeNode,refOffsetX,refOffsetY)),applyCacheRange=!0)}if(!applyCacheRange){const rangeList=await this._getRangeListByNode(nodeData);tree.pushRangeList(rangeList)}tree.isCache||this._dependencyManagerService.addDependencyRTreeCache(tree)}return formulaRefCache.clear(),treeList}_moveRangeList(tree,refOffsetX,refOffsetY){const rangeList=tree.rangeList,newRangeList=[];for(let i=0,len=rangeList.length;i<len;i++){const unitRange=rangeList[i],newRange={unitId:tree.unitId,sheetId:tree.subUnitId,range:core.moveRangeByOffset(unitRange.range,refOffsetX,refOffsetY)};newRangeList.push(newRange)}return newRangeList}_registerFeatureFormulas(treeList){this._featureCalculationManagerService.getReferenceExecutorMap().forEach((subUnitMap,_)=>{subUnitMap.forEach((featureMap2,_2)=>{featureMap2.forEach((params,featureId)=>{const treeCache=this._dependencyManagerService.getFeatureFormulaDependency(params.unitId,params.subUnitId,featureId);if(treeCache){treeCache.isCache=!0;return}treeList.push(this._getFeatureFormulaTree(featureId,params))})})})}_getFeatureFormulaTree(featureId,params){const{unitId,subUnitId,dependencyRanges,getDirtyData}=params,FDtree=new FormulaDependencyTree(generateRandomDependencyTreeId(this._dependencyManagerService));return FDtree.unitId=unitId,FDtree.subUnitId=subUnitId,FDtree.getDirtyData=getDirtyData,FDtree.featureId=featureId,FDtree.rangeList=dependencyRanges,this._dependencyManagerService.addFeatureFormulaDependency(unitId,subUnitId,featureId,FDtree),FDtree}_registerOtherFormulas(otherFormulaData,otherFormulaDataKeys,treeList,formulaRefCache){for(const unitId of otherFormulaDataKeys){const subComponentData=otherFormulaData[unitId];if(subComponentData==null)continue;const subComponentKeys=Object.keys(subComponentData);for(const subUnitId of subComponentKeys){const subFormulaData=subComponentData[subUnitId];if(subFormulaData==null)continue;const subFormulaDataKeys=Object.keys(subFormulaData);for(const subFormulaDataId of subFormulaDataKeys){const treeCache=this._dependencyManagerService.getOtherFormulaDependency(unitId,subUnitId,subFormulaDataId),formulaDataItem=subFormulaData[subFormulaDataId],{f:formulaString,x=0,y=0}=formulaDataItem;if(treeCache){treeCache.isCache=!0,x===0&&y===0&&formulaRefCache.set(`${unitId}${formulaString}`,treeCache);continue}const nodeData=this._generateAstNode(unitId,formulaString,x,y),FDtree=new FormulaDependencyTree(generateRandomDependencyTreeId(this._dependencyManagerService));FDtree.nodeData=nodeData,FDtree.formula=formulaString,FDtree.unitId=unitId,FDtree.subUnitId=subUnitId,FDtree.formulaId=subFormulaDataId,x===0&&y===0&&formulaRefCache.set(`${unitId}${formulaString}`,FDtree),this._dependencyManagerService.addOtherFormulaDependency(unitId,subUnitId,subFormulaDataId,FDtree),treeList.push(FDtree)}}}}_registerFormulas(formulaDataKeys,formulaData,unitData,treeList,formulaRefCache){for(const unitId of formulaDataKeys){const sheetData=formulaData[unitId];if(sheetData==null)continue;const sheetDataKeys=Object.keys(sheetData);for(const sheetId of sheetDataKeys)new core.ObjectMatrix(sheetData[sheetId]||{}).forValue((row,column,formulaDataItem)=>{if(formulaDataItem==null)return!0;const{f:formulaString,x=0,y=0}=formulaDataItem,treeCache=this._dependencyManagerService.getFormulaDependency(unitId,sheetId,row,column);if(treeCache)return treeCache.isCache=!0,x===0&&y===0&&formulaRefCache.set(`${unitId}${formulaString}`,treeCache),!0;const nodeData=this._generateAstNode(unitId,formulaString,x,y),FDtree=new FormulaDependencyTree(generateRandomDependencyTreeId(this._dependencyManagerService)),sheetItem=unitData[unitId][sheetId];FDtree.nodeData=nodeData,FDtree.formula=formulaString,FDtree.unitId=unitId,FDtree.subUnitId=sheetId,FDtree.row=row,FDtree.column=column,FDtree.rowCount=sheetItem.rowCount,FDtree.columnCount=sheetItem.columnCount,x===0&&y===0&&formulaRefCache.set(`${unitId}${formulaString}`,FDtree),this._dependencyManagerService.addFormulaDependency(unitId,sheetId,row,column,FDtree),treeList.push(FDtree)})}}_updateRangeFlatten(){const forceCalculate=this._currentConfigService.isForceCalculate(),dirtyRanges=this._currentConfigService.getDirtyRanges();if(!forceCalculate){this._updateRangeFlattenCache.clear();for(let i=0;i<dirtyRanges.length;i++){const gridRange=dirtyRanges[i],range=gridRange.range,sheetId=gridRange.sheetId,unitId=gridRange.unitId;this._addFlattenCache(unitId,sheetId,range)}}}_generateAstNode(unitId,formulaString,refOffsetX=0,refOffsetY=0){let astNode=this._formulaASTCache.get(`${unitId}${formulaString}`);if(astNode&&!this._isDirtyDefinedForNode(astNode))return generateExecuteAstNodeData(astNode,refOffsetX,refOffsetY);const lexerNode=this._lexer.treeBuilder(formulaString);if(ERROR_TYPE_SET.has(lexerNode))return{node:ErrorNode.create(lexerNode),refOffsetX,refOffsetY};if(astNode=this._astTreeBuilder.parse(lexerNode),astNode==null)throw new Error("astNode is null");return this._formulaASTCache.set(`${unitId}${formulaString}`,astNode),generateExecuteAstNodeData(astNode,refOffsetX,refOffsetY)}_addFlattenCache(unitId,sheetId,range){let unitMatrix=this._updateRangeFlattenCache.get(unitId);unitMatrix==null&&(unitMatrix=new Map,this._updateRangeFlattenCache.set(unitId,unitMatrix));let ranges=unitMatrix.get(sheetId);ranges==null&&(ranges=[],unitMatrix.set(sheetId,ranges)),ranges.push(range)}_isPreCalculateNode(node){return node.nodeType===NodeType.UNION||node.nodeType===NodeType.PREFIX&&node.getToken()===prefixToken.AT||node.nodeType===NodeType.SUFFIX&&node.getToken()===suffixToken.POUND}_nodeTraversalRef(node,result){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(this._isPreCalculateNode(item)){result.push(item);continue}else item.nodeType===NodeType.REFERENCE&&result.push(item);this._nodeTraversalRef(item,result)}}_nodeTraversalReferenceFunction(node,result){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.nodeType===NodeType.FUNCTION&&item.isAddress()){result.push(item);continue}this._nodeTraversalReferenceFunction(item,result)}}async _executeNode(node,refOffsetX=0,refOffsetY=0){let value;const nodeData={node,refOffsetX,refOffsetY};return this._interpreter.checkAsyncNode(node)?value=await this._interpreter.executeAsync(nodeData):value=this._interpreter.execute(nodeData),value}async _getRangeListByNode(nodeData){const preCalculateNodeList=[],referenceFunctionList=[],refOffsetX=nodeData.refOffsetX,refOffsetY=nodeData.refOffsetY;this._nodeTraversalRef(nodeData.node,preCalculateNodeList),this._nodeTraversalReferenceFunction(nodeData.node,referenceFunctionList);const rangeList=[];for(let i=0,len=preCalculateNodeList.length;i<len;i++){const node=preCalculateNodeList[i],gridRange=(await this._executeNode(node,refOffsetX,refOffsetY)).toUnitRange();rangeList.push(gridRange)}for(let i=0,len=referenceFunctionList.length;i<len;i++){const node=referenceFunctionList[i],gridRange=(await this._executeNode(node,refOffsetX,refOffsetY)).toUnitRange();rangeList.push(gridRange)}return rangeList}_isDirtyDefinedForNode(node){const definedNameMap=this._currentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._currentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++){const name=names[i];if(node.hasDefinedName(name))return!0}}return!1}_getUpdateTreeListAndMakeDependency(treeList){const newTreeList=[],existTree=new Set,forceCalculate=this._currentConfigService.isForceCalculate();this._dependencyManagerService.openKdTree();const allTree=this._dependencyManagerService.buildDependencyTree(treeList),dirtyRanges=this._currentConfigService.getDirtyRanges(),treeIds=this._dependencyManagerService.searchDependency(dirtyRanges);for(let i=0,len=allTree.length;i<len;i++){const tree=allTree[i];(forceCalculate||tree.dependencySheetName(this._currentConfigService.getDirtyNameMap())||treeIds.has(tree.treeId)&&!tree.isExcludeRange(this._currentConfigService.getExcludedRange())||this._includeTree(tree))&&!existTree.has(tree)&&(newTreeList.push(tree),existTree.add(tree))}return this._dependencyManagerService.closeKdTree(),newTreeList}_dependencyFeatureCalculation(newTreeList){const featureMap=this._featureCalculationManagerService.getReferenceExecutorMap();if(featureMap.size===0)return;this._clearFeatureCalculationNode(newTreeList);let hasFeatureCalculation=!1;return featureMap.forEach((subUnitMap,_)=>{subUnitMap.forEach((featureMap2,_2)=>{featureMap2.forEach((params,featureId)=>{const{unitId,subUnitId,getDirtyData}=params,allDependency=getDirtyData(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData()),dirtyRanges=this._convertDirtyRangesToUnitRange(allDependency.dirtyRanges),intersectTrees=this._intersectFeatureCalculation(dirtyRanges,newTreeList,{unitId,subUnitId,featureId});if(intersectTrees.length>0){let featureTree=this._getExistTreeList({unitId,subUnitId,featureId},newTreeList);featureTree==null&&(featureTree=this._getFeatureFormulaTree(featureId,params),newTreeList.push(featureTree)),featureTree.parents=new Set,intersectTrees.forEach(tree=>{tree.hasChildren(featureTree.treeId)||tree.pushChildren(featureTree)}),hasFeatureCalculation=!0}})})}),hasFeatureCalculation}_clearFeatureCalculationNode(newTreeList){const featureMap=this._featureCalculationManagerService.getReferenceExecutorMap();newTreeList.forEach(tree=>{var _a28,_b,_c,_d;const newChildren=new Set;for(const childTreeId of tree.children){const child=this._dependencyManagerService.getTreeById(childTreeId);child&&(child.featureId&&(_b=(_a28=featureMap.get(tree.unitId))==null?void 0:_a28.get(tree.subUnitId))!=null&&_b.has(child.featureId)||newChildren.add(childTreeId))}tree.children=newChildren;const newParents=new Set;for(const parentTreeId of tree.parents){const parent=this._dependencyManagerService.getTreeById(parentTreeId);parent&&(parent.featureId&&(_d=(_c=featureMap.get(tree.unitId))==null?void 0:_c.get(tree.subUnitId))!=null&&_d.has(parent.featureId)||newParents.add(parentTreeId))}tree.parents=newParents})}_getExistTreeList(param,treeList){const{unitId,subUnitId,featureId}=param;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(tree.unitId===unitId&&tree.subUnitId===subUnitId&&tree.featureId===featureId)return tree}}_convertDirtyRangesToUnitRange(dirtyRanges){const unitRange=[];for(const unitId in dirtyRanges){const unitMap=dirtyRanges[unitId];for(const subUnitId in unitMap){const ranges=unitMap[subUnitId];for(const range of ranges)unitRange.push({unitId,sheetId:subUnitId,range})}}return unitRange}_intersectFeatureCalculation(dirtyRanges,newTreeList,param){const dependencyTree=[],treeIds=this._dependencyManagerService.searchDependency(dirtyRanges);for(let i=0,len=newTreeList.length;i<len;i++){const tree=newTreeList[i];if(tree.unitId===param.unitId&&tree.subUnitId===param.subUnitId&&tree.featureId===param.featureId)continue;treeIds.has(tree.treeId)&&dependencyTree.push(tree)}return dependencyTree}_includeTreeFeature(tree){var _a28,_b;const unitId=tree.unitId,subUnitId=tree.subUnitId,featureId=tree.featureId;if(featureId!=null){const featureMap=this._currentConfigService.getDirtyUnitFeatureMap();if(((_b=(_a28=featureMap==null?void 0:featureMap[unitId])==null?void 0:_a28[subUnitId])==null?void 0:_b[featureId])!=null)return!0}return!1}_includeOtherFormula(tree){var _a28,_b;const unitId=tree.unitId,subUnitId=tree.subUnitId,formulaId=tree.formulaId;if(formulaId!=null){const otherFormulaMap=this._currentConfigService.getDirtyUnitOtherFormulaMap();if(((_b=(_a28=otherFormulaMap==null?void 0:otherFormulaMap[unitId])==null?void 0:_a28[subUnitId])==null?void 0:_b[formulaId])!=null)return!0}return!1}_includeDefinedName(tree){var _a28;const node=(_a28=tree.nodeData)==null?void 0:_a28.node;return!!(node!=null&&this._isDirtyDefinedForNode(node))}_detectForcedRecalculationNode(tree){var _a28;const node=(_a28=tree.nodeData)==null?void 0:_a28.node;return node==null?!1:this._detectForcedRecalculationNodeRecursion(node)}_detectForcedRecalculationNodeRecursion(node){if(node.isForcedCalculateFunction())return!0;const children=node.getChildren();for(let i=0,len=children.length;i<len;i++){const child=children[i];if(this._detectForcedRecalculationNodeRecursion(child))return!0}return!1}_includeTree(tree){var _a28,_b,_c;const unitId=tree.unitId,subUnitId=tree.subUnitId;if(this._detectForcedRecalculationNode(tree)===!0||this._includeTreeFeature(tree)===!0||this._includeOtherFormula(tree)===!0||this._includeDefinedName(tree)===!0)return!0;const excludedCell=(_b=(_a28=this._currentConfigService.getExcludedRange())==null?void 0:_a28[unitId])==null?void 0:_b[subUnitId];let isExclude=!1;if(excludedCell==null||excludedCell.forValue((row,column)=>{if(tree.row===row&&tree.column===column)return isExclude=!0,!1}),isExclude)return!1;if(((_c=this._currentConfigService.getDirtyNameMap()[unitId])==null?void 0:_c[subUnitId])!=null)return!0;if(!this._updateRangeFlattenCache.has(unitId))return!1;const sheetRangeMap=this._updateRangeFlattenCache.get(unitId);if(!sheetRangeMap.has(subUnitId))return!1;const ranges=sheetRangeMap.get(subUnitId);for(const range of ranges)if(tree.inRangeData(range))return!0;return!1}_calculateRunList(treeList){const stack=treeList,formulaRunList=[],cacheStack=[];for(;stack.length>0;){const tree=stack.pop();if(!(tree===void 0||tree.isSkip())){if(tree.isAdded()){formulaRunList.push(tree),tree.setSkip();continue}cacheStack.length=0;for(const parentTreeId of tree.parents){const parentTree=this._dependencyManagerService.getTreeById(parentTreeId);if(!parentTree)throw new Error("ParentDependencyTree object is null");parentTree.isAdded()||tree.isSkip()||cacheStack.push(parentTree)}cacheStack.length===0?(formulaRunList.push(tree),tree.setSkip()):(tree.setAdded(),stack.push(tree,...cacheStack))}}return formulaRunList.reverse()}},__name(_a16,"FormulaDependencyGenerator"),_a16);exports.FormulaDependencyGenerator=__decorateClass$9([__decorateParam$9(0,IFormulaCurrentConfigService),__decorateParam$9(1,IFormulaRuntimeService),__decorateParam$9(2,IOtherFormulaManagerService),__decorateParam$9(3,IFeatureCalculationManagerService),__decorateParam$9(4,core.Inject(exports.Interpreter)),__decorateParam$9(5,core.Inject(exports.AstTreeBuilder)),__decorateParam$9(6,core.Inject(exports.Lexer)),__decorateParam$9(7,IDependencyManagerService)],exports.FormulaDependencyGenerator);var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8");const DEFAULT_CYCLE_REFERENCE_COUNT=1,DEFAULT_INTERVAL_COUNT=500;var _a17;exports.CalculateFormulaService=(_a17=class extends core.Disposable{constructor(_configService,_lexer,_currentConfigService,_runtimeService,_formulaDependencyGenerator,_interpreter,_astTreeBuilder){super();__publicField(this,"_executionInProgressListener$",new rxjs.Subject);__publicField(this,"executionInProgressListener$",this._executionInProgressListener$.asObservable());__publicField(this,"_executionCompleteListener$",new rxjs.Subject);__publicField(this,"executionCompleteListener$",this._executionCompleteListener$.asObservable());this._configService=_configService,this._lexer=_lexer,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._formulaDependencyGenerator=_formulaDependencyGenerator,this._interpreter=_interpreter,this._astTreeBuilder=_astTreeBuilder}stopFormulaExecution(){this._runtimeService.stopExecution()}setRuntimeFeatureCellData(featureId,featureData){this._runtimeService.setRuntimeFeatureCellData(featureId,featureData)}setRuntimeFeatureRange(featureId,featureRange){this._runtimeService.setRuntimeFeatureRange(featureId,featureRange)}async execute(formulaDatasetConfig){this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._currentConfigService.load(formulaDatasetConfig),this._runtimeService.reset();const cycleReferenceCount=this._configService.getConfig("CYCLE_REFERENCE_COUNT")||DEFAULT_CYCLE_REFERENCE_COUNT;for(let i=0;i<cycleReferenceCount&&(this._runtimeService.setFormulaCycleIndex(i),await this._execute(),FORMULA_REF_TO_ARRAY_CACHE.clear(),!!this._runtimeService.isCycleDependency());i++);this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CALCULATION_COMPLETED),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()),CELL_INVERTED_INDEX_CACHE.clear()}async _execute(){const executeState=await this._apply();if(executeState==null)return;const{arrayFormulaRange,runtimeFeatureRange}=executeState,{dirtyRanges,excludedCell}=this._getArrayFormulaDirtyRangeAndExcludedRange(arrayFormulaRange,runtimeFeatureRange);return dirtyRanges==null||dirtyRanges.length===0||(this._currentConfigService.loadDirtyRangesAndExcludedCell(dirtyRanges,excludedCell),await this._apply(!0)),!0}_getArrayFormulaDirtyRangeAndExcludedRange(arrayFormulaRange,runtimeFeatureRange){const dirtyRanges=[],excludedCell={};return Object.keys(arrayFormulaRange).forEach(unitId=>{const sheetArrayFormulaRange=arrayFormulaRange[unitId];if(sheetArrayFormulaRange==null)return!0;Object.keys(sheetArrayFormulaRange).forEach(sheetId=>{const cellValue=new core.ObjectMatrix(sheetArrayFormulaRange[sheetId]);if(cellValue==null)return!0;const newCellData=new core.ObjectMatrix;cellValue.forValue((row,column,range)=>{newCellData.setValue(row,column,!0),dirtyRanges.push({unitId,sheetId,range})}),excludedCell[unitId]==null&&(excludedCell[unitId]={}),excludedCell[unitId][sheetId]=newCellData})}),Object.keys(runtimeFeatureRange).forEach(featureId=>{const arrayRange=runtimeFeatureRange[featureId];Object.keys(arrayRange).forEach(unitId=>{const sheetArrayFormulaRange=arrayRange[unitId];if(sheetArrayFormulaRange==null)return!0;Object.keys(sheetArrayFormulaRange).forEach(sheetId=>{const ranges=sheetArrayFormulaRange[sheetId];if(ranges==null)return!0;for(const range of ranges)dirtyRanges.push({unitId,sheetId,range})})})}),{dirtyRanges,excludedCell}}async _apply(isArrayFormulaState=!1){isArrayFormulaState?this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_DEPENDENCY_ARRAY_FORMULA):this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_DEPENDENCY),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());const treeList=await this._formulaDependencyGenerator.generate(),interpreter=this._interpreter;isArrayFormulaState?(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_CALCULATION_ARRAY_FORMULA),this._runtimeService.setTotalArrayFormulasToCalculate(treeList.length)):(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_CALCULATION),this._runtimeService.setTotalFormulasToCalculate(treeList.length)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());let pendingTasks=[];const config2=this._configService.getConfig(PLUGIN_CONFIG_KEY),intervalCount=(config2==null?void 0:config2.intervalCount)||DEFAULT_INTERVAL_COUNT;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i],nodeData=tree.nodeData,getDirtyData=tree.getDirtyData;if(i%intervalCount===0&&(await new Promise(resolve=>{const calCancelTask=core.requestImmediateMacroTask(resolve);pendingTasks.push(calCancelTask)}),isArrayFormulaState?(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CURRENTLY_CALCULATING_ARRAY_FORMULA),this._runtimeService.setCompletedArrayFormulasCount(i+1)):(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CURRENTLY_CALCULATING),this._runtimeService.setCompletedFormulasCount(i+1)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._runtimeService.isStopExecution()||nodeData==null&&getDirtyData==null)){this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.IDLE),this._runtimeService.markedAsStopFunctionsExecuted(),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData());return}this._runtimeService.setCurrent(tree.row,tree.column,tree.rowCount,tree.columnCount,tree.subUnitId,tree.unitId);let value;if(getDirtyData!=null&&tree.featureId!=null){const{runtimeCellData,dirtyRanges}=getDirtyData(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData());this._runtimeService.setRuntimeFeatureCellData(tree.featureId,runtimeCellData),this._runtimeService.setRuntimeFeatureRange(tree.featureId,dirtyRanges)}else nodeData!=null&&(interpreter.checkAsyncNode(nodeData.node)?value=await interpreter.executeAsync(nodeData):value=interpreter.execute(nodeData),tree.formulaId!=null?this._runtimeService.setRuntimeOtherData(tree.formulaId,value):this._runtimeService.setRuntimeData(value))}return pendingTasks.forEach(cancel=>cancel()),pendingTasks=[],treeList.length>0?this._runtimeService.markedAsSuccessfullyExecuted():isArrayFormulaState||this._runtimeService.markedAsNoFunctionsExecuted(),this._runtimeService.clearReferenceAndNumberformatCache(),this._runtimeService.getAllRuntimeData()}calculate(formulaString,transformSuffix=!0){const lexerNode=this._lexer.treeBuilder(formulaString,transformSuffix);if(Object.values(ErrorType$1).includes(lexerNode))return ErrorNode.create(lexerNode);const astNode=this._astTreeBuilder.parse(lexerNode);astNode==null||astNode.serialize()}},__name(_a17,"CalculateFormulaService"),_a17);exports.CalculateFormulaService=__decorateClass$8([__decorateParam$8(0,core.IConfigService),__decorateParam$8(1,core.Inject(exports.Lexer)),__decorateParam$8(2,IFormulaCurrentConfigService),__decorateParam$8(3,IFormulaRuntimeService),__decorateParam$8(4,core.Inject(exports.FormulaDependencyGenerator)),__decorateParam$8(5,core.Inject(exports.Interpreter)),__decorateParam$8(6,core.Inject(exports.AstTreeBuilder))],exports.CalculateFormulaService);var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$7(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$7(target,key,result),result},"__decorateClass$7"),__decorateParam$7=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$7"),_a18;exports.CalculateController=(_a18=class extends core.Disposable{constructor(_commandService,_calculateFormulaService,_formulaDataModel){super(),this._commandService=_commandService,this._calculateFormulaService=_calculateFormulaService,this._formulaDataModel=_formulaDataModel,this._initialize()}_initialize(){this._commandExecutedListener(),this._initialExecuteFormulaListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetFormulaCalculationStopMutation.id)this._calculateFormulaService.stopFormulaExecution();else if(command.id===SetFormulaDataMutation.id){const formulaData=command.params.formulaData;this._formulaDataModel.mergeFormulaData(formulaData)}else if(command.id===SetFormulaCalculationStartMutation.id){const params=command.params;this._calculate(params)}else if(command.id===SetArrayFormulaDataMutation.id){const params=command.params;if(params==null)return;const{arrayFormulaRange,arrayFormulaCellData}=params;this._formulaDataModel.setArrayFormulaRange(arrayFormulaRange),this._formulaDataModel.setArrayFormulaCellData(arrayFormulaCellData)}}))}async _calculate(formulaDirtyData){const{forceCalculation:forceCalculate=!1,dirtyRanges=[],dirtyNameMap={},dirtyDefinedNameMap={},dirtyUnitFeatureMap={},dirtyUnitOtherFormulaMap={},clearDependencyTreeCache={}}=formulaDirtyData;if(dirtyRanges.length===0&&Object.keys(dirtyNameMap).length===0&&Object.keys(dirtyDefinedNameMap).length===0&&Object.keys(dirtyUnitFeatureMap).length===0&&Object.keys(dirtyUnitOtherFormulaMap).length===0&&forceCalculate===!1)return;const formulaData=this._formulaDataModel.getFormulaData(),arrayFormulaCellData=this._formulaDataModel.getArrayFormulaCellData(),arrayFormulaRange=this._formulaDataModel.getArrayFormulaRange();this._calculateFormulaService.execute({formulaData,arrayFormulaCellData,arrayFormulaRange,forceCalculate,dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap,clearDependencyTreeCache})}_initialExecuteFormulaListener(){this._calculateFormulaService.executionCompleteListener$.subscribe(data=>{const functionsExecutedState=data.functionsExecutedState;switch(functionsExecutedState){case FormulaExecutedStateType.NOT_EXECUTED:break;case FormulaExecutedStateType.STOP_EXECUTION:break;case FormulaExecutedStateType.SUCCESS:this._applyResult(data);break;case FormulaExecutedStateType.INITIAL:break}this._commandService.executeCommand(SetFormulaCalculationNotificationMutation.id,{functionsExecutedState},{onlyLocal:!0})}),this._calculateFormulaService.executionInProgressListener$.subscribe(data=>{this._commandService.executeCommand(SetFormulaCalculationNotificationMutation.id,{stageInfo:data},{onlyLocal:!0})})}async _applyResult(data){const{unitData,unitOtherData,arrayFormulaRange,arrayFormulaCellData,clearArrayFormulaCellData}=data;if(!unitData){console.error("No sheetData from Formula Engine!");return}arrayFormulaRange&&(this._formulaDataModel.clearPreviousArrayFormulaCellData(clearArrayFormulaCellData),this._formulaDataModel.mergeArrayFormulaCellData(arrayFormulaCellData),this._formulaDataModel.mergeArrayFormulaRange(arrayFormulaRange),this._commandService.executeCommand(SetArrayFormulaDataMutation.id,{arrayFormulaRange:this._formulaDataModel.getArrayFormulaRange(),arrayFormulaCellData:this._formulaDataModel.getArrayFormulaCellData()},{onlyLocal:!0})),this._commandService.executeCommand(SetFormulaCalculationResultMutation.id,{unitData:convertRuntimeToUnitData(unitData),unitOtherData},{onlyLocal:!0})}},__name(_a18,"CalculateController"),_a18);exports.CalculateController=__decorateClass$7([__decorateParam$7(0,core.ICommandService),__decorateParam$7(1,core.Inject(exports.CalculateFormulaService)),__decorateParam$7(2,core.Inject(exports.FormulaDataModel))],exports.CalculateController);var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6"),_a19;exports.SetDefinedNameController=(_a19=class extends core.Disposable{constructor(_commandService,_definedNamesService){super(),this._commandService=_commandService,this._definedNamesService=_definedNamesService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetDefinedNameMutation.id){const params=command.params;if(params==null)return;const{id,unitId,name,formulaOrRefString,comment,hidden,localSheetId}=params;this._definedNamesService.registerDefinedName(unitId,{id,name:name.trim(),formulaOrRefString:formulaOrRefString.trim(),comment:comment==null?void 0:comment.trim(),hidden,localSheetId})}else if(command.id===RemoveDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,id}=params;this._definedNamesService.removeDefinedName(unitId,id)}}))}},__name(_a19,"SetDefinedNameController"),_a19);exports.SetDefinedNameController=__decorateClass$6([__decorateParam$6(0,core.ICommandService),__decorateParam$6(1,IDefinedNamesService)],exports.SetDefinedNameController);const $relativeRegex=/[\[\]]/g;function handleR1C1(rowOrColumnString,current){if($relativeRegex.test(rowOrColumnString)){const index=Number(rowOrColumnString.replace($relativeRegex,""));return current+index}return Number(rowOrColumnString)-1}__name(handleR1C1,"handleR1C1");function singleReference(refBody,currentRow=0,currentColumn=0){refBody=refBody.toLocaleUpperCase();const refBodyArray=refBody.split(/[RC]/),rowString=refBodyArray[1],columnString=refBodyArray[2],row=handleR1C1(rowString,currentRow),column=handleR1C1(columnString,currentColumn);return{row,column,absoluteRefType:core.AbsoluteRefType.NONE}}__name(singleReference,"singleReference");function deserializeRangeForR1C1(refString,currentRow=0,currentColumn=0){const{refBody,sheetName,unitId}=handleRefStringInfo(refString),colonIndex=refBody.indexOf(":");if(colonIndex===-1){const grid=singleReference(refBody,currentRow,currentColumn),row=grid.row,column=grid.column,absoluteRefType=grid.absoluteRefType;return{unitId,sheetName,range:{startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absoluteRefType,endAbsoluteRefType:absoluteRefType}}}const refStartString=refBody.substring(0,colonIndex),refEndString=refBody.substring(colonIndex+1),startGrid=singleReference(refStartString,currentRow,currentColumn),endGrid=singleReference(refEndString,currentRow,currentColumn),startRow=startGrid.row,startColumn=startGrid.column,endRow=endGrid.row,endColumn=endGrid.column;return{unitId,sheetName,range:{startRow,startColumn,endRow,endColumn,startAbsoluteRefType:startGrid.absoluteRefType,endAbsoluteRefType:endGrid.absoluteRefType}}}__name(deserializeRangeForR1C1,"deserializeRangeForR1C1");function serializeRangeToR1C1(range){const startRowRef=getR1C1Ref(range.startRow,range.startAbsoluteRefType,!0),startColumnRef=getR1C1Ref(range.startColumn,range.startAbsoluteRefType,!1),endRowRef=getR1C1Ref(range.endRow,range.endAbsoluteRefType,!0),endColumnRef=getR1C1Ref(range.endColumn,range.endAbsoluteRefType,!1);return startRowRef===endRowRef&&startColumnRef===endColumnRef?`R${startRowRef}C${startColumnRef}`:`R${startRowRef}C${startColumnRef}:R${endRowRef}C${endColumnRef}`}__name(serializeRangeToR1C1,"serializeRangeToR1C1");function getR1C1Ref(index,absoluteRefType=core.AbsoluteRefType.ALL,isRow){switch(index+=1,absoluteRefType){case core.AbsoluteRefType.ALL:return`${index}`;case core.AbsoluteRefType.ROW:return isRow?`${index}`:`[${index}]`;case core.AbsoluteRefType.COLUMN:return isRow?`[${index}]`:`${index}`;case core.AbsoluteRefType.NONE:return`[${index}]`}}__name(getR1C1Ref,"getR1C1Ref");const functionArray=[];var FUNCTION_NAMES_ARRAY=(FUNCTION_NAMES_ARRAY2=>FUNCTION_NAMES_ARRAY2)(FUNCTION_NAMES_ARRAY||{});const _BaseFunction=class _BaseFunction{constructor(_name){__publicField(this,"_unitId");__publicField(this,"_subUnitId");__publicField(this,"_row",-1);__publicField(this,"_column",-1);__publicField(this,"_definedNames");__publicField(this,"_locale");__publicField(this,"_sheetOrder");__publicField(this,"_sheetNameMap");__publicField(this,"needsExpandParams",!1);__publicField(this,"needsReferenceObject",!1);__publicField(this,"needsLocale",!1);__publicField(this,"needsSheetsInfo",!1);__publicField(this,"minParams",-1);__publicField(this,"maxParams",-1);this._name=_name}get name(){return this._name}get unitId(){return this._unitId}get subUnitId(){return this._subUnitId}get row(){return this._row}get column(){return this._column}dispose(){}getDefinedName(name){var _a28;const nameMap=this._definedNames;return nameMap==null?null:(_a28=Array.from(Object.values(nameMap)).filter(value=>value.name===name))==null?void 0:_a28[0]}setDefinedNames(definedNames){this._definedNames=definedNames}getLocale(){return this._locale}setLocale(locale){this._locale=locale}getSheetsInfo(){return{sheetOrder:this._sheetOrder,sheetNameMap:this._sheetNameMap}}setSheetsInfo({sheetOrder,sheetNameMap}){this._sheetOrder=sheetOrder,this._sheetNameMap=sheetNameMap}isAsync(){return!1}isAddress(){return!1}isCustom(){return!1}setRefInfo(unitId,subUnitId,row,column){this._unitId=unitId,this._subUnitId=subUnitId,this._row=row,this._column=column}calculateCustom(...arg){return null}calculate(...arg){return ErrorValueObject.create(ErrorType$1.VALUE)}checkArrayType(variant){return variant.isReferenceObject()||variant.isValueObject()&&variant.isArray()}getIndexNumValue(indexNum,defaultValue=1){let _indexNum=indexNum;if(_indexNum.isArray()&&(_indexNum=_indexNum.getFirstCell()),_indexNum.isBoolean())return _indexNum.getValue()===!1?ErrorValueObject.create(ErrorType$1.VALUE):defaultValue;if(_indexNum.isString()){const colIndexNumV=Number(_indexNum.getValue());return Number.isNaN(colIndexNumV)?ErrorValueObject.create(ErrorType$1.REF):colIndexNumV}else if(_indexNum.isNumber())return _indexNum.getValue();return ErrorValueObject.create(ErrorType$1.VALUE)}getZeroOrOneByOneDefault(logicValueObject){if(logicValueObject==null)return 1;let logicValue=1;if(logicValueObject.isArray()&&(logicValueObject=logicValueObject.getFirstCell()),logicValueObject.isBoolean())logicValueObject.getValue()===!1&&(logicValue=0);else{if(logicValueObject.isString())return;logicValueObject.isNumber()&&logicValueObject.getValue()===0&&(logicValue=0)}return logicValue}getMatchTypeValue(logicValueObject){if(logicValueObject==null)return 1;let logicValue=1;if(logicValueObject.isArray()&&(logicValueObject=logicValueObject.getFirstCell()),logicValueObject.isBoolean())logicValueObject.getValue()===!1&&(logicValue=0);else{if(logicValueObject.isString())return;if(logicValueObject.isNumber()){const logicV=logicValueObject.getValue();logicV<=0&&(logicValue=logicV)}}return logicValue}binarySearch(value,searchArray,resultArray,searchType,matchType){const rowOrColumn=searchArray.binarySearch(value,searchType,matchType);if(rowOrColumn==null)return ErrorValueObject.create(ErrorType$1.NA);let resultValue;return resultArray.getRowCount()===1?resultValue=resultArray.get(0,rowOrColumn)||NullValueObject.create():resultValue=resultArray.get(rowOrColumn,0)||NullValueObject.create(),resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}_getOneFirstByRaw(array){return array.length===0?ErrorValueObject.create(ErrorType$1.NA):array[0][0]||ErrorValueObject.create(ErrorType$1.NA)}_getOneLastByRaw(array){return array.length===0?ErrorValueObject.create(ErrorType$1.NA):array[array.length-1][array[0].length-1]||ErrorValueObject.create(ErrorType$1.NA)}equalSearch(value,searchArray,resultArray,isFirst=!0){const resultArrayValue=resultArray.pickRaw(searchArray.isEqual(value));return isFirst?this._getOneFirstByRaw(resultArrayValue):this._getOneLastByRaw(resultArrayValue)}fuzzySearch(value,searchArray,resultArray,isFirst=!0){const resultArrayValue=resultArray.pickRaw(searchArray.compare(value,compareToken.EQUALS));return isFirst?this._getOneFirstByRaw(resultArrayValue):this._getOneLastByRaw(resultArrayValue)}orderSearch(value,searchArray,resultArray,searchType=ArrayOrderSearchType.MIN,isDesc=!1){const position=searchArray.orderSearch(value,searchType,isDesc);if(position==null)return ErrorValueObject.create(ErrorType$1.NA);const resultValue=resultArray.get(position.row,position.column)||NullValueObject.create();return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}binarySearchExpand(value,searchArray,resultArray,axis=0,searchType,matchType){const rowOrColumn=searchArray.binarySearch(value,searchType,matchType);return rowOrColumn==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([rowOrColumn,rowOrColumn+1]):resultArray.slice(void 0,[rowOrColumn,rowOrColumn+1])}equalSearchExpand(value,searchArray,resultArray,isFirst=!0,axis=0){const matchObject=searchArray.isEqual(value);let position;return isFirst?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}fuzzySearchExpand(value,searchArray,resultArray,isFirst=!0,axis=0){const matchObject=searchArray.compare(value,compareToken.EQUALS);let position;return isFirst?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}orderSearchExpand(value,searchArray,resultArray,searchType=ArrayOrderSearchType.MIN,isDesc=!1,axis=0){const position=searchArray.orderSearch(value,searchType,isDesc);return position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}flattenArray(variants,ignoreLogicalValuesAndText=!0){const flattenValues=[];flattenValues[0]=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean()||variant.isNull())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){let errorValue;if(variant.iterator(valueObject=>{if(valueObject==null||valueObject.isNull()||ignoreLogicalValuesAndText&&(valueObject.isString()||valueObject.isBoolean()))return!0;if(valueObject=this._includingLogicalValuesAndText(valueObject),valueObject.isError())return errorValue=valueObject,!1;flattenValues[0].push(valueObject)}),errorValue!=null&&errorValue.isError())return errorValue}else flattenValues[0].push(variant)}return createNewArray(flattenValues,1,flattenValues[0].length)}_includingLogicalValuesAndText(valueObject){if(valueObject.isBoolean()&&(valueObject=convertTonNumber(valueObject)),valueObject.isString()){const value=Number(valueObject.getValue());valueObject=NumberValueObject.create(Number.isNaN(value)?0:value)}return valueObject}createReferenceObject(reference,range){const unitId=reference.getForcedUnitId(),sheetId=reference.getForcedSheetId()||"",sheetName=reference.getForcedSheetName(),token=serializeRangeToRefString({unitId,sheetName,range});let referenceObject;return regexTestSingeRange(token)?referenceObject=new CellReferenceObject(token):regexTestSingleRow(token)?referenceObject=new RowReferenceObject(token):regexTestSingleColumn(token)?referenceObject=new ColumnReferenceObject(token):referenceObject=new RangeReferenceObject(range,sheetId,unitId),this._setReferenceDefault(reference,referenceObject)}_setReferenceDefault(reference,object){return this.unitId==null||this.subUnitId==null?ErrorValueObject.create(ErrorType$1.REF):(object.setDefaultUnitId(this.unitId),object.setDefaultSheetId(this.subUnitId),object.setUnitData(reference.getUnitData()),object.setRuntimeData(reference.getRuntimeData()),object.setArrayFormulaCellData(reference.getArrayFormulaCellData()),object.setRuntimeArrayFormulaCellData(reference.getRuntimeArrayFormulaCellData()),object)}};__name(_BaseFunction,"BaseFunction");let BaseFunction=_BaseFunction;var BESSEL;(BESSEL2=>{const W=.636619772;function _horner(arr,v){let z=0;for(let i=0;i<arr.length;++i)z=v*z+arr[i];return z}__name(_horner,"_horner");function _bessel_iter(x,n,f0,f1,sign2){if(n===0)return f0;if(n===1)return f1;const tdx=2/x;let _f0=f0,_f1=f1,f2=f1;for(let o=1;o<n;++o)f2=_f1*o*tdx+sign2*_f0,_f0=_f1,_f1=f2;return f2}__name(_bessel_iter,"_bessel_iter");function _bessel_wrap(bessel0,bessel1,nonzero,sign2){return __name(function(x,n){if(nonzero){if(x===0)return nonzero===1?-1/0:1/0;if(x<0)return Number.NaN}if(n===0)return bessel0(x);if(n===1)return bessel1(x);if(n<0)return Number.NaN;const _n=n|0,b0=bessel0(x),b1=bessel1(x);return _bessel_iter(x,_n,b0,b1,sign2)},"bessel")}__name(_bessel_wrap,"_bessel_wrap"),BESSEL2.besselj=(()=>{const b0_a1a=[-184.9052456,77392.33017,-1121442418e-2,6516196407e-1,-13362590354,57568490574],b0_a2a=[1,267.8532712,59272.64853,9494680718e-3,1029532985,57568490411],b0_a1b=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],b0_a2b=[-934935152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function bessel0(x){let a=0,a1=0,a2=0,y=x*x;if(x<8)a1=_horner(b0_a1a,y),a2=_horner(b0_a2a,y),a=a1/a2;else{const xx=x-.785398164;y=64/y,a1=_horner(b0_a1b,y),a2=_horner(b0_a2b,y),a=Math.sqrt(W/x)*(Math.cos(xx)*a1-Math.sin(xx)*a2*8/x)}return a}__name(bessel0,"bessel0");const b1_a1a=[-30.16036606,15704.4826,-2972611439e-3,2423968531e-1,-7895059235,72362614232],b1_a2a=[1,376.9991397,99447.43394,1858330474e-2,2300535178,144725228442],b1_a1b=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],b1_a2b=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function bessel1(x){let a=0,a1=0,a2=0,y=x*x;const xx=Math.abs(x)-2.356194491;return Math.abs(x)<8?(a1=x*_horner(b1_a1a,y),a2=_horner(b1_a2a,y),a=a1/a2):(y=64/y,a1=_horner(b1_a1b,y),a2=_horner(b1_a2b,y),a=Math.sqrt(W/Math.abs(x))*(Math.cos(xx)*a1-Math.sin(xx)*a2*8/Math.abs(x)),x<0&&(a=-a)),a}return __name(bessel1,"bessel1"),__name(function besselj2(x,n){const _n=Math.round(n);if(!Number.isFinite(x))return Number.isNaN(x)?x:0;if(_n<0)return(_n%2?-1:1)*besselj2(x,-_n);if(x<0)return(_n%2?-1:1)*besselj2(-x,_n);if(_n===0)return bessel0(x);if(_n===1)return bessel1(x);if(x===0)return 0;let ret=0;if(x>_n)ret=_bessel_iter(x,_n,bessel0(x),bessel1(x),-1);else{const m=2*Math.floor((_n+Math.floor(Math.sqrt(40*_n)))/2);let jsum=!1,bjp=0,sum2=0,bj=1,bjm=0;const tox=2/x;for(let j=m;j>0;j--)if(bjm=j*tox*bj-bjp,bjp=bj,bj=bjm,Math.abs(bj)>1e10&&(bj*=1e-10,bjp*=1e-10,ret*=1e-10,sum2*=1e-10),jsum&&(sum2+=bj),jsum=!jsum,j===_n&&(ret=bjp),m-j>100&&ret===0)return Number.NaN;sum2=2*sum2-bj,ret/=sum2}return ret},"besselj2")})(),BESSEL2.bessely=(()=>{const b0_a1a=[228.4622733,-86327.92757,1087988129e-2,-5123598036e-1,7062834065,-2957821389],b0_a2a=[1,226.1030244,47447.2647,7189466438e-3,7452499648e-1,40076544269],b0_a1b=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],b0_a2b=[-934945152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function bessel0(x){let a=0,a1=0,a2=0,y=x*x;const xx=x-.785398164;return x<8?(a1=_horner(b0_a1a,y),a2=_horner(b0_a2a,y),a=a1/a2+W*(0,BESSEL2.besselj)(x,0)*Math.log(x)):(y=64/y,a1=_horner(b0_a1b,y),a2=_horner(b0_a2b,y),a=Math.sqrt(W/x)*(Math.sin(xx)*a1+Math.cos(xx)*a2*8/x)),a}__name(bessel0,"bessel0");const b1_a1a=[8511.937935,-4237922726e-3,7349264551e-1,-51534381390,127527439e4,-4900604943e3],b1_a2a=[1,354.9632885,102042.605,2245904002e-2,3733650367,424441966400,249958057e5],b1_a1b=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],b1_a2b=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function bessel1(x){let a=0,a1=0,a2=0,y=x*x;const xx=x-2.356194491;return x<8?(a1=x*_horner(b1_a1a,y),a2=_horner(b1_a2a,y),a=a1/a2+W*((0,BESSEL2.besselj)(x,1)*Math.log(x)-1/x)):(y=64/y,a1=_horner(b1_a1b,y),a2=_horner(b1_a2b,y),a=Math.sqrt(W/x)*(Math.sin(xx)*a1+Math.cos(xx)*a2*8/x)),a}return __name(bessel1,"bessel1"),_bessel_wrap(bessel0,bessel1,1,-1)})(),BESSEL2.besseli=(()=>{const b0_a=[.0045813,.0360768,.2659732,1.2067492,3.0899424,3.5156229,1],b0_b=[.00392377,-.01647633,.02635537,-.02057706,.00916281,-.00157565,.00225319,.01328592,.39894228];function bessel0(x){return x<=3.75?_horner(b0_a,x*x/(3.75*3.75)):Math.exp(Math.abs(x))/Math.sqrt(Math.abs(x))*_horner(b0_b,3.75/Math.abs(x))}__name(bessel0,"bessel0");const b1_a=[32411e-8,.00301532,.02658733,.15084934,.51498869,.87890594,.5],b1_b=[-.00420059,.01787654,-.02895312,.02282967,-.01031555,.00163801,-.00362018,-.03988024,.39894228];function bessel1(x){return x<3.75?x*_horner(b1_a,x*x/(3.75*3.75)):(x<0?-1:1)*Math.exp(Math.abs(x))/Math.sqrt(Math.abs(x))*_horner(b1_b,3.75/Math.abs(x))}return __name(bessel1,"bessel1"),__name(function besseli2(x,n){const _n=Math.round(n);if(_n===0)return bessel0(x);if(_n===1)return bessel1(x);if(_n<0)return Number.NaN;if(Math.abs(x)===0)return 0;if(x===1/0)return 1/0;let ret=0,j;const tox=2/Math.abs(x);let bip=0,bi=1,bim=0;const m=2*Math.round((_n+Math.round(Math.sqrt(40*_n)))/2);for(j=m;j>0;j--)if(bim=j*tox*bi+bip,bip=bi,bi=bim,Math.abs(bi)>1e10&&(bi*=1e-10,bip*=1e-10,ret*=1e-10),j===_n&&(ret=bip),m-j>100&&ret===0)return Number.NaN;return ret*=besseli2(x,0)/bi,x<0&&_n%2?-ret:ret},"besseli2")})(),BESSEL2.besselk=(()=>{const b0_a=[74e-7,1075e-7,.00262698,.0348859,.23069756,.4227842,-.57721566],b0_b=[53208e-8,-.0025154,.00587872,-.01062446,.02189568,-.07832358,1.25331414];function bessel0(x){return x<=2?-Math.log(x/2)*(0,BESSEL2.besseli)(x,0)+_horner(b0_a,x*x/4):Math.exp(-x)/Math.sqrt(x)*_horner(b0_b,2/x)}__name(bessel0,"bessel0");const b1_a=[-4686e-8,-.00110404,-.01919402,-.18156897,-.67278579,.15443144,1],b1_b=[-68245e-8,.00325614,-.00780353,.01504268,-.0365562,.23498619,1.25331414];function bessel1(x){return x<=2?Math.log(x/2)*(0,BESSEL2.besseli)(x,1)+1/x*_horner(b1_a,x*x/4):Math.exp(-x)/Math.sqrt(x)*_horner(b1_b,2/x)}return __name(bessel1,"bessel1"),_bessel_wrap(bessel0,bessel1,2,1)})()})(BESSEL||(BESSEL={}));function isValidBinaryNumber(number){return/^[01]{1,10}$/.test(number)}__name(isValidBinaryNumber,"isValidBinaryNumber");function isValidOctalNumber(number){return/^[0-7]{1,10}$/.test(number)}__name(isValidOctalNumber,"isValidOctalNumber");function isValidHexadecimalNumber(number){return/^[0-9A-Fa-f]{1,10}$/.test(number)}__name(isValidHexadecimalNumber,"isValidHexadecimalNumber");function erf(x){if(x===0)return 0;const cof=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,15626441722e-18,-85238095915e-18,6529054439e-18,5059343495e-18,-991364156e-18,-227365122e-18,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18];let _x=x,isNeg=!1;_x<0&&(_x=-_x,isNeg=!0);const t=2/(2+_x),ty=4*t-2;let d=0,dd=0,tmp;for(let j=cof.length-1;j>0;j--)tmp=d,d=ty*d-dd+cof[j],dd=tmp;const res=t*Math.exp(-_x*_x+.5*(cof[0]+ty*d)-dd);return isNeg?res-1:1-res}__name(erf,"erf");function erfc(x){return 1-erf(x)}__name(erfc,"erfc");function erfcINV(p){if(p>=2)return-100;if(p<=0)return 100;const _p=p<1?p:2-p,temp=Math.sqrt(-2*Math.log(_p/2));let x=-.70711*((2.30753+temp*.27061)/(1+temp*(.99229+temp*.04481))-temp);for(let j=0;j<2;j++){const err=erfc(x)-_p;x+=err/(1.1283791670955126*Math.exp(-x*x)-x*err)}return p<1?x:-x}__name(erfcINV,"erfcINV");function calculateFactorial(n,step=1){let _n=Math.floor(n);if(n<0)return Number.NaN;let result=1;for(;_n>1&&Number.isFinite(result);)result*=_n,_n-=step;return result}__name(calculateFactorial,"calculateFactorial");function calculateCombin(n,k){const t=Math.min(n-k,k);let result=1;for(let i=1;i<=t&&Number.isFinite(result);i++)result*=n-i+1,result/=i;return result}__name(calculateCombin,"calculateCombin");function calculateGcd(a,b){let _a28=Math.floor(a),_b=Math.floor(b);for(;_b!==0;){const t=_b;_b=_a28%_b,_a28=t}return _a28}__name(calculateGcd,"calculateGcd");function calculateLcm(a,b){const den=calculateGcd(a,b);return den===0?0:Math.abs(a*b)/den}__name(calculateLcm,"calculateLcm");function calculateMdeterm(matrix){const n=matrix.length;if(n===1)return matrix[0][0];if(n===2)return matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0];let det=0;for(let col=0;col<n;col++)det+=(col%2===0?1:-1)*matrix[0][col]*calculateMdeterm(minor(matrix,0,col));return det}__name(calculateMdeterm,"calculateMdeterm");function calculateMinverse(matrix){const det=calculateMdeterm(matrix);return det===0?null:matrix.length===1?[[1/det]]:adjoint(matrix).map(row=>row.map(value=>value/det))}__name(calculateMinverse,"calculateMinverse");function minor(matrix,row,col){return matrix.filter((_,r)=>r!==row).map(row2=>row2.filter((_,c)=>c!==col))}__name(minor,"minor");function adjoint(matrix){const n=matrix.length,adj=Array.from({length:n},()=>new Array(n).fill(0));for(let i=0;i<n;i++)for(let j=0;j<n;j++){const sign2=(i+j)%2===0?1:-1;adj[j][i]=sign2*calculateMdeterm(minor(matrix,i,j))}return adj}__name(adjoint,"adjoint");const romanToArabicMap=new Map([["I",1],["V",5],["X",10],["L",50],["C",100],["D",500],["M",1e3]]),arabicToRomanMap=new Map([[1,"I"],[4,"IV"],[5,"V"],[9,"IX"],[10,"X"],[40,"XL"],[45,"VL"],[49,"IL"],[50,"L"],[90,"XC"],[95,"VC"],[99,"IC"],[100,"C"],[400,"CD"],[450,"LD"],[490,"XD"],[495,"VD"],[499,"ID"],[500,"D"],[900,"CM"],[950,"LM"],[990,"XM"],[995,"VM"],[999,"IM"],[1e3,"M"]]),romanFormArray=[[1,4,5,9,10,40,50,90,100,400,500,900,1e3,4e3],[1,4,5,9,10,40,45,50,90,95,100,400,450,500,900,950,1e3,4e3],[1,4,5,9,10,40,45,49,50,90,95,99,100,400,450,490,500,900,950,990,1e3,4e3],[1,4,5,9,10,40,45,49,50,90,95,99,100,400,450,490,495,500,900,950,990,995,1e3,4e3],[1,4,5,9,10,40,45,49,50,90,95,99,100,400,450,490,495,499,500,900,950,990,995,999,1e3,4e3]];function betaCDF(x,alpha,beta){return x<=0?0:x>=1?1:incompleteBetaFunction(x,alpha,beta)}__name(betaCDF,"betaCDF");function betaPDF(x,alpha,beta){return x<=0||x>=1?0:alpha===1&&beta===1?1:alpha<512&&beta<512?x**(alpha-1)*(1-x)**(beta-1)/betaFunction(alpha,beta):Math.exp((alpha-1)*Math.log(x)+(beta-1)*Math.log(1-x)-betaFunctionNaturalLogarithm(alpha,beta))}__name(betaPDF,"betaPDF");function betaINV(probability,alpha,beta){if(probability<=0)return 0;if(probability>=1)return 1;const EPSILON=1e-8;let x;if(alpha>=1&&beta>=1){const p=probability<.5?probability:1-probability,temp=Math.sqrt(-2*Math.log(p));x=(2.30753+temp*.27061)/(1+temp*(.99229+temp*.04481))-temp,probability<.5&&(x=-x);const temp1=(x*x-3)/6,temp2=2/(1/(2*alpha-1)+1/(2*beta-1)),temp3=x*Math.sqrt(temp1+temp2)/temp2-(1/(2*beta-1)-1/(2*alpha-1))*(temp1+5/6-2/(3*temp2));x=alpha/(alpha+beta*Math.exp(2*temp3))}else{const temp1=Math.exp(alpha*Math.log(alpha/(alpha+beta)))/alpha,temp2=Math.exp(beta*Math.log(beta/(alpha+beta)))/beta,temp3=temp1+temp2;probability<temp1/temp3?x=(alpha*temp3*probability)**(1/alpha):x=1-(beta*temp3*(1-probability))**(1/beta)}const betalnNeg=-betaFunctionNaturalLogarithm(alpha,beta);let ibeta,t,u;for(let j=0;j<10;j++){if(x===0||x===1)return x;if(ibeta=incompleteBetaFunction(x,alpha,beta)-probability,t=Math.exp((alpha-1)*Math.log(x)+(beta-1)*Math.log(1-x)+betalnNeg),u=ibeta/t,x-=t=u/(1-.5*Math.min(1,u*((alpha-1)/x-(beta-1)/(1-x)))),x<=0&&(x=.5*(x+t)),x>=1&&(x=.5*(x+t+1)),Math.abs(t)<EPSILON*x&&j>0)break}return x}__name(betaINV,"betaINV");function incompleteBetaFunction(x,alpha,beta){const bt=x===0||x===1?0:Math.exp(logGamma(alpha+beta)-logGamma(alpha)-logGamma(beta)+alpha*Math.log(x)+beta*Math.log(1-x));return x<(alpha+1)/(alpha+beta+2)?bt*betaContinuedFraction(x,alpha,beta)/alpha:1-bt*betaContinuedFraction(1-x,beta,alpha)/beta}__name(incompleteBetaFunction,"incompleteBetaFunction");function betaContinuedFraction(x,alpha,beta){let d=1-(alpha+beta)*x/(alpha+1);Math.abs(d)<1e-8&&(d=1e-8),d=1/d;let c=1,h=d;for(let m=1;m<=100;m++){let temp=m*(beta-m)*x/((alpha-1+m*2)*(alpha+m*2));if(d=1+temp*d,Math.abs(d)<1e-8&&(d=1e-8),c=1+temp/c,Math.abs(c)<1e-8&&(c=1e-8),d=1/d,h*=d*c,temp=-(alpha+m)*(alpha+beta+m)*x/((alpha+m*2)*(alpha+1+m*2)),d=1+temp*d,Math.abs(d)<1e-8&&(d=1e-8),c=1+temp/c,Math.abs(c)<1e-8&&(c=1e-8),d=1/d,h*=d*c,Math.abs(d*c-1)<1e-8)break}return h}__name(betaContinuedFraction,"betaContinuedFraction");function betaFunction(alpha,beta){return alpha+beta>170?Math.exp(betaFunctionNaturalLogarithm(alpha,beta)):gammaFunction(alpha)*gammaFunction(beta)/gammaFunction(alpha+beta)}__name(betaFunction,"betaFunction");function betaFunctionNaturalLogarithm(alpha,beta){return logGamma(alpha)+logGamma(beta)-logGamma(alpha+beta)}__name(betaFunctionNaturalLogarithm,"betaFunctionNaturalLogarithm");function logGamma(x){const coefficients=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18];let y=x,tmp=x+5.5;tmp-=(x+.5)*Math.log(tmp);let ser=1.000000000190015;for(let j=0;j<6;j++)y+=1,ser+=coefficients[j]/y;return-tmp+Math.log(2.5066282746310007*ser/x)}__name(logGamma,"logGamma");function gammaFunction(x){const p=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],q=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535];let fact=0,y=x;if(x>171.6243769536076)return 1/0;if(y<=0){const resMod=y%1+36e-17;if(resMod)fact=(y&1?-1:1)*Math.PI/Math.sin(Math.PI*resMod),y=1-y;else return 1/0}const yi=y;let n=0,z;y<1?z=y++:z=(y-=n=(y|0)-1)-1;let xnum=0,xden=0;for(let i=0;i<8;++i)xnum=(xnum+p[i])*z,xden=xden*z+q[i];let res=xnum/xden+1;if(yi<y)res/=yi;else if(yi>y)for(let i=0;i<n;++i)res*=y,y++;return fact&&(res=fact/res),res}__name(gammaFunction,"gammaFunction");function binomialCDF(x,trials,probability){if(x<0)return 0;if(x>=trials)return 1;if(probability<0||probability>1||trials<=0)return Number.NaN;let result=0;for(let i=0;i<=x;i++)result+=binomialPDF(i,trials,probability);return result}__name(binomialCDF,"binomialCDF");function binomialPDF(x,trials,probability){return probability===0||probability===1?trials*probability===x?1:0:calculateCombin(trials,x)*probability**x*(1-probability)**(trials-x)}__name(binomialPDF,"binomialPDF");function chisquareCDF(x,degFreedom){return x<=0?0:lowRegGamma(degFreedom/2,x/2)}__name(chisquareCDF,"chisquareCDF");function chisquarePDF(x,degFreedom){return x<0?0:x===0&°Freedom===2?.5:Math.exp((degFreedom/2-1)*Math.log(x)-x/2-degFreedom/2*Math.log(2)-logGamma(degFreedom/2))}__name(chisquarePDF,"chisquarePDF");function chisquareINV(probability,degFreedom){return probability<=0?0:probability>=1?1/0:2*lowRegGammaInverse(probability,degFreedom/2)}__name(chisquareINV,"chisquareINV");function lowRegGamma(a,x){if(x<0||a<=0)return Number.NaN;const MAX_ITER=Math.min(-~(Math.log(a>=1?a:1/a)*8.5+a*.4+17),1e4),aln=logGamma(a),exp2=Math.exp(-x+a*Math.log(x)-aln);let _a28=a,sum2=1/a,del=sum2;if(x<a+1){if(exp2===0)return 0;for(let i=1;i<=MAX_ITER;i++)sum2+=del*=x/++_a28;return sum2*exp2}if(exp2===0)return 1;let b=x+1-a,c=1/1e-30,d=1/b,h=d;for(let i=1;i<=MAX_ITER;i++){const temp=-i*(i-a);b+=2,d=temp*d+b,c=b+temp/c,d=1/d,h*=d*c}return 1-h*exp2}__name(lowRegGamma,"lowRegGamma");function lowRegGammaInverse(p,a){if(p<=0)return 0;if(p>=1)return Math.max(100,a+100*Math.sqrt(a));let x;if(a>1){const _p=p<.5?p:1-p,temp=Math.sqrt(-2*Math.log(_p));x=(2.30753+temp*.27061)/(1+temp*(.99229+temp*.04481))-temp,p<.5&&(x=-x),x=Math.max(.001,a*(1-1/(9*a)-x/(3*Math.sqrt(a)))**3)}else{const temp=1-a*(.253+a*.12);p<temp?x=(p/temp)**(1/a):x=1-Math.log(1-(p-temp)/(1-temp))}const EPSILON=1e-8,aln=logGamma(a);let err,t;for(let j=0;j<12;j++){if(x<=0)return 0;if(err=lowRegGamma(a,x)-p,a>1?t=Math.exp((a-1)*(Math.log(a-1)-1)-aln)*Math.exp(-(x-(a-1))+(a-1)*(Math.log(x)-Math.log(a-1))):t=Math.exp(-x+(a-1)*Math.log(x)-aln),t!==0&&(t=err/t/(1-.5*Math.min(1,err/t*((a-1)/x-1)))),x-=t,x<=0&&(x=.5*(x+t)),Math.abs(t)<EPSILON*x)break}return x}__name(lowRegGammaInverse,"lowRegGammaInverse");function studentTINV(probability,degFreedom){let x=betaINV(2*Math.min(probability,1-probability),.5*degFreedom,.5);return x=Math.sqrt(degFreedom*(1-x)/x),probability>.5?x:-x}__name(studentTINV,"studentTINV");function exponentialCDF(x,lambda){return x<0?0:1-Math.exp(-lambda*x)}__name(exponentialCDF,"exponentialCDF");function exponentialPDF(x,lambda){return x<0?0:lambda*Math.exp(-lambda*x)}__name(exponentialPDF,"exponentialPDF");function centralFCDF(x,degFreedom1,degFreedom2){return x<0?0:incompleteBetaFunction(degFreedom1*x/(degFreedom1*x+degFreedom2),degFreedom1/2,degFreedom2/2)}__name(centralFCDF,"centralFCDF");function centralFPDF(x,degFreedom1,degFreedom2){if(x<0)return 0;if(x===0&°Freedom1<2)return 1/0;if(x===0&°Freedom1===2)return 1;let result=1/betaFunction(degFreedom1/2,degFreedom2/2);return result*=(degFreedom1/degFreedom2)**(degFreedom1/2),result*=x**(degFreedom1/2-1),result*=(1+degFreedom1/degFreedom2*x)**(-(degFreedom1+degFreedom2)/2),result}__name(centralFPDF,"centralFPDF");function centralFINV(probability,degFreedom1,degFreedom2){return probability<=0?0:probability>=1?1/0:degFreedom2/(degFreedom1*(1/betaINV(probability,degFreedom1/2,degFreedom2/2)-1))}__name(centralFINV,"centralFINV");function forecastLinear(x,knownYs,knownXs){const n=knownYs.length;let knownYsSum=0,knownXsSum=0;for(let i=0;i<n;i++)knownYsSum+=knownYs[i],knownXsSum+=knownXs[i];const knownYsMean=knownYsSum/n,knownXsMean=knownXsSum/n;let num=0,den=0;for(let i=0;i<n;i++)num+=(knownYs[i]-knownYsMean)*(knownXs[i]-knownXsMean),den+=(knownXs[i]-knownXsMean)**2;if(den===0)return 1/0;const b=num/den;return knownYsMean-b*knownXsMean+b*x}__name(forecastLinear,"forecastLinear");function normalCDF(x,mean,standardDev){return .5*(1+erf((x-mean)/Math.sqrt(2*standardDev*standardDev)))}__name(normalCDF,"normalCDF");function normalPDF(x,mean,standardDev){return Math.exp(-.5*Math.log(2*Math.PI)-Math.log(standardDev)-(x-mean)**2/(2*standardDev*standardDev))}__name(normalPDF,"normalPDF");function normalINV(probability,mean,standardDev){return-1.4142135623730951*standardDev*erfcINV(2*probability)+mean}__name(normalINV,"normalINV");function getTwoArrayNumberValues(array1,array2,count,array1ColumnCount,array2ColumnCount){const array1Values=[],array2Values=[];let noCalculate=!0;for(let i=0;i<count;i++){const array1RowIndex=Math.floor(i/array1ColumnCount),array1ColumnIndex=i%array1ColumnCount,array2RowIndex=Math.floor(i/array2ColumnCount),array2ColumnIndex=i%array2ColumnCount,array1Object=array1.isArray()?array1.get(array1RowIndex,array1ColumnIndex):array1,array2Object=array2.isArray()?array2.get(array2RowIndex,array2ColumnIndex):array2;if(array1Object.isError())return{isError:!0,errorObject:array1Object,array1Values,array2Values,noCalculate};if(array2Object.isError())return{isError:!0,errorObject:array2Object,array1Values,array2Values,noCalculate};if(array1Object.isNull()||array2Object.isNull()||array1Object.isBoolean()||array2Object.isBoolean())continue;const array1Value=array1Object.getValue(),array2Value=array2Object.getValue();!core.isRealNum(array1Value)||!core.isRealNum(array2Value)||(array1Values.push(+array1Value),array2Values.push(+array2Value),noCalculate=!1)}return{isError:!1,errorObject:null,array1Values,array2Values,noCalculate}}__name(getTwoArrayNumberValues,"getTwoArrayNumberValues");function checkVariantErrorIsArray(variant){let _variant=variant;if(variant.isArray()){const rowCount=variant.getRowCount(),columnCount=variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=variant.get(0,0)}return _variant.isError(),_variant}__name(checkVariantErrorIsArray,"checkVariantErrorIsArray");function checkVariantsErrorIsArray(...variants){for(let i=0;i<variants.length;i++){const variant=checkVariantErrorIsArray(variants[i]);if(variant.isError())return{isError:!0,errorObject:variant};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsArray,"checkVariantsErrorIsArray");function checkVariantsErrorIsArrayOrBoolean(...variants){for(let i=0;i<variants.length;i++){const variant=checkVariantErrorIsArray(variants[i]);if(variant.isError())return{isError:!0,errorObject:variant};if(variant.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsArrayOrBoolean,"checkVariantsErrorIsArrayOrBoolean");function checkVariantsErrorIsNullorArrayOrBoolean(...variants){for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isError())return{isError:!0,errorObject:variant};if(variant.isNull())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.NA)};if(variant=checkVariantErrorIsArray(variants[i]),variant.isError())return{isError:!0,errorObject:variant};if(variant.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsNullorArrayOrBoolean,"checkVariantsErrorIsNullorArrayOrBoolean");function checkVariantsErrorIsStringToNumber(...variants){for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return{isError:!0,errorObject:variant};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsStringToNumber,"checkVariantsErrorIsStringToNumber");const _BetaInv=class _BetaInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(probability,alpha,beta,A,B){let _A=A!=null?A:NumberValueObject.create(0),_B=B!=null?B:NumberValueObject.create(1);_A.isNull()&&(_A=NumberValueObject.create(0)),_B.isNull()&&(_B=NumberValueObject.create(1));const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,alpha.isArray()?alpha.getRowCount():1,beta.isArray()?beta.getRowCount():1,_A.isArray()?_A.getRowCount():1,_B.isArray()?_B.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,alpha.isArray()?alpha.getColumnCount():1,beta.isArray()?beta.getColumnCount():1,_A.isArray()?_A.getColumnCount():1,_B.isArray()?_B.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),betaArray=expandArrayValueObject(maxRowLength,maxColumnLength,beta,ErrorValueObject.create(ErrorType$1.NA)),AArray=expandArrayValueObject(maxRowLength,maxColumnLength,_A,ErrorValueObject.create(ErrorType$1.NA)),BArray=expandArrayValueObject(maxRowLength,maxColumnLength,_B,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const alphaObject=alphaArray.get(rowIndex,columnIndex),betaObject=betaArray.get(rowIndex,columnIndex),AObject=AArray.get(rowIndex,columnIndex),BObject=BArray.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,alphaObject,betaObject,AObject,BObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,alphaObject,betaObject,AObject,BObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,alphaObject,betaObject,AObject,BObject);if(isError)return errorObject;const[_probabilityObject,_alphaObject,_betaObject,_AObject,_BObject]=variants,probabilityValue=+_probabilityObject.getValue(),alphaValue=+_alphaObject.getValue(),betaValue=+_betaObject.getValue(),AValue=+_AObject.getValue(),BValue=+_BObject.getValue();if(alphaValue<=0||betaValue<=0||probabilityValue<=0||probabilityValue>=1||AValue>=BValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=betaINV(probabilityValue,alphaValue,betaValue)*(BValue-AValue)+AValue;return NumberValueObject.create(result)}};__name(_BetaInv,"BetaInv");let BetaInv=_BetaInv;const _BinomDist=class _BinomDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(numberS,trials,probabilityS,cumulative){const maxRowLength=Math.max(numberS.isArray()?numberS.getRowCount():1,trials.isArray()?trials.getRowCount():1,probabilityS.isArray()?probabilityS.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(numberS.isArray()?numberS.getColumnCount():1,trials.isArray()?trials.getColumnCount():1,probabilityS.isArray()?probabilityS.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),numberSArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberS,ErrorValueObject.create(ErrorType$1.NA)),trialsArray=expandArrayValueObject(maxRowLength,maxColumnLength,trials,ErrorValueObject.create(ErrorType$1.NA)),probabilitySArray=expandArrayValueObject(maxRowLength,maxColumnLength,probabilityS,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberSArray.mapValue((numberSObject,rowIndex,columnIndex)=>{const trialsObject=trialsArray.get(rowIndex,columnIndex),probabilitySObject=probabilitySArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(numberSObject,trialsObject,probabilitySObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(numberSObject,trialsObject,probabilitySObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(numberSObject,trialsObject,probabilitySObject,cumulativeObject);if(isError)return errorObject;const[_numberSObject,_trialsObject,_probabilitySObject,_cumulativeObject]=variants,numberSValue=Math.floor(+_numberSObject.getValue()),trialsValue=Math.floor(+_trialsObject.getValue()),probabilitySValue=+_probabilitySObject.getValue(),cumulativeValue=+_cumulativeObject.getValue();if(numberSValue<0||numberSValue>trialsValue||probabilitySValue<0||probabilitySValue>1)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=binomialCDF(numberSValue,trialsValue,probabilitySValue):result=binomialPDF(numberSValue,trialsValue,probabilitySValue),NumberValueObject.create(result)}};__name(_BinomDist,"BinomDist");let BinomDist=_BinomDist;const _BinomInv=class _BinomInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(trials,probabilityS,alpha){const maxRowLength=Math.max(trials.isArray()?trials.getRowCount():1,probabilityS.isArray()?probabilityS.getRowCount():1,alpha.isArray()?alpha.getRowCount():1),maxColumnLength=Math.max(trials.isArray()?trials.getColumnCount():1,probabilityS.isArray()?probabilityS.getColumnCount():1,alpha.isArray()?alpha.getColumnCount():1),trialsArray=expandArrayValueObject(maxRowLength,maxColumnLength,trials,ErrorValueObject.create(ErrorType$1.NA)),probabilitySArray=expandArrayValueObject(maxRowLength,maxColumnLength,probabilityS,ErrorValueObject.create(ErrorType$1.NA)),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),resultArray=trialsArray.mapValue((trialsObject,rowIndex,columnIndex)=>{const probabilitySObject=probabilitySArray.get(rowIndex,columnIndex),alphaObject=alphaArray.get(rowIndex,columnIndex);return this._handleSignleObject(trialsObject,probabilitySObject,alphaObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(trialsObject,probabilitySObject,alphaObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(trialsObject,probabilitySObject,alphaObject);if(isError)return errorObject;const[_trialsObject,_probabilitySObject,_alphaObject]=variants,trialsValue=Math.floor(+_trialsObject.getValue()),probabilitySValue=+_probabilitySObject.getValue(),alphaValue=+_alphaObject.getValue();if(trialsValue<0||probabilitySValue<=0||probabilitySValue>=1||alphaValue<=0||alphaValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);let result=0;for(;result<=trialsValue&&!(binomialCDF(result,trialsValue,probabilitySValue)>=alphaValue);)result++;return NumberValueObject.create(result)}};__name(_BinomInv,"BinomInv");let BinomInv=_BinomInv;const _ChisqDistRt=class _ChisqDistRt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,degFreedom){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,degFreedom.isArray()?degFreedom.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,degFreedom.isArray()?degFreedom.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),degFreedomArray=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const degFreedomObject=degFreedomArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,degFreedomObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,degFreedomObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,degFreedomObject);if(isError)return errorObject;const[_xObject,_degFreedomObject]=variants,xValue=+_xObject.getValue(),degFreedomValue=Math.floor(+_degFreedomObject.getValue());if(xValue<0||degFreedomValue<1||degFreedomValue>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=1-chisquareCDF(xValue,degFreedomValue);return NumberValueObject.create(result)}};__name(_ChisqDistRt,"ChisqDistRt");let ChisqDistRt=_ChisqDistRt;const _ChisqInvRt=class _ChisqInvRt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(probability,degFreedom){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,degFreedom.isArray()?degFreedom.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,degFreedom.isArray()?degFreedom.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),degFreedomArray=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const degFreedomObject=degFreedomArray.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,degFreedomObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,degFreedomObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,degFreedomObject);if(isError)return errorObject;const[_probabilityObject,_degFreedomObject]=variants,probabilityValue=+_probabilityObject.getValue(),degFreedomValue=Math.floor(+_degFreedomObject.getValue());if(probabilityValue<0||probabilityValue>1||degFreedomValue<1)return ErrorValueObject.create(ErrorType$1.NUM);const result=chisquareINV(1-probabilityValue,degFreedomValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_ChisqInvRt,"ChisqInvRt");let ChisqInvRt=_ChisqInvRt;const _ChisqTest=class _ChisqTest extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(actualRange,expectedRange){const actualRangeRowCount=actualRange.isArray()?actualRange.getRowCount():1,actualRangeColumnCount=actualRange.isArray()?actualRange.getColumnCount():1,expectedRangeRowCount=expectedRange.isArray()?expectedRange.getRowCount():1,expectedRangeColumnCount=expectedRange.isArray()?expectedRange.getColumnCount():1;let _actualRange=actualRange;if(actualRange.isArray()&&actualRangeRowCount===1&&actualRangeColumnCount===1&&(_actualRange=actualRange.get(0,0)),_actualRange.isError())return _actualRange;let _expectedRange=expectedRange;if(expectedRange.isArray()&&expectedRangeRowCount===1&&expectedRangeColumnCount===1&&(_expectedRange=expectedRange.get(0,0)),_expectedRange.isError())return _expectedRange;if(actualRangeRowCount*actualRangeColumnCount===1||expectedRangeRowCount*expectedRangeColumnCount===1)return _actualRange.isNull()||_expectedRange.isNull()?ErrorValueObject.create(ErrorType$1.VALUE):ErrorValueObject.create(ErrorType$1.NA);if(actualRangeRowCount*actualRangeColumnCount!==expectedRangeRowCount*expectedRangeColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(actualRange,expectedRange,actualRangeRowCount*actualRangeColumnCount,actualRangeColumnCount,expectedRangeColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values,actualRangeRowCount,actualRangeColumnCount)}_getResult(actualRangeValues,expectedRangeValues,actualRangeRowCount,actualRangeColumnCount){let sumxmy2=0;for(let i=0;i<actualRangeValues.length;i++){if(expectedRangeValues[i]===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);sumxmy2+=(actualRangeValues[i]-expectedRangeValues[i])**2/expectedRangeValues[i]}let df=(actualRangeRowCount-1)*(actualRangeColumnCount-1);actualRangeRowCount===1?df=actualRangeColumnCount-1:actualRangeColumnCount===1&&(df=actualRangeRowCount-1);const result=1-chisquareCDF(sumxmy2,df);return NumberValueObject.create(result)}};__name(_ChisqTest,"ChisqTest");let ChisqTest=_ChisqTest;const _ConfidenceNorm=class _ConfidenceNorm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(alpha,standardDev,size){const maxRowLength=Math.max(alpha.isArray()?alpha.getRowCount():1,standardDev.isArray()?standardDev.getRowCount():1,size.isArray()?size.getRowCount():1),maxColumnLength=Math.max(alpha.isArray()?alpha.getColumnCount():1,standardDev.isArray()?standardDev.getColumnCount():1,size.isArray()?size.getColumnCount():1),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),standardDevArray=expandArrayValueObject(maxRowLength,maxColumnLength,standardDev,ErrorValueObject.create(ErrorType$1.NA)),sizeArray=expandArrayValueObject(maxRowLength,maxColumnLength,size,ErrorValueObject.create(ErrorType$1.NA)),resultArray=alphaArray.mapValue((alphaObject,rowIndex,columnIndex)=>{const standardDevObject=standardDevArray.get(rowIndex,columnIndex),sizeObject=sizeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(alphaObject,standardDevObject,sizeObject);if(isError)return errorObject;const[_alphaObject,_standardDevObject,_sizeObject]=variants,alphaValue=+_alphaObject.getValue(),standardDevValue=+_standardDevObject.getValue(),sizeValue=Math.floor(+_sizeObject.getValue());if(alphaValue<=0||alphaValue>=1||standardDevValue<=0||sizeValue<1)return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.abs(normalINV(alphaValue/2,0,1)*standardDevValue/Math.sqrt(sizeValue));return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_ConfidenceNorm,"ConfidenceNorm");let ConfidenceNorm=_ConfidenceNorm;const _CovarianceP=class _CovarianceP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const array1RowCount=array1.isArray()?array1.getRowCount():1,array1ColumnCount=array1.isArray()?array1.getColumnCount():1,array2RowCount=array2.isArray()?array2.getRowCount():1,array2ColumnCount=array2.isArray()?array2.getColumnCount():1;let _array1=array1;if(array1.isArray()&&array1RowCount===1&&array1ColumnCount===1&&(_array1=array1.get(0,0)),_array1.isError())return _array1;let _array2=array2;if(array2.isArray()&&array2RowCount===1&&array2ColumnCount===1&&(_array2=array2.get(0,0)),_array2.isError())return _array2;if((array1RowCount*array1ColumnCount===1||array2RowCount*array2ColumnCount===1)&&(_array1.isNull()||_array2.isNull()))return ErrorValueObject.create(ErrorType$1.VALUE);if(array1RowCount*array1ColumnCount!==array2RowCount*array2ColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(array1,array2,array1RowCount*array1ColumnCount,array1ColumnCount,array2ColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values)}_getResult(array1Values,array2Values){if(array1Values.length===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const n=array1Values.length;let array1Sum=0,array2Sum=0;for(let i=0;i<n;i++)array1Sum+=array1Values[i],array2Sum+=array2Values[i];const array1Mean=array1Sum/n,array2Mean=array2Sum/n;let numerator=0;for(let i=0;i<n;i++){const array1Diff=array1Values[i]-array1Mean,array2Diff=array2Values[i]-array2Mean;numerator+=array1Diff*array2Diff}return NumberValueObject.create(numerator/n)}};__name(_CovarianceP,"CovarianceP");let CovarianceP=_CovarianceP;const _ExponDist=class _ExponDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(x,lambda,cumulative){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,lambda.isArray()?lambda.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,lambda.isArray()?lambda.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),lambdaArray=expandArrayValueObject(maxRowLength,maxColumnLength,lambda,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const lambdaObject=lambdaArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,lambdaObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,lambdaObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,lambdaObject,cumulativeObject);if(isError)return errorObject;const[_xObject,_lambdaObject,_cumulativeObject]=variants,xValue=+_xObject.getValue(),lambdaValue=+_lambdaObject.getValue(),cumulativeValue=+_cumulativeObject.getValue();if(xValue<0||lambdaValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=exponentialCDF(xValue,lambdaValue):result=exponentialPDF(xValue,lambdaValue),NumberValueObject.create(result)}};__name(_ExponDist,"ExponDist");let ExponDist=_ExponDist;const _FDistRt=class _FDistRt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(x,degFreedom1,degFreedom2){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,degFreedom1.isArray()?degFreedom1.getRowCount():1,degFreedom2.isArray()?degFreedom2.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,degFreedom1.isArray()?degFreedom1.getColumnCount():1,degFreedom2.isArray()?degFreedom2.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),degFreedom1Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom1,ErrorValueObject.create(ErrorType$1.NA)),degFreedom2Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const degFreedom1Object=degFreedom1Array.get(rowIndex,columnIndex),degFreedom2Object=degFreedom2Array.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,degFreedom1Object,degFreedom2Object)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,degFreedom1Object,degFreedom2Object){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,degFreedom1Object,degFreedom2Object);if(isError)return errorObject;const[_xObject,_degFreedom1Object,_degFreedom2Object]=variants,xValue=+_xObject.getValue(),degFreedom1Value=Math.floor(+_degFreedom1Object.getValue()),degFreedom2Value=Math.floor(+_degFreedom2Object.getValue());if(xValue<0||degFreedom1Value<1||degFreedom1Value>10**10||degFreedom2Value<1||degFreedom2Value>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=1-centralFCDF(xValue,degFreedom1Value,degFreedom2Value);return NumberValueObject.create(result)}};__name(_FDistRt,"FDistRt");let FDistRt=_FDistRt;const _FInvRt=class _FInvRt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(probability,degFreedom1,degFreedom2){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,degFreedom1.isArray()?degFreedom1.getRowCount():1,degFreedom2.isArray()?degFreedom2.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,degFreedom1.isArray()?degFreedom1.getColumnCount():1,degFreedom2.isArray()?degFreedom2.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),degFreedom1Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom1,ErrorValueObject.create(ErrorType$1.NA)),degFreedom2Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const degFreedom1Object=degFreedom1Array.get(rowIndex,columnIndex),degFreedom2Object=degFreedom2Array.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,degFreedom1Object,degFreedom2Object)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,degFreedom1Object,degFreedom2Object){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,degFreedom1Object,degFreedom2Object);if(isError)return errorObject;const[_probabilityObject,_degFreedom1Object,_degFreedom2Object]=variants,probabilityValue=+_probabilityObject.getValue(),degFreedom1Value=Math.floor(+_degFreedom1Object.getValue()),degFreedom2Value=Math.floor(+_degFreedom2Object.getValue());if(probabilityValue<0||probabilityValue>1||degFreedom1Value<1||degFreedom1Value>10**10||degFreedom2Value<1||degFreedom2Value>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=centralFINV(1-probabilityValue,degFreedom1Value,degFreedom2Value);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_FInvRt,"FInvRt");let FInvRt=_FInvRt;const _FTest=class _FTest extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const{isError:isError_array1,errorObject:errorObject_array1,variance:variance_array1,ns1:ns1_array1}=this._getValues(array1);if(isError_array1)return errorObject_array1;const{isError:isError_array2,errorObject:errorObject_array2,variance:variance_array2,ns1:ns1_array2}=this._getValues(array2);if(isError_array2)return errorObject_array2;let result=2*(1-centralFCDF(variance_array1/variance_array2,ns1_array1,ns1_array2));return result>1&&(result=2-result),NumberValueObject.create(result)}_getValues(array){let variance=0,ns1=0;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;if(arrayRowCount===1&&arrayColumnCount===1){const _array=array.isArray()?array.get(0,0):array;return _array.isError()?{isError:!0,errorObject:_array,variance,ns1}:_array.isNull()?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),variance,ns1}:{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO),variance,ns1}}const values=[];let sum2=0;for(let r=0;r<arrayRowCount;r++)for(let c=0;c<arrayColumnCount;c++){const valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return{isError:!0,errorObject:valueObject,variance,ns1};if(valueObject.isNull()||valueObject.isBoolean())continue;const value=valueObject.getValue();core.isRealNum(value)&&(values.push(+value),sum2+=+value)}if(values.length<=1)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO),variance,ns1};const mean=sum2/values.length;let sumSquares=0;for(let i=0;i<values.length;i++)sumSquares+=(values[i]-mean)**2;return ns1=values.length-1,variance=sumSquares/ns1,variance===0?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO),variance,ns1}:{isError:!1,errorObject:null,variance,ns1}}};__name(_FTest,"FTest");let FTest=_FTest;const _NormDist=class _NormDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(x,mean,standardDev,cumulative){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,mean.isArray()?mean.getRowCount():1,standardDev.isArray()?standardDev.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,mean.isArray()?mean.getColumnCount():1,standardDev.isArray()?standardDev.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),meanArray=expandArrayValueObject(maxRowLength,maxColumnLength,mean,ErrorValueObject.create(ErrorType$1.NA)),standardDevArray=expandArrayValueObject(maxRowLength,maxColumnLength,standardDev,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const meanObject=meanArray.get(rowIndex,columnIndex),standardDevObject=standardDevArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,meanObject,standardDevObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,meanObject,standardDevObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,meanObject,standardDevObject,cumulativeObject);if(isError)return errorObject;const[_xObject,_meanObject,_standardDevObject,_cumulativeObject]=variants,xValue=+_xObject.getValue(),meanValue=+_meanObject.getValue(),standardDevValue=+_standardDevObject.getValue(),cumulativeValue=+_cumulativeObject.getValue();if(standardDevValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=normalCDF(xValue,meanValue,standardDevValue):result=normalPDF(xValue,meanValue,standardDevValue),NumberValueObject.create(result)}};__name(_NormDist,"NormDist");let NormDist=_NormDist;const _NormInv=class _NormInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(probability,mean,standardDev){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,mean.isArray()?mean.getRowCount():1,standardDev.isArray()?standardDev.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,mean.isArray()?mean.getColumnCount():1,standardDev.isArray()?standardDev.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),meanArray=expandArrayValueObject(maxRowLength,maxColumnLength,mean,ErrorValueObject.create(ErrorType$1.NA)),standardDevArray=expandArrayValueObject(maxRowLength,maxColumnLength,standardDev,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const meanObject=meanArray.get(rowIndex,columnIndex),standardDevObject=standardDevArray.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,meanObject,standardDevObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,meanObject,standardDevObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,meanObject,standardDevObject);if(isError)return errorObject;const[_probabilityObject,_meanObject,_standardDevObject]=variants,probabilityValue=+_probabilityObject.getValue(),meanValue=+_meanObject.getValue(),standardDevValue=+_standardDevObject.getValue();if(probabilityValue<=0||probabilityValue>=1||standardDevValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);const result=normalINV(probabilityValue,meanValue,standardDevValue);return NumberValueObject.create(result)}};__name(_NormInv,"NormInv");let NormInv=_NormInv;const _NormSInv=class _NormSInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(probability){if(probability.isArray()){const resultArray=probability.mapValue(probabilityObject=>this._handleSignleObject(probabilityObject));return probability.getRowCount()===1&&probability.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSignleObject(probability)}_handleSignleObject(probabilityObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject);if(isError)return errorObject;const[_probabilityObject]=variants,probabilityValue=+_probabilityObject.getValue();if(probabilityValue<=0||probabilityValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=normalINV(probabilityValue,0,1);return NumberValueObject.create(result)}};__name(_NormSInv,"NormSInv");let NormSInv=_NormSInv;const _StdevP=class _StdevP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.std()}};__name(_StdevP,"StdevP");let StdevP=_StdevP;const _StdevS=class _StdevS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.std(1)}};__name(_StdevS,"StdevS");let StdevS=_StdevS;const _VarP=class _VarP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.var()}};__name(_VarP,"VarP");let VarP=_VarP;const _VarS=class _VarS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.var(1)}};__name(_VarS,"VarS");let VarS=_VarS;const _Betadist=class _Betadist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(x,alpha,beta,A,B){let _A=A!=null?A:NumberValueObject.create(0),_B=B!=null?B:NumberValueObject.create(1);_A.isNull()&&(_A=NumberValueObject.create(0)),_B.isNull()&&(_B=NumberValueObject.create(1));const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,alpha.isArray()?alpha.getRowCount():1,beta.isArray()?beta.getRowCount():1,_A.isArray()?_A.getRowCount():1,_B.isArray()?_B.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,alpha.isArray()?alpha.getColumnCount():1,beta.isArray()?beta.getColumnCount():1,_A.isArray()?_A.getColumnCount():1,_B.isArray()?_B.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),betaArray=expandArrayValueObject(maxRowLength,maxColumnLength,beta,ErrorValueObject.create(ErrorType$1.NA)),AArray=expandArrayValueObject(maxRowLength,maxColumnLength,_A,ErrorValueObject.create(ErrorType$1.NA)),BArray=expandArrayValueObject(maxRowLength,maxColumnLength,_B,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const alphaObject=alphaArray.get(rowIndex,columnIndex),betaObject=betaArray.get(rowIndex,columnIndex),AObject=AArray.get(rowIndex,columnIndex),BObject=BArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,alphaObject,betaObject,AObject,BObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,alphaObject,betaObject,AObject,BObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,alphaObject,betaObject,AObject,BObject);if(isError)return errorObject;const[_xObject,_alphaObject,_betaObject,_AObject,_BObject]=variants,xValue=+_xObject.getValue(),alphaValue=+_alphaObject.getValue(),betaValue=+_betaObject.getValue(),AValue=+_AObject.getValue(),BValue=+_BObject.getValue();if(alphaValue<=0||betaValue<=0||xValue<AValue||xValue>BValue||AValue===BValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=betaCDF((xValue-AValue)/(BValue-AValue),alphaValue,betaValue);return NumberValueObject.create(result)}};__name(_Betadist,"Betadist");let Betadist=_Betadist;var FUNCTION_NAMES_COMPATIBILITY=(FUNCTION_NAMES_COMPATIBILITY2=>(FUNCTION_NAMES_COMPATIBILITY2.BETADIST="BETADIST",FUNCTION_NAMES_COMPATIBILITY2.BETAINV="BETAINV",FUNCTION_NAMES_COMPATIBILITY2.BINOMDIST="BINOMDIST",FUNCTION_NAMES_COMPATIBILITY2.CHIDIST="CHIDIST",FUNCTION_NAMES_COMPATIBILITY2.CHIINV="CHIINV",FUNCTION_NAMES_COMPATIBILITY2.CHITEST="CHITEST",FUNCTION_NAMES_COMPATIBILITY2.CONFIDENCE="CONFIDENCE",FUNCTION_NAMES_COMPATIBILITY2.COVAR="COVAR",FUNCTION_NAMES_COMPATIBILITY2.CRITBINOM="CRITBINOM",FUNCTION_NAMES_COMPATIBILITY2.EXPONDIST="EXPONDIST",FUNCTION_NAMES_COMPATIBILITY2.FDIST="FDIST",FUNCTION_NAMES_COMPATIBILITY2.FINV="FINV",FUNCTION_NAMES_COMPATIBILITY2.FTEST="FTEST",FUNCTION_NAMES_COMPATIBILITY2.GAMMADIST="GAMMADIST",FUNCTION_NAMES_COMPATIBILITY2.GAMMAINV="GAMMAINV",FUNCTION_NAMES_COMPATIBILITY2.HYPGEOMDIST="HYPGEOMDIST",FUNCTION_NAMES_COMPATIBILITY2.LOGINV="LOGINV",FUNCTION_NAMES_COMPATIBILITY2.LOGNORMDIST="LOGNORMDIST",FUNCTION_NAMES_COMPATIBILITY2.MODE="MODE",FUNCTION_NAMES_COMPATIBILITY2.NEGBINOMDIST="NEGBINOMDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMDIST="NORMDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMINV="NORMINV",FUNCTION_NAMES_COMPATIBILITY2.NORMSDIST="NORMSDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMSINV="NORMSINV",FUNCTION_NAMES_COMPATIBILITY2.PERCENTILE="PERCENTILE",FUNCTION_NAMES_COMPATIBILITY2.PERCENTRANK="PERCENTRANK",FUNCTION_NAMES_COMPATIBILITY2.POISSON="POISSON",FUNCTION_NAMES_COMPATIBILITY2.QUARTILE="QUARTILE",FUNCTION_NAMES_COMPATIBILITY2.RANK="RANK",FUNCTION_NAMES_COMPATIBILITY2.STDEV="STDEV",FUNCTION_NAMES_COMPATIBILITY2.STDEVP="STDEVP",FUNCTION_NAMES_COMPATIBILITY2.TDIST="TDIST",FUNCTION_NAMES_COMPATIBILITY2.TINV="TINV",FUNCTION_NAMES_COMPATIBILITY2.TTEST="TTEST",FUNCTION_NAMES_COMPATIBILITY2.VAR="VAR",FUNCTION_NAMES_COMPATIBILITY2.VARP="VARP",FUNCTION_NAMES_COMPATIBILITY2.WEIBULL="WEIBULL",FUNCTION_NAMES_COMPATIBILITY2.ZTEST="ZTEST",FUNCTION_NAMES_COMPATIBILITY2))(FUNCTION_NAMES_COMPATIBILITY||{});const _Normsdist=class _Normsdist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(z){if(z.isArray()){const resultArray=z.mapValue(zObject=>this._handleSignleObject(zObject));return z.getRowCount()===1&&z.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSignleObject(z)}_handleSignleObject(zObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(zObject);if(isError)return errorObject;const[_zObject]=variants,zValue=+_zObject.getValue(),result=normalCDF(zValue,0,1);return NumberValueObject.create(result)}};__name(_Normsdist,"Normsdist");let Normsdist=_Normsdist;const _Rank=class _Rank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(number,ref,order){let _number=number;_number.isReferenceObject()&&(_number=_number.toArrayValueObject());const{refHasError,refErrorObject,refNumbers}=this._checkRefReferenceObject(ref);let _order=order!=null?order:NumberValueObject.create(0);_order.isReferenceObject()&&(_order=_order.toArrayValueObject());const maxRowLength=Math.max(_number.isArray()?_number.getRowCount():1,_order.isArray()?_order.getRowCount():1),maxColumnLength=Math.max(_number.isArray()?_number.getColumnCount():1,_order.isArray()?_order.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,_number,ErrorValueObject.create(ErrorType$1.NA)),orderArray=expandArrayValueObject(maxRowLength,maxColumnLength,_order,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const orderObject=orderArray.get(rowIndex,columnIndex);if(!number.isReferenceObject()&&number.isNull())return ErrorValueObject.create(ErrorType$1.NA);if(refHasError)return refErrorObject;if(orderObject.isError())return orderObject;const numberValue=+numberObject.getValue(),orderValue=+orderObject.getValue();if(Number.isNaN(numberValue)||Number.isNaN(orderValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=refNumbers.sort((a,b)=>orderValue?a-b:b-a).indexOf(numberValue);return result===-1?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(result+1)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_checkRefReferenceObject(ref){let refHasError=!1,refErrorObject=ErrorValueObject.create(ErrorType$1.NA);const refNumbers=[];return ref.isReferenceObject()?(ref.toArrayValueObject().iterator(refObject=>{const _refObject=refObject;if(_refObject.isError())return refHasError=!0,refErrorObject=_refObject,!1;if(_refObject.isNull()||_refObject.isBoolean())return!0;const refValue=+_refObject.getValue();if(Number.isNaN(refValue))return!0;refNumbers.push(refValue)}),{refHasError,refErrorObject,refNumbers}):{refHasError:!0,refErrorObject,refNumbers}}};__name(_Rank,"Rank");let Rank=_Rank;const functionCompatibility=[[Betadist,FUNCTION_NAMES_COMPATIBILITY.BETADIST],[BetaInv,FUNCTION_NAMES_COMPATIBILITY.BETAINV],[BinomDist,FUNCTION_NAMES_COMPATIBILITY.BINOMDIST],[ChisqDistRt,FUNCTION_NAMES_COMPATIBILITY.CHIDIST],[ChisqInvRt,FUNCTION_NAMES_COMPATIBILITY.CHIINV],[ChisqTest,FUNCTION_NAMES_COMPATIBILITY.CHITEST],[ConfidenceNorm,FUNCTION_NAMES_COMPATIBILITY.CONFIDENCE],[CovarianceP,FUNCTION_NAMES_COMPATIBILITY.COVAR],[BinomInv,FUNCTION_NAMES_COMPATIBILITY.CRITBINOM],[ExponDist,FUNCTION_NAMES_COMPATIBILITY.EXPONDIST],[FDistRt,FUNCTION_NAMES_COMPATIBILITY.FDIST],[FInvRt,FUNCTION_NAMES_COMPATIBILITY.FINV],[FTest,FUNCTION_NAMES_COMPATIBILITY.FTEST],[NormDist,FUNCTION_NAMES_COMPATIBILITY.NORMDIST],[NormInv,FUNCTION_NAMES_COMPATIBILITY.NORMINV],[Normsdist,FUNCTION_NAMES_COMPATIBILITY.NORMSDIST],[NormSInv,FUNCTION_NAMES_COMPATIBILITY.NORMSINV],[Rank,FUNCTION_NAMES_COMPATIBILITY.RANK],[StdevS,FUNCTION_NAMES_COMPATIBILITY.STDEV],[StdevP,FUNCTION_NAMES_COMPATIBILITY.STDEVP],[VarS,FUNCTION_NAMES_COMPATIBILITY.VAR],[VarP,FUNCTION_NAMES_COMPATIBILITY.VARP]],functionCube=[];var FUNCTION_NAMES_CUBE=(FUNCTION_NAMES_CUBE2=>(FUNCTION_NAMES_CUBE2.CUBEKPIMEMBER="CUBEKPIMEMBER",FUNCTION_NAMES_CUBE2.CUBEMEMBER="CUBEMEMBER",FUNCTION_NAMES_CUBE2.CUBEMEMBERPROPERTY="CUBEMEMBERPROPERTY",FUNCTION_NAMES_CUBE2.CUBERANKEDMEMBER="CUBERANKEDMEMBER",FUNCTION_NAMES_CUBE2.CUBESET="CUBESET",FUNCTION_NAMES_CUBE2.CUBESETCOUNT="CUBESETCOUNT",FUNCTION_NAMES_CUBE2.CUBEVALUE="CUBEVALUE",FUNCTION_NAMES_CUBE2))(FUNCTION_NAMES_CUBE||{});const _CustomFunction=class _CustomFunction extends BaseFunction{isCustom(){return!0}};__name(_CustomFunction,"CustomFunction");let CustomFunction=_CustomFunction;function checkDatabase(database){const databaseValues=[];if(database.isError())return{isError:!0,errorObject:database,databaseValues};const rowCount=database.isArray()?database.getRowCount():1,columnCount=database.isArray()?database.getColumnCount():1;if(rowCount<2)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),databaseValues};for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const valueObject=database.get(r,c);if(valueObject.isNull()){row.push(null);continue}let value=`${valueObject.getValue()}`;if(valueObject.isBoolean()&&(value=value.toLocaleUpperCase()),valueObject.isNumber()||core.isRealNum(value)){row.push(+value);continue}row.push(value)}databaseValues.push(row)}return{isError:!1,errorObject:null,databaseValues}}__name(checkDatabase,"checkDatabase");function checkField(field,database){let fieldIndex=-1;if(field.isError())return{isError:!0,errorObject:field,fieldIndex};const rowCount=field.isArray()?field.getRowCount():1,columnCount=field.isArray()?field.getColumnCount():1;if(rowCount>1||columnCount>1)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),fieldIndex};const fieldObject=field.isArray()?field.get(0,0):field;let fieldValue=`${fieldObject.getValue()}`;if(fieldObject.isNull()?fieldValue=0:fieldObject.isBoolean()?fieldValue=fieldObject.getValue()?1:0:(fieldObject.isNumber()||core.isRealNum(fieldValue))&&(fieldValue=Math.floor(+fieldValue)),typeof fieldValue=="number"){if(fieldValue<1||fieldValue>database[0].length)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),fieldIndex};fieldIndex=fieldValue-1}else if(fieldIndex=database[0].findIndex(value=>value===null?!1:`${value}`.toLocaleLowerCase()===fieldValue.toLocaleLowerCase()),fieldIndex===-1)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),fieldIndex};return{isError:!1,errorObject:null,fieldIndex}}__name(checkField,"checkField");function checkCriteria(criteria){const criteriaValues=[];if(criteria.isError())return{isError:!0,errorObject:criteria,criteriaValues};const rowCount=criteria.isArray()?criteria.getRowCount():1,columnCount=criteria.isArray()?criteria.getColumnCount():1;if(rowCount<2)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),criteriaValues};for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const valueObject=criteria.get(r,c);if(valueObject.isNull()){row.push(null);continue}const value=`${valueObject.getValue()}`;if(valueObject.isBoolean()){row.push(valueObject.getValue()?1:0);continue}if(valueObject.isNumber()||core.isRealNum(value)){row.push(+value);continue}row.push(value)}criteriaValues.push(row)}return{isError:!1,errorObject:null,criteriaValues}}__name(checkCriteria,"checkCriteria");function isCriteriaMatch(criteria,database,databaseRowIndex){const rowCount=criteria.length,columnCount=criteria[0].length,criteriaTitleIndexCache={};let isMatch=!1;for(let r=1;r<rowCount;r++){let isRowMatch=!0;for(let c=0;c<columnCount;c++){const criteriaValue=criteria[r][c];if(criteriaValue===null)continue;let criteriaTitleIndex=criteriaTitleIndexCache[c];if(criteriaTitleIndex===void 0){const criteriaTitleValue=criteria[0][c];criteriaTitleIndex=database[0].findIndex(value=>value===null||criteriaTitleValue===null?!1:`${value}`.toLocaleLowerCase()===`${criteriaTitleValue}`.toLocaleLowerCase()),criteriaTitleIndexCache[c]=criteriaTitleIndex}if(criteriaTitleIndex===-1&&(typeof criteriaValue=="string"||criteriaValue===0)){isRowMatch=!1;break}else if(criteriaTitleIndex>-1){const databaseValue=database[databaseRowIndex][criteriaTitleIndex];if(databaseValue===null){isRowMatch=!1;break}const[compareToken2,criteriaObject]=findCompareToken(`${criteriaValue}`);if(!ValueObjectFactory.create(`${databaseValue}`).compare(criteriaObject,compareToken2).getValue()){isRowMatch=!1;break}}}if(isRowMatch){isMatch=!0;break}}return isMatch}__name(isCriteriaMatch,"isCriteriaMatch");const _Daverage=class _Daverage extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;let sum2=0,count=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];typeof value=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(sum2+=value,count++)}return count===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(sum2/count)}};__name(_Daverage,"Daverage");let Daverage=_Daverage;const _Dcount=class _Dcount extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;let count=0;for(let r=1;r<databaseValues.length;r++)typeof databaseValues[r][fieldIndex]=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&count++;return NumberValueObject.create(count)}};__name(_Dcount,"Dcount");let Dcount=_Dcount;const _Dcounta=class _Dcounta extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;let count=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];value!=null&&isCriteriaMatch(criteriaValues,databaseValues,r)&&count++}return NumberValueObject.create(count)}};__name(_Dcounta,"Dcounta");let Dcounta=_Dcounta;const _Dget=class _Dget extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;let count=0,resultRowIndex=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];value!=null&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(count++,resultRowIndex=r)}return count===0?ErrorValueObject.create(ErrorType$1.VALUE):count>1?ErrorValueObject.create(ErrorType$1.NUM):database.get(resultRowIndex,fieldIndex)}};__name(_Dget,"Dget");let Dget=_Dget;const _Dmax=class _Dmax extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;let result=-1/0,count=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];typeof value=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(result=Math.max(result,value),count++)}return count===0?NumberValueObject.create(0):NumberValueObject.create(result)}};__name(_Dmax,"Dmax");let Dmax=_Dmax;const _Dmin=class _Dmin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;let result=1/0,count=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];typeof value=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(result=Math.min(result,value),count++)}return count===0?NumberValueObject.create(0):NumberValueObject.create(result)}};__name(_Dmin,"Dmin");let Dmin=_Dmin;const _Dproduct=class _Dproduct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;let result=1,count=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];typeof value=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(result*=value,count++)}return count===0?NumberValueObject.create(0):NumberValueObject.create(result)}};__name(_Dproduct,"Dproduct");let Dproduct=_Dproduct;const _Dstdev=class _Dstdev extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;const values=[];let sum2=0,count=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];typeof value=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(values.push(value),sum2+=value,count++)}if(count<=1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const mean=sum2/count;let sumOfSquaresDifferences=0;for(let i=0;i<count;i++)sumOfSquaresDifferences+=(values[i]-mean)**2;const result=Math.sqrt(sumOfSquaresDifferences/(count-1));return NumberValueObject.create(result)}};__name(_Dstdev,"Dstdev");let Dstdev=_Dstdev;const _Dstdevp=class _Dstdevp extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;const values=[];let sum2=0,count=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];typeof value=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(values.push(value),sum2+=value,count++)}if(count===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const mean=sum2/count;let sumOfSquaresDifferences=0;for(let i=0;i<count;i++)sumOfSquaresDifferences+=(values[i]-mean)**2;const result=Math.sqrt(sumOfSquaresDifferences/count);return NumberValueObject.create(result)}};__name(_Dstdevp,"Dstdevp");let Dstdevp=_Dstdevp;const _Dsum=class _Dsum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;let result=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];typeof value=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(result+=value)}return NumberValueObject.create(result)}};__name(_Dsum,"Dsum");let Dsum=_Dsum;const _Dvar=class _Dvar extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;const values=[];let sum2=0,count=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];typeof value=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(values.push(value),sum2+=value,count++)}if(count<=1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const mean=sum2/count;let sumOfSquaresDifferences=0;for(let i=0;i<count;i++)sumOfSquaresDifferences+=(values[i]-mean)**2;const result=sumOfSquaresDifferences/(count-1);return NumberValueObject.create(result)}};__name(_Dvar,"Dvar");let Dvar=_Dvar;const _Dvarp=class _Dvarp extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(database,field,criteria){const{isError:databaseIsError,errorObject:databaseErrorObject,databaseValues}=checkDatabase(database);if(databaseIsError)return databaseErrorObject;const{isError:fieldIsError,errorObject:filedErrorObject,fieldIndex}=checkField(field,databaseValues);if(fieldIsError)return filedErrorObject;const{isError:criteriaIsError,errorObject:criteriaErrorObject,criteriaValues}=checkCriteria(criteria);if(criteriaIsError)return criteriaErrorObject;const values=[];let sum2=0,count=0;for(let r=1;r<databaseValues.length;r++){const value=databaseValues[r][fieldIndex];typeof value=="number"&&isCriteriaMatch(criteriaValues,databaseValues,r)&&(values.push(value),sum2+=value,count++)}if(count===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const mean=sum2/count;let sumOfSquaresDifferences=0;for(let i=0;i<count;i++)sumOfSquaresDifferences+=(values[i]-mean)**2;const result=sumOfSquaresDifferences/count;return NumberValueObject.create(result)}};__name(_Dvarp,"Dvarp");let Dvarp=_Dvarp;var FUNCTION_NAMES_DATABASE=(FUNCTION_NAMES_DATABASE2=>(FUNCTION_NAMES_DATABASE2.DAVERAGE="DAVERAGE",FUNCTION_NAMES_DATABASE2.DCOUNT="DCOUNT",FUNCTION_NAMES_DATABASE2.DCOUNTA="DCOUNTA",FUNCTION_NAMES_DATABASE2.DGET="DGET",FUNCTION_NAMES_DATABASE2.DMAX="DMAX",FUNCTION_NAMES_DATABASE2.DMIN="DMIN",FUNCTION_NAMES_DATABASE2.DPRODUCT="DPRODUCT",FUNCTION_NAMES_DATABASE2.DSTDEV="DSTDEV",FUNCTION_NAMES_DATABASE2.DSTDEVP="DSTDEVP",FUNCTION_NAMES_DATABASE2.DSUM="DSUM",FUNCTION_NAMES_DATABASE2.DVAR="DVAR",FUNCTION_NAMES_DATABASE2.DVARP="DVARP",FUNCTION_NAMES_DATABASE2))(FUNCTION_NAMES_DATABASE||{});const functionDatabase=[[Daverage,FUNCTION_NAMES_DATABASE.DAVERAGE],[Dcount,FUNCTION_NAMES_DATABASE.DCOUNT],[Dcounta,FUNCTION_NAMES_DATABASE.DCOUNTA],[Dget,FUNCTION_NAMES_DATABASE.DGET],[Dmax,FUNCTION_NAMES_DATABASE.DMAX],[Dmin,FUNCTION_NAMES_DATABASE.DMIN],[Dproduct,FUNCTION_NAMES_DATABASE.DPRODUCT],[Dstdev,FUNCTION_NAMES_DATABASE.DSTDEV],[Dstdevp,FUNCTION_NAMES_DATABASE.DSTDEVP],[Dsum,FUNCTION_NAMES_DATABASE.DSUM],[Dvar,FUNCTION_NAMES_DATABASE.DVAR],[Dvarp,FUNCTION_NAMES_DATABASE.DVARP]];var FUNCTION_NAMES_DATE=(FUNCTION_NAMES_DATE2=>(FUNCTION_NAMES_DATE2.DATE="DATE",FUNCTION_NAMES_DATE2.DATEDIF="DATEDIF",FUNCTION_NAMES_DATE2.DATEVALUE="DATEVALUE",FUNCTION_NAMES_DATE2.DAY="DAY",FUNCTION_NAMES_DATE2.DAYS="DAYS",FUNCTION_NAMES_DATE2.DAYS360="DAYS360",FUNCTION_NAMES_DATE2.EDATE="EDATE",FUNCTION_NAMES_DATE2.EOMONTH="EOMONTH",FUNCTION_NAMES_DATE2.HOUR="HOUR",FUNCTION_NAMES_DATE2.ISOWEEKNUM="ISOWEEKNUM",FUNCTION_NAMES_DATE2.MINUTE="MINUTE",FUNCTION_NAMES_DATE2.MONTH="MONTH",FUNCTION_NAMES_DATE2.NETWORKDAYS="NETWORKDAYS",FUNCTION_NAMES_DATE2.NETWORKDAYS_INTL="NETWORKDAYS.INTL",FUNCTION_NAMES_DATE2.NOW="NOW",FUNCTION_NAMES_DATE2.SECOND="SECOND",FUNCTION_NAMES_DATE2.TIME="TIME",FUNCTION_NAMES_DATE2.TIMEVALUE="TIMEVALUE",FUNCTION_NAMES_DATE2.TODAY="TODAY",FUNCTION_NAMES_DATE2.WEEKDAY="WEEKDAY",FUNCTION_NAMES_DATE2.WEEKNUM="WEEKNUM",FUNCTION_NAMES_DATE2.WORKDAY="WORKDAY",FUNCTION_NAMES_DATE2.WORKDAY_INTL="WORKDAY.INTL",FUNCTION_NAMES_DATE2.YEAR="YEAR",FUNCTION_NAMES_DATE2.YEARFRAC="YEARFRAC",FUNCTION_NAMES_DATE2))(FUNCTION_NAMES_DATE||{});const DEFAULT_DATE_FORMAT="yyyy/mm/dd;@",DEFAULT_NOW_FORMAT="yyyy/mm/dd hh:mm",DEFAULT_TIME_FORMAT="h:mm A/P";function excelDateSerial(date){const baseDate=new Date(Date.UTC(1900,0,1)),leapDayDate=new Date(Date.UTC(1900,1,28)),dateInUTC=Date.UTC(date.getFullYear(),date.getMonth(),date.getDate());let dayDifference=(dateInUTC-baseDate.getTime())/(1e3*3600*24);return dateInUTC>leapDayDate.getTime()&&(dayDifference+=1),Math.floor(dayDifference)+1}__name(excelDateSerial,"excelDateSerial");function excelDateTimeSerial(date){const baseDate=new Date(Date.UTC(1900,0,1,0,0,0)),leapDayDate=new Date(Date.UTC(1900,1,28,0,0,0));let dayDifference=(date.getTime()-baseDate.getTime())/(1e3*3600*24);return date>leapDayDate&&(dayDifference+=1),dayDifference+1}__name(excelDateTimeSerial,"excelDateTimeSerial");function excelSerialToDate(serial){const baseDate=new Date(Date.UTC(1900,0,1)),leapDayDate=new Date(Date.UTC(1900,1,28));let dayDifference=Math.floor(serial)-1;return dayDifference>(leapDayDate.getTime()-baseDate.getTime())/(1e3*3600*24)&&(dayDifference-=1),new Date(baseDate.getTime()+dayDifference*(1e3*3600*24))}__name(excelSerialToDate,"excelSerialToDate");function excelSerialToDateTime(serial){const baseDate=new Date(Date.UTC(1900,0,1,0,0,0)),leapDayDate=new Date(Date.UTC(1900,1,28,0,0,0));let dayDifference=serial-1;return dayDifference>(leapDayDate.getTime()-baseDate.getTime())/(1e3*3600*24)&&(dayDifference-=1),dayDifference<0&&(dayDifference=serial),new Date(baseDate.getTime()+dayDifference*(1e3*3600*24))}__name(excelSerialToDateTime,"excelSerialToDateTime");function isValidDateStr(dateStr){if(!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(dateStr))return!1;const normalizedDateStr=dateStr.replace(/-/g,"/").replace(/T.+/,""),dateWithTime=new Date(`${normalizedDateStr}`);if(Number.isNaN(dateWithTime.getTime()))return!1;const year=dateWithTime.getFullYear(),month=(dateWithTime.getMonth()+1).toString().padStart(2,"0"),day=dateWithTime.getDate().toString().padStart(2,"0"),reconstructedDateStr=`${year}-${month}-${day}`;return dateStr.replace(/\//g,"-").split("-").map(v=>v.padStart(2,"0")).join("-")===reconstructedDateStr}__name(isValidDateStr,"isValidDateStr");function parseFormattedDate(value){return core.numfmt.parseDate(value)}__name(parseFormattedDate,"parseFormattedDate");function parseFormattedValue(value){return core.numfmt.parseValue(value)}__name(parseFormattedValue,"parseFormattedValue");function parseFormattedTime(value){return core.numfmt.parseTime(value)}__name(parseFormattedTime,"parseFormattedTime");function isDate(format){return core.numfmt.isDate(format)}__name(isDate,"isDate");const weekendNumberMap={1:[6,0],2:[0,1],3:[1,2],4:[2,3],5:[3,4],6:[4,5],7:[5,6],11:[0],12:[1],13:[2],14:[3],15:[4],16:[5],17:[6]};function isValidWeekend(weekend){return!!(typeof weekend=="string"&&/^[0|1]{7}/.test(weekend)||weekendNumberMap[Number(weekend)])}__name(isValidWeekend,"isValidWeekend");function getWeekendArray(weekend){if(!isValidWeekend(weekend))return[];if(typeof weekend=="string"&&/^[0|1]{7}/.test(weekend)){const result=[];for(let i=1;i<=weekend.length;i++)`${weekend[i-1]}`=="1"&&(i===weekend.length?result.push(0):result.push(i));return result}return weekendNumberMap[Number(weekend)]||[]}__name(getWeekendArray,"getWeekendArray");function countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekend=1,holidays){const weekendArray=getWeekendArray(weekend),start=Math.floor(startDateSerialNumber),end=Math.floor(endDateSerialNumber),startSerialNumber=end>start?start:end;let workingDays=0;const daysDiff=Math.abs(Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber))+1;for(let i=0;i<daysDiff;i++){const currentDateSerialNumber=startSerialNumber+i;if(holidays&&holidays.length>0&&holidays.some(item=>Math.floor(item)===currentDateSerialNumber))continue;const weekDay=getWeekDayByDateSerialNumber(currentDateSerialNumber);weekendArray.includes(weekDay)||workingDays++}return end>start?workingDays:-workingDays}__name(countWorkingDays,"countWorkingDays");function getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekend=1,holidays){const weekendArray=getWeekendArray(weekend),_startDateSerialNumber=Math.floor(startDateSerialNumber);let targetDateSerialNumber=_startDateSerialNumber,days=Math.abs(workingDays);for(let i=1;i<=days;i++){const currentDateSerialNumber=workingDays<0?_startDateSerialNumber-i:_startDateSerialNumber+i;if(currentDateSerialNumber<0)return ErrorValueObject.create(ErrorType$1.NUM);if(holidays&&holidays.length>0&&holidays.some(item=>Math.floor(item)===currentDateSerialNumber)){days++;continue}const weekDay=getWeekDayByDateSerialNumber(currentDateSerialNumber);if(weekendArray.includes(weekDay)){days++;continue}targetDateSerialNumber=currentDateSerialNumber}return targetDateSerialNumber}__name(getDateSerialNumberByWorkingDays,"getDateSerialNumberByWorkingDays");function getDateSerialNumberByObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){let dateSerial;if(parseFormattedDate(`${dateValue}`))dateSerial=parseFormattedDate(`${dateValue}`).v;else if(parseFormattedTime(`${dateValue}`))dateSerial=parseFormattedTime(`${dateValue}`).v;else if(core.isRealNum(dateValue))dateSerial=+dateValue;else return ErrorValueObject.create(ErrorType$1.VALUE);return dateSerial instanceof Date&&(dateSerial=excelDateTimeSerial(dateSerial)),+dateSerial<0||+dateSerial>2958465?ErrorValueObject.create(ErrorType$1.NUM):+dateSerial}else{const dateSerial=+serialNumberObject.getValue();return dateSerial<0||dateSerial>2958465?ErrorValueObject.create(ErrorType$1.NUM):dateSerial}}__name(getDateSerialNumberByObject,"getDateSerialNumberByObject");function getWeekDayByDateSerialNumber(dateSerialNumber){const isDate19000229=Math.floor(dateSerialNumber)===60;let date=excelSerialToDate(dateSerialNumber);const dateTime=new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate())).getTime(),leapDayDateTime=new Date(Date.UTC(1900,1,28)).getTime();return!isDate19000229&&dateTime<=leapDayDateTime&&(date=new Date(dateTime-24*3600*1e3)),new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate())).getUTCDay()}__name(getWeekDayByDateSerialNumber,"getWeekDayByDateSerialNumber");function getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis){switch(basis){case 0:return getDaysByNASD(startDateSerialNumber,endDateSerialNumber);case 1:return getDaysByActual(startDateSerialNumber,endDateSerialNumber);case 2:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:360};case 3:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:365};case 4:return getDaysByEuropean(startDateSerialNumber,endDateSerialNumber);default:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:365}}}__name(getTwoDateDaysByBasis,"getTwoDateDaysByBasis");function getDaysByNASD(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth()+1:1;let startDay=startDateSerialNumber>0?startDateDate.getUTCDate():0,endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,endMonth=endDateSerialNumber>0?endDateDate.getUTCMonth()+1:1,endDay=endDateSerialNumber>0?endDateDate.getUTCDate():0;startMonth===2?excelSerialToDate(startDateSerialNumber+1).getUTCMonth()+1===3&&(startDay=30):startDay===31&&(startDay=30),endDay===31&&(startDay<30?(endDateDate=excelSerialToDate(endDateSerialNumber+1),endYear=endDateDate.getUTCFullYear(),endMonth=endDateDate.getUTCMonth()+1,endDay=endDateDate.getUTCDate()):endDay=30);const daysInYears=(endYear-startYear)*360,daysInStartMonth=endDateSerialNumber>=startDateSerialNumber?30-startDay:-startDay,daysInEndMonth=endDateSerialNumber>=startDateSerialNumber?endDay:endDay-30,daysInMidMonths=(endDateSerialNumber>=startDateSerialNumber?endMonth-startMonth-1:endMonth-startMonth+1)*30;return{days:Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths),yearDays:360}}__name(getDaysByNASD,"getDaysByNASD");function getDaysByActual(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,totalDays=Math.abs(endDateSerialNumber-startDateSerialNumber),totalYear=Math.abs(endYear-startYear)+1;let startYearFirstDaySerialNumber,endYearLastDaySerialNumber;if(endYear<startYear){const startYearFirstDay=new Date(Date.UTC(endYear,0,1)),endYearLastDay=new Date(Date.UTC(startYear,11,31));startYearFirstDaySerialNumber=excelDateSerial(startYearFirstDay),endYearLastDaySerialNumber=excelDateSerial(endYearLastDay),endYear===1900&&(startYearFirstDaySerialNumber+=1)}else{const startYearFirstDay=new Date(Date.UTC(startYear,0,1)),endYearLastDay=new Date(Date.UTC(endYear,11,31));startYearFirstDaySerialNumber=excelDateSerial(startYearFirstDay),endYearLastDaySerialNumber=excelDateSerial(endYearLastDay),startYear===1900&&(startYearFirstDaySerialNumber+=1)}return{days:totalDays,yearDays:(endYearLastDaySerialNumber-startYearFirstDaySerialNumber+1)/totalYear}}__name(getDaysByActual,"getDaysByActual");function getDaysByEuropean(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth()+1:1;let startDay=startDateSerialNumber>0?startDateDate.getUTCDate():0;const endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,endMonth=endDateSerialNumber>0?endDateDate.getUTCMonth()+1:1;let endDay=endDateSerialNumber>0?endDateDate.getUTCDate():0;startDay===31&&(startDay=30),endDay===31&&(endDay=30);const daysInYears=(endYear-startYear)*360,daysInStartMonth=endDateSerialNumber>=startDateSerialNumber?30-startDay:-startDay,daysInEndMonth=endDateSerialNumber>=startDateSerialNumber?endDay:endDay-30,daysInMidMonths=(endDateSerialNumber>=startDateSerialNumber?endMonth-startMonth-1:endMonth-startMonth+1)*30;return{days:Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths),yearDays:360}}__name(getDaysByEuropean,"getDaysByEuropean");function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}__name(isLeapYear,"isLeapYear");function isLeapYear1900(year){return year%4===0&&year%100!==0||year%400===0||year===1900}__name(isLeapYear1900,"isLeapYear1900");const daysInMonthL=[31,29,31,30,31,30,31,31,30,31,30,31],daysInMonthR=[31,28,31,30,31,30,31,31,30,31,30,31];function getDaysInMonth(year,month){return isLeapYear(year)?daysInMonthL[month]:daysInMonthR[month]}__name(getDaysInMonth,"getDaysInMonth");function getDaysInYear(year){return isLeapYear1900(year)?366:365}__name(getDaysInYear,"getDaysInYear");function getNormalYearDaysByBasis(dateSerialNumber,basis){switch(basis){case 0:case 2:case 4:return 360;case 1:return getDaysInYear(excelSerialToDate(dateSerialNumber).getUTCFullYear());case 3:return 365;default:return-1}}__name(getNormalYearDaysByBasis,"getNormalYearDaysByBasis");function lastDayOfMonth(year,month,day){return getDaysInMonth(year,month)===day}__name(lastDayOfMonth,"lastDayOfMonth");function dateAddMonths(date,months){let year=date.getUTCFullYear(),month=date.getUTCMonth();const day=date.getUTCDate();return lastDayOfMonth(year,month,day)?(date.setUTCDate(1),date.setUTCMonth(date.getUTCMonth()+months),year=date.getUTCFullYear(),month=date.getUTCMonth(),date.setUTCDate(getDaysInMonth(year,month))):date.setUTCMonth(date.getUTCMonth()+months),date}__name(dateAddMonths,"dateAddMonths");const _DateFunction=class _DateFunction extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(year,month,day){if(year.isError())return year;if(month.isError())return month;if(day.isError())return day;const maxRowLength=Math.max(year.isArray()?year.getRowCount():1,month.isArray()?month.getRowCount():1,day.isArray()?day.getRowCount():1),maxColumnLength=Math.max(year.isArray()?year.getColumnCount():1,month.isArray()?month.getColumnCount():1,day.isArray()?day.getColumnCount():1),yearArray=expandArrayValueObject(maxRowLength,maxColumnLength,year),monthArray=expandArrayValueObject(maxRowLength,maxColumnLength,month),dayArray=expandArrayValueObject(maxRowLength,maxColumnLength,day);return yearArray.map((yearValueObject,rowIndex,columnIndex)=>{const monthValueObject=monthArray.get(rowIndex,columnIndex)||NullValueObject.create(),dayValueObject=dayArray.get(rowIndex,columnIndex)||NullValueObject.create();if(yearValueObject.isError())return yearValueObject;if(monthValueObject.isError())return monthValueObject;if(dayValueObject.isError())return dayValueObject;if(yearValueObject.isString()||monthValueObject.isString()||dayValueObject.isString())return ErrorValueObject.create(ErrorType$1.VALUE);let yearValue=+yearValueObject.getValue();const monthValue=Math.floor(+monthValueObject.getValue()),dayValue=+dayValueObject.getValue();if(yearValue<0||yearValue>9999)return ErrorValueObject.create(ErrorType$1.NUM);yearValue>=0&&yearValue<1899&&(yearValue+=1900);const date=new Date(yearValue,monthValue-1,dayValue),currentSerial=excelDateSerial(date);return currentSerial<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)})}};__name(_DateFunction,"DateFunction");let DateFunction=_DateFunction;const _Datedif=class _Datedif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(startDate,endDate,unit){let _startDate=startDate,_endDate=endDate,_unit=unit;if(_startDate.isArray()&&(_startDate=_startDate.get(0,0)),_endDate.isArray()&&(_endDate=_endDate.get(0,0)),_unit.isArray()&&(_unit=_unit.get(0,0)),_startDate.isError())return _startDate;if(_endDate.isError())return _endDate;if(_unit.isError())return _unit;const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);return typeof endDateSerialNumber!="number"?endDateSerialNumber:endDateSerialNumber<startDateSerialNumber||!_unit.isString()?ErrorValueObject.create(ErrorType$1.NUM):this._getResultByUnit(startDateSerialNumber,endDateSerialNumber,_unit)}_getResultByUnit(startDateSerialNumber,endDateSerialNumber,unit){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateDate.getUTCFullYear(),startMonth=startDateDate.getUTCMonth()+1,startDay=startDateDate.getUTCDate(),endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateDate.getUTCFullYear(),endMonth=endDateDate.getUTCMonth()+1,endDay=endDateDate.getUTCDate(),unitValue=`${unit.getValue()}`.toLocaleUpperCase();let diff=0,newDate;switch(unitValue){case"Y":diff=endYear-startYear,(endMonth<startMonth||endMonth===startMonth&&endDay<startDay)&&(diff-=1);break;case"M":diff=(endYear-startYear)*12+endMonth-startMonth,endDay<startDay&&(diff-=1);break;case"D":diff=Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber);break;case"MD":diff=endDay-startDay,endDay<startDay&&(newDate=new Date(Date.UTC(endYear,endMonth-1,0)),diff+=getDaysInMonth(newDate.getUTCFullYear(),newDate.getUTCMonth()));break;case"YM":diff=endMonth-startMonth,(endMonth<startMonth||endMonth===startMonth&&endDay<startDay)&&(diff+=12),endDay<startDay&&(diff-=1);break;case"YD":newDate=new Date(Date.UTC(startYear,endMonth-1,endDay)),(endMonth<startMonth||endMonth===startMonth&&endDay<startDay)&&(newDate=new Date(Date.UTC(startYear+1,endMonth-1,endDay))),diff=Math.floor(excelDateSerial(newDate))-Math.floor(startDateSerialNumber);break;default:return ErrorValueObject.create(ErrorType$1.NUM)}return NumberValueObject.create(diff)}};__name(_Datedif,"Datedif");let Datedif=_Datedif;const _Datevalue=class _Datevalue extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(dateText){return dateText.isError()?dateText:dateText.isArray()?dateText.map(dateTextObject=>this._handleSingleObject(dateTextObject)):this._handleSingleObject(dateText)}_handleSingleObject(dateTextObject){if(dateTextObject.isString()){const value=`${dateTextObject.getValue()}`,parsedDate=parseFormattedValue(value);if(parsedDate){let{v,z}=parsedDate;if(z&&isDate(z))return v instanceof Date&&(v=excelDateTimeSerial(v)),NumberValueObject.create(Math.trunc(+v))}}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Datevalue,"Datevalue");let Datevalue=_Datevalue;const _Day=class _Day extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+serialNumberObject.getValue();if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(0);date=excelSerialToDate(dateSerial)}const month=date.getDate();return NumberValueObject.create(month)}};__name(_Day,"Day");let Day=_Day;const _Days=class _Days extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(endDate,startDate){if(endDate.isError())return endDate;if(startDate.isError())return startDate;const maxRowLength=Math.max(endDate.isArray()?endDate.getRowCount():1,startDate.isArray()?startDate.getRowCount():1),maxColumnLength=Math.max(endDate.isArray()?endDate.getColumnCount():1,startDate.isArray()?startDate.getColumnCount():1),endDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,endDate),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate),resultArray=endDateArray.map((endDateObject,rowIndex,columnIndex)=>{const startDateObject=startDateArray.get(rowIndex,columnIndex);if(endDateObject.isError())return endDateObject;if(startDateObject.isError())return startDateObject;const endDateSerialNumber=getDateSerialNumberByObject(endDateObject);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;const startDateSerialNumber=getDateSerialNumberByObject(startDateObject);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const result=Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber);return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Days,"Days");let Days=_Days;const _Days360=class _Days360 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,method){const _method=method!=null?method:BooleanValueObject.create(!1);if(startDate.isError())return startDate;if(endDate.isError())return endDate;if(_method.isError())return _method;const maxRowLength=Math.max(startDate.isArray()?startDate.getRowCount():1,endDate.isArray()?endDate.getRowCount():1,_method.isArray()?_method.getRowCount():1),maxColumnLength=Math.max(startDate.isArray()?startDate.getColumnCount():1,endDate.isArray()?endDate.getColumnCount():1,_method.isArray()?_method.getColumnCount():1),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate,ErrorValueObject.create(ErrorType$1.NA)),endDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,endDate,ErrorValueObject.create(ErrorType$1.NA)),methodArray=expandArrayValueObject(maxRowLength,maxColumnLength,_method,ErrorValueObject.create(ErrorType$1.NA)),resultArray=startDateArray.map((startDateObject,rowIndex,columnIndex)=>{const endDateObject=endDateArray.get(rowIndex,columnIndex);let methodObject=methodArray.get(rowIndex,columnIndex);if(startDateObject.isError())return startDateObject;const startDateSerialNumber=getDateSerialNumberByObject(startDateObject);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;if(endDateObject.isError())return endDateObject;const endDateSerialNumber=getDateSerialNumberByObject(endDateObject);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(methodObject.isString()&&(methodObject=methodObject.convertToNumberObjectValue()),methodObject.isError())return methodObject;const methodValue=+methodObject.getValue(),{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,methodValue?4:0),result=endDateSerialNumber>=startDateSerialNumber?days:-days;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Days360,"Days360");let Days360=_Days360;const _Edate=class _Edate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(startDate,months){if(startDate.isError())return startDate;if(months.isError())return months;const maxRowLength=Math.max(startDate.isArray()?startDate.getRowCount():1,months.isArray()?months.getRowCount():1),maxColumnLength=Math.max(startDate.isArray()?startDate.getColumnCount():1,months.isArray()?months.getColumnCount():1),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate),monthsArray=expandArrayValueObject(maxRowLength,maxColumnLength,months);return startDateArray.map((startDateObject,rowIndex,columnIndex)=>{const monthsValueObject=monthsArray.get(rowIndex,columnIndex)||NullValueObject.create();if(startDateObject.isError())return startDateObject;if(monthsValueObject.isError())return monthsValueObject;if(startDateObject.isString()||startDateObject.isBoolean()||monthsValueObject.isString()||monthsValueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerial=+startDateObject.getValue();if(startDateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);const monthsValue=Math.floor(+monthsValueObject.getValue()),_startDate=excelSerialToDate(startDateSerial),year=_startDate.getUTCFullYear(),month=_startDate.getUTCMonth()+monthsValue,day=_startDate.getUTCDate(),resultDate=new Date(Date.UTC(year,month,day)),currentSerial=excelDateSerial(resultDate);return NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)})}};__name(_Edate,"Edate");let Edate=_Edate;const _Eomonth=class _Eomonth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(startDate,months){let _startDate=startDate,_months=months;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_months.isArray()){const rowCount=_months.getRowCount(),columnCount=_months.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_months=_months.get(0,0)}if(_startDate.isError())return _startDate;if(_months.isError())return _months;const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;if(_months.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth():0,monthsValue=Math.floor(+_months.getValue());if(Number.isNaN(monthsValue))return ErrorValueObject.create(ErrorType$1.VALUE);const targetDate=new Date(Date.UTC(startYear,startMonth+monthsValue+1,0)),result=excelDateSerial(targetDate);return NumberValueObject.create(result)}};__name(_Eomonth,"Eomonth");let Eomonth=_Eomonth;const _Hour=class _Hour extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const hours=excelSerialToDateTime(dateSerialNumber).getUTCHours();return NumberValueObject.create(hours)}};__name(_Hour,"Hour");let Hour=_Hour;const _Isoweeknum=class _Isoweeknum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(date){return date.isError()?date:date.isArray()?date.map(dateObject=>dateObject.isError()?dateObject:this._handleSingleObject(dateObject)):this._handleSingleObject(date)}_handleSingleObject(date){const dateSerialNumber=getDateSerialNumberByObject(date);if(typeof dateSerialNumber!="number")return dateSerialNumber;const currentDate=excelSerialToDate(dateSerialNumber),currentYear=dateSerialNumber>0?currentDate.getUTCFullYear():1900;let yearStart=new Date(Date.UTC(currentYear,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearWeekStartSerialNumber;yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay),dateSerialNumber<yearWeekStartSerialNumber&&(yearStart=new Date(Date.UTC(currentYear-1,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay));const result=Math.ceil((dateSerialNumber-yearWeekStartSerialNumber+1)/7);return NumberValueObject.create(result)}};__name(_Isoweeknum,"Isoweeknum");let Isoweeknum=_Isoweeknum;const _Minute=class _Minute extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const minutes=excelSerialToDateTime(dateSerialNumber).getUTCMinutes();return NumberValueObject.create(minutes)}};__name(_Minute,"Minute");let Minute=_Minute;const _Month=class _Month extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+serialNumberObject.getValue();if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(1);date=excelSerialToDate(dateSerial)}const month=date.getUTCMonth()+1;return NumberValueObject.create(month)}};__name(_Month,"Month");let Month=_Month;const _Networkdays=class _Networkdays extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,holidays){let _startDate=startDate,_endDate=endDate;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_endDate.isArray()){const rowCount=_endDate.getRowCount(),columnCount=_endDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_endDate=_endDate.get(0,0)}if(_endDate.isError())return _endDate;if(holidays!=null&&holidays.isError())return holidays;if(_startDate.isBoolean()||_endDate.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(holidays)return this._getResultByHolidays(startDateSerialNumber,endDateSerialNumber,holidays);const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber);return NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,endDateSerialNumber,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,1,holidaysValueArray);return NumberValueObject.create(result)}};__name(_Networkdays,"Networkdays");let Networkdays=_Networkdays;const _NetworkdaysIntl=class _NetworkdaysIntl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(startDate,endDate,weekend,holidays){return startDate.isError()?startDate:endDate.isError()?endDate:weekend!=null&&weekend.isError()?weekend:holidays!=null&&holidays.isError()?holidays:weekend!=null&&weekend.isArray()?weekend.map(weekendItem=>this._handleSingleObject(startDate,endDate,weekendItem,holidays)):this._handleSingleObject(startDate,endDate,weekend,holidays)}_handleSingleObject(startDate,endDate,weekend,holidays){let _startDate=startDate,_endDate=endDate;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_endDate.isArray()){const rowCount=_endDate.getRowCount(),columnCount=_endDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_endDate=_endDate.get(0,0)}if(_endDate.isError())return _endDate;let weekendValue=1;if(weekend){if(weekendValue=weekend.getValue(),weekend.isBoolean()&&(weekendValue=+weekendValue),weekend.isString()&&!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.NUM)}if(_startDate.isBoolean()||_endDate.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(holidays)return this._getResultByHolidays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidays);const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekendValue);return NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidaysValueArray);return NumberValueObject.create(result)}};__name(_NetworkdaysIntl,"NetworkdaysIntl");let NetworkdaysIntl=_NetworkdaysIntl;const _Now=class _Now extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){const now=new Date,utcNow=new Date(Date.UTC(now.getFullYear(),now.getMonth(),now.getDate(),now.getHours(),now.getMinutes(),now.getSeconds())),currentSerial=excelDateTimeSerial(utcNow);return NumberValueObject.create(currentSerial,DEFAULT_NOW_FORMAT)}};__name(_Now,"Now");let Now=_Now;const _Second=class _Second extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const seconds=excelSerialToDateTime(dateSerialNumber).getUTCSeconds();return NumberValueObject.create(seconds)}};__name(_Second,"Second");let Second=_Second;const _Time=class _Time extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(hour,minute,second){if(hour.isError())return hour;if(minute.isError())return minute;if(second.isError())return second;const maxRowLength=Math.max(hour.isArray()?hour.getRowCount():1,minute.isArray()?minute.getRowCount():1,second.isArray()?second.getRowCount():1),maxColumnLength=Math.max(hour.isArray()?hour.getColumnCount():1,minute.isArray()?minute.getColumnCount():1,second.isArray()?second.getColumnCount():1),hourArray=expandArrayValueObject(maxRowLength,maxColumnLength,hour),minuteArray=expandArrayValueObject(maxRowLength,maxColumnLength,minute),secondArray=expandArrayValueObject(maxRowLength,maxColumnLength,second);return hourArray.map((hourValueObject,rowIndex,columnIndex)=>this._calculateTime(hourValueObject,minuteArray,secondArray,rowIndex,columnIndex))}_calculateTime(hourValueObject,minuteArray,secondArray,rowIndex,columnIndex){let _hourValueObject=hourValueObject,minuteValueObject=minuteArray.get(rowIndex,columnIndex)||NullValueObject.create(),secondValueObject=secondArray.get(rowIndex,columnIndex)||NullValueObject.create();if((_hourValueObject.isString()||_hourValueObject.isBoolean())&&(_hourValueObject=_hourValueObject.convertToNumberObjectValue()),(minuteValueObject.isString()||minuteValueObject.isBoolean())&&(minuteValueObject=minuteValueObject.convertToNumberObjectValue()),(secondValueObject.isString()||secondValueObject.isBoolean())&&(secondValueObject=secondValueObject.convertToNumberObjectValue()),_hourValueObject.isError())return _hourValueObject;if(minuteValueObject.isError())return minuteValueObject;if(secondValueObject.isError())return secondValueObject;let hourValue=Math.floor(+_hourValueObject.getValue()),minuteValue=Math.floor(+minuteValueObject.getValue()),secondValue=Math.floor(+secondValueObject.getValue());if(hourValue<0||minuteValue<0||secondValue<0||hourValue>32767||minuteValue>32767||secondValue>32767)return ErrorValueObject.create(ErrorType$1.NUM);minuteValue+=Math.floor(secondValue/60),secondValue%=60,hourValue+=Math.floor(minuteValue/60),minuteValue%=60,hourValue%=24;const fractionOfDay=(hourValue*3600+minuteValue*60+secondValue)/86400;return NumberValueObject.create(fractionOfDay,DEFAULT_TIME_FORMAT)}};__name(_Time,"Time");let Time=_Time;const _Timevalue=class _Timevalue extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(timeText){return timeText.isError()?timeText:timeText.isArray()?timeText.map(timeTextObject=>this._handleSingleObject(timeTextObject)):this._handleSingleObject(timeText)}_handleSingleObject(timeTextObject){if(timeTextObject.isString()){const value=`${timeTextObject.getValue()}`,parsedTime=parseFormattedValue(value);if(parsedTime){let{v,z}=parsedTime;if(z&&isDate(z))return v instanceof Date&&(v=excelDateTimeSerial(v)),NumberValueObject.create(getFractionalPart(+v))}}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Timevalue,"Timevalue");let Timevalue=_Timevalue;const _Today=class _Today extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){const currentSerial=excelDateSerial(new Date);return NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)}};__name(_Today,"Today");let Today=_Today;const _Weekday=class _Weekday extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2);__publicField(this,"_returnTypeMap",{1:[1,2,3,4,5,6,7],2:[7,1,2,3,4,5,6],3:[6,0,1,2,3,4,5],11:[7,1,2,3,4,5,6],12:[6,7,1,2,3,4,5],13:[5,6,7,1,2,3,4],14:[4,5,6,7,1,2,3],15:[3,4,5,6,7,1,2],16:[2,3,4,5,6,7,1],17:[1,2,3,4,5,6,7]})}calculate(serialNumber,returnType){const _returnType=returnType!=null?returnType:NumberValueObject.create(1);if(serialNumber.isError())return serialNumber;if(_returnType.isError())return _returnType;const maxRowLength=Math.max(serialNumber.isArray()?serialNumber.getRowCount():1,_returnType.isArray()?_returnType.getRowCount():1),maxColumnLength=Math.max(serialNumber.isArray()?serialNumber.getColumnCount():1,_returnType.isArray()?_returnType.getColumnCount():1),serialNumberArray=expandArrayValueObject(maxRowLength,maxColumnLength,serialNumber,ErrorValueObject.create(ErrorType$1.NA)),returnTypeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_returnType,ErrorValueObject.create(ErrorType$1.NA)),resultArray=serialNumberArray.map((serialNumberObject,rowIndex,columnIndex)=>{const returnTypeObject=returnTypeArray.get(rowIndex,columnIndex);return this._handleSingleObject(serialNumberObject,returnTypeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(serialNumberObject,returnTypeObject){let _returnTypeObject=returnTypeObject;if(serialNumberObject.isError())return serialNumberObject;if(_returnTypeObject.isError())return _returnTypeObject;const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(_returnTypeObject.isString()&&(_returnTypeObject=_returnTypeObject.convertToNumberObjectValue(),_returnTypeObject.isError()))return _returnTypeObject;const returnTypeValue=Math.floor(+_returnTypeObject.getValue());if(!this._returnTypeMap[returnTypeValue])return ErrorValueObject.create(ErrorType$1.NUM);const weekDay=getWeekDayByDateSerialNumber(dateSerialNumber),result=this._returnTypeMap[returnTypeValue][weekDay];return NumberValueObject.create(result)}};__name(_Weekday,"Weekday");let Weekday=_Weekday;const _Weeknum=class _Weeknum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2);__publicField(this,"_returnTypeMap",{1:0,2:1,11:1,12:2,13:3,14:4,15:5,16:6,17:0,21:4})}calculate(serialNumber,returnType){let _serialNumber=serialNumber,_returnType=returnType!=null?returnType:NumberValueObject.create(1);if(_serialNumber.isArray()){const rowCount=_serialNumber.getRowCount(),columnCount=_serialNumber.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_serialNumber=_serialNumber.get(0,0)}if(_serialNumber.isError())return _serialNumber;if(_returnType.isArray()){const rowCount=_returnType.getRowCount(),columnCount=_returnType.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_returnType=_returnType.get(0,0)}if(_returnType.isError())return _returnType;if(_serialNumber.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const dateSerialNumber=getDateSerialNumberByObject(_serialNumber);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(_returnType.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const returnTypeValue=Math.floor(+_returnType.getValue());return Number.isNaN(returnTypeValue)?ErrorValueObject.create(ErrorType$1.VALUE):returnTypeValue in this._returnTypeMap?this._getResult(dateSerialNumber,returnTypeValue):ErrorValueObject.create(ErrorType$1.NUM)}_getResult(dateSerialNumber,returnTypeValue){const currentDate=excelSerialToDate(dateSerialNumber),currentYear=dateSerialNumber>0?currentDate.getUTCFullYear():1900;let yearStart=new Date(Date.UTC(currentYear,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearWeekStartSerialNumber;if(returnTypeValue===21)yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay),dateSerialNumber<yearWeekStartSerialNumber&&(yearStart=new Date(Date.UTC(currentYear-1,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay));else{const weekDay=this._returnTypeMap[returnTypeValue];yearStartWeekDay<weekDay?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay+7-weekDay):yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-weekDay)}const result=Math.ceil((dateSerialNumber-yearWeekStartSerialNumber+1)/7);return NumberValueObject.create(result)}};__name(_Weeknum,"Weeknum");let Weeknum=_Weeknum;const _Workday=class _Workday extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,days,holidays){let _startDate=startDate,_days=days;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_days.isArray()){const rowCount=_days.getRowCount(),columnCount=_days.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_days=_days.get(0,0)}if(_days.isError())return _days;if(holidays!=null&&holidays.isError())return holidays;if(_startDate.isBoolean()||_days.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const workingDays=+_days.getValue();if(Number.isNaN(workingDays))return ErrorValueObject.create(ErrorType$1.VALUE);if(holidays)return this._getResultByHolidays(startDateSerialNumber,workingDays,holidays);const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays);return typeof result!="number"?result:NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,workingDays,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,1,holidaysValueArray);return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_Workday,"Workday");let Workday=_Workday;const _WorkdayIntl=class _WorkdayIntl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(startDate,days,weekend,holidays){return startDate.isError()?startDate:days.isError()?days:weekend!=null&&weekend.isError()?weekend:holidays!=null&&holidays.isError()?holidays:weekend!=null&&weekend.isArray()?weekend.map(weekendItem=>this._handleSingleObject(startDate,days,weekendItem,holidays)):this._handleSingleObject(startDate,days,weekend,holidays)}_handleSingleObject(startDate,days,weekend,holidays){const _weekend=weekend!=null?weekend:NumberValueObject.create(1),_startDate=this._checkArrayError(startDate);if(_startDate.isError())return _startDate;const _days=this._checkArrayError(days);if(_days.isError())return _days;if(_startDate.isBoolean()||_days.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const workingDays=+days.getValue();if(Number.isNaN(workingDays))return ErrorValueObject.create(ErrorType$1.VALUE);let weekendValue=_weekend.getValue();if(_weekend.isBoolean()&&(weekendValue=+weekendValue),_weekend.isString()&&(!isValidWeekend(weekendValue)||weekendValue==="1111111"))return ErrorValueObject.create(ErrorType$1.VALUE);if(!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.NUM);if(holidays)return this._getResultByHolidays(startDateSerialNumber,workingDays,weekendValue,holidays);const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekendValue);return typeof result!="number"?result:NumberValueObject.create(result)}_checkArrayError(variant){let _variant=variant;if(_variant.isArray()){const rowCount=_variant.getRowCount(),columnCount=_variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=_variant.get(0,0)}return _variant.isError(),_variant}_getResultByHolidays(startDateSerialNumber,workingDays,weekendValue,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekendValue,holidaysValueArray);return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_WorkdayIntl,"WorkdayIntl");let WorkdayIntl=_WorkdayIntl;const _Year=class _Year extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+dateValue;if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(1900);date=excelSerialToDate(dateSerial)}const year=date.getUTCFullYear();return NumberValueObject.create(year)}};__name(_Year,"Year");let Year=_Year;const _Yearfrac=class _Yearfrac extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);const _startDate=checkVariantErrorIsArray(startDate);if(_startDate.isError())return _startDate;const _endDate=checkVariantErrorIsArray(endDate);if(_endDate.isError())return _endDate;if(_basis=checkVariantErrorIsArray(_basis),_basis.isError())return _basis;if(_startDate.isBoolean()||_endDate.isBoolean()||_basis.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;const basisValue=Math.floor(+_basis.getValue());if(Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(basisValue<0||basisValue>4)return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basisValue),result=days/yearDays;return NumberValueObject.create(result)}};__name(_Yearfrac,"Yearfrac");let Yearfrac=_Yearfrac;const functionDate=[[DateFunction,FUNCTION_NAMES_DATE.DATE],[Datedif,FUNCTION_NAMES_DATE.DATEDIF],[Datevalue,FUNCTION_NAMES_DATE.DATEVALUE],[Day,FUNCTION_NAMES_DATE.DAY],[Days,FUNCTION_NAMES_DATE.DAYS],[Days360,FUNCTION_NAMES_DATE.DAYS360],[Edate,FUNCTION_NAMES_DATE.EDATE],[Eomonth,FUNCTION_NAMES_DATE.EOMONTH],[Hour,FUNCTION_NAMES_DATE.HOUR],[Isoweeknum,FUNCTION_NAMES_DATE.ISOWEEKNUM],[Minute,FUNCTION_NAMES_DATE.MINUTE],[Month,FUNCTION_NAMES_DATE.MONTH],[Networkdays,FUNCTION_NAMES_DATE.NETWORKDAYS],[NetworkdaysIntl,FUNCTION_NAMES_DATE.NETWORKDAYS_INTL],[Now,FUNCTION_NAMES_DATE.NOW],[Second,FUNCTION_NAMES_DATE.SECOND],[Time,FUNCTION_NAMES_DATE.TIME],[Timevalue,FUNCTION_NAMES_DATE.TIMEVALUE],[Today,FUNCTION_NAMES_DATE.TODAY],[Weekday,FUNCTION_NAMES_DATE.WEEKDAY],[Weeknum,FUNCTION_NAMES_DATE.WEEKNUM],[Workday,FUNCTION_NAMES_DATE.WORKDAY],[WorkdayIntl,FUNCTION_NAMES_DATE.WORKDAY_INTL],[Year,FUNCTION_NAMES_DATE.YEAR],[Yearfrac,FUNCTION_NAMES_DATE.YEARFRAC]];var FUNCTION_NAMES_ENGINEERING=(FUNCTION_NAMES_ENGINEERING2=>(FUNCTION_NAMES_ENGINEERING2.BESSELI="BESSELI",FUNCTION_NAMES_ENGINEERING2.BESSELJ="BESSELJ",FUNCTION_NAMES_ENGINEERING2.BESSELK="BESSELK",FUNCTION_NAMES_ENGINEERING2.BESSELY="BESSELY",FUNCTION_NAMES_ENGINEERING2.BIN2DEC="BIN2DEC",FUNCTION_NAMES_ENGINEERING2.BIN2HEX="BIN2HEX",FUNCTION_NAMES_ENGINEERING2.BIN2OCT="BIN2OCT",FUNCTION_NAMES_ENGINEERING2.BITAND="BITAND",FUNCTION_NAMES_ENGINEERING2.BITLSHIFT="BITLSHIFT",FUNCTION_NAMES_ENGINEERING2.BITOR="BITOR",FUNCTION_NAMES_ENGINEERING2.BITRSHIFT="BITRSHIFT",FUNCTION_NAMES_ENGINEERING2.BITXOR="BITXOR",FUNCTION_NAMES_ENGINEERING2.COMPLEX="COMPLEX",FUNCTION_NAMES_ENGINEERING2.CONVERT="CONVERT",FUNCTION_NAMES_ENGINEERING2.DEC2BIN="DEC2BIN",FUNCTION_NAMES_ENGINEERING2.DEC2HEX="DEC2HEX",FUNCTION_NAMES_ENGINEERING2.DEC2OCT="DEC2OCT",FUNCTION_NAMES_ENGINEERING2.DELTA="DELTA",FUNCTION_NAMES_ENGINEERING2.ERF="ERF",FUNCTION_NAMES_ENGINEERING2.ERF_PRECISE="ERF.PRECISE",FUNCTION_NAMES_ENGINEERING2.ERFC="ERFC",FUNCTION_NAMES_ENGINEERING2.ERFC_PRECISE="ERFC.PRECISE",FUNCTION_NAMES_ENGINEERING2.GESTEP="GESTEP",FUNCTION_NAMES_ENGINEERING2.HEX2BIN="HEX2BIN",FUNCTION_NAMES_ENGINEERING2.HEX2DEC="HEX2DEC",FUNCTION_NAMES_ENGINEERING2.HEX2OCT="HEX2OCT",FUNCTION_NAMES_ENGINEERING2.IMABS="IMABS",FUNCTION_NAMES_ENGINEERING2.IMAGINARY="IMAGINARY",FUNCTION_NAMES_ENGINEERING2.IMARGUMENT="IMARGUMENT",FUNCTION_NAMES_ENGINEERING2.IMCONJUGATE="IMCONJUGATE",FUNCTION_NAMES_ENGINEERING2.IMCOS="IMCOS",FUNCTION_NAMES_ENGINEERING2.IMCOSH="IMCOSH",FUNCTION_NAMES_ENGINEERING2.IMCOT="IMCOT",FUNCTION_NAMES_ENGINEERING2.IMCSC="IMCSC",FUNCTION_NAMES_ENGINEERING2.IMCSCH="IMCSCH",FUNCTION_NAMES_ENGINEERING2.IMDIV="IMDIV",FUNCTION_NAMES_ENGINEERING2.IMEXP="IMEXP",FUNCTION_NAMES_ENGINEERING2.IMLN="IMLN",FUNCTION_NAMES_ENGINEERING2.IMLOG10="IMLOG10",FUNCTION_NAMES_ENGINEERING2.IMLOG2="IMLOG2",FUNCTION_NAMES_ENGINEERING2.IMPOWER="IMPOWER",FUNCTION_NAMES_ENGINEERING2.IMPRODUCT="IMPRODUCT",FUNCTION_NAMES_ENGINEERING2.IMREAL="IMREAL",FUNCTION_NAMES_ENGINEERING2.IMSEC="IMSEC",FUNCTION_NAMES_ENGINEERING2.IMSECH="IMSECH",FUNCTION_NAMES_ENGINEERING2.IMSIN="IMSIN",FUNCTION_NAMES_ENGINEERING2.IMSINH="IMSINH",FUNCTION_NAMES_ENGINEERING2.IMSQRT="IMSQRT",FUNCTION_NAMES_ENGINEERING2.IMSUB="IMSUB",FUNCTION_NAMES_ENGINEERING2.IMSUM="IMSUM",FUNCTION_NAMES_ENGINEERING2.IMTAN="IMTAN",FUNCTION_NAMES_ENGINEERING2.OCT2BIN="OCT2BIN",FUNCTION_NAMES_ENGINEERING2.OCT2DEC="OCT2DEC",FUNCTION_NAMES_ENGINEERING2.OCT2HEX="OCT2HEX",FUNCTION_NAMES_ENGINEERING2))(FUNCTION_NAMES_ENGINEERING||{});const _Besseli=class _Besseli extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besseli(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besseli,"Besseli");let Besseli=_Besseli;const _Besselj=class _Besselj extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besselj(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besselj,"Besselj");let Besselj=_Besselj;const _Besselk=class _Besselk extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besselk(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besselk,"Besselk");let Besselk=_Besselk;const _Bessely=class _Bessely extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.bessely(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Bessely,"Bessely");let Bessely=_Bessely;const _Bin2dec=class _Bin2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;return numberValue.length===10&&numberValue.substring(0,1)==="1"?result=Number.parseInt(numberValue.substring(1),2)-512:result=Number.parseInt(numberValue,2),NumberValueObject.create(result)}};__name(_Bin2dec,"Bin2dec");let Bin2dec=_Bin2dec;const _Bin2hex=class _Bin2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue.length===10&&numberValue.substring(0,1)==="1")result=(0xfffffffe00+Number.parseInt(numberValue.substring(1),2)).toString(16);else if(result=Number.parseInt(numberValue,2).toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Bin2hex,"Bin2hex");let Bin2hex=_Bin2hex;const _Bin2oct=class _Bin2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue.length===10&&numberValue.substring(0,1)==="1")result=(1073741312+Number.parseInt(numberValue.substring(1),2)).toString(8);else if(result=Number.parseInt(numberValue,2).toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Bin2oct,"Bin2oct");let Bin2oct=_Bin2oct;const _Bitand=class _Bitand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=number1Value&number2Value;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitand,"Bitand");let Bitand=_Bitand;const _Bitlshift=class _Bitlshift extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,shiftAmount){if(number.isError())return number;if(shiftAmount.isError())return shiftAmount;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,shiftAmount.isArray()?shiftAmount.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,shiftAmount.isArray()?shiftAmount.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),shiftAmountArray=expandArrayValueObject(maxRowLength,maxColumnLength,shiftAmount,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((itemObject,rowIndex,columnIndex)=>{let numberObject=itemObject;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;let shiftAmountObject=shiftAmountArray.get(rowIndex,columnIndex);if(shiftAmountObject.isString()&&(shiftAmountObject=shiftAmountObject.convertToNumberObjectValue()),shiftAmountObject.isError())return shiftAmountObject;const numberValue=+numberObject.getValue();let shiftAmountValue=+shiftAmountObject.getValue();if(numberValue<0||Math.floor(numberValue)!==numberValue||numberValue>0xffffffffffff||Math.abs(shiftAmountValue)>53)return ErrorValueObject.create(ErrorType$1.NUM);shiftAmountValue=Math.trunc(shiftAmountValue);const result=Number(shiftAmountValue>=0?BigInt(numberValue)<<BigInt(shiftAmountValue):BigInt(numberValue)>>BigInt(-shiftAmountValue));return result>0xffffffffffff?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitlshift,"Bitlshift");let Bitlshift=_Bitlshift;const _Bitor=class _Bitor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=Number(BigInt(number1Value)|BigInt(number2Value));return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitor,"Bitor");let Bitor=_Bitor;const _Bitrshift=class _Bitrshift extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,shiftAmount){if(number.isError())return number;if(shiftAmount.isError())return shiftAmount;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,shiftAmount.isArray()?shiftAmount.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,shiftAmount.isArray()?shiftAmount.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),shiftAmountArray=expandArrayValueObject(maxRowLength,maxColumnLength,shiftAmount,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((itemObject,rowIndex,columnIndex)=>{let numberObject=itemObject;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;let shiftAmountObject=shiftAmountArray.get(rowIndex,columnIndex);if(shiftAmountObject.isString()&&(shiftAmountObject=shiftAmountObject.convertToNumberObjectValue()),shiftAmountObject.isError())return shiftAmountObject;const numberValue=+numberObject.getValue();let shiftAmountValue=+shiftAmountObject.getValue();if(numberValue<0||Math.floor(numberValue)!==numberValue||numberValue>0xffffffffffff||Math.abs(shiftAmountValue)>53)return ErrorValueObject.create(ErrorType$1.NUM);shiftAmountValue=Math.trunc(shiftAmountValue);const result=Number(shiftAmountValue>=0?BigInt(numberValue)>>BigInt(shiftAmountValue):BigInt(numberValue)<<BigInt(-shiftAmountValue));return result>0xffffffffffff?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitrshift,"Bitrshift");let Bitrshift=_Bitrshift;const _Bitxor=class _Bitxor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=number1Value^number2Value;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitxor,"Bitxor");let Bitxor=_Bitxor;Decimal$1.prototype.cos=function(){const num=this.toNumber();return new Decimal$1(Math.cos(num))};var _a20;let Complex$1=(_a20=class{constructor(inumber){__publicField(this,"_inumber","");__publicField(this,"_realNum",0);__publicField(this,"_iNum",0);__publicField(this,"_suffix","");__publicField(this,"_isError",!1);if(`${inumber}`.trim()===""){this._isError=!0;return}this._inumber=inumber,this._getImReal(),this._getImAginary(),this._getImSuffix()}static getComplex(realNum,iNum,suffix){const _realNum=new Decimal$1(realNum).toSignificantDigits(15).toNumber(),_iNum=new Decimal$1(iNum).toSignificantDigits(15).toNumber(),_suffix=suffix===""?"i":suffix;let result;if(_realNum===0&&_iNum===0)result=0;else if(_realNum===0)result=_iNum===1?_suffix:`${_iNum}${_suffix}`;else if(_iNum===0)result=_realNum;else{const sign2=_iNum>0?"+":"",suffixStr=_iNum===1?_suffix:`${_iNum}${_suffix}`;result=`${_realNum}${sign2}${suffixStr}`}return result}static createByComplexStr(realNum,iNum,suffix){const complexStr=_a20.getComplex(realNum,iNum,suffix);return new _a20(complexStr)}_getImReal(){if(this._inumber===0||this._inumber==="0"){this._realNum=0;return}const inumberStr=`${this._inumber}`;if(["i","+i","1i","+1i","-i","-1i","j","+j","1j","+1j","-j","-1j"].indexOf(inumberStr)>=0){this._realNum=0;return}let plus2=inumberStr.indexOf("+"),minus2=inumberStr.indexOf("-");plus2===0&&(plus2=inumberStr.indexOf("+",1)),minus2===0&&(minus2=inumberStr.indexOf("-",1));const last=inumberStr.substring(inumberStr.length-1,inumberStr.length),unit=last==="i"||last==="j";if(plus2>=0||minus2>=0){if(!unit){this._isError=!0;return}plus2>=0?Number.isNaN(+inumberStr.substring(0,plus2))||Number.isNaN(+inumberStr.substring(plus2+1,inumberStr.length-1))?this._isError=!0:this._realNum=+inumberStr.substring(0,plus2):Number.isNaN(+inumberStr.substring(0,minus2))||Number.isNaN(+inumberStr.substring(minus2+1,inumberStr.length-1))?this._isError=!0:this._realNum=+inumberStr.substring(0,minus2)}else unit?Number.isNaN(+inumberStr.substring(0,inumberStr.length-1))?this._isError=!0:this._realNum=0:Number.isNaN(+inumberStr)?this._isError=!0:this._realNum=+inumberStr}_getImAginary(){if(this._isError)return;if(this._inumber===0||this._inumber==="0"){this._iNum=0;return}let inumberStr=`${this._inumber}`;if(["i","j"].indexOf(inumberStr)>=0){this._iNum=1;return}inumberStr=inumberStr.replace("+i","+1i").replace("-i","-1i").replace("+j","+1j").replace("-j","-1j");let plus2=inumberStr.indexOf("+"),minus2=inumberStr.indexOf("-");plus2===0&&(plus2=inumberStr.indexOf("+",1)),minus2===0&&(minus2=inumberStr.indexOf("-",1));const last=inumberStr.substring(inumberStr.length-1,inumberStr.length),unit=last==="i"||last==="j";if(plus2>=0||minus2>=0){if(!unit){this._isError=!0;return}plus2>=0?Number.isNaN(+inumberStr.substring(0,plus2))||Number.isNaN(+inumberStr.substring(plus2+1,inumberStr.length-1))?this._isError=!0:this._iNum=+inumberStr.substring(plus2+1,inumberStr.length-1):Number.isNaN(+inumberStr.substring(0,minus2))||Number.isNaN(+inumberStr.substring(minus2+1,inumberStr.length-1))?this._isError=!0:this._iNum=-+inumberStr.substring(minus2+1,inumberStr.length-1)}else unit?Number.isNaN(+inumberStr.substring(0,inumberStr.length-1))?this._isError=!0:this._iNum=+inumberStr.substring(0,inumberStr.length-1):Number.isNaN(+inumberStr)?this._isError=!0:this._iNum=0}_getImSuffix(){const inumberStr=`${this._inumber}`,suffix=inumberStr.substring(inumberStr.length-1);this._suffix=suffix==="i"||suffix==="j"?suffix:""}getRealNum(){return this._realNum}getINum(){return this._iNum}getSuffix(){return this._suffix}isError(){return this._isError}toString(){return _a20.getComplex(this._realNum,this._iNum,this._suffix)}isDifferentSuffixes(complex2){const suffix2=complex2.getSuffix();return this._suffix===""||suffix2===""?!1:this._suffix!==suffix2}Abs(){return Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))).toSignificantDigits(16).toNumber()}Argument(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2)));let result=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2)).toSignificantDigits(16).toNumber();return this._iNum<0&&(result=-result),result}Conjugate(){return _a20.getComplex(this._realNum,-this._iNum,this._suffix)}Cos(){if(this._iNum){const realNum=Decimal$1.cos(this._realNum).mul(Decimal$1.cosh(this._iNum)).toNumber(),iNum=Decimal$1.sin(this._realNum).mul(Decimal$1.sinh(this._iNum)).negated().toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.cos(this._realNum).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}Cosh(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return this._isError=!0,"";if(this._iNum){const realNum=Decimal$1.cosh(this._realNum).mul(Decimal$1.cos(this._iNum)).toNumber(),iNum=Decimal$1.sinh(this._realNum).mul(Decimal$1.sin(this._iNum)).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.cosh(this._realNum).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}Cot(){if(this._iNum){const den=Decimal$1.cosh(this._iNum*2).sub(Decimal$1.cos(this._realNum*2)),realNum=Decimal$1.sin(this._realNum*2).div(den).toNumber(),iNum=Decimal$1.sinh(this._iNum*2).div(den).negated().toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.tan(this._realNum)).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}Csc(){if(this._iNum){const den=Decimal$1.cosh(this._iNum*2).sub(Decimal$1.cos(this._realNum*2)),realNum=Decimal$1.sin(this._realNum).mul(Decimal$1.cosh(this._iNum)).mul(2).div(den).toNumber(),iNum=Decimal$1.cos(this._realNum).mul(Decimal$1.sinh(this._iNum)).mul(-2).div(den).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.sin(this._realNum)).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}Csch(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return _a20.getComplex(0,0,this._suffix);if(this._iNum){const den=Decimal$1.cosh(this._realNum*2).sub(Decimal$1.cos(this._iNum*2)),realNum=Decimal$1.sinh(this._realNum).mul(Decimal$1.cos(this._iNum)).mul(2).div(den).toNumber(),iNum=Decimal$1.cosh(this._realNum).mul(Decimal$1.sin(this._iNum)).mul(-2).div(den).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.sinh(this._realNum)).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}Div(complex2){const Decimal_realNum1=new Decimal$1(this._realNum),Decimal_iNum1=new Decimal$1(this._iNum),Decimal_realNum2=new Decimal$1(complex2.getRealNum()),Decimal_iNum2=new Decimal$1(complex2.getINum()),den=Decimal_realNum2.mul(Decimal_realNum2).add(Decimal_iNum2.mul(Decimal_iNum2)),realNum=Decimal_realNum1.mul(Decimal_realNum2).add(Decimal_iNum1.mul(Decimal_iNum2)).div(den).toNumber(),iNum=Decimal_iNum1.mul(Decimal_realNum2).sub(Decimal_realNum1.mul(Decimal_iNum2)).div(den).toNumber(),suffix=this._suffix===""?complex2.getSuffix():this._suffix;return _a20.getComplex(realNum,iNum,suffix)}Exp(){if(!Number.isFinite(Math.exp(this._realNum)))return this._isError=!0,"";const realNum=Decimal$1.exp(this._realNum).mul(Decimal$1.cos(this._iNum)).toNumber(),iNum=Decimal$1.exp(this._realNum).mul(Decimal$1.sin(this._iNum)).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}Ln(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),realNum=Decimal$1.ln(abs2).toNumber(),iNum=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2)).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}Log10(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),Decimal_realNum1=Decimal$1.ln(abs2);let Decimal_iNum1=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2));this._iNum<0&&(Decimal_iNum1=Decimal_iNum1.negated());const Decimal_realNum2=Decimal$1.ln(10),Decimal_iNum2=new Decimal$1(0),den=Decimal_realNum2.mul(Decimal_realNum2).add(Decimal_iNum2.mul(Decimal_iNum2)),realNum=Decimal_realNum1.mul(Decimal_realNum2).add(Decimal_iNum1.mul(Decimal_iNum2)).div(den).toNumber(),iNum=Decimal_iNum1.mul(Decimal_realNum2).sub(Decimal_realNum1.mul(Decimal_iNum2)).div(den).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}Log2(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),Decimal_realNum1=Decimal$1.ln(abs2);let Decimal_iNum1=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2));this._iNum<0&&(Decimal_iNum1=Decimal_iNum1.negated());const Decimal_realNum2=Decimal$1.ln(2),Decimal_iNum2=new Decimal$1(0),den=Decimal_realNum2.mul(Decimal_realNum2).add(Decimal_iNum2.mul(Decimal_iNum2)),realNum=Decimal_realNum1.mul(Decimal_realNum2).add(Decimal_iNum1.mul(Decimal_iNum2)).div(den).toNumber(),iNum=Decimal_iNum1.mul(Decimal_realNum2).sub(Decimal_realNum1.mul(Decimal_iNum2)).div(den).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}Power(number){if(this._realNum===0&&this._iNum===0)return number>0?_a20.getComplex(this._realNum,this._iNum,this._suffix):(this._isError=!0,"");let power=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),phi=Decimal$1.acos(new Decimal$1(this._realNum).div(power));this._iNum<0&&(phi=phi.negated()),power=Decimal$1.pow(power,number),phi=phi.mul(number);const realNum=Decimal$1.cos(phi).mul(power).toNumber(),iNum=Decimal$1.sin(phi).mul(power).toNumber();return!Number.isFinite(realNum)||!Number.isFinite(iNum)?(this._isError=!0,""):_a20.getComplex(realNum,iNum,this._suffix)}Product(complex2){const Decimal_realNum1=new Decimal$1(this._realNum),Decimal_iNum1=new Decimal$1(this._iNum),Decimal_realNum2=new Decimal$1(complex2.getRealNum()),Decimal_iNum2=new Decimal$1(complex2.getINum()),realNum=Decimal_realNum1.mul(Decimal_realNum2).sub(Decimal_iNum1.mul(Decimal_iNum2)).toNumber(),iNum=Decimal_realNum1.mul(Decimal_iNum2).add(Decimal_iNum1.mul(Decimal_realNum2)).toNumber(),suffix=this._suffix===""?complex2.getSuffix():this._suffix;return _a20.getComplex(realNum,iNum,suffix)}Sec(){if(this._iNum){const den=Decimal$1.cosh(this._iNum*2).add(Decimal$1.cos(this._realNum*2)),realNum=Decimal$1.cos(this._realNum).mul(Decimal$1.cosh(this._iNum)).mul(2).div(den).toNumber(),iNum=Decimal$1.sin(this._realNum).mul(Decimal$1.sinh(this._iNum)).mul(2).div(den).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.cos(this._realNum)).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}Sech(){if(!Number.isFinite(Math.sinh(this._realNum*2))||!Number.isFinite(Math.cosh(this._realNum*2)))return _a20.getComplex(0,0,this._suffix);if(this._iNum){const den=Decimal$1.cosh(this._realNum*2).add(Decimal$1.cos(this._iNum*2)),realNum=Decimal$1.cosh(this._realNum).mul(Decimal$1.cos(this._iNum)).mul(2).div(den).toNumber(),iNum=Decimal$1.sinh(this._realNum).mul(Decimal$1.sin(this._iNum)).mul(-2).div(den).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.cosh(this._realNum)).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}Sin(){if(this._iNum){const realNum=Decimal$1.sin(this._realNum).mul(Decimal$1.cosh(this._iNum)).toNumber(),iNum=Decimal$1.cos(this._realNum).mul(Decimal$1.sinh(this._iNum)).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.sin(this._realNum).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}Sinh(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return this._isError=!0,"";if(this._iNum){const realNum=Decimal$1.sinh(this._realNum).mul(Decimal$1.cos(this._iNum)).toNumber(),iNum=Decimal$1.cosh(this._realNum).mul(Decimal$1.sin(this._iNum)).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.sinh(this._realNum).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}Sqrt(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),abs_sqrt=Decimal$1.sqrt(abs2);let arg=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2));this._iNum<0&&(arg=arg.negated());const realNum=abs_sqrt.mul(Decimal$1.cos(arg.div(2).toNumber())).toNumber(),iNum=abs_sqrt.mul(Decimal$1.sin(arg.div(2))).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}Sub(complex2){const Decimal_realNum1=new Decimal$1(this._realNum),Decimal_iNum1=new Decimal$1(this._iNum),Decimal_realNum2=new Decimal$1(complex2.getRealNum()),Decimal_iNum2=new Decimal$1(complex2.getINum()),realNum=Decimal_realNum1.sub(Decimal_realNum2).toNumber(),iNum=Decimal_iNum1.sub(Decimal_iNum2).toNumber(),suffix=this._suffix===""?complex2.getSuffix():this._suffix;return _a20.getComplex(realNum,iNum,suffix)}Sum(complex2){const Decimal_realNum1=new Decimal$1(this._realNum),Decimal_iNum1=new Decimal$1(this._iNum),Decimal_realNum2=new Decimal$1(complex2.getRealNum()),Decimal_iNum2=new Decimal$1(complex2.getINum()),realNum=Decimal_realNum1.add(Decimal_realNum2).toNumber(),iNum=Decimal_iNum1.add(Decimal_iNum2).toNumber(),suffix=this._suffix===""?complex2.getSuffix():this._suffix;return _a20.getComplex(realNum,iNum,suffix)}Tan(){if(this._iNum){const den=Decimal$1.cos(this._realNum*2).add(Decimal$1.cosh(this._iNum*2)),realNum=Decimal$1.sin(this._realNum*2).div(den).toNumber(),iNum=Decimal$1.sinh(this._iNum*2).div(den).toNumber();return _a20.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.tan(this._realNum).toNumber();return _a20.getComplex(realNum,this._iNum,this._suffix)}}},__name(_a20,"Complex"),_a20);const _Complex=class _Complex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(realNum,iNum,suffix){const _suffix=suffix!=null?suffix:StringValueObject.create("i"),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(realNum,iNum,_suffix);if(isError)return errorObject;const[realNumObject,iNumObject,suffixObject]=variants,realNumValue=+realNumObject.getValue(),iNumValue=+iNumObject.getValue(),suffixValue=`${suffixObject.getValue()}`;if(Number.isNaN(realNumValue)||Number.isNaN(iNumValue)||suffixValue!=="i"&&suffixValue!=="j")return ErrorValueObject.create(ErrorType$1.VALUE);const result=Complex$1.getComplex(realNumValue,iNumValue,suffixValue);return typeof result=="number"?NumberValueObject.create(result):StringValueObject.create(result)}};__name(_Complex,"Complex");let Complex=_Complex;const _Convert=class _Convert extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"_units",[["a.u. of action","?",null,"action",!1,!1,105457168181818e-48],["a.u. of charge","e",null,"electric_charge",!1,!1,160217653141414e-33],["a.u. of energy","Eh",null,"energy",!1,!1,435974417757576e-32],["a.u. of length","a?",null,"length",!1,!1,529177210818182e-25],["a.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["a.u. of time","?/Eh",null,"time",!1,!1,241888432650516e-31],["admiralty knot","admkn",null,"speed",!1,!0,.514773333],["ampere","A",null,"electric_current",!0,!1,1],["ampere per meter","A/m",null,"magnetic_field_intensity",!0,!1,1],["ångström","Å",["ang"],"length",!1,!0,1e-10],["are","ar",null,"area",!1,!0,100],["astronomical unit","ua",null,"length",!1,!1,149597870691667e-25],["bar","bar",null,"pressure",!1,!1,1e5],["barn","b",null,"area",!1,!1,1e-28],["becquerel","Bq",null,"radioactivity",!0,!1,1],["bit","bit",["b"],"information",!1,!0,1],["btu","BTU",["btu"],"energy",!1,!0,1055.05585262],["byte","byte",null,"information",!1,!0,8],["candela","cd",null,"luminous_intensity",!0,!1,1],["candela per square metre","cd/m?",null,"luminance",!0,!1,1],["centigrade","C",["cel"],"temperature",!0,!1,1],["cubic ångström","ang3",["ang^3"],"volume",!1,!0,1e-30],["cubic foot","ft3",["ft^3"],"volume",!1,!0,.028316846592],["cubic inch","in3",["in^3"],"volume",!1,!0,16387064e-12],["cubic light-year","ly3",["ly^3"],"volume",!1,!0,846786664623715e-61],["cubic metre","m3",["m^3"],"volume",!0,!0,1],["cubic mile","mi3",["mi^3"],"volume",!1,!0,416818182544058e-5],["cubic nautical mile","Nmi3",["Nmi^3"],"volume",!1,!0,6352182208],["cubic Pica","Pica3",["Picapt3","Pica^3","Picapt^3"],"volume",!1,!0,758660370370369e-22],["cubic yard","yd3",["yd^3"],"volume",!1,!0,.764554857984],["cup","cup",null,"volume",!1,!0,.0002365882365],["dalton","Da",["u"],"mass",!1,!1,166053886282828e-41],["day","d",["day"],"time",!1,!0,86400],["degree","°",null,"angle",!1,!1,.0174532925199433],["dyne","dyn",["dy"],"force",!1,!0,1e-5],["electronvolt","eV",["ev"],"energy",!1,!0,1.60217656514141],["ell","ell",null,"length",!1,!0,1.143],["erg","erg",["e"],"energy",!1,!0,1e-7],["fahrenheit","F",["fah"],"temperature",!0,!1,1],["fluid ounce","oz",null,"volume",!1,!0,295735295625e-16],["foot","ft",null,"length",!1,!0,.3048],["foot-pound","flb",null,"energy",!1,!0,1.3558179483314],["gal","Gal",null,"acceleration",!1,!1,.01],["gallon","gal",null,"volume",!1,!0,.003785411784],["gauss","G",["ga"],"magnetic_flux_density",!1,!0,1],["grain","grain",null,"mass",!1,!0,647989e-10],["gram","g",null,"mass",!1,!0,.001],["gray","Gy",null,"absorbed_dose",!0,!1,1],["gross registered ton","GRT",["regton"],"volume",!1,!0,2.8316846592],["hectare","ha",null,"area",!1,!0,1e4],["henry","H",null,"inductance",!0,!1,1],["hertz","Hz",null,"frequency",!0,!1,1],["horsepower","HP",["h"],"power",!1,!0,745.69987158227],["horsepower-hour","HPh",["hh","hph"],"energy",!1,!0,2684519538e-3],["hour","h",["hr"],"time",!1,!0,3600],["imperial gallon (U.K.)","uk_gal",null,"volume",!1,!0,.00454609],["imperial hundredweight","lcwt",["uk_cwt","hweight"],"mass",!1,!0,50.802345],["imperial quart (U.K)","uk_qt",null,"volume",!1,!0,.0011365225],["imperial ton","brton",["uk_ton","LTON"],"mass",!1,!0,1016.046909],["inch","in",null,"length",!1,!0,.0254],["international acre","uk_acre",null,"area",!1,!0,4046.8564224],["IT calorie","cal",null,"energy",!1,!0,4.1868],["joule","J",null,"energy",!0,!0,1],["katal","kat",null,"catalytic_activity",!0,!1,1],["kelvin","K",["kel"],"temperature",!0,!0,1],["kilogram","kg",null,"mass",!0,!0,1],["knot","kn",null,"speed",!1,!0,.514444444444444],["light-year","ly",null,"length",!1,!0,9460730472580800],["litre","L",["l","lt"],"volume",!1,!0,.001],["lumen","lm",null,"luminous_flux",!0,!1,1],["lux","lx",null,"illuminance",!0,!1,1],["maxwell","Mx",null,"magnetic_flux",!1,!1,1e-18],["measurement ton","MTON",null,"volume",!1,!0,1.13267386368],["meter per hour","m/h",["m/hr"],"speed",!1,!0,.00027777777777778],["meter per second","m/s",["m/sec"],"speed",!0,!0,1],["meter per second squared","m?s??",null,"acceleration",!0,!1,1],["parsec","pc",["parsec"],"length",!1,!0,0x6da012f958ee1c],["meter squared per second","m?/s",null,"kinematic_viscosity",!0,!1,1],["metre","m",null,"length",!0,!0,1],["miles per hour","mph",null,"speed",!1,!0,.44704],["millimetre of mercury","mmHg",null,"pressure",!1,!1,133.322],["minute","?",null,"angle",!1,!1,.000290888208665722],["minute","min",["mn"],"time",!1,!0,60],["modern teaspoon","tspm",null,"volume",!1,!0,5e-6],["mole","mol",null,"amount_of_substance",!0,!1,1],["morgen","Morgen",null,"area",!1,!0,2500],["n.u. of action","?",null,"action",!1,!1,105457168181818e-48],["n.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["n.u. of speed","c?",null,"speed",!1,!1,299792458],["n.u. of time","?/(me?c??)",null,"time",!1,!1,128808866778687e-35],["nautical mile","M",["Nmi"],"length",!1,!0,1852],["newton","N",null,"force",!0,!0,1],["œrsted","Oe ",null,"magnetic_field_intensity",!1,!1,79.5774715459477],["ohm","Ω",null,"electric_resistance",!0,!1,1],["ounce mass","ozm",null,"mass",!1,!0,.028349523125],["pascal","Pa",null,"pressure",!0,!1,1],["pascal second","Pa?s",null,"dynamic_viscosity",!0,!1,1],["pferdestärke","PS",null,"power",!1,!0,735.49875],["phot","ph",null,"illuminance",!1,!1,1e-4],["pica (1/6 inch)","pica",null,"length",!1,!0,.00035277777777778],["pica (1/72 inch)","Pica",["Picapt"],"length",!1,!0,.00423333333333333],["poise","P",null,"dynamic_viscosity",!1,!1,.1],["pond","pond",null,"force",!1,!0,.00980665],["pound force","lbf",null,"force",!1,!0,4.4482216152605],["pound mass","lbm",null,"mass",!1,!0,.45359237],["quart","qt",null,"volume",!1,!0,.000946352946],["radian","rad",null,"angle",!0,!1,1],["rankine","Rank",null,"temperature",!1,!0,1],["reaumur","Reau",null,"temperature",!1,!0,1],["second","?",null,"angle",!1,!1,484813681109536e-20],["second","s",["sec"],"time",!0,!0,1],["short hundredweight","cwt",["shweight"],"mass",!1,!0,45.359237],["siemens","S",null,"electrical_conductance",!0,!1,1],["sievert","Sv",null,"equivalent_dose",!0,!1,1],["slug","sg",null,"mass",!1,!0,14.59390294],["square ångström","ang2",["ang^2"],"area",!1,!0,1e-20],["square foot","ft2",["ft^2"],"area",!1,!0,.09290304],["square inch","in2",["in^2"],"area",!1,!0,64516e-8],["square light-year","ly2",["ly^2"],"area",!1,!0,895054210748189e17],["square meter","m?",null,"area",!0,!0,1],["square mile","mi2",["mi^2"],"area",!1,!0,2589988110336e-6],["square nautical mile","Nmi2",["Nmi^2"],"area",!1,!0,3429904],["square Pica","Pica2",["Picapt2","Pica^2","Picapt^2"],"area",!1,!0,1792111111111e-17],["square yard","yd2",["yd^2"],"area",!1,!0,.83612736],["statute mile","mi",null,"length",!1,!0,1609.344],["steradian","sr",null,"solid_angle",!0,!1,1],["stilb","sb",null,"luminance",!1,!1,1e-4],["stokes","St",null,"kinematic_viscosity",!1,!1,1e-4],["stone","stone",null,"mass",!1,!0,6.35029318],["tablespoon","tbs",null,"volume",!1,!0,147868e-10],["teaspoon","tsp",null,"volume",!1,!0,492892e-11],["tesla","T",null,"magnetic_flux_density",!0,!0,1],["thermodynamic calorie","c",null,"energy",!1,!0,4.184],["ton","ton",null,"mass",!1,!0,907.18474],["tonne","t",null,"mass",!1,!1,1e3],["U.K. pint","uk_pt",null,"volume",!1,!0,.00056826125],["U.S. bushel","bushel",null,"volume",!1,!0,.03523907],["U.S. oil barrel","barrel",null,"volume",!1,!0,.158987295],["U.S. pint","pt",["us_pt"],"volume",!1,!0,.000473176473],["U.S. survey mile","survey_mi",null,"length",!1,!0,1609.347219],["U.S. survey/statute acre","us_acre",null,"area",!1,!0,4046.87261],["volt","V",null,"voltage",!0,!1,1],["watt","W",null,"power",!0,!0,1],["watt-hour","Wh",["wh"],"energy",!1,!0,3600],["weber","Wb",null,"magnetic_flux",!0,!1,1],["yard","yd",null,"length",!1,!0,.9144],["year","yr",null,"time",!1,!0,31557600]]);__publicField(this,"_binaryPrefixes",{Yi:["yobi",80,12089258196146292e8,"Yi","yotta"],Zi:["zebi",70,11805916207174113e5,"Zi","zetta"],Ei:["exbi",60,1152921504606847e3,"Ei","exa"],Pi:["pebi",50,0x4000000000000,"Pi","peta"],Ti:["tebi",40,1099511627776,"Ti","tera"],Gi:["gibi",30,1073741824,"Gi","giga"],Mi:["mebi",20,1048576,"Mi","mega"],ki:["kibi",10,1024,"ki","kilo"]});__publicField(this,"_unitPrefixes",{Y:["yotta",1e24,"Y"],Z:["zetta",1e21,"Z"],E:["exa",1e18,"E"],P:["peta",1e15,"P"],T:["tera",1e12,"T"],G:["giga",1e9,"G"],M:["mega",1e6,"M"],k:["kilo",1e3,"k"],h:["hecto",100,"h"],e:["dekao",10,"e"],d:["deci",.1,"d"],c:["centi",.01,"c"],m:["milli",.001,"m"],u:["micro",1e-6,"u"],n:["nano",1e-9,"n"],p:["pico",1e-12,"p"],f:["femto",1e-15,"f"],a:["atto",1e-18,"a"],z:["zepto",1e-21,"z"],y:["yocto",1e-24,"y"]})}calculate(number,fromUnit,toUnit){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number,fromUnit,toUnit);if(isError)return errorObject;const[numberObject,fromUnitObject,toUnitObject]=variants,numberValue=+numberObject.getValue(),fromUnitValue=`${fromUnitObject.getValue()}`,toUnitValue=`${toUnitObject.getValue()}`;if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);let from,fromMultiplier=1,to,toMultiplier=1;const{_from,_to}=this._lookupFromAndToUnits(fromUnitValue,toUnitValue);if(from=_from,to=_to,from===null){const{_from:_from2,_fromMultiplier}=this._lookupFromPrefix(fromUnitValue);from=_from2,fromMultiplier=_fromMultiplier}if(to===null){const{_to:_to2,_toMultiplier}=this._lookupToPrefix(toUnitValue);to=_to2,toMultiplier=_toMultiplier}if(from===null||to===null||from[3]!==to[3])return ErrorValueObject.create(ErrorType$1.NA);let result;return from[3]==="temperature"?(result=this._getTemperatureConversion(numberValue,from[1],to[1]),result=+result.toFixed(2)):result=numberValue*from[6]*fromMultiplier/(to[6]*toMultiplier),NumberValueObject.create(result)}_lookupFromAndToUnits(fromUnitValue,toUnitValue){let _from=null,_to=null,alt;for(let i=0;i<this._units.length;i++)alt=this._units[i][2]===null?[]:this._units[i][2],(this._units[i][1]===fromUnitValue||alt.indexOf(fromUnitValue)>=0)&&(_from=this._units[i]),(this._units[i][1]===toUnitValue||alt.indexOf(toUnitValue)>=0)&&(_to=this._units[i]);return{_from,_to}}_lookupFromPrefix(fromUnitValue){let _from=null,_fromMultiplier=1,baseFromUnit=fromUnitValue,alt;const fromBinaryPrefix=this._binaryPrefixes[fromUnitValue.substring(0,2)];let fromUnitPrefix=this._unitPrefixes[fromUnitValue.substring(0,1)];fromUnitValue.substring(0,2)==="da"&&(fromUnitPrefix=["dekao",10,"da"]),fromBinaryPrefix?(_fromMultiplier=fromBinaryPrefix[2],baseFromUnit=fromUnitValue.substring(2)):fromUnitPrefix&&(_fromMultiplier=fromUnitPrefix[1],baseFromUnit=fromUnitValue.substring(fromUnitPrefix[2].length));for(let j=0;j<this._units.length;j++)alt=this._units[j][2]===null?[]:this._units[j][2],(this._units[j][1]===baseFromUnit||alt.indexOf(baseFromUnit)>=0)&&(_from=this._units[j]);return{_from,_fromMultiplier}}_lookupToPrefix(toUnitValue){let _to=null,_toMultiplier=1,baseToUnit=toUnitValue,alt;const toBinaryPrefix=this._binaryPrefixes[toUnitValue.substring(0,2)];let toUnitPrefix=this._unitPrefixes[toUnitValue.substring(0,1)];toUnitValue.substring(0,2)==="da"&&(toUnitPrefix=["dekao",10,"da"]),toBinaryPrefix?(_toMultiplier=toBinaryPrefix[2],baseToUnit=toUnitValue.substring(2)):toUnitPrefix&&(_toMultiplier=toUnitPrefix[1],baseToUnit=toUnitValue.substring(toUnitPrefix[2].length));for(let k=0;k<this._units.length;k++)alt=this._units[k][2]===null?[]:this._units[k][2],(this._units[k][1]===baseToUnit||alt.indexOf(baseToUnit)>=0)&&(_to=this._units[k]);return{_to,_toMultiplier}}_getTemperatureConversion(number,from,to){switch(from){case"C":return this._centigradeConversion(number,to);case"F":return this._fahrenheitConversion(number,to);case"K":return this._kelvinConversion(number,to);case"Rank":return this._rankineConversion(number,to);case"Reau":return this._reaumurConversion(number,to);default:return number}}_centigradeConversion(number,to){switch(to){case"F":return number*9/5+32;case"K":return number+273.15;case"Rank":return(number+273.15)*9/5;case"Reau":return number*4/5;default:return number}}_fahrenheitConversion(number,to){switch(to){case"C":return(number-32)*5/9;case"K":return(number-32)*5/9+273.15;case"Rank":return number+459.67;case"Reau":return(number-32)*4/9;default:return number}}_kelvinConversion(number,to){switch(to){case"C":return number-273.15;case"F":return(number-273.15)*9/5+32;case"Rank":return number*9/5;case"Reau":return(number-273.15)*4/5;default:return number}}_rankineConversion(number,to){switch(to){case"C":return(number-491.67)*5/9;case"F":return number-459.67;case"K":return number*5/9;case"Reau":return(number-491.67)*4/9;default:return number}}_reaumurConversion(number,to){switch(to){case"C":return number*5/4;case"F":return number*9/4+32;case"K":return number*5/4+273.15;case"Rank":return number*9/4+491.67;default:return number}}};__name(_Convert,"Convert");let Convert=_Convert;const _Dec2bin=class _Dec2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,3}$/.test(`${numberValue}`)||numberValue<-512||numberValue>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0){const toStr=(512+numberValue).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=Number.parseInt(`${numberValue}`,10).toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Dec2bin,"Dec2bin");let Dec2bin=_Dec2bin;const _Dec2hex=class _Dec2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,12}$/.test(`${numberValue}`)||numberValue<-549755813888||numberValue>549755813887)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0)result=(1099511627776+numberValue).toString(16);else if(result=Number.parseInt(`${numberValue}`,10).toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Dec2hex,"Dec2hex");let Dec2hex=_Dec2hex;const _Dec2oct=class _Dec2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,9}$/.test(`${numberValue}`)||numberValue<-536870912||numberValue>536870911)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0)result=(1073741824+numberValue).toString(8);else if(result=Number.parseInt(`${numberValue}`,10).toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Dec2oct,"Dec2oct");let Dec2oct=_Dec2oct;const _Delta=class _Delta extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number1,number2){const _number2=number2!=null?number2:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number1,_number2);if(isError)return errorObject;const[number1Object,number2Object]=variants,number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(Number.isNaN(number1Value)||Number.isNaN(number2Value))return ErrorValueObject.create(ErrorType$1.VALUE);const result=number1Value===number2Value?1:0;return NumberValueObject.create(result)}};__name(_Delta,"Delta");let Delta=_Delta;const _Erf=class _Erf extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(lowerLimit,upperLimit){let result;if(upperLimit){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(lowerLimit,upperLimit);if(isError)return errorObject;const[lowerLimitObject,upperLimitObject]=variants,lowerLimitValue=+lowerLimitObject.getValue(),upperLimitValue=+upperLimitObject.getValue();if(Number.isNaN(lowerLimitValue)||Number.isNaN(upperLimitValue))return ErrorValueObject.create(ErrorType$1.VALUE);result=erf(upperLimitValue)-erf(lowerLimitValue)}else{const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(lowerLimit);if(isError)return errorObject;const[lowerLimitObject]=variants,lowerLimitValue=+lowerLimitObject.getValue();if(Number.isNaN(lowerLimitValue))return ErrorValueObject.create(ErrorType$1.VALUE);result=erf(lowerLimitValue)}return NumberValueObject.create(result)}};__name(_Erf,"Erf");let Erf=_Erf;const _ErfPrecise=class _ErfPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=erf(xValue);return NumberValueObject.create(result)}};__name(_ErfPrecise,"ErfPrecise");let ErfPrecise=_ErfPrecise;const _Erfc=class _Erfc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=erfc(xValue);return NumberValueObject.create(result)}};__name(_Erfc,"Erfc");let Erfc=_Erfc;const _ErfcPrecise=class _ErfcPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=erfc(xValue);return NumberValueObject.create(result)}};__name(_ErfcPrecise,"ErfcPrecise");let ErfcPrecise=_ErfcPrecise;const _Gestep=class _Gestep extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,step){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);const _step=step!=null?step:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number,_step);if(isError)return errorObject;const[numberObject,stepObject]=variants,numberValue=+numberObject.getValue(),stepValue=+stepObject.getValue();if(Number.isNaN(numberValue)||Number.isNaN(stepValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=numberValue>=stepValue?1:0;return NumberValueObject.create(result)}};__name(_Gestep,"Gestep");let Gestep=_Gestep;const _Hex2bin=class _Hex2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const negative=numberValue.length===10&&numberValue.substring(0,1).toLocaleUpperCase()==="F",decimal=negative?Number.parseInt(numberValue,16)-1099511627776:Number.parseInt(numberValue,16);if(decimal<-512||decimal>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(negative){const toStr=(512+decimal).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=decimal.toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Hex2bin,"Hex2bin");let Hex2bin=_Hex2bin;const _Hex2dec=class _Hex2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result=Number.parseInt(numberValue,16);return result>=549755813888&&(result-=1099511627776),NumberValueObject.create(result)}};__name(_Hex2dec,"Hex2dec");let Hex2dec=_Hex2dec;const _Hex2oct=class _Hex2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const decimal=Number.parseInt(numberValue,16);if(decimal>536870911&&decimal<0xffe0000000)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(decimal>=0xffe0000000)result=(decimal-0xffc0000000).toString(8);else if(result=decimal.toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Hex2oct,"Hex2oct");let Hex2oct=_Hex2oct;const _Imabs=class _Imabs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Abs();return NumberValueObject.create(result)}};__name(_Imabs,"Imabs");let Imabs=_Imabs;const _Imaginary=class _Imaginary extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.getINum();return NumberValueObject.create(result)}};__name(_Imaginary,"Imaginary");let Imaginary=_Imaginary;const _Imargument=class _Imargument extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);if(complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=complex.Argument();return NumberValueObject.create(result)}};__name(_Imargument,"Imargument");let Imargument=_Imargument;const _Imconjugate=class _Imconjugate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Conjugate();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imconjugate,"Imconjugate");let Imconjugate=_Imconjugate;const _Imcos=class _Imcos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Cos();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcos,"Imcos");let Imcos=_Imcos;const _Imcosh=class _Imcosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Cosh();return complex.isError()?ErrorValueObject.create(ErrorType$1.NUM):typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcosh,"Imcosh");let Imcosh=_Imcosh;const _Imcot=class _Imcot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Cot();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcot,"Imcot");let Imcot=_Imcot;const _Imcsc=class _Imcsc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Csc();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcsc,"Imcsc");let Imcsc=_Imcsc;const _Imcsch=class _Imcsch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Csch();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcsch,"Imcsch");let Imcsch=_Imcsch;const _Imdiv=class _Imdiv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(inumber1,inumber2){if(inumber1.isNull()||inumber2.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber1,inumber2);if(isError)return errorObject;const[inumber1Object,inumber2Object]=variants,inumber1Value=`${inumber1Object.getValue()}`,inumber2Value=`${inumber2Object.getValue()}`,complex1=new Complex$1(inumber1Value),complex2=new Complex$1(inumber2Value);if(complex1.isError()||complex2.isError()||complex1.isDifferentSuffixes(complex2)||complex2.getRealNum()===0&&complex2.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex1.Div(complex2);return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imdiv,"Imdiv");let Imdiv=_Imdiv;const _Imexp=class _Imexp extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Exp();return complex.isError()?ErrorValueObject.create(ErrorType$1.NUM):typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imexp,"Imexp");let Imexp=_Imexp;const _Imln=class _Imln extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Ln();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imln,"Imln");let Imln=_Imln;const _Imlog10=class _Imlog10 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Log10();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imlog10,"Imlog10");let Imlog10=_Imlog10;const _Imlog2=class _Imlog2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Log2();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imlog2,"Imlog2");let Imlog2=_Imlog2;const _Impower=class _Impower extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(inumber,number){if(inumber.isNull()||number.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber,number);if(isError)return errorObject;const[inumberObject,numberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const numberValue=+numberObject.getValue();if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=complex.Power(numberValue);return complex.isError()?ErrorValueObject.create(ErrorType$1.NUM):typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Impower,"Impower");let Impower=_Impower;const _Improduct=class _Improduct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let result="";for(let i=0;i<variants.length;i++){if(result instanceof ErrorValueObject)return result;const variant=variants[i];if(variant.isArray()){let isError=!1,errorObject;if(variant.iterator(valueObject=>{if(result=this._handleSingleObject(valueObject,result),result instanceof ErrorValueObject)return isError=!0,errorObject=result,!1}),isError)return errorObject}else result=this._handleSingleObject(variant,result)}return result instanceof ErrorValueObject?result:typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}_handleSingleObject(variant,result){let _result=result;if(variant.isError())return variant;if(variant.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const value=`${variant.getValue()}`;if(typeof result!="number"&&!result){const complex=new Complex$1(value);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);_result=complex.toString()}else{const complex1=new Complex$1(result),complex2=new Complex$1(value);if(complex1.isError()||complex2.isError())return ErrorValueObject.create(ErrorType$1.NUM);if(complex1.isDifferentSuffixes(complex2))return ErrorValueObject.create(ErrorType$1.VALUE);_result=complex1.Product(complex2)}return _result}};__name(_Improduct,"Improduct");let Improduct=_Improduct;const _Imreal=class _Imreal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.getRealNum();return NumberValueObject.create(result)}};__name(_Imreal,"Imreal");let Imreal=_Imreal;const _Imsec=class _Imsec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Sec();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsec,"Imsec");let Imsec=_Imsec;const _Imsech=class _Imsech extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Sech();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsech,"Imsech");let Imsech=_Imsech;const _Imsin=class _Imsin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Sin();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsin,"Imsin");let Imsin=_Imsin;const _Imsinh=class _Imsinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Sinh();return complex.isError()?ErrorValueObject.create(ErrorType$1.NUM):typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsinh,"Imsinh");let Imsinh=_Imsinh;const _Imsqrt=class _Imsqrt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);if(complex.getRealNum()===0&&complex.getINum()===0)return NumberValueObject.create(0);const result=complex.Sqrt();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsqrt,"Imsqrt");let Imsqrt=_Imsqrt;const _Imsub=class _Imsub extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(inumber1,inumber2){if(inumber1.isNull()||inumber2.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber1,inumber2);if(isError)return errorObject;const[inumber1Object,inumber2Object]=variants,inumber1Value=`${inumber1Object.getValue()}`,inumber2Value=`${inumber2Object.getValue()}`,complex1=new Complex$1(inumber1Value),complex2=new Complex$1(inumber2Value);if(complex1.isError()||complex2.isError()||complex1.isDifferentSuffixes(complex2))return ErrorValueObject.create(ErrorType$1.NUM);const result=complex1.Sub(complex2);return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsub,"Imsub");let Imsub=_Imsub;const _Imsum=class _Imsum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let result="";for(let i=0;i<variants.length;i++){if(result instanceof ErrorValueObject)return result;const variant=variants[i];if(variant.isArray()){let isError=!1,errorObject;if(variant.iterator(valueObject=>{if(result=this._handleSingleObject(valueObject,result),result instanceof ErrorValueObject)return isError=!0,errorObject=result,!1}),isError)return errorObject}else result=this._handleSingleObject(variant,result)}return result instanceof ErrorValueObject?result:typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}_handleSingleObject(variant,result){let _result=result;if(variant.isError())return variant;if(variant.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const value=`${variant.getValue()}`;if(typeof result!="number"&&!result){const complex=new Complex$1(value);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);_result=complex.toString()}else{const complex1=new Complex$1(result),complex2=new Complex$1(value);if(complex1.isError()||complex2.isError())return ErrorValueObject.create(ErrorType$1.NUM);if(complex1.isDifferentSuffixes(complex2))return ErrorValueObject.create(ErrorType$1.VALUE);_result=complex1.Sum(complex2)}return _result}};__name(_Imsum,"Imsum");let Imsum=_Imsum;const _Imtan=class _Imtan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Tan();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imtan,"Imtan");let Imtan=_Imtan;const _Oct2bin=class _Oct2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const negative=numberValue.length===10&&numberValue.substring(0,1)==="7",decimal=negative?Number.parseInt(numberValue,8)-1073741824:Number.parseInt(numberValue,8);if(decimal<-512||decimal>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(negative){const toStr=(512+decimal).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=decimal.toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Oct2bin,"Oct2bin");let Oct2bin=_Oct2bin;const _Oct2dec=class _Oct2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result=Number.parseInt(numberValue,8);return result>=536870912&&(result-=1073741824),NumberValueObject.create(result)}};__name(_Oct2dec,"Oct2dec");let Oct2dec=_Oct2dec;const _Oct2hex=class _Oct2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const decimal=Number.parseInt(numberValue,8);let result;if(decimal>=536870912)result=`ff${(decimal+3221225472).toString(16)}`;else if(result=decimal.toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Oct2hex,"Oct2hex");let Oct2hex=_Oct2hex;const functionEngineering=[[Besseli,FUNCTION_NAMES_ENGINEERING.BESSELI],[Besselj,FUNCTION_NAMES_ENGINEERING.BESSELJ],[Besselk,FUNCTION_NAMES_ENGINEERING.BESSELK],[Bessely,FUNCTION_NAMES_ENGINEERING.BESSELY],[Bin2dec,FUNCTION_NAMES_ENGINEERING.BIN2DEC],[Bin2hex,FUNCTION_NAMES_ENGINEERING.BIN2HEX],[Bin2oct,FUNCTION_NAMES_ENGINEERING.BIN2OCT],[Bitand,FUNCTION_NAMES_ENGINEERING.BITAND],[Bitlshift,FUNCTION_NAMES_ENGINEERING.BITLSHIFT],[Bitor,FUNCTION_NAMES_ENGINEERING.BITOR],[Bitrshift,FUNCTION_NAMES_ENGINEERING.BITRSHIFT],[Bitxor,FUNCTION_NAMES_ENGINEERING.BITXOR],[Complex,FUNCTION_NAMES_ENGINEERING.COMPLEX],[Convert,FUNCTION_NAMES_ENGINEERING.CONVERT],[Dec2bin,FUNCTION_NAMES_ENGINEERING.DEC2BIN],[Dec2hex,FUNCTION_NAMES_ENGINEERING.DEC2HEX],[Dec2oct,FUNCTION_NAMES_ENGINEERING.DEC2OCT],[Delta,FUNCTION_NAMES_ENGINEERING.DELTA],[Erf,FUNCTION_NAMES_ENGINEERING.ERF],[ErfPrecise,FUNCTION_NAMES_ENGINEERING.ERF_PRECISE],[Erfc,FUNCTION_NAMES_ENGINEERING.ERFC],[ErfcPrecise,FUNCTION_NAMES_ENGINEERING.ERFC_PRECISE],[Gestep,FUNCTION_NAMES_ENGINEERING.GESTEP],[Hex2bin,FUNCTION_NAMES_ENGINEERING.HEX2BIN],[Hex2dec,FUNCTION_NAMES_ENGINEERING.HEX2DEC],[Hex2oct,FUNCTION_NAMES_ENGINEERING.HEX2OCT],[Imabs,FUNCTION_NAMES_ENGINEERING.IMABS],[Imaginary,FUNCTION_NAMES_ENGINEERING.IMAGINARY],[Imargument,FUNCTION_NAMES_ENGINEERING.IMARGUMENT],[Imconjugate,FUNCTION_NAMES_ENGINEERING.IMCONJUGATE],[Imcos,FUNCTION_NAMES_ENGINEERING.IMCOS],[Imcosh,FUNCTION_NAMES_ENGINEERING.IMCOSH],[Imcot,FUNCTION_NAMES_ENGINEERING.IMCOT],[Imcsc,FUNCTION_NAMES_ENGINEERING.IMCSC],[Imcsch,FUNCTION_NAMES_ENGINEERING.IMCSCH],[Imdiv,FUNCTION_NAMES_ENGINEERING.IMDIV],[Imexp,FUNCTION_NAMES_ENGINEERING.IMEXP],[Imln,FUNCTION_NAMES_ENGINEERING.IMLN],[Imlog10,FUNCTION_NAMES_ENGINEERING.IMLOG10],[Imlog2,FUNCTION_NAMES_ENGINEERING.IMLOG2],[Impower,FUNCTION_NAMES_ENGINEERING.IMPOWER],[Improduct,FUNCTION_NAMES_ENGINEERING.IMPRODUCT],[Imreal,FUNCTION_NAMES_ENGINEERING.IMREAL],[Imsec,FUNCTION_NAMES_ENGINEERING.IMSEC],[Imsech,FUNCTION_NAMES_ENGINEERING.IMSECH],[Imsin,FUNCTION_NAMES_ENGINEERING.IMSIN],[Imsinh,FUNCTION_NAMES_ENGINEERING.IMSINH],[Imsqrt,FUNCTION_NAMES_ENGINEERING.IMSQRT],[Imsub,FUNCTION_NAMES_ENGINEERING.IMSUB],[Imsum,FUNCTION_NAMES_ENGINEERING.IMSUM],[Imtan,FUNCTION_NAMES_ENGINEERING.IMTAN],[Oct2bin,FUNCTION_NAMES_ENGINEERING.OCT2BIN],[Oct2dec,FUNCTION_NAMES_ENGINEERING.OCT2DEC],[Oct2hex,FUNCTION_NAMES_ENGINEERING.OCT2HEX]];var FUNCTION_NAMES_FINANCIAL=(FUNCTION_NAMES_FINANCIAL2=>(FUNCTION_NAMES_FINANCIAL2.ACCRINT="ACCRINT",FUNCTION_NAMES_FINANCIAL2.ACCRINTM="ACCRINTM",FUNCTION_NAMES_FINANCIAL2.AMORDEGRC="AMORDEGRC",FUNCTION_NAMES_FINANCIAL2.AMORLINC="AMORLINC",FUNCTION_NAMES_FINANCIAL2.COUPDAYBS="COUPDAYBS",FUNCTION_NAMES_FINANCIAL2.COUPDAYS="COUPDAYS",FUNCTION_NAMES_FINANCIAL2.COUPDAYSNC="COUPDAYSNC",FUNCTION_NAMES_FINANCIAL2.COUPNCD="COUPNCD",FUNCTION_NAMES_FINANCIAL2.COUPNUM="COUPNUM",FUNCTION_NAMES_FINANCIAL2.COUPPCD="COUPPCD",FUNCTION_NAMES_FINANCIAL2.CUMIPMT="CUMIPMT",FUNCTION_NAMES_FINANCIAL2.CUMPRINC="CUMPRINC",FUNCTION_NAMES_FINANCIAL2.DB="DB",FUNCTION_NAMES_FINANCIAL2.DDB="DDB",FUNCTION_NAMES_FINANCIAL2.DISC="DISC",FUNCTION_NAMES_FINANCIAL2.DOLLARDE="DOLLARDE",FUNCTION_NAMES_FINANCIAL2.DOLLARFR="DOLLARFR",FUNCTION_NAMES_FINANCIAL2.DURATION="DURATION",FUNCTION_NAMES_FINANCIAL2.EFFECT="EFFECT",FUNCTION_NAMES_FINANCIAL2.FV="FV",FUNCTION_NAMES_FINANCIAL2.FVSCHEDULE="FVSCHEDULE",FUNCTION_NAMES_FINANCIAL2.INTRATE="INTRATE",FUNCTION_NAMES_FINANCIAL2.IPMT="IPMT",FUNCTION_NAMES_FINANCIAL2.IRR="IRR",FUNCTION_NAMES_FINANCIAL2.ISPMT="ISPMT",FUNCTION_NAMES_FINANCIAL2.MDURATION="MDURATION",FUNCTION_NAMES_FINANCIAL2.MIRR="MIRR",FUNCTION_NAMES_FINANCIAL2.NOMINAL="NOMINAL",FUNCTION_NAMES_FINANCIAL2.NPER="NPER",FUNCTION_NAMES_FINANCIAL2.NPV="NPV",FUNCTION_NAMES_FINANCIAL2.ODDFPRICE="ODDFPRICE",FUNCTION_NAMES_FINANCIAL2.ODDFYIELD="ODDFYIELD",FUNCTION_NAMES_FINANCIAL2.ODDLPRICE="ODDLPRICE",FUNCTION_NAMES_FINANCIAL2.ODDLYIELD="ODDLYIELD",FUNCTION_NAMES_FINANCIAL2.PDURATION="PDURATION",FUNCTION_NAMES_FINANCIAL2.PMT="PMT",FUNCTION_NAMES_FINANCIAL2.PPMT="PPMT",FUNCTION_NAMES_FINANCIAL2.PRICE="PRICE",FUNCTION_NAMES_FINANCIAL2.PRICEDISC="PRICEDISC",FUNCTION_NAMES_FINANCIAL2.PRICEMAT="PRICEMAT",FUNCTION_NAMES_FINANCIAL2.PV="PV",FUNCTION_NAMES_FINANCIAL2.RATE="RATE",FUNCTION_NAMES_FINANCIAL2.RECEIVED="RECEIVED",FUNCTION_NAMES_FINANCIAL2.RRI="RRI",FUNCTION_NAMES_FINANCIAL2.SLN="SLN",FUNCTION_NAMES_FINANCIAL2.SYD="SYD",FUNCTION_NAMES_FINANCIAL2.TBILLEQ="TBILLEQ",FUNCTION_NAMES_FINANCIAL2.TBILLPRICE="TBILLPRICE",FUNCTION_NAMES_FINANCIAL2.TBILLYIELD="TBILLYIELD",FUNCTION_NAMES_FINANCIAL2.VDB="VDB",FUNCTION_NAMES_FINANCIAL2.XIRR="XIRR",FUNCTION_NAMES_FINANCIAL2.XNPV="XNPV",FUNCTION_NAMES_FINANCIAL2.YIELD="YIELD",FUNCTION_NAMES_FINANCIAL2.YIELDDISC="YIELDDISC",FUNCTION_NAMES_FINANCIAL2.YIELDMAT="YIELDMAT",FUNCTION_NAMES_FINANCIAL2))(FUNCTION_NAMES_FINANCIAL||{});function calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequency,basis){const coupDateSerialNumber=calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequency),{days}=getTwoDateDaysByBasis(coupDateSerialNumber,settlementSerialNumber,basis);return days}__name(calculateCoupdaybs,"calculateCoupdaybs");function calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequency,basis){let result;if(basis===1){const beforeSettlementDateSerialNumber=calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequency);let coupDate=excelSerialToDate(beforeSettlementDateSerialNumber);coupDate=dateAddMonths(coupDate,12/frequency);const afterSettlementDateSerialNumber=excelDateSerial(coupDate);beforeSettlementDateSerialNumber<0&&frequency===1?result=365:result=afterSettlementDateSerialNumber-beforeSettlementDateSerialNumber}else basis===3?result=365/frequency:result=360/frequency;return result}__name(calculateCoupdays,"calculateCoupdays");function calculateCoupncd(settlementSerialNumber,maturitySerialNumber,frequency){const settlementDate=excelSerialToDate(settlementSerialNumber);let coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate=dateAddMonths(coupDate,-12/frequency);return coupDate=dateAddMonths(coupDate,12/frequency),excelDateSerial(coupDate)}__name(calculateCoupncd,"calculateCoupncd");function calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency){let result=0;const settlementDate=excelSerialToDate(settlementSerialNumber);let coupDate=excelSerialToDate(maturitySerialNumber);for(;coupDate>settlementDate;)coupDate=dateAddMonths(coupDate,-12/frequency),result++;return result}__name(calculateCoupnum,"calculateCoupnum");function calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequency){const settlementDate=excelSerialToDate(settlementSerialNumber);let coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate=dateAddMonths(coupDate,-12/frequency);return excelDateSerial(coupDate)}__name(calculateCouppcd,"calculateCouppcd");function calculateDuration(settlementSerialNumber,maturitySerialNumber,coupon,yld,frequency,basis){const coupdaybs=calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequency,basis),coupdays=calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequency,basis),coupnum=calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency),coupdaysDiff=(coupdays-coupdaybs)/coupdays-1,_yld=yld/frequency+1,_coupon=coupon*100/frequency;let duration=0,den=0;for(let i=1;i<=coupnum;i++){const index2=i+coupdaysDiff,num2=_coupon/_yld**index2;duration+=index2*num2,den+=num2}const index=coupnum+coupdaysDiff,num=100/_yld**index;return duration+=index*num,den+=num,duration/den/frequency}__name(calculateDuration,"calculateDuration");function calculatePMT(rate,nper,pv,fv,type){let result;if(rate===0)result=(pv+fv)/nper;else{const term=(1+rate)**nper;result=type===1?(fv*rate/(term-1)+pv*rate/(1-1/term))/(1+rate):fv*rate/(term-1)+pv*rate/(1-1/term)}return-result}__name(calculatePMT,"calculatePMT");function calculateFV(rate,nper,pmt,pv,type){let result;if(rate===0)result=pv+pmt*nper;else{if(rate===-1&&nper===0)return Number.NaN;const term=(1+rate)**nper;result=type===1?pv*term+pmt*(1+rate)*(term-1)/rate:pv*term+pmt*(term-1)/rate}return-result}__name(calculateFV,"calculateFV");function calculateIPMT(rate,per,nper,pv,fv,type){const payment=calculatePMT(rate,nper,pv,fv,type);return(per===1?type===1?0:-pv:type===1?calculateFV(rate,per-2,payment,pv,1)-payment:calculateFV(rate,per-1,payment,pv,0))*rate}__name(calculateIPMT,"calculateIPMT");function calculateNpv(rate,values){let res=0;for(let i=1;i<=values.length;i++)res+=values[i-1]/(1+rate)**i;return res}__name(calculateNpv,"calculateNpv");function calculateOddFPrice(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis){const DFC=getPositiveDaysBetween(issueSerialNumber,firstCouponSerialNumber,basis),E=calculateCoupdays(settlementSerialNumber,firstCouponSerialNumber,frequency,basis);return DFC<E?calculateOddShortFirstCoupon(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis,DFC,E):calculateOddLongFirstCoupon(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis,E)}__name(calculateOddFPrice,"calculateOddFPrice");function calculateOddShortFirstCoupon(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis,DFC,E){let result=0;const N2=calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency),DSC=getPositiveDaysBetween(settlementSerialNumber,firstCouponSerialNumber,basis);result+=redemption/(1+yld/frequency)**(N2-1+DSC/E),result+=100*rate/frequency*DFC/E/(1+yld/frequency)**(DSC/E);for(let k=2;k<=N2;k++)result+=100*rate/frequency/(1+yld/frequency)**(k-1+DSC/E);const A=getPositiveDaysBetween(issueSerialNumber,settlementSerialNumber,basis);return result-=100*rate/frequency*A/E,result}__name(calculateOddShortFirstCoupon,"calculateOddShortFirstCoupon");function calculateOddLongFirstCoupon(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis,E){let result=0;const N2=calculateCoupnum(firstCouponSerialNumber,maturitySerialNumber,frequency),Nq=getCouponsNumber(firstCouponSerialNumber,settlementSerialNumber,12/frequency,!0);let DSC;if(basis===2||basis===3){const coupncd=calculateCoupncd(settlementSerialNumber,firstCouponSerialNumber,frequency);DSC=getPositiveDaysBetween(settlementSerialNumber,coupncd,basis)}else{const couppcd=calculateCouppcd(settlementSerialNumber,firstCouponSerialNumber,frequency),{days}=getTwoDateDaysByBasis(couppcd,settlementSerialNumber,basis);DSC=E-days}result+=redemption/(1+yld/frequency)**(N2+Nq+DSC/E);const NC=calculateCoupnum(issueSerialNumber,firstCouponSerialNumber,frequency);let lateCoupon=firstCouponSerialNumber,DCiDivNLiSum=0,AiDivNLiSum=0;for(let index=NC;index>=1;index--){const earlyCoupon=getDateSerialNumberByMonths(lateCoupon,-12/frequency,!1),NLi=basis===1?getPositiveDaysBetween(earlyCoupon,lateCoupon,basis):E,DCi=index>1?NLi:getPositiveDaysBetween(issueSerialNumber,lateCoupon,basis);DCiDivNLiSum+=DCi/NLi;const startDate=issueSerialNumber>earlyCoupon?issueSerialNumber:earlyCoupon,endDate=settlementSerialNumber<lateCoupon?settlementSerialNumber:lateCoupon,Ai=getPositiveDaysBetween(startDate,endDate,basis);AiDivNLiSum+=Ai/NLi,lateCoupon=earlyCoupon}result+=100*rate/frequency*DCiDivNLiSum/(1+yld/frequency)**(Nq+DSC/E);for(let k=1;k<=N2;k++)result+=100*rate/frequency/(1+yld/frequency)**(k+Nq+DSC/E);return result-=100*rate/frequency*AiDivNLiSum,result}__name(calculateOddLongFirstCoupon,"calculateOddLongFirstCoupon");function getPositiveDaysBetween(startDateSerialNumber,endDateSerialNumber,basis){const{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis);return startDateSerialNumber<endDateSerialNumber?days:0}__name(getPositiveDaysBetween,"getPositiveDaysBetween");function validDaysBetweenIsWholeFrequencyByTwoDate(date1SerialNumber,date2SerialNumber,frequency){const date1=excelSerialToDate(date1SerialNumber),date1Year=date1.getUTCFullYear(),date1Month=date1.getUTCMonth(),date1Day=date1.getUTCDate(),date1LastDayOfMonth=lastDayOfMonth(date1Year,date1Month,date1Day),date2=excelSerialToDate(date2SerialNumber),date2Year=date2.getUTCFullYear(),date2Month=date2.getUTCMonth(),date2Day=date2.getUTCDate(),date2LastDayOfMonth=lastDayOfMonth(date2Year,date2Month,date2Day);return!(date1Day!==date2Day&&!(date1LastDayOfMonth&&date2LastDayOfMonth)||Math.abs((date2Year-date1Year)*12+(date2Month-date1Month))%(12/frequency)!==0)}__name(validDaysBetweenIsWholeFrequencyByTwoDate,"validDaysBetweenIsWholeFrequencyByTwoDate");function validCouppcdIsGte0ByTwoDate(date1SerialNumber,date2SerialNumber,frequency){return calculateCouppcd(date1SerialNumber,date2SerialNumber,frequency)>=0}__name(validCouppcdIsGte0ByTwoDate,"validCouppcdIsGte0ByTwoDate");function getDateSerialNumberByMonths(serialNumber,months,returnLastDay){let date=excelSerialToDate(serialNumber);if(date=dateAddMonths(date,months),returnLastDay){const year=date.getUTCFullYear(),month=date.getUTCMonth(),daysInMonth=getDaysInMonth(year,month);date.setUTCDate(daysInMonth)}return excelDateSerial(date)}__name(getDateSerialNumberByMonths,"getDateSerialNumberByMonths");function getCouponsNumber(startDateSerialNumber,endDateSerialNumber,months,isWholeNumber){const startDate=excelSerialToDate(startDateSerialNumber),endDate=excelSerialToDate(endDateSerialNumber),startDateYear=startDate.getUTCFullYear(),startDateMonth=startDate.getUTCMonth(),startDateDay=startDate.getUTCDate(),endDateYear=endDate.getUTCFullYear(),endDateMonth=endDate.getUTCMonth(),endDateDay=endDate.getUTCDate(),endOfMonthTemp=lastDayOfMonth(startDateYear,startDateMonth,startDateDay),endOfMonth=!endOfMonthTemp&&startDateMonth!==1&&startDateDay>28&&startDateDay<getDaysInMonth(startDateYear,startDateMonth)?lastDayOfMonth(endDateYear,endDateMonth,endDateDay):endOfMonthTemp,newDateSerialNumber=getDateSerialNumberByMonths(endDateSerialNumber,0,endOfMonth);let coupons=+isWholeNumber-0+ +(endDateSerialNumber<newDateSerialNumber),frontDateSerialNumber=getDateSerialNumberByMonths(newDateSerialNumber,months,endOfMonth);for(;!(months>0?frontDateSerialNumber>=endDateSerialNumber:frontDateSerialNumber<=endDateSerialNumber);)frontDateSerialNumber=getDateSerialNumberByMonths(frontDateSerialNumber,months,endOfMonth),coupons++;return coupons}__name(getCouponsNumber,"getCouponsNumber");function getResultByGuessIterF(guess,iterF){let eps=1,nMC=0,x=guess,xN;for(;eps>1e-7&&nMC<500;){const den=(iterF(x+1e-7)-iterF(x-1e-7))/2e-7;xN=x-iterF(x)/den,nMC++,eps=Math.abs(xN-x),x=xN}return Number.isNaN(x)||Math.abs(x)===1/0||nMC===500?guessIsNaNorInfinity(guess,iterF):x}__name(getResultByGuessIterF,"getResultByGuessIterF");function guessIsNaNorInfinity(guess,iterF){const max2=Number.MAX_VALUE,min2=-1,step=1.6;let low=guess-.01<=min2?min2+1e-7:guess-.01,high=guess+.01>=max2?max2-1e-7:guess+.01,xBegin,xEnd,currentIter=0;if(guess<=min2||guess>=max2)return ErrorValueObject.create(ErrorType$1.NUM);for(let i=0;i<60;i++){xBegin=low<=min2?min2+1e-7:low,xEnd=high>=max2?max2-1e-7:high;const x=iterF(xBegin),y=iterF(xEnd);if(x*y<=0)break;if(x*y>0)low=xBegin+step*(xBegin-xEnd),high=xEnd+step*(xEnd-xBegin);else return ErrorValueObject.create(ErrorType$1.NUM);if(i===59)return ErrorValueObject.create(ErrorType$1.NUM)}xBegin=xBegin,xEnd=xEnd;let fXbegin=iterF(xBegin);const fXend=iterF(xEnd);let fXi,xI;if(Math.abs(fXbegin)<1e-7||Math.abs(fXend)<1e-7)return ErrorValueObject.create(ErrorType$1.NUM);do xI=xBegin+(xEnd-xBegin)/2,fXi=iterF(xI),fXbegin*fXi<0?xEnd=xI:xBegin=xI,fXbegin=iterF(xBegin),currentIter++;while(Math.abs(fXi)>1e-7&¤tIter<60);return xI}__name(guessIsNaNorInfinity,"guessIsNaNorInfinity");function calculatePrice(settlementSerialNumber,maturitySerialNumber,rate,yld,redemption,frequency,basis){const N2=calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency),E=calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequency,basis),A=calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequency,basis);if(N2===1){const DSR=E-A,T1=100*rate/frequency+redemption,T2=yld/frequency*DSR/E+1,T3=100*rate/frequency*A/E;return T1/T2-T3}const DSC=E-A;let result=redemption/(1+yld/frequency)**(N2-1+DSC/E);for(let k=1;k<=N2;k++)result+=100*rate/frequency/(1+yld/frequency)**(k-1+DSC/E);return result-=100*rate/frequency*A/E,result}__name(calculatePrice,"calculatePrice");function calculateDDB(cost,salvage,life,period,factor){let oldCost=0,fdl=factor/life;fdl>=1?(fdl=1,oldCost=period===1?cost:0):oldCost=cost*(1-fdl)**(period-1);const newCost=cost*(1-fdl)**period;let result=0;return newCost<salvage?result=oldCost-salvage:result=oldCost-newCost,result<0&&(result=0),result}__name(calculateDDB,"calculateDDB");const _Accrint=class _Accrint extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",8)}calculate(issue,firstInterest,settlement,rate,par,frequency,basis,calcMethod){const _basis=basis!=null?basis:NumberValueObject.create(0),_calcMethod=calcMethod!=null?calcMethod:BooleanValueObject.create(!0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(issue,firstInterest,settlement,rate,par,frequency,_basis);if(isError)return errorObject;const[issueObject,firstInterestObject,settlementObject,rateObject,parObject,frequencyObject,basisObject]=variants,issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const firstInterestSerialNumber=getDateSerialNumberByObject(firstInterestObject);if(typeof firstInterestSerialNumber!="number")return firstInterestSerialNumber;const settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const rateValue=+rateObject.getValue(),parValue=+parObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue()),calcMethodValue=+_calcMethod.getValue();return Number.isNaN(rateValue)||Number.isNaN(parValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue)||Number.isNaN(calcMethodValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||parValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(issueSerialNumber)>=Math.floor(settlementSerialNumber)?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(issueSerialNumber,firstInterestSerialNumber,settlementSerialNumber,rateValue,parValue,frequencyValue,basisValue,calcMethodValue)}_getResult(issueSerialNumber,firstInterestSerialNumber,settlementSerialNumber,rateValue,parValue,frequencyValue,basisValue,calcMethodValue){let couppcd=calculateCouppcd(issueSerialNumber,firstInterestSerialNumber,frequencyValue);if(couppcd<=0)return NumberValueObject.create(0);couppcd=calculateCouppcd(settlementSerialNumber,firstInterestSerialNumber,frequencyValue);const numMonths=12/frequencyValue,firstInterestDate=excelSerialToDate(firstInterestSerialNumber),firstInterestDateYear=firstInterestDate.getUTCFullYear(),firstInterestDateMonth=firstInterestDate.getUTCMonth(),firstInterestDateDay=firstInterestDate.getUTCDate(),lastDayOfMonthF=lastDayOfMonth(firstInterestDateYear,firstInterestDateMonth,firstInterestDateDay);let coupDateSerialNumber=getDateSerialNumberByMonths(firstInterestSerialNumber,-numMonths,lastDayOfMonthF);if(settlementSerialNumber>firstInterestSerialNumber&&calcMethodValue)for(coupDateSerialNumber=firstInterestSerialNumber;coupDateSerialNumber<settlementSerialNumber;)coupDateSerialNumber=getDateSerialNumberByMonths(coupDateSerialNumber,numMonths,lastDayOfMonthF);let firstDateSerialNumber=issueSerialNumber>coupDateSerialNumber?issueSerialNumber:coupDateSerialNumber,{days}=getTwoDateDaysByBasis(firstDateSerialNumber,settlementSerialNumber,basisValue);if(couppcd>=issueSerialNumber){const{days:DFS}=getTwoDateDaysByBasis(firstDateSerialNumber,settlementSerialNumber,basisValue?4:0);days=DFS}settlementSerialNumber<firstDateSerialNumber&&(days=-days);let coupdays=calculateCoupdays(coupDateSerialNumber,firstInterestSerialNumber,frequencyValue,basisValue),accruedDaysSum=days/coupdays,startDateSerialNumber=coupDateSerialNumber,endDateSerialNumber=issueSerialNumber;for(;startDateSerialNumber>issueSerialNumber;){endDateSerialNumber=startDateSerialNumber,startDateSerialNumber=getDateSerialNumberByMonths(startDateSerialNumber,-numMonths,lastDayOfMonthF),firstDateSerialNumber=issueSerialNumber>startDateSerialNumber?issueSerialNumber:startDateSerialNumber;const{days:DFE}=getTwoDateDaysByBasis(firstDateSerialNumber,endDateSerialNumber,basisValue);if(basisValue===0)endDateSerialNumber>=firstDateSerialNumber||issueSerialNumber<=startDateSerialNumber?days=DFE:days=-DFE,coupdays=calculateCoupdays(startDateSerialNumber,endDateSerialNumber,frequencyValue,basisValue);else if(days=endDateSerialNumber<firstDateSerialNumber?-DFE:DFE,basisValue===3)coupdays=365/frequencyValue;else{const{days:DSE}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basisValue);coupdays=endDateSerialNumber<startDateSerialNumber?-DSE:DSE}accruedDaysSum+=issueSerialNumber<=startDateSerialNumber?calcMethodValue?1:0:days/coupdays}const result=parValue*rateValue/frequencyValue*accruedDaysSum;return NumberValueObject.create(result)}};__name(_Accrint,"Accrint");let Accrint=_Accrint;const _Accrintm=class _Accrintm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(issue,settlement,rate,par,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(issue,settlement,rate,par,_basis);if(isError)return errorObject;const[issueObject,settlementObject,rateObject,parObject,basisObject]=variants,issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const rateValue=+rateObject.getValue(),parValue=+parObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(parValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<=0||parValue<=0||basisValue<0||basisValue>4||Math.floor(issueSerialNumber)>Math.floor(settlementSerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);if(Math.floor(issueSerialNumber)===Math.floor(settlementSerialNumber))return NumberValueObject.create(0);const{days,yearDays}=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue),result=parValue*rateValue*days/yearDays;return NumberValueObject.create(result)}};__name(_Accrintm,"Accrintm");let Accrintm=_Accrintm;const _Amorlinc=class _Amorlinc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",7)}calculate(cost,datePurchased,firstPeriod,salvage,period,rate,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(cost,datePurchased,firstPeriod,salvage,period,rate,_basis);if(isError)return errorObject;const[costObject,datePurchasedObject,firstPeriodObject,salvageObject,periodObject,rateObject,basisObject]=variants,datePurchasedSerialNumber=getDateSerialNumberByObject(datePurchasedObject);if(typeof datePurchasedSerialNumber!="number")return datePurchasedSerialNumber;const firstPeriodSerialNumber=getDateSerialNumberByObject(firstPeriodObject);if(typeof firstPeriodSerialNumber!="number")return firstPeriodSerialNumber;const costValue=+costObject.getValue(),salvageValue=+salvageObject.getValue();let periodValue=+periodObject.getValue();const rateValue=+rateObject.getValue(),basisValue=Math.floor(+basisObject.getValue());return Number.isNaN(costValue)||Number.isNaN(salvageValue)||Number.isNaN(periodValue)||Number.isNaN(rateValue)||Number.isNaN(basisValue)?ErrorValueObject.create(ErrorType$1.VALUE):costValue<=0||salvageValue<0||costValue<salvageValue||Math.floor(datePurchasedSerialNumber)>Math.floor(firstPeriodSerialNumber)||periodValue<0||rateValue<=0||![0,1,3,4].includes(basisValue)?ErrorValueObject.create(ErrorType$1.NUM):(periodValue>1?periodValue=Math.floor(periodValue):periodValue=Math.ceil(periodValue),this._getResult(costValue,datePurchasedSerialNumber,firstPeriodSerialNumber,salvageValue,periodValue,rateValue,basisValue))}_getResult(costValue,datePurchasedSerialNumber,firstPeriodSerialNumber,salvageValue,periodValue,rateValue,basisValue){const totalDepreciation=costValue-salvageValue,baseDepreciation=costValue*rateValue,{days,yearDays}=getTwoDateDaysByBasis(datePurchasedSerialNumber,firstPeriodSerialNumber,basisValue),firstPeriodYearsFraction=days/yearDays,life=Math.ceil(totalDepreciation/baseDepreciation-firstPeriodYearsFraction);if(life<0)return NumberValueObject.create(0);let result=baseDepreciation;return periodValue===0?result=baseDepreciation*firstPeriodYearsFraction:periodValue===life?result=totalDepreciation-baseDepreciation*(firstPeriodYearsFraction+periodValue-1):periodValue>life&&(result=0),NumberValueObject.create(result)}};__name(_Amorlinc,"Amorlinc");let Amorlinc=_Amorlinc;const _Coupdaybs=class _Coupdaybs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequencyValue,basisValue);return NumberValueObject.create(result)}};__name(_Coupdaybs,"Coupdaybs");let Coupdaybs=_Coupdaybs;const _Coupdays=class _Coupdays extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequencyValue,basisValue);return NumberValueObject.create(result)}};__name(_Coupdays,"Coupdays");let Coupdays=_Coupdays;const _Coupdaysnc=class _Coupdaysnc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequencyValue);const coupDateSerialNumber=excelDateSerial(coupDate),{days}=getTwoDateDaysByBasis(settlementSerialNumber,coupDateSerialNumber,basisValue);return NumberValueObject.create(days)}};__name(_Coupdaysnc,"Coupdaysnc");let Coupdaysnc=_Coupdaysnc;const _Coupncd=class _Coupncd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCoupncd(settlementSerialNumber,maturitySerialNumber,frequencyValue);return NumberValueObject.create(result)}};__name(_Coupncd,"Coupncd");let Coupncd=_Coupncd;const _Coupnum=class _Coupnum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber)||calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequencyValue)<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequencyValue);return NumberValueObject.create(result)}};__name(_Coupnum,"Coupnum");let Coupnum=_Coupnum;const _Couppcd=class _Couppcd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);let result=calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequencyValue);return result<0&&(result=0),NumberValueObject.create(result)}};__name(_Couppcd,"Couppcd");let Couppcd=_Couppcd;const _Cumipmt=class _Cumipmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",6)}calculate(rate,nper,pv,startPeriod,endPeriod,type){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(rate,nper,pv,startPeriod,endPeriod,type);if(isError)return errorObject;const[rateObject,nperObject,pvObject,startPeriodObject,endPeriodObject,typeObject]=variants,rateValue=+rateObject.getValue(),nperValue=+nperObject.getValue(),pvValue=+pvObject.getValue(),startPeriodValue=+startPeriodObject.getValue(),endPeriodValue=+endPeriodObject.getValue(),typeValue=+typeObject.getValue();return Number.isNaN(rateValue)||Number.isNaN(nperValue)||Number.isNaN(pvValue)||Number.isNaN(startPeriodValue)||Number.isNaN(endPeriodValue)||Number.isNaN(typeValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||nperValue<=0||pvValue<=0||startPeriodValue<1||endPeriodValue<1||startPeriodValue>endPeriodValue||startPeriodValue>nperValue||endPeriodValue>nperValue||![0,1].includes(typeValue)?ErrorValueObject.create(ErrorType$1.NUM):Math.trunc(startPeriodValue)!==startPeriodValue&&Math.trunc(endPeriodValue)!==endPeriodValue&&Math.trunc(startPeriodValue)===Math.trunc(endPeriodValue)?NumberValueObject.create(0):this._getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue)}_getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue){const payment=calculatePMT(rateValue,nperValue,pvValue,0,typeValue);let result=0,_startPeriodValue=Math.ceil(startPeriodValue);_startPeriodValue===1&&(typeValue===0&&(result=-pvValue),_startPeriodValue++);let canNotCalculate=!1;for(let i=_startPeriodValue;i<=endPeriodValue;i++){const principal=typeValue===1?calculateFV(rateValue,i-2,payment,pvValue,1):calculateFV(rateValue,i-1,payment,pvValue,0);if(principal===0){canNotCalculate=!0;break}result+=typeValue===1?principal-payment:principal}return result*=rateValue,(result<payment*(endPeriodValue-startPeriodValue+1)||canNotCalculate)&&(result=payment*(endPeriodValue-startPeriodValue+1)),NumberValueObject.create(result)}};__name(_Cumipmt,"Cumipmt");let Cumipmt=_Cumipmt;const _Cumprinc=class _Cumprinc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",6)}calculate(rate,nper,pv,startPeriod,endPeriod,type){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(rate,nper,pv,startPeriod,endPeriod,type);if(isError)return errorObject;const[rateObject,nperObject,pvObject,startPeriodObject,endPeriodObject,typeObject]=variants,rateValue=+rateObject.getValue(),nperValue=+nperObject.getValue(),pvValue=+pvObject.getValue(),startPeriodValue=+startPeriodObject.getValue(),endPeriodValue=+endPeriodObject.getValue(),typeValue=+typeObject.getValue();return Number.isNaN(rateValue)||Number.isNaN(nperValue)||Number.isNaN(pvValue)||Number.isNaN(startPeriodValue)||Number.isNaN(endPeriodValue)||Number.isNaN(typeValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||nperValue<=0||pvValue<=0||startPeriodValue<1||endPeriodValue<1||startPeriodValue>endPeriodValue||![0,1].includes(typeValue)?ErrorValueObject.create(ErrorType$1.NUM):Math.trunc(startPeriodValue)!==startPeriodValue&&Math.trunc(endPeriodValue)!==endPeriodValue&&Math.trunc(startPeriodValue)===Math.trunc(endPeriodValue)?NumberValueObject.create(0):this._getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue)}_getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue){const payment=calculatePMT(rateValue,nperValue,pvValue,0,typeValue);let result=0,_startPeriodValue=Math.ceil(startPeriodValue);_startPeriodValue===1&&(result=typeValue===0?payment+pvValue*rateValue:payment,_startPeriodValue++);for(let i=_startPeriodValue;i<=endPeriodValue;i++)result+=typeValue===1?payment-(calculateFV(rateValue,i-2,payment,pvValue,1)-payment)*rateValue:payment-calculateFV(rateValue,i-1,payment,pvValue,0)*rateValue;return NumberValueObject.create(result)}};__name(_Cumprinc,"Cumprinc");let Cumprinc=_Cumprinc;const _Db=class _Db extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5);__publicField(this,"needsLocale",!0)}calculate(cost,salvage,life,period,month){let _month=month!=null?month:NumberValueObject.create(12);_month.isNull()&&(_month=NumberValueObject.create(12));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,period.isArray()?period.getRowCount():1,_month.isArray()?_month.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,period.isArray()?period.getColumnCount():1,_month.isArray()?_month.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),periodArray=expandArrayValueObject(maxRowLength,maxColumnLength,period,ErrorValueObject.create(ErrorType$1.NA)),monthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_month,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),periodObject=periodArray.get(rowIndex,columnIndex),monthObject=monthArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,periodObject,monthObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_periodObject,_monthObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue();let periodValue=+_periodObject.getValue();const monthValue=Math.floor(+_monthObject.getValue());return costValue<0||salvageValue<0||lifeValue<=0||periodValue<=0||Math.floor(periodValue)>Math.floor(lifeValue)||monthValue<1||monthValue>12?ErrorValueObject.create(ErrorType$1.NUM):(periodValue<1&&(periodValue=1),periodValue=Math.floor(periodValue),this._getResult(costValue,salvageValue,lifeValue,periodValue,monthValue,rowIndex,columnIndex))});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(costValue,salvageValue,lifeValue,periodValue,monthValue,rowIndex,columnIndex){const rate=+(1-(salvageValue/costValue)**(1/lifeValue)).toFixed(3),initial=costValue*rate*monthValue/12;let total=initial,current=0;const ceiling=periodValue===lifeValue?lifeValue-1:periodValue;for(let i=2;i<=ceiling;i++)current=(costValue-total)*rate,total+=current;let result;return periodValue===1?result=initial:periodValue===lifeValue?result=(costValue-total)*rate:result=current,Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)}};__name(_Db,"Db");let Db=_Db;const _Ddb=class _Ddb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5);__publicField(this,"needsLocale",!0)}calculate(cost,salvage,life,period,factor){let _factor=factor!=null?factor:NumberValueObject.create(2);_factor.isNull()&&(_factor=NumberValueObject.create(2));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,period.isArray()?period.getRowCount():1,_factor.isArray()?_factor.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,period.isArray()?period.getColumnCount():1,_factor.isArray()?_factor.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),periodArray=expandArrayValueObject(maxRowLength,maxColumnLength,period,ErrorValueObject.create(ErrorType$1.NA)),factorArray=expandArrayValueObject(maxRowLength,maxColumnLength,_factor,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),periodObject=periodArray.get(rowIndex,columnIndex),factorObject=factorArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,periodObject,factorObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_periodObject,_factorObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue(),periodValue=+_periodObject.getValue(),factorValue=+_factorObject.getValue();if(costValue<0||salvageValue<0||lifeValue<=0||periodValue<=0||periodValue>lifeValue||factorValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateDDB(costValue,salvageValue,lifeValue,periodValue,factorValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ddb,"Ddb");let Ddb=_Ddb;const _Disc=class _Disc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,pr,redemption,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,pr,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,prObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(prValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue-prValue)/redemptionValue*(yearDays/days);return NumberValueObject.create(result)}};__name(_Disc,"Disc");let Disc=_Disc;const _Dollarde=class _Dollarde extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(fractionalDollar,fraction){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(fractionalDollar,fraction);if(isError)return errorObject;const[fractionalDollarObject,fractionObject]=variants,fractionalDollarValue=+fractionalDollarObject.getValue();let fractionValue=Math.floor(+fractionObject.getValue());if(Number.isNaN(fractionalDollarValue)||Number.isNaN(fractionValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(fractionValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(fractionValue>=0&&fractionValue<1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);fractionValue=Number.parseInt(`${fractionValue}`,10);let result=Number.parseInt(`${fractionalDollarValue}`,10);result+=fractionalDollarValue%1*10**Math.ceil(Math.log(fractionValue)/Math.LN10)/fractionValue;const power=10**(Math.ceil(Math.log(fractionValue)/Math.LN2)+1);return result=Math.round(result*power)/power,NumberValueObject.create(result)}};__name(_Dollarde,"Dollarde");let Dollarde=_Dollarde;const _Dollarfr=class _Dollarfr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(decimalDollar,fraction){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(decimalDollar,fraction);if(isError)return errorObject;const[decimalDollarObject,fractionObject]=variants,decimalDollarValue=+decimalDollarObject.getValue();let fractionValue=Math.floor(+fractionObject.getValue());if(Number.isNaN(decimalDollarValue)||Number.isNaN(fractionValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(fractionValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(fractionValue>=0&&fractionValue<1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);fractionValue=Number.parseInt(`${fractionValue}`,10);let result=Number.parseInt(`${decimalDollarValue}`,10);return result+=decimalDollarValue%1*10**-Math.ceil(Math.log(fractionValue)/Math.LN10)*fractionValue,NumberValueObject.create(result)}};__name(_Dollarfr,"Dollarfr");let Dollarfr=_Dollarfr;const _Duration=class _Duration extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",6)}calculate(settlement,maturity,coupon,yld,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,coupon,yld,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,couponObject,yldObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const couponValue=+couponObject.getValue(),yldValue=+yldObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(couponValue)||Number.isNaN(yldValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(couponValue<0||yldValue<0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber)||settlementSerialNumber<=0||maturitySerialNumber<=366)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateDuration(settlementSerialNumber,maturitySerialNumber,couponValue,yldValue,frequencyValue,basisValue);return NumberValueObject.create(result)}};__name(_Duration,"Duration");let Duration=_Duration;const _Effect=class _Effect extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(nominalRate,npery){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(nominalRate,npery);if(isError)return errorObject;const[nominalRateObject,nperyObject]=variants,nominalRateValue=+nominalRateObject.getValue();let nperyValue=Math.floor(+nperyObject.getValue());if(Number.isNaN(nominalRateValue)||Number.isNaN(nperyValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nominalRateValue<=0||nperyValue<1)return ErrorValueObject.create(ErrorType$1.NUM);nperyValue=Number.parseInt(`${nperyValue}`,10);const result=(1+nominalRateValue/nperyValue)**nperyValue-1;return NumberValueObject.create(result)}};__name(_Effect,"Effect");let Effect=_Effect;const _Fv=class _Fv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5);__publicField(this,"needsLocale",!0)}calculate(rate,nper,pmt,pv,type){const _pv=pv!=null?pv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,_pv.isArray()?_pv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,_pv.isArray()?_pv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_pv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pmtObject,pvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pmtObject,_pvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),typeValue=+_typeObject.getValue(),result=calculateFV(rateValue,nperValue,pmtValue,pvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Fv,"Fv");let Fv=_Fv;const _Fvschedule=class _Fvschedule extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(principal,schedule){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(principal);if(isError)return errorObject;const[principalObject]=variants,principalValue=+principalObject.getValue();if(Number.isNaN(principalValue))return ErrorValueObject.create(ErrorType$1.VALUE);let result=principalValue;if(schedule.isArray()){const scheduleValues=schedule.getArrayValue().flat();for(let i=0;i<scheduleValues.length;i++){const scheduleObject=scheduleValues[i];if(scheduleObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const scheduleValue=+scheduleObject.getValue();if(Number.isNaN(scheduleValue))return ErrorValueObject.create(ErrorType$1.VALUE);result*=1+scheduleValue}}else{if(schedule.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const scheduleValue=+schedule.getValue();if(Number.isNaN(scheduleValue))return ErrorValueObject.create(ErrorType$1.VALUE);result*=1+scheduleValue}return NumberValueObject.create(result)}};__name(_Fvschedule,"Fvschedule");let Fvschedule=_Fvschedule;const _Intrate=class _Intrate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,investment,redemption,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,investment,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,investmentObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const investmentValue=+investmentObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(investmentValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(investmentValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue-investmentValue)/investmentValue*(yearDays/days);return NumberValueObject.create(result)}};__name(_Intrate,"Intrate");let Intrate=_Intrate;const _Ipmt=class _Ipmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6);__publicField(this,"needsLocale",!0)}calculate(rate,per,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(perValue<1||Math.floor(perValue)>Math.ceil(nperValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateIPMT(rateValue,perValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ipmt,"Ipmt");let Ipmt=_Ipmt;const _Irr=class _Irr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(values,guess){let _guess=guess!=null?guess:NumberValueObject.create(.1);return _guess.isNull()&&(_guess=NumberValueObject.create(.1)),_guess.isArray()?_guess.map((guessObject,rowIndex,columnIndex)=>this._handleSingleObject(values,guessObject,rowIndex,columnIndex)):this._handleSingleObject(values,_guess)}_handleSingleObject(values,guess,rowIndex=0,columnIndex=0){if(values.isError())return values;if(guess.isError())return guess;if(values.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(!values.isArray())return ErrorValueObject.create(ErrorType$1.NUM);const{_values,valuesHasError}=this._getValues(values);if(valuesHasError)return ErrorValueObject.create(ErrorType$1.VALUE);let _guess=guess;if(_guess.isString()&&(_guess=_guess.convertToNumberObjectValue(),_guess.isError()))return _guess;const guessValue=+_guess.getValue(),{positive,negative}=this._checkValues(_values);if(!positive||!negative)return ErrorValueObject.create(ErrorType$1.NUM);const result=getResultByGuessIterF(guessValue,rate=>calculateNpv(rate,_values));return typeof result!="number"?result:rowIndex===0&&columnIndex===0?NumberValueObject.create(result,"0%"):NumberValueObject.create(result)}_getValues(values){const _values=[];let valuesHasError=!1;return values.iterator(valueOject=>{const _valueOject=valueOject;if(_valueOject.isError())return valuesHasError=!0,!1;if(_valueOject.isNull()||_valueOject.isBoolean())return!0;const value=+_valueOject.getValue();if(Number.isNaN(value))return!0;_values.push(value)}),{_values,valuesHasError}}_checkValues(values){let positive=!1,negative=!1;for(let i=0;i<values.length;i++)values[i]>0&&(positive=!0),values[i]<0&&(negative=!0);return{positive,negative}}};__name(_Irr,"Irr");let Irr=_Irr;const _Ispmt=class _Ispmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(rate,per,nper,pv){const maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue();if(nperValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=pvValue*rateValue*(perValue/nperValue-1);return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ispmt,"Ispmt");let Ispmt=_Ispmt;const _Mduration=class _Mduration extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",6)}calculate(settlement,maturity,coupon,yld,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,coupon,yld,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,couponObject,yldObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const couponValue=+couponObject.getValue(),yldValue=+yldObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(couponValue)||Number.isNaN(yldValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(couponValue<0||yldValue<0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);let result=calculateDuration(settlementSerialNumber,maturitySerialNumber,couponValue,yldValue,frequencyValue,basisValue);return result/=1+yldValue/frequencyValue,NumberValueObject.create(result)}};__name(_Mduration,"Mduration");let Mduration=_Mduration;const _Mirr=class _Mirr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(values,financeRate,reinvestRate){const{_values,numberValues,positive,negative}=this._getValues(values),maxRowLength=Math.max(financeRate.isArray()?financeRate.getRowCount():1,reinvestRate.isArray()?reinvestRate.getRowCount():1),maxColumnLength=Math.max(financeRate.isArray()?financeRate.getColumnCount():1,reinvestRate.isArray()?reinvestRate.getColumnCount():1),financeRateArray=expandArrayValueObject(maxRowLength,maxColumnLength,financeRate,ErrorValueObject.create(ErrorType$1.NA)),reinvestRateArray=expandArrayValueObject(maxRowLength,maxColumnLength,reinvestRate,ErrorValueObject.create(ErrorType$1.NA)),resultArray=financeRateArray.map((financeRateObject,rowIndex,columnIndex)=>{const reinvestRateObject=reinvestRateArray.get(rowIndex,columnIndex);if(values.isError())return values;if(reinvestRateObject.isError())return reinvestRateObject;if(_values.isError())return _values;if(!positive||!negative)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const financeRateValue=+financeRateObject.getValue(),reinvestRateValue=+reinvestRateObject.getValue();if(Number.isNaN(financeRateValue)||Number.isNaN(reinvestRateValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(reinvestRateValue===-1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=this._getResult(numberValues,financeRateValue,reinvestRateValue);return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,"0%"):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getValues(values){let _values=values,_numberValues=[],_positive=!1,_negative=!1;if(!values.isError())if(values.isNull())_values=ErrorValueObject.create(ErrorType$1.VALUE);else if(!values.isArray())_values=ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);else{const{numberValues,valuesHasError,errorObject,positive,negative}=this._checkValues(values);valuesHasError&&(_values=errorObject),_numberValues=numberValues,_positive=positive,_negative=negative}return{_values,numberValues:_numberValues,positive:_positive,negative:_negative}}_checkValues(values){const numberValues=[];let valuesHasError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE),positive=!1,negative=!1;return values.iterator(valueOject=>{const _valueOject=valueOject;if(_valueOject.isError())return valuesHasError=!0,errorObject=_valueOject,!1;if(_valueOject.isNull()||_valueOject.isBoolean())return!0;const value=+_valueOject.getValue();if(Number.isNaN(value))return!0;value>0&&(positive=!0),value<0&&(negative=!0),numberValues.push(value)}),{numberValues,valuesHasError,errorObject,positive,negative}}_getResult(values,financeRate,reinvestRate){const n=values.length,negatives=[],positives=[];for(let i=0;i<n;i++)values[i]>0?positives.push(values[i]):values[i]<0&&negatives.push(values[i]);const npvR=this._npv(reinvestRate,values,"positive"),npvF=this._npv(financeRate,values,"negative"),num=-npvR*(1+reinvestRate)**n,den=npvF*(1+financeRate);return(num/den)**(1/(n-1))-1}_npv(rate,values,type){let res=0;for(let i=1;i<=values.length;i++){const value=values[i-1];(type==="positive"&&value>0||type==="negative"&&value<0)&&(res+=value/(1+rate)**i)}return res}};__name(_Mirr,"Mirr");let Mirr=_Mirr;const _Nominal=class _Nominal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(effectRate,npery){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(effectRate,npery);if(isError)return errorObject;const[effectRateObject,nperyObject]=variants,effectRateValue=+effectRateObject.getValue();let nperyValue=Math.floor(+nperyObject.getValue());if(Number.isNaN(effectRateValue)||Number.isNaN(nperyValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(effectRateValue<=0||nperyValue<1)return ErrorValueObject.create(ErrorType$1.NUM);nperyValue=Number.parseInt(`${nperyValue}`,10);const result=((effectRateValue+1)**(1/nperyValue)-1)*nperyValue;return NumberValueObject.create(result)}};__name(_Nominal,"Nominal");let Nominal=_Nominal;const _Nper=class _Nper extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,pmt,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,pmtObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_pmtObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();if(typeValue=typeValue?1:0,rateValue===0&&pmtValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);let result;if(rateValue===0)result=-(pvValue+fvValue)/pmtValue;else{const num=pmtValue*(1+rateValue*typeValue)-fvValue*rateValue,den=pvValue*rateValue+pmtValue*(1+rateValue*typeValue);result=Math.log(num/den)/Math.log(1+rateValue)}return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Nper,"Nper");let Nper=_Nper;const _Npv=class _Npv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsLocale",!0)}calculate(rate,...variants){if(rate.isError())return rate;const{isError,errorObject,values}=this._getValues(variants);return rate.isArray()?rate.map((rateObject,rowIndex,columnIndex)=>this._handleSingleObject(rateObject,isError,errorObject,values,rowIndex,columnIndex)):this._handleSingleObject(rate,isError,errorObject,values)}_handleSingleObject(rate,isError,errorObject,values,rowIndex=0,columnIndex=0){let _rate=rate;if(_rate.isString()&&(_rate=_rate.convertToNumberObjectValue()),_rate.isError())return _rate;if(isError)return errorObject;const rateValue=+rate.getValue(),result=calculateNpv(rateValue,values);return Number.isNaN(result)||Math.abs(result)===1/0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)}_getValues(variants){const values=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return{isError:!0,errorObject:variant};if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(variantOject=>{const _variantOject=variantOject;if(_variantOject.isError())return isError=!0,errorObject=_variantOject,!1;if(_variantOject.isNull()||_variantOject.isBoolean())return!0;const value=+_variantOject.getValue();if(Number.isNaN(value))return!0;values.push(value)}),isError)return{isError,errorObject}}else{const value=+variant.getValue();if(Number.isNaN(value))return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};values.push(value)}}return{isError:!1,values}}};__name(_Npv,"Npv");let Npv=_Npv;const _Oddfprice=class _Oddfprice extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",8);__publicField(this,"maxParams",9)}calculate(settlement,maturity,issue,firstCoupon,rate,yld,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,issue,firstCoupon,rate,yld,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,issueObject,firstCouponObject,rateObject,yldObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const firstCouponSerialNumber=getDateSerialNumberByObject(firstCouponObject);if(typeof firstCouponSerialNumber!="number")return firstCouponSerialNumber;const rateValue=+rateObject.getValue(),yldValue=+yldObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(yldValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||yldValue<0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||!this._validDate(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateOddFPrice(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rateValue,yldValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}_validDate(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber,frequencyValue){return this._getDateCorrectOrder(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber)&&validDaysBetweenIsWholeFrequencyByTwoDate(maturitySerialNumber,firstCouponSerialNumber,frequencyValue)&&validCouppcdIsGte0ByTwoDate(issueSerialNumber,maturitySerialNumber,frequencyValue)}_getDateCorrectOrder(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber){return Math.floor(maturitySerialNumber)>Math.floor(firstCouponSerialNumber)&&Math.floor(firstCouponSerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(issueSerialNumber)}};__name(_Oddfprice,"Oddfprice");let Oddfprice=_Oddfprice;const _Oddfyield=class _Oddfyield extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",8);__publicField(this,"maxParams",9)}calculate(settlement,maturity,issue,firstCoupon,rate,pr,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,issue,firstCoupon,rate,pr,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,issueObject,firstCouponObject,rateObject,prObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const firstCouponSerialNumber=getDateSerialNumberByObject(firstCouponObject);if(typeof firstCouponSerialNumber!="number")return firstCouponSerialNumber;const rateValue=+rateObject.getValue(),prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());return Number.isNaN(rateValue)||Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<0||prValue<=0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||!this._validDate(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber,frequencyValue)?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rateValue,prValue,redemptionValue,frequencyValue,basisValue)}_validDate(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber,frequencyValue){return this._getDateCorrectOrder(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber)&&validDaysBetweenIsWholeFrequencyByTwoDate(maturitySerialNumber,firstCouponSerialNumber,frequencyValue)&&validCouppcdIsGte0ByTwoDate(issueSerialNumber,maturitySerialNumber,frequencyValue)}_getDateCorrectOrder(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber){return Math.floor(maturitySerialNumber)>Math.floor(firstCouponSerialNumber)&&Math.floor(firstCouponSerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(issueSerialNumber)}_getResult(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,pr,redemption,frequency,basis){const{days}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basis),guess=(rate*days*100-(pr-100))/((pr-100)*.25*(1+2*days)+days*100);function _iterF(yld){return pr-calculateOddFPrice(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis)}__name(_iterF,"_iterF");const result=getResultByGuessIterF(guess,yld=>_iterF(yld));return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_Oddfyield,"Oddfyield");let Oddfyield=_Oddfyield;const _Oddlprice=class _Oddlprice extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",7);__publicField(this,"maxParams",8)}calculate(settlement,maturity,lastInterest,rate,yld,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,lastInterest,rate,yld,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,lastInterestObject,rateObject,yldObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const lastInterestSerialNumber=getDateSerialNumberByObject(lastInterestObject);if(typeof lastInterestSerialNumber!="number")return lastInterestSerialNumber;const rateValue=+rateObject.getValue(),yldValue=+yldObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(yldValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||yldValue<0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||!this._validDate(maturitySerialNumber,settlementSerialNumber,lastInterestSerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=this._getResult(settlementSerialNumber,maturitySerialNumber,lastInterestSerialNumber,rateValue,yldValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}_validDate(maturitySerialNumber,settlementSerialNumber,lastInterestSerialNumber,frequencyValue){return Math.floor(maturitySerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(lastInterestSerialNumber)&&validCouppcdIsGte0ByTwoDate(lastInterestSerialNumber,maturitySerialNumber,frequencyValue)}_getResult(settlementSerialNumber,maturitySerialNumber,lastInterestSerialNumber,rate,yld,redemption,frequency,basis){const coupDateSerialNumber=this._getCoupDate(maturitySerialNumber,lastInterestSerialNumber,frequency),fAi=this._getFrac(lastInterestSerialNumber,settlementSerialNumber,coupDateSerialNumber,frequency,basis),fDCi=this._getFrac(lastInterestSerialNumber,maturitySerialNumber,coupDateSerialNumber,frequency,basis),fDSCi=this._getFrac(settlementSerialNumber,maturitySerialNumber,coupDateSerialNumber,frequency,basis);return(redemption*frequency+100*rate*(fDCi-fAi*(1+yld*fDSCi/frequency)))/(yld*fDSCi+frequency)}_getCoupDate(maturitySerialNumber,lastInterestSerialNumber,frequency){const maturityDate=excelSerialToDate(maturitySerialNumber),coupDate=excelSerialToDate(lastInterestSerialNumber);for(coupDate.setUTCFullYear(maturityDate.getUTCFullYear()),coupDate>maturityDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()-1);coupDate<maturityDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequency);return excelDateSerial(coupDate)}_getFrac(startDateSerialNumber,endDateSerialNumber,coupDateSerialNumber,frequency,basis){const startDate=excelSerialToDate(startDateSerialNumber),endDate=excelSerialToDate(endDateSerialNumber),coupDate=excelSerialToDate(coupDateSerialNumber);for(coupDate.setUTCFullYear(startDate.getUTCFullYear()),coupDate<startDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>startDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequency);let earlyCouponSerialNumber=excelDateSerial(coupDate);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequency);let lateCouponSerialNumber=excelDateSerial(coupDate);if(lateCouponSerialNumber>=endDateSerialNumber){const{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis),coupdays=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);return days/coupdays}const{days:daysF}=getTwoDateDaysByBasis(startDateSerialNumber,lateCouponSerialNumber,basis),coupdaysF=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);let result=daysF/coupdaysF;const earlyCoupon=excelSerialToDate(lateCouponSerialNumber),lateCoupon=excelSerialToDate(lateCouponSerialNumber);for(lateCoupon.setUTCMonth(lateCoupon.getUTCMonth()+12/frequency);lateCoupon<endDate;)earlyCoupon.setUTCMonth(earlyCoupon.getUTCMonth()+12/frequency),lateCoupon.setUTCMonth(lateCoupon.getUTCMonth()+12/frequency),result+=1;earlyCouponSerialNumber=excelDateSerial(earlyCoupon),lateCouponSerialNumber=excelDateSerial(lateCoupon);const{days:daysL}=getTwoDateDaysByBasis(earlyCouponSerialNumber,endDateSerialNumber,basis),coupdaysL=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);return result+=daysL/coupdaysL,result}};__name(_Oddlprice,"Oddlprice");let Oddlprice=_Oddlprice;const _Oddlyield=class _Oddlyield extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",8);__publicField(this,"maxParams",9)}calculate(settlement,maturity,lastInterest,rate,pr,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,lastInterest,rate,pr,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,lastInterestObject,rateObject,prObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const lastInterestSerialNumber=getDateSerialNumberByObject(lastInterestObject);if(typeof lastInterestSerialNumber!="number")return lastInterestSerialNumber;const rateValue=+rateObject.getValue(),prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||prValue<=0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||!this._validDate(maturitySerialNumber,settlementSerialNumber,lastInterestSerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=this._getResult(settlementSerialNumber,maturitySerialNumber,lastInterestSerialNumber,rateValue,prValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}_validDate(maturitySerialNumber,settlementSerialNumber,lastInterestSerialNumber,frequencyValue){return Math.floor(maturitySerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(lastInterestSerialNumber)&&validCouppcdIsGte0ByTwoDate(lastInterestSerialNumber,maturitySerialNumber,frequencyValue)}_getResult(settlementSerialNumber,maturitySerialNumber,lastInterestSerialNumber,rate,pr,redemption,frequency,basis){const coupDateSerialNumber=this._getCoupDate(maturitySerialNumber,lastInterestSerialNumber,frequency),fAi=this._getFrac(lastInterestSerialNumber,settlementSerialNumber,coupDateSerialNumber,frequency,basis),fDCi=this._getFrac(lastInterestSerialNumber,maturitySerialNumber,coupDateSerialNumber,frequency,basis),fDSCi=this._getFrac(settlementSerialNumber,maturitySerialNumber,coupDateSerialNumber,frequency,basis);return(frequency*(redemption-pr)+100*rate*(fDCi-fAi))/(fDSCi*pr+100*rate*fAi*fDSCi/frequency)}_getCoupDate(maturitySerialNumber,lastInterestSerialNumber,frequency){const maturityDate=excelSerialToDate(maturitySerialNumber),coupDate=excelSerialToDate(lastInterestSerialNumber);for(coupDate.setUTCFullYear(maturityDate.getUTCFullYear()),coupDate>maturityDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()-1);coupDate<maturityDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequency);return excelDateSerial(coupDate)}_getFrac(startDateSerialNumber,endDateSerialNumber,coupDateSerialNumber,frequency,basis){const startDate=excelSerialToDate(startDateSerialNumber),endDate=excelSerialToDate(endDateSerialNumber),coupDate=excelSerialToDate(coupDateSerialNumber);for(coupDate.setUTCFullYear(startDate.getUTCFullYear()),coupDate<startDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>startDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequency);let earlyCouponSerialNumber=excelDateSerial(coupDate);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequency);let lateCouponSerialNumber=excelDateSerial(coupDate);if(lateCouponSerialNumber>=endDateSerialNumber){const{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis),coupdays=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);return days/coupdays}const{days:daysF}=getTwoDateDaysByBasis(startDateSerialNumber,lateCouponSerialNumber,basis),coupdaysF=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);let result=daysF/coupdaysF;const earlyCoupon=excelSerialToDate(lateCouponSerialNumber),lateCoupon=excelSerialToDate(lateCouponSerialNumber);for(lateCoupon.setUTCMonth(lateCoupon.getUTCMonth()+12/frequency);lateCoupon<endDate;)earlyCoupon.setUTCMonth(earlyCoupon.getUTCMonth()+12/frequency),lateCoupon.setUTCMonth(lateCoupon.getUTCMonth()+12/frequency),result+=1;earlyCouponSerialNumber=excelDateSerial(earlyCoupon),lateCouponSerialNumber=excelDateSerial(lateCoupon);const{days:daysL}=getTwoDateDaysByBasis(earlyCouponSerialNumber,endDateSerialNumber,basis),coupdaysL=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);return result+=daysL/coupdaysL,result}};__name(_Oddlyield,"Oddlyield");let Oddlyield=_Oddlyield;const _Pduration=class _Pduration extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(rate,pv,fv){const maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,pv.isArray()?pv.getRowCount():1,fv.isArray()?fv.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,fv.isArray()?fv.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,fv,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,pvObject,fvObject);if(isError)return errorObject;const[_rateObject,_pvObject,_fvObject]=variants,rateValue=+_rateObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();if(rateValue<=-1)return ErrorValueObject.create(ErrorType$1.NUM);const result=(Math.log(fvValue)-Math.log(pvValue))/Math.log(1+rateValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pduration,"Pduration");let Pduration=_Pduration;const _Pmt=class _Pmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5);__publicField(this,"needsLocale",!0)}calculate(rate,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(rateValue<=-1)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePMT(rateValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pmt,"Pmt");let Pmt=_Pmt;const _Ppmt=class _Ppmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6);__publicField(this,"needsLocale",!0)}calculate(rate,per,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(perValue<1||Math.floor(perValue)>Math.ceil(nperValue)||perValue-nperValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePMT(rateValue,nperValue,pvValue,fvValue,typeValue?1:0)-calculateIPMT(rateValue,perValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ppmt,"Ppmt");let Ppmt=_Ppmt;const _Price=class _Price extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",7)}calculate(settlement,maturity,rate,yld,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,rate,yld,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,rateObject,yldObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const rateValue=+rateObject.getValue(),yldValue=+yldObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(yldValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||yldValue<0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber||!validCouppcdIsGte0ByTwoDate(settlementSerialNumber,maturitySerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePrice(settlementSerialNumber,maturitySerialNumber,rateValue,yldValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}};__name(_Price,"Price");let Price=_Price;const _Pricedisc=class _Pricedisc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,discount,redemption,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,discount,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,discountObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const discountValue=+discountObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(discountValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(discountValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const{days:DSM,yearDays:B}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=redemptionValue-discountValue*redemptionValue*DSM/B;return NumberValueObject.create(result)}};__name(_Pricedisc,"Pricedisc");let Pricedisc=_Pricedisc;const _Pricemat=class _Pricemat extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",6)}calculate(settlement,maturity,issue,rate,yld,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,issue,rate,yld,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,issueObject,rateObject,yldObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const rateValue=+rateObject.getValue(),yldValue=+yldObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(yldValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);const isCorrectOrder=this._getDateCorrectOrder(maturitySerialNumber,settlementSerialNumber,issueSerialNumber);if(rateValue<0||yldValue<0||basisValue<0||basisValue>4||!isCorrectOrder)return ErrorValueObject.create(ErrorType$1.NUM);const B=getNormalYearDaysByBasis(settlementSerialNumber,basisValue),{days:DSM}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),{days:DIM}=getTwoDateDaysByBasis(issueSerialNumber,maturitySerialNumber,basisValue),{days:A}=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue),result=(100+DIM/B*rateValue*100)/(1+DSM/B*yldValue)-A/B*rateValue*100;return NumberValueObject.create(result)}_getDateCorrectOrder(maturitySerialNumber,settlementSerialNumber,issueSerialNumber){return Math.floor(maturitySerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(issueSerialNumber)}};__name(_Pricemat,"Pricemat");let Pricemat=_Pricemat;const _Pv=class _Pv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5);__publicField(this,"needsLocale",!0)}calculate(rate,nper,pmt,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pmtObject=pmtArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pmtObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pmtObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();typeValue=typeValue?1:0;const result=rateValue===0?-pmtValue*nperValue-fvValue:((1-(1+rateValue)**nperValue)/rateValue*pmtValue*(1+rateValue*typeValue)-fvValue)/(1+rateValue)**nperValue;return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pv,"Pv");let Pv=_Pv;const _Rate=class _Rate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(nper,pmt,pv,fv,type,guess){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),_guess=guess!=null?guess:NumberValueObject.create(.1),maxRowLength=Math.max(nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1,_guess.isArray()?_guess.getRowCount():1),maxColumnLength=Math.max(nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1,_guess.isArray()?_guess.getColumnCount():1),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),guessArray=expandArrayValueObject(maxRowLength,maxColumnLength,_guess,ErrorValueObject.create(ErrorType$1.NA)),resultArray=nperArray.map((nperObject,rowIndex,columnIndex)=>{const pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),guessObject=guessArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(nperObject,pmtObject,pvObject,fvObject,typeObject,guessObject);if(isError)return errorObject;const[_nperObject,_pmtObject,_pvObject,_fvObject,_typeObject,_guessObject]=variants,nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();const guessValue=+_guessObject.getValue();return typeValue=typeValue?1:0,nperValue<=0||pmtValue>=0?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(nperValue,pmtValue,pvValue,fvValue,typeValue,guessValue,rowIndex,columnIndex)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(nperValue,pmtValue,pvValue,fvValue,typeValue,guessValue,rowIndex,columnIndex){let result=guessValue;for(let i=0;i<20;i++){if(result<=-1)return ErrorValueObject.create(ErrorType$1.NUM);let y,f;if(Math.abs(result)<1e-10?y=pvValue*(1+nperValue*result)+pmtValue*(1+result*typeValue)*nperValue+fvValue:(f=(1+result)**nperValue,y=pvValue*f+pmtValue*(1/result+typeValue)*(f-1)+fvValue),Math.abs(y)<1e-10)break;let dy;if(Math.abs(result)<1e-10)dy=pvValue*nperValue+pmtValue*typeValue*nperValue;else{f=(1+result)**nperValue;const df=nperValue*(1+result)**(nperValue-1);dy=pvValue*df+pmtValue*(1/result+typeValue)*df+pmtValue*(-1/(result*result))*(f-1)}result-=y/dy}return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,"0%"):NumberValueObject.create(result)}};__name(_Rate,"Rate");let Rate=_Rate;const _Received=class _Received extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,investment,discount,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,investment,discount,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,investmentObject,discountObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const investmentValue=+investmentObject.getValue(),discountValue=+discountObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(investmentValue)||Number.isNaN(discountValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(investmentValue<=0||discountValue<=0||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const{days:DSM,yearDays:B}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=investmentValue/(1-discountValue*DSM/B);return result<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Received,"Received");let Received=_Received;const _Rri=class _Rri extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(nper,pv,fv){const maxRowLength=Math.max(nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,fv.isArray()?fv.getRowCount():1),maxColumnLength=Math.max(nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,fv.isArray()?fv.getColumnCount():1),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,fv,ErrorValueObject.create(ErrorType$1.NA)),resultArray=nperArray.map((nperObject,rowIndex,columnIndex)=>{const pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(nperObject,pvObject,fvObject);if(isError)return errorObject;const[_nperObject,_pvObject,_fvObject]=variants,nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();if(nperValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);if(pvValue===0&&fvValue===0)return NumberValueObject.create(0);const result=(fvValue/pvValue)**(1/nperValue)-1;return Number.isNaN(result)||!Number.isFinite(result)||fvValue/pvValue<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Rri,"Rri");let Rri=_Rri;const _Sln=class _Sln extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"needsLocale",!0)}calculate(cost,salvage,life){const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex);if(salvageObject.isError())return salvageObject;if(lifeObject.isError())return lifeObject;const costValue=+costObject.getValue(),salvageValue=+salvageObject.getValue(),lifeValue=+lifeObject.getValue();if(Number.isNaN(costValue)||Number.isNaN(salvageValue)||Number.isNaN(lifeValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(lifeValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=(costValue-salvageValue)/lifeValue;return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Sln,"Sln");let Sln=_Sln;const _Syd=class _Syd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4);__publicField(this,"needsLocale",!0)}calculate(cost,salvage,life,per){const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,per.isArray()?per.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,per.isArray()?per.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),perObject=perArray.get(rowIndex,columnIndex);if(salvageObject.isError())return salvageObject;if(lifeObject.isError())return lifeObject;if(perObject.isError())return perObject;const costValue=+costObject.getValue(),salvageValue=+salvageObject.getValue(),lifeValue=+lifeObject.getValue(),perValue=+perObject.getValue();if(Number.isNaN(costValue)||Number.isNaN(salvageValue)||Number.isNaN(lifeValue)||Number.isNaN(perValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(salvageValue<0||lifeValue<=0||perValue>lifeValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=(costValue-salvageValue)*(lifeValue-perValue+1)*2/(lifeValue*(lifeValue+1));return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Syd,"Syd");let Syd=_Syd;const _Tbilleq=class _Tbilleq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(settlement,maturity,discount){const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,discount);if(isError)return errorObject;const[settlementObject,maturityObject,discountObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const discountValue=+discountObject.getValue();if(Number.isNaN(discountValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(discountValue<=0||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const DSM=Math.floor(maturitySerialNumber)-Math.floor(settlementSerialNumber),year=excelSerialToDate(settlementSerialNumber).getUTCFullYear(),yearDays=getDaysInYear(year);if(DSM>yearDays)return ErrorValueObject.create(ErrorType$1.NUM);let result=365*discountValue/(360-discountValue*DSM);if(DSM>182){const tbillPrice=100*(1-discountValue*DSM/360),fraction=DSM/365;if(result=(-fraction+Math.sqrt(fraction*fraction-(fraction*2-1)*(1-100/tbillPrice)))/(fraction-.5),Number.isNaN(result))return ErrorValueObject.create(ErrorType$1.NUM)}return result<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Tbilleq,"Tbilleq");let Tbilleq=_Tbilleq;const _Tbillprice=class _Tbillprice extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"needsLocale",!0)}calculate(settlement,maturity,discount){const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,discount);if(isError)return errorObject;const[settlementObject,maturityObject,discountObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const discountValue=+discountObject.getValue();if(Number.isNaN(discountValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(discountValue<=0||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const DSM=Math.floor(maturitySerialNumber)-Math.floor(settlementSerialNumber),year=excelSerialToDate(settlementSerialNumber).getUTCFullYear(),yearDays=getDaysInYear(year);if(DSM>yearDays)return ErrorValueObject.create(ErrorType$1.NUM);const result=100*(1-discountValue*DSM/360);return result<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result,getCurrencyFormat(this.getLocale()))}};__name(_Tbillprice,"Tbillprice");let Tbillprice=_Tbillprice;const _Tbillyield=class _Tbillyield extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(settlement,maturity,pr){const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,pr);if(isError)return errorObject;const[settlementObject,maturityObject,prObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const prValue=+prObject.getValue();if(Number.isNaN(prValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(prValue<=0||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const DSM=Math.floor(maturitySerialNumber)-Math.floor(settlementSerialNumber),year=excelSerialToDate(settlementSerialNumber).getUTCFullYear(),yearDays=getDaysInYear(year);if(DSM>yearDays)return ErrorValueObject.create(ErrorType$1.NUM);const result=(100-prValue)/prValue*360/DSM;return NumberValueObject.create(result)}};__name(_Tbillyield,"Tbillyield");let Tbillyield=_Tbillyield;const _Vdb=class _Vdb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",7);__publicField(this,"needsLocale",!0)}calculate(cost,salvage,life,startPeriod,endPeriod,factor,noSwitch){let _factor=factor!=null?factor:NumberValueObject.create(2);_factor.isNull()&&(_factor=NumberValueObject.create(2));let _noSwitch=noSwitch!=null?noSwitch:BooleanValueObject.create(!1);_noSwitch.isNull()&&(_noSwitch=BooleanValueObject.create(!1));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,startPeriod.isArray()?startPeriod.getRowCount():1,endPeriod.isArray()?endPeriod.getRowCount():1,_factor.isArray()?_factor.getRowCount():1,_noSwitch.isArray()?_noSwitch.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,startPeriod.isArray()?startPeriod.getColumnCount():1,endPeriod.isArray()?endPeriod.getColumnCount():1,_factor.isArray()?_factor.getColumnCount():1,_noSwitch.isArray()?_noSwitch.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),startPeriodArray=expandArrayValueObject(maxRowLength,maxColumnLength,startPeriod,ErrorValueObject.create(ErrorType$1.NA)),endPeriodArray=expandArrayValueObject(maxRowLength,maxColumnLength,endPeriod,ErrorValueObject.create(ErrorType$1.NA)),factorArray=expandArrayValueObject(maxRowLength,maxColumnLength,_factor,ErrorValueObject.create(ErrorType$1.NA)),noSwitchArray=expandArrayValueObject(maxRowLength,maxColumnLength,_noSwitch,ErrorValueObject.create(ErrorType$1.NA));return this._getResultArray(costArray,salvageArray,lifeArray,startPeriodArray,endPeriodArray,factorArray,noSwitchArray,maxRowLength,maxColumnLength)}_getResultArray(costArray,salvageArray,lifeArray,startPeriodArray,endPeriodArray,factorArray,noSwitchArray,maxRowLength,maxColumnLength){const resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),startPeriodObject=startPeriodArray.get(rowIndex,columnIndex),endPeriodObject=endPeriodArray.get(rowIndex,columnIndex),factorObject=factorArray.get(rowIndex,columnIndex),noSwitchObject=noSwitchArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,startPeriodObject,endPeriodObject,factorObject,noSwitchObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_startPeriodObject,_endPeriodObject,_factorObject,_noSwitchObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue(),startPeriodValue=+_startPeriodObject.getValue(),endPeriodValue=+_endPeriodObject.getValue(),factorValue=+_factorObject.getValue(),noSwitchValue=+_noSwitchObject.getValue();if(costValue<0||salvageValue<0||lifeValue<0||startPeriodValue<0||endPeriodValue<0||endPeriodValue>lifeValue||startPeriodValue>endPeriodValue||factorValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(lifeValue===0&&startPeriodValue===0&&endPeriodValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=this._getResult(costValue,salvageValue,lifeValue,startPeriodValue,endPeriodValue,factorValue,noSwitchValue);return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,getCurrencyFormat(this.getLocale())):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(cost,salvage,life,startPeriod,endPeriod,factor,noSwitch){const start=Math.floor(startPeriod),end=Math.ceil(endPeriod);let result=0;if(cost<salvage){if(startPeriod>=1||noSwitch)return result;const tempMinus=Math.abs(cost-salvage);return result=tempMinus*(endPeriod-startPeriod)>tempMinus?tempMinus:tempMinus*(endPeriod-startPeriod),-result}if(noSwitch)for(let i=start+1;i<=end;i++){let ddb=calculateDDB(cost,salvage,life,i,factor);i===start+1?ddb*=Math.min(endPeriod,start+1)-startPeriod:i===end&&(ddb*=endPeriod+1-end),result+=ddb}else{const _cost=cost-this._getVdb(cost,salvage,life,life,startPeriod,factor);result=this._getVdb(_cost,salvage,life,life-startPeriod,endPeriod-startPeriod,factor)}return result}_getVdb(cost,salvage,life,startPeriod,endPeriod,factor){const end=Math.ceil(endPeriod);let result=0,rest=cost-salvage,sln=0,temp=0,flag=!1;for(let i=1;i<=end;i++){if(flag)temp=sln;else{const ddb=calculateDDB(cost,salvage,life,i,factor);sln=rest/(startPeriod-(i-1)),sln>ddb?(temp=sln,flag=!0):(temp=ddb,rest-=ddb)}i===end&&(temp*=endPeriod+1-end),result+=temp}return result}};__name(_Vdb,"Vdb");let Vdb=_Vdb;const _Xirr=class _Xirr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(values,dates,guess){if(values.isNull()||dates.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObejct,_values,_dates}=this._checkErrors(values,dates);if(isError)return errorObejct;let _guess=guess!=null?guess:NumberValueObject.create(.1);_guess.isNull()&&(_guess=NumberValueObject.create(.1));const{isError:_isError_guess,errorObject:_errorObject_guess,variants}=checkVariantsErrorIsArrayOrBoolean(_guess);if(_isError_guess)return _errorObject_guess;const[guessObject]=variants,guessValue=+guessObject.getValue();if(Number.isNaN(guessValue))return ErrorValueObject.create(ErrorType$1.VALUE);const{positive,negative}=this._checkValues(_values);if(!positive||!negative||(_values==null?void 0:_values.length)!==(_dates==null?void 0:_dates.length)||guessValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=getResultByGuessIterF(guessValue,rate=>this._iterF(_values,_dates,rate));return typeof result!="number"?result:NumberValueObject.create(result)}_checkErrors(values,dates){if(values.isError())return{isError:!0,errorObejct:values};if(dates.isError())return{isError:!0,errorObejct:dates};const{isError:isError_values,errorObejct:errorObejct_values,_values}=this._checkErrorValues(values);if(isError_values)return{isError:isError_values,errorObejct:errorObejct_values};const{isError:isError_dates,errorObejct:errorObejct_dates,_dates}=this._checkErrorDates(dates);return isError_dates?{isError:isError_dates,errorObejct:errorObejct_dates}:{isError:!1,_values,_dates}}_checkErrorValues(values){const _values=[];if(values.isArray()){let isError=!1,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE);return values.iterator(valuesObject=>{const _valuesObject=valuesObject;if(_valuesObject.isError())return isError=!0,errorObejct=_valuesObject,!1;if(_valuesObject.isBoolean())return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;const value=+_valuesObject.getValue();if(Number.isNaN(value))return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;_values.push(value)}),isError?{isError,errorObejct}:_values.length<=1?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}:{isError,_values}}else{const valuesValue=values.getValue();return values.isBoolean()||values.isString()&&!core.isRealNum(valuesValue)?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.VALUE)}:{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}}}_checkErrorDates(dates){const _dates=[];if(dates.isArray()){let isError=!1,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE);return dates.iterator(datesObject=>{if(datesObject!=null&&datesObject.isError())return isError=!0,errorObejct=datesObject,!1;if(datesObject!=null&&datesObject.isBoolean())return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;const datesValue=+datesObject.getValue();if(Number.isNaN(datesValue))return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;if(datesValue<0)return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.NUM),!1;_dates.push(Math.floor(datesValue))}),isError?{isError,errorObejct}:_dates.length<=1?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}:{isError,_dates}}else{const datesValue=dates.getValue();return dates.isBoolean()||dates.isString()&&!core.isRealNum(datesValue)?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.VALUE)}:+datesValue<0?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NUM)}:{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}}}_checkValues(values){let positive=!1,negative=!1;for(let i=0;i<values.length;i++)values[i]>0&&(positive=!0),values[i]<0&&(negative=!0);return{positive,negative}}_iterF(values,dates,rate){return values.reduce((total,value,index)=>total+value/(1+rate)**((dates[index]-dates[0])/365),0)}};__name(_Xirr,"Xirr");let Xirr=_Xirr;const _Xnpv=class _Xnpv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(rate,values,dates){if(rate.isNull()||values.isNull()||dates.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError:_isError_rate,errorObject:_errorObject_rate,variants}=checkVariantsErrorIsArrayOrBoolean(rate);if(_isError_rate)return _errorObject_rate;const[rateObject]=variants,rateValue=+rateObject.getValue();if(Number.isNaN(rateValue))return ErrorValueObject.create(ErrorType$1.VALUE);let{isError,errorObejct,_values,_dates}=this._checkErrors(values,dates);if(isError)return errorObejct;if(_values=_values,_dates=_dates,rateValue<0||_values.length!==_dates.length)return ErrorValueObject.create(ErrorType$1.NUM);let result=0;const d1=_dates[0];for(let i=0;i<_dates.length;i++){const di=_dates[i],Pi2=_values[i];result+=Pi2/(1+rateValue)**((di-d1)/365)}return NumberValueObject.create(result)}_checkErrors(values,dates){if(values.isError())return{isError:!0,errorObejct:values};if(dates.isError())return{isError:!0,errorObejct:dates};const{isError:isError_values,errorObejct:errorObejct_values,_values}=this._checkErrorValues(values);if(isError_values)return{isError:isError_values,errorObejct:errorObejct_values};const{isError:isError_dates,errorObejct:errorObejct_dates,_dates}=this._checkErrorDates(dates);return isError_dates?{isError:isError_dates,errorObejct:errorObejct_dates}:{isError:!1,_values,_dates}}_checkErrorValues(values){const _values=[];if(values.isArray()){let isError=!1,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE);return values.iterator(valuesObject=>{const _valuesObject=valuesObject;if(_valuesObject.isError())return isError=!0,errorObejct=_valuesObject,!1;if(_valuesObject.isNull()||_valuesObject.isBoolean())return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;const value=+_valuesObject.getValue();if(Number.isNaN(value))return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;_values.push(value)}),isError?{isError,errorObejct}:_values.length<=1?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}:{isError,_values}}else{const valuesValue=values.getValue();return values.isNull()||values.isBoolean()||values.isString()&&!core.isRealNum(valuesValue)?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.VALUE)}:{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}}}_checkErrorDates(dates){const _dates=[];if(dates.isArray()){let isError=!1,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE);return dates.iterator(datesObject=>{const _datesObject=datesObject;if(_datesObject.isError())return isError=!0,errorObejct=_datesObject,!1;if(_datesObject.isNull()||_datesObject.isBoolean())return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;const datesValue=+_datesObject.getValue();if(Number.isNaN(datesValue))return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;if(datesValue<0)return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.NUM),!1;_dates.push(Math.floor(datesValue))}),isError?{isError,errorObejct}:_dates.length<=1?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}:{isError,_dates}}else{const datesValue=dates.getValue();return dates.isNull()||dates.isBoolean()||dates.isString()&&!core.isRealNum(datesValue)?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.VALUE)}:+datesValue<0?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NUM)}:{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}}}};__name(_Xnpv,"Xnpv");let Xnpv=_Xnpv;const _Yield=class _Yield extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",7)}calculate(settlement,maturity,rate,pr,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,rate,pr,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,rateObject,prObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const rateValue=+rateObject.getValue(),prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||prValue<=0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber||!validCouppcdIsGte0ByTwoDate(settlementSerialNumber,maturitySerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=this._getResult(settlementSerialNumber,maturitySerialNumber,rateValue,prValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}_getResult(settlementSerialNumber,maturitySerialNumber,rate,pr,redemption,frequency,basis){if(calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency)>1){let yld=rate||.01,price=calculatePrice(settlementSerialNumber,maturitySerialNumber,rate,yld,redemption,frequency,basis),eps=price-pr;for(let i=0;i<100&&Math.abs(eps)>1e-7;i++)price=calculatePrice(settlementSerialNumber,maturitySerialNumber,rate,1.01*yld,redemption,frequency,basis),yld+=-eps/(price-pr-eps)*yld*.01,eps=calculatePrice(settlementSerialNumber,maturitySerialNumber,rate,yld,redemption,frequency,basis)-pr;return yld}const A=calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequency,basis),E=calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequency,basis),{days:DSR}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basis),temp=pr/100+A/E*rate/frequency;return(redemption/100+rate/frequency-temp)/temp*frequency*E/DSR}};__name(_Yield,"Yield");let Yield=_Yield;const _Yielddisc=class _Yielddisc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,pr,redemption,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,pr,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,prObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(prValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const{days:DSM,yearDays:B}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue/prValue-1)/(DSM/B);return NumberValueObject.create(result)}};__name(_Yielddisc,"Yielddisc");let Yielddisc=_Yielddisc;const _Yieldmat=class _Yieldmat extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",6)}calculate(settlement,maturity,issue,rate,pr,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,issue,rate,pr,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,issueObject,rateObject,prObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const rateValue=+rateObject.getValue(),prValue=+prObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(prValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);const isCorrectOrder=this._getDateCorrectOrder(maturitySerialNumber,settlementSerialNumber,issueSerialNumber);if(rateValue<0||prValue<=0||basisValue<0||basisValue>4||!isCorrectOrder)return ErrorValueObject.create(ErrorType$1.NUM);const B=getNormalYearDaysByBasis(settlementSerialNumber,basisValue),{days:DSM}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),{days:DIM}=getTwoDateDaysByBasis(issueSerialNumber,maturitySerialNumber,basisValue),{days:A}=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue),result=((1+DIM/B*rateValue)/(prValue/100+A/B*rateValue)-1)/(DSM/B);return NumberValueObject.create(result)}_getDateCorrectOrder(maturitySerialNumber,settlementSerialNumber,issueSerialNumber){return Math.floor(maturitySerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(issueSerialNumber)}};__name(_Yieldmat,"Yieldmat");let Yieldmat=_Yieldmat;const functionFinancial=[[Accrint,FUNCTION_NAMES_FINANCIAL.ACCRINT],[Accrintm,FUNCTION_NAMES_FINANCIAL.ACCRINTM],[Amorlinc,FUNCTION_NAMES_FINANCIAL.AMORLINC],[Coupdaybs,FUNCTION_NAMES_FINANCIAL.COUPDAYBS],[Coupdays,FUNCTION_NAMES_FINANCIAL.COUPDAYS],[Coupdaysnc,FUNCTION_NAMES_FINANCIAL.COUPDAYSNC],[Coupncd,FUNCTION_NAMES_FINANCIAL.COUPNCD],[Coupnum,FUNCTION_NAMES_FINANCIAL.COUPNUM],[Couppcd,FUNCTION_NAMES_FINANCIAL.COUPPCD],[Cumipmt,FUNCTION_NAMES_FINANCIAL.CUMIPMT],[Cumprinc,FUNCTION_NAMES_FINANCIAL.CUMPRINC],[Db,FUNCTION_NAMES_FINANCIAL.DB],[Ddb,FUNCTION_NAMES_FINANCIAL.DDB],[Disc,FUNCTION_NAMES_FINANCIAL.DISC],[Dollarde,FUNCTION_NAMES_FINANCIAL.DOLLARDE],[Dollarfr,FUNCTION_NAMES_FINANCIAL.DOLLARFR],[Duration,FUNCTION_NAMES_FINANCIAL.DURATION],[Effect,FUNCTION_NAMES_FINANCIAL.EFFECT],[Fv,FUNCTION_NAMES_FINANCIAL.FV],[Fvschedule,FUNCTION_NAMES_FINANCIAL.FVSCHEDULE],[Intrate,FUNCTION_NAMES_FINANCIAL.INTRATE],[Ipmt,FUNCTION_NAMES_FINANCIAL.IPMT],[Irr,FUNCTION_NAMES_FINANCIAL.IRR],[Ispmt,FUNCTION_NAMES_FINANCIAL.ISPMT],[Mduration,FUNCTION_NAMES_FINANCIAL.MDURATION],[Mirr,FUNCTION_NAMES_FINANCIAL.MIRR],[Nominal,FUNCTION_NAMES_FINANCIAL.NOMINAL],[Nper,FUNCTION_NAMES_FINANCIAL.NPER],[Npv,FUNCTION_NAMES_FINANCIAL.NPV],[Oddfprice,FUNCTION_NAMES_FINANCIAL.ODDFPRICE],[Oddfyield,FUNCTION_NAMES_FINANCIAL.ODDFYIELD],[Oddlprice,FUNCTION_NAMES_FINANCIAL.ODDLPRICE],[Oddlyield,FUNCTION_NAMES_FINANCIAL.ODDLYIELD],[Pduration,FUNCTION_NAMES_FINANCIAL.PDURATION],[Pmt,FUNCTION_NAMES_FINANCIAL.PMT],[Ppmt,FUNCTION_NAMES_FINANCIAL.PPMT],[Price,FUNCTION_NAMES_FINANCIAL.PRICE],[Pricedisc,FUNCTION_NAMES_FINANCIAL.PRICEDISC],[Pricemat,FUNCTION_NAMES_FINANCIAL.PRICEMAT],[Pv,FUNCTION_NAMES_FINANCIAL.PV],[Rate,FUNCTION_NAMES_FINANCIAL.RATE],[Received,FUNCTION_NAMES_FINANCIAL.RECEIVED],[Rri,FUNCTION_NAMES_FINANCIAL.RRI],[Sln,FUNCTION_NAMES_FINANCIAL.SLN],[Syd,FUNCTION_NAMES_FINANCIAL.SYD],[Tbilleq,FUNCTION_NAMES_FINANCIAL.TBILLEQ],[Tbillprice,FUNCTION_NAMES_FINANCIAL.TBILLPRICE],[Tbillyield,FUNCTION_NAMES_FINANCIAL.TBILLYIELD],[Vdb,FUNCTION_NAMES_FINANCIAL.VDB],[Xirr,FUNCTION_NAMES_FINANCIAL.XIRR],[Xnpv,FUNCTION_NAMES_FINANCIAL.XNPV],[Yield,FUNCTION_NAMES_FINANCIAL.YIELD],[Yielddisc,FUNCTION_NAMES_FINANCIAL.YIELDDISC],[Yieldmat,FUNCTION_NAMES_FINANCIAL.YIELDMAT]],_Cell=class _Cell extends BaseFunction{constructor(){super(...arguments);__publicField(this,"needsReferenceObject",!0);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(infoType,reference){let _infoType=infoType;if(_infoType.isError())return _infoType;if(_infoType.isReferenceObject()&&(_infoType=_infoType.toArrayValueObject()),_infoType.isArray()){const rowCount=_infoType.getRowCount(),columnCount=_infoType.getColumnCount();if(rowCount===1&&columnCount===1){const infoTypeObject=_infoType.get(0,0);return this._handleSingleObject(infoTypeObject,reference)}return _infoType.map(infoTypeObject=>infoTypeObject.isError()?infoTypeObject:this._handleSingleObject(infoTypeObject,reference,!0))}return this._handleSingleObject(_infoType,reference)}_handleSingleObject(infoType,reference,infoTypeIsArray=!1){let _reference=reference;if(_reference.isError())return _reference;if(!_reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.NA);const currentActiveSheetData=_reference.getCurrentActiveSheetData(),{columnData,defaultColumnWidth}=currentActiveSheetData;_reference=_reference.toArrayValueObject();const _currentRow=_reference.getCurrentRow(),_currentColumn=_reference.getCurrentColumn();_reference=_reference.getFirstCell();const infoTypeValue=`${infoType.getValue()}`;let result;switch(infoTypeValue.toLocaleLowerCase()){case"address":return StringValueObject.create(`$${core.Tools.chatAtABC(_currentColumn)}$${_currentRow+1}`);case"col":return NumberValueObject.create(_currentColumn+1);case"color":return NumberValueObject.create(0);case"contents":return _reference;case"filename":return ErrorValueObject.create(ErrorType$1.VALUE);case"format":return StringValueObject.create("G");case"parentheses":return NumberValueObject.create(0);case"prefix":return StringValueObject.create("");case"protect":return NumberValueObject.create(1);case"row":return NumberValueObject.create(_currentRow+1);case"type":return result="v",_reference.isNull()&&(result="b"),_reference.isString()&&(result="l"),StringValueObject.create(result);case"width":return this._getWidthResult(columnData,defaultColumnWidth,_currentColumn,infoTypeIsArray);default:return ErrorValueObject.create(ErrorType$1.VALUE)}}_getWidthResult(columnData,defaultColumnWidth,_currentColumn,infoTypeIsArray){var _a28;let result=(_a28=columnData[_currentColumn])==null?void 0:_a28.w;if(!result&&result!==0&&(result=defaultColumnWidth),infoTypeIsArray)return NumberValueObject.create(result);const resultArray=[[result,result===defaultColumnWidth]];return ArrayValueObject.createByArray(resultArray)}};__name(_Cell,"Cell");let Cell=_Cell;const _ErrorType=class _ErrorType extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"_errorTypeValueMap",new Map([[ErrorType$1.NULL,1],[ErrorType$1.DIV_BY_ZERO,2],[ErrorType$1.VALUE,3],[ErrorType$1.REF,4],[ErrorType$1.NAME,5],[ErrorType$1.NUM,6],[ErrorType$1.NA,7],[ErrorType$1.CONNECT,8],[ErrorType$1.CALC,14]]))}calculate(errorVal){return errorVal.isArray()?errorVal.mapValue(errorValObject=>this._handleSingleObject(errorValObject)):this._handleSingleObject(errorVal)}_handleSingleObject(errorVal){const errorValValue=errorVal.getValue(),result=this._errorTypeValueMap.get(errorValValue);return result?NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NA)}};__name(_ErrorType,"ErrorType");let ErrorType=_ErrorType;var FUNCTION_NAMES_INFORMATION=(FUNCTION_NAMES_INFORMATION2=>(FUNCTION_NAMES_INFORMATION2.CELL="CELL",FUNCTION_NAMES_INFORMATION2.ERROR_TYPE="ERROR.TYPE",FUNCTION_NAMES_INFORMATION2.INFO="INFO",FUNCTION_NAMES_INFORMATION2.ISBLANK="ISBLANK",FUNCTION_NAMES_INFORMATION2.ISERR="ISERR",FUNCTION_NAMES_INFORMATION2.ISERROR="ISERROR",FUNCTION_NAMES_INFORMATION2.ISEVEN="ISEVEN",FUNCTION_NAMES_INFORMATION2.ISFORMULA="ISFORMULA",FUNCTION_NAMES_INFORMATION2.ISLOGICAL="ISLOGICAL",FUNCTION_NAMES_INFORMATION2.ISNA="ISNA",FUNCTION_NAMES_INFORMATION2.ISNONTEXT="ISNONTEXT",FUNCTION_NAMES_INFORMATION2.ISNUMBER="ISNUMBER",FUNCTION_NAMES_INFORMATION2.ISODD="ISODD",FUNCTION_NAMES_INFORMATION2.ISOMITTED="ISOMITTED",FUNCTION_NAMES_INFORMATION2.ISREF="ISREF",FUNCTION_NAMES_INFORMATION2.ISTEXT="ISTEXT",FUNCTION_NAMES_INFORMATION2.N="N",FUNCTION_NAMES_INFORMATION2.NA="NA",FUNCTION_NAMES_INFORMATION2.SHEET="SHEET",FUNCTION_NAMES_INFORMATION2.SHEETS="SHEETS",FUNCTION_NAMES_INFORMATION2.TYPE="TYPE",FUNCTION_NAMES_INFORMATION2))(FUNCTION_NAMES_INFORMATION||{});const _Isblank=class _Isblank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isNull()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isNull()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isblank,"Isblank");let Isblank=_Isblank;const _Iserr=class _Iserr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.getValue()===ErrorType$1.NA?BooleanValueObject.create(!1):value.isError()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.getValue()===ErrorType$1.NA?BooleanValueObject.create(!1):valueObject.isError()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Iserr,"Iserr");let Iserr=_Iserr;const _Iserror=class _Iserror extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isError()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isError()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Iserror,"Iserror");let Iserror=_Iserror;const _Iseven=class _Iseven extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(_value.isArray()){const rowCount=_value.getRowCount(),columnCount=_value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_value=_value.get(0,0)}if(_value.isError())return _value;if(_value.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const val=Math.trunc(+_value.getValue());if(Number.isNaN(val))return ErrorValueObject.create(ErrorType$1.VALUE);const result=val%2===0;return BooleanValueObject.create(result)}};__name(_Iseven,"Iseven");let Iseven=_Iseven;const _Isformula=class _Isformula extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(reference){var _a28;if(reference.isError())return reference;if(!reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.NA);const cellDataMatrix=(_a28=reference.getCurrentActiveSheetData())==null?void 0:_a28.cellData.getMatrix(),{startRow,startColumn}=reference.getRangePosition(),_reference=reference.toArrayValueObject(),resultArray=_reference.mapValue((valueObject,rowIndex,columnIndex)=>{var _a29;const cellData=(_a29=cellDataMatrix==null?void 0:cellDataMatrix[startRow+rowIndex])==null?void 0:_a29[startColumn+columnIndex];return cellData!=null&&cellData.f||cellData!=null&&cellData.si?BooleanValueObject.create(!0):BooleanValueObject.create(!1)});return _reference.getRowCount()===1&&_reference.getColumnCount()===1?resultArray.get(0,0):resultArray}};__name(_Isformula,"Isformula");let Isformula=_Isformula;const _Islogical=class _Islogical extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isBoolean()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isBoolean()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Islogical,"Islogical");let Islogical=_Islogical;const _Isna=class _Isna extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.getValue()===ErrorType$1.NA?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.getValue()===ErrorType$1.NA?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isna,"Isna");let Isna=_Isna;const _Isnontext=class _Isnontext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return!value.isArray()&&!value.isString()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isString()?BooleanValueObject.create(!1):BooleanValueObject.create(!0)):BooleanValueObject.create(!1)}};__name(_Isnontext,"Isnontext");let Isnontext=_Isnontext;const _Isnumber=class _Isnumber extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isNumber()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isNumber()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isnumber,"Isnumber");let Isnumber=_Isnumber;const _Isodd=class _Isodd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(_value.isArray()){const rowCount=_value.getRowCount(),columnCount=_value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_value=_value.get(0,0)}if(_value.isError())return _value;if(_value.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const val=Math.trunc(+_value.getValue());if(Number.isNaN(val))return ErrorValueObject.create(ErrorType$1.VALUE);const result=val%2!==0;return BooleanValueObject.create(result)}};__name(_Isodd,"Isodd");let Isodd=_Isodd;const _Isref=class _Isref extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(value){return value.isReferenceObject()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)}};__name(_Isref,"Isref");let Isref=_Isref;const _Istext=class _Istext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isString()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isString()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Istext,"Istext");let Istext=_Istext;const _N=class _N extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(value.isArray()&&(_value=value.get(0,0)),_value.isError())return _value;if(_value.isString())return NumberValueObject.create(0);const val=+_value.getValue();return NumberValueObject.create(val)}};__name(_N,"N");let N=_N;const _Na=class _Na extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return ErrorValueObject.create(ErrorType$1.NA)}};__name(_Na,"Na");let Na=_Na;const _Sheet=class _Sheet extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0);__publicField(this,"needsSheetsInfo",!0)}calculate(value){var _a28;if(value!=null&&value.isError())return value;const{sheetOrder,sheetNameMap}=this.getSheetsInfo();if(!value){const sheetIndex2=sheetOrder.findIndex(sheetId=>sheetId===this.subUnitId);return NumberValueObject.create(sheetIndex2+1)}if(value.isReferenceObject()){const forcedSheetId=value.getForcedSheetId(),defaultSheetId=value.getDefaultSheetId(),sheetIndex2=sheetOrder.findIndex(sheetId=>forcedSheetId?sheetId===forcedSheetId:sheetId===defaultSheetId);return NumberValueObject.create(sheetIndex2+1)}if(value.isArray())return ErrorValueObject.create(ErrorType$1.NA);const inputValue=`${value.getValue()}`.toLocaleLowerCase(),inputSheetId=(_a28=Object.entries(sheetNameMap).find(([_,name])=>name.toLocaleLowerCase()===inputValue))==null?void 0:_a28[0];if(!inputSheetId)return ErrorValueObject.create(ErrorType$1.NA);const sheetIndex=sheetOrder.findIndex(sheetId=>sheetId===inputSheetId);return NumberValueObject.create(sheetIndex+1)}};__name(_Sheet,"Sheet");let Sheet=_Sheet;const _Sheets=class _Sheets extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0);__publicField(this,"needsSheetsInfo",!0)}calculate(){const{sheetOrder}=this.getSheetsInfo();return NumberValueObject.create(sheetOrder.length)}};__name(_Sheets,"Sheets");let Sheets=_Sheets;const _Type=class _Type extends BaseFunction{constructor(){super(...arguments);__publicField(this,"needsReferenceObject",!0);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){if(value.isReferenceObject()){const rowCount=value.getRowCount(),columnCount=value.getColumnCount();if(rowCount===1&&columnCount===1){const _value=value.getFirstCell();if(_value.isError())return NumberValueObject.create(16);if(_value.isBoolean())return NumberValueObject.create(4);if(_value.isString())return NumberValueObject.create(2);if(_value.isNumber()||_value.isNull())return NumberValueObject.create(1)}else return NumberValueObject.create(64)}else{if(value.isArray())return NumberValueObject.create(64);if(value.isError())return NumberValueObject.create(16);if(value.isBoolean())return NumberValueObject.create(4);if(value.isString())return NumberValueObject.create(2);if(value.isNumber()||value.isNull())return NumberValueObject.create(1)}return NumberValueObject.create(128)}};__name(_Type,"Type");let Type=_Type;const functionInformation=[[Cell,FUNCTION_NAMES_INFORMATION.CELL],[ErrorType,FUNCTION_NAMES_INFORMATION.ERROR_TYPE],[Isblank,FUNCTION_NAMES_INFORMATION.ISBLANK],[Iserr,FUNCTION_NAMES_INFORMATION.ISERR],[Iserror,FUNCTION_NAMES_INFORMATION.ISERROR],[Iseven,FUNCTION_NAMES_INFORMATION.ISEVEN],[Isformula,FUNCTION_NAMES_INFORMATION.ISFORMULA],[Islogical,FUNCTION_NAMES_INFORMATION.ISLOGICAL],[Isna,FUNCTION_NAMES_INFORMATION.ISNA],[Isnontext,FUNCTION_NAMES_INFORMATION.ISNONTEXT],[Isnumber,FUNCTION_NAMES_INFORMATION.ISNUMBER],[Isodd,FUNCTION_NAMES_INFORMATION.ISODD],[Isref,FUNCTION_NAMES_INFORMATION.ISREF],[Istext,FUNCTION_NAMES_INFORMATION.ISTEXT],[N,FUNCTION_NAMES_INFORMATION.N],[Na,FUNCTION_NAMES_INFORMATION.NA],[Sheet,FUNCTION_NAMES_INFORMATION.SHEET],[Sheets,FUNCTION_NAMES_INFORMATION.SHEETS],[Type,FUNCTION_NAMES_INFORMATION.TYPE]],_And=class _And extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let result=!0,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(result=result&&!!value.getValue(),noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(result=result&&!!logicalValue.getValue(),noBoolean=!1)}return noBoolean?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(result)}};__name(_And,"And");let And=_And;const _Bycol=class _Bycol extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2);__publicField(this,"needsReferenceObject",!0)}calculate(array,lambda){let _array=array,_array_reference=null;if(array.isReferenceObject()&&(_array=array.toArrayValueObject(),_array_reference=array),_array.isError())return _array;if(lambda.isError())return lambda;if(!(lambda.isValueObject()&&lambda.isLambda()&&lambda.getLambdaPrivacyVarKeys().length===1))return ErrorValueObject.create(ErrorType$1.VALUE);const _lambda=lambda,rowCount=_array.isArray()?_array.getRowCount():1,columnCount=_array.isArray()?_array.getColumnCount():1;_array=expandArrayValueObject(rowCount,columnCount,_array);const result=[[]];for(let c=0;c<columnCount;c++){const rows=[];for(let r=0;r<rowCount;r++){const col=_array.get(r,c);rows.push([col])}let lambdaVariant=ArrayValueObject.create({calculateValueList:rows,rowCount,columnCount:1,unitId:"",sheetId:"",row:0,column:0});if(_array_reference){const{startRow,startColumn}=_array_reference.getRangePosition(),range={startRow,startColumn:startColumn+c,endRow:startRow+rowCount-1,endColumn:startColumn+c};lambdaVariant=this.createReferenceObject(_array_reference,range)}let value=_lambda.execute(lambdaVariant);if(value.isArray()){const valueRowCount=value.getRowCount(),valueColumnCount=value.getColumnCount();if(valueRowCount>1||valueColumnCount>1)return ErrorValueObject.create(ErrorType$1.CALC);value=value.get(0,0)}value.isNull()&&(value=NumberValueObject.create(0)),result[0].push(value)}return columnCount===1?result[0][0]:ArrayValueObject.create({calculateValueList:result,rowCount:1,columnCount,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Bycol,"Bycol");let Bycol=_Bycol;const _Byrow=class _Byrow extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2);__publicField(this,"needsReferenceObject",!0)}calculate(array,lambda){let _array=array,_array_reference=null;if(array.isReferenceObject()&&(_array=array.toArrayValueObject(),_array_reference=array),_array.isError())return _array;if(lambda.isError())return lambda;if(!(lambda.isValueObject()&&lambda.isLambda()&&lambda.getLambdaPrivacyVarKeys().length===1))return ErrorValueObject.create(ErrorType$1.VALUE);const _lambda=lambda,rowCount=_array.isArray()?_array.getRowCount():1,columnCount=_array.isArray()?_array.getColumnCount():1;_array=expandArrayValueObject(rowCount,columnCount,_array);const result=[];for(let r=0;r<rowCount;r++){const rows=[[]];for(let c=0;c<columnCount;c++){const col=_array.get(r,c);rows[0].push(col)}let lambdaVariant=ArrayValueObject.create({calculateValueList:rows,rowCount:1,columnCount,unitId:"",sheetId:"",row:0,column:0});if(_array_reference){const{startRow,startColumn}=_array_reference.getRangePosition(),range={startRow:startRow+r,startColumn,endRow:startRow+r,endColumn:startColumn+columnCount-1};lambdaVariant=this.createReferenceObject(_array_reference,range)}let value=_lambda.execute(lambdaVariant);if(value.isArray()){const valueRowCount=value.getRowCount(),valueColumnCount=value.getColumnCount();if(valueRowCount>1||valueColumnCount>1)return ErrorValueObject.create(ErrorType$1.CALC);value=value.get(0,0)}value.isNull()&&(value=NumberValueObject.create(0)),result.push([value])}return rowCount===1?result[0][0]:ArrayValueObject.create({calculateValueList:result,rowCount,columnCount:1,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Byrow,"Byrow");let Byrow=_Byrow;const _False=class _False extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return BooleanValueObject.create(!1)}};__name(_False,"False");let False=_False;var FUNCTION_NAMES_LOGICAL=(FUNCTION_NAMES_LOGICAL2=>(FUNCTION_NAMES_LOGICAL2.AND="AND",FUNCTION_NAMES_LOGICAL2.BYCOL="BYCOL",FUNCTION_NAMES_LOGICAL2.BYROW="BYROW",FUNCTION_NAMES_LOGICAL2.FALSE="FALSE",FUNCTION_NAMES_LOGICAL2.IF="IF",FUNCTION_NAMES_LOGICAL2.IFERROR="IFERROR",FUNCTION_NAMES_LOGICAL2.IFNA="IFNA",FUNCTION_NAMES_LOGICAL2.IFS="IFS",FUNCTION_NAMES_LOGICAL2.LAMBDA="LAMBDA",FUNCTION_NAMES_LOGICAL2.LET="LET",FUNCTION_NAMES_LOGICAL2.MAKEARRAY="MAKEARRAY",FUNCTION_NAMES_LOGICAL2.MAP="MAP",FUNCTION_NAMES_LOGICAL2.NOT="NOT",FUNCTION_NAMES_LOGICAL2.OR="OR",FUNCTION_NAMES_LOGICAL2.REDUCE="REDUCE",FUNCTION_NAMES_LOGICAL2.SCAN="SCAN",FUNCTION_NAMES_LOGICAL2.SWITCH="SWITCH",FUNCTION_NAMES_LOGICAL2.TRUE="TRUE",FUNCTION_NAMES_LOGICAL2.XOR="XOR",FUNCTION_NAMES_LOGICAL2))(FUNCTION_NAMES_LOGICAL||{});const _If=class _If extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(logicalTest,valueIfTrue,valueIfFalse=BooleanValueObject.create(!1)){const _logicalTest=this._getSingleValueObject(logicalTest);if(_logicalTest.isError())return _logicalTest;if(!_logicalTest.isArray())return _logicalTest.getValue()?valueIfTrue:valueIfFalse;const maxRowLength=Math.max(_logicalTest.isArray()?_logicalTest.getRowCount():1,valueIfTrue.isArray()?valueIfTrue.getRowCount():1,valueIfFalse.isArray()?valueIfFalse.getRowCount():1),maxColumnLength=Math.max(_logicalTest.isArray()?_logicalTest.getColumnCount():1,valueIfTrue.isArray()?valueIfTrue.getColumnCount():1,valueIfFalse.isArray()?valueIfFalse.getColumnCount():1),logicalTestArray=expandArrayValueObject(maxRowLength,maxColumnLength,_logicalTest),valueIfTrueArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfTrue,ErrorValueObject.create(ErrorType$1.NA)),valueIfFalseArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfFalse,ErrorValueObject.create(ErrorType$1.NA));return logicalTestArray.map((logicalTestValue,rowIndex,columnIndex)=>{if(logicalTestValue.isNull())return ErrorValueObject.create(ErrorType$1.NA);{const valueIfTrueValue=valueIfTrueArray.get(rowIndex,columnIndex)||NullValueObject.create(),valueIfFalseValue=valueIfFalseArray.get(rowIndex,columnIndex)||NullValueObject.create();return this._calculateSingleCell(logicalTestValue,valueIfTrueValue,valueIfFalseValue)}})}_getSingleValueObject(valueObject){return valueObject.isArray()&&valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?valueObject.getFirstCell():valueObject}_calculateSingleCell(logicalTest,valueIfTrue,valueIfFalse){return logicalTest.isNull()?ErrorValueObject.create(ErrorType$1.NA):logicalTest.getValue()?valueIfTrue.isNull()?ErrorValueObject.create(ErrorType$1.NA):valueIfTrue:valueIfFalse.isNull()?ErrorValueObject.create(ErrorType$1.NA):valueIfFalse}};__name(_If,"If");let If=_If;const _Iferror=class _Iferror extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(value,valueIfError){if(value.isError())return value;if(valueIfError.isError())return valueIfError;if(!value.isArray())return value.isError()?valueIfError:value;const maxRowLength=Math.max(value.isArray()?value.getRowCount():1,valueIfError.isArray()?valueIfError.getRowCount():1),maxColumnLength=Math.max(value.isArray()?value.getColumnCount():1,valueIfError.isArray()?valueIfError.getColumnCount():1),valueArray=expandArrayValueObject(maxRowLength,maxColumnLength,value),valueIfErrorArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfError);return valueArray.iterator((value2,rowIndex,columnIndex)=>{value2!=null&&value2.isError()&&valueArray.set(rowIndex,columnIndex,valueIfErrorArray.get(rowIndex,columnIndex))}),valueArray}};__name(_Iferror,"Iferror");let Iferror=_Iferror;const _Ifna=class _Ifna extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(value,valueIfNa){if(value.isError()&&value.getErrorType()!==ErrorType$1.NA)return value;if(valueIfNa.isError())return valueIfNa;if(!value.isArray())return value.isError()&&value.getErrorType()===ErrorType$1.NA?valueIfNa:value;const maxRowLength=Math.max(value.isArray()?value.getRowCount():1,valueIfNa.isArray()?valueIfNa.getRowCount():1),maxColumnLength=Math.max(value.isArray()?value.getColumnCount():1,valueIfNa.isArray()?valueIfNa.getColumnCount():1),valueArray=expandArrayValueObject(maxRowLength,maxColumnLength,value),valueIfNaArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfNa);return valueArray.iterator((cellValue,rowIndex,columnIndex)=>{cellValue!=null&&cellValue.isError()&&cellValue.getErrorType()===ErrorType$1.NA&&valueArray.set(rowIndex,columnIndex,valueIfNaArray.get(rowIndex,columnIndex))}),valueArray}};__name(_Ifna,"Ifna");let Ifna=_Ifna;const _Ifs=class _Ifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(...params){if(params.length%2!==0)return ErrorValueObject.create(ErrorType$1.NA);for(let i=0;i<params.length;i++)if(params[i].isError())return params[i];const maxRowLength=Math.max(...params.map(param=>param.isArray()?param.getRowCount():1)),maxColumnLength=Math.max(...params.map(param=>param.isArray()?param.getColumnCount():1)),expandedParams=params.map(param=>expandArrayValueObject(maxRowLength,maxColumnLength,param,ErrorValueObject.create(ErrorType$1.NA))),resultArray=expandedParams[0].map((_,rowIndex,columnIndex)=>{for(let i=0;i<expandedParams.length;i+=2){const condition=expandedParams[i].get(rowIndex,columnIndex)||NullValueObject.create(),result=expandedParams[i+1].get(rowIndex,columnIndex)||NullValueObject.create();if(condition.isNull())continue;if(condition.isError())return condition;const conditionValue=condition.getValue();if(condition.isString()){if(`${conditionValue}`.toLocaleUpperCase()==="TRUE")return result;if(`${conditionValue}`.toLocaleUpperCase()==="FALSE")continue;return ErrorValueObject.create(ErrorType$1.VALUE)}if(+conditionValue)return result.isNull()?ErrorValueObject.create(ErrorType$1.NA):result}return ErrorValueObject.create(ErrorType$1.NA)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ifs,"Ifs");let Ifs=_Ifs;const _Lambda=class _Lambda extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lambda,"Lambda");let Lambda=_Lambda;const _Let=class _Let extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(...variants){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Let,"Let");let Let=_Let;const _Makearray=class _Makearray extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(...variants){const row=this.getIndexNumValue(variants[0]);if(typeof row!="number")return row;const column=this.getIndexNumValue(variants[1]);if(typeof column!="number")return column;if(!(variants[2].isValueObject()&&variants[2].isLambda()))return ErrorValueObject.create(ErrorType$1.VALUE);const lambda=variants[2],result=[];for(let r=0;r<row;r++){result[r]==null&&(result[r]=[]);for(let c=0;c<column;c++){let value=lambda.execute(NumberValueObject.create(r+1),NumberValueObject.create(c+1));value.isArray()&&(value=value.get(0,0)),result[r][c]=value}}return new AsyncArrayObject(result)}isAsync(){return!0}};__name(_Makearray,"Makearray");let Makearray=_Makearray;var _a21;let Map$1=(_a21=class extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}calculate(...variants){const _variants=[];let lambda=null,maxRowLength=0,maxColumnLength=0;for(let i=0;i<variants.length;i++){const variant=variants[i];let _variant=variant;if(_variant.isReferenceObject()&&(_variant=variant.toArrayValueObject()),_variant.isError())return _variant;if(i===variants.length-1){if(!(variant.isValueObject()&&variant.isLambda()))return ErrorValueObject.create(ErrorType$1.VALUE);lambda=variant}else _variants.push(variant),maxRowLength=Math.max(maxRowLength,_variant.isArray()?_variant.getRowCount():1),maxColumnLength=Math.max(maxColumnLength,_variant.isArray()?_variant.getColumnCount():1)}const resultArray=this._getResultArray(_variants,lambda,maxRowLength,maxColumnLength);return resultArray instanceof ErrorValueObject?resultArray:maxRowLength===1&&maxColumnLength===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount:maxRowLength,columnCount:maxColumnLength,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArray(variants,lambda,maxRowLength,maxColumnLength){const resultArray=[];for(let r=0;r<maxRowLength;r++){const row=[];for(let c=0;c<maxColumnLength;c++){const lambdaVariant=[];let isRowPushed=!1;for(let i=0;i<variants.length;i++){let variant=variants[i],_variant_reference=null;if(variant.isReferenceObject()&&(_variant_reference=variant,variant=variant.toArrayValueObject()),!variant.isArray())if(r===0&&c===0){lambdaVariant.push(_variant_reference||variant);continue}else{row.push(ErrorValueObject.create(ErrorType$1.NA)),isRowPushed=!0;break}let valueObject=variant.get(r,c);if(!valueObject){row.push(ErrorValueObject.create(ErrorType$1.NA)),isRowPushed=!0;break}if(_variant_reference){const{startRow,startColumn}=_variant_reference.getRangePosition(),range={startRow:startRow+r,startColumn:startColumn+c,endRow:startRow+r,endColumn:startColumn+c};valueObject=this.createReferenceObject(_variant_reference,range)}lambdaVariant.push(valueObject)}if(isRowPushed||lambdaVariant.length===0)continue;let value=lambda.execute(...lambdaVariant);if(value.isArray()){const rowCount=value.getRowCount(),columnCount=value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.CALC);value=value.get(0,0)}value.isNull()&&(value=NumberValueObject.create(0)),row.push(value)}resultArray.push(row)}return resultArray}},__name(_a21,"Map"),_a21);const _Not=class _Not extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(logical){return logical.isArray()?logical.map(logicalObject=>this._handleSingleObject(logicalObject)):this._handleSingleObject(logical)}_handleSingleObject(logical){if(logical.isError())return logical;const logicalValue=+logical.getValue();return Number.isNaN(logicalValue)?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(!logicalValue)}};__name(_Not,"Not");let Not=_Not;const _Or=class _Or extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let result=!1,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(result=result||!!value.getValue(),noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(result=result||!!logicalValue.getValue(),noBoolean=!1)}return noBoolean?new ErrorValueObject(ErrorType$1.VALUE):new BooleanValueObject(result)}};__name(_Or,"Or");let Or=_Or;const _Reduce=class _Reduce extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(initialValue,array,lambda){let _initialValue,_initialValueReference;initialValue.isReferenceObject()?(_initialValue=initialValue.toArrayValueObject(),_initialValueReference=initialValue):(_initialValue=initialValue,_initialValueReference=null);let _array,_arrayReference;return array.isReferenceObject()?(_array=array.toArrayValueObject(),_arrayReference=array):(_array=array,_arrayReference=null),_initialValue.isArray()?_initialValue.mapValue(initialValueObject=>this._handleSingleValueObject(initialValueObject,_array,lambda,_initialValueReference,_arrayReference)):this._handleSingleValueObject(_initialValue,_array,lambda,_initialValueReference,_arrayReference)}_handleSingleValueObject(initialValue,array,lambda,_initialValue_reference,_array_reference){if(initialValue.isError())return initialValue;if(array.isError())return array;if(lambda.isError())return lambda;if(!(lambda.isValueObject()&&lambda.isLambda()&&lambda.getLambdaPrivacyVarKeys().length===2))return ErrorValueObject.create(ErrorType$1.VALUE);const _lambda=lambda,rowCount=array.isArray()?array.getRowCount():1,columnCount=array.isArray()?array.getColumnCount():1;let accumulator=initialValue;_initialValue_reference&&(accumulator=_initialValue_reference);for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return valueObject;if(_array_reference){const{startRow,startColumn}=_array_reference.getRangePosition(),range={startRow:startRow+r,startColumn:startColumn+c,endRow:startRow+r,endColumn:startColumn+c};valueObject=this.createReferenceObject(_array_reference,range)}let value=_lambda.execute(accumulator,valueObject);if(value.isError())return value;value.isNull()&&(value=NumberValueObject.create(0)),accumulator=value}return accumulator.isReferenceObject()?accumulator.toArrayValueObject():accumulator}};__name(_Reduce,"Reduce");let Reduce=_Reduce;const _Scan=class _Scan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(initialValue,array,lambda){let _initialValue=initialValue,_initialValue_reference=null;initialValue.isReferenceObject()&&(_initialValue=initialValue.toArrayValueObject(),_initialValue_reference=initialValue),_initialValue=_initialValue;let _array=array,_array_reference=null;if(array.isReferenceObject()&&(_array=array.toArrayValueObject(),_array_reference=array),_array=_array,_initialValue.isError())return _initialValue;if(_array.isError())return _array;if(lambda.isError())return lambda;if(!(lambda.isValueObject()&&lambda.isLambda()&&lambda.getLambdaPrivacyVarKeys().length===2))return ErrorValueObject.create(ErrorType$1.VALUE);if(_initialValue.isArray()){const rowCount=_initialValue.getRowCount(),columnCount=_initialValue.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.CALC);_initialValue=_initialValue.get(0,0)}return this._getResult(_initialValue,_array,lambda,_initialValue_reference,_array_reference)}_getResult(initialValue,array,lambda,_initialValue_reference,_array_reference){const resultArray=[],rowCount=array.isArray()?array.getRowCount():1,columnCount=array.isArray()?array.getColumnCount():1;let accumulator=initialValue;_initialValue_reference&&(accumulator=_initialValue_reference);for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){if(accumulator.isError()){row.push(accumulator);continue}let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError()){accumulator=valueObject,row.push(valueObject);continue}if(_array_reference){const{startRow,startColumn}=_array_reference.getRangePosition(),range={startRow:startRow+r,startColumn:startColumn+c,endRow:startRow+r,endColumn:startColumn+c};valueObject=this.createReferenceObject(_array_reference,range)}let value=lambda.execute(accumulator,valueObject);if(value.isArray()){const rowCount2=value.getRowCount(),columnCount2=value.getColumnCount();if(rowCount2>1||columnCount2>1)return ErrorValueObject.create(ErrorType$1.CALC);value=value.get(0,0)}value.isNull()&&(value=NumberValueObject.create(0)),accumulator=value,row.push(value)}resultArray.push(row)}return rowCount===1&&columnCount===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount,columnCount,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Scan,"Scan");let Scan=_Scan;const _Switch=class _Switch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3)}calculate(expression,...args){if(expression.isError())return expression;const hasDefault=args.length%2!==0,defaultValue=hasDefault?args[args.length-1]:NullValueObject.create();return!expression.isArray()&&!args.some(arg=>arg.isArray())?this._handleNonArrayInputs(expression,args,defaultValue,hasDefault):this._handleArrayInputs(expression,args,defaultValue,hasDefault)}_handleNonArrayInputs(expression,args,defaultValue,hasDefault){for(let i=0;i<args.length-(hasDefault?1:0);i+=2){const switchValue=args[i],resultValue=args[i+1];if(!switchValue.isNull()){if(switchValue.isError())return switchValue;if(`${expression.getValue()}`.toLocaleLowerCase()===`${switchValue.getValue()}`.toLocaleLowerCase())return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}}return defaultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):defaultValue}_handleArrayInputs(expression,args,defaultValue,hasDefault){const maxRowLength=Math.max(expression.isArray()?expression.getRowCount():1,...args.map(arg=>arg.isArray()?arg.getRowCount():1),defaultValue.isArray()?defaultValue.getRowCount():1),maxColumnLength=Math.max(expression.isArray()?expression.getColumnCount():1,...args.map(arg=>arg.isArray()?arg.getColumnCount():1),defaultValue.isArray()?defaultValue.getColumnCount():1),expandedExpression=expandArrayValueObject(maxRowLength,maxColumnLength,expression),expandedArgs=args.map(arg=>expandArrayValueObject(maxRowLength,maxColumnLength,arg,ErrorValueObject.create(ErrorType$1.NA))),expandedDefault=expandArrayValueObject(maxRowLength,maxColumnLength,defaultValue,ErrorValueObject.create(ErrorType$1.NA));return expandedExpression.map((expValue,rowIndex,columnIndex)=>{for(let i=0;i<expandedArgs.length-(hasDefault?1:0);i+=2){const switchValue=expandedArgs[i].get(rowIndex,columnIndex)||NullValueObject.create(),resultValue=expandedArgs[i+1].get(rowIndex,columnIndex)||NullValueObject.create();if(!switchValue.isNull()){if(switchValue.isError()||expValue.isError())return switchValue.isError()?switchValue:expValue;if(`${expValue.getValue()}`.toLocaleLowerCase()===`${switchValue.getValue()}`.toLocaleLowerCase())return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}}const defaultCellValue=expandedDefault.get(rowIndex,columnIndex)||NullValueObject.create();return defaultCellValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):defaultCellValue})}};__name(_Switch,"Switch");let Switch=_Switch;const _True=class _True extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return BooleanValueObject.create(!0)}};__name(_True,"True");let True=_True;const _Xor=class _Xor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let trueCount=0,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(value.getValue()&&trueCount++,noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(logicalValue.getValue()&&trueCount++,noBoolean=!1)}return noBoolean?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(trueCount%2===1)}};__name(_Xor,"Xor");let Xor=_Xor;const functionLogical=[[And,FUNCTION_NAMES_LOGICAL.AND],[Bycol,FUNCTION_NAMES_LOGICAL.BYCOL],[Byrow,FUNCTION_NAMES_LOGICAL.BYROW],[False,FUNCTION_NAMES_LOGICAL.FALSE],[If,FUNCTION_NAMES_LOGICAL.IF],[Iferror,FUNCTION_NAMES_LOGICAL.IFERROR],[Ifna,FUNCTION_NAMES_LOGICAL.IFNA],[Ifs,FUNCTION_NAMES_LOGICAL.IFS],[Lambda,FUNCTION_NAMES_LOGICAL.LAMBDA],[Let,FUNCTION_NAMES_LOGICAL.LET],[Makearray,FUNCTION_NAMES_LOGICAL.MAKEARRAY],[Map$1,FUNCTION_NAMES_LOGICAL.MAP],[Not,FUNCTION_NAMES_LOGICAL.NOT],[Or,FUNCTION_NAMES_LOGICAL.OR],[Reduce,FUNCTION_NAMES_LOGICAL.REDUCE],[Scan,FUNCTION_NAMES_LOGICAL.SCAN],[Switch,FUNCTION_NAMES_LOGICAL.SWITCH],[True,FUNCTION_NAMES_LOGICAL.TRUE],[Xor,FUNCTION_NAMES_LOGICAL.XOR]],_Address=class _Address extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",5)}calculate(rowNumber,columnNumber,absNumber,a1,sheetText){if(rowNumber.isError())return rowNumber;if(columnNumber.isError())return columnNumber;if(absNumber!=null&&absNumber.isError())return absNumber;if(a1!=null&&a1.isError())return a1;if(sheetText!=null&&sheetText.isError())return sheetText;const _absNumber=absNumber!=null?absNumber:NumberValueObject.create(1),_a1=a1!=null?a1:BooleanValueObject.create(!0),_sheetText=sheetText!=null?sheetText:StringValueObject.create(""),maxRowLength=Math.max(rowNumber.isArray()?rowNumber.getRowCount():1,columnNumber.isArray()?columnNumber.getRowCount():1,_absNumber.isArray()?_absNumber.getRowCount():1,_a1.isArray()?_a1.getRowCount():1,_sheetText.isArray()?_sheetText.getRowCount():1),maxColumnLength=Math.max(rowNumber.isArray()?rowNumber.getColumnCount():1,columnNumber.isArray()?columnNumber.getColumnCount():1,_absNumber.isArray()?_absNumber.getColumnCount():1,_a1.isArray()?_a1.getColumnCount():1,_sheetText.isArray()?_sheetText.getColumnCount():1),rowNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,rowNumber,ErrorValueObject.create(ErrorType$1.NA)),columnNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,columnNumber,ErrorValueObject.create(ErrorType$1.NA)),absNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_absNumber,ErrorValueObject.create(ErrorType$1.NA)),a1Array=expandArrayValueObject(maxRowLength,maxColumnLength,_a1,ErrorValueObject.create(ErrorType$1.NA)),sheetTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,_sheetText,ErrorValueObject.create(ErrorType$1.NA));return rowNumArray.map((rowNumValue,rowIndex,columnIndex)=>{const columnNumValue=columnNumArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),absNumValue=absNumArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),a1Value=a1Array.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),sheetTextValue=sheetTextArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA);return rowNumValue.isError()?rowNumValue:columnNumValue.isError()?columnNumValue:absNumValue.isError()?absNumValue:a1Value.isError()?a1Value:sheetTextValue.isError()?sheetTextValue:this._calculateSingleCell(rowNumValue,columnNumValue,absNumValue,a1Value,sheetTextValue)})}_calculateSingleCell(rowNumber,columnNumber,absNumber,a1,sheetText){const row=Number.parseInt(`${Number(rowNumber.getValue())-1}`),column=Number.parseInt(`${Number(columnNumber.getValue())-1}`),absNumberValue=Number.parseInt(`${Number(absNumber.getValue())}`);if(Number.isNaN(row)||Number.isNaN(column)||Number.isNaN(absNumberValue)||absNumberValue<1||absNumberValue>4)return ErrorValueObject.create(ErrorType$1.VALUE);const absType=transformAbsoluteRefType(absNumberValue),a1Value=this.getZeroOrOneByOneDefault(a1),sheetTextValue=`${sheetText.getValue()}`,sheetName=needsQuoting(sheetTextValue)?`'${sheetTextValue}'`:sheetTextValue,range={startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absType,endAbsoluteRefType:absType},rangeString=a1&&!a1Value?serializeRangeToR1C1(range):serializeRange(range);return StringValueObject.create(sheetName!==""?`${sheetName}!${rangeString}`:rangeString)}};__name(_Address,"Address");let Address=_Address;function transformAbsoluteRefType(number){switch(number){case 1:return core.AbsoluteRefType.ALL;case 2:return core.AbsoluteRefType.ROW;case 3:return core.AbsoluteRefType.COLUMN;case 4:return core.AbsoluteRefType.NONE;default:return core.AbsoluteRefType.ALL}}__name(transformAbsoluteRefType,"transformAbsoluteRefType");const _Areas=class _Areas extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(reference){return reference.isReferenceObject()?NumberValueObject.create(1):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Areas,"Areas");let Areas=_Areas;const _Choose=class _Choose extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(indexNum,...variants){let _indexNum=indexNum;if(_indexNum.isError())return _indexNum;if(_indexNum.isReferenceObject()&&(_indexNum=_indexNum.toArrayValueObject()),!_indexNum.isArray()){const index=_indexNum.convertToNumberObjectValue();return index.isError()?index:variants[Math.trunc(+index.getValue())-1]||ErrorValueObject.create(ErrorType$1.VALUE)}let maxRowLength=_indexNum.isArray()?_indexNum.getRowCount():1,maxColumnLength=_indexNum.isArray()?_indexNum.getColumnCount():1;variants.forEach((variant,i)=>{if(variant.isArray()){const arrayValue=variant;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)});const indexNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_indexNum,ErrorValueObject.create(ErrorType$1.NA)),arrayValueObjectList=variants.map(variant=>{let _variant=variant;return _variant.isReferenceObject()&&(_variant=_variant.toArrayValueObject()),expandArrayValueObject(maxRowLength,maxColumnLength,_variant,ErrorValueObject.create(ErrorType$1.NA))});return indexNumArray.map((indexNumValue,row,column)=>{if(indexNumValue.isError())return indexNumValue;const index=indexNumValue.convertToNumberObjectValue();if(index.isError())return index;const arrayValueObject=arrayValueObjectList[Math.trunc(+index.getValue())-1];let valueObject=(arrayValueObject==null?void 0:arrayValueObject.get(row,column))||ErrorValueObject.create(ErrorType$1.VALUE);return valueObject!=null&&valueObject.isNull()&&(valueObject=NumberValueObject.create(0)),valueObject})}};__name(_Choose,"Choose");let Choose=_Choose;const _Choosecols=class _Choosecols extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,result=[];for(let i=0;i<variants.length;i++){let variantObject=variants[i];if(variantObject.isArray()){const variantRowCount=variantObject.getRowCount(),variantColumnCount=variantObject.getColumnCount();if(variantRowCount>1||variantColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);variantObject=variantObject.get(0,0)}if(variantObject.isString()&&(variantObject=variantObject.convertToNumberObjectValue()),variantObject.isError())return variantObject;const variantValue=Math.trunc(+variantObject.getValue());if(variantValue===0||Math.abs(variantValue)>arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);let searchColArray=array;arrayColumnCount>1&&(variantValue<0?searchColArray=array.slice(void 0,[variantValue+arrayColumnCount,variantValue+1+arrayColumnCount]):searchColArray=array.slice(void 0,[variantValue-1,variantValue]));for(let r=0;r<arrayRowCount;r++)result[r]||(result[r]=[]),array.isArray()?result[r].push(searchColArray.get(r,0)):result[r].push(array)}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Choosecols,"Choosecols");let Choosecols=_Choosecols;const _Chooserows=class _Chooserows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,result=[];for(let i=0;i<variants.length;i++){let variantObject=variants[i];if(variantObject.isArray()){const variantRowCount=variantObject.getRowCount(),variantColumnCount=variantObject.getColumnCount();if(variantRowCount>1||variantColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);variantObject=variantObject.get(0,0)}if(variantObject.isString()&&(variantObject=variantObject.convertToNumberObjectValue()),variantObject.isError())return variantObject;const variantValue=Math.trunc(+variantObject.getValue());if(variantValue===0||Math.abs(variantValue)>arrayRowCount)return ErrorValueObject.create(ErrorType$1.VALUE);let searchRowArray=array;arrayRowCount>1&&(variantValue<0?searchRowArray=array.slice([variantValue+arrayRowCount,variantValue+1+arrayRowCount]):searchRowArray=array.slice([variantValue-1,variantValue])),array.isArray()?result.push(searchRowArray.getArrayValue()[0]):result.push([array])}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Chooserows,"Chooserows");let Chooserows=_Chooserows;const _Column=class _Column extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",1)}calculate(reference){if(reference==null)return NumberValueObject.create(this.column+1);if(reference.isError())return reference;if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const column=reference.getCurrentColumn(),columnCount=reference.getColumnCount(),calculateValueList=[];for(let i=0;i<columnCount;i++)calculateValueList.push(NumberValueObject.create(column+i+1));const arrayValueObjectData={calculateValueList:[calculateValueList],rowCount:1,columnCount,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Column,"Column");let Column=_Column;const _Columns=class _Columns extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(reference){if(reference.isError())return reference;if(reference.isString()||reference.isNumber()||reference.isBoolean())return NumberValueObject.create(1);if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const columnCount=reference.getColumnCount();return NumberValueObject.create(columnCount)}};__name(_Columns,"Columns");let Columns=_Columns;const _Drop=class _Drop extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(array,rows,columns){const _columns=columns!=null?columns:NumberValueObject.create(0),arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,maxRowLength=Math.max(rows.isArray()?rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1),maxColumnLength=Math.max(rows.isArray()?rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1),rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA));if(maxRowLength>1||maxColumnLength>1)return rowsArray.mapValue((rowsObject2,rowIndex,columnIndex)=>{const columnsObject2=columnsArray.get(rowIndex,columnIndex);if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const{isError:isError2,errorObject:errorObject2}=this._checkRowsColumns(rowsObject2,columnsObject2,arrayRowCount,arrayColumnCount);return isError2?errorObject2:array.isArray()?ErrorValueObject.create(ErrorType$1.VALUE):array});if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const rowsObject=rows.isArray()?rows.get(0,0):rows,columnsObject=_columns.isArray()?_columns.get(0,0):_columns,{isError,errorObject,rowsValue,columnsValue}=this._checkRowsColumns(rowsObject,columnsObject,arrayRowCount,arrayColumnCount);return isError?errorObject:this._getResultArray(array,rowsValue,columnsValue,arrayRowCount,arrayColumnCount)}_checkRowsColumns(rowsObject,columnsObject,arrayRowCount,arrayColumnCount){if(rowsObject.isError())return{isError:!0,errorObject:rowsObject};if(columnsObject.isError())return{isError:!0,errorObject:columnsObject};const rowsValue=Math.trunc(+rowsObject.getValue()),columnsValue=Math.trunc(+columnsObject.getValue());return Number.isNaN(rowsValue)||Number.isNaN(columnsValue)?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:Math.abs(rowsValue)>=arrayRowCount||Math.abs(columnsValue)>=arrayColumnCount?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.CALC)}:{isError:!1,rowsValue,columnsValue}}_getResultArray(array,rows,columns,arrayRowCount,arrayColumnCount){const rowParam=rows>=0?[rows,arrayRowCount]:[0,arrayRowCount+rows],columnParam=columns>=0?[columns,arrayColumnCount]:[0,arrayColumnCount+columns];let resultArray;return rows===0&&columns===0?resultArray=array:rows===0?resultArray=array.slice(void 0,columnParam):columns===0?resultArray=array.slice(rowParam,void 0):resultArray=array.slice(rowParam,columnParam),resultArray=resultArray.map(valueObject=>valueObject.isNull()?NumberValueObject.create(0):valueObject),arrayRowCount-rows===1&&arrayColumnCount-columns===1?resultArray.get(0,0):resultArray}};__name(_Drop,"Drop");let Drop=_Drop;const _Expand=class _Expand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(array,rows,columns,padWith){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;let _rows=rows,_columns=columns!=null?columns:NumberValueObject.create(arrayColumnCount);const _padWith=padWith!=null?padWith:ErrorValueObject.create(ErrorType$1.NA);rows.isNull()&&(_rows=NumberValueObject.create(arrayRowCount)),_columns.isNull()&&(_columns=NumberValueObject.create(arrayColumnCount));const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1),rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA));if(maxRowLength>1||maxColumnLength>1)return rowsArray.mapValue((rowsObject2,rowIndex,columnIndex)=>{const columnsObject2=columnsArray.get(rowIndex,columnIndex);if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const{isError:isError2,errorObject:errorObject2}=this._checkRowsColumnsPadWith(rowsObject2,columnsObject2,_padWith,arrayRowCount,arrayColumnCount);return isError2?errorObject2:array.isArray()?array.get(0,0):array});if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const rowsObject=_rows.isArray()?_rows.get(0,0):_rows,columnsObject=_columns.isArray()?_columns.get(0,0):_columns,{isError,errorObject,rowsValue,columnsValue,padWithObject}=this._checkRowsColumnsPadWith(rowsObject,columnsObject,_padWith,arrayRowCount,arrayColumnCount);return isError?errorObject:this._getResultArray(array,rowsValue,columnsValue,padWithObject,arrayRowCount,arrayColumnCount)}_checkRowsColumnsPadWith(rowsObject,columnsObject,padWith,arrayRowCount,arrayColumnCount){if(rowsObject.isError())return{isError:!0,errorObject:rowsObject};if(columnsObject.isError())return{isError:!0,errorObject:columnsObject};const rowsValue=Math.trunc(+rowsObject.getValue()),columnsValue=Math.trunc(+columnsObject.getValue());if(Number.isNaN(rowsValue)||Number.isNaN(columnsValue))return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};if(Math.abs(rowsValue)<arrayRowCount||Math.abs(columnsValue)<arrayColumnCount)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};let _padWith=padWith;if(padWith.isArray()){const rowCount=padWith.getRowCount(),columnCount=padWith.getColumnCount();if(rowCount>1||columnCount>1)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};_padWith=padWith.get(0,0)}return{isError:!1,rowsValue,columnsValue,padWithObject:_padWith}}_getResultArray(array,rows,columns,padWith,arrayRowCount,arrayColumnCount){let resultArray=[];array.isArray()?resultArray=array.map(valueObject=>valueObject.isNull()?NumberValueObject.create(0):valueObject).getArrayValue():resultArray=[[array]];const addRows=Math.max(0,rows-arrayRowCount),addColumns=Math.max(0,columns-arrayColumnCount);for(let r=0;r<addRows;r++)resultArray.push(new Array(arrayColumnCount).fill(padWith));for(let c=0;c<addColumns;c++)resultArray.forEach(row=>{row.push(padWith)});return rows===1&&columns===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Expand,"Expand");let Expand=_Expand;const _Filter=class _Filter extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(array,include,ifEmpty){const _ifEmpty=ifEmpty!=null?ifEmpty:ErrorValueObject.create(ErrorType$1.CALC);if(array.isError())return array;if(include.isError())return include;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,includeRowCount=include.isArray()?include.getRowCount():1,includeColumnCount=include.isArray()?include.getColumnCount():1;return includeRowCount>1&&includeColumnCount>1||includeRowCount===1&&includeColumnCount!==arrayColumnCount||includeColumnCount===1&&includeRowCount!==arrayRowCount?ErrorValueObject.create(ErrorType$1.VALUE):arrayRowCount===1&&arrayColumnCount===1?this._getResultArrayByR1C1(array,include,_ifEmpty):includeRowCount===1?includeColumnCount!==arrayColumnCount?ErrorValueObject.create(ErrorType$1.VALUE):this._getResultArrayByR1(arrayRowCount,arrayColumnCount,array,include,_ifEmpty):includeColumnCount===1?includeRowCount!==arrayRowCount?ErrorValueObject.create(ErrorType$1.VALUE):this._getResultArrayByC1(arrayRowCount,arrayColumnCount,array,include,_ifEmpty):_ifEmpty}_getResultArrayByR1C1(array,include,ifEmpty){let _array=array,_include=include;return _array.isArray()&&(_array=_array.get(0,0)),_include.isArray()&&(_include=_include.get(0,0)),_include.isString()&&(_include=_include.convertToNumberObjectValue()),_include.isError()?_include:+_include.getValue()?_array:ifEmpty}_getResultArrayByR1(arrayRowCount,arrayColumnCount,array,include,ifEmpty){const resultArray=[];for(let c=0;c<arrayColumnCount;c++){let includeObject=include.get(0,c);if(includeObject.isString()&&(includeObject=includeObject.convertToNumberObjectValue()),includeObject.isError())return includeObject;if(+includeObject.getValue())for(let r=0;r<arrayRowCount;r++){resultArray[r]||(resultArray[r]=[]);const arrayObject=array.get(r,c);resultArray[r].push(arrayObject)}}return resultArray.length===0?ifEmpty:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArrayByC1(arrayRowCount,arrayColumnCount,array,include,ifEmpty){const resultArray=[];for(let r=0;r<arrayRowCount;r++){let includeObject=include.get(r,0);if(includeObject.isString()&&(includeObject=includeObject.convertToNumberObjectValue()),includeObject.isError())return includeObject;if(!+includeObject.getValue())continue;const row=[];for(let c=0;c<arrayColumnCount;c++){const arrayObject=array.get(r,c);row.push(arrayObject)}resultArray.push(row)}return resultArray.length===0?ifEmpty:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Filter,"Filter");let Filter=_Filter;var FUNCTION_NAMES_LOOKUP=(FUNCTION_NAMES_LOOKUP2=>(FUNCTION_NAMES_LOOKUP2.ADDRESS="ADDRESS",FUNCTION_NAMES_LOOKUP2.AREAS="AREAS",FUNCTION_NAMES_LOOKUP2.CHOOSE="CHOOSE",FUNCTION_NAMES_LOOKUP2.CHOOSECOLS="CHOOSECOLS",FUNCTION_NAMES_LOOKUP2.CHOOSEROWS="CHOOSEROWS",FUNCTION_NAMES_LOOKUP2.COLUMN="COLUMN",FUNCTION_NAMES_LOOKUP2.COLUMNS="COLUMNS",FUNCTION_NAMES_LOOKUP2.DROP="DROP",FUNCTION_NAMES_LOOKUP2.EXPAND="EXPAND",FUNCTION_NAMES_LOOKUP2.FILTER="FILTER",FUNCTION_NAMES_LOOKUP2.FORMULATEXT="FORMULATEXT",FUNCTION_NAMES_LOOKUP2.GETPIVOTDATA="GETPIVOTDATA",FUNCTION_NAMES_LOOKUP2.HLOOKUP="HLOOKUP",FUNCTION_NAMES_LOOKUP2.HSTACK="HSTACK",FUNCTION_NAMES_LOOKUP2.HYPERLINK="HYPERLINK",FUNCTION_NAMES_LOOKUP2.IMAGE="IMAGE",FUNCTION_NAMES_LOOKUP2.INDEX="INDEX",FUNCTION_NAMES_LOOKUP2.INDIRECT="INDIRECT",FUNCTION_NAMES_LOOKUP2.LOOKUP="LOOKUP",FUNCTION_NAMES_LOOKUP2.MATCH="MATCH",FUNCTION_NAMES_LOOKUP2.OFFSET="OFFSET",FUNCTION_NAMES_LOOKUP2.ROW="ROW",FUNCTION_NAMES_LOOKUP2.ROWS="ROWS",FUNCTION_NAMES_LOOKUP2.RTD="RTD",FUNCTION_NAMES_LOOKUP2.SORT="SORT",FUNCTION_NAMES_LOOKUP2.SORTBY="SORTBY",FUNCTION_NAMES_LOOKUP2.TAKE="TAKE",FUNCTION_NAMES_LOOKUP2.TOCOL="TOCOL",FUNCTION_NAMES_LOOKUP2.TOROW="TOROW",FUNCTION_NAMES_LOOKUP2.TRANSPOSE="TRANSPOSE",FUNCTION_NAMES_LOOKUP2.UNIQUE="UNIQUE",FUNCTION_NAMES_LOOKUP2.VLOOKUP="VLOOKUP",FUNCTION_NAMES_LOOKUP2.VSTACK="VSTACK",FUNCTION_NAMES_LOOKUP2.WRAPCOLS="WRAPCOLS",FUNCTION_NAMES_LOOKUP2.WRAPROWS="WRAPROWS",FUNCTION_NAMES_LOOKUP2.XLOOKUP="XLOOKUP",FUNCTION_NAMES_LOOKUP2.XMATCH="XMATCH",FUNCTION_NAMES_LOOKUP2))(FUNCTION_NAMES_LOOKUP||{});const _Hlookup=class _Hlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(lookupValue,tableArray,rowIndexNum,rangeLookup){if(lookupValue.isError())return lookupValue;if(tableArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!tableArray.isArray()||rowIndexNum.isError()||rangeLookup!=null&&rangeLookup.isError())return ErrorValueObject.create(ErrorType$1.NA);const rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookup);if(rangeLookupValue==null)return ErrorValueObject.create(ErrorType$1.VALUE);const rowIndexNumValue=this.getIndexNumValue(rowIndexNum);if(rowIndexNumValue instanceof ErrorValueObject)return rowIndexNumValue;const searchArray=tableArray.slice([0,1]),resultArray=tableArray.slice([rowIndexNumValue-1,rowIndexNumValue]);return searchArray==null||resultArray==null?ErrorValueObject.create(ErrorType$1.REF):lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,searchArray,resultArray,rangeLookupValue)):this._handleSingleObject(lookupValue,searchArray,resultArray,rangeLookupValue)}_handleSingleObject(value,searchArray,resultArray,rangeLookupValue){return rangeLookupValue===0?this.equalSearch(value,searchArray,resultArray):this.binarySearch(value,searchArray,resultArray)}};__name(_Hlookup,"Hlookup");let Hlookup=_Hlookup;const _Hstack=class _Hstack extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const maxRowLength=Math.max(...variants.map(variantObject=>variantObject.isArray()?variantObject.getRowCount():1)),result=[];for(let i=0;i<variants.length;i++){const variantObject=variants[i];if(variantObject.isError())return variantObject;const rowCount=variantObject.isArray()?variantObject.getRowCount():1,columnCount=variantObject.isArray()?variantObject.getColumnCount():1;for(let r=0;r<maxRowLength;r++){result[r]||(result[r]=[]);for(let c=0;c<columnCount;c++){let singleObject=variantObject;variantObject.isArray()&&(singleObject=variantObject.get(r,c)),r>rowCount-1||!singleObject?result[r].push(ErrorValueObject.create(ErrorType$1.NA)):result[r].push(singleObject)}}}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Hstack,"Hstack");let Hstack=_Hstack;const _Index=class _Index extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4);__publicField(this,"needsReferenceObject",!0)}calculate(reference,rowNum,columnNum,areaNum){if(reference.isError())return reference;if(rowNum!=null&&rowNum.isError())return rowNum;if(columnNum!=null&&columnNum.isError())return columnNum;if(areaNum!=null&&areaNum.isError())return areaNum;let referenceRowCount=0,referenceColumnCount=0;if(reference.isValueObject())referenceRowCount=1,referenceColumnCount=1;else if(reference.isReferenceObject()){const{startRow,endRow,startColumn,endColumn}=reference.getRangePosition();referenceRowCount=endRow-startRow+1,referenceColumnCount=endColumn-startColumn+1}else return ErrorValueObject.create(ErrorType$1.VALUE);let _rowNum,_columnNum;referenceRowCount===1&&referenceColumnCount>1&&columnNum==null?(_columnNum=rowNum!=null?rowNum:NumberValueObject.create(0),_rowNum=NumberValueObject.create(0)):(_rowNum=rowNum!=null?rowNum:NumberValueObject.create(0),_columnNum=columnNum!=null?columnNum:NumberValueObject.create(0));let _areaNum=areaNum!=null?areaNum:NumberValueObject.create(1);_rowNum.isReferenceObject()&&(_rowNum=_rowNum.toArrayValueObject()),_columnNum.isReferenceObject()&&(_columnNum=_columnNum.toArrayValueObject()),_areaNum.isReferenceObject()&&(_areaNum=_areaNum.toArrayValueObject());const maxRowLength=Math.max(_rowNum.isArray()?_rowNum.getRowCount():1,_columnNum.isArray()?_columnNum.getRowCount():1,_areaNum.isArray()?_areaNum.getRowCount():1),maxColumnLength=Math.max(_rowNum.isArray()?_rowNum.getColumnCount():1,_columnNum.isArray()?_columnNum.getColumnCount():1,_areaNum.isArray()?_areaNum.getColumnCount():1);if(_rowNum=_rowNum,_columnNum=_columnNum,_areaNum=_areaNum,maxRowLength===1&&maxColumnLength===1)return this._calculateSingleCell(reference,_rowNum,_columnNum,_areaNum);{const rowNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rowNum,ErrorValueObject.create(ErrorType$1.NA)),columnNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columnNum,ErrorValueObject.create(ErrorType$1.NA)),areaNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_areaNum,ErrorValueObject.create(ErrorType$1.NA));return rowNumArray.map((rowNumValue,rowIndex,columnIndex)=>{const columnNumValue=columnNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),areaNumValue=areaNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),result=this._calculateSingleCell(reference,rowNumValue,columnNumValue,areaNumValue);return result.isReferenceObject()?result.toArrayValueObject().getFirstCell():result})}}_calculateSingleCell(reference,rowNum,columnNum,areaNum){if(rowNum.isError())return rowNum;const rowNumberValue=this._getNumberValue(rowNum);if(rowNumberValue===void 0||rowNumberValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(columnNum.isError())return columnNum;const columnNumberValue=this._getNumberValue(columnNum);if(columnNumberValue===void 0||columnNumberValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(areaNum.isError())return areaNum;const areaNumberValue=this._getAreaNumberValue(areaNum);return areaNumberValue===void 0||areaNumberValue<1?ErrorValueObject.create(ErrorType$1.VALUE):reference.isReferenceObject()?this._getReferenceObject(reference,rowNumberValue,columnNumberValue,areaNumberValue):reference.isValueObject()&&rowNumberValue===1&&columnNumberValue===1?reference:ErrorValueObject.create(ErrorType$1.REF)}_getNumberValue(numberValueObject){if(numberValueObject==null)return 0;let logicValue=0;if(numberValueObject.isBoolean())numberValueObject.getValue()===!0&&(logicValue=1);else{if(numberValueObject.isString())return;numberValueObject.isNumber()?logicValue=Math.floor(numberValueObject.getValue()):numberValueObject.isNull()&&(logicValue=0)}return logicValue}_getAreaNumberValue(numberValueObject){if(numberValueObject==null)return 1;let logicValue=0;if(numberValueObject.isBoolean())numberValueObject.getValue()===!0&&(logicValue=1);else{if(numberValueObject.isString())return;numberValueObject.isNumber()?logicValue=Math.floor(numberValueObject.getValue()):numberValueObject.isNull()&&(logicValue=0)}return logicValue}_getReferenceObject(reference,rowNumberValue,columnNumberValue,areaNumberValue){const{startRow,endRow,startColumn,endColumn}=reference.getRangePosition();let referenceStartRow=0,referenceEndRow=0,referenceStartColumn=0,referenceEndColumn=0;if(rowNumberValue===0?(referenceStartRow=startRow,referenceEndRow=endRow):referenceStartRow=referenceEndRow=startRow+rowNumberValue-1,columnNumberValue===0?(referenceStartColumn=startColumn,referenceEndColumn=endColumn):referenceStartColumn=referenceEndColumn=startColumn+columnNumberValue-1,referenceStartRow>endRow||referenceStartColumn>endColumn)return ErrorValueObject.create(ErrorType$1.REF);const range={startRow:referenceStartRow,startColumn:referenceStartColumn,endRow:referenceEndRow,endColumn:referenceEndColumn};return this.createReferenceObject(reference,range)}};__name(_Index,"Index");let Index=_Index;const _Indirect=class _Indirect extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}isAddress(){return!0}calculate(refText,a1){if(refText.isError())return refText;if(a1!=null&&a1.isError())return a1;let a1Value=this.getZeroOrOneByOneDefault(a1);a1Value==null&&(a1Value=1);let _refText=refText;if(refText.isArray()){const rowCount=refText.getRowCount(),columnCount=refText.getColumnCount();if(rowCount>1||columnCount>1)return refText.map(()=>ErrorValueObject.create(ErrorType$1.VALUE));_refText=refText.getFirstCell()}return this._handleSingleObject(_refText,a1Value)}_handleSingleObject(refTextObject,a1Value){const refTextValue=`${refTextObject.getValue()}`;if(refTextValue.trim()==="")return ErrorValueObject.create(ErrorType$1.REF);const refTextV=this._convertToDefinedName(refTextValue);if(a1Value===0){const gridRange2=deserializeRangeForR1C1(refTextV),{range:range2,sheetName:sheetName2,unitId:unitId2}=gridRange2,rangeReferenceObject2=new RangeReferenceObject(range2);return rangeReferenceObject2.setForcedUnitIdDirect(unitId2),rangeReferenceObject2.setForcedSheetName(sheetName2),this._setDefault(rangeReferenceObject2)}if(regexTestSingeRange(refTextV))return this._setDefault(new CellReferenceObject(refTextV));if(regexTestRow(refTextV))return this._setDefault(new RowReferenceObject(refTextV));if(regexTestColumn(refTextV))return this._setDefault(new ColumnReferenceObject(refTextV));const gridRange=deserializeRangeWithSheetWithCache(refTextV),{range,sheetName,unitId}=gridRange;if(Number.isNaN(range.startRow)||range.endRow+1>1048576||Number.isNaN(range.startColumn)||range.endColumn+1>16384)return ErrorValueObject.create(ErrorType$1.REF);const rangeReferenceObject=new RangeReferenceObject(range);return rangeReferenceObject.setForcedUnitIdDirect(unitId),rangeReferenceObject.setForcedSheetName(sheetName),this._setDefault(rangeReferenceObject)}_setDefault(object){return this.unitId==null||this.subUnitId==null?ErrorValueObject.create(ErrorType$1.REF):(object.setDefaultUnitId(this.unitId),object.setDefaultSheetId(this.subUnitId),object)}_convertToDefinedName(refText){const definedName=this.getDefinedName(refText);if(definedName==null)return refText;const formulaOrRefString=definedName.formulaOrRefString;return formulaOrRefString==null?refText:formulaOrRefString.startsWith(operatorToken.EQUALS)?formulaOrRefString.slice(1):formulaOrRefString}};__name(_Indirect,"Indirect");let Indirect=_Indirect;const _Lookup=class _Lookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsExpandParams",!0)}calculate(lookupValue,lookupVectorOrArray,resultVector){return lookupValue.isError()?lookupValue:lookupVectorOrArray.isError()?ErrorValueObject.create(ErrorType$1.REF):lookupVectorOrArray.isArray()?resultVector!=null&&resultVector.isError()?resultVector:lookupVectorOrArray.getColumnCount()===1||lookupVectorOrArray.getRowCount()===1?resultVector!=null&&!resultVector.isArray()?ErrorValueObject.create(ErrorType$1.REF):this._handleVector(lookupValue,lookupVectorOrArray,resultVector):this._handleArray(lookupValue,lookupVectorOrArray):ErrorValueObject.create(ErrorType$1.VALUE)}_handleVector(lookupValue,lookupVector,resultVector){let _resultVector=resultVector;if(_resultVector==null)_resultVector=lookupVector;else if(_resultVector.getRowCount()!==lookupVector.getRowCount()||_resultVector.getColumnCount()!==lookupVector.getColumnCount())return ErrorValueObject.create(ErrorType$1.REF);return lookupValue.isArray()?lookupValue.map(value=>this.binarySearch(value,lookupVector,_resultVector)):this.binarySearch(lookupValue,lookupVector,_resultVector)}_handleArray(lookupValue,lookupArray){const rowCount=lookupArray.getRowCount(),columnCount=lookupArray.getColumnCount();let searchArray,resultArray;return columnCount>rowCount?(searchArray=lookupArray.slice([0,1]),resultArray=lookupArray.slice([rowCount-1,rowCount])):(searchArray=lookupArray.slice(void 0,[0,1]),resultArray=lookupArray.slice(void 0,[columnCount-1,columnCount])),searchArray==null||resultArray==null?ErrorValueObject.create(ErrorType$1.VALUE):lookupValue.isArray()?lookupValue.map(value=>this.binarySearch(value,searchArray,resultArray)):this.binarySearch(lookupValue,searchArray,resultArray)}};__name(_Lookup,"Lookup");let Lookup=_Lookup;const _Match=class _Match extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(lookupValue,lookupArray,matchType){if(lookupValue.isError())return lookupValue;if(lookupArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1||matchType!=null&&matchType.isError())return ErrorValueObject.create(ErrorType$1.NA);const matchTypeValue=this.getMatchTypeValue(matchType);return matchTypeValue==null?ErrorValueObject.create(ErrorType$1.VALUE):lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,lookupArray,matchTypeValue)):this._handleSingleObject(lookupValue,lookupArray,matchTypeValue)}_handleSingleObject(value,searchArray,matchTypeValue){const searchType=this._getSearchModeValue(matchTypeValue),result=searchArray.orderSearch(value,searchType);if(result==null)return ErrorValueObject.create(ErrorType$1.NA);if(result instanceof ErrorValueObject)return result;const resultNumber=searchArray.getRowCount()===1?result.column+1:result.row+1;return NumberValueObject.create(resultNumber)}_getSearchModeValue(searchModeValue){switch(searchModeValue){case 1:return ArrayOrderSearchType.MIN;case 0:return ArrayOrderSearchType.NORMAL;case-1:return ArrayOrderSearchType.MAX}}};__name(_Match,"Match");let Match=_Match;const _Offset=class _Offset extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5);__publicField(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(reference,rows,columns,height,width){if(reference.isError())return reference;if(rows.isError())return rows;if(columns.isError())return columns;if(height!=null&&height.isError())return height;if(width!=null&&width.isError())return width;if(!reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCount=reference.getRowCount(),columnCount=reference.getColumnCount();let _rows=rows;_rows.isReferenceObject()&&(_rows=_rows.toArrayValueObject());let _columns=columns;_columns.isReferenceObject()&&(_columns=_columns.toArrayValueObject());let _height=height!=null?height:NumberValueObject.create(rowCount);_height.isReferenceObject()&&(_height=_height.toArrayValueObject()),_height.isNull()&&(_height=NumberValueObject.create(rowCount));let _width=width!=null?width:NumberValueObject.create(columnCount);_width.isReferenceObject()&&(_width=_width.toArrayValueObject()),_width.isNull()&&(_width=NumberValueObject.create(columnCount));const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1,_height.isArray()?_height.getRowCount():1,_width.isArray()?_width.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1,_height.isArray()?_height.getColumnCount():1,_width.isArray()?_width.getColumnCount():1);if(_rows=_rows,_columns=_columns,_height=_height,_width=_width,maxRowLength===1&&maxColumnLength===1)return _rows=_rows.isArray()?_rows.get(0,0):_rows,_columns=_columns.isArray()?_columns.get(0,0):_columns,_height=_height.isArray()?_height.get(0,0):_height,_width=_width.isArray()?_width.get(0,0):_width,this._handleSingleObject(reference,_rows,_columns,_height,_width);const rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA)),heightArray=expandArrayValueObject(maxRowLength,maxColumnLength,_height,ErrorValueObject.create(ErrorType$1.NA)),widthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_width,ErrorValueObject.create(ErrorType$1.NA));return rowsArray.mapValue((rowsValue,rowIndex,columnIndex)=>{const columnsValue=columnsArray.get(rowIndex,columnIndex),heightValue=heightArray.get(rowIndex,columnIndex),widthValue=widthArray.get(rowIndex,columnIndex);return rowsValue.isError()?rowsValue:columnsValue.isError()?columnsValue:heightValue.isError()?heightValue:widthValue.isError()?widthValue:this._handleSingleObject(reference,rowsValue,columnsValue,heightValue,widthValue,!0)})}_handleSingleObject(reference,rowsValue,columnsValue,heightValue,widthValue,isReportError=!1){const{startRow:referenceStartRow,startColumn:referenceStartColumn}=reference.getRangePosition();let _rowsValue=rowsValue;if(_rowsValue.isString()&&(_rowsValue=_rowsValue.convertToNumberObjectValue()),_rowsValue.isError())return _rowsValue;let _columnsValue=columnsValue;if(_columnsValue.isString()&&(_columnsValue=_columnsValue.convertToNumberObjectValue()),_columnsValue.isError())return _columnsValue;const rowOffset=+_rowsValue.getValue(),columnOffset=+_columnsValue.getValue();if(typeof rowOffset!="number"||typeof columnOffset!="number")return ErrorValueObject.create(ErrorType$1.VALUE);const targetRow=referenceStartRow+rowOffset,targetColumn=referenceStartColumn+columnOffset;if(targetRow<0||targetColumn<0)return ErrorValueObject.create(ErrorType$1.REF);const heightCount=this.getIndexNumValue(heightValue),widthCount=this.getIndexNumValue(widthValue);if(typeof heightCount!="number"||typeof widthCount!="number")return ErrorValueObject.create(ErrorType$1.VALUE);if(heightCount===0||widthCount===0)return ErrorValueObject.create(ErrorType$1.REF);const targetRowWithHeight=heightCount>0?targetRow+heightCount-1:targetRow+heightCount+1,targetColumnWithWidth=widthCount>0?targetColumn+widthCount-1:targetColumn+widthCount+1;if(targetRowWithHeight<0||targetColumnWithWidth<0)return ErrorValueObject.create(ErrorType$1.REF);if(isReportError)return ErrorValueObject.create(ErrorType$1.VALUE);const startRow=targetRow<targetRowWithHeight?targetRow:targetRowWithHeight,startColumn=targetColumn<targetColumnWithWidth?targetColumn:targetColumnWithWidth,endRow=targetRow>targetRowWithHeight?targetRow:targetRowWithHeight,endColumn=targetColumn>targetColumnWithWidth?targetColumn:targetColumnWithWidth,range={startRow,startColumn,endRow,endColumn};return this.createReferenceObject(reference,range)}};__name(_Offset,"Offset");let Offset=_Offset;const _Row=class _Row extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",1)}calculate(reference){if(reference==null)return NumberValueObject.create(this.row+1);if(reference.isError())return reference;if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const row=reference.getCurrentRow(),rowCount=reference.getRowCount(),calculateValueList=[];for(let i=0;i<rowCount;i++)calculateValueList.push([NumberValueObject.create(row+i+1)]);const arrayValueObjectData={calculateValueList,rowCount,columnCount:1,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Row,"Row");let Row=_Row;const _Rows=class _Rows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(reference){if(reference.isError())return reference;if(reference.isString()||reference.isNumber()||reference.isBoolean())return NumberValueObject.create(1);if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const rowCount=reference.getRowCount();return NumberValueObject.create(rowCount)}};__name(_Rows,"Rows");let Rows=_Rows;const _Sort=class _Sort extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4)}calculate(array,sortIndex,sortOrder,byCol){const _sortIndex=sortIndex!=null?sortIndex:NumberValueObject.create(1),_sortOrder=sortOrder!=null?sortOrder:NumberValueObject.create(1),_byCol=byCol!=null?byCol:BooleanValueObject.create(!1);if(_byCol.isArray()){const byColRowCount=_byCol.getRowCount(),byColColumnCount=_byCol.getColumnCount();if(byColRowCount===1&&byColColumnCount===1){const byColObject=_byCol.get(0,0);return this._handleSingleObject(array,_sortIndex,_sortOrder,byColObject)}return _byCol.map(byColObject=>{const result=this._handleSingleObject(array,_sortIndex,_sortOrder,byColObject);return result.isArray()?result.get(0,0):result})}return this._handleSingleObject(array,_sortIndex,_sortOrder,_byCol)}_handleSingleObject(array,sortIndex,sortOrder,byCol){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,_sortIndex=this._checkArrayError(sortIndex);if(_sortIndex.isError())return _sortIndex;const sortIndexValue=Math.floor(+_sortIndex.getValue());if(sortIndexValue<1)return ErrorValueObject.create(ErrorType$1.VALUE);const _sortOrder=this._checkArrayError(sortOrder);if(_sortOrder.isError())return _sortOrder;const sortOrderValue=Math.floor(+_sortOrder.getValue());if(sortOrderValue!==-1&&sortOrderValue!==1)return ErrorValueObject.create(ErrorType$1.VALUE);let _byCol=byCol;if(_byCol.isString()&&(_byCol=_byCol.convertToNumberObjectValue()),_byCol.isError())return _byCol;if(!array.isArray()||arrayRowCount===1&&arrayColumnCount===1)return array;const byColValue=+_byCol.getValue();return this._getResult(array,sortIndexValue,sortOrderValue,byColValue,arrayRowCount,arrayColumnCount)}_checkArrayError(variant){let _variant=variant;if(_variant.isArray()){const rowCount=_variant.getRowCount(),columnCount=_variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=_variant.get(0,0)}return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant}_getResult(array,sortIndexValue,sortOrderValue,byColValue,arrayRowCount,arrayColumnCount){if(byColValue){if(sortIndexValue>arrayRowCount)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayValue=array.transpose().getArrayValue();return arrayValue.sort(this._sort(sortIndexValue-1,sortOrderValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}).transpose()}else{if(sortIndexValue>arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayValue=array.getArrayValue();return arrayValue.sort(this._sort(sortIndexValue-1,sortOrderValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}_sort(sortIndex,sortOrder=1){const compare=getCompare();return sortOrder===1?this._sortAsc(sortIndex,compare):this._sortDesc(sortIndex,compare)}_sortAsc(sortIndex,compare){return(a,b)=>{const columnA=a[sortIndex],columnB=b[sortIndex];if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return 1;if(columnB.isError())return-1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?1:columnB.isBoolean()&&columnBValue===!0?-1:columnA.isBoolean()&&columnAValue===!1?1:columnB.isBoolean()&&columnBValue===!1?-1:columnA.isNumber()&&columnB.isNumber()?+columnAValue-+columnBValue:compare(columnAValue,columnBValue)}}_sortDesc(sortIndex,compare){return(a,b)=>{const columnA=a[sortIndex],columnB=b[sortIndex];if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return-1;if(columnB.isError())return 1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?-1:columnB.isBoolean()&&columnBValue===!0?1:columnA.isBoolean()&&columnAValue===!1?-1:columnB.isBoolean()&&columnBValue===!1?1:columnA.isNumber()&&columnB.isNumber()?+columnBValue-+columnAValue:compare(columnBValue,columnAValue)}}};__name(_Sort,"Sort");let Sort=_Sort;const _Sortby=class _Sortby extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){variants.length===1&&variants.push(NumberValueObject.create(1));const variantsError=this._getVariantsError(array,...variants),{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants);if(variantsError.isError()){const expandArray=expandArrayValueObject(maxRowLength,maxColumnLength,variantsError);return maxRowLength===1&&maxColumnLength===1?expandArray.get(0,0):expandArray}const _variants=variants.map((variant,index)=>index%2===0?variant:expandArrayValueObject(maxRowLength,maxColumnLength,variant,ErrorValueObject.create(ErrorType$1.NA))),resultArray=this._getResultArray(array,_variants,maxRowLength,maxColumnLength);return maxRowLength===1&&maxColumnLength===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getVariantsError(array,...variants){if(array.isError())return array;for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant}if(variants.length<2||variants.length%2!==0)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,byArray1RowCount=variants[0].isArray()?variants[0].getRowCount():1,byArray1ColumnCount=variants[0].isArray()?variants[0].getColumnCount():1;if((byArray1RowCount>1||byArray1ColumnCount>1)&&(byArray1RowCount>1&&byArray1ColumnCount>1||byArray1RowCount===1&&byArray1ColumnCount!==arrayColumnCount||byArray1ColumnCount===1&&byArray1RowCount!==arrayRowCount))return ErrorValueObject.create(ErrorType$1.VALUE);for(let i=2;i<variants.length;i++){if(i%2===1)continue;const byArrayRowCount=variants[i].isArray()?variants[i].getRowCount():1,byArrayColumnCount=variants[i].isArray()?variants[i].getColumnCount():1;if(byArrayRowCount!==byArray1RowCount||byArrayColumnCount!==byArray1ColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE)}return BooleanValueObject.create(!0)}_getResultArray(array,variants,maxRowLength,maxColumnLength){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,byArray1RowCount=variants[0].isArray()?variants[0].getRowCount():1,byArray1ColumnCount=variants[0].isArray()?variants[0].getColumnCount():1,resultArray=[];for(let r=0;r<maxRowLength;r++){resultArray[r]=[];for(let c=0;c<maxColumnLength;c++){const{isError,errorObject,byArrays,sortOrders}=this._getByArraysAndSortOrders(variants,r,c,byArray1ColumnCount);if(isError){resultArray[r].push(errorObject);continue}if(!array.isArray()||arrayRowCount===1&&arrayColumnCount===1){resultArray[r].push(array);continue}let arrayValue=array.getArrayValue();byArray1RowCount===1&&byArray1ColumnCount===1||(byArray1RowCount===1?(arrayValue=arrayValue.concat(byArrays),arrayValue=this._transposeArray(arrayValue),arrayValue.sort(this._sort(arrayRowCount,sortOrders)),arrayValue=this._transposeArray(arrayValue).slice(0,arrayRowCount)):byArray1ColumnCount===1&&(arrayValue=this._transposeArray(arrayValue),arrayValue=arrayValue.concat(byArrays),arrayValue=this._transposeArray(arrayValue),arrayValue.sort(this._sort(arrayColumnCount,sortOrders)),arrayValue=arrayValue.map(row=>row.slice(0,arrayColumnCount))));const result=ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column});if(maxRowLength>1||maxColumnLength>1){resultArray[r].push(result.get(0,0));continue}resultArray[r].push(result)}}return resultArray}_getByArraysAndSortOrders(variants,r,c,byArray1ColumnCount){const byArrays=[],sortOrders=[];let isError=!1,errorObject=null;for(let i=0;i<variants.length;i++){if(i%2===1)continue;const byArray=variants[i];let sortOrder=variants[i+1].get(r,c);if(sortOrder.isString()&&(sortOrder=sortOrder.convertToNumberObjectValue()),sortOrder.isError()){isError=!0,errorObject=sortOrder;break}const sortOrderValue=Math.floor(+sortOrder.getValue());if(sortOrderValue!==-1&&sortOrderValue!==1){isError=!0,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);break}if(sortOrders.push(sortOrderValue),byArray.isArray()){let byArrayValue=byArray.getArrayValue();byArray1ColumnCount===1&&(byArrayValue=this._transposeArray(byArrayValue)),byArrays.push(byArrayValue[0])}else byArrays.push([byArray])}return{isError,errorObject,byArrays,sortOrders}}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}_sort(sortIndex,sortOrders){const compare=getCompare();return(a,b)=>{let columnA=a[sortIndex],columnB=b[sortIndex],result=this._compare(columnA,columnB,sortOrders[0],compare);if(result===0&&sortOrders.length>1){for(let i=1;i<sortOrders.length;i++)if(columnA=a[sortIndex+i],columnB=b[sortIndex+i],result=this._compare(columnA,columnB,sortOrders[i],compare),result!==0)return result}return result}}_compare(columnA,columnB,sortOrder,compare){return sortOrder===1?this._asc(columnA,columnB,compare):this._desc(columnA,columnB,compare)}_asc(columnA,columnB,compare){if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return 1;if(columnB.isError())return-1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?1:columnB.isBoolean()&&columnBValue===!0?-1:columnA.isBoolean()&&columnAValue===!1?1:columnB.isBoolean()&&columnBValue===!1?-1:columnA.isNumber()&&columnB.isNumber()?+columnAValue-+columnBValue:compare(columnAValue,columnBValue)}_desc(columnA,columnB,compare){if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return-1;if(columnB.isError())return 1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?-1:columnB.isBoolean()&&columnBValue===!0?1:columnA.isBoolean()&&columnAValue===!1?-1:columnB.isBoolean()&&columnBValue===!1?1:columnA.isNumber()&&columnB.isNumber()?+columnBValue-+columnAValue:compare(columnBValue,columnAValue)}};__name(_Sortby,"Sortby");let Sortby=_Sortby;const _Take=class _Take extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(array,rows,columns){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;let _rows=rows,_columns=columns!=null?columns:NumberValueObject.create(arrayColumnCount);rows.isNull()&&(_rows=NumberValueObject.create(arrayRowCount)),_columns.isNull()&&(_columns=NumberValueObject.create(arrayColumnCount));const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1),rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA));if(maxRowLength>1||maxColumnLength>1)return rowsArray.mapValue((rowsObject2,rowIndex,columnIndex)=>{const columnsObject2=columnsArray.get(rowIndex,columnIndex);if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const{isError:isError2,errorObject:errorObject2}=this._checkRowsColumns(rowsObject2,columnsObject2,arrayRowCount,arrayColumnCount);return isError2?errorObject2:array.isArray()?ErrorValueObject.create(ErrorType$1.VALUE):array});if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const rowsObject=_rows.isArray()?_rows.get(0,0):_rows,columnsObject=_columns.isArray()?_columns.get(0,0):_columns,{isError,errorObject,rowsValue,columnsValue}=this._checkRowsColumns(rowsObject,columnsObject,arrayRowCount,arrayColumnCount);return isError?errorObject:this._getResultArray(array,rowsValue,columnsValue,arrayRowCount,arrayColumnCount)}_checkRowsColumns(rowsObject,columnsObject,arrayRowCount,arrayColumnCount){if(rowsObject.isError())return{isError:!0,errorObject:rowsObject};if(columnsObject.isError())return{isError:!0,errorObject:columnsObject};let rowsValue=Math.trunc(+rowsObject.getValue()),columnsValue=Math.trunc(+columnsObject.getValue());return Number.isNaN(rowsValue)||Number.isNaN(columnsValue)?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:Math.abs(rowsValue)===0||Math.abs(columnsValue)===0?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.CALC)}:(rowsValue>arrayRowCount&&(rowsValue=arrayRowCount),columnsValue>arrayColumnCount&&(columnsValue=arrayColumnCount),{isError:!1,rowsValue,columnsValue})}_getResultArray(array,rows,columns,arrayRowCount,arrayColumnCount){if(!array.isArray())return array;const rowParam=rows>=0?[0,rows]:[arrayRowCount+rows,arrayRowCount],columnParam=columns>=0?[0,columns]:[arrayColumnCount+columns,arrayColumnCount];let resultArray;return rows===arrayRowCount&&columns===arrayColumnCount?resultArray=array:rows===arrayRowCount?resultArray=array.slice(void 0,columnParam):columns===arrayColumnCount?resultArray=array.slice(rowParam,void 0):resultArray=array.slice(rowParam,columnParam),resultArray=resultArray.map(valueObject=>valueObject.isNull()?NumberValueObject.create(0):valueObject),rows===1&&columns===1?resultArray.get(0,0):resultArray}};__name(_Take,"Take");let Take=_Take;const _Tocol=class _Tocol extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(array,ignore,scanByColumn){const _ignore=ignore!=null?ignore:NumberValueObject.create(0),_scanByColumn=scanByColumn!=null?scanByColumn:BooleanValueObject.create(!1),maxRowLength=Math.max(_ignore.isArray()?_ignore.getRowCount():1,_scanByColumn.isArray()?_scanByColumn.getRowCount():1),maxColumnLength=Math.max(_ignore.isArray()?_ignore.getColumnCount():1,_scanByColumn.isArray()?_scanByColumn.getColumnCount():1),ignoreArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ignore,ErrorValueObject.create(ErrorType$1.NA)),scanByColumnArray=expandArrayValueObject(maxRowLength,maxColumnLength,_scanByColumn,ErrorValueObject.create(ErrorType$1.NA)),resultArray=ignoreArray.mapValue((ignoreObject,rowIndex,columnIndex)=>{const scanByColumnObject=scanByColumnArray.get(rowIndex,columnIndex);if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(ignoreObject.isError())return ignoreObject;if(scanByColumnObject.isError())return scanByColumnObject;const ignoreValue=Math.trunc(+ignoreObject.getValue()),scanByColumnValue=+scanByColumnObject.getValue();if(Number.isNaN(ignoreValue)||ignoreValue<0||ignoreValue>3||Number.isNaN(scanByColumnValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!array.isArray())return array;let result=[];return scanByColumnValue?result=this._getArrayValueByColumn(array,ignoreValue):result=this._getArrayValueByRow(array,ignoreValue),result.length===0?ErrorValueObject.create(ErrorType$1.CALC):maxRowLength>1||maxColumnLength>1||result.length===1?result[0]:ArrayValueObject.create({calculateValueList:result.map(valueObject=>[valueObject]),rowCount:result.length,columnCount:1,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getArrayValueByColumn(array,ignore){const _array=array,arrayRowCount=_array.getRowCount(),arrayColumnCount=_array.getColumnCount(),result=[];for(let c=0;c<arrayColumnCount;c++)for(let r=0;r<arrayRowCount;r++){const valueObject=_array.get(r,c);this._isIgnore(valueObject,ignore)||result.push(valueObject.isNull()?NumberValueObject.create(0):valueObject)}return result}_getArrayValueByRow(array,ignore){const _array=array,arrayRowCount=_array.getRowCount(),arrayColumnCount=_array.getColumnCount(),result=[];for(let r=0;r<arrayRowCount;r++)for(let c=0;c<arrayColumnCount;c++){const valueObject=_array.get(r,c);this._isIgnore(valueObject,ignore)||result.push(valueObject.isNull()?NumberValueObject.create(0):valueObject)}return result}_isIgnore(valueObject,ignore){switch(ignore){case 0:return!1;case 1:return valueObject.isNull();case 2:return valueObject.isError();case 3:return valueObject.isNull()||valueObject.isError();default:return!1}}};__name(_Tocol,"Tocol");let Tocol=_Tocol;const _Torow=class _Torow extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(array,ignore,scanByColumn){const _ignore=ignore!=null?ignore:NumberValueObject.create(0),_scanByColumn=scanByColumn!=null?scanByColumn:BooleanValueObject.create(!1),maxRowLength=Math.max(_ignore.isArray()?_ignore.getRowCount():1,_scanByColumn.isArray()?_scanByColumn.getRowCount():1),maxColumnLength=Math.max(_ignore.isArray()?_ignore.getColumnCount():1,_scanByColumn.isArray()?_scanByColumn.getColumnCount():1),ignoreArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ignore,ErrorValueObject.create(ErrorType$1.NA)),scanByColumnArray=expandArrayValueObject(maxRowLength,maxColumnLength,_scanByColumn,ErrorValueObject.create(ErrorType$1.NA)),resultArray=ignoreArray.mapValue((ignoreObject,rowIndex,columnIndex)=>{const scanByColumnObject=scanByColumnArray.get(rowIndex,columnIndex);if(array.isError())return array;if(ignoreObject.isError())return ignoreObject;if(scanByColumnObject.isError())return scanByColumnObject;const ignoreValue=Math.trunc(+ignoreObject.getValue()),scanByColumnValue=+scanByColumnObject.getValue();if(Number.isNaN(ignoreValue)||ignoreValue<0||ignoreValue>3||Number.isNaN(scanByColumnValue)||array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(!array.isArray())return array;let result=[];return scanByColumnValue?result=this._getArrayValueByColumn(array,ignoreValue):result=this._getArrayValueByRow(array,ignoreValue),result.length===0?ErrorValueObject.create(ErrorType$1.CALC):maxRowLength>1||maxColumnLength>1||result.length===1?result[0]:ArrayValueObject.create({calculateValueList:[result],rowCount:1,columnCount:result.length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getArrayValueByColumn(array,ignore){const _array=array,arrayRowCount=_array.getRowCount(),arrayColumnCount=_array.getColumnCount(),result=[];for(let c=0;c<arrayColumnCount;c++)for(let r=0;r<arrayRowCount;r++){const valueObject=_array.get(r,c);this._isIgnore(valueObject,ignore)||result.push(valueObject.isNull()?NumberValueObject.create(0):valueObject)}return result}_getArrayValueByRow(array,ignore){const _array=array,arrayRowCount=_array.getRowCount(),arrayColumnCount=_array.getColumnCount(),result=[];for(let r=0;r<arrayRowCount;r++)for(let c=0;c<arrayColumnCount;c++){const valueObject=_array.get(r,c);this._isIgnore(valueObject,ignore)||result.push(valueObject.isNull()?NumberValueObject.create(0):valueObject)}return result}_isIgnore(valueObject,ignore){switch(ignore){case 0:return!1;case 1:return valueObject.isNull();case 2:return valueObject.isError();case 3:return valueObject.isNull()||valueObject.isError();default:return!1}}};__name(_Torow,"Torow");let Torow=_Torow;const _Transpose=class _Transpose extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(array){if(array.isError())return array;if(array.isArray()){const rowCount=array.getRowCount(),columnCount=array.getColumnCount();return rowCount===1&&columnCount===1?array.get(0,0):array.transpose()}return array}};__name(_Transpose,"Transpose");let Transpose=_Transpose;const _Unique=class _Unique extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(array,byCol,exactlyOnce){const _byCol=byCol!=null?byCol:BooleanValueObject.create(!1),_exactlyOnce=exactlyOnce!=null?exactlyOnce:BooleanValueObject.create(!1),arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,maxRowLength=Math.max(_byCol.isArray()?_byCol.getRowCount():1,_exactlyOnce.isArray()?_exactlyOnce.getRowCount():1),maxColumnLength=Math.max(_byCol.isArray()?_byCol.getColumnCount():1,_exactlyOnce.isArray()?_exactlyOnce.getColumnCount():1),byColArray=expandArrayValueObject(maxRowLength,maxColumnLength,_byCol,ErrorValueObject.create(ErrorType$1.NA)),exactlyOnceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_exactlyOnce,ErrorValueObject.create(ErrorType$1.NA)),resultArray=byColArray.map((byColObject,rowIndex,columnIndex)=>{let _byColObject=byColObject,exactlyOnceObject=exactlyOnceArray.get(rowIndex,columnIndex);if(array.isError())return array;if(_byColObject.isString()&&(_byColObject=_byColObject.convertToNumberObjectValue()),_byColObject.isError())return _byColObject;if(exactlyOnceObject.isString()&&(exactlyOnceObject=exactlyOnceObject.convertToNumberObjectValue()),exactlyOnceObject.isError())return exactlyOnceObject;const byColValue=+_byColObject.getValue(),exactlyOnceValue=+exactlyOnceObject.getValue();let result;return!byColValue&&arrayRowCount===1||byColValue&&arrayColumnCount===1?result=array:result=this._getResult(array,byColValue,exactlyOnceValue),(maxRowLength>1||maxColumnLength>1)&&(result!=null&&result.isArray())?result.get(0,0):result});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(array,byColValue,exactlyOnceValue){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;let arrayValue=array.getArrayValue(),arrayRows=arrayRowCount,arrayColumns=arrayColumnCount;byColValue&&(arrayValue=this._transposeArray(arrayValue),arrayRows=arrayColumnCount,arrayColumns=arrayRowCount);const repeatRows=this._getRepeatRows(arrayValue,arrayRows,arrayColumns);if(repeatRows.length>0){const spliceRows=[];repeatRows.forEach(rows=>{rows.forEach((r,index)=>{(index!==0||exactlyOnceValue)&&spliceRows.push(r)})}),arrayValue=arrayValue.filter((row,rowIndex)=>!spliceRows.includes(rowIndex))}return arrayValue.length===0?ErrorValueObject.create(ErrorType$1.CALC):(byColValue&&(arrayValue=this._transposeArray(arrayValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}))}_getRepeatRows(arrayValue,arrayRows,arrayColumns){let repeatRows=[];for(let c=0;c<arrayColumns;c++)if(c===0){const objects=new Array(arrayRows).fill(null).map((item,index)=>({r:index,valueObject:arrayValue[index][c]}));repeatRows=this._getRepeatRowsByObjects(objects)}else{if(repeatRows.length===0)break;let newRepeatRows=[];repeatRows.forEach(item=>{const objects=item.map(r=>({r,valueObject:arrayValue[r][c]})),_repeatRows=this._getRepeatRowsByObjects(objects);newRepeatRows=newRepeatRows.concat(_repeatRows)}),repeatRows=newRepeatRows}return repeatRows}_getRepeatRowsByObjects(objects){const valueMap=new Map;return objects.forEach(item=>{const r=item.r,valueObject=item.valueObject;let value=valueObject.getValue();if(valueObject.isNull()?value=null:valueObject.isString()&&core.isRealNum(value)&&(value=+value),!valueMap.has(value))valueMap.set(value,[r]);else{const valueMapItem=valueMap.get(value);valueMapItem.push(r),valueMap.set(value,valueMapItem)}}),Array.from(valueMap.values()).filter(item=>item.length>1)}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}};__name(_Unique,"Unique");let Unique=_Unique;const _Vlookup=class _Vlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(lookupValue,tableArray,colIndexNum,rangeLookup){if(lookupValue.isError())return lookupValue;if(tableArray.isError())return tableArray;if(!tableArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);if(colIndexNum.isError())return colIndexNum;if(rangeLookup!=null&&rangeLookup.isError())return rangeLookup;const _rangeLookup=rangeLookup!=null?rangeLookup:BooleanValueObject.create(!0);return isSingleValueObject(lookupValue)&&isSingleValueObject(_rangeLookup)&&colIndexNum.isArray()?this._handleArrayColIndexNum(lookupValue,tableArray,colIndexNum,_rangeLookup):this._handleNonArrayColIndexNum(lookupValue,tableArray,colIndexNum,_rangeLookup)}_handleArrayColIndexNum(lookupValue,tableArray,colIndexNum,rangeLookup){const _lookupValue=lookupValue.isArray()?lookupValue.getFirstCell():lookupValue,rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookup);if(rangeLookupValue==null)return ErrorValueObject.create(ErrorType$1.VALUE);let errorValue;const result=[];return colIndexNum.iterator((colIndexNumValueObject,rowIndex,columnIndex)=>{if(colIndexNumValueObject==null)return errorValue=ErrorValueObject.create(ErrorType$1.VALUE),!1;const searchObject=this._handleTableArray(_lookupValue,tableArray,colIndexNumValueObject,rangeLookupValue);if(searchObject.isError())return errorValue=searchObject,!1;result[rowIndex]===void 0&&(result[rowIndex]=[]),result[rowIndex][columnIndex]=searchObject}),errorValue||createNewArray(result,result.length,result[0].length,this.unitId||"",this.subUnitId||"")}_handleNonArrayColIndexNum(lookupValue,tableArray,colIndexNum,rangeLookup){const maxRowLength=Math.max(lookupValue.isArray()?lookupValue.getRowCount():1,rangeLookup.isArray()?rangeLookup.getRowCount():1),maxColumnLength=Math.max(lookupValue.isArray()?lookupValue.getColumnCount():1,rangeLookup.isArray()?rangeLookup.getColumnCount():1),lookupValueArray=expandArrayValueObject(maxRowLength,maxColumnLength,lookupValue),rangeLookupArray=expandArrayValueObject(maxRowLength,maxColumnLength,rangeLookup);return lookupValueArray.map((lookupValue2,rowIndex,columnIndex)=>{if(lookupValue2.isError())return lookupValue2;const rangeLookupValueObject=rangeLookupArray.get(rowIndex,columnIndex);if(rangeLookupValueObject==null)return ErrorValueObject.create(ErrorType$1.VALUE);if(rangeLookupValueObject.isError())return rangeLookupValueObject;const rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookupValueObject);return rangeLookupValue==null?ErrorValueObject.create(ErrorType$1.VALUE):this._handleTableArray(lookupValue2,tableArray,colIndexNum,rangeLookupValue)})}_handleTableArray(lookupValue,tableArray,colIndexNum,rangeLookupValue){let colIndexNumValue=this.getIndexNumValue(colIndexNum);if(colIndexNumValue instanceof ErrorValueObject)return colIndexNumValue;if(colIndexNumValue=Math.floor(colIndexNumValue),colIndexNumValue<1)return ErrorValueObject.create(ErrorType$1.VALUE);const searchArray=tableArray.slice(void 0,[0,1]);if(searchArray==null)return ErrorValueObject.create(ErrorType$1.VALUE);const resultArray=tableArray.slice(void 0,[colIndexNumValue-1,colIndexNumValue]);return resultArray==null?ErrorValueObject.create(ErrorType$1.REF):this._handleSingleObject(lookupValue,searchArray,resultArray,rangeLookupValue)}_handleSingleObject(value,searchArray,resultArray,rangeLookupValue){return rangeLookupValue===0?this.equalSearch(value,searchArray,resultArray):this.binarySearch(value,searchArray,resultArray)}};__name(_Vlookup,"Vlookup");let Vlookup=_Vlookup;const _Vstack=class _Vstack extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const maxColumnLength=Math.max(...variants.map(variantObject=>variantObject.isArray()?variantObject.getColumnCount():1)),result=[];for(let i=0;i<variants.length;i++){const variantObject=variants[i];if(variantObject.isError())return variantObject;const rowCount=variantObject.isArray()?variantObject.getRowCount():1,columnCount=variantObject.isArray()?variantObject.getColumnCount():1;for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<maxColumnLength;c++){let singleObject=variantObject;variantObject.isArray()&&(singleObject=variantObject.get(r,c)),c>columnCount-1||!singleObject?row.push(ErrorValueObject.create(ErrorType$1.NA)):row.push(singleObject)}result.push(row)}}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Vstack,"Vstack");let Vstack=_Vstack;const _Wrapcols=class _Wrapcols extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(vector,wrapCount,padWith){let _padWith=padWith!=null?padWith:ErrorValueObject.create(ErrorType$1.NA);_padWith.isNull()&&(_padWith=ErrorValueObject.create(ErrorType$1.NA));const vectorRowCount=vector.isArray()?vector.getRowCount():1,vectorColumnCount=vector.isArray()?vector.getColumnCount():1,maxRowLength=Math.max(wrapCount.isArray()?wrapCount.getRowCount():1,_padWith.isArray()?_padWith.getRowCount():1),maxColumnLength=Math.max(wrapCount.isArray()?wrapCount.getColumnCount():1,_padWith.isArray()?_padWith.getColumnCount():1),wrapCountArray=expandArrayValueObject(maxRowLength,maxColumnLength,wrapCount,ErrorValueObject.create(ErrorType$1.NA)),padWithArray=expandArrayValueObject(maxRowLength,maxColumnLength,_padWith,ErrorValueObject.create(ErrorType$1.NA)),resultArray=wrapCountArray.mapValue((wrapCountObject,rowIndex,columnIndex)=>{const padWithObject=padWithArray.get(rowIndex,columnIndex);if(vector.isError())return vector;if(vector.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(wrapCountObject.isError())return wrapCountObject;const wrapCountValue=Math.trunc(+wrapCountObject.getValue());if(vectorRowCount>1&&vectorColumnCount>1||Number.isNaN(wrapCountValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(wrapCountValue<1)return ErrorValueObject.create(ErrorType$1.NUM);const vectorArray=vector.isArray()?vector.getArrayValue().flat():[vector],result=this._getWrapArray(vectorArray,wrapCountValue,padWithObject);return maxRowLength>1||maxColumnLength>1||result.length===1&&result[0].length===1?result[0][0]:ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getWrapArray(vectorArray,wrapCount,padWith){const columns=Math.ceil(vectorArray.length/wrapCount),_wrapCount=columns>1?wrapCount:vectorArray.length,result=[];for(let c=0;c<columns;c++)for(let r=0;r<_wrapCount;r++){result[r]||(result[r]=[]);const index=c*_wrapCount+r;index<vectorArray.length?result[r].push(vectorArray[index].isNull()?NumberValueObject.create(0):vectorArray[index]):result[r].push(padWith)}return result}};__name(_Wrapcols,"Wrapcols");let Wrapcols=_Wrapcols;const _Wraprows=class _Wraprows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(vector,wrapCount,padWith){let _padWith=padWith!=null?padWith:ErrorValueObject.create(ErrorType$1.NA);_padWith.isNull()&&(_padWith=ErrorValueObject.create(ErrorType$1.NA));const vectorRowCount=vector.isArray()?vector.getRowCount():1,vectorColumnCount=vector.isArray()?vector.getColumnCount():1,maxRowLength=Math.max(wrapCount.isArray()?wrapCount.getRowCount():1,_padWith.isArray()?_padWith.getRowCount():1),maxColumnLength=Math.max(wrapCount.isArray()?wrapCount.getColumnCount():1,_padWith.isArray()?_padWith.getColumnCount():1),wrapCountArray=expandArrayValueObject(maxRowLength,maxColumnLength,wrapCount,ErrorValueObject.create(ErrorType$1.NA)),padWithArray=expandArrayValueObject(maxRowLength,maxColumnLength,_padWith,ErrorValueObject.create(ErrorType$1.NA)),resultArray=wrapCountArray.mapValue((wrapCountObject,rowIndex,columnIndex)=>{const padWithObject=padWithArray.get(rowIndex,columnIndex);if(vector.isError())return vector;if(vector.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(wrapCountObject.isError())return wrapCountObject;const wrapCountValue=Math.trunc(+wrapCountObject.getValue());if(vectorRowCount>1&&vectorColumnCount>1||Number.isNaN(wrapCountValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(wrapCountValue<1)return ErrorValueObject.create(ErrorType$1.NUM);const vectorArray=vector.isArray()?vector.getArrayValue().flat():[vector],result=this._getWrapArray(vectorArray,wrapCountValue,padWithObject);return maxRowLength>1||maxColumnLength>1||result.length===1&&result[0].length===1?result[0][0]:ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getWrapArray(vectorArray,wrapCount,padWith){const rows=Math.ceil(vectorArray.length/wrapCount),_wrapCount=rows>1?wrapCount:vectorArray.length,result=[];for(let r=0;r<rows;r++){const row=[];for(let c=0;c<_wrapCount;c++){const index=r*_wrapCount+c;index<vectorArray.length?row.push(vectorArray[index].isNull()?NumberValueObject.create(0):vectorArray[index]):row.push(padWith)}result.push(row)}return result}};__name(_Wraprows,"Wraprows");let Wraprows=_Wraprows;const _Xlookup=class _Xlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(lookupValue,lookupArray,returnArray,ifNotFound,matchMode,searchMode){if(lookupValue.isError())return lookupValue;if(lookupArray.isError()||returnArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray()||!returnArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount(),rowCountReturn=returnArray.getRowCount(),columnCountReturn=returnArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1||rowCountLookup===1&&columnCountLookup>1&&columnCountLookup!==columnCountReturn||columnCountLookup===1&&rowCountLookup>1&&rowCountLookup!==rowCountReturn)return ErrorValueObject.create(ErrorType$1.VALUE);if(ifNotFound!=null&&ifNotFound.isError()||matchMode!=null&&matchMode.isError()||searchMode!=null&&searchMode.isError())return ErrorValueObject.create(ErrorType$1.NA);const _ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),matchModeValue=this.getIndexNumValue(matchMode||NumberValueObject.create(0));if(matchModeValue instanceof ErrorValueObject)return matchModeValue;const searchModeValue=this.getIndexNumValue(searchMode||NumberValueObject.create(1));return searchModeValue instanceof ErrorValueObject?searchModeValue:this._getResult(lookupValue,lookupArray,returnArray,_ifNotFound,matchModeValue,searchModeValue,rowCountLookup,columnCountLookup,rowCountReturn,columnCountReturn)}_getResult(lookupValue,lookupArray,returnArray,ifNotFound,matchModeValue,searchModeValue,rowCountLookup,columnCountLookup,rowCountReturn,columnCountReturn){const lookupValueRowCount=lookupValue.isArray()?lookupValue.getRowCount():1,lookupValueColumnCount=lookupValue.isArray()?lookupValue.getColumnCount():1;if(lookupValueRowCount>1||lookupValueColumnCount>1){let resultArray2;return rowCountLookup===1?resultArray2=returnArray.slice([0,1]):resultArray2=returnArray.slice(void 0,[0,1]),resultArray2==null?ErrorValueObject.create(ErrorType$1.NA):lookupValue.map(value=>{const checkErrorCombination=this._checkErrorCombination(matchModeValue,searchModeValue);if(checkErrorCombination)return checkErrorCombination;const result=this._handleSingleObject(value,lookupArray,resultArray2,matchModeValue,searchModeValue);return result.isError()?ifNotFound:result})}const _lookupValue=lookupValue.isArray()?lookupValue.get(0,0):lookupValue;if(columnCountLookup===columnCountReturn&&rowCountLookup===rowCountReturn){const checkErrorCombination=this._checkErrorCombination(matchModeValue,searchModeValue);if(checkErrorCombination)return checkErrorCombination;const result=this._handleSingleObject(_lookupValue,lookupArray,returnArray,matchModeValue,searchModeValue);return result.isError()?ifNotFound:result}let axis=0;columnCountLookup===columnCountReturn&&(axis=1);const resultArray=this._handleExpandObject(_lookupValue,lookupArray,returnArray,matchModeValue,searchModeValue,axis);return resultArray==null?ErrorValueObject.create(ErrorType$1.NA):resultArray}_handleExpandObject(value,searchArray,resultArray,matchModeValue,searchModeValue,axis=0){if((searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2){const searchType=getSearchModeValue(searchModeValue),matchType=getMatchModeValue(matchModeValue);return this.binarySearchExpand(value,searchArray,resultArray,axis,searchType,matchType)}return matchModeValue===2?this.fuzzySearchExpand(value,searchArray,resultArray,searchModeValue!==-1,axis):matchModeValue===-1||matchModeValue===1?this.orderSearchExpand(value,searchArray,resultArray,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1,axis):this.equalSearchExpand(value,searchArray,resultArray,searchModeValue!==-1,axis)}_handleSingleObject(value,searchArray,resultArray,matchModeValue,searchModeValue){if((searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2){const searchType=getSearchModeValue(searchModeValue),matchType=getMatchModeValue(matchModeValue);return this.binarySearch(value,searchArray,resultArray,searchType,matchType)}return matchModeValue===2?this.fuzzySearch(value,searchArray,resultArray,searchModeValue!==-1):matchModeValue===-1||matchModeValue===1?this.orderSearch(value,searchArray,resultArray,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1):this.equalSearch(value,searchArray,resultArray,searchModeValue!==-1)}_checkErrorCombination(matchModeValue,searchModeValue){return matchModeValue===2&&(searchModeValue===-2||searchModeValue===2)?ErrorValueObject.create(ErrorType$1.VALUE):null}};__name(_Xlookup,"Xlookup");let Xlookup=_Xlookup;const _Xmatch=class _Xmatch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(lookupValue,lookupArray,matchMode,searchMode){if(lookupValue.isError())return lookupValue;if(lookupArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1)return ErrorValueObject.create(ErrorType$1.VALUE);if(matchMode!=null&&matchMode.isError()||searchMode!=null&&searchMode.isError())return ErrorValueObject.create(ErrorType$1.NA);const matchModeValue=this.getIndexNumValue(matchMode||NumberValueObject.create(0));if(matchModeValue instanceof ErrorValueObject)return matchModeValue;const searchModeValue=this.getIndexNumValue(searchMode||NumberValueObject.create(1));return searchModeValue instanceof ErrorValueObject?searchModeValue:lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,lookupArray,matchModeValue,searchModeValue)):this._handleSingleObject(lookupValue,lookupArray,matchModeValue,searchModeValue)}_handleSingleObject(value,searchArray,matchModeValue,searchModeValue){let rowOrColumn;if((searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2){const searchType=getSearchModeValue(searchModeValue),matchType=getMatchModeValue(matchModeValue);rowOrColumn=searchArray.binarySearch(value,searchType,matchType)}else if(matchModeValue===2){const matchObject=searchArray.compare(value,compareToken.EQUALS);let position;if(searchModeValue!==-1?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null)return ErrorValueObject.create(ErrorType$1.NA);rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}else if(matchModeValue===-1||matchModeValue===1){const position=searchArray.orderSearch(value,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1);if(position==null)return ErrorValueObject.create(ErrorType$1.NA);if(position instanceof ErrorValueObject)return position;rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}else{const matchObject=searchArray.isEqual(value);let position;if(searchModeValue!==-1?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null)return ErrorValueObject.create(ErrorType$1.NA);rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}return rowOrColumn==null?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(rowOrColumn+1)}};__name(_Xmatch,"Xmatch");let Xmatch=_Xmatch;const functionLookup=[[Address,FUNCTION_NAMES_LOOKUP.ADDRESS],[Areas,FUNCTION_NAMES_LOOKUP.AREAS],[Choose,FUNCTION_NAMES_LOOKUP.CHOOSE],[Choosecols,FUNCTION_NAMES_LOOKUP.CHOOSECOLS],[Chooserows,FUNCTION_NAMES_LOOKUP.CHOOSEROWS],[Column,FUNCTION_NAMES_LOOKUP.COLUMN],[Columns,FUNCTION_NAMES_LOOKUP.COLUMNS],[Drop,FUNCTION_NAMES_LOOKUP.DROP],[Expand,FUNCTION_NAMES_LOOKUP.EXPAND],[Filter,FUNCTION_NAMES_LOOKUP.FILTER],[Hlookup,FUNCTION_NAMES_LOOKUP.HLOOKUP],[Hstack,FUNCTION_NAMES_LOOKUP.HSTACK],[Index,FUNCTION_NAMES_LOOKUP.INDEX],[Indirect,FUNCTION_NAMES_LOOKUP.INDIRECT],[Lookup,FUNCTION_NAMES_LOOKUP.LOOKUP],[Match,FUNCTION_NAMES_LOOKUP.MATCH],[Offset,FUNCTION_NAMES_LOOKUP.OFFSET],[Row,FUNCTION_NAMES_LOOKUP.ROW],[Rows,FUNCTION_NAMES_LOOKUP.ROWS],[Sort,FUNCTION_NAMES_LOOKUP.SORT],[Sortby,FUNCTION_NAMES_LOOKUP.SORTBY],[Take,FUNCTION_NAMES_LOOKUP.TAKE],[Tocol,FUNCTION_NAMES_LOOKUP.TOCOL],[Torow,FUNCTION_NAMES_LOOKUP.TOROW],[Transpose,FUNCTION_NAMES_LOOKUP.TRANSPOSE],[Unique,FUNCTION_NAMES_LOOKUP.UNIQUE],[Vlookup,FUNCTION_NAMES_LOOKUP.VLOOKUP],[Vstack,FUNCTION_NAMES_LOOKUP.VSTACK],[Wrapcols,FUNCTION_NAMES_LOOKUP.WRAPCOLS],[Wraprows,FUNCTION_NAMES_LOOKUP.WRAPROWS],[Xlookup,FUNCTION_NAMES_LOOKUP.XLOOKUP],[Xmatch,FUNCTION_NAMES_LOOKUP.XMATCH]],_Abs=class _Abs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.abs()}};__name(_Abs,"Abs");let Abs=_Abs;const _Acos=class _Acos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.acos()}};__name(_Acos,"Acos");let Acos=_Acos;const _Acosh=class _Acosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.acosh()}};__name(_Acosh,"Acosh");let Acosh=_Acosh;const _Acot=class _Acot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.isArray()?_variant.map(currentValue=>currentValue.isError()?currentValue:acot(currentValue)):acot(_variant)}};__name(_Acot,"Acot");let Acot=_Acot;function acot(num){let currentValue=num.getValue();if(num.isBoolean()&&(currentValue=currentValue?1:0),!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.VALUE);currentValue=Number(currentValue);let result=Math.atan(1/currentValue);return currentValue<0&&(result+=Math.PI),Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}__name(acot,"acot");const _Acoth=class _Acoth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.isArray()?_variant.map(currentValue=>currentValue.isError()?currentValue:acoth(currentValue)):acoth(_variant)}};__name(_Acoth,"Acoth");let Acoth=_Acoth;function acoth(num){let currentValue=num.getValue();if(num.isBoolean()&&(currentValue=currentValue?1:0),!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(currentValue=Number(currentValue),Math.abs(currentValue)<=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=1/2*Math.log((currentValue+1)/(currentValue-1));return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}__name(acoth,"acoth");const _Arabic=class _Arabic extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){if(text.isArray()){const resultArray=text.mapValue(textObject=>this._handleSingleObject(textObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(text)}_handleSingleObject(text){if(text.isError())return text;if(text.isNull())return NumberValueObject.create(0);if(text.isBoolean()||text.isNumber())return ErrorValueObject.create(ErrorType$1.VALUE);let textValue=text.getValue().toLocaleString().toLocaleUpperCase();if(textValue.length>255)return ErrorValueObject.create(ErrorType$1.VALUE);const isNegtive=textValue.startsWith("-");isNegtive&&(textValue=textValue.slice(1));let result=0;for(let i=0;i<textValue.length;i++){const currentCharValue=romanToArabicMap.get(textValue[i])||0,nextCharValue=romanToArabicMap.get(textValue[i+1])||0,nextnextCharValue=romanToArabicMap.get(textValue[i+2])||0,nextnextnextCharValue=romanToArabicMap.get(textValue[i+3])||0;if(!currentCharValue||nextnextCharValue>=nextCharValue&&nextnextCharValue>currentCharValue||currentCharValue===nextCharValue&¤tCharValue===nextnextCharValue&¤tCharValue===nextnextnextCharValue||currentCharValue===nextCharValue/2)return ErrorValueObject.create(ErrorType$1.VALUE);currentCharValue<nextCharValue?result-=currentCharValue:result+=currentCharValue}return NumberValueObject.create(isNegtive?-result:result)}};__name(_Arabic,"Arabic");let Arabic=_Arabic;const _Asin=class _Asin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.asin()}};__name(_Asin,"Asin");let Asin=_Asin;const _Asinh=class _Asinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.asinh()}};__name(_Asinh,"Asinh");let Asinh=_Asinh;const _Atan=class _Atan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.atan()}};__name(_Atan,"Atan");let Atan=_Atan;const _Atan2=class _Atan2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(xNum,yNum){let _xNum=xNum,_yNum=yNum;return _xNum.isString()&&(_xNum=_xNum.convertToNumberObjectValue()),_xNum.isError()?_xNum:(_yNum.isString()&&(_yNum=_yNum.convertToNumberObjectValue()),_yNum.isError()?_yNum:_yNum.atan2(_xNum))}};__name(_Atan2,"Atan2");let Atan2=_Atan2;const _Atanh=class _Atanh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.atanh()}};__name(_Atanh,"Atanh");let Atanh=_Atanh;const _Base=class _Base extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(number,radix,minLength){const _minLength=minLength!=null?minLength:NumberValueObject.create(0);if(number.isError())return number;if(radix.isError())return radix;if(_minLength.isError())return _minLength;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,radix.isArray()?radix.getRowCount():1,_minLength.isArray()?_minLength.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,radix.isArray()?radix.getColumnCount():1,_minLength.isArray()?_minLength.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),radixArray=expandArrayValueObject(maxRowLength,maxColumnLength,radix,ErrorValueObject.create(ErrorType$1.NA)),minLengthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_minLength,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const radixObject=radixArray.get(rowIndex,columnIndex),minLengthObject=minLengthArray.get(rowIndex,columnIndex);return this._handleSingleObject(numberObject,radixObject,minLengthObject)});return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.getArrayValue()[0][0]:resultArray}_handleSingleObject(numberObject,radixObject,minLengthObject){let _numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;let _radixObject=radixObject;if(_radixObject.isString()&&(_radixObject=_radixObject.convertToNumberObjectValue()),_radixObject.isError())return _radixObject;let _minLengthObject=minLengthObject;if(_minLengthObject.isString()&&(_minLengthObject=_minLengthObject.convertToNumberObjectValue()),_minLengthObject.isError())return _minLengthObject;const numberValue=Math.floor(+_numberObject.getValue()),radixValue=Math.floor(+_radixObject.getValue()),minLengthValue=Math.floor(+_minLengthObject.getValue());if(numberValue<0||numberValue>=2**53||radixValue<2||radixValue>36||minLengthValue<0)return ErrorValueObject.create(ErrorType$1.NUM);let result=numberValue.toString(radixValue);return result.length<minLengthValue&&(result=new Array(minLengthValue-result.length+1).join("0")+result),StringValueObject.create(result.toLocaleUpperCase())}};__name(_Base,"Base");let Base=_Base;const _Ceiling=class _Ceiling extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,significance){if(number.isError())return number;if(significance.isError())return significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,significance.isArray()?significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,significance.isArray()?significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue>0&&significanceValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=ceil(numberValue/significanceValue,0)*significanceValue;return NumberValueObject.create(result)});return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.getArrayValue()[0][0]:resultArray}};__name(_Ceiling,"Ceiling");let Ceiling=_Ceiling;const _CeilingMath=class _CeilingMath extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(number,significance,mode){const _significance=significance!=null?significance:NumberValueObject.create(1),_mode=mode!=null?mode:NumberValueObject.create(0);if(number.isError())return number;if(_significance.isError())return _significance;if(_mode.isError())return _mode;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1,_mode.isArray()?_mode.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1,_mode.isArray()?_mode.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),modeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_mode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex),modeObject=modeArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;if(modeObject.isString()&&(modeObject=modeObject.convertToNumberObjectValue()),modeObject.isError())return modeObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue(),modeValue=+modeObject.getValue();return numberValue===0||significanceValue===0?NumberValueObject.create(0):this._getResult(numberValue,significanceValue,modeValue)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(numberValue,significanceValue,modeValue){let result;return numberValue<0&&modeValue!==0?result=(significanceValue<0?ceil(Math.abs(numberValue)/Math.abs(significanceValue),0):-ceil(Math.abs(numberValue)/significanceValue,0))*significanceValue:result=(significanceValue<0?-ceil(numberValue/Math.abs(significanceValue),0):ceil(numberValue/significanceValue,0))*significanceValue,NumberValueObject.create(result)}};__name(_CeilingMath,"CeilingMath");let CeilingMath=_CeilingMath;const _CeilingPrecise=class _CeilingPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,significance){const _significance=significance!=null?significance:NumberValueObject.create(1);if(number.isError())return number;if(_significance.isError())return _significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=(significanceValue<0?-ceil(numberValue/Math.abs(significanceValue),0):ceil(numberValue/significanceValue,0))*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_CeilingPrecise,"CeilingPrecise");let CeilingPrecise=_CeilingPrecise;const _Combin=class _Combin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numberChosen){const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,numberChosen.isArray()?numberChosen.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,numberChosen.isArray()?numberChosen.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),numberChosenArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberChosen,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.mapValue((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,numberChosenObject=numberChosenArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),numberChosenObject.isString()&&(numberChosenObject=numberChosenObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(numberChosenObject.isError())return numberChosenObject;const numberValue=Math.floor(+_numberObject.getValue()),numberChosenValue=Math.floor(+numberChosenObject.getValue());if(numberValue<0||numberChosenValue<0||numberValue<numberChosenValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCombin(numberValue,numberChosenValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Combin,"Combin");let Combin=_Combin;const _Combina=class _Combina extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numberChosen){const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,numberChosen.isArray()?numberChosen.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,numberChosen.isArray()?numberChosen.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),numberChosenArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberChosen,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.mapValue((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,numberChosenObject=numberChosenArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),numberChosenObject.isString()&&(numberChosenObject=numberChosenObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(numberChosenObject.isError())return numberChosenObject;const numberValue=Math.floor(+_numberObject.getValue()),numberChosenValue=Math.floor(+numberChosenObject.getValue());if(numberValue<0||numberChosenValue<0||numberValue===0&&numberValue<numberChosenValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCombin(numberValue+numberChosenValue-1,numberValue-1);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Combina,"Combina");let Combina=_Combina;const _Cos=class _Cos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.cos()}};__name(_Cos,"Cos");let Cos=_Cos;const _Cosh=class _Cosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;return _number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError()?_number:_number.cosh()}};__name(_Cosh,"Cosh");let Cosh=_Cosh;const _Cot=class _Cot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.tan().getReciprocal()}};__name(_Cot,"Cot");let Cot=_Cot;const _Coth=class _Coth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;return numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError()?numberObject:+numberObject.getValue()===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.tanh().getReciprocal()}};__name(_Coth,"Coth");let Coth=_Coth;const _Csc=class _Csc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.sin().getReciprocal()}};__name(_Csc,"Csc");let Csc=_Csc;const _Csch=class _Csch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):!Number.isNaN(numberValue)&&!Number.isFinite(Math.sinh(numberValue))?NumberValueObject.create(0):numberObject.sinh().getReciprocal()}};__name(_Csch,"Csch");let Csch=_Csch;const _Decimal=class _Decimal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,radix){if(text.isError())return text;if(radix.isError())return radix;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,radix.isArray()?radix.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,radix.isArray()?radix.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),radixArray=expandArrayValueObject(maxRowLength,maxColumnLength,radix,ErrorValueObject.create(ErrorType$1.NA)),resultArray=textArray.map((textObject,rowIndex,columnIndex)=>{if(textObject.isError())return textObject;let radixObject=radixArray.get(rowIndex,columnIndex);if(radixObject.isString()&&(radixObject=radixObject.convertToNumberObjectValue()),radixObject.isError())return radixObject;const textValue=`${textObject.getValue()}`,radixValue=Math.floor(+radixObject.getValue());if(core.isRealNum(textValue)&&(+textValue<0||+textValue>=2**53||!Number.isInteger(+textValue))||textValue.toLocaleLowerCase()==="true"||textValue.toLocaleLowerCase()==="false"||radixValue<2||radixValue>36)return ErrorValueObject.create(ErrorType$1.NUM);if(textValue.replace(/\s/g,"")==="")return NumberValueObject.create(0);if(!this._isValidCharForRadix(textValue,radixValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Number.parseInt(textValue,radixValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_isValidCharForRadix(text,radix){for(const char of text){const charCode=char.toUpperCase().charCodeAt(0);if(radix<=10&&!(charCode>=48&&charCode<48+radix)||radix>10&&!(charCode>=48&&charCode<58||charCode>=65&&charCode<65+radix-10))return!1}return!0}};__name(_Decimal,"Decimal");let Decimal=_Decimal;const _Degrees=class _Degrees extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(angle){return angle.isArray()?angle.map(angleObject=>this._handleSingleObject(angleObject)):this._handleSingleObject(angle)}_handleSingleObject(angle){let angleObject=angle;if(angleObject.isString()&&(angleObject=angleObject.convertToNumberObjectValue()),angleObject.isError())return angleObject;const angleValue=+angleObject.getValue();if(!Number.isFinite(angleValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=angleValue*(180/Math.PI);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}};__name(_Degrees,"Degrees");let Degrees=_Degrees;const _Even=class _Even extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();if(!Number.isFinite(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=(numberValue<0?-ceil(Math.abs(numberValue)/2,0):ceil(numberValue/2,0))*2;return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):result===0?NumberValueObject.create(0):NumberValueObject.create(result)}};__name(_Even,"Even");let Even=_Even;const _Exp=class _Exp extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.exp()}};__name(_Exp,"Exp");let Exp=_Exp;const _Fact=class _Fact extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.mapValue(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=Math.floor(+_number.getValue()),result=calculateFactorial(numberValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Fact,"Fact");let Fact=_Fact;const _Factdouble=class _Factdouble extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;if(number.isArray()){const rowCount=number.getRowCount(),columnCount=number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=number.get(0,0)}return this._handleSingleObject(_number)}_handleSingleObject(number){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=Math.floor(+_number.getValue()),result=calculateFactorial(numberValue,2);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Factdouble,"Factdouble");let Factdouble=_Factdouble;const _Floor=class _Floor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,significance){if(number.isError())return number;if(significance.isError())return significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,significance.isArray()?significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,significance.isArray()?significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue>0&&significanceValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(numberValue===0)return NumberValueObject.create(0);if(significanceValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=floor(numberValue/significanceValue,0)*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Floor,"Floor");let Floor=_Floor;const _FloorMath=class _FloorMath extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(number,significance,mode){const _significance=significance!=null?significance:NumberValueObject.create(1),_mode=mode!=null?mode:NumberValueObject.create(0),maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1,_mode.isArray()?_mode.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1,_mode.isArray()?_mode.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),modeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_mode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex),modeObject=modeArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;if(modeObject.isString()&&(modeObject=modeObject.convertToNumberObjectValue()),modeObject.isError())return modeObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue(),modeValue=+modeObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);let result;return numberValue<0&&modeValue!==0?result=(significanceValue<0?floor(Math.abs(numberValue)/Math.abs(significanceValue),0):-floor(Math.abs(numberValue)/significanceValue,0))*significanceValue:result=(significanceValue<0?-floor(numberValue/Math.abs(significanceValue),0):floor(numberValue/significanceValue,0))*significanceValue,NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_FloorMath,"FloorMath");let FloorMath=_FloorMath;const _FloorPrecise=class _FloorPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,significance){const _significance=significance!=null?significance:NumberValueObject.create(1);if(number.isError())return number;if(_significance.isError())return _significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=(significanceValue<0?-floor(numberValue/Math.abs(significanceValue),0):floor(numberValue/significanceValue,0))*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_FloorPrecise,"FloorPrecise");let FloorPrecise=_FloorPrecise;const _Gcd=class _Gcd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let result=0;for(let i=0;i<variants.length;i++){const variant=variants[i];if(!variant.isNull())if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(valueObject=>{if(valueObject!=null&&valueObject.isNull())return!0;const{isError:_isError,errorObject:_errorObject,number}=this._handleSingleObject(valueObject);if(_isError)return isError=!0,errorObject=_errorObject,!1;result=calculateGcd(result,number)}),isError)return errorObject}else{const{isError,errorObject,number}=this._handleSingleObject(variant);if(isError)return errorObject;result=calculateGcd(result,number)}}return NumberValueObject.create(result)}_handleSingleObject(number){if(number.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),number:null};let _number=number;if(number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return{isError:!0,errorObject:_number,number:null};const numberValue=Math.floor(+_number.getValue());return numberValue<0||numberValue>=2**53?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.NUM),number:null}:{isError:!1,errorObject:null,number:numberValue}}};__name(_Gcd,"Gcd");let Gcd=_Gcd;const _Int=class _Int extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.mapValue(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=Math.floor(+_number.getValue());return NumberValueObject.create(numberValue)}};__name(_Int,"Int");let Int=_Int;const _Lcm=class _Lcm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let result=1,noCalculate=!0;for(let i=0;i<variants.length;i++){const variant=variants[i];if(!variant.isNull())if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(valueObject=>{if(valueObject!=null&&valueObject.isNull())return!0;const{isError:_isError,errorObject:_errorObject,number}=this._handleSingleObject(valueObject);if(_isError)return isError=!0,errorObject=_errorObject,!1;result=calculateLcm(result,number),noCalculate=!1}),isError)return errorObject}else{const{isError,errorObject,number}=this._handleSingleObject(variant);if(isError)return errorObject;result=calculateLcm(result,number),noCalculate=!1}}return noCalculate?NumberValueObject.create(0):Number.isNaN(result)||!Number.isFinite(result)||result>=2**53?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}_handleSingleObject(number){if(number.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),number:null};let _number=number;if(number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return{isError:!0,errorObject:_number,number:null};const numberValue=Math.floor(+_number.getValue());return numberValue<0?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.NUM),number:null}:{isError:!1,errorObject:null,number:numberValue}}};__name(_Lcm,"Lcm");let Lcm=_Lcm;const _Ln=class _Ln extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.log()}};__name(_Ln,"Ln");let Ln=_Ln;const _Log=class _Log extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,base){const _base=base!=null?base:NumberValueObject.create(10);if(number.isError())return number;if(_base.isError())return _base;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_base.isArray()?_base.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_base.isArray()?_base.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),baseArray=expandArrayValueObject(maxRowLength,maxColumnLength,_base,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let baseObject=baseArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(baseObject.isString()&&(baseObject=baseObject.convertToNumberObjectValue()),baseObject.isError())return baseObject;const numberValue=+_numberObject.getValue(),baseValue=+baseObject.getValue();if(numberValue<=0||baseValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);const baseLog=Math.log(baseValue);if(baseLog===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.log(numberValue)/baseLog;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Log,"Log");let Log=_Log;const _Log10=class _Log10 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.log10()}};__name(_Log10,"Log10");let Log10=_Log10;const _Mdeterm=class _Mdeterm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(array){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,matrix=[];for(let r=0;r<arrayRowCount;r++){const row=[];for(let c=0;c<arrayColumnCount;c++){let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return valueObject;if(valueObject.isNull()||valueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);if(valueObject.isString()&&(valueObject=valueObject.convertToNumberObjectValue()),valueObject.isError())return valueObject;const value=+valueObject.getValue();row.push(value)}matrix.push(row)}if(arrayRowCount!==arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);const result=calculateMdeterm(matrix);return NumberValueObject.create(result)}};__name(_Mdeterm,"Mdeterm");let Mdeterm=_Mdeterm;const _Minverse=class _Minverse extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(array){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,matrix=[];for(let r=0;r<arrayRowCount;r++){const row=[];for(let c=0;c<arrayColumnCount;c++){let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return valueObject;if(valueObject.isNull()||valueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);if(valueObject.isString()&&(valueObject=valueObject.convertToNumberObjectValue()),valueObject.isError())return valueObject;const value=+valueObject.getValue();row.push(value)}matrix.push(row)}if(arrayRowCount!==arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);const result=calculateMinverse(matrix);return result===null?ErrorValueObject.create(ErrorType$1.NUM):ArrayValueObject.createByArray(result)}};__name(_Minverse,"Minverse");let Minverse=_Minverse;const _Mmult=class _Mmult extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const array1RowCount=array1.isArray()?array1.getRowCount():1,array1ColumnCount=array1.isArray()?array1.getColumnCount():1,array2RowCount=array2.isArray()?array2.getRowCount():1,array2ColumnCount=array2.isArray()?array2.getColumnCount():1;if(array1ColumnCount!==array2RowCount)return ErrorValueObject.create(ErrorType$1.VALUE);const matrix1=this._getMatrix(array1,array1RowCount,array1ColumnCount),matrix2=this._getMatrix(array2,array2RowCount,array2ColumnCount);if(matrix1 instanceof ErrorValueObject)return matrix1;if(matrix2 instanceof ErrorValueObject)return matrix2;const result=this._getResult(matrix1,matrix2,array1RowCount,array1ColumnCount,array2ColumnCount);return ArrayValueObject.createByArray(result)}_getMatrix(array,rowCount,columnCount){const matrix=[];for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return valueObject;if(valueObject.isNull()||valueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);if(valueObject.isString()&&(valueObject=valueObject.convertToNumberObjectValue()),valueObject.isError())return valueObject;const value=+valueObject.getValue();row.push(value)}matrix.push(row)}return matrix}_getResult(matrix1,matrix2,array1RowCount,array1ColumnCount,array2ColumnCount){const result=Array.from({length:array1RowCount},()=>new Array(array2ColumnCount).fill(0));for(let r=0;r<array1RowCount;r++)for(let c=0;c<array2ColumnCount;c++){let value=0;for(let k=0;k<array1ColumnCount;k++)value+=matrix1[r][k]*matrix2[k][c];result[r][c]=value}return result}};__name(_Mmult,"Mmult");let Mmult=_Mmult;const _Mod=class _Mod extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,divisor){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _divisor=divisor;return _divisor.isString()&&(_divisor=_divisor.convertToNumberObjectValue()),_divisor.isError()?_divisor:_number.mod(_divisor)}};__name(_Mod,"Mod");let Mod=_Mod;const _Mround=class _Mround extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,multiple){let _number=number;if(_number.isArray()){const rowCount=_number.getRowCount(),columnCount=_number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=_number.get(0,0)}if(_number.isError())return _number;let _multiple=multiple;if(_multiple.isArray()){const rowCount=_multiple.getRowCount(),columnCount=_multiple.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_multiple=_multiple.get(0,0)}if(_multiple.isError())return _multiple;if(_number.isBoolean()||_multiple.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const numberValue=+_number.getValue(),multipleValue=+_multiple.getValue();if(Number.isNaN(numberValue)||Number.isNaN(multipleValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(multipleValue===0)return NumberValueObject.create(0);if(numberValue>0&&multipleValue<0||numberValue<0&&multipleValue>0)return ErrorValueObject.create(ErrorType$1.NUM);const result=round(numberValue/multipleValue,0)*multipleValue;return NumberValueObject.create(result)}};__name(_Mround,"Mround");let Mround=_Mround;const _Multinomial=class _Multinomial extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let sum2=0,den=1;for(let i=0;i<variants.length;i++){const variant=variants[i];if(!variant.isNull())if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(valueObject=>{if(valueObject!=null&&valueObject.isNull())return!0;const{isError:_isError,errorObject:_errorObject,number}=this._handleSingleObject(valueObject);if(_isError)return isError=!0,errorObject=_errorObject,!1;if(sum2+=number,sum2>170)return isError=!0,errorObject=ErrorValueObject.create(ErrorType$1.NUM),!1;den*=calculateFactorial(number)}),isError)return errorObject}else{const{isError,errorObject,number}=this._handleSingleObject(variant);if(isError)return errorObject;if(sum2+=number,sum2>170)return ErrorValueObject.create(ErrorType$1.NUM);den*=calculateFactorial(number)}}const result=calculateFactorial(sum2)/den;return NumberValueObject.create(result)}_handleSingleObject(number){if(number.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),number:null};let _number=number;if(number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return{isError:!0,errorObject:_number,number:null};const numberValue=Math.floor(+_number.getValue());return numberValue<0?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.NUM),number:null}:{isError:!1,errorObject:null,number:numberValue}}};__name(_Multinomial,"Multinomial");let Multinomial=_Multinomial;const _Munit=class _Munit extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(dimension){if(dimension.isArray()){const rowCount=dimension.getRowCount(),columnCount=dimension.getColumnCount(),resultArray=dimension.mapValue(dimensionObject=>{const result=this._handleSingleObject(dimensionObject);return result.isError()?result:rowCount>1||columnCount>1?result.get(0,0):result});return rowCount===1&&columnCount===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(dimension)}_handleSingleObject(dimension){let _dimension=dimension;if(_dimension.isString()&&(_dimension=_dimension.convertToNumberObjectValue()),_dimension.isError())return _dimension;const dimensionValue=Math.floor(+_dimension.getValue());if(dimensionValue<=0)return ErrorValueObject.create(ErrorType$1.VALUE);const result=[];for(let r=0;r<dimensionValue;r++){result[r]=[];for(let c=0;c<dimensionValue;c++)result[r][c]=r===c?1:0}return ArrayValueObject.createByArray(result)}};__name(_Munit,"Munit");let Munit=_Munit;const _Odd=class _Odd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();if(!Number.isFinite(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);let result=numberValue<0?-ceil(Math.abs(numberValue),0):ceil(numberValue,0);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):(Math.abs(result)%2===0&&(numberValue<0?result--:result++),NumberValueObject.create(result))}};__name(_Odd,"Odd");let Odd=_Odd;const _Pi=class _Pi extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return NumberValueObject.create(Math.PI)}};__name(_Pi,"Pi");let Pi=_Pi;const _Power=class _Power extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,power){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _power=power;return _power.isString()&&(_power=_power.convertToNumberObjectValue()),_power.isError()?_power:_number.pow(_power)}};__name(_Power,"Power");let Power=_Power;const _Product=class _Product extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(1);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=this._multiplyArray(variant)),variant.isError())return variant;if(accumulatorAll=accumulatorAll.multiply(variant),accumulatorAll.isError())return accumulatorAll}}return accumulatorAll}_multiplyArray(array){let result=NumberValueObject.create(1);return array.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return result=valueObject,!1;result=result.multiply(valueObject)}),result}};__name(_Product,"Product");let Product=_Product;const _Quotient=class _Quotient extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(numerator,denominator){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(numerator,denominator);if(isError)return errorObject;const[numeratorObject,denominatorObject]=variants,numeratorValue=+numeratorObject.getValue(),denominatorValue=+denominatorObject.getValue();if(Number.isNaN(numeratorValue)||Number.isNaN(denominatorValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(denominatorValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.trunc(numeratorValue/denominatorValue);return NumberValueObject.create(result)}};__name(_Quotient,"Quotient");let Quotient=_Quotient;const _Radians=class _Radians extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(angle){return angle.isArray()?angle.map(angleObject=>this._handleSingleObject(angleObject)):this._handleSingleObject(angle)}_handleSingleObject(angle){let angleObject=angle;if(angleObject.isString()&&(angleObject=angleObject.convertToNumberObjectValue()),angleObject.isError())return angleObject;const angleValue=+angleObject.getValue();if(!Number.isFinite(angleValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=angleValue*(Math.PI/180);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}};__name(_Radians,"Radians");let Radians=_Radians;const _Rand=class _Rand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return NumberValueObject.create(Math.random())}};__name(_Rand,"Rand");let Rand=_Rand;const _Randarray=class _Randarray extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",5)}calculate(rows,columns,min2,max2,wholeNumber){if(rows!=null&&rows.isError())return rows;if(columns!=null&&columns.isError())return columns;if(min2!=null&&min2.isError())return min2;if(max2!=null&&max2.isError())return max2;if(wholeNumber!=null&&wholeNumber.isError())return wholeNumber;const _rows=rows!=null?rows:NumberValueObject.create(1),_columns=columns!=null?columns:NumberValueObject.create(1),_min=min2!=null?min2:NumberValueObject.create(0),_max=max2!=null?max2:NumberValueObject.create(1),_wholeNumber=wholeNumber!=null?wholeNumber:NumberValueObject.create(0);return this._calculateResult(_rows,_columns,_min,_max,_wholeNumber)}_calculateResult(rows,columns,min2,max2,wholeNumber){const maxRowLength=Math.max(rows.isArray()?rows.getRowCount():1,columns.isArray()?columns.getRowCount():1,min2.isArray()?min2.getRowCount():1,max2.isArray()?max2.getRowCount():1,wholeNumber.isArray()?wholeNumber.getRowCount():1),maxColumnLength=Math.max(rows.isArray()?rows.getColumnCount():1,columns.isArray()?columns.getColumnCount():1,min2.isArray()?min2.getColumnCount():1,max2.isArray()?max2.getColumnCount():1,wholeNumber.isArray()?wholeNumber.getColumnCount():1);if(maxRowLength===1&&maxColumnLength===1)return this._calculateSingleCell(rows,columns,min2,max2,wholeNumber);const rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,columns,ErrorValueObject.create(ErrorType$1.NA)),minArray=expandArrayValueObject(maxRowLength,maxColumnLength,min2,ErrorValueObject.create(ErrorType$1.NA)),maxArray=expandArrayValueObject(maxRowLength,maxColumnLength,max2,ErrorValueObject.create(ErrorType$1.NA)),wholeNumberArray=expandArrayValueObject(maxRowLength,maxColumnLength,wholeNumber,ErrorValueObject.create(ErrorType$1.NA));return rowsArray.map((rowsObject,rowIndex,columnIndex)=>{const columnsObject=columnsArray.get(rowIndex,columnIndex),minObject=minArray.get(rowIndex,columnIndex),maxObject=maxArray.get(rowIndex,columnIndex),wholeNumberObject=wholeNumberArray.get(rowIndex,columnIndex),_handleError=this._handleError(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject);if(_handleError.errorObject)return _handleError.errorObject;let{minValue,maxValue,wholeNumberValue}=_handleError,result;return wholeNumberValue?(minValue=Math.ceil(minValue),maxValue=Math.floor(maxValue),result=Math.floor(Math.random()*(maxValue-minValue+1))+minValue):result=Math.random()*(maxValue-minValue)+minValue,result<minValue||result>maxValue?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)})}_calculateSingleCell(rows,columns,min2,max2,wholeNumber){let _rows=rows;_rows.isArray()&&(_rows=_rows.get(0,0));let _columns=columns;_columns.isArray()&&(_columns=_columns.get(0,0));let _min=min2;_min.isArray()&&(_min=_min.get(0,0));let _max=max2;_max.isArray()&&(_max=_max.get(0,0));let _wholeNumber=wholeNumber;_wholeNumber.isArray()&&(_wholeNumber=_wholeNumber.get(0,0));const _handleError=this._handleError(_rows,_columns,_min,_max,_wholeNumber);if(_handleError.errorObject)return _handleError.errorObject;let{rowsValue,columnsValue,minValue,maxValue,wholeNumberValue}=_handleError;if(wholeNumberValue&&(minValue=Math.ceil(minValue),maxValue=Math.floor(maxValue),minValue>maxValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=[];for(let r=0;r<rowsValue;r++){const row=[];for(let c=0;c<columnsValue;c++)wholeNumberValue?row.push(Math.floor(Math.random()*(maxValue-minValue+1))+minValue):row.push(Math.random()*(maxValue-minValue)+minValue);result.push(row)}return rowsValue===1&&columnsValue===1?NumberValueObject.create(result[0][0]):ArrayValueObject.createByArray(result)}_handleError(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject){let _rowsObject=rowsObject;if(_rowsObject.isString()&&(_rowsObject=_rowsObject.convertToNumberObjectValue()),_rowsObject.isError())return{errorObject:_rowsObject};let _columnsObject=columnsObject;if(_columnsObject.isString()&&(_columnsObject=_columnsObject.convertToNumberObjectValue()),_columnsObject.isError())return{errorObject:_columnsObject};let _minObject=minObject;if(_minObject.isString()&&(_minObject=_minObject.convertToNumberObjectValue()),_minObject.isError())return{errorObject:_minObject};let _maxObject=maxObject;if(_maxObject.isString()&&(_maxObject=_maxObject.convertToNumberObjectValue()),_maxObject.isError())return{errorObject:_maxObject};let _wholeNumberObject=wholeNumberObject;return _wholeNumberObject.isString()&&(_wholeNumberObject=_wholeNumberObject.convertToNumberObjectValue()),_wholeNumberObject.isError()?{errorObject:_wholeNumberObject}:this._getValue(_rowsObject,_columnsObject,_minObject,_maxObject,_wholeNumberObject)}_getValue(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject){const rowsValue=Math.floor(+rowsObject.getValue()),columnsValue=Math.floor(+columnsObject.getValue());if(rowsValue===0||columnsValue===0)return{errorObject:ErrorValueObject.create(ErrorType$1.CALC)};if(rowsValue<0||columnsValue<0)return{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};const minValue=+minObject.getValue(),maxValue=+maxObject.getValue(),wholeNumberValue=+wholeNumberObject.getValue();return minValue>maxValue?{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:wholeNumberValue&&(!Number.isInteger(minValue)||!Number.isInteger(maxValue))?{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:{rowsValue,columnsValue,minValue,maxValue,wholeNumberValue}}};__name(_Randarray,"Randarray");let Randarray=_Randarray;const _Randbetween=class _Randbetween extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(bottom,top){let _bottom=bottom;if(_bottom.isArray()){const rowCount=_bottom.getRowCount(),columnCount=_bottom.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_bottom=_bottom.get(0,0)}if(_bottom.isError())return _bottom;let _top=top;if(_top.isArray()){const rowCount=_top.getRowCount(),columnCount=_top.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_top=_top.get(0,0)}if(_top.isError())return _top;if(_bottom.isBoolean()||_top.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);let bottomValue=+_bottom.getValue(),topValue=+_top.getValue();if(Number.isNaN(bottomValue)||Number.isNaN(topValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(bottomValue>topValue)return ErrorValueObject.create(ErrorType$1.NUM);bottomValue=Math.ceil(bottomValue),topValue=Math.floor(topValue);const result=Math.floor(Math.random()*(topValue-bottomValue+1))+bottomValue;return NumberValueObject.create(result)}};__name(_Randbetween,"Randbetween");let Randbetween=_Randbetween;const _Roman=class _Roman extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,form){const _form=form!=null?form:NumberValueObject.create(0),maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_form.isArray()?_form.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_form.isArray()?_form.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),formArray=expandArrayValueObject(maxRowLength,maxColumnLength,_form,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.mapValue((numberObject,rowIndex,columnIndex)=>{const formObject=formArray.get(rowIndex,columnIndex);return numberObject.isError()?numberObject:formObject.isError()?formObject:this._handleSingleObject(numberObject,formObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(number,form){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(number);if(isError)return errorObject;const[numberObject]=variants;let numberValue=Math.floor(+numberObject.getValue()),_form=form;if(_form.isString()&&(_form=_form.convertToNumberObjectValue(),_form.isError()))return _form;let formValue=Math.floor(+_form.getValue());if(_form.isBoolean()&&(formValue=_form.getValue()?0:4),numberValue<0||numberValue>3999||formValue<0||formValue>4)return ErrorValueObject.create(ErrorType$1.VALUE);const formArray=romanFormArray[formValue];let index=formArray.length-1,result="";for(;numberValue>0;){index=this._binarySearch(numberValue,0,index,formArray);const number2=formArray[index];numberValue-=number2,result+=arabicToRomanMap.get(number2)}return StringValueObject.create(result)}_binarySearch(target,left,right,array){let _left=left,_right=right;for(;_right-_left>1;){const mid=Math.floor((_left+_right)/2),midValue=array[mid];if(midValue===target)return mid;midValue>target?_right=mid:_left=mid}return _left!==_right&&array[_right]<=target?_right:_left}};__name(_Roman,"Roman");let Roman=_Roman;const _Round=class _Round extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.round(_numDigits)}};__name(_Round,"Round");let Round=_Round;const _Rounddown=class _Rounddown extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.floor(_numDigits)}};__name(_Rounddown,"Rounddown");let Rounddown=_Rounddown;const _Roundup=class _Roundup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.ceil(_numDigits)}};__name(_Roundup,"Roundup");let Roundup=_Roundup;const _Sec=class _Sec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberObject.cos().getReciprocal()}};__name(_Sec,"Sec");let Sec=_Sec;const _Sech=class _Sech extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Number.isFinite(Math.cosh(numberValue))?Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberObject.cosh().getReciprocal():NumberValueObject.create(0)}};__name(_Sech,"Sech");let Sech=_Sech;const _Sequence=class _Sequence extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4)}calculate(rows,columns,start,step){let _rows=rows,_columns=columns!=null?columns:NumberValueObject.create(1),_start=start!=null?start:NumberValueObject.create(1),_step=step!=null?step:NumberValueObject.create(1);_rows.isNull()&&(_rows=NumberValueObject.create(1)),_columns.isNull()&&(_columns=NumberValueObject.create(1)),_start.isNull()&&(_start=NumberValueObject.create(1)),_step.isNull()&&(_step=NumberValueObject.create(1));const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1,_start.isArray()?_start.getRowCount():1,_step.isArray()?_step.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1,_start.isArray()?_start.getColumnCount():1,_step.isArray()?_step.getColumnCount():1),rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA)),startArray=expandArrayValueObject(maxRowLength,maxColumnLength,_start,ErrorValueObject.create(ErrorType$1.NA)),stepArray=expandArrayValueObject(maxRowLength,maxColumnLength,_step,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rowsArray.mapValue((rowsObject,rowIndex,columnIndex)=>{const columnsObject=columnsArray.get(rowIndex,columnIndex),startObject=startArray.get(rowIndex,columnIndex),stepObject=stepArray.get(rowIndex,columnIndex);return rowsObject.isError()?rowsObject:columnsObject.isError()?columnsObject:startObject.isError()?startObject:stepObject.isError()?stepObject:this._getResult(rowsObject,columnsObject,startObject,stepObject,maxRowLength,maxColumnLength)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(rowsObject,columnsObject,startObject,stepObject,maxRowLength,maxColumnLength){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rowsObject,columnsObject,startObject,stepObject);if(isError)return errorObject;const[_rowsObject,_columnsObject,_startObject,_stepObject]=variants,rowsValue=Math.floor(+_rowsObject.getValue()),columnsValue=Math.floor(+_columnsObject.getValue()),startValue=+_startObject.getValue(),stepValue=+_stepObject.getValue();if(rowsValue<0||columnsValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(rowsValue===0||columnsValue===0)return ErrorValueObject.create(ErrorType$1.CALC);const result=[];for(let r=0;r<rowsValue;r++){result[r]=[];for(let c=0;c<columnsValue;c++)result[r][c]=startValue+(r*columnsValue+c)*stepValue}return maxRowLength>1||maxColumnLength>1?NumberValueObject.create(result[0][0]):ArrayValueObject.createByArray(result)}};__name(_Sequence,"Sequence");let Sequence=_Sequence;const _Seriessum=class _Seriessum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(x,n,m,coefficients){if(x.isNull()||n.isNull()||m.isNull()||coefficients.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n,m);if(isError)return errorObject;const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsStringToNumber(...variants);if(isError2)return errorObject2;const[xObject,nObject,mObject]=variants2,xValue=+xObject.getValue(),nValue=+nObject.getValue(),mValue=+mObject.getValue(),coefficientsArray=[];if(coefficients.isArray()){let isError_coefficients=!1,errorObject_coefficients=ErrorValueObject.create(ErrorType$1.VALUE);if(coefficients.iterator(coefficientsObject=>{const{isError:_isError,errorObject:_errorObject,coefficientsObject:_coefficientsObject}=this._handleSingleObject(coefficientsObject);if(_isError)return isError_coefficients=!0,errorObject_coefficients=_errorObject,!1;const coefficientsValue=+_coefficientsObject.getValue();coefficientsArray.push(coefficientsValue)}),isError_coefficients)return errorObject_coefficients}else{const{isError:_isError,errorObject:_errorObject,coefficientsObject:_coefficientsObject}=this._handleSingleObject(coefficients);if(_isError)return _errorObject;const coefficientsValue=+_coefficientsObject.getValue();coefficientsArray.push(coefficientsValue)}let result=0;for(let i=0;i<coefficientsArray.length;i++)result+=coefficientsArray[i]*xValue**(nValue+i*mValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}_handleSingleObject(coefficientsObject){if(coefficientsObject.isError())return{isError:!0,errorObject:coefficientsObject,coefficientsObject:null};if(coefficientsObject!=null&&coefficientsObject.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),coefficientsObject:null};let _coefficientsObject=coefficientsObject;return _coefficientsObject.isString()&&(_coefficientsObject=_coefficientsObject.convertToNumberObjectValue()),_coefficientsObject.isError()?{isError:!0,errorObject:_coefficientsObject,coefficientsObject:null}:{isError:!1,errorObject:null,coefficientsObject:_coefficientsObject}}};__name(_Seriessum,"Seriessum");let Seriessum=_Seriessum;const _Sign=class _Sign extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){if(number.isArray()){const resultArray=number.mapValue(numberObject=>this._handleSingleObject(numberObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(number)}_handleSingleObject(number){if(number.isError())return number;const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=+numberObject.getValue();return numberValue>0?NumberValueObject.create(1):numberValue<0?NumberValueObject.create(-1):NumberValueObject.create(0)}};__name(_Sign,"Sign");let Sign=_Sign;const _Sin=class _Sin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.sin()}};__name(_Sin,"Sin");let Sin=_Sin;const _Sinh=class _Sinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.sinh()}};__name(_Sinh,"Sinh");let Sinh=_Sinh;const _Sqrt=class _Sqrt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;return _number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError()?_number:_number.sqrt()}};__name(_Sqrt,"Sqrt");let Sqrt=_Sqrt;const _Sqrtpi=class _Sqrtpi extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;if(_number.isArray()){const rowCount=_number.getRowCount(),columnCount=_number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=_number.get(0,0)}if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=+_number.getValue();if(numberValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sqrt(numberValue*Math.PI);return NumberValueObject.create(result)}};__name(_Sqrtpi,"Sqrtpi");let Sqrtpi=_Sqrtpi;const _Subtotal=class _Subtotal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}calculate(functionNum,...refs){if(functionNum.isError())return functionNum;if(functionNum.isReferenceObject()){const result=[];return functionNum.iterator((valueObject,rowIndex,columnIndex)=>{result[rowIndex]==null&&(result[rowIndex]=[]),result[rowIndex][columnIndex]=this._handleSingleObject(valueObject,...refs)}),createNewArray(result,result.length,result[0].length)}return this._handleSingleObject(functionNum,...refs)}_handleSingleObject(functionNum,...refs){const indexNum=this._getIndexNumValue(functionNum);let result;if(indexNum instanceof ErrorValueObject)return indexNum;switch(indexNum){case 1:result=this._average(!1,...refs);break;case 2:result=this._count(!1,...refs);break;case 3:result=this._counta(!1,...refs);break;case 4:result=this._max(!1,...refs);break;case 5:result=this._min(!1,...refs);break;case 6:result=this._product(!1,...refs);break;case 7:result=this._stdev(!1,...refs);break;case 8:result=this._stdevp(!1,...refs);break;case 9:result=this._sum(!1,...refs);break;case 10:result=this._var(!1,...refs);break;case 11:result=this._varp(!1,...refs);break;case 101:result=this._average(!0,...refs);break;case 102:result=this._count(!0,...refs);break;case 103:result=this._counta(!0,...refs);break;case 104:result=this._max(!0,...refs);break;case 105:result=this._min(!0,...refs);break;case 106:result=this._product(!0,...refs);break;case 107:result=this._stdev(!0,...refs);break;case 108:result=this._stdevp(!0,...refs);break;case 109:result=this._sum(!0,...refs);break;case 110:result=this._var(!0,...refs);break;case 111:result=this._varp(!0,...refs);break;default:result=ErrorValueObject.create(ErrorType$1.VALUE)}return result}_getIndexNumValue(indexNum){const indexNumValue=indexNum?Number(indexNum.getValue()):0;if(Number.isNaN(indexNumValue))return ErrorValueObject.create(ErrorType$1.VALUE);const indexNumValueInt=Math.floor(indexNumValue);return indexNumValueInt>=1&&indexNumValueInt<=11||indexNumValueInt>=101&&indexNumValueInt<=111?indexNumValueInt:ErrorValueObject.create(ErrorType$1.VALUE)}_average(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:flattenArray.mean()}_count(ignoreHidden,...refs){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<refs.length;i++){const variant=refs[i];if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex))return!0;valueObject!=null&&valueObject.isNumber()&&(accumulatorAll=accumulatorAll.plusBy(1))})}return accumulatorAll}_counta(ignoreHidden,...refs){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<refs.length;i++){const variant=refs[i];if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex)||valueObject==null||valueObject.isNull())return!0;accumulatorAll=accumulatorAll.plusBy(1)})}return accumulatorAll}_max(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?NumberValueObject.create(0):flattenArray.max()}_min(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?NumberValueObject.create(0):flattenArray.min()}_product(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);if(flattenArray.isError())return flattenArray;if(this._isBlankArrayObject(flattenArray))return NumberValueObject.create(0);let result=NumberValueObject.create(1);return flattenArray.iterator(valueObject=>{result=result.multiply(valueObject)}),result}_stdev(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.std(1)}_stdevp(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.std()}_sum(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:flattenArray.sum()}_var(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.var(1)}_varp(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.var()}_flattenRefArray(ignoreHidden,...variants){const flattenValues=[];flattenValues[0]=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant;if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();let errorValue;if(variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex)||valueObject==null||valueObject.isNull()||valueObject.isString()||valueObject.isBoolean())return!0;if(valueObject.isError())return errorValue=valueObject,!1;flattenValues[0].push(valueObject)}),errorValue!=null&&errorValue.isError())return errorValue}return createNewArray(flattenValues,1,flattenValues[0].length)}_isRowHidden(rowData,rowIndex){const row=rowData[rowIndex];return row?row.hd===core.BooleanNumber.TRUE:!1}_isBlankArrayObject(arrayObject){return arrayObject.getArrayValue()[0].length===0}};__name(_Subtotal,"Subtotal");let Subtotal=_Subtotal;const _Sum=class _Sum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError()||(variant.isArray()&&(variant=variant.sum()),variant.isError()))return variant;if(accumulatorAll=accumulatorAll.plus(variant),accumulatorAll.isError())return accumulatorAll}return accumulatorAll}};__name(_Sum,"Sum");let Sum=_Sum;const _Sumif=class _Sumif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(range,criteria,sumRange){let _criteria=criteria;if(criteria.isReferenceObject()&&(_criteria=criteria.toArrayValueObject()),_criteria.isArray()){const resultArray=_criteria.mapValue(criteriaObject=>this._handleSingleObject(range,criteriaObject,sumRange));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(range,_criteria,sumRange)}_handleSingleObject(range,criteria,sumRange){if(range.isError())return range;if(criteria.isError())return criteria;if(sumRange!=null&&sumRange.isError())return sumRange;if(!range.isReferenceObject()||sumRange&&!sumRange.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const _range=range.toArrayValueObject();let resultArrayObject=valueObjectCompare(_range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,_range,criteriaStringObject);const rangeRowCount=_range.getRowCount(),rangeColumnCount=_range.getColumnCount();let _sumRange=_range;if(sumRange){_sumRange=sumRange.toArrayValueObject();const sumRangeRowCount=_sumRange.getRowCount(),sumRangeColumnCount=_sumRange.getColumnCount();if(rangeRowCount!==sumRangeRowCount||rangeColumnCount!==sumRangeColumnCount){const rangeData=sumRange.getRangeData();rangeData.endRow=rangeData.startRow+rangeRowCount-1,rangeData.endColumn=rangeData.startColumn+rangeColumnCount-1,sumRange.setRangeData(rangeData),_sumRange=sumRange.toArrayValueObject()}}return _sumRange.pick(resultArrayObject).sum()}};__name(_Sumif,"Sumif");let Sumif=_Sumif;const _Sumifs=class _Sumifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(sumRange,...variants){if(sumRange.isError())return sumRange;if(!sumRange.isArray()||variants.length<2||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,sumRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(sumRange,booleanResults)}_aggregateResults(sumRange,booleanResults){const sumResults=booleanResults.map(row=>row.map(booleanResult=>sumRange.pick(booleanResult).sum())),arrayValueObjectData={calculateValueList:sumResults,rowCount:sumResults.length,columnCount:sumResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Sumifs,"Sumifs");let Sumifs=_Sumifs;const _Sumproduct=class _Sumproduct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(array1,...variants){if(array1.isError())return array1;const _array1=this._initArray1(array1);if(variants.length>0){const rowCount=_array1.getRowCount(),columnCount=_array1.getColumnCount();let resultArray=this._getResultArrayByArray1(rowCount,columnCount,_array1);if(resultArray instanceof ErrorValueObject)return resultArray;resultArray=resultArray;for(let i=0;i<variants.length;i++){if(variants[i].isError())return variants[i];let variantRowCount=1,variantColumnCount=1;if(variants[i].isArray()&&(variantRowCount=variants[i].getRowCount(),variantColumnCount=variants[i].getColumnCount()),variantRowCount!==rowCount||variantColumnCount!==columnCount)return ErrorValueObject.create(ErrorType$1.VALUE);for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){let variantValueObject=variants[i];if(variants[i].isArray()&&(variantValueObject=variants[i].get(r,c)),variantValueObject.isError())return variantValueObject;const variantValue=variantValueObject.getValue();!variantValue||!core.isRealNum(variantValue)?row.push(0):row.push(+variantValue*resultArray[r][c])}resultArray[r]=row}}const result=resultArray.reduce((acc,cur)=>acc.concat(cur)).reduce((acc,cur)=>acc+cur,0);return NumberValueObject.create(result)}else return _array1.sum()}_initArray1(array1){let _array1=array1;return _array1.isArray()||(_array1=ArrayValueObject.create({calculateValueList:[[_array1]],rowCount:1,columnCount:1,unitId:"",sheetId:"",row:0,column:0})),_array1}_getResultArrayByArray1(rowCount,columnCount,array1){const resultArray=[];for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const array1ValueObject=array1.get(r,c);if(array1ValueObject.isError())return array1ValueObject;const array1Value=array1ValueObject.getValue();!array1Value||!core.isRealNum(array1Value)?row.push(0):row.push(+array1Value)}resultArray.push(row)}return resultArray}};__name(_Sumproduct,"Sumproduct");let Sumproduct=_Sumproduct;const _Sumsq=class _Sumsq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);const exponent=NumberValueObject.create(2);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()?variant.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;accumulatorAll=accumulatorAll.plus(valueObject.pow(exponent))}):accumulatorAll=accumulatorAll.plus(variant.pow(exponent)),accumulatorAll.isError())return accumulatorAll}return accumulatorAll}};__name(_Sumsq,"Sumsq");let Sumsq=_Sumsq;const _Sumx2my2=class _Sumx2my2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=arrayXValue**2-arrayYValue**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=arrayXValue**2-arrayYValue**2;return NumberValueObject.create(result)}};__name(_Sumx2my2,"Sumx2my2");let Sumx2my2=_Sumx2my2;const _Sumx2py2=class _Sumx2py2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=arrayXValue**2+arrayYValue**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=arrayXValue**2+arrayYValue**2;return NumberValueObject.create(result)}};__name(_Sumx2py2,"Sumx2py2");let Sumx2py2=_Sumx2py2;const _Sumxmy2=class _Sumxmy2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=(arrayXValue-arrayYValue)**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=(arrayXValue-arrayYValue)**2;return NumberValueObject.create(result)}};__name(_Sumxmy2,"Sumxmy2");let Sumxmy2=_Sumxmy2;const _Tan=class _Tan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.tan()}};__name(_Tan,"Tan");let Tan=_Tan;const _Tanh=class _Tanh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.tanh()}};__name(_Tanh,"Tanh");let Tanh=_Tanh;const _Trunc=class _Trunc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,numDigits){const _numDigits=numDigits!=null?numDigits:NumberValueObject.create(0),maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_numDigits.isArray()?_numDigits.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_numDigits.isArray()?_numDigits.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),numDigitsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_numDigits,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let numDigitsObject=numDigitsArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(numDigitsObject.isString()&&(numDigitsObject=numDigitsObject.convertToNumberObjectValue()),numDigitsObject.isError())return numDigitsObject;const numberValue=+_numberObject.getValue(),numDigitsValue=+numDigitsObject.getValue(),factor=10**Math.trunc(numDigitsValue),epsilon=baseEpsilon(numberValue,factor),result=Math.trunc(multiply(numberValue,factor)+epsilon)/factor;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Trunc,"Trunc");let Trunc=_Trunc;const functionMath=[[Abs,FUNCTION_NAMES_MATH.ABS],[Acos,FUNCTION_NAMES_MATH.ACOS],[Acosh,FUNCTION_NAMES_MATH.ACOSH],[Acot,FUNCTION_NAMES_MATH.ACOT],[Acoth,FUNCTION_NAMES_MATH.ACOTH],[Arabic,FUNCTION_NAMES_MATH.ARABIC],[Asin,FUNCTION_NAMES_MATH.ASIN],[Asinh,FUNCTION_NAMES_MATH.ASINH],[Atan,FUNCTION_NAMES_MATH.ATAN],[Atan2,FUNCTION_NAMES_MATH.ATAN2],[Atanh,FUNCTION_NAMES_MATH.ATANH],[Base,FUNCTION_NAMES_MATH.BASE],[Ceiling,FUNCTION_NAMES_MATH.CEILING],[CeilingMath,FUNCTION_NAMES_MATH.CEILING_MATH],[CeilingPrecise,FUNCTION_NAMES_MATH.CEILING_PRECISE],[Combin,FUNCTION_NAMES_MATH.COMBIN],[Combina,FUNCTION_NAMES_MATH.COMBINA],[Cos,FUNCTION_NAMES_MATH.COS],[Cosh,FUNCTION_NAMES_MATH.COSH],[Cot,FUNCTION_NAMES_MATH.COT],[Coth,FUNCTION_NAMES_MATH.COTH],[Csc,FUNCTION_NAMES_MATH.CSC],[Csch,FUNCTION_NAMES_MATH.CSCH],[Decimal,FUNCTION_NAMES_MATH.DECIMAL],[Degrees,FUNCTION_NAMES_MATH.DEGREES],[Even,FUNCTION_NAMES_MATH.EVEN],[Exp,FUNCTION_NAMES_MATH.EXP],[Fact,FUNCTION_NAMES_MATH.FACT],[Factdouble,FUNCTION_NAMES_MATH.FACTDOUBLE],[Floor,FUNCTION_NAMES_MATH.FLOOR],[FloorMath,FUNCTION_NAMES_MATH.FLOOR_MATH],[FloorPrecise,FUNCTION_NAMES_MATH.FLOOR_PRECISE],[Gcd,FUNCTION_NAMES_MATH.GCD],[Int,FUNCTION_NAMES_MATH.INT],[Lcm,FUNCTION_NAMES_MATH.LCM],[Ln,FUNCTION_NAMES_MATH.LN],[Log,FUNCTION_NAMES_MATH.LOG],[Log10,FUNCTION_NAMES_MATH.LOG10],[Mdeterm,FUNCTION_NAMES_MATH.MDETERM],[Minverse,FUNCTION_NAMES_MATH.MINVERSE],[Mmult,FUNCTION_NAMES_MATH.MMULT],[Mod,FUNCTION_NAMES_MATH.MOD],[Mround,FUNCTION_NAMES_MATH.MROUND],[Multinomial,FUNCTION_NAMES_MATH.MULTINOMIAL],[Munit,FUNCTION_NAMES_MATH.MUNIT],[Odd,FUNCTION_NAMES_MATH.ODD],[Pi,FUNCTION_NAMES_MATH.PI],[Power,FUNCTION_NAMES_MATH.POWER],[Product,FUNCTION_NAMES_MATH.PRODUCT],[Quotient,FUNCTION_NAMES_MATH.QUOTIENT],[Radians,FUNCTION_NAMES_MATH.RADIANS],[Rand,FUNCTION_NAMES_MATH.RAND],[Randarray,FUNCTION_NAMES_MATH.RANDARRAY],[Randbetween,FUNCTION_NAMES_MATH.RANDBETWEEN],[Roman,FUNCTION_NAMES_MATH.ROMAN],[Round,FUNCTION_NAMES_MATH.ROUND],[Rounddown,FUNCTION_NAMES_MATH.ROUNDDOWN],[Roundup,FUNCTION_NAMES_MATH.ROUNDUP],[Sec,FUNCTION_NAMES_MATH.SEC],[Sech,FUNCTION_NAMES_MATH.SECH],[Seriessum,FUNCTION_NAMES_MATH.SERIESSUM],[Sequence,FUNCTION_NAMES_MATH.SEQUENCE],[Sign,FUNCTION_NAMES_MATH.SIGN],[Sin,FUNCTION_NAMES_MATH.SIN],[Sinh,FUNCTION_NAMES_MATH.SINH],[Sqrt,FUNCTION_NAMES_MATH.SQRT],[Sqrtpi,FUNCTION_NAMES_MATH.SQRTPI],[Subtotal,FUNCTION_NAMES_MATH.SUBTOTAL],[Sum,FUNCTION_NAMES_MATH.SUM],[Sumif,FUNCTION_NAMES_MATH.SUMIF],[Sumifs,FUNCTION_NAMES_MATH.SUMIFS],[Sumproduct,FUNCTION_NAMES_MATH.SUMPRODUCT],[Sumsq,FUNCTION_NAMES_MATH.SUMSQ],[Sumx2my2,FUNCTION_NAMES_MATH.SUMX2MY2],[Sumx2py2,FUNCTION_NAMES_MATH.SUMX2PY2],[Sumxmy2,FUNCTION_NAMES_MATH.SUMXMY2],[Tan,FUNCTION_NAMES_MATH.TAN],[Tanh,FUNCTION_NAMES_MATH.TANH],[Trunc,FUNCTION_NAMES_MATH.TRUNC]],_Compare=class _Compare extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2);__publicField(this,"_compareType",compareToken.EQUALS)}setCompareType(token){this._compareType=token}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.compare(variant2,this._compareType)}};__name(_Compare,"Compare");let Compare=_Compare;const _CubeValueObject=class _CubeValueObject extends BaseValueObject{constructor(values){super("");__publicField(this,"_values",[]);this._values=values}static create(values){return new _CubeValueObject(values)}isCube(){return!0}sum(){const result=NumberValueObject.create(0);return this._values.forEach(arr=>{result.plus(arr.sum())}),result}max(){let result=NumberValueObject.create(Number.NEGATIVE_INFINITY);return this._values.forEach(arr=>{const compare=arr.max();result.isLessThan(compare)&&(result=compare)}),result}min(){let result=NumberValueObject.create(Number.POSITIVE_INFINITY);return this._values.forEach(arr=>{const compare=arr.max();result.isGreaterThan(compare)&&(result=compare)}),result}count(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.count())}),count}countA(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.countA())}),count}countBlank(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.countBlank())}),count}};__name(_CubeValueObject,"CubeValueObject");let CubeValueObject=_CubeValueObject;const _Cube=class _Cube extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const values=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant;if(!variant.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);values.push(variant)}return CubeValueObject.create(values)}};__name(_Cube,"Cube");let Cube=_Cube;const _Divided=class _Divided extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:!variant2.isArray()&&variant2.getValue()===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):variant1.divided(variant2)}};__name(_Divided,"Divided");let Divided=_Divided;const _Minus=class _Minus extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.minus(variant2)}};__name(_Minus,"Minus");let Minus=_Minus;const _Multiply=class _Multiply extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.multiply(variant2)}};__name(_Multiply,"Multiply");let Multiply=_Multiply;const _Plus=class _Plus extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.plus(variant2)}};__name(_Plus,"Plus");let Plus=_Plus;const functionMeta=[[Compare,FUNCTION_NAMES_META.COMPARE],[Divided,FUNCTION_NAMES_META.DIVIDED],[Minus,FUNCTION_NAMES_META.MINUS],[Multiply,FUNCTION_NAMES_META.MULTIPLY],[Plus,FUNCTION_NAMES_META.PLUS],[Cube,FUNCTION_NAMES_META.CUBE]],_Avedev=class _Avedev extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(variant=filterNumberValueObject(variant),variant.isError())return variant;if(variants[i]=variant,accumulatorSum=accumulatorSum.plus(variant.sum()),accumulatorSum.isError())return accumulatorSum;accumulatorCount=accumulatorCount.plus(variant.count())}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}if(accumulatorCount.getValue()===0)return ErrorValueObject.create(ErrorType$1.NUM);const average=accumulatorSum.divided(accumulatorCount);if(average.isError())return average;let accumulatorAveDev=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(accumulatorAveDev=accumulatorAveDev.plus(variant.minus(average).abs().sum()),accumulatorAveDev.isError())return accumulatorAveDev}else variant.isNull()||(accumulatorAveDev=accumulatorAveDev.plus(variant.minus(average).abs()))}return accumulatorAveDev.divided(accumulatorCount)}};__name(_Avedev,"Avedev");let Avedev=_Avedev;function filterNumberValueObject(array){const newArray=[];newArray[0]=[];let isError=null;return array.iterator((valueObject,_rowIndex,_columnIndex)=>{if(valueObject!=null&&valueObject.isError())return isError=valueObject,!1;valueObject!=null&&valueObject.isNumber()&&newArray[0].push(valueObject)}),isError||createNewArray(newArray,1,newArray[0].length)}__name(filterNumberValueObject,"filterNumberValueObject");const _Average=class _Average extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(accumulatorSum=accumulatorSum.plus(variant.sum()),accumulatorSum.isError())return accumulatorSum;accumulatorCount=accumulatorCount.plus(variant.count())}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}return accumulatorSum.divided(accumulatorCount)}};__name(_Average,"Average");let Average=_Average;const _Averagea=class _Averagea extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(variant.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;let _valueObject=valueObject;if(_valueObject.isString()&&(_valueObject=_valueObject.convertToNumberObjectValue(),_valueObject.isError()&&(_valueObject=NumberValueObject.create(0))),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorSum=_valueObject,!1;accumulatorSum=accumulatorSum.plus(_valueObject),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1))}),accumulatorSum.isError())return accumulatorSum}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}return accumulatorSum.divided(accumulatorCount)}};__name(_Averagea,"Averagea");let Averagea=_Averagea;const _Averageif=class _Averageif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(range,criteria,averageRange){if(range.isError())return range;if(criteria.isError())return criteria;if(averageRange!=null&&averageRange.isError())return averageRange;let _range=range;_range.isReferenceObject()&&(_range=_range.toArrayValueObject()),_range.isArray()||(_range=createNewArray([[_range]],1,1));let _criteria=criteria;return _criteria.isReferenceObject()&&(_criteria=_criteria.toArrayValueObject()),averageRange&&!(averageRange!=null&&averageRange.isReferenceObject())?ErrorValueObject.create(ErrorType$1.NA):(_criteria=_criteria,_criteria.isArray()?_criteria.map(criteriaItem=>this._handleSingleObject(_range,criteriaItem,averageRange)):this._handleSingleObject(_range,_criteria,averageRange))}_handleSingleObject(range,criteria,averageRange){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);let averageRangeArray=averageRange?this._createRangeReferenceObject(averageRange,range):range;if(!averageRangeArray)return ErrorValueObject.create(ErrorType$1.VALUE);if(averageRangeArray.isError())return averageRangeArray;averageRangeArray.isReferenceObject()&&(averageRangeArray=averageRangeArray.toArrayValueObject()),averageRangeArray=averageRangeArray;const picked=averageRangeArray.pick(resultArrayObject),sum2=picked.sum(),count=picked.count();return sum2.divided(count)}_createRangeReferenceObject(averageRange,range){const averageRangeRow=averageRange.getRowCount(),averageRangeColumn=averageRange.getColumnCount(),rowCount=range.isArray()?range.getRowCount():1,columnCount=range.isArray()?range.getColumnCount():1;if(averageRangeRow===rowCount&&averageRangeColumn===columnCount)return averageRange;const{startRow,startColumn}=averageRange.getRangePosition(),rangeData={startRow,startColumn,endRow:startRow+rowCount-1,endColumn:startColumn+columnCount-1};return this.createReferenceObject(averageRange,rangeData)}};__name(_Averageif,"Averageif");let Averageif=_Averageif;const _Averageifs=class _Averageifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(averageRange,...variants){if(averageRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!averageRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,averageRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(averageRange,booleanResults)}_aggregateResults(averageRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=averageRange.pick(booleanResult),sum2=picked.sum(),count=picked.count();return sum2.divided(count)})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Averageifs,"Averageifs");let Averageifs=_Averageifs;const _BetaDist=class _BetaDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6)}calculate(x,alpha,beta,cumulative,A,B){let _A=A!=null?A:NumberValueObject.create(0),_B=B!=null?B:NumberValueObject.create(1);_A.isNull()&&(_A=NumberValueObject.create(0)),_B.isNull()&&(_B=NumberValueObject.create(1));const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,alpha.isArray()?alpha.getRowCount():1,beta.isArray()?beta.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1,_A.isArray()?_A.getRowCount():1,_B.isArray()?_B.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,alpha.isArray()?alpha.getColumnCount():1,beta.isArray()?beta.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1,_A.isArray()?_A.getColumnCount():1,_B.isArray()?_B.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),betaArray=expandArrayValueObject(maxRowLength,maxColumnLength,beta,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),AArray=expandArrayValueObject(maxRowLength,maxColumnLength,_A,ErrorValueObject.create(ErrorType$1.NA)),BArray=expandArrayValueObject(maxRowLength,maxColumnLength,_B,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const alphaObject=alphaArray.get(rowIndex,columnIndex),betaObject=betaArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex),AObject=AArray.get(rowIndex,columnIndex),BObject=BArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,alphaObject,betaObject,cumulativeObject,AObject,BObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,alphaObject,betaObject,cumulativeObject,AObject,BObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,alphaObject,betaObject,cumulativeObject,AObject,BObject);if(isError)return errorObject;const[_xObject,_alphaObject,_betaObject,_cumulativeObject,_AObject,_BObject]=variants,xValue=+_xObject.getValue(),alphaValue=+_alphaObject.getValue(),betaValue=+_betaObject.getValue(),cumulativeValue=+_cumulativeObject.getValue(),AValue=+_AObject.getValue(),BValue=+_BObject.getValue();if(alphaValue<=0||betaValue<=0||xValue<AValue||xValue>BValue||AValue===BValue)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=betaCDF((xValue-AValue)/(BValue-AValue),alphaValue,betaValue):result=betaPDF((xValue-AValue)/(BValue-AValue),alphaValue,betaValue)/(BValue-AValue),NumberValueObject.create(result)}};__name(_BetaDist,"BetaDist");let BetaDist=_BetaDist;const _BinomDistRange=class _BinomDistRange extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(trials,probabilityS,numberS,numberS2){let _numberS2=numberS2!=null?numberS2:numberS;_numberS2.isNull()&&(_numberS2=numberS);const maxRowLength=Math.max(trials.isArray()?trials.getRowCount():1,probabilityS.isArray()?probabilityS.getRowCount():1,numberS.isArray()?numberS.getRowCount():1,_numberS2.isArray()?_numberS2.getRowCount():1),maxColumnLength=Math.max(trials.isArray()?trials.getColumnCount():1,probabilityS.isArray()?probabilityS.getColumnCount():1,numberS.isArray()?numberS.getColumnCount():1,_numberS2.isArray()?_numberS2.getColumnCount():1),trialsArray=expandArrayValueObject(maxRowLength,maxColumnLength,trials,ErrorValueObject.create(ErrorType$1.NA)),probabilitySArray=expandArrayValueObject(maxRowLength,maxColumnLength,probabilityS,ErrorValueObject.create(ErrorType$1.NA)),numberSArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberS,ErrorValueObject.create(ErrorType$1.NA)),numberS2Array=expandArrayValueObject(maxRowLength,maxColumnLength,_numberS2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=trialsArray.mapValue((trialsObject,rowIndex,columnIndex)=>{const probabilitySObject=probabilitySArray.get(rowIndex,columnIndex),numberSObject=numberSArray.get(rowIndex,columnIndex),numberS2Object=numberS2Array.get(rowIndex,columnIndex);return this._handleSignleObject(trialsObject,probabilitySObject,numberSObject,numberS2Object)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(trialsObject,probabilitySObject,numberSObject,numberS2Object){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(trialsObject,probabilitySObject,numberSObject,numberS2Object);if(isError)return errorObject;const[_trialsObject,_probabilitySObject,_numberSObject,_numberS2Object]=variants,trialsValue=Math.floor(+_trialsObject.getValue()),probabilitySValue=+_probabilitySObject.getValue(),numberSValue=Math.floor(+_numberSObject.getValue()),numberS2Value=Math.floor(+_numberS2Object.getValue());if(trialsValue<0||probabilitySValue<0||probabilitySValue>1||numberSValue<0||numberSValue>trialsValue||numberS2Value<0||numberS2Value<numberSValue||numberS2Value>trialsValue)return ErrorValueObject.create(ErrorType$1.NUM);let result=0;for(let i=numberSValue;i<=numberS2Value;i++)result+=binomialPDF(i,trialsValue,probabilitySValue);return NumberValueObject.create(result)}};__name(_BinomDistRange,"BinomDistRange");let BinomDistRange=_BinomDistRange;const _ChisqDist=class _ChisqDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(x,degFreedom,cumulative){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,degFreedom.isArray()?degFreedom.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,degFreedom.isArray()?degFreedom.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),degFreedomArray=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const degFreedomObject=degFreedomArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,degFreedomObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,degFreedomObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,degFreedomObject,cumulativeObject);if(isError)return errorObject;const[_xObject,_degFreedomObject,_cumulativeObject]=variants,xValue=+_xObject.getValue(),degFreedomValue=Math.floor(+_degFreedomObject.getValue()),cumulativeValue=+_cumulativeObject.getValue();if(xValue<0||degFreedomValue<1||degFreedomValue>10**10)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=chisquareCDF(xValue,degFreedomValue):result=chisquarePDF(xValue,degFreedomValue),NumberValueObject.create(result)}};__name(_ChisqDist,"ChisqDist");let ChisqDist=_ChisqDist;const _ChisqInv=class _ChisqInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(probability,degFreedom){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,degFreedom.isArray()?degFreedom.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,degFreedom.isArray()?degFreedom.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),degFreedomArray=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const degFreedomObject=degFreedomArray.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,degFreedomObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,degFreedomObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,degFreedomObject);if(isError)return errorObject;const[_probabilityObject,_degFreedomObject]=variants,probabilityValue=+_probabilityObject.getValue(),degFreedomValue=Math.floor(+_degFreedomObject.getValue());if(probabilityValue<0||probabilityValue>1||degFreedomValue<1||degFreedomValue>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=chisquareINV(probabilityValue,degFreedomValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_ChisqInv,"ChisqInv");let ChisqInv=_ChisqInv;const _ConfidenceT=class _ConfidenceT extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(alpha,standardDev,size){const maxRowLength=Math.max(alpha.isArray()?alpha.getRowCount():1,standardDev.isArray()?standardDev.getRowCount():1,size.isArray()?size.getRowCount():1),maxColumnLength=Math.max(alpha.isArray()?alpha.getColumnCount():1,standardDev.isArray()?standardDev.getColumnCount():1,size.isArray()?size.getColumnCount():1),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),standardDevArray=expandArrayValueObject(maxRowLength,maxColumnLength,standardDev,ErrorValueObject.create(ErrorType$1.NA)),sizeArray=expandArrayValueObject(maxRowLength,maxColumnLength,size,ErrorValueObject.create(ErrorType$1.NA)),resultArray=alphaArray.mapValue((alphaObject,rowIndex,columnIndex)=>{const standardDevObject=standardDevArray.get(rowIndex,columnIndex),sizeObject=sizeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(alphaObject,standardDevObject,sizeObject);if(isError)return errorObject;const[_alphaObject,_standardDevObject,_sizeObject]=variants,alphaValue=+_alphaObject.getValue(),standardDevValue=+_standardDevObject.getValue(),sizeValue=Math.floor(+_sizeObject.getValue());if(alphaValue<=0||alphaValue>=1||standardDevValue<=0||sizeValue<1)return ErrorValueObject.create(ErrorType$1.NUM);if(sizeValue===1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.abs(studentTINV(alphaValue/2,sizeValue-1)*standardDevValue/Math.sqrt(sizeValue));return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_ConfidenceT,"ConfidenceT");let ConfidenceT=_ConfidenceT;const _Correl=class _Correl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const array1RowCount=array1.isArray()?array1.getRowCount():1,array1ColumnCount=array1.isArray()?array1.getColumnCount():1,array2RowCount=array2.isArray()?array2.getRowCount():1,array2ColumnCount=array2.isArray()?array2.getColumnCount():1;let _array1=array1;if(array1.isArray()&&array1RowCount===1&&array1ColumnCount===1&&(_array1=array1.get(0,0)),_array1.isError())return _array1;let _array2=array2;if(array2.isArray()&&array2RowCount===1&&array2ColumnCount===1&&(_array2=array2.get(0,0)),_array2.isError())return _array2;if(array1RowCount*array1ColumnCount===1||array2RowCount*array2ColumnCount===1)return _array1.isNull()||_array2.isNull()?ErrorValueObject.create(ErrorType$1.VALUE):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(array1RowCount*array1ColumnCount!==array2RowCount*array2ColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(array1,array2,array1RowCount*array1ColumnCount,array1ColumnCount,array2ColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values)}_getResult(array1Values,array2Values){const n=array1Values.length;let array1Sum=0,array2Sum=0;for(let i=0;i<n;i++)array1Sum+=array1Values[i],array2Sum+=array2Values[i];const array1Mean=array1Sum/n,array2Mean=array2Sum/n;let numerator=0,array1DiffSum=0,array2DiffSum=0;for(let i=0;i<n;i++){const array1Diff=array1Values[i]-array1Mean,array2Diff=array2Values[i]-array2Mean;numerator+=array1Diff*array2Diff,array1DiffSum+=array1Diff**2,array2DiffSum+=array2Diff**2}const denominator=Math.sqrt(array1DiffSum*array2DiffSum);return denominator===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(numerator/denominator)}};__name(_Correl,"Correl");let Correl=_Correl;const _Count=class _Count extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){const variant=variants[i];variant.isError()||(variant.isArray()?accumulatorAll=accumulatorAll.plus(variant.count()):variant.isString()?variant.convertToNumberObjectValue().isError()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1))):variant.isNull()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1))))}return accumulatorAll}};__name(_Count,"Count");let Count=_Count;const _Counta=class _Counta extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isError()){accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1));continue}variant.isArray()?(variant=variant.countA(),accumulatorAll=accumulatorAll.plus(variant)):variant.isNull()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1)))}return accumulatorAll}};__name(_Counta,"Counta");let Counta=_Counta;const _Countblank=class _Countblank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isError()?variant:variant.getValue()===""||variant.isNull()?NumberValueObject.create(1):variant.isArray()?variant.countBlank():NumberValueObject.create(0)}};__name(_Countblank,"Countblank");let Countblank=_Countblank;const _Countif=class _Countif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(range,criteria){return range.isError()||criteria.isError()?ErrorValueObject.create(ErrorType$1.NA):range.isArray()?criteria.isArray()?criteria.mapValue(criteriaItem=>this._handleSingleObject(range,criteriaItem)):this._handleSingleObject(range,criteria):ErrorValueObject.create(ErrorType$1.VALUE)}_handleSingleObject(range,criteria){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);const picked=range.pick(resultArrayObject);return this._countA(picked)}_countA(array){let accumulatorAll=NumberValueObject.create(0);return array.iterator(valueObject=>{if(valueObject==null)return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}};__name(_Countif,"Countif");let Countif=_Countif;const _Countifs=class _Countifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(...variants){if(variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,variants[0],maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(booleanResults)}_aggregateResults(booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>countTrueValue(booleanResult))),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Countifs,"Countifs");let Countifs=_Countifs;function countTrueValue(array){let count=0;return array.iterator(value=>{value!=null&&value.isBoolean()&&value.getValue()===!0&&count++}),NumberValueObject.create(count)}__name(countTrueValue,"countTrueValue");const _CovarianceS=class _CovarianceS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const array1RowCount=array1.isArray()?array1.getRowCount():1,array1ColumnCount=array1.isArray()?array1.getColumnCount():1,array2RowCount=array2.isArray()?array2.getRowCount():1,array2ColumnCount=array2.isArray()?array2.getColumnCount():1;let _array1=array1;if(array1.isArray()&&array1RowCount===1&&array1ColumnCount===1&&(_array1=array1.get(0,0)),_array1.isError())return _array1;let _array2=array2;if(array2.isArray()&&array2RowCount===1&&array2ColumnCount===1&&(_array2=array2.get(0,0)),_array2.isError())return _array2;if((array1RowCount*array1ColumnCount===1||array2RowCount*array2ColumnCount===1)&&(_array1.isNull()||_array2.isNull()))return ErrorValueObject.create(ErrorType$1.VALUE);if(array1RowCount*array1ColumnCount!==array2RowCount*array2ColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(array1,array2,array1RowCount*array1ColumnCount,array1ColumnCount,array2ColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values)}_getResult(array1Values,array2Values){if(array1Values.length<=1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const n=array1Values.length;let array1Sum=0,array2Sum=0;for(let i=0;i<n;i++)array1Sum+=array1Values[i],array2Sum+=array2Values[i];const array1Mean=array1Sum/n,array2Mean=array2Sum/n;let numerator=0;for(let i=0;i<n;i++){const array1Diff=array1Values[i]-array1Mean,array2Diff=array2Values[i]-array2Mean;numerator+=array1Diff*array2Diff}return NumberValueObject.create(numerator/(n-1))}};__name(_CovarianceS,"CovarianceS");let CovarianceS=_CovarianceS;const _Devsq=class _Devsq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const values=[];let sum2=0,noCalculate=!0;for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(valueObject=>{const _valueObject=this._handleSingleObject(valueObject);if(_valueObject.isError())return isError=!0,errorObject=_valueObject,!1;if(_valueObject.isNull())return!0;const value=_valueObject.getValue();values.push(value),sum2+=value,noCalculate=!1}),isError)return errorObject}else{const _variant=this._handleSingleObject(variant);if(_variant.isError())return _variant;if(_variant.isNull())continue;const value=_variant.getValue();values.push(value),sum2+=value,noCalculate=!1}}if(noCalculate)return ErrorValueObject.create(ErrorType$1.NUM);const mean=sum2/values.length;let result=0;for(let i=0;i<values.length;i++)result+=(values[i]-mean)**2;return NumberValueObject.create(result)}_handleSingleObject(variant){if(variant.isError())return variant;if(variant.isNull()||variant.isBoolean())return NullValueObject.create();const value=variant.getValue();return core.isRealNum(value)?NumberValueObject.create(+value):NullValueObject.create()}};__name(_Devsq,"Devsq");let Devsq=_Devsq;const _FDist=class _FDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(x,degFreedom1,degFreedom2,cumulative){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,degFreedom1.isArray()?degFreedom1.getRowCount():1,degFreedom2.isArray()?degFreedom2.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,degFreedom1.isArray()?degFreedom1.getColumnCount():1,degFreedom2.isArray()?degFreedom2.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),degFreedom1Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom1,ErrorValueObject.create(ErrorType$1.NA)),degFreedom2Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom2,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const degFreedom1Object=degFreedom1Array.get(rowIndex,columnIndex),degFreedom2Object=degFreedom2Array.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,degFreedom1Object,degFreedom2Object,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,degFreedom1Object,degFreedom2Object,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,degFreedom1Object,degFreedom2Object,cumulativeObject);if(isError)return errorObject;const[_xObject,_degFreedom1Object,_degFreedom2Object,_cumulativeObject]=variants,xValue=+_xObject.getValue(),degFreedom1Value=Math.floor(+_degFreedom1Object.getValue()),degFreedom2Value=Math.floor(+_degFreedom2Object.getValue()),cumulativeValue=+_cumulativeObject.getValue();if(xValue<0||degFreedom1Value<1||degFreedom1Value>10**10||degFreedom2Value<1||degFreedom2Value>10**10)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=centralFCDF(xValue,degFreedom1Value,degFreedom2Value):result=centralFPDF(xValue,degFreedom1Value,degFreedom2Value),Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_FDist,"FDist");let FDist=_FDist;const _FInv=class _FInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(probability,degFreedom1,degFreedom2){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,degFreedom1.isArray()?degFreedom1.getRowCount():1,degFreedom2.isArray()?degFreedom2.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,degFreedom1.isArray()?degFreedom1.getColumnCount():1,degFreedom2.isArray()?degFreedom2.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),degFreedom1Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom1,ErrorValueObject.create(ErrorType$1.NA)),degFreedom2Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const degFreedom1Object=degFreedom1Array.get(rowIndex,columnIndex),degFreedom2Object=degFreedom2Array.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,degFreedom1Object,degFreedom2Object)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,degFreedom1Object,degFreedom2Object){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,degFreedom1Object,degFreedom2Object);if(isError)return errorObject;const[_probabilityObject,_degFreedom1Object,_degFreedom2Object]=variants,probabilityValue=+_probabilityObject.getValue(),degFreedom1Value=Math.floor(+_degFreedom1Object.getValue()),degFreedom2Value=Math.floor(+_degFreedom2Object.getValue());if(probabilityValue<0||probabilityValue>1||degFreedom1Value<1||degFreedom1Value>10**10||degFreedom2Value<1||degFreedom2Value>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=centralFINV(probabilityValue,degFreedom1Value,degFreedom2Value);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_FInv,"FInv");let FInv=_FInv;const _Fisher=class _Fisher extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){return x.isArray()?x.mapValue(xObject=>this._handleSingleObject(xObject)):this._handleSingleObject(x)}_handleSingleObject(x){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(x);if(isError)return errorObject;const[xObject]=variants,xValue=xObject.getValue();if(xValue<=-1||xValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log((1+xValue)/(1-xValue))/2;return NumberValueObject.create(result)}};__name(_Fisher,"Fisher");let Fisher=_Fisher;const _Fisherinv=class _Fisherinv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(y){return y.isArray()?y.mapValue(yObject=>this._handleSingleObject(yObject)):this._handleSingleObject(y)}_handleSingleObject(y){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(y);if(isError)return errorObject;const[yObject]=variants,yValue=+yObject.getValue(),num=Math.exp(2*yValue)-1,den=Math.exp(2*yValue)+1;return!Number.isFinite(num)&&num>0&&!Number.isFinite(den)&&den>0?NumberValueObject.create(1):NumberValueObject.create(num/den)}};__name(_Fisherinv,"Fisherinv");let Fisherinv=_Fisherinv;const _Forecast=class _Forecast extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(x,knownYs,knownXs){const knownYsRowCount=knownYs.isArray()?knownYs.getRowCount():1,knownYsColumnCount=knownYs.isArray()?knownYs.getColumnCount():1,knownXsRowCount=knownXs.isArray()?knownXs.getRowCount():1,knownXsColumnCount=knownXs.isArray()?knownXs.getColumnCount():1;let _knownYs=knownYs;knownYs.isArray()&&knownYsRowCount===1&&knownYsColumnCount===1&&(_knownYs=knownYs.get(0,0));let _knownXs=knownXs;return knownXs.isArray()&&knownXsRowCount===1&&knownXsColumnCount===1&&(_knownXs=knownXs.get(0,0)),x.isArray()?x.mapValue(xObject=>this._handleSignleObject(xObject,_knownYs,_knownXs,knownYsRowCount,knownYsColumnCount,knownXsRowCount,knownXsColumnCount)):this._handleSignleObject(x,_knownYs,_knownXs,knownYsRowCount,knownYsColumnCount,knownXsRowCount,knownXsColumnCount)}_handleSignleObject(x,knownYs,knownXs,knownYsRowCount,knownYsColumnCount,knownXsRowCount,knownXsColumnCount){if(x.isError())return x;if(knownYs.isError())return knownYs;if(knownXs.isError())return knownXs;let _x=x;if(x.isString()&&(_x=x.convertToNumberObjectValue()),_x.isError())return _x;const xValue=+_x.getValue();if((knownYsRowCount*knownYsColumnCount===1||knownXsRowCount*knownXsColumnCount===1)&&(knownYs.isNull()||knownXs.isNull()))return ErrorValueObject.create(ErrorType$1.VALUE);if(knownYsRowCount*knownYsColumnCount!==knownXsRowCount*knownXsColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(knownYs,knownXs,knownYsRowCount*knownYsColumnCount,knownYsColumnCount,knownXsColumnCount);if(isError)return errorObject;if(noCalculate)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=forecastLinear(xValue,array1Values,array2Values);return Number.isFinite(result)?NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO)}};__name(_Forecast,"Forecast");let Forecast=_Forecast;var FUNCTION_NAMES_STATISTICAL=(FUNCTION_NAMES_STATISTICAL2=>(FUNCTION_NAMES_STATISTICAL2.AVEDEV="AVEDEV",FUNCTION_NAMES_STATISTICAL2.AVERAGE="AVERAGE",FUNCTION_NAMES_STATISTICAL2.AVERAGEA="AVERAGEA",FUNCTION_NAMES_STATISTICAL2.AVERAGEIF="AVERAGEIF",FUNCTION_NAMES_STATISTICAL2.AVERAGEIFS="AVERAGEIFS",FUNCTION_NAMES_STATISTICAL2.BETA_DIST="BETA.DIST",FUNCTION_NAMES_STATISTICAL2.BETA_INV="BETA.INV",FUNCTION_NAMES_STATISTICAL2.BINOM_DIST="BINOM.DIST",FUNCTION_NAMES_STATISTICAL2.BINOM_DIST_RANGE="BINOM.DIST.RANGE",FUNCTION_NAMES_STATISTICAL2.BINOM_INV="BINOM.INV",FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST="CHISQ.DIST",FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST_RT="CHISQ.DIST.RT",FUNCTION_NAMES_STATISTICAL2.CHISQ_INV="CHISQ.INV",FUNCTION_NAMES_STATISTICAL2.CHISQ_INV_RT="CHISQ.INV.RT",FUNCTION_NAMES_STATISTICAL2.CHISQ_TEST="CHISQ.TEST",FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_NORM="CONFIDENCE.NORM",FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_T="CONFIDENCE.T",FUNCTION_NAMES_STATISTICAL2.CORREL="CORREL",FUNCTION_NAMES_STATISTICAL2.COUNT="COUNT",FUNCTION_NAMES_STATISTICAL2.COUNTA="COUNTA",FUNCTION_NAMES_STATISTICAL2.COUNTBLANK="COUNTBLANK",FUNCTION_NAMES_STATISTICAL2.COUNTIF="COUNTIF",FUNCTION_NAMES_STATISTICAL2.COUNTIFS="COUNTIFS",FUNCTION_NAMES_STATISTICAL2.COVARIANCE_P="COVARIANCE.P",FUNCTION_NAMES_STATISTICAL2.COVARIANCE_S="COVARIANCE.S",FUNCTION_NAMES_STATISTICAL2.DEVSQ="DEVSQ",FUNCTION_NAMES_STATISTICAL2.EXPON_DIST="EXPON.DIST",FUNCTION_NAMES_STATISTICAL2.F_DIST="F.DIST",FUNCTION_NAMES_STATISTICAL2.F_DIST_RT="F.DIST.RT",FUNCTION_NAMES_STATISTICAL2.F_INV="F.INV",FUNCTION_NAMES_STATISTICAL2.F_INV_RT="F.INV.RT",FUNCTION_NAMES_STATISTICAL2.F_TEST="F.TEST",FUNCTION_NAMES_STATISTICAL2.FISHER="FISHER",FUNCTION_NAMES_STATISTICAL2.FISHERINV="FISHERINV",FUNCTION_NAMES_STATISTICAL2.FORECAST="FORECAST",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS="FORECAST.ETS",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_CONFINT="FORECAST.ETS.CONFINT",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_SEASONALITY="FORECAST.ETS.SEASONALITY",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_STAT="FORECAST.ETS.STAT",FUNCTION_NAMES_STATISTICAL2.FORECAST_LINEAR="FORECAST.LINEAR",FUNCTION_NAMES_STATISTICAL2.FREQUENCY="FREQUENCY",FUNCTION_NAMES_STATISTICAL2.GAMMA="GAMMA",FUNCTION_NAMES_STATISTICAL2.GAMMA_DIST="GAMMA.DIST",FUNCTION_NAMES_STATISTICAL2.GAMMA_INV="GAMMA.INV",FUNCTION_NAMES_STATISTICAL2.GAMMALN="GAMMALN",FUNCTION_NAMES_STATISTICAL2.GAMMALN_PRECISE="GAMMALN.PRECISE",FUNCTION_NAMES_STATISTICAL2.GAUSS="GAUSS",FUNCTION_NAMES_STATISTICAL2.GEOMEAN="GEOMEAN",FUNCTION_NAMES_STATISTICAL2.GROWTH="GROWTH",FUNCTION_NAMES_STATISTICAL2.HARMEAN="HARMEAN",FUNCTION_NAMES_STATISTICAL2.HYPGEOM_DIST="HYPGEOM.DIST",FUNCTION_NAMES_STATISTICAL2.INTERCEPT="INTERCEPT",FUNCTION_NAMES_STATISTICAL2.KURT="KURT",FUNCTION_NAMES_STATISTICAL2.LARGE="LARGE",FUNCTION_NAMES_STATISTICAL2.LINEST="LINEST",FUNCTION_NAMES_STATISTICAL2.LOGEST="LOGEST",FUNCTION_NAMES_STATISTICAL2.LOGNORM_DIST="LOGNORM.DIST",FUNCTION_NAMES_STATISTICAL2.LOGNORM_INV="LOGNORM.INV",FUNCTION_NAMES_STATISTICAL2.MAX="MAX",FUNCTION_NAMES_STATISTICAL2.MAXA="MAXA",FUNCTION_NAMES_STATISTICAL2.MAXIFS="MAXIFS",FUNCTION_NAMES_STATISTICAL2.MEDIAN="MEDIAN",FUNCTION_NAMES_STATISTICAL2.MIN="MIN",FUNCTION_NAMES_STATISTICAL2.MINA="MINA",FUNCTION_NAMES_STATISTICAL2.MINIFS="MINIFS",FUNCTION_NAMES_STATISTICAL2.MODE_MULT="MODE.MULT",FUNCTION_NAMES_STATISTICAL2.MODE_SNGL="MODE.SNGL",FUNCTION_NAMES_STATISTICAL2.NEGBINOM_DIST="NEGBINOM.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_DIST="NORM.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_INV="NORM.INV",FUNCTION_NAMES_STATISTICAL2.NORM_S_DIST="NORM.S.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_S_INV="NORM.S.INV",FUNCTION_NAMES_STATISTICAL2.PEARSON="PEARSON",FUNCTION_NAMES_STATISTICAL2.PERCENTILE_EXC="PERCENTILE.EXC",FUNCTION_NAMES_STATISTICAL2.PERCENTILE_INC="PERCENTILE.INC",FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_EXC="PERCENTRANK.EXC",FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_INC="PERCENTRANK.INC",FUNCTION_NAMES_STATISTICAL2.PERMUT="PERMUT",FUNCTION_NAMES_STATISTICAL2.PERMUTATIONA="PERMUTATIONA",FUNCTION_NAMES_STATISTICAL2.PHI="PHI",FUNCTION_NAMES_STATISTICAL2.POISSON_DIST="POISSON.DIST",FUNCTION_NAMES_STATISTICAL2.PROB="PROB",FUNCTION_NAMES_STATISTICAL2.QUARTILE_EXC="QUARTILE.EXC",FUNCTION_NAMES_STATISTICAL2.QUARTILE_INC="QUARTILE.INC",FUNCTION_NAMES_STATISTICAL2.RANK_AVG="RANK.AVG",FUNCTION_NAMES_STATISTICAL2.RANK_EQ="RANK.EQ",FUNCTION_NAMES_STATISTICAL2.RSQ="RSQ",FUNCTION_NAMES_STATISTICAL2.SKEW="SKEW",FUNCTION_NAMES_STATISTICAL2.SKEW_P="SKEW.P",FUNCTION_NAMES_STATISTICAL2.SLOPE="SLOPE",FUNCTION_NAMES_STATISTICAL2.SMALL="SMALL",FUNCTION_NAMES_STATISTICAL2.STANDARDIZE="STANDARDIZE",FUNCTION_NAMES_STATISTICAL2.STDEV_P="STDEV.P",FUNCTION_NAMES_STATISTICAL2.STDEV_S="STDEV.S",FUNCTION_NAMES_STATISTICAL2.STDEVA="STDEVA",FUNCTION_NAMES_STATISTICAL2.STDEVPA="STDEVPA",FUNCTION_NAMES_STATISTICAL2.STEYX="STEYX",FUNCTION_NAMES_STATISTICAL2.T_DIST="T.DIST",FUNCTION_NAMES_STATISTICAL2.T_DIST_2T="T.DIST.2T",FUNCTION_NAMES_STATISTICAL2.T_DIST_RT="T.DIST.RT",FUNCTION_NAMES_STATISTICAL2.T_INV="T.INV",FUNCTION_NAMES_STATISTICAL2.T_INV_2T="T.INV.2T",FUNCTION_NAMES_STATISTICAL2.T_TEST="T.TEST",FUNCTION_NAMES_STATISTICAL2.TREND="TREND",FUNCTION_NAMES_STATISTICAL2.TRIMMEAN="TRIMMEAN",FUNCTION_NAMES_STATISTICAL2.VAR_P="VAR.P",FUNCTION_NAMES_STATISTICAL2.VAR_S="VAR.S",FUNCTION_NAMES_STATISTICAL2.VARA="VARA",FUNCTION_NAMES_STATISTICAL2.VARPA="VARPA",FUNCTION_NAMES_STATISTICAL2.WEIBULL_DIST="WEIBULL.DIST",FUNCTION_NAMES_STATISTICAL2.Z_TEST="Z.TEST",FUNCTION_NAMES_STATISTICAL2))(FUNCTION_NAMES_STATISTICAL||{});const _Intercept=class _Intercept extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(knownYs,knownXs){const knownYsRowCount=knownYs.isArray()?knownYs.getRowCount():1,knownYsColumnCount=knownYs.isArray()?knownYs.getColumnCount():1,knownXsRowCount=knownXs.isArray()?knownXs.getRowCount():1,knownXsColumnCount=knownXs.isArray()?knownXs.getColumnCount():1;let _knownYs=knownYs;if(knownYs.isArray()&&knownYsRowCount===1&&knownYsColumnCount===1&&(_knownYs=knownYs.get(0,0)),_knownYs.isError())return _knownYs;let _knownXs=knownXs;if(knownXs.isArray()&&knownXsRowCount===1&&knownXsColumnCount===1&&(_knownXs=knownXs.get(0,0)),_knownXs.isError())return _knownXs;if(knownYsRowCount*knownYsColumnCount===1||knownXsRowCount*knownXsColumnCount===1)return knownYs.isNull()||knownXs.isNull()?ErrorValueObject.create(ErrorType$1.VALUE):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(knownYsRowCount*knownYsColumnCount!==knownXsRowCount*knownXsColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(knownYs,knownXs,knownYsRowCount*knownYsColumnCount,knownYsColumnCount,knownXsColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values)}_getResult(knownYs,knownXs){const result=forecastLinear(0,knownYs,knownXs);return Number.isFinite(result)?NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO)}};__name(_Intercept,"Intercept");let Intercept=_Intercept;const _Max=class _Max extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=variant.max()),variant.isError())return variant;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.NEGATIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isLessThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Max,"Max");let Max=_Max;const _Maxa=class _Maxa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&variant.iterator(valueObject=>{let _valueObject=valueObject;if((_valueObject==null||_valueObject.isNull()||_valueObject.isString())&&(_valueObject=NumberValueObject.create(0)),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorAll=_valueObject,!1;accumulatorAll=this._validator(accumulatorAll,_valueObject)}),accumulatorAll.isError())return accumulatorAll;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.NEGATIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isLessThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Maxa,"Maxa");let Maxa=_Maxa;const _Maxifs=class _Maxifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(maxRange,...variants){if(maxRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!maxRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,maxRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(maxRange,booleanResults)}_aggregateResults(maxRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=maxRange.pick(booleanResult);return picked.getColumnCount()===0?ArrayValueObject.create("0"):picked.max()})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Maxifs,"Maxifs");let Maxifs=_Maxifs;const _Min=class _Min extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=variant.min()),variant.isError())return variant;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.POSITIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isGreaterThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Min,"Min");let Min=_Min;const _Mina=class _Mina extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&variant.iterator(valueObject=>{let _valueObject=valueObject;if((_valueObject==null||_valueObject.isNull()||_valueObject.isString())&&(_valueObject=NumberValueObject.create(0)),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorAll=_valueObject,!1;accumulatorAll=this._validator(accumulatorAll,_valueObject)}),accumulatorAll.isError())return accumulatorAll;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.POSITIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isGreaterThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Mina,"Mina");let Mina=_Mina;const _Minifs=class _Minifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(minRange,...variants){if(minRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!minRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,minRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(minRange,booleanResults)}_aggregateResults(minRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=minRange.pick(booleanResult);return picked.getColumnCount()===0?ArrayValueObject.create("0"):picked.min()})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Minifs,"Minifs");let Minifs=_Minifs;const _NormSDist=class _NormSDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(z,cumulative){const maxRowLength=Math.max(z.isArray()?z.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(z.isArray()?z.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),zArray=expandArrayValueObject(maxRowLength,maxColumnLength,z,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=zArray.mapValue((zObject,rowIndex,columnIndex)=>{const cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(zObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(zObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(zObject,cumulativeObject);if(isError)return errorObject;const[_zObject,_cumulativeObject]=variants,zValue=+_zObject.getValue(),cumulativeValue=+_cumulativeObject.getValue();let result;return cumulativeValue?result=normalCDF(zValue,0,1):result=normalPDF(zValue,0,1),NumberValueObject.create(result)}};__name(_NormSDist,"NormSDist");let NormSDist=_NormSDist;const _RankAvg=class _RankAvg extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(number,ref,order){let _number=number;_number.isReferenceObject()&&(_number=_number.toArrayValueObject());const{refHasError,refErrorObject,refNumbers}=this._checkRefReferenceObject(ref);let _order=order!=null?order:NumberValueObject.create(0);_order.isReferenceObject()&&(_order=_order.toArrayValueObject());const maxRowLength=Math.max(_number.isArray()?_number.getRowCount():1,_order.isArray()?_order.getRowCount():1),maxColumnLength=Math.max(_number.isArray()?_number.getColumnCount():1,_order.isArray()?_order.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,_number,ErrorValueObject.create(ErrorType$1.NA)),orderArray=expandArrayValueObject(maxRowLength,maxColumnLength,_order,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const orderObject=orderArray.get(rowIndex,columnIndex);if(!number.isReferenceObject()&&number.isNull())return ErrorValueObject.create(ErrorType$1.NA);if(refHasError)return refErrorObject;if(orderObject.isError())return orderObject;const numberValue=+numberObject.getValue(),orderValue=+orderObject.getValue();return Number.isNaN(numberValue)||Number.isNaN(orderValue)?ErrorValueObject.create(ErrorType$1.VALUE):this._getResult(numberValue,orderValue,refNumbers)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(numberValue,orderValue,refNumbers){const refOrderNumbers=refNumbers.sort((a,b)=>orderValue?a-b:b-a);let index=refOrderNumbers.indexOf(numberValue);const results=[];for(;index>=0;){const start=index+1;results.push(start),index=refOrderNumbers.indexOf(numberValue,start)}if(results.length===0)return ErrorValueObject.create(ErrorType$1.NA);const result=results.reduce((acc,cur)=>acc+cur,0)/results.length;return NumberValueObject.create(result)}_checkRefReferenceObject(ref){let refHasError=!1,refErrorObject=ErrorValueObject.create(ErrorType$1.NA);const refNumbers=[];return ref.isReferenceObject()?(ref.toArrayValueObject().iterator(refObject=>{const _refObject=refObject;if(_refObject.isError())return refHasError=!0,refErrorObject=_refObject,!1;if(_refObject.isNull()||_refObject.isBoolean())return!0;const refValue=+_refObject.getValue();if(Number.isNaN(refValue))return!0;refNumbers.push(refValue)}),{refHasError,refErrorObject,refNumbers}):{refHasError:!0,refErrorObject,refNumbers}}};__name(_RankAvg,"RankAvg");let RankAvg=_RankAvg;const _RankEq=class _RankEq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(number,ref,order){let _number=number;_number.isReferenceObject()&&(_number=_number.toArrayValueObject());const{refHasError,refErrorObject,refNumbers}=this._checkRefReferenceObject(ref);let _order=order!=null?order:NumberValueObject.create(0);_order.isReferenceObject()&&(_order=_order.toArrayValueObject());const maxRowLength=Math.max(_number.isArray()?_number.getRowCount():1,_order.isArray()?_order.getRowCount():1),maxColumnLength=Math.max(_number.isArray()?_number.getColumnCount():1,_order.isArray()?_order.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,_number,ErrorValueObject.create(ErrorType$1.NA)),orderArray=expandArrayValueObject(maxRowLength,maxColumnLength,_order,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const orderObject=orderArray.get(rowIndex,columnIndex);if(!number.isReferenceObject()&&number.isNull())return ErrorValueObject.create(ErrorType$1.NA);if(refHasError)return refErrorObject;if(orderObject.isError())return orderObject;const numberValue=+numberObject.getValue(),orderValue=+orderObject.getValue();if(Number.isNaN(numberValue)||Number.isNaN(orderValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=refNumbers.sort((a,b)=>orderValue?a-b:b-a).indexOf(numberValue);return result===-1?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(result+1)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_checkRefReferenceObject(ref){let refHasError=!1,refErrorObject=ErrorValueObject.create(ErrorType$1.NA);const refNumbers=[];return ref.isReferenceObject()?(ref.toArrayValueObject().iterator(refObject=>{const _refObject=refObject;if(_refObject.isError())return refHasError=!0,refErrorObject=_refObject,!1;if(_refObject.isNull()||_refObject.isBoolean())return!0;const refValue=+_refObject.getValue();if(Number.isNaN(refValue))return!0;refNumbers.push(refValue)}),{refHasError,refErrorObject,refNumbers}):{refHasError:!0,refErrorObject,refNumbers}}};__name(_RankEq,"RankEq");let RankEq=_RankEq;const _Stdeva=class _Stdeva extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.std(1)}};__name(_Stdeva,"Stdeva");let Stdeva=_Stdeva;const _Stdevpa=class _Stdevpa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.std()}};__name(_Stdevpa,"Stdevpa");let Stdevpa=_Stdevpa;const _Vara=class _Vara extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.var(1)}};__name(_Vara,"Vara");let Vara=_Vara;const _Varpa=class _Varpa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.var()}};__name(_Varpa,"Varpa");let Varpa=_Varpa;const functionStatistical=[[Avedev,FUNCTION_NAMES_STATISTICAL.AVEDEV],[Average,FUNCTION_NAMES_STATISTICAL.AVERAGE],[Averagea,FUNCTION_NAMES_STATISTICAL.AVERAGEA],[Averageif,FUNCTION_NAMES_STATISTICAL.AVERAGEIF],[Averageifs,FUNCTION_NAMES_STATISTICAL.AVERAGEIFS],[BetaDist,FUNCTION_NAMES_STATISTICAL.BETA_DIST],[BetaInv,FUNCTION_NAMES_STATISTICAL.BETA_INV],[BinomDist,FUNCTION_NAMES_STATISTICAL.BINOM_DIST],[BinomDistRange,FUNCTION_NAMES_STATISTICAL.BINOM_DIST_RANGE],[BinomInv,FUNCTION_NAMES_STATISTICAL.BINOM_INV],[ChisqDist,FUNCTION_NAMES_STATISTICAL.CHISQ_DIST],[ChisqDistRt,FUNCTION_NAMES_STATISTICAL.CHISQ_DIST_RT],[ChisqInv,FUNCTION_NAMES_STATISTICAL.CHISQ_INV],[ChisqInvRt,FUNCTION_NAMES_STATISTICAL.CHISQ_INV_RT],[ChisqTest,FUNCTION_NAMES_STATISTICAL.CHISQ_TEST],[ConfidenceNorm,FUNCTION_NAMES_STATISTICAL.CONFIDENCE_NORM],[ConfidenceT,FUNCTION_NAMES_STATISTICAL.CONFIDENCE_T],[Correl,FUNCTION_NAMES_STATISTICAL.CORREL],[Count,FUNCTION_NAMES_STATISTICAL.COUNT],[Counta,FUNCTION_NAMES_STATISTICAL.COUNTA],[Countblank,FUNCTION_NAMES_STATISTICAL.COUNTBLANK],[Countif,FUNCTION_NAMES_STATISTICAL.COUNTIF],[Countifs,FUNCTION_NAMES_STATISTICAL.COUNTIFS],[CovarianceP,FUNCTION_NAMES_STATISTICAL.COVARIANCE_P],[CovarianceS,FUNCTION_NAMES_STATISTICAL.COVARIANCE_S],[Devsq,FUNCTION_NAMES_STATISTICAL.DEVSQ],[ExponDist,FUNCTION_NAMES_STATISTICAL.EXPON_DIST],[FDist,FUNCTION_NAMES_STATISTICAL.F_DIST],[FDistRt,FUNCTION_NAMES_STATISTICAL.F_DIST_RT],[FInv,FUNCTION_NAMES_STATISTICAL.F_INV],[FInvRt,FUNCTION_NAMES_STATISTICAL.F_INV_RT],[FTest,FUNCTION_NAMES_STATISTICAL.F_TEST],[Fisher,FUNCTION_NAMES_STATISTICAL.FISHER],[Fisherinv,FUNCTION_NAMES_STATISTICAL.FISHERINV],[Forecast,FUNCTION_NAMES_STATISTICAL.FORECAST],[Forecast,FUNCTION_NAMES_STATISTICAL.FORECAST_LINEAR],[Intercept,FUNCTION_NAMES_STATISTICAL.INTERCEPT],[Max,FUNCTION_NAMES_STATISTICAL.MAX],[Maxa,FUNCTION_NAMES_STATISTICAL.MAXA],[Maxifs,FUNCTION_NAMES_STATISTICAL.MAXIFS],[Min,FUNCTION_NAMES_STATISTICAL.MIN],[Mina,FUNCTION_NAMES_STATISTICAL.MINA],[Minifs,FUNCTION_NAMES_STATISTICAL.MINIFS],[NormDist,FUNCTION_NAMES_STATISTICAL.NORM_DIST],[NormInv,FUNCTION_NAMES_STATISTICAL.NORM_INV],[NormSDist,FUNCTION_NAMES_STATISTICAL.NORM_S_DIST],[NormSInv,FUNCTION_NAMES_STATISTICAL.NORM_S_INV],[RankAvg,FUNCTION_NAMES_STATISTICAL.RANK_AVG],[RankEq,FUNCTION_NAMES_STATISTICAL.RANK_EQ],[StdevP,FUNCTION_NAMES_STATISTICAL.STDEV_P],[StdevS,FUNCTION_NAMES_STATISTICAL.STDEV_S],[Stdeva,FUNCTION_NAMES_STATISTICAL.STDEVA],[Stdevpa,FUNCTION_NAMES_STATISTICAL.STDEVPA],[VarP,FUNCTION_NAMES_STATISTICAL.VAR_P],[VarS,FUNCTION_NAMES_STATISTICAL.VAR_S],[Vara,FUNCTION_NAMES_STATISTICAL.VARA],[Varpa,FUNCTION_NAMES_STATISTICAL.VARPA]],_Arraytotext=class _Arraytotext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(array,format){let _format=format!=null?format:NumberValueObject.create(0);if(format!=null&&format.isNull()&&(_format=NumberValueObject.create(0)),_format.isArray()){const resultArray=_format.mapValue(formatObject=>this._handleSingleObject(array,formatObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(array,_format)}_handleSingleObject(array,format){const _array=this._checkArray(array);if(_array.isError())return _array;const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(format);if(isError)return errorObject;const[formatObject]=variants,formatValue=+formatObject.getValue(),arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;let result="";for(let r=0;r<arrayRowCount;r++)for(let c=0;c<arrayColumnCount;c++){const valueObject=array.isArray()?array.get(r,c):array;let value=`${valueObject.getValue()}`;valueObject.isNull()&&(value=""),valueObject.isBoolean()&&(value=value.toLocaleUpperCase()),valueObject.isString()&&formatValue?result+=`"${value}"`:result+=value,r===arrayRowCount-1&&c===arrayColumnCount-1||(formatValue?c===arrayColumnCount-1?result+=";":result+=",":result+=", ")}return formatValue&&(result=`{${result}}`),result.length>32767?ErrorValueObject.create(ErrorType$1.CALC):StringValueObject.create(result)}_checkArray(array){if(array.isArray()){const arrayRowCount=array.getRowCount(),arrayColumnCount=array.getColumnCount();return arrayRowCount>1||arrayColumnCount>1?array:array.get(0,0)}return array}};__name(_Arraytotext,"Arraytotext");let Arraytotext=_Arraytotext;const _Asc=class _Asc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){if(text.isArray()){const resultArray=text.mapValue(textObject=>this._handleSingleObject(textObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(text)}_handleSingleObject(text){if(text.isError()||text.isNull()||text.isBoolean()||text.isNumber())return text;const textValue=text.getValue().toLocaleString();let result="";for(let i=0;i<textValue.length;i++){let charCode=textValue.charCodeAt(i);charCode===12288?charCode=32:charCode>=65281&&charCode<=65374&&(charCode-=65248),result+=String.fromCharCode(charCode)}return StringValueObject.create(result)}};__name(_Asc,"Asc");let Asc=_Asc;const _Bahttext=class _Bahttext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){if(number.isArray()){const resultArray=number.mapValue(numberObject=>this._handleSingleObject(numberObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(number)}_handleSingleObject(number){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=+numberObject.getValue(),integerPart=Math.abs(Number.parseInt(numberValue.toString(),10)),decimalPart=Number.parseFloat((Math.abs(numberValue)-integerPart).toFixed(2));let result="";return integerPart===0?decimalPart!==0?result=`${numberValue<0?"ลบ":""}${this._convertNumberToThaiText(decimalPart*100)}สตางค์`:result="ศูนย์บาทถ้วน":decimalPart===0?result=`${numberValue<0?"ลบ":""}${this._convertNumberToThaiText(integerPart)}บาทถ้วน`:result=`${numberValue<0?"ลบ":""}${this._convertNumberToThaiText(integerPart)}บาท${this._convertNumberToThaiText(decimalPart*100)}สตางค์`,StringValueObject.create(result)}_convertNumberToThaiText(number){const units=["ล้าน","สิบ","ร้อย","พัน","หมื่น","แสน",""],digits=["ศูนย์","หนึ่ง","สอง","สาม","สี่","ห้า","หก","เจ็ด","แปด","เก้า"],special=["ลบ","บาท","ถ้วน","สตางค์","ยี่","เอ็ด",","," ","฿"],numberText=number.toString(),n=numberText.length;let result="";for(let i=n;i>0;i--){const digit=Number.parseInt(numberText.charAt(n-i),10);let digitText=digits[digit];const position=i>1?(i-1)%6:6;if(position===1&&digit===2&&(digitText=special[4]),digit===1)switch(position){case 0:case 6:result+=i<n?special[5]:digitText;break;case 1:break;default:result+=digitText;break}else if(digit===0){position===0&&(result+=units[position]);continue}else result+=digitText;result+=units[position]}return result}};__name(_Bahttext,"Bahttext");let Bahttext=_Bahttext;const filterCodeArray$1=Object.values(core.DataStreamTreeTokenType).filter(value=>[core.DataStreamTreeTokenType.TABLE_START,core.DataStreamTreeTokenType.TABLE_ROW_START,core.DataStreamTreeTokenType.TABLE_CELL_START,core.DataStreamTreeTokenType.TABLE_CELL_END,core.DataStreamTreeTokenType.TABLE_ROW_END,core.DataStreamTreeTokenType.TABLE_END,core.DataStreamTreeTokenType.CUSTOM_RANGE_START,core.DataStreamTreeTokenType.CUSTOM_RANGE_END,core.DataStreamTreeTokenType.CUSTOM_BLOCK].includes(value)),_Char=class _Char extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){if(number.isArray()){const resultArray=number.mapValue(numberObject=>this._handleSingleObject(numberObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(number)}_handleSingleObject(number){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.floor(+numberObject.getValue());if(numberValue<=0)return ErrorValueObject.create(ErrorType$1.VALUE);let result=String.fromCharCode(numberValue);return filterCodeArray$1.some(value=>value===result)&&(result=""),StringValueObject.create(result)}};__name(_Char,"Char");let Char=_Char;const _Clean=class _Clean extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){if(text.isArray()){const resultArray=text.mapValue(textObject=>this._handleSingleObject(textObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(text)}_handleSingleObject(text){if(text.isError()||text.isBoolean()||text.isNumber())return text;if(text.isNull())return StringValueObject.create("");const result=`${text.getValue()}`.replace(/[\0-\x1F]/g,"");return StringValueObject.create(result)}};__name(_Clean,"Clean");let Clean=_Clean;const _Code=class _Code extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){if(text.isArray()){const resultArray=text.mapValue(textObject=>this._handleSingleObject(textObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(text)}_handleSingleObject(text){if(text.isError())return text;if(text.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);let textValue=text.getValue().toLocaleString();if(text.isBoolean()&&(textValue=textValue.toLocaleUpperCase()),textValue==="")return ErrorValueObject.create(ErrorType$1.VALUE);const result=textValue.charCodeAt(0);return NumberValueObject.create(result)}};__name(_Code,"Code");let Code=_Code;const _Concat=class _Concat extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...textValues){let concatenatedString="",isError=null;for(const textValue of textValues)if(textValue.isArray()){if(textValue.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;if(valueObject.isError())return isError=valueObject,!1;valueObject.isBoolean()?concatenatedString+=`${valueObject.getValue()}`.toLocaleUpperCase():(valueObject.isString()||valueObject.isNumber())&&(concatenatedString+=valueObject.getValue())}),isError)return isError}else!textValue.isError()&&!textValue.isNull()&&(concatenatedString+=textValue.getValue());return StringValueObject.create(concatenatedString)}};__name(_Concat,"Concat");let Concat=_Concat;const _Concatenate=class _Concatenate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...textValues){let maxRowLength=0,maxColumnLength=0;textValues.forEach(textValue=>{if(textValue.isArray()){const arrayValue=textValue;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)});let result=null;for(const textValue of textValues)result=expandArrayValueObject(maxRowLength,maxColumnLength,textValue,ErrorValueObject.create(ErrorType$1.NA)).mapValue((textValueObject,rowIndex,columnIndex)=>{const resultValueObject=result&&result.get(rowIndex,columnIndex);if(resultValueObject!=null&&resultValueObject.isError())return resultValueObject;if(textValueObject.isError())return textValueObject;let resultValue=resultValueObject==null?void 0:resultValueObject.getValue(),textValue2=textValueObject==null?void 0:textValueObject.getValue();resultValueObject!=null&&resultValueObject.isBoolean()&&(resultValue=`${resultValue}`.toLocaleUpperCase()),textValueObject!=null&&textValueObject.isBoolean()&&(textValue2=`${textValue2}`.toLocaleUpperCase());const resultValueObjectString=resultValueObject!=null&&resultValueObject.isNull()?"":resultValue!=null?resultValue:"",textValueObjectString=textValueObject!=null&&textValueObject.isNull()?"":textValue2!=null?textValue2:"";return StringValueObject.create(`${resultValueObjectString}${textValueObjectString}`)});return result||ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Concatenate,"Concatenate");let Concatenate=_Concatenate;const _Dbcs=class _Dbcs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){if(text.isArray()){const resultArray=text.mapValue(textObject=>this._handleSingleObject(textObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(text)}_handleSingleObject(text){if(text.isError())return text;if(text.isNull())return StringValueObject.create("");let textValue=`${text.getValue()}`;text.isBoolean()&&(textValue=textValue.toLocaleUpperCase());let result="";for(let i=0;i<textValue.length;i++){const char=textValue.charCodeAt(i);char>=33&&char<=126?result+=String.fromCharCode(char+65248):char===32?result+=" ":result+=textValue.charAt(i)}return StringValueObject.create(result)}};__name(_Dbcs,"Dbcs");let Dbcs=_Dbcs;const _Dollar=class _Dollar extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2);__publicField(this,"needsLocale",!0)}calculate(number,decimals){let _decimals=decimals!=null?decimals:NumberValueObject.create(2);_decimals.isNull()&&(_decimals=NumberValueObject.create(2));const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_decimals.isArray()?_decimals.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_decimals.isArray()?_decimals.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),decimalsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_decimals,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.mapValue((numberObject,rowIndex,columnIndex)=>{const decimalsObject=decimalsArray.get(rowIndex,columnIndex);return numberObject.isError()?numberObject:decimalsObject.isError()?decimalsObject:this._handleSingleObject(numberObject,decimalsObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(number,decimals){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(number,decimals);if(isError)return errorObject;const[numberObject,decimalsObject]=variants;let numberValue=+numberObject.getValue(),decimalsValue=Math.trunc(+decimalsObject.getValue());if(decimalsValue>127)return ErrorValueObject.create(ErrorType$1.VALUE);decimalsValue<0&&(`${numberValue}`.length<Math.abs(decimalsValue)?numberValue=0:numberValue=numberValue<0?-round(Math.abs(numberValue),decimalsValue):round(numberValue,decimalsValue),decimalsValue=0);const result=applyCurrencyFormat(this.getLocale(),numberValue,decimalsValue);return StringValueObject.create(result)}};__name(_Dollar,"Dollar");let Dollar=_Dollar;const _Exact=class _Exact extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text1,text2){const maxRowLength=Math.max(text1.isArray()?text1.getRowCount():1,text2.isArray()?text2.getRowCount():1),maxColumnLength=Math.max(text1.isArray()?text1.getColumnCount():1,text2.isArray()?text2.getColumnCount():1),text1Array=expandArrayValueObject(maxRowLength,maxColumnLength,text1,NullValueObject.create()),text2Array=expandArrayValueObject(maxRowLength,maxColumnLength,text2,NullValueObject.create()),resultArray=text1Array.mapValue((text1Object,rowIndex,columnIndex)=>{const text2Object=text2Array.get(rowIndex,columnIndex);return text1Object.isError()?text1Object:text2Object.isError()?text2Object:this._handleSingleObject(text1Object,text2Object)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(text1,text2){if(text1.isNull()||text2.isNull()){const result2=text1.isNull()&&text2.isNull();return BooleanValueObject.create(result2)}let text1Value=`${text1.getValue()}`;text1.isBoolean()&&(text1Value=text1Value.toLocaleUpperCase());let text2Value=`${text2.getValue()}`;text2.isBoolean()&&(text2Value=text2Value.toLocaleUpperCase());const result=text1Value===text2Value;return BooleanValueObject.create(result)}};__name(_Exact,"Exact");let Exact=_Exact;const getFormatPreview=__name((pattern,value)=>core.numfmt.format(pattern,value,{throws:!1}),"getFormatPreview"),_Fixed=class _Fixed extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(number,decimals,noCommas){let _decimals=decimals!=null?decimals:NumberValueObject.create(2);_decimals.isNull()&&(_decimals=NumberValueObject.create(2));let _noCommas=noCommas!=null?noCommas:BooleanValueObject.create(!1);_noCommas.isNull()&&(_noCommas=BooleanValueObject.create(!1));const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_decimals.isArray()?_decimals.getRowCount():1,_noCommas.isArray()?_noCommas.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_decimals.isArray()?_decimals.getColumnCount():1,_noCommas.isArray()?_noCommas.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),decimalsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_decimals,ErrorValueObject.create(ErrorType$1.NA)),noCommasArray=expandArrayValueObject(maxRowLength,maxColumnLength,_noCommas,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.mapValue((numberObject,rowIndex,columnIndex)=>{const decimalsObject=decimalsArray.get(rowIndex,columnIndex),noCommasObject=noCommasArray.get(rowIndex,columnIndex);return numberObject.isError()?numberObject:decimalsObject.isError()?decimalsObject:noCommasObject.isError()?noCommasObject:this._handleSingleObject(numberObject,decimalsObject,noCommasObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(number,decimals,noCommas){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(number,decimals,noCommas);if(isError)return errorObject;const[numberObject,decimalsObject,noCommasObject]=variants;let numberValue=+numberObject.getValue(),decimalsValue=Math.trunc(+decimalsObject.getValue());const noCommasValue=+noCommasObject.getValue();if(decimalsValue>127)return ErrorValueObject.create(ErrorType$1.VALUE);decimalsValue<0&&(`${numberValue}`.length<Math.abs(decimalsValue)?numberValue=0:numberValue=numberValue<0?-round(Math.abs(numberValue),decimalsValue):round(numberValue,decimalsValue),decimalsValue=0);let pattern=noCommasValue?"###0":"#,##0";decimalsValue>0&&(pattern+=`.${"0".repeat(decimalsValue)}`);const result=getFormatPreview(pattern,numberValue);return StringValueObject.create(result)}};__name(_Fixed,"Fixed");let Fixed=_Fixed;function charLenByte(text){let byteCount=0;for(let i=0;i<text.length;i++)byteCount+=getCharLenByteInText(text,i);return byteCount}__name(charLenByte,"charLenByte");function getCharLenByteInText(text,charIndex,direction="ltr"){return getCodePoint(text,charIndex,direction)>255?2:1}__name(getCharLenByteInText,"getCharLenByteInText");function highSurrogate(charCode){return charCode>=55296&&charCode<=56319}__name(highSurrogate,"highSurrogate");function lowSurrogate(charCode){return charCode>=56320&&charCode<=57343}__name(lowSurrogate,"lowSurrogate");function surrogatePair(highSurrogate2,lowSurrogate2){const highBits=(highSurrogate2&1023)<<10,lowBits=lowSurrogate2&1023;return highBits+lowBits+65536}__name(surrogatePair,"surrogatePair");function getCodePoint(str,index,direction="ltr"){const charCode=str.charCodeAt(index);if(direction==="ltr"&&highSurrogate(charCode)&&index+1<str.length){const nextCharCode=str.charCodeAt(index+1);if(lowSurrogate(nextCharCode))return surrogatePair(charCode,nextCharCode)}if(direction==="rtl"&&lowSurrogate(charCode)&&index-1>=0){const prevCharCode=str.charCodeAt(index-1);if(highSurrogate(prevCharCode))return surrogatePair(prevCharCode,charCode)}return charCode}__name(getCodePoint,"getCodePoint");const _Leftb=class _Leftb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(text,numBytes){const _numBytes=numBytes!=null?numBytes:NumberValueObject.create(1),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_numBytes.isArray()?_numBytes.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_numBytes.isArray()?_numBytes.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,NullValueObject.create()),numBytesArray=expandArrayValueObject(maxRowLength,maxColumnLength,_numBytes,NullValueObject.create()),resultArray=textArray.mapValue((textObject,rowIndex,columnIndex)=>{const numBytesObject=numBytesArray.get(rowIndex,columnIndex);return textObject.isError()?textObject:numBytesObject.isError()?numBytesObject:this._handleSingleObject(textObject,numBytesObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(text,numBytes){let textValue=`${text.getValue()}`;text.isBoolean()&&(textValue=textValue.toLocaleUpperCase());const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(numBytes);if(isError)return errorObject;const[numBytesObject]=variants,numBytesValue=Math.floor(+numBytesObject.getValue());if(numBytesValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(text.isNull()||numBytesValue===0)return StringValueObject.create("");let index=0,lenByte=0,result="";for(;lenByte<numBytesValue&&index<textValue.length;)lenByte+=getCharLenByteInText(textValue,index),result+=textValue.charAt(index),index++;return StringValueObject.create(result)}};__name(_Leftb,"Leftb");let Leftb=_Leftb;const _Len=class _Len extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return NumberValueObject.create(0);if(text.isNumber()){const numberValue=text.getValue(),numberValueString=stripErrorMargin(numberValue,12,Number.EPSILON).toString();return NumberValueObject.create(numberValueString.length)}if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString();return NumberValueObject.create(textValue.length)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Len,"Len");let Len=_Len;const _Lenb=class _Lenb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return NumberValueObject.create(0);if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=`${text.getValue()}`,textByteLen=charLenByte(textValue);return NumberValueObject.create(textByteLen)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lenb,"Lenb");let Lenb=_Lenb;const _Lower=class _Lower extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return StringValueObject.create("");if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString().toLowerCase();return StringValueObject.create(textValue)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lower,"Lower");let Lower=_Lower;const _Mid=class _Mid extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(withinText,startNum,numChars){if(withinText.isError())return withinText;if(startNum.isError())return startNum;if(numChars.isError())return numChars;const maxRowLength=Math.max(withinText.isArray()?withinText.getRowCount():1,startNum.isArray()?startNum.getRowCount():1,numChars.isArray()?numChars.getRowCount():1),maxColumnLength=Math.max(withinText.isArray()?withinText.getColumnCount():1,startNum.isArray()?startNum.getColumnCount():1,numChars.isArray()?numChars.getColumnCount():1),withinTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,withinText),startNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,startNum),numCharsArray=expandArrayValueObject(maxRowLength,maxColumnLength,numChars);return withinTextArray.map((withinTextValue,rowIndex,columnIndex)=>this._handleSingleText(withinTextValue,rowIndex,columnIndex,startNumArray,numCharsArray))}_handleSingleText(withinTextValue,rowIndex,columnIndex,startNumArray,numCharsArray){let startNumValue=startNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),numCharsValue=numCharsArray.get(rowIndex,columnIndex)||NullValueObject.create();if(startNumValue.isError())return startNumValue;if(numCharsValue.isError())return numCharsValue;let withinTextValueString=withinTextValue.getValue();if(withinTextValue.isNull()&&(withinTextValueString=""),withinTextValue.isBoolean()&&(withinTextValueString=withinTextValueString?"TRUE":"FALSE"),withinTextValueString=`${withinTextValueString}`,(startNumValue.isString()||startNumValue.isBoolean()||startNumValue.isNull())&&(startNumValue=startNumValue.convertToNumberObjectValue()),startNumValue.isError())return startNumValue;if((numCharsValue.isString()||numCharsValue.isBoolean()||numCharsValue.isNull())&&(numCharsValue=numCharsValue.convertToNumberObjectValue()),numCharsValue.isError())return numCharsValue;const startNumValueNumber=Math.floor(+startNumValue.getValue())-1,numCharsValueNumber=numCharsValue.getValue();return startNumValueNumber<0||numCharsValueNumber<0?ErrorValueObject.create(ErrorType$1.VALUE):StringValueObject.create(withinTextValueString.substring(startNumValueNumber,startNumValueNumber+numCharsValueNumber))}};__name(_Mid,"Mid");let Mid=_Mid;const numberRange=__name(()=>[{type:4,from:48,to:57}],"numberRange"),alphaNumericChars=__name(()=>[{type:7,value:95},{type:4,from:97,to:122},{type:4,from:65,to:90},{type:4,from:48,to:57}],"alphaNumericChars"),whitespaceChars=__name(()=>[{type:7,value:9},{type:7,value:10},{type:7,value:11},{type:7,value:12},{type:7,value:13},{type:7,value:32},{type:7,value:160},{type:7,value:5760},{type:4,from:8192,to:8202},{type:7,value:8232},{type:7,value:8233},{type:7,value:8239},{type:7,value:8287},{type:7,value:12288},{type:7,value:65279}],"whitespaceChars"),words=__name(()=>({type:3,set:alphaNumericChars(),not:!1}),"words"),notWords=__name(()=>({type:3,set:alphaNumericChars(),not:!0}),"notWords"),ints=__name(()=>({type:3,set:numberRange(),not:!1}),"ints"),notInts=__name(()=>({type:3,set:numberRange(),not:!0}),"notInts"),whitespace=__name(()=>({type:3,set:whitespaceChars(),not:!1}),"whitespace"),notWhitespace=__name(()=>({type:3,set:whitespaceChars(),not:!0}),"notWhitespace"),anyChar=__name(()=>({type:3,set:[{type:7,value:10},{type:7,value:13},{type:7,value:8232},{type:7,value:8233}],not:!0}),"anyChar");function tokenizer(regExpString){const root={type:0,stack:[]};let currentScope=root,stack=root.stack;const groups=[],references=[];let captureCount=0;const throwError=__name(index=>{throw new SyntaxError(`Invalid regular expression: /${regExpString}/: Nothing to repeat at column ${index-1}`)},"throwError"),strChars=strToChars(regExpString);let i=0,char;for(;i<strChars.length;)switch(char=strChars[i++],char){case"\\":if(i===strChars.length)throw new SyntaxError(`Invalid regular expression: /${regExpString}/: \\ at end of pattern`);switch(char=strChars[i++],char){case"b":stack.push({type:2,value:"b"});break;case"B":stack.push({type:2,value:"B"});break;case"w":stack.push(words());break;case"W":stack.push(notWords());break;case"d":stack.push(ints());break;case"D":stack.push(notInts());break;case"s":stack.push(whitespace());break;case"S":stack.push(notWhitespace());break;default:if(/\d/.test(char)){for(;/\d/.test(strChars[i])&&i<strChars.length;)char+=strChars[i++];const num=Number.parseInt(char,10);stack.push({type:6,value:num}),references.push({reference:{type:6,value:num},stack,index:stack.length-1})}else stack.push({type:7,value:char.charCodeAt(0)})}break;case"^":stack.push({type:2,value:"^"});break;case"$":stack.push({type:2,value:"$"});break;case"[":{const negated=strChars[i]==="^";negated&&i++;const classTokens=tokenizeClass(strChars.slice(i),regExpString);i+=classTokens[1],stack.push({type:3,set:classTokens[0],not:negated});break}case".":stack.push(anyChar());break;case"(":{const group={type:1,stack:[],remember:!0};if(strChars[i]==="?"){const nextChar=strChars[i+1];if(i+=2,nextChar==="=")group.followedBy=!0;else if(nextChar==="!")group.notFollowedBy=!0;else if(nextChar!==":")throw new SyntaxError(`Invalid regular expression: /${regExpString}/: Invalid group, character '${nextChar}' after '?' at column ${i-1}`);group.remember=!1}else captureCount+=1;stack.push(group),groups.push(currentScope),currentScope=group,stack=group.stack;break}case")":if(groups.length===0)throw new SyntaxError(`Invalid regular expression: /${regExpString}/: Unmatched ) at column ${i-1}`);currentScope=groups.pop(),stack=currentScope.options?currentScope.options[currentScope.options.length-1]:currentScope.stack;break;case"|":{currentScope.options||(currentScope.options=[currentScope.stack],delete currentScope.stack);const newOption=[];currentScope.options.push(newOption),stack=newOption;break}case"{":{const match=/^(\d+)(,(\d+)?)?\}/.exec(strChars.slice(i));if(match){stack.length===0&&throwError(i);const min2=Number.parseInt(match[1],10),max2=match[2]?match[3]?Number.parseInt(match[3],10):1/0:min2;i+=match[0].length,stack.push({type:5,min:min2,max:max2,value:stack.pop()})}else stack.push({type:7,value:123});break}case"?":stack.length===0&&throwError(i),stack.push({type:5,min:0,max:1,value:stack.pop()});break;case"+":stack.length===0&&throwError(i),stack.push({type:5,min:1,max:1/0,value:stack.pop()});break;case"*":stack.length===0&&throwError(i),stack.push({type:5,min:0,max:1/0,value:stack.pop()});break;default:stack.push({type:7,value:char.charCodeAt(0)})}if(groups.length>0)throw new SyntaxError(`Invalid regular expression: /${regExpString}/: Unterminated group`);return processReferences(references,captureCount),root}__name(tokenizer,"tokenizer");function tokenizeClass(input,pattern){let match;const tokens=[],regex=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(match=regex.exec(input))!==null;){let token=null;const[,_words,_digit,_space,_notWords,_notDigit,_notSpace,range,rangeFrom,rangeTo,char]=match;if(_words||_digit||_space||_notWords||_notDigit||_notSpace?token=(()=>{let result={type:3,set:[],not:!1};return _words?result=words():_digit?result=ints():_space?result=whitespace():_notWords?result=notWords():_notDigit?result=notInts():_notSpace&&(result=notWhitespace()),result})():range&&char?token={type:4,from:(rangeFrom||rangeTo).charCodeAt(0),to:char.charCodeAt(char.length-1)}:match[16]&&(token={type:7,value:match[16].charCodeAt(0)}),!token)return[tokens,regex.lastIndex];tokens.push(token)}throw new SyntaxError(`Invalid regular expression: /${pattern}/: Unterminated character class`)}__name(tokenizeClass,"tokenizeClass");function strToChars(str){return str.replace(/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g,(match,backspace,escapeChar,unicode,hex,ctrl,special)=>{if(escapeChar)return match;let charCode;backspace?charCode=8:unicode?charCode=Number.parseInt(unicode,16):hex?charCode=Number.parseInt(hex,16):ctrl?charCode="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?".indexOf(ctrl):charCode={0:0,t:9,n:10,v:11,f:12,r:13}[special];const char=String.fromCharCode(charCode);return/[[\]{}^$.|?*+()]/.test(char)?`\\${char}`:char})}__name(strToChars,"strToChars");function processReferences(references,captureCount){for(const ref of references.reverse()){const value=ref.reference.value;if(captureCount<value){ref.reference.type=7;const valueStr=value.toString();if(ref.reference.value=Number.parseInt(valueStr,8),!/^[0-7]+$/.test(valueStr)){let startIndex=0;for(;valueStr[startIndex]!=="8"&&valueStr[startIndex]!=="9"&&startIndex<valueStr.length;)startIndex+=1;if(startIndex===0?(ref.reference.value=valueStr.charCodeAt(0),startIndex+=1):ref.reference.value=Number.parseInt(valueStr.slice(0,startIndex),8),valueStr.length>startIndex){const remainingStack=ref.stack.splice(ref.index+1);for(const char of valueStr.slice(startIndex))ref.stack.push({type:7,value:char.charCodeAt(0)});ref.stack.push(...remainingStack)}}}}}__name(processReferences,"processReferences");function handleRegExp(regExpString,isGlobal){if(!isValidRegExp(regExpString))return{isError:!0,regExp:null};try{const regExp=new RegExp(regExpString,isGlobal?"ug":"u");return isSafeRegExp(regExp)?{isError:!1,regExp}:{isError:!0,regExp:null}}catch{return{isError:!0,regExp:null}}}__name(handleRegExp,"handleRegExp");function isValidRegExp(regExpString){return!(/\(\?<=.*?\)/g.test(regExpString)&&!/\[.*?(\?<=.*?)\]/g.test(regExpString)||/\(\?<!.*?\)/g.test(regExpString)&&!/\[.*?(\?<!.*?)\]/g.test(regExpString))}__name(isValidRegExp,"isValidRegExp");function isSafeRegExp(regExp,options){let str;Object.prototype.toString.call(regExp)==="[object RegExp]"?str=regExp.source:regExp&&typeof regExp!="string"&&(str=`${regExp}`);let tokens;try{tokens=tokenizer(str)}catch{return!1}let count=0;const validateToken=__name((token,depth)=>{let _depth=depth;if(token.type===5&&(_depth++,count++,_depth>1||count>25))return!1;if(token.options){for(const option of token.options)if(!validateToken({stack:option},_depth))return!1}const stack=token.stack||token.value&&token.value.stack;if(!stack)return!0;for(const item of stack)if(!validateToken(item,_depth))return!1;return!0},"validateToken");return validateToken(tokens,0)}__name(isSafeRegExp,"isSafeRegExp");const _Regexextract=class _Regexextract extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,regularExpression){const{isError,errorObject,variants}=checkVariantsErrorIsArray(text,regularExpression);if(isError)return errorObject;const[textObject,regularExpressionObject]=variants;let textValue=textObject.getValue();textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue=`${textValue}`;let regularExpressionValue=regularExpressionObject.getValue();regularExpressionObject.isNull()&&(regularExpressionValue=""),regularExpressionObject.isBoolean()&&(regularExpressionValue=regularExpressionValue?"TRUE":"FALSE"),regularExpressionValue=`${regularExpressionValue}`;const{isError:isError_regExp,regExp}=handleRegExp(regularExpressionValue,!1);if(isError_regExp)return ErrorValueObject.create(ErrorType$1.REF);const result=textValue.match(regExp);if(result===null)return ErrorValueObject.create(ErrorType$1.NA);if(result.length>1){const resultArray=result.slice(1).map(item=>StringValueObject.create(item));return resultArray.length>1?ArrayValueObject.create({calculateValueList:[resultArray],rowCount:1,columnCount:resultArray.length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}):resultArray[0]}return StringValueObject.create(result[0])}};__name(_Regexextract,"Regexextract");let Regexextract=_Regexextract;const _Regexmatch=class _Regexmatch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,regularExpression){const{isError,errorObject,variants}=checkVariantsErrorIsArray(text,regularExpression);if(isError)return errorObject;const[textObject,regularExpressionObject]=variants;let textValue=textObject.getValue();textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue=`${textValue}`;let regularExpressionValue=regularExpressionObject.getValue();regularExpressionObject.isNull()&&(regularExpressionValue=""),regularExpressionObject.isBoolean()&&(regularExpressionValue=regularExpressionValue?"TRUE":"FALSE"),regularExpressionValue=`${regularExpressionValue}`;const{isError:isError_regExp,regExp}=handleRegExp(regularExpressionValue,!1);return isError_regExp?ErrorValueObject.create(ErrorType$1.REF):textValue.match(regExp)===null?BooleanValueObject.create(!1):BooleanValueObject.create(!0)}};__name(_Regexmatch,"Regexmatch");let Regexmatch=_Regexmatch;const _Regexreplace=class _Regexreplace extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(text,regularExpression,replacement){const{isError,errorObject,variants}=checkVariantsErrorIsArray(text,regularExpression,replacement);if(isError)return errorObject;const[textObject,regularExpressionObject,replacementObject]=variants;let textValue=textObject.getValue();textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue=`${textValue}`;let regularExpressionValue=regularExpressionObject.getValue();regularExpressionObject.isNull()&&(regularExpressionValue=""),regularExpressionObject.isBoolean()&&(regularExpressionValue=regularExpressionValue?"TRUE":"FALSE"),regularExpressionValue=`${regularExpressionValue}`;let replacementValue=replacementObject.getValue();replacementObject.isNull()&&(replacementValue=""),replacementObject.isBoolean()&&(replacementValue=replacementValue?"TRUE":"FALSE"),replacementValue=`${replacementValue}`;const{isError:isError_regExp,regExp}=handleRegExp(regularExpressionValue,!0);if(isError_regExp)return ErrorValueObject.create(ErrorType$1.REF);const result=textValue.replace(regExp,replacementValue);return StringValueObject.create(result)}};__name(_Regexreplace,"Regexreplace");let Regexreplace=_Regexreplace;const _Numbervalue=class _Numbervalue extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(text,decimalSeparator,groupSeparator){const _decimalSeparator=decimalSeparator!=null?decimalSeparator:StringValueObject.create("."),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_decimalSeparator.isArray()?_decimalSeparator.getRowCount():1,groupSeparator!=null&&groupSeparator.isArray()?groupSeparator.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_decimalSeparator.isArray()?_decimalSeparator.getColumnCount():1,groupSeparator!=null&&groupSeparator.isArray()?groupSeparator.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),decimalSeparatorArray=expandArrayValueObject(maxRowLength,maxColumnLength,_decimalSeparator,ErrorValueObject.create(ErrorType$1.NA)),groupSeparatorArray=groupSeparator?expandArrayValueObject(maxRowLength,maxColumnLength,groupSeparator,ErrorValueObject.create(ErrorType$1.NA)):void 0,resultArray=textArray.mapValue((textObject,rowIndex,columnIndex)=>{const decimalSeparatorObject=decimalSeparatorArray.get(rowIndex,columnIndex),groupSeparatorObject=groupSeparator?groupSeparatorArray.get(rowIndex,columnIndex):void 0;return textObject.isError()?textObject:decimalSeparatorObject.isError()?decimalSeparatorObject:groupSeparatorObject!=null&&groupSeparatorObject.isError()?groupSeparatorObject:decimalSeparatorObject.isNull()||groupSeparatorObject!=null&&groupSeparatorObject.isNull()?ErrorValueObject.create(ErrorType$1.VALUE):textObject.isNull()?NumberValueObject.create(0):this._handleSingleObject(textObject,decimalSeparatorObject,groupSeparatorObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(text,decimalSeparator,groupSeparator){let textValue=`${text.getValue()}`;textValue=textValue.replace(/\s+/g,"");let decimalSeparatorValue=`${decimalSeparator.getValue()}`;decimalSeparator.isBoolean()&&(decimalSeparatorValue=decimalSeparatorValue.toLocaleUpperCase()),decimalSeparatorValue=decimalSeparatorValue.charAt(0);let groupSeparatorValue;if(groupSeparator&&(groupSeparatorValue=`${groupSeparator.getValue()}`,groupSeparator.isBoolean()&&(groupSeparatorValue=groupSeparatorValue.toLocaleUpperCase()),groupSeparatorValue=groupSeparatorValue.charAt(0),decimalSeparatorValue===groupSeparatorValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(textValue.trim()==="")return NumberValueObject.create(0);if(!textValue.match(/^\s*[+-]?\s*(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:[eE][+-]?\d+)?[ \t]*/))return ErrorValueObject.create(ErrorType$1.VALUE);const splitText=textValue.split(decimalSeparatorValue);if(splitText.length>2)return ErrorValueObject.create(ErrorType$1.VALUE);let integerPart=splitText[0].replace(/,/g,"");groupSeparator&&(integerPart=integerPart.split(groupSeparatorValue).join(""));let result=0;if(splitText.length===1){decimalSeparatorValue===","&&(integerPart=integerPart.replace(/\./g,""));let percentageCount=0;for(;integerPart.endsWith("%");)integerPart=integerPart.slice(0,-1),percentageCount++;percentageCount>0?result=+integerPart/100**percentageCount:result=+integerPart}else{if(!core.isRealNum(integerPart))return ErrorValueObject.create(ErrorType$1.VALUE);let decimalPart=splitText[1],percentageCount=0;for(;decimalPart.endsWith("%");)decimalPart=decimalPart.slice(0,-1),percentageCount++;const resultText=`${integerPart}.${decimalPart}`;if(!core.isRealNum(resultText))return ErrorValueObject.create(ErrorType$1.VALUE);percentageCount>0?result=+resultText/100**percentageCount:result=+resultText}return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}};__name(_Numbervalue,"Numbervalue");let Numbervalue=_Numbervalue;const _Proper=class _Proper extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){if(text.isArray()){const resultArray=text.mapValue(textObject=>this._handleSingleObject(textObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(text)}_handleSingleObject(text){if(text.isError()||text.isNull()||text.isBoolean()||text.isNumber())return text;const result=text.getValue().toLocaleString().toLocaleLowerCase().replace(/(^|\b|\W|\d|_)[a-z]/g,txt=>txt.toLocaleUpperCase());return StringValueObject.create(result)}};__name(_Proper,"Proper");let Proper=_Proper;const _Rept=class _Rept extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,numberTimes){if(text.isError())return text;if(numberTimes.isError())return numberTimes;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,numberTimes.isArray()?numberTimes.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,numberTimes.isArray()?numberTimes.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),numberTimesArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberTimes,ErrorValueObject.create(ErrorType$1.NA)),resultArray=textArray.map((textObject,rowIndex,columnIndex)=>{let numberTimesObject=numberTimesArray.get(rowIndex,columnIndex);if(textObject.isError())return textObject;let textValue=textObject.getValue();if(textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue+="",numberTimesObject.isString()&&(numberTimesObject=numberTimesObject.convertToNumberObjectValue()),numberTimesObject.isError())return numberTimesObject;const stringMaxLength=32767,numberTimesValue=Math.floor(+numberTimesObject.getValue());if(numberTimesValue<0||numberTimesValue>stringMaxLength/textValue.length)return ErrorValueObject.create(ErrorType$1.VALUE);const result=textValue.repeat(numberTimesValue);return StringValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Rept,"Rept");let Rept=_Rept;const _Right=class _Right extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(text,numChars){const _numChars=numChars!=null?numChars:NumberValueObject.create(1),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_numChars.isArray()?_numChars.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_numChars.isArray()?_numChars.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,NullValueObject.create()),numCharsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_numChars,NullValueObject.create()),resultArray=textArray.mapValue((textObject,rowIndex,columnIndex)=>{const numCharsObject=numCharsArray.get(rowIndex,columnIndex);return textObject.isError()?textObject:numCharsObject.isError()?numCharsObject:this._handleSingleObject(textObject,numCharsObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(text,numChars){let textValue=`${text.getValue()}`;text.isBoolean()&&(textValue=textValue.toLocaleUpperCase());const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(numChars);if(isError)return errorObject;const[numCharsObject]=variants,numCharsValue=Math.floor(+numCharsObject.getValue());if(numCharsValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(text.isNull()||numCharsValue===0)return StringValueObject.create("");if(numCharsValue>=textValue.length)return StringValueObject.create(textValue);const result=textValue.substring(textValue.length-numCharsValue);return StringValueObject.create(result)}};__name(_Right,"Right");let Right=_Right;const _Rightb=class _Rightb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(text,numBytes){const _numBytes=numBytes!=null?numBytes:NumberValueObject.create(1),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_numBytes.isArray()?_numBytes.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_numBytes.isArray()?_numBytes.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,NullValueObject.create()),numBytesArray=expandArrayValueObject(maxRowLength,maxColumnLength,_numBytes,NullValueObject.create()),resultArray=textArray.mapValue((textObject,rowIndex,columnIndex)=>{const numBytesObject=numBytesArray.get(rowIndex,columnIndex);return textObject.isError()?textObject:numBytesObject.isError()?numBytesObject:this._handleSingleObject(textObject,numBytesObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(text,numBytes){let textValue=`${text.getValue()}`;text.isBoolean()&&(textValue=textValue.toLocaleUpperCase());const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(numBytes);if(isError)return errorObject;const[numBytesObject]=variants,numBytesValue=Math.floor(+numBytesObject.getValue());if(numBytesValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(text.isNull()||numBytesValue===0)return StringValueObject.create("");let index=textValue.length-1,lenByte=0,result="";for(;lenByte<numBytesValue&&index>=0;)lenByte+=getCharLenByteInText(textValue,index,"rtl"),result=textValue.charAt(index)+result,index--;return StringValueObject.create(result)}};__name(_Rightb,"Rightb");let Rightb=_Rightb;const _Substitute=class _Substitute extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(text,oldText,newText,instanceNum){const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,oldText.isArray()?oldText.getRowCount():1,newText.isArray()?newText.getRowCount():1,instanceNum!=null&&instanceNum.isArray()?instanceNum.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,oldText.isArray()?oldText.getColumnCount():1,newText.isArray()?newText.getColumnCount():1,instanceNum!=null&&instanceNum.isArray()?instanceNum.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),oldTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,oldText,ErrorValueObject.create(ErrorType$1.NA)),newTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,newText,ErrorValueObject.create(ErrorType$1.NA)),instanceNumArray=instanceNum?expandArrayValueObject(maxRowLength,maxColumnLength,instanceNum,ErrorValueObject.create(ErrorType$1.NA)):void 0,resultArray=textArray.mapValue((textObject,rowIndex,columnIndex)=>{const oldTextObject=oldTextArray.get(rowIndex,columnIndex),newTextObject=newTextArray.get(rowIndex,columnIndex);let instanceNumObject=instanceNum?instanceNumArray.get(rowIndex,columnIndex):void 0;return textObject.isError()?textObject:oldTextObject.isError()?oldTextObject:newTextObject.isError()?newTextObject:instanceNumObject!=null&&instanceNumObject.isError()?instanceNumObject:instanceNumObject!=null&&instanceNumObject.isNull()||instanceNumObject!=null&&instanceNumObject.isBoolean()?ErrorValueObject.create(ErrorType$1.VALUE):(instanceNumObject!=null&&instanceNumObject.isString()&&(instanceNumObject=instanceNumObject.convertToNumberObjectValue()),instanceNumObject!=null&&instanceNumObject.isError()?instanceNumObject:this._handleSingleObject(textObject,oldTextObject,newTextObject,instanceNumObject))});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(text,oldText,newText,instanceNum){const textValue=this._getObjectString(text),oldTextValue=this._getObjectString(oldText),newTextValue=this._getObjectString(newText),instanceNumValue=instanceNum?Math.floor(+instanceNum.getValue()):void 0;if(instanceNum&&instanceNumValue<=0)return ErrorValueObject.create(ErrorType$1.VALUE);if(oldTextValue==="")return StringValueObject.create(textValue);let result="",num=0;for(let i=0;i<textValue.length;i++){const str=textValue.substr(i,oldTextValue.length);if(str===oldTextValue||str.length===oldTextValue.length&&str.trim()===oldTextValue.trim()){if(num++,num===instanceNumValue){result=textValue.substr(0,i)+newTextValue+textValue.substr(i+oldTextValue.length);break}instanceNumValue===void 0&&(result+=newTextValue),i+=oldTextValue.length-1}else instanceNumValue===void 0&&(result+=textValue[i])}return instanceNumValue&&num<instanceNumValue&&(result=textValue),StringValueObject.create(result)}_getObjectString(variant){let value=`${variant.getValue()}`;return variant.isNull()&&(value=""),variant.isBoolean()&&(value=value.toLocaleUpperCase()),value}};__name(_Substitute,"Substitute");let Substitute=_Substitute;const _T=class _T extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;return value.isArray()&&(_value=value.get(0,0)),_value.isError()?_value:_value.isNull()||_value.isBoolean()||_value.isNumber()?StringValueObject.create(""):_value}};__name(_T,"T");let T=_T;const _Text=class _Text extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,formatText){if(text.isError())return text;if(formatText.isError())return formatText;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,formatText.isArray()?formatText.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,formatText.isArray()?formatText.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text),formatTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,formatText);return textArray.map((textValue,rowIndex,columnIndex)=>{if(textValue.isError())return textValue;let formatTextValue=formatTextArray.get(rowIndex,columnIndex)||StringValueObject.create(" ");if(formatTextValue.isError())return formatTextValue;if(formatTextValue.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);if(textValue.isBoolean())return textValue;let textValueNumber=textValue.getValue();if(textValue.isNull()&&(textValueNumber=0),textValue.isString()){if(!core.isRealNum(textValueNumber))return textValue;textValueNumber=Number(textValueNumber)}formatTextValue.isNull()&&(formatTextValue=StringValueObject.create(" "));const formatTextValueString=`${formatTextValue.getValue()}`,previewText=getFormatPreview(formatTextValueString,textValueNumber);return StringValueObject.create(formatTextValueString===" "?previewText.trimEnd():previewText)})}};__name(_Text,"Text");let Text=_Text;const _Textafter=class _Textafter extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,delimiter,instanceNum,matchMode,matchEnd,ifNotFound){let instanceNumIsNull=!1,_instanceNum=instanceNum!=null?instanceNum:NumberValueObject.create(1);_instanceNum.isNull()&&(instanceNumIsNull=!0,_instanceNum=NumberValueObject.create(1));const onlyThreeVariant=!matchMode,_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_matchEnd=matchEnd!=null?matchEnd:NumberValueObject.create(0),_ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_instanceNum.isArray()?_instanceNum.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1,_matchEnd.isArray()?_matchEnd.getRowCount():1,_ifNotFound.isArray()?_ifNotFound.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_instanceNum.isArray()?_instanceNum.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1,_matchEnd.isArray()?_matchEnd.getColumnCount():1,_ifNotFound.isArray()?_ifNotFound.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),instanceNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_instanceNum,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),matchEndArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchEnd,ErrorValueObject.create(ErrorType$1.NA)),ifNotFoundArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ifNotFound,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResultArray(textArray,delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant){return textArray.map((textObject,rowIndex,columnIndex)=>{const instanceNumObject=instanceNumArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex),matchEndObject=matchEndArray.get(rowIndex,columnIndex),ifNotFoundObject=ifNotFoundArray.get(rowIndex,columnIndex),_variantsError=this._checkVariantsError(textObject,instanceNumObject,matchModeObject,matchEndObject);if(_variantsError.isError())return _variantsError;const textValue=this._getStringValue(textObject),delimiterValue=this._getDelimiterValue(delimiter);if(delimiterValue instanceof ErrorValueObject)return delimiterValue;const _variantsNumberFloorValue=this._getVariantsNumberFloorValue(instanceNumObject,matchModeObject,matchEndObject);if(_variantsNumberFloorValue instanceof ErrorValueObject)return _variantsNumberFloorValue;const[instanceNumValue,matchModeValue,matchEndValue]=_variantsNumberFloorValue;return instanceNumValue===0||matchModeValue<0||matchModeValue>1||matchEndValue<0||matchEndValue>1?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.includes("")?instanceNumValue>0?StringValueObject.create(textValue):StringValueObject.create(""):!instanceNumIsNull&&Math.abs(instanceNumValue)>textValue.length?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.every(item=>item.length>textValue.length)?ErrorValueObject.create(ErrorType$1.NA):this._getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant)})}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getStringValue(variant){let value=`${variant.getValue()}`;return variant.isNull()&&(value=""),variant.isBoolean()&&(value=value.toLocaleUpperCase()),value}_getDelimiterValue(delimiter){const delimiterValue=[];if(delimiter.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(delimiter.iterator(delimiterObject=>{const _delimiterObject=delimiterObject;if(_delimiterObject.isError())return isError=!0,errorObject=_delimiterObject,!1;delimiterValue.push(this._getStringValue(_delimiterObject))}),isError)return errorObject}else{if(delimiter.isError())return delimiter;delimiterValue.push(this._getStringValue(delimiter))}return delimiterValue}_getVariantsNumberFloorValue(...variants){const values=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;const value=Math.floor(+variant.getValue());values.push(value)}return values}_getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant){let substrText=matchModeValue?textValue.toLocaleLowerCase():textValue;const _delimiterValue=matchModeValue?delimiterValue.map(item=>item.toLocaleLowerCase()):delimiterValue;let resultIndex=0,matchNum=0,preDelimiterLength=0;for(let i=0;i<Math.abs(instanceNumValue);i++)if(instanceNumValue<0){const delimiterItem=_delimiterValue.map(item=>({index:substrText.lastIndexOf(item),length:item.length})).filter(item=>item.index!==-1).sort((a,b)=>b.index-a.index)[0];if(!delimiterItem)break;resultIndex=delimiterItem.index,substrText=substrText.substr(0,delimiterItem.index),preDelimiterLength=delimiterItem.length,matchNum++}else{const delimiterItem=_delimiterValue.map(item=>({index:substrText.indexOf(item),length:item.length})).filter(item=>item.index!==-1).sort((a,b)=>a.index-b.index)[0];if(!delimiterItem)break;resultIndex+=delimiterItem.index+preDelimiterLength,substrText=substrText.substr(delimiterItem.index+delimiterItem.length),preDelimiterLength=delimiterItem.length,matchNum++}if(matchNum&&matchNum<Math.abs(instanceNumValue)&&onlyThreeVariant)return ErrorValueObject.create(ErrorType$1.NA);if(!matchNum||matchNum<Math.abs(instanceNumValue))return matchEndValue?instanceNumValue>0?StringValueObject.create(""):StringValueObject.create(textValue):ifNotFoundObject;const result=textValue.substr(resultIndex+preDelimiterLength);return StringValueObject.create(result)}};__name(_Textafter,"Textafter");let Textafter=_Textafter;const _Textbefore=class _Textbefore extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,delimiter,instanceNum,matchMode,matchEnd,ifNotFound){let instanceNumIsNull=!1,_instanceNum=instanceNum!=null?instanceNum:NumberValueObject.create(1);_instanceNum.isNull()&&(instanceNumIsNull=!0,_instanceNum=NumberValueObject.create(1));const onlyThreeVariant=!matchMode,_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_matchEnd=matchEnd!=null?matchEnd:NumberValueObject.create(0),_ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_instanceNum.isArray()?_instanceNum.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1,_matchEnd.isArray()?_matchEnd.getRowCount():1,_ifNotFound.isArray()?_ifNotFound.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_instanceNum.isArray()?_instanceNum.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1,_matchEnd.isArray()?_matchEnd.getColumnCount():1,_ifNotFound.isArray()?_ifNotFound.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),instanceNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_instanceNum,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),matchEndArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchEnd,ErrorValueObject.create(ErrorType$1.NA)),ifNotFoundArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ifNotFound,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResultArray(textArray,delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant){return textArray.map((textObject,rowIndex,columnIndex)=>{const instanceNumObject=instanceNumArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex),matchEndObject=matchEndArray.get(rowIndex,columnIndex),ifNotFoundObject=ifNotFoundArray.get(rowIndex,columnIndex),_variantsError=this._checkVariantsError(textObject,instanceNumObject,matchModeObject,matchEndObject);if(_variantsError.isError())return _variantsError;const textValue=this._getStringValue(textObject),delimiterValue=this._getDelimiterValue(delimiter);if(delimiterValue instanceof ErrorValueObject)return delimiterValue;const _variantsNumberFloorValue=this._getVariantsNumberFloorValue(instanceNumObject,matchModeObject,matchEndObject);if(_variantsNumberFloorValue instanceof ErrorValueObject)return _variantsNumberFloorValue;const[instanceNumValue,matchModeValue,matchEndValue]=_variantsNumberFloorValue;return instanceNumValue===0||matchModeValue<0||matchModeValue>1||matchEndValue<0||matchEndValue>1?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.includes("")?instanceNumValue>0?StringValueObject.create(""):StringValueObject.create(textValue):!instanceNumIsNull&&Math.abs(instanceNumValue)>textValue.length?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.every(item=>item.length>textValue.length)?ErrorValueObject.create(ErrorType$1.NA):this._getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant)})}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getStringValue(variant){let value=`${variant.getValue()}`;return variant.isNull()&&(value=""),variant.isBoolean()&&(value=value.toLocaleUpperCase()),value}_getDelimiterValue(delimiter){const delimiterValue=[];if(delimiter.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(delimiter.iterator(delimiterObject=>{const _delimiterObject=delimiterObject;if(_delimiterObject.isError())return isError=!0,errorObject=_delimiterObject,!1;delimiterValue.push(this._getStringValue(_delimiterObject))}),isError)return errorObject}else{if(delimiter.isError())return delimiter;delimiterValue.push(this._getStringValue(delimiter))}return delimiterValue}_getVariantsNumberFloorValue(...variants){const values=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;const value=Math.floor(+variant.getValue());values.push(value)}return values}_getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant){let substrText=matchModeValue?textValue.toLocaleLowerCase():textValue;const _delimiterValue=matchModeValue?delimiterValue.map(item=>item.toLocaleLowerCase()):delimiterValue;let resultIndex=0,matchNum=0,preDelimiterLength=0;for(let i=0;i<Math.abs(instanceNumValue);i++)if(instanceNumValue<0){const delimiterItem=_delimiterValue.map(item=>({index:substrText.lastIndexOf(item),length:item.length})).filter(item=>item.index!==-1).sort((a,b)=>b.index-a.index)[0];if(!delimiterItem)break;resultIndex=delimiterItem.index,substrText=substrText.substr(0,delimiterItem.index),matchNum++}else{const delimiterItem=_delimiterValue.map(item=>({index:substrText.indexOf(item),length:item.length})).filter(item=>item.index!==-1).sort((a,b)=>a.index-b.index)[0];if(!delimiterItem)break;resultIndex+=delimiterItem.index+preDelimiterLength,substrText=substrText.substr(delimiterItem.index+delimiterItem.length),preDelimiterLength=delimiterItem.length,matchNum++}if(matchNum&&matchNum<Math.abs(instanceNumValue)&&onlyThreeVariant)return ErrorValueObject.create(ErrorType$1.NA);if(!matchNum||matchNum<Math.abs(instanceNumValue))return matchEndValue?instanceNumValue>0?StringValueObject.create(textValue):StringValueObject.create(""):ifNotFoundObject;const result=textValue.substr(0,resultIndex);return StringValueObject.create(result)}};__name(_Textbefore,"Textbefore");let Textbefore=_Textbefore;const _Textsplit=class _Textsplit extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,colDelimiter,rowDelimiter,ignoreEmpty,matchMode,padWith){let _rowDelimiter=rowDelimiter!=null?rowDelimiter:StringValueObject.create("\\s");const _ignoreEmpty=ignoreEmpty!=null?ignoreEmpty:NumberValueObject.create(0),_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_padWith=padWith!=null?padWith:StringValueObject.create(ErrorType$1.NA),{_variant:_colDelimiter,values:colDelimiterValue}=this._getStringValues(colDelimiter),{_variant,values:rowDelimiterValue}=this._getStringValues(_rowDelimiter,!1);_rowDelimiter=_variant;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_ignoreEmpty.isArray()?_ignoreEmpty.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_ignoreEmpty.isArray()?_ignoreEmpty.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),ignoreEmptyArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ignoreEmpty,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,_colDelimiter,_rowDelimiter,ignoreEmptyArray,matchModeArray,_padWith,colDelimiterValue,rowDelimiterValue);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray.map(item=>item.get(0,0))}_getStringValues(variant,isNotNull=!0){let _variant=variant;const values=[];if(_variant.isArray())_variant.iterator(variantObject=>{if(variantObject!=null&&variantObject.isError())return _variant=variantObject,!1;if(variantObject!=null&&variantObject.isNull()&&isNotNull)return _variant=ErrorValueObject.create(ErrorType$1.VALUE),!1;const value=this._getRegExpStringValue(variantObject);if(value==="")return _variant=ErrorValueObject.create(ErrorType$1.VALUE),!1;values.push(value)});else{_variant.isNull()&&isNotNull&&(_variant=ErrorValueObject.create(ErrorType$1.VALUE));const value=this._getRegExpStringValue(_variant);value===""&&(_variant=ErrorValueObject.create(ErrorType$1.VALUE)),values.push(value)}return{_variant,values}}_getResultArray(textArray,colDelimiter,rowDelimiter,ignoreEmptyArray,matchModeArray,padWith,colDelimiterValue,rowDelimiterValue){return textArray.map((textObject,rowIndex,columnIndex)=>{let ignoreEmptyObject=ignoreEmptyArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex);const _variantsError=this._checkVariantsError(textObject,colDelimiter,rowDelimiter,ignoreEmptyObject,matchModeObject);if(_variantsError.isError())return _variantsError;if(textObject.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);let _padWith=padWith;if(_padWith.isArray()){const padWithRowCount=_padWith.getRowCount(),padWithColumnCount=_padWith.getColumnCount();if(padWithRowCount>1||padWithColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_padWith=_padWith.get(0,0)}let textValue=`${textObject.getValue()}`;if(textObject.isBoolean()&&(textValue=textValue.toLocaleUpperCase()),ignoreEmptyObject.isString()&&(ignoreEmptyObject=ignoreEmptyObject.convertToNumberObjectValue(),ignoreEmptyObject.isError()))return ignoreEmptyObject;const ignoreEmptyValue=Math.floor(+ignoreEmptyObject.getValue());if(matchModeObject.isString()&&(matchModeObject=matchModeObject.convertToNumberObjectValue(),matchModeObject.isError()))return matchModeObject;const matchModeValue=Math.floor(+matchModeObject.getValue());if(matchModeValue<0||matchModeValue>1)return ErrorValueObject.create(ErrorType$1.VALUE);let padWithValue=`${_padWith.getValue()}`;return _padWith.isBoolean()&&(padWithValue=padWithValue.toLocaleUpperCase()),this._getResult(textValue,colDelimiterValue,rowDelimiterValue,ignoreEmptyValue,matchModeValue,padWithValue)})}_getResult(textValue,colDelimiterValue,rowDelimiterValue,ignoreEmptyValue,matchModeValue,padWithValue){const rowDelimiterRegExp=new RegExp(rowDelimiterValue.join("|"),`g${matchModeValue?"i":""}`),colDelimiterRegExp=new RegExp(colDelimiterValue.join("|"),`g${matchModeValue?"i":""}`),resultRows=textValue.split(rowDelimiterRegExp);let resultColsMaxCount=1,result=resultRows.map(row=>{let cols=row.split(colDelimiterRegExp);return ignoreEmptyValue&&(cols=cols.filter(col=>col!=="")),resultColsMaxCount=Math.max(resultColsMaxCount,cols.length),cols});return result=result.map(row=>{let _row=row;return _row.length<resultColsMaxCount&&(_row=_row.concat(new Array(resultColsMaxCount-_row.length).fill(padWithValue))),_row}),ArrayValueObject.createByArray(result)}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getRegExpStringValue(valueObject){let value=valueObject.getValue();return valueObject.isNull()&&(value="\\s"),valueObject.isBoolean()&&(value=value?"TRUE":"FALSE"),value+="",this._escapeRegExp(value)}_escapeRegExp(string){return string.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};__name(_Textsplit,"Textsplit");let Textsplit=_Textsplit;const filterCodeArray=Object.values(core.DataStreamTreeTokenType).filter(value=>[core.DataStreamTreeTokenType.TABLE_START,core.DataStreamTreeTokenType.TABLE_ROW_START,core.DataStreamTreeTokenType.TABLE_CELL_START,core.DataStreamTreeTokenType.TABLE_CELL_END,core.DataStreamTreeTokenType.TABLE_ROW_END,core.DataStreamTreeTokenType.TABLE_END,core.DataStreamTreeTokenType.CUSTOM_RANGE_START,core.DataStreamTreeTokenType.CUSTOM_RANGE_END,core.DataStreamTreeTokenType.CUSTOM_BLOCK].includes(value)),_Unichar=class _Unichar extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){if(number.isArray()){const resultArray=number.mapValue(numberObject=>this._handleSingleObject(numberObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(number)}_handleSingleObject(number){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.floor(+numberObject.getValue());if(numberValue<1||numberValue>1114111)return ErrorValueObject.create(ErrorType$1.VALUE);if(numberValue===1114111||numberValue===1114110)return ErrorValueObject.create(ErrorType$1.NA);let result=String.fromCharCode(numberValue);return filterCodeArray.some(value=>value===result)&&(result=""),StringValueObject.create(result)}};__name(_Unichar,"Unichar");let Unichar=_Unichar;const _Unicode=class _Unicode extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){if(text.isArray()){const resultArray=text.mapValue(textObject=>this._handleSingleObject(textObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(text)}_handleSingleObject(text){if(text.isError())return text;if(text.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);let textValue=text.getValue().toLocaleString();text.isBoolean()&&(textValue=textValue.toLocaleUpperCase());const result=textValue.charCodeAt(0);return NumberValueObject.create(result)}};__name(_Unicode,"Unicode");let Unicode=_Unicode;const _Value=class _Value extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){if(text.isArray()){const resultArray=text.mapValue(textObject=>this._handleSingleObject(textObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(text)}_handleSingleObject(text){if(text.isError())return text;if(text.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);let _text=text;if(text.isString()&&(_text=_text.convertToNumberObjectValue(),_text.isError()))return _text;const textValue=+_text.getValue();return NumberValueObject.create(textValue)}};__name(_Value,"Value");let Value=_Value;const _Valuetotext=class _Valuetotext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(value,format){const _format=format!=null?format:NumberValueObject.create(0),maxRowLength=Math.max(value.isArray()?value.getRowCount():1,_format.isArray()?_format.getRowCount():1),maxColumnLength=Math.max(value.isArray()?value.getColumnCount():1,_format.isArray()?_format.getColumnCount():1),valueArray=expandArrayValueObject(maxRowLength,maxColumnLength,value,ErrorValueObject.create(ErrorType$1.NA)),formatArray=expandArrayValueObject(maxRowLength,maxColumnLength,_format,ErrorValueObject.create(ErrorType$1.NA)),resultArray=valueArray.mapValue((valueObject,rowIndex,columnIndex)=>{const formatObject=formatArray.get(rowIndex,columnIndex);return valueObject.isError()?valueObject:formatObject.isError()?formatObject:this._handleSingleObject(valueObject,formatObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(value,format){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(format);if(isError)return errorObject;const[formatObject]=variants,formatValue=Math.floor(+formatObject.getValue());if(formatValue<0||formatValue>1)return ErrorValueObject.create(ErrorType$1.VALUE);if(value.isNull())return StringValueObject.create("");if(value.isBoolean())return value;if(value.isNumber())return NumberValueObject.create(value.getValue());const result=formatValue?`"${value.getValue()}"`:`${value.getValue()}`;return StringValueObject.create(result)}};__name(_Valuetotext,"Valuetotext");let Valuetotext=_Valuetotext;const functionText=[[Asc,FUNCTION_NAMES_TEXT.ASC],[Arraytotext,FUNCTION_NAMES_TEXT.ARRAYTOTEXT],[Bahttext,FUNCTION_NAMES_TEXT.BAHTTEXT],[Char,FUNCTION_NAMES_TEXT.CHAR],[Clean,FUNCTION_NAMES_TEXT.CLEAN],[Code,FUNCTION_NAMES_TEXT.CODE],[Concat,FUNCTION_NAMES_TEXT.CONCAT],[Concatenate,FUNCTION_NAMES_TEXT.CONCATENATE],[Dbcs,FUNCTION_NAMES_TEXT.DBCS],[Dollar,FUNCTION_NAMES_TEXT.DOLLAR],[Exact,FUNCTION_NAMES_TEXT.EXACT],[Fixed,FUNCTION_NAMES_TEXT.FIXED],[Leftb,FUNCTION_NAMES_TEXT.LEFTB],[Len,FUNCTION_NAMES_TEXT.LEN],[Lenb,FUNCTION_NAMES_TEXT.LENB],[Lower,FUNCTION_NAMES_TEXT.LOWER],[Mid,FUNCTION_NAMES_TEXT.MID],[Regexextract,FUNCTION_NAMES_TEXT.REGEXEXTRACT],[Regexmatch,FUNCTION_NAMES_TEXT.REGEXMATCH],[Regexreplace,FUNCTION_NAMES_TEXT.REGEXREPLACE],[Numbervalue,FUNCTION_NAMES_TEXT.NUMBERVALUE],[Proper,FUNCTION_NAMES_TEXT.PROPER],[Rept,FUNCTION_NAMES_TEXT.REPT],[Right,FUNCTION_NAMES_TEXT.RIGHT],[Rightb,FUNCTION_NAMES_TEXT.RIGHTB],[Substitute,FUNCTION_NAMES_TEXT.SUBSTITUTE],[T,FUNCTION_NAMES_TEXT.T],[Text,FUNCTION_NAMES_TEXT.TEXT],[Textafter,FUNCTION_NAMES_TEXT.TEXTAFTER],[Textbefore,FUNCTION_NAMES_TEXT.TEXTBEFORE],[Textsplit,FUNCTION_NAMES_TEXT.TEXTSPLIT],[Unichar,FUNCTION_NAMES_TEXT.UNICHAR],[Unicode,FUNCTION_NAMES_TEXT.UNICODE],[Value,FUNCTION_NAMES_TEXT.VALUE],[Valuetotext,FUNCTION_NAMES_TEXT.VALUETOTEXT]],functionUniver=[];var FUNCTION_NAMES_UNIVER=(FUNCTION_NAMES_UNIVER2=>FUNCTION_NAMES_UNIVER2)(FUNCTION_NAMES_UNIVER||{});const functionWeb=[];var FUNCTION_NAMES_WEB=(FUNCTION_NAMES_WEB2=>(FUNCTION_NAMES_WEB2.ENCODEURL="ENCODEURL",FUNCTION_NAMES_WEB2.FILTERXML="FILTERXML",FUNCTION_NAMES_WEB2.WEBSERVICE="WEBSERVICE",FUNCTION_NAMES_WEB2))(FUNCTION_NAMES_WEB||{}),__defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5"),_a22;let FormulaController=(_a22=class extends core.Disposable{constructor(_commandService,_functionService,_configService,_dataSyncPrimaryController){super(),this._commandService=_commandService,this._functionService=_functionService,this._configService=_configService,this._dataSyncPrimaryController=_dataSyncPrimaryController,this._initialize()}_initialize(){this._registerCommands(),this._registerFunctions()}_registerCommands(){[SetFormulaDataMutation,SetArrayFormulaDataMutation,SetFormulaCalculationStartMutation,SetFormulaCalculationStopMutation,SetFormulaCalculationNotificationMutation,SetFormulaCalculationResultMutation,SetDefinedNameMutation,RemoveDefinedNameMutation,SetFeatureCalculationMutation,RemoveFeatureCalculationMutation,SetOtherFormulaMutation,RemoveOtherFormulaMutation,SetSuperTableMutation,RemoveSuperTableMutation,SetSuperTableOptionMutation,RegisterFunctionMutation].forEach(mutation=>{var _a28;this._commandService.registerCommand(mutation),(_a28=this._dataSyncPrimaryController)==null||_a28.registerSyncingMutations(mutation)})}_registerFunctions(){var _a28;const config2=this._configService.getConfig(PLUGIN_CONFIG_KEY),functions=[...functionArray,...functionCompatibility,...functionCube,...functionDatabase,...functionDate,...functionEngineering,...functionFinancial,...functionInformation,...functionLogical,...functionLookup,...functionMath,...functionMeta,...functionStatistical,...functionText,...functionUniver,...functionWeb].concat((_a28=config2==null?void 0:config2.function)!=null?_a28:[]).map(registerObject=>{const Func=registerObject[0],name=registerObject[1];return new Func(name)});this._functionService.registerExecutors(...functions)}},__name(_a22,"FormulaController"),_a22);FormulaController=__decorateClass$5([__decorateParam$5(0,core.ICommandService),__decorateParam$5(1,IFunctionService),__decorateParam$5(2,core.IConfigService),__decorateParam$5(3,core.Optional(rpc.DataSyncPrimaryController))],FormulaController);var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4"),_a23;let SetDependencyController=(_a23=class extends core.Disposable{constructor(_commandService,_dependencyManagerService,_featureCalculationManagerService){super(),this._commandService=_commandService,this._dependencyManagerService=_dependencyManagerService,this._featureCalculationManagerService=_featureCalculationManagerService,this._initialize()}_initialize(){this._commandExecutedListener(),this._featureCalculationManagerServiceListener()}_featureCalculationManagerServiceListener(){this.disposeWithMe(this._featureCalculationManagerService.onChanged$.subscribe(params=>{const{unitId,subUnitId,featureIds}=params;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,featureIds)}))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===RemoveFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureIds,unitId,subUnitId}=params;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,featureIds)}else if(command.id===SetFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureId,calculationParam}=params,{unitId,subUnitId}=calculationParam;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,[featureId])}else if(command.id===RemoveOtherFormulaMutation.id){const params=command.params;if(params==null)return;this._dependencyManagerService.removeOtherFormulaDependency(params.unitId,params.subUnitId,params.formulaIdList)}else if(command.id===SetOtherFormulaMutation.id){const params=command.params;if(params==null)return;const formulaMap=params.formulaMap,formulaIdList=[];Object.keys(formulaMap).forEach(formulaId=>{formulaIdList.push(formulaId)}),this._dependencyManagerService.removeOtherFormulaDependency(params.unitId,params.subUnitId,formulaIdList)}else if(command.id===SetFormulaDataMutation.id){const formulaData=command.params.formulaData;Object.keys(formulaData).forEach(unitId=>{const unitFormulaData=formulaData[unitId];if(unitFormulaData!==void 0){if(unitFormulaData===null){this._dependencyManagerService.clearFormulaDependency(unitId);return}Object.keys(unitFormulaData).forEach(subUnitId=>{const formulaDataItem=unitFormulaData[subUnitId];if(formulaDataItem!==void 0){if(formulaDataItem===null)return this._dependencyManagerService.clearFormulaDependency(unitId,subUnitId),!0;new core.ObjectMatrix(formulaDataItem).forValue((row,column)=>{this._dependencyManagerService.removeFormulaDependency(unitId,subUnitId,row,column)})}})}})}else command.id===SetDefinedNameMutation.id&&this._handleSetDefinedName(command)}))}_handleSetDefinedName(command){const params=command.params;if(params==null)return;const{unitId,name}=params;this._dependencyManagerService.removeFormulaDependencyByDefinedName(unitId,name)}},__name(_a23,"SetDependencyController"),_a23);SetDependencyController=__decorateClass$4([__decorateParam$4(0,core.ICommandService),__decorateParam$4(1,IFeatureCalculationManagerService),__decorateParam$4(1,IDependencyManagerService),__decorateParam$4(2,IFeatureCalculationManagerService)],SetDependencyController);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a24;let SetFeatureCalculationController=(_a24=class extends core.Disposable{constructor(_commandService,_featureCalculationManagerService){super(),this._commandService=_commandService,this._featureCalculationManagerService=_featureCalculationManagerService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureId,calculationParam}=params,{unitId,subUnitId}=calculationParam;this._featureCalculationManagerService.register(unitId,subUnitId,featureId,calculationParam)}else if(command.id===RemoveFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureIds,unitId,subUnitId}=params;this._featureCalculationManagerService.remove(unitId,subUnitId,featureIds)}}))}},__name(_a24,"SetFeatureCalculationController"),_a24);SetFeatureCalculationController=__decorateClass$3([__decorateParam$3(0,core.ICommandService),__decorateParam$3(1,IFeatureCalculationManagerService)],SetFeatureCalculationController);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a25;let SetOtherFormulaController=(_a25=class extends core.Disposable{constructor(_commandService,_otherFormulaManagerService,_dependencyManagerService){super(),this._commandService=_commandService,this._otherFormulaManagerService=_otherFormulaManagerService,this._dependencyManagerService=_dependencyManagerService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetOtherFormulaMutation.id){const params=command.params;if(params==null)return;const config2={[params.unitId]:{[params.subUnitId]:params.formulaMap}};this._otherFormulaManagerService.batchRegister(config2)}else if(command.id===RemoveOtherFormulaMutation.id){const params=command.params;if(params==null)return;const obj={};params.formulaIdList.forEach(id=>obj[id]=!0);const config2={[params.unitId]:{[params.subUnitId]:obj}};this._otherFormulaManagerService.batchRemove(config2)}}))}},__name(_a25,"SetOtherFormulaController"),_a25);SetOtherFormulaController=__decorateClass$2([__decorateParam$2(0,core.ICommandService),__decorateParam$2(1,IOtherFormulaManagerService),__decorateParam$2(2,IDependencyManagerService)],SetOtherFormulaController);var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a26;let SetSuperTableController=(_a26=class extends core.Disposable{constructor(_commandService,_superTableService){super(),this._commandService=_commandService,this._superTableService=_superTableService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,tableName,reference}=params;this._superTableService.registerTable(unitId,tableName,reference)}else if(command.id===RemoveDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,tableName}=params;this._superTableService.remove(unitId,tableName)}else if(command.id===SetSuperTableOptionMutation.id){const params=command.params;if(params==null)return;const{tableOption,tableOptionType}=params;this._superTableService.registerTableOptionMap(tableOption,tableOptionType)}}))}},__name(_a26,"SetSuperTableController"),_a26);SetSuperTableController=__decorateClass$1([__decorateParam$1(0,core.ICommandService),__decorateParam$1(1,ISuperTableService)],SetSuperTableController);const _ActiveDirtyManagerService=class _ActiveDirtyManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_dirtyConversionMap",new Map)}dispose(){this._dirtyConversionMap.clear()}remove(commandId){this._dirtyConversionMap.delete(commandId)}get(commandId){return this._dirtyConversionMap.get(commandId)}has(commandId){return this._dirtyConversionMap.has(commandId)}register(commandId,dirtyConversion){this._dirtyConversionMap.set(commandId,dirtyConversion)}getDirtyConversionMap(){return this._dirtyConversionMap}};__name(_ActiveDirtyManagerService,"ActiveDirtyManagerService");let ActiveDirtyManagerService=_ActiveDirtyManagerService;const IActiveDirtyManagerService=core.createIdentifier("univer.formula.active-dirty-manager.service");var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam");const PLUGIN_NAME="UNIVER_ENGINE_FORMULA_PLUGIN";var _a27;exports.UniverFormulaEnginePlugin=(_a27=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_configService){super(),this._config=_config,this._injector=_injector,this._configService=_configService;const{...rest}=this._config;this._configService.setConfig(PLUGIN_CONFIG_KEY,rest)}onStarting(){this._initialize()}onReady(){var _a28;this._injector.get(FormulaController),this._injector.get(exports.SetDefinedNameController),this._injector.get(SetSuperTableController),(_a28=this._config)!=null&&_a28.notExecuteFormula||(this._injector.get(SetOtherFormulaController),this._injector.get(SetFeatureCalculationController),this._injector.get(SetDependencyController),this._injector.get(exports.CalculateController))}onRendered(){var _a28;(_a28=this._config)!=null&&_a28.notExecuteFormula||(this._injector.get(exports.CalculateFormulaService),this._injector.get(exports.FormulaDependencyGenerator))}_initialize(){var _a28;const dependencies=[[IFunctionService,{useClass:FunctionService}],[IDefinedNamesService,{useClass:exports.DefinedNamesService}],[IActiveDirtyManagerService,{useClass:ActiveDirtyManagerService}],[ISuperTableService,{useClass:SuperTableService}],[exports.FormulaDataModel],[LexerTreeBuilder],[FormulaController],[exports.SetDefinedNameController],[SetSuperTableController]];(_a28=this._config)!=null&&_a28.notExecuteFormula||dependencies.push([exports.CalculateFormulaService],[IOtherFormulaManagerService,{useClass:OtherFormulaManagerService}],[IFormulaRuntimeService,{useClass:exports.FormulaRuntimeService}],[IFormulaCurrentConfigService,{useClass:exports.FormulaCurrentConfigService}],[IDependencyManagerService,{useClass:DependencyManagerService}],[IFeatureCalculationManagerService,{useClass:FeatureCalculationManagerService}],[exports.CalculateController],[SetOtherFormulaController],[SetDependencyController],[SetFeatureCalculationController],[exports.FormulaDependencyGenerator],[exports.Interpreter],[exports.AstTreeBuilder],[exports.Lexer],[AstRootNodeFactory],[exports.FunctionNodeFactory],[exports.LambdaNodeFactory],[LambdaParameterNodeFactory],[exports.OperatorNodeFactory],[exports.PrefixNodeFactory],[exports.ReferenceNodeFactory],[exports.SuffixNodeFactory],[exports.UnionNodeFactory],[ValueNodeFactory]),dependencies.forEach(dependency=>this._injector.add(dependency))}},__name(_a27,"UniverFormulaEnginePlugin"),__publicField(_a27,"pluginName",PLUGIN_NAME),_a27);exports.UniverFormulaEnginePlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,core.IConfigService)],exports.UniverFormulaEnginePlugin);exports.ActiveDirtyManagerService=ActiveDirtyManagerService;exports.ArrayValueObject=ArrayValueObject;exports.AstRootNodeFactory=AstRootNodeFactory;exports.AsyncArrayObject=AsyncArrayObject;exports.AsyncObject=AsyncObject;exports.BaseFunction=BaseFunction;exports.BaseReferenceObject=BaseReferenceObject;exports.BaseValueObject=BaseValueObject;exports.BooleanValue=BooleanValue;exports.BooleanValueObject=BooleanValueObject;exports.CustomFunction=CustomFunction;exports.DependencyManagerService=DependencyManagerService;exports.ERROR_TYPE_SET=ERROR_TYPE_SET;exports.ErrorType=ErrorType$1;exports.ErrorValueObject=ErrorValueObject;exports.FUNCTION_NAMES_ARRAY=FUNCTION_NAMES_ARRAY;exports.FUNCTION_NAMES_COMPATIBILITY=FUNCTION_NAMES_COMPATIBILITY;exports.FUNCTION_NAMES_CUBE=FUNCTION_NAMES_CUBE;exports.FUNCTION_NAMES_DATABASE=FUNCTION_NAMES_DATABASE;exports.FUNCTION_NAMES_DATE=FUNCTION_NAMES_DATE;exports.FUNCTION_NAMES_ENGINEERING=FUNCTION_NAMES_ENGINEERING;exports.FUNCTION_NAMES_FINANCIAL=FUNCTION_NAMES_FINANCIAL;exports.FUNCTION_NAMES_INFORMATION=FUNCTION_NAMES_INFORMATION;exports.FUNCTION_NAMES_LOGICAL=FUNCTION_NAMES_LOGICAL;exports.FUNCTION_NAMES_LOOKUP=FUNCTION_NAMES_LOOKUP;exports.FUNCTION_NAMES_MATH=FUNCTION_NAMES_MATH;exports.FUNCTION_NAMES_STATISTICAL=FUNCTION_NAMES_STATISTICAL;exports.FUNCTION_NAMES_TEXT=FUNCTION_NAMES_TEXT;exports.FUNCTION_NAMES_UNIVER=FUNCTION_NAMES_UNIVER;exports.FUNCTION_NAMES_WEB=FUNCTION_NAMES_WEB;exports.FeatureCalculationManagerService=FeatureCalculationManagerService;exports.FormulaExecuteStageType=FormulaExecuteStageType;exports.FormulaExecutedStateType=FormulaExecutedStateType;exports.FunctionService=FunctionService;exports.FunctionType=FunctionType;exports.IActiveDirtyManagerService=IActiveDirtyManagerService;exports.IDefinedNamesService=IDefinedNamesService;exports.IDependencyManagerService=IDependencyManagerService;exports.IFeatureCalculationManagerService=IFeatureCalculationManagerService;exports.IFormulaCurrentConfigService=IFormulaCurrentConfigService;exports.IFormulaRuntimeService=IFormulaRuntimeService;exports.IFunctionService=IFunctionService;exports.IOtherFormulaManagerService=IOtherFormulaManagerService;exports.ISuperTableService=ISuperTableService;exports.LambdaParameterNodeFactory=LambdaParameterNodeFactory;exports.LexerNode=LexerNode;exports.LexerTreeBuilder=LexerTreeBuilder;exports.NullValueObject=NullValueObject;exports.NumberValueObject=NumberValueObject;exports.OtherFormulaManagerService=OtherFormulaManagerService;exports.RangeReferenceObject=RangeReferenceObject;exports.RegisterFunctionMutation=RegisterFunctionMutation;exports.RemoveDefinedNameMutation=RemoveDefinedNameMutation;exports.RemoveFeatureCalculationMutation=RemoveFeatureCalculationMutation;exports.RemoveOtherFormulaMutation=RemoveOtherFormulaMutation;exports.RemoveSuperTableMutation=RemoveSuperTableMutation;exports.SetArrayFormulaDataMutation=SetArrayFormulaDataMutation;exports.SetDefinedNameMutation=SetDefinedNameMutation;exports.SetDefinedNameMutationFactory=SetDefinedNameMutationFactory;exports.SetFeatureCalculationMutation=SetFeatureCalculationMutation;exports.SetFormulaCalculationNotificationMutation=SetFormulaCalculationNotificationMutation;exports.SetFormulaCalculationResultMutation=SetFormulaCalculationResultMutation;exports.SetFormulaCalculationStartMutation=SetFormulaCalculationStartMutation;exports.SetFormulaCalculationStopMutation=SetFormulaCalculationStopMutation;exports.SetFormulaDataMutation=SetFormulaDataMutation;exports.SetOtherFormulaMutation=SetOtherFormulaMutation;exports.SetSuperTableMutation=SetSuperTableMutation;exports.SetSuperTableOptionMutation=SetSuperTableOptionMutation;exports.StringValueObject=StringValueObject;exports.SuperTableService=SuperTableService;exports.ValueNodeFactory=ValueNodeFactory;exports.ValueObjectFactory=ValueObjectFactory;exports.compareToken=compareToken;exports.convertUnitDataToRuntime=convertUnitDataToRuntime;exports.deserializeRangeForR1C1=deserializeRangeForR1C1;exports.deserializeRangeWithSheet=deserializeRangeWithSheet;exports.deserializeRangeWithSheetWithCache=deserializeRangeWithSheetWithCache;exports.functionArray=functionArray;exports.functionCompatibility=functionCompatibility;exports.functionCube=functionCube;exports.functionDatabase=functionDatabase;exports.functionDate=functionDate;exports.functionEngineering=functionEngineering;exports.functionFinancial=functionFinancial;exports.functionInformation=functionInformation;exports.functionLogical=functionLogical;exports.functionLookup=functionLookup;exports.functionMath=functionMath;exports.functionMeta=functionMeta;exports.functionStatistical=functionStatistical;exports.functionText=functionText;exports.functionUniver=functionUniver;exports.functionWeb=functionWeb;exports.generateStringWithSequence=generateStringWithSequence;exports.getAbsoluteRefTypeWitString=getAbsoluteRefTypeWitString;exports.getAbsoluteRefTypeWithSingleString=getAbsoluteRefTypeWithSingleString;exports.getRangeWithRefsString=getRangeWithRefsString;exports.handleNumfmtInCell=handleNumfmtInCell;exports.handleRefStringInfo=handleRefStringInfo;exports.includeFormulaLexerToken=includeFormulaLexerToken;exports.initSheetFormulaData=initSheetFormulaData;exports.isFormulaLexerToken=isFormulaLexerToken;exports.isInDirtyRange=isInDirtyRange;exports.isReferenceString=isReferenceString;exports.isReferenceStringWithEffectiveColumn=isReferenceStringWithEffectiveColumn;exports.isReferenceStrings=isReferenceStrings;exports.matchRefDrawToken=matchRefDrawToken;exports.matchToken=matchToken;exports.normalizeSheetName=normalizeSheetName;exports.operatorToken=operatorToken;exports.sequenceNodeType=sequenceNodeType;exports.serializeRange=serializeRange;exports.serializeRangeToRefString=serializeRangeToRefString;exports.serializeRangeWithSheet=serializeRangeWithSheet;exports.serializeRangeWithSpreadsheet=serializeRangeWithSpreadsheet;exports.singleReferenceToGrid=singleReferenceToGrid;exports.strip=strip;exports.stripErrorMargin=stripErrorMargin;
|
|
7
|
+
*/var Zt=9e15,Pt=1e9,ls="0123456789abcdef",rn="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",nn="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",fs={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Zt,maxE:Zt,crypto:!1},Ni,ct,oe=!0,Sn="[DecimalError] ",Dt=Sn+"Invalid argument: ",Vi=Sn+"Precision limit exceeded",Oi=Sn+"crypto unavailable",Mi="[object Decimal]",xe=Math.floor,Se=Math.pow,Yc=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Hc=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Gc=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Si=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,tt=1e7,te=7,Wc=9007199254740991,Qc=rn.length-1,ms=nn.length-1,v={toStringTag:Mi};v.absoluteValue=v.abs=function(){var i=new this.constructor(this);return i.s<0&&(i.s=1),ee(i)};v.ceil=function(){return ee(new this.constructor(this),this.e+1,2)};v.clampedTo=v.clamp=function(i,o){var e,t=this,r=t.constructor;if(i=new r(i),o=new r(o),!i.s||!o.s)return new r(NaN);if(i.gt(o))throw Error(Dt+o);return e=t.cmp(i),e<0?i:t.cmp(o)>0?o:new r(t)};v.comparedTo=v.cmp=function(i){var o,e,t,r,n=this,s=n.d,a=(i=new n.constructor(i)).d,u=n.s,c=i.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(n.e!==i.e)return n.e>i.e^u<0?1:-1;for(t=s.length,r=a.length,o=0,e=t<r?t:r;o<e;++o)if(s[o]!==a[o])return s[o]>a[o]^u<0?1:-1;return t===r?0:t>r^u<0?1:-1};v.cosine=v.cos=function(){var i,o,e=this,t=e.constructor;return e.d?e.d[0]?(i=t.precision,o=t.rounding,t.precision=i+Math.max(e.e,e.sd())+te,t.rounding=1,e=qc(t,xi(t,e)),t.precision=i,t.rounding=o,ee(ct==2||ct==3?e.neg():e,i,o,!0)):new t(1):new t(NaN)};v.cubeRoot=v.cbrt=function(){var i,o,e,t,r,n,s,a,u,c,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(oe=!1,n=l.s*Se(l.s*l,1/3),!n||Math.abs(n)==1/0?(e=Pe(l.d),i=l.e,(n=(i-e.length+1)%3)&&(e+=n==1||n==-2?"0":"00"),n=Se(e,1/3),i=xe((i+1)/3)-(i%3==(i<0?-1:2)),n==1/0?e="5e"+i:(e=n.toExponential(),e=e.slice(0,e.indexOf("e")+1)+i),t=new f(e),t.s=l.s):t=new f(n.toString()),s=(i=f.precision)+3;;)if(a=t,u=a.times(a).times(a),c=u.plus(l),t=Re(c.plus(l).times(a),c.plus(u),s+2,1),Pe(a.d).slice(0,s)===(e=Pe(t.d)).slice(0,s))if(e=e.slice(s-3,s+1),e=="9999"||!r&&e=="4999"){if(!r&&(ee(a,i+1,0),a.times(a).times(a).eq(l))){t=a;break}s+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(ee(t,i+1,1),o=!t.times(t).times(t).eq(l));break}return oe=!0,ee(t,i,f.rounding,o)};v.decimalPlaces=v.dp=function(){var i,o=this.d,e=NaN;if(o){if(i=o.length-1,e=(i-xe(this.e/te))*te,i=o[i],i)for(;i%10==0;i/=10)e--;e<0&&(e=0)}return e};v.dividedBy=v.div=function(i){return Re(this,new this.constructor(i))};v.dividedToIntegerBy=v.divToInt=function(i){var o=this,e=o.constructor;return ee(Re(o,new e(i),0,1,1),e.precision,e.rounding)};v.equals=v.eq=function(i){return this.cmp(i)===0};v.floor=function(){return ee(new this.constructor(this),this.e+1,3)};v.greaterThan=v.gt=function(i){return this.cmp(i)>0};v.greaterThanOrEqualTo=v.gte=function(i){var o=this.cmp(i);return o==1||o===0};v.hyperbolicCosine=v.cosh=function(){var i,o,e,t,r,n=this,s=n.constructor,a=new s(1);if(!n.isFinite())return new s(n.s?1/0:NaN);if(n.isZero())return a;e=s.precision,t=s.rounding,s.precision=e+Math.max(n.e,n.sd())+4,s.rounding=1,r=n.d.length,r<32?(i=Math.ceil(r/3),o=(1/wn(4,i)).toString()):(i=16,o="2.3283064365386962890625e-10"),n=sr(s,1,n.times(o),new s(1),!0);for(var u,c=i,l=new s(8);c--;)u=n.times(n),n=a.minus(u.times(l.minus(u.times(l))));return ee(n,s.precision=e,s.rounding=t,!0)};v.hyperbolicSine=v.sinh=function(){var i,o,e,t,r=this,n=r.constructor;if(!r.isFinite()||r.isZero())return new n(r);if(o=n.precision,e=n.rounding,n.precision=o+Math.max(r.e,r.sd())+4,n.rounding=1,t=r.d.length,t<3)r=sr(n,2,r,r,!0);else{i=1.4*Math.sqrt(t),i=i>16?16:i|0,r=r.times(1/wn(5,i)),r=sr(n,2,r,r,!0);for(var s,a=new n(5),u=new n(16),c=new n(20);i--;)s=r.times(r),r=r.times(a.plus(s.times(u.times(s).plus(c))))}return n.precision=o,n.rounding=e,ee(r,o,e,!0)};v.hyperbolicTangent=v.tanh=function(){var i,o,e=this,t=e.constructor;return e.isFinite()?e.isZero()?new t(e):(i=t.precision,o=t.rounding,t.precision=i+7,t.rounding=1,Re(e.sinh(),e.cosh(),t.precision=i,t.rounding=o)):new t(e.s)};v.inverseCosine=v.acos=function(){var i,o=this,e=o.constructor,t=o.abs().cmp(1),r=e.precision,n=e.rounding;return t!==-1?t===0?o.isNeg()?et(e,r,n):new e(0):new e(NaN):o.isZero()?et(e,r+4,n).times(.5):(e.precision=r+6,e.rounding=1,o=o.asin(),i=et(e,r+4,n).times(.5),e.precision=r,e.rounding=n,i.minus(o))};v.inverseHyperbolicCosine=v.acosh=function(){var i,o,e=this,t=e.constructor;return e.lte(1)?new t(e.eq(1)?0:NaN):e.isFinite()?(i=t.precision,o=t.rounding,t.precision=i+Math.max(Math.abs(e.e),e.sd())+4,t.rounding=1,oe=!1,e=e.times(e).minus(1).sqrt().plus(e),oe=!0,t.precision=i,t.rounding=o,e.ln()):new t(e)};v.inverseHyperbolicSine=v.asinh=function(){var i,o,e=this,t=e.constructor;return!e.isFinite()||e.isZero()?new t(e):(i=t.precision,o=t.rounding,t.precision=i+2*Math.max(Math.abs(e.e),e.sd())+6,t.rounding=1,oe=!1,e=e.times(e).plus(1).sqrt().plus(e),oe=!0,t.precision=i,t.rounding=o,e.ln())};v.inverseHyperbolicTangent=v.atanh=function(){var i,o,e,t,r=this,n=r.constructor;return r.isFinite()?r.e>=0?new n(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(i=n.precision,o=n.rounding,t=r.sd(),Math.max(t,i)<2*-r.e-1?ee(new n(r),i,o,!0):(n.precision=e=t-r.e,r=Re(r.plus(1),new n(1).minus(r),e+i,1),n.precision=i+4,n.rounding=1,r=r.ln(),n.precision=i,n.rounding=o,r.times(.5))):new n(NaN)};v.inverseSine=v.asin=function(){var i,o,e,t,r=this,n=r.constructor;return r.isZero()?new n(r):(o=r.abs().cmp(1),e=n.precision,t=n.rounding,o!==-1?o===0?(i=et(n,e+4,t).times(.5),i.s=r.s,i):new n(NaN):(n.precision=e+6,n.rounding=1,r=r.div(new n(1).minus(r.times(r)).sqrt().plus(1)).atan(),n.precision=e,n.rounding=t,r.times(2)))};v.inverseTangent=v.atan=function(){var i,o,e,t,r,n,s,a,u,c=this,l=c.constructor,f=l.precision,m=l.rounding;if(c.isFinite()){if(c.isZero())return new l(c);if(c.abs().eq(1)&&f+4<=ms)return s=et(l,f+4,m).times(.25),s.s=c.s,s}else{if(!c.s)return new l(NaN);if(f+4<=ms)return s=et(l,f+4,m).times(.5),s.s=c.s,s}for(l.precision=a=f+10,l.rounding=1,e=Math.min(28,a/te+2|0),i=e;i;--i)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(oe=!1,o=Math.ceil(a/te),t=1,u=c.times(c),s=new l(c),r=c;i!==-1;)if(r=r.times(u),n=s.minus(r.div(t+=2)),r=r.times(u),s=n.plus(r.div(t+=2)),s.d[o]!==void 0)for(i=o;s.d[i]===n.d[i]&&i--;);return e&&(s=s.times(2<<e-1)),oe=!0,ee(s,l.precision=f,l.rounding=m,!0)};v.isFinite=function(){return!!this.d};v.isInteger=v.isInt=function(){return!!this.d&&xe(this.e/te)>this.d.length-2};v.isNaN=function(){return!this.s};v.isNegative=v.isNeg=function(){return this.s<0};v.isPositive=v.isPos=function(){return this.s>0};v.isZero=function(){return!!this.d&&this.d[0]===0};v.lessThan=v.lt=function(i){return this.cmp(i)<0};v.lessThanOrEqualTo=v.lte=function(i){return this.cmp(i)<1};v.logarithm=v.log=function(i){var o,e,t,r,n,s,a,u,c=this,l=c.constructor,f=l.precision,m=l.rounding,d=5;if(i==null)i=new l(10),o=!0;else{if(i=new l(i),e=i.d,i.s<0||!e||!e[0]||i.eq(1))return new l(NaN);o=i.eq(10)}if(e=c.d,c.s<0||!e||!e[0]||c.eq(1))return new l(e&&!e[0]?-1/0:c.s!=1?NaN:e?0:1/0);if(o)if(e.length>1)n=!0;else{for(r=e[0];r%10===0;)r/=10;n=r!==1}if(oe=!1,a=f+d,s=pt(c,a),t=o?sn(l,a+10):pt(i,a),u=Re(s,t,a,1),yr(u.d,r=f,m))do if(a+=10,s=pt(c,a),t=o?sn(l,a+10):pt(i,a),u=Re(s,t,a,1),!n){+Pe(u.d).slice(r+1,r+15)+1==1e14&&(u=ee(u,f+1,0));break}while(yr(u.d,r+=10,m));return oe=!0,ee(u,f,m)};v.minus=v.sub=function(i){var o,e,t,r,n,s,a,u,c,l,f,m,d=this,C=d.constructor;if(i=new C(i),!d.d||!i.d)return!d.s||!i.s?i=new C(NaN):d.d?i.s=-i.s:i=new C(i.d||d.s!==i.s?d:NaN),i;if(d.s!=i.s)return i.s=-i.s,d.plus(i);if(c=d.d,m=i.d,a=C.precision,u=C.rounding,!c[0]||!m[0]){if(m[0])i.s=-i.s;else if(c[0])i=new C(d);else return new C(u===3?-0:0);return oe?ee(i,a,u):i}if(e=xe(i.e/te),l=xe(d.e/te),c=c.slice(),n=l-e,n){for(f=n<0,f?(o=c,n=-n,s=m.length):(o=m,e=l,s=c.length),t=Math.max(Math.ceil(a/te),s)+2,n>t&&(n=t,o.length=1),o.reverse(),t=n;t--;)o.push(0);o.reverse()}else{for(t=c.length,s=m.length,f=t<s,f&&(s=t),t=0;t<s;t++)if(c[t]!=m[t]){f=c[t]<m[t];break}n=0}for(f&&(o=c,c=m,m=o,i.s=-i.s),s=c.length,t=m.length-s;t>0;--t)c[s++]=0;for(t=m.length;t>n;){if(c[--t]<m[t]){for(r=t;r&&c[--r]===0;)c[r]=tt-1;--c[r],c[t]+=tt}c[t]-=m[t]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--e;return c[0]?(i.d=c,i.e=Dn(c,e),oe?ee(i,a,u):i):new C(u===3?-0:0)};v.modulo=v.mod=function(i){var o,e=this,t=e.constructor;return i=new t(i),!e.d||!i.s||i.d&&!i.d[0]?new t(NaN):!i.d||e.d&&!e.d[0]?ee(new t(e),t.precision,t.rounding):(oe=!1,t.modulo==9?(o=Re(e,i.abs(),0,3,1),o.s*=i.s):o=Re(e,i,0,t.modulo,1),o=o.times(i),oe=!0,e.minus(o))};v.naturalExponential=v.exp=function(){return hs(this)};v.naturalLogarithm=v.ln=function(){return pt(this)};v.negated=v.neg=function(){var i=new this.constructor(this);return i.s=-i.s,ee(i)};v.plus=v.add=function(i){var o,e,t,r,n,s,a,u,c,l,f=this,m=f.constructor;if(i=new m(i),!f.d||!i.d)return!f.s||!i.s?i=new m(NaN):f.d||(i=new m(i.d||f.s===i.s?f:NaN)),i;if(f.s!=i.s)return i.s=-i.s,f.minus(i);if(c=f.d,l=i.d,a=m.precision,u=m.rounding,!c[0]||!l[0])return l[0]||(i=new m(f)),oe?ee(i,a,u):i;if(n=xe(f.e/te),t=xe(i.e/te),c=c.slice(),r=n-t,r){for(r<0?(e=c,r=-r,s=l.length):(e=l,t=n,s=c.length),n=Math.ceil(a/te),s=n>s?n+1:s+1,r>s&&(r=s,e.length=1),e.reverse();r--;)e.push(0);e.reverse()}for(s=c.length,r=l.length,s-r<0&&(r=s,e=l,l=c,c=e),o=0;r;)o=(c[--r]=c[r]+l[r]+o)/tt|0,c[r]%=tt;for(o&&(c.unshift(o),++t),s=c.length;c[--s]==0;)c.pop();return i.d=c,i.e=Dn(c,t),oe?ee(i,a,u):i};v.precision=v.sd=function(i){var o,e=this;if(i!==void 0&&i!==!!i&&i!==1&&i!==0)throw Error(Dt+i);return e.d?(o=Di(e.d),i&&e.e+1>o&&(o=e.e+1)):o=NaN,o};v.round=function(){var i=this,o=i.constructor;return ee(new o(i),i.e+1,o.rounding)};v.sine=v.sin=function(){var i,o,e=this,t=e.constructor;return e.isFinite()?e.isZero()?new t(e):(i=t.precision,o=t.rounding,t.precision=i+Math.max(e.e,e.sd())+te,t.rounding=1,e=Kc(t,xi(t,e)),t.precision=i,t.rounding=o,ee(ct>2?e.neg():e,i,o,!0)):new t(NaN)};v.squareRoot=v.sqrt=function(){var i,o,e,t,r,n,s=this,a=s.d,u=s.e,c=s.s,l=s.constructor;if(c!==1||!a||!a[0])return new l(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(oe=!1,c=Math.sqrt(+s),c==0||c==1/0?(o=Pe(a),(o.length+u)%2==0&&(o+="0"),c=Math.sqrt(o),u=xe((u+1)/2)-(u<0||u%2),c==1/0?o="5e"+u:(o=c.toExponential(),o=o.slice(0,o.indexOf("e")+1)+u),t=new l(o)):t=new l(c.toString()),e=(u=l.precision)+3;;)if(n=t,t=n.plus(Re(s,n,e+2,1)).times(.5),Pe(n.d).slice(0,e)===(o=Pe(t.d)).slice(0,e))if(o=o.slice(e-3,e+1),o=="9999"||!r&&o=="4999"){if(!r&&(ee(n,u+1,0),n.times(n).eq(s))){t=n;break}e+=4,r=1}else{(!+o||!+o.slice(1)&&o.charAt(0)=="5")&&(ee(t,u+1,1),i=!t.times(t).eq(s));break}return oe=!0,ee(t,u,l.rounding,i)};v.tangent=v.tan=function(){var i,o,e=this,t=e.constructor;return e.isFinite()?e.isZero()?new t(e):(i=t.precision,o=t.rounding,t.precision=i+10,t.rounding=1,e=e.sin(),e.s=1,e=Re(e,new t(1).minus(e.times(e)).sqrt(),i+10,0),t.precision=i,t.rounding=o,ee(ct==2||ct==4?e.neg():e,i,o,!0)):new t(NaN)};v.times=v.mul=function(i){var o,e,t,r,n,s,a,u,c,l=this,f=l.constructor,m=l.d,d=(i=new f(i)).d;if(i.s*=l.s,!m||!m[0]||!d||!d[0])return new f(!i.s||m&&!m[0]&&!d||d&&!d[0]&&!m?NaN:!m||!d?i.s/0:i.s*0);for(e=xe(l.e/te)+xe(i.e/te),u=m.length,c=d.length,u<c&&(n=m,m=d,d=n,s=u,u=c,c=s),n=[],s=u+c,t=s;t--;)n.push(0);for(t=c;--t>=0;){for(o=0,r=u+t;r>t;)a=n[r]+d[t]*m[r-t-1]+o,n[r--]=a%tt|0,o=a/tt|0;n[r]=(n[r]+o)%tt|0}for(;!n[--s];)n.pop();return o?++e:n.shift(),i.d=n,i.e=Dn(n,e),oe?ee(i,f.precision,f.rounding):i};v.toBinary=function(i,o){return ws(this,2,i,o)};v.toDecimalPlaces=v.toDP=function(i,o){var e=this,t=e.constructor;return e=new t(e),i===void 0?e:(Ie(i,0,Pt),o===void 0?o=t.rounding:Ie(o,0,8),ee(e,i+e.e+1,o))};v.toExponential=function(i,o){var e,t=this,r=t.constructor;return i===void 0?e=nt(t,!0):(Ie(i,0,Pt),o===void 0?o=r.rounding:Ie(o,0,8),t=ee(new r(t),i+1,o),e=nt(t,!0,i+1)),t.isNeg()&&!t.isZero()?"-"+e:e};v.toFixed=function(i,o){var e,t,r=this,n=r.constructor;return i===void 0?e=nt(r):(Ie(i,0,Pt),o===void 0?o=n.rounding:Ie(o,0,8),t=ee(new n(r),i+r.e+1,o),e=nt(t,!1,i+t.e+1)),r.isNeg()&&!r.isZero()?"-"+e:e};v.toFraction=function(i){var o,e,t,r,n,s,a,u,c,l,f,m,d=this,C=d.d,_=d.constructor;if(!C)return new _(d);if(c=e=new _(1),t=u=new _(0),o=new _(t),n=o.e=Di(C)-d.e-1,s=n%te,o.d[0]=Se(10,s<0?te+s:s),i==null)i=n>0?o:c;else{if(a=new _(i),!a.isInt()||a.lt(c))throw Error(Dt+a);i=a.gt(o)?n>0?o:c:a}for(oe=!1,a=new _(Pe(C)),l=_.precision,_.precision=n=C.length*te*2;f=Re(a,o,0,1,1),r=e.plus(f.times(t)),r.cmp(i)!=1;)e=t,t=r,r=c,c=u.plus(f.times(r)),u=r,r=o,o=a.minus(f.times(r)),a=r;return r=Re(i.minus(e),t,0,1,1),u=u.plus(r.times(c)),e=e.plus(r.times(t)),u.s=c.s=d.s,m=Re(c,t,n,1).minus(d).abs().cmp(Re(u,e,n,1).minus(d).abs())<1?[c,t]:[u,e],_.precision=l,oe=!0,m};v.toHexadecimal=v.toHex=function(i,o){return ws(this,16,i,o)};v.toNearest=function(i,o){var e=this,t=e.constructor;if(e=new t(e),i==null){if(!e.d)return e;i=new t(1),o=t.rounding}else{if(i=new t(i),o===void 0?o=t.rounding:Ie(o,0,8),!e.d)return i.s?e:i;if(!i.d)return i.s&&(i.s=e.s),i}return i.d[0]?(oe=!1,e=Re(e,i,0,o,1).times(i),oe=!0,ee(e)):(i.s=e.s,e=i),e};v.toNumber=function(){return+this};v.toOctal=function(i,o){return ws(this,8,i,o)};v.toPower=v.pow=function(i){var o,e,t,r,n,s,a=this,u=a.constructor,c=+(i=new u(i));if(!a.d||!i.d||!a.d[0]||!i.d[0])return new u(Se(+a,c));if(a=new u(a),a.eq(1))return a;if(t=u.precision,n=u.rounding,i.eq(1))return ee(a,t,n);if(o=xe(i.e/te),o>=i.d.length-1&&(e=c<0?-c:c)<=Wc)return r=wi(u,a,e,t),i.s<0?new u(1).div(r):ee(r,t,n);if(s=a.s,s<0){if(o<i.d.length-1)return new u(NaN);if(i.d[o]&1||(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return e=Se(+a,c),o=e==0||!isFinite(e)?xe(c*(Math.log("0."+Pe(a.d))/Math.LN10+a.e+1)):new u(e+"").e,o>u.maxE+1||o<u.minE-1?new u(o>0?s/0:0):(oe=!1,u.rounding=a.s=1,e=Math.min(12,(o+"").length),r=hs(i.times(pt(a,t+e)),t),r.d&&(r=ee(r,t+5,1),yr(r.d,t,n)&&(o=t+10,r=ee(hs(i.times(pt(a,o+e)),o),o+5,1),+Pe(r.d).slice(t+1,t+15)+1==1e14&&(r=ee(r,t+1,0)))),r.s=s,oe=!0,u.rounding=n,ee(r,t,n))};v.toPrecision=function(i,o){var e,t=this,r=t.constructor;return i===void 0?e=nt(t,t.e<=r.toExpNeg||t.e>=r.toExpPos):(Ie(i,1,Pt),o===void 0?o=r.rounding:Ie(o,0,8),t=ee(new r(t),i,o),e=nt(t,i<=t.e||t.e<=r.toExpNeg,i)),t.isNeg()&&!t.isZero()?"-"+e:e};v.toSignificantDigits=v.toSD=function(i,o){var e=this,t=e.constructor;return i===void 0?(i=t.precision,o=t.rounding):(Ie(i,1,Pt),o===void 0?o=t.rounding:Ie(o,0,8)),ee(new t(e),i,o)};v.toString=function(){var i=this,o=i.constructor,e=nt(i,i.e<=o.toExpNeg||i.e>=o.toExpPos);return i.isNeg()&&!i.isZero()?"-"+e:e};v.truncated=v.trunc=function(){return ee(new this.constructor(this),this.e+1,1)};v.valueOf=v.toJSON=function(){var i=this,o=i.constructor,e=nt(i,i.e<=o.toExpNeg||i.e>=o.toExpPos);return i.isNeg()?"-"+e:e};function Pe(i){var o,e,t,r=i.length-1,n="",s=i[0];if(r>0){for(n+=s,o=1;o<r;o++)t=i[o]+"",e=te-t.length,e&&(n+=bt(e)),n+=t;s=i[o],t=s+"",e=te-t.length,e&&(n+=bt(e))}else if(s===0)return"0";for(;s%10===0;)s/=10;return n+s}function Ie(i,o,e){if(i!==~~i||i<o||i>e)throw Error(Dt+i)}function yr(i,o,e,t){var r,n,s,a;for(n=i[0];n>=10;n/=10)--o;return--o<0?(o+=te,r=0):(r=Math.ceil((o+1)/te),o%=te),n=Se(10,te-o),a=i[r]%n|0,t==null?o<3?(o==0?a=a/100|0:o==1&&(a=a/10|0),s=e<4&&a==99999||e>3&&a==49999||a==5e4||a==0):s=(e<4&&a+1==n||e>3&&a+1==n/2)&&(i[r+1]/n/100|0)==Se(10,o-2)-1||(a==n/2||a==0)&&(i[r+1]/n/100|0)==0:o<4?(o==0?a=a/1e3|0:o==1?a=a/100|0:o==2&&(a=a/10|0),s=(t||e<4)&&a==9999||!t&&e>3&&a==4999):s=((t||e<4)&&a+1==n||!t&&e>3&&a+1==n/2)&&(i[r+1]/n/1e3|0)==Se(10,o-3)-1,s}function Hr(i,o,e){for(var t,r=[0],n,s=0,a=i.length;s<a;){for(n=r.length;n--;)r[n]*=o;for(r[0]+=ls.indexOf(i.charAt(s++)),t=0;t<r.length;t++)r[t]>e-1&&(r[t+1]===void 0&&(r[t+1]=0),r[t+1]+=r[t]/e|0,r[t]%=e)}return r.reverse()}function qc(i,o){var e,t,r;if(o.isZero())return o;t=o.d.length,t<32?(e=Math.ceil(t/3),r=(1/wn(4,e)).toString()):(e=16,r="2.3283064365386962890625e-10"),i.precision+=e,o=sr(i,1,o.times(r),new i(1));for(var n=e;n--;){var s=o.times(o);o=s.times(s).minus(s).times(8).plus(1)}return i.precision-=e,o}var Re=function(){function i(t,r,n){var s,a=0,u=t.length;for(t=t.slice();u--;)s=t[u]*r+a,t[u]=s%n|0,a=s/n|0;return a&&t.unshift(a),t}function o(t,r,n,s){var a,u;if(n!=s)u=n>s?1:-1;else for(a=u=0;a<n;a++)if(t[a]!=r[a]){u=t[a]>r[a]?1:-1;break}return u}function e(t,r,n,s){for(var a=0;n--;)t[n]-=a,a=t[n]<r[n]?1:0,t[n]=a*s+t[n]-r[n];for(;!t[0]&&t.length>1;)t.shift()}return function(t,r,n,s,a,u){var c,l,f,m,d,C,_,E,b,R,p,V,S,D,w,P,L,T,B,W,q=t.constructor,ie=t.s==r.s?1:-1,Z=t.d,G=r.d;if(!Z||!Z[0]||!G||!G[0])return new q(!t.s||!r.s||(Z?G&&Z[0]==G[0]:!G)?NaN:Z&&Z[0]==0||!G?ie*0:ie/0);for(u?(d=1,l=t.e-r.e):(u=tt,d=te,l=xe(t.e/d)-xe(r.e/d)),B=G.length,L=Z.length,b=new q(ie),R=b.d=[],f=0;G[f]==(Z[f]||0);f++);if(G[f]>(Z[f]||0)&&l--,n==null?(D=n=q.precision,s=q.rounding):a?D=n+(t.e-r.e)+1:D=n,D<0)R.push(1),C=!0;else{if(D=D/d+2|0,f=0,B==1){for(m=0,G=G[0],D++;(f<L||m)&&D--;f++)w=m*u+(Z[f]||0),R[f]=w/G|0,m=w%G|0;C=m||f<L}else{for(m=u/(G[0]+1)|0,m>1&&(G=i(G,m,u),Z=i(Z,m,u),B=G.length,L=Z.length),P=B,p=Z.slice(0,B),V=p.length;V<B;)p[V++]=0;W=G.slice(),W.unshift(0),T=G[0],G[1]>=u/2&&++T;do m=0,c=o(G,p,B,V),c<0?(S=p[0],B!=V&&(S=S*u+(p[1]||0)),m=S/T|0,m>1?(m>=u&&(m=u-1),_=i(G,m,u),E=_.length,V=p.length,c=o(_,p,E,V),c==1&&(m--,e(_,B<E?W:G,E,u))):(m==0&&(c=m=1),_=G.slice()),E=_.length,E<V&&_.unshift(0),e(p,_,V,u),c==-1&&(V=p.length,c=o(G,p,B,V),c<1&&(m++,e(p,B<V?W:G,V,u))),V=p.length):c===0&&(m++,p=[0]),R[f++]=m,c&&p[0]?p[V++]=Z[P]||0:(p=[Z[P]],V=1);while((P++<L||p[0]!==void 0)&&D--);C=p[0]!==void 0}R[0]||R.shift()}if(d==1)b.e=l,Ni=C;else{for(f=1,m=R[0];m>=10;m/=10)f++;b.e=f+l*d-1,ee(b,a?n+b.e+1:n,s,C)}return b}}();function ee(i,o,e,t){var r,n,s,a,u,c,l,f,m,d=i.constructor;e:if(o!=null){if(f=i.d,!f)return i;for(r=1,a=f[0];a>=10;a/=10)r++;if(n=o-r,n<0)n+=te,s=o,l=f[m=0],u=l/Se(10,r-s-1)%10|0;else if(m=Math.ceil((n+1)/te),a=f.length,m>=a)if(t){for(;a++<=m;)f.push(0);l=u=0,r=1,n%=te,s=n-te+1}else break e;else{for(l=a=f[m],r=1;a>=10;a/=10)r++;n%=te,s=n-te+r,u=s<0?0:l/Se(10,r-s-1)%10|0}if(t=t||o<0||f[m+1]!==void 0||(s<0?l:l%Se(10,r-s-1)),c=e<4?(u||t)&&(e==0||e==(i.s<0?3:2)):u>5||u==5&&(e==4||t||e==6&&(n>0?s>0?l/Se(10,r-s):0:f[m-1])%10&1||e==(i.s<0?8:7)),o<1||!f[0])return f.length=0,c?(o-=i.e+1,f[0]=Se(10,(te-o%te)%te),i.e=-o||0):f[0]=i.e=0,i;if(n==0?(f.length=m,a=1,m--):(f.length=m+1,a=Se(10,te-n),f[m]=s>0?(l/Se(10,r-s)%Se(10,s)|0)*a:0),c)for(;;)if(m==0){for(n=1,s=f[0];s>=10;s/=10)n++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;n!=a&&(i.e++,f[0]==tt&&(f[0]=1));break}else{if(f[m]+=a,f[m]!=tt)break;f[m--]=0,a=1}for(n=f.length;f[--n]===0;)f.pop()}return oe&&(i.e>d.maxE?(i.d=null,i.e=NaN):i.e<d.minE&&(i.e=0,i.d=[0])),i}function nt(i,o,e){if(!i.isFinite())return Li(i);var t,r=i.e,n=Pe(i.d),s=n.length;return o?(e&&(t=e-s)>0?n=n.charAt(0)+"."+n.slice(1)+bt(t):s>1&&(n=n.charAt(0)+"."+n.slice(1)),n=n+(i.e<0?"e":"e+")+i.e):r<0?(n="0."+bt(-r-1)+n,e&&(t=e-s)>0&&(n+=bt(t))):r>=s?(n+=bt(r+1-s),e&&(t=e-r-1)>0&&(n=n+"."+bt(t))):((t=r+1)<s&&(n=n.slice(0,t)+"."+n.slice(t)),e&&(t=e-s)>0&&(r+1===s&&(n+="."),n+=bt(t))),n}function Dn(i,o){var e=i[0];for(o*=te;e>=10;e/=10)o++;return o}function sn(i,o,e){if(o>Qc)throw oe=!0,e&&(i.precision=e),Error(Vi);return ee(new i(rn),o,1,!0)}function et(i,o,e){if(o>ms)throw Error(Vi);return ee(new i(nn),o,e,!0)}function Di(i){var o=i.length-1,e=o*te+1;if(o=i[o],o){for(;o%10==0;o/=10)e--;for(o=i[0];o>=10;o/=10)e++}return e}function bt(i){for(var o="";i--;)o+="0";return o}function wi(i,o,e,t){var r,n=new i(1),s=Math.ceil(t/te+4);for(oe=!1;;){if(e%2&&(n=n.times(o),Oa(n.d,s)&&(r=!0)),e=xe(e/2),e===0){e=n.d.length-1,r&&n.d[e]===0&&++n.d[e];break}o=o.times(o),Oa(o.d,s)}return oe=!0,n}function Va(i){return i.d[i.d.length-1]&1}function Pi(i,o,e){for(var t,r=new i(o[0]),n=0;++n<o.length;)if(t=new i(o[n]),t.s)r[e](t)&&(r=t);else{r=t;break}return r}function hs(i,o){var e,t,r,n,s,a,u,c=0,l=0,f=0,m=i.constructor,d=m.rounding,C=m.precision;if(!i.d||!i.d[0]||i.e>17)return new m(i.d?i.d[0]?i.s<0?0:1/0:1:i.s?i.s<0?0:i:NaN);for(o==null?(oe=!1,u=C):u=o,a=new m(.03125);i.e>-2;)i=i.times(a),f+=5;for(t=Math.log(Se(2,f))/Math.LN10*2+5|0,u+=t,e=n=s=new m(1),m.precision=u;;){if(n=ee(n.times(i),u,1),e=e.times(++l),a=s.plus(Re(n,e,u,1)),Pe(a.d).slice(0,u)===Pe(s.d).slice(0,u)){for(r=f;r--;)s=ee(s.times(s),u,1);if(o==null)if(c<3&&yr(s.d,u-t,d,c))m.precision=u+=10,e=n=a=new m(1),l=0,c++;else return ee(s,m.precision=C,d,oe=!0);else return m.precision=C,s}s=a}}function pt(i,o){var e,t,r,n,s,a,u,c,l,f,m,d=1,C=10,_=i,E=_.d,b=_.constructor,R=b.rounding,p=b.precision;if(_.s<0||!E||!E[0]||!_.e&&E[0]==1&&E.length==1)return new b(E&&!E[0]?-1/0:_.s!=1?NaN:E?0:_);if(o==null?(oe=!1,l=p):l=o,b.precision=l+=C,e=Pe(E),t=e.charAt(0),Math.abs(n=_.e)<15e14){for(;t<7&&t!=1||t==1&&e.charAt(1)>3;)_=_.times(i),e=Pe(_.d),t=e.charAt(0),d++;n=_.e,t>1?(_=new b("0."+e),n++):_=new b(t+"."+e.slice(1))}else return c=sn(b,l+2,p).times(n+""),_=pt(new b(t+"."+e.slice(1)),l-C).plus(c),b.precision=p,o==null?ee(_,p,R,oe=!0):_;for(f=_,u=s=_=Re(_.minus(1),_.plus(1),l,1),m=ee(_.times(_),l,1),r=3;;){if(s=ee(s.times(m),l,1),c=u.plus(Re(s,new b(r),l,1)),Pe(c.d).slice(0,l)===Pe(u.d).slice(0,l))if(u=u.times(2),n!==0&&(u=u.plus(sn(b,l+2,p).times(n+""))),u=Re(u,new b(d),l,1),o==null)if(yr(u.d,l-C,R,a))b.precision=l+=C,c=s=_=Re(f.minus(1),f.plus(1),l,1),m=ee(_.times(_),l,1),r=a=1;else return ee(u,b.precision=p,R,oe=!0);else return b.precision=p,u;u=c,r+=2}}function Li(i){return String(i.s*i.s/0)}function gs(i,o){var e,t,r;for((e=o.indexOf("."))>-1&&(o=o.replace(".","")),(t=o.search(/e/i))>0?(e<0&&(e=t),e+=+o.slice(t+1),o=o.substring(0,t)):e<0&&(e=o.length),t=0;o.charCodeAt(t)===48;t++);for(r=o.length;o.charCodeAt(r-1)===48;--r);if(o=o.slice(t,r),o){if(r-=t,i.e=e=e-t-1,i.d=[],t=(e+1)%te,e<0&&(t+=te),t<r){for(t&&i.d.push(+o.slice(0,t)),r-=te;t<r;)i.d.push(+o.slice(t,t+=te));o=o.slice(t),t=te-o.length}else t-=r;for(;t--;)o+="0";i.d.push(+o),oe&&(i.e>i.constructor.maxE?(i.d=null,i.e=NaN):i.e<i.constructor.minE&&(i.e=0,i.d=[0]))}else i.e=0,i.d=[0];return i}function Xc(i,o){var e,t,r,n,s,a,u,c,l;if(o.indexOf("_")>-1){if(o=o.replace(/(\d)_(?=\d)/g,"$1"),Si.test(o))return gs(i,o)}else if(o==="Infinity"||o==="NaN")return+o||(i.s=NaN),i.e=NaN,i.d=null,i;if(Hc.test(o))e=16,o=o.toLowerCase();else if(Yc.test(o))e=2;else if(Gc.test(o))e=8;else throw Error(Dt+o);for(n=o.search(/p/i),n>0?(u=+o.slice(n+1),o=o.substring(2,n)):o=o.slice(2),n=o.indexOf("."),s=n>=0,t=i.constructor,s&&(o=o.replace(".",""),a=o.length,n=a-n,r=wi(t,new t(e),n,n*2)),c=Hr(o,e,tt),l=c.length-1,n=l;c[n]===0;--n)c.pop();return n<0?new t(i.s*0):(i.e=Dn(c,l),i.d=c,oe=!1,s&&(i=Re(i,r,a*4)),u&&(i=i.times(Math.abs(u)<54?Se(2,u):x.pow(2,u))),oe=!0,i)}function Kc(i,o){var e,t=o.d.length;if(t<3)return o.isZero()?o:sr(i,2,o,o);e=1.4*Math.sqrt(t),e=e>16?16:e|0,o=o.times(1/wn(5,e)),o=sr(i,2,o,o);for(var r,n=new i(5),s=new i(16),a=new i(20);e--;)r=o.times(o),o=o.times(n.plus(r.times(s.times(r).minus(a))));return o}function sr(i,o,e,t,r){var n,s,a,u,c=i.precision,l=Math.ceil(c/te);for(oe=!1,u=e.times(e),a=new i(t);;){if(s=Re(a.times(u),new i(o++*o++),c,1),a=r?t.plus(s):t.minus(s),t=Re(s.times(u),new i(o++*o++),c,1),s=a.plus(t),s.d[l]!==void 0){for(n=l;s.d[n]===a.d[n]&&n--;);if(n==-1)break}n=a,a=t,t=s,s=n}return oe=!0,s.d.length=l+1,s}function wn(i,o){for(var e=i;--o;)e*=i;return e}function xi(i,o){var e,t=o.s<0,r=et(i,i.precision,1),n=r.times(.5);if(o=o.abs(),o.lte(n))return ct=t?4:1,o;if(e=o.divToInt(r),e.isZero())ct=t?3:2;else{if(o=o.minus(e.times(r)),o.lte(n))return ct=Va(e)?t?2:3:t?4:1,o;ct=Va(e)?t?1:4:t?3:2}return o.minus(r).abs()}function ws(i,o,e,t){var r,n,s,a,u,c,l,f,m,d=i.constructor,C=e!==void 0;if(C?(Ie(e,1,Pt),t===void 0?t=d.rounding:Ie(t,0,8)):(e=d.precision,t=d.rounding),!i.isFinite())l=Li(i);else{for(l=nt(i),s=l.indexOf("."),C?(r=2,o==16?e=e*4-3:o==8&&(e=e*3-2)):r=o,s>=0&&(l=l.replace(".",""),m=new d(1),m.e=l.length-s,m.d=Hr(nt(m),10,r),m.e=m.d.length),f=Hr(l,10,r),n=u=f.length;f[--u]==0;)f.pop();if(!f[0])l=C?"0p+0":"0";else{if(s<0?n--:(i=new d(i),i.d=f,i.e=n,i=Re(i,m,e,t,0,r),f=i.d,n=i.e,c=Ni),s=f[e],a=r/2,c=c||f[e+1]!==void 0,c=t<4?(s!==void 0||c)&&(t===0||t===(i.s<0?3:2)):s>a||s===a&&(t===4||c||t===6&&f[e-1]&1||t===(i.s<0?8:7)),f.length=e,c)for(;++f[--e]>r-1;)f[e]=0,e||(++n,f.unshift(1));for(u=f.length;!f[u-1];--u);for(s=0,l="";s<u;s++)l+=ls.charAt(f[s]);if(C){if(u>1)if(o==16||o==8){for(s=o==16?4:3,--u;u%s;u++)l+="0";for(f=Hr(l,r,o),u=f.length;!f[u-1];--u);for(s=1,l="1.";s<u;s++)l+=ls.charAt(f[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(n<0?"p":"p+")+n}else if(n<0){for(;++n;)l="0"+l;l="0."+l}else if(++n>u)for(n-=u;n--;)l+="0";else n<u&&(l=l.slice(0,n)+"."+l.slice(n))}l=(o==16?"0x":o==2?"0b":o==8?"0o":"")+l}return i.s<0?"-"+l:l}function Oa(i,o){if(i.length>o)return i.length=o,!0}function Zc(i){return new this(i).abs()}function zc(i){return new this(i).acos()}function Jc(i){return new this(i).acosh()}function el(i,o){return new this(i).plus(o)}function tl(i){return new this(i).asin()}function rl(i){return new this(i).asinh()}function nl(i){return new this(i).atan()}function sl(i){return new this(i).atanh()}function al(i,o){i=new this(i),o=new this(o);var e,t=this.precision,r=this.rounding,n=t+4;return!i.s||!o.s?e=new this(NaN):!i.d&&!o.d?(e=et(this,n,1).times(o.s>0?.25:.75),e.s=i.s):!o.d||i.isZero()?(e=o.s<0?et(this,t,r):new this(0),e.s=i.s):!i.d||o.isZero()?(e=et(this,n,1).times(.5),e.s=i.s):o.s<0?(this.precision=n,this.rounding=1,e=this.atan(Re(i,o,n,1)),o=et(this,n,1),this.precision=t,this.rounding=r,e=i.s<0?e.minus(o):e.plus(o)):e=this.atan(Re(i,o,n,1)),e}function il(i){return new this(i).cbrt()}function ol(i){return ee(i=new this(i),i.e+1,2)}function ul(i,o,e){return new this(i).clamp(o,e)}function cl(i){if(!i||typeof i!="object")throw Error(Sn+"Object expected");var o,e,t,r=i.defaults===!0,n=["precision",1,Pt,"rounding",0,8,"toExpNeg",-Zt,0,"toExpPos",0,Zt,"maxE",0,Zt,"minE",-Zt,0,"modulo",0,9];for(o=0;o<n.length;o+=3)if(e=n[o],r&&(this[e]=fs[e]),(t=i[e])!==void 0)if(xe(t)===t&&t>=n[o+1]&&t<=n[o+2])this[e]=t;else throw Error(Dt+e+": "+t);if(e="crypto",r&&(this[e]=fs[e]),(t=i[e])!==void 0)if(t===!0||t===!1||t===0||t===1)if(t)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[e]=!0;else throw Error(Oi);else this[e]=!1;else throw Error(Dt+e+": "+t);return this}function ll(i){return new this(i).cos()}function fl(i){return new this(i).cosh()}function ji(i){var o,e,t;function r(n){var s,a,u,c=this;if(!(c instanceof r))return new r(n);if(c.constructor=r,Ma(n)){c.s=n.s,oe?!n.d||n.e>r.maxE?(c.e=NaN,c.d=null):n.e<r.minE?(c.e=0,c.d=[0]):(c.e=n.e,c.d=n.d.slice()):(c.e=n.e,c.d=n.d?n.d.slice():n.d);return}if(u=typeof n,u==="number"){if(n===0){c.s=1/n<0?-1:1,c.e=0,c.d=[0];return}if(n<0?(n=-n,c.s=-1):c.s=1,n===~~n&&n<1e7){for(s=0,a=n;a>=10;a/=10)s++;oe?s>r.maxE?(c.e=NaN,c.d=null):s<r.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[n]):(c.e=s,c.d=[n]);return}else if(n*0!==0){n||(c.s=NaN),c.e=NaN,c.d=null;return}return gs(c,n.toString())}else if(u!=="string")throw Error(Dt+n);return(a=n.charCodeAt(0))===45?(n=n.slice(1),c.s=-1):(a===43&&(n=n.slice(1)),c.s=1),Si.test(n)?gs(c,n):Xc(c,n)}if(r.prototype=v,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=cl,r.clone=ji,r.isDecimal=Ma,r.abs=Zc,r.acos=zc,r.acosh=Jc,r.add=el,r.asin=tl,r.asinh=rl,r.atan=nl,r.atanh=sl,r.atan2=al,r.cbrt=il,r.ceil=ol,r.clamp=ul,r.cos=ll,r.cosh=fl,r.div=ml,r.exp=hl,r.floor=gl,r.hypot=dl,r.ln=Cl,r.log=_l,r.log10=El,r.log2=Al,r.max=bl,r.min=yl,r.mod=Rl,r.mul=pl,r.pow=Nl,r.random=Vl,r.round=Ol,r.sign=Ml,r.sin=Sl,r.sinh=Dl,r.sqrt=wl,r.sub=Pl,r.sum=Ll,r.tan=xl,r.tanh=jl,r.trunc=Ul,i===void 0&&(i={}),i&&i.defaults!==!0)for(t=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],o=0;o<t.length;)i.hasOwnProperty(e=t[o++])||(i[e]=this[e]);return r.config(i),r}function ml(i,o){return new this(i).div(o)}function hl(i){return new this(i).exp()}function gl(i){return ee(i=new this(i),i.e+1,3)}function dl(){var i,o,e=new this(0);for(oe=!1,i=0;i<arguments.length;)if(o=new this(arguments[i++]),o.d)e.d&&(e=e.plus(o.times(o)));else{if(o.s)return oe=!0,new this(1/0);e=o}return oe=!0,e.sqrt()}function Ma(i){return i instanceof x||i&&i.toStringTag===Mi||!1}function Cl(i){return new this(i).ln()}function _l(i,o){return new this(i).log(o)}function Al(i){return new this(i).log(2)}function El(i){return new this(i).log(10)}function bl(){return Pi(this,arguments,"lt")}function yl(){return Pi(this,arguments,"gt")}function Rl(i,o){return new this(i).mod(o)}function pl(i,o){return new this(i).mul(o)}function Nl(i,o){return new this(i).pow(o)}function Vl(i){var o,e,t,r,n=0,s=new this(1),a=[];if(i===void 0?i=this.precision:Ie(i,1,Pt),t=Math.ceil(i/te),this.crypto)if(crypto.getRandomValues)for(o=crypto.getRandomValues(new Uint32Array(t));n<t;)r=o[n],r>=429e7?o[n]=crypto.getRandomValues(new Uint32Array(1))[0]:a[n++]=r%1e7;else if(crypto.randomBytes){for(o=crypto.randomBytes(t*=4);n<t;)r=o[n]+(o[n+1]<<8)+(o[n+2]<<16)+((o[n+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(o,n):(a.push(r%1e7),n+=4);n=t/4}else throw Error(Oi);else for(;n<t;)a[n++]=Math.random()*1e7|0;for(t=a[--n],i%=te,t&&i&&(r=Se(10,te-i),a[n]=(t/r|0)*r);a[n]===0;n--)a.pop();if(n<0)e=0,a=[0];else{for(e=-1;a[0]===0;e-=te)a.shift();for(t=1,r=a[0];r>=10;r/=10)t++;t<te&&(e-=te-t)}return s.e=e,s.d=a,s}function Ol(i){return ee(i=new this(i),i.e+1,this.rounding)}function Ml(i){return i=new this(i),i.d?i.d[0]?i.s:0*i.s:i.s||NaN}function Sl(i){return new this(i).sin()}function Dl(i){return new this(i).sinh()}function wl(i){return new this(i).sqrt()}function Pl(i,o){return new this(i).sub(o)}function Ll(){var i=0,o=arguments,e=new this(o[i]);for(oe=!1;e.s&&++i<o.length;)e=e.plus(o[i]);return oe=!0,ee(e,this.precision,this.rounding)}function xl(i){return new this(i).tan()}function jl(i){return new this(i).tanh()}function Ul(i){return ee(i=new this(i),i.e+1,1)}v[Symbol.for("nodejs.util.inspect.custom")]=v.toString;v[Symbol.toStringTag]="Decimal";var x=v.constructor=ji(fs);rn=new x(rn);nn=new x(nn);function vl(i,o){const e=i+o;return Number.isSafeInteger(e)?e:new x(i).add(o).toNumber()}function Tl(i,o){const e=i-o;return Number.isSafeInteger(e)?e:new x(i).sub(o).toNumber()}function fr(i,o){const e=i*o;return Number.isSafeInteger(e)?e:new x(i).mul(o).toNumber()}function Bl(i,o){const e=i/o;return Number.isSafeInteger(e)?e:new x(i).div(o).toNumber()}function Vt(i,o){const e=10**Math.trunc(o),t=Pn(i,e);return Math.round(fr(i,e)+t)/e}function ke(i,o){const e=10**Math.trunc(o),t=Pn(i,e);return Math.floor(fr(i,e)+t)/e}function Be(i,o){const e=10**Math.trunc(o),t=Pn(i,e);return Math.ceil(fr(i,e)-t)/e}function Pn(i,o){return Number.EPSILON*Math.max(1,Math.abs(fr(i,o)))}function Sa(i,o){return i-o*Math.floor(i/o)}function Il(i,o){return i**o}function Fl(i){return Math.sqrt(i)}function Da(i,o){return i===o}function kl(i,o){return i>o}function $l(i,o){return i>=o}function Yl(i,o){return i<o}function Hl(i,o){return i<=o}function ds(i,o=15){return Number.parseFloat(i.toPrecision(o))}function Gl(i,o,e=Number.EPSILON){return Math.abs(i-o)<e}function Ui(i,o=12,e=1e-10){const t=ds(i,o);return Gl(i,t,e)?t:ds(i)}function Wl(i){return i-Math.trunc(i)}const _n=class _n extends ht{static create(){return this._instance=this._instance||new _n(0),this._instance}isNull(){return!0}plus(o){return y.create(0).plus(o)}minus(o){return y.create(0).minus(o)}multiply(o){return y.create(0).multiply(o)}divided(o){return y.create(0).divided(o)}mod(o){return y.create(0).mod(o)}compare(o,e){return o.isString()?j.create("").compare(o,e):o.isBoolean()?k.create(!1).compare(o,e):y.create(0).compare(o,e)}concatenateFront(o){return o.isArray()?o.concatenateBack(j.create("")):j.create(this.concatenate(o.getValue(),Je.FRONT))}concatenateBack(o){return o.isArray()?o.concatenateFront(j.create("")):j.create(this.concatenate(o.getValue(),Je.BACK))}plusBy(o){return y.create(0).plusBy(o)}minusBy(o){return y.create(0).minusBy(o)}multiplyBy(o){return y.create(0).multiplyBy(o)}dividedBy(o){return y.create(0).dividedBy(o)}compareBy(o,e){return typeof o=="string"?j.create("").compareBy(o,e):typeof o=="boolean"?k.create(!1).compareBy(o,e):y.create(0).compareBy(o,e)}pow(o){return y.create(0).pow(o)}sqrt(){return y.create(0).sqrt()}cbrt(){return y.create(0).cbrt()}cos(){return y.create(0).cos()}cosh(){return y.create(0).cosh()}acos(){return y.create(0).acos()}acosh(){return y.create(0).acosh()}sin(){return y.create(0).sin()}sinh(){return y.create(0).sinh()}asin(){return y.create(0).asin()}asinh(){return y.create(0).asinh()}tan(){return y.create(0).tan()}tanh(){return y.create(0).tanh()}atan(){return y.create(0).atan()}atan2(o){return y.create(0).atan2(o)}atanh(){return y.create(0).atanh()}log(){return g.create(h.NUM)}log10(){return g.create(h.NUM)}exp(){return y.create(0).exp()}abs(){return y.create(0).abs()}round(o){return y.create(0).round(o)}floor(o){return y.create(0).floor(o)}ceil(o){return y.create(0).ceil(o)}convertToNumberObjectValue(){return y.create(0)}convertToBooleanObjectValue(){return k.create(!1)}};A(_n,"_instance");let ae=_n;const Tt=class Tt extends ht{constructor(e){super(e);A(this,"_value",!1);this._value=e}static create(e){return e?(this._instanceTrue=this._instanceTrue||new Tt(!0),this._instanceTrue):(this._instanceFalse=this._instanceFalse||new Tt(!1),this._instanceFalse)}getValue(){return this._value}isBoolean(){return!0}getNegative(){const e=this.getValue();let t=0;return e&&(t=1),y.create(-t)}getReciprocal(){return this.getValue()?y.create(1):g.create(h.DIV_BY_ZERO)}plus(e){return this._convertToNumber().plus(e)}minus(e){return this._convertToNumber().minus(e)}multiply(e){return this._convertToNumber().multiply(e)}divided(e){return this._convertToNumber().divided(e)}mod(e){return this._convertToNumber().mod(e)}compare(e,t){return e.isArray()?e.compare(this,Ds(t)):e.isNull()?this._convertToNumber().compare(e,t):this.compareBy(e.getValue(),t)}compareBy(e,t){let r=!1;if(typeof e=="string"||typeof e=="number")r=this._compareString(t);else if(typeof e=="boolean"){const n=y.create(e?1:0);return this._convertToNumber().compare(n,t)}return Tt.create(r)}_compareString(e){switch(e){case $.GREATER_THAN:case $.GREATER_THAN_OR_EQUAL:return!0;case $.EQUALS:case $.LESS_THAN:case $.LESS_THAN_OR_EQUAL:case $.NOT_EQUAL:return!1}}concatenateFront(e){return this._convertToNumber().concatenateFront(e)}concatenateBack(e){return this._convertToNumber().concatenateBack(e)}_convertToNumber(){const e=this.getValue();let t=0;return e&&(t=1),y.create(t)}pow(e){return this._convertToNumber().pow(e)}sqrt(){return this._convertToNumber().sqrt()}cbrt(){return this._convertToNumber().cbrt()}cos(){return this._convertToNumber().cos()}cosh(){return this._convertToNumber().cosh()}acos(){return this._convertToNumber().acos()}acosh(){return this._convertToNumber().acosh()}sin(){return this._convertToNumber().sin()}sinh(){return this._convertToNumber().sinh()}asin(){return this._convertToNumber().asin()}asinh(){return this._convertToNumber().asinh()}tan(){return this._convertToNumber().tan()}tanh(){return this._convertToNumber().tanh()}atan(){return this._convertToNumber().atan()}atan2(e){return this._convertToNumber().atan2(e)}atanh(){return this._convertToNumber().atanh()}log(){return this._convertToNumber().log()}log10(){return this._convertToNumber().log10()}exp(){return this._convertToNumber().exp()}abs(){return this._convertToNumber().abs()}round(e){return this._convertToNumber().round(e)}floor(e){return this._convertToNumber().floor(e)}ceil(e){return this._convertToNumber().ceil(e)}convertToNumberObjectValue(){return xn(this.getValue())}convertToBooleanObjectValue(){return this}};A(Tt,"_instanceTrue"),A(Tt,"_instanceFalse");let k=Tt;class y extends ht{constructor(e){super(e);A(this,"_value",0);this._value=Number(e)}static create(e,t=""){const r=new y(e);return t&&r.setPattern(t),r}getValue(){return this._value}setValue(e){this._value=e}isNumber(){return!0}getNegative(){return y.create(0).minus(this)}getReciprocal(){return y.create(1).divided(this)}plus(e){if(e.isArray())return e.plus(this);let t=this.plusBy(e.getValue());if(t.isError())return t;const r=vr(this.getPattern(),e.getPattern(),X.PLUS);return t=y.create(Number(t.getValue()),r),t}equalZero(){return this._value===0}minus(e){if(e.isArray()){const n=e.getNegative();return n.isError()?n:n.plus(this)}let t=this.minusBy(e.getValue());if(t.isError())return t;const r=vr(this.getPattern(),e.getPattern(),X.MINUS);return t=y.create(Number(t.getValue()),r),t}multiply(e){if(e.isArray())return e.multiply(this);let t=this.multiplyBy(e.getValue());if(t.isError())return t;const r=vr(this.getPattern(),e.getPattern(),X.MULTIPLY);return t=y.create(Number(t.getValue()),r),t}divided(e){if(e.isArray()){const n=e.getReciprocal();return n.isError()?n:n.multiply(this)}let t=this.dividedBy(e.getValue());if(t.isError())return t;const r=vr(this.getPattern(),e.getPattern(),X.DIVIDED);return t=y.create(Number(t.getValue()),r),t}mod(e){if(e.isArray())return e.modInverse(this);const t=this.getValue(),r=e.getValue();if(e.isNull())return g.create(h.DIV_BY_ZERO);if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(r===0)return g.create(h.DIV_BY_ZERO);if(!Number.isFinite(t)||!Number.isFinite(r)||Math.abs(r)*11259e8<=Math.abs(t))return g.create(h.NUM);const n=Sa(t,r);return Number.isFinite(n)?y.create(n):g.create(h.NUM)}if(typeof r=="boolean"){const n=r?1:0;return n===0?g.create(h.DIV_BY_ZERO):y.create(Sa(t,n))}return this}concatenateFront(e){return e.isArray()?e.concatenateBack(this):j.create(this.concatenate(e.getValue(),Je.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):j.create(this.concatenate(e.getValue(),Je.BACK))}compare(e,t){return e.isArray()?e.compare(this,Ds(t)):this.compareBy(e.getValue(),t)}plusBy(e){const t=+this.getValue(),r=+e;if(Number.isNaN(t)||Number.isNaN(r))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=vl(t,r);return Number.isFinite(n)?y.create(n):g.create(h.NUM)}minusBy(e){const t=+this.getValue(),r=+e;if(Number.isNaN(t)||Number.isNaN(r))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=Tl(t,r);return Number.isFinite(n)?y.create(n):g.create(h.NUM)}multiplyBy(e){const t=+this.getValue(),r=+e;if(Number.isNaN(t)||Number.isNaN(r))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=fr(t,r);return Number.isFinite(n)?y.create(n):g.create(h.NUM)}dividedBy(e){const t=+this.getValue(),r=+e;if(Number.isNaN(t)||Number.isNaN(r))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);if(r===0)return g.create(h.DIV_BY_ZERO);const n=Bl(t,r);return Number.isFinite(n)?y.create(n):g.create(h.NUM)}compareBy(e,t){const r=this.getValue();let n=!1;return typeof e=="string"?n=this._compareString(t):typeof e=="number"?n=this._compareNumber(r,e,t):typeof e=="boolean"&&(n=this._compareBoolean(t)),k.create(n)}_compareString(e){switch(e){case $.EQUALS:case $.GREATER_THAN:case $.GREATER_THAN_OR_EQUAL:return!1;case $.LESS_THAN:case $.LESS_THAN_OR_EQUAL:case $.NOT_EQUAL:return!0}}_compareNumber(e,t,r){return!Number.isFinite(e)||!Number.isFinite(t)?this._compareInfinity(e,t,r):this._compareFiniteNumber(e,t,r)}_compareFiniteNumber(e,t,r){switch(r){case $.EQUALS:return Da(e,t);case $.GREATER_THAN:return kl(e,t);case $.GREATER_THAN_OR_EQUAL:return $l(e,t);case $.LESS_THAN:return Yl(e,t);case $.LESS_THAN_OR_EQUAL:return Hl(e,t);case $.NOT_EQUAL:return!Da(e,t)}}_compareBoolean(e){switch(e){case $.EQUALS:case $.GREATER_THAN:case $.GREATER_THAN_OR_EQUAL:return!1;case $.LESS_THAN:case $.LESS_THAN_OR_EQUAL:case $.NOT_EQUAL:return!0}}pow(e){if(e.isArray())return e.powInverse(this);if(this.isError())return this;const t=this.getValue();let r=e;if(e.isString()&&(r=e.convertToNumberObjectValue()),r.isError())return r;const n=+r.getValue();if(Number.isNaN(n))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(n))return g.create(h.NUM);if(t===0)return n<0?g.create(h.DIV_BY_ZERO):n===0?g.create(h.NUM):y.create(0);const s=Il(t,n);return Number.isFinite(s)?y.create(s):g.create(h.NUM)}sqrt(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Fl(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}cbrt(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.cbrt(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}cos(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.cos(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}cosh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.cosh(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}acos(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.acos(e);return Number.isNaN(t)?g.create(h.NUM):y.create(t)}acosh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.acosh(e);return Number.isNaN(t)?g.create(h.NUM):y.create(t)}sin(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.sin(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}sinh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.sinh(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}asin(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.asin(e);return Number.isNaN(t)?g.create(h.NUM):y.create(t)}asinh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.asinh(e);return Number.isNaN(t)?g.create(h.NUM):y.create(t)}tan(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.tan(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}tanh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.tanh(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}atan(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.atan(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}atan2(e){if(e.isArray())return e.atan2Inverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);if(t===0&&r===0)return g.create(h.DIV_BY_ZERO);const n=Math.atan2(t,r);return Number.isFinite(n)?y.create(n):g.create(h.NUM)}return typeof r=="boolean"?y.create(Math.atan2(t,r?1:0)):this}atanh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.atanh(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}log(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return g.create(h.NUM);const t=Math.log(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}log10(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return g.create(h.NUM);const t=Math.log10(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}exp(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.exp(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}abs(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.abs(e);return Number.isFinite(t)?y.create(t):g.create(h.NUM)}round(e){if(e.isArray())return e.roundInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=t<0?-Vt(Math.abs(t),r):Vt(t,r);return Number.isFinite(n)?y.create(n):g.create(h.NUM)}return typeof r=="boolean"?y.create(Vt(t,r?1:0)):this}floor(e){if(e.isArray())return e.floorInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=t<0?-ke(Math.abs(t),r):ke(t,r);return Number.isFinite(n)?y.create(n):g.create(h.NUM)}return typeof r=="boolean"?y.create(ke(t,r?1:0)):this}ceil(e){if(e.isArray())return e.ceilInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=t<0?-Be(Math.abs(t),r):Be(t,r);return Number.isFinite(n)?y.create(n):g.create(h.NUM)}return typeof r=="boolean"?y.create(Be(t,r?1:0)):this}convertToNumberObjectValue(){return this}convertToBooleanObjectValue(){return Ln(!0)}_compareInfinity(e,t,r){let n=!1;switch(r){case $.EQUALS:n=e===t;break;case $.GREATER_THAN:n=e>t;break;case $.GREATER_THAN_OR_EQUAL:n=e>=t;break;case $.LESS_THAN:n=e<t;break;case $.LESS_THAN_OR_EQUAL:n=e<=t;break;case $.NOT_EQUAL:n=e!==t;break}return n}}const Ql=1e5,wa=new ft(Ql);class j extends ht{constructor(e){super(e);A(this,"_value");this._value=e}static create(e){const t=wa.get(e);if(t)return t;const r=new j(e);return wa.set(e,r),r}getValue(){return this._value}isString(){return!0}concatenateFront(e){return e.isArray()?e.concatenateBack(this):j.create(this.concatenate(e.getValue(),Je.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):j.create(this.concatenate(e.getValue(),Je.BACK))}plus(e){return this.convertToNumberObjectValue().plus(e)}minus(e){return this.convertToNumberObjectValue().minus(e)}multiply(e){return this.convertToNumberObjectValue().multiply(e)}divided(e){return this.convertToNumberObjectValue().divided(e)}compare(e,t,r){return e.isArray()?e.compare(this,Ds(t),r):this.compareBy(e.getValue(),t,r)}compareBy(e,t,r=!1){let n=this.getValue(),s=!1;if(typeof e=="string"){let a=e;if(r||(n=n.toLocaleLowerCase(),a=a.toLocaleLowerCase()),Fc(a))return this._checkWildcard(a,t);s=this._compareString(n,a,t)}else typeof e=="number"?s=this._compareNumber(t):typeof e=="boolean"&&(s=this._compareBoolean(t));return k.create(s)}_compareString(e,t,r){switch(r){case $.EQUALS:return e===t;case $.GREATER_THAN:return e>t;case $.GREATER_THAN_OR_EQUAL:return e>=t;case $.LESS_THAN:return e<t;case $.LESS_THAN_OR_EQUAL:return e<=t;case $.NOT_EQUAL:return e!==t}}_compareNumber(e){switch(e){case $.NOT_EQUAL:case $.GREATER_THAN:case $.GREATER_THAN_OR_EQUAL:return!0;case $.EQUALS:case $.LESS_THAN:case $.LESS_THAN_OR_EQUAL:return!1}}_compareBoolean(e){switch(e){case $.EQUALS:case $.GREATER_THAN:case $.GREATER_THAN_OR_EQUAL:return!1;case $.LESS_THAN:case $.LESS_THAN_OR_EQUAL:case $.NOT_EQUAL:return!0}}convertToNumberObjectValue(){return xn(this.getValue())}convertToBooleanObjectValue(){return k.create(!0)}_checkWildcard(e,t){const r=this.getValue().toLocaleLowerCase(),n=kc(r,e,t);return k.create(n)}}function Ln(i){if(typeof i=="boolean")return k.create(i);let o=!1;if(typeof i=="string"){const e=i.toLocaleUpperCase();e===Ot.TRUE?o=!0:e===Ot.FALSE&&(o=!1)}else i===1?o=!0:o=!1;return k.create(o)}function ql(i){let o=i.toString();return o.charAt(0)==='"'&&o.charAt(o.length-1)==='"'&&(o=o.slice(1,-1),o=o.replace(/""/g,'"')),j.create(o)}function xn(i,o=""){if(typeof i=="boolean"){let e=0;return i&&(e=1),y.create(e,o)}else{if(typeof i=="number")return Number.isFinite(i)?y.create(i,o):g.create(h.NUM);if(M.isRealNum(i))return y.create(Number(i),o)}return g.create(h.VALUE)}function Xl(i){return""}function vi(i=[]){const o=[];for(let e=0;e<i.length;e++){const t=i[e];o[e]==null&&(o[e]=[]);for(let r=0;r<t.length;r++){const n=t[r];o[e][r]=lt.create(n)}}return o}function Kl(i=[]){const o=[];for(let e=0;e<i.length;e++){const t=i[e];o[e]==null&&(o[e]=[]);for(let r=0;r<t.length;r++){const n=t[r];n==null?o[e][r]=null:n.isError()?o[e][r]=n.getErrorType():o[e][r]=n.getValue()}}return o}class K extends ht{constructor(e){super(typeof e=="string"?e:Xl());A(this,"_values",[]);A(this,"_rowCount",-1);A(this,"_columnCount",-1);A(this,"_unitId","");A(this,"_sheetId","");A(this,"_currentRow",-1);A(this,"_currentColumn",-1);A(this,"_sliceCache",new Map);A(this,"_flattenCache");A(this,"_defaultValue",null);A(this,"_flattenPosition");this._values=this._formatValue(e)}static create(e){return new K(e)}static createByArray(e){const r={calculateValueList:vi(e),rowCount:e.length,columnCount:e[0].length||0,unitId:"",sheetId:"",row:-1,column:-1};return new K(r)}dispose(){this._values=[],this._defaultValue=null,this._flattenPosition=null,this._clearCache()}clone(){return this.map(e=>e)}getRowCount(){return this._rowCount}setRowCount(e){this._rowCount=e}getColumnCount(){return this._columnCount}setColumnCount(e){this._columnCount=e}setCurrent(e,t){this._currentRow=e,this._currentColumn=t}setUnitId(e){this._unitId=e}getUnitId(){return this._unitId}setSheetId(e){this._sheetId=e}getSheetId(){return this._sheetId}getCurrentRow(){return this._currentRow}getCurrentColumn(){return this._currentColumn}getArrayValue(){return this._values}setArrayValue(e){this._clearCache(),this._values=e}isArray(){return!0}setDefaultValue(e){this._defaultValue=e}get(e,t){var r;return((r=this._values[e])==null?void 0:r[t])||this._defaultValue}getRealValue(e,t){const r=this._values[e];if(r==null)return null;const n=r[t];return n==null?null:n}getValueOrDefault(e,t){return this.get(e,t)||this._defaultValue}set(e,t,r){if(e>=this._rowCount||t>=this._columnCount)throw new Error("Exceeding array bounds.");this._clearCache(),this._values[e][t]=r}getRangePosition(){const t=this.getRowCount(),r=0,n=this.getColumnCount();return{startRow:0,endRow:t-1,startColumn:r,endColumn:n-1}}iterator(e){var u;const{startRow:t,endRow:r,startColumn:n,endColumn:s}=this.getRangePosition(),a=this.getArrayValue();for(let c=t;c<=r;c++)for(let l=n;l<=s;l++)if(e(((u=a[c])==null?void 0:u[l])||this._defaultValue,c,l)===!1)return}iteratorReverse(e){var u;const{startRow:t,endRow:r,startColumn:n,endColumn:s}=this.getRangePosition(),a=this.getArrayValue();for(let c=r;c>=t;c--)for(let l=s;l>=n;l--)if(e(((u=a[c])==null?void 0:u[l])||this._defaultValue,c,l)===!1)return}getLastTruePosition(){let e;return this.iteratorReverse((t,r,n)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:n},!1}),e}getFirstTruePosition(){let e;return this.iterator((t,r,n)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:n},!1}),e}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||ae.create()}getLastCell(){const{endRow:e,endColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||ae.create()}pick(e){const t=this.pickRaw(e);return this._createNewArray(t,1,t[0].length)}pickRaw(e){const t=e.getRowCount(),r=e.getColumnCount();if(t!==this._rowCount||r!==this._columnCount)return[[ae.create()]];const n=[];n[0]=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.get(s,a);if(!(u==null||u.isError())&&u.getValue()===!0){const c=this.get(s,a);n[0].push(c)}}return n}flatten(){if(this._flattenCache!=null)return this._flattenCache;const e=[];e[0]=[];for(let r=0;r<this._rowCount;r++)for(let n=0;n<this._columnCount;n++){const s=this.get(r,n);e[0].push(s)}const t=this._createNewArray(e,1,e[0].length);return t.setDefaultValue(this._defaultValue),this._flattenCache=t,t}flattenPosition(){if(this._flattenPosition!=null)return this._flattenPosition;const e=[],t=[],r=[],n=[];let s=0;for(let u=0;u<this._rowCount;u++)for(let c=0;c<this._columnCount;c++){const l=this.get(u,c);if(l==null||l.isError()||l.isNull()){s++;continue}l.isString()?(e.push(l),r.push(s++)):(t.push(l),n.push(s++))}const a={stringArray:e,numberArray:t,stringPosition:r,numberPosition:n};return this._flattenPosition=a,a}slice(e,t){let r=0,n=this._rowCount,s=1,a=0,u=this._columnCount,c=1;if(e!=null&&(r=e[0]||0,n=e[1]||this._rowCount,s=e[2]||1),t!=null&&(a=t[0]||0,u=t[1]||this._columnCount,c=t[2]||1),r>=this._rowCount||a>=this._columnCount)return;const l=`${r}_${n}_${s}_${a}_${u}_${c}`,f=this._sliceCache.get(l);if(f!=null)return f;const m=[],d=this._values;let C=0,_=0;for(let p=r;p<n;p+=s){_=0,m[C]==null&&(m[C]=[]);for(let V=a;V<u;V+=c){if(!d[p])return;let S=d[p][V]||this._defaultValue;S==null&&(S=ae.create()),m[C][_]=S,_++}C++}if(m.length===0||m[0].length===0)return;const E=s>1?-1:r+this._currentRow,b=c>1?-1:a+this._currentColumn,R=this._createNewArray(m,m.length,m[0].length,E,b);return R.setDefaultValue(this._defaultValue),this._sliceCache.set(l,R),R}sortByRow(e){const t=this._transposeArray(this._values);t.sort(this._sort(e)),this._clearCache(),this._values=this._transposeArray(t)}sortByColumn(e){this._clearCache(),this._values.sort(this._sort(e))}transpose(){const e=this._transposeArray(this._values),t=this._rowCount,r=this._columnCount,n=this._createNewArray(e,r,t);return n.setDefaultValue(this._defaultValue),n}orderSearch(e,t=Oe.MIN,r=!1,n=!1){let s,a,u,c;const l=(f,m,d)=>{if(f==null)return!0;let C;if(n===!0?C=f.compare(e,$.EQUALS):C=f.isEqual(e),(C==null?void 0:C.getValue())===!0)return s=f,u={row:m,column:d},!1;t===Oe.MAX?f.isGreaterThan(e).getValue()===!0&&(a==null||f.minus(e).abs().isLessThanOrEqual(a.minus(e).abs()).getValue()===!0)&&(a=f,c={row:m,column:d}):t===Oe.MIN&&f.isLessThan(e).getValue()===!0&&(a==null||f.minus(e).abs().isLessThanOrEqual(a.minus(e).abs()).getValue()===!0)&&(a=f,c={row:m,column:d})};if(r?this.iteratorReverse((f,m,d)=>l(f,m,d)):this.iterator((f,m,d)=>l(f,m,d)),s!=null)return u;if(a!=null)return c}binarySearch(e,t=Ut.MIN,r=Oe.MIN){if(e.isError())return;const{stringArray:n,stringPosition:s,numberArray:a,numberPosition:u}=this.flattenPosition();return e.isString()?this._binarySearch(e,n,s,t,r):this._binarySearch(e,a,u,t,r)}_binarySearch(e,t,r,n=Ut.MIN,s=Oe.MIN){const a=tn(),u=Number(e.getValue()),c=!Number.isNaN(u);let l=0,f=t.length-1,m=-1,d=-1,C=-1;for(;l<=f;){const _=Math.floor((l+f)/2),E=t[_];let b;if(E.isNull())b=n===Ut.MIN?1:-1;else{const R=E.getValue();if(c){const p=Number(R);b=Number.isNaN(p)?1:Math.sign(p-u)}else b=a(R.toString().toLocaleLowerCase(),e.getValue().toString().toLocaleLowerCase())}if(n===Ut.MAX&&(b=-b),b===0){m=_;break}b<0?(d=_,l=_+1):(C=_,f=_-1)}if(s===Oe.NORMAL)return m!==-1?r[m]:void 0;if(s===Oe.MIN)return m!==-1?r[m]:n===Ut.MIN?r[d]:r[C];if(s===Oe.MAX)return m!==-1?r[m]:n===Ut.MIN?r[C]:r[d]}sum(){let e=y.create(0);return this.iterator(t=>{if(t==null||t.isString()||t.isBoolean()||t.isNull())return!0;if(t.isError())return e=t,!1;e=e.plus(t)}),e}max(){let e=y.create(Number.NEGATIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isLessThan(t).getValue()&&(e=t)}),e}min(){let e=y.create(Number.POSITIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isGreaterThan(t).getValue()&&(e=t)}),e}count(){let e=y.create(0);return this.iterator(t=>{if(t==null||t.isError()||t.isString()||t.isNull()||t.isBoolean())return!0;e=e.plusBy(1)}),e}countA(){let e=y.create(0);return this.iterator(t=>{if(t==null||t.isNull())return!0;e=e.plusBy(1)}),e}countBlank(){let e=y.create(0);return this.iterator(t=>{(t==null||t.isNull()||t.getValue()==="")&&(e=e.plusBy(1))}),e}getNegative(){return K.create("{0}").minus(this)}getReciprocal(){return K.create("{1}").divided(this)}plus(e){return this._batchOperator(e,1)}minus(e){return this._batchOperator(e,0)}multiply(e){return this._batchOperator(e,2)}divided(e){return this._batchOperator(e,3)}mod(e){return this._batchOperator(e,4)}modInverse(e){return this.map(t=>t.isError()?t:e.mod(t))}compare(e,t,r){return this._batchOperator(e,5,t,r)}concatenateFront(e){return this._batchOperator(e,6)}concatenateBack(e){return this._batchOperator(e,7)}map(e){const t=(r,n,s)=>r==null?ae.create():r.isError()?r:e(r,n,s);return this.mapValue(t)}mapValue(e){var s;const t=this._rowCount,r=this._columnCount,n=[];for(let a=0;a<t;a++){const u=[];for(let c=0;c<r;c++){const l=(s=this._values)==null?void 0:s[a];if(l==null)u[c]=g.create(h.VALUE);else{const f=l[c]||this._defaultValue;f?u[c]=e(f,a,c):u[c]=ae.create()}}n.push(u)}return this._createNewArray(n,t,r)}pow(e){return this._batchOperator(e,8)}powInverse(e){return this.map(t=>t.isError()?t:e.pow(t))}sqrt(){return this.map(e=>e.isError()?e:e.sqrt())}cbrt(){return this.map(e=>e.isError()?e:e.cbrt())}cos(){return this.map(e=>e.isError()?e:e.cos())}cosh(){return this.map(e=>e.isError()?e:e.cosh())}acos(){return this.map(e=>e.isError()?e:e.acos())}acosh(){return this.map(e=>e.isError()?e:e.acosh())}sin(){return this.map(e=>e.isError()?e:e.sin())}sinh(){return this.map(e=>e.isError()?e:e.sinh())}asin(){return this.map(e=>e.isError()?e:e.asin())}asinh(){return this.map(e=>e.isError()?e:e.asinh())}tan(){return this.map(e=>e.isError()?e:e.tan())}tanh(){return this.map(e=>e.isError()?e:e.tanh())}atan(){return this.map(e=>e.isError()?e:e.atan())}atanh(){return this.map(e=>e.isError()?e:e.atanh())}atan2(e){return this._batchOperator(e,12)}atan2Inverse(e){return this.map(t=>t.isError()?t:e.atan2(t))}mean(e=0){const t=this.sum(),r=this.count();return t.divided(e===0?r:r.minusBy(1))}median(){const e=this.flattenPosition().numberArray,t=this._createNewArray([e],1,e.length),r=t.getColumnCount();if(r<=1)return t.get(0,0)||ae.create();if(t.sortByRow(0),r%2===0){const n=t.get(0,r/2)||ae.create(),s=t.get(0,r/2-1)||ae.create();return n.plus(s).divided(y.create(2))}return t.get(0,(r-1)/2)||ae.create()}var(e=0){const t=this.mean(),r=[[]];this.iterator(l=>{if(l==null||l.isError()||l.isString()||l.isBoolean()||l.isNull())return;const f=l.minus(t).pow(y.create(2));f.isError()||r[0].push(f)});const{_unitId:n,_sheetId:s,_currentRow:a,_currentColumn:u}=this;return K.create({calculateValueList:r,rowCount:1,columnCount:r[0].length,unitId:n,sheetId:s,row:a,column:u}).mean(e)}std(e=0){const t=this.var(e);return t.isError()?t:t.sqrt()}log(){return this.map(e=>e.isError()?e:e.log())}log10(){return this.map(e=>e.isError()?e:e.log10())}exp(){return this.map(e=>e.isError()?e:e.exp())}abs(){return this.map(e=>e.isError()?e:e.abs())}round(e){return this._batchOperator(e,9)}roundInverse(e){return this.map(t=>t.isError()?t:e.round(t))}floor(e){return this._batchOperator(e,10)}floorInverse(e){return this.map(t=>t.isError()?t:e.floor(t))}ceil(e){return this._batchOperator(e,11)}ceilInverse(e){return this.map(t=>t.isError()?t:e.ceil(t))}toValue(){return Kl(this._values)}_clearCache(){this._flattenCache=null,this._sliceCache.clear()}_sort(e){const t=tn();return(r,n)=>{const s=r[e],a=n[e];return s==null?1:a==null?-1:s.isError()&&s.isError()?0:s.isError()?1:a.isError()?-1:t(s.getValue(),a.getValue())}}_transposeArray(e){const t=e.length,r=e[0].length,n=[];for(let s=0;s<r;s++){n[s]=[];for(let a=0;a<t;a++)n[s][a]=e[a][s]}return n}_batchOperator(e,t,r,n){const s=[];let a=this._rowCount,u=this._columnCount;if(e.isArray()){const f=e.getRowCount(),m=e.getColumnCount();if(a=Math.max(f,a),u=Math.max(m,u),f===1&&m===1){const d=e.getFirstCell();for(let C=0;C<u;C++)s.push(d)}else if(f===1&&this._columnCount>1){const d=e.getArrayValue();for(let C=0;C<u;C++)s.push(d[0][C])}else return this._batchOperatorArray(e,t,r,n)}else for(let f=0;f<u;f++)s.push(e);const c=[];for(let f=0;f<u;f++){const m=s[f];this._batchOperatorValue(m,f,c,t,r,n)}const l=this._createNewArray(c,a,u);return l.setDefaultValue(k.create(!1)),l}_batchOperatorValue(e,t,r,n,s,a){const u=this._rowCount,c=this.getUnitId(),l=this.getSheetId(),f=this.getCurrentRow(),m=this.getCurrentColumn();if(n===5){const{rowsInCache:d,rowsNotInCache:C}=Et.canUseCache(c,l,t+m,f,f+u-1);if(d.length>0){if(s===$.EQUALS){const _=Et.getCellPositions(c,l,t+m,e.getValue(),d);_!=null&&_.forEach(E=>{if(E<f||E>f+u-1)return;const b=E-f;r[b]==null&&(r[b]=[]),r[b][t]=k.create(!0)})}else{const _=Et.getCellValuePositions(c,l,t+m);_!=null&&_.forEach((E,b)=>{let R=ae.create();qt.has(b)?R=g.create(b):typeof b=="string"?R=j.create(b):typeof b=="number"?R=y.create(b):typeof b=="boolean"&&(R=k.create(b));let p;R.isError()?p=R:e.isError()?p=e:p=R.compare(e,s,a),(p.isError()||p.getValue()===!0)&&E.forEach(V=>{V>=f&&V<=f+u-1&&(r[V-f]==null&&(r[V-f]=[]),r[V-f][t]=p)})})}if(C.length>0)for(const _ of C){const[E,b]=_;for(let R=E;R<=b;R++)this.__batchOperatorRowValue(e,t,r,n,R-f,c,l,f,m,s,a);Et.setContinueBuildingCache(c,l,t+m,E,b)}return}}for(let d=0;d<u;d++)this.__batchOperatorRowValue(e,t,r,n,d,c,l,f,m,s,a);Et.setContinueBuildingCache(c,l,t+m,f,f+u-1)}__batchOperatorRowValue(e,t,r,n,s,a,u,c,l,f,m){const d=this.getValueOrDefault(s,t);if(r[s]==null&&(r[s]=[]),d&&e)if(d.isError())r[s][t]=d;else if(e.isError())r[s][t]=e;else switch(n){case 1:r[s][t]=d.plus(e);break;case 0:r[s][t]=d.minus(e);break;case 2:r[s][t]=d.multiply(e);break;case 3:r[s][t]=d.divided(e);break;case 4:r[s][t]=d.mod(e);break;case 5:f?r[s][t]=d.compare(e,f,m):r[s][t]=g.create(h.VALUE);break;case 6:r[s][t]=d.concatenateFront(e);break;case 7:r[s][t]=d.concatenateBack(e);break;case 8:r[s][t]=d.pow(e);break;case 9:r[s][t]=d.round(e);break;case 10:r[s][t]=d.floor(e);break;case 12:r[s][t]=d.atan2(e);break;case 11:r[s][t]=d.ceil(e);break}else r[s][t]=g.create(h.NA);d!=null&&(d.isError()?Et.set(a,u,t+l,d.getErrorType(),s+c):Et.set(a,u,t+l,d.getValue(),s+c))}_batchOperatorArray(e,t,r,n){let s=e.getRowCount(),a=e.getColumnCount();s<this._rowCount&&(s=this._rowCount),a<this._columnCount&&(a=this._columnCount);const u=[],c=this._checkArrayCalculateType(this),l=this._checkArrayCalculateType(e);for(let f=0;f<s;f++){const m=[];for(let d=0;d<a;d++){let C;c===3?C=this.getValueOrDefault(0,0):c===1?C=this.getValueOrDefault(0,d):c===2?C=this.getValueOrDefault(f,0):C=this.getValueOrDefault(f,d);let _;if(l===3?_=e.getValueOrDefault(0,0):l===1?_=e.getValueOrDefault(0,d):l===2?_=e.getValueOrDefault(f,0):_=e.getValueOrDefault(f,d),C&&_)if(C.isError())m[d]=C;else if(_.isError())m[d]=_;else switch(t){case 1:m[d]=C.plus(_);break;case 0:m[d]=C.minus(_);break;case 2:m[d]=C.multiply(_);break;case 3:m[d]=C.divided(_);break;case 4:m[d]=C.mod(_);break;case 5:r?m[d]=C.compare(_,r,n):m[d]=g.create(h.VALUE);break;case 6:m[d]=C.concatenateFront(_);break;case 7:m[d]=C.concatenateBack(_);break;case 8:m[d]=C.pow(_);break;case 9:m[d]=C.round(_);break;case 12:m[d]=C.atan2(_);break;case 10:m[d]=C.floor(_);break;case 11:m[d]=C.ceil(_);break}else m[d]=g.create(h.NA)}u.push(m)}return this._createNewArray(u,s,a)}_checkArrayCalculateType(e){return e.getRowCount()===1&&e.getColumnCount()===1?3:e.getRowCount()===1?1:e.getColumnCount()===1?2:0}_formatValue(e){if(typeof e!="string")return e=e,this._rowCount=e.rowCount,this._columnCount=e.columnCount,this._unitId=e.unitId,this._sheetId=e.sheetId,this._currentRow=e.row,this._currentColumn=e.column,e.calculateValueList;e=e.slice(1,-1);const t=e.split(";"),r=t.length,n=[];let s=0;for(let a=0;a<r;a++){const c=t[a].split(","),l=c.length;s<l&&(s=l);const f=[];for(let m=0;m<l;m++){const d=c[m].trim();f.push(lt.create(d))}n.push(f)}return this._rowCount=r,this._columnCount=s,n}_createNewArray(e,t,r,n=-1,s=-1){(this._currentColumn===-1||this._currentRow===-1)&&(n=-1,s=-1);const a={calculateValueList:e,rowCount:t,columnCount:r,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:n,column:s};return K.create(a)}}class lt{static create(o){if(o==null)return ae.create();if(typeof o=="boolean")return k.create(o);if(typeof o=="string"){const e=o.toLocaleUpperCase().trim();if(qt.has(e))return g.create(e);if(e===Ot.TRUE||e===Ot.FALSE)return Ln(o);if(M.isRealNum(o))return y.create(Number(o));const{isNumberPattern:t,value:r,pattern:n}=vc(o);if(t)return y.create(r,n);const s=o.replace(/\n/g,"").replace(/\r/g,"");return!Zl(s)&&Ku(s)?K.create(s):ql(o)}return typeof o=="number"?xn(o):g.create(h.VALUE)}}function Zl(i){const o=i.trim();return o.startsWith('"')&&o.endsWith('"')}const zl=1e4,Cs=new ft(zl);class Mr extends Mn{constructor(e){super();A(this,"_forcedSheetId","");A(this,"_forcedSheetName","");A(this,"_defaultSheetId","");A(this,"_rangeData",{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1});A(this,"_unitData",{});A(this,"_unitStylesData",{});A(this,"_defaultUnitId","");A(this,"_forcedUnitId","");A(this,"_runtimeData",{});A(this,"_arrayFormulaCellData",{});A(this,"_runtimeArrayFormulaCellData",{});A(this,"_runtimeFeatureCellData",{});A(this,"_refOffsetX",0);A(this,"_refOffsetY",0);this._token=e}dispose(){this._unitData={},this._unitStylesData={},this._runtimeData={}}getToken(){return this._token}setToken(e){this._token=e}isExceedRange(){const{startRow:e,endRow:t,startColumn:r,endColumn:n}=this.getRangePosition();return e<0||r<0||t>=this.getActiveSheetRowCount()||n>=this.getActiveSheetColumnCount()}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}getRangePosition(){let{startRow:e,startColumn:t,endRow:r,endColumn:n}=M.moveRangeByOffset(this._rangeData,this._refOffsetX,this._refOffsetY);return Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),Number.isNaN(r)&&(r=this.getActiveSheetRowCount()-1),Number.isNaN(n)&&(n=this.getActiveSheetColumnCount()-1),{...this._rangeData,startRow:e,endRow:r,startColumn:t,endColumn:n}}isReferenceObject(){return!0}iterator(e){const{startRow:t,endRow:r,startColumn:n,endColumn:s}=this.getRangePosition();if(this._checkIfWorksheetMiss())return e(g.create(h.VALUE),t,n);const a=this._forcedUnitId||this._defaultUnitId,u=this._forcedSheetId||this._defaultSheetId;for(let c=t;c<=r;c++)for(let l=n;l<=s;l++){if(c<0||l<0)return e(g.create(h.REF),c,l);const f=this.getCellData(c,l);let m=!1;if(M.isNullCell(f)){m=e(null,c,l);continue}let d=this.getCellValueObject(f);if(c===t&&l===n){const C=this.getCellPattern(a,u,c,l);if(C&&d.isNumber()){const _=Number(d.getValue());d=y.create(_,C)}}if(m=e(d,c,l),m===!1)return}}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition(),r=this.getCellData(e,t);if(!r)return y.create(0);let n=this.getCellValueObject(r);const s=this._forcedUnitId||this._defaultUnitId,a=this._forcedSheetId||this._defaultSheetId,u=this.getCellPattern(s,a,e,t);if(u&&n.isNumber()){const c=Number(n.getValue());n=y.create(c,u)}return n}getRangeData(){return this._rangeData}setRangeData(e){this._rangeData=e}getUnitId(){return this._forcedUnitId&&this._forcedUnitId.length>0?this._forcedUnitId:this._defaultUnitId}getSheetId(){return this._forcedSheetId&&this._forcedSheetId.length>0?this._forcedSheetId:this._defaultSheetId}setForcedUnitIdDirect(e){e.length>0&&(this._forcedUnitId=e)}getForcedUnitId(){return this._forcedUnitId}setForcedSheetId(e){var t;this._forcedSheetId=(t=e[this.getUnitId()])==null?void 0:t[this._forcedSheetName]}setForcedSheetIdDirect(e){this._forcedSheetId=e}getForcedSheetId(){return this._forcedSheetId}setForcedSheetName(e){e.length>0&&(this._forcedSheetName=e)}getForcedSheetName(){return this._forcedSheetName}setDefaultSheetId(e){this._defaultSheetId=e}getDefaultSheetId(){return this._defaultSheetId}setDefaultUnitId(e){this._defaultUnitId=e}getDefaultUnitId(){return this._defaultUnitId}getUnitData(){return this._unitData}setUnitData(e){this._unitData=e}getUnitStylesData(){return this._unitStylesData}setUnitStylesData(e){this._unitStylesData=e}getRuntimeData(){return this._runtimeData}setRuntimeData(e){this._runtimeData=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}setRuntimeArrayFormulaCellData(e){this._runtimeArrayFormulaCellData=e}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e){this._runtimeFeatureCellData=e}getActiveSheetRowCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowCount)||0}getActiveSheetColumnCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnCount)||0}getRowCount(){return this._rangeData.endRow-this._rangeData.startRow+1}getColumnCount(){return this._rangeData.endColumn-this._rangeData.startColumn+1}getRowData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowData)||{}}getColumnData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnData)||{}}isCell(){return!1}isColumn(){return!1}isRow(){return!1}isRange(){return!1}isTable(){return!1}unionBy(e){return g.create(h.REF)}unionRange(e,t){return{startRow:-1,startColumn:-1,endRow:-1,endColumn:-1}}getCellValueObject(e){const t=Ic(e);if(qt.has(t))return g.create(t);if(e.t===M.CellValueType.NUMBER){const r=this._getPatternByCell(e);return xn(t,r)}return e.t===M.CellValueType.STRING||e.t===M.CellValueType.FORCE_STRING?j.create(t.toString()):e.t===M.CellValueType.BOOLEAN?Ln(t):lt.create(t)}_getPatternByCell(e){var n;const t=this._unitStylesData[this.getUnitId()];if(!t)return"";const r=t.getStyleByCell(e);return((n=r==null?void 0:r.n)==null?void 0:n.pattern)||""}getCellByRow(e){return this.getCellByPosition(e)}getCellByColumn(e){return this.getCellByPosition(void 0,e)}getCurrentActiveSheetData(){var e;return(e=this._unitData[this.getUnitId()])==null?void 0:e[this.getSheetId()]}getCurrentStylesData(){return this._unitStylesData[this.getUnitId()]}getCurrentRuntimeSheetData(){var e,t;return(t=(e=this._runtimeData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentActiveArrayFormulaCellData(){var e,t;return(t=(e=this._arrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentRuntimeActiveArrayFormulaCellData(){var e,t;return(t=(e=this._runtimeArrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCellData(e,t){const r=this.getCurrentActiveSheetData(),n=this.getCurrentRuntimeSheetData(),s=this.getCurrentActiveArrayFormulaCellData(),a=this.getCurrentRuntimeActiveArrayFormulaCellData();return(n==null?void 0:n.getValue(e,t))||(a==null?void 0:a.getValue(e,t))||this.getRuntimeFeatureCellValue(e,t)||(s==null?void 0:s.getValue(e,t))||(r==null?void 0:r.cellData.getValue(e,t))}getRuntimeFeatureCellValue(e,t){return pi(e,t,this.getSheetId(),this.getUnitId(),this._runtimeFeatureCellData)}getCellByPosition(e,t){let r=e,n=t;r||(r=this._rangeData.startRow),n||(n=this._rangeData.startColumn);const s=this.getCellData(r,n);return s?this.getCellValueObject(s):g.create(h.VALUE)}getCellPattern(e,t,r,n){var c,l,f,m;const s=this._unitStylesData[e];if(!s)return"";const a=(f=(l=(c=this._unitData[e])==null?void 0:c[t])==null?void 0:l.cellData)==null?void 0:f.getValue(r,n);if(!a)return"";const u=s.getStyleByCell(a);return((m=u==null?void 0:u.n)==null?void 0:m.pattern)||""}toArrayValueObject(e=!0){var C;const{startRow:t,endRow:r,startColumn:n,endColumn:s}=this.getRangePosition(),a=`${this.getUnitId()}_${this.getSheetId()}_${t}_${r}_${n}_${s}`,u=Cs.get(a);if(u&&e)return u;const c=r-t+1,l=s-n+1;if(c<0||l<0)return this._getBlankArrayValueObject();const f=new Array(c);this.iterator((_,E,b)=>{const R=E-t,p=b-n;f[R]||(f[R]=new Array(l)),_==null&&(_=ae.create()),f[R][p]=_});const m={calculateValueList:f,rowCount:f.length,columnCount:((C=f[0])==null?void 0:C.length)||0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:t,column:n},d=K.create(m);return e&&Cs.set(a,d),d}toUnitRange(){return{range:this.getRangePosition(),sheetId:this.getSheetId(),unitId:this.getUnitId()}}_checkIfWorksheetMiss(){return(this._forcedSheetId==null||this._forcedSheetId.length===0)&&this._forcedSheetName.length>0}_getBlankArrayValueObject(){const e={calculateValueList:[],rowCount:0,columnCount:0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:0,column:0};return K.create(e)}}class Ti extends Mn{constructor(o){super(),this._promise=o}isAsyncObject(){return!0}async getValue(){return this._promise}}class Bi extends Mn{constructor(o){super(),this._promiseList=o}isAsyncArrayObject(){return!0}async getValue(){var t;const o=[];for(let r=0;r<this._promiseList.length;r++){const n=this._promiseList[r];o[r]==null&&(o[r]=[]);for(let s=0;s<n.length;s++){const a=n[s];a.isAsyncObject()?o[r][s]=await a.getValue():o[r][s]=a}}const e={calculateValueList:o,rowCount:o.length,columnCount:((t=o[0])==null?void 0:t.length)||0,unitId:"",sheetId:"",row:0,column:0};return K.create(e)}}class Rr extends Mr{constructor(o,e,t){super(""),this.setRangeData(o),e&&this.setForcedSheetIdDirect(e),t&&this.setForcedUnitIdDirect(t)}isRange(){return!0}}class Ps extends Mr{constructor(o){super(o);const e=Yt(o);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName),this.setRangeData(e.range)}isCell(){return!0}unionBy(o){if(!o.isCell())return g.create(h.REF);const e=o,t=this.unionRange(this.getRangeData(),e.getRangeData());return this._createRange(t)}unionRange(o,e){const t=o.startRow,r=o.startColumn,n=e.startRow,s=e.startColumn,a={startRow:-1,startColumn:-1,endRow:-1,endColumn:-1};return t>n?(a.startRow=n,a.endRow=t):(a.startRow=t,a.endRow=n),r>s?(a.startColumn=s,a.endColumn=r):(a.startColumn=r,a.endColumn=s),o.startAbsoluteRefType&&(a.startAbsoluteRefType=o.startAbsoluteRefType),e.startAbsoluteRefType&&(a.endAbsoluteRefType=e.startAbsoluteRefType),a}_createRange(o){const e=new Rr(o,this.getForcedSheetId(),this.getForcedUnitId());e.setUnitData(this.getUnitData()),e.setDefaultSheetId(this.getDefaultSheetId()),e.setDefaultUnitId(this.getDefaultUnitId()),e.setRuntimeData(this.getRuntimeData()),e.setUnitStylesData(this.getUnitStylesData()),e.setArrayFormulaCellData(this.getArrayFormulaCellData()),e.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());const{x:t,y:r}=this.getRefOffset();e.setRefOffset(t,r);const n=this.getForcedSheetId();e.setForcedSheetName(this.getForcedSheetName()),n!=null&&e.setForcedSheetIdDirect(n);const s=this.getForcedUnitId();return s&&e.setForcedUnitIdDirect(s),e}}class Ls extends Mr{constructor(o){super(o);const e=Yt(o);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={...e.range,startColumn:e.range.startColumn,startRow:Number.NaN,endColumn:e.range.endColumn,endRow:Number.NaN,rangeType:M.RANGE_TYPE.COLUMN};this.setRangeData(t)}isColumn(){return!0}unionBy(o){if(!o.isColumn())return g.create(h.REF);const e=o;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return g.create(h.REF);const t=this.getRangeData(),r=e.getRangeData(),n=r.startColumn;if(n>=t.startColumn&&n<=t.endColumn)return this;const s=t.startColumn;return n>s?t.endColumn=n:(t.startColumn=n,t.endColumn=s),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=M.RANGE_TYPE.COLUMN,this.setToken(`${this.getToken()}${Q.COLON}${e.getToken()}`),this}}class xs extends Mr{constructor(o){super(o);const e=Yt(o);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={...e.range,startColumn:Number.NaN,startRow:e.range.startRow,endColumn:Number.NaN,endRow:e.range.endRow,rangeType:M.RANGE_TYPE.ROW};this.setRangeData(t)}isRow(){return!0}unionBy(o){if(!o.isRow())return g.create(h.REF);const e=o;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return g.create(h.REF);const t=this.getRangeData(),r=e.getRangeData(),n=r.startRow;if(n>=t.startRow&&n<=t.endRow)return this;const s=t.startRow;return n>s?t.endRow=n:(t.startRow=n,t.endRow=s),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=M.RANGE_TYPE.ROW,this.setToken(`${this.getToken()}${Q.COLON}${e.getToken()}`),this}}function O(i,o,e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=[];for(let a=0;a<i;a++){const u=[];for(let c=0;c<o;c++){if(r===1&&n===1){const f=e.isArray()?e.get(0,0):e;u.push(f);continue}if(r===1&&c<n){const f=e.get(0,c);u.push(f);continue}if(n===1&&a<r){const f=e.get(a,0);u.push(f);continue}if(a>=r||c>=n){u.push(t!=null?t:ae.create());continue}const l=e.get(a,c);u.push(l)}s.push(u)}return Ht(s,i,o)}function Ht(i,o,e,t="",r=""){const n={calculateValueList:i,rowCount:o,columnCount:e,unitId:t,sheetId:r,row:-1,column:-1};return K.create(n)}function mr(i){const o=[$.EQUALS,$.NOT_EQUAL,$.GREATER_THAN_OR_EQUAL,$.GREATER_THAN,$.LESS_THAN_OR_EQUAL,$.LESS_THAN];for(const e of o)if(i.startsWith(e)){const t=i.substring(e.length);return[e,lt.create(t)]}return[$.EQUALS,lt.create(i)]}function jn(i,o,e,t){if(!e)if(o.isString()){const r=`${o.getValue()}`,[n,s]=mr(r);e=n,o=s}else e=$.EQUALS;return i.compare(o,e,t)}function Jl(i,o){const e=Math.max(i.isArray()?i.getRowCount():1,o.isArray()?o.getRowCount():1),t=Math.max(i.isArray()?i.getColumnCount():1,o.isArray()?o.getColumnCount():1),r=O(e,t,i),n=O(e,t,o);return r.mapValue((s,a,u)=>{const c=n.get(a,u);return s!=null&&s.isError()?s:c!=null&&c.isError()?c:s!=null&&s.isBoolean()&&(c!=null&&c.isBoolean())?Ln(s.getValue()&&c.getValue()):k.create(!1)})}function ef(i){const o=i.getValue();let e=0;return o&&(e=1),y.create(e)}function Pa(i){return i.isArray()&&i.getRowCount()===1&&i.getColumnCount()===1?!0:i.isReferenceObject()?!!(i.isCell()||i.getRowCount()===1&&i.getColumnCount()===1):(i=i,!!(i.isString()||i.isNumber()||i.isBoolean()||i.isError()||i.isNull()))}function xt(i){const o=i==null?void 0:i.getPattern();let e={};if(o&&(e={s:{n:{pattern:o}}}),i==null)return{v:null,...e};if(i.isError())return{v:i.getErrorType(),t:M.CellValueType.STRING,...e};if(i.isValueObject()){const t=i,r=t.getValue();return t.isNumber()?{v:r,t:M.CellValueType.NUMBER,...e}:t.isBoolean()?{v:r?1:0,t:M.CellValueType.BOOLEAN,...e}:t.isString()?{v:r,t:M.CellValueType.STRING,...e}:t.isNull()?{v:null,...e}:{v:r,t:M.CellValueType.STRING,...e}}}function hr(i){let o=0,e=0;return i.forEach((t,r)=>{if(r%2===1)if(t.isArray()){const n=t;o=Math.max(o,n.getRowCount()),e=Math.max(e,n.getColumnCount())}else o=Math.max(o,1),e=Math.max(e,1)}),{maxRowLength:o,maxColumnLength:e}}function Sr(i,o,e,t){const r=o.getRowCount(),n=o.getColumnCount();for(let s=0;s<i.length;s++){if(s%2===1)continue;const a=i[s],u=a.getRowCount(),c=a.getColumnCount();if(u!==r||c!==n)return O(e,t,g.create(h.VALUE))}return null}function Dr(i,o,e,t=!1){const r=[];for(let n=0;n<i.length;n++){if(n%2===1)continue;const s=i[n],a=i[n+1];O(o,e,a,g.create(h.NA)).iterator((c,l,f)=>{if(!c)return;let m=jn(s,c);const[,d]=mr(`${c.getValue()}`);if(t&&(m=Un(m,s,d)),r[l]===void 0&&(r[l]=[]),r[l][f]===void 0){r[l][f]=m;return}r[l][f]=Jl(r[l][f],m)})}return r}function Un(i,o,e){return i.mapValue((t,r,n)=>{const s=o.get(r,n);return s&&tf(s,e)?t:s!=null&&s.isError()&&e.isError()&&s.getValue()===e.getValue()?k.create(!0):k.create(!1)})}function tf(i,o){if(i.isNumber()&&o.isNumber()||i.isBoolean()&&o.isBoolean())return!0;const e=i.isString()&&i.getValue()==="",t=o.isString()&&o.getValue()==="";return!!((e||i.isNull())&&(t||o.isNull())||i.isString()&&!e&&o.isString()&&!t)}var Gr=(i=>(i[i.CELL=0]="CELL",i[i.COLUMN=1]="COLUMN",i[i.ROW=2]="ROW",i))(Gr||{});const Bt=new Map;function rf(i,o){const e=Bt.get(i);if(e)return e;let t;switch(o){case 0:t=new Ps(i);break;case 1:t=new Ls(i);break;case 2:t=new xs(i);break;default:throw new Error("Unknown reference object type")}return Bt.set(i,t),t}function nf(i,o){const e=`${i.getToken()}:${o.getToken()}`,t=Bt.get(e);if(t){const{x:n,y:s}=i.getRefOffset();return t.setRefOffset(n,s),t}let r=g.create(h.NAME);return(i.isCell()&&o.isCell()||i.isRow()&&o.isRow()||i.isColumn()&&o.isColumn())&&(r=i.unionBy(o),Bt.set(e,r)),r}function sf(){Bt.clear()}var af=Object.defineProperty,of=Object.getOwnPropertyDescriptor,uf=(i,o,e,t)=>{for(var r=t>1?void 0:t?of(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&af(o,e,r),r},cf=(i,o)=>(e,t)=>o(e,t,i),ze=(i=>(i[i.IDLE=0]="IDLE",i[i.START=1]="START",i[i.START_DEPENDENCY=2]="START_DEPENDENCY",i[i.START_CALCULATION=3]="START_CALCULATION",i[i.CURRENTLY_CALCULATING=4]="CURRENTLY_CALCULATING",i[i.START_DEPENDENCY_ARRAY_FORMULA=5]="START_DEPENDENCY_ARRAY_FORMULA",i[i.START_CALCULATION_ARRAY_FORMULA=6]="START_CALCULATION_ARRAY_FORMULA",i[i.CURRENTLY_CALCULATING_ARRAY_FORMULA=7]="CURRENTLY_CALCULATING_ARRAY_FORMULA",i[i.CALCULATION_COMPLETED=8]="CALCULATION_COMPLETED",i))(ze||{}),zt=(i=>(i[i.INITIAL=0]="INITIAL",i[i.STOP_EXECUTION=1]="STOP_EXECUTION",i[i.NOT_EXECUTED=2]="NOT_EXECUTED",i[i.SUCCESS=3]="SUCCESS",i))(zt||{});exports.FormulaRuntimeService=class extends M.Disposable{constructor(e){super();A(this,"_formulaExecuteStage",0);A(this,"_stopState",!1);A(this,"_currentRow",-1);A(this,"_currentColumn",-1);A(this,"_currentRowCount",Number.NEGATIVE_INFINITY);A(this,"_currentColumnCount",Number.NEGATIVE_INFINITY);A(this,"_currentSubUnitId","");A(this,"_currentUnitId","");A(this,"_runtimeData",{});A(this,"_runtimeOtherData",{});A(this,"_unitArrayFormulaRange",{});A(this,"_runtimeArrayFormulaCellData",{});A(this,"_runtimeClearArrayFormulaCellData",{});A(this,"_runtimeFeatureRange",{});A(this,"_runtimeFeatureCellData",{});A(this,"_functionsExecutedState",0);A(this,"_functionDefinitionPrivacyVar",new Map);A(this,"_totalFormulasToCalculate",0);A(this,"_completedFormulasCount",0);A(this,"_totalArrayFormulasToCalculate",0);A(this,"_completedArrayFormulasCount",0);A(this,"_formulaCycleIndex",0);A(this,"_isCycleDependency",!1);this._currentConfigService=e}get currentRow(){return this._currentRow}get currentColumn(){return this._currentColumn}get currentRowCount(){return this._currentRowCount}get currentColumnCount(){return this._currentColumnCount}get currentSubUnitId(){return this._currentSubUnitId}get currentUnitId(){return this._currentUnitId}dispose(){this.reset(),this._runtimeFeatureCellData={},this._runtimeFeatureRange={},this.clearReferenceAndNumberformatCache()}enableCycleDependency(){this._isCycleDependency=!0}disableCycleDependency(){this._isCycleDependency=!1}isCycleDependency(){return this._isCycleDependency}setFormulaCycleIndex(e){this._formulaCycleIndex=e}getFormulaCycleIndex(){return this._formulaCycleIndex}setTotalArrayFormulasToCalculate(e){this._totalArrayFormulasToCalculate=e}getTotalArrayFormulasToCalculate(){return this._totalArrayFormulasToCalculate}setCompletedArrayFormulasCount(e){this._completedArrayFormulasCount=e}getCompletedArrayFormulasCount(){return this._completedArrayFormulasCount}setTotalFormulasToCalculate(e){this._totalFormulasToCalculate=e}getTotalFormulasToCalculate(){return this._totalFormulasToCalculate}setCompletedFormulasCount(e){this._completedFormulasCount=e}getCompletedFormulasCount(){return this._completedFormulasCount}markedAsSuccessfullyExecuted(){this._functionsExecutedState=3}markedAsNoFunctionsExecuted(){this._functionsExecutedState=2}markedAsStopFunctionsExecuted(){this._functionsExecutedState=1}markedAsInitialFunctionsExecuted(){this._functionsExecutedState=0}stopExecution(){this._stopState=!0,this.setFormulaExecuteStage(0)}isStopExecution(){return this._stopState}setFormulaExecuteStage(e){this._formulaExecuteStage=e}getFormulaExecuteStage(){return this._formulaExecuteStage}reset(){this._formulaExecuteStage=0,this._runtimeData={},this._runtimeOtherData={},this._unitArrayFormulaRange={},this._runtimeArrayFormulaCellData={},this._runtimeClearArrayFormulaCellData={},this._functionDefinitionPrivacyVar.clear(),this.markedAsInitialFunctionsExecuted(),this._stopState=!1,this._isCycleDependency=!1,this._totalFormulasToCalculate=0,this._completedFormulasCount=0,this.clearReferenceAndNumberformatCache()}clearReferenceAndNumberformatCache(){Pc(),Tc(),hc(),sf()}setCurrent(e,t,r,n,s,a){this._currentRow=e,this._currentColumn=t,this._currentRowCount=r,this._currentColumnCount=n,this._currentSubUnitId=s,this._currentUnitId=a}clearFunctionDefinitionPrivacyVar(){this._functionDefinitionPrivacyVar.clear()}registerFunctionDefinitionPrivacyVar(e,t){this._functionDefinitionPrivacyVar.set(e,t)}getFunctionDefinitionPrivacyVar(e){return this._functionDefinitionPrivacyVar.get(e)}setRuntimeOtherData(e,t,r,n){const s=this._currentSubUnitId,a=this._currentUnitId;this._runtimeOtherData[a]===void 0&&(this._runtimeOtherData[a]={});const u=this._runtimeOtherData[a];(u[s]===void 0||u[s]===null)&&(u[s]={});const c=u[s];let l=[];if(n.isReferenceObject()||n.isValueObject()&&n.isArray()){const f=n,{startRow:m,startColumn:d}=f.getRangePosition();f.iterator((C,_,E)=>{const b=xt(C),R=_-m,p=E-d;l[R]==null&&(l[R]=[]),l[R][p]=b})}else l=[[xt(n)]];(c[e]===void 0||c[e]===null)&&(c[e]={}),(c[e][r]===void 0||c[e][r]===null)&&(c[e][r]={}),c[e][r][t]=l}setRuntimeData(e){const t=this._currentRow,r=this._currentColumn,n=this._currentRowCount,s=this.currentColumnCount,a=this._currentSubUnitId,u=this._currentUnitId;this._runtimeData[u]==null&&(this._runtimeData[u]={});const c=this._runtimeData[u];c[a]==null&&(c[a]=new M.ObjectMatrix),this._unitArrayFormulaRange[u]==null&&(this._unitArrayFormulaRange[u]={});const l=this._unitArrayFormulaRange[u];(l[a]===null||l[a]===void 0)&&(l[a]={});const f=new M.ObjectMatrix(l[a]);this._runtimeArrayFormulaCellData[u]===void 0&&(this._runtimeArrayFormulaCellData[u]={});const m=this._runtimeArrayFormulaCellData[u];m[a]==null&&(m[a]=new M.ObjectMatrix),this._runtimeClearArrayFormulaCellData[u]===void 0&&(this._runtimeClearArrayFormulaCellData[u]={});const d=this._runtimeClearArrayFormulaCellData[u];d[a]==null&&(d[a]=new M.ObjectMatrix);const C=c[a],_=m[a],E=d[a];if(e.isReferenceObject()||e.isValueObject()&&e.isArray()){const b=e,{startRow:R,startColumn:p,endRow:V,endColumn:S}=b.getRangePosition();if(R===V&&p===S){const w=b.getFirstCell(),P=xt(w);C.setValue(t,r,P),E.setValue(t,r,P);return}const D={startRow:t,startColumn:r,endRow:V-R+t,endColumn:S-p+r};if(f.setValue(t,r,D),this._checkIfArrayFormulaRangeHasData(u,a,t,r,D)||this._checkIfArrayFormulaExceeded(n,s,D)){const w=xt(g.create(h.SPILL));C.setValue(t,r,w),E.setValue(t,r,w);const P=this._currentConfigService.getUnitData();b.iterator((L,T,B)=>{var Z,G;const W=T-R+t,q=B-p+r,ie=(G=(Z=P[u])==null?void 0:Z[a])==null?void 0:G.cellData.getValue(W,q);if(T===R&&B===p)_.setValue(t,r,w);else if(ie!=null)ie.v==null&&(ie.v=""),_.setValue(W,q,ie);else{if(this._isInOtherArrayFormulaRange(u,a,t,r,W,q))return!0;_.setValue(W,q,{v:""})}})}else{const w=g.create(h.SPILL);b.iterator((P,L,T)=>{const B=xt(P);if(L===R&&T===p){if(P!=null&&P.isError()&&P.isEqualType(w))return E.setValue(t,r,{}),C.setValue(t,r,{...xt(w)}),!1;C.setValue(t,r,{...B})}const W=L-R+t,q=T-p+r;_.setValue(W,q,B)})}}else{const b=xt(e);C.setValue(t,r,b),E.setValue(t,r,b)}}getUnitData(){return this._runtimeData}getUnitArrayFormula(){return this._unitArrayFormulaRange}getRuntimeOtherData(){return this._runtimeOtherData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}getRuntimeClearArrayFormulaCellData(){return this._runtimeClearArrayFormulaCellData}getRuntimeFeatureRange(){return this._runtimeFeatureRange}setRuntimeFeatureRange(e,t){this._runtimeFeatureRange[e]=t}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e,t){this._runtimeFeatureCellData[e]=t}getAllRuntimeData(){return{unitData:this.getUnitData(),arrayFormulaRange:this.getUnitArrayFormula(),unitOtherData:this.getRuntimeOtherData(),functionsExecutedState:this._functionsExecutedState,arrayFormulaCellData:this.getRuntimeArrayFormulaCellData(),clearArrayFormulaCellData:this.getRuntimeClearArrayFormulaCellData(),runtimeFeatureRange:this.getRuntimeFeatureRange(),runtimeFeatureCellData:this.getRuntimeFeatureCellData()}}getRuntimeState(){return{totalFormulasToCalculate:this.getTotalFormulasToCalculate(),completedFormulasCount:this.getCompletedFormulasCount(),totalArrayFormulasToCalculate:this.getTotalArrayFormulasToCalculate(),completedArrayFormulasCount:this.getCompletedArrayFormulasCount(),stage:this.getFormulaExecuteStage(),formulaCycleIndex:this.getFormulaCycleIndex()}}_checkIfArrayFormulaRangeHasData(e,t,r,n,s){var d,C,_,E,b,R,p,V,S,D,w;const{startRow:a,startColumn:u,endRow:c,endColumn:l}=s,f=this._currentConfigService.getUnitData(),m=this._currentConfigService.getArrayFormulaCellData();(_=(C=(d=this._unitArrayFormulaRange[e])==null?void 0:d[t])==null?void 0:C[r])==null||_[n];for(let P=a;P<=c;P++)for(let L=u;L<=l;L++){if(P===r&&n===L)continue;const T=(R=(b=(E=this._runtimeData)==null?void 0:E[e])==null?void 0:b[t])==null?void 0:R.getValue(P,L);(V=(p=m==null?void 0:m[e])==null?void 0:p[t])==null||V.getValue(P,L);const B=(w=(D=(S=f==null?void 0:f[e])==null?void 0:S[t])==null?void 0:D.cellData)==null?void 0:w.getValue(P,L),W=this._getRuntimeFeatureCellValue(P,L,t,e);if(!M.isNullCell(T)||this._isInOtherArrayFormulaRange(e,t,r,n,P,L)||!M.isNullCell(B)||!M.isNullCell(W))return!0}return!1}_getRuntimeFeatureCellValue(e,t,r,n){return pi(e,t,r,n,this._runtimeFeatureCellData)}_arrayCellHasData(e){return e==null?!1:e.v!==void 0}_isInOtherArrayFormulaRange(e,t,r,n,s,a){var f;const u=(f=this._currentConfigService.getArrayFormulaRange()[e])==null?void 0:f[t];if(u==null)return!1;let c=!1;return new M.ObjectMatrix(u).forValue((m,d,C)=>{var b,R;if(m===r&&d===n)return;const _=this._isInArrayFormulaRange(C,s,a),E=(R=(b=this._runtimeData[e])==null?void 0:b[t])==null?void 0:R.getValue(m,d);_&&(E==null?void 0:E.v)!==h.SPILL&&(c=!0)}),c}_isInArrayFormulaRange(e,t,r){if(e==null)return!1;const{startRow:n,startColumn:s,endRow:a,endColumn:u}=e;return t>=n&&t<=a&&r>=s&&r<=u}_checkIfArrayFormulaExceeded(e,t,r){return r.endRow>=e||r.endColumn>=t}_isInDirtyRange(e,t,r,n){const s=this._currentConfigService.getDirtyRanges();return s.length===0?!0:ri(s,e,t,r,n)}};exports.FormulaRuntimeService=uf([cf(0,mt)],exports.FormulaRuntimeService);const st=M.createIdentifier("univer.formula.runtime.service");var ue=(i=>(i[i.REFERENCE=1]="REFERENCE",i[i.VALUE=2]="VALUE",i[i.OPERATOR=3]="OPERATOR",i[i.FUNCTION=4]="FUNCTION",i[i.LAMBDA=5]="LAMBDA",i[i.LAMBDA_PARAMETER=6]="LAMBDA_PARAMETER",i[i.ERROR=7]="ERROR",i[i.BASE=8]="BASE",i[i.ROOT=9]="ROOT",i[i.UNION=10]="UNION",i[i.PREFIX=11]="PREFIX",i[i.SUFFIX=12]="SUFFIX",i[i.NULL=13]="NULL",i))(ue||{});const at=new Map([[1,7],[2,9],[3,8],[4,6],[5,1],[6,2],[9,10],[10,3],[11,4],[12,5]]);class Fe{constructor(o){A(this,"_children",[]);A(this,"_definedNames");A(this,"_parent");A(this,"_valueObject");A(this,"_calculateState",!1);A(this,"_async",!1);A(this,"_address",!1);A(this,"_isForcedCalculateFunction",!1);this._token=o}dispose(){var o;this._children.forEach(e=>{e.dispose()}),(o=this._valueObject)==null||o.dispose(),this._valueObject=null,this._children=[],this._definedNames=null,this._parent=null}get nodeType(){return ue.BASE}isAsync(){return this._async}isAddress(){return this._address}isForcedCalculateFunction(){return this._isForcedCalculateFunction}setAsync(){this._async=!0}setAddress(){this._address=!0}getParent(){return this._parent}setParent(o){this._parent=o,o.addChildren(this)}setForcedCalculateFunction(){this._isForcedCalculateFunction=!0}getChildren(){return this._children}addChildren(...o){this._children.push(...o)}getToken(){return this._token}setValue(o){this._valueObject=o}getValue(){return this._valueObject}isCalculated(){return this._calculateState}setCalculated(){this._calculateState=!0}execute(){}setNotEmpty(o=!0){}async executeAsync(){return Promise.resolve(Rt.SUCCESS)}serialize(){const o=this.getToken(),e=this.getChildren(),t=[],r=e.length;for(let s=0;s<r;s++){const a=e[s];t.push(a.serialize())}const n={token:o,nodeType:this.nodeType};return r>0&&(n.children=t),n}hasDefinedName(o){var e;return((e=this._definedNames)==null?void 0:e.includes(o))||!1}setDefinedNames(o){this._definedNames=o}getDefinedNames(){return this._definedNames}}class De extends Fe{constructor(e){super(e);A(this,"_errorValueObject");this._errorValueObject=g.create(e)}get nodeType(){return ue.ERROR}static create(e){return new De(e)}getValue(){return this._errorValueObject}}const it=100;class ot{get zIndex(){return 0}dispose(){}create(o,e,t){let r;return o instanceof se?r=o.getToken():r=o,new Fe(r)}}class _s extends Fe{get nodeType(){return ue.ROOT}execute(){const o=this.getChildren();if(o.length>1){this.setValue(g.create(h.VALUE));return}const e=o[0];e==null?this.setValue(g.create(h.VALUE)):this.setValue(e.getValue())}}class js extends ot{get zIndex(){return at.get(ue.ROOT)||it}checkAndCreateNodeType(o){if(!(o instanceof se))return;if(o.getToken()===Nt)return new _s(Nt)}}const gt=M.createIdentifier("univer.formula-function.service");class Ii extends M.Disposable{constructor(){super(...arguments);A(this,"_functionExecutors",new Map);A(this,"_functionDescriptions",new Map)}dispose(){this._functionExecutors.clear(),this._functionDescriptions.clear()}registerExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.set(r.name,r)}}getExecutors(){return this._functionExecutors}getExecutor(e){return this._functionExecutors.get(e)}hasExecutor(e){return this._functionExecutors.has(e)}unregisterExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.delete(r)}}registerDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.set(r.functionName,r)}return M.toDisposable(()=>{for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r.functionName)}})}getDescriptions(){return this._functionDescriptions}getDescription(e){return this._functionDescriptions.get(e)}hasDescription(e){return this._functionDescriptions.has(e)}unregisterDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r)}}}var Le=(i=>(i.COMPARE="COMPARE",i.DIVIDED="DIVIDED",i.MINUS="MINUS",i.MULTIPLY="MULTIPLY",i.PLUS="PLUS",i.UNION="UNION",i.CUBE="CUBE",i))(Le||{}),lf=Object.defineProperty,ff=Object.getOwnPropertyDescriptor,mf=(i,o,e,t)=>{for(var r=t>1?void 0:t?ff(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&lf(o,e,r),r},La=(i,o)=>(e,t)=>o(e,t,i);class an extends Fe{constructor(o,e,t){super(e),this._runtimeService=o,this._operatorString=e,this._functionExecutor=t}get nodeType(){return ue.PREFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");this._operatorString===pe.MINUS?(e.isReferenceObject()&&(e=e.toArrayValueObject()),t=this._functionExecutor.calculate(y.create(0),e)):this._operatorString===pe.AT?t=this._handlerAT(e):t=g.create(h.VALUE),this.setValue(t)}_handlerAT(o){if(!o.isReferenceObject())return g.create(h.VALUE);const e=o;if(e.isCell())return g.create(h.VALUE);const t=this._runtimeService,r=t.currentRow||0,n=t.currentColumn||0,s=e.getRangePosition(),{startRow:a,startColumn:u,endRow:c,endColumn:l}=s;return l!==u&&c!==a||a===c&&u===l?g.create(h.VALUE):c===a&&n>=u&&n<=l?e.getCellByColumn(n):u===l&&r>=a&&r<=c?e.getCellByRow(r):e.isTable()?e.getCellByPosition(r):g.create(h.VALUE)}}exports.PrefixNodeFactory=class extends ot{constructor(o,e){super(),this._functionService=o,this._runtimeService=e}get zIndex(){return at.get(ue.PREFIX)||it}checkAndCreateNodeType(o){if(!(o instanceof se))return;const e=o.getToken(),t=e.trim();if(t.charAt(0)==='"'&&t.charAt(t.length-1)==='"')return;let r="";if(t===pe.MINUS)r=Le.MINUS;else return t===pe.AT?new an(this._runtimeService,t):void 0;const n=this._functionService.getExecutor(r);return n?new an(this._runtimeService,t,n):(console.error(`No function ${e}`),De.create(h.NAME))}};exports.PrefixNodeFactory=mf([La(0,gt),La(1,st)],exports.PrefixNodeFactory);new RegExp(pe.MINUS,"g");new RegExp(pe.AT,"g");function Fi(i,o,e){let t,r,n=i;const s=n.slice(0,2);let a=0;if(s[0]===pe.MINUS){const u=o.getExecutor(Le.MINUS);t=new an(e,pe.MINUS,u),a++}return s[0]===pe.AT&&(r=new an(e,pe.AT),t&&r.setParent(t),a++),a>0&&(n=n.slice(a)),{tokenTrim:n,minusPrefixNode:t,atPrefixNode:r}}var hf=Object.defineProperty,gf=Object.getOwnPropertyDescriptor,df=(i,o,e,t)=>{for(var r=t>1?void 0:t?gf(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&hf(o,e,r),r},Kt=(i,o)=>(e,t)=>o(e,t,i);class Cf extends Fe{constructor(o,e,t,r,n,s){super(""),this._functionExecutor=e,this._currentConfigService=t,this._runtimeService=r,this._definedNamesService=n,this._formulaDataModel=s,this._functionExecutor.isAsync()&&this.setAsync(),this._functionExecutor.isAddress()&&this.setAddress(),this._functionExecutor.needsLocale&&this._setLocale(),this._functionExecutor.needsSheetsInfo&&this._setSheetsInfo(),this._functionExecutor.needsFormulaDataModel&&this._functionExecutor.setFormulaDataModel(this._formulaDataModel)}get nodeType(){return ue.FUNCTION}async executeAsync(){const o=[],e=this.getChildren(),t=e.length;this._compatibility();for(let s=0;s<t;s++){const u=e[s].getValue();u!=null&&(u.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?o.push(u.toArrayValueObject()):o.push(u))}const r=this._calculate(o);let n;return r.isAsyncObject()||r.isAsyncArrayObject()?n=await r.getValue():n=r,this._setRefData(n),this.setValue(n),Promise.resolve(Rt.SUCCESS)}execute(){const o=[],e=this.getChildren(),t=e.length;this._compatibility();for(let n=0;n<t;n++){const a=e[n].getValue();a!=null&&(a.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?o.push(a.toArrayValueObject()):o.push(a))}const r=this._calculate(o);this._setRefData(r),this.setValue(r)}_compatibility(){this._lookupCompatibility()}_lookupCompatibility(){const o=this.getChildren(),e=o.length;if(!this._functionExecutor.needsExpandParams||e!==3)return;const t=o[1].getValue(),r=o[2].getValue();if(!(t!=null&&t.isReferenceObject())&&!(r!=null&&r.isReferenceObject()))return;let n,s;if(t!=null&&t.isReferenceObject()){const C=t.getRangeData(),{startRow:_,startColumn:E,endRow:b,endColumn:R}=C;n=b-_+1,s=R-E+1}else n=t!=null&&t.isArray()?t.getRowCount():1,s=t!=null&&t.isArray()?t.getColumnCount():1;const a=r.getRangeData(),{startRow:u,startColumn:c,endRow:l,endColumn:f}=a,m=l-u+1,d=f-c+1;n!==m&&(a.endRow+=n-m),s!==d&&(a.endColumn+=s-d)}_calculate(o){var n;const{minParams:e,maxParams:t}=this._functionExecutor;if(e!==-1&&t!==-1&&(o.length<e||o.length>t))return g.create(h.NA);let r;if(this._setRefInfo(),this._functionExecutor.isCustom()){const s=this._functionExecutor.calculateCustom(...o.map(a=>a.isArray()?a.toValue():a.getValue()));if(typeof s!="object"||s==null)r=lt.create(s);else{const a=vi(s);r=K.create({calculateValueList:a,rowCount:a.length,columnCount:((n=a[0])==null?void 0:n.length)||0,unitId:"",sheetId:"",row:-1,column:-1})}}else this._functionExecutor.isAddress()&&this._setDefinedNamesForFunction(),r=this._functionExecutor.calculate(...o);return r}_setDefinedNamesForFunction(){const o=this._currentConfigService.getExecuteUnitId();if(o==null)return;const e=this._definedNamesService.getDefinedNameMap(o);e!=null&&this._functionExecutor.setDefinedNames(e)}_setRefInfo(){const{currentUnitId:o,currentSubUnitId:e,currentRow:t,currentColumn:r}=this._runtimeService;if(this._functionExecutor.setRefInfo(o,e,t,r),this._functionExecutor.needsSheetRowColumnCount){const{rowCount:n,columnCount:s}=this._currentConfigService.getSheetRowColumnCount(o,e);this._functionExecutor.setSheetRowColumnCount(n,s)}}_setRefData(o){if(!o.isReferenceObject())return;const e=o;e.setForcedSheetId(this._currentConfigService.getSheetNameMap()),e.setUnitData(this._currentConfigService.getUnitData()),e.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()),e.setRuntimeData(this._runtimeService.getUnitData()),e.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData())}_setLocale(){this._functionExecutor.setLocale(this._currentConfigService.getLocale())}_setSheetsInfo(){this._functionExecutor.setSheetsInfo(this._currentConfigService.getSheetsInfo())}}class _f extends Fe{constructor(o="Error"){super(o)}get nodeType(){return ue.FUNCTION}async executeAsync(){return this.setValue(g.create(h.NAME)),Promise.resolve(Rt.SUCCESS)}execute(){this.setValue(g.create(h.NAME))}}exports.FunctionNodeFactory=class extends ot{constructor(o,e,t,r,n,s){super(),this._functionService=o,this._currentConfigService=e,this._runtimeService=t,this._definedNamesService=r,this._injector=n,this._formulaDataModel=s}get zIndex(){return at.get(ue.FUNCTION)||it}create(o){const e=this._functionService.getExecutor(o);return e?new Cf(o,e,this._currentConfigService,this._runtimeService,this._definedNamesService,this._formulaDataModel):(console.error(`No function ${o}`),De.create(h.NAME))}checkAndCreateNodeType(o){if(typeof o=="string")return;const e=o.getToken(),{tokenTrim:t,minusPrefixNode:r,atPrefixNode:n}=Fi(e.trim(),this._functionService,this._runtimeService);if(!Number.isNaN(Number(t))&&!this._isParentUnionNode(o))return De.create(h.VALUE);const s=t.toUpperCase();if(this._functionService.hasExecutor(s)){const a=this.create(s);return n?a.setParent(n):r&&a.setParent(r),a}}_isParentUnionNode(o){var e,t;return((t=(e=o.getParent())==null?void 0:e.getParent())==null?void 0:t.getToken())===Q.COLON}};exports.FunctionNodeFactory=df([Kt(0,gt),Kt(1,mt),Kt(2,st),Kt(3,lr),Kt(4,M.Inject(M.Injector)),Kt(5,M.Inject(exports.FormulaDataModel))],exports.FunctionNodeFactory);var Af=Object.defineProperty,Ef=Object.getOwnPropertyDescriptor,bf=(i,o,e,t)=>{for(var r=t>1?void 0:t?Ef(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&Af(o,e,r),r},yf=(i,o)=>(e,t)=>o(e,t,i);exports.Interpreter=class extends M.Disposable{constructor(o){super(),this._runtimeService=o}async executeAsync(o){if(!o||!o.node)return Promise.resolve(g.create(h.VALUE));const e=o.node,t=o.refOffsetX,r=o.refOffsetY;await this._executeAsync(e,t,r);const n=e.getValue();return n==null?Promise.resolve(g.create(h.VALUE)):Promise.resolve(n)}execute(o){if(!o||!o.node)return g.create(h.VALUE);const e=o.node,t=o.refOffsetX,r=o.refOffsetY;this._execute(e,t,r);const n=e.getValue();return n==null?g.create(h.VALUE):n}executePreCalculateNode(o){return o.execute(),o.getValue()}checkAsyncNode(o){if(o==null)return!1;const e=[];this._checkAsyncNode(o,e);for(let t=0,r=e.length;t<r;t++)if(e[t]===!0)return!0;return!1}_checkAsyncNode(o,e){const t=o.getChildren(),r=t.length;for(let n=0;n<r;n++){const s=t[n];e.push(s.isAsync()),this._checkAsyncNode(s,e)}}async _executeAsync(o,e=0,t=0){if(this._runtimeService.isStopExecution())return Promise.resolve(Rt.ERROR);const r=o.getChildren(),n=r.length;for(let s=0;s<n;s++){const a=r[s];if(a.getToken().toUpperCase()===br&&a.isEmptyParamFunction()){a.execute();continue}await this._executeAsync(a,e,t)}return o.nodeType===ue.REFERENCE&&o.setRefOffset(e,t),o.nodeType===ue.FUNCTION&&o.isAsync()?await o.executeAsync():o.execute(),Promise.resolve(Rt.SUCCESS)}_execute(o,e=0,t=0){if(this._runtimeService.isStopExecution())return Rt.ERROR;const r=o.getChildren(),n=r.length;for(let s=0;s<n;s++){const a=r[s];if(a.getToken().toUpperCase()===br&&a.isEmptyParamFunction()){a.execute();continue}this._execute(a,e,t)}return o.nodeType===ue.REFERENCE&&o.setRefOffset(e,t),o.execute(),Rt.SUCCESS}};exports.Interpreter=bf([yf(0,st)],exports.Interpreter);function ki(i){return i instanceof se?i.getToken()===nr:!1}function Rf(i){return i instanceof se?i.getToken()===bi:!1}function Us(i,o,e){const t=i.getChildren(),r=t.length,n=t[0];for(let s=0;s<r;s++){const a=t[s];if(!(ki(n)&&s!==0))if(a instanceof se)Us(a,o,e);else{const u=a.trim();if(e.has(u)){const c=new se;c.setToken(Or),c.setLambdaId(o),c.setLambdaPrivacyVar(e),c.setLambdaParameter(u),t[s]=c}}}}function pf(i){let o=i;for(;o!=null&&o.getParent();)o=o.getParent();return o}function xa(i,o=0,e=0){return{node:i,refOffsetX:o,refOffsetY:e}}function $i(i){if(!i)return;if(i.getToken()!==Or)return i;const o=i,e=o.getCurrentLambdaPrivacyVar(),t=o.getLambdaParameter();if(!e)return;const r=e.get(t);return r==null&&i.getValue()?i:$i(r)}class vs extends ht{constructor(e,t,r){super(0);A(this,"_lambdaPrivacyValueMap",new Map);this._lambdaNode=e,this._interpreter=t,this._lambdaPrivacyVarKeys=r,this._lambdaPrivacyValueMap.clear()}static create(e,t,r){return new vs(e,t,r)}dispose(){this._lambdaPrivacyValueMap.clear(),this._lambdaPrivacyValueMap=new Map,this._lambdaNode=null,this._interpreter=null,this._lambdaPrivacyVarKeys=[]}isLambda(){return!0}execute(...e){const t=this._lambdaPrivacyVarKeys.length;if(e.length!==t||!this._interpreter||!this._lambdaNode)return g.create(h.VALUE);this._setLambdaPrivacyValueMap(e),this._setLambdaNodeValue(this._lambdaNode),this._lambdaNode.setNotEmpty(!1);let r;if(this._interpreter.checkAsyncNode(this._lambdaNode))r=new Ti(this._interpreter.executeAsync(xa(this._lambdaNode)));else{const n=this._interpreter.execute(xa(this._lambdaNode));n.isReferenceObject()?r=n.toArrayValueObject():r=n}return this._lambdaNode.setNotEmpty(!0),r}_setLambdaNodeValue(e){if(!e)return;const t=e.getChildren(),r=t.length;for(let n=0;n<r;n++){const s=t[n];if(s.getToken()===Or){const u=s.getLambdaParameter(),c=this._lambdaPrivacyValueMap.get(u);if(c)s.setValue(c);else{const l=s.getCurrentLambdaPrivacyVar(),f=$i(l.get(u));f!=null&&s.setValue(f.getValue())}continue}this._setLambdaNodeValue(s)}}_setLambdaPrivacyValueMap(e){for(let t=0;t<e.length;t++){const r=e[t],n=this._lambdaPrivacyVarKeys[t];this._lambdaPrivacyValueMap.set(n,r)}}getLambdaPrivacyVarKeys(){return this._lambdaPrivacyVarKeys}}var Nf=Object.defineProperty,Vf=Object.getOwnPropertyDescriptor,Of=(i,o,e,t)=>{for(var r=t>1?void 0:t?Vf(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&Nf(o,e,r),r},ja=(i,o)=>(e,t)=>o(e,t,i);class Mf extends Fe{constructor(e,t,r,n){super(e);A(this,"_isNotEmpty",!0);this._lambdaId=t,this._interpreter=r,this._lambdaPrivacyVarKeys=n}get nodeType(){return ue.LAMBDA}setNotEmpty(e=!1){this._isNotEmpty=e}isEmptyParamFunction(){return this.getChildren().length<2&&this._isNotEmpty}isFunctionParameter(){return this._lambdaId===null}getLambdaId(){return this._lambdaId}execute(){if(this.isEmptyParamFunction())this.setValue(vs.create(this,this._interpreter,this._lambdaPrivacyVarKeys));else{const e=this.getChildren(),t=e.length;this.setValue(e[t-1].getValue())}}}exports.LambdaNodeFactory=class extends ot{constructor(o,e){super(),this._runtimeService=o,this._interpreter=e}get zIndex(){return at.get(ue.LAMBDA)||it}create(o){const e=o.getChildren(),t=e[0];let r=e.slice(1,-1);const n=e[e.length-1];if(!(t instanceof se&&n instanceof se))return De.create(h.NAME);if(t.getToken()===nr){const u=t.getChildren();if(r.length!==u.length)return De.create(h.VALUE)}else r=e.slice(0,-1);const s=M.Tools.generateRandomId(8),a=new Map;for(let u=0;u<r.length;u++){const c=r[u];if(c instanceof se){const l=c.getChildren()[0];c.setToken(bi),a.set(l.trim(),void 0)}else return De.create(h.VALUE)}return this._runtimeService.registerFunctionDefinitionPrivacyVar(s,a),this._updateLambdaStatement(n,s,a),new Mf(o.getToken(),s,this._interpreter,[...a.keys()])}checkAndCreateNodeType(o){if(!(!(o instanceof se)||o.getToken().trim().toUpperCase()!==br))return this.create(o)}_updateLambdaStatement(o,e,t){Us(o,e,t)}};exports.LambdaNodeFactory=Of([ja(0,st),ja(1,M.Inject(exports.Interpreter))],exports.LambdaNodeFactory);function Yi(i){if(!i)return;if(i.getToken()!==Or)return i;const o=i,e=o.getCurrentLambdaPrivacyVar(),t=o.getLambdaParameter();if(e)return Yi(e.get(t))}class Sf extends Fe{constructor(o,e,t){super(o),this._lambdaParameter=e,this._currentLambdaPrivacyVar=t}getLambdaParameter(){return this._lambdaParameter}getCurrentLambdaPrivacyVar(){return this._currentLambdaPrivacyVar}get nodeType(){return ue.LAMBDA_PARAMETER}execute(){const o=Yi(this._currentLambdaPrivacyVar.get(this._lambdaParameter));if(o)this.setValue(o.getValue());else{const e=this.getValue();(e==null||e.isError())&&this.setValue(g.create(h.NAME))}}}class Ts extends ot{get zIndex(){return at.get(ue.LAMBDA_PARAMETER)||it}create(o){const e=o.getFunctionDefinitionPrivacyVar(),t=o.getLambdaParameter();return e?new Sf(o.getToken(),t,e):new De(h.NAME)}checkAndCreateNodeType(o){if(!(!(o instanceof se)||o.getToken().trim()!==Or))return this.create(o)}}class Df extends Fe{constructor(o){super(o),this._operatorString=o}get nodeType(){return ue.NULL}execute(){this.setValue(ae.create())}}var Y=(i=>(i.ABS="ABS",i.ACOS="ACOS",i.ACOSH="ACOSH",i.ACOT="ACOT",i.ACOTH="ACOTH",i.AGGREGATE="AGGREGATE",i.ARABIC="ARABIC",i.ASIN="ASIN",i.ASINH="ASINH",i.ATAN="ATAN",i.ATAN2="ATAN2",i.ATANH="ATANH",i.BASE="BASE",i.CEILING="CEILING",i.CEILING_MATH="CEILING.MATH",i.CEILING_PRECISE="CEILING.PRECISE",i.COMBIN="COMBIN",i.COMBINA="COMBINA",i.COS="COS",i.COSH="COSH",i.COT="COT",i.COTH="COTH",i.CSC="CSC",i.CSCH="CSCH",i.DECIMAL="DECIMAL",i.DEGREES="DEGREES",i.EVEN="EVEN",i.EXP="EXP",i.FACT="FACT",i.FACTDOUBLE="FACTDOUBLE",i.FLOOR="FLOOR",i.FLOOR_MATH="FLOOR.MATH",i.FLOOR_PRECISE="FLOOR.PRECISE",i.GCD="GCD",i.INT="INT",i.ISO_CEILING="ISO.CEILING",i.LCM="LCM",i.LET="LET",i.LN="LN",i.LOG="LOG",i.LOG10="LOG10",i.MDETERM="MDETERM",i.MINVERSE="MINVERSE",i.MMULT="MMULT",i.MOD="MOD",i.MROUND="MROUND",i.MULTINOMIAL="MULTINOMIAL",i.MUNIT="MUNIT",i.ODD="ODD",i.PI="PI",i.POWER="POWER",i.PRODUCT="PRODUCT",i.QUOTIENT="QUOTIENT",i.RADIANS="RADIANS",i.RAND="RAND",i.RANDARRAY="RANDARRAY",i.RANDBETWEEN="RANDBETWEEN",i.ROMAN="ROMAN",i.ROUND="ROUND",i.ROUNDDOWN="ROUNDDOWN",i.ROUNDUP="ROUNDUP",i.SEC="SEC",i.SECH="SECH",i.SERIESSUM="SERIESSUM",i.SEQUENCE="SEQUENCE",i.SIGN="SIGN",i.SIN="SIN",i.SINH="SINH",i.SQRT="SQRT",i.SQRTPI="SQRTPI",i.SUBTOTAL="SUBTOTAL",i.SUM="SUM",i.SUMIF="SUMIF",i.SUMIFS="SUMIFS",i.SUMPRODUCT="SUMPRODUCT",i.SUMSQ="SUMSQ",i.SUMX2MY2="SUMX2MY2",i.SUMX2PY2="SUMX2PY2",i.SUMXMY2="SUMXMY2",i.TAN="TAN",i.TANH="TANH",i.TRUNC="TRUNC",i))(Y||{}),ne=(i=>(i.ASC="ASC",i.ARRAYTOTEXT="ARRAYTOTEXT",i.BAHTTEXT="BAHTTEXT",i.CHAR="CHAR",i.CLEAN="CLEAN",i.CODE="CODE",i.CONCAT="CONCAT",i.CONCATENATE="CONCATENATE",i.DBCS="DBCS",i.DOLLAR="DOLLAR",i.EXACT="EXACT",i.FIND="FIND",i.FINDB="FINDB",i.FIXED="FIXED",i.LEFT="LEFT",i.LEFTB="LEFTB",i.LEN="LEN",i.LENB="LENB",i.LOWER="LOWER",i.MID="MID",i.MIDB="MIDB",i.NUMBERVALUE="NUMBERVALUE",i.PHONETIC="PHONETIC",i.PROPER="PROPER",i.REGEXEXTRACT="REGEXEXTRACT",i.REGEXMATCH="REGEXMATCH",i.REGEXREPLACE="REGEXREPLACE",i.REPLACE="REPLACE",i.REPLACEB="REPLACEB",i.REPT="REPT",i.RIGHT="RIGHT",i.RIGHTB="RIGHTB",i.SEARCH="SEARCH",i.SEARCHB="SEARCHB",i.SUBSTITUTE="SUBSTITUTE",i.T="T",i.TEXT="TEXT",i.TEXTAFTER="TEXTAFTER",i.TEXTBEFORE="TEXTBEFORE",i.TEXTJOIN="TEXTJOIN",i.TEXTSPLIT="TEXTSPLIT",i.TRIM="TRIM",i.UNICHAR="UNICHAR",i.UNICODE="UNICODE",i.UPPER="UPPER",i.VALUE="VALUE",i.VALUETOTEXT="VALUETOTEXT",i.CALL="CALL",i.EUROCONVERT="EUROCONVERT",i.REGISTER_ID="REGISTER.ID",i))(ne||{}),wf=Object.defineProperty,Pf=Object.getOwnPropertyDescriptor,Lf=(i,o,e,t)=>{for(var r=t>1?void 0:t?Pf(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&wf(o,e,r),r},xf=(i,o)=>(e,t)=>o(e,t,i);class jf extends Fe{constructor(o,e){super(o),this._functionExecutor=e}get nodeType(){return ue.OPERATOR}execute(){const o=this.getChildren();this._functionExecutor.name===Le.COMPARE&&this._functionExecutor.setCompareType(this.getToken());const e=o[0],t=o[1];let r=e==null?void 0:e.getValue(),n=t==null?void 0:t.getValue();const s=this.getToken();if((r==null||n==null)&&s!==X.MINUS&&s!==X.PLUS){this.setValue(g.create(h.VALUE));return}r==null&&(r=ae.create()),n==null&&(n=ae.create()),r.isReferenceObject()&&(r=r.toArrayValueObject()),n.isReferenceObject()&&(n=n.toArrayValueObject()),this.setValue(this._functionExecutor.calculate(r,n))}}exports.OperatorNodeFactory=class extends ot{constructor(o){super(),this._functionService=o}get zIndex(){return at.get(ue.OPERATOR)||it}create(o){let e="";const t=o;t===X.PLUS?e=Le.PLUS:t===X.MINUS?e=Le.MINUS:t===X.MULTIPLY?e=Le.MULTIPLY:t===X.DIVIDED?e=Le.DIVIDED:t===X.CONCATENATE?e=ne.CONCATENATE:t===X.POWER?e=Y.POWER:Lu.has(t)&&(e=Le.COMPARE);const r=this._functionService.getExecutor(e);return r?new jf(t,r):(console.error(`No function ${o}`),De.create(h.NAME))}checkAndCreateNodeType(o){if(o instanceof se)return;const e=o.trim();if(!(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')&&At.has(e))return this.create(e)}};exports.OperatorNodeFactory=Lf([xf(0,gt)],exports.OperatorNodeFactory);var Uf=Object.defineProperty,vf=Object.getOwnPropertyDescriptor,Tf=(i,o,e,t)=>{for(var r=t>1?void 0:t?vf(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&Uf(o,e,r),r},Xn=(i,o)=>(e,t)=>o(e,t,i);class Kn extends Fe{constructor(e,t,r,n,s=!1){super(r);A(this,"_refOffsetX",0);A(this,"_refOffsetY",0);this._currentConfigService=e,this._runtimeService=t,this._referenceObjectType=n,this._isPrepareMerge=s}get nodeType(){return ue.REFERENCE}execute(){const e=this._currentConfigService,t=this._runtimeService,r=rf(this.getToken(),this._referenceObjectType);r.setDefaultUnitId(t.currentUnitId),r.setDefaultSheetId(t.currentSubUnitId),r.setForcedSheetId(e.getSheetNameMap()),r.setUnitData(e.getUnitData()),r.setArrayFormulaCellData(e.getArrayFormulaCellData()),r.setRuntimeData(t.getUnitData()),r.setUnitStylesData(e.getUnitStylesData()),r.setRuntimeArrayFormulaCellData(t.getRuntimeArrayFormulaCellData()),r.setRuntimeFeatureCellData(t.getRuntimeFeatureCellData());const{x:n,y:s}=this.getRefOffset();r.setRefOffset(n,s),!this._isPrepareMerge&&r.isExceedRange()?this.setValue(g.create(h.NAME)):this.setValue(r)}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}}exports.ReferenceNodeFactory=class extends ot{constructor(o,e,t){super(),this._currentConfigService=o,this._formulaRuntimeService=e,this._functionService=t}get zIndex(){return at.get(ue.REFERENCE)||it}checkAndCreateNodeType(o){var f,m;let e=!1,t,r=!1;o instanceof se?(e=!0,t=o.getToken().trim(),((m=(f=o.getParent())==null?void 0:f.getParent())==null?void 0:m.getToken().trim())===Q.COLON&&(r=!0)):t=o.trim();const n=this._currentConfigService,s=this._formulaRuntimeService,{tokenTrim:a,minusPrefixNode:u,atPrefixNode:c}=Fi(t,this._functionService,s);if(!e&&a.charAt(0)==='"'&&a.charAt(a.length-1)==='"')return;let l;if(Nr(a)?l=new Kn(n,s,a,Gr.CELL,r):e&&this._checkParentIsUnionOperator(o)&&(li(a)?l=new Kn(n,s,a,Gr.ROW,r):fi(a)&&(l=new Kn(n,s,a,Gr.COLUMN,r))),l)return c?l.setParent(c):u&&l.setParent(u),l}_checkParentIsUnionOperator(o){var e,t;return((t=(e=o.getParent())==null?void 0:e.getParent())==null?void 0:t.getToken().trim())===Q.COLON}};exports.ReferenceNodeFactory=Tf([Xn(0,mt),Xn(1,st),Xn(2,gt)],exports.ReferenceNodeFactory);var Bf=Object.defineProperty,If=Object.getOwnPropertyDescriptor,Ff=(i,o,e,t)=>{for(var r=t>1?void 0:t?If(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&Bf(o,e,r),r},Zn=(i,o)=>(e,t)=>o(e,t,i);class Ua extends Fe{constructor(o,e,t,r){super(t),this._currentConfigService=o,this._lexer=e,this._operatorString=t,this._functionExecutor=r}get nodeType(){return ue.SUFFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");if(this._operatorString===He.PERCENTAGE){if(e.isReferenceObject()&&(e=e.toArrayValueObject()),t=this._functionExecutor.calculate(e,y.create(100)),t.isNumber()){const r=Number(t.getValue());t=y.create(r,"0.00%")}}else this._operatorString===He.POUND?t=this._handlerPound(e):t=g.create(h.VALUE);this.setValue(t)}_handlerPound(o){var u,c,l,f;if(!o.isReferenceObject()||!o.isCell())return g.create(h.VALUE);const e=o,t=e.getRangePosition(),r=e.getUnitId(),n=e.getSheetId(),s=this._currentConfigService.getFormulaData(),a=(f=(l=(c=(u=s==null?void 0:s[r])==null?void 0:u[n])==null?void 0:c[t.startRow])==null?void 0:l[t.startColumn])==null?void 0:f.f;return a&&this._lexer.treeBuilder(a),g.create(h.VALUE)}}exports.SuffixNodeFactory=class extends ot{constructor(o,e,t){super(),this._functionService=o,this._lexer=e,this._currentConfigService=t}get zIndex(){return at.get(ue.SUFFIX)||it}checkAndCreateNodeType(o){if(!(o instanceof se))return;const e=o.getToken().trim();if(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')return;let t="";if(e===He.PERCENTAGE)t=Le.DIVIDED;else return e===He.POUND?new Ua(this._currentConfigService,this._lexer,e):void 0;const r=this._functionService.getExecutor(t);return r?new Ua(this._currentConfigService,this._lexer,e,r):(console.error(`No function ${o}`),De.create(h.NAME))}};exports.SuffixNodeFactory=Ff([Zn(0,gt),Zn(1,M.Inject(exports.Lexer)),Zn(2,mt)],exports.SuffixNodeFactory);var kf=Object.defineProperty,$f=Object.getOwnPropertyDescriptor,Yf=(i,o,e,t)=>{for(var r=t>1?void 0:t?$f(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&kf(o,e,r),r},Hf=(i,o)=>(e,t)=>o(e,t,i);class Gf extends Fe{constructor(o){super(o)}get nodeType(){return ue.UNION}execute(){const o=this.getChildren(),e=o[0],t=o[1],r=e.getValue(),n=t.getValue();if(r==null||n==null)throw new Error("leftNode and rightNode");let s;this.getToken()===Q.COLON?s=this._unionFunction(r,n):s=g.create(h.NAME),this.setValue(s)}_unionFunction(o,e){return o.isError()||e.isError()||!o.isReferenceObject()||!e.isReferenceObject()?g.create(h.REF):(o=o,e=e,nf(o,e))}}exports.UnionNodeFactory=class extends ot{constructor(o){super(),this._functionService=o}get zIndex(){return at.get(ue.UNION)||it}create(o){return new Gf(o)}checkAndCreateNodeType(o){if(!(o instanceof se))return;const t=o.getToken().trim();if(!(t.charAt(0)==='"'&&t.charAt(t.length-1)==='"')&&t===Q.COLON)return this.create(t)}};exports.UnionNodeFactory=Yf([Hf(0,gt)],exports.UnionNodeFactory);class Wf extends Fe{constructor(o){super(o)}get nodeType(){return ue.VALUE}execute(){this.setValue(lt.create(this.getToken()))}}class Bs extends ot{get zIndex(){return at.get(ue.VALUE)||it}_checkValueNode(o){if(Number.isNaN(Number(o))){const e=o.trim(),t=e.charAt(0),r=e.charAt(e.length-1);if(qt.has(e))return this.create(e);if(t==='"'&&r==='"')return this.create(e);if(t==="{"&&r==="}")return this.create(e);const n=e.toUpperCase();if(n===Ot.TRUE||n===Ot.FALSE)return this.create(n)}else return this.create(o)}create(o){return new Wf(o)}checkAndCreateNodeType(o){if(!(o instanceof se))return this._checkValueNode(o)}}var Qf=Object.defineProperty,qf=Object.getOwnPropertyDescriptor,Xf=(i,o,e,t)=>{for(var r=t>1?void 0:t?qf(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&Qf(o,e,r),r},Ze=(i,o)=>(e,t)=>o(e,t,i);exports.AstTreeBuilder=class extends M.Disposable{constructor(e,t,r,n,s,a,u,c,l,f,m){super();A(this,"_astNodeFactoryList",[]);this._runtimeService=e,this._astRootNodeFactory=t,this._functionNodeFactory=r,this._lambdaNodeFactory=n,this._lambdaParameterNodeFactory=s,this._operatorNodeFactory=a,this._prefixNodeFactory=u,this._referenceNodeFactory=c,this._suffixNodeFactory=l,this._unionNodeFactory=f,this._valueNodeFactory=m,this._initializeAstNode()}dispose(){this._astNodeFactoryList.forEach(e=>{e.dispose()}),this._astNodeFactoryList=[]}parse(e){const t=new _s(Nt),r=this._parse(e,t);return e.hasDefinedNames()&&(r==null||r.setDefinedNames(e.getDefinedNames())),r}_lambdaParameterHandler(e,t){if(t.getLambdaId==null)return De.create(h.VALUE);const r=t.getLambdaId(),n=new _s(Nt),s=this._runtimeService.getFunctionDefinitionPrivacyVar(r);if(!s)return!1;const a=[...s.keys()],u=e.getChildren(),c=u.length;for(let l=0;l<c;l++){const f=u[l];if(f instanceof se){Us(f,r,s),this._parse(f,n);const d=n.getChildren()[l];d!=null&&s.set(a[l],d)}else return!1}return n.setParent(t),t}_changeLetToLambda(e){const t=e.getChildren(),r=t.length;if(r%2!==1||r===0)return;const n=new se;n.setToken(br);const s=new se;s.setToken(nr);const a=[...t];for(let c=0;c<r;c++){const l=a[c];if(!(l instanceof se))return;c%2===0?l.changeToParent(n):l.changeToParent(s)}n.addChildrenFirst(s),s.setParent(n);const u=e.getParent();return u==null||u.replaceChild(e,n),n}_parse(e,t){const r=e.getChildren(),n=r.length,s=[];let a=null;const u=e.getToken().trim().toUpperCase();if(u===lc){const f=this._changeLetToLambda(e);return f!=null?this._parse(f,t):De.create(h.ERROR)}if(u===ut){if(a=t,n===0)return new Df(Nt).setParent(t),a}else{if(u===nr){let f=this._lambdaParameterHandler(e,t);return f===!1&&(f=De.create(h.ERROR)),f}if(a=this._checkAstNode(e),a==null)return De.create(h.NAME)}const c=r[0];for(let f=0;f<n;f++){const m=r[f];if(ki(c)){if(f!==0&&f!==n-1)continue}else if(Rf(m)&&f!==n-1)continue;let d=null;if(m instanceof se){if(d=this._parse(m,a),d===a)continue}else d=this._checkAstNode(m);if(d==null)return De.create(h.NAME);if(d=pf(d),d==null)return;switch(d.nodeType){case ue.FUNCTION:{const C=d.getToken().trim().toUpperCase();mc.has(C)&&d.setForcedCalculateFunction(),s.push(d);break}case ue.LAMBDA:s.push(d);break;case ue.LAMBDA_PARAMETER:s.push(d);break;case ue.OPERATOR:{const C=s.pop(),_=s.pop();_&&_.setParent(d),C&&C.setParent(d),s.push(d);break}case ue.REFERENCE:s.push(d);break;case ue.ROOT:s.push(d);break;case ue.UNION:s.push(d);break;case ue.VALUE:s.push(d);break;case ue.PREFIX:s.push(d);break;case ue.SUFFIX:s.push(d);break}}const l=s.length;for(let f=0;f<l;f++)s[f].setParent(a);return a}_checkAstNode(e){let t=null;const r=this._astNodeFactoryList.length;for(let n=0;n<r&&(t=this._astNodeFactoryList[n].checkAndCreateNodeType(e),t==null);n++);return t==null?new _f:t}_initializeAstNode(){this._astNodeFactoryList=[this._astRootNodeFactory,this._functionNodeFactory,this._lambdaNodeFactory,this._lambdaParameterNodeFactory,this._operatorNodeFactory,this._prefixNodeFactory,this._referenceNodeFactory,this._suffixNodeFactory,this._unionNodeFactory,this._valueNodeFactory].sort(M.sortRules)}};exports.AstTreeBuilder=Xf([Ze(0,st),Ze(1,M.Inject(js)),Ze(2,M.Inject(exports.FunctionNodeFactory)),Ze(3,M.Inject(exports.LambdaNodeFactory)),Ze(4,M.Inject(Ts)),Ze(5,M.Inject(exports.OperatorNodeFactory)),Ze(6,M.Inject(exports.PrefixNodeFactory)),Ze(7,M.Inject(exports.ReferenceNodeFactory)),Ze(8,M.Inject(exports.SuffixNodeFactory)),Ze(9,M.Inject(exports.UnionNodeFactory)),Ze(10,M.Inject(Bs))],exports.AstTreeBuilder);class Hi extends M.Disposable{constructor(){super(...arguments);A(this,"_otherFormulaData",new Map);A(this,"_featureFormulaData",new Map);A(this,"_formulaData",new Map);A(this,"_definedNameMap",new Map);A(this,"_otherFormulaDataMainData",new Set);A(this,"_dependencyRTreeCache",new M.RTree);A(this,"_dependencyTreeIdLast",0)}buildDependencyTree(e,t){throw new Error("Method not implemented.")}getTreeById(e){throw new Error("Method not implemented.")}getAllTree(){throw new Error("Method not implemented.")}reset(){throw new Error("Method not implemented.")}addOtherFormulaDependency(e,t,r,n){throw new Error("Method not implemented.")}removeOtherFormulaDependency(e,t,r){throw new Error("Method not implemented.")}clearOtherFormulaDependency(e,t){throw new Error("Method not implemented.")}addFeatureFormulaDependency(e,t,r,n){throw new Error("Method not implemented.")}removeFeatureFormulaDependency(e,t,r){throw new Error("Method not implemented.")}clearFeatureFormulaDependency(e,t){throw new Error("Method not implemented.")}addFormulaDependency(e,t,r,n,s){throw new Error("Method not implemented.")}removeFormulaDependency(e,t,r,n){throw new Error("Method not implemented.")}clearFormulaDependency(e,t){throw new Error("Method not implemented.")}removeFormulaDependencyByDefinedName(e,t){throw new Error("Method not implemented.")}searchDependency(e,t){return this._dependencyRTreeCache.bulkSearch(e,t)}_restDependencyTreeId(){this._dependencyTreeIdLast=0}getOtherFormulaDependency(e,t,r){var n,s;return(s=(n=this._otherFormulaData.get(e))==null?void 0:n.get(t))==null?void 0:s.get(r)}addOtherFormulaDependencyMainData(e){this._otherFormulaDataMainData.add(e)}hasOtherFormulaDataMainData(e){return this._otherFormulaDataMainData.has(e)}_removeDependencyRTreeCacheById(e,t){this._dependencyRTreeCache.removeById(e,t)}getFeatureFormulaDependency(e,t,r){var n,s;return(s=(n=this._featureFormulaData.get(e))==null?void 0:n.get(t))==null?void 0:s.get(r)}getFormulaDependency(e,t,r,n){var s,a;return(a=(s=this._formulaData.get(e))==null?void 0:s.get(t))==null?void 0:a.getValue(r,n)}addDependencyRTreeCache(e){const t=[];for(let r=0;r<e.rangeList.length;r++){const n=e.rangeList[r],{unitId:s,sheetId:a,range:u}=n;t.push({unitId:s,sheetId:a,range:u,id:e.treeId})}this._dependencyRTreeCache.bulkInsert(t),this._addAllTreeMap(e)}getLastTreeId(){const e=this._dependencyTreeIdLast;return this._dependencyTreeIdLast++,e}_addAllTreeMap(e){throw new Error("Method not implemented.")}_addDefinedName(e,t,r){this._definedNameMap.has(e)||this._definedNameMap.set(e,new Map);const n=this._definedNameMap.get(e);n.has(t)||n.set(t,new Set),n.get(t).add(r)}addFormulaDependencyByDefinedName(e,t){const r=e.treeId,n=(t==null?void 0:t.getDefinedNames())||[];for(const s of n)this._addDefinedName(e.unitId,s,r)}}class Gi extends Hi{constructor(){super(...arguments);A(this,"_allTreeMap",new Map)}dispose(){this.reset()}buildDependencyTree(e,t=[]){const r=this.getAllTree();return e.length===0?(this._buildReverseDependency(r,t),r):(this._buildDependencyTree(r,e),this._buildReverseDependency(r,e),r)}_buildDependencyTree(e,t){const r=new Map;for(let n=0;n<t.length;n++){const s=t[n];r.set(s.treeId,s)}for(let n=0;n<e.length;n++){const s=e[n],a=s.toRTreeItem(),u=this._dependencyRTreeCache.bulkSearch(a);for(const c of u){const l=r.get(c);l&&s!==l&&!l.hasChildren(s.treeId)&&l.pushChildren(s)}}r.clear()}_buildReverseDependency(e,t){const r=new Map;for(let n=0;n<e.length;n++){const s=e[n];r.set(s.treeId,s)}for(let n=0;n<t.length;n++){const s=t[n],a=s.toRTreeItem(),u=this._dependencyRTreeCache.bulkSearch(a);for(const c of u){const l=r.get(c);l&&s!==l&&!l.hasChildren(s.treeId)&&l.pushChildren(s)}}r.clear()}getAllTree(){const e=[];return this._allTreeMap.forEach(t=>{t.resetState(),e.push(t)}),e}getTreeById(e){return this._allTreeMap.get(e)}reset(){this._otherFormulaData.clear(),this._featureFormulaData.clear(),this._formulaData.clear(),this._dependencyRTreeCache.clear(),this._allTreeMap.clear(),this._restDependencyTreeId(),this._otherFormulaDataMainData.clear()}addOtherFormulaDependency(e,t,r,n){this._otherFormulaData.has(e)||this._otherFormulaData.set(e,new Map);const s=this._otherFormulaData.get(e);s.has(t)||s.set(t,new Map);const a=s.get(t);a.has(r)||a.set(r,new M.ObjectMatrix),a.get(r).setValue(n.refOffsetX,n.refOffsetY,n.treeId),this._addAllTreeMap(n)}removeOtherFormulaDependency(e,t,r){const n=this._otherFormulaData.get(e);if(n&&n.has(t)){const s=n.get(t);r.forEach(a=>{const u=s.get(a);u!=null&&(u.forValue((c,l,f)=>{this._removeDependencyRTreeCache(f),this.clearDependencyForTree(this._allTreeMap.get(f)),this._removeAllTreeMap(f)}),s.delete(a),this._otherFormulaDataMainData.delete(a))}),s.size===0&&n.delete(t),n.size===0&&this._otherFormulaData.delete(e)}}clearOtherFormulaDependency(e,t){const r=this._otherFormulaData.get(e);if(t&&r&&r.has(t)){const n=r.get(t);this._removeDependencyRTreeCacheById(e,t);for(const s of n.keys()){const a=n.get(s);a!=null&&(a.forValue((u,c,l)=>{const f=this._allTreeMap.get(l);f&&(this.clearDependencyForTree(f),this._removeAllTreeMap(l))}),this._otherFormulaDataMainData.delete(s))}n.clear()}else if(r){for(const n of r.keys()){const s=r.get(n);this._removeDependencyRTreeCacheById(e,n);for(const a of s.keys()){const u=s.get(a);u!=null&&(u.forValue((c,l,f)=>{const m=this._allTreeMap.get(f);m&&(this.clearDependencyForTree(m),this._removeAllTreeMap(f))}),this._otherFormulaDataMainData.delete(a))}}this._otherFormulaData.delete(e)}}addFeatureFormulaDependency(e,t,r,n){this._featureFormulaData.has(e)||this._featureFormulaData.set(e,new Map);const s=this._featureFormulaData.get(e);s.has(t)||s.set(t,new Map),s.get(t).set(r,n.treeId),this._addAllTreeMap(n)}removeFeatureFormulaDependency(e,t,r){const n=this._featureFormulaData.get(e);if(n&&n.has(t)){const s=n.get(t);r.forEach(a=>{const u=s.get(a);u!=null&&(this._removeDependencyRTreeCache(u),s.delete(a),this.clearDependencyForTree(this._allTreeMap.get(u)),this._removeAllTreeMap(u))})}}clearFeatureFormulaDependency(e,t){const r=this._featureFormulaData.get(e);if(t&&r&&r.has(t)){const n=r.get(t);this._removeDependencyRTreeCacheById(e,t),n.forEach(s=>{s!=null&&(this.clearDependencyForTree(this._allTreeMap.get(s)),this._removeAllTreeMap(s))}),n.clear()}else r&&(r.forEach((n,s)=>{this._removeDependencyRTreeCacheById(e,s),n.forEach(a=>{a!=null&&(this.clearDependencyForTree(this._allTreeMap.get(a)),this._removeAllTreeMap(a))})}),this._featureFormulaData.delete(e))}addFormulaDependency(e,t,r,n,s){this._formulaData.has(e)||this._formulaData.set(e,new Map);const a=this._formulaData.get(e);a.has(t)||a.set(t,new M.ObjectMatrix),a.get(t).setValue(r,n,s.treeId),this._addAllTreeMap(s)}removeFormulaDependency(e,t,r,n){const s=this._formulaData.get(e);if(s&&s.has(t)){const a=s.get(t),u=a.getValue(r,n);if(u==null)return;this._removeDependencyRTreeCache(u),a.realDeleteValue(r,n),this.clearDependencyForTree(this._allTreeMap.get(u)),this._removeAllTreeMap(u)}}clearFormulaDependency(e,t){const r=this._formulaData.get(e);if(t&&r&&r.has(t)){const n=r.get(t);this._removeDependencyRTreeCacheById(e,t),n.forValue((s,a,u)=>{if(u==null)return!0;this.clearDependencyForTree(this._allTreeMap.get(u)),this._removeAllTreeMap(u)}),n.reset()}else r&&(r.forEach((n,s)=>{this._removeDependencyRTreeCacheById(e,s),n.forValue((a,u,c)=>{if(c==null)return!0;this.clearDependencyForTree(this._allTreeMap.get(c)),this._removeAllTreeMap(c)})}),this._formulaData.delete(e))}clearDependencyForTree(e){if(e==null)return;const t=e.parents,r=e.children,n=this._allTreeMap;for(const s of t){const a=n.get(s);a==null||a.children.delete(e.treeId)}for(const s of r){const a=n.get(s);a==null||a.parents.delete(e.treeId)}e.dispose()}_removeDependencyRTreeCache(e){if(e==null)return;const t=this._allTreeMap.get(e);if(t){const r=[];for(let n=0;n<t.rangeList.length;n++){const s=t.rangeList[n],{unitId:a,sheetId:u,range:c}=s;r.push({unitId:a,sheetId:u,range:c,id:e})}this._dependencyRTreeCache.bulkRemove(r)}}removeFormulaDependencyByDefinedName(e,t){const r=this._definedNameMap.get(e);if(r){const n=r.get(t);if(n){for(const s of n)this._removeDependencyRTreeCache(s),this.clearDependencyForTree(this._allTreeMap.get(s)),this._removeAllTreeMap(s);n.clear()}}}_removeAllTreeMap(e){e!=null&&this._allTreeMap.delete(e)}_addAllTreeMap(e){this._allTreeMap.set(e.treeId,e)}}const wr=M.createIdentifier("univer.formula.dependency-manager.service");class Wi extends M.Disposable{constructor(){super(...arguments);A(this,"_referenceExecutorMap",new Map);A(this,"_onChanged$",new Jt.Subject);A(this,"onChanged$",this._onChanged$.asObservable())}dispose(){this._referenceExecutorMap.clear()}remove(e,t,r){r.forEach(n=>{var s,a;(a=(s=this._referenceExecutorMap.get(e))==null?void 0:s.get(t))==null||a.delete(n)}),this._onChanged$.next({unitId:e,subUnitId:t,featureIds:r})}get(e,t,r){var n,s;return(s=(n=this._referenceExecutorMap.get(e))==null?void 0:n.get(t))==null?void 0:s.get(r)}has(e,t,r){var n,s;return!!((s=(n=this._referenceExecutorMap.get(e))==null?void 0:n.get(t))!=null&&s.has(r))}register(e,t,r,n){let s=this._referenceExecutorMap.get(e);s||(s=new Map,this._referenceExecutorMap.set(e,s));let a=s.get(t);a||(a=new Map,s.set(t,a)),this._onChanged$.next({unitId:e,subUnitId:t,featureIds:[r]}),a.set(r,n)}getReferenceExecutorMap(){return this._referenceExecutorMap}}const ar=M.createIdentifier("univer.formula.feature-calculation-manager.service");class Qi extends M.Disposable{constructor(){super(...arguments);A(this,"_otherFormulaData",{})}dispose(){this._otherFormulaData={}}remove(e){var s,a,u;const{unitId:t,subUnitId:r,formulaId:n}=e;(u=(a=(s=this._otherFormulaData)==null?void 0:s[t])==null?void 0:a[r])==null||delete u[n]}get(e){var s,a;const{unitId:t,subUnitId:r,formulaId:n}=e;return(a=(s=this._otherFormulaData[t])==null?void 0:s[r])==null?void 0:a[n]}has(e){var s,a;const{unitId:t,subUnitId:r,formulaId:n}=e;return((a=(s=this._otherFormulaData[t])==null?void 0:s[r])==null?void 0:a[n])!=null}register(e){const{unitId:t,subUnitId:r,formulaId:n,item:s}=e;this._otherFormulaData[t]||(this._otherFormulaData[t]={}),this._otherFormulaData[t][r]||(this._otherFormulaData[t][r]={}),this._otherFormulaData[t][r][n]=s}batchRegister(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(n=>{const s=r[n];if(s==null)return!0;Object.keys(s).forEach(a=>{const u=s[a];if(u==null)return!0;this.register({unitId:t,subUnitId:n,formulaId:a,item:u})})})})}batchRemove(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(n=>{const s=r[n];if(s==null)return!0;Object.keys(s).forEach(a=>{this.remove({unitId:t,subUnitId:n,formulaId:a})})})})}getOtherFormulaData(){return this._otherFormulaData}}const vn=M.createIdentifier("univer.formula.other-formula-manager.service"),Kf=5e3,va=new ft(Kf);function As(i,o,e,t,r){let n=va.get(`${i}${o}`);if(n&&!qi(n,r))return n;const s=e.treeBuilder(o);if(qt.has(s))return De.create(s);if(n=t.parse(s),n==null)throw new Error("astNode is null");return va.set(`${i}${o}`,n),n}function qi(i,o){const e=o.getDirtyDefinedNameMap(),t=o.getExecuteUnitId();if(t!=null&&e[t]!=null){const r=Object.keys(e[t]);for(let n=0,s=r.length;n<s;n++){const a=r[n];if(i.hasDefinedName(a))return!0}}return!1}function Zf(i,o,e){return!!(o!=null&&qi(o,e))}var on=(i=>(i[i.NORMAL_FORMULA=0]="NORMAL_FORMULA",i[i.OTHER_FORMULA=1]="OTHER_FORMULA",i[i.FEATURE_FORMULA=2]="FEATURE_FORMULA",i))(on||{});class Xi{constructor(){A(this,"_state",0);A(this,"treeId");A(this,"children",new Set);A(this,"parents",new Set)}resetState(){this._state=0}setAdded(){this._state=1}isAdded(){return this._state===1}setSkip(){this._state=2}isSkip(){return this._state===2}pushChildren(o){this.children.add(o.treeId),o._pushParent(this)}hasChildren(o){return this.children.has(o)}_pushParent(o){this.parents.add(o.treeId)}}class Es extends Xi{constructor(){super(...arguments);A(this,"refTree");A(this,"refOffsetX",-1);A(this,"refOffsetY",-1);A(this,"isCache",!1);A(this,"isDirty",!1);A(this,"getDirtyData");A(this,"featureId")}get isVirtual(){return!0}get row(){return this.refTree==null?-1:this.refTree.row+this.refOffsetY}get column(){return this.refTree==null?-1:this.refTree.column+this.refOffsetX}get rowCount(){return this.refTree==null?0:this.refTree.rowCount}get columnCount(){return this.refTree==null?0:this.refTree.columnCount}get unitId(){return this.refTree==null?"":this.refTree.unitId}get subUnitId(){return this.refTree==null?"":this.refTree.subUnitId}get formula(){var e,t;return(t=(e=this.refTree)==null?void 0:e.formula)!=null?t:""}get nodeData(){return{node:this.node,refOffsetX:this.refOffsetX,refOffsetY:this.refOffsetY}}get node(){var e;return(e=this.refTree)==null?void 0:e.node}dispose(){this.refTree=null}get rangeList(){const e=[];if(this.refTree==null)return[];for(let t=0;t<this.refTree.rangeList.length;t++){const r=this.refTree.rangeList[t];e.push({unitId:r.unitId,sheetId:r.sheetId,range:M.moveRangeByOffset(r.range,this.refOffsetX,this.refOffsetY)})}return e}toRTreeItem(){const e=this.row,t=this.column;return[{unitId:this.unitId,sheetId:this.subUnitId,range:{startRow:e,startColumn:t,endRow:e,endColumn:t}}]}inRangeData(e){const t=e.startRow,r=e.startColumn,n=e.endRow,s=e.endColumn,a=this.row,u=this.column;return!(a<t||a>n||u<r||u>s)}dependencySheetName(e){return this.refTree==null?!1:this.refTree.dependencySheetName(e)}isExcludeRange(e){var r;const t=this.rangeList;if(t.length===0)return!1;for(let n=0,s=t.length;n<s;n++){const a=t[n],{unitId:u,sheetId:c,range:l}=a,f=(r=e==null?void 0:e[u])==null?void 0:r[c];let{startRow:m,endRow:d,startColumn:C,endColumn:_}=l;Number.isNaN(m)&&(m=0),Number.isNaN(C)&&(C=0),Number.isNaN(d)&&(d=Number.POSITIVE_INFINITY),Number.isNaN(_)&&(_=Number.POSITIVE_INFINITY);let E=!1;if(f==null||f.forValue((b,R)=>{if(b>=m&&b<=d&&R>=C&&R<=_)return E=!0,!1}),E)return!0}return!1}get formulaId(){return this.refTree==null?"":this.refTree.formulaId}}class Wr extends Xi{constructor(e){super();A(this,"isCache",!1);A(this,"featureId");A(this,"featureDirtyRanges",[]);A(this,"refOffsetX",0);A(this,"refOffsetY",0);A(this,"type",0);A(this,"formulaId");A(this,"subUnitId","");A(this,"unitId","");A(this,"rangeList",[]);A(this,"formula","");A(this,"row",-1);A(this,"column",-1);A(this,"rowCount",Number.NEGATIVE_INFINITY);A(this,"columnCount",Number.NEGATIVE_INFINITY);A(this,"isDirty",!1);A(this,"node");A(this,"getDirtyData");this.treeId=e}get isVirtual(){return!1}get nodeData(){return{node:this.node,refOffsetX:0,refOffsetY:0}}toJson(){return{formula:this.formula,refOffsetX:this.refOffsetX,refOffsetY:this.refOffsetY}}dispose(){this.featureDirtyRanges=[],this.rangeList=[],this.getDirtyData=null}inRangeData(e){const t=e.startRow,r=e.startColumn,n=e.endRow,s=e.endColumn,a=this.row,u=this.column;return!(a<t||a>n||u<r||u>s)}dependencySheetName(e){var r;const t=this.rangeList;if(t.length===0||e==null)return!1;for(let n=0,s=t.length;n<s;n++){const a=t[n],{unitId:u,sheetId:c}=a;if(((r=e[u])==null?void 0:r[c])!=null)return!0}return!1}isExcludeRange(e){var r;const t=this.rangeList;if(t.length===0)return!1;for(let n=0,s=t.length;n<s;n++){const a=t[n],{unitId:u,sheetId:c,range:l}=a,f=(r=e==null?void 0:e[u])==null?void 0:r[c];let{startRow:m,endRow:d,startColumn:C,endColumn:_}=l;Number.isNaN(m)&&(m=0),Number.isNaN(C)&&(C=0),Number.isNaN(d)&&(d=Number.POSITIVE_INFINITY),Number.isNaN(_)&&(_=Number.POSITIVE_INFINITY);let E=!1;if(f==null||f.forValue((b,R)=>{if(b>=m&&b<=d&&R>=C&&R<=_)return E=!0,!1}),E)return!0}return!1}pushRangeList(e){this.rangeList.push(...e)}shouldBePushRangeList(){return this.rangeList.length===0&&this.type!==2}toRTreeItem(){if(this.featureId!=null)return this.featureDirtyRanges;const e=this.row,t=this.column;return[{unitId:this.unitId,sheetId:this.subUnitId,range:{startRow:e,startColumn:t,endRow:e,endColumn:t}}]}}var zf=Object.defineProperty,Jf=Object.getOwnPropertyDescriptor,em=(i,o,e,t)=>{for(var r=t>1?void 0:t?Jf(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&zf(o,e,r),r},_t=(i,o)=>(e,t)=>o(e,t,i);function vt(i){return i.getLastTreeId()||0}const un=M.createIdentifier("engine-formula.dependency-generator");exports.FormulaDependencyGenerator=class extends M.Disposable{constructor(e,t,r,n,s,a,u,c){super();A(this,"_updateRangeFlattenCache",new Map);this._currentConfigService=e,this._runtimeService=t,this._otherFormulaManagerService=r,this._featureCalculationManagerService=n,this._interpreter=s,this._astTreeBuilder=a,this._lexer=u,this._dependencyManagerService=c}dispose(){this._updateRangeFlattenCache.clear()}async generate(){this._updateRangeFlatten();const e=this._currentConfigService.getFormulaData(),t=this._otherFormulaManagerService.getOtherFormulaData(),r=this._currentConfigService.getClearDependencyTreeCache();r!=null&&Object.keys(r).forEach(f=>{f!=null&&Object.keys(r[f]).forEach(m=>{m!=null&&(this._dependencyManagerService.clearOtherFormulaDependency(f,m),this._dependencyManagerService.clearFeatureFormulaDependency(f,m),this._dependencyManagerService.clearFormulaDependency(f,m))})});const n=this._currentConfigService.getUnitData(),s=await this._generateTreeList(e,t,n),a=this._getUpdateTreeListAndMakeDependency(s);let u=this._calculateRunList(a);return this._dependencyFeatureCalculation(u)&&(u.forEach(f=>{f.resetState()}),u=this._calculateRunList(u)),this._checkIsCycleDependency(u)&&this._runtimeService.enableCycleDependency(),Promise.resolve(u)}_dependencyFeatureCalculation(e){const t=this._featureCalculationManagerService.getReferenceExecutorMap();if(t.size===0)return;this._clearFeatureCalculationNode(e);let r=!1;return t.forEach((n,s)=>{n.forEach((a,u)=>{a.forEach((c,l)=>{const{unitId:f,subUnitId:m,getDirtyData:d}=c,C=d(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData()),_=this._convertDirtyRangesToUnitRange(C.dirtyRanges),E=this._intersectFeatureCalculation(_,e,{unitId:f,subUnitId:m,featureId:l});if(E.length>0){let b=this._getExistTreeList({unitId:f,subUnitId:m,featureId:l},e);b==null&&(b=this._getFeatureFormulaTree(l,vt(this._dependencyManagerService),c),e.push(b)),b.parents=new Set,E.forEach(R=>{R.hasChildren(b.treeId)||R.pushChildren(b)}),r=!0}})})}),r}_clearFeatureCalculationNode(e){const t=this._featureCalculationManagerService.getReferenceExecutorMap();e.forEach(r=>{var a,u,c,l;const n=new Set;for(const f of r.children){const m=this._dependencyManagerService.getTreeById(f);m&&(m.featureId&&(u=(a=t.get(r.unitId))==null?void 0:a.get(r.subUnitId))!=null&&u.has(m.featureId)||n.add(f))}r.children=n;const s=new Set;for(const f of r.parents){const m=this._dependencyManagerService.getTreeById(f);m&&(m.featureId&&(l=(c=t.get(r.unitId))==null?void 0:c.get(r.subUnitId))!=null&&l.has(m.featureId)||s.add(f))}r.parents=s})}_convertDirtyRangesToUnitRange(e){const t=[];for(const r in e){const n=e[r];for(const s in n){const a=n[s];for(const u of a)t.push({unitId:r,sheetId:s,range:u})}}return t}_intersectFeatureCalculation(e,t,r){const n=[],s=this._dependencyManagerService.searchDependency(e);for(let a=0,u=t.length;a<u;a++){const c=t[a];if(c.unitId===r.unitId&&c.subUnitId===r.subUnitId&&c.featureId===r.featureId)continue;s.has(c.treeId)&&n.push(c)}return n}_getExistTreeList(e,t){const{unitId:r,subUnitId:n,featureId:s}=e;for(let a=0,u=t.length;a<u;a++){const c=t[a];if(c.unitId===r&&c.subUnitId===n&&c.featureId===s)return c}}_isCyclicUtil(e,t,r){const n=this._dependencyManagerService.getTreeById(e);if(n==null)return!1;if(!t.has(n.treeId)){t.add(n.treeId),r.add(n.treeId);for(const s of n.children)if(!t.has(s)&&this._isCyclicUtil(s,t,r)||r.has(s))return!0}return r.delete(n.treeId),!1}_checkIsCycleDependency(e){const t=new Set,r=new Set;for(let n=0,s=e.length;n<s;n++){const a=e[n];if(this._isCyclicUtil(a.treeId,t,r)===!0)return!0}return!1}async _generateTreeList(e,t,r){const n=Object.keys(e),s=Object.keys(t),a=[];this._currentConfigService.isForceCalculate()&&this._dependencyManagerService.reset(),this._registerFormulas(n,e,r,a),this._registerOtherFormulas(t,s,a),this._registerFeatureFormulas(a);for(let c=0,l=a.length;c<l;c++){const f=a[c],m=f.node;if(m==null||(f.isDirty=this._includeTree(f,m),f.isVirtual))continue;this._runtimeService.setCurrent(f.row,f.column,f.rowCount,f.columnCount,f.subUnitId,f.unitId);const d=await this._getRangeListByNode({node:m,refOffsetX:f.refOffsetX,refOffsetY:f.refOffsetY});f.pushRangeList(d)}for(let c=0,l=a.length;c<l;c++){const f=a[c];f.isCache||this._dependencyManagerService.addDependencyRTreeCache(f)}return a}_registerFeatureFormulas(e){this._featureCalculationManagerService.getReferenceExecutorMap().forEach((r,n)=>{r.forEach((s,a)=>{s.forEach((u,c)=>{const l=this._dependencyManagerService.getFeatureFormulaDependency(u.unitId,u.subUnitId,c);e.push(this._getFeatureFormulaTree(c,l,u))})})})}_getFeatureFormulaTree(e,t,r){const{unitId:n,subUnitId:s,dependencyRanges:a,getDirtyData:u}=r,c=t||vt(this._dependencyManagerService),l=new Wr(c);l.unitId=n,l.subUnitId=s,l.rangeList=a,l.getDirtyData=u;const f=u(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData()),m=this._convertDirtyRangesToUnitRange(f.dirtyRanges);return l.featureDirtyRanges=m,l.featureId=e,l.type=on.FEATURE_FORMULA,this._dependencyManagerService.addFeatureFormulaDependency(n,s,e,l),this._dependencyManagerService.getFeatureFormulaDependency(r.unitId,r.subUnitId,e)&&(l.isCache=!0),l}_registerOtherFormulas(e,t,r){for(const n of t){const s=e[n];if(s==null)continue;const a=Object.keys(s);for(const u of a){const c=s[u];if(c==null)continue;const l=Object.keys(c);for(const f of l){const m=this._dependencyManagerService.hasOtherFormulaDataMainData(f),d=c[f],{f:C,ranges:_}=d;let E=!1;m&&(E=!0);const b=As(n,C,this._lexer,this._astTreeBuilder,this._currentConfigService),{firstRow:R,firstColumn:p}=this._getFirstCellOfRange(_),V=this._dependencyManagerService.getOtherFormulaDependency(n,u,f),S=(V==null?void 0:V.getValue(0,0))||vt(this._dependencyManagerService),D=new Wr(S);for(let w=0;w<_.length;w++){const P=_[w],{startRow:L,startColumn:T,endRow:B,endColumn:W}=P;for(let q=L;q<=B;q++)for(let ie=T;ie<=W;ie++){const Z=ie-p,G=q-R;if(Z===0&&G===0){D.node=b,D.formula=C,D.unitId=n,D.subUnitId=u,D.formulaId=f,D.type=on.OTHER_FORMULA,D.isCache=E,r.push(D),this._dependencyManagerService.addOtherFormulaDependency(n,u,f,D),this._dependencyManagerService.addFormulaDependencyByDefinedName(D);continue}const ce=new Es;ce.treeId=(V==null?void 0:V.getValue(Z,G))||vt(this._dependencyManagerService),ce.refTree=D,ce.refOffsetX=Z,ce.refOffsetY=G,ce.isCache=E,this._dependencyManagerService.addOtherFormulaDependency(n,u,f,ce),this._dependencyManagerService.addFormulaDependencyByDefinedName(ce),r.push(ce)}}this._dependencyManagerService.addOtherFormulaDependencyMainData(f)}}}}_getFirstCellOfRange(e){const t=e[0];return{firstRow:t.startRow,firstColumn:t.startColumn}}_registerFormulas(e,t,r,n){for(const s of e){const a=t[s];if(a==null)continue;const u=Object.keys(a);for(const c of u){const l=new M.ObjectMatrix(a[c]||{}),f=new Map;l.forValue((m,d,C)=>{if(C==null)return!0;const{x:_=0,y:E=0,si:b}=C;if(!(_===0&&E===0&&b!=null))return!0;const R=this._createFDtree(s,c,m,d,r,C),p=this._dependencyManagerService.getFormulaDependency(s,c,m,d);p!=null?R.treeId=p:(this._dependencyManagerService.addFormulaDependency(s,c,m,d,R),this._dependencyManagerService.addFormulaDependencyByDefinedName(R)),f.set(b,R),n.push(R)}),l.forValue((m,d,C)=>{if(C==null)return!0;const{x:_=0,y:E=0,si:b}=C;if(_===0&&E===0&&b!=null)return!0;let R;if(b&&f.has(b)){const V=f.get(b);R=this._createVirtualFDtree(V,C)}else R=this._createFDtree(s,c,m,d,r,C);const p=this._dependencyManagerService.getFormulaDependency(s,c,m,d);p!=null?R.treeId=p:(this._dependencyManagerService.addFormulaDependency(s,c,m,d,R),this._dependencyManagerService.addFormulaDependencyByDefinedName(R)),n.push(R)}),f.clear()}}}_createFDtree(e,t,r,n,s,a){const{f:u,x:c=0,y:l=0}=a,f=new Wr(vt(this._dependencyManagerService)),m=s[e][t],d=As(e,u,this._lexer,this._astTreeBuilder,this._currentConfigService);return f.node=d,f.formula=u,f.unitId=e,f.subUnitId=t,f.row=r,f.column=n,f.rowCount=m.rowCount,f.columnCount=m.columnCount,f}_createVirtualFDtree(e,t){const{x:r=0,y:n=0}=t,s=new Es;return s.treeId=vt(this._dependencyManagerService),s.refTree=e,s.refOffsetX=r,s.refOffsetY=n,s}_updateRangeFlatten(){const e=this._currentConfigService.isForceCalculate(),t=this._currentConfigService.getDirtyRanges();if(!e){this._updateRangeFlattenCache.clear();for(let r=0;r<t.length;r++){const n=t[r],s=n.range,a=n.sheetId,u=n.unitId;this._addFlattenCache(u,a,s)}}}_addFlattenCache(e,t,r){let n=this._updateRangeFlattenCache.get(e);n==null&&(n=new Map,this._updateRangeFlattenCache.set(e,n));let s=n.get(t);s==null&&(s=[],n.set(t,s)),s.push(r)}_isPreCalculateNode(e){return e.nodeType===ue.UNION||e.nodeType===ue.PREFIX&&e.getToken()===pe.AT||e.nodeType===ue.SUFFIX&&e.getToken()===He.POUND}_nodeTraversalRef(e,t){const r=e.getChildren(),n=r.length;for(let s=0;s<n;s++){const a=r[s];if(this._isPreCalculateNode(a)){t.push(a);continue}else a.nodeType===ue.REFERENCE&&t.push(a);this._nodeTraversalRef(a,t)}}_nodeTraversalReferenceFunction(e,t){const r=e.getChildren(),n=r.length;for(let s=0;s<n;s++){const a=r[s];if(a.nodeType===ue.FUNCTION&&a.isAddress()){t.push(a);continue}this._nodeTraversalReferenceFunction(a,t)}}async _executeNode(e,t=0,r=0){let n;const s={node:e,refOffsetX:t,refOffsetY:r};return this._interpreter.checkAsyncNode(e)?n=await this._interpreter.executeAsync(s):n=this._interpreter.execute(s),n}async _getRangeListByNode(e){const t=[],r=[],n=e.refOffsetX,s=e.refOffsetY,a=e.node;if(a==null)return[];this._nodeTraversalRef(a,t),this._nodeTraversalReferenceFunction(a,r);const u=[];for(let c=0,l=t.length;c<l;c++){const f=t[c],d=(await this._executeNode(f,n,s)).toUnitRange();u.push(d),f.setValue(null)}for(let c=0,l=r.length;c<l;c++){const f=r[c],d=(await this._executeNode(f,n,s)).toUnitRange();u.push(d),f.setValue(null)}return u}_getUpdateTreeListAndMakeDependency(e){const t=[],r=new Set,n=this._currentConfigService.isForceCalculate(),s=this._currentConfigService.getDirtyRanges(),a=this._dependencyManagerService.searchDependency(s),u=this._dependencyManagerService.buildDependencyTree(e);for(const c of u){const l=c.treeId;(n||c.isDirty||c.dependencySheetName(this._currentConfigService.getDirtyNameMap())||a.has(l)&&!c.isExcludeRange(this._currentConfigService.getExcludedRange()))&&!r.has(l)&&(t.push(c),r.add(l))}return t}_includeTreeFeature(e){var s,a;const t=e.unitId,r=e.subUnitId,n=e.featureId;if(n!=null){const u=this._currentConfigService.getDirtyUnitFeatureMap();if(((a=(s=u==null?void 0:u[t])==null?void 0:s[r])==null?void 0:a[n])!=null)return!0}return!1}_includeOtherFormula(e){var s,a;const t=e.unitId,r=e.subUnitId,n=e.formulaId;if(n!=null){const u=this._currentConfigService.getDirtyUnitOtherFormulaMap();if(((a=(s=u==null?void 0:u[t])==null?void 0:s[r])==null?void 0:a[n])!=null)return!0}return!1}_detectForcedRecalculationNode(e,t){return t==null?!1:this._detectForcedRecalculationNodeRecursion(t)}_detectForcedRecalculationNodeRecursion(e){if(e.isForcedCalculateFunction())return!0;const t=e.getChildren();for(let r=0,n=t.length;r<n;r++){const s=t[r];if(this._detectForcedRecalculationNodeRecursion(s))return!0}return!1}_includeTree(e,t){var l,f,m;const r=e.unitId,n=e.subUnitId;if(this._detectForcedRecalculationNode(e,t)===!0||this._includeTreeFeature(e)===!0||this._includeOtherFormula(e)===!0||Zf(e,t,this._currentConfigService)===!0)return!0;const s=(f=(l=this._currentConfigService.getExcludedRange())==null?void 0:l[r])==null?void 0:f[n];if((s==null?void 0:s.getValue(e.row,e.column))!=null)return!1;if(((m=this._currentConfigService.getDirtyNameMap()[r])==null?void 0:m[n])!=null)return!0;if(!this._updateRangeFlattenCache.has(r))return!1;const u=this._updateRangeFlattenCache.get(r);if(!u.has(n))return!1;const c=u.get(n);for(const d of c)if(e.inRangeData(d))return!0;return!1}_calculateRunList(e){const t=e,r=[],n=[];for(;t.length>0;){const s=t.pop();if(!(s===void 0||s.isSkip())){if(s.isAdded()){r.push(s),s.setSkip();continue}n.length=0;for(const a of s.parents){const u=this._dependencyManagerService.getTreeById(a);if(!u)throw new Error("ParentDependencyTree object is null");u.isAdded()||s.isSkip()||n.push(u)}n.length===0?(r.push(s),s.setSkip()):(s.setAdded(),t.push(s,...n))}}return r}};exports.FormulaDependencyGenerator=em([_t(0,mt),_t(1,st),_t(2,vn),_t(3,ar),_t(4,M.Inject(exports.Interpreter)),_t(5,M.Inject(exports.AstTreeBuilder)),_t(6,M.Inject(exports.Lexer)),_t(7,wr)],exports.FormulaDependencyGenerator);var tm=Object.defineProperty,rm=Object.getOwnPropertyDescriptor,nm=(i,o,e,t)=>{for(var r=t>1?void 0:t?rm(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&tm(o,e,r),r},jt=(i,o)=>(e,t)=>o(e,t,i);const sm=1,Ki=500,cn=M.createIdentifier("engine-formula.calculate-formula.service");exports.CalculateFormulaService=class extends M.Disposable{constructor(e,t,r,n,s,a,u){super();A(this,"_executionInProgressListener$",new Jt.Subject);A(this,"executionInProgressListener$",this._executionInProgressListener$.asObservable());A(this,"_executionCompleteListener$",new Jt.Subject);A(this,"executionCompleteListener$",this._executionCompleteListener$.asObservable());this._configService=e,this._lexer=t,this._currentConfigService=r,this._runtimeService=n,this._formulaDependencyGenerator=s,this._interpreter=a,this._astTreeBuilder=u}stopFormulaExecution(){this._runtimeService.stopExecution()}setRuntimeFeatureCellData(e,t){this._runtimeService.setRuntimeFeatureCellData(e,t)}setRuntimeFeatureRange(e,t){this._runtimeService.setRuntimeFeatureRange(e,t)}async execute(e){this._runtimeService.setFormulaExecuteStage(ze.START),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._currentConfigService.load(e),this._runtimeService.reset();const t=this._configService.getConfig("CYCLE_REFERENCE_COUNT")||sm;for(let r=0;r<t&&(this._runtimeService.setFormulaCycleIndex(r),await this._execute(),Cs.clear(),!!this._runtimeService.isCycleDependency());r++);this._runtimeService.setFormulaExecuteStage(ze.CALCULATION_COMPLETED),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()),Et.clear(),this._runtimeService.reset()}async _execute(){const e=await this._apply();if(e==null)return;const{arrayFormulaRange:t,runtimeFeatureRange:r}=e,{dirtyRanges:n,excludedCell:s}=this._getArrayFormulaDirtyRangeAndExcludedRange(t,r);return n==null||n.length===0||(this._currentConfigService.loadDirtyRangesAndExcludedCell(n,s),await this._apply(!0)),!0}_getArrayFormulaDirtyRangeAndExcludedRange(e,t){const r=[],n={};return Object.keys(e).forEach(s=>{const a=e[s];if(a==null)return!0;Object.keys(a).forEach(u=>{const c=new M.ObjectMatrix(a[u]);if(c==null)return!0;const l=new M.ObjectMatrix;c.forValue((f,m,d)=>{l.setValue(f,m,!0),r.push({unitId:s,sheetId:u,range:d})}),n[s]==null&&(n[s]={}),n[s][u]=l})}),Object.keys(t).forEach(s=>{const a=t[s];Object.keys(a).forEach(u=>{const c=a[u];if(c==null)return!0;Object.keys(c).forEach(l=>{const f=c[l];if(f==null)return!0;for(const m of f)r.push({unitId:u,sheetId:l,range:m})})})}),{dirtyRanges:r,excludedCell:n}}async _apply(e=!1){e?this._runtimeService.setFormulaExecuteStage(ze.START_DEPENDENCY_ARRAY_FORMULA):this._runtimeService.setFormulaExecuteStage(ze.START_DEPENDENCY),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());const t=(await this._formulaDependencyGenerator.generate()).reverse(),r=this._interpreter;e?(this._runtimeService.setFormulaExecuteStage(ze.START_CALCULATION_ARRAY_FORMULA),this._runtimeService.setTotalArrayFormulasToCalculate(t.length)):(this._runtimeService.setFormulaExecuteStage(ze.START_CALCULATION),this._runtimeService.setTotalFormulasToCalculate(t.length)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());let n=[];const s=this._configService.getConfig(On),a=(s==null?void 0:s.intervalCount)||Ki,u=t.length;for(let c=0;c<u;c++){const l=t[c],f=l.nodeData,m=l.getDirtyData;if(c%a===0&&(await new Promise(C=>{const _=M.requestImmediateMacroTask(C);n.push(_)}),e?(this._runtimeService.setFormulaExecuteStage(ze.CURRENTLY_CALCULATING_ARRAY_FORMULA),this._runtimeService.setCompletedArrayFormulasCount(c+1)):(this._runtimeService.setFormulaExecuteStage(ze.CURRENTLY_CALCULATING),this._runtimeService.setCompletedFormulasCount(c+1)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._runtimeService.isStopExecution()||f==null&&m==null)){this._runtimeService.setFormulaExecuteStage(ze.IDLE),this._runtimeService.markedAsStopFunctionsExecuted(),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData());return}this._runtimeService.setCurrent(l.row,l.column,l.rowCount,l.columnCount,l.subUnitId,l.unitId);let d;if(m!=null&&l.featureId!=null){const{runtimeCellData:C,dirtyRanges:_}=m(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData());this._runtimeService.setRuntimeFeatureCellData(l.featureId,C),this._runtimeService.setRuntimeFeatureRange(l.featureId,_)}else f!=null&&(r.checkAsyncNode(f.node)?d=await r.executeAsync(f):d=r.execute(f),l.formulaId!=null?this._runtimeService.setRuntimeOtherData(l.formulaId,l.refOffsetX,l.refOffsetY,d):this._runtimeService.setRuntimeData(d))}return n.forEach(c=>c()),n=[],u>0?this._runtimeService.markedAsSuccessfullyExecuted():e||this._runtimeService.markedAsNoFunctionsExecuted(),this._runtimeService.getAllRuntimeData()}calculate(e,t=!0){const r=this._lexer.treeBuilder(e,t);if(Object.values(h).includes(r))return De.create(r);const n=this._astTreeBuilder.parse(r);n==null||n.serialize()}};exports.CalculateFormulaService=nm([jt(0,M.IConfigService),jt(1,M.Inject(exports.Lexer)),jt(2,mt),jt(3,st),jt(4,un),jt(5,M.Inject(exports.Interpreter)),jt(6,M.Inject(exports.AstTreeBuilder))],exports.CalculateFormulaService);var am=Object.defineProperty,im=Object.getOwnPropertyDescriptor,om=(i,o,e,t)=>{for(var r=t>1?void 0:t?im(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&am(o,e,r),r},zn=(i,o)=>(e,t)=>o(e,t,i);exports.CalculateController=class extends M.Disposable{constructor(o,e,t){super(),this._commandService=o,this._calculateFormulaService=e,this._formulaDataModel=t,this._initialize()}_initialize(){this._commandExecutedListener(),this._initialExecuteFormulaListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id===Ns.id)this._calculateFormulaService.stopFormulaExecution();else if(o.id===Rn.id){const e=o.params.formulaData;this._formulaDataModel.mergeFormulaData(e)}else if(o.id===ps.id){const e=o.params;this._calculate(e)}else if(o.id===Zr.id){const e=o.params;if(e==null)return;const{arrayFormulaRange:t,arrayFormulaCellData:r}=e;this._formulaDataModel.setArrayFormulaRange(t),this._formulaDataModel.setArrayFormulaCellData(r)}}))}async _calculate(o){const{forceCalculation:e=!1,dirtyRanges:t=[],dirtyNameMap:r={},dirtyDefinedNameMap:n={},dirtyUnitFeatureMap:s={},dirtyUnitOtherFormulaMap:a={},clearDependencyTreeCache:u={}}=o,c=this._formulaDataModel.getFormulaData(),l=this._formulaDataModel.getArrayFormulaCellData(),f=this._formulaDataModel.getArrayFormulaRange();this._calculateFormulaService.execute({formulaData:c,arrayFormulaCellData:l,arrayFormulaRange:f,forceCalculate:e,dirtyRanges:t,dirtyNameMap:r,dirtyDefinedNameMap:n,dirtyUnitFeatureMap:s,dirtyUnitOtherFormulaMap:a,clearDependencyTreeCache:u})}_initialExecuteFormulaListener(){this._calculateFormulaService.executionCompleteListener$.subscribe(o=>{const e=o.functionsExecutedState;switch(e){case zt.NOT_EXECUTED:break;case zt.STOP_EXECUTION:break;case zt.SUCCESS:this._applyResult(o);break;case zt.INITIAL:break}this._commandService.executeCommand(en.id,{functionsExecutedState:e},{onlyLocal:!0})}),this._calculateFormulaService.executionInProgressListener$.subscribe(o=>{this._commandService.executeCommand(en.id,{stageInfo:o},{onlyLocal:!0})})}async _applyResult(o){const{unitData:e,unitOtherData:t,arrayFormulaRange:r,arrayFormulaCellData:n,clearArrayFormulaCellData:s}=o;if(!e){console.error("No sheetData from Formula Engine!");return}r&&(this._formulaDataModel.clearPreviousArrayFormulaCellData(s),this._formulaDataModel.mergeArrayFormulaCellData(n),this._formulaDataModel.mergeArrayFormulaRange(r),this._commandService.executeCommand(Zr.id,{arrayFormulaRange:this._formulaDataModel.getArrayFormulaRange(),arrayFormulaCellData:this._formulaDataModel.getArrayFormulaCellData()},{onlyLocal:!0})),this._commandService.executeCommand(Vs.id,{unitData:Fu(e),unitOtherData:t},{onlyLocal:!0})}};exports.CalculateController=om([zn(0,M.ICommandService),zn(1,cn),zn(2,M.Inject(exports.FormulaDataModel))],exports.CalculateController);var um=Object.defineProperty,cm=Object.getOwnPropertyDescriptor,lm=(i,o,e,t)=>{for(var r=t>1?void 0:t?cm(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&um(o,e,r),r},Ta=(i,o)=>(e,t)=>o(e,t,i);exports.SetDefinedNameController=class extends M.Disposable{constructor(o,e){super(),this._commandService=o,this._definedNamesService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id===Vr.id){const e=o.params;if(e==null)return;const{id:t,unitId:r,name:n,formulaOrRefString:s,comment:a,hidden:u,localSheetId:c}=e;this._definedNamesService.registerDefinedName(r,{id:t,name:n.trim(),formulaOrRefString:s.trim(),comment:a==null?void 0:a.trim(),hidden:u,localSheetId:c})}else if(o.id===En.id){const e=o.params;if(e==null)return;const{unitId:t,id:r}=e;this._definedNamesService.removeDefinedName(t,r)}}))}};exports.SetDefinedNameController=lm([Ta(0,M.ICommandService),Ta(1,lr)],exports.SetDefinedNameController);const Ba=/[\[\]]/g;function Ia(i,o){if(Ba.test(i)){const e=Number(i.replace(Ba,""));return o+e}return Number(i)-1}function Jn(i,o=0,e=0){i=i.toLocaleUpperCase();const t=i.split(/[RC]/),r=t[1],n=t[2],s=Ia(r,o),a=Ia(n,e);return{row:s,column:a,absoluteRefType:M.AbsoluteRefType.NONE}}function Zi(i,o=0,e=0){const{refBody:t,sheetName:r,unitId:n}=An(i),s=t.indexOf(":");if(s===-1){const _=Jn(t,o,e),E=_.row,b=_.column,R=_.absoluteRefType;return{unitId:n,sheetName:r,range:{startRow:E,startColumn:b,endRow:E,endColumn:b,startAbsoluteRefType:R,endAbsoluteRefType:R}}}const a=t.substring(0,s),u=t.substring(s+1),c=Jn(a,o,e),l=Jn(u,o,e),f=c.row,m=c.column,d=l.row,C=l.column;return{unitId:n,sheetName:r,range:{startRow:f,startColumn:m,endRow:d,endColumn:C,startAbsoluteRefType:c.absoluteRefType,endAbsoluteRefType:l.absoluteRefType}}}function fm(i){const o=Tr(i.startRow,i.startAbsoluteRefType,!0),e=Tr(i.startColumn,i.startAbsoluteRefType,!1),t=Tr(i.endRow,i.endAbsoluteRefType,!0),r=Tr(i.endColumn,i.endAbsoluteRefType,!1);return o===t&&e===r?`R${o}C${e}`:`R${o}C${e}:R${t}C${r}`}function Tr(i,o=M.AbsoluteRefType.ALL,e){switch(i+=1,o){case M.AbsoluteRefType.ALL:return`${i}`;case M.AbsoluteRefType.ROW:return e?`${i}`:`[${i}]`;case M.AbsoluteRefType.COLUMN:return e?`[${i}]`:`${i}`;case M.AbsoluteRefType.NONE:return`[${i}]`}}const zi=[];var Ji=(i=>i)(Ji||{});class N{constructor(o){A(this,"_unitId");A(this,"_subUnitId");A(this,"_row",-1);A(this,"_column",-1);A(this,"_definedNames");A(this,"_locale");A(this,"_sheetOrder");A(this,"_sheetNameMap");A(this,"_formulaDataModel");A(this,"_rowCount",-1);A(this,"_columnCount",-1);A(this,"needsExpandParams",!1);A(this,"needsReferenceObject",!1);A(this,"needsLocale",!1);A(this,"needsSheetsInfo",!1);A(this,"needsFormulaDataModel",!1);A(this,"needsSheetRowColumnCount",!1);A(this,"minParams",-1);A(this,"maxParams",-1);this._name=o}get name(){return this._name}get unitId(){return this._unitId}get subUnitId(){return this._subUnitId}get row(){return this._row}get column(){return this._column}dispose(){}getDefinedName(o){var t;const e=this._definedNames;return e==null?null:(t=Array.from(Object.values(e)).filter(r=>r.name===o))==null?void 0:t[0]}setDefinedNames(o){this._definedNames=o}getLocale(){return this._locale}setLocale(o){this._locale=o}getSheetsInfo(){return{sheetOrder:this._sheetOrder,sheetNameMap:this._sheetNameMap}}setSheetsInfo({sheetOrder:o,sheetNameMap:e}){this._sheetOrder=o,this._sheetNameMap=e}setFormulaDataModel(o){this._formulaDataModel=o}setSheetRowColumnCount(o,e){this._rowCount=o,this._columnCount=e}isAsync(){return!1}isAddress(){return!1}isCustom(){return!1}setRefInfo(o,e,t,r){this._unitId=o,this._subUnitId=e,this._row=t,this._column=r}calculateCustom(...o){return null}calculate(...o){return g.create(h.VALUE)}checkArrayType(o){return o.isReferenceObject()||o.isValueObject()&&o.isArray()}getIndexNumValue(o,e=1){let t=o;if(t.isArray()&&(t=t.getFirstCell()),t.isBoolean())return t.getValue()===!1?g.create(h.VALUE):e;if(t.isString()){const r=Number(t.getValue());return Number.isNaN(r)?g.create(h.REF):r}else if(t.isNumber())return t.getValue();return g.create(h.VALUE)}getZeroOrOneByOneDefault(o){if(o==null)return 1;let e=1;if(o.isArray()&&(o=o.getFirstCell()),o.isBoolean())o.getValue()===!1&&(e=0);else{if(o.isString())return;o.isNumber()&&o.getValue()===0&&(e=0)}return e}getMatchTypeValue(o){if(o==null)return 1;let e=1;if(o.isArray()&&(o=o.getFirstCell()),o.isBoolean())o.getValue()===!1&&(e=0);else{if(o.isString())return;if(o.isNumber()){const t=o.getValue();t<=0&&(e=t)}}return e}binarySearch(o,e,t,r,n){const s=e.binarySearch(o,r,n);if(s==null)return g.create(h.NA);let a;return t.getRowCount()===1?a=t.get(0,s)||ae.create():a=t.get(s,0)||ae.create(),a.isNull()?y.create(0):a}_getOneFirstByRaw(o){return o.length===0?g.create(h.NA):o[0][0]||g.create(h.NA)}_getOneLastByRaw(o){return o.length===0?g.create(h.NA):o[o.length-1][o[0].length-1]||g.create(h.NA)}equalSearch(o,e,t,r=!0){const n=t.pickRaw(e.isEqual(o));return r?this._getOneFirstByRaw(n):this._getOneLastByRaw(n)}fuzzySearch(o,e,t,r=!0){const n=t.pickRaw(e.compare(o,$.EQUALS));return r?this._getOneFirstByRaw(n):this._getOneLastByRaw(n)}orderSearch(o,e,t,r=Oe.MIN,n=!1){const s=e.orderSearch(o,r,n);if(s==null)return g.create(h.NA);const a=t.get(s.row,s.column)||ae.create();return a.isNull()?g.create(h.NA):a}binarySearchExpand(o,e,t,r=0,n,s){const a=e.binarySearch(o,n,s);return a==null?g.create(h.NA):r===0?t.slice([a,a+1]):t.slice(void 0,[a,a+1])}equalSearchExpand(o,e,t,r=!0,n=0){const s=e.isEqual(o);let a;return r?a=s.getFirstTruePosition():a=s.getLastTruePosition(),a==null?g.create(h.NA):n===0?t.slice([a.row,a.row+1]):t.slice(void 0,[a.column,a.column+1])}fuzzySearchExpand(o,e,t,r=!0,n=0){const s=e.compare(o,$.EQUALS);let a;return r?a=s.getFirstTruePosition():a=s.getLastTruePosition(),a==null?g.create(h.NA):n===0?t.slice([a.row,a.row+1]):t.slice(void 0,[a.column,a.column+1])}orderSearchExpand(o,e,t,r=Oe.MIN,n=!1,s=0){const a=e.orderSearch(o,r,n);return a==null?g.create(h.NA):s===0?t.slice([a.row,a.row+1]):t.slice(void 0,[a.column,a.column+1])}flattenArray(o,e=!0){const t=[];t[0]=[];for(let r=0;r<o.length;r++){let n=o[r];if((n.isString()||n.isBoolean()||n.isNull())&&(n=n.convertToNumberObjectValue()),n.isError())return n;if(n.isArray()){let s;if(n.iterator(a=>{if(a==null||a.isNull()||e&&(a.isString()||a.isBoolean()))return!0;if(a=this._includingLogicalValuesAndText(a),a.isError())return s=a,!1;t[0].push(a)}),s!=null&&s.isError())return s}else t[0].push(n)}return Ht(t,1,t[0].length)}_includingLogicalValuesAndText(o){if(o.isBoolean()&&(o=ef(o)),o.isString()){const e=Number(o.getValue());o=y.create(Number.isNaN(e)?0:e)}return o}createReferenceObject(o,e){const t=o.getForcedUnitId(),r=o.getForcedSheetId()||"",n=o.getForcedSheetName(),a=zr({unitId:t,sheetName:n,range:e});let u;return Nr(a)?u=new Ps(a):li(a)?u=new xs(a):fi(a)?u=new Ls(a):u=new Rr(e,r,t),this._setReferenceDefault(o,u)}_setReferenceDefault(o,e){return this.unitId==null||this.subUnitId==null?g.create(h.REF):(e.setDefaultUnitId(this.unitId),e.setDefaultSheetId(this.subUnitId),e.setUnitData(o.getUnitData()),e.setRuntimeData(o.getRuntimeData()),e.setArrayFormulaCellData(o.getArrayFormulaCellData()),e.setRuntimeArrayFormulaCellData(o.getRuntimeArrayFormulaCellData()),e)}}var ir;(i=>{const o=.636619772;function e(n,s){let a=0;for(let u=0;u<n.length;++u)a=s*a+n[u];return a}function t(n,s,a,u,c){if(s===0)return a;if(s===1)return u;const l=2/n;let f=a,m=u,d=u;for(let C=1;C<s;++C)d=m*C*l+c*f,f=m,m=d;return d}function r(n,s,a,u){return function(l,f){if(a){if(l===0)return a===1?-1/0:1/0;if(l<0)return Number.NaN}if(f===0)return n(l);if(f===1)return s(l);if(f<0)return Number.NaN;const m=f|0,d=n(l),C=s(l);return t(l,m,d,C,u)}}i.besselj=(()=>{const n=[-184.9052456,77392.33017,-1121442418e-2,6516196407e-1,-13362590354,57568490574],s=[1,267.8532712,59272.64853,9494680718e-3,1029532985,57568490411],a=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],u=[-934935152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function c(_){let E=0,b=0,R=0,p=_*_;if(_<8)b=e(n,p),R=e(s,p),E=b/R;else{const V=_-.785398164;p=64/p,b=e(a,p),R=e(u,p),E=Math.sqrt(o/_)*(Math.cos(V)*b-Math.sin(V)*R*8/_)}return E}const l=[-30.16036606,15704.4826,-2972611439e-3,2423968531e-1,-7895059235,72362614232],f=[1,376.9991397,99447.43394,1858330474e-2,2300535178,144725228442],m=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],d=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function C(_){let E=0,b=0,R=0,p=_*_;const V=Math.abs(_)-2.356194491;return Math.abs(_)<8?(b=_*e(l,p),R=e(f,p),E=b/R):(p=64/p,b=e(m,p),R=e(d,p),E=Math.sqrt(o/Math.abs(_))*(Math.cos(V)*b-Math.sin(V)*R*8/Math.abs(_)),_<0&&(E=-E)),E}return function _(E,b){const R=Math.round(b);if(!Number.isFinite(E))return Number.isNaN(E)?E:0;if(R<0)return(R%2?-1:1)*_(E,-R);if(E<0)return(R%2?-1:1)*_(-E,R);if(R===0)return c(E);if(R===1)return C(E);if(E===0)return 0;let p=0;if(E>R)p=t(E,R,c(E),C(E),-1);else{const V=2*Math.floor((R+Math.floor(Math.sqrt(40*R)))/2);let S=!1,D=0,w=0,P=1,L=0;const T=2/E;for(let B=V;B>0;B--)if(L=B*T*P-D,D=P,P=L,Math.abs(P)>1e10&&(P*=1e-10,D*=1e-10,p*=1e-10,w*=1e-10),S&&(w+=P),S=!S,B===R&&(p=D),V-B>100&&p===0)return Number.NaN;w=2*w-P,p/=w}return p}})(),i.bessely=(()=>{const n=[228.4622733,-86327.92757,1087988129e-2,-5123598036e-1,7062834065,-2957821389],s=[1,226.1030244,47447.2647,7189466438e-3,7452499648e-1,40076544269],a=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],u=[-934945152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function c(_){let E=0,b=0,R=0,p=_*_;const V=_-.785398164;return _<8?(b=e(n,p),R=e(s,p),E=b/R+o*(0,i.besselj)(_,0)*Math.log(_)):(p=64/p,b=e(a,p),R=e(u,p),E=Math.sqrt(o/_)*(Math.sin(V)*b+Math.cos(V)*R*8/_)),E}const l=[8511.937935,-4237922726e-3,7349264551e-1,-51534381390,127527439e4,-4900604943e3],f=[1,354.9632885,102042.605,2245904002e-2,3733650367,424441966400,249958057e5],m=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],d=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function C(_){let E=0,b=0,R=0,p=_*_;const V=_-2.356194491;return _<8?(b=_*e(l,p),R=e(f,p),E=b/R+o*((0,i.besselj)(_,1)*Math.log(_)-1/_)):(p=64/p,b=e(m,p),R=e(d,p),E=Math.sqrt(o/_)*(Math.sin(V)*b+Math.cos(V)*R*8/_)),E}return r(c,C,1,-1)})(),i.besseli=(()=>{const n=[.0045813,.0360768,.2659732,1.2067492,3.0899424,3.5156229,1],s=[.00392377,-.01647633,.02635537,-.02057706,.00916281,-.00157565,.00225319,.01328592,.39894228];function a(f){return f<=3.75?e(n,f*f/(3.75*3.75)):Math.exp(Math.abs(f))/Math.sqrt(Math.abs(f))*e(s,3.75/Math.abs(f))}const u=[32411e-8,.00301532,.02658733,.15084934,.51498869,.87890594,.5],c=[-.00420059,.01787654,-.02895312,.02282967,-.01031555,.00163801,-.00362018,-.03988024,.39894228];function l(f){return f<3.75?f*e(u,f*f/(3.75*3.75)):(f<0?-1:1)*Math.exp(Math.abs(f))/Math.sqrt(Math.abs(f))*e(c,3.75/Math.abs(f))}return function f(m,d){const C=Math.round(d);if(C===0)return a(m);if(C===1)return l(m);if(C<0)return Number.NaN;if(Math.abs(m)===0)return 0;if(m===1/0)return 1/0;let _=0,E;const b=2/Math.abs(m);let R=0,p=1,V=0;const S=2*Math.round((C+Math.round(Math.sqrt(40*C)))/2);for(E=S;E>0;E--)if(V=E*b*p+R,R=p,p=V,Math.abs(p)>1e10&&(p*=1e-10,R*=1e-10,_*=1e-10),E===C&&(_=R),S-E>100&&_===0)return Number.NaN;return _*=f(m,0)/p,m<0&&C%2?-_:_}})(),i.besselk=(()=>{const n=[74e-7,1075e-7,.00262698,.0348859,.23069756,.4227842,-.57721566],s=[53208e-8,-.0025154,.00587872,-.01062446,.02189568,-.07832358,1.25331414];function a(f){return f<=2?-Math.log(f/2)*(0,i.besseli)(f,0)+e(n,f*f/4):Math.exp(-f)/Math.sqrt(f)*e(s,2/f)}const u=[-4686e-8,-.00110404,-.01919402,-.18156897,-.67278579,.15443144,1],c=[-68245e-8,.00325614,-.00780353,.01504268,-.0365562,.23498619,1.25331414];function l(f){return f<=2?Math.log(f/2)*(0,i.besseli)(f,1)+1/f*e(u,f*f/4):Math.exp(-f)/Math.sqrt(f)*e(c,2/f)}return r(a,l,2,1)})()})(ir||(ir={}));function Is(i){return/^[01]{1,10}$/.test(i)}function Fs(i){return/^[0-7]{1,10}$/.test(i)}function ks(i){return/^[0-9A-Fa-f]{1,10}$/.test(i)}function Ft(i){if(i===0)return 0;const o=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,15626441722e-18,-85238095915e-18,6529054439e-18,5059343495e-18,-991364156e-18,-227365122e-18,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18];let e=i,t=!1;e<0&&(e=-e,t=!0);const r=2/(2+e),n=4*r-2;let s=0,a=0,u;for(let l=o.length-1;l>0;l--)u=s,s=n*s-a+o[l],a=u;const c=r*Math.exp(-e*e+.5*(o[0]+n*s)-a);return t?c-1:1-c}function $s(i){return 1-Ft(i)}function mm(i){if(i>=2)return-100;if(i<=0)return 100;const o=i<1?i:2-i,e=Math.sqrt(-2*Math.log(o/2));let t=-.70711*((2.30753+e*.27061)/(1+e*(.99229+e*.04481))-e);for(let r=0;r<2;r++){const n=$s(t)-o;t+=n/(1.1283791670955126*Math.exp(-t*t)-t*n)}return i<1?t:-t}function er(i,o=1){let e=Math.floor(i);if(i<0)return Number.NaN;let t=1;for(;e>1&&Number.isFinite(t);)t*=e,e-=o;return t}function kt(i,o){const e=Math.min(i-o,o);let t=1;for(let r=1;r<=e&&Number.isFinite(t);r++)t*=i-r+1,t/=r;return t}function bs(i,o){let e=Math.floor(i),t=Math.floor(o);for(;t!==0;){const r=t;t=e%t,e=r}return e}function Fa(i,o){const e=bs(i,o);return e===0?0:Math.abs(i*o)/e}function Tn(i){const o=i.length;if(o===1)return i[0][0];if(o===2)return i[0][0]*i[1][1]-i[0][1]*i[1][0];let e=0;for(let t=0;t<o;t++)e+=(t%2===0?1:-1)*i[0][t]*Tn(eo(i,0,t));return e}function hm(i){const o=Tn(i);return o===0?null:i.length===1?[[1/o]]:gm(i).map(r=>r.map(n=>n/o))}function eo(i,o,e){return i.filter((t,r)=>r!==o).map(t=>t.filter((r,n)=>n!==e))}function gm(i){const o=i.length,e=Array.from({length:o},()=>new Array(o).fill(0));for(let t=0;t<o;t++)for(let r=0;r<o;r++){const n=(t+r)%2===0?1:-1;e[r][t]=n*Tn(eo(i,t,r))}return e}function tr(i,o){return i.map(e=>o[0].map((t,r)=>e.reduce((n,s,a)=>n+s*o[a][r],0)))}function yt(i){return i[0].map((o,e)=>i.map(t=>t[e]))}function dm(i){const o=Cm(i);if(!o)return null;const{matrixU:e,matrixS:t,matrixV:r}=o,n=yt(e),s=Array.from({length:t.length},()=>new Array(i[0].length).fill(0)),a=Math.max(i.length,i[0].length)*Number.EPSILON*t[0];for(let u=0;u<t.length;u++)Math.abs(t[u])>a&&(s[u][u]=1/t[u]);return tr(r,tr(s,n))}function Cm(i){const o=yt(i),e=o.length,t=o[0].length;if(e<t)return null;const r=new Array(t).fill(0),n=new Array(t).fill(0),s=Array.from({length:t},()=>new Array(t).fill(0));let a=Number.EPSILON,u=0,c=0,l=0;for(let _=0;_<t;_++){if(r[_]=u,c=es(o,_,e,_,_),c<=1e-64/a)u=0;else{u=Math.sqrt(c),o[_][_]>=0&&(u=-u);const b=o[_][_]*u-c;o[_][_]-=u;for(let R=_+1;R<t;R++){c=es(o,_,e,_,R);for(let p=_;p<e;p++)o[p][R]+=c/b*o[p][_]}}if(n[_]=u,c=ka(o,_+1,t,_,_),c<=1e-64/a)u=0;else{u=Math.sqrt(c),o[_][_+1]>=0&&(u=-u);const b=o[_][_+1]*u-c;o[_][_+1]-=u;for(let R=_+1;R<t;R++)r[R]=o[_][R]/b;for(let R=_+1;R<e;R++){c=ka(o,_+1,t,R,_);for(let p=_+1;p<t;p++)o[R][p]+=c*r[p]}}const E=Math.abs(n[_])+Math.abs(r[_]);E>l&&(l=E)}let f=0;for(let _=t-1;_>=0;_--){if(u!==0){for(let E=f;E<t;E++)s[E][_]=o[_][E]/(u*o[_][_+1]);for(let E=f;E<t;E++){c=0;for(let b=f;b<t;b++)c+=o[_][b]*s[b][E];for(let b=f;b<t;b++)s[b][E]+=c*s[b][_]}}for(let E=f;E<t;E++)s[_][E]=0,s[E][_]=0;s[_][_]=1,u=r[_],f=_}for(let _=t-1;_>=0;_--){u=n[_];for(let E=_+1;E<t;E++)o[_][E]=0;if(u!==0){for(let E=_+1;E<t;E++){c=es(o,_+1,e,_,E);for(let b=_;b<e;b++)o[b][E]+=c/(o[_][_]*u)*o[b][_]}for(let E=_;E<e;E++)o[E][_]/=u}else for(let E=_;E<e;E++)o[E][_]=0;o[_][_]+=1}a*=l;let m=0,d=0,C=0;for(let _=t-1;_>=0;_--)for(let E=0;E<50;E++){let b=!1,R=_;for(;R>=0;R--){if(Math.abs(r[R])<=a){b=!0;break}if(Math.abs(n[R-1])<=a)break}if(!b){let D=0,w=1;for(let P=R;P<_+1&&(m=w*r[P],d=n[P],r[P]*=D,!(Math.abs(m)<=a));P++){C=Br(m,d),n[P]=C,D=d/C,w=-m/C;for(let L=0;L<e;L++){const T=o[L][R-1],B=o[L][P];o[L][R-1]=T*D+B*w,o[L][P]=-T*w+B*D}}}if(R===_){if(n[_]<0){n[_]=-n[_];for(let D=0;D<t;D++)s[D][_]=-s[D][_]}break}if(E>=49)return null;let p=n[R];m=((n[_-1]-n[_])*(n[_-1]+n[_])+(r[_-1]-r[_])*(r[_-1]+r[_]))/(2*r[_]*n[_-1]),C=Br(m,1),m<0?m=((p-n[_])*(p+n[_])+r[_]*(n[_-1]/(m-C)-r[_]))/p:m=((p-n[_])*(p+n[_])+r[_]*(n[_-1]/(m+C)-r[_]))/p;let V=1,S=1;for(let D=R+1;D<_+1;D++){let w=r[D],P=n[D];d=S*w,w*=V,C=Br(m,d),r[D-1]=C,V=m/C,S=d/C,m=p*V+w*S,d=P*S,w=-p*S+w*V,P*=V;for(let L=0;L<t;L++){const T=s[L][D-1],B=s[L][D];s[L][D-1]=T*V+B*S,s[L][D]=-T*S+B*V}C=Br(m,d),n[D-1]=C,V=m/C,S=d/C,m=V*w+S*P,p=-S*w+V*P;for(let L=0;L<e;L++){const T=o[L][D-1],B=o[L][D];o[L][D-1]=T*V+B*S,o[L][D]=-T*S+B*V}}r[R]=0,r[_]=m,n[_]=p}for(let _=0;_<n.length;_++)n[_]<a&&(n[_]=0);for(let _=0;_<t;_++)for(let E=_-1;E>=0;E--)if(n[E]<n[_]){const b=n[E];n[E]=n[_],n[_]=b;for(let R=0;R<o.length;R++){const p=o[R][_];o[R][_]=o[R][E],o[R][E]=p}for(let R=0;R<s.length;R++){const p=s[R][_];s[R][_]=s[R][E],s[R][E]=p}_=E}return{matrixU:o,matrixS:n,matrixV:s}}function Br(i,o){let e=0;return Math.abs(i)>Math.abs(o)?(e=o/i,Math.abs(i)*Math.sqrt(1+e*e)):o!==0?(e=i/o,Math.abs(o)*Math.sqrt(1+e*e)):0}function es(i,o,e,t,r){let n=0;for(let s=o;s<e;s++)n+=i[s][t]*i[s][r];return n}function ka(i,o,e,t,r){let n=0;for(let s=o;s<e;s++)n+=i[t][s]*i[r][s];return n}const Ir=new Map([["I",1],["V",5],["X",10],["L",50],["C",100],["D",500],["M",1e3]]),_m=new Map([[1,"I"],[4,"IV"],[5,"V"],[9,"IX"],[10,"X"],[40,"XL"],[45,"VL"],[49,"IL"],[50,"L"],[90,"XC"],[95,"VC"],[99,"IC"],[100,"C"],[400,"CD"],[450,"LD"],[490,"XD"],[495,"VD"],[499,"ID"],[500,"D"],[900,"CM"],[950,"LM"],[990,"XM"],[995,"VM"],[999,"IM"],[1e3,"M"]]),Am=[[1,4,5,9,10,40,50,90,100,400,500,900,1e3,4e3],[1,4,5,9,10,40,45,50,90,95,100,400,450,500,900,950,1e3,4e3],[1,4,5,9,10,40,45,49,50,90,95,99,100,400,450,490,500,900,950,990,1e3,4e3],[1,4,5,9,10,40,45,49,50,90,95,99,100,400,450,490,495,500,900,950,990,995,1e3,4e3],[1,4,5,9,10,40,45,49,50,90,95,99,100,400,450,490,495,499,500,900,950,990,995,999,1e3,4e3]];function to(i,o,e){return i<=0?0:i>=1?1:Bn(i,o,e)}function Em(i,o,e){return i<=0||i>=1?0:o===1&&e===1?1:o<512&&e<512?i**(o-1)*(1-i)**(e-1)/Hs(o,e):Math.exp((o-1)*Math.log(i)+(e-1)*Math.log(1-i)-Gs(o,e))}function Ys(i,o,e){if(i<=0)return 0;if(i>=1)return 1;const t=1e-8;let r;if(o>=1&&e>=1){const c=i<.5?i:1-i,l=Math.sqrt(-2*Math.log(c));r=(2.30753+l*.27061)/(1+l*(.99229+l*.04481))-l,i<.5&&(r=-r);const f=(r*r-3)/6,m=2/(1/(2*o-1)+1/(2*e-1)),d=r*Math.sqrt(f+m)/m-(1/(2*e-1)-1/(2*o-1))*(f+5/6-2/(3*m));r=o/(o+e*Math.exp(2*d))}else{const c=Math.exp(o*Math.log(o/(o+e)))/o,l=Math.exp(e*Math.log(e/(o+e)))/e,f=c+l;i<c/f?r=(o*f*i)**(1/o):r=1-(e*f*(1-i))**(1/e)}const n=-Gs(o,e);let s,a,u;for(let c=0;c<10;c++){if(r===0||r===1)return r;if(s=Bn(r,o,e)-i,a=Math.exp((o-1)*Math.log(r)+(e-1)*Math.log(1-r)+n),u=s/a,r-=a=u/(1-.5*Math.min(1,u*((o-1)/r-(e-1)/(1-r)))),r<=0&&(r=.5*(r+a)),r>=1&&(r=.5*(r+a+1)),Math.abs(a)<t*r&&c>0)break}return r}function Bn(i,o,e){const t=i===0||i===1?0:Math.exp(rt(o+e)-rt(o)-rt(e)+o*Math.log(i)+e*Math.log(1-i));return i<(o+1)/(o+e+2)?t*$a(i,o,e)/o:1-t*$a(1-i,e,o)/e}function $a(i,o,e){let n=1-(o+e)*i/(o+1);Math.abs(n)<1e-8&&(n=1e-8),n=1/n;let s=1,a=n;for(let u=1;u<=100;u++){let c=u*(e-u)*i/((o-1+u*2)*(o+u*2));if(n=1+c*n,Math.abs(n)<1e-8&&(n=1e-8),s=1+c/s,Math.abs(s)<1e-8&&(s=1e-8),n=1/n,a*=n*s,c=-(o+u)*(o+e+u)*i/((o+u*2)*(o+1+u*2)),n=1+c*n,Math.abs(n)<1e-8&&(n=1e-8),s=1+c/s,Math.abs(s)<1e-8&&(s=1e-8),n=1/n,a*=n*s,Math.abs(n*s-1)<1e-8)break}return a}function Hs(i,o){return i+o>170?Math.exp(Gs(i,o)):Qr(i)*Qr(o)/Qr(i+o)}function Gs(i,o){return rt(i)+rt(o)-rt(i+o)}function ro(i,o,e){if(i<0)return 0;if(i>=o)return 1;if(e<0||e>1||o<=0)return Number.NaN;let t=0;for(let r=0;r<=i;r++)t+=Ws(r,o,e);return t}function Ws(i,o,e){return e===0||e===1?o*e===i?1:0:kt(o,i)*e**i*(1-e)**(o-i)}function Qs(i,o){return i<=0?0:Xs(o/2,i/2)}function bm(i,o){return i<0?0:i===0&&o===2?.5:Math.exp((o/2-1)*Math.log(i)-i/2-o/2*Math.log(2)-rt(o/2))}function no(i,o){return i<=0?0:i>=1?1/0:2*io(i,o/2)}function qs(i,o,e){return i<0?0:Bn(o*i/(o*i+e),o/2,e/2)}function ym(i,o,e){if(i<0)return 0;if(i===0&&o<2)return 1/0;if(i===0&&o===2)return 1;let t=1/Hs(o/2,e/2);return t*=(o/e)**(o/2),t*=i**(o/2-1),t*=(1+o/e*i)**(-(o+e)/2),t}function so(i,o,e){return i<=0?0:i>=1?1/0:e/(o*(1/Ys(i,o/2,e/2)-1))}function Rm(i,o){return i<0?0:1-Math.exp(-o*i)}function pm(i,o){return i<0?0:o*Math.exp(-o*i)}function ao(i,o,e){const t=o.length;let r=0,n=0;for(let m=0;m<t;m++)r+=o[m],n+=e[m];const s=r/t,a=n/t;let u=0,c=0;for(let m=0;m<t;m++)u+=(o[m]-s)*(e[m]-a),c+=(e[m]-a)**2;if(c===0)return 1/0;const l=u/c;return s-l*a+l*i}function Qr(i){const o=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],e=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535];let t=0,r=i;if(i>171.6243769536076)return 1/0;if(r<=0){const f=r%1+36e-17;if(f)t=(r&1?-1:1)*Math.PI/Math.sin(Math.PI*f),r=1-r;else return 1/0}const n=r;let s=0,a;r<1?a=r++:a=(r-=s=(r|0)-1)-1;let u=0,c=0;for(let f=0;f<8;++f)u=(u+o[f])*a,c=c*a+e[f];let l=u/c+1;if(n<r)l/=n;else if(n>r)for(let f=0;f<s;++f)l*=r,r++;return t&&(l=t/l),l}function Nm(i,o,e){return i<=0?0:Xs(o,i/e)}function Vm(i,o,e){return i<0?0:i===0&&o===1?1/e:Math.exp((o-1)*Math.log(i)-i/e-rt(o)-o*Math.log(e))}function Om(i,o,e){return i<=0?0:i>=1?1/0:e*io(i,o)}function rt(i){const o=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18];let e=i,t=i+5.5;t-=(i+.5)*Math.log(t);let r=1.000000000190015;for(let n=0;n<6;n++)r+=o[n]/++e;return-t+Math.log(2.5066282746310007*r/i)}function Xs(i,o){if(o<0||i<=0)return Number.NaN;const e=1e-30,t=-~(Math.log(i>=1?i:1/i)*8.5+i*.4+17),r=rt(i),n=Math.exp(-o+i*Math.log(o)-r);let s=i,a=1/i,u=a;if(o<i+1){if(n===0)return 0;for(let d=1;d<=t&&(a+=u*=o/++s,!(Math.abs(u)<Math.abs(a)*e));d++);return a*n}if(n===0)return 1;let c=o+1-i,l=1/e,f=1/c,m=f;for(let d=1;d<=t;d++){const C=-d*(d-i);if(c+=2,f=C*f+c,Math.abs(f)<e&&(f=e),l=c+C/l,Math.abs(l)<e&&(l=e),f=1/f,m*=f*l,Math.abs(f*l-1)<e)break}return 1-m*n}function io(i,o){if(i<=0)return 0;if(i>=1)return Math.max(100,o+100*Math.sqrt(o));let e;if(o>1){const a=i<.5?i:1-i,u=Math.sqrt(-2*Math.log(a));e=(2.30753+u*.27061)/(1+u*(.99229+u*.04481))-u,i<.5&&(e=-e),e=Math.max(.001,o*(1-1/(9*o)-e/(3*Math.sqrt(o)))**3)}else{const a=1-o*(.253+o*.12);i<a?e=(i/a)**(1/o):e=1-Math.log(1-(i-a)/(1-a))}const t=1e-8,r=rt(o);let n,s;for(let a=0;a<12;a++){if(e<=0)return 0;if(n=Xs(o,e)-i,o>1?s=Math.exp((o-1)*(Math.log(o-1)-1)-r)*Math.exp(-(e-(o-1))+(o-1)*(Math.log(e)-Math.log(o-1))):s=Math.exp(-e+(o-1)*Math.log(e)-r),s!==0&&(s=n/s/(1-.5*Math.min(1,n/s*((o-1)/e-1)))),e-=s,e<=0&&(e=.5*(e+s)),Math.abs(s)<t*e)break}return e}function Mm(i,o,e,t){let r=0;for(let n=0;n<=i;n++)r+=Ks(n,o,e,t);return r}function Ks(i,o,e,t){return o-i>t-e?0:kt(e,i)*kt(t-e,o-i)/kt(t,o)}function oo(i,o,e){return i<0?0:.5+.5*Ft((Math.log(i)-o)/Math.sqrt(2*e*e))}function Sm(i,o,e){return i<=0?0:Math.exp(-Math.log(i)-.5*Math.log(2*Math.PI)-Math.log(e)-(Math.log(i)-o)**2/(2*e*e))}function Dm(i,o,e){return Math.exp(In(i,o,e))}function wm(i,o,e){if(i<0)return 0;let t=0;for(let r=0;r<=i;r++)t+=Zs(r,o,e);return t}function Zs(i,o,e){return i<0?0:kt(i+o-1,o-1)*e**o*(1-e)**i}function Pr(i,o,e){return .5*(1+Ft((i-o)/Math.sqrt(2*e*e)))}function uo(i,o,e){return Math.exp(-.5*Math.log(2*Math.PI)-Math.log(e)-(i-o)**2/(2*e*e))}function In(i,o,e){return-1.4142135623730951*e*mm(2*i)+o}function Pm(i,o){let e=0;for(let t=0;t<=i;t++)e+=co(t,o);return e}function co(i,o){return Math.exp(-o)*o**i/er(i)}function Lr(i,o){const e=.5*Bn(o/(i**2+o),o/2,.5);return i<0?e:1-e}function Lm(i,o){const e=(1+i**2/o)**(-(o+1)/2);return 1/(Math.sqrt(o)*Hs(.5,o/2))*e}function zs(i,o){let e=Ys(2*Math.min(i,1-i),.5*o,.5);return e=Math.sqrt(o*(1-e)/e),i>.5?e:-e}function Ge(i,o,e,t,r){const n=[],s=[];let a=!0;for(let u=0;u<e;u++){const c=Math.floor(u/t),l=u%t,f=Math.floor(u/r),m=u%r,d=i.isArray()?i.get(c,l):i,C=o.isArray()?o.get(f,m):o;if(d.isError())return{isError:!0,errorObject:d,array1Values:n,array2Values:s,noCalculate:a};if(C.isError())return{isError:!0,errorObject:C,array1Values:n,array2Values:s,noCalculate:a};if(d.isNull()||C.isNull()||d.isBoolean()||C.isBoolean())continue;const _=d.getValue(),E=C.getValue();!M.isRealNum(_)||!M.isRealNum(E)||(n.push(+_),s.push(+E),a=!1)}return{isError:!1,errorObject:null,array1Values:n,array2Values:s,noCalculate:a}}function rr(i){let o=i;if(i.isArray()){const e=i.getRowCount(),t=i.getColumnCount();if(e>1||t>1)return g.create(h.VALUE);o=i.get(0,0)}return o.isError(),o}function Js(...i){for(let o=0;o<i.length;o++){const e=rr(i[o]);if(e.isError())return{isError:!0,errorObject:e};i[o]=e}return{isError:!1,variants:i}}function H(...i){for(let o=0;o<i.length;o++){const e=rr(i[o]);if(e.isError())return{isError:!0,errorObject:e};if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE)};i[o]=e}return{isError:!1,variants:i}}function je(...i){for(let o=0;o<i.length;o++){let e=i[o];if(e.isError())return{isError:!0,errorObject:e};if(e.isNull())return{isError:!0,errorObject:g.create(h.NA)};if(e=rr(i[o]),e.isError())return{isError:!0,errorObject:e};if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE)};i[o]=e}return{isError:!1,variants:i}}function I(...i){for(let o=0;o<i.length;o++){let e=i[o];if(e.isString()&&(e=e.convertToNumberObjectValue()),e.isError())return{isError:!0,errorObject:e};i[o]=e}return{isError:!1,variants:i}}class lo extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",5)}calculate(e,t,r,n,s){let a=n!=null?n:y.create(0),u=s!=null?s:y.create(1);a.isNull()&&(a=y.create(0)),u.isNull()&&(u=y.create(1));const c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,a.isArray()?a.getRowCount():1,u.isArray()?u.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,a.isArray()?a.getColumnCount():1,u.isArray()?u.getColumnCount():1),f=O(c,l,e,g.create(h.NA)),m=O(c,l,t,g.create(h.NA)),d=O(c,l,r,g.create(h.NA)),C=O(c,l,a,g.create(h.NA)),_=O(c,l,u,g.create(h.NA)),E=f.mapValue((b,R,p)=>{const V=m.get(R,p),S=d.get(R,p),D=C.get(R,p),w=_.get(R,p);return this._handleSignleObject(b,V,S,D,w)});return c===1&&l===1?E.get(0,0):E}_handleSignleObject(e,t,r,n,s){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(n.isError())return n;if(s.isError())return s;const{isError:a,errorObject:u,variants:c}=I(e,t,r,n,s);if(a)return u;const[l,f,m,d,C]=c,_=+l.getValue(),E=+f.getValue(),b=+m.getValue(),R=+d.getValue(),p=+C.getValue();if(E<=0||b<=0||_<=0||_>=1||R>=p)return g.create(h.NUM);const V=Ys(_,E,b)*(p-R)+R;return y.create(V)}}class fo extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSignleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(e,t,r,n);if(s)return a;const[c,l,f,m]=u,d=Math.floor(+c.getValue()),C=Math.floor(+l.getValue()),_=+f.getValue(),E=+m.getValue();if(d<0||d>C||_<0||_>1)return g.create(h.NUM);let b;return E?b=ro(d,C,_):b=Ws(d,C,_),y.create(b)}}class mo extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=Math.floor(+u.getValue()),m=+c.getValue(),d=+l.getValue();if(f<0||m<=0||m>=1||d<=0||d>=1)return g.create(h.NUM);let C=0;for(;C<=f&&!(ro(C,f,m)>=d);)C++;return y.create(C)}}class ho extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);return c.isError()?c:m.isError()?m:this._handleSignleObject(c,m)});return r===1&&n===1?u.get(0,0):u}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(c<0||l<1||l>10**10)return g.create(h.NUM);const f=1-Qs(c,l);return y.create(f)}}class go extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);return c.isError()?c:m.isError()?m:this._handleSignleObject(c,m)});return r===1&&n===1?u.get(0,0):u}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(c<0||c>1||l<1||l>10**10)return g.create(h.NUM);const f=no(1-c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class Co extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return u;let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return c;if(r*n===1||s*a===1)return u.isNull()||c.isNull()?g.create(h.VALUE):g.create(h.NA);if(r*n!==s*a)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?f:C?g.create(h.DIV_BY_ZERO):this._getResult(m,d,r,n)}_getResult(e,t,r,n){let s=0;for(let c=0;c<e.length;c++){if(t[c]===0)return g.create(h.DIV_BY_ZERO);s+=(e[c]-t[c])**2/t[c]}let a=(r-1)*(n-1);r===1?a=n-1:n===1&&(a=r-1);const u=1-Qs(s,a);return y.create(u)}}class _o extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);if(f.isError())return f;if(C.isError())return C;if(_.isError())return _;const{isError:E,errorObject:b,variants:R}=I(f,C,_);if(E)return b;const[p,V,S]=R,D=+p.getValue(),w=+V.getValue(),P=Math.floor(+S.getValue());if(D<=0||D>=1||w<=0||P<1)return g.create(h.NUM);const L=Math.abs(In(D/2,0,1)*w/Math.sqrt(P));return y.create(L)});return n===1&&s===1?l.get(0,0):l}}class Ao extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return u;let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return c;if((r*n===1||s*a===1)&&(u.isNull()||c.isNull()))return g.create(h.VALUE);if(r*n!==s*a)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?f:C?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){if(e.length===0)return g.create(h.DIV_BY_ZERO);const r=e.length;let n=0,s=0;for(let l=0;l<r;l++)n+=e[l],s+=t[l];const a=n/r,u=s/r;let c=0;for(let l=0;l<r;l++){const f=e[l]-a,m=t[l]-u;c+=f*m}return y.create(c/r)}}class Eo extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=+c.getValue(),d=+l.getValue();if(f<0||m<=0)return g.create(h.NUM);let C;return d?C=Rm(f,m):C=pm(f,m),y.create(C)}}class bo extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=Math.floor(+c.getValue()),d=Math.floor(+l.getValue());if(f<0||m<1||m>10**10||d<1||d>10**10)return g.create(h.NUM);const C=1-qs(f,m,d);return y.create(C)}}class yo extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=Math.floor(+c.getValue()),d=Math.floor(+l.getValue());if(f<0||f>1||m<1||m>10**10||d<1||d>10**10)return g.create(h.NUM);const C=so(1-f,m,d);return Number.isNaN(C)||!Number.isFinite(C)?g.create(h.NUM):y.create(C)}}class Ro extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variance:s,ns1:a}=this._getValues(e);if(r)return n;const{isError:u,errorObject:c,variance:l,ns1:f}=this._getValues(t);if(u)return c;let m=2*(1-qs(s/l,a,f));return m>1&&(m=2-m),y.create(m)}_getValues(e){let t=0,r=0;const n=e.isArray()?e.getRowCount():1,s=e.isArray()?e.getColumnCount():1;if(n===1&&s===1){const f=e.isArray()?e.get(0,0):e;return f.isError()?{isError:!0,errorObject:f,variance:t,ns1:r}:f.isNull()?{isError:!0,errorObject:g.create(h.VALUE),variance:t,ns1:r}:{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),variance:t,ns1:r}}const a=[];let u=0;for(let f=0;f<n;f++)for(let m=0;m<s;m++){const d=e.isArray()?e.get(f,m):e;if(d.isError())return{isError:!0,errorObject:d,variance:t,ns1:r};if(d.isNull()||d.isBoolean())continue;const C=d.getValue();M.isRealNum(C)&&(a.push(+C),u+=+C)}if(a.length<=1)return{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),variance:t,ns1:r};const c=u/a.length;let l=0;for(let f=0;f<a.length;f++)l+=(a[f]-c)**2;return r=a.length-1,t=l/r,t===0?{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),variance:t,ns1:r}:{isError:!1,errorObject:null,variance:t,ns1:r}}}class po extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSignleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(e,t,r,n);if(s)return a;const[c,l,f,m]=u,d=+c.getValue(),C=+l.getValue(),_=+f.getValue(),E=+m.getValue();if(d<0||C<=0||_<=0)return g.create(h.NUM);let b;return E?b=Nm(d,C,_):b=Vm(d,C,_),y.create(b)}}class No extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=+c.getValue(),d=+l.getValue();if(f<0||f>1||m<=0||d<=0)return g.create(h.NUM);const C=Om(f,m,d);return Number.isNaN(C)||!Number.isFinite(C)?g.create(h.NUM):y.create(C)}}class Vo extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=+c.getValue(),d=+l.getValue();if(f<=0||f>=1||d<=0)return g.create(h.NUM);const C=Dm(f,m,d);return Number.isNaN(C)||!Number.isFinite(C)?g.create(h.NUM):y.create(C)}}class Oo extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t={};let r=0,n=1;for(let s=0;s<e.length;s++){const a=e[s];if(a.isError())return a;if(a.isString()){const l=a.convertToNumberObjectValue();if(l.isError())return l}const u=a.isArray()?a.getRowCount():1,c=a.isArray()?a.getColumnCount():1;for(let l=0;l<u;l++)for(let f=0;f<c;f++){const m=a.isArray()?a.get(l,f):a;if(m.isError())return m;if(m.isNull()||m.isBoolean()||m.isString())continue;const d=m.getValue();M.isRealNum(d)&&(t[+d]?(t[+d].count++,t[+d].count>n&&(n=t[+d].count)):t[+d]={count:1,order:r++})}}return r===0||n===1?new g(h.NA):this._getResult(t,n)}_getResult(e,t){const r=Object.entries(e).filter(([n,{count:s}])=>s===t).sort((n,s)=>n[1].order-s[1].order).map(([n])=>+n);return y.create(r[0])}}class Mo extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSignleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(e,t,r,n);if(s)return a;const[c,l,f,m]=u,d=+c.getValue(),C=+l.getValue(),_=+f.getValue(),E=+m.getValue();if(_<=0)return g.create(h.NUM);let b;return E?b=Pr(d,C,_):b=uo(d,C,_),y.create(b)}}class So extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=+c.getValue(),d=+l.getValue();if(f<=0||f>=1||d<=0)return g.create(h.NUM);const C=In(f,m,d);return y.create(C)}}class Do extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSignleObject(r));return e.getRowCount()===1&&e.getColumnCount()===1?t.get(0,0):t}return this._handleSignleObject(e)}_handleSignleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=+s.getValue();if(a<=0||a>=1)return g.create(h.NUM);const u=In(a,0,1);return y.create(u)}}class wo extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=this._getValues(e);if(t.isArray()){const n=t.mapValue(s=>this._handleSingleObject(r,s));return n.getRowCount()===1&&n.getColumnCount()===1?n.get(0,0):n}return this._handleSingleObject(r,t)}_handleSingleObject(e,t){if(e instanceof g)return e;const{isError:r,errorObject:n,variants:s}=I(t);if(r)return n;const[a]=s,u=+a.getValue(),c=e.length;if(u<0||u>1)return g.create(h.NUM);const l=u*(c-1),f=Math.floor(l),m=l-f;if(m===0)return y.create(e[f]);const d=e[f]+m*(e[f+1]-e[f]);return y.create(d)}_getValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean()||u.isString())continue;const c=u.getValue();M.isRealNum(c)&&n.push(+c)}return n.length===0?g.create(h.NUM):n.sort((s,a)=>s-a)}}class Po extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=this._getValues(e);let s=r!=null?r:y.create(3);s.isNull()&&(s=y.create(3));const a=Math.max(t.isArray()?t.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(t.isArray()?t.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=O(a,u,t,g.create(h.NA)),l=O(a,u,s,g.create(h.NA)),f=c.mapValue((m,d,C)=>{const _=l.get(d,C);return m.isError()?m:_.isError()?_:this._handleSingleObject(n,m,_)});return a===1&&u===1?f.get(0,0):f}_handleSingleObject(e,t,r){if(e instanceof g)return e;const{isError:n,errorObject:s,variants:a}=I(t,r);if(n)return s;const[u,c]=a,l=+u.getValue(),f=Math.floor(+c.getValue()),m=e.length;if(m===0||l<e[0]||l>e[m-1])return g.create(h.NA);if(m===1)return l===e[0]?y.create(1):g.create(h.NA);let d=0,C=!1,_=0;for(;!C&&_<m;)l===e[_]?(d=_/(m-1),C=!0):l>e[_]&&_+1<m&&l<e[_+1]&&(d=(_+(l-e[_])/(e[_+1]-e[_]))/(m-1),C=!0),_++;return C?f<1?g.create(h.NUM):(d=ke(d,f),y.create(d)):g.create(h.NA)}_getValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean())continue;const c=u.getValue();M.isRealNum(c)&&n.push(+c)}return n.sort((s,a)=>s-a)}}class Lo extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=Math.floor(+u.getValue()),m=+c.getValue(),d=+l.getValue();if(f<0||m<0)return g.create(h.NUM);let C;return d?C=Pm(f,m):C=co(f,m),y.create(C)}}class xo extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=this._getValues(e);if(t.isArray()){const n=t.mapValue(s=>this._handleSingleObject(r,s));return n.getRowCount()===1&&n.getColumnCount()===1?n.get(0,0):n}return this._handleSingleObject(r,t)}_handleSingleObject(e,t){if(e instanceof g)return e;const{isError:r,errorObject:n,variants:s}=I(t);if(r)return n;const[a]=s,u=Math.floor(+a.getValue());if(u<0||u>4)return g.create(h.NUM);const c=u/4,l=e.length,f=c*(l-1),m=Math.floor(f),d=f-m;if(d===0)return y.create(e[m]);const C=e[m]+d*(e[m+1]-e[m]);return y.create(C)}_getValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean())continue;const c=u.getValue();M.isRealNum(c)&&n.push(+c)}return n.length===0?g.create(h.NUM):n.sort((s,a)=>s-a)}}class jo extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std()}}class Uo extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std(1)}}class vo extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);return c.isError()?c:m.isError()?m:this._handleSignleObject(c,m)});return r===1&&n===1?u.get(0,0):u}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(c<=0||c>1||l<1||l>10**10)return g.create(h.NUM);const f=Math.abs(zs(c/2,l));return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class To extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const{isError:s,errorObject:a,array1Values:u,array2Values:c}=this._handleArray1AndArray2(e,t),l=this._getArrayValues(e),f=this._getArrayValues(t),m=Math.max(r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),d=Math.max(r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),C=O(m,d,r,g.create(h.NA)),_=O(m,d,n,g.create(h.NA)),E=C.mapValue((b,R,p)=>{const V=_.get(R,p);if(e.isError())return e;if(t.isError())return t;if(b.isError())return b;if(V.isError())return V;const{isError:S,errorObject:D,variants:w}=I(b,V);if(S)return D;const[P,L]=w,T=Math.floor(+P.getValue()),B=Math.floor(+L.getValue());return![1,2].includes(T)||![1,2,3].includes(B)?g.create(h.NUM):B===1&&s?a:B!==1&&l instanceof g?l:B!==1&&f instanceof g?f:this._handleSignleObject(B===1?u:l,B===1?c:f,T,B)});return m===1&&d===1?E.get(0,0):E}_handleSignleObject(e,t,r,n){if(e.length<2||t.length<2)return g.create(h.DIV_BY_ZERO);const{isError:s,errorObject:a,x:u,degFreedom:c}=this._getTDistParamByArrayValues(e,t,n);if(s)return a;let l=Lr(-u,c);return r===2&&(l*=2),Number.isNaN(l)||!Number.isFinite(l)?g.create(h.NUM):y.create(l)}_getArrayValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()){if(t*r===1)return g.create(h.VALUE);continue}u.isBoolean()||u.isString()||n.push(+u.getValue())}return n}_handleArray1AndArray2(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return{isError:!0,errorObject:u,array1Values:[],array2Values:[]};let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return{isError:!0,errorObject:c,array1Values:[],array2Values:[]};if((r*n===1||s*a===1)&&(u.isNull()||c.isNull()))return{isError:!0,errorObject:g.create(h.VALUE),array1Values:[],array2Values:[]};if(r*n!==s*a)return{isError:!0,errorObject:g.create(h.NA),array1Values:[],array2Values:[]};const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?{isError:!0,errorObject:f,array1Values:[],array2Values:[]}:C||m.length<2?{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),array1Values:[],array2Values:[]}:{isError:!1,errorObject:null,array1Values:m,array2Values:d}}_getTDistParamByArrayValues(e,t,r){return r===1?this._getTDistParamByType1(e,t):r===2?this._getTDistParamByType2(e,t):this._getTDistParamByType3(e,t)}_getTDistParamByType1(e,t){const r=e.length;let n=0,s=0,a=0;for(let m=0;m<r;m++)n+=e[m],s+=t[m],a+=(e[m]-t[m])**2;const u=n-s,c=r*a-u**2,l=r-1;return c===0?{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),x:0,degFreedom:l}:{isError:!1,errorObject:null,x:Math.abs(u)*Math.sqrt(l/c),degFreedom:l}}_getTDistParamByType2(e,t){const r=e.length,n=t.length;let s=0,a=0;for(let E=0;E<r;E++)s+=e[E],a+=e[E]**2;let u=0,c=0;for(let E=0;E<n;E++)u+=t[E],c+=t[E]**2;const l=a-s**2/r,f=c-u**2/n,m=Math.sqrt(l+f);if(m===0)return{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),x:0,degFreedom:0};const d=r-1+n-1,C=Math.sqrt(r*n*d/(r+n));return{isError:!1,errorObject:null,x:Math.abs(s/r-u/n)/m*C,degFreedom:d}}_getTDistParamByType3(e,t){const r=e.length,n=t.length;let s=0,a=0;for(let _=0;_<r;_++)s+=e[_],a+=e[_]**2;let u=0,c=0;for(let _=0;_<n;_++)u+=t[_],c+=t[_]**2;const l=(a-s**2/r)/(r*(r-1)),f=(c-u**2/n)/(n*(n-1));if(l+f===0)return{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),x:0,degFreedom:0};const m=l/(l+f),d=Math.abs(s/r-u/n)/Math.sqrt(l+f),C=1/(m**2/(r-1)+(1-m)**2/(n-1));return{isError:!1,errorObject:null,x:d,degFreedom:C}}}class Bo extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var()}}class Io extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var(1)}}class Fo extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSignleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(e,t,r,n);if(s)return a;const[c,l,f,m]=u,d=+c.getValue(),C=+l.getValue(),_=+f.getValue(),E=+m.getValue();if(d<0||C<=0||_<=0)return g.create(h.NUM);const b=Math.exp(-((d/_)**C));let R;return E?R=1-b:R=C/_**C*d**(C-1)*b,Number.isNaN(R)||!Number.isFinite(R)?g.create(h.NUM):y.create(R)}}class ko extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=this._getArrayValues(e),s=Math.max(t.isArray()?t.getRowCount():1,r!=null&&r.isArray()?r.getRowCount():1),a=Math.max(t.isArray()?t.getColumnCount():1,r!=null&&r.isArray()?r.getColumnCount():1),u=O(s,a,t,g.create(h.NA)),c=r?O(s,a,r,g.create(h.NA)):void 0,l=u.mapValue((f,m,d)=>{if(n instanceof g)return n;if(f.isError())return f;const C=r?c.get(m,d):void 0;return C!=null&&C.isError()?C:n.length===0?g.create(h.NA):n.length===1?g.create(h.DIV_BY_ZERO):this._handleSignleObject(n,f,C)});return s===1&&a===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(t);if(n)return s;const[u]=a,c=+u.getValue(),l=e.length;let f=0,m=0;for(let E=0;E<l;E++)f+=e[E],m+=e[E]**2;let d=0;if(r!==void 0){const{isError:E,errorObject:b,variants:R}=I(r);if(E)return b;const[p]=R;d=+p.getValue()}else{const E=f/l;d=Math.sqrt((m-2*E*f+l*E**2)/(l-1))}if(d<=0)return g.create(h.NUM);const C=(f/l-c)/(d/Math.sqrt(l)),_=1-Pr(C,0,1);return Number.isNaN(_)||!Number.isFinite(_)?g.create(h.NUM):y.create(_)}_getArrayValues(e){const t=[],r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1;for(let s=0;s<r;s++)for(let a=0;a<n;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean()||u.isString())continue;const c=u.getValue();M.isRealNum(c)&&t.push(+c)}return t}}class xm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",5)}calculate(e,t,r,n,s){let a=n!=null?n:y.create(0),u=s!=null?s:y.create(1);a.isNull()&&(a=y.create(0)),u.isNull()&&(u=y.create(1));const c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,a.isArray()?a.getRowCount():1,u.isArray()?u.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,a.isArray()?a.getColumnCount():1,u.isArray()?u.getColumnCount():1),f=O(c,l,e,g.create(h.NA)),m=O(c,l,t,g.create(h.NA)),d=O(c,l,r,g.create(h.NA)),C=O(c,l,a,g.create(h.NA)),_=O(c,l,u,g.create(h.NA)),E=f.mapValue((b,R,p)=>{const V=m.get(R,p),S=d.get(R,p),D=C.get(R,p),w=_.get(R,p);return this._handleSignleObject(b,V,S,D,w)});return c===1&&l===1?E.get(0,0):E}_handleSignleObject(e,t,r,n,s){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(n.isError())return n;if(s.isError())return s;const{isError:a,errorObject:u,variants:c}=I(e,t,r,n,s);if(a)return u;const[l,f,m,d,C]=c,_=+l.getValue(),E=+f.getValue(),b=+m.getValue(),R=+d.getValue(),p=+C.getValue();if(E<=0||b<=0||_<R||_>p||R===p)return g.create(h.NUM);const V=to((_-R)/(p-R),E,b);return y.create(V)}}var le=(i=>(i.BETADIST="BETADIST",i.BETAINV="BETAINV",i.BINOMDIST="BINOMDIST",i.CHIDIST="CHIDIST",i.CHIINV="CHIINV",i.CHITEST="CHITEST",i.CONFIDENCE="CONFIDENCE",i.COVAR="COVAR",i.CRITBINOM="CRITBINOM",i.EXPONDIST="EXPONDIST",i.FDIST="FDIST",i.FINV="FINV",i.FTEST="FTEST",i.GAMMADIST="GAMMADIST",i.GAMMAINV="GAMMAINV",i.HYPGEOMDIST="HYPGEOMDIST",i.LOGINV="LOGINV",i.LOGNORMDIST="LOGNORMDIST",i.MODE="MODE",i.NEGBINOMDIST="NEGBINOMDIST",i.NORMDIST="NORMDIST",i.NORMINV="NORMINV",i.NORMSDIST="NORMSDIST",i.NORMSINV="NORMSINV",i.PERCENTILE="PERCENTILE",i.PERCENTRANK="PERCENTRANK",i.POISSON="POISSON",i.QUARTILE="QUARTILE",i.RANK="RANK",i.STDEV="STDEV",i.STDEVP="STDEVP",i.TDIST="TDIST",i.TINV="TINV",i.TTEST="TTEST",i.VAR="VAR",i.VARP="VARP",i.WEIBULL="WEIBULL",i.ZTEST="ZTEST",i))(le||{});class jm extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSignleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(e,t,r,n);if(s)return a;const[c,l,f,m]=u,d=Math.floor(+c.getValue()),C=Math.floor(+l.getValue()),_=Math.floor(+f.getValue()),E=Math.floor(+m.getValue());if(d<0||d>C||d>_||d<C-E+_||C<=0||C>E||_<=0||_>E||E<=0)return g.create(h.NUM);let b=Ks(d,C,_,E);return Number.isNaN(b)&&(b=0),y.create(b)}}class Um extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=+c.getValue(),d=+l.getValue();if(f<=0||d<=0)return g.create(h.NUM);const C=oo(f,m,d);return y.create(C)}}class vm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=Math.floor(+u.getValue()),m=Math.floor(+c.getValue()),d=+l.getValue();if(f<0||m<1||d<=0||d>=1)return g.create(h.NUM);const C=Zs(f,m,d);return y.create(C)}}class Tm extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSignleObject(r));return e.getRowCount()===1&&e.getColumnCount()===1?t.get(0,0):t}return this._handleSignleObject(e)}_handleSignleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=+s.getValue(),u=Pr(a,0,1);return y.create(u)}}class Bm extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3);A(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=e;n.isReferenceObject()&&(n=n.toArrayValueObject());const{refHasError:s,refErrorObject:a,refNumbers:u}=this._checkRefReferenceObject(t);let c=r!=null?r:y.create(0);c.isReferenceObject()&&(c=c.toArrayValueObject());const l=Math.max(n.isArray()?n.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(n.isArray()?n.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=O(l,f,n,g.create(h.NA)),d=O(l,f,c,g.create(h.NA)),C=m.map((_,E,b)=>{const R=d.get(E,b);if(!e.isReferenceObject()&&e.isNull())return g.create(h.NA);if(s)return a;if(R.isError())return R;const p=+_.getValue(),V=+R.getValue();if(Number.isNaN(p)||Number.isNaN(V))return g.create(h.VALUE);const D=u.sort((w,P)=>V?w-P:P-w).indexOf(p);return D===-1?g.create(h.NA):y.create(D+1)});return l===1&&f===1?C.get(0,0):C}_checkRefReferenceObject(e){let t=!1,r=g.create(h.NA);const n=[];return e.isReferenceObject()?(e.toArrayValueObject().iterator(a=>{const u=a;if(u.isError())return t=!0,r=u,!1;if(u.isNull()||u.isBoolean())return!0;const c=+u.getValue();if(Number.isNaN(c))return!0;n.push(c)}),{refHasError:t,refErrorObject:r,refNumbers:n}):{refHasError:!0,refErrorObject:r,refNumbers:n}}}class Im extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=Math.floor(+c.getValue()),d=Math.floor(+l.getValue());if(f<0||m<1||m>10**10||d<1||d>2)return g.create(h.NUM);let C=Lr(-f,m);return d===2&&(C*=2),Number.isNaN(C)||!Number.isFinite(C)?g.create(h.NUM):y.create(C)}}const $o=[[xm,le.BETADIST],[lo,le.BETAINV],[fo,le.BINOMDIST],[ho,le.CHIDIST],[go,le.CHIINV],[Co,le.CHITEST],[_o,le.CONFIDENCE],[Ao,le.COVAR],[mo,le.CRITBINOM],[Eo,le.EXPONDIST],[bo,le.FDIST],[yo,le.FINV],[Ro,le.FTEST],[po,le.GAMMADIST],[No,le.GAMMAINV],[jm,le.HYPGEOMDIST],[Um,le.LOGNORMDIST],[Vo,le.LOGINV],[Oo,le.MODE],[vm,le.NEGBINOMDIST],[Mo,le.NORMDIST],[So,le.NORMINV],[Tm,le.NORMSDIST],[Do,le.NORMSINV],[wo,le.PERCENTILE],[Po,le.PERCENTRANK],[Lo,le.POISSON],[xo,le.QUARTILE],[Bm,le.RANK],[Uo,le.STDEV],[jo,le.STDEVP],[Im,le.TDIST],[vo,le.TINV],[To,le.TTEST],[Io,le.VAR],[Bo,le.VARP],[Fo,le.WEIBULL],[ko,le.ZTEST]],Yo=[];var Ho=(i=>(i.CUBEKPIMEMBER="CUBEKPIMEMBER",i.CUBEMEMBER="CUBEMEMBER",i.CUBEMEMBERPROPERTY="CUBEMEMBERPROPERTY",i.CUBERANKEDMEMBER="CUBERANKEDMEMBER",i.CUBESET="CUBESET",i.CUBESETCOUNT="CUBESETCOUNT",i.CUBEVALUE="CUBEVALUE",i))(Ho||{});class Fm extends N{isCustom(){return!0}}function We(i){const o=[];if(i.isError())return{isError:!0,errorObject:i,databaseValues:o};const e=i.isArray()?i.getRowCount():1,t=i.isArray()?i.getColumnCount():1;if(e<2)return{isError:!0,errorObject:g.create(h.VALUE),databaseValues:o};for(let r=0;r<e;r++){const n=[];for(let s=0;s<t;s++){const a=i.get(r,s);if(a.isNull()){n.push(null);continue}let u=`${a.getValue()}`;if(a.isBoolean()&&(u=u.toLocaleUpperCase()),a.isNumber()||M.isRealNum(u)){n.push(+u);continue}n.push(u)}o.push(n)}return{isError:!1,errorObject:null,databaseValues:o}}function Qe(i,o){let e=-1;if(i.isError())return{isError:!0,errorObject:i,fieldIndex:e};const t=i.isArray()?i.getRowCount():1,r=i.isArray()?i.getColumnCount():1;if(t>1||r>1)return{isError:!0,errorObject:g.create(h.VALUE),fieldIndex:e};const n=i.isArray()?i.get(0,0):i;let s=`${n.getValue()}`;if(n.isNull()?s=0:n.isBoolean()?s=n.getValue()?1:0:(n.isNumber()||M.isRealNum(s))&&(s=Math.floor(+s)),typeof s=="number"){if(s<1||s>o[0].length)return{isError:!0,errorObject:g.create(h.VALUE),fieldIndex:e};e=s-1}else if(e=o[0].findIndex(a=>a===null?!1:`${a}`.toLocaleLowerCase()===s.toLocaleLowerCase()),e===-1)return{isError:!0,errorObject:g.create(h.VALUE),fieldIndex:e};return{isError:!1,errorObject:null,fieldIndex:e}}function qe(i){const o=[];if(i.isError())return{isError:!0,errorObject:i,criteriaValues:o};const e=i.isArray()?i.getRowCount():1,t=i.isArray()?i.getColumnCount():1;if(e<2)return{isError:!0,errorObject:g.create(h.VALUE),criteriaValues:o};for(let r=0;r<e;r++){const n=[];for(let s=0;s<t;s++){const a=i.get(r,s);if(a.isNull()){n.push(null);continue}const u=`${a.getValue()}`;if(a.isBoolean()){n.push(a.getValue()?1:0);continue}if(a.isNumber()||M.isRealNum(u)){n.push(+u);continue}n.push(u)}o.push(n)}return{isError:!1,errorObject:null,criteriaValues:o}}function Xe(i,o,e){const t=i.length,r=i[0].length,n={};let s=!1;for(let a=1;a<t;a++){let u=!0;for(let c=0;c<r;c++){const l=i[a][c];if(l===null)continue;let f=n[c];if(f===void 0){const m=i[0][c];f=o[0].findIndex(d=>d===null||m===null?!1:`${d}`.toLocaleLowerCase()===`${m}`.toLocaleLowerCase()),n[c]=f}if(f===-1&&(typeof l=="string"||l===0)){u=!1;break}else if(f>-1){const m=o[e][f];if(m===null){u=!1;break}const[d,C]=mr(`${l}`);if(!lt.create(`${m}`).compare(C,d).getValue()){u=!1;break}}}if(u){s=!0;break}}return s}class km extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;let C=0,_=0;for(let E=1;E<a.length;E++){const b=a[E][l];typeof b=="number"&&Xe(d,a,E)&&(C+=b,_++)}return _===0?g.create(h.DIV_BY_ZERO):y.create(C/_)}}class $m extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;let C=0;for(let _=1;_<a.length;_++)typeof a[_][l]=="number"&&Xe(d,a,_)&&C++;return y.create(C)}}class Ym extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;let C=0;for(let _=1;_<a.length;_++){const E=a[_][l];E!=null&&Xe(d,a,_)&&C++}return y.create(C)}}class Hm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;let C=0,_=0;for(let E=1;E<a.length;E++){const b=a[E][l];b!=null&&Xe(d,a,E)&&(C++,_=E)}return C===0?g.create(h.VALUE):C>1?g.create(h.NUM):e.get(_,l)}}class Gm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;let C=-1/0,_=0;for(let E=1;E<a.length;E++){const b=a[E][l];typeof b=="number"&&Xe(d,a,E)&&(C=Math.max(C,b),_++)}return _===0?y.create(0):y.create(C)}}class Wm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;let C=1/0,_=0;for(let E=1;E<a.length;E++){const b=a[E][l];typeof b=="number"&&Xe(d,a,E)&&(C=Math.min(C,b),_++)}return _===0?y.create(0):y.create(C)}}class Qm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;let C=1,_=0;for(let E=1;E<a.length;E++){const b=a[E][l];typeof b=="number"&&Xe(d,a,E)&&(C*=b,_++)}return _===0?y.create(0):y.create(C)}}class qm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;const C=[];let _=0,E=0;for(let V=1;V<a.length;V++){const S=a[V][l];typeof S=="number"&&Xe(d,a,V)&&(C.push(S),_+=S,E++)}if(E<=1)return g.create(h.DIV_BY_ZERO);const b=_/E;let R=0;for(let V=0;V<E;V++)R+=(C[V]-b)**2;const p=Math.sqrt(R/(E-1));return y.create(p)}}class Xm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;const C=[];let _=0,E=0;for(let V=1;V<a.length;V++){const S=a[V][l];typeof S=="number"&&Xe(d,a,V)&&(C.push(S),_+=S,E++)}if(E===0)return g.create(h.DIV_BY_ZERO);const b=_/E;let R=0;for(let V=0;V<E;V++)R+=(C[V]-b)**2;const p=Math.sqrt(R/E);return y.create(p)}}class Km extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;let C=0;for(let _=1;_<a.length;_++){const E=a[_][l];typeof E=="number"&&Xe(d,a,_)&&(C+=E)}return y.create(C)}}class Zm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;const C=[];let _=0,E=0;for(let V=1;V<a.length;V++){const S=a[V][l];typeof S=="number"&&Xe(d,a,V)&&(C.push(S),_+=S,E++)}if(E<=1)return g.create(h.DIV_BY_ZERO);const b=_/E;let R=0;for(let V=0;V<E;V++)R+=(C[V]-b)**2;const p=R/(E-1);return y.create(p)}}class zm extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:a}=We(e);if(n)return s;const{isError:u,errorObject:c,fieldIndex:l}=Qe(t,a);if(u)return c;const{isError:f,errorObject:m,criteriaValues:d}=qe(r);if(f)return m;const C=[];let _=0,E=0;for(let V=1;V<a.length;V++){const S=a[V][l];typeof S=="number"&&Xe(d,a,V)&&(C.push(S),_+=S,E++)}if(E===0)return g.create(h.DIV_BY_ZERO);const b=_/E;let R=0;for(let V=0;V<E;V++)R+=(C[V]-b)**2;const p=R/E;return y.create(p)}}var Te=(i=>(i.DAVERAGE="DAVERAGE",i.DCOUNT="DCOUNT",i.DCOUNTA="DCOUNTA",i.DGET="DGET",i.DMAX="DMAX",i.DMIN="DMIN",i.DPRODUCT="DPRODUCT",i.DSTDEV="DSTDEV",i.DSTDEVP="DSTDEVP",i.DSUM="DSUM",i.DVAR="DVAR",i.DVARP="DVARP",i))(Te||{});const Go=[[km,Te.DAVERAGE],[$m,Te.DCOUNT],[Ym,Te.DCOUNTA],[Hm,Te.DGET],[Gm,Te.DMAX],[Wm,Te.DMIN],[Qm,Te.DPRODUCT],[qm,Te.DSTDEV],[Xm,Te.DSTDEVP],[Km,Te.DSUM],[Zm,Te.DVAR],[zm,Te.DVARP]];var ye=(i=>(i.DATE="DATE",i.DATEDIF="DATEDIF",i.DATEVALUE="DATEVALUE",i.DAY="DAY",i.DAYS="DAYS",i.DAYS360="DAYS360",i.EDATE="EDATE",i.EOMONTH="EOMONTH",i.HOUR="HOUR",i.ISOWEEKNUM="ISOWEEKNUM",i.MINUTE="MINUTE",i.MONTH="MONTH",i.NETWORKDAYS="NETWORKDAYS",i.NETWORKDAYS_INTL="NETWORKDAYS.INTL",i.NOW="NOW",i.SECOND="SECOND",i.TIME="TIME",i.TIMEVALUE="TIMEVALUE",i.TODAY="TODAY",i.WEEKDAY="WEEKDAY",i.WEEKNUM="WEEKNUM",i.WORKDAY="WORKDAY",i.WORKDAY_INTL="WORKDAY.INTL",i.YEAR="YEAR",i.YEARFRAC="YEARFRAC",i))(ye||{});const ea="yyyy/mm/dd;@",Jm="yyyy/mm/dd hh:mm",eh="h:mm A/P";function Ee(i){const o=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28)),t=Date.UTC(i.getFullYear(),i.getMonth(),i.getDate());let r=(t-o.getTime())/(1e3*3600*24);return t>e.getTime()&&(r+=1),Math.floor(r)+1}function Fn(i){const o=new Date(Date.UTC(1900,0,1,0,0,0)),e=new Date(Date.UTC(1900,1,28,0,0,0));let r=(i.getTime()-o.getTime())/(1e3*3600*24);return i>e&&(r+=1),r+1}function re(i){const o=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28));let t=Math.floor(i)-1;return t>(e.getTime()-o.getTime())/(1e3*3600*24)&&(t-=1),new Date(o.getTime()+t*(1e3*3600*24))}function ta(i){const o=new Date(Date.UTC(1900,0,1,0,0,0)),e=new Date(Date.UTC(1900,1,28,0,0,0));let t=i-1;return t>(e.getTime()-o.getTime())/(1e3*3600*24)&&(t-=1),t<0&&(t=i),new Date(o.getTime()+t*(1e3*3600*24))}function ra(i){if(!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(i))return!1;const e=i.replace(/-/g,"/").replace(/T.+/,""),t=new Date(`${e}`);if(Number.isNaN(t.getTime()))return!1;const r=t.getFullYear(),n=(t.getMonth()+1).toString().padStart(2,"0"),s=t.getDate().toString().padStart(2,"0"),a=`${r}-${n}-${s}`;return i.replace(/\//g,"-").split("-").map(c=>c.padStart(2,"0")).join("-")===a}function Ya(i){return M.numfmt.parseDate(i)}function Wo(i){return M.numfmt.parseValue(i)}function Ha(i){return M.numfmt.parseTime(i)}function Qo(i){return M.numfmt.isDate(i)}const qo={1:[6,0],2:[0,1],3:[1,2],4:[2,3],5:[3,4],6:[4,5],7:[5,6],11:[0],12:[1],13:[2],14:[3],15:[4],16:[5],17:[6]};function pr(i){return!!(typeof i=="string"&&/^[0|1]{7}/.test(i)||qo[Number(i)])}function Xo(i){if(!pr(i))return[];if(typeof i=="string"&&/^[0|1]{7}/.test(i)){const o=[];for(let e=1;e<=i.length;e++)`${i[e-1]}`=="1"&&(e===i.length?o.push(0):o.push(e));return o}return qo[Number(i)]||[]}function ln(i,o,e=1,t){const r=Xo(e),n=Math.floor(i),s=Math.floor(o),a=s>n?n:s;let u=0;const c=Math.abs(Math.floor(o)-Math.floor(i))+1;for(let l=0;l<c;l++){const f=a+l;if(t&&t.length>0&&t.some(d=>Math.floor(d)===f))continue;const m=Gt(f);r.includes(m)||u++}return s>n?u:-u}function fn(i,o,e=1,t){const r=Xo(e),n=Math.floor(i);let s=n,a=Math.abs(o);for(let u=1;u<=a;u++){const c=o<0?n-u:n+u;if(c<0)return g.create(h.NUM);if(t&&t.length>0&&t.some(f=>Math.floor(f)===c)){a++;continue}const l=Gt(c);if(r.includes(l)){a++;continue}s=c}return s}function F(i){if(i.isError())return i;const o=i.getValue();if(i.isString()){let e;if(Ya(`${o}`))e=Ya(`${o}`).v;else if(Ha(`${o}`))e=Ha(`${o}`).v;else if(M.isRealNum(o))e=+o;else return g.create(h.VALUE);return e instanceof Date&&(e=Fn(e)),+e<0||+e>2958465?g.create(h.NUM):+e}else{const e=+i.getValue();return e<0||e>2958465?g.create(h.NUM):e}}function Gt(i){const o=Math.floor(i)===60;let e=re(i);const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())).getTime(),r=new Date(Date.UTC(1900,1,28)).getTime();return!o&&t<=r&&(e=new Date(t-24*3600*1e3)),new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())).getUTCDay()}function Ce(i,o,e){switch(e){case 0:return th(i,o);case 1:return rh(i,o);case 2:return{days:Math.abs(o-i),yearDays:360};case 3:return{days:Math.abs(o-i),yearDays:365};case 4:return nh(i,o);default:return{days:Math.abs(o-i),yearDays:365}}}function th(i,o){const e=re(i),t=i>0?e.getUTCFullYear():1900,r=i>0?e.getUTCMonth()+1:1;let n=i>0?e.getUTCDate():0,s=re(o),a=o>0?s.getUTCFullYear():1900,u=o>0?s.getUTCMonth()+1:1,c=o>0?s.getUTCDate():0;r===2?re(i+1).getUTCMonth()+1===3&&(n=30):n===31&&(n=30),c===31&&(n<30?(s=re(o+1),a=s.getUTCFullYear(),u=s.getUTCMonth()+1,c=s.getUTCDate()):c=30);const l=(a-t)*360,f=o>=i?30-n:-n,m=o>=i?c:c-30,d=(o>=i?u-r-1:u-r+1)*30;return{days:Math.abs(l+f+m+d),yearDays:360}}function rh(i,o){const e=re(i),t=i>0?e.getUTCFullYear():1900,r=re(o),n=o>0?r.getUTCFullYear():1900,s=Math.abs(o-i),a=Math.abs(n-t)+1;let u,c;if(n<t){const l=new Date(Date.UTC(n,0,1)),f=new Date(Date.UTC(t,11,31));u=Ee(l),c=Ee(f),n===1900&&(u+=1)}else{const l=new Date(Date.UTC(t,0,1)),f=new Date(Date.UTC(n,11,31));u=Ee(l),c=Ee(f),t===1900&&(u+=1)}return{days:s,yearDays:(c-u+1)/a}}function nh(i,o){const e=re(i),t=i>0?e.getUTCFullYear():1900,r=i>0?e.getUTCMonth()+1:1;let n=i>0?e.getUTCDate():0;const s=re(o),a=o>0?s.getUTCFullYear():1900,u=o>0?s.getUTCMonth()+1:1;let c=o>0?s.getUTCDate():0;n===31&&(n=30),c===31&&(c=30);const l=(a-t)*360,f=o>=i?30-n:-n,m=o>=i?c:c-30,d=(o>=i?u-r-1:u-r+1)*30;return{days:Math.abs(l+f+m+d),yearDays:360}}function sh(i){return i%4===0&&i%100!==0||i%400===0}function ah(i){return i%4===0&&i%100!==0||i%400===0||i===1900}const ih=[31,29,31,30,31,30,31,31,30,31,30,31],oh=[31,28,31,30,31,30,31,31,30,31,30,31];function xr(i,o){return sh(i)?ih[o]:oh[o]}function kn(i){return ah(i)?366:365}function Ko(i,o){switch(o){case 0:case 2:case 4:return 360;case 1:return kn(re(i).getUTCFullYear());case 3:return 365;default:return-1}}function or(i,o,e){return xr(i,o)===e}function ur(i,o){let e=i.getUTCFullYear(),t=i.getUTCMonth();const r=i.getUTCDate();return or(e,t,r)?(i.setUTCDate(1),i.setUTCMonth(i.getUTCMonth()+o),e=i.getUTCFullYear(),t=i.getUTCMonth(),i.setUTCDate(xr(e,t))):i.setUTCMonth(i.getUTCMonth()+o),i}class uh extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e),u=O(n,s,t),c=O(n,s,r);return a.map((l,f,m)=>{const d=u.get(f,m)||ae.create(),C=c.get(f,m)||ae.create();if(l.isError())return l;if(d.isError())return d;if(C.isError())return C;if(l.isString()||d.isString()||C.isString())return g.create(h.VALUE);let _=+l.getValue();const E=Math.floor(+d.getValue()),b=+C.getValue();if(_<0||_>9999)return g.create(h.NUM);_>=0&&_<1899&&(_+=1900);const R=new Date(_,E-1,b),p=Ee(R);return p<0?g.create(h.NUM):y.create(p,ea)})}}class ch extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){let n=e,s=t,a=r;if(n.isArray()&&(n=n.get(0,0)),s.isArray()&&(s=s.get(0,0)),a.isArray()&&(a=a.get(0,0)),n.isError())return n;if(s.isError())return s;if(a.isError())return a;const u=F(n);if(typeof u!="number")return u;const c=F(s);return typeof c!="number"?c:c<u||!a.isString()?g.create(h.NUM):this._getResultByUnit(u,c,a)}_getResultByUnit(e,t,r){const n=re(e),s=n.getUTCFullYear(),a=n.getUTCMonth()+1,u=n.getUTCDate(),c=re(t),l=c.getUTCFullYear(),f=c.getUTCMonth()+1,m=c.getUTCDate(),d=`${r.getValue()}`.toLocaleUpperCase();let C=0,_;switch(d){case"Y":C=l-s,(f<a||f===a&&m<u)&&(C-=1);break;case"M":C=(l-s)*12+f-a,m<u&&(C-=1);break;case"D":C=Math.floor(t)-Math.floor(e);break;case"MD":C=m-u,m<u&&(_=new Date(Date.UTC(l,f-1,0)),C+=xr(_.getUTCFullYear(),_.getUTCMonth()));break;case"YM":C=f-a,(f<a||f===a&&m<u)&&(C+=12),m<u&&(C-=1);break;case"YD":_=new Date(Date.UTC(s,f-1,m)),(f<a||f===a&&m<u)&&(_=new Date(Date.UTC(s+1,f-1,m))),C=Math.floor(Ee(_))-Math.floor(e);break;default:return g.create(h.NUM)}return y.create(C)}}class lh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=Wo(t);if(r){let{v:n,z:s}=r;if(s&&Qo(s))return n instanceof Date&&(n=Fn(n)),y.create(Math.trunc(+n))}}return g.create(h.VALUE)}}class fh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t;const r=e.getValue();if(e.isString()){if(!ra(`${r}`))return g.create(h.VALUE);t=new Date(`${r}`)}else{const a=+e.getValue();if(a<0)return g.create(h.NUM);if(a===0)return y.create(0);t=re(a)}const n=t.getDate();return y.create(n)}}class mh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e),a=O(r,n,t),u=s.map((c,l,f)=>{const m=a.get(l,f);if(c.isError())return c;if(m.isError())return m;const d=F(c);if(typeof d!="number")return d;const C=F(m);if(typeof C!="number")return C;const _=Math.floor(d)-Math.floor(C);return y.create(_)});return r===1&&n===1?u.get(0,0):u}}class hh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:k.create(!1);if(e.isError())return e;if(t.isError())return t;if(n.isError())return n;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,n,g.create(h.NA)),f=u.map((m,d,C)=>{const _=c.get(d,C);let E=l.get(d,C);if(m.isError())return m;const b=F(m);if(typeof b!="number")return b;if(_.isError())return _;const R=F(_);if(typeof R!="number")return R;if(E.isString()&&(E=E.convertToNumberObjectValue()),E.isError())return E;const p=+E.getValue(),{days:V}=Ce(b,R,p?4:0),S=R>=b?V:-V;return y.create(S)});return s===1&&a===1?f.get(0,0):f}}class gh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e),a=O(r,n,t);return s.map((u,c,l)=>{const f=a.get(c,l)||ae.create();if(u.isError())return u;if(f.isError())return f;if(u.isString()||u.isBoolean()||f.isString()||f.isBoolean())return g.create(h.VALUE);const m=+u.getValue();if(m<0)return g.create(h.NUM);const d=Math.floor(+f.getValue()),C=re(m),_=C.getUTCFullYear(),E=C.getUTCMonth()+d,b=C.getUTCDate(),R=new Date(Date.UTC(_,E,b)),p=Ee(R);return y.create(p,ea)})}}class dh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e,n=t;if(r.isArray()){const d=r.getRowCount(),C=r.getColumnCount();if(d>1||C>1)return g.create(h.VALUE);r=r.get(0,0)}if(n.isArray()){const d=n.getRowCount(),C=n.getColumnCount();if(d>1||C>1)return g.create(h.VALUE);n=n.get(0,0)}if(r.isError())return r;if(n.isError())return n;const s=F(r);if(typeof s!="number")return s;if(n.isBoolean())return g.create(h.VALUE);const a=re(s),u=s>0?a.getUTCFullYear():1900,c=s>0?a.getUTCMonth():0,l=Math.floor(+n.getValue());if(Number.isNaN(l))return g.create(h.VALUE);const f=new Date(Date.UTC(u,c+l+1,0)),m=Ee(f);return y.create(m)}}class Ch extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=F(e);if(typeof t!="number")return t;if(t===0)return y.create(0);const n=ta(t).getUTCHours();return y.create(n)}}class _h extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=F(e);if(typeof t!="number")return t;const r=re(t),n=t>0?r.getUTCFullYear():1900;let s=new Date(Date.UTC(n,0,1)),a=Ee(s),u=Gt(a),c;u<1?c=a+1:u<=4?c=a-(u-1):c=a+(11-u),t<c&&(s=new Date(Date.UTC(n-1,0,1)),a=Ee(s),u=Gt(a),u<1?c=a+1:u<=4?c=a-(u-1):c=a+(11-u));const l=Math.ceil((t-c+1)/7);return y.create(l)}}class Ah extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=F(e);if(typeof t!="number")return t;if(t===0)return y.create(0);const n=ta(t).getUTCMinutes();return y.create(n)}}class Eh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!ra(`${r}`))return g.create(h.VALUE);t=new Date(`${r}`)}else{const a=+e.getValue();if(a<0)return g.create(h.NUM);if(a===0)return y.create(1);t=re(a)}const n=t.getUTCMonth()+1;return y.create(n)}}class bh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){let n=e,s=t;if(n.isArray()){const l=n.getRowCount(),f=n.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(s.isArray()){const l=s.getRowCount(),f=s.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);s=s.get(0,0)}if(s.isError())return s;if(r!=null&&r.isError())return r;if(n.isBoolean()||s.isBoolean())return g.create(h.VALUE);const a=F(n);if(typeof a!="number")return a;const u=F(s);if(typeof u!="number")return u;if(r)return this._getResultByHolidays(a,u,r);const c=ln(a,u);return y.create(c)}_getResultByHolidays(e,t,r){const n=[];if(r!=null&&r.isArray()){const a=r.getRowCount(),u=r.getColumnCount();for(let c=0;c<a;c++)for(let l=0;l<u;l++){const f=r.get(c,l);if(f.isBoolean())return g.create(h.VALUE);const m=F(f);if(typeof m!="number")return m;n.push(m)}}else{if(r.isBoolean())return g.create(h.VALUE);const a=F(r);if(typeof a!="number")return a;n.push(a)}const s=ln(e,t,1,n);return y.create(s)}}class yh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",4)}calculate(e,t,r,n){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:n!=null&&n.isError()?n:r!=null&&r.isArray()?r.map(s=>this._handleSingleObject(e,t,s,n)):this._handleSingleObject(e,t,r,n)}_handleSingleObject(e,t,r,n){let s=e,a=t;if(s.isArray()){const m=s.getRowCount(),d=s.getColumnCount();if(m>1||d>1)return g.create(h.VALUE);s=s.get(0,0)}if(s.isError())return s;if(a.isArray()){const m=a.getRowCount(),d=a.getColumnCount();if(m>1||d>1)return g.create(h.VALUE);a=a.get(0,0)}if(a.isError())return a;let u=1;if(r){if(u=r.getValue(),r.isBoolean()&&(u=+u),r.isString()&&!pr(u))return g.create(h.VALUE);if(!pr(u))return g.create(h.NUM)}if(s.isBoolean()||a.isBoolean())return g.create(h.VALUE);const c=F(s);if(typeof c!="number")return c;const l=F(a);if(typeof l!="number")return l;if(n)return this._getResultByHolidays(c,l,u,n);const f=ln(c,l,u);return y.create(f)}_getResultByHolidays(e,t,r,n){const s=[];if(n!=null&&n.isArray()){const u=n.getRowCount(),c=n.getColumnCount();for(let l=0;l<u;l++)for(let f=0;f<c;f++){const m=n.get(l,f);if(m.isBoolean())return g.create(h.VALUE);const d=F(m);if(typeof d!="number")return d;s.push(d)}}else{if(n.isBoolean())return g.create(h.VALUE);const u=F(n);if(typeof u!="number")return u;s.push(u)}const a=ln(e,t,r,s);return y.create(a)}}class Rh extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",0)}calculate(){const e=new Date,t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())),r=Fn(t);return y.create(r,Jm)}}class ph extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=F(e);if(typeof t!="number")return t;if(t===0)return y.create(0);const n=ta(t).getUTCSeconds();return y.create(n)}}class Nh extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e),u=O(n,s,t),c=O(n,s,r);return a.map((l,f,m)=>this._calculateTime(l,u,c,f,m))}_calculateTime(e,t,r,n,s){let a=e,u=t.get(n,s)||ae.create(),c=r.get(n,s)||ae.create();if((a.isString()||a.isBoolean())&&(a=a.convertToNumberObjectValue()),(u.isString()||u.isBoolean())&&(u=u.convertToNumberObjectValue()),(c.isString()||c.isBoolean())&&(c=c.convertToNumberObjectValue()),a.isError())return a;if(u.isError())return u;if(c.isError())return c;let l=Math.floor(+a.getValue()),f=Math.floor(+u.getValue()),m=Math.floor(+c.getValue());if(l<0||f<0||m<0||l>32767||f>32767||m>32767)return g.create(h.NUM);f+=Math.floor(m/60),m%=60,l+=Math.floor(f/60),f%=60,l%=24;const C=(l*3600+f*60+m)/86400;return y.create(C,eh)}}class Vh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=Wo(t);if(r){let{v:n,z:s}=r;if(s&&Qo(s))return n instanceof Date&&(n=Fn(n)),y.create(Wl(+n))}}return g.create(h.VALUE)}}class Oh extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",0)}calculate(){const e=Ee(new Date);return y.create(e,ea)}}class Mh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2);A(this,"_returnTypeMap",{1:[1,2,3,4,5,6,7],2:[7,1,2,3,4,5,6],3:[6,0,1,2,3,4,5],11:[7,1,2,3,4,5,6],12:[6,7,1,2,3,4,5],13:[5,6,7,1,2,3,4],14:[4,5,6,7,1,2,3],15:[3,4,5,6,7,1,2],16:[2,3,4,5,6,7,1],17:[1,2,3,4,5,6,7]})}calculate(e,t){const r=t!=null?t:y.create(1);if(e.isError())return e;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.map((l,f,m)=>{const d=u.get(f,m);return this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){let r=t;if(e.isError())return e;if(r.isError())return r;const n=F(e);if(typeof n!="number")return n;if(r.isString()&&(r=r.convertToNumberObjectValue(),r.isError()))return r;const s=Math.floor(+r.getValue());if(!this._returnTypeMap[s])return g.create(h.NUM);const a=Gt(n),u=this._returnTypeMap[s][a];return y.create(u)}}class Sh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2);A(this,"_returnTypeMap",{1:0,2:1,11:1,12:2,13:3,14:4,15:5,16:6,17:0,21:4})}calculate(e,t){let r=e,n=t!=null?t:y.create(1);if(r.isArray()){const u=r.getRowCount(),c=r.getColumnCount();if(u>1||c>1)return g.create(h.VALUE);r=r.get(0,0)}if(r.isError())return r;if(n.isArray()){const u=n.getRowCount(),c=n.getColumnCount();if(u>1||c>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(r.isBoolean())return g.create(h.VALUE);const s=F(r);if(typeof s!="number")return s;if(n.isBoolean())return g.create(h.VALUE);const a=Math.floor(+n.getValue());return Number.isNaN(a)?g.create(h.VALUE):a in this._returnTypeMap?this._getResult(s,a):g.create(h.NUM)}_getResult(e,t){const r=re(e),n=e>0?r.getUTCFullYear():1900;let s=new Date(Date.UTC(n,0,1)),a=Ee(s),u=Gt(a),c;if(t===21)u<1?c=a+1:u<=4?c=a-(u-1):c=a+(11-u),e<c&&(s=new Date(Date.UTC(n-1,0,1)),a=Ee(s),u=Gt(a),u<1?c=a+1:u<=4?c=a-(u-1):c=a+(11-u));else{const f=this._returnTypeMap[t];u<f?c=a-(u+7-f):c=a-(u-f)}const l=Math.ceil((e-c+1)/7);return y.create(l)}}class Dh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){let n=e,s=t;if(n.isArray()){const l=n.getRowCount(),f=n.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(s.isArray()){const l=s.getRowCount(),f=s.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);s=s.get(0,0)}if(s.isError())return s;if(r!=null&&r.isError())return r;if(n.isBoolean()||s.isBoolean())return g.create(h.VALUE);const a=F(n);if(typeof a!="number")return a;const u=+s.getValue();if(Number.isNaN(u))return g.create(h.VALUE);if(r)return this._getResultByHolidays(a,u,r);const c=fn(a,u);return typeof c!="number"?c:y.create(c)}_getResultByHolidays(e,t,r){const n=[];if(r!=null&&r.isArray()){const a=r.getRowCount(),u=r.getColumnCount();for(let c=0;c<a;c++)for(let l=0;l<u;l++){const f=r.get(c,l);if(f.isBoolean())return g.create(h.VALUE);const m=F(f);if(typeof m!="number")return m;n.push(m)}}else{if(r.isBoolean())return g.create(h.VALUE);const a=F(r);if(typeof a!="number")return a;n.push(a)}const s=fn(e,t,1,n);return typeof s!="number"?s:y.create(s)}}class wh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",4)}calculate(e,t,r,n){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:n!=null&&n.isError()?n:r!=null&&r.isArray()?r.map(s=>this._handleSingleObject(e,t,s,n)):this._handleSingleObject(e,t,r,n)}_handleSingleObject(e,t,r,n){const s=r!=null?r:y.create(1),a=this._checkArrayError(e);if(a.isError())return a;const u=this._checkArrayError(t);if(u.isError())return u;if(a.isBoolean()||u.isBoolean())return g.create(h.VALUE);const c=F(e);if(typeof c!="number")return c;const l=+t.getValue();if(Number.isNaN(l))return g.create(h.VALUE);let f=s.getValue();if(s.isBoolean()&&(f=+f),s.isString()&&(!pr(f)||f==="1111111"))return g.create(h.VALUE);if(!pr(f))return g.create(h.NUM);if(n)return this._getResultByHolidays(c,l,f,n);const m=fn(c,l,f);return typeof m!="number"?m:y.create(m)}_checkArrayError(e){let t=e;if(t.isArray()){const r=t.getRowCount(),n=t.getColumnCount();if(r>1||n>1)return g.create(h.VALUE);t=t.get(0,0)}return t.isError(),t}_getResultByHolidays(e,t,r,n){const s=[];if(n!=null&&n.isArray()){const u=n.getRowCount(),c=n.getColumnCount();for(let l=0;l<u;l++)for(let f=0;f<c;f++){const m=n.get(l,f);if(m.isBoolean())return g.create(h.VALUE);const d=F(m);if(typeof d!="number")return d;s.push(d)}}else{if(n.isBoolean())return g.create(h.VALUE);const u=F(n);if(typeof u!="number")return u;s.push(u)}const a=fn(e,t,r,s);return typeof a!="number"?a:y.create(a)}}class Ph extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!ra(`${r}`))return g.create(h.VALUE);t=new Date(`${r}`)}else{const a=+r;if(a<0)return g.create(h.NUM);if(a===0)return y.create(1900);t=re(a)}const n=t.getUTCFullYear();return y.create(n)}}class Lh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){let n=r!=null?r:y.create(0);const s=rr(e);if(s.isError())return s;const a=rr(t);if(a.isError())return a;if(n=rr(n),n.isError())return n;if(s.isBoolean()||a.isBoolean()||n.isBoolean())return g.create(h.VALUE);const u=F(s);if(typeof u!="number")return u;const c=F(a);if(typeof c!="number")return c;const l=Math.floor(+n.getValue());if(Number.isNaN(l))return g.create(h.VALUE);if(l<0||l>4)return g.create(h.NUM);const{days:f,yearDays:m}=Ce(u,c,l),d=f/m;return y.create(d)}}const Zo=[[uh,ye.DATE],[ch,ye.DATEDIF],[lh,ye.DATEVALUE],[fh,ye.DAY],[mh,ye.DAYS],[hh,ye.DAYS360],[gh,ye.EDATE],[dh,ye.EOMONTH],[Ch,ye.HOUR],[_h,ye.ISOWEEKNUM],[Ah,ye.MINUTE],[Eh,ye.MONTH],[bh,ye.NETWORKDAYS],[yh,ye.NETWORKDAYS_INTL],[Rh,ye.NOW],[ph,ye.SECOND],[Nh,ye.TIME],[Vh,ye.TIMEVALUE],[Oh,ye.TODAY],[Mh,ye.WEEKDAY],[Sh,ye.WEEKNUM],[Dh,ye.WORKDAY],[wh,ye.WORKDAY_INTL],[Ph,ye.YEAR],[Lh,ye.YEARFRAC]];var z=(i=>(i.BESSELI="BESSELI",i.BESSELJ="BESSELJ",i.BESSELK="BESSELK",i.BESSELY="BESSELY",i.BIN2DEC="BIN2DEC",i.BIN2HEX="BIN2HEX",i.BIN2OCT="BIN2OCT",i.BITAND="BITAND",i.BITLSHIFT="BITLSHIFT",i.BITOR="BITOR",i.BITRSHIFT="BITRSHIFT",i.BITXOR="BITXOR",i.COMPLEX="COMPLEX",i.CONVERT="CONVERT",i.DEC2BIN="DEC2BIN",i.DEC2HEX="DEC2HEX",i.DEC2OCT="DEC2OCT",i.DELTA="DELTA",i.ERF="ERF",i.ERF_PRECISE="ERF.PRECISE",i.ERFC="ERFC",i.ERFC_PRECISE="ERFC.PRECISE",i.GESTEP="GESTEP",i.HEX2BIN="HEX2BIN",i.HEX2DEC="HEX2DEC",i.HEX2OCT="HEX2OCT",i.IMABS="IMABS",i.IMAGINARY="IMAGINARY",i.IMARGUMENT="IMARGUMENT",i.IMCONJUGATE="IMCONJUGATE",i.IMCOS="IMCOS",i.IMCOSH="IMCOSH",i.IMCOT="IMCOT",i.IMCSC="IMCSC",i.IMCSCH="IMCSCH",i.IMDIV="IMDIV",i.IMEXP="IMEXP",i.IMLN="IMLN",i.IMLOG10="IMLOG10",i.IMLOG2="IMLOG2",i.IMPOWER="IMPOWER",i.IMPRODUCT="IMPRODUCT",i.IMREAL="IMREAL",i.IMSEC="IMSEC",i.IMSECH="IMSECH",i.IMSIN="IMSIN",i.IMSINH="IMSINH",i.IMSQRT="IMSQRT",i.IMSUB="IMSUB",i.IMSUM="IMSUM",i.IMTAN="IMTAN",i.OCT2BIN="OCT2BIN",i.OCT2DEC="OCT2DEC",i.OCT2HEX="OCT2HEX",i))(z||{});class xh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);const f=ir.besseli(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class jh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);const f=ir.besselj(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class Uh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);const f=ir.besselk(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class vh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);const f=ir.bessely(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class Th extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`;if(!Is(a))return g.create(h.NUM);let u;return a.length===10&&a.substring(0,1)==="1"?u=Number.parseInt(a.substring(1),2)-512:u=Number.parseInt(a,2),y.create(u)}}class Bh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=H(t);if(f)return m;const[C]=d;if(r=Math.floor(+C.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=`${u.getValue()}`;if(!Is(c))return g.create(h.NUM);let l;if(c.length===10&&c.substring(0,1)==="1")l=(0xfffffffe00+Number.parseInt(c.substring(1),2)).toString(16);else if(l=Number.parseInt(c,2).toString(16),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return j.create(l.toLocaleUpperCase())}}class Ih extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=H(t);if(f)return m;const[C]=d;if(r=Math.floor(+C.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=`${u.getValue()}`;if(!Is(c))return g.create(h.NUM);let l;if(c.length===10&&c.substring(0,1)==="1")l=(1073741312+Number.parseInt(c.substring(1),2)).toString(8);else if(l=Number.parseInt(c,2).toString(8),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return j.create(l)}}class Fh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=a.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const C=+m.getValue(),_=+d.getValue();if(C<0||_<0||Math.floor(C)!==C||Math.floor(_)!==_||C>0xffffffffffff||_>0xffffffffffff)return g.create(h.NUM);const E=C&_;return y.create(E)});return r===1&&n===1?u.get(0,0):u}}class kh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=a.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const C=+m.getValue();let _=+d.getValue();if(C<0||Math.floor(C)!==C||C>0xffffffffffff||Math.abs(_)>53)return g.create(h.NUM);_=Math.trunc(_);const E=Number(_>=0?BigInt(C)<<BigInt(_):BigInt(C)>>BigInt(-_));return E>0xffffffffffff?g.create(h.NUM):y.create(E)});return r===1&&n===1?u.get(0,0):u}}class $h extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=a.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const C=+m.getValue(),_=+d.getValue();if(C<0||_<0||Math.floor(C)!==C||Math.floor(_)!==_||C>0xffffffffffff||_>0xffffffffffff)return g.create(h.NUM);const E=Number(BigInt(C)|BigInt(_));return y.create(E)});return r===1&&n===1?u.get(0,0):u}}class Yh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=a.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const C=+m.getValue();let _=+d.getValue();if(C<0||Math.floor(C)!==C||C>0xffffffffffff||Math.abs(_)>53)return g.create(h.NUM);_=Math.trunc(_);const E=Number(_>=0?BigInt(C)>>BigInt(_):BigInt(C)<<BigInt(-_));return E>0xffffffffffff?g.create(h.NUM):y.create(E)});return r===1&&n===1?u.get(0,0):u}}class Hh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=a.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const C=+m.getValue(),_=+d.getValue();if(C<0||_<0||Math.floor(C)!==C||Math.floor(_)!==_||C>0xffffffffffff||_>0xffffffffffff)return g.create(h.NUM);const E=C^_;return y.create(E)});return r===1&&n===1?u.get(0,0):u}}x.prototype.cos=function(){const i=this.toNumber();return new x(Math.cos(i))};let de=class fe{constructor(o){A(this,"_inumber","");A(this,"_realNum",0);A(this,"_iNum",0);A(this,"_suffix","");A(this,"_isError",!1);if(`${o}`.trim()===""){this._isError=!0;return}this._inumber=o,this._getImReal(),this._getImAginary(),this._getImSuffix()}static getComplex(o,e,t){const r=new x(o).toSignificantDigits(15).toNumber(),n=new x(e).toSignificantDigits(15).toNumber(),s=t===""?"i":t;let a;if(r===0&&n===0)a=0;else if(r===0)a=n===1?s:`${n}${s}`;else if(n===0)a=r;else{const u=n>0?"+":"",c=n===1?s:`${n}${s}`;a=`${r}${u}${c}`}return a}static createByComplexStr(o,e,t){const r=fe.getComplex(o,e,t);return new fe(r)}_getImReal(){if(this._inumber===0||this._inumber==="0"){this._realNum=0;return}const o=`${this._inumber}`;if(["i","+i","1i","+1i","-i","-1i","j","+j","1j","+1j","-j","-1j"].indexOf(o)>=0){this._realNum=0;return}let e=o.indexOf("+"),t=o.indexOf("-");e===0&&(e=o.indexOf("+",1)),t===0&&(t=o.indexOf("-",1));const r=o.substring(o.length-1,o.length),n=r==="i"||r==="j";if(e>=0||t>=0){if(!n){this._isError=!0;return}e>=0?Number.isNaN(+o.substring(0,e))||Number.isNaN(+o.substring(e+1,o.length-1))?this._isError=!0:this._realNum=+o.substring(0,e):Number.isNaN(+o.substring(0,t))||Number.isNaN(+o.substring(t+1,o.length-1))?this._isError=!0:this._realNum=+o.substring(0,t)}else n?Number.isNaN(+o.substring(0,o.length-1))?this._isError=!0:this._realNum=0:Number.isNaN(+o)?this._isError=!0:this._realNum=+o}_getImAginary(){if(this._isError)return;if(this._inumber===0||this._inumber==="0"){this._iNum=0;return}let o=`${this._inumber}`;if(["i","j"].indexOf(o)>=0){this._iNum=1;return}o=o.replace("+i","+1i").replace("-i","-1i").replace("+j","+1j").replace("-j","-1j");let e=o.indexOf("+"),t=o.indexOf("-");e===0&&(e=o.indexOf("+",1)),t===0&&(t=o.indexOf("-",1));const r=o.substring(o.length-1,o.length),n=r==="i"||r==="j";if(e>=0||t>=0){if(!n){this._isError=!0;return}e>=0?Number.isNaN(+o.substring(0,e))||Number.isNaN(+o.substring(e+1,o.length-1))?this._isError=!0:this._iNum=+o.substring(e+1,o.length-1):Number.isNaN(+o.substring(0,t))||Number.isNaN(+o.substring(t+1,o.length-1))?this._isError=!0:this._iNum=-+o.substring(t+1,o.length-1)}else n?Number.isNaN(+o.substring(0,o.length-1))?this._isError=!0:this._iNum=+o.substring(0,o.length-1):Number.isNaN(+o)?this._isError=!0:this._iNum=0}_getImSuffix(){const o=`${this._inumber}`,e=o.substring(o.length-1);this._suffix=e==="i"||e==="j"?e:""}getRealNum(){return this._realNum}getINum(){return this._iNum}getSuffix(){return this._suffix}isError(){return this._isError}toString(){return fe.getComplex(this._realNum,this._iNum,this._suffix)}isDifferentSuffixes(o){const e=o.getSuffix();return this._suffix===""||e===""?!1:this._suffix!==e}Abs(){return x.sqrt(x.pow(this._realNum,2).add(x.pow(this._iNum,2))).toSignificantDigits(16).toNumber()}Argument(){const o=x.sqrt(x.pow(this._realNum,2).add(x.pow(this._iNum,2)));let e=x.acos(new x(this._realNum).div(o)).toSignificantDigits(16).toNumber();return this._iNum<0&&(e=-e),e}Conjugate(){return fe.getComplex(this._realNum,-this._iNum,this._suffix)}Cos(){if(this._iNum){const o=x.cos(this._realNum).mul(x.cosh(this._iNum)).toNumber(),e=x.sin(this._realNum).mul(x.sinh(this._iNum)).negated().toNumber();return fe.getComplex(o,e,this._suffix)}else{const o=x.cos(this._realNum).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}Cosh(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return this._isError=!0,"";if(this._iNum){const o=x.cosh(this._realNum).mul(x.cos(this._iNum)).toNumber(),e=x.sinh(this._realNum).mul(x.sin(this._iNum)).toNumber();return fe.getComplex(o,e,this._suffix)}else{const o=x.cosh(this._realNum).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}Cot(){if(this._iNum){const o=x.cosh(this._iNum*2).sub(x.cos(this._realNum*2)),e=x.sin(this._realNum*2).div(o).toNumber(),t=x.sinh(this._iNum*2).div(o).negated().toNumber();return fe.getComplex(e,t,this._suffix)}else{const o=new x(1).div(x.tan(this._realNum)).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}Csc(){if(this._iNum){const o=x.cosh(this._iNum*2).sub(x.cos(this._realNum*2)),e=x.sin(this._realNum).mul(x.cosh(this._iNum)).mul(2).div(o).toNumber(),t=x.cos(this._realNum).mul(x.sinh(this._iNum)).mul(-2).div(o).toNumber();return fe.getComplex(e,t,this._suffix)}else{const o=new x(1).div(x.sin(this._realNum)).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}Csch(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return fe.getComplex(0,0,this._suffix);if(this._iNum){const o=x.cosh(this._realNum*2).sub(x.cos(this._iNum*2)),e=x.sinh(this._realNum).mul(x.cos(this._iNum)).mul(2).div(o).toNumber(),t=x.cosh(this._realNum).mul(x.sin(this._iNum)).mul(-2).div(o).toNumber();return fe.getComplex(e,t,this._suffix)}else{const o=new x(1).div(x.sinh(this._realNum)).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}Div(o){const e=new x(this._realNum),t=new x(this._iNum),r=new x(o.getRealNum()),n=new x(o.getINum()),s=r.mul(r).add(n.mul(n)),a=e.mul(r).add(t.mul(n)).div(s).toNumber(),u=t.mul(r).sub(e.mul(n)).div(s).toNumber(),c=this._suffix===""?o.getSuffix():this._suffix;return fe.getComplex(a,u,c)}Exp(){if(!Number.isFinite(Math.exp(this._realNum)))return this._isError=!0,"";const o=x.exp(this._realNum).mul(x.cos(this._iNum)).toNumber(),e=x.exp(this._realNum).mul(x.sin(this._iNum)).toNumber();return fe.getComplex(o,e,this._suffix)}Ln(){const o=x.sqrt(x.pow(this._realNum,2).add(x.pow(this._iNum,2))),e=x.ln(o).toNumber(),t=x.acos(new x(this._realNum).div(o)).toNumber();return fe.getComplex(e,t,this._suffix)}Log10(){const o=x.sqrt(x.pow(this._realNum,2).add(x.pow(this._iNum,2))),e=x.ln(o);let t=x.acos(new x(this._realNum).div(o));this._iNum<0&&(t=t.negated());const r=x.ln(10),n=new x(0),s=r.mul(r).add(n.mul(n)),a=e.mul(r).add(t.mul(n)).div(s).toNumber(),u=t.mul(r).sub(e.mul(n)).div(s).toNumber();return fe.getComplex(a,u,this._suffix)}Log2(){const o=x.sqrt(x.pow(this._realNum,2).add(x.pow(this._iNum,2))),e=x.ln(o);let t=x.acos(new x(this._realNum).div(o));this._iNum<0&&(t=t.negated());const r=x.ln(2),n=new x(0),s=r.mul(r).add(n.mul(n)),a=e.mul(r).add(t.mul(n)).div(s).toNumber(),u=t.mul(r).sub(e.mul(n)).div(s).toNumber();return fe.getComplex(a,u,this._suffix)}Power(o){if(this._realNum===0&&this._iNum===0)return o>0?fe.getComplex(this._realNum,this._iNum,this._suffix):(this._isError=!0,"");let e=x.sqrt(x.pow(this._realNum,2).add(x.pow(this._iNum,2))),t=x.acos(new x(this._realNum).div(e));this._iNum<0&&(t=t.negated()),e=x.pow(e,o),t=t.mul(o);const r=x.cos(t).mul(e).toNumber(),n=x.sin(t).mul(e).toNumber();return!Number.isFinite(r)||!Number.isFinite(n)?(this._isError=!0,""):fe.getComplex(r,n,this._suffix)}Product(o){const e=new x(this._realNum),t=new x(this._iNum),r=new x(o.getRealNum()),n=new x(o.getINum()),s=e.mul(r).sub(t.mul(n)).toNumber(),a=e.mul(n).add(t.mul(r)).toNumber(),u=this._suffix===""?o.getSuffix():this._suffix;return fe.getComplex(s,a,u)}Sec(){if(this._iNum){const o=x.cosh(this._iNum*2).add(x.cos(this._realNum*2)),e=x.cos(this._realNum).mul(x.cosh(this._iNum)).mul(2).div(o).toNumber(),t=x.sin(this._realNum).mul(x.sinh(this._iNum)).mul(2).div(o).toNumber();return fe.getComplex(e,t,this._suffix)}else{const o=new x(1).div(x.cos(this._realNum)).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}Sech(){if(!Number.isFinite(Math.sinh(this._realNum*2))||!Number.isFinite(Math.cosh(this._realNum*2)))return fe.getComplex(0,0,this._suffix);if(this._iNum){const o=x.cosh(this._realNum*2).add(x.cos(this._iNum*2)),e=x.cosh(this._realNum).mul(x.cos(this._iNum)).mul(2).div(o).toNumber(),t=x.sinh(this._realNum).mul(x.sin(this._iNum)).mul(-2).div(o).toNumber();return fe.getComplex(e,t,this._suffix)}else{const o=new x(1).div(x.cosh(this._realNum)).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}Sin(){if(this._iNum){const o=x.sin(this._realNum).mul(x.cosh(this._iNum)).toNumber(),e=x.cos(this._realNum).mul(x.sinh(this._iNum)).toNumber();return fe.getComplex(o,e,this._suffix)}else{const o=x.sin(this._realNum).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}Sinh(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return this._isError=!0,"";if(this._iNum){const o=x.sinh(this._realNum).mul(x.cos(this._iNum)).toNumber(),e=x.cosh(this._realNum).mul(x.sin(this._iNum)).toNumber();return fe.getComplex(o,e,this._suffix)}else{const o=x.sinh(this._realNum).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}Sqrt(){const o=x.sqrt(x.pow(this._realNum,2).add(x.pow(this._iNum,2))),e=x.sqrt(o);let t=x.acos(new x(this._realNum).div(o));this._iNum<0&&(t=t.negated());const r=e.mul(x.cos(t.div(2).toNumber())).toNumber(),n=e.mul(x.sin(t.div(2))).toNumber();return fe.getComplex(r,n,this._suffix)}Sub(o){const e=new x(this._realNum),t=new x(this._iNum),r=new x(o.getRealNum()),n=new x(o.getINum()),s=e.sub(r).toNumber(),a=t.sub(n).toNumber(),u=this._suffix===""?o.getSuffix():this._suffix;return fe.getComplex(s,a,u)}Sum(o){const e=new x(this._realNum),t=new x(this._iNum),r=new x(o.getRealNum()),n=new x(o.getINum()),s=e.add(r).toNumber(),a=t.add(n).toNumber(),u=this._suffix===""?o.getSuffix():this._suffix;return fe.getComplex(s,a,u)}Tan(){if(this._iNum){const o=x.cos(this._realNum*2).add(x.cosh(this._iNum*2)),e=x.sin(this._realNum*2).div(o).toNumber(),t=x.sinh(this._iNum*2).div(o).toNumber();return fe.getComplex(e,t,this._suffix)}else{const o=x.tan(this._realNum).toNumber();return fe.getComplex(o,this._iNum,this._suffix)}}};class Gh extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:j.create("i"),{isError:s,errorObject:a,variants:u}=H(e,t,n);if(s)return a;const[c,l,f]=u,m=+c.getValue(),d=+l.getValue(),C=`${f.getValue()}`;if(Number.isNaN(m)||Number.isNaN(d)||C!=="i"&&C!=="j")return g.create(h.VALUE);const _=de.getComplex(m,d,C);return typeof _=="number"?y.create(_):j.create(_)}}class Wh extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3);A(this,"_units",[["a.u. of action","?",null,"action",!1,!1,105457168181818e-48],["a.u. of charge","e",null,"electric_charge",!1,!1,160217653141414e-33],["a.u. of energy","Eh",null,"energy",!1,!1,435974417757576e-32],["a.u. of length","a?",null,"length",!1,!1,529177210818182e-25],["a.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["a.u. of time","?/Eh",null,"time",!1,!1,241888432650516e-31],["admiralty knot","admkn",null,"speed",!1,!0,.514773333],["ampere","A",null,"electric_current",!0,!1,1],["ampere per meter","A/m",null,"magnetic_field_intensity",!0,!1,1],["ångström","Å",["ang"],"length",!1,!0,1e-10],["are","ar",null,"area",!1,!0,100],["astronomical unit","ua",null,"length",!1,!1,149597870691667e-25],["bar","bar",null,"pressure",!1,!1,1e5],["barn","b",null,"area",!1,!1,1e-28],["becquerel","Bq",null,"radioactivity",!0,!1,1],["bit","bit",["b"],"information",!1,!0,1],["btu","BTU",["btu"],"energy",!1,!0,1055.05585262],["byte","byte",null,"information",!1,!0,8],["candela","cd",null,"luminous_intensity",!0,!1,1],["candela per square metre","cd/m?",null,"luminance",!0,!1,1],["centigrade","C",["cel"],"temperature",!0,!1,1],["cubic ångström","ang3",["ang^3"],"volume",!1,!0,1e-30],["cubic foot","ft3",["ft^3"],"volume",!1,!0,.028316846592],["cubic inch","in3",["in^3"],"volume",!1,!0,16387064e-12],["cubic light-year","ly3",["ly^3"],"volume",!1,!0,846786664623715e-61],["cubic metre","m3",["m^3"],"volume",!0,!0,1],["cubic mile","mi3",["mi^3"],"volume",!1,!0,416818182544058e-5],["cubic nautical mile","Nmi3",["Nmi^3"],"volume",!1,!0,6352182208],["cubic Pica","Pica3",["Picapt3","Pica^3","Picapt^3"],"volume",!1,!0,758660370370369e-22],["cubic yard","yd3",["yd^3"],"volume",!1,!0,.764554857984],["cup","cup",null,"volume",!1,!0,.0002365882365],["dalton","Da",["u"],"mass",!1,!1,166053886282828e-41],["day","d",["day"],"time",!1,!0,86400],["degree","°",null,"angle",!1,!1,.0174532925199433],["dyne","dyn",["dy"],"force",!1,!0,1e-5],["electronvolt","eV",["ev"],"energy",!1,!0,1.60217656514141],["ell","ell",null,"length",!1,!0,1.143],["erg","erg",["e"],"energy",!1,!0,1e-7],["fahrenheit","F",["fah"],"temperature",!0,!1,1],["fluid ounce","oz",null,"volume",!1,!0,295735295625e-16],["foot","ft",null,"length",!1,!0,.3048],["foot-pound","flb",null,"energy",!1,!0,1.3558179483314],["gal","Gal",null,"acceleration",!1,!1,.01],["gallon","gal",null,"volume",!1,!0,.003785411784],["gauss","G",["ga"],"magnetic_flux_density",!1,!0,1],["grain","grain",null,"mass",!1,!0,647989e-10],["gram","g",null,"mass",!1,!0,.001],["gray","Gy",null,"absorbed_dose",!0,!1,1],["gross registered ton","GRT",["regton"],"volume",!1,!0,2.8316846592],["hectare","ha",null,"area",!1,!0,1e4],["henry","H",null,"inductance",!0,!1,1],["hertz","Hz",null,"frequency",!0,!1,1],["horsepower","HP",["h"],"power",!1,!0,745.69987158227],["horsepower-hour","HPh",["hh","hph"],"energy",!1,!0,2684519538e-3],["hour","h",["hr"],"time",!1,!0,3600],["imperial gallon (U.K.)","uk_gal",null,"volume",!1,!0,.00454609],["imperial hundredweight","lcwt",["uk_cwt","hweight"],"mass",!1,!0,50.802345],["imperial quart (U.K)","uk_qt",null,"volume",!1,!0,.0011365225],["imperial ton","brton",["uk_ton","LTON"],"mass",!1,!0,1016.046909],["inch","in",null,"length",!1,!0,.0254],["international acre","uk_acre",null,"area",!1,!0,4046.8564224],["IT calorie","cal",null,"energy",!1,!0,4.1868],["joule","J",null,"energy",!0,!0,1],["katal","kat",null,"catalytic_activity",!0,!1,1],["kelvin","K",["kel"],"temperature",!0,!0,1],["kilogram","kg",null,"mass",!0,!0,1],["knot","kn",null,"speed",!1,!0,.514444444444444],["light-year","ly",null,"length",!1,!0,9460730472580800],["litre","L",["l","lt"],"volume",!1,!0,.001],["lumen","lm",null,"luminous_flux",!0,!1,1],["lux","lx",null,"illuminance",!0,!1,1],["maxwell","Mx",null,"magnetic_flux",!1,!1,1e-18],["measurement ton","MTON",null,"volume",!1,!0,1.13267386368],["meter per hour","m/h",["m/hr"],"speed",!1,!0,.00027777777777778],["meter per second","m/s",["m/sec"],"speed",!0,!0,1],["meter per second squared","m?s??",null,"acceleration",!0,!1,1],["parsec","pc",["parsec"],"length",!1,!0,0x6da012f958ee1c],["meter squared per second","m?/s",null,"kinematic_viscosity",!0,!1,1],["metre","m",null,"length",!0,!0,1],["miles per hour","mph",null,"speed",!1,!0,.44704],["millimetre of mercury","mmHg",null,"pressure",!1,!1,133.322],["minute","?",null,"angle",!1,!1,.000290888208665722],["minute","min",["mn"],"time",!1,!0,60],["modern teaspoon","tspm",null,"volume",!1,!0,5e-6],["mole","mol",null,"amount_of_substance",!0,!1,1],["morgen","Morgen",null,"area",!1,!0,2500],["n.u. of action","?",null,"action",!1,!1,105457168181818e-48],["n.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["n.u. of speed","c?",null,"speed",!1,!1,299792458],["n.u. of time","?/(me?c??)",null,"time",!1,!1,128808866778687e-35],["nautical mile","M",["Nmi"],"length",!1,!0,1852],["newton","N",null,"force",!0,!0,1],["œrsted","Oe ",null,"magnetic_field_intensity",!1,!1,79.5774715459477],["ohm","Ω",null,"electric_resistance",!0,!1,1],["ounce mass","ozm",null,"mass",!1,!0,.028349523125],["pascal","Pa",null,"pressure",!0,!1,1],["pascal second","Pa?s",null,"dynamic_viscosity",!0,!1,1],["pferdestärke","PS",null,"power",!1,!0,735.49875],["phot","ph",null,"illuminance",!1,!1,1e-4],["pica (1/6 inch)","pica",null,"length",!1,!0,.00035277777777778],["pica (1/72 inch)","Pica",["Picapt"],"length",!1,!0,.00423333333333333],["poise","P",null,"dynamic_viscosity",!1,!1,.1],["pond","pond",null,"force",!1,!0,.00980665],["pound force","lbf",null,"force",!1,!0,4.4482216152605],["pound mass","lbm",null,"mass",!1,!0,.45359237],["quart","qt",null,"volume",!1,!0,.000946352946],["radian","rad",null,"angle",!0,!1,1],["rankine","Rank",null,"temperature",!1,!0,1],["reaumur","Reau",null,"temperature",!1,!0,1],["second","?",null,"angle",!1,!1,484813681109536e-20],["second","s",["sec"],"time",!0,!0,1],["short hundredweight","cwt",["shweight"],"mass",!1,!0,45.359237],["siemens","S",null,"electrical_conductance",!0,!1,1],["sievert","Sv",null,"equivalent_dose",!0,!1,1],["slug","sg",null,"mass",!1,!0,14.59390294],["square ångström","ang2",["ang^2"],"area",!1,!0,1e-20],["square foot","ft2",["ft^2"],"area",!1,!0,.09290304],["square inch","in2",["in^2"],"area",!1,!0,64516e-8],["square light-year","ly2",["ly^2"],"area",!1,!0,895054210748189e17],["square meter","m?",null,"area",!0,!0,1],["square mile","mi2",["mi^2"],"area",!1,!0,2589988110336e-6],["square nautical mile","Nmi2",["Nmi^2"],"area",!1,!0,3429904],["square Pica","Pica2",["Picapt2","Pica^2","Picapt^2"],"area",!1,!0,1792111111111e-17],["square yard","yd2",["yd^2"],"area",!1,!0,.83612736],["statute mile","mi",null,"length",!1,!0,1609.344],["steradian","sr",null,"solid_angle",!0,!1,1],["stilb","sb",null,"luminance",!1,!1,1e-4],["stokes","St",null,"kinematic_viscosity",!1,!1,1e-4],["stone","stone",null,"mass",!1,!0,6.35029318],["tablespoon","tbs",null,"volume",!1,!0,147868e-10],["teaspoon","tsp",null,"volume",!1,!0,492892e-11],["tesla","T",null,"magnetic_flux_density",!0,!0,1],["thermodynamic calorie","c",null,"energy",!1,!0,4.184],["ton","ton",null,"mass",!1,!0,907.18474],["tonne","t",null,"mass",!1,!1,1e3],["U.K. pint","uk_pt",null,"volume",!1,!0,.00056826125],["U.S. bushel","bushel",null,"volume",!1,!0,.03523907],["U.S. oil barrel","barrel",null,"volume",!1,!0,.158987295],["U.S. pint","pt",["us_pt"],"volume",!1,!0,.000473176473],["U.S. survey mile","survey_mi",null,"length",!1,!0,1609.347219],["U.S. survey/statute acre","us_acre",null,"area",!1,!0,4046.87261],["volt","V",null,"voltage",!0,!1,1],["watt","W",null,"power",!0,!0,1],["watt-hour","Wh",["wh"],"energy",!1,!0,3600],["weber","Wb",null,"magnetic_flux",!0,!1,1],["yard","yd",null,"length",!1,!0,.9144],["year","yr",null,"time",!1,!0,31557600]]);A(this,"_binaryPrefixes",{Yi:["yobi",80,12089258196146292e8,"Yi","yotta"],Zi:["zebi",70,11805916207174113e5,"Zi","zetta"],Ei:["exbi",60,1152921504606847e3,"Ei","exa"],Pi:["pebi",50,0x4000000000000,"Pi","peta"],Ti:["tebi",40,1099511627776,"Ti","tera"],Gi:["gibi",30,1073741824,"Gi","giga"],Mi:["mebi",20,1048576,"Mi","mega"],ki:["kibi",10,1024,"ki","kilo"]});A(this,"_unitPrefixes",{Y:["yotta",1e24,"Y"],Z:["zetta",1e21,"Z"],E:["exa",1e18,"E"],P:["peta",1e15,"P"],T:["tera",1e12,"T"],G:["giga",1e9,"G"],M:["mega",1e6,"M"],k:["kilo",1e3,"k"],h:["hecto",100,"h"],e:["dekao",10,"e"],d:["deci",.1,"d"],c:["centi",.01,"c"],m:["milli",.001,"m"],u:["micro",1e-6,"u"],n:["nano",1e-9,"n"],p:["pico",1e-12,"p"],f:["femto",1e-15,"f"],a:["atto",1e-18,"a"],z:["zepto",1e-21,"z"],y:["yocto",1e-24,"y"]})}calculate(e,t,r){const{isError:n,errorObject:s,variants:a}=H(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=`${c.getValue()}`,d=`${l.getValue()}`;if(Number.isNaN(f))return g.create(h.VALUE);let C,_=1,E,b=1;const{_from:R,_to:p}=this._lookupFromAndToUnits(m,d);if(C=R,E=p,C===null){const{_from:S,_fromMultiplier:D}=this._lookupFromPrefix(m);C=S,_=D}if(E===null){const{_to:S,_toMultiplier:D}=this._lookupToPrefix(d);E=S,b=D}if(C===null||E===null||C[3]!==E[3])return g.create(h.NA);let V;return C[3]==="temperature"?(V=this._getTemperatureConversion(f,C[1],E[1]),V=+V.toFixed(2)):V=f*C[6]*_/(E[6]*b),y.create(V)}_lookupFromAndToUnits(e,t){let r=null,n=null,s;for(let a=0;a<this._units.length;a++)s=this._units[a][2]===null?[]:this._units[a][2],(this._units[a][1]===e||s.indexOf(e)>=0)&&(r=this._units[a]),(this._units[a][1]===t||s.indexOf(t)>=0)&&(n=this._units[a]);return{_from:r,_to:n}}_lookupFromPrefix(e){let t=null,r=1,n=e,s;const a=this._binaryPrefixes[e.substring(0,2)];let u=this._unitPrefixes[e.substring(0,1)];e.substring(0,2)==="da"&&(u=["dekao",10,"da"]),a?(r=a[2],n=e.substring(2)):u&&(r=u[1],n=e.substring(u[2].length));for(let c=0;c<this._units.length;c++)s=this._units[c][2]===null?[]:this._units[c][2],(this._units[c][1]===n||s.indexOf(n)>=0)&&(t=this._units[c]);return{_from:t,_fromMultiplier:r}}_lookupToPrefix(e){let t=null,r=1,n=e,s;const a=this._binaryPrefixes[e.substring(0,2)];let u=this._unitPrefixes[e.substring(0,1)];e.substring(0,2)==="da"&&(u=["dekao",10,"da"]),a?(r=a[2],n=e.substring(2)):u&&(r=u[1],n=e.substring(u[2].length));for(let c=0;c<this._units.length;c++)s=this._units[c][2]===null?[]:this._units[c][2],(this._units[c][1]===n||s.indexOf(n)>=0)&&(t=this._units[c]);return{_to:t,_toMultiplier:r}}_getTemperatureConversion(e,t,r){switch(t){case"C":return this._centigradeConversion(e,r);case"F":return this._fahrenheitConversion(e,r);case"K":return this._kelvinConversion(e,r);case"Rank":return this._rankineConversion(e,r);case"Reau":return this._reaumurConversion(e,r);default:return e}}_centigradeConversion(e,t){switch(t){case"F":return e*9/5+32;case"K":return e+273.15;case"Rank":return(e+273.15)*9/5;case"Reau":return e*4/5;default:return e}}_fahrenheitConversion(e,t){switch(t){case"C":return(e-32)*5/9;case"K":return(e-32)*5/9+273.15;case"Rank":return e+459.67;case"Reau":return(e-32)*4/9;default:return e}}_kelvinConversion(e,t){switch(t){case"C":return e-273.15;case"F":return(e-273.15)*9/5+32;case"Rank":return e*9/5;case"Reau":return(e-273.15)*4/5;default:return e}}_rankineConversion(e,t){switch(t){case"C":return(e-491.67)*5/9;case"F":return e-459.67;case"K":return e*5/9;case"Reau":return(e-491.67)*4/9;default:return e}}_reaumurConversion(e,t){switch(t){case"C":return e*5/4;case"F":return e*9/4+32;case"K":return e*5/4+273.15;case"Rank":return e*9/4+491.67;default:return e}}}class Qh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=H(t);if(f)return m;const[C]=d;if(r=Math.floor(+C.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=Math.trunc(+u.getValue());if(Number.isNaN(c))return g.create(h.VALUE);if(!/^-?[0-9]{1,3}$/.test(`${c}`)||c<-512||c>511)return g.create(h.NUM);let l;if(c<0){const f=(512+c).toString(2);l=`1${"0".repeat(9-f.length)}${f}`}else if(l=Number.parseInt(`${c}`,10).toString(2),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return j.create(l)}}class qh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=H(t);if(f)return m;const[C]=d;if(r=Math.floor(+C.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=Math.trunc(+u.getValue());if(Number.isNaN(c))return g.create(h.VALUE);if(!/^-?[0-9]{1,12}$/.test(`${c}`)||c<-549755813888||c>549755813887)return g.create(h.NUM);let l;if(c<0)l=(1099511627776+c).toString(16);else if(l=Number.parseInt(`${c}`,10).toString(16),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return j.create(l.toLocaleUpperCase())}}class Xh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=H(t);if(f)return m;const[C]=d;if(r=Math.floor(+C.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=Math.trunc(+u.getValue());if(Number.isNaN(c))return g.create(h.VALUE);if(!/^-?[0-9]{1,9}$/.test(`${c}`)||c<-536870912||c>536870911)return g.create(h.NUM);let l;if(c<0)l=(1073741824+c).toString(8);else if(l=Number.parseInt(`${c}`,10).toString(8),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return j.create(l)}}class Kh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(0),{isError:n,errorObject:s,variants:a}=H(e,r);if(n)return s;const[u,c]=a,l=+u.getValue(),f=+c.getValue();if(Number.isNaN(l)||Number.isNaN(f))return g.create(h.VALUE);const m=l===f?1:0;return y.create(m)}}class Zh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){let r;if(t){const{isError:n,errorObject:s,variants:a}=H(e,t);if(n)return s;const[u,c]=a,l=+u.getValue(),f=+c.getValue();if(Number.isNaN(l)||Number.isNaN(f))return g.create(h.VALUE);r=Ft(f)-Ft(l)}else{const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=+u.getValue();if(Number.isNaN(c))return g.create(h.VALUE);r=Ft(c)}return y.create(r)}}class zh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=+s.getValue();if(Number.isNaN(a))return g.create(h.VALUE);const u=Ft(a);return y.create(u)}}class Jh extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=+s.getValue();if(Number.isNaN(a))return g.create(h.VALUE);const u=$s(a);return y.create(u)}}class eg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=+s.getValue();if(Number.isNaN(a))return g.create(h.VALUE);const u=$s(a);return y.create(u)}}class tg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);const r=t!=null?t:y.create(0),{isError:n,errorObject:s,variants:a}=H(e,r);if(n)return s;const[u,c]=a,l=+u.getValue(),f=+c.getValue();if(Number.isNaN(l)||Number.isNaN(f))return g.create(h.VALUE);const m=l>=f?1:0;return y.create(m)}}class rg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:d,errorObject:C,variants:_}=H(t);if(d)return C;const[E]=_;if(r=Math.floor(+E.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=`${u.getValue()}`;if(!ks(c))return g.create(h.NUM);const l=c.length===10&&c.substring(0,1).toLocaleUpperCase()==="F",f=l?Number.parseInt(c,16)-1099511627776:Number.parseInt(c,16);if(f<-512||f>511)return g.create(h.NUM);let m;if(l){const d=(512+f).toString(2);m=`1${"0".repeat(9-d.length)}${d}`}else if(m=f.toString(2),t){if(r<m.length)return g.create(h.NUM);m="0".repeat(r-m.length)+m}return j.create(m)}}class ng extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`;if(!ks(a))return g.create(h.NUM);let u=Number.parseInt(a,16);return u>=549755813888&&(u-=1099511627776),y.create(u)}}class sg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:m,errorObject:d,variants:C}=H(t);if(m)return d;const[_]=C;if(r=Math.floor(+_.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=`${u.getValue()}`;if(!ks(c))return g.create(h.NUM);const l=Number.parseInt(c,16);if(l>536870911&&l<0xffe0000000)return g.create(h.NUM);let f;if(l>=0xffe0000000)f=(l-0xffc0000000).toString(8);else if(f=l.toString(8),t){if(r<f.length)return g.create(h.NUM);f="0".repeat(r-f.length)+f}return j.create(f)}}class ag extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Abs();return y.create(c)}}class ig extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.getINum();return y.create(c)}}class og extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);if(u.getRealNum()===0&&u.getINum()===0)return g.create(h.DIV_BY_ZERO);const c=u.Argument();return y.create(c)}}class ug extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Conjugate();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class cg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Cos();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class lg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Cosh();return u.isError()?g.create(h.NUM):typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class fg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError()||u.getRealNum()===0&&u.getINum()===0)return g.create(h.NUM);const c=u.Cot();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class mg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError()||u.getRealNum()===0&&u.getINum()===0)return g.create(h.NUM);const c=u.Csc();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class hg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError()||u.getRealNum()===0&&u.getINum()===0)return g.create(h.NUM);const c=u.Csch();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class gg extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=`${a.getValue()}`,l=`${u.getValue()}`,f=new de(c),m=new de(l);if(f.isError()||m.isError()||f.isDifferentSuffixes(m)||m.getRealNum()===0&&m.getINum()===0)return g.create(h.NUM);const d=f.Div(m);return typeof d=="number"||M.isRealNum(d)?y.create(+d):j.create(d)}}class dg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Exp();return u.isError()?g.create(h.NUM):typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class Cg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError()||u.getRealNum()===0&&u.getINum()===0)return g.create(h.NUM);const c=u.Ln();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class _g extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError()||u.getRealNum()===0&&u.getINum()===0)return g.create(h.NUM);const c=u.Log10();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class Ag extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError()||u.getRealNum()===0&&u.getINum()===0)return g.create(h.NUM);const c=u.Log2();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class Eg extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=`${a.getValue()}`,l=new de(c);if(l.isError())return g.create(h.NUM);const f=+u.getValue();if(Number.isNaN(f))return g.create(h.VALUE);const m=l.Power(f);return l.isError()?g.create(h.NUM):typeof m=="number"||M.isRealNum(m)?y.create(+m):j.create(m)}}class bg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t="";for(let r=0;r<e.length;r++){if(t instanceof g)return t;const n=e[r];if(n.isArray()){let s=!1,a;if(n.iterator(u=>{if(t=this._handleSingleObject(u,t),t instanceof g)return s=!0,a=t,!1}),s)return a}else t=this._handleSingleObject(n,t)}return t instanceof g?t:typeof t=="number"||M.isRealNum(t)?y.create(+t):j.create(t)}_handleSingleObject(e,t){let r=t;if(e.isError())return e;if(e.isBoolean())return g.create(h.VALUE);const n=`${e.getValue()}`;if(typeof t!="number"&&!t){const s=new de(n);if(s.isError())return g.create(h.NUM);r=s.toString()}else{const s=new de(t),a=new de(n);if(s.isError()||a.isError())return g.create(h.NUM);if(s.isDifferentSuffixes(a))return g.create(h.VALUE);r=s.Product(a)}return r}}class yg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.getRealNum();return y.create(c)}}class Rg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Sec();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class pg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Sech();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class Ng extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Sin();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class Vg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Sinh();return u.isError()?g.create(h.NUM):typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class Og extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);if(u.getRealNum()===0&&u.getINum()===0)return y.create(0);const c=u.Sqrt();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class Mg extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=`${a.getValue()}`,l=`${u.getValue()}`,f=new de(c),m=new de(l);if(f.isError()||m.isError()||f.isDifferentSuffixes(m))return g.create(h.NUM);const d=f.Sub(m);return typeof d=="number"||M.isRealNum(d)?y.create(+d):j.create(d)}}class Sg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t="";for(let r=0;r<e.length;r++){if(t instanceof g)return t;const n=e[r];if(n.isArray()){let s=!1,a;if(n.iterator(u=>{if(t=this._handleSingleObject(u,t),t instanceof g)return s=!0,a=t,!1}),s)return a}else t=this._handleSingleObject(n,t)}return t instanceof g?t:typeof t=="number"||M.isRealNum(t)?y.create(+t):j.create(t)}_handleSingleObject(e,t){let r=t;if(e.isError())return e;if(e.isBoolean())return g.create(h.VALUE);const n=`${e.getValue()}`;if(typeof t!="number"&&!t){const s=new de(n);if(s.isError())return g.create(h.NUM);r=s.toString()}else{const s=new de(t),a=new de(n);if(s.isError()||a.isError())return g.create(h.NUM);if(s.isDifferentSuffixes(a))return g.create(h.VALUE);r=s.Sum(a)}return r}}class Dg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`,u=new de(a);if(u.isError())return g.create(h.NUM);const c=u.Tan();return typeof c=="number"||M.isRealNum(c)?y.create(+c):j.create(c)}}class wg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:d,errorObject:C,variants:_}=H(t);if(d)return C;const[E]=_;if(r=Math.floor(+E.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=`${u.getValue()}`;if(!Fs(c))return g.create(h.NUM);const l=c.length===10&&c.substring(0,1)==="7",f=l?Number.parseInt(c,8)-1073741824:Number.parseInt(c,8);if(f<-512||f>511)return g.create(h.NUM);let m;if(l){const d=(512+f).toString(2);m=`1${"0".repeat(9-d.length)}${d}`}else if(m=f.toString(2),t){if(r<m.length)return g.create(h.NUM);m="0".repeat(r-m.length)+m}return j.create(m)}}class Pg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=H(e);if(t)return r;const[s]=n,a=`${s.getValue()}`;if(!Fs(a))return g.create(h.NUM);let u=Number.parseInt(a,8);return u>=536870912&&(u-=1073741824),y.create(u)}}class Lg extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:m,errorObject:d,variants:C}=H(t);if(m)return d;const[_]=C;if(r=Math.floor(+_.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=`${u.getValue()}`;if(!Fs(c))return g.create(h.NUM);const l=Number.parseInt(c,8);let f;if(l>=536870912)f=`ff${(l+3221225472).toString(16)}`;else if(f=l.toString(16),t){if(r<f.length)return g.create(h.NUM);f="0".repeat(r-f.length)+f}return j.create(f.toLocaleUpperCase())}}const zo=[[xh,z.BESSELI],[jh,z.BESSELJ],[Uh,z.BESSELK],[vh,z.BESSELY],[Th,z.BIN2DEC],[Bh,z.BIN2HEX],[Ih,z.BIN2OCT],[Fh,z.BITAND],[kh,z.BITLSHIFT],[$h,z.BITOR],[Yh,z.BITRSHIFT],[Hh,z.BITXOR],[Gh,z.COMPLEX],[Wh,z.CONVERT],[Qh,z.DEC2BIN],[qh,z.DEC2HEX],[Xh,z.DEC2OCT],[Kh,z.DELTA],[Zh,z.ERF],[zh,z.ERF_PRECISE],[Jh,z.ERFC],[eg,z.ERFC_PRECISE],[tg,z.GESTEP],[rg,z.HEX2BIN],[ng,z.HEX2DEC],[sg,z.HEX2OCT],[ag,z.IMABS],[ig,z.IMAGINARY],[og,z.IMARGUMENT],[ug,z.IMCONJUGATE],[cg,z.IMCOS],[lg,z.IMCOSH],[fg,z.IMCOT],[mg,z.IMCSC],[hg,z.IMCSCH],[gg,z.IMDIV],[dg,z.IMEXP],[Cg,z.IMLN],[_g,z.IMLOG10],[Ag,z.IMLOG2],[Eg,z.IMPOWER],[bg,z.IMPRODUCT],[yg,z.IMREAL],[Rg,z.IMSEC],[pg,z.IMSECH],[Ng,z.IMSIN],[Vg,z.IMSINH],[Og,z.IMSQRT],[Mg,z.IMSUB],[Sg,z.IMSUM],[Dg,z.IMTAN],[wg,z.OCT2BIN],[Pg,z.OCT2DEC],[Lg,z.OCT2HEX]];var J=(i=>(i.ACCRINT="ACCRINT",i.ACCRINTM="ACCRINTM",i.AMORDEGRC="AMORDEGRC",i.AMORLINC="AMORLINC",i.COUPDAYBS="COUPDAYBS",i.COUPDAYS="COUPDAYS",i.COUPDAYSNC="COUPDAYSNC",i.COUPNCD="COUPNCD",i.COUPNUM="COUPNUM",i.COUPPCD="COUPPCD",i.CUMIPMT="CUMIPMT",i.CUMPRINC="CUMPRINC",i.DB="DB",i.DDB="DDB",i.DISC="DISC",i.DOLLARDE="DOLLARDE",i.DOLLARFR="DOLLARFR",i.DURATION="DURATION",i.EFFECT="EFFECT",i.FV="FV",i.FVSCHEDULE="FVSCHEDULE",i.INTRATE="INTRATE",i.IPMT="IPMT",i.IRR="IRR",i.ISPMT="ISPMT",i.MDURATION="MDURATION",i.MIRR="MIRR",i.NOMINAL="NOMINAL",i.NPER="NPER",i.NPV="NPV",i.ODDFPRICE="ODDFPRICE",i.ODDFYIELD="ODDFYIELD",i.ODDLPRICE="ODDLPRICE",i.ODDLYIELD="ODDLYIELD",i.PDURATION="PDURATION",i.PMT="PMT",i.PPMT="PPMT",i.PRICE="PRICE",i.PRICEDISC="PRICEDISC",i.PRICEMAT="PRICEMAT",i.PV="PV",i.RATE="RATE",i.RECEIVED="RECEIVED",i.RRI="RRI",i.SLN="SLN",i.SYD="SYD",i.TBILLEQ="TBILLEQ",i.TBILLPRICE="TBILLPRICE",i.TBILLYIELD="TBILLYIELD",i.VDB="VDB",i.XIRR="XIRR",i.XNPV="XNPV",i.YIELD="YIELD",i.YIELDDISC="YIELDDISC",i.YIELDMAT="YIELDMAT",i))(J||{});function $n(i,o,e,t){const r=wt(i,o,e),{days:n}=Ce(r,i,t);return n}function $e(i,o,e,t){let r;if(t===1){const n=wt(i,o,e);let s=re(n);s=ur(s,12/e);const a=Ee(s);n<0&&e===1?r=365:r=a-n}else t===3?r=365/e:r=360/e;return r}function Jo(i,o,e){const t=re(i);let r=re(o);for(r.setUTCFullYear(t.getUTCFullYear()),r<t&&r.setUTCFullYear(r.getUTCFullYear()+1);r>t;)r=ur(r,-12/e);return r=ur(r,12/e),Ee(r)}function Wt(i,o,e){let t=0;const r=re(i);let n=re(o);for(;n>r;)n=ur(n,-12/e),t++;return t}function wt(i,o,e){const t=re(i);let r=re(o);for(r.setUTCFullYear(t.getUTCFullYear()),r<t&&r.setUTCFullYear(r.getUTCFullYear()+1);r>t;)r=ur(r,-12/e);return Ee(r)}function eu(i,o,e,t,r,n){const s=$n(i,o,r,n),a=$e(i,o,r,n),u=Wt(i,o,r),c=(a-s)/a-1,l=t/r+1,f=e*100/r;let m=0,d=0;for(let E=1;E<=u;E++){const b=E+c,R=f/l**b;m+=b*R,d+=R}const C=u+c,_=100/l**C;return m+=C*_,d+=_,m/d/r}function jr(i,o,e,t,r){let n;if(i===0)n=(e+t)/o;else{const s=(1+i)**o;n=r===1?(t*i/(s-1)+e*i/(1-1/s))/(1+i):t*i/(s-1)+e*i/(1-1/s)}return-n}function Qt(i,o,e,t,r){let n;if(i===0)n=t+e*o;else{if(i===-1&&o===0)return Number.NaN;const s=(1+i)**o;n=r===1?t*s+e*(1+i)*(s-1)/i:t*s+e*(s-1)/i}return-n}function tu(i,o,e,t,r,n){const s=jr(i,e,t,r,n);return(o===1?n===1?0:-t:n===1?Qt(i,o-2,s,t,1)-s:Qt(i,o-1,s,t,0))*i}function ru(i,o){let e=0;for(let t=1;t<=o.length;t++)e+=o[t-1]/(1+i)**t;return e}function nu(i,o,e,t,r,n,s,a,u){const c=It(e,t,u),l=$e(i,t,a,u);return c<l?xg(i,o,e,t,r,n,s,a,u,c,l):jg(i,o,e,t,r,n,s,a,u,l)}function xg(i,o,e,t,r,n,s,a,u,c,l){let f=0;const m=Wt(i,o,a),d=It(i,t,u);f+=s/(1+n/a)**(m-1+d/l),f+=100*r/a*c/l/(1+n/a)**(d/l);for(let _=2;_<=m;_++)f+=100*r/a/(1+n/a)**(_-1+d/l);const C=It(e,i,u);return f-=100*r/a*C/l,f}function jg(i,o,e,t,r,n,s,a,u,c){let l=0;const f=Wt(t,o,a),m=Ug(t,i,12/a,!0);let d;if(u===2||u===3){const R=Jo(i,t,a);d=It(i,R,u)}else{const R=wt(i,t,a),{days:p}=Ce(R,i,u);d=c-p}l+=s/(1+n/a)**(f+m+d/c);const C=Wt(e,t,a);let _=t,E=0,b=0;for(let R=C;R>=1;R--){const p=$t(_,-12/a,!1),V=u===1?It(p,_,u):c,S=R>1?V:It(e,_,u);E+=S/V;const D=e>p?e:p,w=i<_?i:_,P=It(D,w,u);b+=P/V,_=p}l+=100*r/a*E/(1+n/a)**(m+d/c);for(let R=1;R<=f;R++)l+=100*r/a/(1+n/a)**(R+m+d/c);return l-=100*r/a*b,l}function It(i,o,e){const{days:t}=Ce(i,o,e);return i<o?t:0}function su(i,o,e){const t=re(i),r=t.getUTCFullYear(),n=t.getUTCMonth(),s=t.getUTCDate(),a=or(r,n,s),u=re(o),c=u.getUTCFullYear(),l=u.getUTCMonth(),f=u.getUTCDate(),m=or(c,l,f);return!(s!==f&&!(a&&m)||Math.abs((c-r)*12+(l-n))%(12/e)!==0)}function gr(i,o,e){return wt(i,o,e)>=0}function $t(i,o,e){let t=re(i);if(t=ur(t,o),e){const r=t.getUTCFullYear(),n=t.getUTCMonth(),s=xr(r,n);t.setUTCDate(s)}return Ee(t)}function Ug(i,o,e,t){const r=re(i),n=re(o),s=r.getUTCFullYear(),a=r.getUTCMonth(),u=r.getUTCDate(),c=n.getUTCFullYear(),l=n.getUTCMonth(),f=n.getUTCDate(),m=or(s,a,u),d=!m&&a!==1&&u>28&&u<xr(s,a)?or(c,l,f):m,C=$t(o,0,d);let _=+t-0+ +(o<C),E=$t(C,e,d);for(;!(e>0?E>=o:E<=o);)E=$t(E,e,d),_++;return _}function na(i,o){let n=1,s=0,a=i,u;for(;n>1e-7&&s<500;){const c=(o(a+1e-7)-o(a-1e-7))/2e-7;u=a-o(a)/c,s++,n=Math.abs(u-a),a=u}return Number.isNaN(a)||Math.abs(a)===1/0||s===500?vg(i,o):a}function vg(i,o){const r=Number.MAX_VALUE,n=-1,s=1.6;let a=i-.01<=n?n+1e-7:i-.01,u=i+.01>=r?r-1e-7:i+.01,c,l,f=0;if(i<=n||i>=r)return g.create(h.NUM);for(let E=0;E<60;E++){c=a<=n?n+1e-7:a,l=u>=r?r-1e-7:u;const b=o(c),R=o(l);if(b*R<=0)break;if(b*R>0)a=c+s*(c-l),u=l+s*(l-c);else return g.create(h.NUM);if(E===59)return g.create(h.NUM)}c=c,l=l;let m=o(c);const d=o(l);let C,_;if(Math.abs(m)<1e-7||Math.abs(d)<1e-7)return g.create(h.NUM);do _=c+(l-c)/2,C=o(_),m*C<0?l=_:c=_,m=o(c),f++;while(Math.abs(C)>1e-7&&f<60);return _}function qr(i,o,e,t,r,n,s){const a=Wt(i,o,n),u=$e(i,o,n,s),c=$n(i,o,n,s);if(a===1){const m=u-c,d=100*e/n+r,C=t/n*m/u+1,_=100*e/n*c/u;return d/C-_}const l=u-c;let f=r/(1+t/n)**(a-1+l/u);for(let m=1;m<=a;m++)f+=100*e/n/(1+t/n)**(m-1+l/u);return f-=100*e/n*c/u,f}function ys(i,o,e,t,r){let n=0,s=r/e;s>=1?(s=1,n=t===1?i:0):n=i*(1-s)**(t-1);const a=i*(1-s)**t;let u=0;return a<o?u=n-o:u=n-a,u<0&&(u=0),u}class Tg extends N{constructor(){super(...arguments);A(this,"minParams",6);A(this,"maxParams",8)}calculate(e,t,r,n,s,a,u,c){const l=u!=null?u:y.create(0),f=c!=null?c:k.create(!0),{isError:m,errorObject:d,variants:C}=H(e,t,r,n,s,a,l);if(m)return d;const[_,E,b,R,p,V,S]=C,D=F(_);if(typeof D!="number")return D;const w=F(E);if(typeof w!="number")return w;const P=F(b);if(typeof P!="number")return P;const L=+R.getValue(),T=+p.getValue(),B=Math.floor(+V.getValue()),W=Math.floor(+S.getValue()),q=+f.getValue();return Number.isNaN(L)||Number.isNaN(T)||Number.isNaN(B)||Number.isNaN(W)||Number.isNaN(q)?g.create(h.VALUE):L<=0||T<=0||![1,2,4].includes(B)||W<0||W>4||Math.floor(D)>=Math.floor(P)?g.create(h.NUM):this._getResult(D,w,P,L,T,B,W,q)}_getResult(e,t,r,n,s,a,u,c){let l=wt(e,t,a);if(l<=0)return y.create(0);l=wt(r,t,a);const f=12/a,m=re(t),d=m.getUTCFullYear(),C=m.getUTCMonth(),_=m.getUTCDate(),E=or(d,C,_);let b=$t(t,-f,E);if(r>t&&c)for(b=t;b<r;)b=$t(b,f,E);let R=e>b?e:b,{days:p}=Ce(R,r,u);if(l>=e){const{days:L}=Ce(R,r,u?4:0);p=L}r<R&&(p=-p);let V=$e(b,t,a,u),S=p/V,D=b,w=e;for(;D>e;){w=D,D=$t(D,-f,E),R=e>D?e:D;const{days:L}=Ce(R,w,u);if(u===0)w>=R||e<=D?p=L:p=-L,V=$e(D,w,a,u);else if(p=w<R?-L:L,u===3)V=365/a;else{const{days:T}=Ce(D,w,u);V=w<D?-T:T}S+=e<=D?c?1:0:p/V}const P=s*n/a*S;return y.create(P)}}class Bg extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",5)}calculate(e,t,r,n,s){const a=s!=null?s:y.create(0),{isError:u,errorObject:c,variants:l}=H(e,t,r,n,a);if(u)return c;const[f,m,d,C,_]=l,E=F(f);if(typeof E!="number")return E;const b=F(m);if(typeof b!="number")return b;const R=+d.getValue(),p=+C.getValue(),V=Math.floor(+_.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(V))return g.create(h.VALUE);if(R<=0||p<=0||V<0||V>4||Math.floor(E)>Math.floor(b))return g.create(h.NUM);if(Math.floor(E)===Math.floor(b))return y.create(0);const{days:S,yearDays:D}=Ce(E,b,V),w=p*R*S/D;return y.create(w)}}class Ig extends N{constructor(){super(...arguments);A(this,"minParams",6);A(this,"maxParams",7)}calculate(e,t,r,n,s,a,u){const c=u!=null?u:y.create(0),{isError:l,errorObject:f,variants:m}=H(e,t,r,n,s,a,c);if(l)return f;const[d,C,_,E,b,R,p]=m,V=F(C);if(typeof V!="number")return V;const S=F(_);if(typeof S!="number")return S;const D=+d.getValue(),w=+E.getValue();let P=+b.getValue();const L=+R.getValue(),T=Math.floor(+p.getValue());return Number.isNaN(D)||Number.isNaN(w)||Number.isNaN(P)||Number.isNaN(L)||Number.isNaN(T)?g.create(h.VALUE):D<=0||w<0||D<w||Math.floor(V)>Math.floor(S)||P<0||L<=0||![0,1,3,4].includes(T)?g.create(h.NUM):(P>1?P=Math.floor(P):P=Math.ceil(P),this._getResult(D,V,S,w,P,L,T))}_getResult(e,t,r,n,s,a,u){const c=e-n,l=e*a,{days:f,yearDays:m}=Ce(t,r,u),d=f/m,C=Math.ceil(c/l-d);if(C<0)return y.create(0);let _=l;return s===0?_=l*d:s===C?_=c-l*(d+s-1):s>C&&(_=0),y.create(_)}}class Fg extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:y.create(0),{isError:a,errorObject:u,variants:c}=H(e,t,r,s);if(a)return u;const[l,f,m,d]=c,C=F(l);if(typeof C!="number")return C;const _=F(f);if(typeof _!="number")return _;const E=Math.floor(+m.getValue()),b=Math.floor(+d.getValue());if(Number.isNaN(E)||Number.isNaN(b))return g.create(h.VALUE);if(![1,2,4].includes(E)||b<0||b>4||Math.floor(C)>=Math.floor(_))return g.create(h.NUM);const R=$n(C,_,E,b);return y.create(R)}}class kg extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:y.create(0),{isError:a,errorObject:u,variants:c}=H(e,t,r,s);if(a)return u;const[l,f,m,d]=c,C=F(l);if(typeof C!="number")return C;const _=F(f);if(typeof _!="number")return _;const E=Math.floor(+m.getValue()),b=Math.floor(+d.getValue());if(Number.isNaN(E)||Number.isNaN(b))return g.create(h.VALUE);if(![1,2,4].includes(E)||b<0||b>4||Math.floor(C)>=Math.floor(_))return g.create(h.NUM);const R=$e(C,_,E,b);return y.create(R)}}class $g extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:y.create(0),{isError:a,errorObject:u,variants:c}=H(e,t,r,s);if(a)return u;const[l,f,m,d]=c,C=F(l);if(typeof C!="number")return C;const _=F(f);if(typeof _!="number")return _;const E=Math.floor(+m.getValue()),b=Math.floor(+d.getValue());if(Number.isNaN(E)||Number.isNaN(b))return g.create(h.VALUE);if(![1,2,4].includes(E)||b<0||b>4||Math.floor(C)>=Math.floor(_))return g.create(h.NUM);const R=re(C),p=re(_);for(p.setUTCFullYear(R.getUTCFullYear()),p<R&&p.setUTCFullYear(p.getUTCFullYear()+1);p>R;)p.setUTCMonth(p.getUTCMonth()-12/E);p.setUTCMonth(p.getUTCMonth()+12/E);const V=Ee(p),{days:S}=Ce(C,V,b);return y.create(S)}}class Yg extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:y.create(0),{isError:a,errorObject:u,variants:c}=H(e,t,r,s);if(a)return u;const[l,f,m,d]=c,C=F(l);if(typeof C!="number")return C;const _=F(f);if(typeof _!="number")return _;const E=Math.floor(+m.getValue()),b=Math.floor(+d.getValue());if(Number.isNaN(E)||Number.isNaN(b))return g.create(h.VALUE);if(![1,2,4].includes(E)||b<0||b>4||Math.floor(C)>=Math.floor(_))return g.create(h.NUM);const R=Jo(C,_,E);return y.create(R)}}class Hg extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:y.create(0),{isError:a,errorObject:u,variants:c}=H(e,t,r,s);if(a)return u;const[l,f,m,d]=c,C=F(l);if(typeof C!="number")return C;const _=F(f);if(typeof _!="number")return _;const E=Math.floor(+m.getValue()),b=Math.floor(+d.getValue());if(Number.isNaN(E)||Number.isNaN(b))return g.create(h.VALUE);if(![1,2,4].includes(E)||b<0||b>4||Math.floor(C)>=Math.floor(_)||wt(C,_,E)<0)return g.create(h.NUM);const p=Wt(C,_,E);return y.create(p)}}class Gg extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:y.create(0),{isError:a,errorObject:u,variants:c}=H(e,t,r,s);if(a)return u;const[l,f,m,d]=c,C=F(l);if(typeof C!="number")return C;const _=F(f);if(typeof _!="number")return _;const E=Math.floor(+m.getValue()),b=Math.floor(+d.getValue());if(Number.isNaN(E)||Number.isNaN(b))return g.create(h.VALUE);if(![1,2,4].includes(E)||b<0||b>4||Math.floor(C)>=Math.floor(_))return g.create(h.NUM);let R=wt(C,_,E);return R<0&&(R=0),y.create(R)}}class Wg extends N{constructor(){super(...arguments);A(this,"minParams",6);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){const{isError:u,errorObject:c,variants:l}=H(e,t,r,n,s,a);if(u)return c;const[f,m,d,C,_,E]=l,b=+f.getValue(),R=+m.getValue(),p=+d.getValue(),V=+C.getValue(),S=+_.getValue(),D=+E.getValue();return Number.isNaN(b)||Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(V)||Number.isNaN(S)||Number.isNaN(D)?g.create(h.VALUE):b<=0||R<=0||p<=0||V<1||S<1||V>S||V>R||S>R||![0,1].includes(D)?g.create(h.NUM):Math.trunc(V)!==V&&Math.trunc(S)!==S&&Math.trunc(V)===Math.trunc(S)?y.create(0):this._getResult(b,R,p,V,S,D)}_getResult(e,t,r,n,s,a){const u=jr(e,t,r,0,a);let c=0,l=Math.ceil(n);l===1&&(a===0&&(c=-r),l++);let f=!1;for(let m=l;m<=s;m++){const d=a===1?Qt(e,m-2,u,r,1):Qt(e,m-1,u,r,0);if(d===0){f=!0;break}c+=a===1?d-u:d}return c*=e,(c<u*(s-n+1)||f)&&(c=u*(s-n+1)),y.create(c)}}class Qg extends N{constructor(){super(...arguments);A(this,"minParams",6);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){const{isError:u,errorObject:c,variants:l}=H(e,t,r,n,s,a);if(u)return c;const[f,m,d,C,_,E]=l,b=+f.getValue(),R=+m.getValue(),p=+d.getValue(),V=+C.getValue(),S=+_.getValue(),D=+E.getValue();return Number.isNaN(b)||Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(V)||Number.isNaN(S)||Number.isNaN(D)?g.create(h.VALUE):b<=0||R<=0||p<=0||V<1||S<1||V>S||![0,1].includes(D)?g.create(h.NUM):Math.trunc(V)!==V&&Math.trunc(S)!==S&&Math.trunc(V)===Math.trunc(S)?y.create(0):this._getResult(b,R,p,V,S,D)}_getResult(e,t,r,n,s,a){const u=jr(e,t,r,0,a);let c=0,l=Math.ceil(n);l===1&&(c=a===0?u+r*e:u,l++);for(let f=l;f<=s;f++)c+=a===1?u-(Qt(e,f-2,u,r,1)-u)*e:u-Qt(e,f-1,u,r,0)*e;return y.create(c)}}class qg extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",5);A(this,"needsLocale",!0)}calculate(e,t,r,n,s){let a=s!=null?s:y.create(12);a.isNull()&&(a=y.create(12));const u=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,a.isArray()?a.getRowCount():1),c=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,a.isArray()?a.getColumnCount():1),l=O(u,c,e,g.create(h.NA)),f=O(u,c,t,g.create(h.NA)),m=O(u,c,r,g.create(h.NA)),d=O(u,c,n,g.create(h.NA)),C=O(u,c,a,g.create(h.NA)),_=l.map((E,b,R)=>{const p=f.get(b,R),V=m.get(b,R),S=d.get(b,R),D=C.get(b,R),{isError:w,errorObject:P,variants:L}=I(E,p,V,S,D);if(w)return P;const[T,B,W,q,ie]=L,Z=+T.getValue(),G=+B.getValue(),ce=+W.getValue();let ge=+q.getValue();const Ae=Math.floor(+ie.getValue());return Z<0||G<0||ce<=0||ge<=0||Math.floor(ge)>Math.floor(ce)||Ae<1||Ae>12?g.create(h.NUM):(ge<1&&(ge=1),ge=Math.floor(ge),this._getResult(Z,G,ce,ge,Ae,b,R))});return u===1&&c===1?_.get(0,0):_}_getResult(e,t,r,n,s,a,u){const c=+(1-(t/e)**(1/r)).toFixed(3),l=e*c*s/12;let f=l,m=0;const d=n===r?r-1:n;for(let _=2;_<=d;_++)m=(e-f)*c,f+=m;let C;return n===1?C=l:n===r?C=(e-f)*c:C=m,Number.isNaN(C)||!Number.isFinite(C)?g.create(h.NUM):a===0&&u===0?y.create(C,Ye(this.getLocale())):y.create(C)}}class Xg extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",5);A(this,"needsLocale",!0)}calculate(e,t,r,n,s){let a=s!=null?s:y.create(2);a.isNull()&&(a=y.create(2));const u=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,a.isArray()?a.getRowCount():1),c=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,a.isArray()?a.getColumnCount():1),l=O(u,c,e,g.create(h.NA)),f=O(u,c,t,g.create(h.NA)),m=O(u,c,r,g.create(h.NA)),d=O(u,c,n,g.create(h.NA)),C=O(u,c,a,g.create(h.NA)),_=l.map((E,b,R)=>{const p=f.get(b,R),V=m.get(b,R),S=d.get(b,R),D=C.get(b,R),{isError:w,errorObject:P,variants:L}=I(E,p,V,S,D);if(w)return P;const[T,B,W,q,ie]=L,Z=+T.getValue(),G=+B.getValue(),ce=+W.getValue(),ge=+q.getValue(),Ae=+ie.getValue();if(Z<0||G<0||ce<=0||ge<=0||ge>ce||Ae<=0)return g.create(h.NUM);const be=ys(Z,G,ce,ge,Ae);return Number.isNaN(be)||!Number.isFinite(be)?g.create(h.NUM):b===0&&R===0?y.create(be,Ye(this.getLocale())):y.create(be)});return u===1&&c===1?_.get(0,0):_}}class Kg extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",5)}calculate(e,t,r,n,s){const a=s!=null?s:y.create(0),{isError:u,errorObject:c,variants:l}=H(e,t,r,n,a);if(u)return c;const[f,m,d,C,_]=l,E=F(f);if(typeof E!="number")return E;const b=F(m);if(typeof b!="number")return b;const R=+d.getValue(),p=+C.getValue(),V=Math.floor(+_.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(V))return g.create(h.VALUE);if(R<=0||p<=0||V<0||V>4||Math.floor(E)>=Math.floor(b))return g.create(h.NUM);const{days:S,yearDays:D}=Ce(E,b,V),w=(p-R)/p*(D/S);return y.create(w)}}class Zg extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=+a.getValue();let l=Math.floor(+u.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);if(l>=0&&l<1)return g.create(h.DIV_BY_ZERO);l=Number.parseInt(`${l}`,10);let f=Number.parseInt(`${c}`,10);f+=c%1*10**Math.ceil(Math.log(l)/Math.LN10)/l;const m=10**(Math.ceil(Math.log(l)/Math.LN2)+1);return f=Math.round(f*m)/m,y.create(f)}}class zg extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=+a.getValue();let l=Math.floor(+u.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);if(l>=0&&l<1)return g.create(h.DIV_BY_ZERO);l=Number.parseInt(`${l}`,10);let f=Number.parseInt(`${c}`,10);return f+=c%1*10**-Math.ceil(Math.log(l)/Math.LN10)*l,y.create(f)}}class Jg extends N{constructor(){super(...arguments);A(this,"minParams",5);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){let u=a!=null?a:y.create(0);u.isNull()&&(u=y.create(0));const{isError:c,errorObject:l,variants:f}=je(e,t,r,n,s,u);if(c)return l;const[m,d,C,_,E,b]=f,R=F(m);if(typeof R!="number")return R;const p=F(d);if(typeof p!="number")return p;const V=+C.getValue(),S=+_.getValue(),D=Math.floor(+E.getValue()),w=Math.floor(+b.getValue());if(Number.isNaN(V)||Number.isNaN(S)||Number.isNaN(D)||Number.isNaN(w))return g.create(h.VALUE);if(V<0||S<0||![1,2,4].includes(D)||w<0||w>4||Math.floor(R)>=Math.floor(p)||R<=0||p<=366)return g.create(h.NUM);const P=eu(R,p,V,S,D,w);return y.create(P)}}class e1 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=+a.getValue();let l=Math.floor(+u.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(c<=0||l<1)return g.create(h.NUM);l=Number.parseInt(`${l}`,10);const f=(1+c/l)**l-1;return y.create(f)}}class t1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",5);A(this,"needsLocale",!0)}calculate(e,t,r,n,s){const a=n!=null?n:y.create(0),u=s!=null?s:y.create(0),c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,a.isArray()?a.getRowCount():1,u.isArray()?u.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,a.isArray()?a.getColumnCount():1,u.isArray()?u.getColumnCount():1),f=O(c,l,e,g.create(h.NA)),m=O(c,l,t,g.create(h.NA)),d=O(c,l,r,g.create(h.NA)),C=O(c,l,a,g.create(h.NA)),_=O(c,l,u,g.create(h.NA)),E=f.map((b,R,p)=>{const V=m.get(R,p),S=d.get(R,p),D=C.get(R,p),w=_.get(R,p),{isError:P,errorObject:L,variants:T}=I(b,V,S,D,w);if(P)return L;const[B,W,q,ie,Z]=T,G=+B.getValue(),ce=+W.getValue(),ge=+q.getValue(),Ae=+ie.getValue(),be=+Z.getValue(),he=Qt(G,ce,ge,Ae,be?1:0);return Number.isNaN(he)||!Number.isFinite(he)?g.create(h.NUM):R===0&&p===0?y.create(he,Ye(this.getLocale())):y.create(he)});return c===1&&l===1?E.get(0,0):E}}class r1 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=H(e);if(r)return n;const[a]=s,u=+a.getValue();if(Number.isNaN(u))return g.create(h.VALUE);let c=u;if(t.isArray()){const l=t.getArrayValue().flat();for(let f=0;f<l.length;f++){const m=l[f];if(m.isBoolean())return g.create(h.VALUE);const d=+m.getValue();if(Number.isNaN(d))return g.create(h.VALUE);c*=1+d}}else{if(t.isBoolean())return g.create(h.VALUE);const l=+t.getValue();if(Number.isNaN(l))return g.create(h.VALUE);c*=1+l}return y.create(c)}}class n1 extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",5)}calculate(e,t,r,n,s){const a=s!=null?s:y.create(0),{isError:u,errorObject:c,variants:l}=H(e,t,r,n,a);if(u)return c;const[f,m,d,C,_]=l,E=F(f);if(typeof E!="number")return E;const b=F(m);if(typeof b!="number")return b;const R=+d.getValue(),p=+C.getValue(),V=Math.floor(+_.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(V))return g.create(h.VALUE);if(R<=0||p<=0||V<0||V>4||Math.floor(E)>=Math.floor(b))return g.create(h.NUM);const{days:S,yearDays:D}=Ce(E,b,V),w=(p-R)/R*(D/S);return y.create(w)}}class s1 extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",6);A(this,"needsLocale",!0)}calculate(e,t,r,n,s,a){const u=s!=null?s:y.create(0),c=a!=null?a:y.create(0),l=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,u.isArray()?u.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,u.isArray()?u.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=O(l,f,e,g.create(h.NA)),d=O(l,f,t,g.create(h.NA)),C=O(l,f,r,g.create(h.NA)),_=O(l,f,n,g.create(h.NA)),E=O(l,f,u,g.create(h.NA)),b=O(l,f,c,g.create(h.NA)),R=m.map((p,V,S)=>{const D=d.get(V,S),w=C.get(V,S),P=_.get(V,S),L=E.get(V,S),T=b.get(V,S),{isError:B,errorObject:W,variants:q}=I(p,D,w,P,L,T);if(B)return W;const[ie,Z,G,ce,ge,Ae]=q,be=+ie.getValue(),he=+Z.getValue(),Ue=+G.getValue(),dt=+ce.getValue(),Xt=+ge.getValue(),Ct=+Ae.getValue();if(he<1||Math.floor(he)>Math.ceil(Ue))return g.create(h.NUM);const Ke=tu(be,he,Ue,dt,Xt,Ct?1:0);return Number.isNaN(Ke)||!Number.isFinite(Ke)?g.create(h.NUM):V===0&&S===0?y.create(Ke,Ye(this.getLocale())):y.create(Ke)});return l===1&&f===1?R.get(0,0):R}}class a1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){let r=t!=null?t:y.create(.1);return r.isNull()&&(r=y.create(.1)),r.isArray()?r.map((n,s,a)=>this._handleSingleObject(e,n,s,a)):this._handleSingleObject(e,r)}_handleSingleObject(e,t,r=0,n=0){if(e.isError())return e;if(t.isError())return t;if(e.isNull())return g.create(h.VALUE);if(!e.isArray())return g.create(h.NUM);const{_values:s,valuesHasError:a}=this._getValues(e);if(a)return g.create(h.VALUE);let u=t;if(u.isString()&&(u=u.convertToNumberObjectValue(),u.isError()))return u;const c=+u.getValue(),{positive:l,negative:f}=this._checkValues(s);if(!l||!f)return g.create(h.NUM);const m=na(c,d=>ru(d,s));return typeof m!="number"?m:r===0&&n===0?y.create(m,"0%"):y.create(m)}_getValues(e){const t=[];let r=!1;return e.iterator(n=>{const s=n;if(s.isError())return r=!0,!1;if(s.isNull()||s.isBoolean())return!0;const a=+s.getValue();if(Number.isNaN(a))return!0;t.push(a)}),{_values:t,valuesHasError:r}}_checkValues(e){let t=!1,r=!1;for(let n=0;n<e.length;n++)e[n]>0&&(t=!0),e[n]<0&&(r=!0);return{positive:t,negative:r}}}class i1 extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.map((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_),{isError:p,errorObject:V,variants:S}=I(d,E,b,R);if(p)return V;const[D,w,P,L]=S,T=+D.getValue(),B=+w.getValue(),W=+P.getValue(),q=+L.getValue();if(W===0)return g.create(h.DIV_BY_ZERO);const ie=q*T*(B/W-1);return y.create(ie)});return s===1&&a===1?m.get(0,0):m}}class o1 extends N{constructor(){super(...arguments);A(this,"minParams",5);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){let u=a!=null?a:y.create(0);u.isNull()&&(u=y.create(0));const{isError:c,errorObject:l,variants:f}=je(e,t,r,n,s,u);if(c)return l;const[m,d,C,_,E,b]=f,R=F(m);if(typeof R!="number")return R;const p=F(d);if(typeof p!="number")return p;const V=+C.getValue(),S=+_.getValue(),D=Math.floor(+E.getValue()),w=Math.floor(+b.getValue());if(Number.isNaN(V)||Number.isNaN(S)||Number.isNaN(D)||Number.isNaN(w))return g.create(h.VALUE);if(V<0||S<0||![1,2,4].includes(D)||w<0||w>4||Math.floor(R)>=Math.floor(p))return g.create(h.NUM);let P=eu(R,p,V,S,D,w);return P/=1+S/D,y.create(P)}}class u1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{_values:n,numberValues:s,positive:a,negative:u}=this._getValues(e),c=Math.max(t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),l=Math.max(t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),f=O(c,l,t,g.create(h.NA)),m=O(c,l,r,g.create(h.NA)),d=f.map((C,_,E)=>{const b=m.get(_,E);if(e.isError())return e;if(b.isError())return b;if(n.isError())return n;if(!a||!u)return g.create(h.DIV_BY_ZERO);const R=+C.getValue(),p=+b.getValue();if(Number.isNaN(R)||Number.isNaN(p))return g.create(h.VALUE);if(p===-1)return g.create(h.DIV_BY_ZERO);const V=this._getResult(s,R,p);return _===0&&E===0?y.create(V,"0%"):y.create(V)});return c===1&&l===1?d.get(0,0):d}_getValues(e){let t=e,r=[],n=!1,s=!1;if(!e.isError())if(e.isNull())t=g.create(h.VALUE);else if(!e.isArray())t=g.create(h.DIV_BY_ZERO);else{const{numberValues:a,valuesHasError:u,errorObject:c,positive:l,negative:f}=this._checkValues(e);u&&(t=c),r=a,n=l,s=f}return{_values:t,numberValues:r,positive:n,negative:s}}_checkValues(e){const t=[];let r=!1,n=g.create(h.VALUE),s=!1,a=!1;return e.iterator(u=>{const c=u;if(c.isError())return r=!0,n=c,!1;if(c.isNull()||c.isBoolean())return!0;const l=+c.getValue();if(Number.isNaN(l))return!0;l>0&&(s=!0),l<0&&(a=!0),t.push(l)}),{numberValues:t,valuesHasError:r,errorObject:n,positive:s,negative:a}}_getResult(e,t,r){const n=e.length,s=[],a=[];for(let d=0;d<n;d++)e[d]>0?a.push(e[d]):e[d]<0&&s.push(e[d]);const u=this._npv(r,e,"positive"),c=this._npv(t,e,"negative"),l=-u*(1+r)**n,f=c*(1+t);return(l/f)**(1/(n-1))-1}_npv(e,t,r){let n=0;for(let s=1;s<=t.length;s++){const a=t[s-1];(r==="positive"&&a>0||r==="negative"&&a<0)&&(n+=a/(1+e)**s)}return n}}class c1 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=+a.getValue();let l=Math.floor(+u.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(c<=0||l<1)return g.create(h.NUM);l=Number.parseInt(`${l}`,10);const f=((c+1)**(1/l)-1)*l;return y.create(f)}}class l1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",5)}calculate(e,t,r,n,s){const a=n!=null?n:y.create(0),u=s!=null?s:y.create(0),c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,a.isArray()?a.getRowCount():1,u.isArray()?u.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,a.isArray()?a.getColumnCount():1,u.isArray()?u.getColumnCount():1),f=O(c,l,e,g.create(h.NA)),m=O(c,l,t,g.create(h.NA)),d=O(c,l,r,g.create(h.NA)),C=O(c,l,a,g.create(h.NA)),_=O(c,l,u,g.create(h.NA)),E=f.map((b,R,p)=>{const V=m.get(R,p),S=d.get(R,p),D=C.get(R,p),w=_.get(R,p),{isError:P,errorObject:L,variants:T}=I(b,V,S,D,w);if(P)return L;const[B,W,q,ie,Z]=T,G=+B.getValue(),ce=+W.getValue(),ge=+q.getValue(),Ae=+ie.getValue();let be=+Z.getValue();if(be=be?1:0,G===0&&ce===0)return g.create(h.DIV_BY_ZERO);let he;if(G===0)he=-(ge+Ae)/ce;else{const Ue=ce*(1+G*be)-Ae*G,dt=ge*G+ce*(1+G*be);he=Math.log(Ue/dt)/Math.log(1+G)}return Number.isNaN(he)||!Number.isFinite(he)?g.create(h.NUM):y.create(he)});return c===1&&l===1?E.get(0,0):E}}class f1 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",255);A(this,"needsLocale",!0)}calculate(e,...t){if(e.isError())return e;const{isError:r,errorObject:n,values:s}=this._getValues(t);return e.isArray()?e.map((a,u,c)=>this._handleSingleObject(a,r,n,s,u,c)):this._handleSingleObject(e,r,n,s)}_handleSingleObject(e,t,r,n,s=0,a=0){let u=e;if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;if(t)return r;const c=+e.getValue(),l=ru(c,n);return Number.isNaN(l)||Math.abs(l)===1/0?g.create(h.DIV_BY_ZERO):s===0&&a===0?y.create(l,Ye(this.getLocale())):y.create(l)}_getValues(e){const t=[];for(let r=0;r<e.length;r++){const n=e[r];if(n.isError())return{isError:!0,errorObject:n};if(n.isArray()){let s=!1,a=g.create(h.VALUE);if(n.iterator(u=>{const c=u;if(c.isError())return s=!0,a=c,!1;if(c.isNull()||c.isBoolean())return!0;const l=+c.getValue();if(Number.isNaN(l))return!0;t.push(l)}),s)return{isError:s,errorObject:a}}else{const s=+n.getValue();if(Number.isNaN(s))return{isError:!0,errorObject:g.create(h.VALUE)};t.push(s)}}return{isError:!1,values:t}}}class m1 extends N{constructor(){super(...arguments);A(this,"minParams",8);A(this,"maxParams",9)}calculate(e,t,r,n,s,a,u,c,l){let f=l!=null?l:y.create(0);f.isNull()&&(f=y.create(0));const{isError:m,errorObject:d,variants:C}=je(e,t,r,n,s,a,u,c,f);if(m)return d;const[_,E,b,R,p,V,S,D,w]=C,P=F(_);if(typeof P!="number")return P;const L=F(E);if(typeof L!="number")return L;const T=F(b);if(typeof T!="number")return T;const B=F(R);if(typeof B!="number")return B;const W=+p.getValue(),q=+V.getValue(),ie=+S.getValue(),Z=Math.floor(+D.getValue()),G=Math.floor(+w.getValue());if(Number.isNaN(W)||Number.isNaN(q)||Number.isNaN(ie)||Number.isNaN(Z)||Number.isNaN(G))return g.create(h.VALUE);if(W<0||q<0||ie<=0||![1,2,4].includes(Z)||G<0||G>4||!this._validDate(L,B,P,T,Z))return g.create(h.NUM);const ce=nu(P,L,T,B,W,q,ie,Z,G);return y.create(ce)}_validDate(e,t,r,n,s){return this._getDateCorrectOrder(e,t,r,n)&&su(e,t,s)&&gr(n,e,s)}_getDateCorrectOrder(e,t,r,n){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)&&Math.floor(r)>Math.floor(n)}}class h1 extends N{constructor(){super(...arguments);A(this,"minParams",8);A(this,"maxParams",9)}calculate(e,t,r,n,s,a,u,c,l){let f=l!=null?l:y.create(0);f.isNull()&&(f=y.create(0));const{isError:m,errorObject:d,variants:C}=je(e,t,r,n,s,a,u,c,f);if(m)return d;const[_,E,b,R,p,V,S,D,w]=C,P=F(_);if(typeof P!="number")return P;const L=F(E);if(typeof L!="number")return L;const T=F(b);if(typeof T!="number")return T;const B=F(R);if(typeof B!="number")return B;const W=+p.getValue(),q=+V.getValue(),ie=+S.getValue(),Z=Math.floor(+D.getValue()),G=Math.floor(+w.getValue());return Number.isNaN(W)||Number.isNaN(q)||Number.isNaN(ie)||Number.isNaN(Z)||Number.isNaN(G)?g.create(h.VALUE):W<0||q<=0||ie<=0||![1,2,4].includes(Z)||G<0||G>4||!this._validDate(L,B,P,T,Z)?g.create(h.NUM):this._getResult(P,L,T,B,W,q,ie,Z,G)}_validDate(e,t,r,n,s){return this._getDateCorrectOrder(e,t,r,n)&&su(e,t,s)&&gr(n,e,s)}_getDateCorrectOrder(e,t,r,n){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)&&Math.floor(r)>Math.floor(n)}_getResult(e,t,r,n,s,a,u,c,l){const{days:f}=Ce(e,t,l),m=(s*f*100-(a-100))/((a-100)*.25*(1+2*f)+f*100);function d(_){return a-nu(e,t,r,n,s,_,u,c,l)}const C=na(m,_=>d(_));return typeof C!="number"?C:y.create(C)}}class g1 extends N{constructor(){super(...arguments);A(this,"minParams",7);A(this,"maxParams",8)}calculate(e,t,r,n,s,a,u,c){let l=c!=null?c:y.create(0);l.isNull()&&(l=y.create(0));const{isError:f,errorObject:m,variants:d}=je(e,t,r,n,s,a,u,l);if(f)return m;const[C,_,E,b,R,p,V,S]=d,D=F(C);if(typeof D!="number")return D;const w=F(_);if(typeof w!="number")return w;const P=F(E);if(typeof P!="number")return P;const L=+b.getValue(),T=+R.getValue(),B=+p.getValue(),W=Math.floor(+V.getValue()),q=Math.floor(+S.getValue());if(Number.isNaN(L)||Number.isNaN(T)||Number.isNaN(B)||Number.isNaN(W)||Number.isNaN(q))return g.create(h.VALUE);if(L<0||T<0||B<=0||![1,2,4].includes(W)||q<0||q>4||!this._validDate(w,D,P,W))return g.create(h.NUM);const ie=this._getResult(D,w,P,L,T,B,W,q);return y.create(ie)}_validDate(e,t,r,n){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)&&gr(r,e,n)}_getResult(e,t,r,n,s,a,u,c){const l=this._getCoupDate(t,r,u),f=this._getFrac(r,e,l,u,c),m=this._getFrac(r,t,l,u,c),d=this._getFrac(e,t,l,u,c);return(a*u+100*n*(m-f*(1+s*d/u)))/(s*d+u)}_getCoupDate(e,t,r){const n=re(e),s=re(t);for(s.setUTCFullYear(n.getUTCFullYear()),s>n&&s.setUTCFullYear(s.getUTCFullYear()-1);s<n;)s.setUTCMonth(s.getUTCMonth()+12/r);return Ee(s)}_getFrac(e,t,r,n,s){const a=re(e),u=re(t),c=re(r);for(c.setUTCFullYear(a.getUTCFullYear()),c<a&&c.setUTCFullYear(c.getUTCFullYear()+1);c>a;)c.setUTCMonth(c.getUTCMonth()-12/n);let l=Ee(c);c.setUTCMonth(c.getUTCMonth()+12/n);let f=Ee(c);if(f>=t){const{days:p}=Ce(e,t,s),V=$e(l,f,n,s);return p/V}const{days:m}=Ce(e,f,s),d=$e(l,f,n,s);let C=m/d;const _=re(f),E=re(f);for(E.setUTCMonth(E.getUTCMonth()+12/n);E<u;)_.setUTCMonth(_.getUTCMonth()+12/n),E.setUTCMonth(E.getUTCMonth()+12/n),C+=1;l=Ee(_),f=Ee(E);const{days:b}=Ce(l,t,s),R=$e(l,f,n,s);return C+=b/R,C}}class d1 extends N{constructor(){super(...arguments);A(this,"minParams",8);A(this,"maxParams",9)}calculate(e,t,r,n,s,a,u,c){let l=c!=null?c:y.create(0);l.isNull()&&(l=y.create(0));const{isError:f,errorObject:m,variants:d}=je(e,t,r,n,s,a,u,l);if(f)return m;const[C,_,E,b,R,p,V,S]=d,D=F(C);if(typeof D!="number")return D;const w=F(_);if(typeof w!="number")return w;const P=F(E);if(typeof P!="number")return P;const L=+b.getValue(),T=+R.getValue(),B=+p.getValue(),W=Math.floor(+V.getValue()),q=Math.floor(+S.getValue());if(Number.isNaN(L)||Number.isNaN(T)||Number.isNaN(B)||Number.isNaN(W)||Number.isNaN(q))return g.create(h.VALUE);if(L<0||T<=0||B<=0||![1,2,4].includes(W)||q<0||q>4||!this._validDate(w,D,P,W))return g.create(h.NUM);const ie=this._getResult(D,w,P,L,T,B,W,q);return y.create(ie)}_validDate(e,t,r,n){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)&&gr(r,e,n)}_getResult(e,t,r,n,s,a,u,c){const l=this._getCoupDate(t,r,u),f=this._getFrac(r,e,l,u,c),m=this._getFrac(r,t,l,u,c),d=this._getFrac(e,t,l,u,c);return(u*(a-s)+100*n*(m-f))/(d*s+100*n*f*d/u)}_getCoupDate(e,t,r){const n=re(e),s=re(t);for(s.setUTCFullYear(n.getUTCFullYear()),s>n&&s.setUTCFullYear(s.getUTCFullYear()-1);s<n;)s.setUTCMonth(s.getUTCMonth()+12/r);return Ee(s)}_getFrac(e,t,r,n,s){const a=re(e),u=re(t),c=re(r);for(c.setUTCFullYear(a.getUTCFullYear()),c<a&&c.setUTCFullYear(c.getUTCFullYear()+1);c>a;)c.setUTCMonth(c.getUTCMonth()-12/n);let l=Ee(c);c.setUTCMonth(c.getUTCMonth()+12/n);let f=Ee(c);if(f>=t){const{days:p}=Ce(e,t,s),V=$e(l,f,n,s);return p/V}const{days:m}=Ce(e,f,s),d=$e(l,f,n,s);let C=m/d;const _=re(f),E=re(f);for(E.setUTCMonth(E.getUTCMonth()+12/n);E<u;)_.setUTCMonth(_.getUTCMonth()+12/n),E.setUTCMonth(E.getUTCMonth()+12/n),C+=1;l=Ee(_),f=Ee(E);const{days:b}=Ce(l,t,s),R=$e(l,f,n,s);return C+=b/R,C}}class C1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.map((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d),{isError:E,errorObject:b,variants:R}=I(f,C,_);if(E)return b;const[p,V,S]=R,D=+p.getValue(),w=+V.getValue(),P=+S.getValue();if(D<=-1)return g.create(h.NUM);const L=(Math.log(P)-Math.log(w))/Math.log(1+D);return Number.isNaN(L)||!Number.isFinite(L)?g.create(h.NUM):y.create(L)});return n===1&&s===1?l.get(0,0):l}}class _1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",5);A(this,"needsLocale",!0)}calculate(e,t,r,n,s){const a=n!=null?n:y.create(0),u=s!=null?s:y.create(0),c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,a.isArray()?a.getRowCount():1,u.isArray()?u.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,a.isArray()?a.getColumnCount():1,u.isArray()?u.getColumnCount():1),f=O(c,l,e,g.create(h.NA)),m=O(c,l,t,g.create(h.NA)),d=O(c,l,r,g.create(h.NA)),C=O(c,l,a,g.create(h.NA)),_=O(c,l,u,g.create(h.NA)),E=f.map((b,R,p)=>{const V=m.get(R,p),S=d.get(R,p),D=C.get(R,p),w=_.get(R,p),{isError:P,errorObject:L,variants:T}=I(b,V,S,D,w);if(P)return L;const[B,W,q,ie,Z]=T,G=+B.getValue(),ce=+W.getValue(),ge=+q.getValue(),Ae=+ie.getValue(),be=+Z.getValue();if(G<=-1)return g.create(h.NUM);const he=jr(G,ce,ge,Ae,be?1:0);return Number.isNaN(he)||!Number.isFinite(he)?g.create(h.NUM):R===0&&p===0?y.create(he,Ye(this.getLocale())):y.create(he)});return c===1&&l===1?E.get(0,0):E}}class A1 extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",6);A(this,"needsLocale",!0)}calculate(e,t,r,n,s,a){const u=s!=null?s:y.create(0),c=a!=null?a:y.create(0),l=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,u.isArray()?u.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,u.isArray()?u.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=O(l,f,e,g.create(h.NA)),d=O(l,f,t,g.create(h.NA)),C=O(l,f,r,g.create(h.NA)),_=O(l,f,n,g.create(h.NA)),E=O(l,f,u,g.create(h.NA)),b=O(l,f,c,g.create(h.NA)),R=m.map((p,V,S)=>{const D=d.get(V,S),w=C.get(V,S),P=_.get(V,S),L=E.get(V,S),T=b.get(V,S),{isError:B,errorObject:W,variants:q}=I(p,D,w,P,L,T);if(B)return W;const[ie,Z,G,ce,ge,Ae]=q,be=+ie.getValue(),he=+Z.getValue(),Ue=+G.getValue(),dt=+ce.getValue(),Xt=+ge.getValue(),Ct=+Ae.getValue();if(he<1||Math.floor(he)>Math.ceil(Ue)||he-Ue>=1)return g.create(h.NUM);const Ke=jr(be,Ue,dt,Xt,Ct?1:0)-tu(be,he,Ue,dt,Xt,Ct?1:0);return Number.isNaN(Ke)||!Number.isFinite(Ke)?g.create(h.NUM):V===0&&S===0?y.create(Ke,Ye(this.getLocale())):y.create(Ke)});return l===1&&f===1?R.get(0,0):R}}class E1 extends N{constructor(){super(...arguments);A(this,"minParams",6);A(this,"maxParams",7)}calculate(e,t,r,n,s,a,u){let c=u!=null?u:y.create(0);c.isNull()&&(c=y.create(0));const{isError:l,errorObject:f,variants:m}=je(e,t,r,n,s,a,c);if(l)return f;const[d,C,_,E,b,R,p]=m,V=F(d);if(typeof V!="number")return V;const S=F(C);if(typeof S!="number")return S;const D=+_.getValue(),w=+E.getValue(),P=+b.getValue(),L=Math.floor(+R.getValue()),T=Math.floor(+p.getValue());if(Number.isNaN(D)||Number.isNaN(w)||Number.isNaN(P)||Number.isNaN(L)||Number.isNaN(T))return g.create(h.VALUE);if(D<0||w<0||P<=0||![1,2,4].includes(L)||T<0||T>4||V>=S||!gr(V,S,L))return g.create(h.NUM);const B=qr(V,S,D,w,P,L,T);return y.create(B)}}class b1 extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",5)}calculate(e,t,r,n,s){let a=s!=null?s:y.create(0);a.isNull()&&(a=y.create(0));const{isError:u,errorObject:c,variants:l}=je(e,t,r,n,a);if(u)return c;const[f,m,d,C,_]=l,E=F(f);if(typeof E!="number")return E;const b=F(m);if(typeof b!="number")return b;const R=+d.getValue(),p=+C.getValue(),V=Math.floor(+_.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(V))return g.create(h.VALUE);if(R<=0||p<=0||V<0||V>4||E>=b)return g.create(h.NUM);const{days:S,yearDays:D}=Ce(E,b,V),w=p-R*p*S/D;return y.create(w)}}class y1 extends N{constructor(){super(...arguments);A(this,"minParams",5);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){let u=a!=null?a:y.create(0);u.isNull()&&(u=y.create(0));const{isError:c,errorObject:l,variants:f}=je(e,t,r,n,s,u);if(c)return l;const[m,d,C,_,E,b]=f,R=F(m);if(typeof R!="number")return R;const p=F(d);if(typeof p!="number")return p;const V=F(C);if(typeof V!="number")return V;const S=+_.getValue(),D=+E.getValue(),w=Math.floor(+b.getValue());if(Number.isNaN(S)||Number.isNaN(D)||Number.isNaN(w))return g.create(h.VALUE);const P=this._getDateCorrectOrder(p,R,V);if(S<0||D<0||w<0||w>4||!P)return g.create(h.NUM);const L=Ko(R,w),{days:T}=Ce(R,p,w),{days:B}=Ce(V,p,w),{days:W}=Ce(V,R,w),q=(100+B/L*S*100)/(1+T/L*D)-W/L*S*100;return y.create(q)}_getDateCorrectOrder(e,t,r){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)}}class R1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",5);A(this,"needsLocale",!0)}calculate(e,t,r,n,s){const a=n!=null?n:y.create(0),u=s!=null?s:y.create(0),c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,a.isArray()?a.getRowCount():1,u.isArray()?u.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,a.isArray()?a.getColumnCount():1,u.isArray()?u.getColumnCount():1),f=O(c,l,e,g.create(h.NA)),m=O(c,l,t,g.create(h.NA)),d=O(c,l,r,g.create(h.NA)),C=O(c,l,a,g.create(h.NA)),_=O(c,l,u,g.create(h.NA)),E=f.map((b,R,p)=>{const V=m.get(R,p),S=d.get(R,p),D=C.get(R,p),w=_.get(R,p),{isError:P,errorObject:L,variants:T}=I(b,V,S,D,w);if(P)return L;const[B,W,q,ie,Z]=T,G=+B.getValue(),ce=+W.getValue(),ge=+q.getValue(),Ae=+ie.getValue();let be=+Z.getValue();be=be?1:0;const he=G===0?-ge*ce-Ae:((1-(1+G)**ce)/G*ge*(1+G*be)-Ae)/(1+G)**ce;return Number.isNaN(he)||!Number.isFinite(he)?g.create(h.NUM):R===0&&p===0?y.create(he,Ye(this.getLocale())):y.create(he)});return c===1&&l===1?E.get(0,0):E}}class p1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){const u=n!=null?n:y.create(0),c=s!=null?s:y.create(0),l=a!=null?a:y.create(.1),f=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,u.isArray()?u.getRowCount():1,c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1),m=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,u.isArray()?u.getColumnCount():1,c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1),d=O(f,m,e,g.create(h.NA)),C=O(f,m,t,g.create(h.NA)),_=O(f,m,r,g.create(h.NA)),E=O(f,m,u,g.create(h.NA)),b=O(f,m,c,g.create(h.NA)),R=O(f,m,l,g.create(h.NA)),p=d.map((V,S,D)=>{const w=C.get(S,D),P=_.get(S,D),L=E.get(S,D),T=b.get(S,D),B=R.get(S,D),{isError:W,errorObject:q,variants:ie}=I(V,w,P,L,T,B);if(W)return q;const[Z,G,ce,ge,Ae,be]=ie,he=+Z.getValue(),Ue=+G.getValue(),dt=+ce.getValue(),Xt=+ge.getValue();let Ct=+Ae.getValue();const Ke=+be.getValue();return Ct=Ct?1:0,he<=0||Ue>=0?g.create(h.NUM):this._getResult(he,Ue,dt,Xt,Ct,Ke,S,D)});return f===1&&m===1?p.get(0,0):p}_getResult(e,t,r,n,s,a,u,c){let m=a;for(let d=0;d<20;d++){if(m<=-1)return g.create(h.NUM);let C,_;if(Math.abs(m)<1e-10?C=r*(1+e*m)+t*(1+m*s)*e+n:(_=(1+m)**e,C=r*_+t*(1/m+s)*(_-1)+n),Math.abs(C)<1e-10)break;let E;if(Math.abs(m)<1e-10)E=r*e+t*s*e;else{_=(1+m)**e;const b=e*(1+m)**(e-1);E=r*b+t*(1/m+s)*b+t*(-1/(m*m))*(_-1)}m-=C/E}return u===0&&c===0?y.create(m,"0%"):y.create(m)}}class N1 extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",5)}calculate(e,t,r,n,s){let a=s!=null?s:y.create(0);a.isNull()&&(a=y.create(0));const{isError:u,errorObject:c,variants:l}=je(e,t,r,n,a);if(u)return c;const[f,m,d,C,_]=l,E=F(f);if(typeof E!="number")return E;const b=F(m);if(typeof b!="number")return b;const R=+d.getValue(),p=+C.getValue(),V=Math.floor(+_.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(V))return g.create(h.VALUE);if(R<=0||p<=0||V<0||V>4||E>=b)return g.create(h.NUM);const{days:S,yearDays:D}=Ce(E,b,V),w=R/(1-p*S/D);return w<0?g.create(h.NUM):y.create(w)}}class V1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",6)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.map((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d),{isError:E,errorObject:b,variants:R}=I(f,C,_);if(E)return b;const[p,V,S]=R,D=+p.getValue(),w=+V.getValue(),P=+S.getValue();if(D<=0)return g.create(h.NUM);if(w===0&&P===0)return y.create(0);const L=(P/w)**(1/D)-1;return Number.isNaN(L)||!Number.isFinite(L)||P/w<0?g.create(h.NUM):y.create(L)});return n===1&&s===1?l.get(0,0):l}}class O1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3);A(this,"needsLocale",!0)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.map((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);if(C.isError())return C;if(_.isError())return _;const E=+f.getValue(),b=+C.getValue(),R=+_.getValue();if(Number.isNaN(E)||Number.isNaN(b)||Number.isNaN(R))return g.create(h.VALUE);if(R===0)return g.create(h.DIV_BY_ZERO);const p=(E-b)/R;return m===0&&d===0?y.create(p,Ye(this.getLocale())):y.create(p)});return n===1&&s===1?l.get(0,0):l}}class M1 extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4);A(this,"needsLocale",!0)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.map((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);if(E.isError())return E;if(b.isError())return b;if(R.isError())return R;const p=+d.getValue(),V=+E.getValue(),S=+b.getValue(),D=+R.getValue();if(Number.isNaN(p)||Number.isNaN(V)||Number.isNaN(S)||Number.isNaN(D))return g.create(h.VALUE);if(V<0||S<=0||D>S)return g.create(h.NUM);const w=(p-V)*(S-D+1)*2/(S*(S+1));return C===0&&_===0?y.create(w,Ye(this.getLocale())):y.create(w)});return s===1&&a===1?m.get(0,0):m}}class S1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,variants:a}=je(e,t,r);if(n)return s;const[u,c,l]=a,f=F(u);if(typeof f!="number")return f;const m=F(c);if(typeof m!="number")return m;const d=+l.getValue();if(Number.isNaN(d))return g.create(h.VALUE);if(d<=0||f>=m)return g.create(h.NUM);const C=Math.floor(m)-Math.floor(f),E=re(f).getUTCFullYear(),b=kn(E);if(C>b)return g.create(h.NUM);let R=365*d/(360-d*C);if(C>182){const p=100*(1-d*C/360),V=C/365;if(R=(-V+Math.sqrt(V*V-(V*2-1)*(1-100/p)))/(V-.5),Number.isNaN(R))return g.create(h.NUM)}return R<0?g.create(h.NUM):y.create(R)}}class D1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3);A(this,"needsLocale",!0)}calculate(e,t,r){const{isError:n,errorObject:s,variants:a}=je(e,t,r);if(n)return s;const[u,c,l]=a,f=F(u);if(typeof f!="number")return f;const m=F(c);if(typeof m!="number")return m;const d=+l.getValue();if(Number.isNaN(d))return g.create(h.VALUE);if(d<=0||f>=m)return g.create(h.NUM);const C=Math.floor(m)-Math.floor(f),E=re(f).getUTCFullYear(),b=kn(E);if(C>b)return g.create(h.NUM);const R=100*(1-d*C/360);return R<0?g.create(h.NUM):y.create(R,Ye(this.getLocale()))}}class w1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,variants:a}=je(e,t,r);if(n)return s;const[u,c,l]=a,f=F(u);if(typeof f!="number")return f;const m=F(c);if(typeof m!="number")return m;const d=+l.getValue();if(Number.isNaN(d))return g.create(h.VALUE);if(d<=0||f>=m)return g.create(h.NUM);const C=Math.floor(m)-Math.floor(f),E=re(f).getUTCFullYear(),b=kn(E);if(C>b)return g.create(h.NUM);const R=(100-d)/d*360/C;return y.create(R)}}class P1 extends N{constructor(){super(...arguments);A(this,"minParams",5);A(this,"maxParams",7);A(this,"needsLocale",!0)}calculate(e,t,r,n,s,a,u){let c=a!=null?a:y.create(2);c.isNull()&&(c=y.create(2));let l=u!=null?u:k.create(!1);l.isNull()&&(l=k.create(!1));const f=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1,c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1),m=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1,c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1),d=O(f,m,e,g.create(h.NA)),C=O(f,m,t,g.create(h.NA)),_=O(f,m,r,g.create(h.NA)),E=O(f,m,n,g.create(h.NA)),b=O(f,m,s,g.create(h.NA)),R=O(f,m,c,g.create(h.NA)),p=O(f,m,l,g.create(h.NA));return this._getResultArray(d,C,_,E,b,R,p,f,m)}_getResultArray(e,t,r,n,s,a,u,c,l){const f=e.map((m,d,C)=>{const _=t.get(d,C),E=r.get(d,C),b=n.get(d,C),R=s.get(d,C),p=a.get(d,C),V=u.get(d,C),{isError:S,errorObject:D,variants:w}=I(m,_,E,b,R,p,V);if(S)return D;const[P,L,T,B,W,q,ie]=w,Z=+P.getValue(),G=+L.getValue(),ce=+T.getValue(),ge=+B.getValue(),Ae=+W.getValue(),be=+q.getValue(),he=+ie.getValue();if(Z<0||G<0||ce<0||ge<0||Ae<0||Ae>ce||ge>Ae||be<0)return g.create(h.NUM);if(ce===0&&ge===0&&Ae===0)return g.create(h.DIV_BY_ZERO);const Ue=this._getResult(Z,G,ce,ge,Ae,be,he);return d===0&&C===0?y.create(Ue,Ye(this.getLocale())):y.create(Ue)});return c===1&&l===1?f.get(0,0):f}_getResult(e,t,r,n,s,a,u){const c=Math.floor(n),l=Math.ceil(s);let f=0;if(e<t){if(n>=1||u)return f;const m=Math.abs(e-t);return f=m*(s-n)>m?m:m*(s-n),-f}if(u)for(let m=c+1;m<=l;m++){let d=ys(e,t,r,m,a);m===c+1?d*=Math.min(s,c+1)-n:m===l&&(d*=s+1-l),f+=d}else{const m=e-this._getVdb(e,t,r,r,n,a);f=this._getVdb(m,t,r,r-n,s-n,a)}return f}_getVdb(e,t,r,n,s,a){const u=Math.ceil(s);let c=0,l=e-t,f=0,m=0,d=!1;for(let C=1;C<=u;C++){if(d)m=f;else{const _=ys(e,t,r,C,a);f=l/(n-(C-1)),f>_?(m=f,d=!0):(m=_,l-=_)}C===u&&(m*=s+1-u),c+=m}return c}}class L1 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:n,errorObejct:s,_values:a,_dates:u}=this._checkErrors(e,t);if(n)return s;let c=r!=null?r:y.create(.1);c.isNull()&&(c=y.create(.1));const{isError:l,errorObject:f,variants:m}=H(c);if(l)return f;const[d]=m,C=+d.getValue();if(Number.isNaN(C))return g.create(h.VALUE);const{positive:_,negative:E}=this._checkValues(a);if(!_||!E||(a==null?void 0:a.length)!==(u==null?void 0:u.length)||C<0)return g.create(h.NUM);const b=na(C,R=>this._iterF(a,u,R));return typeof b!="number"?b:y.create(b)}_checkErrors(e,t){if(e.isError())return{isError:!0,errorObejct:e};if(t.isError())return{isError:!0,errorObejct:t};const{isError:r,errorObejct:n,_values:s}=this._checkErrorValues(e);if(r)return{isError:r,errorObejct:n};const{isError:a,errorObejct:u,_dates:c}=this._checkErrorDates(t);return a?{isError:a,errorObejct:u}:{isError:!1,_values:s,_dates:c}}_checkErrorValues(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);return e.iterator(s=>{const a=s;if(a.isError())return r=!0,n=a,!1;if(a.isBoolean())return r=!0,n=g.create(h.VALUE),!1;const u=+a.getValue();if(Number.isNaN(u))return r=!0,n=g.create(h.VALUE),!1;t.push(u)}),r?{isError:r,errorObejct:n}:t.length<=1?{isError:!0,errorObejct:g.create(h.NA)}:{isError:r,_values:t}}else{const r=e.getValue();return e.isBoolean()||e.isString()&&!M.isRealNum(r)?{isError:!0,errorObejct:g.create(h.VALUE)}:{isError:!0,errorObejct:g.create(h.NA)}}}_checkErrorDates(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);return e.iterator(s=>{if(s!=null&&s.isError())return r=!0,n=s,!1;if(s!=null&&s.isBoolean())return r=!0,n=g.create(h.VALUE),!1;const a=+s.getValue();if(Number.isNaN(a))return r=!0,n=g.create(h.VALUE),!1;if(a<0)return r=!0,n=g.create(h.NUM),!1;t.push(Math.floor(a))}),r?{isError:r,errorObejct:n}:t.length<=1?{isError:!0,errorObejct:g.create(h.NA)}:{isError:r,_dates:t}}else{const r=e.getValue();return e.isBoolean()||e.isString()&&!M.isRealNum(r)?{isError:!0,errorObejct:g.create(h.VALUE)}:+r<0?{isError:!0,errorObejct:g.create(h.NUM)}:{isError:!0,errorObejct:g.create(h.NA)}}}_checkValues(e){let t=!1,r=!1;for(let n=0;n<e.length;n++)e[n]>0&&(t=!0),e[n]<0&&(r=!0);return{positive:t,negative:r}}_iterF(e,t,r){return e.reduce((n,s,a)=>n+s/(1+r)**((t[a]-t[0])/365),0)}}class x1 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){if(e.isNull()||t.isNull()||r.isNull())return g.create(h.NA);const{isError:n,errorObject:s,variants:a}=H(e);if(n)return s;const[u]=a,c=+u.getValue();if(Number.isNaN(c))return g.create(h.VALUE);let{isError:l,errorObejct:f,_values:m,_dates:d}=this._checkErrors(t,r);if(l)return f;if(m=m,d=d,c<0||m.length!==d.length)return g.create(h.NUM);let C=0;const _=d[0];for(let E=0;E<d.length;E++){const b=d[E],R=m[E];C+=R/(1+c)**((b-_)/365)}return y.create(C)}_checkErrors(e,t){if(e.isError())return{isError:!0,errorObejct:e};if(t.isError())return{isError:!0,errorObejct:t};const{isError:r,errorObejct:n,_values:s}=this._checkErrorValues(e);if(r)return{isError:r,errorObejct:n};const{isError:a,errorObejct:u,_dates:c}=this._checkErrorDates(t);return a?{isError:a,errorObejct:u}:{isError:!1,_values:s,_dates:c}}_checkErrorValues(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);return e.iterator(s=>{const a=s;if(a.isError())return r=!0,n=a,!1;if(a.isNull()||a.isBoolean())return r=!0,n=g.create(h.VALUE),!1;const u=+a.getValue();if(Number.isNaN(u))return r=!0,n=g.create(h.VALUE),!1;t.push(u)}),r?{isError:r,errorObejct:n}:t.length<=1?{isError:!0,errorObejct:g.create(h.NA)}:{isError:r,_values:t}}else{const r=e.getValue();return e.isNull()||e.isBoolean()||e.isString()&&!M.isRealNum(r)?{isError:!0,errorObejct:g.create(h.VALUE)}:{isError:!0,errorObejct:g.create(h.NA)}}}_checkErrorDates(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);return e.iterator(s=>{const a=s;if(a.isError())return r=!0,n=a,!1;if(a.isNull()||a.isBoolean())return r=!0,n=g.create(h.VALUE),!1;const u=+a.getValue();if(Number.isNaN(u))return r=!0,n=g.create(h.VALUE),!1;if(u<0)return r=!0,n=g.create(h.NUM),!1;t.push(Math.floor(u))}),r?{isError:r,errorObejct:n}:t.length<=1?{isError:!0,errorObejct:g.create(h.NA)}:{isError:r,_dates:t}}else{const r=e.getValue();return e.isNull()||e.isBoolean()||e.isString()&&!M.isRealNum(r)?{isError:!0,errorObejct:g.create(h.VALUE)}:+r<0?{isError:!0,errorObejct:g.create(h.NUM)}:{isError:!0,errorObejct:g.create(h.NA)}}}}class j1 extends N{constructor(){super(...arguments);A(this,"minParams",6);A(this,"maxParams",7)}calculate(e,t,r,n,s,a,u){let c=u!=null?u:y.create(0);c.isNull()&&(c=y.create(0));const{isError:l,errorObject:f,variants:m}=je(e,t,r,n,s,a,c);if(l)return f;const[d,C,_,E,b,R,p]=m,V=F(d);if(typeof V!="number")return V;const S=F(C);if(typeof S!="number")return S;const D=+_.getValue(),w=+E.getValue(),P=+b.getValue(),L=Math.floor(+R.getValue()),T=Math.floor(+p.getValue());if(Number.isNaN(D)||Number.isNaN(w)||Number.isNaN(P)||Number.isNaN(L)||Number.isNaN(T))return g.create(h.VALUE);if(D<0||w<=0||P<=0||![1,2,4].includes(L)||T<0||T>4||V>=S||!gr(V,S,L))return g.create(h.NUM);const B=this._getResult(V,S,D,w,P,L,T);return y.create(B)}_getResult(e,t,r,n,s,a,u){if(Wt(e,t,a)>1){let E=r||.01,b=qr(e,t,r,E,s,a,u),R=b-n;for(let p=0;p<100&&Math.abs(R)>1e-7;p++)b=qr(e,t,r,1.01*E,s,a,u),E+=-R/(b-n-R)*E*.01,R=qr(e,t,r,E,s,a,u)-n;return E}const l=$n(e,t,a,u),f=$e(e,t,a,u),{days:m}=Ce(e,t,u),d=n/100+l/f*r/a;return(s/100+r/a-d)/d*a*f/m}}class U1 extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",5)}calculate(e,t,r,n,s){let a=s!=null?s:y.create(0);a.isNull()&&(a=y.create(0));const{isError:u,errorObject:c,variants:l}=je(e,t,r,n,a);if(u)return c;const[f,m,d,C,_]=l,E=F(f);if(typeof E!="number")return E;const b=F(m);if(typeof b!="number")return b;const R=+d.getValue(),p=+C.getValue(),V=Math.floor(+_.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(V))return g.create(h.VALUE);if(R<=0||p<=0||V<0||V>4||E>=b)return g.create(h.NUM);const{days:S,yearDays:D}=Ce(E,b,V),w=(p/R-1)/(S/D);return y.create(w)}}class v1 extends N{constructor(){super(...arguments);A(this,"minParams",5);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){let u=a!=null?a:y.create(0);u.isNull()&&(u=y.create(0));const{isError:c,errorObject:l,variants:f}=je(e,t,r,n,s,u);if(c)return l;const[m,d,C,_,E,b]=f,R=F(m);if(typeof R!="number")return R;const p=F(d);if(typeof p!="number")return p;const V=F(C);if(typeof V!="number")return V;const S=+_.getValue(),D=+E.getValue(),w=Math.floor(+b.getValue());if(Number.isNaN(S)||Number.isNaN(D)||Number.isNaN(w))return g.create(h.VALUE);const P=this._getDateCorrectOrder(p,R,V);if(S<0||D<=0||w<0||w>4||!P)return g.create(h.NUM);const L=Ko(R,w),{days:T}=Ce(R,p,w),{days:B}=Ce(V,p,w),{days:W}=Ce(V,R,w),q=((1+B/L*S)/(D/100+W/L*S)-1)/(T/L);return y.create(q)}_getDateCorrectOrder(e,t,r){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)}}const au=[[Tg,J.ACCRINT],[Bg,J.ACCRINTM],[Ig,J.AMORLINC],[Fg,J.COUPDAYBS],[kg,J.COUPDAYS],[$g,J.COUPDAYSNC],[Yg,J.COUPNCD],[Hg,J.COUPNUM],[Gg,J.COUPPCD],[Wg,J.CUMIPMT],[Qg,J.CUMPRINC],[qg,J.DB],[Xg,J.DDB],[Kg,J.DISC],[Zg,J.DOLLARDE],[zg,J.DOLLARFR],[Jg,J.DURATION],[e1,J.EFFECT],[t1,J.FV],[r1,J.FVSCHEDULE],[n1,J.INTRATE],[s1,J.IPMT],[a1,J.IRR],[i1,J.ISPMT],[o1,J.MDURATION],[u1,J.MIRR],[c1,J.NOMINAL],[l1,J.NPER],[f1,J.NPV],[m1,J.ODDFPRICE],[h1,J.ODDFYIELD],[g1,J.ODDLPRICE],[d1,J.ODDLYIELD],[C1,J.PDURATION],[_1,J.PMT],[A1,J.PPMT],[E1,J.PRICE],[b1,J.PRICEDISC],[y1,J.PRICEMAT],[R1,J.PV],[p1,J.RATE],[N1,J.RECEIVED],[V1,J.RRI],[O1,J.SLN],[M1,J.SYD],[S1,J.TBILLEQ],[D1,J.TBILLPRICE],[w1,J.TBILLYIELD],[P1,J.VDB],[L1,J.XIRR],[x1,J.XNPV],[j1,J.YIELD],[U1,J.YIELDDISC],[v1,J.YIELDMAT]];class T1 extends N{constructor(){super(...arguments);A(this,"needsReferenceObject",!0);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isError())return r;if(r.isReferenceObject()&&(r=r.toArrayValueObject()),r.isArray()){const n=r.getRowCount(),s=r.getColumnCount();if(n===1&&s===1){const a=r.get(0,0);return this._handleSingleObject(a,t)}return r.map(a=>a.isError()?a:this._handleSingleObject(a,t,!0))}return this._handleSingleObject(r,t)}_handleSingleObject(e,t,r=!1){let n=t;if(n.isError())return n;if(!n.isReferenceObject())return g.create(h.NA);const s=n.getCurrentActiveSheetData(),{columnData:a,defaultColumnWidth:u}=s;n=n.toArrayValueObject();const c=n.getCurrentRow(),l=n.getCurrentColumn();n=n.getFirstCell();const f=`${e.getValue()}`;let m;switch(f.toLocaleLowerCase()){case"address":return j.create(`$${M.Tools.chatAtABC(l)}$${c+1}`);case"col":return y.create(l+1);case"color":return y.create(0);case"contents":return n;case"filename":return g.create(h.VALUE);case"format":return j.create("G");case"parentheses":return y.create(0);case"prefix":return j.create("");case"protect":return y.create(1);case"row":return y.create(c+1);case"type":return m="v",n.isNull()&&(m="b"),n.isString()&&(m="l"),j.create(m);case"width":return this._getWidthResult(a,u,l,r);default:return g.create(h.VALUE)}}_getWidthResult(e,t,r,n){var u;let s=(u=e[r])==null?void 0:u.w;if(!s&&s!==0&&(s=t),n)return y.create(s);const a=[[s,s===t]];return K.createByArray(a)}}class B1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1);A(this,"_errorTypeValueMap",new Map([[h.NULL,1],[h.DIV_BY_ZERO,2],[h.VALUE,3],[h.REF,4],[h.NAME,5],[h.NUM,6],[h.NA,7],[h.CONNECT,8],[h.CALC,14]]))}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=e.getValue(),r=this._errorTypeValueMap.get(t);return r?y.create(r):g.create(h.NA)}}var Ne=(i=>(i.CELL="CELL",i.ERROR_TYPE="ERROR.TYPE",i.INFO="INFO",i.ISBLANK="ISBLANK",i.ISERR="ISERR",i.ISERROR="ISERROR",i.ISEVEN="ISEVEN",i.ISFORMULA="ISFORMULA",i.ISLOGICAL="ISLOGICAL",i.ISNA="ISNA",i.ISNONTEXT="ISNONTEXT",i.ISNUMBER="ISNUMBER",i.ISODD="ISODD",i.ISOMITTED="ISOMITTED",i.ISREF="ISREF",i.ISTEXT="ISTEXT",i.N="N",i.NA="NA",i.SHEET="SHEET",i.SHEETS="SHEETS",i.TYPE="TYPE",i))(Ne||{});class I1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isNull()?k.create(!0):e.isArray()?e.mapValue(t=>t.isNull()?k.create(!0):k.create(!1)):k.create(!1)}}class F1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.getValue()===h.NA?k.create(!1):e.isError()?k.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===h.NA?k.create(!1):t.isError()?k.create(!0):k.create(!1)):k.create(!1)}}class k1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isError()?k.create(!0):e.isArray()?e.mapValue(t=>t.isError()?k.create(!0):k.create(!1)):k.create(!1)}}class $1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;if(t.isArray()){const s=t.getRowCount(),a=t.getColumnCount();if(s>1||a>1)return g.create(h.VALUE);t=t.get(0,0)}if(t.isError())return t;if(t.isBoolean())return g.create(h.VALUE);const r=Math.trunc(+t.getValue());if(Number.isNaN(r))return g.create(h.VALUE);const n=r%2===0;return k.create(n)}}class Y1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1);A(this,"needsReferenceObject",!0)}calculate(e){var u;if(e.isError())return e;if(!e.isReferenceObject())return g.create(h.NA);const t=(u=e.getCurrentActiveSheetData())==null?void 0:u.cellData.getMatrix(),{startRow:r,startColumn:n}=e.getRangePosition(),s=e.toArrayValueObject(),a=s.mapValue((c,l,f)=>{var d;const m=(d=t==null?void 0:t[r+l])==null?void 0:d[n+f];return m!=null&&m.f||m!=null&&m.si?k.create(!0):k.create(!1)});return s.getRowCount()===1&&s.getColumnCount()===1?a.get(0,0):a}}class H1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isBoolean()?k.create(!0):e.isArray()?e.mapValue(t=>t.isBoolean()?k.create(!0):k.create(!1)):k.create(!1)}}class G1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.getValue()===h.NA?k.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===h.NA?k.create(!0):k.create(!1)):k.create(!1)}}class W1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return!e.isArray()&&!e.isString()?k.create(!0):e.isArray()?e.mapValue(t=>t.isString()?k.create(!1):k.create(!0)):k.create(!1)}}class Q1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isNumber()?k.create(!0):e.isArray()?e.mapValue(t=>t.isNumber()?k.create(!0):k.create(!1)):k.create(!1)}}class q1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;if(t.isArray()){const s=t.getRowCount(),a=t.getColumnCount();if(s>1||a>1)return g.create(h.VALUE);t=t.get(0,0)}if(t.isError())return t;if(t.isBoolean())return g.create(h.VALUE);const r=Math.trunc(+t.getValue());if(Number.isNaN(r))return g.create(h.VALUE);const n=r%2!==0;return k.create(n)}}class X1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1);A(this,"needsReferenceObject",!0)}calculate(e){return e.isReferenceObject()?k.create(!0):k.create(!1)}}class K1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isString()?k.create(!0):e.isArray()?e.mapValue(t=>t.isString()?k.create(!0):k.create(!1)):k.create(!1)}}class Z1 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;if(e.isArray()&&(t=e.get(0,0)),t.isError())return t;if(t.isString())return y.create(0);const r=+t.getValue();return y.create(r)}}class z1 extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",0)}calculate(){return g.create(h.NA)}}class J1 extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",1);A(this,"needsReferenceObject",!0);A(this,"needsSheetsInfo",!0)}calculate(e){var u;if(e!=null&&e.isError())return e;const{sheetOrder:t,sheetNameMap:r}=this.getSheetsInfo();if(!e){const c=t.findIndex(l=>l===this.subUnitId);return y.create(c+1)}if(e.isReferenceObject()){const c=e.getForcedSheetId(),l=e.getDefaultSheetId(),f=t.findIndex(m=>c?m===c:m===l);return y.create(f+1)}if(e.isArray())return g.create(h.NA);const n=`${e.getValue()}`.toLocaleLowerCase(),s=(u=Object.entries(r).find(([c,l])=>l.toLocaleLowerCase()===n))==null?void 0:u[0];if(!s)return g.create(h.NA);const a=t.findIndex(c=>c===s);return y.create(a+1)}}class e0 extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",0);A(this,"needsSheetsInfo",!0)}calculate(){const{sheetOrder:e}=this.getSheetsInfo();return y.create(e.length)}}class t0 extends N{constructor(){super(...arguments);A(this,"needsReferenceObject",!0);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isReferenceObject()){const t=e.getRowCount(),r=e.getColumnCount();if(t===1&&r===1){const n=e.getFirstCell();if(n.isError())return y.create(16);if(n.isBoolean())return y.create(4);if(n.isString())return y.create(2);if(n.isNumber()||n.isNull())return y.create(1)}else return y.create(64)}else{if(e.isArray())return y.create(64);if(e.isError())return y.create(16);if(e.isBoolean())return y.create(4);if(e.isString())return y.create(2);if(e.isNumber()||e.isNull())return y.create(1)}return y.create(128)}}const iu=[[T1,Ne.CELL],[B1,Ne.ERROR_TYPE],[I1,Ne.ISBLANK],[F1,Ne.ISERR],[k1,Ne.ISERROR],[$1,Ne.ISEVEN],[Y1,Ne.ISFORMULA],[H1,Ne.ISLOGICAL],[G1,Ne.ISNA],[W1,Ne.ISNONTEXT],[Q1,Ne.ISNUMBER],[q1,Ne.ISODD],[X1,Ne.ISREF],[K1,Ne.ISTEXT],[Z1,Ne.N],[z1,Ne.NA],[J1,Ne.SHEET],[e0,Ne.SHEETS],[t0,Ne.TYPE]];class r0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=!0,r=!0,n=null;for(const s of e){if(s.isError())return s;if(s.isArray()){if(s.iterator(a=>{if(a!=null&&a.isError())return n=a,!1;(a!=null&&a.isBoolean()||a!=null&&a.isNumber())&&(t=t&&!!a.getValue(),r=!1)}),n)return n}else(s.isBoolean()||s.isNumber())&&(t=t&&!!s.getValue(),r=!1)}return r?g.create(h.VALUE):k.create(t)}}class n0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2);A(this,"needsReferenceObject",!0)}calculate(e,t){let r=e,n=null;if(e.isReferenceObject()&&(r=e.toArrayValueObject(),n=e),r.isError())return r;if(t.isError())return t;if(!(t.isValueObject()&&t.isLambda()&&t.getLambdaPrivacyVarKeys().length===1))return g.create(h.VALUE);const s=t,a=r.isArray()?r.getRowCount():1,u=r.isArray()?r.getColumnCount():1;r=O(a,u,r);const c=[[]];for(let l=0;l<u;l++){const f=[];for(let C=0;C<a;C++){const _=r.get(C,l);f.push([_])}let m=K.create({calculateValueList:f,rowCount:a,columnCount:1,unitId:"",sheetId:"",row:0,column:0});if(n){const{startRow:C,startColumn:_}=n.getRangePosition(),E={startRow:C,startColumn:_+l,endRow:C+a-1,endColumn:_+l};m=this.createReferenceObject(n,E)}let d=s.execute(m);if(d.isArray()){const C=d.getRowCount(),_=d.getColumnCount();if(C>1||_>1)return g.create(h.CALC);d=d.get(0,0)}d.isNull()&&(d=y.create(0)),c[0].push(d)}return u===1?c[0][0]:K.create({calculateValueList:c,rowCount:1,columnCount:u,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class s0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2);A(this,"needsReferenceObject",!0)}calculate(e,t){let r=e,n=null;if(e.isReferenceObject()&&(r=e.toArrayValueObject(),n=e),r.isError())return r;if(t.isError())return t;if(!(t.isValueObject()&&t.isLambda()&&t.getLambdaPrivacyVarKeys().length===1))return g.create(h.VALUE);const s=t,a=r.isArray()?r.getRowCount():1,u=r.isArray()?r.getColumnCount():1;r=O(a,u,r);const c=[];for(let l=0;l<a;l++){const f=[[]];for(let C=0;C<u;C++){const _=r.get(l,C);f[0].push(_)}let m=K.create({calculateValueList:f,rowCount:1,columnCount:u,unitId:"",sheetId:"",row:0,column:0});if(n){const{startRow:C,startColumn:_}=n.getRangePosition(),E={startRow:C+l,startColumn:_,endRow:C+l,endColumn:_+u-1};m=this.createReferenceObject(n,E)}let d=s.execute(m);if(d.isArray()){const C=d.getRowCount(),_=d.getColumnCount();if(C>1||_>1)return g.create(h.CALC);d=d.get(0,0)}d.isNull()&&(d=y.create(0)),c.push([d])}return a===1?c[0][0]:K.create({calculateValueList:c,rowCount:a,columnCount:1,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class a0 extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",0)}calculate(){return k.create(!1)}}var Ve=(i=>(i.AND="AND",i.BYCOL="BYCOL",i.BYROW="BYROW",i.FALSE="FALSE",i.IF="IF",i.IFERROR="IFERROR",i.IFNA="IFNA",i.IFS="IFS",i.LAMBDA="LAMBDA",i.LET="LET",i.MAKEARRAY="MAKEARRAY",i.MAP="MAP",i.NOT="NOT",i.OR="OR",i.REDUCE="REDUCE",i.SCAN="SCAN",i.SWITCH="SWITCH",i.TRUE="TRUE",i.XOR="XOR",i))(Ve||{});class i0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r=k.create(!1)){const n=this._getSingleValueObject(e);if(n.isError())return n;if(!n.isArray())return n.getValue()?t:r;const s=Math.max(n.isArray()?n.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),a=Math.max(n.isArray()?n.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=O(s,a,n),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA));return u.map((f,m,d)=>{if(f.isNull())return g.create(h.NA);{const C=c.get(m,d)||ae.create(),_=l.get(m,d)||ae.create();return this._calculateSingleCell(f,C,_)}})}_getSingleValueObject(e){return e.isArray()&&e.getRowCount()===1&&e.getColumnCount()===1?e.getFirstCell():e}_calculateSingleCell(e,t,r){return e.isNull()?g.create(h.NA):e.getValue()?t.isNull()?g.create(h.NA):t:r.isNull()?g.create(h.NA):r}}class o0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;if(!e.isArray())return e.isError()?t:e;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e),a=O(r,n,t);return s.iterator((u,c,l)=>{u!=null&&u.isError()&&s.set(c,l,a.get(c,l))}),s}}class u0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError()&&e.getErrorType()!==h.NA)return e;if(t.isError())return t;if(!e.isArray())return e.isError()&&e.getErrorType()===h.NA?t:e;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e),a=O(r,n,t);return s.iterator((u,c,l)=>{u!=null&&u.isError()&&u.getErrorType()===h.NA&&s.set(c,l,a.get(c,l))}),s}}class c0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",255)}calculate(...e){if(e.length%2!==0)return g.create(h.NA);for(let a=0;a<e.length;a++)if(e[a].isError())return e[a];const t=Math.max(...e.map(a=>a.isArray()?a.getRowCount():1)),r=Math.max(...e.map(a=>a.isArray()?a.getColumnCount():1)),n=e.map(a=>O(t,r,a,g.create(h.NA))),s=n[0].map((a,u,c)=>{for(let l=0;l<n.length;l+=2){const f=n[l].get(u,c)||ae.create(),m=n[l+1].get(u,c)||ae.create();if(f.isNull())continue;if(f.isError())return f;const d=f.getValue();if(f.isString()){if(`${d}`.toLocaleUpperCase()==="TRUE")return m;if(`${d}`.toLocaleUpperCase()==="FALSE")continue;return g.create(h.VALUE)}if(+d)return m.isNull()?g.create(h.NA):m}return g.create(h.NA)});return t===1&&r===1?s.get(0,0):s}}class l0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){return g.create(h.VALUE)}}class f0 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",255)}calculate(...e){return g.create(h.VALUE)}}class m0 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(...e){const t=this.getIndexNumValue(e[0]);if(typeof t!="number")return t;const r=this.getIndexNumValue(e[1]);if(typeof r!="number")return r;if(!(e[2].isValueObject()&&e[2].isLambda()))return g.create(h.VALUE);const n=e[2],s=[];for(let a=0;a<t;a++){s[a]==null&&(s[a]=[]);for(let u=0;u<r;u++){let c=n.execute(y.create(a+1),y.create(u+1));c.isArray()&&(c=c.get(0,0)),s[a][u]=c}}return new Bi(s)}isAsync(){return!0}}let h0=class extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",255);A(this,"needsReferenceObject",!0)}calculate(...e){const t=[];let r=null,n=0,s=0;for(let u=0;u<e.length;u++){const c=e[u];let l=c;if(l.isReferenceObject()&&(l=c.toArrayValueObject()),l.isError())return l;if(u===e.length-1){if(!(c.isValueObject()&&c.isLambda()))return g.create(h.VALUE);r=c}else t.push(c),n=Math.max(n,l.isArray()?l.getRowCount():1),s=Math.max(s,l.isArray()?l.getColumnCount():1)}const a=this._getResultArray(t,r,n,s);return a instanceof g?a:n===1&&s===1?a[0][0]:K.create({calculateValueList:a,rowCount:n,columnCount:s,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArray(e,t,r,n){const s=[];for(let a=0;a<r;a++){const u=[];for(let c=0;c<n;c++){const l=[];let f=!1;for(let d=0;d<e.length;d++){let C=e[d],_=null;if(C.isReferenceObject()&&(_=C,C=C.toArrayValueObject()),!C.isArray())if(a===0&&c===0){l.push(_||C);continue}else{u.push(g.create(h.NA)),f=!0;break}let E=C.get(a,c);if(!E){u.push(g.create(h.NA)),f=!0;break}if(_){const{startRow:b,startColumn:R}=_.getRangePosition(),p={startRow:b+a,startColumn:R+c,endRow:b+a,endColumn:R+c};E=this.createReferenceObject(_,p)}l.push(E)}if(f||l.length===0)continue;let m=t.execute(...l);if(m.isArray()){const d=m.getRowCount(),C=m.getColumnCount();if(d>1||C>1)return g.create(h.CALC);m=m.get(0,0)}m.isNull()&&(m=y.create(0)),u.push(m)}s.push(u)}return s}};class g0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;const t=+e.getValue();return Number.isNaN(t)?g.create(h.VALUE):k.create(!t)}}class d0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=!1,r=!0,n=null;for(const s of e){if(s.isError())return s;if(s.isArray()){if(s.iterator(a=>{if(a!=null&&a.isError())return n=a,!1;(a!=null&&a.isBoolean()||a!=null&&a.isNumber())&&(t=t||!!a.getValue(),r=!1)}),n)return n}else(s.isBoolean()||s.isNumber())&&(t=t||!!s.getValue(),r=!1)}return r?new g(h.VALUE):new k(t)}}class C0 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3);A(this,"needsReferenceObject",!0)}calculate(e,t,r){let n,s;e.isReferenceObject()?(n=e.toArrayValueObject(),s=e):(n=e,s=null);let a,u;return t.isReferenceObject()?(a=t.toArrayValueObject(),u=t):(a=t,u=null),n.isArray()?n.mapValue(c=>this._handleSingleValueObject(c,a,r,s,u)):this._handleSingleValueObject(n,a,r,s,u)}_handleSingleValueObject(e,t,r,n,s){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(!(r.isValueObject()&&r.isLambda()&&r.getLambdaPrivacyVarKeys().length===2))return g.create(h.VALUE);const a=r,u=t.isArray()?t.getRowCount():1,c=t.isArray()?t.getColumnCount():1;let l=e;n&&(l=n);for(let f=0;f<u;f++)for(let m=0;m<c;m++){let d=t.isArray()?t.get(f,m):t;if(d.isError())return d;if(s){const{startRow:_,startColumn:E}=s.getRangePosition(),b={startRow:_+f,startColumn:E+m,endRow:_+f,endColumn:E+m};d=this.createReferenceObject(s,b)}let C=a.execute(l,d);if(C.isError())return C;C.isNull()&&(C=y.create(0)),l=C}return l.isReferenceObject()?l.toArrayValueObject():l}}class _0 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3);A(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=e,s=null;e.isReferenceObject()&&(n=e.toArrayValueObject(),s=e),n=n;let a=t,u=null;if(t.isReferenceObject()&&(a=t.toArrayValueObject(),u=t),a=a,n.isError())return n;if(a.isError())return a;if(r.isError())return r;if(!(r.isValueObject()&&r.isLambda()&&r.getLambdaPrivacyVarKeys().length===2))return g.create(h.VALUE);if(n.isArray()){const c=n.getRowCount(),l=n.getColumnCount();if(c>1||l>1)return g.create(h.CALC);n=n.get(0,0)}return this._getResult(n,a,r,s,u)}_getResult(e,t,r,n,s){const a=[],u=t.isArray()?t.getRowCount():1,c=t.isArray()?t.getColumnCount():1;let l=e;n&&(l=n);for(let f=0;f<u;f++){const m=[];for(let d=0;d<c;d++){if(l.isError()){m.push(l);continue}let C=t.isArray()?t.get(f,d):t;if(C.isError()){l=C,m.push(C);continue}if(s){const{startRow:E,startColumn:b}=s.getRangePosition(),R={startRow:E+f,startColumn:b+d,endRow:E+f,endColumn:b+d};C=this.createReferenceObject(s,R)}let _=r.execute(l,C);if(_.isArray()){const E=_.getRowCount(),b=_.getColumnCount();if(E>1||b>1)return g.create(h.CALC);_=_.get(0,0)}_.isNull()&&(_=y.create(0)),l=_,m.push(_)}a.push(m)}return u===1&&c===1?a[0][0]:K.create({calculateValueList:a,rowCount:u,columnCount:c,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class A0 extends N{constructor(){super(...arguments);A(this,"minParams",3)}calculate(e,...t){if(e.isError())return e;const r=t.length%2!==0,n=r?t[t.length-1]:ae.create();return!e.isArray()&&!t.some(s=>s.isArray())?this._handleNonArrayInputs(e,t,n,r):this._handleArrayInputs(e,t,n,r)}_handleNonArrayInputs(e,t,r,n){for(let s=0;s<t.length-(n?1:0);s+=2){const a=t[s],u=t[s+1];if(!a.isNull()){if(a.isError())return a;if(`${e.getValue()}`.toLocaleLowerCase()===`${a.getValue()}`.toLocaleLowerCase())return u.isNull()?g.create(h.NA):u}}return r.isNull()?g.create(h.NA):r}_handleArrayInputs(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,...t.map(f=>f.isArray()?f.getRowCount():1),r.isArray()?r.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,...t.map(f=>f.isArray()?f.getColumnCount():1),r.isArray()?r.getColumnCount():1),u=O(s,a,e),c=t.map(f=>O(s,a,f,g.create(h.NA))),l=O(s,a,r,g.create(h.NA));return u.map((f,m,d)=>{for(let _=0;_<c.length-(n?1:0);_+=2){const E=c[_].get(m,d)||ae.create(),b=c[_+1].get(m,d)||ae.create();if(!E.isNull()){if(E.isError()||f.isError())return E.isError()?E:f;if(`${f.getValue()}`.toLocaleLowerCase()===`${E.getValue()}`.toLocaleLowerCase())return b.isNull()?g.create(h.NA):b}}const C=l.get(m,d)||ae.create();return C.isNull()?g.create(h.NA):C})}}class E0 extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",0)}calculate(){return k.create(!0)}}class b0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=0,r=!0,n=null;for(const s of e){if(s.isError())return s;if(s.isArray()){if(s.iterator(a=>{if(a!=null&&a.isError())return n=a,!1;(a!=null&&a.isBoolean()||a!=null&&a.isNumber())&&(a.getValue()&&t++,r=!1)}),n)return n}else(s.isBoolean()||s.isNumber())&&(s.getValue()&&t++,r=!1)}return r?g.create(h.VALUE):k.create(t%2===1)}}const ou=[[r0,Ve.AND],[n0,Ve.BYCOL],[s0,Ve.BYROW],[a0,Ve.FALSE],[i0,Ve.IF],[o0,Ve.IFERROR],[u0,Ve.IFNA],[c0,Ve.IFS],[l0,Ve.LAMBDA],[f0,Ve.LET],[m0,Ve.MAKEARRAY],[h0,Ve.MAP],[g0,Ve.NOT],[d0,Ve.OR],[C0,Ve.REDUCE],[_0,Ve.SCAN],[A0,Ve.SWITCH],[E0,Ve.TRUE],[b0,Ve.XOR]];class y0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",5)}calculate(e,t,r,n,s){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;if(n!=null&&n.isError())return n;if(s!=null&&s.isError())return s;const a=r!=null?r:y.create(1),u=n!=null?n:k.create(!0),c=s!=null?s:j.create(""),l=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,a.isArray()?a.getRowCount():1,u.isArray()?u.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,a.isArray()?a.getColumnCount():1,u.isArray()?u.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=O(l,f,e,g.create(h.NA)),d=O(l,f,t,g.create(h.NA)),C=O(l,f,a,g.create(h.NA)),_=O(l,f,u,g.create(h.NA)),E=O(l,f,c,g.create(h.NA));return m.map((b,R,p)=>{const V=d.get(R,p)||g.create(h.NA),S=C.get(R,p)||g.create(h.NA),D=_.get(R,p)||g.create(h.NA),w=E.get(R,p)||g.create(h.NA);return b.isError()?b:V.isError()?V:S.isError()?S:D.isError()?D:w.isError()?w:this._calculateSingleCell(b,V,S,D,w)})}_calculateSingleCell(e,t,r,n,s){const a=Number.parseInt(`${Number(e.getValue())-1}`),u=Number.parseInt(`${Number(t.getValue())-1}`),c=Number.parseInt(`${Number(r.getValue())}`);if(Number.isNaN(a)||Number.isNaN(u)||Number.isNaN(c)||c<1||c>4)return g.create(h.VALUE);const l=R0(c),f=this.getZeroOrOneByOneDefault(n),m=`${s.getValue()}`,d=Jr(m)?`'${m}'`:m,C={startRow:a,startColumn:u,endRow:a,endColumn:u,startAbsoluteRefType:l,endAbsoluteRefType:l},_=n&&!f?fm(C):St(C);return j.create(d!==""?`${d}!${_}`:_)}}function R0(i){switch(i){case 1:return M.AbsoluteRefType.ALL;case 2:return M.AbsoluteRefType.ROW;case 3:return M.AbsoluteRefType.COLUMN;case 4:return M.AbsoluteRefType.NONE;default:return M.AbsoluteRefType.ALL}}class p0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1);A(this,"needsReferenceObject",!0)}calculate(e){return e.isReferenceObject()?y.create(1):g.create(h.VALUE)}}class N0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",255);A(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,...t){let r=e;if(r.isError())return r;if(r.isReferenceObject()&&(r=r.toArrayValueObject()),!r.isArray()){const c=r.convertToNumberObjectValue();return c.isError()?c:t[Math.trunc(+c.getValue())-1]||g.create(h.VALUE)}let n=r.isArray()?r.getRowCount():1,s=r.isArray()?r.getColumnCount():1;t.forEach((c,l)=>{if(c.isArray()){const f=c;n=Math.max(n,f.getRowCount()),s=Math.max(s,f.getColumnCount())}else n=Math.max(n,1),s=Math.max(s,1)});const a=O(n,s,r,g.create(h.NA)),u=t.map(c=>{let l=c;return l.isReferenceObject()&&(l=l.toArrayValueObject()),O(n,s,l,g.create(h.NA))});return a.map((c,l,f)=>{if(c.isError())return c;const m=c.convertToNumberObjectValue();if(m.isError())return m;const d=u[Math.trunc(+m.getValue())-1];let C=(d==null?void 0:d.get(l,f))||g.create(h.VALUE);return C!=null&&C.isNull()&&(C=y.create(0)),C})}}class V0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=[];for(let a=0;a<t.length;a++){let u=t[a];if(u.isArray()){const f=u.getRowCount(),m=u.getColumnCount();if(f>1||m>1)return g.create(h.VALUE);u=u.get(0,0)}if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;const c=Math.trunc(+u.getValue());if(c===0||Math.abs(c)>n)return g.create(h.VALUE);let l=e;n>1&&(c<0?l=e.slice(void 0,[c+n,c+1+n]):l=e.slice(void 0,[c-1,c]));for(let f=0;f<r;f++)s[f]||(s[f]=[]),e.isArray()?s[f].push(l.get(f,0)):s[f].push(e)}return K.create({calculateValueList:s,rowCount:s.length,columnCount:s[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class O0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;const r=e.isArray()?e.getRowCount():1,n=[];for(let s=0;s<t.length;s++){let a=t[s];if(a.isArray()){const l=a.getRowCount(),f=a.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);a=a.get(0,0)}if(a.isString()&&(a=a.convertToNumberObjectValue()),a.isError())return a;const u=Math.trunc(+a.getValue());if(u===0||Math.abs(u)>r)return g.create(h.VALUE);let c=e;r>1&&(u<0?c=e.slice([u+r,u+1+r]):c=e.slice([u-1,u])),e.isArray()?n.push(c.getArrayValue()[0]):n.push([e])}return K.create({calculateValueList:n,rowCount:n.length,columnCount:n[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class M0 extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",1)}calculate(e){if(e==null)return y.create(this.column+1);if(e.isError())return e;if(!e.isArray())return g.create(h.NA);const t=e.getCurrentColumn(),r=e.getColumnCount(),n=[];for(let a=0;a<r;a++)n.push(y.create(t+a+1));const s={calculateValueList:[n],rowCount:1,columnCount:r,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return K.create(s)}}class S0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return y.create(1);if(!e.isArray())return g.create(h.NA);const t=e.getColumnCount();return y.create(t)}}class D0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:y.create(0),s=e.isArray()?e.getRowCount():1,a=e.isArray()?e.getColumnCount():1,u=Math.max(t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),c=Math.max(t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),l=O(u,c,t,g.create(h.NA)),f=O(u,c,n,g.create(h.NA));if(u>1||c>1)return l.mapValue((R,p,V)=>{const S=f.get(p,V);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const{isError:D,errorObject:w}=this._checkRowsColumns(R,S,s,a);return D?w:e.isArray()?g.create(h.VALUE):e});if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const m=t.isArray()?t.get(0,0):t,d=n.isArray()?n.get(0,0):n,{isError:C,errorObject:_,rowsValue:E,columnsValue:b}=this._checkRowsColumns(m,d,s,a);return C?_:this._getResultArray(e,E,b,s,a)}_checkRowsColumns(e,t,r,n){if(e.isError())return{isError:!0,errorObject:e};if(t.isError())return{isError:!0,errorObject:t};const s=Math.trunc(+e.getValue()),a=Math.trunc(+t.getValue());return Number.isNaN(s)||Number.isNaN(a)?{isError:!0,errorObject:g.create(h.VALUE)}:Math.abs(s)>=r||Math.abs(a)>=n?{isError:!0,errorObject:g.create(h.CALC)}:{isError:!1,rowsValue:s,columnsValue:a}}_getResultArray(e,t,r,n,s){const a=t>=0?[t,n]:[0,n+t],u=r>=0?[r,s]:[0,s+r];let c;return t===0&&r===0?c=e:t===0?c=e.slice(void 0,u):r===0?c=e.slice(a,void 0):c=e.slice(a,u),c=c.map(l=>l.isNull()?y.create(0):l),n-t===1&&s-r===1?c.get(0,0):c}}class w0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",4)}calculate(e,t,r,n){const s=e.isArray()?e.getRowCount():1,a=e.isArray()?e.getColumnCount():1;let u=t,c=r!=null?r:y.create(a);const l=n!=null?n:g.create(h.NA);t.isNull()&&(u=y.create(s)),c.isNull()&&(c=y.create(a));const f=Math.max(u.isArray()?u.getRowCount():1,c.isArray()?c.getRowCount():1),m=Math.max(u.isArray()?u.getColumnCount():1,c.isArray()?c.getColumnCount():1),d=O(f,m,u,g.create(h.NA)),C=O(f,m,c,g.create(h.NA));if(f>1||m>1)return d.mapValue((D,w,P)=>{const L=C.get(w,P);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const{isError:T,errorObject:B}=this._checkRowsColumnsPadWith(D,L,l,s,a);return T?B:e.isArray()?e.get(0,0):e});if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const _=u.isArray()?u.get(0,0):u,E=c.isArray()?c.get(0,0):c,{isError:b,errorObject:R,rowsValue:p,columnsValue:V,padWithObject:S}=this._checkRowsColumnsPadWith(_,E,l,s,a);return b?R:this._getResultArray(e,p,V,S,s,a)}_checkRowsColumnsPadWith(e,t,r,n,s){if(e.isError())return{isError:!0,errorObject:e};if(t.isError())return{isError:!0,errorObject:t};const a=Math.trunc(+e.getValue()),u=Math.trunc(+t.getValue());if(Number.isNaN(a)||Number.isNaN(u))return{isError:!0,errorObject:g.create(h.VALUE)};if(Math.abs(a)<n||Math.abs(u)<s)return{isError:!0,errorObject:g.create(h.VALUE)};let c=r;if(r.isArray()){const l=r.getRowCount(),f=r.getColumnCount();if(l>1||f>1)return{isError:!0,errorObject:g.create(h.VALUE)};c=r.get(0,0)}return{isError:!1,rowsValue:a,columnsValue:u,padWithObject:c}}_getResultArray(e,t,r,n,s,a){let u=[];e.isArray()?u=e.map(f=>f.isNull()?y.create(0):f).getArrayValue():u=[[e]];const c=Math.max(0,t-s),l=Math.max(0,r-a);for(let f=0;f<c;f++)u.push(new Array(a).fill(n));for(let f=0;f<l;f++)u.forEach(m=>{m.push(n)});return t===1&&r===1?u[0][0]:K.create({calculateValueList:u,rowCount:u.length,columnCount:u[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class P0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:g.create(h.CALC);if(e.isError())return e;if(t.isError())return t;const s=e.isArray()?e.getRowCount():1,a=e.isArray()?e.getColumnCount():1,u=t.isArray()?t.getRowCount():1,c=t.isArray()?t.getColumnCount():1;return u>1&&c>1||u===1&&c!==a||c===1&&u!==s?g.create(h.VALUE):s===1&&a===1?this._getResultArrayByR1C1(e,t,n):u===1?c!==a?g.create(h.VALUE):this._getResultArrayByR1(s,a,e,t,n):c===1?u!==s?g.create(h.VALUE):this._getResultArrayByC1(s,a,e,t,n):n}_getResultArrayByR1C1(e,t,r){let n=e,s=t;return n.isArray()&&(n=n.get(0,0)),s.isArray()&&(s=s.get(0,0)),s.isString()&&(s=s.convertToNumberObjectValue()),s.isError()?s:+s.getValue()?n:r}_getResultArrayByR1(e,t,r,n,s){const a=[];for(let u=0;u<t;u++){let c=n.get(0,u);if(c.isString()&&(c=c.convertToNumberObjectValue()),c.isError())return c;if(+c.getValue())for(let f=0;f<e;f++){a[f]||(a[f]=[]);const m=r.get(f,u);a[f].push(m)}}return a.length===0?s:K.create({calculateValueList:a,rowCount:a.length,columnCount:a[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArrayByC1(e,t,r,n,s){const a=[];for(let u=0;u<e;u++){let c=n.get(u,0);if(c.isString()&&(c=c.convertToNumberObjectValue()),c.isError())return c;if(!+c.getValue())continue;const f=[];for(let m=0;m<t;m++){const d=r.get(u,m);f.push(d)}a.push(f)}return a.length===0?s:K.create({calculateValueList:a,rowCount:a.length,columnCount:a[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class L0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1);A(this,"needsReferenceObject",!0);A(this,"needsFormulaDataModel",!0)}calculate(e){var f,m;if(!e.isReferenceObject())return g.create(h.NA);const t=e.getUnitId(),r=e.getSheetId(),s=(m=(f=e.getUnitData()[t])==null?void 0:f[r])==null?void 0:m.cellData,{startRow:a,startColumn:u}=e.getRangePosition(),l=e.toArrayValueObject().mapValue((d,C,_)=>{const E=s.getValue(a+C,u+_);if(E!=null&&E.f||E!=null&&E.si){const b=this._formulaDataModel.getFormulaStringByCell(a+C,u+_,r,t);return j.create(b)}return g.create(h.NA)});return l.getRowCount()===1&&l.getColumnCount()===1?l.get(0,0):l}}var me=(i=>(i.ADDRESS="ADDRESS",i.AREAS="AREAS",i.CHOOSE="CHOOSE",i.CHOOSECOLS="CHOOSECOLS",i.CHOOSEROWS="CHOOSEROWS",i.COLUMN="COLUMN",i.COLUMNS="COLUMNS",i.DROP="DROP",i.EXPAND="EXPAND",i.FILTER="FILTER",i.FORMULATEXT="FORMULATEXT",i.GETPIVOTDATA="GETPIVOTDATA",i.HLOOKUP="HLOOKUP",i.HSTACK="HSTACK",i.HYPERLINK="HYPERLINK",i.IMAGE="IMAGE",i.INDEX="INDEX",i.INDIRECT="INDIRECT",i.LOOKUP="LOOKUP",i.MATCH="MATCH",i.OFFSET="OFFSET",i.ROW="ROW",i.ROWS="ROWS",i.RTD="RTD",i.SORT="SORT",i.SORTBY="SORTBY",i.TAKE="TAKE",i.TOCOL="TOCOL",i.TOROW="TOROW",i.TRANSPOSE="TRANSPOSE",i.UNIQUE="UNIQUE",i.VLOOKUP="VLOOKUP",i.VSTACK="VSTACK",i.WRAPCOLS="WRAPCOLS",i.WRAPROWS="WRAPROWS",i.XLOOKUP="XLOOKUP",i.XMATCH="XMATCH",i))(me||{});class x0 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){if(e.isError())return e;if(t.isError())return g.create(h.REF);if(!t.isArray()||r.isError()||n!=null&&n.isError())return g.create(h.NA);const s=this.getZeroOrOneByOneDefault(n);if(s==null)return g.create(h.VALUE);const a=this.getIndexNumValue(r);if(a instanceof g)return a;const u=t.slice([0,1]),c=t.slice([a-1,a]);return u==null||c==null?g.create(h.REF):e.isArray()?e.map(l=>this._handleSingleObject(l,u,c,s)):this._handleSingleObject(e,u,c,s)}_handleSingleObject(e,t,r,n){return n===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class j0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=Math.max(...e.map(n=>n.isArray()?n.getRowCount():1)),r=[];for(let n=0;n<e.length;n++){const s=e[n];if(s.isError())return s;const a=s.isArray()?s.getRowCount():1,u=s.isArray()?s.getColumnCount():1;for(let c=0;c<t;c++){r[c]||(r[c]=[]);for(let l=0;l<u;l++){let f=s;s.isArray()&&(f=s.get(c,l)),c>a-1||!f?r[c].push(g.create(h.NA)):r[c].push(f)}}}return K.create({calculateValueList:r,rowCount:r.length,columnCount:r[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class U0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",4);A(this,"needsReferenceObject",!0)}calculate(e,t,r,n){if(e.isError())return e;if(t!=null&&t.isError())return t;if(r!=null&&r.isError())return r;if(n!=null&&n.isError())return n;let s=0,a=0;if(e.isValueObject())s=1,a=1;else if(e.isReferenceObject()){const{startRow:d,endRow:C,startColumn:_,endColumn:E}=e.getRangePosition();s=C-d+1,a=E-_+1}else return g.create(h.VALUE);let u,c;s===1&&a>1&&r==null?(c=t!=null?t:y.create(0),u=y.create(0)):(u=t!=null?t:y.create(0),c=r!=null?r:y.create(0));let l=n!=null?n:y.create(1);u.isReferenceObject()&&(u=u.toArrayValueObject()),c.isReferenceObject()&&(c=c.toArrayValueObject()),l.isReferenceObject()&&(l=l.toArrayValueObject());const f=Math.max(u.isArray()?u.getRowCount():1,c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1),m=Math.max(u.isArray()?u.getColumnCount():1,c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1);if(u=u,c=c,l=l,f===1&&m===1)return this._calculateSingleCell(e,u,c,l);{const d=O(f,m,u,g.create(h.NA)),C=O(f,m,c,g.create(h.NA)),_=O(f,m,l,g.create(h.NA));return d.map((E,b,R)=>{const p=C.get(b,R)||ae.create(),V=_.get(b,R)||ae.create(),S=this._calculateSingleCell(e,E,p,V);return S.isReferenceObject()?S.toArrayValueObject().getFirstCell():S})}}_calculateSingleCell(e,t,r,n){if(t.isError())return t;const s=this._getNumberValue(t);if(s===void 0||s<0)return g.create(h.VALUE);if(r.isError())return r;const a=this._getNumberValue(r);if(a===void 0||a<0)return g.create(h.VALUE);if(n.isError())return n;const u=this._getAreaNumberValue(n);return u===void 0||u<1?g.create(h.VALUE):e.isReferenceObject()?this._getReferenceObject(e,s,a,u):e.isValueObject()&&s===1&&a===1?e:g.create(h.REF)}_getNumberValue(e){if(e==null)return 0;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getAreaNumberValue(e){if(e==null)return 1;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getReferenceObject(e,t,r,n){const{startRow:s,endRow:a,startColumn:u,endColumn:c}=e.getRangePosition();let l=0,f=0,m=0,d=0;if(t===0?(l=s,f=a):l=f=s+t-1,r===0?(m=u,d=c):m=d=u+r-1,l>a||m>c)return g.create(h.REF);const C={startRow:l,startColumn:m,endRow:f,endColumn:d};return this.createReferenceObject(e,C)}}class v0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}isAddress(){return!0}calculate(e,t){if(e.isError())return e;if(t!=null&&t.isError())return t;let r=this.getZeroOrOneByOneDefault(t);r==null&&(r=1);let n=e;if(e.isArray()){const s=e.getRowCount(),a=e.getColumnCount();if(s>1||a>1)return e.map(()=>g.create(h.VALUE));n=e.getFirstCell()}return this._handleSingleObject(n,r)}_handleSingleObject(e,t){const r=`${e.getValue()}`;if(r.trim()==="")return g.create(h.REF);const n=this._convertToDefinedName(r);if(t===0){const f=Zi(n),{range:m,sheetName:d,unitId:C}=f,_=new Rr(m);return _.setForcedUnitIdDirect(C),_.setForcedSheetName(d),this._setDefault(_)}if(Nr(n))return this._setDefault(new Ps(n));if(ui(n))return this._setDefault(new xs(n));if(ci(n))return this._setDefault(new Ls(n));const s=Yt(n),{range:a,sheetName:u,unitId:c}=s;if(Number.isNaN(a.startRow)||a.endRow+1>1048576||Number.isNaN(a.startColumn)||a.endColumn+1>16384)return g.create(h.REF);const l=new Rr(a);return l.setForcedUnitIdDirect(c),l.setForcedSheetName(u),this._setDefault(l)}_setDefault(e){return this.unitId==null||this.subUnitId==null?g.create(h.REF):(e.setDefaultUnitId(this.unitId),e.setDefaultSheetId(this.subUnitId),e)}_convertToDefinedName(e){const t=this.getDefinedName(e);if(t==null)return e;const r=t.formulaOrRefString;return r==null?e:r.startsWith(X.EQUALS)?r.slice(1):r}}class T0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3);A(this,"needsExpandParams",!0)}calculate(e,t,r){return e.isError()?e:t.isError()?g.create(h.REF):t.isArray()?r!=null&&r.isError()?r:t.getColumnCount()===1||t.getRowCount()===1?r!=null&&!r.isArray()?g.create(h.REF):this._handleVector(e,t,r):this._handleArray(e,t):g.create(h.VALUE)}_handleVector(e,t,r){let n=r;if(n==null)n=t;else if(n.getRowCount()!==t.getRowCount()||n.getColumnCount()!==t.getColumnCount())return g.create(h.REF);return e.isArray()?e.map(s=>this.binarySearch(s,t,n)):this.binarySearch(e,t,n)}_handleArray(e,t){const r=t.getRowCount(),n=t.getColumnCount();let s,a;return n>r?(s=t.slice([0,1]),a=t.slice([r-1,r])):(s=t.slice(void 0,[0,1]),a=t.slice(void 0,[n-1,n])),s==null||a==null?g.create(h.VALUE):e.isArray()?e.map(u=>this.binarySearch(u,s,a)):this.binarySearch(e,s,a)}}class B0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return g.create(h.REF);if(!t.isArray())return g.create(h.VALUE);const n=t.getRowCount(),s=t.getColumnCount();if(n!==1&&s!==1||r!=null&&r.isError())return g.create(h.NA);const a=this.getMatchTypeValue(r);return a==null?g.create(h.VALUE):e.isArray()?e.map(u=>this._handleSingleObject(u,t,a)):this._handleSingleObject(e,t,a)}_handleSingleObject(e,t,r){const n=this._getSearchModeValue(r),s=t.orderSearch(e,n);if(s==null)return g.create(h.NA);if(s instanceof g)return s;const a=t.getRowCount()===1?s.column+1:s.row+1;return y.create(a)}_getSearchModeValue(e){switch(e){case 1:return Oe.MIN;case 0:return Oe.NORMAL;case-1:return Oe.MAX}}}class I0 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",5);A(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,t,r,n,s){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(n!=null&&n.isError())return n;if(s!=null&&s.isError())return s;if(!e.isReferenceObject())return g.create(h.VALUE);const a=e.getRowCount(),u=e.getColumnCount();let c=t;c.isReferenceObject()&&(c=c.toArrayValueObject());let l=r;l.isReferenceObject()&&(l=l.toArrayValueObject());let f=n!=null?n:y.create(a);f.isReferenceObject()&&(f=f.toArrayValueObject()),f.isNull()&&(f=y.create(a));let m=s!=null?s:y.create(u);m.isReferenceObject()&&(m=m.toArrayValueObject()),m.isNull()&&(m=y.create(u));const d=Math.max(c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1,f.isArray()?f.getRowCount():1,m.isArray()?m.getRowCount():1),C=Math.max(c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1,f.isArray()?f.getColumnCount():1,m.isArray()?m.getColumnCount():1);if(c=c,l=l,f=f,m=m,d===1&&C===1)return c=c.isArray()?c.get(0,0):c,l=l.isArray()?l.get(0,0):l,f=f.isArray()?f.get(0,0):f,m=m.isArray()?m.get(0,0):m,this._handleSingleObject(e,c,l,f,m);const _=O(d,C,c,g.create(h.NA)),E=O(d,C,l,g.create(h.NA)),b=O(d,C,f,g.create(h.NA)),R=O(d,C,m,g.create(h.NA));return _.mapValue((p,V,S)=>{const D=E.get(V,S),w=b.get(V,S),P=R.get(V,S);return p.isError()?p:D.isError()?D:w.isError()?w:P.isError()?P:this._handleSingleObject(e,p,D,w,P,!0)})}_handleSingleObject(e,t,r,n,s,a=!1){const{startRow:u,startColumn:c}=e.getRangePosition();let l=t;if(l.isString()&&(l=l.convertToNumberObjectValue()),l.isError())return l;let f=r;if(f.isString()&&(f=f.convertToNumberObjectValue()),f.isError())return f;const m=+l.getValue(),d=+f.getValue();if(typeof m!="number"||typeof d!="number")return g.create(h.VALUE);const C=u+m,_=c+d;if(C<0||_<0)return g.create(h.REF);const E=this.getIndexNumValue(n),b=this.getIndexNumValue(s);if(typeof E!="number"||typeof b!="number")return g.create(h.VALUE);if(E===0||b===0)return g.create(h.REF);const R=E>0?C+E-1:C+E+1,p=b>0?_+b-1:_+b+1;if(R<0||p<0)return g.create(h.REF);if(a)return g.create(h.VALUE);const V=C<R?C:R,S=_<p?_:p,D=C>R?C:R,w=_>p?_:p,P={startRow:V,startColumn:S,endRow:D,endColumn:w};return this.createReferenceObject(e,P)}}class F0 extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",1)}calculate(e){if(e==null)return y.create(this.row+1);if(e.isError())return e;if(!e.isArray())return g.create(h.NA);const t=e.getCurrentRow(),r=e.getRowCount(),n=[];for(let a=0;a<r;a++)n.push([y.create(t+a+1)]);const s={calculateValueList:n,rowCount:r,columnCount:1,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return K.create(s)}}class k0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return y.create(1);if(!e.isArray())return g.create(h.NA);const t=e.getRowCount();return y.create(t)}}class $0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",4)}calculate(e,t,r,n){const s=t!=null?t:y.create(1),a=r!=null?r:y.create(1),u=n!=null?n:k.create(!1);if(u.isArray()){const c=u.getRowCount(),l=u.getColumnCount();if(c===1&&l===1){const f=u.get(0,0);return this._handleSingleObject(e,s,a,f)}return u.map(f=>{const m=this._handleSingleObject(e,s,a,f);return m.isArray()?m.get(0,0):m})}return this._handleSingleObject(e,s,a,u)}_handleSingleObject(e,t,r,n){if(e.isError())return e;const s=e.isArray()?e.getRowCount():1,a=e.isArray()?e.getColumnCount():1,u=this._checkArrayError(t);if(u.isError())return u;const c=Math.floor(+u.getValue());if(c<1)return g.create(h.VALUE);const l=this._checkArrayError(r);if(l.isError())return l;const f=Math.floor(+l.getValue());if(f!==-1&&f!==1)return g.create(h.VALUE);let m=n;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;if(!e.isArray()||s===1&&a===1)return e;const d=+m.getValue();return this._getResult(e,c,f,d,s,a)}_checkArrayError(e){let t=e;if(t.isArray()){const r=t.getRowCount(),n=t.getColumnCount();if(r>1||n>1)return g.create(h.VALUE);t=t.get(0,0)}return t.isString()&&(t=t.convertToNumberObjectValue()),t}_getResult(e,t,r,n,s,a){if(n){if(t>s)return g.create(h.VALUE);const u=e.transpose().getArrayValue();return u.sort(this._sort(t-1,r)),K.create({calculateValueList:u,rowCount:u.length,columnCount:u[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}).transpose()}else{if(t>a)return g.create(h.VALUE);const u=e.getArrayValue();return u.sort(this._sort(t-1,r)),K.create({calculateValueList:u,rowCount:u.length,columnCount:u[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}_sort(e,t=1){const r=tn();return t===1?this._sortAsc(e,r):this._sortDesc(e,r)}_sortAsc(e,t){return(r,n)=>{const s=r[e],a=n[e];if(s==null||s.isNull())return 1;if(a==null||a.isNull())return-1;if(s.isError()&&a.isError())return 0;if(s.isError())return 1;if(a.isError())return-1;const u=s.getValue(),c=a.getValue();return s.isBoolean()&&u===!0?1:a.isBoolean()&&c===!0?-1:s.isBoolean()&&u===!1?1:a.isBoolean()&&c===!1?-1:s.isNumber()&&a.isNumber()?+u-+c:t(u,c)}}_sortDesc(e,t){return(r,n)=>{const s=r[e],a=n[e];if(s==null||s.isNull())return 1;if(a==null||a.isNull())return-1;if(s.isError()&&a.isError())return 0;if(s.isError())return-1;if(a.isError())return 1;const u=s.getValue(),c=a.getValue();return s.isBoolean()&&u===!0?-1:a.isBoolean()&&c===!0?1:s.isBoolean()&&u===!1?-1:a.isBoolean()&&c===!1?1:s.isNumber()&&a.isNumber()?+c-+u:t(c,u)}}}class Y0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",255)}calculate(e,...t){t.length===1&&t.push(y.create(1));const r=this._getVariantsError(e,...t),{maxRowLength:n,maxColumnLength:s}=hr(t);if(r.isError()){const c=O(n,s,r);return n===1&&s===1?c.get(0,0):c}const a=t.map((c,l)=>l%2===0?c:O(n,s,c,g.create(h.NA))),u=this._getResultArray(e,a,n,s);return n===1&&s===1?u[0][0]:K.create({calculateValueList:u,rowCount:u.length,columnCount:u[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getVariantsError(e,...t){if(e.isError())return e;for(let u=0;u<t.length;u++){const c=t[u];if(c.isError())return c}if(t.length<2||t.length%2!==0)return g.create(h.VALUE);const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t[0].isArray()?t[0].getRowCount():1,a=t[0].isArray()?t[0].getColumnCount():1;if((s>1||a>1)&&(s>1&&a>1||s===1&&a!==n||a===1&&s!==r))return g.create(h.VALUE);for(let u=2;u<t.length;u++){if(u%2===1)continue;const c=t[u].isArray()?t[u].getRowCount():1,l=t[u].isArray()?t[u].getColumnCount():1;if(c!==s||l!==a)return g.create(h.VALUE)}return k.create(!0)}_getResultArray(e,t,r,n){const s=e.isArray()?e.getRowCount():1,a=e.isArray()?e.getColumnCount():1,u=t[0].isArray()?t[0].getRowCount():1,c=t[0].isArray()?t[0].getColumnCount():1,l=[];for(let f=0;f<r;f++){l[f]=[];for(let m=0;m<n;m++){const{isError:d,errorObject:C,byArrays:_,sortOrders:E}=this._getByArraysAndSortOrders(t,f,m,c);if(d){l[f].push(C);continue}if(!e.isArray()||s===1&&a===1){l[f].push(e);continue}let b=e.getArrayValue();u===1&&c===1||(u===1?(b=b.concat(_),b=this._transposeArray(b),b.sort(this._sort(s,E)),b=this._transposeArray(b).slice(0,s)):c===1&&(b=this._transposeArray(b),b=b.concat(_),b=this._transposeArray(b),b.sort(this._sort(a,E)),b=b.map(p=>p.slice(0,a))));const R=K.create({calculateValueList:b,rowCount:b.length,columnCount:b[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column});if(r>1||n>1){l[f].push(R.get(0,0));continue}l[f].push(R)}}return l}_getByArraysAndSortOrders(e,t,r,n){const s=[],a=[];let u=!1,c=null;for(let l=0;l<e.length;l++){if(l%2===1)continue;const f=e[l];let m=e[l+1].get(t,r);if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError()){u=!0,c=m;break}const d=Math.floor(+m.getValue());if(d!==-1&&d!==1){u=!0,c=g.create(h.VALUE);break}if(a.push(d),f.isArray()){let C=f.getArrayValue();n===1&&(C=this._transposeArray(C)),s.push(C[0])}else s.push([f])}return{isError:u,errorObject:c,byArrays:s,sortOrders:a}}_transposeArray(e){const t=e.length,r=e[0].length,n=[];for(let s=0;s<r;s++){n[s]=[];for(let a=0;a<t;a++)n[s][a]=e[a][s]}return n}_sort(e,t){const r=tn();return(n,s)=>{let a=n[e],u=s[e],c=this._compare(a,u,t[0],r);if(c===0&&t.length>1){for(let l=1;l<t.length;l++)if(a=n[e+l],u=s[e+l],c=this._compare(a,u,t[l],r),c!==0)return c}return c}}_compare(e,t,r,n){return r===1?this._asc(e,t,n):this._desc(e,t,n)}_asc(e,t,r){if(e==null||e.isNull())return 1;if(t==null||t.isNull())return-1;if(e.isError()&&t.isError())return 0;if(e.isError())return 1;if(t.isError())return-1;const n=e.getValue(),s=t.getValue();return e.isBoolean()&&n===!0?1:t.isBoolean()&&s===!0?-1:e.isBoolean()&&n===!1?1:t.isBoolean()&&s===!1?-1:e.isNumber()&&t.isNumber()?+n-+s:r(n,s)}_desc(e,t,r){if(e==null||e.isNull())return 1;if(t==null||t.isNull())return-1;if(e.isError()&&t.isError())return 0;if(e.isError())return-1;if(t.isError())return 1;const n=e.getValue(),s=t.getValue();return e.isBoolean()&&n===!0?-1:t.isBoolean()&&s===!0?1:e.isBoolean()&&n===!1?-1:t.isBoolean()&&s===!1?1:e.isNumber()&&t.isNumber()?+s-+n:r(s,n)}}class H0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=e.isArray()?e.getRowCount():1,s=e.isArray()?e.getColumnCount():1;let a=t,u=r!=null?r:y.create(s);t.isNull()&&(a=y.create(n)),u.isNull()&&(u=y.create(s));const c=Math.max(a.isArray()?a.getRowCount():1,u.isArray()?u.getRowCount():1),l=Math.max(a.isArray()?a.getColumnCount():1,u.isArray()?u.getColumnCount():1),f=O(c,l,a,g.create(h.NA)),m=O(c,l,u,g.create(h.NA));if(c>1||l>1)return f.mapValue((p,V,S)=>{const D=m.get(V,S);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const{isError:w,errorObject:P}=this._checkRowsColumns(p,D,n,s);return w?P:e.isArray()?g.create(h.VALUE):e});if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const d=a.isArray()?a.get(0,0):a,C=u.isArray()?u.get(0,0):u,{isError:_,errorObject:E,rowsValue:b,columnsValue:R}=this._checkRowsColumns(d,C,n,s);return _?E:this._getResultArray(e,b,R,n,s)}_checkRowsColumns(e,t,r,n){if(e.isError())return{isError:!0,errorObject:e};if(t.isError())return{isError:!0,errorObject:t};let s=Math.trunc(+e.getValue()),a=Math.trunc(+t.getValue());return Number.isNaN(s)||Number.isNaN(a)?{isError:!0,errorObject:g.create(h.VALUE)}:Math.abs(s)===0||Math.abs(a)===0?{isError:!0,errorObject:g.create(h.CALC)}:(s>r&&(s=r),a>n&&(a=n),{isError:!1,rowsValue:s,columnsValue:a})}_getResultArray(e,t,r,n,s){if(!e.isArray())return e;const a=t>=0?[0,t]:[n+t,n],u=r>=0?[0,r]:[s+r,s];let c;return t===n&&r===s?c=e:t===n?c=e.slice(void 0,u):r===s?c=e.slice(a,void 0):c=e.slice(a,u),c=c.map(l=>l.isNull()?y.create(0):l),t===1&&r===1?c.get(0,0):c}}class G0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:y.create(0),s=r!=null?r:k.create(!1),a=Math.max(n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=O(a,u,n,g.create(h.NA)),l=O(a,u,s,g.create(h.NA)),f=c.mapValue((m,d,C)=>{const _=l.get(d,C);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);if(m.isError())return m;if(_.isError())return _;const E=Math.trunc(+m.getValue()),b=+_.getValue();if(Number.isNaN(E)||E<0||E>3||Number.isNaN(b))return g.create(h.VALUE);if(!e.isArray())return e;let R=[];return b?R=this._getArrayValueByColumn(e,E):R=this._getArrayValueByRow(e,E),R.length===0?g.create(h.CALC):a>1||u>1||R.length===1?R[0]:K.create({calculateValueList:R.map(p=>[p]),rowCount:R.length,columnCount:1,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return a===1&&u===1?f.get(0,0):f}_getArrayValueByColumn(e,t){const r=e,n=r.getRowCount(),s=r.getColumnCount(),a=[];for(let u=0;u<s;u++)for(let c=0;c<n;c++){const l=r.get(c,u);this._isIgnore(l,t)||a.push(l.isNull()?y.create(0):l)}return a}_getArrayValueByRow(e,t){const r=e,n=r.getRowCount(),s=r.getColumnCount(),a=[];for(let u=0;u<n;u++)for(let c=0;c<s;c++){const l=r.get(u,c);this._isIgnore(l,t)||a.push(l.isNull()?y.create(0):l)}return a}_isIgnore(e,t){switch(t){case 0:return!1;case 1:return e.isNull();case 2:return e.isError();case 3:return e.isNull()||e.isError();default:return!1}}}class W0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:y.create(0),s=r!=null?r:k.create(!1),a=Math.max(n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=O(a,u,n,g.create(h.NA)),l=O(a,u,s,g.create(h.NA)),f=c.mapValue((m,d,C)=>{const _=l.get(d,C);if(e.isError())return e;if(m.isError())return m;if(_.isError())return _;const E=Math.trunc(+m.getValue()),b=+_.getValue();if(Number.isNaN(E)||E<0||E>3||Number.isNaN(b)||e.isNull())return g.create(h.VALUE);if(!e.isArray())return e;let R=[];return b?R=this._getArrayValueByColumn(e,E):R=this._getArrayValueByRow(e,E),R.length===0?g.create(h.CALC):a>1||u>1||R.length===1?R[0]:K.create({calculateValueList:[R],rowCount:1,columnCount:R.length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return a===1&&u===1?f.get(0,0):f}_getArrayValueByColumn(e,t){const r=e,n=r.getRowCount(),s=r.getColumnCount(),a=[];for(let u=0;u<s;u++)for(let c=0;c<n;c++){const l=r.get(c,u);this._isIgnore(l,t)||a.push(l.isNull()?y.create(0):l)}return a}_getArrayValueByRow(e,t){const r=e,n=r.getRowCount(),s=r.getColumnCount(),a=[];for(let u=0;u<n;u++)for(let c=0;c<s;c++){const l=r.get(u,c);this._isIgnore(l,t)||a.push(l.isNull()?y.create(0):l)}return a}_isIgnore(e,t){switch(t){case 0:return!1;case 1:return e.isNull();case 2:return e.isError();case 3:return e.isNull()||e.isError();default:return!1}}}class Q0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isArray()){const t=e.getRowCount(),r=e.getColumnCount();return t===1&&r===1?e.get(0,0):e.transpose()}return e}}class q0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:k.create(!1),s=r!=null?r:k.create(!1),a=e.isArray()?e.getRowCount():1,u=e.isArray()?e.getColumnCount():1,c=Math.max(n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),l=Math.max(n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),f=O(c,l,n,g.create(h.NA)),m=O(c,l,s,g.create(h.NA)),d=f.map((C,_,E)=>{let b=C,R=m.get(_,E);if(e.isError())return e;if(b.isString()&&(b=b.convertToNumberObjectValue()),b.isError())return b;if(R.isString()&&(R=R.convertToNumberObjectValue()),R.isError())return R;const p=+b.getValue(),V=+R.getValue();let S;return!p&&a===1||p&&u===1?S=e:S=this._getResult(e,p,V),(c>1||l>1)&&(S!=null&&S.isArray())?S.get(0,0):S});return c===1&&l===1?d.get(0,0):d}_getResult(e,t,r){const n=e.isArray()?e.getRowCount():1,s=e.isArray()?e.getColumnCount():1;let a=e.getArrayValue(),u=n,c=s;t&&(a=this._transposeArray(a),u=s,c=n);const l=this._getRepeatRows(a,u,c);if(l.length>0){const f=[];l.forEach(m=>{m.forEach((d,C)=>{(C!==0||r)&&f.push(d)})}),a=a.filter((m,d)=>!f.includes(d))}return a.length===0?g.create(h.CALC):(t&&(a=this._transposeArray(a)),K.create({calculateValueList:a,rowCount:a.length,columnCount:a[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}))}_getRepeatRows(e,t,r){let n=[];for(let s=0;s<r;s++)if(s===0){const a=new Array(t).fill(null).map((u,c)=>({r:c,valueObject:e[c][s]}));n=this._getRepeatRowsByObjects(a)}else{if(n.length===0)break;let a=[];n.forEach(u=>{const c=u.map(f=>({r:f,valueObject:e[f][s]})),l=this._getRepeatRowsByObjects(c);a=a.concat(l)}),n=a}return n}_getRepeatRowsByObjects(e){const t=new Map;return e.forEach(r=>{const n=r.r,s=r.valueObject;let a=s.getValue();if(s.isNull()?a=null:s.isString()&&M.isRealNum(a)&&(a=+a),!t.has(a))t.set(a,[n]);else{const u=t.get(a);u.push(n),t.set(a,u)}}),Array.from(t.values()).filter(r=>r.length>1)}_transposeArray(e){const t=e.length,r=e[0].length,n=[];for(let s=0;s<r;s++){n[s]=[];for(let a=0;a<t;a++)n[s][a]=e[a][s]}return n}}class X0 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){if(e.isError())return e;if(t.isError())return t;if(!t.isArray())return g.create(h.VALUE);if(r.isError())return r;if(n!=null&&n.isError())return n;const s=n!=null?n:k.create(!0);return Pa(e)&&Pa(s)&&r.isArray()?this._handleArrayColIndexNum(e,t,r,s):this._handleNonArrayColIndexNum(e,t,r,s)}_handleArrayColIndexNum(e,t,r,n){const s=e.isArray()?e.getFirstCell():e,a=this.getZeroOrOneByOneDefault(n);if(a==null)return g.create(h.VALUE);let u;const c=[];return r.iterator((l,f,m)=>{if(l==null)return u=g.create(h.VALUE),!1;const d=this._handleTableArray(s,t,l,a);if(d.isError())return u=d,!1;c[f]===void 0&&(c[f]=[]),c[f][m]=d}),u||Ht(c,c.length,c[0].length,this.unitId||"",this.subUnitId||"")}_handleNonArrayColIndexNum(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e),c=O(s,a,n);return u.map((l,f,m)=>{if(l.isError())return l;const d=c.get(f,m);if(d==null)return g.create(h.VALUE);if(d.isError())return d;const C=this.getZeroOrOneByOneDefault(d);return C==null?g.create(h.VALUE):this._handleTableArray(l,t,r,C)})}_handleTableArray(e,t,r,n){let s=this.getIndexNumValue(r);if(s instanceof g)return s;if(s=Math.floor(s),s<1)return g.create(h.VALUE);const a=t.slice(void 0,[0,1]);if(a==null)return g.create(h.VALUE);const u=t.slice(void 0,[s-1,s]);return u==null?g.create(h.REF):this._handleSingleObject(e,a,u,n)}_handleSingleObject(e,t,r,n){return n===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class K0 extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=Math.max(...e.map(n=>n.isArray()?n.getColumnCount():1)),r=[];for(let n=0;n<e.length;n++){const s=e[n];if(s.isError())return s;const a=s.isArray()?s.getRowCount():1,u=s.isArray()?s.getColumnCount():1;for(let c=0;c<a;c++){const l=[];for(let f=0;f<t;f++){let m=s;s.isArray()&&(m=s.get(c,f)),f>u-1||!m?l.push(g.create(h.NA)):l.push(m)}r.push(l)}}return K.create({calculateValueList:r,rowCount:r.length,columnCount:r[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class Z0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){let n=r!=null?r:g.create(h.NA);n.isNull()&&(n=g.create(h.NA));const s=e.isArray()?e.getRowCount():1,a=e.isArray()?e.getColumnCount():1,u=Math.max(t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),c=Math.max(t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),l=O(u,c,t,g.create(h.NA)),f=O(u,c,n,g.create(h.NA)),m=l.mapValue((d,C,_)=>{const E=f.get(C,_);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);if(d.isError())return d;const b=Math.trunc(+d.getValue());if(s>1&&a>1||Number.isNaN(b))return g.create(h.VALUE);if(b<1)return g.create(h.NUM);const R=e.isArray()?e.getArrayValue().flat():[e],p=this._getWrapArray(R,b,E);return u>1||c>1||p.length===1&&p[0].length===1?p[0][0]:K.create({calculateValueList:p,rowCount:p.length,columnCount:p[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return u===1&&c===1?m.get(0,0):m}_getWrapArray(e,t,r){const n=Math.ceil(e.length/t),s=n>1?t:e.length,a=[];for(let u=0;u<n;u++)for(let c=0;c<s;c++){a[c]||(a[c]=[]);const l=u*s+c;l<e.length?a[c].push(e[l].isNull()?y.create(0):e[l]):a[c].push(r)}return a}}class z0 extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){let n=r!=null?r:g.create(h.NA);n.isNull()&&(n=g.create(h.NA));const s=e.isArray()?e.getRowCount():1,a=e.isArray()?e.getColumnCount():1,u=Math.max(t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),c=Math.max(t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),l=O(u,c,t,g.create(h.NA)),f=O(u,c,n,g.create(h.NA)),m=l.mapValue((d,C,_)=>{const E=f.get(C,_);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);if(d.isError())return d;const b=Math.trunc(+d.getValue());if(s>1&&a>1||Number.isNaN(b))return g.create(h.VALUE);if(b<1)return g.create(h.NUM);const R=e.isArray()?e.getArrayValue().flat():[e],p=this._getWrapArray(R,b,E);return u>1||c>1||p.length===1&&p[0].length===1?p[0][0]:K.create({calculateValueList:p,rowCount:p.length,columnCount:p[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return u===1&&c===1?m.get(0,0):m}_getWrapArray(e,t,r){const n=Math.ceil(e.length/t),s=n>1?t:e.length,a=[];for(let u=0;u<n;u++){const c=[];for(let l=0;l<s;l++){const f=u*s+l;f<e.length?c.push(e[f].isNull()?y.create(0):e[f]):c.push(r)}a.push(c)}return a}}class J0 extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){if(e.isError())return e;if(t.isError()||r.isError())return g.create(h.REF);if(!t.isArray()||!r.isArray())return g.create(h.VALUE);const u=t.getRowCount(),c=t.getColumnCount(),l=r.getRowCount(),f=r.getColumnCount();if(u!==1&&c!==1||u===1&&c>1&&c!==f||c===1&&u>1&&u!==l)return g.create(h.VALUE);if(n!=null&&n.isError()||s!=null&&s.isError()||a!=null&&a.isError())return g.create(h.NA);const m=n!=null?n:g.create(h.NA),d=this.getIndexNumValue(s||y.create(0));if(d instanceof g)return d;const C=this.getIndexNumValue(a||y.create(1));return C instanceof g?C:this._getResult(e,t,r,m,d,C,u,c,l,f)}_getResult(e,t,r,n,s,a,u,c,l,f){const m=e.isArray()?e.getRowCount():1,d=e.isArray()?e.getColumnCount():1;if(m>1||d>1){let b;return u===1?b=r.slice([0,1]):b=r.slice(void 0,[0,1]),b==null?g.create(h.NA):e.map(R=>{const p=this._checkErrorCombination(s,a);if(p)return p;const V=this._handleSingleObject(R,t,b,s,a);return V.isError()?n:V})}const C=e.isArray()?e.get(0,0):e;if(c===f&&u===l){const b=this._checkErrorCombination(s,a);if(b)return b;const R=this._handleSingleObject(C,t,r,s,a);return R.isError()?n:R}let _=0;c===f&&(_=1);const E=this._handleExpandObject(C,t,r,s,a,_);return E==null?g.create(h.NA):E}_handleExpandObject(e,t,r,n,s,a=0){if((s===2||s===-2)&&n!==2){const u=cs(s),c=us(n);return this.binarySearchExpand(e,t,r,a,u,c)}return n===2?this.fuzzySearchExpand(e,t,r,s!==-1,a):n===-1||n===1?this.orderSearchExpand(e,t,r,n===1?Oe.MAX:Oe.MIN,s===-1,a):this.equalSearchExpand(e,t,r,s!==-1,a)}_handleSingleObject(e,t,r,n,s){if((s===2||s===-2)&&n!==2){const a=cs(s),u=us(n);return this.binarySearch(e,t,r,a,u)}return n===2?this.fuzzySearch(e,t,r,s!==-1):n===-1||n===1?this.orderSearch(e,t,r,n===1?Oe.MAX:Oe.MIN,s===-1):this.equalSearch(e,t,r,s!==-1)}_checkErrorCombination(e,t){return e===2&&(t===-2||t===2)?g.create(h.VALUE):null}}class ed extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",4)}calculate(e,t,r,n){if(e.isError())return e;if(t.isError())return g.create(h.REF);if(!t.isArray())return g.create(h.VALUE);const s=t.getRowCount(),a=t.getColumnCount();if(s!==1&&a!==1)return g.create(h.VALUE);if(r!=null&&r.isError()||n!=null&&n.isError())return g.create(h.NA);const u=this.getIndexNumValue(r||y.create(0));if(u instanceof g)return u;const c=this.getIndexNumValue(n||y.create(1));return c instanceof g?c:e.isArray()?e.map(l=>this._handleSingleObject(l,t,u,c)):this._handleSingleObject(e,t,u,c)}_handleSingleObject(e,t,r,n){let s;if((n===2||n===-2)&&r!==2){const a=cs(n),u=us(r);s=t.binarySearch(e,a,u)}else if(r===2){const a=t.compare(e,$.EQUALS);let u;if(n!==-1?u=a.getFirstTruePosition():u=a.getLastTruePosition(),u==null)return g.create(h.NA);s=t.getRowCount()===1?u.column:u.row}else if(r===-1||r===1){const a=t.orderSearch(e,r===1?Oe.MAX:Oe.MIN,n===-1);if(a==null)return g.create(h.NA);if(a instanceof g)return a;s=t.getRowCount()===1?a.column:a.row}else{const a=t.isEqual(e);let u;if(n!==-1?u=a.getFirstTruePosition():u=a.getLastTruePosition(),u==null)return g.create(h.NA);s=t.getRowCount()===1?u.column:u.row}return s==null?g.create(h.NA):y.create(s+1)}}const uu=[[y0,me.ADDRESS],[p0,me.AREAS],[N0,me.CHOOSE],[V0,me.CHOOSECOLS],[O0,me.CHOOSEROWS],[M0,me.COLUMN],[S0,me.COLUMNS],[D0,me.DROP],[w0,me.EXPAND],[P0,me.FILTER],[L0,me.FORMULATEXT],[x0,me.HLOOKUP],[j0,me.HSTACK],[U0,me.INDEX],[v0,me.INDIRECT],[T0,me.LOOKUP],[B0,me.MATCH],[I0,me.OFFSET],[F0,me.ROW],[k0,me.ROWS],[$0,me.SORT],[Y0,me.SORTBY],[H0,me.TAKE],[G0,me.TOCOL],[W0,me.TOROW],[Q0,me.TRANSPOSE],[q0,me.UNIQUE],[X0,me.VLOOKUP],[K0,me.VSTACK],[Z0,me.WRAPCOLS],[z0,me.WRAPROWS],[J0,me.XLOOKUP],[ed,me.XMATCH]];class td extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.abs()}}class rd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.acos()}}class nd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.acosh()}}class sd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.isArray()?t.map(r=>r.isError()?r:Ga(r)):Ga(t)}}function Ga(i){let o=i.getValue();if(i.isBoolean()&&(o=o?1:0),!Number.isFinite(o))return g.create(h.VALUE);o=Number(o);let e=Math.atan(1/o);return o<0&&(e+=Math.PI),Number.isNaN(e)?g.create(h.VALUE):y.create(e)}class ad extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.isArray()?t.map(r=>r.isError()?r:Wa(r)):Wa(t)}}function Wa(i){let o=i.getValue();if(i.isBoolean()&&(o=o?1:0),!Number.isFinite(o))return g.create(h.VALUE);if(o=Number(o),Math.abs(o)<=1)return g.create(h.NUM);const e=1/2*Math.log((o+1)/(o-1));return Number.isNaN(e)?g.create(h.VALUE):y.create(e)}class id extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return y.create(0);if(e.isBoolean()||e.isNumber())return g.create(h.VALUE);let t=e.getValue().toLocaleString().toLocaleUpperCase();if(t.length>255)return g.create(h.VALUE);const r=t.startsWith("-");r&&(t=t.slice(1));let n=0;for(let s=0;s<t.length;s++){const a=Ir.get(t[s])||0,u=Ir.get(t[s+1])||0,c=Ir.get(t[s+2])||0,l=Ir.get(t[s+3])||0;if(!a||c>=u&&c>a||a===u&&a===c&&a===l||a===u/2)return g.create(h.VALUE);a<u?n-=a:n+=a}return y.create(r?-n:n)}}class od extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.asin()}}class ud extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.asinh()}}class cd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.atan()}}class ld extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e,n=t;return r.isString()&&(r=r.convertToNumberObjectValue()),r.isError()?r:(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:n.atan2(r))}}class fd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.atanh()}}class md extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:y.create(0);if(e.isError())return e;if(t.isError())return t;if(n.isError())return n;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,n,g.create(h.NA)),f=u.map((m,d,C)=>{const _=c.get(d,C),E=l.get(d,C);return this._handleSingleObject(m,_,E)});return f.getRowCount()===1&&f.getColumnCount()===1?f.getArrayValue()[0][0]:f}_handleSingleObject(e,t,r){let n=e;if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError())return n;let s=t;if(s.isString()&&(s=s.convertToNumberObjectValue()),s.isError())return s;let a=r;if(a.isString()&&(a=a.convertToNumberObjectValue()),a.isError())return a;const u=Math.floor(+n.getValue()),c=Math.floor(+s.getValue()),l=Math.floor(+a.getValue());if(u<0||u>=2**53||c<2||c>36||l<0)return g.create(h.NUM);let f=u.toString(c);return f.length<l&&(f=new Array(l-f.length+1).join("0")+f),j.create(f.toLocaleUpperCase())}}class hd extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.map((c,l,f)=>{let m=c,d=a.get(l,f);if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const C=+m.getValue(),_=+d.getValue();if(C>0&&_<0)return g.create(h.NUM);if(C===0||_===0)return y.create(0);const E=Be(C/_,0)*_;return y.create(E)});return u.getRowCount()===1&&u.getColumnCount()===1?u.getArrayValue()[0][0]:u}}class gd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:y.create(1),s=r!=null?r:y.create(0);if(e.isError())return e;if(n.isError())return n;if(s.isError())return s;const a=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=O(a,u,e,g.create(h.NA)),l=O(a,u,n,g.create(h.NA)),f=O(a,u,s,g.create(h.NA)),m=c.map((d,C,_)=>{let E=d,b=l.get(C,_),R=f.get(C,_);if(E.isString()&&(E=E.convertToNumberObjectValue()),E.isError())return E;if(b.isString()&&(b=b.convertToNumberObjectValue()),b.isError())return b;if(R.isString()&&(R=R.convertToNumberObjectValue()),R.isError())return R;const p=+E.getValue(),V=+b.getValue(),S=+R.getValue();return p===0||V===0?y.create(0):this._getResult(p,V,S)});return a===1&&u===1?m.get(0,0):m}_getResult(e,t,r){let n;return e<0&&r!==0?n=(t<0?Be(Math.abs(e)/Math.abs(t),0):-Be(Math.abs(e)/t,0))*t:n=(t<0?-Be(e/Math.abs(t),0):Be(e/t,0))*t,y.create(n)}}class dd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(1);if(e.isError())return e;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.map((l,f,m)=>{let d=u.get(f,m),C=l;if(C.isString()&&(C=C.convertToNumberObjectValue()),C.isError())return C;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+C.getValue(),E=+d.getValue();if(_===0||E===0)return y.create(0);const b=(E<0?-Be(_/Math.abs(E),0):Be(_/E,0))*E;return y.create(b)});return n===1&&s===1?c.get(0,0):c}}class Cd extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{let m=c,d=a.get(l,f);if(m.isString()&&(m=m.convertToNumberObjectValue()),d.isString()&&(d=d.convertToNumberObjectValue()),m.isError())return m;if(d.isError())return d;const C=Math.floor(+m.getValue()),_=Math.floor(+d.getValue());if(C<0||_<0||C<_)return g.create(h.NUM);const E=kt(C,_);return Number.isNaN(E)||!Number.isFinite(E)?g.create(h.NUM):y.create(E)});return r===1&&n===1?u.get(0,0):u}}class _d extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{let m=c,d=a.get(l,f);if(m.isString()&&(m=m.convertToNumberObjectValue()),d.isString()&&(d=d.convertToNumberObjectValue()),m.isError())return m;if(d.isError())return d;const C=Math.floor(+m.getValue()),_=Math.floor(+d.getValue());if(C<0||_<0||C===0&&C<_)return g.create(h.NUM);const E=kt(C+_-1,C-1);return Number.isNaN(E)||!Number.isFinite(E)?g.create(h.NUM):y.create(E)});return r===1&&n===1?u.get(0,0):u}}class Ad extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.cos()}}class Ed extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.cosh()}}class bd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return Math.abs(r)>=2**27?g.create(h.NUM):r===0?g.create(h.DIV_BY_ZERO):t.tan().getReciprocal()}}class yd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:+t.getValue()===0?g.create(h.DIV_BY_ZERO):t.tanh().getReciprocal()}}class Rd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return Math.abs(r)>=2**27?g.create(h.NUM):r===0?g.create(h.DIV_BY_ZERO):t.sin().getReciprocal()}}class pd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return r===0?g.create(h.DIV_BY_ZERO):!Number.isNaN(r)&&!Number.isFinite(Math.sinh(r))?y.create(0):t.sinh().getReciprocal()}}class Nd extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.map((c,l,f)=>{if(c.isError())return c;let m=a.get(l,f);if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;const d=`${c.getValue()}`,C=Math.floor(+m.getValue());if(M.isRealNum(d)&&(+d<0||+d>=2**53||!Number.isInteger(+d))||d.toLocaleLowerCase()==="true"||d.toLocaleLowerCase()==="false"||C<2||C>36)return g.create(h.NUM);if(d.replace(/\s/g,"")==="")return y.create(0);if(!this._isValidCharForRadix(d,C))return g.create(h.NUM);const _=Number.parseInt(d,C);return Number.isNaN(_)?g.create(h.NUM):y.create(_)});return r===1&&n===1?u.get(0,0):u}_isValidCharForRadix(e,t){for(const r of e){const n=r.toUpperCase().charCodeAt(0);if(t<=10&&!(n>=48&&n<48+t)||t>10&&!(n>=48&&n<58||n>=65&&n<65+t-10))return!1}return!0}}class Vd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(!Number.isFinite(r))return g.create(h.VALUE);const n=r*(180/Math.PI);return Number.isNaN(n)?g.create(h.VALUE):y.create(n)}}class Od extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(!Number.isFinite(r))return g.create(h.VALUE);const n=(r<0?-Be(Math.abs(r)/2,0):Be(r/2,0))*2;return Number.isNaN(n)?g.create(h.VALUE):n===0?y.create(0):y.create(n)}}class Md extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.exp()}}class Sd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=Math.floor(+t.getValue()),n=er(r);return Number.isNaN(n)||!Number.isFinite(n)?g.create(h.NUM):y.create(n)}}class Dd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;if(e.isArray()){const r=e.getRowCount(),n=e.getColumnCount();if(r>1||n>1)return g.create(h.VALUE);t=e.get(0,0)}return this._handleSingleObject(t)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=Math.floor(+t.getValue()),n=er(r,2);return Number.isNaN(n)||!Number.isFinite(n)?g.create(h.NUM):y.create(n)}}class wd extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.map((c,l,f)=>{let m=a.get(l,f),d=c;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;const C=+d.getValue(),_=+m.getValue();if(C>0&&_<0)return g.create(h.NUM);if(C===0)return y.create(0);if(_===0)return g.create(h.DIV_BY_ZERO);const E=ke(C/_,0)*_;return y.create(E)});return r===1&&n===1?u.get(0,0):u}}class Pd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:y.create(1),s=r!=null?r:y.create(0),a=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=O(a,u,e,g.create(h.NA)),l=O(a,u,n,g.create(h.NA)),f=O(a,u,s,g.create(h.NA)),m=c.map((d,C,_)=>{let E=d,b=l.get(C,_),R=f.get(C,_);if(E.isString()&&(E=E.convertToNumberObjectValue()),E.isError())return E;if(b.isString()&&(b=b.convertToNumberObjectValue()),b.isError())return b;if(R.isString()&&(R=R.convertToNumberObjectValue()),R.isError())return R;const p=+E.getValue(),V=+b.getValue(),S=+R.getValue();if(p===0||V===0)return y.create(0);let D;return p<0&&S!==0?D=(V<0?ke(Math.abs(p)/Math.abs(V),0):-ke(Math.abs(p)/V,0))*V:D=(V<0?-ke(p/Math.abs(V),0):ke(p/V,0))*V,y.create(D)});return a===1&&u===1?m.get(0,0):m}}class Ld extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(1);if(e.isError())return e;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.map((l,f,m)=>{let d=u.get(f,m),C=l;if(C.isString()&&(C=C.convertToNumberObjectValue()),C.isError())return C;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+C.getValue(),E=+d.getValue();if(_===0||E===0)return y.create(0);const b=(E<0?-ke(_/Math.abs(E),0):ke(_/E,0))*E;return y.create(b)});return n===1&&s===1?c.get(0,0):c}}class xd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];if(!n.isNull())if(n.isArray()){let s=!1,a=g.create(h.VALUE);if(n.iterator(u=>{if(u!=null&&u.isNull())return!0;const{isError:c,errorObject:l,number:f}=this._handleSingleObject(u);if(c)return s=!0,a=l,!1;t=bs(t,f)}),s)return a}else{const{isError:s,errorObject:a,number:u}=this._handleSingleObject(n);if(s)return a;t=bs(t,u)}}return y.create(t)}_handleSingleObject(e){if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE),number:null};let t=e;if(e.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return{isError:!0,errorObject:t,number:null};const r=Math.floor(+t.getValue());return r<0||r>=2**53?{isError:!0,errorObject:g.create(h.NUM),number:null}:{isError:!1,errorObject:null,number:r}}}class jd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=Math.floor(+t.getValue());return y.create(r)}}class Ud extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=1,r=!0;for(let n=0;n<e.length;n++){const s=e[n];if(!s.isNull())if(s.isArray()){let a=!1,u=g.create(h.VALUE);if(s.iterator(c=>{if(c!=null&&c.isNull())return!0;const{isError:l,errorObject:f,number:m}=this._handleSingleObject(c);if(l)return a=!0,u=f,!1;t=Fa(t,m),r=!1}),a)return u}else{const{isError:a,errorObject:u,number:c}=this._handleSingleObject(s);if(a)return u;t=Fa(t,c),r=!1}}return r?y.create(0):Number.isNaN(t)||!Number.isFinite(t)||t>=2**53?g.create(h.VALUE):y.create(t)}_handleSingleObject(e){if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE),number:null};let t=e;if(e.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return{isError:!0,errorObject:t,number:null};const r=Math.floor(+t.getValue());return r<0?{isError:!0,errorObject:g.create(h.NUM),number:null}:{isError:!1,errorObject:null,number:r}}}class vd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.log()}}class Td extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(10);if(e.isError())return e;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.map((l,f,m)=>{let d=u.get(f,m),C=l;if(C.isString()&&(C=C.convertToNumberObjectValue()),C.isError())return C;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+C.getValue(),E=+d.getValue();if(_<=0||E<=0)return g.create(h.NUM);const b=Math.log(E);if(b===0)return g.create(h.DIV_BY_ZERO);const R=Math.log(_)/b;return y.create(R)});return n===1&&s===1?c.get(0,0):c}}class Bd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.log10()}}class Id extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let a=0;a<t;a++){const u=[];for(let c=0;c<r;c++){let l=e.isArray()?e.get(a,c):e;if(l.isError())return l;if(l.isNull()||l.isBoolean())return g.create(h.VALUE);if(l.isString()&&(l=l.convertToNumberObjectValue()),l.isError())return l;const f=+l.getValue();u.push(f)}n.push(u)}if(t!==r)return g.create(h.VALUE);const s=Tn(n);return y.create(s)}}class Fd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let a=0;a<t;a++){const u=[];for(let c=0;c<r;c++){let l=e.isArray()?e.get(a,c):e;if(l.isError())return l;if(l.isNull()||l.isBoolean())return g.create(h.VALUE);if(l.isString()&&(l=l.convertToNumberObjectValue()),l.isError())return l;const f=+l.getValue();u.push(f)}n.push(u)}if(t!==r)return g.create(h.VALUE);const s=hm(n);return s===null?g.create(h.NUM):K.createByArray(s)}}class kd extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;if(n!==s)return g.create(h.VALUE);const u=this._getMatrix(e,r,n),c=this._getMatrix(t,s,a);if(u instanceof g)return u;if(c instanceof g)return c;const l=tr(u,c);return K.createByArray(l)}_getMatrix(e,t,r){const n=[];for(let s=0;s<t;s++){const a=[];for(let u=0;u<r;u++){let c=e.isArray()?e.get(s,u):e;if(c.isError())return c;if(c.isNull()||c.isBoolean())return g.create(h.VALUE);if(c.isString()&&(c=c.convertToNumberObjectValue()),c.isError())return c;const l=+c.getValue();a.push(l)}n.push(a)}return n}}class $d extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.mod(n)}}class Yd extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isArray()){const c=r.getRowCount(),l=r.getColumnCount();if(c>1||l>1)return g.create(h.VALUE);r=r.get(0,0)}if(r.isError())return r;let n=t;if(n.isArray()){const c=n.getRowCount(),l=n.getColumnCount();if(c>1||l>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(r.isBoolean()||n.isBoolean())return g.create(h.VALUE);const s=+r.getValue(),a=+n.getValue();if(Number.isNaN(s)||Number.isNaN(a))return g.create(h.VALUE);if(a===0)return y.create(0);if(s>0&&a<0||s<0&&a>0)return g.create(h.NUM);const u=Vt(s/a,0)*a;return y.create(u)}}class Hd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=0,r=1;for(let s=0;s<e.length;s++){const a=e[s];if(!a.isNull())if(a.isArray()){let u=!1,c=g.create(h.VALUE);if(a.iterator(l=>{if(l!=null&&l.isNull())return!0;const{isError:f,errorObject:m,number:d}=this._handleSingleObject(l);if(f)return u=!0,c=m,!1;if(t+=d,t>170)return u=!0,c=g.create(h.NUM),!1;r*=er(d)}),u)return c}else{const{isError:u,errorObject:c,number:l}=this._handleSingleObject(a);if(u)return c;if(t+=l,t>170)return g.create(h.NUM);r*=er(l)}}const n=er(t)/r;return y.create(n)}_handleSingleObject(e){if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE),number:null};let t=e;if(e.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return{isError:!0,errorObject:t,number:null};const r=Math.floor(+t.getValue());return r<0?{isError:!0,errorObject:g.create(h.NUM),number:null}:{isError:!1,errorObject:null,number:r}}}class Gd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.getRowCount(),r=e.getColumnCount(),n=e.mapValue(s=>{const a=this._handleSingleObject(s);return a.isError()?a:t>1||r>1?a.get(0,0):a});return t===1&&r===1?n.get(0,0):n}return this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=Math.floor(+t.getValue());if(r<=0)return g.create(h.VALUE);const n=[];for(let s=0;s<r;s++){n[s]=[];for(let a=0;a<r;a++)n[s][a]=s===a?1:0}return K.createByArray(n)}}class Wd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(!Number.isFinite(r))return g.create(h.VALUE);let n=r<0?-Be(Math.abs(r),0):Be(r,0);return Number.isNaN(n)?g.create(h.VALUE):(Math.abs(n)%2===0&&(r<0?n--:n++),y.create(n))}}class Qd extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",0)}calculate(){return y.create(Math.PI)}}class qd extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.pow(n)}}class Xd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(1);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isArray()&&(n=this._multiplyArray(n)),n.isError())return n;if(t=t.multiply(n),t.isError())return t}}return t}_multiplyArray(e){let t=y.create(1);return e.iterator(r=>{if(r==null||r.isString()||r.isBoolean()||r.isNull())return!0;if(r.isError())return t=r,!1;t=t.multiply(r)}),t}}class Kd extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=H(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=+u.getValue();if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l===0)return g.create(h.DIV_BY_ZERO);const f=Math.trunc(c/l);return y.create(f)}}class Zd extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(!Number.isFinite(r))return g.create(h.VALUE);const n=r*(Math.PI/180);return Number.isNaN(n)?g.create(h.VALUE):y.create(n)}}class zd extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",0)}calculate(){return y.create(Math.random())}}class Jd extends N{constructor(){super(...arguments);A(this,"minParams",0);A(this,"maxParams",5);A(this,"needsSheetRowColumnCount",!0)}calculate(e,t,r,n,s){if(e!=null&&e.isError())return e;if(t!=null&&t.isError())return t;if(r!=null&&r.isError())return r;if(n!=null&&n.isError())return n;if(s!=null&&s.isError())return s;const a=e!=null?e:y.create(1),u=t!=null?t:y.create(1),c=r!=null?r:y.create(0),l=n!=null?n:y.create(1),f=s!=null?s:y.create(0);return this._calculateResult(a,u,c,l,f)}_calculateResult(e,t,r,n,s){const a=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1);if(a===1&&u===1)return this._calculateSingleCell(e,t,r,n,s);const c=O(a,u,e,g.create(h.NA)),l=O(a,u,t,g.create(h.NA)),f=O(a,u,r,g.create(h.NA)),m=O(a,u,n,g.create(h.NA)),d=O(a,u,s,g.create(h.NA));return c.map((C,_,E)=>{const b=l.get(_,E),R=f.get(_,E),p=m.get(_,E),V=d.get(_,E),S=this._handleError(C,b,R,p,V);if(S.errorObject)return S.errorObject;let{minValue:D,maxValue:w,wholeNumberValue:P}=S,L;return P?(D=Math.ceil(D),w=Math.floor(w),L=Math.floor(Math.random()*(w-D+1))+D):L=Math.random()*(w-D)+D,L<D||L>w?g.create(h.VALUE):y.create(L)})}_calculateSingleCell(e,t,r,n,s){let a=e;a.isArray()&&(a=a.get(0,0));let u=t;u.isArray()&&(u=u.get(0,0));let c=r;c.isArray()&&(c=c.get(0,0));let l=n;l.isArray()&&(l=l.get(0,0));let f=s;f.isArray()&&(f=f.get(0,0));const m=this._handleError(a,u,c,l,f);if(m.errorObject)return m.errorObject;let{rowsValue:d,columnsValue:C,minValue:_,maxValue:E,wholeNumberValue:b}=m;if(b&&(_=Math.ceil(_),E=Math.floor(E),_>E))return g.create(h.VALUE);const R=[];for(let p=0;p<d;p++){const V=[];for(let S=0;S<C;S++)b?V.push(Math.floor(Math.random()*(E-_+1))+_):V.push(Math.random()*(E-_)+_);R.push(V)}return d===1&&C===1?y.create(R[0][0]):K.createByArray(R)}_handleError(e,t,r,n,s){let a=e;if(a.isString()&&(a=a.convertToNumberObjectValue()),a.isError())return{errorObject:a};let u=t;if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return{errorObject:u};let c=r;if(c.isString()&&(c=c.convertToNumberObjectValue()),c.isError())return{errorObject:c};let l=n;if(l.isString()&&(l=l.convertToNumberObjectValue()),l.isError())return{errorObject:l};let f=s;return f.isString()&&(f=f.convertToNumberObjectValue()),f.isError()?{errorObject:f}:this._getValue(a,u,c,l,f)}_getValue(e,t,r,n,s){const a=Math.floor(+e.getValue()),u=Math.floor(+t.getValue());if(a===0||u===0)return{errorObject:g.create(h.CALC)};const c=this._rowCount-this.row,l=this._columnCount-this.column;if(a<0||u<0||a*u>10**7)return{errorObject:g.create(h.VALUE)};if(a>c||u>l)return{errorObject:g.create(h.REF)};const f=+r.getValue(),m=+n.getValue(),d=+s.getValue();return f>m?{errorObject:g.create(h.VALUE)}:d&&(!Number.isInteger(f)||!Number.isInteger(m))?{errorObject:g.create(h.VALUE)}:{rowsValue:a,columnsValue:u,minValue:f,maxValue:m,wholeNumberValue:d}}}class eC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isArray()){const c=r.getRowCount(),l=r.getColumnCount();if(c>1||l>1)return g.create(h.VALUE);r=r.get(0,0)}if(r.isError())return r;let n=t;if(n.isArray()){const c=n.getRowCount(),l=n.getColumnCount();if(c>1||l>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(r.isBoolean()||n.isBoolean())return g.create(h.VALUE);let s=+r.getValue(),a=+n.getValue();if(Number.isNaN(s)||Number.isNaN(a))return g.create(h.VALUE);if(s>a)return g.create(h.NUM);s=Math.ceil(s),a=Math.floor(a);const u=Math.floor(Math.random()*(a-s+1))+s;return y.create(u)}}class tC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(0),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.mapValue((l,f,m)=>{const d=u.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e);if(r)return n;const[a]=s;let u=Math.floor(+a.getValue()),c=t;if(c.isString()&&(c=c.convertToNumberObjectValue(),c.isError()))return c;let l=Math.floor(+c.getValue());if(c.isBoolean()&&(l=c.getValue()?0:4),u<0||u>3999||l<0||l>4)return g.create(h.VALUE);const f=Am[l];let m=f.length-1,d="";for(;u>0;){m=this._binarySearch(u,0,m,f);const C=f[m];u-=C,d+=_m.get(C)}return j.create(d)}_binarySearch(e,t,r,n){let s=t,a=r;for(;a-s>1;){const u=Math.floor((s+a)/2),c=n[u];if(c===e)return u;c>e?a=u:s=u}return s!==a&&n[a]<=e?a:s}}class rC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.round(n)}}class nC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.floor(n)}}class sC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.ceil(n)}}class aC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return Math.abs(r)>=2**27?g.create(h.NUM):t.cos().getReciprocal()}}class iC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return Number.isFinite(Math.cosh(r))?Math.abs(r)>=2**27?g.create(h.NUM):t.cosh().getReciprocal():y.create(0)}}class oC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",4);A(this,"needsSheetRowColumnCount",!0)}calculate(e,t,r,n){let s=e,a=t!=null?t:y.create(1),u=r!=null?r:y.create(1),c=n!=null?n:y.create(1);s.isNull()&&(s=y.create(1)),a.isNull()&&(a=y.create(1)),u.isNull()&&(u=y.create(1)),c.isNull()&&(c=y.create(1));const l=Math.max(s.isArray()?s.getRowCount():1,a.isArray()?a.getRowCount():1,u.isArray()?u.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(s.isArray()?s.getColumnCount():1,a.isArray()?a.getColumnCount():1,u.isArray()?u.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=O(l,f,s,g.create(h.NA)),d=O(l,f,a,g.create(h.NA)),C=O(l,f,u,g.create(h.NA)),_=O(l,f,c,g.create(h.NA)),E=m.mapValue((b,R,p)=>{const V=d.get(R,p),S=C.get(R,p),D=_.get(R,p);return b.isError()?b:V.isError()?V:S.isError()?S:D.isError()?D:this._getResult(b,V,S,D,l,f)});return l===1&&f===1?E.get(0,0):E}_getResult(e,t,r,n,s,a){const{isError:u,errorObject:c,variants:l}=I(e,t,r,n);if(u)return c;const[f,m,d,C]=l,_=Math.floor(+f.getValue()),E=Math.floor(+m.getValue()),b=+d.getValue(),R=+C.getValue();if(_<0||E<0||_*E>10**7)return g.create(h.VALUE);if(_===0||E===0)return g.create(h.CALC);const p=this._rowCount-this.row,V=this._columnCount-this.column;if(_>p||E>V)return g.create(h.REF);const S=[];for(let D=0;D<_;D++){S[D]=[];for(let w=0;w<E;w++)S[D][w]=b+(D*E+w)*R}return s>1||a>1?y.create(S[0][0]):K.createByArray(S)}}class uC extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){if(e.isNull()||t.isNull()||r.isNull()||n.isNull())return g.create(h.NA);const{isError:s,errorObject:a,variants:u}=H(e,t,r);if(s)return a;const{isError:c,errorObject:l,variants:f}=I(...u);if(c)return l;const[m,d,C]=f,_=+m.getValue(),E=+d.getValue(),b=+C.getValue(),R=[];if(n.isArray()){let V=!1,S=g.create(h.VALUE);if(n.iterator(D=>{const{isError:w,errorObject:P,coefficientsObject:L}=this._handleSingleObject(D);if(w)return V=!0,S=P,!1;const T=+L.getValue();R.push(T)}),V)return S}else{const{isError:V,errorObject:S,coefficientsObject:D}=this._handleSingleObject(n);if(V)return S;const w=+D.getValue();R.push(w)}let p=0;for(let V=0;V<R.length;V++)p+=R[V]*_**(E+V*b);return Number.isNaN(p)||!Number.isFinite(p)?g.create(h.NUM):y.create(p)}_handleSingleObject(e){if(e.isError())return{isError:!0,errorObject:e,coefficientsObject:null};if(e!=null&&e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE),coefficientsObject:null};let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?{isError:!0,errorObject:t,coefficientsObject:null}:{isError:!1,errorObject:null,coefficientsObject:t}}}class cC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=+s.getValue();return a>0?y.create(1):a<0?y.create(-1):y.create(0)}}class lC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.sin()}}class fC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.sinh()}}class mC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.sqrt()}}class hC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;if(t.isArray()){const s=t.getRowCount(),a=t.getColumnCount();if(s>1||a>1)return g.create(h.VALUE);t=t.get(0,0)}if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(r<0)return g.create(h.NUM);const n=Math.sqrt(r*Math.PI);return y.create(n)}}class gC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",255);A(this,"needsReferenceObject",!0)}calculate(e,...t){if(e.isError())return e;if(e.isReferenceObject()){const r=[];return e.iterator((n,s,a)=>{r[s]==null&&(r[s]=[]),r[s][a]=this._handleSingleObject(n,...t)}),Ht(r,r.length,r[0].length)}return this._handleSingleObject(e,...t)}_handleSingleObject(e,...t){const r=this._getIndexNumValue(e);let n;if(r instanceof g)return r;switch(r){case 1:n=this._average(!1,...t);break;case 2:n=this._count(!1,...t);break;case 3:n=this._counta(!1,...t);break;case 4:n=this._max(!1,...t);break;case 5:n=this._min(!1,...t);break;case 6:n=this._product(!1,...t);break;case 7:n=this._stdev(!1,...t);break;case 8:n=this._stdevp(!1,...t);break;case 9:n=this._sum(!1,...t);break;case 10:n=this._var(!1,...t);break;case 11:n=this._varp(!1,...t);break;case 101:n=this._average(!0,...t);break;case 102:n=this._count(!0,...t);break;case 103:n=this._counta(!0,...t);break;case 104:n=this._max(!0,...t);break;case 105:n=this._min(!0,...t);break;case 106:n=this._product(!0,...t);break;case 107:n=this._stdev(!0,...t);break;case 108:n=this._stdevp(!0,...t);break;case 109:n=this._sum(!0,...t);break;case 110:n=this._var(!0,...t);break;case 111:n=this._varp(!0,...t);break;default:n=g.create(h.VALUE)}return n}_getIndexNumValue(e){const t=e?Number(e.getValue()):0;if(Number.isNaN(t))return g.create(h.VALUE);const r=Math.floor(t);return r>=1&&r<=11||r>=101&&r<=111?r:g.create(h.VALUE)}_average(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.mean()}_count(e,...t){let r=y.create(0);for(let n=0;n<t.length;n++){const s=t[n];if(!s.isReferenceObject())return g.create(h.VALUE);const a=s.getRowData();s.iterator((u,c)=>{if(e&&this._isRowHidden(a,c))return!0;u!=null&&u.isNumber()&&(r=r.plusBy(1))})}return r}_counta(e,...t){let r=y.create(0);for(let n=0;n<t.length;n++){const s=t[n];if(!s.isReferenceObject())return g.create(h.VALUE);const a=s.getRowData();s.iterator((u,c)=>{if(e&&this._isRowHidden(a,c)||u==null||u.isNull())return!0;r=r.plusBy(1)})}return r}_max(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?y.create(0):r.max()}_min(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?y.create(0):r.min()}_product(e,...t){const r=this._flattenRefArray(e,...t);if(r.isError())return r;if(this._isBlankArrayObject(r))return y.create(0);let n=y.create(1);return r.iterator(s=>{n=n.multiply(s)}),n}_stdev(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?g.create(h.DIV_BY_ZERO):r.std(1)}_stdevp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?g.create(h.DIV_BY_ZERO):r.std()}_sum(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.sum()}_var(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?g.create(h.DIV_BY_ZERO):r.var(1)}_varp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?g.create(h.DIV_BY_ZERO):r.var()}_flattenRefArray(e,...t){const r=[];r[0]=[];for(let n=0;n<t.length;n++){const s=t[n];if(s.isError())return s;if(!s.isReferenceObject())return g.create(h.VALUE);const a=s.getRowData();let u;if(s.iterator((c,l)=>{if(e&&this._isRowHidden(a,l)||c==null||c.isNull()||c.isString()||c.isBoolean())return!0;if(c.isError())return u=c,!1;r[0].push(c)}),u!=null&&u.isError())return u}return Ht(r,1,r[0].length)}_isRowHidden(e,t){const r=e[t];return r?r.hd===M.BooleanNumber.TRUE:!1}_isBlankArrayObject(e){return e.getArrayValue()[0].length===0}}class dC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(0);for(let r=0;r<e.length;r++){let n=e[r];if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()||(n.isArray()&&(n=n.sum()),n.isError()))return n;if(t=t.plus(n),t.isError())return t}return t}}class CC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3);A(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=t;if(t.isReferenceObject()&&(n=t.toArrayValueObject()),n.isArray()){const s=n.mapValue(a=>this._handleSingleObject(e,a,r));return s.getRowCount()===1&&s.getColumnCount()===1?s.get(0,0):s}return this._handleSingleObject(e,n,r)}_handleSingleObject(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;if(!e.isReferenceObject()||r&&!r.isReferenceObject())return g.create(h.VALUE);const n=e.toArrayValueObject();let s=jn(n,t);const[,a]=mr(`${t.getValue()}`);s=Un(s,n,a);const u=n.getRowCount(),c=n.getColumnCount();let l=n;if(r){l=r.toArrayValueObject();const f=l.getRowCount(),m=l.getColumnCount();if(u!==f||c!==m){const d=r.getRangeData();d.endRow=d.startRow+u-1,d.endColumn=d.startColumn+c-1,r.setRangeData(d),l=r.toArrayValueObject()}}return l.pick(s).sum()}}class _C extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;if(!e.isArray()||t.length<2||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return g.create(h.VALUE);const{maxRowLength:r,maxColumnLength:n}=hr(t),s=Sr(t,e,r,n);if(s)return s;const a=Dr(t,r,n,!0);return this._aggregateResults(e,a)}_aggregateResults(e,t){const r=t.map(s=>s.map(a=>e.pick(a).sum())),n={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return K.create(n)}}class AC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;const r=this._initArray1(e);if(t.length>0){const n=r.getRowCount(),s=r.getColumnCount();let a=this._getResultArrayByArray1(n,s,r);if(a instanceof g)return a;a=a;for(let c=0;c<t.length;c++){if(t[c].isError())return t[c];let l=1,f=1;if(t[c].isArray()&&(l=t[c].getRowCount(),f=t[c].getColumnCount()),l!==n||f!==s)return g.create(h.VALUE);for(let m=0;m<n;m++){const d=[];for(let C=0;C<s;C++){let _=t[c];if(t[c].isArray()&&(_=t[c].get(m,C)),_.isError())return _;const E=_.getValue();!E||!M.isRealNum(E)?d.push(0):d.push(+E*a[m][C])}a[m]=d}}const u=a.reduce((c,l)=>c.concat(l)).reduce((c,l)=>c+l,0);return y.create(u)}else return r.sum()}_initArray1(e){let t=e;return t.isArray()||(t=K.create({calculateValueList:[[t]],rowCount:1,columnCount:1,unitId:"",sheetId:"",row:0,column:0})),t}_getResultArrayByArray1(e,t,r){const n=[];for(let s=0;s<e;s++){const a=[];for(let u=0;u<t;u++){const c=r.get(s,u);if(c.isError())return c;const l=c.getValue();!l||!M.isRealNum(l)?a.push(0):a.push(+l)}n.push(a)}return n}}class EC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(0);const r=y.create(2);for(let n=0;n<e.length;n++){let s=e[n];if(s.isString()&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()?s.iterator(a=>{if(a==null||a.isString()||a.isBoolean()||a.isNull())return!0;if(a.isError())return t=a,!1;t=t.plus(a.pow(r))}):t=t.plus(s.pow(r)),t.isError())return t}return t}}class bC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=r*n,a=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1,c=a*u;if(s!==c)return g.create(h.NA);if(s===1)return this._calculateSingleCell(e,t);{const l=e.flatten(),f=t.flatten();let m=ae.create();const d=[],C=[];let _=0;return l.iterator((E,b,R)=>{const p=f.get(b,R);if(E==null||E.isString()||E.isBoolean()||E.isNull())return!0;if(E!=null&&E.isError())return m=E,!1;if(p==null||p.isString()||p.isBoolean()||p.isNull())return!0;if(p!=null&&p.isError())return m=p,!1;const V=+E.getValue(),S=+p.getValue();d.push(V),C.push(S),_+=V**2-S**2}),m.isError()?m:d.length===0||C.length===0?g.create(h.DIV_BY_ZERO):y.create(_)}}_calculateSingleCell(e,t){let r=e;if(r.isArray()&&(r=r.get(0,0)),r.isError())return r;let n=t;if(n.isArray()&&(n=n.get(0,0)),n.isError())return n;if(r.isNull()||n.isNull())return g.create(h.VALUE);const s=+r.getValue(),a=+n.getValue();if(r.isString()&&!M.isRealNum(s)||r.isBoolean()||n.isString()&&!M.isRealNum(a)||n.isBoolean())return g.create(h.DIV_BY_ZERO);const u=s**2-a**2;return y.create(u)}}class yC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=r*n,a=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1,c=a*u;if(s!==c)return g.create(h.NA);if(s===1)return this._calculateSingleCell(e,t);{const l=e.flatten(),f=t.flatten();let m=ae.create();const d=[],C=[];let _=0;return l.iterator((E,b,R)=>{const p=f.get(b,R);if(E==null||E.isString()||E.isBoolean()||E.isNull())return!0;if(E!=null&&E.isError())return m=E,!1;if(p==null||p.isString()||p.isBoolean()||p.isNull())return!0;if(p!=null&&p.isError())return m=p,!1;const V=+E.getValue(),S=+p.getValue();d.push(V),C.push(S),_+=V**2+S**2}),m.isError()?m:d.length===0||C.length===0?g.create(h.DIV_BY_ZERO):y.create(_)}}_calculateSingleCell(e,t){let r=e;if(r.isArray()&&(r=r.get(0,0)),r.isError())return r;let n=t;if(n.isArray()&&(n=n.get(0,0)),n.isError())return n;if(r.isNull()||n.isNull())return g.create(h.VALUE);const s=+r.getValue(),a=+n.getValue();if(r.isString()&&!M.isRealNum(s)||r.isBoolean()||n.isString()&&!M.isRealNum(a)||n.isBoolean())return g.create(h.DIV_BY_ZERO);const u=s**2+a**2;return y.create(u)}}class RC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=r*n,a=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1,c=a*u;if(s!==c)return g.create(h.NA);if(s===1)return this._calculateSingleCell(e,t);{const l=e.flatten(),f=t.flatten();let m=ae.create();const d=[],C=[];let _=0;return l.iterator((E,b,R)=>{const p=f.get(b,R);if(E==null||E.isString()||E.isBoolean()||E.isNull())return!0;if(E!=null&&E.isError())return m=E,!1;if(p==null||p.isString()||p.isBoolean()||p.isNull())return!0;if(p!=null&&p.isError())return m=p,!1;const V=+E.getValue(),S=+p.getValue();d.push(V),C.push(S),_+=(V-S)**2}),m.isError()?m:d.length===0||C.length===0?g.create(h.DIV_BY_ZERO):y.create(_)}}_calculateSingleCell(e,t){let r=e;if(r.isArray()&&(r=r.get(0,0)),r.isError())return r;let n=t;if(n.isArray()&&(n=n.get(0,0)),n.isError())return n;if(r.isNull()||n.isNull())return g.create(h.VALUE);const s=+r.getValue(),a=+n.getValue();if(r.isString()&&!M.isRealNum(s)||r.isBoolean()||n.isString()&&!M.isRealNum(a)||n.isBoolean())return g.create(h.DIV_BY_ZERO);const u=(s-a)**2;return y.create(u)}}class pC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.tan()}}class NC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.tanh()}}class VC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(0),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.map((l,f,m)=>{let d=u.get(f,m),C=l;if(C.isString()&&(C=C.convertToNumberObjectValue()),C.isError())return C;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+C.getValue(),E=+d.getValue(),b=10**Math.trunc(E),R=Pn(_,b),p=Math.trunc(fr(_,b)+R)/b;return y.create(p)});return n===1&&s===1?c.get(0,0):c}}const cu=[[td,Y.ABS],[rd,Y.ACOS],[nd,Y.ACOSH],[sd,Y.ACOT],[ad,Y.ACOTH],[id,Y.ARABIC],[od,Y.ASIN],[ud,Y.ASINH],[cd,Y.ATAN],[ld,Y.ATAN2],[fd,Y.ATANH],[md,Y.BASE],[hd,Y.CEILING],[gd,Y.CEILING_MATH],[dd,Y.CEILING_PRECISE],[Cd,Y.COMBIN],[_d,Y.COMBINA],[Ad,Y.COS],[Ed,Y.COSH],[bd,Y.COT],[yd,Y.COTH],[Rd,Y.CSC],[pd,Y.CSCH],[Nd,Y.DECIMAL],[Vd,Y.DEGREES],[Od,Y.EVEN],[Md,Y.EXP],[Sd,Y.FACT],[Dd,Y.FACTDOUBLE],[wd,Y.FLOOR],[Pd,Y.FLOOR_MATH],[Ld,Y.FLOOR_PRECISE],[xd,Y.GCD],[jd,Y.INT],[Ud,Y.LCM],[vd,Y.LN],[Td,Y.LOG],[Bd,Y.LOG10],[Id,Y.MDETERM],[Fd,Y.MINVERSE],[kd,Y.MMULT],[$d,Y.MOD],[Yd,Y.MROUND],[Hd,Y.MULTINOMIAL],[Gd,Y.MUNIT],[Wd,Y.ODD],[Qd,Y.PI],[qd,Y.POWER],[Xd,Y.PRODUCT],[Kd,Y.QUOTIENT],[Zd,Y.RADIANS],[zd,Y.RAND],[Jd,Y.RANDARRAY],[eC,Y.RANDBETWEEN],[tC,Y.ROMAN],[rC,Y.ROUND],[nC,Y.ROUNDDOWN],[sC,Y.ROUNDUP],[aC,Y.SEC],[iC,Y.SECH],[uC,Y.SERIESSUM],[oC,Y.SEQUENCE],[cC,Y.SIGN],[lC,Y.SIN],[fC,Y.SINH],[mC,Y.SQRT],[hC,Y.SQRTPI],[gC,Y.SUBTOTAL],[dC,Y.SUM],[CC,Y.SUMIF],[_C,Y.SUMIFS],[AC,Y.SUMPRODUCT],[EC,Y.SUMSQ],[bC,Y.SUMX2MY2],[yC,Y.SUMX2PY2],[RC,Y.SUMXMY2],[pC,Y.TAN],[NC,Y.TANH],[VC,Y.TRUNC]];class OC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2);A(this,"_compareType",$.EQUALS)}setCompareType(e){this._compareType=e}calculate(e,t){return e.isError()?e:t.isError()?t:e.compare(t,this._compareType)}}class sa extends ht{constructor(e){super("");A(this,"_values",[]);this._values=e}static create(e){return new sa(e)}isCube(){return!0}dispose(){this._values.forEach(e=>{e.dispose()}),this._values=[]}sum(){const e=y.create(0);return this._values.forEach(t=>{e.plus(t.sum())}),e}max(){let e=y.create(Number.NEGATIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isLessThan(r)&&(e=r)}),e}min(){let e=y.create(Number.POSITIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isGreaterThan(r)&&(e=r)}),e}count(){const e=y.create(0);return this._values.forEach(t=>{e.plus(t.count())}),e}countA(){const e=y.create(0);return this._values.forEach(t=>{e.plus(t.countA())}),e}countBlank(){const e=y.create(0);return this._values.forEach(t=>{e.plus(t.countBlank())}),e}}class MC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=[];for(let r=0;r<e.length;r++){const n=e[r];if(n.isError())return n;if(!n.isArray())return g.create(h.VALUE);t.push(n)}return sa.create(t)}}class SC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:!t.isArray()&&t.getValue()===0?g.create(h.DIV_BY_ZERO):e.divided(t)}}class DC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.minus(t)}}class wC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.multiply(t)}}class PC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.plus(t)}}const lu=[[OC,Le.COMPARE],[SC,Le.DIVIDED],[DC,Le.MINUS],[wC,Le.MULTIPLY],[PC,Le.PLUS],[MC,Le.CUBE]];class LC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(0),r=y.create(0);for(let a=0;a<e.length;a++){let u=e[a];if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;if(u.isArray()){if(u=xC(u),u.isError())return u;if(e[a]=u,t=t.plus(u.sum()),t.isError())return t;r=r.plus(u.count())}else u.isNull()||(t=t.plus(u),r=r.plus(y.create(1)))}if(r.getValue()===0)return g.create(h.NUM);const n=t.divided(r);if(n.isError())return n;let s=y.create(0);for(let a=0;a<e.length;a++){let u=e[a];if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;if(u.isArray()){if(s=s.plus(u.minus(n).abs().sum()),s.isError())return s}else u.isNull()||(s=s.plus(u.minus(n).abs()))}return s.divided(r)}}function xC(i){const o=[];o[0]=[];let e=null;return i.iterator((t,r,n)=>{if(t!=null&&t.isError())return e=t,!1;t!=null&&t.isNumber()&&o[0].push(t)}),e||Ht(o,1,o[0].length)}class jC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(0),r=y.create(0);for(let n=0;n<e.length;n++){let s=e[n];if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()){if(t=t.plus(s.sum()),t.isError())return t;r=r.plus(s.count())}else s.isNull()||(t=t.plus(s),r=r.plus(y.create(1)))}return t.divided(r)}}class UC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(0),r=y.create(0);for(let n=0;n<e.length;n++){let s=e[n];if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()){if(s.iterator(a=>{if(a==null||a.isNull())return!0;let u=a;if(u.isString()&&(u=u.convertToNumberObjectValue(),u.isError()&&(u=y.create(0))),u.isBoolean()&&(u=u.convertToNumberObjectValue()),u.isError())return t=u,!1;t=t.plus(u),r=r.plus(y.create(1))}),t.isError())return t}else s.isNull()||(t=t.plus(s),r=r.plus(y.create(1)))}return t.divided(r)}}class vC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3);A(this,"needsReferenceObject",!0)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;let n=e;n.isReferenceObject()&&(n=n.toArrayValueObject()),n.isArray()||(n=Ht([[n]],1,1));let s=t;return s.isReferenceObject()&&(s=s.toArrayValueObject()),r&&!(r!=null&&r.isReferenceObject())?g.create(h.NA):(s=s,s.isArray()?s.map(a=>this._handleSingleObject(n,a,r)):this._handleSingleObject(n,s,r))}_handleSingleObject(e,t,r){let n=jn(e,t);const[,s]=mr(`${t.getValue()}`);n=Un(n,e,s);let a=r?this._createRangeReferenceObject(r,e):e;if(!a)return g.create(h.VALUE);if(a.isError())return a;a.isReferenceObject()&&(a=a.toArrayValueObject()),a=a;const u=a.pick(n),c=u.sum(),l=u.count();return c.divided(l)}_createRangeReferenceObject(e,t){const r=e.getRowCount(),n=e.getColumnCount(),s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;if(r===s&&n===a)return e;const{startRow:u,startColumn:c}=e.getRangePosition(),l={startRow:u,startColumn:c,endRow:u+s-1,endColumn:c+a-1};return this.createReferenceObject(e,l)}}class TC extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",255)}calculate(e,...t){if(e.isError())return g.create(h.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return g.create(h.VALUE);const{maxRowLength:r,maxColumnLength:n}=hr(t),s=Sr(t,e,r,n);if(s)return s;const a=Dr(t,r,n,!0);return this._aggregateResults(e,a)}_aggregateResults(e,t){const r=t.map(s=>s.map(a=>{const u=e.pick(a),c=u.sum(),l=u.count();return c.divided(l)})),n={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return K.create(n)}}class BC extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){let u=s!=null?s:y.create(0),c=a!=null?a:y.create(1);u.isNull()&&(u=y.create(0)),c.isNull()&&(c=y.create(1));const l=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,u.isArray()?u.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,u.isArray()?u.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=O(l,f,e,g.create(h.NA)),d=O(l,f,t,g.create(h.NA)),C=O(l,f,r,g.create(h.NA)),_=O(l,f,n,g.create(h.NA)),E=O(l,f,u,g.create(h.NA)),b=O(l,f,c,g.create(h.NA)),R=m.mapValue((p,V,S)=>{const D=d.get(V,S),w=C.get(V,S),P=_.get(V,S),L=E.get(V,S),T=b.get(V,S);return this._handleSignleObject(p,D,w,P,L,T)});return l===1&&f===1?R.get(0,0):R}_handleSignleObject(e,t,r,n,s,a){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(n.isError())return n;if(s.isError())return s;if(a.isError())return a;const{isError:u,errorObject:c,variants:l}=I(e,t,r,n,s,a);if(u)return c;const[f,m,d,C,_,E]=l,b=+f.getValue(),R=+m.getValue(),p=+d.getValue(),V=+C.getValue(),S=+_.getValue(),D=+E.getValue();if(R<=0||p<=0||b<S||b>D||S===D)return g.create(h.NUM);let w;return V?w=to((b-S)/(D-S),R,p):w=Em((b-S)/(D-S),R,p)/(D-S),y.create(w)}}class IC extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){let s=n!=null?n:r;s.isNull()&&(s=r);const a=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=O(a,u,e,g.create(h.NA)),l=O(a,u,t,g.create(h.NA)),f=O(a,u,r,g.create(h.NA)),m=O(a,u,s,g.create(h.NA)),d=c.mapValue((C,_,E)=>{const b=l.get(_,E),R=f.get(_,E),p=m.get(_,E);return C.isError()?C:b.isError()?b:R.isError()?R:p.isError()?p:this._handleSignleObject(C,b,R,p)});return a===1&&u===1?d.get(0,0):d}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(e,t,r,n);if(s)return a;const[c,l,f,m]=u,d=Math.floor(+c.getValue()),C=+l.getValue(),_=Math.floor(+f.getValue()),E=Math.floor(+m.getValue());if(d<0||C<0||C>1||_<0||_>d||E<0||E<_||E>d)return g.create(h.NUM);let b=0;for(let R=_;R<=E;R++)b+=Ws(R,d,C);return y.create(b)}}class FC extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=Math.floor(+c.getValue()),d=+l.getValue();if(f<0||m<1||m>10**10)return g.create(h.NUM);let C;return d?C=Qs(f,m):C=bm(f,m),y.create(C)}}class kC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);return c.isError()?c:m.isError()?m:this._handleSignleObject(c,m)});return r===1&&n===1?u.get(0,0):u}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(c<0||c>1||l<1||l>10**10)return g.create(h.NUM);const f=no(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class $C extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);if(f.isError())return f;if(C.isError())return C;if(_.isError())return _;const{isError:E,errorObject:b,variants:R}=I(f,C,_);if(E)return b;const[p,V,S]=R,D=+p.getValue(),w=+V.getValue(),P=Math.floor(+S.getValue());if(D<=0||D>=1||w<=0||P<1)return g.create(h.NUM);if(P===1)return g.create(h.DIV_BY_ZERO);const L=Math.abs(zs(D/2,P-1)*w/Math.sqrt(P));return y.create(L)});return n===1&&s===1?l.get(0,0):l}}class YC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return u;let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return c;if(r*n===1||s*a===1)return u.isNull()||c.isNull()?g.create(h.VALUE):g.create(h.DIV_BY_ZERO);if(r*n!==s*a)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?f:C?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){const r=e.length;let n=0,s=0;for(let d=0;d<r;d++)n+=e[d],s+=t[d];const a=n/r,u=s/r;let c=0,l=0,f=0;for(let d=0;d<r;d++){const C=e[d]-a,_=t[d]-u;c+=C*_,l+=C**2,f+=_**2}const m=Math.sqrt(l*f);return m===0?g.create(h.DIV_BY_ZERO):y.create(c/m)}}class HC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(0);for(let r=0;r<e.length;r++){const n=e[r];n.isError()||(n.isArray()?t=t.plus(n.count()):n.isString()?n.convertToNumberObjectValue().isError()||(t=t.plus(y.create(1))):n.isNull()||(t=t.plus(y.create(1))))}return t}}class GC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(0);for(let r=0;r<e.length;r++){let n=e[r];if(n.isError()){t=t.plus(y.create(1));continue}n.isArray()?(n=n.countA(),t=t.plus(n)):n.isNull()||(t=t.plus(y.create(1)))}return t}}class WC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isError()?e:e.getValue()===""||e.isNull()?y.create(1):e.isArray()?e.countBlank():y.create(0)}}class QC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){return e.isError()||t.isError()?g.create(h.NA):e.isArray()?t.isArray()?t.mapValue(r=>this._handleSingleObject(e,r)):this._handleSingleObject(e,t):g.create(h.VALUE)}_handleSingleObject(e,t){let r=jn(e,t);const[,n]=mr(`${t.getValue()}`);r=Un(r,e,n);const s=e.pick(r);return this._countA(s)}_countA(e){let t=y.create(0);return e.iterator(r=>{if(r==null)return!0;t=t.plusBy(1)}),t}}class qC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",255)}calculate(...e){if(e.length%2!==0||e.some((a,u)=>u%2===0&&!a.isArray()))return g.create(h.VALUE);const{maxRowLength:t,maxColumnLength:r}=hr(e),n=Sr(e,e[0],t,r);if(n)return n;const s=Dr(e,t,r,!0);return this._aggregateResults(s)}_aggregateResults(e){const t=e.map(n=>n.map(s=>XC(s))),r={calculateValueList:t,rowCount:t.length,columnCount:t[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return K.create(r)}}function XC(i){let o=0;return i.iterator(e=>{e!=null&&e.isBoolean()&&e.getValue()===!0&&o++}),y.create(o)}class KC extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return u;let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return c;if((r*n===1||s*a===1)&&(u.isNull()||c.isNull()))return g.create(h.VALUE);if(r*n!==s*a)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?f:C?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){if(e.length<=1)return g.create(h.DIV_BY_ZERO);const r=e.length;let n=0,s=0;for(let l=0;l<r;l++)n+=e[l],s+=t[l];const a=n/r,u=s/r;let c=0;for(let l=0;l<r;l++){const f=e[l]-a,m=t[l]-u;c+=f*m}return y.create(c/(r-1))}}class ZC extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=[];let r=0,n=!0;for(let u=0;u<e.length;u++){const c=e[u];if(c.isArray()){let l=!1,f=g.create(h.VALUE);if(c.iterator(m=>{const d=this._handleSingleObject(m);if(d.isError())return l=!0,f=d,!1;if(d.isNull())return!0;const C=d.getValue();t.push(C),r+=C,n=!1}),l)return f}else{const l=this._handleSingleObject(c);if(l.isError())return l;if(l.isNull())continue;const f=l.getValue();t.push(f),r+=f,n=!1}}if(n)return g.create(h.NUM);const s=r/t.length;let a=0;for(let u=0;u<t.length;u++)a+=(t[u]-s)**2;return y.create(a)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull()||e.isBoolean())return ae.create();const t=e.getValue();return M.isRealNum(t)?y.create(+t):ae.create()}}class zC extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSignleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(e,t,r,n);if(s)return a;const[c,l,f,m]=u,d=+c.getValue(),C=Math.floor(+l.getValue()),_=Math.floor(+f.getValue()),E=+m.getValue();if(d<0||C<1||C>10**10||_<1||_>10**10)return g.create(h.NUM);let b;return E?b=qs(d,C,_):b=ym(d,C,_),Number.isNaN(b)||!Number.isFinite(b)?g.create(h.NUM):y.create(b)}}class JC extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=Math.floor(+c.getValue()),d=Math.floor(+l.getValue());if(f<0||f>1||m<1||m>10**10||d<1||d>10**10)return g.create(h.NUM);const C=so(f,m,d);return Number.isNaN(C)||!Number.isFinite(C)?g.create(h.NUM):y.create(C)}}class e_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=s.getValue();if(a<=-1||a>=1)return g.create(h.NUM);const u=Math.log((1+a)/(1-a))/2;return y.create(u)}}class t_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=+s.getValue(),u=Math.exp(2*a)-1,c=Math.exp(2*a)+1;return!Number.isFinite(u)&&u>0&&!Number.isFinite(c)&&c>0?y.create(1):y.create(u/c)}}class Qa extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=t.isArray()?t.getRowCount():1,s=t.isArray()?t.getColumnCount():1,a=r.isArray()?r.getRowCount():1,u=r.isArray()?r.getColumnCount():1;let c=t;t.isArray()&&n===1&&s===1&&(c=t.get(0,0));let l=r;return r.isArray()&&a===1&&u===1&&(l=r.get(0,0)),e.isArray()?e.mapValue(f=>this._handleSignleObject(f,c,l,n,s,a,u)):this._handleSignleObject(e,c,l,n,s,a,u)}_handleSignleObject(e,t,r,n,s,a,u){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;let c=e;if(e.isString()&&(c=e.convertToNumberObjectValue()),c.isError())return c;const l=+c.getValue();if((n*s===1||a*u===1)&&(t.isNull()||r.isNull()))return g.create(h.VALUE);if(n*s!==a*u)return g.create(h.NA);const{isError:f,errorObject:m,array1Values:d,array2Values:C,noCalculate:_}=Ge(t,r,n*s,s,u);if(f)return m;if(_)return g.create(h.DIV_BY_ZERO);const E=ao(l,d,C);return Number.isFinite(E)?y.create(E):g.create(h.DIV_BY_ZERO)}}class r_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,values:s}=this._getValues(e);if(r)return n;if(e.isNull()||t.isNull())return g.create(h.VALUE);let{values:a}=this._getValues(t,!0);a.length===0&&(a=[0]);const u=this._getNewBinsArrayValues(a),c=new Array(u.length).fill(0);for(let l=0;l<s.length;l++){const f=s[l],m=u.findIndex(d=>f>d.start&&f<=d.end);c[m]++}return K.createByArray(c.map(l=>[l]))}_getValues(e,t=!1){const r=[],n=e.isArray()?e.getRowCount():1,s=e.isArray()?e.getColumnCount():1;for(let a=0;a<n;a++)for(let u=0;u<s;u++){const c=e.isArray()?e.get(a,u):e;if(c.isError()){if(!t)return{isError:!0,errorObject:c,values:r};continue}if(c.isNull()||c.isBoolean())continue;const l=c.getValue();M.isRealNum(l)&&r.push(+l)}return{isError:!1,errorObject:null,values:r}}_getNewBinsArrayValues(e){const t=e.map((n,s)=>({value:n,index:s})).sort((n,s)=>n.value-s.value),r=[];for(let n=0;n<t.length;n++){const s=t[n].index;if(n===0){r[s]={start:-1/0,end:t[n].value};continue}r[s]={start:t[n-1].value,end:t[n].value}}return r.push({start:t[t.length-1].value,end:1/0}),r}}var U=(i=>(i.AVEDEV="AVEDEV",i.AVERAGE="AVERAGE",i.AVERAGEA="AVERAGEA",i.AVERAGEIF="AVERAGEIF",i.AVERAGEIFS="AVERAGEIFS",i.BETA_DIST="BETA.DIST",i.BETA_INV="BETA.INV",i.BINOM_DIST="BINOM.DIST",i.BINOM_DIST_RANGE="BINOM.DIST.RANGE",i.BINOM_INV="BINOM.INV",i.CHISQ_DIST="CHISQ.DIST",i.CHISQ_DIST_RT="CHISQ.DIST.RT",i.CHISQ_INV="CHISQ.INV",i.CHISQ_INV_RT="CHISQ.INV.RT",i.CHISQ_TEST="CHISQ.TEST",i.CONFIDENCE_NORM="CONFIDENCE.NORM",i.CONFIDENCE_T="CONFIDENCE.T",i.CORREL="CORREL",i.COUNT="COUNT",i.COUNTA="COUNTA",i.COUNTBLANK="COUNTBLANK",i.COUNTIF="COUNTIF",i.COUNTIFS="COUNTIFS",i.COVARIANCE_P="COVARIANCE.P",i.COVARIANCE_S="COVARIANCE.S",i.DEVSQ="DEVSQ",i.EXPON_DIST="EXPON.DIST",i.F_DIST="F.DIST",i.F_DIST_RT="F.DIST.RT",i.F_INV="F.INV",i.F_INV_RT="F.INV.RT",i.F_TEST="F.TEST",i.FISHER="FISHER",i.FISHERINV="FISHERINV",i.FORECAST="FORECAST",i.FORECAST_ETS="FORECAST.ETS",i.FORECAST_ETS_CONFINT="FORECAST.ETS.CONFINT",i.FORECAST_ETS_SEASONALITY="FORECAST.ETS.SEASONALITY",i.FORECAST_ETS_STAT="FORECAST.ETS.STAT",i.FORECAST_LINEAR="FORECAST.LINEAR",i.FREQUENCY="FREQUENCY",i.GAMMA="GAMMA",i.GAMMA_DIST="GAMMA.DIST",i.GAMMA_INV="GAMMA.INV",i.GAMMALN="GAMMALN",i.GAMMALN_PRECISE="GAMMALN.PRECISE",i.GAUSS="GAUSS",i.GEOMEAN="GEOMEAN",i.GROWTH="GROWTH",i.HARMEAN="HARMEAN",i.HYPGEOM_DIST="HYPGEOM.DIST",i.INTERCEPT="INTERCEPT",i.KURT="KURT",i.LARGE="LARGE",i.LINEST="LINEST",i.LOGEST="LOGEST",i.LOGNORM_DIST="LOGNORM.DIST",i.LOGNORM_INV="LOGNORM.INV",i.MAX="MAX",i.MAXA="MAXA",i.MAXIFS="MAXIFS",i.MEDIAN="MEDIAN",i.MIN="MIN",i.MINA="MINA",i.MINIFS="MINIFS",i.MODE_MULT="MODE.MULT",i.MODE_SNGL="MODE.SNGL",i.NEGBINOM_DIST="NEGBINOM.DIST",i.NORM_DIST="NORM.DIST",i.NORM_INV="NORM.INV",i.NORM_S_DIST="NORM.S.DIST",i.NORM_S_INV="NORM.S.INV",i.PEARSON="PEARSON",i.PERCENTILE_EXC="PERCENTILE.EXC",i.PERCENTILE_INC="PERCENTILE.INC",i.PERCENTRANK_EXC="PERCENTRANK.EXC",i.PERCENTRANK_INC="PERCENTRANK.INC",i.PERMUT="PERMUT",i.PERMUTATIONA="PERMUTATIONA",i.PHI="PHI",i.POISSON_DIST="POISSON.DIST",i.PROB="PROB",i.QUARTILE_EXC="QUARTILE.EXC",i.QUARTILE_INC="QUARTILE.INC",i.RANK_AVG="RANK.AVG",i.RANK_EQ="RANK.EQ",i.RSQ="RSQ",i.SKEW="SKEW",i.SKEW_P="SKEW.P",i.SLOPE="SLOPE",i.SMALL="SMALL",i.STANDARDIZE="STANDARDIZE",i.STDEV_P="STDEV.P",i.STDEV_S="STDEV.S",i.STDEVA="STDEVA",i.STDEVPA="STDEVPA",i.STEYX="STEYX",i.T_DIST="T.DIST",i.T_DIST_2T="T.DIST.2T",i.T_DIST_RT="T.DIST.RT",i.T_INV="T.INV",i.T_INV_2T="T.INV.2T",i.T_TEST="T.TEST",i.TREND="TREND",i.TRIMMEAN="TRIMMEAN",i.VAR_P="VAR.P",i.VAR_S="VAR.S",i.VARA="VARA",i.VARPA="VARPA",i.WEIBULL_DIST="WEIBULL.DIST",i.Z_TEST="Z.TEST",i))(U||{});class n_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=+s.getValue();if(a===0||a<0&&a%1===0)return g.create(h.NUM);const u=Qr(a);return Number.isNaN(u)||!Number.isFinite(u)?g.create(h.NUM):y.create(u)}}class qa extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=+s.getValue();if(a<=0)return g.create(h.NUM);const u=rt(a);return Math.abs(u)<1e-15?y.create(0):y.create(u)}}class s_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=+s.getValue(),u=Pr(a,0,1)-.5;return y.create(u)}}class a_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=1,r=0,n=!1;for(let a=0;a<e.length;a++){const u=e[a];if(u.isArray()){let c=!1,l=g.create(h.VALUE);if(u.iterator(f=>{if(f!=null&&f.isError())return c=!0,l=f,!1;if(f!=null&&f.isNull()||f!=null&&f.isBoolean())return!0;const m=f.getValue();if(!M.isRealNum(m))return!0;+m<=0&&(n=!0),t*=+m,r++}),c)return l}else{if(u.isError())return u;if(u.isString()){const l=u.convertToNumberObjectValue();if(l.isError())return l}if(u.isNull()||u.isBoolean())continue;const c=u.getValue();if(!M.isRealNum(c))continue;+c<=0&&(n=!0),t*=+c,r++}}if(r===0||n)return g.create(h.NUM);const s=t**(1/r);return y.create(s)}}class i_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",4)}calculate(e,t,r,n){const s=e.isArray()?e.getRowCount():1,a=e.isArray()?e.getColumnCount():1,u=this._getValues(e,s,a);if(u instanceof g)return u;const c=this._getKnownXsValues(s,a,t);if(c instanceof g)return c;const l=this._getNewXsValues(c,s,a,r);if(l instanceof g)return l;let f=n!=null?n:k.create(!0);if(f.isArray()&&(f=f.get(0,0)),f.isString()&&(f=f.convertToNumberObjectValue()),f.isError())return f;const m=+f.getValue();return this._getResult(u,c,l,m)}_getResult(e,t,r,n){return e.length===1&&t.length>1||e[0].length===1&&t[0].length>1?this._getResultByMultipleVariables(e,t,r,n):this._getResultBySimpleVariables(e,t,r,n)}_getResultByMultipleVariables(e,t,r,n){const s=e.length===1&&e[0].length>1;let a=[],u=[];s?(a=yt(e).map(_=>_.map(E=>Math.log(E))),u=n?yt(t).map(_=>[..._,1]):yt(t)):(a=e.map(_=>_.map(E=>Math.log(E))),u=n?t.map(_=>[..._,1]):t);const c=yt(u),l=tr(c,u),f=tr(c,a),m=dm(l);if(!m)return g.create(h.NA);const d=tr(m,f).map(_=>_[0]);let C=[];return s?(C=yt(r).map(_=>{const b=(n?[..._,1]:_).reduce((R,p,V)=>R+p*d[V],0);return[Math.exp(b)]}),C=yt(C)):C=r.map(_=>{const b=(n?[..._,1]:_).reduce((R,p,V)=>R+p*d[V],0);return[Math.exp(b)]}),K.createByArray(C)}_getResultBySimpleVariables(e,t,r,n){const s=r.length,a=r[0].length,u=e.flat(),c=t.flat(),l=r.flat(),f=u.map(_=>Math.log(_));let m,d;n?{slope:m,intercept:d}=this._getSlopeAndInterceptOfConstbIsTrue(c,f):{slope:m,intercept:d}=this._getSlopeAndInterceptOfConstbIsFalse(c,f),Number.isNaN(m)&&!n&&(m=0);const C=[];for(let _=0;_<s;_++){const E=[];for(let b=0;b<a;b++){const R=d*m**l[_*a+b];E.push(R)}C.push(E)}return K.createByArray(C)}_getSlopeAndInterceptOfConstbIsTrue(e,t){const r=t.length;let n=0,s=0,a=0,u=0;for(let m=0;m<r;m++)n+=e[m],s+=t[m],a+=e[m]*e[m],u+=e[m]*t[m];const l=(r*u-n*s)/(r*a-n*n),f=1/r*s-l*(1/r)*n;return{slope:Math.exp(l),intercept:Math.exp(f)}}_getSlopeAndInterceptOfConstbIsFalse(e,t){const r=[[...e]],n=[...t];let s=r.length,a=r[0].length,u=Math.min(s,a);const c=new Array(u).fill(0);for(let f=0;f<u;f++){const m=r[f];let d=0;for(let _=0;_<a;_++)d+=m[_]**2;const C=m[f]<0?Math.sqrt(d):-Math.sqrt(d);if(c[f]=C,C!==0){m[f]-=C;for(let _=f+1;_<s;_++){let E=0;for(let b=f;b<a;b++)E-=r[_][b]*m[b];E/=C*m[f];for(let b=f;b<a;b++)r[_][b]-=E*m[b]}}}s=r.length,a=r[0].length,u=Math.min(s,a);const l=new Array(s).fill(0);for(let f=0;f<u;f++){const m=r[f];let d=0;for(let C=0;C<a;C++)d+=n[C]*m[C];d/=c[f]*m[f];for(let C=0;C<a;C++)n[C]+=d*m[C]}for(let f=c.length-1;f>=0;f--){n[f]/=c[f];const m=n[f],d=r[f];l[f]=m;for(let C=0;C<f;C++)n[C]-=m*d[C]}return{slope:Math.exp(l[0]),intercept:Math.exp(0)}}_getKnownXsValues(e,t,r){if(!r||r.isNull())return this._getNumberValuesByRowsColumns(e,t);if(r.isError())return r;const n=r.isArray()?r.getRowCount():1,s=r.isArray()?r.getColumnCount():1;return e===1&&s!==t||t===1&&n!==e||e!==1&&t!==1&&(n!==e||s!==t)?g.create(h.REF):this._getValues(r,n,s)}_getNewXsValues(e,t,r,n){if(!n||n.isNull())return e;if(n.isError())return n;const s=n.isArray()?n.getRowCount():1,a=n.isArray()?n.getColumnCount():1;return t===1&&e.length>1&&s!==e.length||r===1&&e[0].length>1&&a!==e[0].length?g.create(h.REF):this._getValues(n,s,a)}_getValues(e,t,r){const n=[];for(let s=0;s<t;s++){n[s]=[];for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean())return g.create(h.VALUE);const c=u.getValue();if(!M.isRealNum(c))return g.create(h.VALUE);n[s].push(+c)}}return n}_getNumberValuesByRowsColumns(e,t){const r=[];let n=1;for(let s=0;s<e;s++){r[s]=[];for(let a=0;a<t;a++)r[s].push(n++)}return r}}class o_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=0,r=0,n=!1;for(let a=0;a<e.length;a++){const u=e[a];if(u.isArray()){let c=!1,l=g.create(h.VALUE);if(u.iterator(f=>{if(f!=null&&f.isError())return c=!0,l=f,!1;if(f!=null&&f.isNull()||f!=null&&f.isBoolean())return!0;const m=f.getValue();if(!M.isRealNum(m))return!0;+m<=0&&(n=!0),t+=1/+m,r++}),c)return l}else{if(u.isError())return u;if(u.isString()){const l=u.convertToNumberObjectValue();if(l.isError())return l}if(u.isNull()||u.isBoolean())continue;const c=u.getValue();if(!M.isRealNum(c))continue;+c<=0&&(n=!0),t+=1/+c,r++}}if(r===0)return g.create(h.NA);if(n)return g.create(h.NUM);const s=r/t;return y.create(s)}}class u_ extends N{constructor(){super(...arguments);A(this,"minParams",5);A(this,"maxParams",5)}calculate(e,t,r,n,s){const a=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=O(a,u,e,g.create(h.NA)),l=O(a,u,t,g.create(h.NA)),f=O(a,u,r,g.create(h.NA)),m=O(a,u,n,g.create(h.NA)),d=O(a,u,s,g.create(h.NA)),C=c.mapValue((_,E,b)=>{const R=l.get(E,b),p=f.get(E,b),V=m.get(E,b),S=d.get(E,b);return _.isError()?_:R.isError()?R:p.isError()?p:V.isError()?V:S.isError()?S:this._handleSignleObject(_,R,p,V,S)});return a===1&&u===1?C.get(0,0):C}_handleSignleObject(e,t,r,n,s){const{isError:a,errorObject:u,variants:c}=I(e,t,r,n,s);if(a)return u;const[l,f,m,d,C]=c,_=Math.floor(+l.getValue()),E=Math.floor(+f.getValue()),b=Math.floor(+m.getValue()),R=Math.floor(+d.getValue()),p=+C.getValue();if(_<0||_>E||_>b||_<E-R+b||E<=0||E>R||b<=0||b>R||R<=0)return g.create(h.NUM);let V;return p?V=Mm(_,E,b,R):V=Ks(_,E,b,R),Number.isNaN(V)&&(V=0),y.create(V)}}class c_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return u;let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return c;if(r*n===1||s*a===1)return u.isNull()||c.isNull()?g.create(h.VALUE):g.create(h.DIV_BY_ZERO);if(r*n!==s*a)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?f:C?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){const r=ao(0,e,t);return Number.isFinite(r)?y.create(r):g.create(h.DIV_BY_ZERO)}}class l_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=[];let r=0;for(let n=0;n<e.length;n++){const s=e[n];if(s.isError())return s;if(s.isString()){const c=s.convertToNumberObjectValue();if(c.isError())return c}const a=s.isArray()?s.getRowCount():1,u=s.isArray()?s.getColumnCount():1;for(let c=0;c<a;c++)for(let l=0;l<u;l++){const f=s.isArray()?s.get(c,l):s;if(f.isError())return f;if(f.isNull()||f.isBoolean())continue;const m=f.getValue();M.isRealNum(m)&&(t.push(+m),r+=+m)}}return t.length<=3?g.create(h.DIV_BY_ZERO):this._getResult(t,r)}_getResult(e,t){const r=e.length,n=t/r;let s=0;for(let l=0;l<r;l++)s+=(e[l]-n)**2;const a=Math.sqrt(s/(r-1));if(a===0)return g.create(h.DIV_BY_ZERO);let u=0;for(let l=0;l<r;l++)u+=((e[l]-n)/a)**4;const c=r*(r+1)/((r-1)*(r-2)*(r-3))*u-3*(r-1)**2/((r-2)*(r-3));return y.create(c)}}class f_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=this._getValues(e);if(t.isArray()){const n=t.mapValue(s=>this._handleSingleObject(r,s));return n.getRowCount()===1&&n.getColumnCount()===1?n.get(0,0):n}return this._handleSingleObject(r,t)}_handleSingleObject(e,t){if(e instanceof g)return e;const{isError:r,errorObject:n,variants:s}=I(t);if(r)return n;const[a]=s;let u=+a.getValue();return u<1||u>e.length?g.create(h.NUM):(u=Math.ceil(u),y.create(e[u-1]))}_getValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean()||u.isString())continue;const c=u.getValue();M.isRealNum(c)&&n.push(+c)}return n.length===0?g.create(h.NUM):n.sort((s,a)=>a-s)}}class m_ extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSignleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(e,t,r,n);if(s)return a;const[c,l,f,m]=u,d=+c.getValue(),C=+l.getValue(),_=+f.getValue(),E=+m.getValue();if(d<=0||_<=0)return g.create(h.NUM);let b;return E?b=oo(d,C,_):b=Sm(d,C,_),y.create(b)}}class h_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if((n.isString()||n.isBoolean())&&(n=n.convertToNumberObjectValue()),n.isArray()&&(n=n.max()),n.isError())return n;t=this._validator(t,n)}}return t.getValue()===Number.NEGATIVE_INFINITY?y.create(0):t}_validator(e,t){const r=e.isLessThan(t);let n=e;return r.getValue()&&(n=t),n}}class g_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if((n.isString()||n.isBoolean())&&(n=n.convertToNumberObjectValue()),n.isError())return n;if(n.isArray()&&n.iterator(s=>{let a=s;if((a==null||a.isNull()||a.isString())&&(a=y.create(0)),a.isBoolean()&&(a=a.convertToNumberObjectValue()),a.isError())return t=a,!1;t=this._validator(t,a)}),t.isError())return t;t=this._validator(t,n)}}return t.getValue()===Number.NEGATIVE_INFINITY?y.create(0):t}_validator(e,t){const r=e.isLessThan(t);let n=e;return r.getValue()&&(n=t),n}}class d_ extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",255)}calculate(e,...t){if(e.isError())return g.create(h.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return g.create(h.VALUE);const{maxRowLength:r,maxColumnLength:n}=hr(t),s=Sr(t,e,r,n);if(s)return s;const a=Dr(t,r,n,!0);return this._aggregateResults(e,a)}_aggregateResults(e,t){const r=t.map(s=>s.map(a=>{const u=e.pick(a);return u.getColumnCount()===0?K.create("0"):u.max()})),n={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return K.create(n)}}class C_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=[];for(let r=0;r<e.length;r++){const n=e[r];if(n.isArray()){let s=!1,a=g.create(h.VALUE);if(n.iterator(u=>{if(u!=null&&u.isError())return s=!0,a=u,!1;if(u!=null&&u.isNull()||u!=null&&u.isBoolean())return!0;const c=u.getValue();if(!M.isRealNum(c))return!0;t.push(+c)}),s)return a}else{if(n.isError())return n;if(n.isNull()||n.isBoolean())continue;if(n.isString()){const a=n.convertToNumberObjectValue();if(a.isError())return a}const s=n.getValue();if(!M.isRealNum(s))continue;t.push(+s)}}return t.length===0?g.create(h.NUM):this._getResult(t.sort((r,n)=>r-n))}_getResult(e){const t=e.length;let r;if(t%2===0){const n=t/2;r=(e[n-1]+e[n])/2}else r=e[Math.floor(t/2)];return y.create(r)}}class __ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if((n.isString()||n.isBoolean())&&(n=n.convertToNumberObjectValue()),n.isArray()&&(n=n.min()),n.isError())return n;t=this._validator(t,n)}}return t.getValue()===Number.POSITIVE_INFINITY?y.create(0):t}_validator(e,t){const r=e.isGreaterThan(t);let n=e;return r.getValue()&&(n=t),n}}class A_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=y.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if((n.isString()||n.isBoolean())&&(n=n.convertToNumberObjectValue()),n.isError())return n;if(n.isArray()&&n.iterator(s=>{let a=s;if((a==null||a.isNull()||a.isString())&&(a=y.create(0)),a.isBoolean()&&(a=a.convertToNumberObjectValue()),a.isError())return t=a,!1;t=this._validator(t,a)}),t.isError())return t;t=this._validator(t,n)}}return t.getValue()===Number.POSITIVE_INFINITY?y.create(0):t}_validator(e,t){const r=e.isGreaterThan(t);let n=e;return r.getValue()&&(n=t),n}}class E_ extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",255)}calculate(e,...t){if(e.isError())return g.create(h.NA);if(!e.isArray()||t.length%2!==0||t.some((u,c)=>c%2===0&&!u.isArray()))return g.create(h.VALUE);const{maxRowLength:r,maxColumnLength:n}=hr(t),s=Sr(t,e,r,n);if(s)return s;const a=Dr(t,r,n,!0);return this._aggregateResults(e,a)}_aggregateResults(e,t){const r=t.map(s=>s.map(a=>{const u=e.pick(a);return u.getColumnCount()===0?K.create("0"):u.min()})),n={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return K.create(n)}}class b_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t={};let r=0,n=1;for(let s=0;s<e.length;s++){const a=e[s];if(a.isError())return a;if(a.isString()){const l=a.convertToNumberObjectValue();if(l.isError())return l}const u=a.isArray()?a.getRowCount():1,c=a.isArray()?a.getColumnCount():1;for(let l=0;l<u;l++)for(let f=0;f<c;f++){const m=a.isArray()?a.get(l,f):a;if(m.isError())return m;if(m.isNull()||m.isBoolean()||m.isString())continue;const d=m.getValue();M.isRealNum(d)&&(t[+d]?(t[+d].count++,t[+d].count>n&&(n=t[+d].count)):t[+d]={count:1,order:r++})}}return r===0||n===1?new g(h.NA):this._getResult(t,n)}_getResult(e,t){const r=Object.entries(e).filter(([n,{count:s}])=>s===t).sort((n,s)=>n[1].order-s[1].order).map(([n])=>+n);return r.length===1?y.create(r[0]):K.createByArray(r.map(n=>[n]))}}class y_ extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSignleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(e,t,r,n);if(s)return a;const[c,l,f,m]=u,d=Math.floor(+c.getValue()),C=Math.floor(+l.getValue()),_=+f.getValue(),E=+m.getValue();if(d<0||C<1||_<=0||_>=1)return g.create(h.NUM);let b;return E?b=wm(d,C,_):b=Zs(d,C,_),y.create(b)}}class R_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);return c.isError()?c:m.isError()?m:this._handleSignleObject(c,m)});return r===1&&n===1?u.get(0,0):u}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=+u.getValue();let f;return l?f=Pr(c,0,1):f=uo(c,0,1),y.create(f)}}class p_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return u;let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return c;if(r*n===1||s*a===1)return u.isNull()||c.isNull()?g.create(h.VALUE):g.create(h.DIV_BY_ZERO);if(r*n!==s*a)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?f:C?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){const r=e.length;let n=0,s=0;for(let d=0;d<r;d++)n+=e[d],s+=t[d];const a=n/r,u=s/r;let c=0,l=0,f=0;for(let d=0;d<r;d++)c+=(e[d]-a)*(t[d]-u),l+=(e[d]-a)**2,f+=(t[d]-u)**2;if(l===0||f===0)return g.create(h.DIV_BY_ZERO);const m=c/Math.sqrt(l*f);return y.create(m)}}class N_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=this._getValues(e);if(t.isArray()){const n=t.mapValue(s=>this._handleSingleObject(r,s));return n.getRowCount()===1&&n.getColumnCount()===1?n.get(0,0):n}return this._handleSingleObject(r,t)}_handleSingleObject(e,t){if(e instanceof g)return e;const{isError:r,errorObject:n,variants:s}=I(t);if(r)return n;const[a]=s,u=+a.getValue(),c=e.length;if(u<1/(c+1)||u>1-1/(c+1))return g.create(h.NUM);const l=u*(c+1)-1,f=Math.floor(l),m=l-f;if(m===0)return y.create(e[f]);const d=e[f]+m*(e[f+1]-e[f]);return y.create(d)}_getValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean()||u.isString())continue;const c=u.getValue();M.isRealNum(c)&&n.push(+c)}return n.length===0?g.create(h.NUM):n.sort((s,a)=>s-a)}}class V_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=this._getValues(e);let s=r!=null?r:y.create(3);s.isNull()&&(s=y.create(3));const a=Math.max(t.isArray()?t.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(t.isArray()?t.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=O(a,u,t,g.create(h.NA)),l=O(a,u,s,g.create(h.NA)),f=c.mapValue((m,d,C)=>{const _=l.get(d,C);return m.isError()?m:_.isError()?_:this._handleSingleObject(n,m,_)});return a===1&&u===1?f.get(0,0):f}_handleSingleObject(e,t,r){if(e instanceof g)return e;const{isError:n,errorObject:s,variants:a}=I(t,r);if(n)return s;const[u,c]=a,l=+u.getValue(),f=Math.floor(+c.getValue()),m=e.length;if(m===0||l<e[0]||l>e[m-1])return g.create(h.NA);if(m===1)return l===e[0]?y.create(1):g.create(h.NA);let d=0,C=!1,_=0;for(;!C&&_<m;)l===e[_]?(d=(_+1)/(m+1),C=!0):l>e[_]&&_+1<m&&l<e[_+1]&&(d=(_+1+(l-e[_])/(e[_+1]-e[_]))/(m+1),C=!0),_++;return C?f<1?g.create(h.NUM):(d=ke(d,f),y.create(d)):g.create(h.NA)}_getValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean())continue;const c=u.getValue();M.isRealNum(c)&&n.push(+c)}return n.sort((s,a)=>s-a)}}class O_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);if(c.isError())return c;if(m.isError())return m;const{isError:d,errorObject:C,variants:_}=I(c,m);if(d)return C;const[E,b]=_,R=Math.floor(+E.getValue()),p=Math.floor(+b.getValue());if(R<0||R>=2147483647||p<0||R<p)return g.create(h.NUM);let V=1;for(let S=R-p+1;S<=R;S++)V*=S;return Number.isFinite(V)?y.create(V):g.create(h.NUM)});return r===1&&n===1?u.get(0,0):u}}class M_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);if(c.isError())return c;if(m.isError())return m;const{isError:d,errorObject:C,variants:_}=I(c,m);if(d)return C;const[E,b]=_,R=Math.floor(+E.getValue()),p=Math.floor(+b.getValue());if(R<0||R>=2147483647||p<0)return g.create(h.NUM);if(R===0)return p===0?y.create(1):y.create(0);const V=R**p;return Number.isFinite(V)?y.create(V):g.create(h.NUM)});return r===1&&n===1?u.get(0,0):u}}class S_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=+s.getValue(),u=Math.exp(-.5*a*a)/Math.sqrt(2*Math.PI);return y.create(u)}}class D_ extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){const{isError:s,errorObject:a,xRangeValues:u,probRangeValues:c}=this._handleXRangeAndProbRange(e,t);let l=n!=null?n:r;n!=null&&n.isNull()&&(l=r);const f=Math.max(r.isArray()?r.getRowCount():1,l.isArray()?l.getRowCount():1),m=Math.max(r.isArray()?r.getColumnCount():1,l.isArray()?l.getColumnCount():1),d=O(f,m,r,g.create(h.NA)),C=O(f,m,l,g.create(h.NA)),_=d.mapValue((E,b,R)=>{const p=C.get(b,R);return e.isError()?e:t.isError()?t:E.isError()?E:p.isError()?p:s?a:this._handleSignleObject(u,c,E,p)});return f===1&&m===1?_.get(0,0):_}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(r,n);if(s)return a;const[c,l]=u,f=+c.getValue(),m=+l.getValue();if(t.reduce((C,_)=>C+_,0)!==1)return g.create(h.NUM);let d=0;for(let C=0;C<e.length;C++)e[C]>=f&&e[C]<=m&&(d+=t[C]);return y.create(d)}_handleXRangeAndProbRange(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return{isError:!0,errorObject:u,xRangeValues:[],probRangeValues:[]};let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return{isError:!0,errorObject:c,xRangeValues:[],probRangeValues:[]};if((r*n===1||s*a===1)&&(u.isNull()||c.isNull()))return{isError:!0,errorObject:g.create(h.VALUE),xRangeValues:[],probRangeValues:[]};if(r*n!==s*a)return{isError:!0,errorObject:g.create(h.NA),xRangeValues:[],probRangeValues:[]};const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?{isError:!0,errorObject:f,xRangeValues:[],probRangeValues:[]}:C?{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),xRangeValues:[],probRangeValues:[]}:{isError:!1,errorObject:null,xRangeValues:m,probRangeValues:d}}}class w_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=this._getValues(e);if(t.isArray()){const n=t.mapValue(s=>this._handleSingleObject(r,s));return n.getRowCount()===1&&n.getColumnCount()===1?n.get(0,0):n}return this._handleSingleObject(r,t)}_handleSingleObject(e,t){if(e instanceof g)return e;const{isError:r,errorObject:n,variants:s}=I(t);if(r)return n;const[a]=s,u=Math.floor(+a.getValue());if(u<=0||u>=4)return g.create(h.NUM);const c=u/4,l=e.length;if(c<1/(l+1)||c>1-1/(l+1))return g.create(h.NUM);const f=c*(l+1)-1,m=Math.floor(f),d=f-m;if(d===0)return y.create(e[m]);const C=e[m]+d*(e[m+1]-e[m]);return y.create(C)}_getValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean())continue;const c=u.getValue();M.isRealNum(c)&&n.push(+c)}return n.length===0?g.create(h.NUM):n.sort((s,a)=>s-a)}}class P_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3);A(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=e;n.isReferenceObject()&&(n=n.toArrayValueObject());const{refHasError:s,refErrorObject:a,refNumbers:u}=this._checkRefReferenceObject(t);let c=r!=null?r:y.create(0);c.isReferenceObject()&&(c=c.toArrayValueObject());const l=Math.max(n.isArray()?n.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(n.isArray()?n.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=O(l,f,n,g.create(h.NA)),d=O(l,f,c,g.create(h.NA)),C=m.map((_,E,b)=>{const R=d.get(E,b);if(!e.isReferenceObject()&&e.isNull())return g.create(h.NA);if(s)return a;if(R.isError())return R;const p=+_.getValue(),V=+R.getValue();return Number.isNaN(p)||Number.isNaN(V)?g.create(h.VALUE):this._getResult(p,V,u)});return l===1&&f===1?C.get(0,0):C}_getResult(e,t,r){const n=r.sort((c,l)=>t?c-l:l-c);let s=n.indexOf(e);const a=[];for(;s>=0;){const c=s+1;a.push(c),s=n.indexOf(e,c)}if(a.length===0)return g.create(h.NA);const u=a.reduce((c,l)=>c+l,0)/a.length;return y.create(u)}_checkRefReferenceObject(e){let t=!1,r=g.create(h.NA);const n=[];return e.isReferenceObject()?(e.toArrayValueObject().iterator(a=>{const u=a;if(u.isError())return t=!0,r=u,!1;if(u.isNull()||u.isBoolean())return!0;const c=+u.getValue();if(Number.isNaN(c))return!0;n.push(c)}),{refHasError:t,refErrorObject:r,refNumbers:n}):{refHasError:!0,refErrorObject:r,refNumbers:n}}}class L_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3);A(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=e;n.isReferenceObject()&&(n=n.toArrayValueObject());const{refHasError:s,refErrorObject:a,refNumbers:u}=this._checkRefReferenceObject(t);let c=r!=null?r:y.create(0);c.isReferenceObject()&&(c=c.toArrayValueObject());const l=Math.max(n.isArray()?n.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(n.isArray()?n.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=O(l,f,n,g.create(h.NA)),d=O(l,f,c,g.create(h.NA)),C=m.map((_,E,b)=>{const R=d.get(E,b);if(!e.isReferenceObject()&&e.isNull())return g.create(h.NA);if(s)return a;if(R.isError())return R;const p=+_.getValue(),V=+R.getValue();if(Number.isNaN(p)||Number.isNaN(V))return g.create(h.VALUE);const D=u.sort((w,P)=>V?w-P:P-w).indexOf(p);return D===-1?g.create(h.NA):y.create(D+1)});return l===1&&f===1?C.get(0,0):C}_checkRefReferenceObject(e){let t=!1,r=g.create(h.NA);const n=[];return e.isReferenceObject()?(e.toArrayValueObject().iterator(a=>{const u=a;if(u.isError())return t=!0,r=u,!1;if(u.isNull()||u.isBoolean())return!0;const c=+u.getValue();if(Number.isNaN(c))return!0;n.push(c)}),{refHasError:t,refErrorObject:r,refNumbers:n}):{refHasError:!0,refErrorObject:r,refNumbers:n}}}class x_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return u;let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return c;if((r*n===1||s*a===1)&&(u.isNull()||c.isNull()))return g.create(h.VALUE);if(r*n!==s*a)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?f:C?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){if(e.length===0)return g.create(h.DIV_BY_ZERO);const r=e.length;let n=0,s=0;for(let d=0;d<r;d++)n+=e[d],s+=t[d];const a=n/r,u=s/r;let c=0,l=0,f=0;for(let d=0;d<r;d++)c+=(e[d]-a)*(t[d]-u),l+=(e[d]-a)**2,f+=(t[d]-u)**2;if(l===0||f===0)return g.create(h.DIV_BY_ZERO);const m=(c/Math.sqrt(l*f))**2;return y.create(m)}}class j_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=[];let r=0;for(let n=0;n<e.length;n++){const s=e[n];if(s.isError())return s;if(s.isString()){const c=s.convertToNumberObjectValue();if(c.isError())return c}const a=s.isArray()?s.getRowCount():1,u=s.isArray()?s.getColumnCount():1;for(let c=0;c<a;c++)for(let l=0;l<u;l++){const f=s.isArray()?s.get(c,l):s;if(f.isError())return f;if(f.isNull()||f.isBoolean())continue;const m=f.getValue();M.isRealNum(m)&&(t.push(+m),r+=+m)}}return t.length<=2?g.create(h.DIV_BY_ZERO):this._getResult(t,r)}_getResult(e,t){const r=e.length,n=t/r;let s=0;for(let l=0;l<r;l++)s+=(e[l]-n)**2;const a=Math.sqrt(s/(r-1));if(a===0)return g.create(h.DIV_BY_ZERO);let u=0;for(let l=0;l<r;l++)u+=((e[l]-n)/a)**3;const c=r/((r-1)*(r-2))*u;return y.create(c)}}class U_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=[];let r=0;for(let n=0;n<e.length;n++){const s=e[n];if(s.isError())return s;if(s.isString()){const c=s.convertToNumberObjectValue();if(c.isError())return c}const a=s.isArray()?s.getRowCount():1,u=s.isArray()?s.getColumnCount():1;for(let c=0;c<a;c++)for(let l=0;l<u;l++){const f=s.isArray()?s.get(c,l):s;if(f.isError())return f;if(f.isNull()||f.isBoolean())continue;const m=f.getValue();M.isRealNum(m)&&(t.push(+m),r+=+m)}}return t.length<=2?g.create(h.DIV_BY_ZERO):this._getResult(t,r)}_getResult(e,t){const r=e.length,n=t/r;let s=0;for(let l=0;l<r;l++)s+=(e[l]-n)**2;const a=Math.sqrt(s/r);if(a===0)return g.create(h.DIV_BY_ZERO);let u=0;for(let l=0;l<r;l++)u+=((e[l]-n)/a)**3;const c=u/r;return y.create(c)}}class v_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return u;let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return c;if(r*n===1||s*a===1)return u.isNull()||c.isNull()?g.create(h.VALUE):g.create(h.DIV_BY_ZERO);if(r*n!==s*a)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?f:C?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){const r=e.length;let n=0,s=0;for(let m=0;m<r;m++)n+=e[m],s+=t[m];const a=n/r,u=s/r;let c=0,l=0;for(let m=0;m<r;m++)c+=(e[m]-a)*(t[m]-u),l+=(t[m]-u)**2;if(l===0)return g.create(h.DIV_BY_ZERO);const f=c/l;return y.create(f)}}class T_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=this._getValues(e);if(t.isArray()){const n=t.mapValue(s=>this._handleSingleObject(r,s));return n.getRowCount()===1&&n.getColumnCount()===1?n.get(0,0):n}return this._handleSingleObject(r,t)}_handleSingleObject(e,t){if(e instanceof g)return e;const{isError:r,errorObject:n,variants:s}=I(t);if(r)return n;const[a]=s;let u=+a.getValue();return u<1||u>e.length?g.create(h.NUM):(u=Math.floor(u),y.create(e[u-1]))}_getValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean()||u.isString())continue;const c=u.getValue();M.isRealNum(c)&&n.push(+c)}return n.length===0?g.create(h.NUM):n.sort((s,a)=>s-a)}}class B_ extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=+c.getValue(),d=+l.getValue();if(d<=0)return g.create(h.NUM);const C=(f-m)/d;return y.create(C)}}class I_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std(1)}}class F_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std()}}class k_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,a=t.isArray()?t.getColumnCount():1;let u=e;if(e.isArray()&&r===1&&n===1&&(u=e.get(0,0)),u.isError())return u;let c=t;if(t.isArray()&&s===1&&a===1&&(c=t.get(0,0)),c.isError())return c;if((r*n===1||s*a===1)&&(u.isNull()||c.isNull()))return g.create(h.VALUE);if(r*n!==s*a)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:C}=Ge(e,t,r*n,n,a);return l?f:C?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){const r=e.length;if(r<=2)return g.create(h.DIV_BY_ZERO);let n=0,s=0;for(let d=0;d<r;d++)n+=e[d],s+=t[d];const a=n/r,u=s/r;let c=0,l=0,f=0;for(let d=0;d<r;d++)c+=(e[d]-a)*(t[d]-u),l+=(e[d]-a)**2,f+=(t[d]-u)**2;if(f===0)return g.create(h.DIV_BY_ZERO);const m=Math.sqrt((l-c**2/f)/(r-2));return Number.isNaN(m)||!Number.isFinite(m)?g.create(h.NUM):y.create(m)}}class $_ extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSignleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a,f=+u.getValue(),m=Math.floor(+c.getValue()),d=+l.getValue();if(m<1)return g.create(h.NUM);let C;return d?C=Lr(f,m):C=Lm(f,m),Number.isNaN(C)||!Number.isFinite(C)?g.create(h.NUM):y.create(C)}}class Y_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);return c.isError()?c:m.isError()?m:this._handleSignleObject(c,m)});return r===1&&n===1?u.get(0,0):u}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(c<0||l<1||l>10**10)return g.create(h.NUM);const f=Lr(-c,l)*2;return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class H_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);return c.isError()?c:m.isError()?m:this._handleSignleObject(c,m)});return r===1&&n===1?u.get(0,0):u}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(l<1||l>10**10)return g.create(h.NUM);const f=Lr(-c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class G_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);return c.isError()?c:m.isError()?m:this._handleSignleObject(c,m)});return r===1&&n===1?u.get(0,0):u}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e,t);if(r)return n;const[a,u]=s,c=+a.getValue(),l=Math.floor(+u.getValue());if(c<=0||c>1||l<1||l>10**10)return g.create(h.NUM);const f=zs(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):y.create(f)}}class W_ extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=this._getValues(e);if(t.isArray()){const n=t.mapValue(s=>this._handleSingleObject(r,s));return n.getRowCount()===1&&n.getColumnCount()===1?n.get(0,0):n}return this._handleSingleObject(r,t)}_handleSingleObject(e,t){if(e instanceof g)return e;const{isError:r,errorObject:n,variants:s}=I(t);if(r)return n;const[a]=s,u=+a.getValue();if(u<0||u>=1)return g.create(h.NUM);const c=ke(e.length*u/2,0)*2,l=e.slice(c/2,e.length-c/2),f=l.reduce((m,d)=>m+d,0)/l.length;return y.create(f)}_getValues(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let s=0;s<t;s++)for(let a=0;a<r;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;if(u.isNull()||u.isBoolean())continue;const c=u.getValue();M.isRealNum(c)&&n.push(+c)}return n.length===0?g.create(h.NUM):n.sort((s,a)=>s-a)}}class Q_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var(1)}}class q_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var()}}const fu=[[LC,U.AVEDEV],[jC,U.AVERAGE],[UC,U.AVERAGEA],[vC,U.AVERAGEIF],[TC,U.AVERAGEIFS],[BC,U.BETA_DIST],[lo,U.BETA_INV],[fo,U.BINOM_DIST],[IC,U.BINOM_DIST_RANGE],[mo,U.BINOM_INV],[FC,U.CHISQ_DIST],[ho,U.CHISQ_DIST_RT],[kC,U.CHISQ_INV],[go,U.CHISQ_INV_RT],[Co,U.CHISQ_TEST],[_o,U.CONFIDENCE_NORM],[$C,U.CONFIDENCE_T],[YC,U.CORREL],[HC,U.COUNT],[GC,U.COUNTA],[WC,U.COUNTBLANK],[QC,U.COUNTIF],[qC,U.COUNTIFS],[Ao,U.COVARIANCE_P],[KC,U.COVARIANCE_S],[ZC,U.DEVSQ],[Eo,U.EXPON_DIST],[zC,U.F_DIST],[bo,U.F_DIST_RT],[JC,U.F_INV],[yo,U.F_INV_RT],[Ro,U.F_TEST],[e_,U.FISHER],[t_,U.FISHERINV],[Qa,U.FORECAST],[Qa,U.FORECAST_LINEAR],[r_,U.FREQUENCY],[n_,U.GAMMA],[po,U.GAMMA_DIST],[No,U.GAMMA_INV],[qa,U.GAMMALN],[qa,U.GAMMALN_PRECISE],[s_,U.GAUSS],[a_,U.GEOMEAN],[i_,U.GROWTH],[o_,U.HARMEAN],[u_,U.HYPGEOM_DIST],[c_,U.INTERCEPT],[l_,U.KURT],[f_,U.LARGE],[m_,U.LOGNORM_DIST],[Vo,U.LOGNORM_INV],[h_,U.MAX],[g_,U.MAXA],[d_,U.MAXIFS],[C_,U.MEDIAN],[__,U.MIN],[A_,U.MINA],[E_,U.MINIFS],[b_,U.MODE_MULT],[Oo,U.MODE_SNGL],[y_,U.NEGBINOM_DIST],[Mo,U.NORM_DIST],[So,U.NORM_INV],[R_,U.NORM_S_DIST],[Do,U.NORM_S_INV],[p_,U.PEARSON],[N_,U.PERCENTILE_EXC],[wo,U.PERCENTILE_INC],[V_,U.PERCENTRANK_EXC],[Po,U.PERCENTRANK_INC],[O_,U.PERMUT],[M_,U.PERMUTATIONA],[S_,U.PHI],[Lo,U.POISSON_DIST],[D_,U.PROB],[w_,U.QUARTILE_EXC],[xo,U.QUARTILE_INC],[P_,U.RANK_AVG],[L_,U.RANK_EQ],[x_,U.RSQ],[j_,U.SKEW],[U_,U.SKEW_P],[v_,U.SLOPE],[T_,U.SMALL],[B_,U.STANDARDIZE],[jo,U.STDEV_P],[Uo,U.STDEV_S],[I_,U.STDEVA],[F_,U.STDEVPA],[k_,U.STEYX],[$_,U.T_DIST],[Y_,U.T_DIST_2T],[H_,U.T_DIST_RT],[G_,U.T_INV],[vo,U.T_INV_2T],[To,U.T_TEST],[W_,U.TRIMMEAN],[Bo,U.VAR_P],[Io,U.VAR_S],[Q_,U.VARA],[q_,U.VARPA],[Fo,U.WEIBULL_DIST],[ko,U.Z_TEST]];class X_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){let r=t!=null?t:y.create(0);if(t!=null&&t.isNull()&&(r=y.create(0)),r.isArray()){const n=r.mapValue(s=>this._handleSingleObject(e,s));return n.getRowCount()===1&&n.getColumnCount()===1?n.get(0,0):n}return this._handleSingleObject(e,r)}_handleSingleObject(e,t){const r=this._checkArray(e);if(r.isError())return r;const{isError:n,errorObject:s,variants:a}=I(t);if(n)return s;const[u]=a,c=+u.getValue(),l=e.isArray()?e.getRowCount():1,f=e.isArray()?e.getColumnCount():1;let m="";for(let d=0;d<l;d++)for(let C=0;C<f;C++){const _=e.isArray()?e.get(d,C):e;let E=`${_.getValue()}`;_.isNull()&&(E=""),_.isBoolean()&&(E=E.toLocaleUpperCase()),_.isString()&&c?m+=`"${E}"`:m+=E,d===l-1&&C===f-1||(c?C===f-1?m+=";":m+=",":m+=", ")}return c&&(m=`{${m}}`),m.length>32767?g.create(h.CALC):j.create(m)}_checkArray(e){if(e.isArray()){const t=e.getRowCount(),r=e.getColumnCount();return t>1||r>1?e:e.get(0,0)}return e}}class K_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError()||e.isNull()||e.isBoolean()||e.isNumber())return e;const t=e.getValue().toLocaleString();let r="";for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);s===12288?s=32:s>=65281&&s<=65374&&(s-=65248),r+=String.fromCharCode(s)}return j.create(r)}}class Z_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=+s.getValue(),u=Math.abs(Number.parseInt(a.toString(),10)),c=Number.parseFloat((Math.abs(a)-u).toFixed(2));let l="";return u===0?c!==0?l=`${a<0?"ลบ":""}${this._convertNumberToThaiText(c*100)}สตางค์`:l="ศูนย์บาทถ้วน":c===0?l=`${a<0?"ลบ":""}${this._convertNumberToThaiText(u)}บาทถ้วน`:l=`${a<0?"ลบ":""}${this._convertNumberToThaiText(u)}บาท${this._convertNumberToThaiText(c*100)}สตางค์`,j.create(l)}_convertNumberToThaiText(e){const t=["ล้าน","สิบ","ร้อย","พัน","หมื่น","แสน",""],r=["ศูนย์","หนึ่ง","สอง","สาม","สี่","ห้า","หก","เจ็ด","แปด","เก้า"],n=["ลบ","บาท","ถ้วน","สตางค์","ยี่","เอ็ด",","," ","฿"],s=e.toString(),a=s.length;let u="";for(let c=a;c>0;c--){const l=Number.parseInt(s.charAt(a-c),10);let f=r[l];const m=c>1?(c-1)%6:6;if(m===1&&l===2&&(f=n[4]),l===1)switch(m){case 0:case 6:u+=c<a?n[5]:f;break;case 1:break;default:u+=f;break}else if(l===0){m===0&&(u+=t[m]);continue}else u+=f;u+=t[m]}return u}}const z_=Object.values(M.DataStreamTreeTokenType).filter(i=>[M.DataStreamTreeTokenType.TABLE_START,M.DataStreamTreeTokenType.TABLE_ROW_START,M.DataStreamTreeTokenType.TABLE_CELL_START,M.DataStreamTreeTokenType.TABLE_CELL_END,M.DataStreamTreeTokenType.TABLE_ROW_END,M.DataStreamTreeTokenType.TABLE_END,M.DataStreamTreeTokenType.CUSTOM_BLOCK].includes(i));class J_ extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=Math.floor(+s.getValue());if(a<=0)return g.create(h.VALUE);let u=String.fromCharCode(a);return z_.some(c=>c===u)&&(u=""),j.create(u)}}class eA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError()||e.isBoolean()||e.isNumber())return e;if(e.isNull())return j.create("");const r=`${e.getValue()}`.replace(/[\0-\x1F]/g,"");return j.create(r)}}class tA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);let t=e.getValue().toLocaleString();if(e.isBoolean()&&(t=t.toLocaleUpperCase()),t==="")return g.create(h.VALUE);const r=t.charCodeAt(0);return y.create(r)}}class rA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t="",r=null;for(const n of e)if(n.isArray()){if(n.iterator(s=>{if(s==null||s.isNull())return!0;if(s.isError())return r=s,!1;s.isBoolean()?t+=`${s.getValue()}`.toLocaleUpperCase():(s.isString()||s.isNumber())&&(t+=s.getValue())}),r)return r}else!n.isError()&&!n.isNull()&&(t+=n.getValue());return j.create(t)}}class nA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",255)}calculate(...e){let t=0,r=0;e.forEach(s=>{if(s.isArray()){const a=s;t=Math.max(t,a.getRowCount()),r=Math.max(r,a.getColumnCount())}else t=Math.max(t,1),r=Math.max(r,1)});let n=null;for(const s of e)n=O(t,r,s,g.create(h.NA)).mapValue((u,c,l)=>{const f=n&&n.get(c,l);if(f!=null&&f.isError())return f;if(u.isError())return u;let m=f==null?void 0:f.getValue(),d=u==null?void 0:u.getValue();f!=null&&f.isBoolean()&&(m=`${m}`.toLocaleUpperCase()),u!=null&&u.isBoolean()&&(d=`${d}`.toLocaleUpperCase());const C=f!=null&&f.isNull()?"":m!=null?m:"",_=u!=null&&u.isNull()?"":d!=null?d:"";return j.create(`${C}${_}`)});return n||g.create(h.VALUE)}}class sA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return j.create("");let t=`${e.getValue()}`;e.isBoolean()&&(t=t.toLocaleUpperCase());let r="";for(let n=0;n<t.length;n++){const s=t.charCodeAt(n);s>=33&&s<=126?r+=String.fromCharCode(s+65248):s===32?r+=" ":r+=t.charAt(n)}return j.create(r)}}class aA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2);A(this,"needsLocale",!0)}calculate(e,t){let r=t!=null?t:y.create(2);r.isNull()&&(r=y.create(2));const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.mapValue((l,f,m)=>{const d=u.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(e,t);if(r)return n;const[a,u]=s;let c=+a.getValue(),l=Math.trunc(+u.getValue());if(l>127)return g.create(h.VALUE);l<0&&(`${c}`.length<Math.abs(l)?c=0:c=c<0?-Vt(Math.abs(c),l):Vt(c,l),l=0);const f=Uc(this.getLocale(),c,l);return j.create(f)}}class iA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,ae.create()),a=O(r,n,t,ae.create()),u=s.mapValue((c,l,f)=>{const m=a.get(l,f);return c.isError()?c:m.isError()?m:this._handleSingleObject(c,m)});return r===1&&n===1?u.get(0,0):u}_handleSingleObject(e,t){if(e.isNull()||t.isNull()){const a=e.isNull()&&t.isNull();return k.create(a)}let r=`${e.getValue()}`;e.isBoolean()&&(r=r.toLocaleUpperCase());let n=`${t.getValue()}`;t.isBoolean()&&(n=n.toLocaleUpperCase());const s=r===n;return k.create(s)}}const aa=(i,o)=>M.numfmt.format(i,o,{throws:!1}),Me=i=>{let o=`${i.getValue()}`;return i.isNull()&&(o=""),i.isBoolean()&&(o=o.toLocaleUpperCase()),i.isNumber()&&(i.getPattern()!==""?o=aa(i.getPattern(),+i.getValue()):o=`${Ui(+i.getValue())}`),o};class oA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:y.create(1),s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,n,g.create(h.NA)),f=u.mapValue((m,d,C)=>{const _=c.get(d,C),E=l.get(d,C);return m.isError()?m:_.isError()?_:E.isError()?E:this._handleSingleObject(m,_,E)});return s===1&&a===1?f.get(0,0):f}_handleSingleObject(e,t,r){const n=Me(e),s=Me(t),{isError:a,errorObject:u,variants:c}=I(r);if(a)return u;const[l]=c,f=Math.floor(+l.getValue());if(t.isNull()||f<=0||f>s.length)return g.create(h.VALUE);if(e.isNull()||n.length===0)return y.create(f);const m=s.indexOf(n,f-1);return m===-1?g.create(h.VALUE):y.create(m+1)}}function ia(i){let o=0;for(let e=0;e<i.length;e++)o+=Ur(i,e);return o}function Ur(i,o,e="ltr"){return uA(i,o,e)>255?2:1}function Xa(i){return i>=55296&&i<=56319}function Ka(i){return i>=56320&&i<=57343}function Za(i,o){const e=(i&1023)<<10,t=o&1023;return e+t+65536}function uA(i,o,e="ltr"){const t=i.charCodeAt(o);if(e==="ltr"&&Xa(t)&&o+1<i.length){const r=i.charCodeAt(o+1);if(Ka(r))return Za(t,r)}if(e==="rtl"&&Ka(t)&&o-1>=0){const r=i.charCodeAt(o-1);if(Xa(r))return Za(r,t)}return t}class cA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:y.create(1),s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,n,g.create(h.NA)),f=u.mapValue((m,d,C)=>{const _=c.get(d,C),E=l.get(d,C);return m.isError()?m:_.isError()?_:E.isError()?E:this._handleSingleObject(m,_,E)});return s===1&&a===1?f.get(0,0):f}_handleSingleObject(e,t,r){const n=Me(e),s=Me(t),{isError:a,errorObject:u,variants:c}=I(r);if(a)return u;const[l]=c,f=Math.floor(+l.getValue());if(t.isNull()||f<=0||f>s.length)return g.create(h.VALUE);if(e.isNull()||n.length===0)return y.create(f);const m=s.indexOf(n,f-1);if(m===-1)return g.create(h.VALUE);const d=ia(s.substring(0,m))+1;return y.create(d)}}class lA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",3)}calculate(e,t,r){let n=t!=null?t:y.create(2);n.isNull()&&(n=y.create(2));let s=r!=null?r:k.create(!1);s.isNull()&&(s=k.create(!1));const a=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=O(a,u,e,g.create(h.NA)),l=O(a,u,n,g.create(h.NA)),f=O(a,u,s,g.create(h.NA)),m=c.mapValue((d,C,_)=>{const E=l.get(C,_),b=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:this._handleSingleObject(d,E,b)});return a===1&&u===1?m.get(0,0):m}_handleSingleObject(e,t,r){const{isError:n,errorObject:s,variants:a}=I(e,t,r);if(n)return s;const[u,c,l]=a;let f=+u.getValue(),m=Math.trunc(+c.getValue());const d=+l.getValue();if(m>127)return g.create(h.VALUE);m<0&&(`${f}`.length<Math.abs(m)?f=0:f=f<0?-Vt(Math.abs(f),m):Vt(f,m),m=0);let C=d?"###0":"#,##0";m>0&&(C+=`.${"0".repeat(m)}`);const _=aa(C,f);return j.create(_)}}class fA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(1),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.mapValue((l,f,m)=>{const d=u.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const r=Me(e),{isError:n,errorObject:s,variants:a}=I(t);if(n)return s;const[u]=a,c=Math.floor(+u.getValue());if(c<0)return g.create(h.VALUE);if(e.isNull()||c===0)return j.create("");if(c>=r.length)return j.create(r);const l=r.substring(0,c);return j.create(l)}}class mA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(1),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,ae.create()),u=O(n,s,r,ae.create()),c=a.mapValue((l,f,m)=>{const d=u.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const r=Me(e),{isError:n,errorObject:s,variants:a}=I(t);if(n)return s;const[u]=a,c=Math.floor(+u.getValue());if(c<0)return g.create(h.VALUE);if(e.isNull()||c===0)return j.create("");let l=0,f=0,m="";for(;f<c&&l<r.length;)f+=Ur(r,l),m+=r.charAt(l),l++;return j.create(m)}}class hA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleText(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;const t=Me(e);return y.create(t.length)}}class gA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleText(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;const t=Me(e),r=ia(t);return y.create(r)}}class dA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return j.create("");const t=`${e.getValue()}`.toLocaleLowerCase();return j.create(t)}}class CA extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSingleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSingleObject(e,t,r){const n=Me(e),{isError:s,errorObject:a,variants:u}=I(t,r);if(s)return a;const[c,l]=u,f=Math.floor(+c.getValue()),m=Math.floor(+l.getValue());if(f<=0||m<0)return g.create(h.VALUE);if(e.isNull()||f>n.length||m===0)return j.create("");const d=n.substring(f-1,f-1+m);return j.create(d)}}class _A extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,t,g.create(h.NA)),c=O(n,s,r,g.create(h.NA)),l=a.mapValue((f,m,d)=>{const C=u.get(m,d),_=c.get(m,d);return f.isError()?f:C.isError()?C:_.isError()?_:this._handleSingleObject(f,C,_)});return n===1&&s===1?l.get(0,0):l}_handleSingleObject(e,t,r){let n=Me(e);const{isError:s,errorObject:a,variants:u}=I(t,r);if(s)return a;const[c,l]=u,f=Math.floor(+c.getValue()),m=Math.floor(+l.getValue());if(f<=0||m<0)return g.create(h.VALUE);if(e.isNull()||f>n.length||m===0)return j.create("");n=n.substring(f-1);let d=0,C=0,_="";for(;C<m&&d<n.length;)C+=Ur(n,d),_+=n.charAt(d),d++;return j.create(_)}}class AA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:j.create("."),s=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1,r!=null&&r.isArray()?r.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1,r!=null&&r.isArray()?r.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,n,g.create(h.NA)),l=r?O(s,a,r,g.create(h.NA)):void 0,f=u.mapValue((m,d,C)=>{const _=c.get(d,C),E=r?l.get(d,C):void 0;return m.isError()?m:_.isError()?_:E!=null&&E.isError()?E:_.isNull()||E!=null&&E.isNull()?g.create(h.VALUE):m.isNull()?y.create(0):this._handleSingleObject(m,_,E)});return s===1&&a===1?f.get(0,0):f}_handleSingleObject(e,t,r){let n=`${e.getValue()}`;n=n.replace(/\s+/g,"");let s=`${t.getValue()}`;t.isBoolean()&&(s=s.toLocaleUpperCase()),s=s.charAt(0);let a;if(r&&(a=`${r.getValue()}`,r.isBoolean()&&(a=a.toLocaleUpperCase()),a=a.charAt(0),s===a))return g.create(h.VALUE);if(n.trim()==="")return y.create(0);if(!n.match(/^\s*[+-]?\s*(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:[eE][+-]?\d+)?[ \t]*/))return g.create(h.VALUE);const u=n.split(s);if(u.length>2)return g.create(h.VALUE);let c=u[0].replace(/,/g,"");r&&(c=c.split(a).join(""));let l=0;if(u.length===1){s===","&&(c=c.replace(/\./g,""));let f=0;for(;c.endsWith("%");)c=c.slice(0,-1),f++;f>0?l=+c/100**f:l=+c}else{if(!M.isRealNum(c))return g.create(h.VALUE);let f=u[1],m=0;for(;f.endsWith("%");)f=f.slice(0,-1),m++;const d=`${c}.${f}`;if(!M.isRealNum(d))return g.create(h.VALUE);m>0?l=+d/100**m:l=+d}return Number.isNaN(l)?g.create(h.VALUE):y.create(l)}}class EA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError()||e.isNull()||e.isBoolean()||e.isNumber())return e;const r=e.getValue().toLocaleString().toLocaleLowerCase().replace(/(^|\b|\W|\d|_)[a-z]/g,n=>n.toLocaleUpperCase());return j.create(r)}}const mu=()=>[{type:4,from:48,to:57}],hu=()=>[{type:7,value:95},{type:4,from:97,to:122},{type:4,from:65,to:90},{type:4,from:48,to:57}],gu=()=>[{type:7,value:9},{type:7,value:10},{type:7,value:11},{type:7,value:12},{type:7,value:13},{type:7,value:32},{type:7,value:160},{type:7,value:5760},{type:4,from:8192,to:8202},{type:7,value:8232},{type:7,value:8233},{type:7,value:8239},{type:7,value:8287},{type:7,value:12288},{type:7,value:65279}],du=()=>({type:3,set:hu(),not:!1}),Cu=()=>({type:3,set:hu(),not:!0}),_u=()=>({type:3,set:mu(),not:!1}),Au=()=>({type:3,set:mu(),not:!0}),Eu=()=>({type:3,set:gu(),not:!1}),bu=()=>({type:3,set:gu(),not:!0}),bA=()=>({type:3,set:[{type:7,value:10},{type:7,value:13},{type:7,value:8232},{type:7,value:8233}],not:!0});function yA(i){const o={type:0,stack:[]};let e=o,t=o.stack;const r=[],n=[];let s=0;const a=f=>{throw new SyntaxError(`Invalid regular expression: /${i}/: Nothing to repeat at column ${f-1}`)},u=pA(i);let c=0,l;for(;c<u.length;)switch(l=u[c++],l){case"\\":if(c===u.length)throw new SyntaxError(`Invalid regular expression: /${i}/: \\ at end of pattern`);switch(l=u[c++],l){case"b":t.push({type:2,value:"b"});break;case"B":t.push({type:2,value:"B"});break;case"w":t.push(du());break;case"W":t.push(Cu());break;case"d":t.push(_u());break;case"D":t.push(Au());break;case"s":t.push(Eu());break;case"S":t.push(bu());break;default:if(/\d/.test(l)){for(;/\d/.test(u[c])&&c<u.length;)l+=u[c++];const f=Number.parseInt(l,10);t.push({type:6,value:f}),n.push({reference:{type:6,value:f},stack:t,index:t.length-1})}else t.push({type:7,value:l.charCodeAt(0)})}break;case"^":t.push({type:2,value:"^"});break;case"$":t.push({type:2,value:"$"});break;case"[":{const f=u[c]==="^";f&&c++;const m=RA(u.slice(c),i);c+=m[1],t.push({type:3,set:m[0],not:f});break}case".":t.push(bA());break;case"(":{const f={type:1,stack:[],remember:!0};if(u[c]==="?"){const m=u[c+1];if(c+=2,m==="=")f.followedBy=!0;else if(m==="!")f.notFollowedBy=!0;else if(m!==":")throw new SyntaxError(`Invalid regular expression: /${i}/: Invalid group, character '${m}' after '?' at column ${c-1}`);f.remember=!1}else s+=1;t.push(f),r.push(e),e=f,t=f.stack;break}case")":if(r.length===0)throw new SyntaxError(`Invalid regular expression: /${i}/: Unmatched ) at column ${c-1}`);e=r.pop(),t=e.options?e.options[e.options.length-1]:e.stack;break;case"|":{e.options||(e.options=[e.stack],delete e.stack);const f=[];e.options.push(f),t=f;break}case"{":{const f=/^(\d+)(,(\d+)?)?\}/.exec(u.slice(c));if(f){t.length===0&&a(c);const m=Number.parseInt(f[1],10),d=f[2]?f[3]?Number.parseInt(f[3],10):1/0:m;c+=f[0].length,t.push({type:5,min:m,max:d,value:t.pop()})}else t.push({type:7,value:123});break}case"?":t.length===0&&a(c),t.push({type:5,min:0,max:1,value:t.pop()});break;case"+":t.length===0&&a(c),t.push({type:5,min:1,max:1/0,value:t.pop()});break;case"*":t.length===0&&a(c),t.push({type:5,min:0,max:1/0,value:t.pop()});break;default:t.push({type:7,value:l.charCodeAt(0)})}if(r.length>0)throw new SyntaxError(`Invalid regular expression: /${i}/: Unterminated group`);return NA(n,s),o}function RA(i,o){let e;const t=[],r=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(e=r.exec(i))!==null;){let n=null;const[,s,a,u,c,l,f,m,d,C,_]=e;if(s||a||u||c||l||f?n=(()=>{let E={type:3,set:[],not:!1};return s?E=du():a?E=_u():u?E=Eu():c?E=Cu():l?E=Au():f&&(E=bu()),E})():m&&_?n={type:4,from:(d||C).charCodeAt(0),to:_.charCodeAt(_.length-1)}:e[16]&&(n={type:7,value:e[16].charCodeAt(0)}),!n)return[t,r.lastIndex];t.push(n)}throw new SyntaxError(`Invalid regular expression: /${o}/: Unterminated character class`)}function pA(i){return i.replace(/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g,(o,e,t,r,n,s,a)=>{if(t)return o;let u;e?u=8:r?u=Number.parseInt(r,16):n?u=Number.parseInt(n,16):s?u="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?".indexOf(s):u={0:0,t:9,n:10,v:11,f:12,r:13}[a];const c=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(c)?`\\${c}`:c})}function NA(i,o){for(const e of i.reverse()){const t=e.reference.value;if(o<t){e.reference.type=7;const r=t.toString();if(e.reference.value=Number.parseInt(r,8),!/^[0-7]+$/.test(r)){let n=0;for(;r[n]!=="8"&&r[n]!=="9"&&n<r.length;)n+=1;if(n===0?(e.reference.value=r.charCodeAt(0),n+=1):e.reference.value=Number.parseInt(r.slice(0,n),8),r.length>n){const s=e.stack.splice(e.index+1);for(const a of r.slice(n))e.stack.push({type:7,value:a.charCodeAt(0)});e.stack.push(...s)}}}}}function oa(i,o){if(!VA(i))return{isError:!0,regExp:null};try{const e=new RegExp(i,o?"ug":"u");return OA(e)?{isError:!1,regExp:e}:{isError:!0,regExp:null}}catch{return{isError:!0,regExp:null}}}function VA(i){return!(/\(\?<=.*?\)/g.test(i)&&!/\[.*?(\?<=.*?)\]/g.test(i)||/\(\?<!.*?\)/g.test(i)&&!/\[.*?(\?<!.*?)\]/g.test(i))}function OA(i,o){let t;Object.prototype.toString.call(i)==="[object RegExp]"?t=i.source:i&&typeof i!="string"&&(t=`${i}`);let r;try{r=yA(t)}catch{return!1}let n=0;const s=(a,u)=>{let c=u;if(a.type===5&&(c++,n++,c>1||n>25))return!1;if(a.options){for(const f of a.options)if(!s({stack:f},c))return!1}const l=a.stack||a.value&&a.value.stack;if(!l)return!0;for(const f of l)if(!s(f,c))return!1;return!0};return s(r,0)}class MA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=Js(e,t);if(r)return n;const[a,u]=s;let c=a.getValue();a.isNull()&&(c=""),a.isBoolean()&&(c=c?"TRUE":"FALSE"),c=`${c}`;let l=u.getValue();u.isNull()&&(l=""),u.isBoolean()&&(l=l?"TRUE":"FALSE"),l=`${l}`;const{isError:f,regExp:m}=oa(l,!1);if(f)return g.create(h.REF);const d=c.match(m);if(d===null)return g.create(h.NA);if(d.length>1){const C=d.slice(1).map(_=>j.create(_));return C.length>1?K.create({calculateValueList:[C],rowCount:1,columnCount:C.length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}):C[0]}return j.create(d[0])}}class SA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=Js(e,t);if(r)return n;const[a,u]=s;let c=a.getValue();a.isNull()&&(c=""),a.isBoolean()&&(c=c?"TRUE":"FALSE"),c=`${c}`;let l=u.getValue();u.isNull()&&(l=""),u.isBoolean()&&(l=l?"TRUE":"FALSE"),l=`${l}`;const{isError:f,regExp:m}=oa(l,!1);return f?g.create(h.REF):c.match(m)===null?k.create(!1):k.create(!0)}}class DA extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,variants:a}=Js(e,t,r);if(n)return s;const[u,c,l]=a;let f=u.getValue();u.isNull()&&(f=""),u.isBoolean()&&(f=f?"TRUE":"FALSE"),f=`${f}`;let m=c.getValue();c.isNull()&&(m=""),c.isBoolean()&&(m=m?"TRUE":"FALSE"),m=`${m}`;let d=l.getValue();l.isNull()&&(d=""),l.isBoolean()&&(d=d?"TRUE":"FALSE"),d=`${d}`;const{isError:C,regExp:_}=oa(m,!0);if(C)return g.create(h.REF);const E=f.replace(_,d);return j.create(E)}}class wA extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSingleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSingleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(t,r);if(s)return a;const[c,l]=u,f=Math.floor(+c.getValue()),m=Math.floor(+l.getValue());if(f<=0||m<0)return g.create(h.VALUE);const d=Me(e),C=Me(n),_=d.substring(0,f-1)+C+d.substring(f-1+m);return j.create(_)}}class PA extends N{constructor(){super(...arguments);A(this,"minParams",4);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=O(s,a,n,g.create(h.NA)),m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_),R=f.get(C,_);return d.isError()?d:E.isError()?E:b.isError()?b:R.isError()?R:this._handleSingleObject(d,E,b,R)});return s===1&&a===1?m.get(0,0):m}_handleSingleObject(e,t,r,n){const{isError:s,errorObject:a,variants:u}=I(t,r);if(s)return a;const[c,l]=u,f=Math.floor(+c.getValue()),m=Math.floor(+l.getValue());if(f<=0||m<0)return g.create(h.VALUE);let d=Me(e);const C=Me(n);let _=d.substring(0,f-1);d=d.substring(f-1);let E=0,b=0;for(;b<m&&E<d.length;)b+=Ur(d,E),E++;return _+=C+d.substring(E),j.create(_)}}class LA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e,g.create(h.NA)),a=O(r,n,t,g.create(h.NA)),u=s.map((c,l,f)=>{let m=a.get(l,f);if(c.isError())return c;let d=c.getValue();if(c.isNull()&&(d=""),c.isBoolean()&&(d=d?"TRUE":"FALSE"),d+="",m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;const C=32767,_=Math.floor(+m.getValue());if(_<0||_>C/d.length)return g.create(h.VALUE);const E=d.repeat(_);return j.create(E)});return r===1&&n===1?u.get(0,0):u}}class xA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(1),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.mapValue((l,f,m)=>{const d=u.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const r=Me(e),{isError:n,errorObject:s,variants:a}=I(t);if(n)return s;const[u]=a,c=Math.floor(+u.getValue());if(c<0)return g.create(h.VALUE);if(e.isNull()||c===0)return j.create("");if(c>=r.length)return j.create(r);const l=r.substring(r.length-c);return j.create(l)}}class jA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(1),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.mapValue((l,f,m)=>{const d=u.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const r=Me(e),{isError:n,errorObject:s,variants:a}=I(t);if(n)return s;const[u]=a,c=Math.floor(+u.getValue());if(c<0)return g.create(h.VALUE);if(e.isNull()||c===0)return j.create("");let l=r.length-1,f=0,m="";for(;f<c&&l>=0;)f+=Ur(r,l,"rtl"),m=r.charAt(l)+m,l--;return j.create(m)}}class UA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:y.create(1),s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,n,g.create(h.NA)),f=u.mapValue((m,d,C)=>{const _=c.get(d,C),E=l.get(d,C);return m.isError()?m:_.isError()?_:E.isError()?E:this._handleSingleObject(m,_,E)});return s===1&&a===1?f.get(0,0):f}_handleSingleObject(e,t,r){const n=Me(e).toLocaleUpperCase(),s=Me(t).toLocaleUpperCase(),{isError:a,errorObject:u,variants:c}=I(r);if(a)return u;const[l]=c,f=Math.floor(+l.getValue());if(t.isNull()||f<=0||f>s.length)return g.create(h.VALUE);if(e.isNull()||n.length===0)return y.create(f);const m=s.indexOf(n,f-1);return m===-1?g.create(h.VALUE):y.create(m+1)}}class vA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:y.create(1),s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,n,g.create(h.NA)),f=u.mapValue((m,d,C)=>{const _=c.get(d,C),E=l.get(d,C);return m.isError()?m:_.isError()?_:E.isError()?E:this._handleSingleObject(m,_,E)});return s===1&&a===1?f.get(0,0):f}_handleSingleObject(e,t,r){const n=Me(e).toLocaleUpperCase(),s=Me(t).toLocaleUpperCase(),{isError:a,errorObject:u,variants:c}=I(r);if(a)return u;const[l]=c,f=Math.floor(+l.getValue());if(t.isNull()||f<=0||f>s.length)return g.create(h.VALUE);if(e.isNull()||n.length===0)return y.create(f);const m=s.indexOf(n,f-1);if(m===-1)return g.create(h.VALUE);const d=ia(s.substring(0,m))+1;return y.create(d)}}class TA extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n!=null&&n.isArray()?n.getRowCount():1),a=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n!=null&&n.isArray()?n.getColumnCount():1),u=O(s,a,e,g.create(h.NA)),c=O(s,a,t,g.create(h.NA)),l=O(s,a,r,g.create(h.NA)),f=n?O(s,a,n,g.create(h.NA)):void 0,m=u.mapValue((d,C,_)=>{const E=c.get(C,_),b=l.get(C,_);let R=n?f.get(C,_):void 0;return d.isError()?d:E.isError()?E:b.isError()?b:R!=null&&R.isError()?R:R!=null&&R.isNull()||R!=null&&R.isBoolean()?g.create(h.VALUE):(R!=null&&R.isString()&&(R=R.convertToNumberObjectValue()),R!=null&&R.isError()?R:this._handleSingleObject(d,E,b,R))});return s===1&&a===1?m.get(0,0):m}_handleSingleObject(e,t,r,n){const s=this._getObjectString(e),a=this._getObjectString(t),u=this._getObjectString(r),c=n?Math.floor(+n.getValue()):void 0;if(n&&c<=0)return g.create(h.VALUE);if(a==="")return j.create(s);let l="",f=0;for(let m=0;m<s.length;m++){const d=s.substr(m,a.length);if(d===a||d.length===a.length&&d.trim()===a.trim()){if(f++,f===c){l=s.substr(0,m)+u+s.substr(m+a.length);break}c===void 0&&(l+=u),m+=a.length-1}else c===void 0&&(l+=s[m])}return c&&f<c&&(l=s),j.create(l)}_getObjectString(e){let t=`${e.getValue()}`;return e.isNull()&&(t=""),e.isBoolean()&&(t=t.toLocaleUpperCase()),t}}class BA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){let t=e;return e.isArray()&&(t=e.get(0,0)),t.isError()?t:t.isNull()||t.isBoolean()||t.isNumber()?j.create(""):t}}class IA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=O(r,n,e),a=O(r,n,t);return s.map((u,c,l)=>{if(u.isError())return u;let f=a.get(c,l)||j.create(" ");if(f.isError())return f;if(f.isBoolean())return g.create(h.VALUE);if(u.isBoolean())return u;let m=u.getValue();if(u.isNull()&&(m=0),u.isString()){if(!M.isRealNum(m))return u;m=Number(m)}f.isNull()&&(f=j.create(" "));const d=`${f.getValue()}`,C=aa(d,m);return j.create(d===" "?C.trimEnd():C)})}}class FA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){let u=!1,c=r!=null?r:y.create(1);c.isNull()&&(u=!0,c=y.create(1));const l=!n,f=n!=null?n:y.create(0),m=s!=null?s:y.create(0),d=a!=null?a:g.create(h.NA),C=Math.max(e.isArray()?e.getRowCount():1,c.isArray()?c.getRowCount():1,f.isArray()?f.getRowCount():1,m.isArray()?m.getRowCount():1,d.isArray()?d.getRowCount():1),_=Math.max(e.isArray()?e.getColumnCount():1,c.isArray()?c.getColumnCount():1,f.isArray()?f.getColumnCount():1,m.isArray()?m.getColumnCount():1,d.isArray()?d.getColumnCount():1),E=O(C,_,e,g.create(h.NA)),b=O(C,_,c,g.create(h.NA)),R=O(C,_,f,g.create(h.NA)),p=O(C,_,m,g.create(h.NA)),V=O(C,_,d,g.create(h.NA)),S=this._getResultArray(E,t,b,R,p,V,u,l);return C===1&&_===1?S.get(0,0):S}_getResultArray(e,t,r,n,s,a,u,c){return e.map((f,m,d)=>{const C=r.get(m,d),_=n.get(m,d),E=s.get(m,d),b=a.get(m,d),R=this._checkVariantsError(f,C,_,E);if(R.isError())return R;const p=this._getStringValue(f),V=this._getDelimiterValue(t);if(V instanceof g)return V;const S=this._getVariantsNumberFloorValue(C,_,E);if(S instanceof g)return S;const[D,w,P]=S;return D===0||w<0||w>1||P<0||P>1?g.create(h.VALUE):V.includes("")?D>0?j.create(p):j.create(""):!u&&Math.abs(D)>p.length?g.create(h.VALUE):V.every(L=>L.length>p.length)?g.create(h.NA):this._getResult(p,V,D,w,P,b,c)})}_checkVariantsError(...e){for(let t=0;t<e.length;t++){const r=e[t];if(r.isError())return r}return k.create(!0)}_getStringValue(e){let t=`${e.getValue()}`;return e.isNull()&&(t=""),e.isBoolean()&&(t=t.toLocaleUpperCase()),t}_getDelimiterValue(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);if(e.iterator(s=>{const a=s;if(a.isError())return r=!0,n=a,!1;t.push(this._getStringValue(a))}),r)return n}else{if(e.isError())return e;t.push(this._getStringValue(e))}return t}_getVariantsNumberFloorValue(...e){const t=[];for(let r=0;r<e.length;r++){let n=e[r];if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError())return n;const s=Math.floor(+n.getValue());t.push(s)}return t}_getResult(e,t,r,n,s,a,u){let c=n?e.toLocaleLowerCase():e;const l=n?t.map(_=>_.toLocaleLowerCase()):t;let f=0,m=0,d=0;for(let _=0;_<Math.abs(r);_++)if(r<0){const E=l.map(b=>({index:c.lastIndexOf(b),length:b.length})).filter(b=>b.index!==-1).sort((b,R)=>R.index-b.index)[0];if(!E)break;f=E.index,c=c.substr(0,E.index),d=E.length,m++}else{const E=l.map(b=>({index:c.indexOf(b),length:b.length})).filter(b=>b.index!==-1).sort((b,R)=>b.index-R.index)[0];if(!E)break;f+=E.index+d,c=c.substr(E.index+E.length),d=E.length,m++}if(m&&m<Math.abs(r)&&u)return g.create(h.NA);if(!m||m<Math.abs(r))return s?r>0?j.create(""):j.create(e):a;const C=e.substr(f+d);return j.create(C)}}class kA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){let u=!1,c=r!=null?r:y.create(1);c.isNull()&&(u=!0,c=y.create(1));const l=!n,f=n!=null?n:y.create(0),m=s!=null?s:y.create(0),d=a!=null?a:g.create(h.NA),C=Math.max(e.isArray()?e.getRowCount():1,c.isArray()?c.getRowCount():1,f.isArray()?f.getRowCount():1,m.isArray()?m.getRowCount():1,d.isArray()?d.getRowCount():1),_=Math.max(e.isArray()?e.getColumnCount():1,c.isArray()?c.getColumnCount():1,f.isArray()?f.getColumnCount():1,m.isArray()?m.getColumnCount():1,d.isArray()?d.getColumnCount():1),E=O(C,_,e,g.create(h.NA)),b=O(C,_,c,g.create(h.NA)),R=O(C,_,f,g.create(h.NA)),p=O(C,_,m,g.create(h.NA)),V=O(C,_,d,g.create(h.NA)),S=this._getResultArray(E,t,b,R,p,V,u,l);return C===1&&_===1?S.get(0,0):S}_getResultArray(e,t,r,n,s,a,u,c){return e.map((f,m,d)=>{const C=r.get(m,d),_=n.get(m,d),E=s.get(m,d),b=a.get(m,d),R=this._checkVariantsError(f,C,_,E);if(R.isError())return R;const p=this._getStringValue(f),V=this._getDelimiterValue(t);if(V instanceof g)return V;const S=this._getVariantsNumberFloorValue(C,_,E);if(S instanceof g)return S;const[D,w,P]=S;return D===0||w<0||w>1||P<0||P>1?g.create(h.VALUE):V.includes("")?D>0?j.create(""):j.create(p):!u&&Math.abs(D)>p.length?g.create(h.VALUE):V.every(L=>L.length>p.length)?g.create(h.NA):this._getResult(p,V,D,w,P,b,c)})}_checkVariantsError(...e){for(let t=0;t<e.length;t++){const r=e[t];if(r.isError())return r}return k.create(!0)}_getStringValue(e){let t=`${e.getValue()}`;return e.isNull()&&(t=""),e.isBoolean()&&(t=t.toLocaleUpperCase()),t}_getDelimiterValue(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);if(e.iterator(s=>{const a=s;if(a.isError())return r=!0,n=a,!1;t.push(this._getStringValue(a))}),r)return n}else{if(e.isError())return e;t.push(this._getStringValue(e))}return t}_getVariantsNumberFloorValue(...e){const t=[];for(let r=0;r<e.length;r++){let n=e[r];if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError())return n;const s=Math.floor(+n.getValue());t.push(s)}return t}_getResult(e,t,r,n,s,a,u){let c=n?e.toLocaleLowerCase():e;const l=n?t.map(_=>_.toLocaleLowerCase()):t;let f=0,m=0,d=0;for(let _=0;_<Math.abs(r);_++)if(r<0){const E=l.map(b=>({index:c.lastIndexOf(b),length:b.length})).filter(b=>b.index!==-1).sort((b,R)=>R.index-b.index)[0];if(!E)break;f=E.index,c=c.substr(0,E.index),m++}else{const E=l.map(b=>({index:c.indexOf(b),length:b.length})).filter(b=>b.index!==-1).sort((b,R)=>b.index-R.index)[0];if(!E)break;f+=E.index+d,c=c.substr(E.index+E.length),d=E.length,m++}if(m&&m<Math.abs(r)&&u)return g.create(h.NA);if(!m||m<Math.abs(r))return s?r>0?j.create(e):j.create(""):a;const C=e.substr(0,f);return j.create(C)}}class $A extends N{constructor(){super(...arguments);A(this,"minParams",3);A(this,"maxParams",255)}calculate(e,t,...r){const n=this._getDelimiterValues(e),s=this._getTextValues(r);if(t.isArray()){const u=t.mapValue(c=>this._handleSingleObject(n,c,s));return u.getRowCount()===1&&u.getColumnCount()===1?u.get(0,0):u}const a=t;if(a.isString()){const u=`${a.getValue()}`.toLocaleUpperCase();if(u==="TRUE")return this._handleSingleObject(n,k.create(!0),s);if(u==="FALSE")return this._handleSingleObject(n,k.create(!1),s)}return this._handleSingleObject(n,t,s)}_handleSingleObject(e,t,r){if(e instanceof g)return e;const{isError:n,errorObject:s,variants:a}=I(t);if(n)return s;if(r instanceof g)return r;const[u]=a,c=+u.getValue();let l=r;c&&(l=r.filter(m=>m!==null));let f="";for(let m=0;m<l.length;m++)l[m]!==null&&(f+=l[m]),m<l.length-1&&(f+=e[m%e.length]);return j.create(f)}_getDelimiterValues(e){const t=[],r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1;for(let s=0;s<r;s++)for(let a=0;a<n;a++){const u=e.isArray()?e.get(s,a):e;if(u.isError())return u;let c=`${u.getValue()}`;u.isNull()&&(c=""),u.isBoolean()&&(c=c.toLocaleUpperCase()),t.push(c)}return t}_getTextValues(e){const t=[];for(const r of e){const n=r.isArray()?r.getRowCount():1,s=r.isArray()?r.getColumnCount():1;for(let a=0;a<n;a++)for(let u=0;u<s;u++){const c=r.isArray()?r.get(a,u):r;if(c.isError())return c;if(c.isNull()){t.push(null);continue}let l=`${c.getValue()}`;c.isBoolean()&&(l=l.toLocaleUpperCase()),t.push(l)}}return t}}class YA extends N{constructor(){super(...arguments);A(this,"minParams",2);A(this,"maxParams",6)}calculate(e,t,r,n,s,a){let u=r!=null?r:j.create("\\s");const c=n!=null?n:y.create(0),l=s!=null?s:y.create(0),f=a!=null?a:j.create(h.NA),{_variant:m,values:d}=this._getStringValues(t),{_variant:C,values:_}=this._getStringValues(u,!1);u=C;const E=Math.max(e.isArray()?e.getRowCount():1,c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1),b=Math.max(e.isArray()?e.getColumnCount():1,c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1),R=O(E,b,e,g.create(h.NA)),p=O(E,b,c,g.create(h.NA)),V=O(E,b,l,g.create(h.NA)),S=this._getResultArray(R,m,u,p,V,f,d,_);return E===1&&b===1?S.get(0,0):S.map(D=>D.get(0,0))}_getStringValues(e,t=!0){let r=e;const n=[];if(r.isArray())r.iterator(s=>{if(s!=null&&s.isError())return r=s,!1;if(s!=null&&s.isNull()&&t)return r=g.create(h.VALUE),!1;const a=this._getRegExpStringValue(s);if(a==="")return r=g.create(h.VALUE),!1;n.push(a)});else{r.isNull()&&t&&(r=g.create(h.VALUE));const s=this._getRegExpStringValue(r);s===""&&(r=g.create(h.VALUE)),n.push(s)}return{_variant:r,values:n}}_getResultArray(e,t,r,n,s,a,u,c){return e.map((f,m,d)=>{let C=n.get(m,d),_=s.get(m,d);const E=this._checkVariantsError(f,t,r,C,_);if(E.isError())return E;if(f.isNull())return g.create(h.VALUE);let b=a;if(b.isArray()){const D=b.getRowCount(),w=b.getColumnCount();if(D>1||w>1)return g.create(h.VALUE);b=b.get(0,0)}let R=`${f.getValue()}`;if(f.isBoolean()&&(R=R.toLocaleUpperCase()),C.isString()&&(C=C.convertToNumberObjectValue(),C.isError()))return C;const p=Math.floor(+C.getValue());if(_.isString()&&(_=_.convertToNumberObjectValue(),_.isError()))return _;const V=Math.floor(+_.getValue());if(V<0||V>1)return g.create(h.VALUE);let S=`${b.getValue()}`;return b.isBoolean()&&(S=S.toLocaleUpperCase()),this._getResult(R,u,c,p,V,S)})}_getResult(e,t,r,n,s,a){const u=new RegExp(r.join("|"),`g${s?"i":""}`),c=new RegExp(t.join("|"),`g${s?"i":""}`),l=e.split(u);let f=1,m=l.map(d=>{let C=d.split(c);return n&&(C=C.filter(_=>_!=="")),f=Math.max(f,C.length),C});return m=m.map(d=>{let C=d;return C.length<f&&(C=C.concat(new Array(f-C.length).fill(a))),C}),K.createByArray(m)}_checkVariantsError(...e){for(let t=0;t<e.length;t++){const r=e[t];if(r.isError())return r}return k.create(!0)}_getRegExpStringValue(e){let t=e.getValue();return e.isNull()&&(t="\\s"),e.isBoolean()&&(t=t?"TRUE":"FALSE"),t+="",this._escapeRegExp(t)}_escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}}class HA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return j.create("");let t=`${e.getValue()}`;return e.isBoolean()&&(t=t.toLocaleUpperCase()),t=t.trim().replace(/\s+/g," "),j.create(t)}}const GA=Object.values(M.DataStreamTreeTokenType).filter(i=>[M.DataStreamTreeTokenType.TABLE_START,M.DataStreamTreeTokenType.TABLE_ROW_START,M.DataStreamTreeTokenType.TABLE_CELL_START,M.DataStreamTreeTokenType.TABLE_CELL_END,M.DataStreamTreeTokenType.TABLE_ROW_END,M.DataStreamTreeTokenType.TABLE_END,M.DataStreamTreeTokenType.CUSTOM_BLOCK].includes(i));class WA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=I(e);if(t)return r;const[s]=n,a=Math.floor(+s.getValue());if(a<1||a>1114111)return g.create(h.VALUE);if(a===1114111||a===1114110)return g.create(h.NA);let u=String.fromCharCode(a);return GA.some(c=>c===u)&&(u=""),j.create(u)}}class QA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);let t=e.getValue().toLocaleString();e.isBoolean()&&(t=t.toLocaleUpperCase());const r=t.charCodeAt(0);return y.create(r)}}class qA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return j.create("");const t=`${e.getValue()}`.toLocaleUpperCase();return j.create(t)}}class XA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isBoolean())return g.create(h.VALUE);let t=e;if(e.isString()&&(t=t.convertToNumberObjectValue(),t.isError()))return t;const r=+t.getValue();return y.create(r)}}class KA extends N{constructor(){super(...arguments);A(this,"minParams",1);A(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:y.create(0),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),a=O(n,s,e,g.create(h.NA)),u=O(n,s,r,g.create(h.NA)),c=a.mapValue((l,f,m)=>{const d=u.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const{isError:r,errorObject:n,variants:s}=I(t);if(r)return n;const[a]=s,u=Math.floor(+a.getValue());if(u<0||u>1)return g.create(h.VALUE);if(e.isNull())return j.create("");if(e.isBoolean())return e;if(e.isNumber())return y.create(e.getValue());const c=u?`"${e.getValue()}"`:`${e.getValue()}`;return j.create(c)}}const yu=[[K_,ne.ASC],[X_,ne.ARRAYTOTEXT],[Z_,ne.BAHTTEXT],[J_,ne.CHAR],[eA,ne.CLEAN],[tA,ne.CODE],[rA,ne.CONCAT],[nA,ne.CONCATENATE],[sA,ne.DBCS],[aA,ne.DOLLAR],[iA,ne.EXACT],[oA,ne.FIND],[cA,ne.FINDB],[lA,ne.FIXED],[fA,ne.LEFT],[mA,ne.LEFTB],[hA,ne.LEN],[gA,ne.LENB],[dA,ne.LOWER],[CA,ne.MID],[_A,ne.MIDB],[AA,ne.NUMBERVALUE],[MA,ne.REGEXEXTRACT],[SA,ne.REGEXMATCH],[DA,ne.REGEXREPLACE],[EA,ne.PROPER],[wA,ne.REPLACE],[PA,ne.REPLACEB],[LA,ne.REPT],[xA,ne.RIGHT],[jA,ne.RIGHTB],[UA,ne.SEARCH],[vA,ne.SEARCHB],[TA,ne.SUBSTITUTE],[BA,ne.T],[IA,ne.TEXT],[FA,ne.TEXTAFTER],[kA,ne.TEXTBEFORE],[$A,ne.TEXTJOIN],[YA,ne.TEXTSPLIT],[HA,ne.TRIM],[WA,ne.UNICHAR],[QA,ne.UNICODE],[qA,ne.UPPER],[XA,ne.VALUE],[KA,ne.VALUETOTEXT]],Ru=[];var pu=(i=>i)(pu||{});const Nu=[];var Vu=(i=>(i.ENCODEURL="ENCODEURL",i.FILTERXML="FILTERXML",i.WEBSERVICE="WEBSERVICE",i))(Vu||{}),ZA=Object.defineProperty,zA=Object.getOwnPropertyDescriptor,JA=(i,o,e,t)=>{for(var r=t>1?void 0:t?zA(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&ZA(o,e,r),r},Fr=(i,o)=>(e,t)=>o(e,t,i);let mn=class extends M.Disposable{constructor(i,o,e,t){super(),this._commandService=i,this._functionService=o,this._configService=e,this._dataSyncPrimaryController=t,this._initialize()}_initialize(){this._registerCommands(),this._registerFunctions()}_registerCommands(){[Rn,Zr,ps,Ns,en,Vs,Vr,En,bn,yn,pn,Nn,Ai,Ei,Os,hi].forEach(i=>{var o;this._commandService.registerCommand(i),(o=this._dataSyncPrimaryController)==null||o.registerSyncingMutations(i)})}_registerFunctions(){var e;const i=this._configService.getConfig(On),o=[...zi,...$o,...Yo,...Go,...Zo,...zo,...au,...iu,...ou,...uu,...cu,...lu,...fu,...yu,...Ru,...Nu].concat((e=i==null?void 0:i.function)!=null?e:[]).map(t=>{const r=t[0],n=t[1];return new r(n)});this._functionService.registerExecutors(...o)}};mn=JA([Fr(0,M.ICommandService),Fr(1,gt),Fr(2,M.IConfigService),Fr(3,M.Optional(Pu.DataSyncPrimaryController))],mn);var eE=Object.defineProperty,tE=Object.getOwnPropertyDescriptor,rE=(i,o,e,t)=>{for(var r=t>1?void 0:t?tE(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&eE(o,e,r),r},kr=(i,o)=>(e,t)=>o(e,t,i);let hn=class extends M.Disposable{constructor(i,o,e){super(),this._commandService=i,this._dependencyManagerService=o,this._featureCalculationManagerService=e,this._initialize()}_initialize(){this._commandExecutedListener(),this._featureCalculationManagerServiceListener()}_featureCalculationManagerServiceListener(){this.disposeWithMe(this._featureCalculationManagerService.onChanged$.subscribe(i=>{const{unitId:o,subUnitId:e,featureIds:t}=i;this._dependencyManagerService.removeFeatureFormulaDependency(o,e,t)}))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===yn.id){const o=i.params;if(o==null)return;const{featureIds:e,unitId:t,subUnitId:r}=o;this._dependencyManagerService.removeFeatureFormulaDependency(t,r,e)}else if(i.id===bn.id){const o=i.params;if(o==null)return;const{featureId:e,calculationParam:t}=o,{unitId:r,subUnitId:n}=t;this._dependencyManagerService.removeFeatureFormulaDependency(r,n,[e])}else if(i.id===Nn.id){const o=i.params;if(o==null)return;this._dependencyManagerService.removeOtherFormulaDependency(o.unitId,o.subUnitId,o.formulaIdList)}else if(i.id===pn.id){const o=i.params;if(o==null)return;const e=o.formulaMap,t=[];Object.keys(e).forEach(r=>{t.push(r)}),this._dependencyManagerService.removeOtherFormulaDependency(o.unitId,o.subUnitId,t)}else if(i.id===Rn.id){const o=i.params.formulaData;Object.keys(o).forEach(e=>{const t=o[e];if(t!==void 0){if(t===null){this._dependencyManagerService.clearFormulaDependency(e);return}Object.keys(t).forEach(r=>{const n=t[r];if(n!==void 0){if(n===null)return this._dependencyManagerService.clearFormulaDependency(e,r),!0;new M.ObjectMatrix(n).forValue((s,a)=>{this._dependencyManagerService.removeFormulaDependency(e,r,s,a)})}})}})}else i.id===Vr.id&&this._handleSetDefinedName(i)}))}_handleSetDefinedName(i){const o=i.params;if(o==null)return;const{unitId:e,name:t}=o;this._dependencyManagerService.removeFormulaDependencyByDefinedName(e,t)}};hn=rE([kr(0,M.ICommandService),kr(1,ar),kr(1,wr),kr(2,ar)],hn);var nE=Object.defineProperty,sE=Object.getOwnPropertyDescriptor,aE=(i,o,e,t)=>{for(var r=t>1?void 0:t?sE(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&nE(o,e,r),r},za=(i,o)=>(e,t)=>o(e,t,i);let gn=class extends M.Disposable{constructor(i,o){super(),this._commandService=i,this._featureCalculationManagerService=o,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===bn.id){const o=i.params;if(o==null)return;const{featureId:e,calculationParam:t}=o,{unitId:r,subUnitId:n}=t;this._featureCalculationManagerService.register(r,n,e,t)}else if(i.id===yn.id){const o=i.params;if(o==null)return;const{featureIds:e,unitId:t,subUnitId:r}=o;this._featureCalculationManagerService.remove(t,r,e)}}))}};gn=aE([za(0,M.ICommandService),za(1,ar)],gn);var iE=Object.defineProperty,oE=Object.getOwnPropertyDescriptor,uE=(i,o,e,t)=>{for(var r=t>1?void 0:t?oE(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&iE(o,e,r),r},ts=(i,o)=>(e,t)=>o(e,t,i);let dn=class extends M.Disposable{constructor(i,o,e){super(),this._commandService=i,this._otherFormulaManagerService=o,this._dependencyManagerService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===pn.id){const o=i.params;if(o==null)return;const e={[o.unitId]:{[o.subUnitId]:o.formulaMap}};this._otherFormulaManagerService.batchRegister(e)}else if(i.id===Nn.id){const o=i.params;if(o==null)return;const e={};o.formulaIdList.forEach(r=>e[r]=!0);const t={[o.unitId]:{[o.subUnitId]:e}};this._otherFormulaManagerService.batchRemove(t)}}))}};dn=uE([ts(0,M.ICommandService),ts(1,vn),ts(2,wr)],dn);class Ou extends M.Disposable{constructor(){super(...arguments);A(this,"_tableMap",new Map);A(this,"_tableOptionMap",new Map)}dispose(){this._tableMap.clear(),this._tableOptionMap.clear()}remove(e,t){var r;(r=this._tableMap.get(e))==null||r.delete(t)}getTableMap(e){return this._tableMap.get(e)}getTableOptionMap(){return this._tableOptionMap}registerTable(e,t,r){var n;this._tableMap.get(e)==null&&this._tableMap.set(e,new Map),(n=this._tableMap.get(e))==null||n.set(t,r)}registerTableOptionMap(e,t){this._tableOptionMap.set(e,t)}}const ua=M.createIdentifier("univer.formula.super-table.service");var cE=Object.defineProperty,lE=Object.getOwnPropertyDescriptor,fE=(i,o,e,t)=>{for(var r=t>1?void 0:t?lE(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&cE(o,e,r),r},Ja=(i,o)=>(e,t)=>o(e,t,i);let Cn=class extends M.Disposable{constructor(i,o){super(),this._commandService=i,this._superTableService=o,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===Vr.id){const o=i.params;if(o==null)return;const{unitId:e,tableName:t,reference:r}=o;this._superTableService.registerTable(e,t,r)}else if(i.id===En.id){const o=i.params;if(o==null)return;const{unitId:e,tableName:t}=o;this._superTableService.remove(e,t)}else if(i.id===Os.id){const o=i.params;if(o==null)return;const{tableOption:e,tableOptionType:t}=o;this._superTableService.registerTableOptionMap(e,t)}}))}};Cn=fE([Ja(0,M.ICommandService),Ja(1,ua)],Cn);class Mu extends M.Disposable{constructor(){super(...arguments);A(this,"_dirtyConversionMap",new Map)}dispose(){this._dirtyConversionMap.clear()}remove(e){this._dirtyConversionMap.delete(e)}get(e){return this._dirtyConversionMap.get(e)}has(e){return this._dirtyConversionMap.has(e)}register(e,t){this._dirtyConversionMap.set(e,t)}getDirtyConversionMap(){return this._dirtyConversionMap}}const Su=M.createIdentifier("univer.formula.active-dirty-manager.service");var mE=Object.defineProperty,hE=Object.getOwnPropertyDescriptor,gE=(i,o,e,t)=>{for(var r=t>1?void 0:t?hE(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&mE(o,e,r),r},ei=(i,o)=>(e,t)=>o(e,t,i);const dE="UNIVER_ENGINE_FORMULA_PLUGIN";var rs;exports.UniverFormulaEnginePlugin=(rs=class extends M.Plugin{constructor(o=yc,e,t){super(),this._config=o,this._injector=e,this._configService=t;const{...r}=this._config;this._configService.setConfig(On,r)}onStarting(){this._initialize(),this._initializeWithOverride()}onReady(){var o;M.touchDependencies(this._injector,[[mn],[exports.SetDefinedNameController],[Cn]]),(o=this._config)!=null&&o.notExecuteFormula||M.touchDependencies(this._injector,[[dn],[gn],[hn],[exports.CalculateController]])}onRendered(){var o;(o=this._config)!=null&&o.notExecuteFormula||M.touchDependencies(this._injector,[[cn],[un]])}_initialize(){var e;const o=[[gt,{useClass:Ii}],[lr,{useClass:exports.DefinedNamesService}],[Su,{useClass:Mu}],[ua,{useClass:Ou}],[exports.FormulaDataModel],[Vn],[mn],[exports.SetDefinedNameController],[Cn]];(e=this._config)!=null&&e.notExecuteFormula||o.push([vn,{useClass:Qi}],[st,{useClass:exports.FormulaRuntimeService}],[mt,{useClass:exports.FormulaCurrentConfigService}],[ar,{useClass:Wi}],[exports.CalculateController],[dn],[hn],[gn],[exports.Interpreter],[exports.AstTreeBuilder],[exports.Lexer],[js],[exports.FunctionNodeFactory],[exports.LambdaNodeFactory],[Ts],[exports.OperatorNodeFactory],[exports.PrefixNodeFactory],[exports.ReferenceNodeFactory],[exports.SuffixNodeFactory],[exports.UnionNodeFactory],[Bs]),o.forEach(t=>this._injector.add(t))}_initializeWithOverride(){var o;(o=this._config)!=null&&o.notExecuteFormula||[[cn,{useClass:exports.CalculateFormulaService}],[wr,{useClass:Gi}],[un,{useClass:exports.FormulaDependencyGenerator}]].forEach(t=>this._injector.add(t))}},A(rs,"pluginName",dE),rs);exports.UniverFormulaEnginePlugin=gE([ei(1,M.Inject(M.Injector)),ei(2,M.IConfigService)],exports.UniverFormulaEnginePlugin);var CE=Object.defineProperty,_E=Object.getOwnPropertyDescriptor,AE=(i,o,e,t)=>{for(var r=t>1?void 0:t?_E(o,e):o,n=i.length-1,s;n>=0;n--)(s=i[n])&&(r=(t?s(o,e,r):s(r))||r);return t&&r&&CE(o,e,r),r},ti=(i,o)=>(e,t)=>o(e,t,i);exports.FFormula=class extends M.FBase{constructor(o,e){super(),this._commandService=o,this._injector=e}executeCalculation(){this._commandService.executeCommand(dr.SetFormulaCalculationStartMutation.id,{commands:[],forceCalculation:!0},{onlyLocal:!0})}stopCalculation(){this._commandService.executeCommand(dr.SetFormulaCalculationStopMutation.id,{})}calculationStart(o){return this._commandService.onCommandExecuted(e=>{if(e.id===dr.SetFormulaCalculationStartMutation.id){const t=e.params;o(t.forceCalculation)}})}calculationEnd(o){return this._commandService.onCommandExecuted(e=>{if(e.id!==dr.SetFormulaCalculationNotificationMutation.id)return;const t=e.params;t.functionsExecutedState!==void 0&&o(t.functionsExecutedState)})}onCalculationEnd(){return new Promise((o,e)=>{const t=setTimeout(()=>{e(new Error("Calculation end timeout"))},3e4),r=this.calculationEnd(()=>{clearTimeout(t),r.dispose(),o()})})}calculationProcessing(o){return this._commandService.onCommandExecuted(e=>{if(e.id!==dr.SetFormulaCalculationNotificationMutation.id)return;const t=e.params;t.stageInfo!==void 0&&o(t.stageInfo)})}};exports.FFormula=AE([ti(0,M.Inject(M.ICommandService)),ti(1,M.Inject(M.Injector))],exports.FFormula);exports.ActiveDirtyManagerService=Mu;exports.ArrayValueObject=K;exports.AstRootNodeFactory=js;exports.AsyncArrayObject=Bi;exports.AsyncObject=Ti;exports.BaseFunction=N;exports.BaseReferenceObject=Mr;exports.BaseValueObject=ht;exports.BooleanValue=Ot;exports.BooleanValueObject=k;exports.CustomFunction=Fm;exports.DEFAULT_INTERVAL_COUNT=Ki;exports.DependencyManagerBaseService=Hi;exports.DependencyManagerService=Gi;exports.ERROR_TYPE_SET=qt;exports.ErrorType=h;exports.ErrorValueObject=g;exports.FUNCTION_NAMES_ARRAY=Ji;exports.FUNCTION_NAMES_COMPATIBILITY=le;exports.FUNCTION_NAMES_CUBE=Ho;exports.FUNCTION_NAMES_DATABASE=Te;exports.FUNCTION_NAMES_DATE=ye;exports.FUNCTION_NAMES_ENGINEERING=z;exports.FUNCTION_NAMES_FINANCIAL=J;exports.FUNCTION_NAMES_INFORMATION=Ne;exports.FUNCTION_NAMES_LOGICAL=Ve;exports.FUNCTION_NAMES_LOOKUP=me;exports.FUNCTION_NAMES_MATH=Y;exports.FUNCTION_NAMES_STATISTICAL=U;exports.FUNCTION_NAMES_TEXT=ne;exports.FUNCTION_NAMES_UNIVER=pu;exports.FUNCTION_NAMES_WEB=Vu;exports.FeatureCalculationManagerService=Wi;exports.FormulaDependencyTree=Wr;exports.FormulaDependencyTreeType=on;exports.FormulaDependencyTreeVirtual=Es;exports.FormulaExecuteStageType=ze;exports.FormulaExecutedStateType=zt;exports.FunctionService=Ii;exports.FunctionType=ni;exports.IActiveDirtyManagerService=Su;exports.ICalculateFormulaService=cn;exports.IDefinedNamesService=lr;exports.IDependencyManagerService=wr;exports.IFeatureCalculationManagerService=ar;exports.IFormulaCurrentConfigService=mt;exports.IFormulaDependencyGenerator=un;exports.IFormulaRuntimeService=st;exports.IFunctionService=gt;exports.IOtherFormulaManagerService=vn;exports.ISuperTableService=ua;exports.LambdaParameterNodeFactory=Ts;exports.LexerNode=se;exports.LexerTreeBuilder=Vn;exports.NullValueObject=ae;exports.NumberValueObject=y;exports.OtherFormulaManagerService=Qi;exports.PLUGIN_CONFIG_KEY=On;exports.RangeReferenceObject=Rr;exports.RegisterFunctionMutation=hi;exports.RemoveDefinedNameMutation=En;exports.RemoveFeatureCalculationMutation=yn;exports.RemoveOtherFormulaMutation=Nn;exports.RemoveSuperTableMutation=Ei;exports.SetArrayFormulaDataMutation=Zr;exports.SetDefinedNameMutation=Vr;exports.SetDefinedNameMutationFactory=cc;exports.SetFeatureCalculationMutation=bn;exports.SetFormulaCalculationNotificationMutation=en;exports.SetFormulaCalculationResultMutation=Vs;exports.SetFormulaCalculationStartMutation=ps;exports.SetFormulaCalculationStopMutation=Ns;exports.SetFormulaDataMutation=Rn;exports.SetOtherFormulaMutation=pn;exports.SetSuperTableMutation=Ai;exports.SetSuperTableOptionMutation=Os;exports.StringValueObject=j;exports.SuperTableService=Ou;exports.ValueNodeFactory=Bs;exports.ValueObjectFactory=lt;exports.compareToken=$;exports.convertUnitDataToRuntime=ii;exports.deserializeRangeForR1C1=Zi;exports.deserializeRangeWithSheet=Er;exports.deserializeRangeWithSheetWithCache=Yt;exports.functionArray=zi;exports.functionCompatibility=$o;exports.functionCube=Yo;exports.functionDatabase=Go;exports.functionDate=Zo;exports.functionEngineering=zo;exports.functionFinancial=au;exports.functionInformation=iu;exports.functionLogical=ou;exports.functionLookup=uu;exports.functionMath=cu;exports.functionMeta=lu;exports.functionStatistical=fu;exports.functionText=yu;exports.functionUniver=Ru;exports.functionWeb=Nu;exports.generateAstNode=As;exports.generateRandomDependencyTreeId=vt;exports.generateStringWithSequence=as;exports.getAbsoluteRefTypeWitString=Ju;exports.getAbsoluteRefTypeWithSingleString=_r;exports.getRangeWithRefsString=tc;exports.handleNumfmtInCell=wc;exports.handleRefStringInfo=An;exports.includeFormulaLexerToken=ai;exports.initSheetFormulaData=Ri;exports.isFormulaLexerToken=Cr;exports.isInDirtyRange=ri;exports.isReferenceString=mi;exports.isReferenceStringWithEffectiveColumn=Ar;exports.isReferenceStrings=_i;exports.matchRefDrawToken=Uu;exports.matchToken=Q;exports.normalizeSheetName=ju;exports.operatorToken=X;exports.sequenceNodeType=ve;exports.serializeRange=St;exports.serializeRangeToRefString=zr;exports.serializeRangeWithSheet=gi;exports.serializeRangeWithSpreadsheet=di;exports.singleReferenceToGrid=Yr;exports.strip=ds;exports.stripErrorMargin=Ui;
|