{"version":3,"file":"static/js/main.9c73861c.js","mappings":"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AK,oBACL,IAAK,oBACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,eACL,IAAK,SACL,IAAK,cACL,IAAK,gBACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,cACL,IAAK,iBACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,kBACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,gBACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,OACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,oBACL,IAAK,gBACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,cACL,IAAK,qBACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,eACL,IAAK,eACL,IAAK,iBACL,IAAK,eACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,gBACL,IAAK,cACL,IAAK,eACL,IAAK,kBACL,IAAK,oBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,UACL,IAAK,SACL,IAAK,cACL,IAAK,UACL,IAAK,oBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,mBACL,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,oBACL,IAAK,sBACL,IAAK,sBACL,IAAK,mBACL,IAAK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iBACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,I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","sources":["../node_modules/base-64/base64.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/addQuarters/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfYear/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/startOfISOWeek/index.js","../node_modules/date-fns/esm/getISOWeekYear/index.js","../node_modules/date-fns/esm/startOfISOWeekYear/index.js","../node_modules/date-fns/esm/getISOWeek/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/set/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/subQuarters/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subYears/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/isarray/index.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/warning/warning.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/utils/bindActionCreators.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","_helpers/fake-backend.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/history/esm/history.js","_helpers/history.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/redux-logger/dist/redux-logger.es.js","_constants/alert.constants.js","_constants/user.constants.js","_constants/controlSummary.constants.js","_constants/index.js","_reducers/authentication.reducer.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","_reducers/index.js","_reducers/registration.reducer.js","_reducers/users.reducer.js","_reducers/alert.reducer.js","_reducers/controlSummary.reducer.js","_helpers/store.js","_helpers/auth-header.js","_helpers/getColorCode.js","../node_modules/xlsx/xlsx.mjs","_helpers/excel.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/modules/createNameContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","_actions/alert.actions.js","_services/handleResponse.js","_services/user.service.js","_services/controlSummary.service.js","_actions/user.actions.js","_actions/controlSummary.actions.js","_components/PrivateRoute.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/array.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/selectChild.js","../node_modules/d3-selection/src/selection/selectChildren.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/iterator.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-timer/src/timeout.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-brush/src/brush.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-shape/src/math.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/arc.js","../node_modules/d3-shape/src/path.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/descending.js","../node_modules/d3-shape/src/identity.js","../node_modules/d3-zoom/src/transform.js","webpack://control-ticket/./src/_components/DonutChart/DonutChart.module.css?adf0","_components/DonutChart/DonutChart.js","../node_modules/d3-shape/src/pie.js","../node_modules/d3-selection/src/select.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","_components/ControlSummary/ControlSummary.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","_components/Calender/utility.js","Assets/CloseButton.svg","Assets/leftarrowWithOutTail.svg","Assets/right_arrow_withoutTail.svg","../node_modules/uuid/dist/esm-browser/rng.js","webpack://control-ticket/./src/_components/Calender/calendar.module.css?703e","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/v4.js","_components/Portal/Portal.js","Assets/RecordSearch.svg","_components/Message.js","_components/Calender/CalenderView.js","../node_modules/ssr-window/ssr-window.esm.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/dom7/dom7.esm.js","../node_modules/swiper/shared/dom.js","../node_modules/swiper/shared/get-support.js","../node_modules/swiper/shared/get-device.js","../node_modules/swiper/shared/get-browser.js","../node_modules/swiper/shared/utils.js","../node_modules/swiper/core/events-emitter.js","../node_modules/swiper/core/update/index.js","../node_modules/swiper/core/update/updateSize.js","../node_modules/swiper/core/update/updateSlides.js","../node_modules/swiper/core/update/updateAutoHeight.js","../node_modules/swiper/core/update/updateSlidesOffset.js","../node_modules/swiper/core/update/updateSlidesProgress.js","../node_modules/swiper/core/update/updateProgress.js","../node_modules/swiper/core/update/updateSlidesClasses.js","../node_modules/swiper/core/update/updateActiveIndex.js","../node_modules/swiper/core/update/updateClickedSlide.js","../node_modules/swiper/core/translate/index.js","../node_modules/swiper/core/translate/getTranslate.js","../node_modules/swiper/core/translate/setTranslate.js","../node_modules/swiper/core/translate/minTranslate.js","../node_modules/swiper/core/translate/maxTranslate.js","../node_modules/swiper/core/translate/translateTo.js","../node_modules/swiper/core/transition/transitionEmit.js","../node_modules/swiper/core/transition/index.js","../node_modules/swiper/core/transition/setTransition.js","../node_modules/swiper/core/transition/transitionStart.js","../node_modules/swiper/core/transition/transitionEnd.js","../node_modules/swiper/core/slide/index.js","../node_modules/swiper/core/slide/slideTo.js","../node_modules/swiper/core/slide/slideToLoop.js","../node_modules/swiper/core/slide/slideNext.js","../node_modules/swiper/core/slide/slidePrev.js","../node_modules/swiper/core/slide/slideReset.js","../node_modules/swiper/core/slide/slideToClosest.js","../node_modules/swiper/core/slide/slideToClickedSlide.js","../node_modules/swiper/core/loop/index.js","../node_modules/swiper/core/loop/loopCreate.js","../node_modules/swiper/core/loop/loopFix.js","../node_modules/swiper/core/loop/loopDestroy.js","../node_modules/swiper/core/events/onTouchStart.js","../node_modules/swiper/core/events/onTouchMove.js","../node_modules/swiper/core/events/onTouchEnd.js","../node_modules/swiper/core/events/onResize.js","../node_modules/swiper/core/events/onClick.js","../node_modules/swiper/core/events/onScroll.js","../node_modules/swiper/core/events/index.js","../node_modules/swiper/core/breakpoints/setBreakpoint.js","../node_modules/swiper/core/breakpoints/index.js","../node_modules/swiper/core/breakpoints/getBreakpoint.js","../node_modules/swiper/core/classes/index.js","../node_modules/swiper/core/classes/addClasses.js","../node_modules/swiper/core/classes/removeClasses.js","../node_modules/swiper/core/images/index.js","../node_modules/swiper/core/images/loadImage.js","../node_modules/swiper/core/images/preloadImages.js","../node_modules/swiper/core/check-overflow/index.js","../node_modules/swiper/core/defaults.js","../node_modules/swiper/core/moduleExtendParams.js","../node_modules/swiper/core/core.js","../node_modules/swiper/core/grab-cursor/index.js","../node_modules/swiper/core/grab-cursor/setGrabCursor.js","../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","../node_modules/swiper/core/modules/resize/resize.js","../node_modules/swiper/core/modules/observer/observer.js","../node_modules/swiper/shared/classes-to-selector.js","../node_modules/swiper/modules/pagination/pagination.js","../node_modules/swiper/shared/create-element-if-not-defined.js","../node_modules/swiper/components-shared/utils.js","../node_modules/swiper/components-shared/params-list.js","../node_modules/swiper/shared/calc-looped-slides.js","../node_modules/swiper/react/get-children.js","../node_modules/swiper/components-shared/update-swiper.js","../node_modules/swiper/react/use-isomorphic-layout-effect.js","../node_modules/swiper/react/context.js","../node_modules/swiper/react/swiper.js","../node_modules/swiper/components-shared/get-params.js","../node_modules/swiper/components-shared/mount-swiper.js","../node_modules/swiper/components-shared/get-changed-params.js","../node_modules/swiper/components-shared/update-on-virtual-data.js","../node_modules/swiper/react/virtual.js","../node_modules/swiper/react/loop.js","../node_modules/swiper/react/swiper-slide.js","Assets/map_stroke.svg","_components/TripAnalysis/TripAnalysis.js","../node_modules/react-infinite-scroll-component/node_modules/tslib/tslib.es6.js","../node_modules/react-infinite-scroll-component/node_modules/throttle-debounce/dist/index.esm.js","Assets/Members.svg","Assets/SubTicketLink.svg","Assets/Dropdown.svg","Assets/FilterIcon.svg","Assets/WhiteSearchIcon.svg","Assets/TicketIcon.svg","Assets/chatIcon.svg","Assets/SendIcon.svg","Assets/DropdownBlack.svg","Assets/logout.svg","Assets/UserIcon.svg","Assets/leftArrow.svg","Assets/rightArrow.svg","Assets/mapIcon.svg","_components/Dashboard/Dropdown.js","_components/Dashboard/Dashboard.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","_services/comment.service.js","Home/Home.js","Login/Login.js","RegisterPage/RegisterPage.js","App/App.js","index.js"],"sourcesContent":["/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '1.0.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nexport default function addQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var months = amount * 3;\n return addMonths(dirtyDate, months);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport default function endOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import startOfQuarter from \"../startOfQuarter/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n return time >= startTime && time <= endTime;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time);\n // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n date.setFullYear(year);\n return date;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n if (_typeof(values) !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n var date = toDate(dirtyDate);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addQuarters from \"../addQuarters/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subQuarters\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * const result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\nexport default function subQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addQuarters(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addWeeks from \"../addWeeks/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addQuarters\"),require(\"date-fns/addYears\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subQuarters\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getISOWeek\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/endOfYear\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-dom\"),require(\"react-popper\"),require(\"date-fns/set\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addQuarters\",\"date-fns/addYears\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subQuarters\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getISOWeek\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/endOfYear\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-dom\",\"react-popper\",\"date-fns/set\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.addDays,e.addWeeks,e.addMonths,e.addQuarters,e.addYears,e.subDays,e.subWeeks,e.subMonths,e.subQuarters,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.getISOWeek,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.setMonth,e.setQuarter,e.setYear,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,null,e.endOfMonth,e.endOfYear,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactDOM,e.ReactPopper,e.set)}(this,(function(e,t,r,a,n,o,s,i,p,l,c,d,u,f,h,m,y,v,D,g,k,w,b,S,C,_,M,P,E,N,x,Y,O,I,T,R,L,F,A,W,q,K,B,Q,H,j,V,U,z,$,G,J,X,Z,ee,te,re,ae,ne,oe,se,ie,pe,le){\"use strict\";function ce(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var de=ce(t),ue=ce(a),fe=ce(n),he=ce(o),me=ce(s),ye=ce(i),ve=ce(p),De=ce(l),ge=ce(c),ke=ce(d),we=ce(u),be=ce(f),Se=ce(h),Ce=ce(m),_e=ce(y),Me=ce(v),Pe=ce(D),Ee=ce(g),Ne=ce(k),xe=ce(w),Ye=ce(b),Oe=ce(S),Ie=ce(C),Te=ce(_),Re=ce(M),Le=ce(P),Fe=ce(E),Ae=ce(N),We=ce(x),qe=ce(Y),Ke=ce(O),Be=ce(I),Qe=ce(T),He=ce(R),je=ce(L),Ve=ce(F),Ue=ce(A),ze=ce(W),$e=ce(q),Ge=ce(K),Je=ce(B),Xe=ce(Q),Ze=ce(H),et=ce(j),tt=ce(U),rt=ce(z),at=ce($),nt=ce(G),ot=ce(J),st=ce(X),it=ce(Z),pt=ce(ee),lt=ce(te),ct=ce(re),dt=ce(ae),ut=ce(ne),ft=ce(oe),ht=ce(se),mt=ce(ie),yt=ce(le);function vt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function Dt(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.excludeDateIntervals,s=t.includeDates,i=t.includeDateIntervals,p=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Jt(e,t)}))||o&&o.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||s&&!s.some((function(t){return Jt(e,t)}))||i&&!i.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||p&&!p(At(e))||!1}function or(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,a=t.excludeDateIntervals;return a&&a.length>0?a.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})})):r&&r.some((function(t){return Jt(e,t)}))||!1}function sr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:Je.default(r),maxDate:tt.default(a)})||n&&n.some((function(t){return $t(e,t)}))||o&&!o.some((function(t){return $t(e,t)}))||s&&!s(At(e))||!1}function ir(e,t,r,a){var n=Le.default(e),o=Te.default(e),s=Le.default(t),i=Te.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Gt(e,t)}))||o&&!o.some((function(t){return Gt(e,t)}))||s&&!s(At(e))||!1}function lr(e,t,r){if(!he.default(t)||!he.default(r))return!1;var a=Le.default(t),n=Le.default(r);return a<=e&&n>=e}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate,i=new Date(e,0,1);return ur(i,{minDate:Ze.default(r),maxDate:rt.default(a)})||n&&n.some((function(e){return zt(i,e)}))||o&&!o.some((function(e){return zt(i,e)}))||s&&!s(At(i))||!1}function dr(e,t,r,a){var n=Le.default(e),o=Re.default(e),s=Le.default(t),i=Re.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function ur(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate;return r&&Ve.default(e,r)<0||a&&Ve.default(e,a)>0}function fr(e,t){return t.some((function(t){return xe.default(t)===xe.default(e)&&Ne.default(t)===Ne.default(e)}))}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,a=t.includeTimes,n=t.filterTime;return r&&fr(e,r)||a&&!fr(e,a)||n&&!n(e)||!1}function mr(e,t){var r=t.minTime,a=t.maxTime;if(!r||!a)throw new Error(\"Both minTime and maxTime props required\");var n,o=At(),s=qe.default(We.default(o,Ne.default(e)),xe.default(e)),i=qe.default(We.default(o,Ne.default(r)),xe.default(r)),p=qe.default(We.default(o,Ne.default(a)),xe.default(a));try{n=!ct.default(s,{start:i,end:p})}catch(e){n=!1}return n}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=_e.default(e,1);return r&&Ue.default(r,n)>0||a&&a.every((function(e){return Ue.default(e,n)>0}))||!1}function vr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=ke.default(e,1);return r&&Ue.default(n,r)>0||a&&a.every((function(e){return Ue.default(n,e)>0}))||!1}function Dr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Pe.default(e,1);return r&&ze.default(r,n)>0||a&&a.every((function(e){return ze.default(e,n)>0}))||!1}function gr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=be.default(e,1);return r&&ze.default(n,r)>0||a&&a.every((function(e){return ze.default(n,e)>0}))||!1}function kr(e){var t=e.minDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)>=0}));return He.default(a)}return r?He.default(r):t}function wr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)<=0}));return je.default(a)}return r?je.default(r):t}function br(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,a=0,n=e.length;a0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--holidays\",r=new Map;return e.forEach((function(e){var a=e.date,n=e.holidayName;if(fe.default(a)){var o=qt(a,\"MM.dd.yyyy\"),s=r.get(o)||{};if(!(\"className\"in s)||s.className!==t||(i=s.holidayNames,p=[n],i.length!==p.length||!i.every((function(e,t){return e===p[t]})))){var i,p;s.className=t;var l=s.holidayNames;s.holidayNames=l?[].concat(xt(l),[n]):[n],r.set(o,s)}}})),r}function Cr(e,t,r,a,n){for(var o=n.length,s=[],i=0;i1&&void 0!==arguments[1]?arguments[1]:Lt,r=Math.ceil(Le.default(e)/t)*t;return{startPeriod:r-(t-1),endPeriod:r}}function Pr(e){var t=e.getSeconds(),r=e.getMilliseconds();return dt.default(e.getTime()-1e3*t-r)}function Er(e,t,r,a){for(var n=[],o=0;o<2*t+1;o++){var s=e+t-o,i=!0;r&&(i=Le.default(r)<=s),a&&i&&(i=Le.default(a)>=s),i&&n.push(s)}return n}var Nr=function(e){_t(a,e);var r=Nt(a);function a(e){var n;kt(this,a),St(Et(n=r.call(this,e)),\"renderOptions\",(function(){var e=n.props.year,t=n.state.yearsList.map((function(t){return de.default.createElement(\"div\",{className:e===t?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:t,onClick:n.onChange.bind(Et(n),t),\"aria-selected\":e===t?\"true\":void 0},e===t?de.default.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",t)})),r=n.props.minDate?Le.default(n.props.minDate):null,a=n.props.maxDate?Le.default(n.props.maxDate):null;return a&&n.state.yearsList.find((function(e){return e===a}))||t.unshift(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"upcoming\",onClick:n.incrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),r&&n.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"previous\",onClick:n.decrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),t})),St(Et(n),\"onChange\",(function(e){n.props.onChange(e)})),St(Et(n),\"handleClickOutside\",(function(){n.props.onCancel()})),St(Et(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),St(Et(n),\"incrementYears\",(function(){return n.shiftYears(1)})),St(Et(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,i=o||(s?10:5);return n.state={yearsList:Er(n.props.year,i,n.props.minDate,n.props.maxDate)},n.dropdownRef=t.createRef(),n}return bt(a,[{key:\"componentDidMount\",value:function(){var e=this.dropdownRef.current;if(e){var t=e.children?Array.from(e.children):null,r=t?t.find((function(e){return e.ariaSelected})):null;e.scrollTop=r?r.offsetTop+(r.clientHeight-e.clientHeight)/2:(e.scrollHeight-e.clientHeight)/2}}},{key:\"render\",value:function(){var e=ue.default({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return de.default.createElement(\"div\",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),a}(de.default.Component),xr=ht.default(Nr),Yr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0?n.get(o).holidayNames.join(\", \"):\"\"})),St(Et(e),\"getTabIndex\",(function(t,r){var a=t||e.props.selected,n=r||e.props.preSelection;return(!e.props.showWeekPicker||!e.props.showWeekNumber&&e.isStartOfWeek())&&(e.isKeyboardSelected()||e.isSameDay(a)&&Jt(n,a))?0:-1})),St(Et(e),\"handleFocusDay\",(function(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=!1;0===e.getTabIndex()&&!r.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(a=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(a=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(a=!0),e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()&&(a=!1),e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()&&(a=!1)),a&&(null===(t=e.dayEl.current)||void 0===t||t.focus({preventScroll:!0}))})),St(Et(e),\"renderDayContents\",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Oe.default(e.props.day),e.props.day):Oe.default(e.props.day)})),St(Et(e),\"render\",(function(){return de.default.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"option\",title:e.getTitle(),\"aria-disabled\":e.isDisabled(),\"aria-current\":e.isCurrentDay()?\"date\":void 0,\"aria-selected\":e.isSelected()||e.isInRange()},e.renderDayContents(),\"\"!==e.getTitle()&&de.default.createElement(\"span\",{className:\"holiday-overlay\"},e.getTitle()))})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),qr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&Jt(e.props.date,e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement&&document.activeElement.classList.contains(\"react-datepicker__week-number\")&&(r=!0)),r&&e.weekNumberEl.current&&e.weekNumberEl.current.focus({preventScroll:!0})})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusWeekNumber()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusWeekNumber(e)}},{key:\"render\",value:function(){var e=this.props,t=e.weekNumber,r=e.ariaLabelPrefix,a=void 0===r?\"week \":r,n={\"react-datepicker__week-number\":!0,\"react-datepicker__week-number--clickable\":!!e.onClick,\"react-datepicker__week-number--selected\":Jt(this.props.date,this.props.selected),\"react-datepicker__week-number--keyboard-selected\":this.isKeyboardSelected()};return de.default.createElement(\"div\",{ref:this.weekNumberEl,className:ue.default(n),\"aria-label\":\"\".concat(a,\" \").concat(this.props.weekNumber),onClick:this.handleClick,onKeyDown:this.handleOnKeyDown,tabIndex:this.getTabIndex()},t)}}],[{key:\"defaultProps\",get:function(){return{ariaLabelPrefix:\"week \"}}}]),r}(de.default.Component),Kr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o=6,i=!r&&!e.isWeekInMonth(o);if(s||i){if(!e.props.peekNextMonth)break;n=!0}}return t})),St(Et(e),\"onMonthClick\",(function(t,r){e.handleDayClick(Ht(Ke.default(e.props.day,r)),t)})),St(Et(e),\"onMonthMouseEnter\",(function(t){e.handleDayMouseEnter(Ht(Ke.default(e.props.day,t)))})),St(Et(e),\"handleMonthNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),St(Et(e),\"onMonthKeyDown\",(function(t,r){var a=e.props,n=a.selected,o=a.preSelection,s=a.disabledKeyboardNavigation,i=a.showTwoColumnMonthYearPicker,p=a.showFourColumnMonthYearPicker,l=a.setPreSelection,c=t.key;if(\"Tab\"!==c&&t.preventDefault(),!s){var d=Vr(p,i),u=jr[d].verticalNavigationOffset,f=jr[d].grid;switch(c){case\"Enter\":e.onMonthClick(t,r),l(n);break;case\"ArrowRight\":e.handleMonthNavigation(11===r?0:r+1,ke.default(o,1));break;case\"ArrowLeft\":e.handleMonthNavigation(0===r?11:r-1,_e.default(o,1));break;case\"ArrowUp\":e.handleMonthNavigation(f[0].includes(r)?r+12-u:r-u,_e.default(o,u));break;case\"ArrowDown\":e.handleMonthNavigation(f[f.length-1].includes(r)?r-12+u:r+u,ke.default(o,u))}}})),St(Et(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(Vt(Be.default(e.props.day,r)),t)})),St(Et(e),\"onQuarterMouseEnter\",(function(t){e.handleDayMouseEnter(Vt(Be.default(e.props.day,t)))})),St(Et(e),\"handleQuarterNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.QUARTER_REFS[t-1].current&&e.QUARTER_REFS[t-1].current.focus())})),St(Et(e),\"onQuarterKeyDown\",(function(t,r){var a=t.key;if(!e.props.disabledKeyboardNavigation)switch(a){case\"Enter\":e.onQuarterClick(t,r),e.props.setPreSelection(e.props.selected);break;case\"ArrowRight\":e.handleQuarterNavigation(4===r?1:r+1,we.default(e.props.preSelection,1));break;case\"ArrowLeft\":e.handleQuarterNavigation(1===r?4:r-1,Me.default(e.props.preSelection,1))}})),St(Et(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.monthClassName,d=r.excludeDates,u=r.includeDates,f=c?c(Ke.default(a,t)):void 0,h=Ke.default(a,t);return ue.default(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),f,{\"react-datepicker__month-text--disabled\":(i||p||d||u)&&sr(h,e.props),\"react-datepicker__month-text--selected\":e.isSelectedMonth(a,t,s),\"react-datepicker__month-text--keyboard-selected\":!e.props.disabledKeyboardNavigation&&Te.default(l)===t,\"react-datepicker__month-text--in-selecting-range\":e.isInSelectingRangeMonth(t),\"react-datepicker__month-text--in-range\":ir(n,o,t,a),\"react-datepicker__month-text--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month-text--range-end\":e.isRangeEndMonth(t),\"react-datepicker__month-text--selecting-range-start\":e.isSelectingMonthRangeStart(t),\"react-datepicker__month-text--selecting-range-end\":e.isSelectingMonthRangeEnd(t),\"react-datepicker__month-text--today\":e.isCurrentMonth(a,t)})})),St(Et(e),\"getTabIndex\",(function(t){var r=Te.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getQuarterTabIndex\",(function(t){var r=Re.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getAriaLabel\",(function(t){var r=e.props,a=r.chooseDayAriaLabelPrefix,n=void 0===a?\"Choose\":a,o=r.disabledDayAriaLabelPrefix,s=void 0===o?\"Not available\":o,i=r.day,p=Ke.default(i,t),l=e.isDisabled(p)||e.isExcluded(p)?s:n;return\"\".concat(l,\" \").concat(qt(p,\"MMMM yyyy\"))})),St(Et(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.disabledKeyboardNavigation;return ue.default(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter-text--disabled\":(i||p)&&pr(Be.default(a,t),e.props),\"react-datepicker__quarter-text--selected\":e.isSelectedQuarter(a,t,s),\"react-datepicker__quarter-text--keyboard-selected\":!c&&Re.default(l)===t,\"react-datepicker__quarter-text--in-selecting-range\":e.isInSelectingRangeQuarter(t),\"react-datepicker__quarter-text--in-range\":dr(n,o,t,a),\"react-datepicker__quarter-text--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter-text--range-end\":e.isRangeEndQuarter(t)})})),St(Et(e),\"getMonthContent\",(function(t){var r=e.props,a=r.showFullMonthYearPicker,n=r.renderMonthContent,o=r.locale,s=r.day,i=ar(t,o),p=rr(t,o);return n?n(t,i,p,s):a?p:i})),St(Et(e),\"getQuarterContent\",(function(t){var r=e.props,a=r.renderQuarterContent,n=function(e,t){return qt(Be.default(At(),e),\"QQQ\",t)}(t,r.locale);return a?a(t,n):n})),St(Et(e),\"renderMonths\",(function(){var t=e.props,r=t.showTwoColumnMonthYearPicker,a=t.showFourColumnMonthYearPicker,n=t.day,o=t.selected;return jr[Vr(a,r)].grid.map((function(t,r){return de.default.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:r},t.map((function(t,r){return de.default.createElement(\"div\",{ref:e.MONTH_REFS[t],key:r,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},onMouseEnter:function(){return e.onMonthMouseEnter(t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:\"option\",\"aria-label\":e.getAriaLabel(t),\"aria-current\":e.isCurrentMonth(n,t)?\"date\":void 0,\"aria-selected\":e.isSelectedMonth(n,t,o)},e.getMonthContent(t))})))}))})),St(Et(e),\"renderQuarters\",(function(){var t=e.props,r=t.day,a=t.selected;return de.default.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(t,n){return de.default.createElement(\"div\",{key:n,ref:e.QUARTER_REFS[n],role:\"option\",onClick:function(r){e.onQuarterClick(r,t)},onKeyDown:function(r){e.onQuarterKeyDown(r,t)},onMouseEnter:function(){return e.onQuarterMouseEnter(t)},className:e.getQuarterClassNames(t),\"aria-selected\":e.isSelectedQuarter(r,t,a),tabIndex:e.getQuarterTabIndex(t),\"aria-current\":e.isCurrentQuarter(r,t)?\"date\":void 0},e.getQuarterContent(t))})))})),St(Et(e),\"getClassNames\",(function(){var t=e.props,r=t.selectingDate,a=t.selectsStart,n=t.selectsEnd,o=t.showMonthYearPicker,s=t.showQuarterYearPicker,i=t.showWeekPicker;return ue.default(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":r&&(a||n)},{\"react-datepicker__monthPicker\":o},{\"react-datepicker__quarterPicker\":s},{\"react-datepicker__weekPicker\":i})})),e}return bt(r,[{key:\"render\",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,a=e.day,n=e.ariaLabelPrefix,o=void 0===n?\"month \":n;return de.default.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(o,\" \").concat(qt(a,\"yyyy-MM\")),role:\"listbox\"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),zr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{}).className||\"\").split(/\\s+/);return Xr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&a.props.onDropdownFocus()})),St(Et(a),\"getDateInView\",(function(){var e=a.props,t=e.preSelection,r=e.selected,n=e.openToDate,o=kr(a.props),s=wr(a.props),i=At(),p=n||r||t;return p||(o&<.default(i,o)?o:s&&pt.default(i,s)?s:i)})),St(Et(a),\"increaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:ke.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"decreaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:_e.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"handleDayClick\",(function(e,t,r){a.props.onSelect(e,t,r),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleDayMouseEnter\",(function(e){a.setState({selectingDate:e}),a.props.onDayMouseEnter&&a.props.onDayMouseEnter(e)})),St(Et(a),\"handleMonthMouseLeave\",(function(){a.setState({selectingDate:null}),a.props.onMonthMouseLeave&&a.props.onMonthMouseLeave()})),St(Et(a),\"handleYearMouseEnter\",(function(e,t){a.setState({selectingDate:Qe.default(At(),t)}),a.props.onYearMouseEnter&&a.props.onYearMouseEnter(e,t)})),St(Et(a),\"handleYearMouseLeave\",(function(e,t){a.props.onYearMouseLeave&&a.props.onYearMouseLeave(e,t)})),St(Et(a),\"handleYearChange\",(function(e){a.props.onYearChange&&(a.props.onYearChange(e),a.setState({isRenderAriaLiveMessage:!0})),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleMonthChange\",(function(e){a.handleCustomMonthChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleCustomMonthChange\",(function(e){a.props.onMonthChange&&(a.props.onMonthChange(e),a.setState({isRenderAriaLiveMessage:!0}))})),St(Et(a),\"handleMonthYearChange\",(function(e){a.handleYearChange(e),a.handleMonthChange(e)})),St(Et(a),\"changeYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(r,e)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"changeMonth\",(function(e){a.setState((function(t){var r=t.date;return{date:Ke.default(r,e)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"changeMonthYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(Ke.default(r,Te.default(e)),Le.default(e))}}),(function(){return a.handleMonthYearChange(a.state.date)}))})),St(Et(a),\"header\",(function(){var e=Qt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.state.date,a.props.locale,a.props.calendarStartDay),t=[];return a.props.showWeekNumbers&&t.push(de.default.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},a.props.weekLabel||\"#\")),t.concat([0,1,2,3,4,5,6].map((function(t){var r=De.default(e,t),n=a.formatWeekday(r,a.props.locale),o=a.props.weekDayClassName?a.props.weekDayClassName(r):void 0;return de.default.createElement(\"div\",{key:t,className:ue.default(\"react-datepicker__day-name\",o)},n)})))})),St(Et(a),\"formatWeekday\",(function(e,t){return a.props.formatWeekDay?function(e,t,r){return t(qt(e,\"EEEE\",r))}(e,a.props.formatWeekDay,t):a.props.useWeekdaysShort?function(e,t){return qt(e,\"EEE\",t)}(e,t):function(e,t){return qt(e,\"EEEEEE\",t)}(e,t)})),St(Et(a),\"decreaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:Pe.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"clearSelectingDate\",(function(){a.setState({selectingDate:null})})),St(Et(a),\"renderPreviousButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=Dr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(jt(Pe.default(e,n)),n).endPeriod,s=r&&Le.default(r);return s&&s>o||!1}(a.state.date,a.props);break;default:e=yr(a.state.date,a.props)}if((a.props.forceShowMonthNavigation||a.props.showDisabledMonthNavigation||!e)&&!a.props.showTimeSelectOnly){var t=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],r=a.decreaseMonth;(a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker)&&(r=a.decreaseYear),e&&a.props.showDisabledMonthNavigation&&(t.push(\"react-datepicker__navigation--previous--disabled\"),r=null);var n=a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker,o=a.props,s=o.previousMonthButtonLabel,i=o.previousYearButtonLabel,p=a.props,l=p.previousMonthAriaLabel,c=void 0===l?\"string\"==typeof s?s:\"Previous Month\":l,d=p.previousYearAriaLabel,u=void 0===d?\"string\"==typeof i?i:\"Previous Year\":d;return de.default.createElement(\"button\",{type:\"button\",className:t.join(\" \"),onClick:r,onKeyDown:a.props.handleOnKeyDown,\"aria-label\":n?u:c},de.default.createElement(\"span\",{className:[\"react-datepicker__navigation-icon\",\"react-datepicker__navigation-icon--previous\"].join(\" \")},n?a.props.previousYearButtonLabel:a.props.previousMonthButtonLabel))}}})),St(Et(a),\"increaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:be.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"renderNextButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=gr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(be.default(e,n),n).startPeriod,s=r&&Le.default(r);return s&&s0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=[\"react-datepicker__current-month\"];return a.props.showYearDropdown&&t.push(\"react-datepicker__current-month--hasYearDropdown\"),a.props.showMonthDropdown&&t.push(\"react-datepicker__current-month--hasMonthDropdown\"),a.props.showMonthYearDropdown&&t.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),de.default.createElement(\"div\",{className:t.join(\" \")},qt(e,a.props.dateFormat,a.props.locale))})),St(Et(a),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showYearDropdown&&!e)return de.default.createElement(Yr,{adjustDateOnChange:a.props.adjustDateOnChange,date:a.state.date,onSelect:a.props.onSelect,setOpen:a.props.setOpen,dropdownMode:a.props.dropdownMode,onChange:a.changeYear,minDate:a.props.minDate,maxDate:a.props.maxDate,year:Le.default(a.state.date),scrollableYearDropdown:a.props.scrollableYearDropdown,yearDropdownItemNumber:a.props.yearDropdownItemNumber})})),St(Et(a),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthDropdown&&!e)return de.default.createElement(Tr,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,onChange:a.changeMonth,month:Te.default(a.state.date),useShortMonthInDropdown:a.props.useShortMonthInDropdown})})),St(Et(a),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthYearDropdown&&!e)return de.default.createElement(Ar,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,dateFormat:a.props.dateFormat,onChange:a.changeMonthYear,minDate:a.props.minDate,maxDate:a.props.maxDate,date:a.state.date,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown})})),St(Et(a),\"handleTodayButtonClick\",(function(e){a.props.onSelect(Ut(),e),a.props.setPreSelection&&a.props.setPreSelection(Ut())})),St(Et(a),\"renderTodayButton\",(function(){if(a.props.todayButton&&!a.props.showTimeSelectOnly)return de.default.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return a.handleTodayButtonClick(e)}},a.props.todayButton)})),St(Et(a),\"renderDefaultHeader\",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement(\"div\",{className:\"react-datepicker__header \".concat(a.props.showTimeSelect?\"react-datepicker__header--has-time-select\":\"\")},a.renderCurrentMonth(t),de.default.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(a.props.dropdownMode),onFocus:a.handleDropdownFocus},a.renderMonthDropdown(0!==r),a.renderMonthYearDropdown(0!==r),a.renderYearDropdown(0!==r)),de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(a.props.showTimeSelect&&!a.state.monthContainer||a.props.showTimeSelectOnly)return null;var n=yr(a.state.date,a.props),o=vr(a.state.date,a.props),s=Dr(a.state.date,a.props),i=gr(a.state.date,a.props),p=!a.props.showMonthYearPicker&&!a.props.showQuarterYearPicker&&!a.props.showYearPicker;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:a.props.onDropdownFocus},a.props.renderCustomHeader(Dt(Dt({},a.state),{},{customHeaderCount:r,monthDate:t,changeMonth:a.changeMonth,changeYear:a.changeYear,decreaseMonth:a.decreaseMonth,increaseMonth:a.increaseMonth,decreaseYear:a.decreaseYear,increaseYear:a.increaseYear,prevMonthButtonDisabled:n,nextMonthButtonDisabled:o,prevYearButtonDisabled:s,nextYearButtonDisabled:i})),p&&de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderYearHeader\",(function(){var e=a.state.date,t=a.props,r=t.showYearPicker,n=Mr(e,t.yearItemNumber),o=n.startPeriod,s=n.endPeriod;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},r?\"\".concat(o,\" - \").concat(s):Le.default(e))})),St(Et(a),\"renderHeader\",(function(e){switch(!0){case void 0!==a.props.renderCustomHeader:return a.renderCustomHeader(e);case a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker:return a.renderYearHeader(e);default:return a.renderDefaultHeader(e)}})),St(Et(a),\"renderMonths\",(function(){var e;if(!a.props.showTimeSelectOnly&&!a.props.showYearPicker){for(var t=[],r=a.props.showPreviousMonths?a.props.monthsShown-1:0,n=_e.default(a.state.date,r),o=null!==(e=a.props.monthSelectedIn)&&void 0!==e?e:r,s=0;s0;t.push(de.default.createElement(\"div\",{key:l,ref:function(e){a.monthContainer=e},className:\"react-datepicker__month-container\"},a.renderHeader({monthDate:p,i:s}),de.default.createElement(Ur,{chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,ariaLabelPrefix:a.props.monthAriaLabelPrefix,onChange:a.changeMonthYear,day:p,dayClassName:a.props.dayClassName,calendarStartDay:a.props.calendarStartDay,monthClassName:a.props.monthClassName,onDayClick:a.handleDayClick,handleOnKeyDown:a.props.handleOnDayKeyDown,onDayMouseEnter:a.handleDayMouseEnter,onMouseLeave:a.handleMonthMouseLeave,onWeekSelect:a.props.onWeekSelect,orderInDisplay:s,formatWeekNumber:a.props.formatWeekNumber,locale:a.props.locale,minDate:a.props.minDate,maxDate:a.props.maxDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,highlightDates:a.props.highlightDates,holidays:a.props.holidays,selectingDate:a.state.selectingDate,includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,inline:a.props.inline,shouldFocusDayInline:a.props.shouldFocusDayInline,fixedHeight:a.props.fixedHeight,filterDate:a.props.filterDate,preSelection:a.props.preSelection,setPreSelection:a.props.setPreSelection,selected:a.props.selected,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showWeekNumbers:a.props.showWeekNumbers,startDate:a.props.startDate,endDate:a.props.endDate,peekNextMonth:a.props.peekNextMonth,setOpen:a.props.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,isInputFocused:a.props.isInputFocused,containerRef:a.containerRef,monthShowsDuplicateDaysEnd:c,monthShowsDuplicateDaysStart:d})))}return t}})),St(Et(a),\"renderYears\",(function(){if(!a.props.showTimeSelectOnly)return a.props.showYearPicker?de.default.createElement(\"div\",{className:\"react-datepicker__year--container\"},a.renderHeader(),de.default.createElement($r,Ct({onDayClick:a.handleDayClick,selectingDate:a.state.selectingDate,clearSelectingDate:a.clearSelectingDate,date:a.state.date},a.props,{onYearMouseEnter:a.handleYearMouseEnter,onYearMouseLeave:a.handleYearMouseLeave}))):void 0})),St(Et(a),\"renderTimeSection\",(function(){if(a.props.showTimeSelect&&(a.state.monthContainer||a.props.showTimeSelectOnly))return de.default.createElement(zr,{selected:a.props.selected,openToDate:a.props.openToDate,onChange:a.props.onTimeChange,timeClassName:a.props.timeClassName,format:a.props.timeFormat,includeTimes:a.props.includeTimes,intervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,todayButton:a.props.todayButton,showMonthDropdown:a.props.showMonthDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,monthRef:a.state.monthContainer,injectTimes:a.props.injectTimes,locale:a.props.locale,handleOnKeyDown:a.props.handleOnKeyDown,showTimeSelectOnly:a.props.showTimeSelectOnly})})),St(Et(a),\"renderInputTimeSection\",(function(){var e=new Date(a.props.selected),t=Wt(e)&&Boolean(a.props.selected)?\"\".concat(_r(e.getHours()),\":\").concat(_r(e.getMinutes())):\"\";if(a.props.showTimeInput)return de.default.createElement(Gr,{date:e,timeString:t,timeInputLabel:a.props.timeInputLabel,onChange:a.props.onTimeChange,customTimeInput:a.props.customTimeInput})})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=Mr(a.state.date,a.props.yearItemNumber),r=t.startPeriod,n=t.endPeriod;return e=a.props.showYearPicker?\"\".concat(r,\" - \").concat(n):a.props.showMonthYearPicker||a.props.showQuarterYearPicker?Le.default(a.state.date):\"\".concat(rr(Te.default(a.state.date),a.props.locale),\" \").concat(Le.default(a.state.date)),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},a.state.isRenderAriaLiveMessage&&e)})),St(Et(a),\"renderChildren\",(function(){if(a.props.children)return de.default.createElement(\"div\",{className:\"react-datepicker__children-container\"},a.props.children)})),a.containerRef=de.default.createRef(),a.state={date:a.getDateInView(),selectingDate:null,monthContainer:null,isRenderAriaLiveMessage:!1},a}return bt(r,[{key:\"componentDidMount\",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:\"componentDidUpdate\",value:function(e){var t=this;if(!this.props.preSelection||Jt(this.props.preSelection,e.preSelection)&&this.props.monthSelectedIn===e.monthSelectedIn)this.props.openToDate&&!Jt(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate});else{var r=!$t(this.state.date,this.props.preSelection);this.setState({date:this.props.preSelection},(function(){return r&&t.handleCustomMonthChange(t.state.date)}))}}},{key:\"render\",value:function(){var e=this.props.container||Jr;return de.default.createElement(\"div\",{style:{display:\"contents\"},ref:this.containerRef},de.default.createElement(e,{className:ue.default(\"react-datepicker\",this.props.className,{\"react-datepicker--time-only\":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderAriaLiveRegion(),this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.renderChildren()))}}],[{key:\"defaultProps\",get:function(){return{onDropdownFocus:function(){},monthsShown:1,forceShowMonthNavigation:!1,timeCaption:\"Time\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",customTimeInput:null,yearItemNumber:Lt}}}]),r}(de.default.Component),ea=function(e){var t=e.icon,r=e.className,a=void 0===r?\"\":r,n=e.onClick,o=\"react-datepicker__calendar-icon\";return de.default.isValidElement(t)?de.default.cloneElement(t,{className:\"\".concat(t.props.className||\"\",\" \").concat(o,\" \").concat(a),onClick:function(e){\"function\"==typeof t.props.onClick&&t.props.onClick(e),\"function\"==typeof n&&n(e)}}):\"string\"==typeof t?de.default.createElement(\"i\",{className:\"\".concat(o,\" \").concat(t,\" \").concat(a),\"aria-hidden\":\"true\",onClick:n}):de.default.createElement(\"svg\",{className:\"\".concat(o,\" \").concat(a),xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 448 512\",onClick:n},de.default.createElement(\"path\",{d:\"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"}))},ta=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),(a=t.call(this,e)).el=document.createElement(\"div\"),a}return bt(r,[{key:\"componentDidMount\",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement(\"div\"),this.portalRoot.setAttribute(\"id\",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:\"componentWillUnmount\",value:function(){this.portalRoot.removeChild(this.el)}},{key:\"render\",value:function(){return mt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),ra=function(e){return!e.disabled&&-1!==e.tabIndex},aa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getTabChildren\",(function(){return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"),1,-1).filter(ra)})),St(Et(a),\"handleFocusStart\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[e.length-1].focus()})),St(Et(a),\"handleFocusEnd\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[0].focus()})),a.tabLoopRef=de.default.createRef(),a}return bt(r,[{key:\"render\",value:function(){return this.props.enableTabLoop?de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),na=function(e){_t(r,e);var t=Nt(r);function r(){return kt(this,r),t.apply(this,arguments)}return bt(r,[{key:\"render\",value:function(){var e,t=this.props,r=t.className,a=t.wrapperClassName,n=t.hidePopper,o=t.popperComponent,s=t.popperModifiers,i=t.popperPlacement,p=t.popperProps,l=t.targetComponent,c=t.enableTabLoop,d=t.popperOnKeyDown,u=t.portalId,f=t.portalHost;if(!n){var h=ue.default(\"react-datepicker-popper\",r);e=de.default.createElement(pe.Popper,Ct({modifiers:s,placement:i},p),(function(e){var t=e.ref,r=e.style,a=e.placement,n=e.arrowProps;return de.default.createElement(aa,{enableTabLoop:c},de.default.createElement(\"div\",{ref:t,style:r,className:h,\"data-placement\":a,onKeyDown:d},de.default.cloneElement(o,{arrowProps:n})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),u&&!n&&(e=de.default.createElement(ta,{portalId:u,portalHost:f},e));var m=ue.default(\"react-datepicker-wrapper\",a);return de.default.createElement(pe.Manager,{className:\"react-datepicker-manager\"},de.default.createElement(pe.Reference,null,(function(e){var t=e.ref;return de.default.createElement(\"div\",{ref:t,className:m},l)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:\"bottom-start\"}}}]),r}(de.default.Component),oa=\"react-datepicker-ignore-onclickoutside\",sa=ht.default(Zr);var ia=\"Date input not valid.\",pa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getPreSelection\",(function(){return a.props.openToDate?a.props.openToDate:a.props.selectsEnd&&a.props.startDate?a.props.startDate:a.props.selectsStart&&a.props.endDate?a.props.endDate:At()})),St(Et(a),\"modifyHolidays\",(function(){var e;return null===(e=a.props.holidays)||void 0===e?void 0:e.reduce((function(e,t){var r=new Date(t.date);return he.default(r)?[].concat(xt(e),[Dt(Dt({},t),{},{date:r})]):e}),[])})),St(Et(a),\"calcInitialState\",(function(){var e,t=a.getPreSelection(),r=kr(a.props),n=wr(a.props),o=r&<.default(t,$e.default(r))?r:n&&pt.default(t,et.default(n))?n:t;return{open:a.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=a.props.selectsRange?a.props.startDate:a.props.selected)&&void 0!==e?e:o,highlightDates:br(a.props.highlightDates),focused:!1,shouldFocusDayInline:!1,isRenderAriaLiveMessage:!1}})),St(Et(a),\"clearPreventFocusTimeout\",(function(){a.preventFocusTimeout&&clearTimeout(a.preventFocusTimeout)})),St(Et(a),\"setFocus\",(function(){a.input&&a.input.focus&&a.input.focus({preventScroll:!0})})),St(Et(a),\"setBlur\",(function(){a.input&&a.input.blur&&a.input.blur(),a.cancelFocusInput()})),St(Et(a),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.setState({open:e,preSelection:e&&a.state.open?a.state.preSelection:a.calcInitialState().preSelection,lastPreSelectChange:ca},(function(){e||a.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&a.setBlur(),a.setState({inputValue:null})}))}))})),St(Et(a),\"inputOk\",(function(){return fe.default(a.state.preSelection)})),St(Et(a),\"isCalendarOpen\",(function(){return void 0===a.props.open?a.state.open&&!a.props.disabled&&!a.props.readOnly:a.props.open})),St(Et(a),\"handleFocus\",(function(e){a.state.preventFocus||(a.props.onFocus(e),a.props.preventOpenOnFocus||a.props.readOnly||a.setOpen(!0)),a.setState({focused:!0})})),St(Et(a),\"sendFocusBackToInput\",(function(){a.preventFocusTimeout&&a.clearPreventFocusTimeout(),a.setState({preventFocus:!0},(function(){a.preventFocusTimeout=setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))}))})),St(Et(a),\"cancelFocusInput\",(function(){clearTimeout(a.inputFocusTimeout),a.inputFocusTimeout=null})),St(Et(a),\"deferFocusInput\",(function(){a.cancelFocusInput(),a.inputFocusTimeout=setTimeout((function(){return a.setFocus()}),1)})),St(Et(a),\"handleDropdownFocus\",(function(){a.cancelFocusInput()})),St(Et(a),\"handleBlur\",(function(e){(!a.state.open||a.props.withPortal||a.props.showTimeInput)&&a.props.onBlur(e),a.setState({focused:!1})})),St(Et(a),\"handleCalendarClickOutside\",(function(e){a.props.inline||a.setOpen(!1),a.props.onClickOutside(e),a.props.withPortal&&e.preventDefault()})),St(Et(a),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&(c=ut.default(o,s.slice(0,o.length),new Date)),Wt(c)||(c=new Date(o))),Wt(c)&&u?c:null));a.props.showTimeSelectOnly&&a.props.selected&&f&&!Jt(f,a.props.selected)&&(f=yt.default(a.props.selected,{hours:xe.default(f),minutes:Ne.default(f),seconds:Ee.default(f)})),!f&&n.target.value||(a.props.showWeekPicker&&(f=Qt(f,a.props.locale,a.props.calendarStartDay)),a.setSelected(f,n,!0))}})),St(Et(a),\"handleSelect\",(function(e,t,r){if(a.props.shouldCloseOnSelect&&!a.props.showTimeSelect&&a.sendFocusBackToInput(),a.props.onChangeRaw&&a.props.onChangeRaw(t),a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay)),a.setSelected(e,t,!1,r),a.props.showDateSelect&&a.setState({isRenderAriaLiveMessage:!0}),!a.props.shouldCloseOnSelect||a.props.showTimeSelect)a.setPreSelection(e);else if(!a.props.inline){a.props.selectsRange||a.setOpen(!1);var n=a.props,o=n.startDate,s=n.endDate;!o||s||lt.default(e,o)||a.setOpen(!1)}})),St(Et(a),\"setSelected\",(function(e,t,r,n){var o=e;if(a.props.showYearPicker){if(null!==o&&cr(Le.default(o),a.props))return}else if(a.props.showMonthYearPicker){if(null!==o&&sr(o,a.props))return}else if(null!==o&&nr(o,a.props))return;var s=a.props,i=s.onChange,p=s.selectsRange,l=s.startDate,c=s.endDate;if(!Xt(a.props.selected,o)||a.props.allowSameDay||p)if(null!==o&&(!a.props.selected||r&&(a.props.showTimeSelect||a.props.showTimeSelectOnly||a.props.showTimeInput)||(o=Bt(o,{hour:xe.default(a.props.selected),minute:Ne.default(a.props.selected),second:Ee.default(a.props.selected)})),a.props.inline||a.setState({preSelection:o}),a.props.focusSelectedMonth||a.setState({monthSelectedIn:n})),p){var d=l&&!c,u=l&&c;!l&&!c?i([o,null],t):d&&(lt.default(o,l)?i([o,null],t):i([l,o],t)),u&&i([o,null],t)}else i(o,t);r||(a.props.onSelect(o,t),a.setState({inputValue:null}))})),St(Et(a),\"setPreSelection\",(function(e){var t=void 0!==a.props.minDate,r=void 0!==a.props.maxDate,n=!0;if(e){a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay));var o=$e.default(e);if(t&&r)n=Zt(e,a.props.minDate,a.props.maxDate);else if(t){var s=$e.default(a.props.minDate);n=pt.default(e,s)||Xt(o,s)}else if(r){var i=et.default(a.props.maxDate);n=lt.default(e,i)||Xt(o,i)}}n&&a.setState({preSelection:e})})),St(Et(a),\"toggleCalendar\",(function(){a.setOpen(!a.state.open)})),St(Et(a),\"handleTimeChange\",(function(e){var t=a.props.selected?a.props.selected:a.getPreSelection(),r=a.props.selected?e:Bt(t,{hour:xe.default(e),minute:Ne.default(e)});a.setState({preSelection:r}),a.props.onChange(r),a.props.shouldCloseOnSelect&&(a.sendFocusBackToInput(),a.setOpen(!1)),a.props.showTimeInput&&a.setOpen(!0),(a.props.showTimeSelectOnly||a.props.showTimeSelect)&&a.setState({isRenderAriaLiveMessage:!0}),a.setState({inputValue:null})})),St(Et(a),\"onInputClick\",(function(){a.props.disabled||a.props.readOnly||a.setOpen(!0),a.props.onInputClick()})),St(Et(a),\"onInputKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key;if(a.state.open||a.props.inline||a.props.preventOpenOnFocus){if(a.state.open){if(\"ArrowDown\"===t||\"ArrowUp\"===t){e.preventDefault();var r=a.props.showWeekPicker&&a.props.showWeekNumbers?'.react-datepicker__week-number[tabindex=\"0\"]':'.react-datepicker__day[tabindex=\"0\"]',n=a.calendar.componentNode&&a.calendar.componentNode.querySelector(r);return void(n&&n.focus({preventScroll:!0}))}var o=At(a.state.preSelection);\"Enter\"===t?(e.preventDefault(),a.inputOk()&&a.state.lastPreSelectChange===ca?(a.handleSelect(o,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(o)):a.setOpen(!1)):\"Escape\"===t?(e.preventDefault(),a.sendFocusBackToInput(),a.setOpen(!1)):\"Tab\"===t&&a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia})}}else\"ArrowDown\"!==t&&\"ArrowUp\"!==t&&\"Enter\"!==t||a.onInputClick()})),St(Et(a),\"onPortalKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.setState({preventFocus:!0},(function(){a.setOpen(!1),setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))})))})),St(Et(a),\"onDayKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key,r=At(a.state.preSelection);if(\"Enter\"===t)e.preventDefault(),a.handleSelect(r,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(r);else if(\"Escape\"===t)e.preventDefault(),a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia});else if(!a.props.disabledKeyboardNavigation){var n;switch(t){case\"ArrowLeft\":n=a.props.showWeekPicker?Ce.default(r,1):Se.default(r,1);break;case\"ArrowRight\":n=a.props.showWeekPicker?ge.default(r,1):De.default(r,1);break;case\"ArrowUp\":n=Ce.default(r,1);break;case\"ArrowDown\":n=ge.default(r,1);break;case\"PageUp\":n=_e.default(r,1);break;case\"PageDown\":n=ke.default(r,1);break;case\"Home\":n=Pe.default(r,1);break;case\"End\":n=be.default(r,1);break;default:n=null}if(!n)return void(a.props.onInputError&&a.props.onInputError({code:1,msg:ia}));if(e.preventDefault(),a.setState({lastPreSelectChange:ca}),a.props.adjustDateOnChange&&a.setSelected(n),a.setPreSelection(n),a.props.inline){var o=Te.default(r),s=Te.default(n),i=Le.default(r),p=Le.default(n);o!==s||i!==p?a.setState({shouldFocusDayInline:!0}):a.setState({shouldFocusDayInline:!1})}}})),St(Et(a),\"onPopperKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.sendFocusBackToInput())})),St(Et(a),\"onClearClick\",(function(e){e&&e.preventDefault&&e.preventDefault(),a.sendFocusBackToInput(),a.props.selectsRange?a.props.onChange([null,null],e):a.props.onChange(null,e),a.setState({inputValue:null})})),St(Et(a),\"clear\",(function(){a.onClearClick()})),St(Et(a),\"onScroll\",(function(e){\"boolean\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll?e.target!==document&&e.target!==document.documentElement&&e.target!==document.body||a.setOpen(!1):\"function\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll(e)&&a.setOpen(!1)})),St(Et(a),\"renderCalendar\",(function(){return a.props.inline||a.isCalendarOpen()?de.default.createElement(sa,{ref:function(e){a.calendar=e},locale:a.props.locale,calendarStartDay:a.props.calendarStartDay,chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,monthAriaLabelPrefix:a.props.monthAriaLabelPrefix,adjustDateOnChange:a.props.adjustDateOnChange,setOpen:a.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,dateFormat:a.props.dateFormatCalendar,useWeekdaysShort:a.props.useWeekdaysShort,formatWeekDay:a.props.formatWeekDay,dropdownMode:a.props.dropdownMode,selected:a.props.selected,preSelection:a.state.preSelection,onSelect:a.handleSelect,onWeekSelect:a.props.onWeekSelect,openToDate:a.props.openToDate,minDate:a.props.minDate,maxDate:a.props.maxDate,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,startDate:a.props.startDate,endDate:a.props.endDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,filterDate:a.props.filterDate,onClickOutside:a.handleCalendarClickOutside,formatWeekNumber:a.props.formatWeekNumber,highlightDates:a.state.highlightDates,holidays:Sr(a.modifyHolidays()),includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,includeTimes:a.props.includeTimes,injectTimes:a.props.injectTimes,inline:a.props.inline,shouldFocusDayInline:a.state.shouldFocusDayInline,peekNextMonth:a.props.peekNextMonth,showMonthDropdown:a.props.showMonthDropdown,showPreviousMonths:a.props.showPreviousMonths,useShortMonthInDropdown:a.props.useShortMonthInDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showWeekNumbers:a.props.showWeekNumbers,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,forceShowMonthNavigation:a.props.forceShowMonthNavigation,showDisabledMonthNavigation:a.props.showDisabledMonthNavigation,scrollableYearDropdown:a.props.scrollableYearDropdown,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown,todayButton:a.props.todayButton,weekLabel:a.props.weekLabel,outsideClickIgnoreClass:oa,fixedHeight:a.props.fixedHeight,monthsShown:a.props.monthsShown,monthSelectedIn:a.state.monthSelectedIn,onDropdownFocus:a.handleDropdownFocus,onMonthChange:a.props.onMonthChange,onYearChange:a.props.onYearChange,dayClassName:a.props.dayClassName,weekDayClassName:a.props.weekDayClassName,monthClassName:a.props.monthClassName,timeClassName:a.props.timeClassName,showDateSelect:a.props.showDateSelect,showTimeSelect:a.props.showTimeSelect,showTimeSelectOnly:a.props.showTimeSelectOnly,onTimeChange:a.handleTimeChange,timeFormat:a.props.timeFormat,timeIntervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,className:a.props.calendarClassName,container:a.props.calendarContainer,yearItemNumber:a.props.yearItemNumber,yearDropdownItemNumber:a.props.yearDropdownItemNumber,previousMonthAriaLabel:a.props.previousMonthAriaLabel,previousMonthButtonLabel:a.props.previousMonthButtonLabel,nextMonthAriaLabel:a.props.nextMonthAriaLabel,nextMonthButtonLabel:a.props.nextMonthButtonLabel,previousYearAriaLabel:a.props.previousYearAriaLabel,previousYearButtonLabel:a.props.previousYearButtonLabel,nextYearAriaLabel:a.props.nextYearAriaLabel,nextYearButtonLabel:a.props.nextYearButtonLabel,timeInputLabel:a.props.timeInputLabel,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,renderCustomHeader:a.props.renderCustomHeader,popperProps:a.props.popperProps,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,onDayMouseEnter:a.props.onDayMouseEnter,onMonthMouseLeave:a.props.onMonthMouseLeave,onYearMouseEnter:a.props.onYearMouseEnter,onYearMouseLeave:a.props.onYearMouseLeave,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showTimeInput:a.props.showTimeInput,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,showPopperArrow:a.props.showPopperArrow,excludeScrollbar:a.props.excludeScrollbar,handleOnKeyDown:a.props.onKeyDown,handleOnDayKeyDown:a.onDayKeyDown,isInputFocused:a.state.focused,customTimeInput:a.props.customTimeInput,setPreSelection:a.setPreSelection},a.props.children):null})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=a.props,r=t.dateFormat,n=t.locale,o=a.props.showTimeInput||a.props.showTimeSelect?\"PPPPp\":\"PPPP\";return e=a.props.selectsRange?\"Selected start date: \".concat(Kt(a.props.startDate,{dateFormat:o,locale:n}),\". \").concat(a.props.endDate?\"End date: \"+Kt(a.props.endDate,{dateFormat:o,locale:n}):\"\"):a.props.showTimeSelectOnly?\"Selected time: \".concat(Kt(a.props.selected,{dateFormat:r,locale:n})):a.props.showYearPicker?\"Selected year: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy\",locale:n})):a.props.showMonthYearPicker?\"Selected month: \".concat(Kt(a.props.selected,{dateFormat:\"MMMM yyyy\",locale:n})):a.props.showQuarterYearPicker?\"Selected quarter: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy, QQQ\",locale:n})):\"Selected date: \".concat(Kt(a.props.selected,{dateFormat:o,locale:n})),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},e)})),St(Et(a),\"renderDateInput\",(function(){var e,t=ue.default(a.props.className,St({},oa,a.state.open)),r=a.props.customInput||de.default.createElement(\"input\",{type:\"text\"}),n=a.props.customInputRef||\"ref\",o=\"string\"==typeof a.props.value?a.props.value:\"string\"==typeof a.state.inputValue?a.state.inputValue:a.props.selectsRange?function(e,t,r){if(!e)return\"\";var a=Kt(e,r),n=t?Kt(t,r):\"\";return\"\".concat(a,\" - \").concat(n)}(a.props.startDate,a.props.endDate,a.props):Kt(a.props.selected,a.props);return de.default.cloneElement(r,(St(St(St(St(St(St(St(St(St(St(e={},n,(function(e){a.input=e})),\"value\",o),\"onBlur\",a.handleBlur),\"onChange\",a.handleChange),\"onClick\",a.onInputClick),\"onFocus\",a.handleFocus),\"onKeyDown\",a.onInputKeyDown),\"id\",a.props.id),\"name\",a.props.name),\"form\",a.props.form),St(St(St(St(St(St(St(St(St(St(e,\"autoFocus\",a.props.autoFocus),\"placeholder\",a.props.placeholderText),\"disabled\",a.props.disabled),\"autoComplete\",a.props.autoComplete),\"className\",ue.default(r.props.className,t)),\"title\",a.props.title),\"readOnly\",a.props.readOnly),\"required\",a.props.required),\"tabIndex\",a.props.tabIndex),\"aria-describedby\",a.props.ariaDescribedBy),St(St(St(e,\"aria-invalid\",a.props.ariaInvalid),\"aria-labelledby\",a.props.ariaLabelledBy),\"aria-required\",a.props.ariaRequired)))})),St(Et(a),\"renderClearButton\",(function(){var e=a.props,t=e.isClearable,r=e.disabled,n=e.selected,o=e.startDate,s=e.endDate,i=e.clearButtonTitle,p=e.clearButtonClassName,l=void 0===p?\"\":p,c=e.ariaLabelClose,d=void 0===c?\"Close\":c;return!t||null==n&&null==o&&null==s?null:de.default.createElement(\"button\",{type:\"button\",className:ue.default(\"react-datepicker__close-icon\",l,{\"react-datepicker__close-icon--disabled\":r}),disabled:r,\"aria-label\":d,onClick:a.onClearClick,title:i,tabIndex:-1})})),a.state=a.calcInitialState(),a.preventFocusTimeout=null,a}return bt(r,[{key:\"componentDidMount\",value:function(){window.addEventListener(\"scroll\",this.onScroll,!0)}},{key:\"componentDidUpdate\",value:function(e,t){var r,a;e.inline&&(r=e.selected,a=this.props.selected,r&&a?Te.default(r)!==Te.default(a)||Le.default(r)!==Le.default(a):r!==a)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:br(this.props.highlightDates)}),t.focused||Xt(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:\"componentWillUnmount\",value:function(){this.clearPreventFocusTimeout(),window.removeEventListener(\"scroll\",this.onScroll,!0)}},{key:\"renderInputContainer\",value:function(){var e=this.props,t=e.showIcon,r=e.icon,a=e.calendarIconClassname,n=e.toggleCalendarOnIconClick,o=this.state.open;return de.default.createElement(\"div\",{className:\"react-datepicker__input-container\".concat(t?\" react-datepicker__view-calendar-icon\":\"\")},t&&de.default.createElement(ea,Ct({icon:r,className:\"\".concat(a,\" \").concat(o&&\"react-datepicker-ignore-onclickoutside\")},n?{onClick:this.toggleCalendar}:null)),this.state.isRenderAriaLiveMessage&&this.renderAriaLiveRegion(),this.renderDateInput(),this.renderClearButton())}},{key:\"render\",value:function(){var e=this.renderCalendar();if(this.props.inline)return e;if(this.props.withPortal){var t=this.state.open?de.default.createElement(aa,{enableTabLoop:this.props.enableTabLoop},de.default.createElement(\"div\",{className:\"react-datepicker__portal\",tabIndex:-1,onKeyDown:this.onPortalKeyDown},e)):null;return this.state.open&&this.props.portalId&&(t=de.default.createElement(ta,{portalId:this.props.portalId,portalHost:this.props.portalHost},t)),de.default.createElement(\"div\",null,this.renderInputContainer(),t)}return de.default.createElement(na,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),portalId:this.props.portalId,portalHost:this.props.portalHost,popperModifiers:this.props.popperModifiers,targetComponent:this.renderInputContainer(),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}],[{key:\"defaultProps\",get:function(){return{allowSameDay:!1,dateFormat:\"MM/dd/yyyy\",dateFormatCalendar:\"LLLL yyyy\",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:\"scroll\",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,showWeekPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:\"Time\",previousMonthAriaLabel:\"Previous Month\",previousMonthButtonLabel:\"Previous Month\",nextMonthAriaLabel:\"Next Month\",nextMonthButtonLabel:\"Next Month\",previousYearAriaLabel:\"Previous Year\",previousYearButtonLabel:\"Previous Year\",nextYearAriaLabel:\"Next Year\",nextYearButtonLabel:\"Next Year\",timeInputLabel:\"Time\",enableTabLoop:!0,yearItemNumber:Lt,focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0,toggleCalendarOnIconClick:!1}}}]),r}(de.default.Component),la=\"input\",ca=\"navigate\";e.CalendarContainer=Jr,e.default=pa,e.getDefaultLocale=er,e.registerLocale=function(e,t){var r=\"undefined\"!=typeof window?window:globalThis;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){(\"undefined\"!=typeof window?window:globalThis).__localeId__=e},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime\n//\nclass Draggable extends React.Component /*:: */{\n // React 16.3+\n // Arity (props, state)\n static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial*/{\n let {\n position\n } /*: DraggableProps*/ = _ref /*: DraggableProps*/;\n let {\n prevPropsPosition\n } /*: DraggableState*/ = _ref2 /*: DraggableState*/;\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position,\n prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: {\n ...position\n }\n };\n }\n return null;\n }\n constructor(props /*: DraggableProps*/) {\n super(props);\n _defineProperty(this, \"onDragStart\", (e, coreData) => {\n (0, _log.default)('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n this.setState({\n dragging: true,\n dragged: true\n });\n });\n _defineProperty(this, \"onDrag\", (e, coreData) => {\n if (!this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n const uiData = (0, _positionFns.createDraggableData)(this, coreData);\n const newState = {\n x: uiData.x,\n y: uiData.y,\n slackX: 0,\n slackY: 0\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {\n x,\n y\n } = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n this.setState(newState);\n });\n _defineProperty(this, \"onDragStop\", (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n const newState /*: Partial*/ = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {\n x,\n y\n } = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n this.setState(newState);\n });\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: {\n ...props.position\n },\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n }\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n componentWillUnmount() {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n var _this$props$nodeRef$c, _this$props;\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 || (_this$props = _this$props.nodeRef) === null || _this$props === void 0 ? void 0 : _this$props.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n render() /*: ReactElement*/{\n const {\n axis,\n bounds,\n children,\n defaultPosition,\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged,\n position,\n positionOffset,\n scale,\n ...draggableCoreProps\n } = this.props;\n let style = {};\n let svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(position);\n const draggable = !controlled || this.state.dragging;\n const validPosition = position || defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n }\n\n // Mark with class while dragging\n const className = (0, _clsx.default)(children.props.className || '', defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: {\n ...children.props.style,\n ...style\n },\n transform: svgTransform\n }));\n }\n}\nexports.default = Draggable;\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n_defineProperty(Draggable, \"propTypes\", {\n // Accepts all props accepts.\n ..._DraggableCore.default.propTypes,\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(Draggable, \"defaultProps\", {\n ..._DraggableCore.default.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _domFns = require(\"./utils/domFns\");\nvar _positionFns = require(\"./utils/positionFns\");\nvar _shims = require(\"./utils/shims\");\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/\n/*:: import type {Element as ReactElement} from 'react';*/\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n/*:: export type ControlPosition = {x: number, y: number};*/\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nclass DraggableCore extends React.Component /*:: */{\n constructor() {\n super(...arguments);\n _defineProperty(this, \"dragging\", false);\n // Used while dragging to determine deltas.\n _defineProperty(this, \"lastX\", NaN);\n _defineProperty(this, \"lastY\", NaN);\n _defineProperty(this, \"touchIdentifier\", null);\n _defineProperty(this, \"mounted\", false);\n _defineProperty(this, \"handleDragStart\", e => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = this.findDOMNode();\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {\n ownerDocument\n } = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.handle, thisNode) || this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.cancel, thisNode)) {\n return;\n }\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n if (e.type === 'touchstart') e.preventDefault();\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n this.touchIdentifier = touchIdentifier;\n\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {\n x,\n y\n } = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n (0, _log.default)('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.dragging = true;\n this.lastX = x;\n this.lastY = y;\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);\n });\n _defineProperty(this, \"handleDrag\", e => {\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX,\n deltaY = y - this.lastY;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n this.lastX = x;\n this.lastY = y;\n });\n _defineProperty(this, \"handleDragStop\", e => {\n if (!this.dragging) return;\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX || 0;\n let deltaY = y - this.lastY || 0;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n\n // Call event handler\n const shouldContinue = this.props.onStop(e, coreEvent);\n if (shouldContinue === false || this.mounted === false) return false;\n const thisNode = this.findDOMNode();\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.dragging = false;\n this.lastX = NaN;\n this.lastY = NaN;\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n });\n _defineProperty(this, \"onMouseDown\", e => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onMouseUp\", e => {\n dragEventFor = eventsFor.mouse;\n return this.handleDragStop(e);\n });\n // Same as onMouseDown (start drag), but now consider this a touch device.\n _defineProperty(this, \"onTouchStart\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onTouchEnd\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStop(e);\n });\n }\n componentDidMount() {\n this.mounted = true;\n // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n const thisNode = this.findDOMNode();\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n componentWillUnmount() {\n this.mounted = false;\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = this.findDOMNode();\n if (thisNode) {\n const {\n ownerDocument\n } = thisNode;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n var _this$props, _this$props2;\n return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 || (_this$props2 = _this$props2.nodeRef) === null || _this$props2 === void 0 ? void 0 : _this$props2.current : _reactDom.default.findDOMNode(this);\n }\n render() /*: React.Element*/{\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n}\nexports.default = DraggableCore;\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n children: _propTypes.default.node.isRequired,\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys*/) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function () {},\n onDrag: function () {},\n onStop: function () {},\n onMouseDown: function () {},\n scale: 1\n});","\"use strict\";\n\nconst {\n default: Draggable,\n DraggableCore\n} = require('./Draggable');\n\n// Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addClassName = addClassName;\nexports.addEvent = addEvent;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.getTranslation = getTranslation;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.removeClassName = removeClassName;\nexports.removeEvent = removeEvent;\nexports.removeUserSelectStyles = removeUserSelectStyles;\nvar _shims = require(\"./shims\");\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n/*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/\nlet matchesSelectorFunc = '';\nfunction matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nfunction matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n // $FlowIgnore[incompatible-type]\n node = node.parentNode;\n } while (node);\n return false;\n}\nfunction addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\nfunction removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\nfunction outerHeight(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\nfunction outerWidth(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node /*: HTMLElement*/) /*: number*/{\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\nfunction innerWidth(node /*: HTMLElement*/) /*: number*/{\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n// Get from offsetParent\nfunction offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x,\n y\n };\n}\nfunction createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {\n [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation\n };\n}\nfunction createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nfunction getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{\n let {\n x,\n y\n } /*: ControlPosition*/ = _ref /*: ControlPosition*/;\n let translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n if (positionOffset) {\n const defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n const defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n return translation;\n}\nfunction getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);\n}\nfunction getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nfunction addUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\nfunction removeUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n const selection = (doc.defaultView || window).getSelection();\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {\n // probably IE\n }\n}\nfunction addClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\nfunction removeClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nexports.getPrefix = getPrefix;\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nfunction getPrefix() /*: string*/{\n var _window$document;\n let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return '';\n\n // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n const style = (_window$document = window.document) === null || _window$document === void 0 || (_window$document = _window$document.documentElement) === null || _window$document === void 0 ? void 0 : _window$document.style;\n if (!style) return '';\n if (prop in style) return '';\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n return '';\n}\nfunction browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\nfunction browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\nfunction kebabToTitleCase(str /*: string*/) /*: string*/{\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nvar _default = exports.default = (getPrefix() /*: string*/);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n/*eslint no-console:0*/\nfunction log() {\n if (undefined) console.log(...arguments);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\nexports.getBoundPosition = getBoundPosition;\nexports.getControlPosition = getControlPosition;\nexports.snapToGrid = snapToGrid;\nvar _shims = require(\"./shims\");\nvar _domFns = require(\"./domFns\");\n/*:: import type Draggable from '../Draggable';*/\n/*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/\n/*:: import type DraggableCore from '../DraggableCore';*/\nfunction getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {\n bounds\n } = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n if (typeof bounds === 'string') {\n const {\n ownerDocument\n } = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\nfunction snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\nfunction canDragX(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\nfunction canDragY(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nfunction getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{\n const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n}\n\n// Create an data object exposed by 's events\nfunction createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{\n const isStart = !(0, _shims.isNum)(draggable.lastX);\n const node = findDOMNode(draggable);\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x,\n y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - draggable.lastX,\n deltaY: y - draggable.lastY,\n lastX: draggable.lastX,\n lastY: draggable.lastY,\n x,\n y\n };\n }\n}\n\n// Create an data exposed by 's events\nfunction createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\nfunction findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{\n const node = draggable.findDOMNode();\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/{\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\nfunction isFunction(func /*: any*/) /*: boolean %checks*/{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\nfunction isNum(num /*: any*/) /*: boolean %checks*/{\n return typeof num === 'number' && !isNaN(num);\n}\nfunction int(a /*: string*/) /*: number*/{\n return parseInt(a, 10);\n}\nfunction dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {createElement,Component}from'react';import {findDOMNode}from'react-dom';function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n // Also cover shadowRoot node by checking current.host\n\n\n while (current.parentNode || current.host) {\n // Only check normal node without shadowRoot\n if (current.parentNode && isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode || current.host;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};function autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();var passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = {};\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions.passive = !instance.props.preventDefault;\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n };\n\n _this.__getComponentNode = function () {\n var instance = _this.getInstance();\n\n if (config && typeof config.setClickOutsideRef === 'function') {\n return config.setClickOutsideRef()(instance);\n }\n\n if (typeof instance.setClickOutsideRef === 'function') {\n return instance.setClickOutsideRef();\n }\n\n return findDOMNode(instance);\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.componentNode === null) return;\n if (_this.initTimeStamp > event.timeStamp) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.composed && event.composedPath && event.composedPath().shift() || event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n _this.initTimeStamp = performance.now();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (WrappedComponent.prototype && !WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n }\n }\n\n this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n if (this.props.disableOnClickOutside) return;\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = this.__getComponentNode();\n }\n /**\n * Remove all document's event listeners for this component\n */\n ;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n }\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n ;\n\n /**\n * Pass-through render\n */\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _this$props = this.props;\n _this$props.excludeScrollbar;\n var props = _objectWithoutPropertiesLoose(_this$props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype && WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}export default onClickOutsideHOC;export{IGNORE_CLASS_NAME};","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n var children = _ref.children,\n innerRef = _ref.innerRef;\n var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n var refHandler = React.useCallback(function (node) {\n setRef(innerRef, node);\n safeInvoke(setReferenceNode, node);\n }, [innerRef, setReferenceNode]); // ran on unmount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n React.useEffect(function () {\n return function () {\n return setRef(innerRef, null);\n };\n }, []);\n React.useEffect(function () {\n warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n }, [setReferenceNode]);\n return unwrapArray(children)({\n ref: refHandler\n });\n}","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.14.0\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(t) {\n return (module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _getPrototypeOf(t);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(t, e) {\n return (module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nexport { _createForOfIteratorHelper as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const { store } = useReduxContext()\n * return
{store.getState()}
\n * }\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n *
\n * {value}\n * \n *
\n * )\n * }\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","// array in local storage for registered users\r\nlet users = JSON.parse(localStorage.getItem('users')) || [];\r\n\r\nexport function configureFakeBackend() {\r\n let realFetch = window.fetch;\r\n window.fetch = function (url, opts) {\r\n return new Promise((resolve, reject) => {\r\n // wrap in timeout to simulate server api call\r\n console.log(12);\r\n setTimeout(() => {\r\n // authenticate\r\n if (url.endsWith('/users/authenticate') && opts.method === 'POST') {\r\n // get parameters from post request\r\n let params = JSON.parse(opts.body);\r\n\r\n // find if any user matches login credentials\r\n let filteredUsers = users.filter((user) => {\r\n return (\r\n user.username === params.username &&\r\n user.password === params.password\r\n );\r\n });\r\n\r\n if (filteredUsers.length) {\r\n // if login details are valid return user details and fake jwt token\r\n let user = filteredUsers[0];\r\n let responseJson = {\r\n id: user.id,\r\n username: user.username,\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n token: 'fake-jwt-token',\r\n };\r\n resolve({\r\n ok: true,\r\n text: () => Promise.resolve(JSON.stringify(responseJson)),\r\n });\r\n } else {\r\n // else return error\r\n reject('Username or password is incorrect');\r\n }\r\n\r\n return;\r\n }\r\n\r\n // get users\r\n if (url.endsWith('/users') && opts.method === 'GET') {\r\n // check for fake auth token in header and return users if valid, this security is implemented server side in a real application\r\n if (\r\n opts.headers &&\r\n opts.headers.Authorization === 'Bearer fake-jwt-token'\r\n ) {\r\n resolve({\r\n ok: true,\r\n text: () => Promise.resolve(JSON.stringify(users)),\r\n });\r\n } else {\r\n // return 401 not authorised if token is null or invalid\r\n reject('Unauthorised');\r\n }\r\n\r\n return;\r\n }\r\n\r\n // get user by id\r\n if (url.match(/\\/users\\/\\d+$/) && opts.method === 'GET') {\r\n // check for fake auth token in header and return user if valid, this security is implemented server side in a real application\r\n if (\r\n opts.headers &&\r\n opts.headers.Authorization === 'Bearer fake-jwt-token'\r\n ) {\r\n // find user by id in users array\r\n let urlParts = url.split('/');\r\n let id = parseInt(urlParts[urlParts.length - 1]);\r\n let matchedUsers = users.filter((user) => {\r\n return user.id === id;\r\n });\r\n let user = matchedUsers.length ? matchedUsers[0] : null;\r\n\r\n // respond 200 OK with user\r\n resolve({ ok: true, text: () => JSON.stringify(user) });\r\n } else {\r\n // return 401 not authorised if token is null or invalid\r\n reject('Unauthorised');\r\n }\r\n\r\n return;\r\n }\r\n\r\n // register user\r\n if (url.endsWith('/users/register') && opts.method === 'POST') {\r\n // get new user object from post body\r\n let newUser = JSON.parse(opts.body);\r\n\r\n // validation\r\n let duplicateUser = users.filter((user) => {\r\n return user.username === newUser.username;\r\n }).length;\r\n if (duplicateUser) {\r\n reject('Username \"' + newUser.username + '\" is already taken');\r\n return;\r\n }\r\n\r\n // save new user\r\n newUser.id = users.length\r\n ? Math.max(...users.map((user) => user.id)) + 1\r\n : 1;\r\n users.push(newUser);\r\n localStorage.setItem('users', JSON.stringify(users));\r\n\r\n // respond 200 OK\r\n resolve({ ok: true, text: () => Promise.resolve() });\r\n\r\n return;\r\n }\r\n\r\n // delete user\r\n if (url.match(/\\/users\\/\\d+$/) && opts.method === 'DELETE') {\r\n // check for fake auth token in header and return user if valid, this security is implemented server side in a real application\r\n if (\r\n opts.headers &&\r\n opts.headers.Authorization === 'Bearer fake-jwt-token'\r\n ) {\r\n // find user by id in users array\r\n let urlParts = url.split('/');\r\n let id = parseInt(urlParts[urlParts.length - 1]);\r\n for (let i = 0; i < users.length; i++) {\r\n let user = users[i];\r\n if (user.id === id) {\r\n // delete user\r\n users.splice(i, 1);\r\n localStorage.setItem('users', JSON.stringify(users));\r\n break;\r\n }\r\n }\r\n\r\n // respond 200 OK\r\n resolve({ ok: true, text: () => Promise.resolve() });\r\n } else {\r\n // return 401 not authorised if token is null or invalid\r\n reject('Unauthorised');\r\n }\r\n\r\n return;\r\n }\r\n\r\n // pass through any requests not handled above\r\n realFetch(url, opts).then((response) => resolve(response));\r\n }, 500);\r\n });\r\n };\r\n}\r\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import { createBrowserHistory } from 'history';\r\n\r\nexport const history = createBrowserHistory();\r\n","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","var repeat = function repeat(str, times) {\n return new Array(times + 1).join(str);\n};\n\nvar pad = function pad(num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num;\n};\n\nvar formatTime = function formatTime(time) {\n return pad(time.getHours(), 2) + ':' + pad(time.getMinutes(), 2) + ':' + pad(time.getSeconds(), 2) + '.' + pad(time.getMilliseconds(), 3);\n};\n\n// Use performance API if it's available in order to get better precision\nvar timer = typeof performance !== 'undefined' && performance !== null && typeof performance.now === 'function' ? performance : Date;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\nvar $scope;\nvar conflict;\nvar conflictResolution = [];\nif ((typeof global === 'undefined' ? 'undefined' : _typeof(global)) === 'object' && global) {\n $scope = global;\n} else if (typeof window !== 'undefined') {\n $scope = window;\n} else {\n $scope = {};\n}\nconflict = $scope.DeepDiff;\nif (conflict) {\n conflictResolution.push(function () {\n if ('undefined' !== typeof conflict && $scope.DeepDiff === accumulateDiff) {\n $scope.DeepDiff = conflict;\n conflict = undefined;\n }\n });\n}\n\n// nodejs compatible on server side and in the browser.\nfunction inherits$$1(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n}\n\nfunction Diff(kind, path) {\n Object.defineProperty(this, 'kind', {\n value: kind,\n enumerable: true\n });\n if (path && path.length) {\n Object.defineProperty(this, 'path', {\n value: path,\n enumerable: true\n });\n }\n}\n\nfunction DiffEdit(path, origin, value) {\n DiffEdit.super_.call(this, 'E', path);\n Object.defineProperty(this, 'lhs', {\n value: origin,\n enumerable: true\n });\n Object.defineProperty(this, 'rhs', {\n value: value,\n enumerable: true\n });\n}\ninherits$$1(DiffEdit, Diff);\n\nfunction DiffNew(path, value) {\n DiffNew.super_.call(this, 'N', path);\n Object.defineProperty(this, 'rhs', {\n value: value,\n enumerable: true\n });\n}\ninherits$$1(DiffNew, Diff);\n\nfunction DiffDeleted(path, value) {\n DiffDeleted.super_.call(this, 'D', path);\n Object.defineProperty(this, 'lhs', {\n value: value,\n enumerable: true\n });\n}\ninherits$$1(DiffDeleted, Diff);\n\nfunction DiffArray(path, index, item) {\n DiffArray.super_.call(this, 'A', path);\n Object.defineProperty(this, 'index', {\n value: index,\n enumerable: true\n });\n Object.defineProperty(this, 'item', {\n value: item,\n enumerable: true\n });\n}\ninherits$$1(DiffArray, Diff);\n\nfunction arrayRemove(arr, from, to) {\n var rest = arr.slice((to || from) + 1 || arr.length);\n arr.length = from < 0 ? arr.length + from : from;\n arr.push.apply(arr, rest);\n return arr;\n}\n\nfunction realTypeOf(subject) {\n var type = typeof subject === 'undefined' ? 'undefined' : _typeof(subject);\n if (type !== 'object') {\n return type;\n }\n\n if (subject === Math) {\n return 'math';\n } else if (subject === null) {\n return 'null';\n } else if (Array.isArray(subject)) {\n return 'array';\n } else if (Object.prototype.toString.call(subject) === '[object Date]') {\n return 'date';\n } else if (typeof subject.toString === 'function' && /^\\/.*\\//.test(subject.toString())) {\n return 'regexp';\n }\n return 'object';\n}\n\nfunction deepDiff(lhs, rhs, changes, prefilter, path, key, stack) {\n path = path || [];\n stack = stack || [];\n var currentPath = path.slice(0);\n if (typeof key !== 'undefined') {\n if (prefilter) {\n if (typeof prefilter === 'function' && prefilter(currentPath, key)) {\n return;\n } else if ((typeof prefilter === 'undefined' ? 'undefined' : _typeof(prefilter)) === 'object') {\n if (prefilter.prefilter && prefilter.prefilter(currentPath, key)) {\n return;\n }\n if (prefilter.normalize) {\n var alt = prefilter.normalize(currentPath, key, lhs, rhs);\n if (alt) {\n lhs = alt[0];\n rhs = alt[1];\n }\n }\n }\n }\n currentPath.push(key);\n }\n\n // Use string comparison for regexes\n if (realTypeOf(lhs) === 'regexp' && realTypeOf(rhs) === 'regexp') {\n lhs = lhs.toString();\n rhs = rhs.toString();\n }\n\n var ltype = typeof lhs === 'undefined' ? 'undefined' : _typeof(lhs);\n var rtype = typeof rhs === 'undefined' ? 'undefined' : _typeof(rhs);\n\n var ldefined = ltype !== 'undefined' || stack && stack[stack.length - 1].lhs && stack[stack.length - 1].lhs.hasOwnProperty(key);\n var rdefined = rtype !== 'undefined' || stack && stack[stack.length - 1].rhs && stack[stack.length - 1].rhs.hasOwnProperty(key);\n\n if (!ldefined && rdefined) {\n changes(new DiffNew(currentPath, rhs));\n } else if (!rdefined && ldefined) {\n changes(new DiffDeleted(currentPath, lhs));\n } else if (realTypeOf(lhs) !== realTypeOf(rhs)) {\n changes(new DiffEdit(currentPath, lhs, rhs));\n } else if (realTypeOf(lhs) === 'date' && lhs - rhs !== 0) {\n changes(new DiffEdit(currentPath, lhs, rhs));\n } else if (ltype === 'object' && lhs !== null && rhs !== null) {\n if (!stack.filter(function (x) {\n return x.lhs === lhs;\n }).length) {\n stack.push({ lhs: lhs, rhs: rhs });\n if (Array.isArray(lhs)) {\n var i,\n len = lhs.length;\n for (i = 0; i < lhs.length; i++) {\n if (i >= rhs.length) {\n changes(new DiffArray(currentPath, i, new DiffDeleted(undefined, lhs[i])));\n } else {\n deepDiff(lhs[i], rhs[i], changes, prefilter, currentPath, i, stack);\n }\n }\n while (i < rhs.length) {\n changes(new DiffArray(currentPath, i, new DiffNew(undefined, rhs[i++])));\n }\n } else {\n var akeys = Object.keys(lhs);\n var pkeys = Object.keys(rhs);\n akeys.forEach(function (k, i) {\n var other = pkeys.indexOf(k);\n if (other >= 0) {\n deepDiff(lhs[k], rhs[k], changes, prefilter, currentPath, k, stack);\n pkeys = arrayRemove(pkeys, other);\n } else {\n deepDiff(lhs[k], undefined, changes, prefilter, currentPath, k, stack);\n }\n });\n pkeys.forEach(function (k) {\n deepDiff(undefined, rhs[k], changes, prefilter, currentPath, k, stack);\n });\n }\n stack.length = stack.length - 1;\n } else if (lhs !== rhs) {\n // lhs is contains a cycle at this element and it differs from rhs\n changes(new DiffEdit(currentPath, lhs, rhs));\n }\n } else if (lhs !== rhs) {\n if (!(ltype === 'number' && isNaN(lhs) && isNaN(rhs))) {\n changes(new DiffEdit(currentPath, lhs, rhs));\n }\n }\n}\n\nfunction accumulateDiff(lhs, rhs, prefilter, accum) {\n accum = accum || [];\n deepDiff(lhs, rhs, function (diff) {\n if (diff) {\n accum.push(diff);\n }\n }, prefilter);\n return accum.length ? accum : undefined;\n}\n\nfunction applyArrayChange(arr, index, change) {\n if (change.path && change.path.length) {\n var it = arr[index],\n i,\n u = change.path.length - 1;\n for (i = 0; i < u; i++) {\n it = it[change.path[i]];\n }\n switch (change.kind) {\n case 'A':\n applyArrayChange(it[change.path[i]], change.index, change.item);\n break;\n case 'D':\n delete it[change.path[i]];\n break;\n case 'E':\n case 'N':\n it[change.path[i]] = change.rhs;\n break;\n }\n } else {\n switch (change.kind) {\n case 'A':\n applyArrayChange(arr[index], change.index, change.item);\n break;\n case 'D':\n arr = arrayRemove(arr, index);\n break;\n case 'E':\n case 'N':\n arr[index] = change.rhs;\n break;\n }\n }\n return arr;\n}\n\nfunction applyChange(target, source, change) {\n if (target && source && change && change.kind) {\n var it = target,\n i = -1,\n last = change.path ? change.path.length - 1 : 0;\n while (++i < last) {\n if (typeof it[change.path[i]] === 'undefined') {\n it[change.path[i]] = typeof change.path[i] === 'number' ? [] : {};\n }\n it = it[change.path[i]];\n }\n switch (change.kind) {\n case 'A':\n applyArrayChange(change.path ? it[change.path[i]] : it, change.index, change.item);\n break;\n case 'D':\n delete it[change.path[i]];\n break;\n case 'E':\n case 'N':\n it[change.path[i]] = change.rhs;\n break;\n }\n }\n}\n\nfunction revertArrayChange(arr, index, change) {\n if (change.path && change.path.length) {\n // the structure of the object at the index has changed...\n var it = arr[index],\n i,\n u = change.path.length - 1;\n for (i = 0; i < u; i++) {\n it = it[change.path[i]];\n }\n switch (change.kind) {\n case 'A':\n revertArrayChange(it[change.path[i]], change.index, change.item);\n break;\n case 'D':\n it[change.path[i]] = change.lhs;\n break;\n case 'E':\n it[change.path[i]] = change.lhs;\n break;\n case 'N':\n delete it[change.path[i]];\n break;\n }\n } else {\n // the array item is different...\n switch (change.kind) {\n case 'A':\n revertArrayChange(arr[index], change.index, change.item);\n break;\n case 'D':\n arr[index] = change.lhs;\n break;\n case 'E':\n arr[index] = change.lhs;\n break;\n case 'N':\n arr = arrayRemove(arr, index);\n break;\n }\n }\n return arr;\n}\n\nfunction revertChange(target, source, change) {\n if (target && source && change && change.kind) {\n var it = target,\n i,\n u;\n u = change.path.length - 1;\n for (i = 0; i < u; i++) {\n if (typeof it[change.path[i]] === 'undefined') {\n it[change.path[i]] = {};\n }\n it = it[change.path[i]];\n }\n switch (change.kind) {\n case 'A':\n // Array was modified...\n // it will be an array...\n revertArrayChange(it[change.path[i]], change.index, change.item);\n break;\n case 'D':\n // Item was deleted...\n it[change.path[i]] = change.lhs;\n break;\n case 'E':\n // Item was edited...\n it[change.path[i]] = change.lhs;\n break;\n case 'N':\n // Item is new...\n delete it[change.path[i]];\n break;\n }\n }\n}\n\nfunction applyDiff(target, source, filter) {\n if (target && source) {\n var onChange = function onChange(change) {\n if (!filter || filter(target, source, change)) {\n applyChange(target, source, change);\n }\n };\n deepDiff(target, source, onChange);\n }\n}\n\nObject.defineProperties(accumulateDiff, {\n\n diff: {\n value: accumulateDiff,\n enumerable: true\n },\n observableDiff: {\n value: deepDiff,\n enumerable: true\n },\n applyDiff: {\n value: applyDiff,\n enumerable: true\n },\n applyChange: {\n value: applyChange,\n enumerable: true\n },\n revertChange: {\n value: revertChange,\n enumerable: true\n },\n isConflict: {\n value: function value() {\n return 'undefined' !== typeof conflict;\n },\n enumerable: true\n },\n noConflict: {\n value: function value() {\n if (conflictResolution) {\n conflictResolution.forEach(function (it) {\n it();\n });\n conflictResolution = null;\n }\n return accumulateDiff;\n },\n enumerable: true\n }\n});\n\n// https://github.com/flitbit/diff#differences\nvar dictionary = {\n E: {\n color: '#2196F3',\n text: 'CHANGED:'\n },\n N: {\n color: '#4CAF50',\n text: 'ADDED:'\n },\n D: {\n color: '#F44336',\n text: 'DELETED:'\n },\n A: {\n color: '#2196F3',\n text: 'ARRAY:'\n }\n};\n\nfunction style(kind) {\n return 'color: ' + dictionary[kind].color + '; font-weight: bold';\n}\n\nfunction render(diff) {\n var kind = diff.kind,\n path = diff.path,\n lhs = diff.lhs,\n rhs = diff.rhs,\n index = diff.index,\n item = diff.item;\n\n\n switch (kind) {\n case 'E':\n return [path.join('.'), lhs, '→', rhs];\n case 'N':\n return [path.join('.'), rhs];\n case 'D':\n return [path.join('.')];\n case 'A':\n return [path.join('.') + '[' + index + ']', item];\n default:\n return [];\n }\n}\n\nfunction diffLogger(prevState, newState, logger, isCollapsed) {\n var diff = accumulateDiff(prevState, newState);\n\n try {\n if (isCollapsed) {\n logger.groupCollapsed('diff');\n } else {\n logger.group('diff');\n }\n } catch (e) {\n logger.log('diff');\n }\n\n if (diff) {\n diff.forEach(function (elem) {\n var kind = elem.kind;\n\n var output = render(elem);\n\n logger.log.apply(logger, ['%c ' + dictionary[kind].text, style(kind)].concat(toConsumableArray(output)));\n });\n } else {\n logger.log('—— no diff ——');\n }\n\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— diff end —— ');\n }\n}\n\n/**\n * Get log level string based on supplied params\n *\n * @param {string | function | object} level - console[level]\n * @param {object} action - selected action\n * @param {array} payload - selected payload\n * @param {string} type - log entry type\n *\n * @returns {string} level\n */\nfunction getLogLevel(level, action, payload, type) {\n switch (typeof level === 'undefined' ? 'undefined' : _typeof(level)) {\n case 'object':\n return typeof level[type] === 'function' ? level[type].apply(level, toConsumableArray(payload)) : level[type];\n case 'function':\n return level(action);\n default:\n return level;\n }\n}\n\nfunction defaultTitleFormatter(options) {\n var timestamp = options.timestamp,\n duration = options.duration;\n\n\n return function (action, time, took) {\n var parts = ['action'];\n\n parts.push('%c' + String(action.type));\n if (timestamp) parts.push('%c@ ' + time);\n if (duration) parts.push('%c(in ' + took.toFixed(2) + ' ms)');\n\n return parts.join(' ');\n };\n}\n\nfunction printBuffer(buffer, options) {\n var logger = options.logger,\n actionTransformer = options.actionTransformer,\n _options$titleFormatt = options.titleFormatter,\n titleFormatter = _options$titleFormatt === undefined ? defaultTitleFormatter(options) : _options$titleFormatt,\n collapsed = options.collapsed,\n colors = options.colors,\n level = options.level,\n diff = options.diff;\n\n\n var isUsingDefaultFormatter = typeof options.titleFormatter === 'undefined';\n\n buffer.forEach(function (logEntry, key) {\n var started = logEntry.started,\n startedTime = logEntry.startedTime,\n action = logEntry.action,\n prevState = logEntry.prevState,\n error = logEntry.error;\n var took = logEntry.took,\n nextState = logEntry.nextState;\n\n var nextEntry = buffer[key + 1];\n\n if (nextEntry) {\n nextState = nextEntry.prevState;\n took = nextEntry.started - started;\n }\n\n // Message\n var formattedAction = actionTransformer(action);\n var isCollapsed = typeof collapsed === 'function' ? collapsed(function () {\n return nextState;\n }, action, logEntry) : collapsed;\n\n var formattedTime = formatTime(startedTime);\n var titleCSS = colors.title ? 'color: ' + colors.title(formattedAction) + ';' : '';\n var headerCSS = ['color: gray; font-weight: lighter;'];\n headerCSS.push(titleCSS);\n if (options.timestamp) headerCSS.push('color: gray; font-weight: lighter;');\n if (options.duration) headerCSS.push('color: gray; font-weight: lighter;');\n var title = titleFormatter(formattedAction, formattedTime, took);\n\n // Render\n try {\n if (isCollapsed) {\n if (colors.title && isUsingDefaultFormatter) {\n logger.groupCollapsed.apply(logger, ['%c ' + title].concat(headerCSS));\n } else logger.groupCollapsed(title);\n } else if (colors.title && isUsingDefaultFormatter) {\n logger.group.apply(logger, ['%c ' + title].concat(headerCSS));\n } else {\n logger.group(title);\n }\n } catch (e) {\n logger.log(title);\n }\n\n var prevStateLevel = getLogLevel(level, formattedAction, [prevState], 'prevState');\n var actionLevel = getLogLevel(level, formattedAction, [formattedAction], 'action');\n var errorLevel = getLogLevel(level, formattedAction, [error, prevState], 'error');\n var nextStateLevel = getLogLevel(level, formattedAction, [nextState], 'nextState');\n\n if (prevStateLevel) {\n if (colors.prevState) {\n var styles = 'color: ' + colors.prevState(prevState) + '; font-weight: bold';\n\n logger[prevStateLevel]('%c prev state', styles, prevState);\n } else logger[prevStateLevel]('prev state', prevState);\n }\n\n if (actionLevel) {\n if (colors.action) {\n var _styles = 'color: ' + colors.action(formattedAction) + '; font-weight: bold';\n\n logger[actionLevel]('%c action ', _styles, formattedAction);\n } else logger[actionLevel]('action ', formattedAction);\n }\n\n if (error && errorLevel) {\n if (colors.error) {\n var _styles2 = 'color: ' + colors.error(error, prevState) + '; font-weight: bold;';\n\n logger[errorLevel]('%c error ', _styles2, error);\n } else logger[errorLevel]('error ', error);\n }\n\n if (nextStateLevel) {\n if (colors.nextState) {\n var _styles3 = 'color: ' + colors.nextState(nextState) + '; font-weight: bold';\n\n logger[nextStateLevel]('%c next state', _styles3, nextState);\n } else logger[nextStateLevel]('next state', nextState);\n }\n\n if (logger.withTrace) {\n logger.groupCollapsed('TRACE');\n logger.trace();\n logger.groupEnd();\n }\n\n if (diff) {\n diffLogger(prevState, nextState, logger, isCollapsed);\n }\n\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n });\n}\n\nvar defaults$1 = {\n level: 'log',\n logger: console,\n logErrors: true,\n collapsed: undefined,\n predicate: undefined,\n duration: false,\n timestamp: true,\n stateTransformer: function stateTransformer(state) {\n return state;\n },\n actionTransformer: function actionTransformer(action) {\n return action;\n },\n errorTransformer: function errorTransformer(error) {\n return error;\n },\n colors: {\n title: function title() {\n return 'inherit';\n },\n prevState: function prevState() {\n return '#9E9E9E';\n },\n action: function action() {\n return '#03A9F4';\n },\n nextState: function nextState() {\n return '#4CAF50';\n },\n error: function error() {\n return '#F20404';\n }\n },\n diff: false,\n diffPredicate: undefined,\n\n // Deprecated options\n transformer: undefined\n};\n\n/* eslint max-len: [\"error\", 110, { \"ignoreComments\": true }] */\n/**\n * Creates logger with following options\n *\n * @namespace\n * @param {object} options - options for logger\n * @param {string | function | object} options.level - console[level]\n * @param {boolean} options.duration - print duration of each action?\n * @param {boolean} options.timestamp - print timestamp with each action?\n * @param {object} options.colors - custom colors\n * @param {object} options.logger - implementation of the `console` API\n * @param {boolean} options.logErrors - should errors in action execution be caught, logged, and re-thrown?\n * @param {boolean} options.collapsed - is group collapsed?\n * @param {boolean} options.predicate - condition which resolves logger behavior\n * @param {function} options.stateTransformer - transform state before print\n * @param {function} options.actionTransformer - transform action before print\n * @param {function} options.errorTransformer - transform error before print\n *\n * @returns {function} logger middleware\n */\nfunction createLogger() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var loggerOptions = Object.assign({}, defaults$1, options);\n\n var logger = loggerOptions.logger,\n stateTransformer = loggerOptions.stateTransformer,\n errorTransformer = loggerOptions.errorTransformer,\n predicate = loggerOptions.predicate,\n logErrors = loggerOptions.logErrors,\n diffPredicate = loggerOptions.diffPredicate;\n\n // Return if 'console' object is not defined\n\n if (typeof logger === 'undefined') {\n return function () {\n return function (next) {\n return function (action) {\n return next(action);\n };\n };\n };\n }\n\n // Detect if 'createLogger' was passed directly to 'applyMiddleware'.\n if (options.getState && options.dispatch) {\n // eslint-disable-next-line no-console\n console.error('[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n// Logger with default options\\nimport { logger } from \\'redux-logger\\'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport { createLogger } from \\'redux-logger\\'\\nconst logger = createLogger({\\n // ...options\\n});\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n');\n\n return function () {\n return function (next) {\n return function (action) {\n return next(action);\n };\n };\n };\n }\n\n var logBuffer = [];\n\n return function (_ref) {\n var getState = _ref.getState;\n return function (next) {\n return function (action) {\n // Exit early if predicate function returns 'false'\n if (typeof predicate === 'function' && !predicate(getState, action)) {\n return next(action);\n }\n\n var logEntry = {};\n\n logBuffer.push(logEntry);\n\n logEntry.started = timer.now();\n logEntry.startedTime = new Date();\n logEntry.prevState = stateTransformer(getState());\n logEntry.action = action;\n\n var returnedValue = void 0;\n if (logErrors) {\n try {\n returnedValue = next(action);\n } catch (e) {\n logEntry.error = errorTransformer(e);\n }\n } else {\n returnedValue = next(action);\n }\n\n logEntry.took = timer.now() - logEntry.started;\n logEntry.nextState = stateTransformer(getState());\n\n var diff = loggerOptions.diff && typeof diffPredicate === 'function' ? diffPredicate(getState, action) : loggerOptions.diff;\n\n printBuffer(logBuffer, Object.assign({}, loggerOptions, { diff: diff }));\n logBuffer.length = 0;\n\n if (logEntry.error) throw logEntry.error;\n return returnedValue;\n };\n };\n };\n}\n\n// eslint-disable-next-line consistent-return\nvar defaultLogger = function defaultLogger() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n dispatch = _ref2.dispatch,\n getState = _ref2.getState;\n\n if (typeof dispatch === 'function' || typeof getState === 'function') {\n return createLogger()({ dispatch: dispatch, getState: getState });\n }\n // eslint-disable-next-line no-console\n console.error('\\n[redux-logger v3] BREAKING CHANGE\\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\\n[redux-logger v3] Change\\n[redux-logger v3] import createLogger from \\'redux-logger\\'\\n[redux-logger v3] to\\n[redux-logger v3] import { createLogger } from \\'redux-logger\\'\\n');\n};\n\nexport { defaults$1 as defaults, createLogger, defaultLogger as logger };export default defaultLogger;\n","export const alertConstants = {\r\n SUCCESS: 'ALERT_SUCCESS',\r\n ERROR: 'ALERT_ERROR',\r\n CLEAR: 'ALERT_CLEAR',\r\n};\r\n","export const userConstants = {\r\n REGISTER_REQUEST: 'USERS_REGISTER_REQUEST',\r\n REGISTER_SUCCESS: 'USERS_REGISTER_SUCCESS',\r\n REGISTER_FAILURE: 'USERS_REGISTER_FAILURE',\r\n\r\n LOGIN_REQUEST: 'USERS_LOGIN_REQUEST',\r\n LOGIN_SUCCESS: 'USERS_LOGIN_SUCCESS',\r\n LOGIN_FAILURE: 'USERS_LOGIN_FAILURE',\r\n\r\n LOGOUT: 'USERS_LOGOUT',\r\n\r\n GETALL_REQUEST: 'USERS_GETALL_REQUEST',\r\n GETALL_SUCCESS: 'USERS_GETALL_SUCCESS',\r\n GETALL_FAILURE: 'USERS_GETALL_FAILURE',\r\n\r\n DELETE_REQUEST: 'USERS_DELETE_REQUEST',\r\n DELETE_SUCCESS: 'USERS_DELETE_SUCCESS',\r\n DELETE_FAILURE: 'USERS_DELETE_FAILURE',\r\n};\r\n","export const controlSummaryConstants = {\r\n CONTROL_SUMMARY_REQUEST: 'CONTROL_SUMMARY_REQUEST',\r\n CONTROL_SUMMARY_SUCCESS: 'CONTROL_SUMMARY_SUCCESS',\r\n CONTROL_SUMMARY_ERROR: 'CONTROL_SUMMARY_ERROR',\r\n\r\n CONTROL_SUMMARY_UPDATE: 'CONTROL_SUMMARY_UPDATE',\r\n};\r\n","export * from \"./alert.constants\";\r\nexport * from \"./user.constants\";\r\nexport * from \"./controlSummary.constants\";\r\n\r\n//export const BASE_URL = `http://localhost:14213/api/1.0/ticket`;\r\n//export const BASE_URL ='http://96.127.186.60/controltowerticketing/api/1.0/ticket'\r\nexport const BASE_URL = \"https://www.thexyz.biz/ct/api/1.0/ticket\";\r\n","import { userConstants } from '../_constants';\r\nimport {decode as base64_decode} from 'base-64';\r\n//base64_decode(\r\n console.log(localStorage.getItem('user'));\r\nlet user = JSON.parse(localStorage.getItem('user')!=null?base64_decode(localStorage.getItem('user')):null);\r\nconst initialState = user ? { loggedIn: true, user } : {};\r\n\r\nexport function authentication(state = initialState, action) {\r\n switch (action.type) {\r\n case userConstants.LOGIN_REQUEST:\r\n return {\r\n loggingIn: true,\r\n user: action.user,\r\n };\r\n case userConstants.LOGIN_SUCCESS:\r\n return {\r\n loggedIn: true,\r\n user: action.user,\r\n };\r\n case userConstants.LOGIN_FAILURE:\r\n return {};\r\n case userConstants.LOGOUT:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","import { combineReducers } from 'redux';\r\n\r\nimport { authentication } from './authentication.reducer';\r\nimport { registration } from './registration.reducer';\r\nimport { users } from './users.reducer';\r\nimport { alert } from './alert.reducer';\r\nimport { controlSummary } from './controlSummary.reducer';\r\n\r\nconst rootReducer = combineReducers({\r\n authentication,\r\n registration,\r\n users,\r\n alert,\r\n controlSummary\r\n});\r\n\r\nexport default rootReducer;\r\n","import { userConstants } from '../_constants';\r\n\r\nexport function registration(state = {}, action) {\r\n switch (action.type) {\r\n case userConstants.REGISTER_REQUEST:\r\n return { registering: true };\r\n case userConstants.REGISTER_SUCCESS:\r\n return {};\r\n case userConstants.REGISTER_FAILURE:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { userConstants } from '../_constants';\r\n\r\nexport function users(state = {}, action) {\r\n switch (action.type) {\r\n case userConstants.GETALL_REQUEST:\r\n return {\r\n loading: true,\r\n };\r\n case userConstants.GETALL_SUCCESS:\r\n return {\r\n items: action.users,\r\n };\r\n case userConstants.GETALL_FAILURE:\r\n return {\r\n error: action.error,\r\n };\r\n case userConstants.DELETE_REQUEST:\r\n // add 'deleting:true' property to user being deleted\r\n return {\r\n ...state,\r\n items: state.items.map((user) =>\r\n user.id === action.id ? { ...user, deleting: true } : user\r\n ),\r\n };\r\n case userConstants.DELETE_SUCCESS:\r\n // remove deleted user from state\r\n return {\r\n items: state.items.filter((user) => user.id !== action.id),\r\n };\r\n case userConstants.DELETE_FAILURE:\r\n // remove 'deleting:true' property and add 'deleteError:[error]' property to user\r\n return {\r\n ...state,\r\n items: state.items.map((user) => {\r\n if (user.id === action.id) {\r\n // make copy of user without 'deleting:true' property\r\n const { deleting, ...userCopy } = user;\r\n // return copy of user with 'deleteError:[error]' property\r\n return { ...userCopy, deleteError: action.error };\r\n }\r\n\r\n return user;\r\n }),\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { alertConstants } from '../_constants';\r\n\r\nexport function alert(state = {}, action) {\r\n switch (action.type) {\r\n case alertConstants.SUCCESS:\r\n return {\r\n type: 'alert-success',\r\n message: action.message,\r\n };\r\n case alertConstants.ERROR:\r\n return {\r\n type: 'alert-danger',\r\n message: action.message,\r\n };\r\n case alertConstants.CLEAR:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n}\r\n","// http://localhost:14213/getcontroldatasummary?companyId=18849&fromDt=03/12/2022&toDt=03/14/2022\r\nimport { controlSummaryConstants } from '../_constants';\r\n\r\nexport function controlSummary(state = { isLoading: false, data: { totalcontrolData: [], last24hrlData: [], last7DaylData: [] } }, action) {\r\n switch (action.type) {\r\n case controlSummaryConstants.CONTROL_SUMMARY_REQUEST:\r\n return { ...state, isLoading: true };\r\n case controlSummaryConstants.CONTROL_SUMMARY_SUCCESS:\r\n return { ...state, data: action.data.result, isLoading: false };\r\n case controlSummaryConstants.CONTROL_SUMMARY_ERROR:\r\n return { ...state, isLoading: false };\r\n case controlSummaryConstants.CONTROL_SUMMARY_UPDATE:\r\n return { ...state };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport { createLogger } from 'redux-logger';\r\nimport rootReducer from '../_reducers';\r\n\r\nconst loggerMiddleware = createLogger();\r\n\r\nexport const store = createStore(\r\n rootReducer,\r\n applyMiddleware(thunkMiddleware, loggerMiddleware)\r\n);\r\n","import {decode as base64_decode} from 'base-64';\r\nexport function authHeader() {\r\n // return authorization header with jwt token\r\n let user = JSON.parse(base64_decode(localStorage.getItem('user')));\r\n if (user && user.token) {\r\n return { Authorization: 'Bearer ' + user.token, \"x-api-version\": \"1.0\", \"Content-Type\": \"application/json\"};\r\n } else {\r\n return { \"x-api-version\": \"1.0\", \"Content-Type\": \"application/json\" };\r\n }\r\n}\r\n","\r\nexport const colorCodes = {\r\n 0:{\r\n text: \"Open\",\r\n bgColor: \"rgba(175, 229, 163, 0.1)\",\r\n border: \"rgba(175, 229, 163, 1)\"\r\n },\r\n 1:{\r\n text: \"Pending\",\r\n bgColor: \"rgba(255, 203, 107, 0.1)\",\r\n border: \"rgba(255, 203, 107, 1)\"\r\n },\r\n 2:{\r\n text: \"InProcess\",\r\n bgColor: \"rgba(254, 143, 41, 0.1)\",//\r\n border:\"rgba(254, 143, 41, 1)\"\r\n },\r\n 3:{\r\n text: \"Closed\",\r\n bgColor: \"rgba(242, 47, 47, 0.1)\",\r\n border: \"rgba(242, 47, 47, 1)\"\r\n },\r\n 4:{\r\n text: \"Escalated\",\r\n bgColor: \"rgba(123, 109, 209, 0.1)\",\r\n border: \"rgba(123, 109, 209, 1)\"\r\n },\r\n 5:{\r\n text: \"Reopen\",\r\n bgColor: \"rgba(138, 175, 249, 0.1)\",\r\n border: \"rgba(138, 175, 249, 1)\"\r\n },\r\n\r\n}\r\n\r\n\r\n/**\r\n * \r\n * @param {(string|number)} type\r\n */\r\n\r\nexport const getColorCodeFromType = (type) => {\r\n\r\n \r\n if (type !== null && !isNaN(type) ) {\r\n return colorCodes[type]\r\n }\r\n\r\n if (type && typeof type === 'string') {\r\n return colorCodes[Object.keys(colorCodes).find(d => colorCodes[d]['text'].toLowerCase() === type.toLowerCase())]\r\n }\r\n \r\n return {\r\n text: \"Open\",\r\n bgColor: \"rgba(175, 229, 163, 0.1)\",\r\n border: \"rgba(175, 229, 163, 1)\"\r\n }\r\n \r\n}","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + ''; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest/*:Array >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn 'Sheet' + 'JS ' + XLSX.version + '';\n}\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ]; //.concat(PseudoPropsPairs);\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = $cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[/*::String(*/current_ansi/*::)*/] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array*/ = [\"ID;PWXL;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o/*:Array*/, type/*:number*/, v/*:any*/, s/*:string*/) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF_load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('');\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '
': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF_load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF_load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"
\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF_load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF_load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF_load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
\");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*//*::, opts*/)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8contains(body, search) {\n outer:\n for (var L = 0; L <= body.length - search.length; ++L) {\n for (var j = 0; j < search.length; ++j)\n if (body[L + j] != search[j])\n continue outer;\n return true;\n }\n return false;\n}\nfunction u8concat(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 20;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz.slice(0, L);\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [];\n ai[1] = [{ data: write_varint49(ia.id), type: 0 }];\n ai[2] = [];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n}\nfunction decompress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf.slice(l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nfunction parse_old_storage(buf, sst, rsst, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var data_offset = (v > 1 ? 12 : 8) + popcnt(flags & (v > 1 ? 3470 : 398)) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (buf[2]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction parse_new_storage(buf, sst, rsst) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(8, true);\n var data_offset = 12;\n var ridx = -1, sidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 1) {\n d128 = readDecimal128LE(buf, data_offset);\n data_offset += 16;\n }\n if (flags & 2) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n if (flags & 8) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 16) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n var ret;\n switch (buf[1]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[1] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out.slice(0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 3;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[2] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(4, flags, true);\n return out.slice(0, l);\n}\nfunction parse_cell_storage(buf, sst, rsst) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n return parse_old_storage(buf, sst, rsst, buf[0]);\n case 5:\n return parse_new_storage(buf, sst, rsst);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n var out = [];\n out[1] = [{ type: 0, data: write_varint49(idx) }];\n return write_shallow(out);\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage.subarray(offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage.subarray(offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) ? varint_to_i32(pb[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]) : [];\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n var _tile = parse_TST_Tile(M, ref);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: _R + R, c: C });\n var res = parse_cell_storage(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n _R += _tile.nrows;\n });\n}\nfunction parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n}\nfunction parse_numbers_iwa(cfb) {\n var _a, _b, _c, _d;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n var docroot = ((_d = (_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.meta) == null ? void 0 : _c[1]) == null ? void 0 : _d[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot);\n}\nfunction write_tile_row(tri, data, SST) {\n var _a, _b, _c, _d;\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var wide_offsets = ((_d = (_c = tri[8]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && varint_to_i32(tri[8][0].data) > 0 || false;\n if (wide_offsets)\n throw \"Math only works with normal offsets\";\n var cnt = 0;\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset, true);\n _dv.setUint16(C * 2, _last_offset, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n return cnt;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var ws = wb.Sheets[wb.SheetNames[0]];\n if (wb.SheetNames.length > 1)\n console.error(\"The Numbers writer currently writes only the first table\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 9) {\n trunc = true;\n range.e.c = 9;\n }\n if (range.e.r > 49) {\n trunc = true;\n range.e.r = 49;\n }\n if (trunc)\n console.error(\"The Numbers writer is currently limited to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n data.forEach(function(row) {\n return row.forEach(function(cell) {\n if (typeof cell == \"string\")\n SST.push(cell);\n });\n });\n var dependents = {};\n var indices = [];\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n var old_content = fi.content;\n var raw1 = decompress_iwa_file(old_content);\n var x2 = parse_iwa_file(raw1);\n x2.forEach(function(packet2) {\n indices.push(packet2.id);\n dependents[packet2.id] = { deps: [], location: fp, type: varint_to_i32(packet2.messages[0].meta[1][0].data) };\n });\n });\n indices.sort(function(x2, y2) {\n return x2 - y2;\n });\n var indices_varint = indices.filter(function(x2) {\n return x2 > 1;\n }).map(function(x2) {\n return [x2, write_varint49(x2)];\n });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (!fi.name.match(/\\.iwa/))\n return;\n var x2 = parse_iwa_file(decompress_iwa_file(fi.content));\n x2.forEach(function(ia) {\n ia.messages.forEach(function(m) {\n indices_varint.forEach(function(ivi) {\n if (ia.messages.some(function(mess) {\n return varint_to_i32(mess.meta[1][0].data) != 11006 && u8contains(mess.data, ivi[1]);\n })) {\n dependents[ivi[0]].deps.push(ia.id);\n }\n });\n });\n });\n });\n function get_unique_msgid() {\n for (var i = 927262; i < 2e6; ++i)\n if (!dependents[i])\n return i;\n throw new Error(\"Too many messages\");\n }\n var entry = CFB.find(cfb, dependents[1].location);\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var docroot;\n for (var xi = 0; xi < x.length; ++xi) {\n var packet = x[xi];\n if (packet.id == 1)\n docroot = packet;\n }\n var sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n var pb = parse_shallow(docroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n var cruidsref = parse_TSP_Reference(pb[46][0].data);\n var oldbucket = CFB.find(cfb, dependents[cruidsref].location);\n var _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n for (var j = 0; j < _x.length; ++j) {\n if (_x[j].id == cruidsref)\n break;\n }\n if (_x[j].id != cruidsref)\n throw \"Bad ColumnRowUIDMapArchive\";\n var cruids = parse_shallow(_x[j].messages[0].data);\n cruids[1] = [];\n cruids[2] = [], cruids[3] = [];\n for (var C = 0; C <= range.e.c; ++C) {\n var uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(C + 420690) }];\n cruids[1].push({ type: 2, data: write_shallow(uuid) });\n cruids[2].push({ type: 0, data: write_varint49(C) });\n cruids[3].push({ type: 0, data: write_varint49(C) });\n }\n cruids[4] = [];\n cruids[5] = [], cruids[6] = [];\n for (var R = 0; R <= range.e.r; ++R) {\n uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(R + 726270) }];\n cruids[4].push({ type: 2, data: write_shallow(uuid) });\n cruids[5].push({ type: 0, data: write_varint49(R) });\n cruids[6].push({ type: 0, data: write_varint49(R) });\n }\n _x[j].messages[0].data = write_shallow(cruids);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n store[7][0].data = write_varint49(range.e.r + 1);\n var row_headers = parse_shallow(store[1][0].data);\n var row_header_ref = parse_TSP_Reference(row_headers[2][0].data);\n oldbucket = CFB.find(cfb, dependents[row_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != row_header_ref)\n throw \"Bad HeaderStorageBucket\";\n var base_bucket = parse_shallow(_x[0].messages[0].data);\n for (R = 0; R < data.length; ++R) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R);\n _bucket[4][0].data = write_varint49(data[R].length);\n base_bucket[2][R] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n oldbucket = CFB.find(cfb, dependents[col_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != col_header_ref)\n throw \"Bad HeaderStorageBucket\";\n base_bucket = parse_shallow(_x[0].messages[0].data);\n for (C = 0; C <= range.e.c; ++C) {\n _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var sstref = parse_TSP_Reference(store[4][0].data);\n (function() {\n var sentry = CFB.find(cfb, dependents[sstref].location);\n var sx = parse_iwa_file(decompress_iwa_file(sentry.content));\n var sstroot;\n for (var sxi = 0; sxi < sx.length; ++sxi) {\n var packet2 = sx[sxi];\n if (packet2.id == sstref)\n sstroot = packet2;\n }\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n var newsst = [];\n SST.forEach(function(str, i) {\n newsst[1] = [{ type: 0, data: write_varint49(i) }];\n newsst[2] = [{ type: 0, data: write_varint49(1) }];\n newsst[3] = [{ type: 2, data: stru8(str) }];\n sstdata[3].push({ type: 2, data: write_shallow(newsst) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n var sy = write_iwa_file(sx);\n var raw32 = compress_iwa_file(sy);\n sentry.content = raw32;\n sentry.size = sentry.content.length;\n })();\n var tile = parse_shallow(store[3][0].data);\n {\n var t = tile[1][0];\n delete tile[2];\n var tl = parse_shallow(t.data);\n {\n var tileref = parse_TSP_Reference(tl[2][0].data);\n (function() {\n var tentry = CFB.find(cfb, dependents[tileref].location);\n var tx = parse_iwa_file(decompress_iwa_file(tentry.content));\n var tileroot;\n for (var sxi = 0; sxi < tx.length; ++sxi) {\n var packet2 = tx[sxi];\n if (packet2.id == tileref)\n tileroot = packet2;\n }\n var tiledata = parse_shallow(tileroot.messages[0].data);\n {\n delete tiledata[6];\n delete tile[7];\n var rowload = new Uint8Array(tiledata[5][0].data);\n tiledata[5] = [];\n var cnt = 0;\n for (var R2 = 0; R2 <= range.e.r; ++R2) {\n var tilerow = parse_shallow(rowload);\n cnt += write_tile_row(tilerow, data[R2], SST);\n tilerow[1][0].data = write_varint49(R2);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tiledata[1] = [{ type: 0, data: write_varint49(range.e.c + 1) }];\n tiledata[2] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n tiledata[3] = [{ type: 0, data: write_varint49(cnt) }];\n tiledata[4] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n }\n tileroot.messages[0].data = write_shallow(tiledata);\n var ty = write_iwa_file(tx);\n var raw32 = compress_iwa_file(ty);\n tentry.content = raw32;\n tentry.size = tentry.content.length;\n })();\n }\n t.data = write_shallow(tl);\n }\n store[3][0].data = write_shallow(tile);\n }\n pb[4][0].data = write_shallow(store);\n }\n docroot.messages[0].data = write_shallow(pb);\n var y = write_iwa_file(x);\n var raw3 = compress_iwa_file(y);\n entry.content = raw3;\n entry.size = entry.content.length;\n return cfb;\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tvar comments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(opts.bookType == \"numbers\") return write_numbers_iwa(wb, opts);\n\tif(opts.bookType == \"xlsb\") return write_zip_xlsxb(wb, opts);\n\treturn write_zip_xlsx(wb, opts);\n}\n\n/* XLSX and XLSB writing are very similar. Originally they were unified in one\n export function. This is horrible for tree shaking in the common case (most\n applications need to export files in one format) so this function supports\n both formats while write_zip_xlsx only handles XLSX */\nfunction write_zip_xlsxb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta(f));\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".\" + wbext;\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".\" + wbext, RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\td = $cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(RTF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, dense/*:boolean*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell/*:Cell*/;\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = ws_get_cell_stub(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n set_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\n","import * as XLSX from 'xlsx/xlsx.mjs';\r\n\r\nexport const downloadExcel = (data) => {\r\n\r\n const worksheet = XLSX.utils.json_to_sheet(data);\r\n const workbook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, worksheet, \"Sheet1\");\r\n //let buffer = XLSX.write(workbook, { bookType: \"xlsx\", type: \"buffer\" });\r\n //XLSX.write(workbook, { bookType: \"xlsx\", type: \"binary\" });\r\n XLSX.writeFile(workbook, \"ControlTower\"+new Date().toLocaleString(\"en-IN\")+\".xlsx\");\r\n};","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import { alertConstants } from '../_constants';\r\n\r\nexport const alertActions = {\r\n success,\r\n error,\r\n clear\r\n};\r\n\r\nfunction success(message) {\r\n return { type: alertConstants.SUCCESS, message };\r\n}\r\n\r\nfunction error(message) {\r\n return { type: alertConstants.ERROR, message };\r\n}\r\n\r\nfunction clear() {\r\n return { type: alertConstants.CLEAR };\r\n}","function logout() {\r\n // remove user from local storage to log user out\r\n localStorage.removeItem('user');\r\n}\r\n\r\nexport function handleResponse(response) {\r\n return response.text().then((text) => {\r\n const data = text && JSON.parse(text);\r\n if (!response.ok) {\r\n if (response.status === 401) {\r\n // Unauthorized response status code\r\n // auto logout if 401 response returned from api\r\n logout();\r\n location.reload(true);\r\n }\r\n\r\n const error = (data && data.message) || response.statusText;\r\n return Promise.reject(error);\r\n }\r\n\r\n return data;\r\n });\r\n}","import { authHeader } from '../_helpers';\r\nimport { handleResponse } from './handleResponse';\r\nimport { BASE_URL } from '../_constants';\r\nimport {encode as base64_encode} from 'base-64';\r\nexport const userService = {\r\n login,\r\n logout,\r\n register,\r\n getAll,\r\n getById,\r\n update,\r\n delete: _delete,\r\n};\r\nfunction login(username, password,userType) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({\r\n username: username,\r\n password: password,\r\n userType: userType || 'P',\r\n }),\r\n };\r\n return fetch(`${BASE_URL}/login`, requestOptions)\r\n .then(handleResponse)\r\n .then((user) => {\r\n if (user.isStatus) {\r\n localStorage.setItem('user',base64_encode(JSON.stringify(user.result)));\r\n return user;\r\n } else {\r\n console.log(user.result);\r\n return user;\r\n }\r\n });\r\n}\r\n\r\nfunction logout() {\r\n // remove user from local storage to log user out\r\n localStorage.removeItem('user');\r\n}\r\n\r\nfunction getAll() {\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: authHeader(),\r\n };\r\n\r\n return fetch(`/users`, requestOptions).then(handleResponse);\r\n}\r\n\r\nfunction getById(id) {\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: authHeader(),\r\n };\r\n\r\n return fetch(`/users/${id}`, requestOptions).then(handleResponse);\r\n}\r\n\r\nfunction register(user) {\r\n console.log('r2');\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(user),\r\n };\r\n\r\n return fetch(`/users/register`, requestOptions).then(handleResponse);\r\n}\r\n\r\nfunction update(user) {\r\n const requestOptions = {\r\n method: 'PUT',\r\n headers: { ...authHeader(), 'Content-Type': 'application/json' },\r\n body: JSON.stringify(user),\r\n };\r\n\r\n return fetch(`/users/${user.id}`, requestOptions).then(handleResponse);\r\n}\r\n\r\n// prefixed function name with underscore because delete is a reserved word in javascript\r\nfunction _delete(id) {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n headers: authHeader(),\r\n };\r\n\r\n return fetch(`/users/${id}`, requestOptions).then(handleResponse);\r\n}\r\n","import { authHeader } from \"../_helpers\";\r\nimport { handleResponse } from \"./handleResponse\";\r\nimport { BASE_URL } from \"../_constants\";\r\n\r\nexport const controlSummaryService = {\r\n getControlSummaryData,\r\n getControlTicketData,\r\n getInvoiceWiseData,\r\n};\r\n\r\nexport function getCidData({ providerId }) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n };\r\n // http://localhost:14213/api/1.0/ticket/getplant?provide_id=38447\r\n return fetch(\r\n `${BASE_URL}/getplant?provide_id=${providerId}`,\r\n requestOptions\r\n ).then(handleResponse);\r\n}\r\n\r\nexport function getServiceAlertsData({ providerId }) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n };\r\n // http://localhost:14213/api/1.0/ticket/getplant?provide_id=38447\r\n return fetch(\r\n `${BASE_URL}/getalert?provide_id=${providerId}`,\r\n requestOptions\r\n ).then(handleResponse);\r\n}\r\n\r\nfunction getControlSummaryData({ companyId, providerId }) {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader(),\r\n };\r\n // http://localhost:14213/api/1.0/ticket/getcontroldatasummary?companyId=38447\r\n return fetch(\r\n `${BASE_URL}/getcontroldatasummary?companyId=${companyId}&providerId=${providerId}`,\r\n requestOptions\r\n ).then(handleResponse);\r\n}\r\n\r\nexport function getControlTicketData({ companyId, providerId, fromDt, toDt }) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n };\r\n if (localStorage.getItem(\"cidname\") != \"All Plants\")\r\n companyId = companyId == 0 ? localStorage.getItem(\"Cid\") : companyId;\r\n if (companyId == 0 || companyId == null) {\r\n companyId = \"\";\r\n }\r\n // http://localhost:14213/api/1.0/ticket/getcontroldata?companyId=38447&providerId=1112&fromDt=03%2F12%2F22&toDt=03%2F13%2F22\r\n return fetch(\r\n `${BASE_URL}/getcontroldata?companyId=${companyId}&providerId=${providerId}&fromDt=${fromDt}&toDt=${toDt}`,\r\n requestOptions\r\n ).then(handleResponse);\r\n}\r\n\r\nexport function getInvoiceWiseData({ companyId, providerId, fromDt, toDt }) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n };\r\n companyId = \"\";\r\n //http://localhost:14213/api/1.0/ticket/getinvoicewise?companyId=307&providerId=307&fromDt=2022-03-30&toDt=2022-03-30\r\n return fetch(\r\n `${BASE_URL}/getinvoicewise?companyId=${companyId}&providerId=${providerId}&fromDt=${fromDt}&toDt=${toDt}`,\r\n requestOptions\r\n ).then(handleResponse);\r\n}\r\n\r\nexport function getControlDataByInvoice({ companyId, providerId, invoice }) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n };\r\n /* companyId = '';*/\r\n return fetch(\r\n `${BASE_URL}/getcontroldata-by-invoice?companyId=${companyId}&providerId=${providerId}&invoiceNo=${invoice}`,\r\n requestOptions\r\n ).then(handleResponse);\r\n}\r\n\r\n//http://localhost:14213/api/1.0/ticket/getcontroldata-by-invoice?companyId=11&providerId=1667&invoiceNo=NBH23INV000805\r\n\r\n// http://www.thexyz.biz:8085/api/1.0/ticket/tripRouteMapData?companyId=35310&tracknumb=240412070298777\r\n\r\nexport function getTripRouteMapData({ companyId, tracknumb }) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n };\r\n /* companyId = '';*/\r\n return fetch(\r\n `${BASE_URL}/tripRouteMapData?companyId=${companyId}&tracknumb=${tracknumb}`,\r\n requestOptions\r\n ).then(handleResponse);\r\n}\r\n","import { userConstants } from '../_constants';\r\nimport { userService } from '../_services';\r\nimport { alertActions } from './alert.actions';\r\nimport { history } from '../_helpers';\r\n\r\nexport const userActions = {\r\n login,\r\n logout,\r\n register,\r\n getAll,\r\n delete: _delete\r\n};\r\n\r\nfunction login(username, password,userType) {\r\n return dispatch => {\r\n dispatch(request({ username }));\r\n dispatch(alertActions.clear());\r\n userService.login(username, password,userType)\r\n .then(\r\n user => { \r\n console.log(\"e\",user);\r\n if(user.isStatus)\r\n {\r\n console.log(user.result.token);\r\n dispatch(success(user.result));\r\n history.push('/');\r\n dispatch(alertActions.success('Login successful'));\r\n }\r\n else\r\n {\r\n dispatch(failure(user.message));\r\n dispatch(alertActions.error(user.message));\r\n }\r\n },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request(user) { return { type: userConstants.LOGIN_REQUEST, user } }\r\n function success(user) { return { type: userConstants.LOGIN_SUCCESS, user } }\r\n function failure(error) { return { type: userConstants.LOGIN_FAILURE, error } }\r\n}\r\n\r\nfunction logout() {\r\n userService.logout();\r\n return { type: userConstants.LOGOUT };\r\n}\r\n\r\nfunction register(user) {\r\n return dispatch => {\r\n dispatch(request(user));\r\n console.log(\"r1\");\r\n userService.register(user)\r\n .then(\r\n user => { \r\n dispatch(success());\r\n history.push('/login');\r\n dispatch(alertActions.success('Registration successful'));\r\n },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request(user) { return { type: userConstants.REGISTER_REQUEST, user } }\r\n function success(user) { return { type: userConstants.REGISTER_SUCCESS, user } }\r\n function failure(error) { return { type: userConstants.REGISTER_FAILURE, error } }\r\n}\r\n\r\nfunction getAll() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n userService.getAll()\r\n .then(\r\n users => dispatch(success(users)),\r\n error => dispatch(failure(error))\r\n );\r\n };\r\n\r\n function request() { return { type: userConstants.GETALL_REQUEST } }\r\n function success(users) { return { type: userConstants.GETALL_SUCCESS, users } }\r\n function failure(error) { return { type: userConstants.GETALL_FAILURE, error } }\r\n}\r\n\r\n// prefixed function name with underscore because delete is a reserved word in javascript\r\nfunction _delete(id) {\r\n return dispatch => {\r\n dispatch(request(id));\r\n\r\n userService.delete(id)\r\n .then(\r\n user => { \r\n dispatch(success(id));\r\n },\r\n error => {\r\n dispatch(failure(id, error));\r\n }\r\n );\r\n };\r\n\r\n function request(id) { return { type: userConstants.DELETE_REQUEST, id } }\r\n function success(id) { return { type: userConstants.DELETE_SUCCESS, id } }\r\n function failure(id, error) { return { type: userConstants.DELETE_FAILURE, id, error } }\r\n}","import { controlSummaryConstants } from '../_constants';\r\nimport { controlSummaryService } from '../_services';\r\n//import { alertActions } from './alert.actions';\r\n\r\n\r\nexport const controlSummaryActions = {\r\n getControlSummary\r\n}\r\n\r\nfunction getControlSummary({ companyId='',providerId}) {\r\n if(companyId==null)\r\n companyId='';\r\n return (dispatch) => {\r\n dispatch(request());\r\n controlSummaryService.getControlSummaryData({ companyId, providerId}).then(\r\n (data) => {\r\n console.log('summ data', data)\r\n dispatch(success(data))\r\n //dispatch(alertActions.success('summ data fetched'));\r\n }, (error) => {\r\n dispatch(failure(error));\r\n //dispatch(alertActions.error(error));\r\n })\r\n }\r\n\r\n function request() {\r\n return { type: controlSummaryConstants.CONTROL_SUMMARY_REQUEST };\r\n }\r\n function success(data) {\r\n return { type: controlSummaryConstants.CONTROL_SUMMARY_SUCCESS, data };\r\n }\r\n function failure(error) {\r\n return { type: controlSummaryConstants.CONTROL_SUMMARY_ERROR, error };\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\n\r\nexport const PrivateRoute = ({ component: Component, ...rest }) => (\r\n (\r\n localStorage.getItem('user')\r\n ? \r\n : \r\n )} />\r\n)","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","function _taggedTemplateLiteral(e, t) {\n return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {\n raw: {\n value: Object.freeze(t)\n }\n }));\n}\nexport { _taggedTemplateLiteral as default };","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"donutContainer\":\"DonutChart_donutContainer__xNvst\",\"donutTitle\":\"DonutChart_donutTitle__6xUUn\",\"donutLabelsContainer\":\"DonutChart_donutLabelsContainer__Rz2r3\",\"donutLabelContainer\":\"DonutChart_donutLabelContainer__bh0PA\",\"donutLabelCount\":\"DonutChart_donutLabelCount__EkNF2\",\"donutLabelText\":\"DonutChart_donutLabelText__iLl2j\",\"donutLabelHighlighter\":\"DonutChart_donutLabelHighlighter__vmdLZ\"};","import { useEffect, useRef } from 'react';\r\nimport * as d3 from 'd3';\r\nimport { getColorCodeFromType } from '../../_helpers/getColorCode';\r\nimport styles from './DonutChart.module.css';\r\n\r\n\r\nconst formatIndianSystem = (value) => {\r\n\r\n let val = Math.abs(value);\r\n\r\n if (val >= 10000000) {\r\n val = (val / 10000000).toFixed(1) + 'Cr';\r\n } else if (val >= 100000) {\r\n val = (val / 100000).toFixed(1) + 'L';\r\n }\r\n else if (val >= 1000) {\r\n val = (val / 1000).toFixed(1) + 'K';\r\n }\r\n return val;\r\n}\r\n\r\n\r\nexport const DonutChart = ({\r\n w = 400,\r\n h = 300,\r\n title = 'Ticket Stats',\r\n isLoading,\r\n ...props\r\n}) => {\r\n const padding = 40;\r\n const width = w;\r\n const height = h;\r\n const radius = Math.min(width - padding, height - padding) / 2;\r\n const innerRadius = radius - 15;\r\n const outerRadius = radius;\r\n\r\n const ref = useRef(null); // group - g element\r\n const cache = useRef(props.data);\r\n let totalTickets = props.data.reduce((acc, curr) => {\r\n return acc + curr.noOfTicket\r\n }, 0);\r\n\r\n const createPie = d3\r\n .pie()\r\n .value((d) => d.noOfTicket)\r\n .sort(null);\r\n\r\n const createArc = d3.arc().innerRadius(innerRadius).outerRadius(outerRadius);\r\n\r\n useEffect(() => {\r\n const data = createPie(props.data);\r\n const prevData = createPie(cache.current);\r\n\r\n // store group g in a variable\r\n const group = d3.select(ref.current);\r\n\r\n // select prev arcs and bind them with the data\r\n const groupWithData = group.selectAll('g.arc').data(data);\r\n\r\n // remove extra arcs\r\n groupWithData.exit().remove();\r\n\r\n // add arcs for unbinded data\r\n const groupWithUpdate = groupWithData\r\n .enter()\r\n .append('g')\r\n .attr('class', 'arc');\r\n\r\n // append path in new arcs and merge with prev arcs with path\r\n const path = groupWithUpdate\r\n .append('path')\r\n .merge(groupWithData.select('path.arc')); //grpwithupdate+grpwithdata\r\n\r\n const arcTween = (d, i) => {\r\n const interpolator = d3.interpolate(prevData[i], d);\r\n\r\n return (t) => createArc(interpolator(t));\r\n };\r\n\r\n // fill colors\r\n path\r\n .attr('class', 'arc')\r\n .attr('fill', (d, i) => { \r\n let { border } = getColorCodeFromType(d.data.statusOfTicket)\r\n return border;\r\n })//callback function has access to __data__\r\n .transition()\r\n .attrTween('d', arcTween);\r\n\r\n // update cache\r\n cache.current = props.data;\r\n \r\n }, [props.data]);\r\n //style={{ flex: '0.8', alignSelf: 'center' }}\r\n return (\r\n
\r\n\r\n {title}\r\n\r\n\r\n
\r\n
\r\n\r\n {isLoading ? (
) : (\r\n\r\n \r\n \r\n \r\n \r\n \r\n {totalTickets}\r\n \r\n {formatIndianSystem(totalTickets)}\r\n \r\n \r\n\r\n \r\n Total\r\n \r\n \r\n Tickets\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n {!isLoading &&
\r\n {props.data.sort((a, b) => {\r\n return b.noOfTicket - a.noOfTicket;\r\n })\r\n .map(({ statusOfTicket, noOfTicket }) => {\r\n return (\r\n
\r\n
\r\n {formatIndianSystem(noOfTicket)}\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
}\r\n\r\n
\r\n
\r\n\r\n );\r\n};\r\n// width={width} height = { height }\r\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return
;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","import React, { useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { controlSummaryActions } from '../../_actions';\r\nimport { DonutChart } from '../DonutChart';\r\n\r\nfunction ControlSummary(props) {\r\n\r\n useEffect(() => {\r\n props.getControlSummary({ companyId: props.companyId, providerId: props.providerId })\r\n },[])\r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction mapState(state) {\r\n const { isLoading, data } = state.controlSummary;\r\n const { user: { company_id: companyId, provider_id: providerId },user } = state.authentication;\r\n console.log(state)\r\n return { isLoading, data, companyId, providerId };\r\n}\r\n\r\nconst actionCreators = {\r\n getControlSummary: controlSummaryActions.getControlSummary,\r\n \r\n};\r\n\r\nconst connectedControlSummary = connect(mapState, actionCreators)(ControlSummary);\r\nexport { connectedControlSummary as ControlSummary };\r\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","const DAY_NAME = [\r\n \"Sunday\",\r\n \"Monday\",\r\n \"Tuesday\",\r\n \"Wednesday\",\r\n \"Thursday\",\r\n \"Friday\",\r\n \"Saturday\"\r\n];\r\nconst DAY = 1000 * 60 * 60 * 24;\r\n\r\nexport function getWeekDates(fromDt) {\r\n const date = new Date(fromDt);\r\n \r\n const arr = [];\r\n for (let i = 6; i >= 0; i--) {\r\n let nextDate;\r\n if (i === 0) {\r\n nextDate = new Date(date);\r\n arr.push({\r\n date: nextDate,\r\n dayName: DAY_NAME[nextDate.getDay()],\r\n localDateString: nextDate.toLocaleDateString()\r\n });\r\n } else {\r\n nextDate = new Date(date.getTime() - DAY * i);\r\n arr.push({\r\n date: nextDate,\r\n dayName: DAY_NAME[nextDate.getDay()],\r\n localDateString: nextDate.toLocaleDateString()\r\n });\r\n }\r\n }\r\n return arr;\r\n}\r\n\r\n\r\nconst timeSeries = [];\r\nfor (let i = 0; i < 24; i++) {\r\n timeSeries.push(`${i}:00`);\r\n}\r\n\r\nexport { timeSeries };","var _rect, _rect2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCloseButton(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 17,\n viewBox: \"0 0 18 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 12.1924,\n y: 3.19238,\n width: 3,\n height: 12,\n transform: \"rotate(45 12.1924 3.19238)\",\n fill: \"white\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 14.3137,\n y: 11.6569,\n width: 3,\n height: 12,\n transform: \"rotate(135 14.3137 11.6569)\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseButton);\nexport default __webpack_public_path__ + \"static/media/CloseButton.ffa4cdd15e70a0c0c2a65f30ede0a042.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLeftarrowWithOutTail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 7 10.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"7 1.75 5.25 0 1.75 3.5 1.75 3.5 0 5.25 1.75 7 5.25 10.5 7 8.75 3.5 5.25 7 1.75\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeftarrowWithOutTail);\nexport default __webpack_public_path__ + \"static/media/leftarrowWithOutTail.ccb37eb62764053d1879883ea523e8c9.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRightArrowWithoutTail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 7 10.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"0 8.75 1.75 10.5 5.25 7 5.25 7 7 5.25 5.25 3.5 1.75 0 0 1.75 3.5 5.25 0 8.75\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRightArrowWithoutTail);\nexport default __webpack_public_path__ + \"static/media/right_arrow_withoutTail.932ce20876eb7c159e250c450dcc3a6a.svg\";\nexport { ForwardRef as ReactComponent };","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"calendar_container__uCvAP\",\"weekDaysContainer\":\"calendar_weekDaysContainer__Pc1GH\",\"daysContainer\":\"calendar_daysContainer__lERTw\",\"timeSeriesContainer\":\"calendar_timeSeriesContainer__6bF6x\",\"cellsContainer\":\"calendar_cellsContainer__p-G8l\",\"groupedTicketsContainer\":\"calendar_groupedTicketsContainer__Sx+Hd\",\"title\":\"calendar_title__gLtZR\",\"groupedTicketPopup\":\"calendar_groupedTicketPopup__zcfr2\",\"subTicket\":\"calendar_subTicket__RdL0n\",\"textOverflow\":\"calendar_textOverflow__ogpDl\",\"searchInputContainer\":\"calendar_searchInputContainer__lvsNW\",\"makeMeRound\":\"calendar_makeMeRound__KgMed\"};","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import React from 'react';\r\nimport ReactDOM from 'react-dom';//const modalRoot = document.getElementById('modal-root')\r\nimport CloseIcon from '../../Assets/CloseButton.svg';\r\n\r\nclass Modal extends React.Component {\r\n\r\n render() {\r\n return ReactDOM.createPortal(\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n {this.props.children}\r\n
\r\n \r\n \r\n ,\r\n document.getElementById(this.props.rootId),\r\n )\r\n }\r\n}\r\n\r\n\r\n//import { useEffect } from \"react\";\r\n//import { createPortal } from \"react-dom\";\r\n\r\n//const Modal = ({ children }) => {\r\n// const mount = document.getElementById(\"modal-root\");\r\n// const el = document.createElement(\"div\");\r\n\r\n// useEffect(() => {\r\n// mount.appendChild(el);\r\n// return () => mount.removeChild(el);\r\n// }, [el, mount]);\r\n\r\n// return createPortal(children, el)\r\n//};\r\n\r\n//export default Modal;\r\n\r\nexport default Modal;\r\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRecordSearch(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 17,\n viewBox: \"0 0 16 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3 15L11.7 11.4C12.6986 10.0853 13.1596 8.43985 12.9892 6.79769C12.8189 5.15552 12.0301 3.6397 10.7829 2.55794C9.53566 1.47618 7.92355 0.909553 6.2738 0.97308C4.62405 1.03661 3.06028 1.72553 1.89996 2.9C0.683535 4.12188 0.000610352 5.77584 0.000610352 7.5C0.000610352 9.22415 0.683535 10.8781 1.89996 12.1C3.00462 13.203 4.46935 13.8717 6.0264 13.9837C7.58345 14.0957 9.1288 13.6436 10.38 12.71L13.98 16.31L15.3 15ZM3.21996 10.78C2.77182 10.3532 2.41359 9.84107 2.16635 9.27375C1.91911 8.70643 1.78785 8.09538 1.78031 7.47657C1.77276 6.85776 1.88908 6.24369 2.12241 5.67051C2.35575 5.09733 2.70139 4.57662 3.13899 4.13902C3.57658 3.70142 4.0973 3.35579 4.67048 3.12245C5.24366 2.88911 5.85772 2.7728 6.47653 2.78034C7.09534 2.78789 7.70639 2.91914 8.27371 3.16638C8.84103 3.41363 9.35316 3.77186 9.77996 4.22C10.4285 4.8689 10.8701 5.6955 11.049 6.59531C11.2278 7.49513 11.136 8.42777 10.7849 9.27538C10.4339 10.123 9.83947 10.8475 9.07679 11.3574C8.3141 11.8673 7.41738 12.1396 6.49996 12.14C5.89024 12.1431 5.28604 12.0243 4.7228 11.7908C4.15956 11.5573 3.64863 11.2136 3.21996 10.78Z\",\n fill: \"#879FAA\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRecordSearch);\nexport default __webpack_public_path__ + \"static/media/RecordSearch.2f8924925dc36d87248a5b5f84904b41.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useEffect } from 'react';\r\n\r\nconst Message = ({ variant, children }) => {\r\n const [show, setShow] = useState(true)\r\n\r\n useEffect(() => {\r\n const timeId = setTimeout(() => {\r\n setShow(false)\r\n }, 2000)\r\n\r\n return () => {\r\n clearTimeout(timeId)\r\n }\r\n }, []);\r\n\r\n \r\n if (!show) {\r\n return null;\r\n }\r\n\r\n \r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {children}\r\n
\r\n
\r\n )\r\n}\r\n\r\nMessage.defaultProps = {\r\n variant: 'danger',\r\n children:'Something went wrong.'\r\n}\r\n\r\nexport default Message;","import React, { useState, useEffect, useRef, useLayoutEffect } from \"react\";\r\nimport { getWeekDates, timeSeries } from \"./utility\";\r\nimport CloseIcon from '../../Assets/CloseButton.svg';\r\nimport leftArrow from '../../Assets/leftarrowWithOutTail.svg';\r\nimport rightArrow from '../../Assets/right_arrow_withoutTail.svg';\r\nimport styles from \"./calendar.module.css\";\r\nimport Draggable from \"react-draggable\";\r\nimport { getInvoiceWiseData, getControlDataByInvoice } from '../../_services/controlSummary.service';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport Modal from \"../Portal/Portal\";\r\nimport RecordSearch from '../../Assets/RecordSearch.svg';\r\nimport { TicketGroupedComponent, TicketComponent, TicketChatComponent, debouncedFn,getHighlightedText } from \"../Dashboard/Dashboard\";\r\nimport { colorCodes } from '../../_helpers';\r\nimport Message from '../Message';\r\n\r\n\r\nconst Calendar = ({ companyId, providerId, handleViewChange}) => {\r\n const [data, setData] = useState([])\r\n const [dateRange, setDateRange] = useState({ //7days starting\r\n from: -6,\r\n to: 0\r\n });\r\n const [weekDates, setWeekDates] = useState(getWeekDates(new Date()));\r\n const [calendarCells, setCalendarCells] = useState(getCalendarCellData(weekDates))\r\n\r\n\r\n const [searchTerm, setSearchTerm] = useState('');\r\n const [hasErrored, setHasErrored] = useState(false)\r\n\r\n\r\n let queriedData = data;\r\n if (!searchTerm) {\r\n queriedData = data;\r\n } else {\r\n\r\n queriedData = Object.entries(data).reduce((acc, curr) => {\r\n let [key, value] = curr;\r\n\r\n let ifIncludes = false;\r\n let filteredTickets = value.filter(d => {\r\n\r\n let flag = false;\r\n let searchStr = d.invoice + d.vehicleName;\r\n\r\n if (searchStr.toLowerCase().includes(searchTerm.toLowerCase())) {\r\n flag = true;\r\n }\r\n return flag\r\n })\r\n if (filteredTickets.length > 0) {\r\n ifIncludes = true;\r\n }\r\n\r\n if (ifIncludes) {\r\n return { ...acc, [key]: [...filteredTickets] }\r\n } else {\r\n return { ...acc }\r\n }\r\n\r\n\r\n }, {})\r\n }\r\n\r\n\r\n const updateSearchTerm = debouncedFn(function (val) {\r\n setSearchTerm(val);\r\n }, 800)\r\n\r\n const handleSearchInputChange = (e) => {\r\n updateSearchTerm(e.target.value)\r\n }\r\n\r\n const handleDateChange = (type) => {\r\n document.querySelector(\".loadingIdentifier\").classList.add(\"simulateLoading\");\r\n if (type === \"previous\") {\r\n setWeekDates(getWeekDates(new Date(Date.now() + (dateRange.to - 7) * 24 * 3600 * 1000 )))\r\n setDateRange(dateRange => ({\r\n from: dateRange.from - 7,\r\n to: dateRange.to - 7\r\n }))\r\n }\r\n else if (type === \"next\") {\r\n if (dateRange.to + 7 > 0) {\r\n document.querySelector(\".loadingIdentifier\").classList.remove(\"simulateLoading\");\r\n return;//already at latest slot\r\n }\r\n else {\r\n setWeekDates(getWeekDates(new Date(Date.now() + (dateRange.to + 7) * 24 * 3600 * 1000)))\r\n setDateRange(dateRange => ({\r\n from: dateRange.from + 7,\r\n to: dateRange.to + 7\r\n }))\r\n }\r\n }\r\n }\r\n\r\n function getCalenderDataCustomDate(from, to) {\r\n \r\n let fromDt = new Date(Date.now() + from * 24 * 3600 * 1000).toISOString().split('T')[0];\r\n let toDt = new Date(Date.now() + to * 24 * 3600 * 1000).toISOString().split('T')[0];\r\n if (hasErrored) {\r\n setHasErrored(false)\r\n }\r\n \r\n getInvoiceWiseData({ companyId, providerId, fromDt, toDt }).then(async (res) => {\r\n\r\n return await Promise.resolve(setData(groupCalData(res.result))).then(() => {\r\n \r\n document.querySelector(\".loadingIdentifier\").classList.remove(\"simulateLoading\");\r\n });\r\n\r\n }).catch(err => {\r\n console.log('err', err)\r\n document.querySelector(\".loadingIdentifier\").classList.remove(\"simulateLoading\");\r\n setHasErrored({msg:err})\r\n \r\n })\r\n\r\n \r\n }\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await getCalenderDataCustomDate(dateRange.from, dateRange.to);\r\n \r\n })()\r\n \r\n }, [calendarCells])\r\n\r\n\r\n const firstUpdate = useRef(true);\r\n\r\n useEffect(() => {\r\n \r\n if (firstUpdate.current) {\r\n firstUpdate.current = false;\r\n return;\r\n }\r\n setCalendarCells(getCalendarCellData(weekDates));\r\n \r\n }, [weekDates])\r\n \r\n \r\n return (\r\n
\r\n {hasErrored && hasErrored.msg && {hasErrored.msg}}\r\n
\r\n { handleDateChange(\"previous\") }} className=\"centerMyElement\" style={{ background: \"black\", cursor: \"pointer\", padding: \"1px 5px\", borderRadius: \"5px\" }}>\r\n \"previousBtn\"\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \"Search\"\r\n
\r\n
\r\n { handleDateChange(\"next\") }} className=\"centerMyElement\" style={{ background: \"black\", cursor: \"pointer\", padding: \"1px 5px\", borderRadius: \"5px\" }}>\r\n \"nextBtn\"\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n {weekDates.map((d) => {\r\n let month = d.date.toString().split(\" \")[1];\r\n return (\r\n
\r\n
{d.dayName}
\r\n
{d.date.getDate()} { month}
\r\n
)\r\n })}\r\n
\r\n
\r\n
\r\n {timeSeries.map((d) => (\r\n
{d}
\r\n ))}\r\n
\r\n
\r\n {calendarCells.map((d, i) => {\r\n \r\n if (!queriedData[d]) {\r\n return
;\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n )\r\n};\r\n\r\n\r\nlet prevTicketHandler = null\r\n\r\nconst GroupTicket = ({ ticketsArr, companyId, providerId, lastModifiedKeyValue,searchTerm}) => {\r\n const [isGroupedTicketPopupOpen, setGroupedTicketPopupOpen] = useState(false);\r\n const [isInvoiceModal, setInvoiceModal] = useState(false);\r\n const [invoiceData, setInvoiceData] = useState([]);\r\n const groupedTicketPopupRef = React.useRef(null);\r\n const [ticketStatus, setTicketStatus] = useState({})\r\n\r\n const[hasErrored,setHasErrored] = useState(false)\r\n\r\n let { vehicleName, invoice } = ticketsArr[0];//for first ticket\r\n \r\n const handleShowModalClick = () => {\r\n\r\n setInvoiceModal(!isInvoiceModal)\r\n }\r\n\r\n const handleGroupStatusForTickets = (x) => {\r\n setTicketStatus(x);\r\n }\r\n\r\n\r\n const handleGroupedTicketClick = (event) => {\r\n\r\n event.stopPropagation();\r\n if (prevTicketHandler) {\r\n prevTicketHandler();\r\n }\r\n if (!isGroupedTicketPopupOpen) {// in case its was false\r\n prevTicketHandler = function () {\r\n setGroupedTicketPopupOpen(false);\r\n }\r\n } else {\r\n prevTicketHandler = null\r\n }\r\n\r\n setGroupedTicketPopupOpen(!isGroupedTicketPopupOpen); //open grouped ticket popup\r\n\r\n };\r\n\r\n useLayoutEffect(() => {\r\n if (groupedTicketPopupRef.current) {\r\n\r\n let popup = groupedTicketPopupRef.current;\r\n let popupRect = popup.getBoundingClientRect();\r\n\r\n let parentofPopup = document.querySelector('#calendarCellsContainer');\r\n let parentRect = parentofPopup.getBoundingClientRect();\r\n\r\n if (popupRect.right + 10 >= parentRect.right) {\r\n let diff = parentRect.right - popupRect.right + 10\r\n popup.style.left = diff + 'px'\r\n }\r\n\r\n if (popupRect.bottom + 10 >= parentRect.bottom) {\r\n let diff = popupRect.bottom - parentRect.bottom + 10\r\n popup.style.top = '-' + diff + 'px'\r\n }\r\n\r\n }\r\n }, [isGroupedTicketPopupOpen])\r\n\r\n const handleGroupInvoiceTicketsClick = (invoice) => {\r\n if (hasErrored) {\r\n setHasErrored(false)\r\n }\r\n\r\n //console.log(\"invoice--- \", invoice);\r\n if (invoice == null || invoice == \"\") {\r\n alert(\"This ticket does not have Invoice\");\r\n return;\r\n }\r\n\r\n if (companyId == null)\r\n companyId = \"\";\r\n getControlDataByInvoice({ companyId, providerId, invoice }).then((res) => {\r\n\r\n //console.log(\"ivoice data from parent-- \", res.result);\r\n setInvoiceData(res.result);\r\n setInvoiceModal(!isInvoiceModal)\r\n \r\n\r\n }).catch(err => {\r\n console.log('err', err)\r\n setHasErrored({msg:err})\r\n })\r\n \r\n\r\n \r\n };\r\n\r\n const addCommentToTicket = (dataKey, ticketid, commentBody, newStatusOfTicket, lastModifiedKeyValue) => {\r\n\r\n let [vehicleName, invoice] = dataKey.split('|')\r\n setInvoiceData([...invoiceData.map(d => {\r\n if (d.vehicleName === vehicleName && d.invoice === invoice && d.ticketid === commentBody.stkt) {\r\n let existingComments = d.comments ? [...d.comments] : [];\r\n return { ...d, lastModifiedDate: new Date(commentBody.dt * 1000).toISOString(), comments: [commentBody, ...existingComments], statusOfTicket: newStatusOfTicket }\r\n }\r\n return d;\r\n })])\r\n }\r\n \r\n\r\n useEffect(() => {\r\n //console.log(\"tickertsArr-- \", ticketsArr);\r\n let numStatusTickets = ticketsArr.reduce((acc, curr) => {\r\n let { statusTicket } = curr;\r\n if (statusTicket === null) {\r\n statusTicket = \"0\"\r\n }\r\n return { ...acc, [statusTicket]: acc[statusTicket] ? acc[statusTicket] + 1 : 1 }\r\n }, {})\r\n //console.log(numStatusTickets)\r\n\r\n setTicketStatus(numStatusTickets);\r\n\r\n return () => {\r\n if (prevTicketHandler) {\r\n prevTicketHandler()\r\n }\r\n }\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n \r\n if (isInvoiceModal) {\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n else {\r\n document.body.style.overflow = \"visible\";\r\n }\r\n\r\n },[isInvoiceModal])\r\n\r\n return (\r\n <>\r\n
handleGroupInvoiceTicketsClick(invoice)}>\r\n {/*{ticketsArr.length == 1 ? ticketsArr[0] : }{ticketsArr.length - 1}*/}\r\n {hasErrored && hasErrored.msg && { hasErrored.msg}}\r\n\r\n
\r\n

Vehicle Number

\r\n

{getHighlightedText(vehicleName)(searchTerm)}

\r\n
\r\n
\r\n

Invoice

\r\n

{getHighlightedText(invoice)(searchTerm)}

\r\n
\r\n\r\n
\r\n {\r\n\r\n Object.entries(ticketStatus).map(([key, val]) => )\r\n }\r\n
\r\n\r\n {isGroupedTicketPopupOpen && (\r\n
e.stopPropagation()} ref={groupedTicketPopupRef} >\r\n \r\n

Tickets

\r\n \r\n \"chats\"\r\n \r\n
\r\n \r\n
\r\n {ticketsArr.map((ticketData, i) => {\r\n //console.log(ticketData )\r\n if (i == 0)\r\n return null;\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n \r\n\r\n
\r\n )}\r\n\r\n \r\n \r\n {\r\n Boolean(ticketsArr.length - 1) &&\r\n (\r\n \r\n )\r\n }\r\n\r\n {\r\n isInvoiceModal && (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n\r\n \r\n );\r\n};\r\n\r\nconst SubTickets = ({ ticketData, companyId, providerId, handleGroupInvoiceTicketsClick,searchTerm}) => {\r\n\r\n\r\n let invoice = ticketData?.invoice;\r\n\r\n const handleSubTicketClick = (event) => {\r\n event.stopPropagation();\r\n\r\n //console.log(\"invoice--- \", companyId, providerId ,invoice);\r\n handleGroupInvoiceTicketsClick(invoice);\r\n\r\n };\r\n\r\n return (\r\n \r\n

Vehicle Num (Invoice)

\r\n \r\n

\r\n {getHighlightedText(ticketData.vehicleName)(searchTerm)} {ticketData.invoice ? getHighlightedText(ticketData.invoice)(searchTerm) : \"\"}\r\n

\r\n \r\n );\r\n};\r\n\r\nfunction groupCalData(data) {\r\n console.log(\"original- \", data);\r\n let list = data.reduce((acc, curr) => {\r\n let { lastModifiedDate } = curr;\r\n let date = new Date(lastModifiedDate);\r\n let key = `${date.toLocaleDateString()}|${date.getHours()}`;\r\n\r\n if (acc[key]) {\r\n return {\r\n ...acc, [key]: [...acc[key], { ...curr }].sort(function (a, b) {\r\n return (a.lastModifiedDate < b.lastModifiedDate) ? -1 : ((a.lastModifiedDate > b.lastModifiedDate) ? 1 : 0);\r\n })\r\n };\r\n } else {\r\n return { ...acc, [key]: [curr] };\r\n }\r\n }, {});\r\n console.log(\"altered - \", list);\r\n return list;\r\n}\r\n\r\nfunction getCalendarCellData(weekDates) {\r\n let calendarCells = [];\r\n for (let i = 0; i < timeSeries.length; i++) {\r\n for (let j = 0; j < weekDates.length; j++) {\r\n let time = timeSeries[i].split(\":\")[0];\r\n calendarCells.push(`${weekDates[j][\"localDateString\"]}|${time}`);\r\n }\r\n }\r\n\r\n return calendarCells;\r\n}\r\n\r\nfunction getLast7days() {\r\n let d1 = new Date();\r\n let d2 = new Date(Date.now() - 7 * 24 * 3600);\r\n\r\n return {\r\n from: d1.toISOString().split('T')[0],\r\n to: d2.toISOString().split('T')[0]\r\n }\r\n}\r\nexport default Calendar;\r\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopedSlidesLimit', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import Swiper from 'swiper';\nexport const calcLoopedSlides = (slides, swiperParams) => {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n};","import React from 'react';\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from '../components-shared/get-params.js';\nimport { mountSwiper } from '../components-shared/mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from '../components-shared/utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from '../components-shared/get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from '../components-shared/update-swiper.js';\nimport { renderVirtual } from './virtual.js';\nimport { updateOnVirtualData } from '../components-shared/update-on-virtual-data.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new SwiperCore(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj = {}, splitEvents = true) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","export const updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};","import React from 'react';\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual };","import React from 'react';\nimport { calcLoopedSlides } from '../shared/calc-looped-slides.js';\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n\n for (let i = 0; i < loopedSlides; i += 1) {\n const index = i - Math.floor(i / modifiedSlides.length) * modifiedSlides.length;\n appendSlides.push(duplicateSlide(modifiedSlides[index], i, 'append'));\n prependSlides.unshift(duplicateSlide(modifiedSlides[modifiedSlides.length - index - 1], i, 'prepend'));\n }\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from '../components-shared/utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren()));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMapStroke(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 529.05 467.86\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{opacity:0.1;}.cls-2,.cls-6{opacity:0.5;}.cls-3,.cls-6{fill:#79c7ca;}.cls-4,.cls-9{fill:#56bdbf;}.cls-5,.cls-8{fill:#ea5f5e;}.cls-7{fill:#27b7cc;}.cls-8{opacity:0.2;}.cls-9{opacity:0.3;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-1\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M464.1,458.56l.12-34.19.31-34.19.07-8.54.06-4.28c0-.7,0-1.44,0-2.11a9.3,9.3,0,0,0-.23-2,9.79,9.79,0,0,0-8.19-7.64l-1.05-.15a8.53,8.53,0,0,1-1.12-.22,10.86,10.86,0,0,1-2.16-.76,11.37,11.37,0,0,1-5.91-6.68,10.82,10.82,0,0,1-.5-2.24,15.51,15.51,0,0,1-.09-2.23l0-4.27.09-17.1.71-68.37.25-17.09.06-4.27a22.15,22.15,0,0,0-.26-4.17,17.63,17.63,0,0,0-9.73-12.8,18.32,18.32,0,0,0-8.17-1.75l-17.09-.37,17.1-.07a18.74,18.74,0,0,1,8.43,1.61,18.24,18.24,0,0,1,10.4,13.21,23.68,23.68,0,0,1,.33,4.35v21.36L447.22,332l-.17,17.09,0,4.27a13.58,13.58,0,0,0,.07,2,8.45,8.45,0,0,0,.42,1.92,9.76,9.76,0,0,0,5.08,5.79,9,9,0,0,0,1.86.67,5.47,5.47,0,0,0,1,.19l1.06.16a11.24,11.24,0,0,1,4.26,1.56,11.36,11.36,0,0,1,5.13,7.27,10.72,10.72,0,0,1,.25,2.26c0,.75,0,1.44,0,2.16l-.08,4.27-.19,8.54-.77,34.18Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M529.05,276.08l-63.78-.5-63.77-.67L274,273.29l-31.89-.49-15.94-.24-4-.06a36,36,0,0,0-3.88.21,32.72,32.72,0,0,0-14.5,5.3,33.69,33.69,0,0,0-3.11,2.34l-3,2.6c-1,.84-2,1.77-3.13,2.57a17.74,17.74,0,0,1-3.67,2,17.51,17.51,0,0,1-4,1,18,18,0,0,1-2.07.13l-2,0-15.94.26-4,.06c-1.32,0-2.65.09-4.05,0a17,17,0,0,1-7.77-2.67,20,20,0,0,1-3.16-2.59l-2.9-2.74-5.8-5.47-11.59-10.94-23.19-21.89c-1.94-1.81-3.84-3.71-5.8-5.44A34.16,34.16,0,0,0,92,232.81,34.8,34.8,0,0,0,76.8,229L45,227.29l31.86,1.29a35.39,35.39,0,0,1,15.49,3.68A34.52,34.52,0,0,1,99,236.65c2,1.75,3.93,3.59,5.9,5.38l23.35,21.72L140,274.61,145.8,280l2.91,2.71a18.53,18.53,0,0,0,3,2.43,15.85,15.85,0,0,0,7.18,2.41c1.25.11,2.57,0,3.91,0l4-.08,15.94-.31a38.05,38.05,0,0,0,3.91-.17,16.15,16.15,0,0,0,3.68-.93,15.59,15.59,0,0,0,3.34-1.8c1-.7,2-1.63,3-2.49l3-2.6a33.67,33.67,0,0,1,3.24-2.46,34.18,34.18,0,0,1,15.16-5.58,32.56,32.56,0,0,1,4.07-.23l4,0,16,.21,31.88.42,127.53,2,63.77,1.14Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M521.77,95l1.1,69.2a23.2,23.2,0,0,1-1.28,8.65,22.66,22.66,0,0,1-4.49,7.54c-4.09,4.15-8.22,8.12-12.33,12.18l-6.17,6.07a39.88,39.88,0,0,1-3.22,3,24,24,0,0,1-3.74,2.39,22.86,22.86,0,0,1-8.49,2.4c-1.5.12-2.95.05-4.38.05l-4.33,0-69.2-.76-8.65-.1-4.3,0a17,17,0,0,0-4.08.58,16.42,16.42,0,0,0-3.81,1.56A27.23,27.23,0,0,0,381,210.1l-6.83,5.31-27.33,21.22L340,241.92l-3.42,2.65c-1.12.89-2.34,1.76-3.34,2.65a16.63,16.63,0,0,0-4.53,6.78,16.33,16.33,0,0,0-.88,4c-.11,1.37-.16,2.86-.24,4.29l-.9,17.27-.22,4.32a19.27,19.27,0,0,1-.69,4.44,17.94,17.94,0,0,1-4.54,7.71,19.47,19.47,0,0,1-1.68,1.49l-1.69,1.35-3.39,2.69L307.68,307l-13.53,10.79-13.54,10.77-3.39,2.69c-1.11.9-2.31,1.78-3.31,2.7a16.42,16.42,0,0,0-4.41,6.94,17.1,17.1,0,0,0-.77,4.08l-.23,4.32-.47,8.63-.94,17.28-1.89,34.55-1,17.28-.49,8.63-.25,4.32a18.68,18.68,0,0,1-5.1,11.78,26.81,26.81,0,0,1-3.3,2.83l-3.41,2.66L238,467.86l13.51-10.8,3.38-2.7a26.57,26.57,0,0,0,3.23-2.84,18.1,18.1,0,0,0,4.18-7.38c.84-2.74.7-5.65.88-8.53l.39-8.65.78-17.28L266,375.12l.83-17.29.41-8.64.21-4.32A17.76,17.76,0,0,1,273,332.93c1.11-1,2.25-1.87,3.37-2.79l3.37-2.71,13.5-10.82,13.51-10.81,6.76-5.4,3.37-2.7,1.69-1.36a17,17,0,0,0,1.55-1.37,16.31,16.31,0,0,0,4.13-7.06,16.85,16.85,0,0,0,.62-4.09l.22-4.32.86-17.28c.08-1.45.12-2.84.24-4.35a17.56,17.56,0,0,1,1-4.41,18.19,18.19,0,0,1,4.95-7.47c1.16-1,2.3-1.83,3.43-2.73l3.42-2.66,6.83-5.3,27.38-21.16,6.84-5.29a28.67,28.67,0,0,1,3.63-2.56,18.21,18.21,0,0,1,8.64-2.32l4.35.05,8.65.12,69.2,1,4.33.07c1.44,0,2.88.09,4.26,0a21.59,21.59,0,0,0,8.06-2.22,20.94,20.94,0,0,0,3.56-2.25,38,38,0,0,0,3.15-2.86l6.21-6c4.12-4,8.33-8,12.37-12.05a21.71,21.71,0,0,0,4.35-7.21,22.69,22.69,0,0,0,1.3-8.35Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M340.59,459.74l5.68-8.06c.94-1.34,1.91-2.67,2.83-4a26,26,0,0,0,2.27-4.35,25.5,25.5,0,0,0,1.84-9.57v-9.85l-.06-39.43,0-39.42V315.46c0-1.64,0-3.31-.05-4.89a24.49,24.49,0,0,0-.74-4.74,24.83,24.83,0,0,0-4.14-8.6,36,36,0,0,0-3.21-3.62l-3.41-3.55L328,275.83l-27.27-28.47-27.27-28.48-13.64-14.23-3.41-3.56c-1.15-1.19-2.24-2.4-3.43-3.44a26.83,26.83,0,0,0-8.12-4.93,27.32,27.32,0,0,0-9.36-1.81l-9.85-.34-19.7-.68-39.4-1.36c-1.65-.07-3.26-.1-5-.2a23.79,23.79,0,0,1-13.89-5.68,27.08,27.08,0,0,1-3.47-3.65l-3.18-3.77c-2.12-2.53-4.24-5-6.35-7.58a23.84,23.84,0,0,1-4.26-9.15,24.49,24.49,0,0,1-.57-5l0-4.93,0-19.71c0-1.64,0-3.31-.08-4.88a21.31,21.31,0,0,0-.88-4.7,22.13,22.13,0,0,0-4.62-8.33L111.06,96.27,104.46,89c-1.1-1.21-2.19-2.46-3.3-3.64a22.34,22.34,0,0,0-3.66-3.13,22.58,22.58,0,0,0-8.89-3.59,26.73,26.73,0,0,0-4.84-.34l-4.93-.06L0,77.18l78.85.19,4.93,0a27,27,0,0,1,5,.32A23.45,23.45,0,0,1,98,81.4a23.73,23.73,0,0,1,3.84,3.23c1.14,1.21,2.22,2.43,3.34,3.64l6.64,7.28,13.29,14.58a23.59,23.59,0,0,1,4.92,8.74,23.36,23.36,0,0,1,1,5c.13,1.7.08,3.33.11,5l.15,19.71,0,4.93a22.8,22.8,0,0,0,.55,4.73,22.24,22.24,0,0,0,4,8.58c2,2.49,4.22,5,6.32,7.52l3.18,3.76a26.05,26.05,0,0,0,3.32,3.47,22.13,22.13,0,0,0,13,5.3c1.59.09,3.27.12,4.9.18L206,188.28l19.7.64,9.85.32a28.36,28.36,0,0,1,18.53,7.16c1.28,1.13,2.39,2.37,3.52,3.54l3.4,3.57,13.61,14.26,27.21,28.53,27.22,28.52,13.6,14.27,3.4,3.57a37.73,37.73,0,0,1,3.3,3.77,26,26,0,0,1,5.06,14.07c.07,1.7,0,3.31,0,5l-.07,9.86L354.23,345,354,384.45l-.35,39.43-.09,9.85a25.75,25.75,0,0,1-2,9.65,26.34,26.34,0,0,1-2.33,4.35c-.94,1.36-1.92,2.67-2.87,4Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M156.88,0l34.7,50.55,34.56,50.66c1.45,2.1,2.85,4.24,4.36,6.27s3.11,4,4.8,5.89l10.12,11.52c3.38,3.85,6.75,7.63,10.13,11.56a20.9,20.9,0,0,1,3.64,7,20.65,20.65,0,0,1,.74,3.9c.11,1.34.12,2.58.17,3.87a24.06,24.06,0,0,0,1.15,7.33,23.11,23.11,0,0,0,1.44,3.4c.29.55.6,1.09.93,1.61s.7,1.12,1,1.71a18,18,0,0,1,2,7.68,19.07,19.07,0,0,1,0,2l-.15,1.92-.3,3.82-.3,3.82c-.09,1.29-.23,2.53-.21,3.76a23.36,23.36,0,0,0,1.19,7.27,23.85,23.85,0,0,0,3.39,6.55l4.56,6.16,2.28,3.1a22.21,22.21,0,0,1,4,11.09,32.2,32.2,0,0,1,0,3.93l-.16,3.83-.31,7.65-1.23,30.64-2.5,61.27L274.29,391l-2.8,61.25,2-61.28,2.15-61.28,2.27-61.28L279,237.81l.29-7.66.15-3.83a29,29,0,0,0,0-3.73,20.27,20.27,0,0,0-1.89-7.08,20.55,20.55,0,0,0-1.86-3.17l-2.26-3.07-4.55-6.18a24.95,24.95,0,0,1-4.87-14.8c0-1.33.13-2.63.23-3.89l.3-3.82.31-3.82.16-1.91c0-.6,0-1.21,0-1.82a16.5,16.5,0,0,0-1.84-7c-.28-.55-.59-1-.93-1.6s-.68-1.13-1-1.71a24.28,24.28,0,0,1-1.53-3.65,25.5,25.5,0,0,1-1.21-7.76c-.05-1.26-.06-2.58-.16-3.78a19,19,0,0,0-4-10.13c-3.27-3.83-6.7-7.69-10-11.53L234.24,114.3c-1.69-1.93-3.31-3.94-4.83-6s-2.9-4.24-4.34-6.35L190.9,51Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M336,68.39l-44.94,45.83-11.27,11.43-5.63,5.71-2.82,2.86c-.93,1-1.92,1.88-2.72,2.87a15.39,15.39,0,0,0-3.17,7,15.64,15.64,0,0,0-.18,3.87l.24,4a12.26,12.26,0,0,1-5.41,10.84,14.58,14.58,0,0,0-2.93,2.48,14.3,14.3,0,0,0-3.43,6.76,24.18,24.18,0,0,0-.38,3.88l-.2,4c-.14,2.68-.26,5.33-.43,8A18.69,18.69,0,0,1,237,205a14.5,14.5,0,0,1-2.08.2c-.7,0-1.39,0-2,0l-4-.06-8-.11-32.09-.45-2,0-1.92.07c-.64.09-1.27.16-1.9.27s-1.25.28-1.87.46A18.58,18.58,0,0,0,168,222.59l-4.28,128.3-.29,8a34.49,34.49,0,0,0,.42,7.87A32,32,0,0,0,170.2,381c1.62,2,3.54,4,5.33,5.93l5.45,5.9,10.89,11.78,43.43,47.26-44-46.69-11-11.71-5.49-5.85c-1.81-2-3.71-3.83-5.43-6A33.2,33.2,0,0,1,162.69,367a36.22,36.22,0,0,1-.49-8.11l.23-8,3.9-128.32a20.21,20.21,0,0,1,14.28-18.67c.67-.2,1.35-.33,2-.5s1.38-.19,2.07-.29l2.09-.06,2,0,32.09.53,8,.13,4,.07c.68,0,1.33,0,2,0a15.41,15.41,0,0,0,1.92-.19,17.18,17.18,0,0,0,14.48-15.73l.47-8,.23-4a25.46,25.46,0,0,1,.42-4.09,15.83,15.83,0,0,1,7-10,11.07,11.07,0,0,0,4.94-9.73l-.22-4a16.86,16.86,0,0,1,.23-4.13,16.46,16.46,0,0,1,3.45-7.45c.89-1.08,1.88-2,2.81-2.93l2.84-2.83,5.67-5.68,11.36-11.34Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M289.18,384.16c-8.52.15-17,.18-25.54.28l-25.53.09-12.77,0-6.38,0c-2.14,0-4.23.07-6.46-.13a22.9,22.9,0,0,1-12.05-5,25.65,25.65,0,0,1-2.41-2.24l-2.2-2.31-4.41-4.62L182.67,361l-4.38-4.64a23.42,23.42,0,0,1-3.9-5.29,22.94,22.94,0,0,1-2.65-12.72l.64-12.75,1.36-25.49c.52-8.5,1-17,1.54-25.49-.19,8.51-.48,17-.71,25.52l-.89,25.52-.49,12.76a21.48,21.48,0,0,0,2.55,11.92,22.05,22.05,0,0,0,3.69,4.93l4.41,4.62,8.81,9.23,4.38,4.64,2.2,2.32a20.32,20.32,0,0,0,2.24,2.12,21.31,21.31,0,0,0,11.19,4.7c2,.19,4.19.11,6.31.16l6.38,0,12.76.15,25.54.37C272.16,383.8,280.67,383.93,289.18,384.16Z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-4\",\n d: \"M5.85,360.9l21.34-.3,21.34-.2L91.2,360l42.68-.26,21.34-.09h2.68c.94,0,1.89.06,2.83.15a30.27,30.27,0,0,1,5.57,1.07A30.87,30.87,0,0,1,176.4,366c.75.58,1.49,1.19,2.18,1.83s1.31,1.24,2,1.86l3.86,3.68,7.72,7.36,7.71,7.38c.63.6,1.3,1.28,1.9,1.81s1.24,1.08,1.89,1.58a26.54,26.54,0,0,0,4.17,2.62,26.93,26.93,0,0,0,9.4,2.74,39.8,39.8,0,0,0,5.05.1l5.34-.11,21.33-.43,10.67-.21,5.33-.1,1.33,0h.67l.58,0a17.66,17.66,0,0,0,2.29-.27A15.62,15.62,0,0,0,282,383.37c.26-1.42.3-3.29.66-5.28a24.27,24.27,0,0,1,1.75-5.66,24.87,24.87,0,0,1,3.06-5.07,24.41,24.41,0,0,1,2-2.22l1.94-1.89,15.3-14.86,30.69-29.66,15.34-14.82.48-.46.41-.42c.29-.28.53-.59.8-.87a18.28,18.28,0,0,0,1.42-1.89,19.44,19.44,0,0,0,2.11-4.23,19.76,19.76,0,0,0,1-4.62c.06-.74.1-1.65.14-2.54l.12-2.66c1.3-28.42,2.51-56.85,3.9-85.26a23.83,23.83,0,0,1,3.1-11,23.07,23.07,0,0,1,3.46-4.64c1.32-1.33,2.55-2.52,3.83-3.78l15.21-15,30.49-29.86,30.59-29.75L465,92,480.4,77.23,465.58,92.58l-14.89,15.29L420.9,138.43,391,168.88l-15,15.2c-1.23,1.25-2.55,2.56-3.7,3.77a19.38,19.38,0,0,0-2.86,3.93,19.89,19.89,0,0,0-2.46,9.34c-.93,28.43-2,56.86-3.06,85.29l-.1,2.67c0,.88-.05,1.75-.13,2.78a23.77,23.77,0,0,1-1.25,5.78,23.43,23.43,0,0,1-2.62,5.31,23.93,23.93,0,0,1-1.77,2.37c-.34.37-.65.75-1,1.1l-.52.53-.49.47-15.3,14.87L310.16,352l-15.34,14.82-1.89,1.84a20.25,20.25,0,0,0-1.58,1.76,19.72,19.72,0,0,0-2.45,4,20.36,20.36,0,0,0-1.41,4.51c-.28,1.51-.31,3.21-.67,5.3a20.53,20.53,0,0,1-16.08,16.25,23.36,23.36,0,0,1-3,.35l-.75,0h-.67L265,401l-5.34.08-10.66.14-21.34.25-5.33.07a42.78,42.78,0,0,1-5.6-.17A31.31,31.31,0,0,1,205.78,398a30.93,30.93,0,0,1-4.83-3.09,25.77,25.77,0,0,1-2.18-1.86c-.72-.66-1.3-1.25-2-1.88l-7.64-7.45-7.61-7.47-3.81-3.74c-.63-.61-1.29-1.28-1.89-1.83s-1.23-1.11-1.88-1.63a26.87,26.87,0,0,0-13.65-5.6c-.83-.08-1.66-.14-2.49-.16l-2.65,0L133.87,363l-42.68-.57-42.67-.73-21.33-.37Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-5\",\n d: \"M520.42,361.43l-18.25,0-18.25-.14-36.5-.27-18.24-.21-9.12-.1-2.28,0c-.8,0-1.6,0-2.4-.13a30.63,30.63,0,0,1-4.74-.78A32.15,32.15,0,0,1,394.35,350L382,336.63l-12.4-13.38-3.1-3.35-1.54-1.67c-.5-.51-1-1-1.51-1.49a28.1,28.1,0,0,0-7-4.75,30.79,30.79,0,0,0-3.93-1.54,30.32,30.32,0,0,0-4.12-.93,28.16,28.16,0,0,0-4.2-.3c-1.42,0-3,.06-4.51.09l-18.24.43-18.25.4-4.56.09a33.53,33.53,0,0,1-4.91-.27A32.94,32.94,0,0,1,276,301.87c-.61-.55-1.2-1.13-1.78-1.71s-1.13-1.22-1.61-1.77l-3-3.43-12-13.71-6-6.87a33,33,0,0,1-8-17.7,35.23,35.23,0,0,1-.26-4.9l.06-4.56.11-9.12,0-2.28,0-1.14,0-1.05a29.15,29.15,0,0,0-.41-4.17,28.15,28.15,0,0,0-2.67-7.92,27.87,27.87,0,0,0-2.19-3.58c-.4-.57-.84-1.12-1.28-1.66s-.89-1-1.43-1.61c-16.54-17.85-33.14-35.63-49.6-53.54s-32.95-35.8-49.37-53.76L124.3,93.88l-3.06-3.37c-1-1.12-2.07-2.26-3-3.5a35.13,35.13,0,0,1-4.7-8,36.14,36.14,0,0,1-2.42-8.93,35.13,35.13,0,0,1,0-9.22l2.76-18.05-2,18.14a33.89,33.89,0,0,0,2.89,17.52A34,34,0,0,0,119.48,86c.94,1.14,2,2.2,3,3.31l3.17,3.28,12.68,13.11q25.27,26.32,50.44,52.76c16.81,17.59,33.48,35.31,50.21,53a32.91,32.91,0,0,1,8.89,17.19,33.63,33.63,0,0,1,.5,4.9l0,1.23v1.14l0,2.28-.09,9.13,0,4.56a32.26,32.26,0,0,0,.23,4.2,28.14,28.14,0,0,0,6.88,15l6,6.86,12,13.74,3,3.44c.51.6,1,1.1,1.45,1.61s1,1,1.51,1.45a27.89,27.89,0,0,0,15,6.93,30.66,30.66,0,0,0,4.18.25l4.56-.08,18.24-.29,18.25-.26c1.54,0,3-.06,4.61,0a33.23,33.23,0,0,1,4.88.4,35,35,0,0,1,4.76,1.12,35.59,35.59,0,0,1,4.54,1.83,32.58,32.58,0,0,1,8,5.56c.6.55,1.15,1.15,1.71,1.74l1.54,1.69,3.05,3.4L384.86,334,397,347.56a29.11,29.11,0,0,0,14.41,9,26.61,26.61,0,0,0,4.24.79c.72.1,1.44.12,2.16.17l2.28.08,9.12.31,18.23.63L484,359.92l18.23.71Z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"cls-6\",\n cx: 326.36,\n cy: 273.3,\n r: 14.29\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"cls-7\",\n cx: 326.36,\n cy: 273.3,\n r: 7.07\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"cls-6\",\n cx: 411.6,\n cy: 223.68,\n r: 14.29\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"cls-7\",\n cx: 411.6,\n cy: 223.68,\n r: 7.07\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"cls-8\",\n cx: 354.57,\n cy: 306.69,\n r: 18.28\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"cls-5\",\n cx: 354.57,\n cy: 306.69,\n r: 9.04\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"cls-9\",\n cx: 162.6,\n cy: 362.21,\n r: 18.28\n }), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"cls-4\",\n cx: 162.6,\n cy: 362.21,\n r: 9.04\n }))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMapStroke);\nexport default __webpack_public_path__ + \"static/media/map_stroke.69d94fd731e6f1d0db1a430f4c04be2c.svg\";\nexport { ForwardRef as ReactComponent };","import \"./TripAnalysis.css\";\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\n\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport \"swiper/css\";\r\nimport \"swiper/css/pagination\";\r\nimport { Pagination } from \"swiper\";\r\n\r\nimport { getTripRouteMapData } from './../../_services/controlSummary.service';\r\nimport mapBgSvg from '../../Assets/map_stroke.svg';\r\nimport grnBlank from '../../Assets/markers/grn-blank.png';\r\nimport bluBlank from '../../Assets/markers/blu-blank.png';\r\nimport pinkBlank from '../../Assets/markers/pink-blank.png';\r\nimport placemarkCircle from '../../Assets/markers/placemark_circle.png';\r\nimport Milestone from '../../Assets/markers/Milestone.png';\r\n\r\nimport carIcon from '../../Assets/carIcon.png';\r\n\r\n\r\nlet poly = [];\r\nlet timeoutId = null;\r\n\r\nfunction TripAnalysisAndMap({ companyId, tracknumb }) {\r\n const [swiperData, setSwiperData] = useState([]);\r\n\r\n\r\n const mapContainer = useRef(null);\r\n const mapSpeed = useRef(200);\r\n const routeType = useRef('b');\r\n\r\n const tableBodyEl = useRef(null);\r\n\r\n const addTableRowAndMarker = function (idx, event_name, dttime, latlng, runKMS, location = \"\") {\r\n let tableRowEl = document.createElement('tr');\r\n tableRowEl.style.cursor = 'pointer'\r\n tableRowEl.innerHTML = ` \r\n \r\n ${idx > 9 ? idx : '0' + idx}\r\n
\r\n \r\n \r\n ${event_name}\r\n
\r\n Date :\r\n ${dttime}\r\n \r\n `;\r\n\r\n let imgIdx = 8;\r\n if (event_name.toLowerCase().indexOf(\"origin entry\") !== -1)\r\n imgIdx = 1;\r\n else if (event_name.toLowerCase().indexOf(\"customer entry\") !== -1)\r\n imgIdx = 2;\r\n\r\n let mk = L.marker(latlng, {\r\n icon: L.icon({\r\n iconUrl: imgIdx === 8 ? placemarkCircle : imgIdx === 1 ? grnBlank : imgIdx === 2 ? bluBlank : placemarkCircle,\r\n iconSize: [30, 30]\r\n })\r\n })\r\n tableRowEl.addEventListener('mouseover', function (event) {\r\n L.DomUtil.addClass(mk._icon, \"bounce\");\r\n })\r\n tableRowEl.addEventListener('mouseout', function (event) {\r\n L.DomUtil.removeClass(mk._icon, \"bounce\");\r\n })\r\n\r\n tableBodyEl.current.insertAdjacentElement(\"beforeend\", tableRowEl);\r\n let eventMsg = `

Event : ${event_name}

Date : ${dttime}

`;\r\n if (runKMS)\r\n eventMsg += `

KM since start : ${runKMS}

`;\r\n if (location)\r\n eventMsg += `

Location : ${location}

`;\r\n\r\n mk.bindPopup(eventMsg)\r\n mk.addTo(mmiState.mmiLayerGroup)\r\n }\r\n\r\n function createSite(lat, lng, distLat, distLong) {\r\n let latis = [lat + distLat, lat - distLat, lat - distLat, lat + distLat, lat + distLat];\r\n let longis = [lng + distLong, lng + distLong, lng - distLong, lng - distLong, lng + distLong];\r\n\r\n let path = [];\r\n\r\n for (let i = 0; i < latis.length; i++) {\r\n let latlng = [latis[i], longis[i]];\r\n path.push(latlng);\r\n }\r\n return path;\r\n }\r\n\r\n\r\n const drawRoute = function (type = null) {\r\n if (!swiperData) return;\r\n\r\n //removePolyline();\r\n if (timeoutId) {\r\n window.clearTimeout(timeoutId);\r\n }\r\n mmiState.mmiLayerGroup.clearLayers();\r\n\r\n tableBodyEl.current.innerHTML = ''\r\n\r\n\r\n\r\n\r\n //Polyline css\r\n routeType.current\r\n let linecss = {\r\n color: routeType.current === 'r' ? \"#FF0000\" :'black',\r\n weight: 3,\r\n opacity: 1\r\n };\r\n\r\n let points = [];\r\n let line;\r\n let w = 14, h = 33;\r\n let idx = 1;\r\n let marker = null;\r\n\r\n let path, tripDetails = \"\", tmpData = \"\";\r\n let flgReturn = 0, lastDest = \"\";\r\n\r\n // origin site\r\n if (swiperData && swiperData.result) {\r\n let item = swiperData.result[0];\r\n if (isNaN(item[\"origlat\"]) == false && parseFloat(item[\"origlat\"]) != 0) {\r\n let oMarker = L.marker([item[\"origlat\"], item[\"origlong\"]], {\r\n icon: L.icon({\r\n iconUrl: pinkBlank,\r\n iconAnchor: [30 / 2, 30 / 2], //Handles the marker anchor point. For a correct anchor point [ImageWidth/2,ImageHeight/2]\r\n iconSize: [30, 30]\r\n\r\n })\r\n });\r\n oMarker.bindPopup(`

${item[\"origin\"]}

`);\r\n oMarker.addTo(mmiState.mmiLayerGroup);\r\n\r\n let path = createSite(item[\"origlat\"], item[\"origlong\"], item[\"origdistlat\"], item[\"origdistlong\"]);\r\n console.log(path)\r\n\r\n L.polygon([...path], { color: 'red', fill: false }).addTo(mmiState.mmiLayerGroup)\r\n\r\n }\r\n\r\n }\r\n // origin site\r\n\r\n\r\n for (let item of swiperData.result) {\r\n if (item[\"isreturn\"] == true)\r\n flgReturn = 1;\r\n if (tmpData.indexOf(item[\"destlat\"] + \"#\" + item[\"destlong\"]) == -1 && isNaN(item[\"destlat\"]) == false) {\r\n tmpData += item[\"destlat\"] + \"#\" + item[\"destlong\"] + \",\";\r\n\r\n //--------Destination Details ------------------------\r\n\r\n if (parseFloat(item[\"destlat\"]) != 0 && item[\"isreturn\"] == false) {\r\n\r\n let dMarker = L.marker([item[\"destlat\"], item[\"destlong\"]], {\r\n icon: L.icon({\r\n iconUrl: pinkBlank,\r\n iconAnchor: [30 / 2, 30 / 2], //Handles the marker anchor point. For a correct anchor point [ImageWidth/2,ImageHeight/2]\r\n iconSize: [30, 30]\r\n\r\n })\r\n });\r\n dMarker.bindPopup(`

${item[\"destination\"]}

`);\r\n dMarker.addTo(mmiState.mmiLayerGroup);\r\n let path = createSite(item[\"destlat\"], item[\"destlong\"], item[\"distlat\"], item[\"distlong\"]);\r\n L.polygon([...path], { color: 'red', fill: false }).addTo(mmiState.mmiLayerGroup)\r\n\r\n\r\n //----------Create mother site geofence circle ------------------------\r\n if (isNaN(item[\"mothersiteradiuskm\"]) == false && item[\"mothersiteradiuskm\"] > 0) {\r\n\r\n var circleOptions = {\r\n color: 'red',\r\n fillColor: '#b2b2ff',\r\n fillOpacity: 1,\r\n weight: 1,\r\n color: '#7f7fff',\r\n radius: item[\"mothersiteradiuskm\"] * 1000\r\n\r\n }\r\n var tmpCircle = L.circle([item[\"destlong\"], item[\"destlat\"]], circleOptions).addTo(mmiState.mmiLayerGroup);\r\n console.log(tmpCircle)\r\n\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n line = L.polyline([], linecss).addTo(mmiState.mmiLayerGroup) //add polyline on map\r\n\r\n function redraw({ lat = null, long = null, dttime = null, event_name = '', runKMS = null, ...rest }) {\r\n\r\n if (!lat) return;\r\n\r\n let latlng = [lat, long]\r\n if (!marker) {\r\n marker = L.marker(latlng, {\r\n icon: L.icon({\r\n iconUrl: carIcon,\r\n iconAnchor: [w / 2, h / 2], //Handles the marker anchor point. For a correct anchor point [ImageWidth/2,ImageHeight/2]\r\n iconSize: [14, 33]\r\n\r\n })\r\n }).addTo(mmiState.mmiLayerGroup)\r\n\r\n }\r\n line.addLatLng(latlng);\r\n marker.setLatLng(latlng);\r\n\r\n //console.log('awd',event_name)\r\n\r\n if (event_name) {\r\n //console.log(event_name)\r\n addTableRowAndMarker(idx, event_name, dttime, latlng, runKMS)\r\n idx++;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n if (routeType.current === 'b') {\r\n points = [...swiperData.onward, ...swiperData.return];\r\n } else if (routeType.current === 'o') {\r\n points = [...swiperData.onward];\r\n } else if (routeType.current === 'r') {\r\n points = [...swiperData.return];\r\n }\r\n\r\n if (type === 'loadAll') {\r\n for (let point of points) {\r\n redraw(point);\r\n mmiState.mmiMap.fitBounds(mmiState.mmiLayerGroup.getBounds())\r\n }\r\n\r\n } else if (type === 'start') {\r\n function update() {\r\n if (points.length) {\r\n\r\n redraw(points.shift());\r\n mmiState.mmiMap.fitBounds(mmiState.mmiLayerGroup.getBounds())\r\n timeoutId = setTimeout(update, mapSpeed.current);\r\n }\r\n }\r\n timeoutId = setTimeout(update, mapSpeed.current);\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n const handleSpeedChange = function (e) {\r\n const value = e.target.value;\r\n //console.log(value);\r\n mapSpeed.current = value;\r\n }\r\n\r\n const handleRouteTypeChange = function (e) {\r\n const value = e.target.value;\r\n //console.log(value);\r\n routeType.current = value;\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (!mmiState.isInitialised) {\r\n initMmiMap()\r\n } else {\r\n mmiState.mmiLayerGroup.clearLayers();\r\n }\r\n\r\n document.querySelector('.tripAnalysis').classList.add('simulateLoading');\r\n\r\n getTripRouteMapData({ companyId, tracknumb }).then((res) => {\r\n //console.log(res, res.result)\r\n setSwiperData(res.result);\r\n //setSwiperData(data1)\r\n\r\n mmiState.mmiMapEl.style.display = ''\r\n moveMmiMapTo(mapContainer.current);\r\n document.querySelector('.tripAnalysis').classList.remove('simulateLoading');\r\n\r\n }).catch(err => {\r\n document.querySelector('.tripAnalysis').classList.remove('simulateLoading');\r\n console.log(err)\r\n })\r\n\r\n\r\n\r\n return () => {\r\n\r\n clearTimeout(timeoutId)\r\n mmiState.mmiLayerGroup.clearLayers();\r\n\r\n mmiState.mmiMapEl.style.display = 'none';\r\n moveMmiMapTo(document.body)\r\n\r\n }\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (swiperData?.result) {\r\n //console.log(swiperData);\r\n drawRoute('start');\r\n }\r\n }, [swiperData])\r\n\r\n\r\n\r\n return (\r\n\r\n
\r\n
\r\n
\r\n \r\n {\r\n swiperData[\"result\"]?.map((d, i) => {\r\n\r\n return (\r\n \r\n
\r\n {i + 1 <= 9 ? \"0\" + (i + 1) : i}\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n\r\n })\r\n }\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n {\r\n swiperData[\"result\"]?.map((d, i) => {\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n )\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Plant Entry\r\n
\r\n
\r\n \r\n Customer Entry\r\n
\r\n
\r\n \r\n Stoppage\r\n
\r\n
\r\n \r\n Site (Geofences)\r\n
\r\n
\r\n \r\n Milestones\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n Speed:  \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Track Number :  {tracknumb}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SN\r\n Event - Date\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n )\r\n}\r\n\r\nconst InfoDetails = ({ title = \"No Title\", value = \"No Value Provided\" }) => {\r\n return (\r\n
\r\n

{title}

\r\n

{value}

\r\n
\r\n );\r\n};\r\n\r\n\r\nexport default TripAnalysisAndMap;\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n var self = this;\n var elapsed = Date.now() - lastExec;\n var args = arguments;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, args);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [atBegin] Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\n\nfunction debounce (delay, atBegin, callback) {\n return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n}\n\nexport { throttle, debounce };\n","var _path, _path2, _path3, _path4, _path5, _path6;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMembers(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 27,\n height: 14,\n viewBox: \"0 0 27 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.42 6.58999C15.237 6.58999 16.71 5.11701 16.71 3.29999C16.71 1.48298 15.237 0.00999451 13.42 0.00999451C11.603 0.00999451 10.13 1.48298 10.13 3.29999C10.13 5.11701 11.603 6.58999 13.42 6.58999Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.42 7.71C11.9176 7.7105 10.4681 8.26451 9.34834 9.26618C8.22861 10.2678 7.51718 11.647 7.34998 13.14C7.59773 13.1831 7.84852 13.2065 8.09998 13.21H18.74C18.9915 13.207 19.2423 13.1836 19.49 13.14C19.3249 11.6461 18.6141 10.2657 17.4939 9.26363C16.3737 8.26154 14.923 7.70829 13.42 7.71Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.35003 5.82C5.92599 5.82198 6.48959 5.65299 6.96945 5.33444C7.44932 5.0159 7.82385 4.56211 8.04564 4.03055C8.26742 3.499 8.32648 2.91358 8.21533 2.34844C8.10418 1.7833 7.82782 1.26385 7.42125 0.85588C7.01468 0.447909 6.49619 0.169763 5.93143 0.0566675C5.36667 -0.0564284 4.78106 0.000612363 4.24874 0.220566C3.71643 0.440521 3.26136 0.813494 2.94116 1.29226C2.62096 1.77102 2.45003 2.33403 2.45003 2.91C2.44871 3.29167 2.52275 3.66985 2.6679 4.02285C2.81305 4.37585 3.02646 4.69673 3.29588 4.96708C3.5653 5.23743 3.88544 5.45193 4.23793 5.5983C4.59043 5.74466 4.96835 5.82 5.35003 5.82Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.84 8.1C7.87176 7.25953 6.63213 6.79778 5.35 6.8C4.02487 6.79939 2.74613 7.28786 1.75888 8.17177C0.771629 9.05569 0.145321 10.2729 0 11.59C0.218398 11.6248 0.4389 11.6449 0.66 11.65H6.3C6.74978 10.2277 7.63909 8.98482 8.84 8.1V8.1Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.49 5.82C20.9145 5.82 20.3519 5.64933 19.8733 5.32958C19.3948 5.00982 19.0218 4.55534 18.8015 4.02361C18.5813 3.49188 18.5237 2.90677 18.6359 2.34229C18.7482 1.7778 19.0254 1.25929 19.4323 0.852321C19.8393 0.44535 20.3578 0.168199 20.9223 0.0559161C21.4868 -0.0563668 22.0719 0.00126086 22.6036 0.221512C23.1354 0.441763 23.5898 0.814745 23.9096 1.29329C24.2293 1.77184 24.4 2.33446 24.4 2.91C24.4013 3.29252 24.327 3.67152 24.1812 4.02517C24.0354 4.37883 23.8211 4.70015 23.5506 4.97063C23.2802 5.24111 22.9588 5.45541 22.6052 5.60118C22.2515 5.74696 21.8725 5.82132 21.49 5.82Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 8.1C18.7417 7.46211 19.6435 7.03895 20.6082 6.8762C21.5728 6.71345 22.5636 6.8173 23.4735 7.17653C24.3834 7.53577 25.1779 8.13674 25.7712 8.91455C26.3645 9.69237 26.7341 10.6175 26.84 11.59C26.6217 11.6258 26.4012 11.6458 26.18 11.65H20.54C20.0902 10.2278 19.2009 8.98483 18 8.1Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMembers);\nexport default __webpack_public_path__ + \"static/media/Members.86db21e737b2e80557da4e100f7fd47b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSubTicketLink(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 8,\n viewBox: \"0 0 15 8\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.77514 3.1543H5.22485V4.66502H9.77514V3.1543Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.85615 6.30952C3.22716 6.29836 2.62771 6.04066 2.18684 5.5919C1.74597 5.14314 1.49895 4.5392 1.49895 3.91012C1.49895 3.28103 1.74597 2.6771 2.18684 2.22834C2.62771 1.77958 3.22716 1.52188 3.85615 1.51072H6.22798V0H3.85615C2.82853 0.0142831 1.84785 0.432526 1.12621 1.16426C0.404573 1.896 0 2.8824 0 3.91012C0 4.93783 0.404573 5.92424 1.12621 6.65597C1.84785 7.38771 2.82853 7.80595 3.85615 7.82024H6.22798V6.30952H3.85615Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.1439 0H8.77203V1.51072H11.1439C11.7729 1.52188 12.3723 1.77958 12.8132 2.22834C13.254 2.6771 13.5011 3.28103 13.5011 3.91012C13.5011 4.5392 13.254 5.14314 12.8132 5.5919C12.3723 6.04066 11.7729 6.29836 11.1439 6.30952H8.77203V7.82024H11.1439C12.1715 7.80595 13.1522 7.38771 13.8738 6.65597C14.5954 5.92424 15 4.93783 15 3.91012C15 2.8824 14.5954 1.896 13.8738 1.16426C13.1522 0.432526 12.1715 0.0142831 11.1439 0Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSubTicketLink);\nexport default __webpack_public_path__ + \"static/media/SubTicketLink.c583f3834d3661dedae48e41cb438d8b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDropdown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11,\n height: 7,\n viewBox: \"0 0 11 7\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.21597 6.14731C5.82351 6.5498 5.17649 6.5498 4.78403 6.14731L2.25241 3.55098L0.660624 1.91852C0.0428949 1.28501 0.49176 0.220392 1.37659 0.220392L5.5 0.220392L9.62341 0.220392C10.5082 0.220392 10.9571 1.28501 10.3394 1.91852L8.7476 3.55098L6.21597 6.14731Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDropdown);\nexport default __webpack_public_path__ + \"static/media/Dropdown.4bacbce48c4c518d1240b21be42ec07d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFilterIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 16,\n viewBox: \"0 0 20 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.23637 2.17V0.5H2.23637V2.17C1.60848 2.28544 1.0409 2.61728 0.63232 3.10782C0.223741 3.59836 0 4.21659 0 4.855C0 5.49341 0.223741 6.11164 0.63232 6.60218C1.0409 7.09272 1.60848 7.42456 2.23637 7.54V15.22H3.23637V7.54C3.86425 7.42456 4.43183 7.09272 4.84041 6.60218C5.24899 6.11164 5.47273 5.49341 5.47273 4.855C5.47273 4.21659 5.24899 3.59836 4.84041 3.10782C4.43183 2.61728 3.86425 2.28544 3.23637 2.17ZM2.73637 6.59C2.3918 6.58999 2.055 6.48769 1.76864 6.29605C1.48229 6.10441 1.25928 5.83207 1.12788 5.51354C0.996483 5.19501 0.962614 4.84465 1.03057 4.50685C1.09852 4.16905 1.26523 3.85903 1.50958 3.61609C1.75392 3.37315 2.0649 3.20823 2.40308 3.14222C2.74126 3.07622 3.09143 3.11211 3.40919 3.24534C3.72696 3.37857 3.99801 3.60314 4.188 3.8906C4.37798 4.17805 4.47835 4.51544 4.47637 4.86C4.47372 5.31974 4.28924 5.75975 3.96321 6.08391C3.63718 6.40806 3.19611 6.59001 2.73637 6.59Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.73638 0C9.05676 0.00512321 8.4033 0.262642 7.90291 0.722545C7.40251 1.18245 7.0909 1.81191 7.02858 2.48868C6.96626 3.16546 7.15769 3.84124 7.56568 4.38479C7.97368 4.92834 8.56913 5.30086 9.23638 5.43V15.22H10.2364V5.43C10.9036 5.30086 11.4991 4.92834 11.9071 4.38479C12.3151 3.84124 12.5065 3.16546 12.4442 2.48868C12.3819 1.81191 12.0702 1.18245 11.5699 0.722545C11.0695 0.262642 10.416 0.00512321 9.73638 0V0ZM9.73638 4.48C9.39224 4.48 9.05583 4.37795 8.76969 4.18676C8.48355 3.99556 8.26053 3.72381 8.12883 3.40587C7.99713 3.08793 7.96268 2.73807 8.02981 2.40054C8.09695 2.06302 8.26267 1.75298 8.50601 1.50963C8.74936 1.26629 9.0594 1.10057 9.39692 1.03343C9.73445 0.966295 10.0843 1.00075 10.4022 1.13245C10.7202 1.26415 10.9919 1.48717 11.1831 1.77331C11.3743 2.05945 11.4764 2.39586 11.4764 2.74C11.4764 3.20148 11.2931 3.64405 10.9667 3.97037C10.6404 4.29668 10.1979 4.48 9.73638 4.48Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.4863 10.86C19.4835 10.2213 19.2584 9.60342 18.8496 9.11257C18.4409 8.62171 17.874 8.28845 17.2463 8.17V0.5H16.2463V8.17C15.6217 8.291 15.0586 8.62562 14.6537 9.11645C14.2488 9.60729 14.0274 10.2237 14.0274 10.86C14.0274 11.4963 14.2488 12.1127 14.6537 12.6035C15.0586 13.0944 15.6217 13.429 16.2463 13.55V15.22H17.2463V13.55C17.874 13.4315 18.4409 13.0983 18.8496 12.6074C19.2584 12.1166 19.4835 11.4987 19.4863 10.86ZM16.7463 12.6C16.4022 12.6 16.0658 12.498 15.7797 12.3068C15.4935 12.1156 15.2705 11.8438 15.1388 11.5259C15.0071 11.2079 14.9726 10.8581 15.0398 10.5205C15.1069 10.183 15.2726 9.87298 15.516 9.62963C15.7593 9.38629 16.0694 9.22057 16.4069 9.15343C16.7444 9.0863 17.0943 9.12075 17.4122 9.25245C17.7302 9.38415 18.0019 9.60717 18.1931 9.89331C18.3843 10.1794 18.4863 10.5159 18.4863 10.86C18.4863 11.3215 18.303 11.7641 17.9767 12.0904C17.6504 12.4167 17.2078 12.6 16.7463 12.6Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFilterIcon);\nexport default __webpack_public_path__ + \"static/media/FilterIcon.ca86d7b7f0de247ce6d90749ef6bc5cb.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgWhiteSearchIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 17,\n viewBox: \"0 0 16 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3 15L11.7 11.4C12.6987 10.0853 13.1596 8.43985 12.9893 6.79769C12.819 5.15552 12.0301 3.6397 10.7829 2.55794C9.53572 1.47618 7.92361 0.909553 6.27386 0.97308C4.62411 1.03661 3.06035 1.72553 1.90002 2.9C0.683596 4.12188 0.000671387 5.77584 0.000671387 7.5C0.000671387 9.22415 0.683596 10.8781 1.90002 12.1C3.00468 13.203 4.46941 13.8717 6.02646 13.9837C7.58351 14.0957 9.12886 13.6436 10.38 12.71L13.98 16.31L15.3 15ZM3.22002 10.78C2.77189 10.3532 2.41365 9.84107 2.16641 9.27375C1.91917 8.70643 1.78791 8.09538 1.78037 7.47657C1.77282 6.85776 1.88914 6.24369 2.12248 5.67051C2.35581 5.09733 2.70145 4.57662 3.13905 4.13902C3.57664 3.70142 4.09736 3.35579 4.67054 3.12245C5.24372 2.88911 5.85779 2.7728 6.47659 2.78034C7.0954 2.78789 7.70645 2.91914 8.27377 3.16638C8.84109 3.41363 9.35322 3.77186 9.78002 4.22C10.4285 4.8689 10.8701 5.6955 11.049 6.59531C11.2279 7.49513 11.136 8.42777 10.785 9.27538C10.434 10.123 9.83953 10.8475 9.07685 11.3574C8.31416 11.8673 7.41744 12.1396 6.50002 12.14C5.8903 12.1431 5.2861 12.0243 4.72286 11.7908C4.15963 11.5573 3.64869 11.2136 3.22002 10.78Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhiteSearchIcon);\nexport default __webpack_public_path__ + \"static/media/WhiteSearchIcon.f5f3b276b477db6353664373e145e2ac.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgTicketIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 18,\n viewBox: \"0 0 15 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.2891 0H4.71883C3.4687 -1.77753e-06 2.26965 0.496067 1.38492 1.3793C0.5002 2.26253 0.00210815 3.46074 0 4.71088L0 12.8117C0.00630185 14.0577 0.505153 15.2506 1.3877 16.1302C2.27026 17.0097 3.46487 17.5045 4.71088 17.5066H10.2812C11.532 17.5045 12.7311 17.0067 13.6156 16.1222C14.5001 15.2377 14.9979 14.0387 15 12.7878V4.71088C14.9979 3.46212 14.5009 2.26511 13.6179 1.38211C12.7349 0.499103 11.5379 0.00210406 10.2891 0V0ZM4.71883 1.59151H10.2891C11.1172 1.59151 11.9114 1.9199 12.4977 2.50467C13.0839 3.08943 13.4143 3.88284 13.4164 4.71088V5.1008H1.59151V4.71088C1.59361 3.88421 1.92293 3.09201 2.50747 2.50747C3.09201 1.92293 3.88421 1.59361 4.71088 1.59151H4.71883ZM13.4164 6.69231V9.87533H1.59151V6.69231H13.4164ZM10.2891 15.9151H4.71883C3.89354 15.9151 3.10169 15.5889 2.51588 15.0076C1.93008 14.4263 1.59781 13.6369 1.59151 12.8117V11.4668H13.4164V12.8117C13.4101 13.6369 13.0779 14.4263 12.4921 15.0076C11.9063 15.5889 11.1144 15.9151 10.2891 15.9151Z\",\n fill: \"#879FAA\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTicketIcon);\nexport default __webpack_public_path__ + \"static/media/TicketIcon.0e0a1106840ce409e0eab9b3bfae7c5f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgChatIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 13,\n viewBox: \"0 0 14 13\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.21 13L3.08 12C3.50385 11.5143 3.76905 10.9107 3.84 10.27C2.80884 10.2287 1.83353 9.7905 1.11791 9.04693C0.402295 8.30336 0.00175411 7.31199 0 6.28L0 4C0 2.93913 0.421427 1.92172 1.17157 1.17157C1.92172 0.421427 2.93913 0 4 0L10 0C11.0609 0 12.0783 0.421427 12.8284 1.17157C13.5786 1.92172 14 2.93913 14 4V6.28C14 6.80529 13.8965 7.32543 13.6955 7.81073C13.4945 8.29604 13.1999 8.73699 12.8284 9.10843C12.457 9.47986 12.016 9.7745 11.5307 9.97552C11.0454 10.1765 10.5253 10.28 10 10.28H7.29C6.96809 11.0223 6.44773 11.6614 5.78615 12.1272C5.12456 12.593 4.34737 12.8673 3.54 12.92L2.21 13ZM4 1.1C3.23249 1.10524 2.4979 1.41246 1.95518 1.95518C1.41246 2.4979 1.10524 3.23249 1.1 4V6.28C1.1 7.05005 1.40521 7.78871 1.94878 8.33415C2.49235 8.8796 3.22995 9.18735 4 9.19H4.9V9.7C4.94948 10.3202 4.8536 10.9434 4.62 11.52H4.69C5.09143 11.3282 5.44934 11.0562 5.74171 10.7208C6.03407 10.3855 6.2547 9.99383 6.39 9.57L6.51 9.19H10C10.3817 9.19 10.7596 9.11466 11.1121 8.9683C11.4646 8.82193 11.7847 8.60743 12.0542 8.33708C12.3236 8.06673 12.537 7.74585 12.6821 7.39285C12.8273 7.03985 12.9013 6.66167 12.9 6.28V4C12.8974 3.23168 12.591 2.49559 12.0477 1.9523C11.5044 1.40902 10.7683 1.10264 10 1.1H4Z\",\n fill: \"#879FAA\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChatIcon);\nexport default __webpack_public_path__ + \"static/media/chatIcon.e26e9b336470589eac1f66aa017437c8.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSendIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.92001 2.34L1.35002 0.0899972C1.19324 0.010656 1.01491 -0.0155548 0.841939 0.0153184C0.668963 0.0461916 0.510717 0.132474 0.391069 0.261153C0.271421 0.389831 0.196859 0.553926 0.178631 0.728687C0.160403 0.903448 0.199496 1.0794 0.290015 1.23L2.59001 5.15C2.66576 5.277 2.70574 5.42212 2.70574 5.57C2.70574 5.71787 2.66576 5.86299 2.59001 5.99L0.120015 10C0.0379552 10.1464 0.00276799 10.3144 0.0192021 10.4813C0.0356363 10.6483 0.102901 10.8062 0.211918 10.9338C0.320934 11.0613 0.466456 11.1524 0.628843 11.1946C0.791231 11.2369 0.962667 11.2283 1.12002 11.17L5.82001 9L11.36 6.47C11.5003 6.40505 11.619 6.30134 11.7022 6.1711C11.7854 6.04087 11.8296 5.88954 11.8296 5.735C11.8296 5.58045 11.7854 5.42913 11.7022 5.29889C11.619 5.16866 11.5003 5.06495 11.36 5L5.92001 2.34Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSendIcon);\nexport default __webpack_public_path__ + \"static/media/SendIcon.bcbd65f2e3f52150ab499629c31821a1.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDropdownBlack(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11,\n height: 7,\n viewBox: \"0 0 11 7\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.21597 6.26573C5.82351 6.66822 5.17649 6.66822 4.78403 6.26573L2.25241 3.66941L0.660624 2.03695C0.0428949 1.40343 0.49176 0.338815 1.37659 0.338815L5.5 0.338816L9.62341 0.338816C10.5082 0.338816 10.9571 1.40343 10.3394 2.03695L8.7476 3.66941L6.21597 6.26573Z\",\n fill: \"#132438\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDropdownBlack);\nexport default __webpack_public_path__ + \"static/media/DropdownBlack.3e66bd87ff79320cbdcf8b6994a15dff.svg\";\nexport { ForwardRef as ReactComponent };","var _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogout(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 30 30\",\n style: {\n enableBackground: \"new 0 0 30 30\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_1_\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_4_\",\n style: {\n fill: \"#FFFFFF\"\n },\n d: \"M25.344,13.636H9.546c-0.753,0-1.364,0.611-1.364,1.364 c0,0.753,0.611,1.364,1.364,1.364h15.799l-1.763,1.763c-0.533,0.532-0.533,1.396,0,1.928c0.532,0.533,1.396,0.533,1.928,0 l4.091-4.091c0.032-0.032,0.061-0.065,0.09-0.099c0.007-0.008,0.013-0.018,0.02-0.026c0.021-0.026,0.041-0.053,0.06-0.081 c0.005-0.008,0.01-0.017,0.015-0.025c0.019-0.029,0.037-0.059,0.054-0.09c0.003-0.006,0.006-0.013,0.009-0.019 c0.017-0.033,0.034-0.067,0.048-0.102c0.002-0.004,0.003-0.009,0.005-0.013c0.015-0.037,0.029-0.074,0.04-0.112 c0.002-0.005,0.002-0.01,0.004-0.015c0.011-0.038,0.021-0.075,0.029-0.114c0.002-0.012,0.003-0.023,0.005-0.035 c0.006-0.032,0.011-0.064,0.014-0.097C29.998,15.091,30,15.046,30,15c0-0.046-0.002-0.091-0.007-0.136 c-0.003-0.033-0.009-0.066-0.015-0.098c-0.002-0.011-0.003-0.023-0.005-0.034c-0.008-0.039-0.018-0.077-0.029-0.115 c-0.001-0.004-0.002-0.009-0.004-0.014c-0.012-0.038-0.025-0.076-0.04-0.113c-0.002-0.004-0.003-0.008-0.005-0.012 c-0.015-0.035-0.031-0.069-0.049-0.103c-0.003-0.006-0.006-0.012-0.009-0.018c-0.017-0.031-0.035-0.061-0.054-0.09 c-0.005-0.008-0.009-0.016-0.015-0.024c-0.019-0.028-0.039-0.055-0.06-0.081c-0.007-0.009-0.013-0.018-0.019-0.026 c-0.028-0.034-0.058-0.068-0.09-0.099L25.51,9.945c-0.266-0.266-0.615-0.399-0.964-0.399c-0.349,0-0.698,0.133-0.964,0.399 c-0.533,0.533-0.533,1.396,0,1.928L25.344,13.636z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"XMLID_5_\",\n style: {\n fill: \"#FFFFFF\"\n },\n d: \"M11.155,26.155c3.722,0,7.185-1.847,9.264-4.939c0.42-0.625,0.254-1.472-0.371-1.892 c-0.625-0.42-1.472-0.254-1.892,0.371c-1.571,2.338-4.188,3.733-7,3.733c-4.647,0-8.427-3.781-8.427-8.427s3.781-8.427,8.427-8.427 c2.804,0,5.417,1.389,6.989,3.716c0.422,0.624,1.269,0.788,1.893,0.367c0.624-0.422,0.788-1.269,0.367-1.893 c-2.08-3.079-5.538-4.917-9.249-4.917C5.004,3.845,0,8.849,0,15S5.004,26.155,11.155,26.155z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogout);\nexport default __webpack_public_path__ + \"static/media/logout.41ed6cdbd39f4a1a7c0628a75e351b28.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUserIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 40,\n height: 40,\n rx: 10,\n fill: \"#E0EBF1\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5 20.1301C21.7451 20.1301 23.5651 18.3102 23.5651 16.0651C23.5651 13.82 21.7451 12 19.5 12C17.2549 12 15.4349 13.82 15.4349 16.0651C15.4349 18.3102 17.2549 20.1301 19.5 20.1301Z\",\n fill: \"#879FAA\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5 21.514C17.6429 21.5119 15.8504 22.1955 14.4663 23.4336C13.0822 24.6718 12.204 26.3774 12 28.2232C12.306 28.2777 12.6159 28.3066 12.9267 28.3097H26.0733C26.384 28.3054 26.6939 28.2765 27 28.2232C26.7908 26.3795 25.911 24.6771 24.528 23.4399C23.1451 22.2028 21.3555 21.5173 19.5 21.514Z\",\n fill: \"#879FAA\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUserIcon);\nexport default __webpack_public_path__ + \"static/media/UserIcon.a1e22d6992aa75f4cab6e93305909c25.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLeftArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 40 40\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#132438;}.cls-2{fill:#fff;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-1\",\n width: 40,\n height: 40,\n rx: 10\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-2\",\n points: \"25.5 18.78 19.18 18.78 21.41 16.54 19.68 14.81 16.23 18.27 16.23 18.27 14.5 20 16.23 21.73 19.68 25.18 21.41 23.46 19.18 21.22 25.5 21.22 25.5 18.78\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeftArrow);\nexport default __webpack_public_path__ + \"static/media/leftArrow.43ade4f40ba3ef9d50a582256c9b468a.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRightArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 40 40\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#132438;}.cls-2{fill:#fff;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-1\",\n width: 40,\n height: 40,\n rx: 10,\n transform: \"translate(40 40) rotate(180)\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-2\",\n points: \"12.5 21.67 21.12 21.67 18.07 24.71 20.43 27.07 25.14 22.36 25.14 22.36 27.5 20 25.14 17.64 20.43 12.93 18.07 15.29 21.12 18.33 12.5 18.33 12.5 21.67\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRightArrow);\nexport default __webpack_public_path__ + \"static/media/rightArrow.b7b97612a04839e40ad662716cc24164.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMapIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 17,\n viewBox: \"0 0 22 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.817 2.18744C19.4417 1.81105 18.9958 1.51242 18.5049 1.30865C18.014 1.10489 17.4877 1 16.9562 1C16.4247 1 15.8984 1.10489 15.4075 1.30865C14.9166 1.51242 14.4707 1.81105 14.0954 2.18744C13.5305 2.74786 13.1465 3.46473 12.9929 4.24555H3.71967C3.36115 4.24593 3.00623 4.31712 2.67529 4.45503C2.34435 4.59295 2.04391 4.79487 1.79121 5.0492C1.53851 5.30354 1.33854 5.60528 1.20277 5.9371C1.067 6.26893 0.998104 6.6243 1.00004 6.98282V14.0392C1.00082 14.7602 1.2876 15.4515 1.79746 15.9614C2.30732 16.4712 2.99862 16.758 3.71967 16.7588H15.7743C16.4953 16.758 17.1866 16.4712 17.6965 15.9614C18.2063 15.4515 18.4931 14.7602 18.4939 14.0392V9.21145L19.817 7.90015C20.5745 7.14256 21 6.11511 21 5.0438C21 3.97248 20.5745 2.94503 19.817 2.18744ZM3.71967 4.99822H8.01523V10.2317L13.8073 16.0238H11.5846L6.89797 11.3195H1.73508V6.98282C1.73585 6.45671 1.94519 5.95237 2.31721 5.58036C2.68923 5.20834 3.19357 4.999 3.71967 4.99822ZM1.73508 14.0392V12.2751H6.52457L10.288 16.0355H3.71967C3.45817 16.0351 3.19931 15.9832 2.95794 15.8826C2.71656 15.7819 2.49741 15.6347 2.31305 15.4492C2.12868 15.2638 1.98273 15.0438 1.88355 14.8018C1.78437 14.5598 1.73392 14.3007 1.73508 14.0392ZM17.7589 14.0392C17.7581 14.5653 17.5488 15.0696 17.1767 15.4416C16.8047 15.8137 16.3004 16.023 15.7743 16.0238H15.1127L8.93843 9.84946V4.99822H12.9164C12.9083 5.53601 13.0083 6.06995 13.2103 6.56842C13.4123 7.06689 13.7123 7.51974 14.0925 7.90015L16.9474 10.755L17.7589 9.94649V14.0392ZM16.9503 9.71716L14.6159 7.38268C14.154 6.92095 13.8395 6.33263 13.712 5.69212C13.5846 5.05162 13.6499 4.38771 13.8998 3.78435C14.1497 3.18099 14.5729 2.66528 15.1159 2.30244C15.6589 1.93961 16.2973 1.74595 16.9503 1.74595C17.6034 1.74595 18.2418 1.93961 18.7848 2.30244C19.3278 2.66528 19.751 3.18099 20.0008 3.78435C20.2507 4.38771 20.3161 5.05162 20.1886 5.69212C20.0612 6.33263 19.7466 6.92095 19.2848 7.38268L16.9503 9.71716Z\",\n fill: \"#879FAA\",\n stroke: \"#879FAA\",\n strokeWidth: 0.3\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMapIcon);\nexport default __webpack_public_path__ + \"static/media/mapIcon.611fdc1dc7a71bc61c72fb1709abb6df.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useRef, useEffect, useCallback } from \"react\";\r\nimport \"./Dropdown.css\"; // Import the CSS file for styling\r\n\r\nexport let companyid = \"\";\r\n\r\nconst Dropdown = ({\r\n selectedOption,\r\n isOpen,\r\n handleSelect,\r\n toggleDropdown,\r\n options,\r\n closeDropdown,\r\n id,\r\n placeholder,\r\n}) => {\r\n const dropdownRef = useRef(null);\r\n if (id == 2) {\r\n localStorage.setItem(\"Cid\", selectedOption);\r\n companyid = selectedOption;\r\n }\r\n\r\n const handleClickOutside = useCallback(\r\n (event) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\r\n closeDropdown();\r\n }\r\n },\r\n [closeDropdown]\r\n );\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n window.addEventListener(\"click\", handleClickOutside);\r\n } else {\r\n window.removeEventListener(\"click\", handleClickOutside);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener(\"click\", handleClickOutside);\r\n };\r\n }, [isOpen, handleClickOutside]);\r\n\r\n const getDisplayLabel = (selectedOption, options) => {\r\n if (!selectedOption) {\r\n return placeholder;\r\n }\r\n\r\n let selectedOptionLabel = \"\";\r\n selectedOptionLabel =\r\n id == 2\r\n ? options.find((option) => option.company_id === selectedOption)\r\n .company_name\r\n : options.find((option) => option.service_id === selectedOption)\r\n .service_name;\r\n\r\n if (selectedOptionLabel.length > 31) {\r\n return selectedOptionLabel.substring(0, 31) + \"...\";\r\n }\r\n\r\n return selectedOptionLabel;\r\n };\r\n\r\n return (\r\n \r\n \r\n {getDisplayLabel(selectedOption, options)}\r\n {isOpen ? \"▲\" : \"▼\"}\r\n \r\n {isOpen && (\r\n
    \r\n {options.map((option) => (\r\n \r\n handleSelect(id == 2 ? option.company_id : option.service_id)\r\n }\r\n >\r\n {id == 2 ? option.company_name : option.service_name}\r\n \r\n ))}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Dropdown;\r\n","import React, {\r\n useState,\r\n useEffect,\r\n useRef,\r\n useReducer,\r\n useCallback,\r\n} from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Draggable from \"react-draggable\";\r\nimport { ControlSummary } from \"../ControlSummary\";\r\nimport {\r\n getControlTicketData,\r\n saveComment,\r\n getInvoiceWiseData,\r\n getCidData,\r\n getServiceAlertsData,\r\n} from \"../../_services\";\r\nimport { getColorCodeFromType, downloadExcel } from \"../../_helpers\";\r\nimport { decode as base64_decode } from \"base-64\";\r\nimport Calender from \"../Calender/CalenderView\";\r\nimport Modal from \"../Portal/Portal\";\r\nimport TripAnalysisAndMap from \"../TripAnalysis/TripAnalysis\";\r\nimport \"./Dashboard.css\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport InfiniteScroll from \"react-infinite-scroll-component\";\r\n\r\nimport BellIcon from \"../../Assets/NotificationBell.png\";\r\nimport MemberIcon from \"../../Assets/Members.svg\";\r\nimport RecordSearch from \"../../Assets/RecordSearch.svg\";\r\nimport SubTicketLink from \"../../Assets/SubTicketLink.svg\";\r\nimport DropDownIcon from \"../../Assets/Dropdown.svg\";\r\nimport FilterIcon from \"../../Assets/FilterIcon.svg\";\r\nimport WhiteSearchIcon from \"../../Assets/WhiteSearchIcon.svg\";\r\nimport TicketIcon from \"../../Assets/TicketIcon.svg\";\r\nimport chatIcon from \"../../Assets/chatIcon.svg\";\r\nimport SendIcon from \"../../Assets/SendIcon.svg\";\r\nimport DropDownBlackIcon from \"../../Assets/DropdownBlack.svg\";\r\nimport Logout from \"../../Assets/logout.svg\";\r\nimport threeDots from \"../../Assets/threedots.png\";\r\nimport UserIcon from \"../../Assets/UserIcon.svg\";\r\nimport CloseIcon from \"../../Assets/CloseButton.svg\";\r\nimport leftArrow from \"../../Assets/leftArrow.svg\";\r\nimport rightArrow from \"../../Assets/rightArrow.svg\";\r\nimport mapIcon from \"../../Assets/mapIcon.svg\";\r\n\r\nimport Message from \"./../Message\";\r\nimport Dropdown from \"./Dropdown\";\r\n\r\nexport const debouncedFn = (fn, delay) => {\r\n let timerId;\r\n return function () {\r\n const context = this;\r\n const args = arguments;\r\n clearTimeout(timerId);\r\n timerId = setTimeout(() => {\r\n fn.apply(context, args);\r\n }, delay);\r\n };\r\n};\r\n\r\nconst filterRecords = (data) => {\r\n return {\r\n //filterObject(obj, callback) {\r\n // return Object.fromEntries(Object.entries(obj).filter(([key, val], i) => callback(val, key)));\r\n //},\r\n filterCommentsOfUser(uName) {\r\n return Object.entries(data).reduce((acc, curr) => {\r\n let [key, value] = curr;\r\n let { vehicleName, invoice } = value[0]; //array of objects tickets ..grouped\r\n\r\n let filteredTicketData = value.filter((d) => {\r\n if (d.comments instanceof Array && d.comments.length > 0) {\r\n return d.comments.some((d) => d.uName === uName);\r\n }\r\n return false;\r\n });\r\n\r\n if (filteredTicketData.length) {\r\n return {\r\n ...acc,\r\n [`${vehicleName}|${invoice}`]: [...filteredTicketData],\r\n };\r\n } else {\r\n return {\r\n ...acc,\r\n };\r\n }\r\n }, {});\r\n },\r\n filterSearchText(text) {\r\n return Object.entries(data).reduce((acc, curr) => {\r\n let [key, value] = curr;\r\n let { vehicleName, invoice } = value[0];\r\n\r\n let filteredTicketData = value.filter((d) => {\r\n let searchStr = Object.values(d).reduce((acc, curr) => {\r\n if (curr instanceof Array) {\r\n let commentsStr = \"\";\r\n if (curr && curr.length > 0) {\r\n curr.forEach((c) => {\r\n commentsStr += \" \" + c.cmt + \" \";\r\n //commentsStr += \" \" + c.dt + \" \";\r\n //commentsStr += \" \" + c.stkt + \" \";\r\n //commentsStr += \" \" + c.sn + \" \";\r\n });\r\n }\r\n return acc + \" \" + commentsStr;\r\n }\r\n if (!curr) {\r\n return acc;\r\n }\r\n return acc + \" \" + String(curr);\r\n }, \" \");\r\n\r\n return searchStr.toLowerCase().includes(text.toLowerCase());\r\n });\r\n\r\n if (filteredTicketData.length) {\r\n return {\r\n ...acc,\r\n [`${vehicleName}|${invoice}`]: [...filteredTicketData],\r\n };\r\n } else {\r\n return {\r\n ...acc,\r\n };\r\n }\r\n }, {});\r\n },\r\n filterTicketStatusType(type) {\r\n if (type === \"all\") {\r\n return data;\r\n } else {\r\n return Object.entries(data).reduce((acc, curr) => {\r\n let [key, value] = curr;\r\n let { vehicleName, invoice } = value[0];\r\n\r\n let filteredTicketData = value.filter(\r\n (d) => Number(d.statusOfTicket) === Number(type)\r\n );\r\n if (filteredTicketData.length) {\r\n return {\r\n ...acc,\r\n [`${vehicleName}|${invoice}`]: [...filteredTicketData],\r\n };\r\n } else {\r\n return {\r\n ...acc,\r\n };\r\n }\r\n }, {});\r\n }\r\n },\r\n };\r\n};\r\n\r\nconst user = JSON.parse(\r\n localStorage.getItem(\"user\") != null\r\n ? base64_decode(localStorage.getItem(\"user\"))\r\n : null\r\n);\r\n\r\nconst DatePickerFilterComponent = React.forwardRef(\r\n ({ handleSelectDateRange, ...props }, ref) => {\r\n const [startDate, setStartDate] = useState(\r\n new Date(new Date(Date.now() - 1 * 24 * 60 * 60 * 1000))\r\n );\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const [minStart, setMinStart] = useState(\r\n new Date(new Date(Date.now() - 30 * 24 * 60 * 60 * 1000))\r\n );\r\n const [maxEnd, setMaxEnd] = useState(new Date());\r\n\r\n const handleStartDate = (date) => {\r\n //console.log(\"statr-- \", typeof date,date);\r\n setStartDate(date);\r\n };\r\n const handleEndDate = (date) => {\r\n //console.log(\"end-- \", date);\r\n setEndDate(date);\r\n };\r\n\r\n useEffect(() => {\r\n setMinStart(new Date(endDate.getTime() - 30 * 24 * 60 * 60 * 1000));\r\n }, [endDate]);\r\n\r\n useEffect(() => {\r\n if (\r\n new Date().getTime() >\r\n startDate.getTime() + 7 * 24 * 60 * 60 * 1000\r\n ) {\r\n setMaxEnd(new Date(startDate.getTime() + 30 * 24 * 60 * 60 * 1000));\r\n }\r\n }, [startDate]);\r\n\r\n const handleDatePickerDisplay = () => {\r\n let ele = document.getElementById(\"datePickerDiv\");\r\n if (ele.style.display == \"none\") {\r\n ele.style.display = \"flex\";\r\n document\r\n .querySelector(\".datePickerDivParent\")\r\n .classList.add(\"blackedElem\");\r\n document.querySelector(\".datePickerDivButton\").style.color = \"white\";\r\n document\r\n .querySelector(\".datePickerDivParent\")\r\n .classList.remove(\"coloredElem\");\r\n } else {\r\n ele.style.display = \"none\";\r\n document\r\n .querySelector(\".datePickerDivParent\")\r\n .classList.remove(\"blackedElem\");\r\n document\r\n .querySelector(\".datePickerDivParent\")\r\n .classList.add(\"coloredElem\");\r\n document.querySelector(\".datePickerDivButton\").style.color = \"black\";\r\n }\r\n };\r\n\r\n const updateDateRange = () => {\r\n if (!startDate) {\r\n alert(\"Please select Start Date!\");\r\n }\r\n if (!endDate) {\r\n alert(\"Please select End Date!\");\r\n } else {\r\n handleSelectDateRange(startDate, endDate);\r\n handleDatePickerDisplay();\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n Start-Date\r\n \"Search\"\r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n From :\r\n handleStartDate(date)}\r\n selectsStart\r\n //startDate={startDate}\r\n //endDate={endDate}\r\n minDate={minStart}\r\n maxDate={endDate}\r\n />\r\n
\r\n
\r\n To:\r\n handleEndDate(date)}\r\n selectsEnd\r\n //startDate={startDate}\r\n //endDate={endDate}\r\n minDate={startDate}\r\n maxDate={maxEnd}\r\n />\r\n
\r\n \r\n \r\n OK\r\n \r\n
\r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nconst groupTicketsByInvoiceAndVehicleName = (data) => {\r\n return data.reduce((acc, curr) => {\r\n let { vehicleName, invoice } = curr;\r\n return {\r\n ...acc,\r\n [`${vehicleName}|${invoice}`]: acc[`${vehicleName}|${invoice}`]\r\n ? [...acc[`${vehicleName}|${invoice}`], { ...curr }]\r\n : [{ ...curr }],\r\n };\r\n }, {});\r\n};\r\n\r\nexport const Dashboard = () => {\r\n const [data, setData] = useState({});\r\n const [originalRes, setRes] = useState({});\r\n const [duplicateData, setDuplicateData] = useState({});\r\n const [companydata, setCidData] = useState({});\r\n const [serviceAletsData, setAlertsData] = useState({});\r\n const logintype = localStorage.getItem(\"UserType\") || \"\";\r\n const [sidebarOpen, setSideBarOpen] = useState(true);\r\n const [viewMode, setViewMode] = useState(\"list\");\r\n //const originalDataRef = useRef(null);\r\n\r\n const [dropdown1, setDropdown1] = useState({\r\n selectedOption: \"\",\r\n isOpen: false,\r\n });\r\n const [dropdown2, setDropdown2] = useState({\r\n selectedOption: \"\",\r\n isOpen: false,\r\n });\r\n let cid = 0;\r\n\r\n const handleSelect = (dropdownId, value) => {\r\n const promise2 = [];\r\n if (recordsList.current)\r\n recordsList.current.classList.add(\"simulateLoading\");\r\n cid = value ? value : cid;\r\n if (dropdownId === 1) {\r\n setDropdown1({ selectedOption: value, isOpen: false });\r\n localStorage.setItem(\"serviceId\", value);\r\n if (value == 0) {\r\n setData(duplicateData);\r\n if (recordsList.current)\r\n recordsList.current.classList.remove(\"simulateLoading\");\r\n } else {\r\n let filterData = filterServiceData(value, originalRes);\r\n setData(filterData);\r\n if (recordsList.current)\r\n recordsList.current.classList.remove(\"simulateLoading\");\r\n }\r\n } else {\r\n if (value == 0) {\r\n localStorage.setItem(\"cidname\", \"All Plants\");\r\n } else {\r\n localStorage.setItem(\"cidname\", \"Single\");\r\n }\r\n if (localStorage.getItem(\"Cid\") != value) {\r\n promise2.push(\r\n updateControlTicketData(cid, providerId, dateRange, \"notallow\")\r\n );\r\n }\r\n setDropdown2({ selectedOption: value, isOpen: false });\r\n Promise.all(promise2) // Use Promise.all with the promises array\r\n .then(function (response) {\r\n recordsList.current.classList.remove(\"simulateLoading\");\r\n })\r\n .catch(function (error) {\r\n // An error occurred in one of the promises\r\n console.error(error);\r\n });\r\n }\r\n };\r\n\r\n const filterServiceData = (value, data) => {\r\n const filteredData = data.filter((item) => {\r\n return item.service_id === value;\r\n });\r\n const groupedData = groupTicketsByInvoiceAndVehicleName(filteredData);\r\n return groupedData;\r\n };\r\n\r\n const toggleDropdown = (dropdownId) => {\r\n if (dropdownId === 1) {\r\n setDropdown1((prevState) => ({\r\n ...prevState,\r\n isOpen: !prevState.isOpen,\r\n }));\r\n setDropdown2({ isOpen: false, selectedOption: dropdown2.selectedOption });\r\n } else {\r\n setDropdown2((prevState) => ({\r\n ...prevState,\r\n isOpen: !prevState.isOpen,\r\n }));\r\n setDropdown1({ isOpen: false, selectedOption: dropdown1.selectedOption });\r\n }\r\n };\r\n\r\n const closeDropdown = useCallback((dropdownId) => {\r\n if (dropdownId === 1) {\r\n setDropdown1((prevState) => ({\r\n ...prevState,\r\n isOpen: false,\r\n }));\r\n } else {\r\n setDropdown2((prevState) => ({\r\n ...prevState,\r\n isOpen: false,\r\n }));\r\n }\r\n }, []);\r\n\r\n const [dateRange, setDateRange] = useState({\r\n fromDt: formatDateLocal(\r\n new Date(new Date().setDate(new Date().getDate() - 1)),\r\n \"fromDt\"\r\n ),\r\n toDt: formatDateLocal(new Date(), \"toDt\"),\r\n });\r\n\r\n const [searchTerm, setSearchTerm] = useState(\"\");\r\n const [selectedTicketStatusType, setSelectedTicketStatusType] =\r\n useState(\"all\");\r\n\r\n let {\r\n user: {\r\n company_id: companyId,\r\n provider_id: providerId,\r\n userName: loggedInUser,\r\n },\r\n user,\r\n } = useSelector((state) => state.authentication);\r\n\r\n const recordsList = useRef(null);\r\n const dateRangeTxt = useRef(null);\r\n const firstUpdate = useRef(true);\r\n\r\n const handleViewSidebar = () => {\r\n setSideBarOpen(!sidebarOpen);\r\n };\r\n\r\n const handleViewChange = () => {\r\n if (viewMode == \"calender\") {\r\n document.querySelector(\".rightTopSubBottomRow\").style.display = \"flex\";\r\n setViewMode(\"list\");\r\n setSideBarOpen(true);\r\n } else if (viewMode == \"list\") {\r\n document.querySelector(\".rightTopSubBottomRow\").style.display = \"none\";\r\n setViewMode(\"calender\");\r\n setSideBarOpen(false);\r\n }\r\n };\r\n\r\n const updateControlTicketData = (companyId, providerId, dateRange, value) => {\r\n return new Promise(function (resolve, reject) {\r\n if (recordsList.current) {\r\n recordsList.current.classList.add(\"simulateLoading\");\r\n }\r\n if (companyId == null) companyId = \"\";\r\n getControlTicketData({\r\n companyId: companyId == null ? 0 : companyId,\r\n providerId: providerId,\r\n fromDt: dateRange.fromDt,\r\n toDt: dateRange.toDt,\r\n }).then(\r\n (res) => {\r\n setRes(res.result);\r\n resolve();\r\n let groupedData = groupTicketsByInvoiceAndVehicleName(res.result);\r\n setDuplicateData(groupedData);\r\n if (localStorage.getItem(\"serviceId\") != \"0\") {\r\n let sid = localStorage.getItem(\"serviceId\");\r\n let filterData = filterServiceData(parseInt(sid), res.result);\r\n setData(filterData);\r\n } else {\r\n setData(groupedData);\r\n }\r\n if (value != \"notallow\") {\r\n if (recordsList.current) {\r\n recordsList.current.classList.remove(\"simulateLoading\");\r\n }\r\n }\r\n let dateTxtStr =\r\n formatYYYYMMDD(dateRange.fromDt) +\r\n \" - \" +\r\n formatYYYYMMDD(dateRange.toDt);\r\n dateRangeTxt.current.innerHTML = dateTxtStr;\r\n },\r\n () => {\r\n if (value != \"notallow\") {\r\n if (recordsList.current) {\r\n recordsList.current.classList.remove(\"simulateLoading\");\r\n }\r\n }\r\n }\r\n );\r\n });\r\n };\r\n const updateCompanyDropdown = () => {\r\n return new Promise(function (resolve, reject) {\r\n getCidData({\r\n providerId: providerId,\r\n }).then((res) => {\r\n resolve();\r\n let companyData = res.result.result;\r\n companyData.unshift({ company_id: 0, company_name: \"All Plants\" });\r\n setCidData(companyData);\r\n });\r\n });\r\n };\r\n const updateServiceAlertsdropdown = () => {\r\n getServiceAlertsData({\r\n providerId: providerId,\r\n }).then((res) => {\r\n let serviceAlertsData = res.result.result;\r\n console.log(\"res\", res);\r\n serviceAlertsData.unshift({\r\n service_id: 0,\r\n service_name: \"All Services\",\r\n });\r\n setAlertsData(serviceAlertsData);\r\n });\r\n };\r\n const promises = [];\r\n useEffect(() => {\r\n if (viewMode == \"list\") {\r\n localStorage.setItem(\"serviceId\", \"0\");\r\n promises.push(\r\n updateControlTicketData(companyId, providerId, dateRange, \"\")\r\n );\r\n }\r\n }, [dateRange, viewMode]);\r\n\r\n useEffect(() => {\r\n promises.push(updateCompanyDropdown());\r\n Promise.all(promises) // Use Promise.all with the promises array\r\n .then(function (response) {\r\n updateServiceAlertsdropdown();\r\n })\r\n .catch(function (error) {\r\n // An error occurred in one of the promises\r\n console.error(error);\r\n });\r\n }, []);\r\n\r\n /**\r\n * @param {number} dataKey\r\n * @param {string} ticketid\r\n * @param {object} commentBody\r\n * @param {number} newStatusOfTicket\r\n */\r\n const addCommentToTicket = (\r\n dataKey,\r\n ticketid,\r\n commentBody,\r\n newStatusOfTicket\r\n ) => {\r\n console.log({ dataKey, ticketid, commentBody, newStatusOfTicket });\r\n setData({\r\n ...data,\r\n [dataKey]: [\r\n ...data[dataKey].map((d) => {\r\n if (parseInt(d.ticketid) === parseInt(ticketid)) {\r\n let comments = d.comments\r\n ? [commentBody, ...d.comments]\r\n : [commentBody];\r\n return {\r\n ...d,\r\n lastModifiedDate: new Date(commentBody.dt * 1000).toISOString(),\r\n statusOfTicket: newStatusOfTicket,\r\n comments: [...comments],\r\n };\r\n }\r\n return { ...d };\r\n }),\r\n ],\r\n });\r\n };\r\n\r\n const handleTicketStatusFilter = (type) => {\r\n //console.log(\"fliters function is called\");\r\n //start date filter close if opened\r\n let ele = document.getElementById(\"datePickerDiv\");\r\n if (ele.style.display !== \"none\") {\r\n ele.style.display = \"none\";\r\n document\r\n .querySelector(\".datePickerDivParent\")\r\n .classList.remove(\"blackedElem\");\r\n document\r\n .querySelector(\".datePickerDivParent\")\r\n .classList.add(\"coloredElem\");\r\n document.querySelector(\".datePickerDivButton\").style.color = \"black\";\r\n }\r\n\r\n setSelectedTicketStatusType(type);\r\n };\r\n\r\n const queryData = (forDownload = false) => {\r\n let recordLengthEl = document.querySelector(\"#recordsLengthLabel\");\r\n if (!forDownload) {\r\n //only if its not for download option then we need to updates length of records and loader\r\n\r\n if (recordsList.current) {\r\n recordsList.current.classList.add(\"simulateLoading\");\r\n }\r\n\r\n if (!searchTerm && !selectedTicketStatusType) {\r\n if (recordLengthEl) {\r\n //recordsLength.current.innerHTML = `Records(${Object.keys(data)?.length || 0})`\r\n recordLengthEl.innerHTML = `Records (${\r\n Object.keys(data)?.length || 0\r\n })`;\r\n }\r\n\r\n if (recordsList.current) {\r\n recordsList.current.classList.remove(\"simulateLoading\");\r\n }\r\n\r\n return data;\r\n }\r\n }\r\n\r\n let filteredData = { ...data };\r\n\r\n if (\r\n selectedTicketStatusType !== \"all\" &&\r\n selectedTicketStatusType !== \"forMe\"\r\n ) {\r\n filteredData = filterRecords(filteredData).filterTicketStatusType(\r\n selectedTicketStatusType\r\n );\r\n }\r\n\r\n if (selectedTicketStatusType === \"forMe\") {\r\n filteredData =\r\n filterRecords(filteredData).filterCommentsOfUser(loggedInUser);\r\n }\r\n\r\n if (searchTerm) {\r\n filteredData = filterRecords(filteredData).filterSearchText(searchTerm);\r\n }\r\n\r\n if (!forDownload) {\r\n if (recordLengthEl) {\r\n //recordsLength.current.innerHTML = `Records(${Object.keys(data)?.length || 0})`\r\n recordLengthEl.innerHTML = `Records (${\r\n Object.keys(filteredData)?.length || 0\r\n })`;\r\n }\r\n\r\n if (recordsList.current) {\r\n recordsList.current.classList.remove(\"simulateLoading\");\r\n }\r\n }\r\n\r\n return filteredData;\r\n };\r\n\r\n const handleClickDownload = () => {\r\n let ticketsData = queryData(true); //grouped data\r\n\r\n let downloadData = [];\r\n\r\n for (let key in ticketsData) {\r\n let tempData = ticketsData[key]; //1 groupedtickets //array of objects\r\n\r\n //loop through every tickets\r\n tempData.forEach((d) => {\r\n //loop through every ticket object\r\n let {\r\n ticketid,\r\n vehicleName,\r\n serviceName,\r\n statusOfTicket,\r\n invoice,\r\n remarks,\r\n dtTime,\r\n lastModifiedDate,\r\n comments,\r\n msg,\r\n } = d; //array of objects\r\n\r\n let {\r\n productName,\r\n Quantity,\r\n consignee,\r\n origin,\r\n destination,\r\n driverMobileNo,\r\n } = JSON.parse(remarks);\r\n\r\n if (comments?.length > 0) {\r\n //0 or null case\r\n for (let i = 0; i < comments.length; i++) {\r\n let dataToBeAdded = {};\r\n const { text: ticketType } = getColorCodeFromType(statusOfTicket);\r\n let { cmt, dt, sn, stkt, uName } = comments[i];\r\n dataToBeAdded.TicketId = ticketid;\r\n dataToBeAdded.VehicleNo = vehicleName;\r\n dataToBeAdded.InvoiceNo = invoice;\r\n dataToBeAdded.Consignee = consignee;\r\n dataToBeAdded.ProductName = productName;\r\n dataToBeAdded.ServiceName = serviceName;\r\n dataToBeAdded.Quantity = Quantity;\r\n dataToBeAdded.DriverMobileNo = driverMobileNo;\r\n dataToBeAdded.Origin = origin;\r\n dataToBeAdded.Destination = destination;\r\n dataToBeAdded.TicketStatus = ticketType;\r\n dataToBeAdded.TicketDate = formatDateAMPM(new Date(dtTime));\r\n dataToBeAdded.CommentSn = sn;\r\n dataToBeAdded.CommentUser = uName;\r\n dataToBeAdded.CommentStatus = ticketType;\r\n dataToBeAdded.CommentDate = epochDatetoLocale(dt);\r\n dataToBeAdded.Remark = cmt;\r\n dataToBeAdded.Msg = msg;\r\n\r\n downloadData.push(dataToBeAdded);\r\n }\r\n } else {\r\n let dataToBeAdded = {};\r\n const { text: ticketType } = getColorCodeFromType(statusOfTicket);\r\n dataToBeAdded.TicketId = ticketid;\r\n dataToBeAdded.VehicleNo = vehicleName;\r\n dataToBeAdded.InvoiceNo = invoice;\r\n dataToBeAdded.Consignee = consignee;\r\n dataToBeAdded.ProductName = productName;\r\n dataToBeAdded.ServiceName = serviceName;\r\n dataToBeAdded.Quantity = Quantity;\r\n dataToBeAdded.DriverMobileNo = driverMobileNo;\r\n dataToBeAdded.Origin = origin;\r\n dataToBeAdded.Destination = destination;\r\n dataToBeAdded.TicketStatus = ticketType;\r\n dataToBeAdded.TicketDate = formatDateAMPM(new Date(dtTime));\r\n dataToBeAdded.CommentSn = \"\";\r\n dataToBeAdded.CommentUser = \"\";\r\n dataToBeAdded.CommentStatus = \"\";\r\n dataToBeAdded.CommentDate = \"\";\r\n dataToBeAdded.Remark = \"\";\r\n dataToBeAdded.Msg = msg;\r\n\r\n downloadData.push(dataToBeAdded);\r\n }\r\n });\r\n }\r\n\r\n downloadExcel(downloadData);\r\n };\r\n\r\n const updateSearchTerm = debouncedFn(function (val) {\r\n setSearchTerm(val);\r\n }, 800);\r\n\r\n const handleSearchInputChange = (e) => {\r\n updateSearchTerm(e.target.value);\r\n };\r\n\r\n const handleSelectDateRange = (fromDt, toDt) => {\r\n setDateRange({\r\n fromDt: formatDateLocal(fromDt),\r\n toDt: formatDateLocal(toDt),\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \"Logout\"\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \"Search\"\r\n
\r\n \r\n\r\n {Array.from([0, 1, 2, 3, 4, 5, \"all\", \"forMe\"]).map((d, i) => {\r\n let bgColor,\r\n text,\r\n border = \"\";\r\n\r\n if (d != \"all\" && d != \"forMe\") {\r\n bgColor = getColorCodeFromType(d).bgColor;\r\n text = getColorCodeFromType(d).text;\r\n border = getColorCodeFromType(d).border;\r\n }\r\n\r\n if (d == \"all\") {\r\n return (\r\n handleTicketStatusFilter(\"all\")}\r\n >\r\n All\r\n \r\n );\r\n } else if (d == \"forMe\") {\r\n return (\r\n handleTicketStatusFilter(\"forMe\")}\r\n style={{\r\n background: \"rgba(115, 85, 79, 0.1)\",\r\n border: \"1px solid #73554F\",\r\n }}\r\n >\r\n For Me - {loggedInUser}\r\n \r\n );\r\n } else {\r\n //{ text == \"Open\" ? \"Open-24\" : text }\r\n return (\r\n handleTicketStatusFilter(`${d}`)}\r\n style={{\r\n background: bgColor,\r\n border: `1px solid ${border}`,\r\n borderRadius: \"15px\",\r\n }}\r\n >\r\n {text}\r\n \r\n );\r\n }\r\n })}\r\n\r\n \r\n Change View\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleSelect(1, value)}\r\n toggleDropdown={() => toggleDropdown(1)}\r\n closeDropdown={() => closeDropdown(1)}\r\n options={serviceAletsData}\r\n id={1}\r\n placeholder=\"All Services\"\r\n />\r\n {logintype === \"P\" && (\r\n <>\r\n handleSelect(2, value)}\r\n toggleDropdown={() => toggleDropdown(2)}\r\n closeDropdown={() => closeDropdown(2)}\r\n options={companydata}\r\n id={2}\r\n placeholder=\"All Plants\"\r\n />\r\n \r\n )}\r\n
\r\n
\r\n\r\n \r\n {viewMode === \"list\" ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst TicketsListContainer = React.forwardRef(\r\n (\r\n { forceUpdate, filteredData, addCommentToTicket, viewMode, searchTerm },\r\n ref\r\n ) => {\r\n //const [ticketsData, setTicketsData] = useState([]);\r\n const [initialTicketData, setInitialTicketData] = useState([]);\r\n const [hasMore, setHasMore] = useState(true);\r\n\r\n const height =\r\n document.getElementById(\"cttMain__rightBottom\")?.clientHeight - 30 || 450;\r\n\r\n useEffect(() => {\r\n let deepClonedData = JSON.parse(JSON.stringify([...filteredData]));\r\n setInitialTicketData([...deepClonedData].slice(0, 15));\r\n setHasMore(true);\r\n }, [forceUpdate]);\r\n\r\n const getNextTickets = () => {\r\n if (initialTicketData.length >= filteredData.length) {\r\n setHasMore(false);\r\n return;\r\n }\r\n let nextTicketData = [\r\n ...initialTicketData.concat(\r\n [...filteredData].slice(\r\n initialTicketData.length,\r\n initialTicketData.length + 15\r\n )\r\n ),\r\n ];\r\n setTimeout(() => {\r\n setInitialTicketData(nextTicketData);\r\n }, 500);\r\n };\r\n\r\n //loader = {\r\n // initialTicketData.length ? (
\r\n // Loading...\r\n //
) : (
)\r\n //}\r\n\r\n useEffect(() => {\r\n if (viewMode == \"list\" && !ref.current) {\r\n document.querySelector(\".infiniteScrollDiv\").style.height = 350 + \"px\";\r\n }\r\n\r\n ref.current = false;\r\n }, []);\r\n\r\n return (\r\n \r\n {initialTicketData.map(([key, value], index) => {\r\n // key must be unique\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n }\r\n);\r\n\r\nfunction LeftContentComponent(props) {\r\n var sidebarClass = props.isLeftPanelOpen\r\n ? \"leftPanelOpen\"\r\n : \"leftPanelCollapse\";\r\n\r\n return (\r\n
\r\n

\r\n Control Tower\r\n

\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction isCommentLengthEqual(prevProps, nextProps) {\r\n if (\r\n !prevProps.ticketGroupedData.comments &&\r\n !nextProps.ticketGroupedData.comments\r\n )\r\n return true; //if no comments in prev as well as next\r\n if (\r\n !prevProps.ticketGroupedData.comments &&\r\n nextProps.ticketGroupedData.comments\r\n )\r\n return false; //if no comments in prev but in next\r\n\r\n if (\r\n prevProps.ticketGroupedData.comments.length <\r\n nextProps.ticketGroupedData.comments.length\r\n ) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport const TicketGroupedComponent = ({\r\n ticketGroupedData,\r\n addCommentToTicket,\r\n shouldExpand,\r\n ...props\r\n}) => {\r\n const [isTicketGroupExpanded, setIsTicketGroupExpanded] = useState(\r\n shouldExpand ? shouldExpand : false\r\n );\r\n\r\n const [firstTicketData, ...restTicketData] = ticketGroupedData;\r\n\r\n const handleExpandTicket = () => {\r\n if (ticketGroupedData?.length && ticketGroupedData?.length > 1) {\r\n setIsTicketGroupExpanded(!isTicketGroupExpanded);\r\n }\r\n };\r\n //console.log(\"ticketGroupedData- \" ,ticketGroupedData)\r\n return (\r\n \r\n \r\n\r\n {isTicketGroupExpanded && (\r\n
\r\n {/*

Tickets against Ticket #{firstTicketData.ticketid}

*/}\r\n {restTicketData.map((d, i) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport const getHighlightedText = (text, type = false) => {\r\n return (searchTerm) => {\r\n if (!searchTerm && !text.includes(\"
\")) {\r\n return text;\r\n }\r\n\r\n const parts = text.split(new RegExp(`(${searchTerm})`, \"gi\"));\r\n\r\n if (type === \"msg\") {\r\n let p1 = text.substr(0, text.indexOf(\"\") + 4),\r\n p3 = text.substr(text.indexOf(\"\") + 4, text.length - 1);\r\n\r\n let partsArr = [p1, p2, p3];\r\n\r\n //console.log('partsArr', partsArr, text);\r\n return (\r\n \r\n {\" \"}\r\n {partsArr.map((p, i) => {\r\n let parts = [p];\r\n if (searchTerm) {\r\n parts = p.split(new RegExp(`(${searchTerm})`, \"gi\"));\r\n }\r\n\r\n if (i === 1) {\r\n return (\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n {parts.map((part, i) => {\r\n let flag =\r\n part.toLowerCase().trim() ===\r\n searchTerm.toLowerCase().trim();\r\n if (flag) {\r\n return {part};\r\n }\r\n return (\r\n {part}\r\n );\r\n })}\r\n \r\n );\r\n }\r\n })}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {\" \"}\r\n {parts.map((part, i) => {\r\n let flag =\r\n part.toLowerCase().trim() === searchTerm.toLowerCase().trim();\r\n if (flag) {\r\n return {part};\r\n }\r\n\r\n return {part};\r\n })}{\" \"}\r\n \r\n );\r\n }\r\n };\r\n};\r\n\r\nexport const TicketComponent = ({\r\n searchTerm = \"\",\r\n ticketData,\r\n addCommentToTicket,\r\n lastModifiedKeyValue = null,\r\n handleExpandTicket = null,\r\n isTicketGroupExpanded,\r\n numTickets = null,\r\n isSubTicket = false,\r\n}) => {\r\n const [hasErrored, setHasErrored] = useState(false);\r\n const [isChatOpen, setIsChatOpen] = useState(false);\r\n const [isLoadingAddComment, setIsLoadingAddComment] = useState(false);\r\n const [isMapModal, setIsMapModal] = useState(false);\r\n\r\n const {\r\n comments,\r\n dtTime,\r\n companyId,\r\n destTracknumb,\r\n invoice,\r\n lastModifiedDate,\r\n msg,\r\n providerId,\r\n ticketid,\r\n tracknumb,\r\n vehicleName,\r\n statusOfTicket,\r\n serviceName,\r\n } = ticketData;\r\n const {\r\n bgColor,\r\n text: ticketType,\r\n border,\r\n } = getColorCodeFromType(statusOfTicket);\r\n\r\n let {\r\n user: { userName: loggedInUser },\r\n } = useSelector((state) => state.authentication);\r\n let remarkData = JSON.parse(ticketData.remarks);\r\n //console.log(\"remarkData- \", remarkData);\r\n const handleMapToggle = () => {\r\n setIsMapModal(!isMapModal);\r\n };\r\n\r\n const handleChatToggle = () => {\r\n //console.log(\"handleChatToggle\")\r\n setIsChatOpen(!isChatOpen);\r\n };\r\n\r\n const handleAddComment = (newComment) => {\r\n setIsLoadingAddComment(true);\r\n setHasErrored(false);\r\n\r\n let newStatusOfTicket = newComment?.status\r\n ? parseInt(newComment?.status)\r\n : statusOfTicket === null ||\r\n statusOfTicket === \"\" ||\r\n newComment?.status === 0\r\n ? 0\r\n : statusOfTicket;\r\n\r\n //console.log('uu', JSON.parse(localStorage.getItem(\"user\"))?.userName, newComment,'statusOfTicket', statusOfTicket)\r\n saveComment({\r\n ticketid: parseInt(ticketid),\r\n companyId: String(companyId),\r\n providerId: String(providerId),\r\n vehicleName: String(vehicleName),\r\n invoice: String(invoice),\r\n statusOfTicket: parseInt(newStatusOfTicket),\r\n lastModifiedDate:\r\n (!lastModifiedDate && new Date().toISOString()) ||\r\n String(lastModifiedDate),\r\n comments: {\r\n sn: (comments && comments.length + 1) || 1,\r\n stkt: parseInt(ticketid),\r\n cmt: newComment?.text,\r\n dt:\r\n (!lastModifiedDate && new Date().toISOString()) ||\r\n String(lastModifiedDate),\r\n uName: loggedInUser,\r\n },\r\n }).then(\r\n () => {\r\n setIsLoadingAddComment(false);\r\n //parseInt(String(new Date().getTime()).slice(0, -3))\r\n\r\n addCommentToTicket(\r\n `${vehicleName}|${invoice}`,\r\n parseInt(ticketid),\r\n {\r\n sn: (comments && comments.length + 1) || 1,\r\n stkt: parseInt(ticketid),\r\n cmt: newComment?.text,\r\n dt: parseInt(String(new Date().getTime()).slice(0, -3)),\r\n uName: loggedInUser,\r\n },\r\n parseInt(newStatusOfTicket),\r\n lastModifiedKeyValue\r\n );\r\n },\r\n (err) => {\r\n setIsLoadingAddComment(false);\r\n setHasErrored({ msg: err });\r\n }\r\n );\r\n };\r\n\r\n //console.log(\"ticketData - \", ticketData, ticketData.remarks, JSON.parse(ticketData.remarks));\r\n\r\n return (\r\n \r\n {hasErrored && hasErrored.msg && {hasErrored.msg}}\r\n\r\n {isSubTicket && (\r\n \r\n {isSubTicket > 10 ? isSubTicket : `0${isSubTicket}`}{\" \"}\r\n \r\n )}\r\n \r\n {isSubTicket &&
}\r\n
\r\n \r\n
\r\n {/*+ (handleExpandTicket && numTickets ? numTickets -1 >0 ? \" discussionDivSolidCircle\" : \"\" :\"\") discussionDivSolidCircle */}\r\n \r\n {getHighlightedText(ticketType)(searchTerm)}\r\n
\r\n \r\n \r\n {getHighlightedText(\r\n `${\r\n invoice.split(\",\").length > 1\r\n ? invoice\r\n .split(\",\")\r\n .slice(0, 2)\r\n .join(\",\")\r\n .slice(0, 20) + \"...\"\r\n : invoice\r\n }`\r\n )(searchTerm)}\r\n \r\n
\r\n\r\n {/* {handleExpandTicket && }*/}\r\n {isSubTicket && (\r\n \r\n {\" \"}\r\n {isSubTicket}{\" \"}\r\n \r\n )}\r\n \r\n\r\n
\r\n \r\n {getHighlightedText(serviceName)(searchTerm)}\r\n \r\n
\r\n\r\n
\r\n \r\n {getHighlightedText(\r\n formatDateAMPM(new Date(lastModifiedDate || dtTime))\r\n )(searchTerm)}\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \"Ticket\r\n \r\n \r\n {getHighlightedText(`Ticket #${ticketid}`)(searchTerm)}\r\n \r\n
\r\n
\r\n \r\n {getHighlightedText(vehicleName)(searchTerm)}\r\n \r\n {dtTime && (\r\n \r\n {getHighlightedText(formatDateAMPM(new Date(dtTime)))(\r\n searchTerm\r\n )}\r\n \r\n )}\r\n\r\n \r\n \"map\r\n \r\n {isMapModal && (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {getHighlightedText(remarkData?.origin)(searchTerm)}\r\n \r\n
\r\n \r\n \r\n \r\n {getHighlightedText(remarkData?.destination)(\r\n searchTerm\r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
{getHighlightedText(msg, \"msg\")(searchTerm)}
\r\n\r\n \r\n \r\n {\" \"}\r\n \"chats\"\r\n \r\n

\r\n {(comments && comments.length) || 0}\r\n

\r\n
\r\n \r\n \r\n {!isSubTicket && (\r\n
\r\n \"SubTicketLink\"\r\n

\r\n {numTickets\r\n ? numTickets > 1\r\n ? `+${numTickets - 1}`\r\n : \"+\" + 0\r\n : \"+\" + 0}{\" \"}\r\n Tickets\r\n

\r\n
\r\n )}\r\n\r\n {isChatOpen ? (\r\n \r\n ) : null}\r\n \r\n \r\n );\r\n};\r\n\r\nexport function TicketChatComponent({\r\n data,\r\n handleAddComment,\r\n isLoadingAddComment,\r\n primaryMsg,\r\n handleChatToggle,\r\n searchTerm,\r\n}) {\r\n const {\r\n comments,\r\n dtTime,\r\n companyId,\r\n destTracknumb,\r\n invoice,\r\n lastModifiedDate,\r\n msg,\r\n providerId,\r\n ticketid,\r\n tracknumb,\r\n vehicleName,\r\n statusOfTicket,\r\n } = data;\r\n const [commentText, setCommentText] = useState({\r\n text: \"\",\r\n status:\r\n statusOfTicket == null ? 0 : statusOfTicket >= 0 ? statusOfTicket : 0,\r\n });\r\n const [ticketStatusPopup, setTicketStatusPopup] = useState(false);\r\n\r\n const isCommentValid = Boolean(commentText.text);\r\n //console.log(\"comments-- \", comments);\r\n const handleChange = (e) => {\r\n //console.log(e.target.value)\r\n\r\n setCommentText({\r\n ...commentText,\r\n text: e.target.value,\r\n });\r\n };\r\n\r\n const handleCommentStatusPopupDisplay = () => {\r\n setTicketStatusPopup(!ticketStatusPopup);\r\n };\r\n\r\n const handleCommentStatusPopup = (statusInfo = null) => {\r\n if (statusInfo === null || statusInfo === \"\" || statusInfo === \"-1\") {\r\n ticketStatusPopup && setTicketStatusPopup(false);\r\n return;\r\n }\r\n\r\n setCommentText({\r\n ...commentText,\r\n status: statusInfo,\r\n });\r\n ticketStatusPopup && setTicketStatusPopup(false);\r\n //console.log(\"from handleCommentStatusPopup - \", statusInfo);\r\n };\r\n\r\n const addComment = () => {\r\n ticketStatusPopup && setTicketStatusPopup(false);\r\n if (isCommentValid) {\r\n handleAddComment(commentText);\r\n setCommentText({ ...commentText, text: \"\" });\r\n }\r\n };\r\n\r\n const modalCommentPopup = useRef(null);\r\n\r\n const {\r\n bgColor,\r\n text: ticketType,\r\n border,\r\n } = getColorCodeFromType(statusOfTicket);\r\n\r\n return ReactDOM.createPortal(\r\n \r\n \r\n \r\n
\r\n \r\n {ticketType}\r\n
\r\n\r\n
\r\n {getHighlightedText(vehicleName)(searchTerm)}\r\n \r\n {getHighlightedText(`Ticket - #${ticketid}`)(searchTerm)}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n

\r\n {comments ? comments.length : 0}\r\n

\r\n \r\n \r\n {\r\n handleChatToggle();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n 1 ? \"\" : \"200px\",\r\n }}\r\n >\r\n
\r\n {comments?.map((d, i) => {\r\n // key must be unique\r\n //console.log(\"comment \",d)\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {d.uName}\r\n \r\n {epochDatetoLocale(d.dt)}\r\n \r\n
\r\n
\r\n
\r\n

{getHighlightedText(d.cmt)(searchTerm) ?? \"\"}

\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n \r\n \r\n \r\n {/*position: data.length <= 1 ? \"absolute\" : \"fixed\", width: data.length > 1 ? \"\" : \"100%\"*/}\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \"Send\"\r\n \r\n {isLoadingAddComment && (\r\n \r\n )}\r\n \r\n \r\n
\r\n ,\r\n document.getElementById(\"modal-root1\")\r\n );\r\n}\r\n\r\nclass CommentStatusPopUp extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n status: this.props.statusOfTicket,\r\n style: this.getCustomStyle(\r\n this.props.statusOfTicket == null ? 0 : this.props.statusOfTicket\r\n ),\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n getCustomStyle = (type) => {\r\n switch (type) {\r\n case 0:\r\n return {\r\n background: \"rgba(175, 229, 163, 0.1)\",\r\n border: \"1px solid #AFE5A3\",\r\n };\r\n case 1:\r\n return {\r\n background: \" rgba(255, 203, 107, 0.1)\",\r\n border: \"1px solid #FFCB6B\",\r\n };\r\n case 2:\r\n return {\r\n background: \"rgba(254, 143, 41, 0.1)\",\r\n border: \"1px solid #FE8F29\",\r\n };\r\n case 3:\r\n return {\r\n background: \"rgba(242, 47, 47, 0.1)\",\r\n border: \"1px solid #F22F2F\",\r\n };\r\n case 4:\r\n return {\r\n background: \"rgba(123, 109, 209, 0.1)\",\r\n border: \"1px solid #7B6DD1\",\r\n };\r\n case 5:\r\n return {\r\n background: \"rgba(138, 175, 249, 0.1)\",\r\n border: \"1px solid #8AAFF9\",\r\n };\r\n default:\r\n return {\r\n //0 case\r\n background: \"rgba(175, 229, 163, 0.1)\",\r\n border: \"1px solid #AFE5A3\",\r\n };\r\n }\r\n };\r\n\r\n handleChange(event) {\r\n this.setState({\r\n status: Number(event.target.value),\r\n style: this.getCustomStyle(Number(event.target.value)),\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n //console.log(\"this.state.size- \", this.state.status)\r\n\r\n this.props.handleCommentStatusPopup(this.state.status);\r\n }\r\n\r\n render() {\r\n //console.log(\"this.state.size- \", this.state)\r\n return (\r\n
\r\n

\r\n Select the ticket status:\r\n

\r\n\r\n \r\n {Array.from([0, 1, 2, 3, 4, 5]).map((d, i) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n\r\n
\r\n \r\n OK\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nfunction formatDateAMPM(date) {\r\n var monthNames = [\r\n \"Jan\",\r\n \"Feb\",\r\n \"Mar\",\r\n \"Apr\",\r\n \"May\",\r\n \"Jun\",\r\n \"Jul\",\r\n \"Aug\",\r\n \"Sep\",\r\n \"Oct\",\r\n \"Nov\",\r\n \"Dec\",\r\n ];\r\n var dateNum = date.getDate();\r\n var month = date.getMonth();\r\n\r\n var year = date.getFullYear();\r\n\r\n var hours = date.getHours();\r\n var minutes = date.getMinutes();\r\n var ampm = hours >= 12 ? \"PM\" : \"AM\";\r\n hours = hours % 12;\r\n hours = hours ? hours : 12; // the hour '0' should be '12'\r\n minutes = minutes < 10 ? \"0\" + minutes : minutes;\r\n //var strTime =dateNum+\" \"+monthNames[month]+\" \"+year+\" \"+ hours + ':' + minutes + ' ' + ampm;\r\n var strTime =\r\n dateNum +\r\n \" \" +\r\n monthNames[month] +\r\n \" \" +\r\n year +\r\n \" \" +\r\n hours +\r\n \":\" +\r\n minutes +\r\n \" \" +\r\n ampm;\r\n\r\n return strTime;\r\n}\r\n\r\nfunction epochDatetoLocale(date1) {\r\n let myDate = new Date(date1 * 1000);\r\n\r\n let dt = myDate.toString().split(\" \").slice(1, 4); // [ \"Apr\", \"15\", \"2022\", ]\r\n let dtTime = myDate.toLocaleString().split(\",\")[1].toUpperCase(); // 10:20:01 AM\r\n\r\n let result = `${dtTime} ${dt[1]} ${dt[0]} ${dt[2]}`;\r\n return result;\r\n}\r\n\r\nfunction formatDateLocal(date, y) {\r\n let local = new Date(date);\r\n local.setMinutes(date.getMinutes() - date.getTimezoneOffset());\r\n return local.toJSON().slice(0, 10);\r\n}\r\n\r\nfunction formatYYYYMMDD(date, year = false) {\r\n //2022-03-31\r\n var monthNames = [\r\n \"Jan\",\r\n \"Feb\",\r\n \"Mar\",\r\n \"Apr\",\r\n \"May\",\r\n \"Jun\",\r\n \"Jul\",\r\n \"Aug\",\r\n \"Sep\",\r\n \"Oct\",\r\n \"Nov\",\r\n \"Dec\",\r\n ];\r\n let x = date.split(\"-\");\r\n var strTime = \"\";\r\n\r\n if (year)\r\n strTime =\r\n x[2] + \" \" + monthNames[Number(x[1]) - 1] + \" \" + x[0].substr(2, 3);\r\n else strTime = x[2] + \" \" + monthNames[Number(x[1]) - 1];\r\n return strTime;\r\n}\r\n\r\nconst InfoDetails1 = ({\r\n title = \"No Title\",\r\n value = \"No Value Provided\",\r\n search = false,\r\n searchTerm = \"\",\r\n}) => {\r\n return (\r\n
\r\n

{title}

\r\n

\r\n {search ? getHighlightedText(String(value))(searchTerm) : value}\r\n

\r\n
\r\n );\r\n};\r\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _toArray(r) {\n return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nexport { _toArray as default };","import { authHeader } from '../_helpers';\r\nimport { handleResponse } from './handleResponse';\r\nimport { BASE_URL } from '../_constants';\r\n\r\n\r\nexport function saveComment(commentData) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(commentData)\r\n \r\n };\r\n // http://localhost:14213/api/1.0/ticket/save-comment\r\n return fetch(\r\n `${BASE_URL}/save-comment`,\r\n requestOptions\r\n ).then(handleResponse);\r\n}","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { userActions } from '../_actions';\r\nimport { Dashboard } from '../_components';\r\n\r\nclass Home extends React.Component {\r\n componentDidMount() {\r\n // this.props.getUsers();\r\n }\r\n\r\n handleDeleteUser(id) {\r\n return (e) => this.props.deleteUser(id);\r\n }\r\n\r\n render() {\r\n const { user, users } = this.props;\r\n return (\r\n <>\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n\r\nfunction mapState(state) {\r\n const { users, authentication } = state;\r\n const { user } = authentication;\r\n return { user, users };\r\n}\r\n\r\nconst actionCreators = {\r\n getUsers: userActions.getAll,\r\n deleteUser: userActions.delete\r\n}\r\n\r\nconst connectedHome = connect(mapState, actionCreators)(Home);\r\nexport { connectedHome as Home };\r\n\r\n\r\n//
\r\n//

Hi {user.firstName}!

\r\n//

You're logged in with React!!

\r\n//

All registered users:

\r\n// {users.loading && Loading users...}\r\n// {users.error && ERROR: {users.error}}\r\n// {users.items &&\r\n//
    \r\n// {users.items.map((user, index) =>\r\n//
  • \r\n// {user.firstName + ' ' + user.lastName}\r\n// {\r\n// user.deleting ? - Deleting...\r\n// : user.deleteError ? - ERROR: {user.deleteError}\r\n// : - Delete\r\n// }\r\n//
  • \r\n// )}\r\n//
\r\n// }\r\n\r\n\r\n\r\n\r\n//
\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { userActions } from \"../_actions\";\r\nimport \"./Login.css\";\r\nclass Login extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n // reset login status\r\n this.props.logout();\r\n\r\n this.state = {\r\n username: \"\",\r\n password: \"\",\r\n userType: \"U\",\r\n submitted: false,\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleUserTypeChange = this.handleUserTypeChange.bind(this);\r\n }\r\n\r\n handleChange(e) {\r\n const { name, value } = e.target;\r\n this.setState({ [name]: value });\r\n }\r\n handleUserTypeChange(e) {\r\n if (e.target.checked) {\r\n this.setState({ userType: \"P\" });\r\n } else {\r\n this.setState({ userType: \"U\" });\r\n }\r\n }\r\n\r\n handleSubmit(e) {\r\n e.preventDefault();\r\n this.setState({ submitted: true });\r\n const { username, password, userType } = this.state;\r\n if (username && password) {\r\n this.props.login(username, password, userType);\r\n }\r\n }\r\n\r\n render() {\r\n const { loggingIn } = this.props;\r\n const { username, password, userType, submitted } = this.state;\r\n localStorage.setItem(\"UserType\", userType);\r\n return (\r\n
\r\n

\r\n \r\n

\r\n

Sign In

\r\n
\r\n \r\n \r\n \r\n {submitted && !username && (\r\n
Username is required
\r\n )}\r\n
\r\n \r\n \r\n \r\n {submitted && !password && (\r\n
Password is required
\r\n )}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n {loggingIn && (\r\n \r\n )}\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\nfunction mapState(state) {\r\n const { loggingIn } = state.authentication;\r\n return { loggingIn };\r\n}\r\n\r\nconst actionCreators = {\r\n login: userActions.login,\r\n logout: userActions.logout,\r\n};\r\n\r\nconst connectedLogin = connect(mapState, actionCreators)(Login);\r\nexport { connectedLogin as Login };\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { userActions } from '../_actions';\r\n\r\nclass RegisterPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n user: {\r\n firstName: '',\r\n lastName: '',\r\n username: '',\r\n password: ''\r\n },\r\n submitted: false\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n const { user } = this.state;\r\n this.setState({\r\n user: {\r\n ...user,\r\n [name]: value\r\n }\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n\r\n this.setState({ submitted: true });\r\n const { user } = this.state;\r\n if (user.firstName && user.lastName && user.username && user.password) {\r\n this.props.register(user);\r\n }\r\n }\r\n\r\n render() {\r\n const { registering } = this.props;\r\n const { user, submitted } = this.state;\r\n return (\r\n
\r\n

Register

\r\n
\r\n
\r\n \r\n \r\n {submitted && !user.firstName &&\r\n
First Name is required
\r\n }\r\n
\r\n
\r\n \r\n \r\n {submitted && !user.lastName &&\r\n
Last Name is required
\r\n }\r\n
\r\n
\r\n \r\n \r\n {submitted && !user.username &&\r\n
Username is required
\r\n }\r\n
\r\n
\r\n \r\n \r\n {submitted && !user.password &&\r\n
Password is required
\r\n }\r\n
\r\n
\r\n \r\n {registering && \r\n \r\n }\r\n Cancel\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapState(state) {\r\n const { registering } = state.registration;\r\n return { registering };\r\n}\r\n\r\nconst actionCreators = {\r\n register: userActions.register\r\n}\r\n\r\nconst connectedRegisterPage = connect(mapState, actionCreators)(RegisterPage);\r\nexport { connectedRegisterPage as RegisterPage };","import React from 'react';\r\nimport { Router, Route, Switch, Redirect } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport { history } from '../_helpers';\r\nimport { alertActions } from '../_actions';\r\nimport { PrivateRoute } from '../_components';\r\nimport { Home } from '../Home';\r\nimport { Login } from '../Login';\r\nimport { RegisterPage } from '../RegisterPage';\r\nimport Message from './../_components/Message'\r\n\r\nclass App extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n history.listen((location, action) => {\r\n // clear alert on location change\r\n //this.props.clearAlerts();\r\n });\r\n }\r\n\r\n render() {\r\n const { alert } = this.props;\r\n \r\n return (\r\n \r\n
\r\n\r\n {/*{alert.message && (
*/}\r\n {/* {alert.message}*/} \r\n {/*
)}*/}\r\n {alert?.type === 'alert-danger' && alert?.message && {alert.message}}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nfunction mapState(state) {\r\n const { alert } = state;\r\n return { alert };\r\n}\r\n\r\nconst actionCreators = {\r\n clearAlerts: alertActions.clear\r\n};\r\n\r\nconst connectedApp = connect(mapState, actionCreators)(App);\r\nexport { connectedApp as App };","import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\n\r\nimport { store } from './_helpers';\r\nimport { App } from './App';\r\n\r\n// setup fake backend\r\n// import { configureFakeBackend } from './_helpers';\r\n// configureFakeBackend();\r\n\r\nrender(\r\n \r\n \r\n ,\r\n document.getElementById('app')\r\n);\r\nif (process.env.NODE_ENV === 'production') {\r\n console.log = () => {}\r\n console.error = () => {}\r\n console.debug = () => {}\r\n }\r\n"],"names":["root","freeExports","exports","freeGlobal","module","global","window","InvalidCharacterError","message","this","prototype","Error","name","error","TABLE","REGEX_SPACE_CHARACTERS","base64","input","String","test","a","b","c","buffer","padding","length","output","position","charCodeAt","charAt","replace","bitStorage","bitCounter","indexOf","fromCharCode","define","r","e","t","f","n","Array","isArray","clsx","arguments","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","token","count","options","result","tokenValue","toString","addSuffix","comparison","buildFormatLongFn","args","undefined","width","defaultWidth","format","formats","date","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","valuesArray","context","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","ordinalNumber","dirtyNumber","number","Number","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","value","matchedString","parsePatterns","defaultParseWidth","key","findIndex","pattern","findKey","valueCallback","rest","slice","object","predicate","hasOwnProperty","array","parsePattern","parseInt","parseResult","any","index","code","formatDistance","formatLong","formatRelative","localize","weekStartsOn","firstWeekContainsDate","defaultOptions","getDefaultOptions","dateLongFormatter","timeLongFormatter","longFormatters","p","P","dateTimeFormat","datePattern","timePattern","getTimezoneOffsetInMilliseconds","utcDate","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","getTime","getUTCISOWeekYear","dirtyDate","requiredArgs","toDate","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCHours","startOfNextYear","startOfUTCISOWeek","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","diff","Math","round","getUTCWeekYear","_ref","_ref2","_ref3","_options$firstWeekCon","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","toInteger","locale","RangeError","firstWeekOfNextYear","startOfUTCWeek","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","concat","required","TypeError","getUTCDay","setUTCDate","getUTCDate","_options$weekStartsOn","NaN","isNaN","ceil","floor","addDays","dirtyAmount","amount","setDate","MILLISECONDS_IN_HOUR","addHours","addMilliseconds","timestamp","addMinutes","addMonths","dayOfMonth","endOfDesiredMonth","setMonth","daysInMonth","setFullYear","addQuarters","months","addWeeks","days","addYears","pow","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDay","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","yearDiff","monthDiff","differenceInCalendarYears","endOfDay","setHours","endOfMonth","endOfWeek","getDay","endOfYear","addLeadingZeros","targetLength","sign","abs","y","signedYear","M","getUTCMonth","d","dayPeriodEnumValue","getUTCHours","toUpperCase","h","H","m","getUTCMinutes","s","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","dayPeriodEnum","formatters","G","unit","lightFormatters","Y","signedWeekYear","weekYear","R","u","Q","q","L","w","week","I","isoWeek","D","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","i","isoDayOfWeek","toLowerCase","hours","B","K","k","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","originalDate","T","offset","dirtyDelimiter","absOffset","minutes","delimiter","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","subMilliseconds","formatterOptions","map","substring","firstCharacter","longFormatter","join","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","matched","startOfISOWeek","startOfWeek","getISOWeekYear","startOfISOWeekYear","getISOWeek","getQuarter","seconds","getYear","isAfter","dirtyDateToCompare","dateToCompare","isBefore","isDate","_typeof","Object","call","isEqual","dirtyLeftDate","dirtyRightDate","isSameDay","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameQuarter","dateLeftStartOfQuarter","startOfQuarter","dateRightStartOfQuarter","isSameYear","isWithinInterval","interval","startTime","start","endTime","end","max","dirtyDatesArray","datesArray","forEach","currentDate","min","parseISO","argument","_options$additionalDi","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","parseTime","timezone","parseTimezone","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","dateString","timeString","split","substr","exec","regex","RegExp","captures","century","isWeekDate","parseDateUnit","_year","validateWeekDate","isoWeekYear","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseTimeUnit","validateTime","parseFloat","timezoneString","_hours","validateTimezone","assign","target","property","Setter","_classCallCheck","_defineProperty","_createClass","_utcDate","ValueSetter","_Setter","_inherits","_super","_createSuper","validateValue","setValue","priority","subPriority","_this","flags","DateToSystemTimezoneSetter","_Setter2","_super2","_this2","_len","_key","apply","_assertThisInitialized","timestampIsSet","convertedDate","Parser","parse","setter","validate","set","_value","EraParser","_Parser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","dirtyWeek","setUTCWeek","ISOWeekParser","dirtyISOWeek","setUTCISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","ISODayParser","setUTCISODay","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setUTCMinutes","SecondParser","setUTCSeconds","FractionOfSecondParser","setUTCMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","_step","subFnOptions","setters","tokens","usedTokens","_iterator","_createForOfIteratorHelper","_loop","parser","incompatibleTokens","incompatibleToken","find","usedToken","includes","fullToken","push","run","v","done","_ret","err","uniquePrioritySetters","sort","filter","setterArray","_step2","_iterator2","dirtyHours","setMinutes","dirtyMinutes","getDaysInMonth","monthIndex","lastDayOfMonth","dirtyMonth","dateWithDesiredMonth","setQuarter","dirtyQuarter","oldQuarter","setSeconds","dirtySeconds","setYear","dirtyYear","setMilliseconds","startOfMonth","currentMonth","startOfYear","cleanDate","subDays","subMonths","subQuarters","subWeeks","subYears","argStr","console","warn","stack","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","descriptor","arr","propIsEnumerable","propertyIsEnumerable","toObject","val","test1","test2","test3","letter","shouldUseNative","source","from","symbols","to","isarray","pathToRegexp","compile","str","tokensToFunction","tokensToRegExp","PATH_REGEXP","res","path","defaultDelimiter","escaped","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","matches","obj","opts","data","encode","pretty","encodeURIComponent","segment","JSON","stringify","j","attachKeys","re","sensitive","strict","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","func","symbol","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","o","l","g","C","_","N","F","A","W","V","U","$","J","Z","ee","te","ae","ne","oe","se","ie","pe","le","ce","default","de","ue","fe","he","me","ye","ve","De","ge","ke","we","be","Se","Ce","_e","Me","Pe","Ee","Ne","xe","Ye","Oe","Ie","Te","Re","Le","Fe","Ae","We","qe","Ke","Be","Qe","He","je","Ve","Ue","ze","$e","Ge","Je","Xe","Ze","et","tt","rt","at","nt","ot","st","it","pt","lt","ct","dt","ut","ft","ht","mt","yt","vt","enumerable","Dt","St","getOwnPropertyDescriptors","defineProperties","gt","Symbol","iterator","constructor","kt","wt","configurable","writable","Ot","bt","Ct","bind","_t","create","Pt","Mt","setPrototypeOf","__proto__","Et","ReferenceError","Nt","Reflect","construct","sham","Proxy","Boolean","valueOf","xt","Yt","toPrimitive","It","Tt","Rt","Lt","Ft","At","Wt","qt","awareOfUnicodeTokens","tr","er","Kt","dateFormat","Bt","hour","minute","second","Qt","Ht","jt","Vt","Ut","zt","$t","Gt","Jt","Xt","Zt","globalThis","__localeId__","__localeData__","rr","ar","nr","minDate","maxDate","excludeDates","excludeDateIntervals","includeDates","includeDateIntervals","filterDate","ur","some","or","sr","ir","pr","lr","cr","dr","fr","hr","excludeTimes","includeTimes","filterTime","mr","minTime","maxTime","yr","every","vr","Dr","gr","kr","wr","br","Map","get","Sr","holidayName","className","holidayNames","Cr","_r","Mr","startPeriod","endPeriod","Pr","Er","Nr","state","yearsList","createElement","onClick","onChange","unshift","incrementYears","decrementYears","onCancel","setState","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","dropdownRef","createRef","current","children","ariaSelected","scrollTop","offsetTop","clientHeight","scrollHeight","ref","renderOptions","Component","xr","Yr","dropdownVisible","onSelectChange","renderSelectOptions","style","visibility","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","onSelect","setOpen","dropdownMode","renderScrollMode","renderSelectMode","Or","monthNames","isSelectedMonth","Ir","Tr","useShortMonthInDropdown","Rr","Lr","monthYearsList","scrollableMonthYearDropdown","Fr","Ar","Wr","isDisabled","onMouseEnter","preventDefault","handleOnKeyDown","disabledKeyboardNavigation","selected","isSameWeek","preSelection","calendarStartDay","showWeekPicker","highlightDates","holidays","has","startDate","endDate","selectsStart","selectsEnd","selectsRange","selectsDisabledDaysInRange","selectingDate","isInSelectingRange","dayClassName","isExcluded","isSelected","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isCurrentDay","isWeekend","isAfterMonth","isBeforeMonth","getHighLightedClass","getHolidaysClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","showWeekNumber","isStartOfWeek","getTabIndex","isInputFocused","document","activeElement","body","inline","shouldFocusDayInline","containerRef","contains","classList","monthShowsDuplicateDaysEnd","monthShowsDuplicateDaysStart","dayEl","focus","preventScroll","renderDayContents","getClassNames","onKeyDown","handleClick","handleMouseEnter","tabIndex","getAriaLabel","role","title","getTitle","handleFocusDay","qr","weekNumberEl","handleFocusWeekNumber","weekNumber","ariaLabelPrefix","Kr","onDayClick","onDayMouseEnter","onWeekSelect","handleDayClick","shouldCloseOnSelect","formatWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayMouseEnter","renderDays","Br","Qr","Hr","jr","grid","verticalNavigationOffset","Vr","Ur","orderInDisplay","onMouseLeave","isInSelectingRangeMonth","fixedHeight","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","setPreSelection","MONTH_REFS","showTwoColumnMonthYearPicker","showFourColumnMonthYearPicker","onMonthClick","handleMonthNavigation","QUARTER_REFS","onQuarterClick","handleQuarterNavigation","monthClassName","isRangeStartMonth","isRangeEndMonth","isSelectingMonthRangeStart","isSelectingMonthRangeEnd","isCurrentMonth","isSelectedQuarter","isInSelectingRangeQuarter","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","renderMonthContent","renderQuarterContent","onMonthKeyDown","onMonthMouseEnter","getMonthClassNames","getMonthContent","onQuarterKeyDown","onQuarterMouseEnter","getQuarterClassNames","getQuarterTabIndex","isCurrentQuarter","getQuarterContent","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","zr","height","requestAnimationFrame","list","centerLi","calcCenterPosition","monthRef","header","timeClassName","isSelectedTime","isDisabledTime","injectTimes","intervals","previousSibling","nextSibling","openToDate","reduce","liClasses","scrollToTheSelectedTime","todayButton","showTimeSelectOnly","timeCaption","renderTimes","onTimeChange","$r","yearItemNumber","YEAR_REFS","updateFocusOnPaginate","handleYearClick","onYearClick","handleYearNavigation","isCurrentYear","renderYearContent","onYearMouseEnter","onYearMouseLeave","onYearKeyDown","getYearTabIndex","getYearClassNames","getYearContent","getYearContainerClassNames","clearSelectingDate","Gr","customTimeInput","cloneElement","placeholder","timeInputLabel","renderTimeInput","Jr","showPopperArrow","arrowProps","Xr","Zr","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","isRenderAriaLiveMessage","handleCustomMonthChange","onMonthChange","handleMonthYearChange","weekLabel","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","decreaseMonth","decreaseYear","previousMonthButtonLabel","previousYearButtonLabel","previousMonthAriaLabel","previousYearAriaLabel","showTimeSelect","increaseMonth","increaseYear","nextMonthButtonLabel","nextYearButtonLabel","nextMonthAriaLabel","nextYearAriaLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","handleTodayButtonClick","monthDate","renderCurrentMonth","onFocus","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","monthContainer","customHeaderCount","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","renderHeader","monthAriaLabelPrefix","handleOnDayKeyDown","handleMonthMouseLeave","handleYearMouseEnter","handleYearMouseLeave","timeFormat","timeIntervals","withPortal","showTimeInput","getDateInView","assignMonthContainer","container","display","renderAriaLiveRegion","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","renderChildren","ea","icon","isValidElement","xmlns","viewBox","ta","el","portalRoot","portalHost","getElementById","portalId","setAttribute","appendChild","removeChild","createPortal","ra","disabled","aa","tabLoopRef","querySelectorAll","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","na","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","popperOnKeyDown","Popper","modifiers","placement","popperContainer","Manager","Reference","oa","sa","ia","pa","getPreSelection","open","startOpen","preventFocus","focused","preventFocusTimeout","clearTimeout","blur","cancelFocusInput","calcInitialState","lastPreSelectChange","ca","setBlur","inputValue","readOnly","preventOpenOnFocus","clearPreventFocusTimeout","setTimeout","setFocus","inputFocusTimeout","onBlur","onChangeRaw","isDefaultPrevented","la","strictParsing","setSelected","sendFocusBackToInput","showDateSelect","allowSameDay","focusSelectedMonth","onInputClick","calendar","componentNode","querySelector","inputOk","handleSelect","onInputError","msg","onClearClick","closeOnScroll","documentElement","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","modifyHolidays","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleChange","handleFocus","onInputKeyDown","id","form","autoFocus","placeholderText","autoComplete","ariaDescribedBy","ariaInvalid","ariaLabelledBy","ariaRequired","isClearable","clearButtonTitle","clearButtonClassName","ariaLabelClose","addEventListener","onScroll","onCalendarOpen","onCalendarClose","removeEventListener","showIcon","calendarIconClassname","toggleCalendarOnIconClick","toggleCalendar","renderDateInput","renderClearButton","renderCalendar","onPortalKeyDown","renderInputContainer","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","ba","onError","da","fa","ha","ja","ma","currentTarget","ka","qa","extractEvents","eventTypes","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","Xa","Sa","Ta","Ra","removeAttribute","setAttributeNS","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","Ya","for","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","$$typeof","_status","_result","qb","tag","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","nodeName","xb","_valueTracker","getValue","stopTracking","tb","yb","checked","zb","defaultChecked","defaultValue","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","Gb","Children","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","Zb","$b","ac","bc","WeakMap","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","child","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","parentNode","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","pop","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","shift","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","trim","md","setProperty","nd","menuitem","area","base","col","embed","img","keygen","link","meta","param","track","wbr","od","pd","is","qd","rd","sd","td","ud","vd","wd","compareDocumentPosition","xd","HTMLIFrameElement","contentWindow","href","yd","contentEditable","Bd","Cd","Dd","Ed","Fd","Gd","__html","Hd","Id","Jd","Kd","Ld","random","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","Interface","defaultPrevented","returnValue","eventPool","destructor","getPooled","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","now","isTrusted","extend","documentMode","beforeInput","compositionEnd","compositionStart","compositionUpdate","keyCode","detail","which","ctrlKey","altKey","metaKey","char","color","datetime","email","password","range","search","tel","text","url","change","detachEvent","attachEvent","_isInputEventSupported","view","Alt","Control","Meta","Shift","getModifierState","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","defaultView","parentWindow","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","_context","_currentValue","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","payload","callback","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","refs","Fg","Jg","isMounted","_reactInternalFiber","enqueueSetState","Gg","Hg","Ig","enqueueReplaceState","enqueueForceUpdate","Kg","shouldComponentUpdate","isPureReactComponent","Lg","updater","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_owner","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","mode","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","queue","uh","vh","wh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","destroy","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useCallback","useContext","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","ReactCurrentOwner","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","hi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","last","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","size","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","Ri","instance","insertBefore","_reactRootContainer","Si","Ti","Ui","Vi","add","then","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","fj","gj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","timeout","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","vb","Uj","Vj","Wj","hidden","_ctor","ob","Xj","_calculateChangedBits","unstable_observedBits","Zj","isReactComponent","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","Lj","lk","Events","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","version","rendererPackageName","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","_DraggableCore","React","nodeInterop","__esModule","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","desc","_interopRequireWildcard","_propTypes","_interopRequireDefault","_reactDom","_clsx","_domFns","_positionFns","_shims","_log","cacheBabelInterop","cacheNodeInterop","_extends","arg","hint","prim","_toPrimitive","_toPropertyKey","Draggable","coreData","onStart","createDraggableData","dragging","dragged","uiData","newState","slackX","slackY","bounds","getBoundPosition","newStateX","newStateY","onDrag","onStop","defaultPosition","prevPropsPosition","isElementSVG","SVGElement","_this$props$nodeRef$c","_this$props","nodeRef","axis","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","positionOffset","draggableCoreProps","scale","svgTransform","draggable","validPosition","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","onDragStart","onDragStop","only","transform","right","bottom","dontSetMe","eventsFor","move","stop","dragEventFor","DraggableCore","onMouseDown","allowAnyClick","thisNode","Node","handle","matchesSelectorAndParentsTo","cancel","touchIdentifier","getTouchIdentifier","getControlPosition","coreEvent","createCoreData","mounted","enableUserSelectHack","addUserSelectStyles","lastX","lastY","addEvent","handleDrag","handleDragStop","snapToGrid","MouseEvent","event","createEvent","initMouseEvent","removeUserSelectStyles","removeEvent","handleDragStart","onTouchStart","passive","_this$props2","onMouseUp","onTouchEnd","offsetParent","addClassName","handler","inputOptions","doc","styleEl","getElementsByTagName","controlPos","translation","getTranslation","_getPrefix","browserPrefixToKey","getTouch","identifier","findInArray","innerHeight","computedStyle","getComputedStyle","int","paddingTop","paddingBottom","innerWidth","clientWidth","paddingLeft","paddingRight","matchesSelector","selector","baseNode","offsetXYFromParent","evt","offsetParentRect","getBoundingClientRect","outerHeight","borderTopWidth","borderBottomWidth","outerWidth","borderLeftWidth","borderRightWidth","removeClassName","selection","empty","matchesSelectorFunc","method","isFunction","unitSuffix","defaultX","defaultY","remove","browserPrefixToStyle","prop","getPrefix","prefixes","_window$document","out","shouldCapitalize","kebabToTitleCase","isStart","isNum","cloneBounds","boundNode","ownerWindow","HTMLElement","boundNodeEl","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","marginTop","marginRight","marginBottom","draggableCore","touchObj","pendingX","pendingY","num","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","entries","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","_setPrototypeOf","self","isNodeFound","ignoreClass","correspondingElement","seed","passiveEventSupport","uid","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","eventName","handlerOptions","WrappedComponent","config","_class","_temp","_Component","subClass","superClass","__outsideClickHandler","__clickOutsideHandlerProp","getInstance","handleClickOutside","__getComponentNode","setClickOutsideRef","enableOnClickOutside","_uid","noop","testPassiveEventSupport","events","initTimeStamp","host","findHighest","composed","composedPath","disableOnClickOutside","fn","getRef","instanceRef","performance","_proto","excluded","sourceKeys","_objectWithoutPropertiesLoose","wrappedRef","getClass","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","_React$useState","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","Provider","unwrapArray","safeInvoke","setRef","fromEntries","acc","useIsomorphicLayoutEffect","getWindow","isHTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","navigator","userAgentData","brands","item","brand","userAgent","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","getWindowScroll","win","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","rect","isElementScaled","scroll","offsets","getNodeScroll","clientLeft","clientTop","getLayoutRect","getParentNode","assignedSlot","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","auto","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","visited","requires","requiresIfExists","dep","depModifier","debounce","Promise","resolve","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","reference","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","mergeByName","enabled","_ref$options","effect","cleanupFn","noopFn","update","forceUpdate","_state$elements","rects","reset","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","dpr","devicePixelRatio","roundOffsetsByDPR","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","popperOffsets","hash","getOppositePlacement","getOppositeVariationPlacement","parent","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","within","mathMax","mathMin","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","referenceRect","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrow","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","_options$scroll","_options$resize","resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","initialStyles","margin","attribute","_skip","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","_i","fittingPlacement","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","prevOptions","optionsWithDefaults","updateStateModifier","ReactDOM","popperOptions","newOptions","popperInstanceRef","popperInstance","defaultCreatePopper","NOOP","NOOP_PROMISE","_ref$placement","_ref$strategy","_ref$modifiers","innerRef","setPopperElement","_React$useState2","setArrowElement","_usePopper","childrenProps","hide","refHandler","warning","__self","__source","jsx","jsxs","keyPrefix","escape","IsSomeRendererActing","toArray","PureComponent","createContext","_currentValue2","_threadCount","Consumer","createFactory","forwardRef","lazy","memo","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","toPropertyKey","_defineProperties","isNativeReflectConstruct","possibleConstructorReturn","_getPrototypeOf","_isNativeReflectConstruct","ownKeys","objectWithoutPropertiesLoose","assertThisInitialized","_regeneratorRuntime","asyncIterator","toStringTag","wrap","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","mark","awrap","async","reverse","prev","rval","complete","finish","delegateYield","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","runtime","regeneratorRuntime","accidentalStrictMode","Function","hasOwn","classNames","classes","appendClass","parseValue","newClass","_arrayLikeToArray","_n","_possibleConstructorReturn","_unsupportedIterableToArray","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","getter","definition","nmd","paths","ReactReduxContext","batch","getBatch","nullListeners","notify","createSubscription","store","parentSub","unsubscribe","listeners","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","subscribe","first","clear","listener","isSubscribed","createListenerCollection","notifyNestedSubs","tryUnsubscribe","getListeners","contextValue","previousState","getState","_excluded","_excluded2","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2$getDisplayName","getDisplayName","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","_ref2$context","connectOptions","wrappedComponentName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","didStoreComeFromProps","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","previousStateUpdateResult","renderedWrappedComponent","Connect","forwarded","hoistStatics","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","actionCreators","boundActionCreators","actionCreator","bindActionCreators","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","nextStateProps","statePropsChanged","handleNewState","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","createConnect","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","defaultMapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","defaultMapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","defaultMergePropsFactories","_ref$selectorFactory","defaultSelectorFactory","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","useReduxContext","refEquality","createSelectorHook","useDefaultReduxContext","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","latestSubscriptionCallbackError","latestSelector","latestSelectedState","storeState","newSelectedState","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","newBatch","useSelector","localStorage","getItem","isAbsolute","pathname","spliceOne","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","valueEqual","aValue","bValue","invariant","condition","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","splice","canGo","_objectSpread2","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","compose","funcs","createThunkMiddleware","extraArgument","thunk","withExtraArgument","$scope","conflict","pad","maxLength","times","timer","toConsumableArray","arr2","conflictResolution","inherits$$1","ctor","superCtor","super_","Diff","kind","DiffEdit","origin","DiffNew","DiffDeleted","DiffArray","arrayRemove","realTypeOf","subject","deepDiff","lhs","rhs","changes","prefilter","currentPath","normalize","alt","ltype","rtype","ldefined","rdefined","akeys","pkeys","accumulateDiff","accum","applyArrayChange","applyChange","revertArrayChange","DeepDiff","observableDiff","applyDiff","revertChange","isConflict","noConflict","dictionary","getLogLevel","level","printBuffer","logger","actionTransformer","_options$titleFormatt","titleFormatter","duration","took","toFixed","defaultTitleFormatter","collapsed","colors","isUsingDefaultFormatter","logEntry","started","startedTime","prevState","nextEntry","formattedAction","isCollapsed","formattedTime","titleCSS","headerCSS","groupCollapsed","log","prevStateLevel","actionLevel","errorLevel","nextStateLevel","_styles","_styles2","_styles3","withTrace","trace","groupEnd","elem","diffLogger","defaults$1","logErrors","stateTransformer","errorTransformer","diffPredicate","transformer","createLogger","loggerOptions","logBuffer","returnedValue","alertConstants","userConstants","controlSummaryConstants","BASE_URL","user","base64_decode","initialState","loggedIn","_objectWithoutProperties","rootReducer","reducers","reducerKeys","finalReducers","process","shapeAssertionError","finalReducerKeys","reducer","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","combineReducers","authentication","loggingIn","registration","registering","users","loading","items","deleting","deleteError","alert","controlSummary","isLoading","totalcontrolData","last24hrlData","last7DaylData","createStore","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observer","observeState","middlewares","_dispatch","middlewareAPI","chain","middleware","_objectSpread","applyMiddleware","thunkMiddleware","authHeader","Authorization","colorCodes","bgColor","border","getColorCodeFromType","XLSX","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","set_cp","reset_cp","utf16beread","$cptable","_getchar","_getansi","Base64_map","Base64_encode","c1","c2","c3","e1","e2","e3","e4","Base64_decode","has_buf","Buffer","versions","Buffer_from","nbfs","buf","enc","new_raw_buf","alloc","Uint8Array","new_unsafe_buf","allocUnsafe","s2a","s2ab","a2s","bconcat","bufs","isBuffer","maxlen","chr0","chr1","_strrev","pad0","fill","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","SSF_isgeneral","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","mixed","sgn","P_2","P_1","Q_2","Q_1","SSF_parse_date_code","b2","dow","dout","date1904","SSF_fix_hijri","SSFbasedate","SSFdnthresh","SSFbase1904","datenum_local","epoch","SSF_strip_decimal","SSF_general_num","LOG10E","toPrecision","toExponential","SSF_small_exp","SSF_large_exp","SSF_normalize_exp","SSF_general","SSF_format","SSF_write_date","fmt","ss0","ss","outl","commaify","pct1","write_num_exp","idx","period","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","rnd","dec","_frac","write_num_flt","ffmt","write_num","write_num_cm","sfmt","mul","write_num_pct","aval","den","myn","myd","write_num_f1","carry","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","SSF_abstime","fmt_is_date","cfregex2","chkcond","thresh","choose_fmt","in_str","SSF_split_fmt","lat","m1","m2","dateNF","table","flen","lst","ssm","jj","nstr","myv","ostr","vv","decpt","lasti","retval","eval_fmt","SSF_load","SSF_load_table","tbl","make_ssf","dateNFregex","CRC32","T0","Int32Array","signed_crc_table","TT","subarray","slice_by_16_tables","T1","T2","T3","T4","T5","T6","T7","T8","T9","bstr","CFB","fs","dirname","filename","write_dos_date","hms","write_shift","ymd","parse_extra_field","blob","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","get_fs","file","parse_zip","row","mboundary","FileIndex","FullPaths","init_cfb","start_di","fcnt","line","parse_mime","parse_mad","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","check_shifts","dir_cnt","sectors","nsectors","sectorify","sleuth_fat","sector_list","sl","chkd","buf_chain","modulus","seen","addr","__readInt32LE","nodes","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","files","mini","minifat_store","pl","sector","namelen","__utf16le","clsid","read_date","storage","get_sector_list","content","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","raw","MSSZ","new_buf","cnt","__readUInt32LE","cfb","CLSID","nm","rebuild_cfb","seed_cfb","_file","fullPaths","HEADER_CLSID","namecmp","elt","_write","_opts","fileType","fp","cstr","dispcnt","csl","qp","get_content_type","write_quoted_printable","write_base64_76","write_mad","cdirs","compression","start_cd","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","copy","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","boff","write_stored","addrs","mlen","len_eb","dst_eb","write_huff_fixed","off","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","bits","dst","inflate","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","parse_dos_date","_csz","_usz","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","cfb_add","unsafe","ContentTypeMap","ctype","ext","encoded","tmp","fdata","fname","cte","oi","parse_quoted_printable","fpath","utils","cfb_gc","UCFullPaths","UCPaths","UCPath","read","readFileSync","read_file","write","writeFileSync","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","_fs","blobify","a2u","write_dl","Deno","TextEncoder","utf8write","IE_SaveFile","Blob","msSaveBlob","saveAs","URL","createObjectURL","chrome","downloads","download","revokeObjectURL","click","File","Folder","encoding","close","ks","o2","evert_key","evert","evert_num","basedate","datenum","refdate","dnthresh","refoffset","numdate","setTime","good_pd_date_1","good_pd_date","good_pd","fixdate","cc2str","debomit","TextDecoder","decode","dup","fuzzynum","isFinite","lower_months","fuzzydate","lower","zip_add_file","zip","widx","ridx","utf8decode","zip_new","XML_HEADER","encodings","rencoding","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","htmldecode","entities","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","XMLNS","XMLNS_main","XLMLNS","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","Infinity","read_double_le","__double","is_buf","cpdoit","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt16LE","WriteShift","cppayload","__writeUInt32LE","bs","av","LN2","write_double_le","__writeInt32LE","hexstr","fld","pos","parsenoop","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","XLSBRecordEnum","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","decode_cell","decode_range","encode_range","cs","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","_origin","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","write_BrtCommentText","write_StrRun","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","theme","nTS","tint","rgb","VT_STRING","DocSummaryPIDDSI","SummaryPIDSI","rgbify","XLSIcv","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","metadata","write_ct","type2ct","evert_arr","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","CORE_PROPS","EXT_PROPS","CUST_PROPS","SST","STY","THEME","CHART","CHARTEX","CS","WS","DS","MS","IMG","DRAW","XLMETA","TCMNT","PEOPLE","VBA","get_rels_path","write_rels","rels","rid","add_rels","rId","relobj","targetmode","Type","Target","TargetMode","write_rdf_type","write_meta_ods","cp_doit","write_core_props","Props","CreatedDate","WTF","ModifiedDate","PseudoPropsPairs","write_ext_props","Application","Worksheets","baseType","write_cust_props","pid","write_vt","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Company","AppVersion","ContentStatus","Identifier","Language","write_TypedPropertyValue","write_FILETIME","XLSPSSkip","guess_property_type","write_PropertySet","RE","PIDSI","hdr","piao","pio","pinfo","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsebool","writebool","parseuint16","writeuint16","write_Bes","parse_ShortXLUnicodeString","cch","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","write_HyperlinkString","write_Hyperlink","hl","hashidx","Pretarget","write_XLSCell","ixfe","parse_XTI","parse_Ref8U","rwFirst","rwLast","write_Ref8U","write_BOF","write_BoundSheet8","hs","write_Format","b5","write_XF","ixfeP","parse_ExternSheet","parse_BIFF5ExternSheet","write_HLink","write_HLinkTooltip","Tooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","vfp","l7","nrow","fpos","rlen","current_cp","codepage","fields","field","hend","sheetRows","dbf_to_aoa","wch","_RLEN","to_workbook","to_sheet","from_sheet","aoa","sheet_to_json","headers","cols","hcnt","coltypes","colwidths","coldecimals","guess","_guess","_f","rout","_s","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","records","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","RT","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","rec","wpx","width2px","px2char","rows","px2pt","write_ws_rows_sylk","coord","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","sheet_to_dif","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","FS","sepcc","startcc","_re","dateNF_regex","finish_cell","datestr","timestr","dateNF_fix","cellText","cellNF","outer","prn_to_sheet_str","lines","prn_to_aoa_str","prn_to_sheet","bytes","firstbyte","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","parse_cell","parse_LABEL","write_LABEL","write_INTEGER","write_NUMBER","wk1_parse_rc","rel","FuncTab","BinOpTab","parse_cell_3","write_LABEL_16","wsidx","parse_NUMBER_17","v1","v2","write_NUMBER_17","log2","parse_NUMBER_27","parse_SHEETNAMECS","write_XFORMAT_SHEETNAME","argc","argL","argR","wk1_fmla_to_csf","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","book_to_wk3","wscnt","write_BOF_WK3","straywsregex","write_sst_xml","sst","bookSST","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","Verifier","PasswordDecoded","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","lastIndex","rgb2Hex","MDW","px","char2width","chr","coll","customWidth","write_sty_xml","SSF","NF","formatCode","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","write_BrtFont","font","grbit","italic","strike","outline","shadow","condense","write_FontFlags","bold","sss","vertAlign","underline","family","charset","scheme","rev_XLSBFillPTNames","XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","patternType","write_BrtXF","write_Blxf","parse_BrtBorder","write_BORDERS_bin","write_STYLES_bin","xfId","builtinId","write_BrtStyle","write_TABLESTYLES_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","write_DXFS_bin","write_theme","Themes","themeXLSX","write_xlmeta_bin","write_BrtMdtinfo","write_BrtBeginEsfmd","cm","write_BrtBeginEsmdb","mdb","write_BrtMdb","write_xlmeta_xml","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","fillcolor","strokecolor","on","write_comments_xml","iauthor","ID","lastauthor","ts","write_tcmnt_xml","people","carr","rootid","tcopts","tcid","parentId","personId","parse_BrtCommentAuthor","write_comments_bin","comment","write_BrtCommentAuthor","write_BrtBeginComment","VBAFMTS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrBaxcel","bitSemi","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","cce","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfLel","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","tab","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","Ptg19","bitIf","bitGoto","parse_RgbExtra","rgce","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","get_ixti_raw","supbooks","XTI","SID","Name","get_ixti","ixtiraw","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","lbl","names","xlfn","externbook","bookidx","itab","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","write_Formula","os","o1","write_FormulaValue","o3","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","browser_has_Map","get_sst_id","revarr","col_obj_w","outlineLevel","default_margins","margins","defs","footer","get_cell_style","revssf","ssf","applyNumberFormat","check_ws","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","Strings","revStrings","write_ws_xml","rdata","_drawing","needed","vbaraw","cname","Workbook","CodeName","codeName","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","Views","rightToLeft","RTL","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","write_ws_xml_cols","params","_cell","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","merges","write_ws_xml_merges","relc","tooltip","ignoreEC","numberStoredAsText","sqref","write_row_header","miyRw","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtShortReal","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","last_seen","ncell","write_BrtShortIsst","write_BrtCellIsst","write_BrtShortSt","write_BrtCellSt","write_BrtShortRk","write_BrtCellRk","write_BrtShortReal","write_BrtCellReal","write_BrtShortBool","write_BrtCellBool","write_BrtShortError","write_BrtCellError","write_BrtShortBlank","write_BrtCellBlank","write_MERGECELLS","write_COLINFOS","write_BrtColInfo","write_IGNOREECS","write_BrtCellIgnoreEC","write_HLINKS","locidx","write_BrtHLink","write_WSVIEWS2","write_BrtBeginWsView","write_SHEETPROTECT","write_ws_bin","write_BrtWsProp","cap","write_CELLTABLE","write_AUTOFILTER","write_LEGACYDRAWING","WBPropsDef","badchars","check_ws_name","safe","_good","check_wb","codes","cn","write_wb_xml","write_names","workbookPr","WBProps","Hidden","sheetId","Comment","localSheetId","write_BrtBundleSh","iTabID","strRelID","write_BOOKVIEWS","vistab","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","write_BUNDLESHS","write_ws","write_cmnt","write_props_xlml","xlml_write_docprops","Custprops","BLACKLIST","xlml_write_custprops","write_name_xlml","write_ws_xlml_cell","attr","marr","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","skip","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","xf","write_sty_xlml","write_names_xlml","PSCLSID","write_xlscfb","wbpath","write_biff_buf","Keys","DSEntries","SEntries","CEntries","DocSummaryRE","SummaryRE","CEntries2","write_xls_props","vba","newpath","fill_vba_xls","cellFormula","Ptg","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","icv","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","rfx","fAlwaysCalc","relId","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2INT","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_biff2_buf","write_ws_biff2","write_FONTS_biff8","write_Font","write_ws_cols_biff8","write_ColInfo","write_ws_biff8_cell","write_Number","write_BoolErr","write_LabelSst","b8","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FMTS_biff8","write_CELLXFS_biff8","write_biff_continue","write_SST","blen","fix_write_opts","write_biff8_buf","make_html_row","rowspan","colspan","editable","HTML_BEGIN","HTML_END","make_html_preamble","sheet_to_html","sheet_add_dom","or_R","or_C","midx","is_dom_element_hidden","elts","Aelts","Aelti","parse_dom_table","get_computed_style","get_get_computed_style_function","getPropertyValue","write_styles_ods","master_styles","write_content_ods","null_cell_xml","ods","ROWS","textp","_Fref","text_p","_tgt","fods","cidx","colobj","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","u8_to_dataview","DataView","byteOffset","byteLength","stru8","u8concat","u8a","u8","parse_varint49","ptr","varint","write_varint49","varint_to_i32","i32","parse_shallow","write_shallow","parse_iwa_file","_a","messages","fl","merge","write_iwa_file","ias","midata","aipayload","mid","parse_snappy_chunk","chunks","decompress_iwa_file","compress_iwa_file","frame","write_new_storage","dv","exp","mantissa","writeDecimal128LE","setFloat64","setUint32","write_old_storage","parse_TSP_Reference","write_tile_row","tri","_b","_c","_d","last_offset","cell_storage","_dv","_last_offset","_cell_storage","celload","_celload","setUint16","fix_opts_func","defaults","numbers","trunc","dependents","indices","packet2","x2","y2","indices_varint","ivi","mess","u8contains","docroot","packet","sheetrootref","cruidsref","oldbucket","_x","cruids","uuid","row_header_ref","base_bucket","_bucket","col_header_ref","sstref","sstroot","sentry","sx","sxi","sstdata","newsst","raw32","tile","tl","tileref","tileroot","tentry","tx","tiledata","rowload","R2","tilerow","raw3","write_numbers_iwa","wbrels","foo","wbext","vbafmt","threadedcomments","links","coreprops","extprops","custprops","themes","calcchains","drawings","TODO","_sn","wsrels","need_vml","rId1","write_sst","write_wb","write_sty","write_xlmeta","write_zip_xlsxb","write_zip_xlsx","needtc","person","userId","providerId","write_people_xml","write_cfb_ctr","write_zip_denouement","oopts","ftype","generate","encrypt_agile","write_string_type","bom","write_binary_type","writeSync","write_stxt_type","sheet_to_txt","sheet_to_csv","write_cfb_type","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","counter","header_cnt","skipHidden","blankrows","qreg","make_csv_row","rs","txt","forceQuotes","endregex","strip","sheet_add_json","js","skipHeader","JS","ws_get_cell_stub","RC","book_new","book_append_sheet","roll","cell_set_hyperlink","split_cell","json_to_sheet","table_to_sheet","table_to_book","sheet_to_formulae","cmds","sheet_to_row_object_array","sheet_get_cell","book_set_sheet_visibility","vis","wb_sheet_idx","cell_set_number_format","cell_set_internal_link","cell_add_comment","author","sheet_set_array_formula","dynamic","rng","rngstr","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN","downloadExcel","worksheet","workbook","toLocaleString","_inheritsLoose","MAX_SIGNED_31_BIT_INT","commonjsGlobal","createEventEmitter","handlers","newValue","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","emitter","nextProps","oldValue","_Component2","onUpdate","_proto2","onlyChild","createNamedContext","historyContext","Router","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","RouterContext","HistoryContext","Lifecycle","onMount","prevProps","onUnmount","cacheCount","generatePath","generator","compilePath","Redirect","computedMatch","matchPath","cacheKey","pathCache","regexp","Route","isEmptyChildren","createURL","staticHandler","Switch","alertActions","success","handleResponse","response","status","removeItem","reload","statusText","reject","userService","login","username","userType","requestOptions","fetch","isStatus","setItem","base64_encode","logout","register","getAll","getById","controlSummaryService","getControlSummaryData","companyId","getControlTicketData","getInvoiceWiseData","fromDt","toDt","userActions","request","failure","controlSummaryActions","getControlSummary","PrivateRoute","none","childMatcher","childFirst","firstElementChild","EnterNode","datum","_next","_parent","__data__","bindIndex","enter","exit","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","arraylike","ascending","xhtml","svg","xlink","xml","namespaces","space","local","attrRemove","attrRemoveNS","fullname","removeAttributeNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","styleRemove","removeProperty","styleConstant","styleFunction","styleValue","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_node","_names","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","creatorInherit","uri","creatorFixed","namespace","constantNull","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","parseTypenames","typenames","onRemove","typename","__on","onAdd","contextListener","dispatchEvent","CustomEvent","initEvent","dispatchConstant","dispatchFunction","_groups","Selection","parents","_parents","subgroups","subnode","subgroup","selectAll","arrayAll","selectorAll","selectChild","childFind","selectChildren","childrenFilter","matcher","enterGroup","updateGroup","exitGroup","previous","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","append","groups0","groups1","m0","group0","group1","compareNode","sortgroups","sortgroup","each","getAttributeNS","classed","creator","insert","before","deep","selection_iterator","Dispatch","types","that","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","_call","_time","restart","wake","timerFlush","t0","t2","t1","sleep","nap","poke","clearInterval","setInterval","elapsed","emptyOn","emptyTween","timing","schedules","__transition","tween","schedule","tick","ease","init","svgNode","degrees","PI","identity","translateX","translateY","rotate","skewX","sqrt","atan2","atan","interpolateTransform","pxComma","pxParen","degParen","translate","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","factory","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","basis","v0","v3","t3","channels","displayable","formatHex8","formatHsl","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","reA","reB","bm","zero","interpolateNumber","interpolateRgb","interpolateString","interpolate","value1","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","styleInterpolate","styleTween","textInterpolate","textTween","Transition","_name","newId","selection_prototype","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","removeFunction","easeVarying","interrupt","defaultTiming","active","number1","number2","genericArray","numberArray","cos","sin","epsilon","halfPi","tau","acos","asin","_taggedTemplateLiteral","freeze","tauEpsilon","strings","Path","digits","_x0","_y0","_x1","_y1","_append","appendRound","x1","y1","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","a1","ccw","dx","dy","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","r1","lo","ox","oy","x11","y11","x00","y00","d2","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","withPath","arc","r0","moveTo","a01","a11","a00","a10","da0","da1","ap","rc0","rc1","p0","p1","ax","ay","bx","by","lineTo","closePath","centroid","Transform","point","applyX","applyY","invert","invertX","invertY","rescaleX","domain","rescaleY","formatIndianSystem","DonutChart","radius","totalTickets","curr","noOfTicket","createPie","sortValues","descending","pie","sum","arcs","d3","createArc","prevData","groupWithData","statusOfTicket","interpolator","flexDirection","gap","justifyContent","preserveAspectRatio","stroke","rx","textAnchor","fontSize","background","_arrayWithHoles","_iterableToArray","_nonIterableRest","_slicedToArray","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","navigate","ex","isModifiedEvent","Link","isDuplicateNavigation","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","connectedControlSummary","connect","company_id","provider_id","asyncGeneratorStep","_asyncToGenerator","_throw","DAY_NAME","getWeekDates","nextDate","dayName","localDateString","toLocaleDateString","timeSeries","getRandomValues","rnds8","crypto","msCrypto","REGEX","byteToHex","rnds","Modal","alignItems","backgroundColor","borderRadius","minHeight","minWidth","boxShadow","justifySelf","maxWidth","setWidth","fontFamily","onClose","src","CloseIcon","rootId","Message","variant","show","setShow","timeId","prevTicketHandler","GroupTicket","ticketsArr","lastModifiedKeyValue","searchTerm","isGroupedTicketPopupOpen","setGroupedTicketPopupOpen","isInvoiceModal","setInvoiceModal","invoiceData","setInvoiceData","groupedTicketPopupRef","ticketStatus","setTicketStatus","hasErrored","setHasErrored","vehicleName","invoice","handleGroupedTicketClick","popup","popupRect","parentRect","handleGroupInvoiceTicketsClick","getControlDataByInvoice","catch","numStatusTickets","statusTicket","getHighlightedText","cursor","ticketData","SubTickets","lastModifiedDate","TicketGroupedComponent","addCommentToTicket","dataKey","ticketid","commentBody","newStatusOfTicket","stkt","existingComments","ticketGroupedData","shouldExpand","uuidv4","textOverflow","groupCalData","getCalendarCellData","weekDates","calendarCells","handleViewChange","setData","dateRange","setDateRange","setWeekDates","setCalendarCells","setSearchTerm","queriedData","ifIncludes","filteredTickets","flag","updateSearchTerm","debouncedFn","handleDateChange","getCalenderDataCustomDate","firstUpdate","leftArrow","RecordSearch","rightArrow","isObject","ssrDocument","childNodes","importNode","hostname","protocol","getDocument","ssrWindow","back","Image","screen","matchMedia","_construct","_wrapNativeSuper","Wrapper","Dom7","makeReactive","arrayFlat","arrayFilter","toCreate","tempParent","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","trigger","Methods","addClass","removeClass","hasClass","toggleClass","toggle","attrs","attrName","removeAttr","transitionDuration","eventType","targetSelector","handleLiveEvent","eventData","dom7EventData","handleEvent","dom7LiveListeners","proxyListener","dom7Listeners","dom7proxy","dataIndex","transitionEnd","dom","fireCallBack","includeMargins","box","scrollY","scrollX","compareWith","webkitMatchesSelector","msMatchesSelector","eq","returnIndex","newChild","tempDiv","prepend","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","closest","foundElements","found","support","deviceCached","browser","deleteProps","nextTick","currentStyle","getTranslate","curTransform","transformMatrix","curStyle","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","noExtend","nextSource","keysArray","nextKey","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","swiper","targetPosition","startPosition","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","animate","progress","easeProgress","currentPosition","scrollTo","getSupport","smoothScroll","touch","DocumentTouch","passiveListener","supportsPassive","gestures","calcSupport","calcDevice","platform","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","getDevice","overrides","getBrowser","isSafari","isWebView","calcBrowser","eventsListeners","destroyed","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","eventsArray","updateSize","$el","isHorizontal","updateSlides","getDirectionLabel","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","centeredSlides","cssMode","slideSize","gridEnabled","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","boxSizing","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","onTranslateToWrapperTransitionEnd","transitionEmit","step","transitionStart","slideTo","initial","indexAsNumber","isValidNumber","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","prevSnapIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","loopedSlidesLimit","prependSlides","appendSlides","loopDestroy","touchEventsData","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","closestElement","allowClick","swipeHandler","currentX","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","touchAngle","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","currentPos","touchEndTime","timeDiff","pathTree","lastClickTime","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","preventClicks","preventClicksPropagation","stopImmediatePropagation","dummyEventAttached","dummyEventListener","domMethod","swiperMethod","passiveListeners","updateOnWindowResize","attachEvents","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","points","minRatio","addClasses","suffixes","resultClasses","prepareClasses","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","initialSlide","resizeObserver","createElements","simulateTouch","uniqueNavElements","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","eventsEmitter","moving","isLocked","unsetGrabCursor","wasLocked","lastSlideIndex","lastSlideRightEdge","images","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","cls","slideEl","updates","getSlideClasses","spv","breakLoop","slideInView","translateValue","newDirection","needUpdate","currentDirection","getWrapperSelector","getWrapper","wrapper","mount","deleteInstance","cleanStyles","newDefaults","installModule","prototypeGroup","protoMethod","use","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","classesToSelector","Pagination","bulletSize","pfx","pagination","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","paginationHTML","numberOfBullets","checkProps","createElementIfNotDefined","targetEl","isHidden","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","breakpointOnlyParams","isChildSwiperSlide","processChildren","getChildren","slots","slot","foundSlides","updateSwiper","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","thumbs","controller","control","load","SwiperSlideContext","SwiperContext","externalElRef","Tag","wrapperTag","WrapperTag","onSwiper","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","splitEvents","allowedParams","plainObj","getParams","restProps","onBeforeBreakpoint","_containerClasses","initSwiper","SwiperCore","extendWith","renderExternal","renderExternalUpdate","mountSwiper","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","watchParams","newKeys","oldKeys","newKey","oldKey","getChangedParams","parallax","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","SwiperSlide","externalRef","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","slideData","isDuplicate","isPrev","isNext","timeoutId","InfoDetails","tracknumb","swiperData","setSwiperData","mapContainer","mapSpeed","routeType","tableBodyEl","addTableRowAndMarker","event_name","dttime","latlng","runKMS","tableRowEl","imgIdx","mk","marker","iconUrl","placemarkCircle","grnBlank","bluBlank","iconSize","DomUtil","_icon","insertAdjacentElement","eventMsg","bindPopup","addTo","mmiState","mmiLayerGroup","createSite","lng","distLat","distLong","latis","longis","drawRoute","clearLayers","linecss","weight","tmpData","oMarker","pinkBlank","iconAnchor","polygon","dMarker","circleOptions","fillColor","tmpCircle","circle","polyline","onward","redraw","mmiMap","fitBounds","getBounds","carIcon","addLatLng","setLatLng","isInitialised","initMmiMap","getTripRouteMapData","mmiMapEl","moveMmiMapTo","backgroundImage","mapBgSvg","Milestone","textAlign","extendStatics","__assign","noTrailing","debounceMode","timeoutID","cancelled","lastExec","clearExistingTimeout","__","selectedOption","isOpen","closeDropdown","selectedOptionLabel","option","company_name","service_id","service_name","getDisplayLabel","timerId","filterRecords","filterCommentsOfUser","uName","filteredTicketData","filterSearchText","searchStr","commentsStr","cmt","filterTicketStatusType","DatePickerFilterComponent","handleSelectDateRange","setStartDate","setEndDate","minStart","setMinStart","maxEnd","setMaxEnd","handleDatePickerDisplay","ele","DropDownIcon","handleStartDate","handleEndDate","groupTicketsByInvoiceAndVehicleName","Dashboard","originalRes","setRes","duplicateData","setDuplicateData","companydata","setCidData","serviceAletsData","setAlertsData","logintype","sidebarOpen","setSideBarOpen","viewMode","setViewMode","dropdown1","setDropdown1","dropdown2","setDropdown2","cid","dropdownId","promise2","recordsList","filterData","filterServiceData","updateControlTicketData","all","filteredData","formatDateLocal","selectedTicketStatusType","setSelectedTicketStatusType","loggedInUser","userName","dateRangeTxt","groupedData","sid","dateTxtStr","formatYYYYMMDD","updateCompanyDropdown","getCidData","companyData","updateServiceAlertsdropdown","getServiceAlertsData","serviceAlertsData","promises","handleTicketStatusFilter","queryData","forDownload","recordLengthEl","Logout","LeftContentComponent","isLeftPanelOpen","htmlFor","ticketsData","downloadData","serviceName","remarks","dtTime","productName","Quantity","consignee","destination","driverMobileNo","dataToBeAdded","ticketType","sn","TicketId","VehicleNo","InvoiceNo","Consignee","ProductName","ServiceName","DriverMobileNo","Origin","Destination","TicketStatus","TicketDate","formatDateAMPM","CommentSn","CommentUser","CommentStatus","CommentDate","epochDatetoLocale","Remark","Msg","TicketsListContainer","initialTicketData","setInitialTicketData","hasMore","setHasMore","deepClonedData","nextTicketData","sidebarClass","isTicketGroupExpanded","setIsTicketGroupExpanded","firstTicketData","restTicketData","TicketComponent","handleExpandTicket","numTickets","isSubTicket","partsArr","isChatOpen","setIsChatOpen","isLoadingAddComment","setIsLoadingAddComment","isMapModal","setIsMapModal","destTracknumb","remarkData","handleMapToggle","handleChatToggle","flexBasis","TicketIcon","mapIcon","InfoDetails1","chatIcon","SubTicketLink","TicketChatComponent","primaryMsg","handleAddComment","newComment","commentData","saveComment","commentText","setCommentText","ticketStatusPopup","setTicketStatusPopup","isCommentValid","modalCommentPopup","UserIcon","threeDots","CommentStatusPopUp","handleCommentStatusPopup","statusInfo","SendIcon","getCustomStyle","handleSubmit","onSubmit","listStyleType","dateNum","ampm","date1","myDate","toJSON","Home","deleteUser","connectedHome","getUsers","Login","submitted","handleUserTypeChange","connectedLogin","RegisterPage","firstName","lastName","connectedRegisterPage","App","connectedApp","clearAlerts","debug"],"sourceRoot":""}