@trebco/treb 32.10.0 → 32.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! TREB v32.
|
|
1
|
+
/*! TREB v32.11.0. Copyright 2018-2025 trebco, llc. All rights reserved. LGPL: https://treb.app/license */
|
|
2
2
|
var e='var cs=Object.create;var Or=Object.defineProperty;var ds=Object.getOwnPropertyDescriptor;var hs=Object.getOwnPropertyNames;var us=Object.getPrototypeOf,fs=Object.prototype.hasOwnProperty;var Zr=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var ps=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of hs(e))!fs.call(s,i)&&i!==t&&Or(s,i,{get:()=>e[i],enumerable:!(r=ds(e,i))||r.enumerable});return s};var St=(s,e,t)=>(t=s!=null?cs(us(s)):{},ps(e||!s||!s.__esModule?Or(t,"default",{value:s,enumerable:!0}):t,s));var Tt=Zr(At=>{"use strict";At.byteLength=_s;At.toByteArray=gs;At.fromByteArray=xs;var we=[],fe=[],ms=typeof Uint8Array<"u"?Uint8Array:Array,ir="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(ze=0,Br=ir.length;ze<Br;++ze)we[ze]=ir[ze],fe[ir.charCodeAt(ze)]=ze;var ze,Br;fe[45]=62;fe[95]=63;function Wr(s){var e=s.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=s.indexOf("=");t===-1&&(t=e);var r=t===e?0:4-t%4;return[t,r]}function _s(s){var e=Wr(s),t=e[0],r=e[1];return(t+r)*3/4-r}function bs(s,e,t){return(e+t)*3/4-t}function gs(s){var e,t=Wr(s),r=t[0],i=t[1],n=new ms(bs(s,r,i)),a=0,o=i>0?r-4:r,l;for(l=0;l<o;l+=4)e=fe[s.charCodeAt(l)]<<18|fe[s.charCodeAt(l+1)]<<12|fe[s.charCodeAt(l+2)]<<6|fe[s.charCodeAt(l+3)],n[a++]=e>>16&255,n[a++]=e>>8&255,n[a++]=e&255;return i===2&&(e=fe[s.charCodeAt(l)]<<2|fe[s.charCodeAt(l+1)]>>4,n[a++]=e&255),i===1&&(e=fe[s.charCodeAt(l)]<<10|fe[s.charCodeAt(l+1)]<<4|fe[s.charCodeAt(l+2)]>>2,n[a++]=e>>8&255,n[a++]=e&255),n}function ys(s){return we[s>>18&63]+we[s>>12&63]+we[s>>6&63]+we[s&63]}function ws(s,e,t){for(var r,i=[],n=e;n<t;n+=3)r=(s[n]<<16&16711680)+(s[n+1]<<8&65280)+(s[n+2]&255),i.push(ys(r));return i.join("")}function xs(s){for(var e,t=s.length,r=t%3,i=[],n=16383,a=0,o=t-r;a<o;a+=n)i.push(ws(s,a,a+n>o?o:a+n));return r===1?(e=s[t-1],i.push(we[e>>2]+we[e<<4&63]+"==")):r===2&&(e=(s[t-2]<<8)+s[t-1],i.push(we[e>>10]+we[e>>4&63]+we[e<<2&63]+"=")),i.join("")}});var es=Zr((Ip,zr)=>{var _={};typeof zr=="object"&&(zr.exports=_);_.parse=function(s,e){for(var t=_.bin.readUshort,r=_.bin.readUint,o=0,i={},n=new Uint8Array(s),a=n.length-4;r(n,a)!=101010256;)a--;var o=a;o+=4,o+=4;var l=t(n,o);o+=2;var c=t(n,o);o+=2;var d=r(n,o);o+=4;var h=r(n,o);o+=4,o=h;for(var f=0;f<l;f++){var u=r(n,o);o+=4,o+=4,o+=4,o+=4;var p=r(n,o);o+=4;var d=r(n,o);o+=4;var g=r(n,o);o+=4;var v=t(n,o),w=t(n,o+2),b=t(n,o+4);o+=6,o+=8;var m=r(n,o);o+=4,o+=v+w+b,_._readLocal(n,m,i,d,g,e)}return i};_._readLocal=function(s,e,t,r,i,n){var a=_.bin.readUshort,o=_.bin.readUint,l=o(s,e);e+=4;var c=a(s,e);e+=2;var d=a(s,e);e+=2;var h=a(s,e);e+=2;var f=o(s,e);e+=4;var u=o(s,e);e+=4,e+=8;var p=a(s,e);e+=2;var g=a(s,e);e+=2;var v=_.bin.readUTF8(s,e,p);if(e+=p,e+=g,n){t[v]={size:i,csize:r};return}var w=new Uint8Array(s.buffer,e);if(h==0)t[v]=new Uint8Array(w.buffer.slice(e,e+r));else if(h==8){var b=new Uint8Array(i);_.inflateRaw(w,b),t[v]=b}else throw"unknown compression method: "+h};_.inflateRaw=function(s,e){return _.F.inflate(s,e)};_.inflate=function(s,e){var t=s[0],r=s[1],i=t&15,n=t>>>4;return _.inflateRaw(new Uint8Array(s.buffer,s.byteOffset+2,s.length-6),e)};_.deflate=function(s,e){e==null&&(e={level:6});var t=0,r=new Uint8Array(50+Math.floor(s.length*1.1));r[t]=120,r[t+1]=156,t+=2,t=_.F.deflateRaw(s,r,t,e.level);var i=_.adler(s,0,s.length);return r[t+0]=i>>>24&255,r[t+1]=i>>>16&255,r[t+2]=i>>>8&255,r[t+3]=i>>>0&255,new Uint8Array(r.buffer,0,t+4)};_.deflateRaw=function(s,e){e==null&&(e={level:6});var t=new Uint8Array(50+Math.floor(s.length*1.1)),r=_.F.deflateRaw(s,t,r,e.level);return new Uint8Array(t.buffer,0,r)};_.encode=function(s,e){e==null&&(e=!1);var t=0,r=_.bin.writeUint,i=_.bin.writeUshort,n={};for(var a in s){var o=!_._noNeed(a)&&!e,l=s[a],c=_.crc.crc(l,0,l.length);n[a]={cpr:o,usize:l.length,crc:c,file:o?_.deflateRaw(l):l}}for(var a in n)t+=n[a].file.length+30+46+2*_.bin.sizeUTF8(a);t+=22;var d=new Uint8Array(t),h=0,f=[];for(var a in n){var u=n[a];f.push(h),h=_._writeHeader(d,h,a,u,0)}var p=0,g=h;for(var a in n){var u=n[a];f.push(h),h=_._writeHeader(d,h,a,u,1,f[p++])}var v=h-g;return r(d,h,101010256),h+=4,h+=4,i(d,h,p),h+=2,i(d,h,p),h+=2,r(d,h,v),h+=4,r(d,h,g),h+=4,h+=2,d.buffer};_._noNeed=function(s){var e=s.split(".").pop().toLowerCase();return"png,jpg,jpeg,zip".indexOf(e)!=-1};_._writeHeader=function(s,e,t,r,i,n){var a=_.bin.writeUint,o=_.bin.writeUshort,l=r.file;a(s,e,i==0?67324752:33639248),e+=4,i==1&&(e+=2),o(s,e,20),e+=2,o(s,e,0),e+=2,o(s,e,r.cpr?8:0),e+=2,a(s,e,0),e+=4,a(s,e,r.crc),e+=4,a(s,e,l.length),e+=4,a(s,e,r.usize),e+=4,o(s,e,_.bin.sizeUTF8(t)),e+=2,o(s,e,0),e+=2,i==1&&(e+=2,e+=2,e+=6,a(s,e,n),e+=4);var c=_.bin.writeUTF8(s,e,t);return e+=c,i==0&&(s.set(l,e),e+=l.length),e};_.crc={table:(function(){for(var s=new Uint32Array(256),e=0;e<256;e++){for(var t=e,r=0;r<8;r++)t&1?t=3988292384^t>>>1:t=t>>>1;s[e]=t}return s})(),update:function(s,e,t,r){for(var i=0;i<r;i++)s=_.crc.table[(s^e[t+i])&255]^s>>>8;return s},crc:function(s,e,t){return _.crc.update(4294967295,s,e,t)^4294967295}};_.adler=function(s,e,t){for(var r=1,i=0,n=e,a=e+t;n<a;){for(var o=Math.min(n+5552,a);n<o;)r+=s[n++],i+=r;r=r%65521,i=i%65521}return i<<16|r};_.bin={readUshort:function(s,e){return s[e]|s[e+1]<<8},writeUshort:function(s,e,t){s[e]=t&255,s[e+1]=t>>8&255},readUint:function(s,e){return s[e+3]*(256*256*256)+(s[e+2]<<16|s[e+1]<<8|s[e])},writeUint:function(s,e,t){s[e]=t&255,s[e+1]=t>>8&255,s[e+2]=t>>16&255,s[e+3]=t>>24&255},readASCII:function(s,e,t){for(var r="",i=0;i<t;i++)r+=String.fromCharCode(s[e+i]);return r},writeASCII:function(s,e,t){for(var r=0;r<t.length;r++)s[e+r]=t.charCodeAt(r)},pad:function(s){return s.length<2?"0"+s:s},readUTF8:function(s,e,t){for(var r="",i,n=0;n<t;n++)r+="%"+_.bin.pad(s[e+n].toString(16));try{i=decodeURIComponent(r)}catch{return _.bin.readASCII(s,e,t)}return i},writeUTF8:function(s,e,t){for(var r=t.length,i=0,n=0;n<r;n++){var a=t.charCodeAt(n);if((a&4294967168)==0)s[e+i]=a,i++;else if((a&4294965248)==0)s[e+i]=192|a>>6,s[e+i+1]=128|a>>0&63,i+=2;else if((a&4294901760)==0)s[e+i]=224|a>>12,s[e+i+1]=128|a>>6&63,s[e+i+2]=128|a>>0&63,i+=3;else if((a&4294967295-(1<<21)+1)==0)s[e+i]=240|a>>18,s[e+i+1]=128|a>>12&63,s[e+i+2]=128|a>>6&63,s[e+i+3]=128|a>>0&63,i+=4;else throw"e"}return i},sizeUTF8:function(s){for(var e=s.length,t=0,r=0;r<e;r++){var i=s.charCodeAt(r);if((i&4294967168)==0)t++;else if((i&4294965248)==0)t+=2;else if((i&4294901760)==0)t+=3;else if((i&4294967295-(1<<21)+1)==0)t+=4;else throw"e"}return t}};_.F={};_.F.deflateRaw=function(s,e,t,r){var i=[[0,0,0,0,0],[4,4,8,4,0],[4,5,16,8,0],[4,6,16,16,0],[4,10,16,32,0],[8,16,32,32,0],[8,16,128,128,0],[8,32,128,256,0],[32,128,258,1024,1],[32,258,258,4096,1]],n=i[r],a=_.F.U,o=_.F._goodIndex,l=_.F._hash,c=_.F._putsE,d=0,h=t<<3,f=0,u=s.length;if(r==0){for(;d<u;){var p=Math.min(65535,u-d);c(e,h,d+p==u?1:0),h=_.F._copyExact(s,d,p,e,h+8),d+=p}return h>>>3}var g=a.lits,v=a.strt,w=a.prev,b=0,m=0,S=0,N=0,L=0,D=0;u>2&&(D=_.F._hash(s,0),v[D]=0);var M=0,V=0;for(d=0;d<u;d++){if(L=D,d+1<u-2){D=_.F._hash(s,d+1);var $=d+1&32767;w[$]=v[D],v[D]=$}if(f<=d){(b>14e3||m>26697)&&u-d>100&&(f<d&&(g[b]=d-f,b+=2,f=d),h=_.F._writeBlock(d==u-1||f==u?1:0,g,b,N,s,S,d-S,e,h),b=m=N=0,S=d);var G=0;d<u-2&&(G=_.F._bestMatch(s,d,w,L,Math.min(n[2],u-d),n[3]));var p=G>>>16,q=G&65535;if(G!=0){var p=G>>>16,q=G&65535,Y=o(p,a.of0);a.lhst[257+Y]++;var Q=o(q,a.df0);a.dhst[Q]++,N+=a.exb[Y]+a.dxb[Q],g[b]=p<<23|d-f,g[b+1]=q<<16|Y<<8|Q,b+=2,f=d+p}else a.lhst[s[d]]++;m++}}for((S!=d||s.length==0)&&(f<d&&(g[b]=d-f,b+=2,f=d),h=_.F._writeBlock(1,g,b,N,s,S,d-S,e,h),b=0,m=0,b=m=N=0,S=d);(h&7)!=0;)h++;return h>>>3};_.F._bestMatch=function(s,e,t,r,i,n){var a=e&32767,o=t[a],l=a-o+32768&32767;if(o==a||r!=_.F._hash(s,e-l))return 0;for(var c=0,d=0,h=Math.min(32767,e);l<=h&&--n!=0&&o!=a;){if(c==0||s[e+c]==s[e+c-l]){var f=_.F._howLong(s,e,l);if(f>c){if(c=f,d=l,c>=i)break;l+2<f&&(f=l+2);for(var u=0,p=0;p<f-2;p++){var g=e-l+p+32768&32767,v=t[g],w=g-v+32768&32767;w>u&&(u=w,o=g)}}}a=o,o=t[a],l+=a-o+32768&32767}return c<<16|d};_.F._howLong=function(s,e,t){if(s[e]!=s[e-t]||s[e+1]!=s[e+1-t]||s[e+2]!=s[e+2-t])return 0;var r=e,i=Math.min(s.length,e+258);for(e+=3;e<i&&s[e]==s[e-t];)e++;return e-r};_.F._hash=function(s,e){return(s[e]<<8|s[e+1])+(s[e+2]<<4)&65535};_.saved=0;_.F._writeBlock=function(s,e,t,r,i,n,a,o,l){var c=_.F.U,d=_.F._putsF,h=_.F._putsE,f,u,p,g,v,w,b,m,S;c.lhst[256]++,f=_.F.getTrees(),u=f[0],p=f[1],g=f[2],v=f[3],w=f[4],b=f[5],m=f[6],S=f[7];var N=((l+3&7)==0?0:8-(l+3&7))+32+(a<<3),L=r+_.F.contSize(c.fltree,c.lhst)+_.F.contSize(c.fdtree,c.dhst),D=r+_.F.contSize(c.ltree,c.lhst)+_.F.contSize(c.dtree,c.dhst);D+=14+3*b+_.F.contSize(c.itree,c.ihst)+(c.ihst[16]*2+c.ihst[17]*3+c.ihst[18]*7);for(var M=0;M<286;M++)c.lhst[M]=0;for(var M=0;M<30;M++)c.dhst[M]=0;for(var M=0;M<19;M++)c.ihst[M]=0;var V=N<L&&N<D?0:L<D?1:2;d(o,l,s),d(o,l+1,V),l+=3;var $=l;if(V==0){for(;(l&7)!=0;)l++;l=_.F._copyExact(i,n,a,o,l)}else{var G,q;if(V==1&&(G=c.fltree,q=c.fdtree),V==2){_.F.makeCodes(c.ltree,u),_.F.revCodes(c.ltree,u),_.F.makeCodes(c.dtree,p),_.F.revCodes(c.dtree,p),_.F.makeCodes(c.itree,g),_.F.revCodes(c.itree,g),G=c.ltree,q=c.dtree,h(o,l,v-257),l+=5,h(o,l,w-1),l+=5,h(o,l,b-4),l+=4;for(var Y=0;Y<b;Y++)h(o,l+Y*3,c.itree[(c.ordr[Y]<<1)+1]);l+=3*b,l=_.F._codeTiny(m,c.itree,o,l),l=_.F._codeTiny(S,c.itree,o,l)}for(var Q=n,re=0;re<t;re+=2){for(var J=e[re],ne=J>>>23,pe=Q+(J&(1<<23)-1);Q<pe;)l=_.F._writeLit(i[Q++],G,o,l);if(ne!=0){var de=e[re+1],oe=de>>16,he=de>>8&255,te=de&255;l=_.F._writeLit(257+he,G,o,l),h(o,l,ne-c.of0[he]),l+=c.exb[he],l=_.F._writeLit(te,q,o,l),d(o,l,oe-c.df0[te]),l+=c.dxb[te],Q+=ne}}l=_.F._writeLit(256,G,o,l)}return l};_.F._copyExact=function(s,e,t,r,i){var n=i>>>3;return r[n]=t,r[n+1]=t>>>8,r[n+2]=255-r[n],r[n+3]=255-r[n+1],n+=4,r.set(new Uint8Array(s.buffer,e,t),n),i+(t+4<<3)};_.F.getTrees=function(){for(var s=_.F.U,e=_.F._hufTree(s.lhst,s.ltree,15),t=_.F._hufTree(s.dhst,s.dtree,15),r=[],i=_.F._lenCodes(s.ltree,r),n=[],a=_.F._lenCodes(s.dtree,n),o=0;o<r.length;o+=2)s.ihst[r[o]]++;for(var o=0;o<n.length;o+=2)s.ihst[n[o]]++;for(var l=_.F._hufTree(s.ihst,s.itree,7),c=19;c>4&&s.itree[(s.ordr[c-1]<<1)+1]==0;)c--;return[e,t,l,i,a,c,r,n]};_.F.getSecond=function(s){for(var e=[],t=0;t<s.length;t+=2)e.push(s[t+1]);return e};_.F.nonZero=function(s){for(var e="",t=0;t<s.length;t+=2)s[t+1]!=0&&(e+=(t>>1)+",");return e};_.F.contSize=function(s,e){for(var t=0,r=0;r<e.length;r++)t+=e[r]*s[(r<<1)+1];return t};_.F._codeTiny=function(s,e,t,r){for(var i=0;i<s.length;i+=2){var n=s[i],a=s[i+1];r=_.F._writeLit(n,e,t,r);var o=n==16?2:n==17?3:7;n>15&&(_.F._putsE(t,r,a,o),r+=o)}return r};_.F._lenCodes=function(s,e){for(var t=s.length;t!=2&&s[t-1]==0;)t-=2;for(var r=0;r<t;r+=2){var i=s[r+1],n=r+3<t?s[r+3]:-1,a=r+5<t?s[r+5]:-1,o=r==0?-1:s[r-1];if(i==0&&n==i&&a==i){for(var l=r+5;l+2<t&&s[l+2]==i;)l+=2;var c=Math.min(l+1-r>>>1,138);c<11?e.push(17,c-3):e.push(18,c-11),r+=c*2-2}else if(i==o&&n==i&&a==i){for(var l=r+5;l+2<t&&s[l+2]==i;)l+=2;var c=Math.min(l+1-r>>>1,6);e.push(16,c-3),r+=c*2-2}else e.push(i,0)}return t>>>1};_.F._hufTree=function(s,e,t){var r=[],i=s.length,n=e.length,a=0;for(a=0;a<n;a+=2)e[a]=0,e[a+1]=0;for(a=0;a<i;a++)s[a]!=0&&r.push({lit:a,f:s[a]});var o=r.length,l=r.slice(0);if(o==0)return 0;if(o==1){var c=r[0].lit,l=c==0?1:0;return e[(c<<1)+1]=1,e[(l<<1)+1]=1,1}r.sort(function(v,w){return v.f-w.f});var d=r[0],h=r[1],f=0,u=1,p=2;for(r[0]={lit:-1,f:d.f+h.f,l:d,r:h,d:0};u!=o-1;)f!=u&&(p==o||r[f].f<r[p].f)?d=r[f++]:d=r[p++],f!=u&&(p==o||r[f].f<r[p].f)?h=r[f++]:h=r[p++],r[u++]={lit:-1,f:d.f+h.f,l:d,r:h};var g=_.F.setDepth(r[u-1],0);for(g>t&&(_.F.restrictDepth(l,t,g),g=t),a=0;a<o;a++)e[(l[a].lit<<1)+1]=l[a].d;return g};_.F.setDepth=function(s,e){return s.lit!=-1?(s.d=e,e):Math.max(_.F.setDepth(s.l,e+1),_.F.setDepth(s.r,e+1))};_.F.restrictDepth=function(s,e,t){var r=0,i=1<<t-e,n=0;for(s.sort(function(o,l){return l.d==o.d?o.f-l.f:l.d-o.d}),r=0;r<s.length&&s[r].d>e;r++){var a=s[r].d;s[r].d=e,n+=i-(1<<t-a)}for(n=n>>>t-e;n>0;){var a=s[r].d;a<e?(s[r].d++,n-=1<<e-a-1):r++}for(;r>=0;r--)s[r].d==e&&n<0&&(s[r].d--,n++);n!=0&&console.log("debt left")};_.F._goodIndex=function(s,e){var t=0;return e[t|16]<=s&&(t|=16),e[t|8]<=s&&(t|=8),e[t|4]<=s&&(t|=4),e[t|2]<=s&&(t|=2),e[t|1]<=s&&(t|=1),t};_.F._writeLit=function(s,e,t,r){return _.F._putsF(t,r,e[s<<1]),r+e[(s<<1)+1]};_.F.inflate=function(s,e){var t=Uint8Array;if(s[0]==3&&s[1]==0)return e||new t(0);var r=_.F,i=r._bitsF,n=r._bitsE,a=r._decodeTiny,o=r.makeCodes,l=r.codes2map,c=r._get17,d=r.U,h=e==null;h&&(e=new t(s.length>>>2<<3));for(var f=0,u=0,p=0,g=0,v=0,w=0,b=0,m=0,S=0,N,L;f==0;){if(f=i(s,S,1),u=i(s,S+1,2),S+=3,u==0){(S&7)!=0&&(S+=8-(S&7));var D=(S>>>3)+4,M=s[D-4]|s[D-3]<<8;h&&(e=_.F._check(e,m+M)),e.set(new t(s.buffer,s.byteOffset+D,M),m),S=D+M<<3,m+=M;continue}if(h&&(e=_.F._check(e,m+(1<<17))),u==1&&(N=d.flmap,L=d.fdmap,w=511,b=31),u==2){p=n(s,S,5)+257,g=n(s,S+5,5)+1,v=n(s,S+10,4)+4,S+=14;for(var V=S,$=0;$<38;$+=2)d.itree[$]=0,d.itree[$+1]=0;for(var G=1,$=0;$<v;$++){var q=n(s,S+$*3,3);d.itree[(d.ordr[$]<<1)+1]=q,q>G&&(G=q)}S+=3*v,o(d.itree,G),l(d.itree,G,d.imap),N=d.lmap,L=d.dmap,S=a(d.imap,(1<<G)-1,p+g,s,S,d.ttree);var Y=r._copyOut(d.ttree,0,p,d.ltree);w=(1<<Y)-1;var Q=r._copyOut(d.ttree,p,g,d.dtree);b=(1<<Q)-1,o(d.ltree,Y),l(d.ltree,Y,N),o(d.dtree,Q),l(d.dtree,Q,L)}for(;;){var re=N[c(s,S)&w];S+=re&15;var J=re>>>4;if(!(J>>>8))e[m++]=J;else{if(J==256)break;var ne=m+J-254;if(J>264){var pe=d.ldef[J-257];ne=m+(pe>>>3)+n(s,S,pe&7),S+=pe&7}var de=L[c(s,S)&b];S+=de&15;var oe=de>>>4,he=d.ddef[oe],te=(he>>>4)+i(s,S,he&15);for(S+=he&15,h&&(e=_.F._check(e,m+(1<<17)));m<ne;)e[m]=e[m++-te],e[m]=e[m++-te],e[m]=e[m++-te],e[m]=e[m++-te];m=ne}}}return e.length==m?e:e.slice(0,m)};_.F._check=function(s,e){var t=s.length;if(e<=t)return s;var r=new Uint8Array(Math.max(t<<1,e));return r.set(s,0),r};_.F._decodeTiny=function(s,e,t,r,i,n){for(var a=_.F._bitsE,o=_.F._get17,l=0;l<t;){var c=s[o(r,i)&e];i+=c&15;var d=c>>>4;if(d<=15)n[l]=d,l++;else{var h=0,f=0;d==16?(f=3+a(r,i,2),i+=2,h=n[l-1]):d==17?(f=3+a(r,i,3),i+=3):d==18&&(f=11+a(r,i,7),i+=7);for(var u=l+f;l<u;)n[l]=h,l++}}return i};_.F._copyOut=function(s,e,t,r){for(var i=0,n=0,a=r.length>>>1;n<t;){var o=s[n+e];r[n<<1]=0,r[(n<<1)+1]=o,o>i&&(i=o),n++}for(;n<a;)r[n<<1]=0,r[(n<<1)+1]=0,n++;return i};_.F.makeCodes=function(s,e){for(var t=_.F.U,r=s.length,i,n,a,o,l,c=t.bl_count,o=0;o<=e;o++)c[o]=0;for(o=1;o<r;o+=2)c[s[o]]++;var d=t.next_code;for(i=0,c[0]=0,n=1;n<=e;n++)i=i+c[n-1]<<1,d[n]=i;for(a=0;a<r;a+=2)l=s[a+1],l!=0&&(s[a]=d[l],d[l]++)};_.F.codes2map=function(s,e,t){for(var r=s.length,i=_.F.U,n=i.rev15,a=0;a<r;a+=2)if(s[a+1]!=0)for(var o=a>>1,l=s[a+1],c=o<<4|l,d=e-l,h=s[a]<<d,f=h+(1<<d);h!=f;){var u=n[h]>>>15-e;t[u]=c,h++}};_.F.revCodes=function(s,e){for(var t=_.F.U.rev15,r=15-e,i=0;i<s.length;i+=2){var n=s[i]<<e-s[i+1];s[i]=t[n]>>>r}};_.F._putsE=function(s,e,t){t=t<<(e&7);var r=e>>>3;s[r]|=t,s[r+1]|=t>>>8};_.F._putsF=function(s,e,t){t=t<<(e&7);var r=e>>>3;s[r]|=t,s[r+1]|=t>>>8,s[r+2]|=t>>>16};_.F._bitsE=function(s,e,t){return(s[e>>>3]|s[(e>>>3)+1]<<8)>>>(e&7)&(1<<t)-1};_.F._bitsF=function(s,e,t){return(s[e>>>3]|s[(e>>>3)+1]<<8|s[(e>>>3)+2]<<16)>>>(e&7)&(1<<t)-1};_.F._get17=function(s,e){return(s[e>>>3]|s[(e>>>3)+1]<<8|s[(e>>>3)+2]<<16)>>>(e&7)};_.F._get25=function(s,e){return(s[e>>>3]|s[(e>>>3)+1]<<8|s[(e>>>3)+2]<<16|s[(e>>>3)+3]<<24)>>>(e&7)};_.F.U=(function(){var s=Uint16Array,e=Uint32Array;return{next_code:new s(16),bl_count:new s(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[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,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new s(32),df0:[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,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new e(32),flmap:new s(512),fltree:[],fdmap:new s(32),fdtree:[],lmap:new s(32768),ltree:[],ttree:[],dmap:new s(32768),dtree:[],imap:new s(512),itree:[],rev15:new s(32768),lhst:new e(286),dhst:new e(30),ihst:new e(19),lits:new e(15e3),strt:new s(65536),prev:new s(32768)}})();(function(){for(var s=_.F.U,e=32768,t=0;t<e;t++){var r=t;r=(r&2863311530)>>>1|(r&1431655765)<<1,r=(r&3435973836)>>>2|(r&858993459)<<2,r=(r&4042322160)>>>4|(r&252645135)<<4,r=(r&4278255360)>>>8|(r&16711935)<<8,s.rev15[t]=(r>>>16|r<<16)>>>17}function i(n,a,o){for(;a--!=0;)n.push(0,o)}for(var t=0;t<32;t++)s.ldef[t]=s.of0[t]<<3|s.exb[t],s.ddef[t]=s.df0[t]<<4|s.dxb[t];i(s.fltree,144,8),i(s.fltree,112,9),i(s.fltree,24,7),i(s.fltree,8,8),_.F.makeCodes(s.fltree,9),_.F.codes2map(s.fltree,9,s.flmap),_.F.revCodes(s.fltree,9),i(s.fdtree,32,5),_.F.makeCodes(s.fdtree,5),_.F.codes2map(s.fdtree,5,s.fdmap),_.F.revCodes(s.fdtree,5),i(s.itree,19,0),i(s.ltree,286,0),i(s.dtree,30,0),i(s.ttree,320,0)})()});var ss=St(Tt());var It=s=>{let e=Math.floor((s-5)/7*100+.5)/100;return Math.floor((e*7+5)/7*256)/256},sr=s=>Math.floor((256*s+Math.floor(18.285714285714285))/256*7);var Hr="UEsDBAoAAAAAAAAAIQBi7p1okAQAAJAEAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjxUeXBlcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzIj48RGVmYXVsdCBFeHRlbnNpb249InJlbHMiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbCIvPjxEZWZhdWx0IEV4dGVuc2lvbj0ieG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24veG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvd29ya2Jvb2sueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvdGhlbWUvdGhlbWUxLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZSt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC9zdHlsZXMueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc3R5bGVzK3htbCIvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3NoYXJlZFN0cmluZ3MueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hhcmVkU3RyaW5ncyt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii9kb2NQcm9wcy9jb3JlLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii9kb2NQcm9wcy9hcHAueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sIi8+PC9UeXBlcz5QSwMECgAAAAAAAAAhALVVMCNMAgAATAIAAAsAAABfcmVscy8ucmVsczw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDMiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZW5kZWQtcHJvcGVydGllcyIgVGFyZ2V0PSJkb2NQcm9wcy9hcHAueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkMiIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzL21ldGFkYXRhL2NvcmUtcHJvcGVydGllcyIgVGFyZ2V0PSJkb2NQcm9wcy9jb3JlLnhtbCIvPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDEiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvb2ZmaWNlRG9jdW1lbnQiIFRhcmdldD0ieGwvd29ya2Jvb2sueG1sIi8+PC9SZWxhdGlvbnNoaXBzPlBLAwQKAAAAAAAAACEAunCeZsoGAADKBgAADwAAAHhsL3dvcmtib29rLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjx3b3JrYm9vayB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE1IHhyIHhyNiB4cjEwIHhyMiIgeG1sbnM6eDE1PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpbiIgeG1sbnM6eHI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNC9yZXZpc2lvbiIgeG1sbnM6eHI2PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTYvcmV2aXNpb242IiB4bWxuczp4cjEwPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTYvcmV2aXNpb24xMCIgeG1sbnM6eHIyPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTUvcmV2aXNpb24yIj48ZmlsZVZlcnNpb24gYXBwTmFtZT0ieGwiIGxhc3RFZGl0ZWQ9IjciIGxvd2VzdEVkaXRlZD0iNyIgcnVwQnVpbGQ9IjIxMTI2Ii8+PHdvcmtib29rUHIgZGVmYXVsdFRoZW1lVmVyc2lvbj0iMTY2OTI1Ii8+PG1jOkFsdGVybmF0ZUNvbnRlbnQgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2Ij48bWM6Q2hvaWNlIFJlcXVpcmVzPSJ4MTUiPjx4MTVhYzphYnNQYXRoIHVybD0iSDpcVFJFQlx0cmViLWV4cG9ydFx0ZW1wbGF0ZVwiIHhtbG5zOngxNWFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvYWMiLz48L21jOkNob2ljZT48L21jOkFsdGVybmF0ZUNvbnRlbnQ+PHhyOnJldmlzaW9uUHRyIHJldklETGFzdFNhdmU9IjAiIGRvY3VtZW50SWQ9Ijhfe0Q4NThGOUY3LTBEOTItNEFFNC04QTQyLTQ4MENCMzU5QjYyRH0iIHhyNjpjb2F1dGhWZXJzaW9uTGFzdD0iNDAiIHhyNjpjb2F1dGhWZXJzaW9uTWF4PSI0MCIgeHIxMDp1aWRMYXN0U2F2ZT0iezAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMH0iLz48Ym9va1ZpZXdzPjx3b3JrYm9va1ZpZXcgeFdpbmRvdz0iMCIgeVdpbmRvdz0iMCIgd2luZG93V2lkdGg9IjI0NTcwIiB3aW5kb3dIZWlnaHQ9IjExMTMwIiB4cjI6dWlkPSJ7REU0RTdEMzUtNDkyRC00MEQ3LTk5MjUtNDY0N0Y1ODdFMURFfSIvPjwvYm9va1ZpZXdzPjxzaGVldHM+PHNoZWV0IG5hbWU9IlNoZWV0MSIgc2hlZXRJZD0iMSIgcjppZD0icklkMSIvPjwvc2hlZXRzPjxjYWxjUHIgY2FsY0lkPSIxOTEwMjkiLz48ZXh0THN0PjxleHQgdXJpPSJ7MTQwQTcwOTQtMEUzNS00ODkyLTg0MzItQzREMkU1N0VERUI1fSIgeG1sbnM6eDE1PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpbiI+PHgxNTp3b3JrYm9va1ByIGNoYXJ0VHJhY2tpbmdSZWZCYXNlPSIxIi8+PC9leHQ+PC9leHRMc3Q+PC93b3JrYm9vaz5QSwMECgAAAAAAAAAhAIE+lJe6AgAAugIAABoAAAB4bC9fcmVscy93b3JrYm9vay54bWwucmVsczw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDMiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzIiBUYXJnZXQ9InN0eWxlcy54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQyIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RoZW1lIiBUYXJnZXQ9InRoZW1lL3RoZW1lMS54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQxIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCIgVGFyZ2V0PSJ3b3Jrc2hlZXRzL3NoZWV0MS54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQ0IiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3NoYXJlZFN0cmluZ3MiIFRhcmdldD0ic2hhcmVkU3RyaW5ncy54bWwiLz48L1JlbGF0aW9uc2hpcHM+UEsDBAoAAAAAAAAAIQACrURzpAMAAKQDAAAYAAAAeGwvd29ya3NoZWV0cy9zaGVldDEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHdvcmtzaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMgeHIgeHIyIHhyMyIgeG1sbnM6eDE0YWM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L2FjIiB4bWxuczp4cj0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDE0L3JldmlzaW9uIiB4bWxuczp4cjI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNS9yZXZpc2lvbjIiIHhtbG5zOnhyMz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDE2L3JldmlzaW9uMyIgeHI6dWlkPSJ7MEQ4RTVDQTItNUM5RS00RDRCLTk0QzUtRjM1QzA0MUYzOUJEfSI+PGRpbWVuc2lvbiByZWY9IkExIi8+PHNoZWV0Vmlld3M+PHNoZWV0VmlldyB0YWJTZWxlY3RlZD0iMSIgd29ya2Jvb2tWaWV3SWQ9IjAiLz48L3NoZWV0Vmlld3M+PHNoZWV0Rm9ybWF0UHIgZGVmYXVsdFJvd0hlaWdodD0iMTUiIHgxNGFjOmR5RGVzY2VudD0iMC4yNSIvPjxzaGVldERhdGEvPjxwYWdlTWFyZ2lucyBsZWZ0PSIwLjciIHJpZ2h0PSIwLjciIHRvcD0iMC43NSIgYm90dG9tPSIwLjc1IiBoZWFkZXI9IjAuMyIgZm9vdGVyPSIwLjMiLz48L3dvcmtzaGVldD5QSwMECgAAAAAAAAAhAMEXEL7GIAAAxiAAABMAAAB4bC90aGVtZS90aGVtZTEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPGE6dGhlbWUgeG1sbnM6YT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSI+PGE6dGhlbWVFbGVtZW50cz48YTpjbHJTY2hlbWUgbmFtZT0iT2ZmaWNlIj48YTpkazE+PGE6c3lzQ2xyIHZhbD0id2luZG93VGV4dCIgbGFzdENscj0iMDAwMDAwIi8+PC9hOmRrMT48YTpsdDE+PGE6c3lzQ2xyIHZhbD0id2luZG93IiBsYXN0Q2xyPSJGRkZGRkYiLz48L2E6bHQxPjxhOmRrMj48YTpzcmdiQ2xyIHZhbD0iNDQ1NDZBIi8+PC9hOmRrMj48YTpsdDI+PGE6c3JnYkNsciB2YWw9IkU3RTZFNiIvPjwvYTpsdDI+PGE6YWNjZW50MT48YTpzcmdiQ2xyIHZhbD0iNDQ3MkM0Ii8+PC9hOmFjY2VudDE+PGE6YWNjZW50Mj48YTpzcmdiQ2xyIHZhbD0iRUQ3RDMxIi8+PC9hOmFjY2VudDI+PGE6YWNjZW50Mz48YTpzcmdiQ2xyIHZhbD0iQTVBNUE1Ii8+PC9hOmFjY2VudDM+PGE6YWNjZW50ND48YTpzcmdiQ2xyIHZhbD0iRkZDMDAwIi8+PC9hOmFjY2VudDQ+PGE6YWNjZW50NT48YTpzcmdiQ2xyIHZhbD0iNUI5QkQ1Ii8+PC9hOmFjY2VudDU+PGE6YWNjZW50Nj48YTpzcmdiQ2xyIHZhbD0iNzBBRDQ3Ii8+PC9hOmFjY2VudDY+PGE6aGxpbms+PGE6c3JnYkNsciB2YWw9IjA1NjNDMSIvPjwvYTpobGluaz48YTpmb2xIbGluaz48YTpzcmdiQ2xyIHZhbD0iOTU0RjcyIi8+PC9hOmZvbEhsaW5rPjwvYTpjbHJTY2hlbWU+PGE6Zm9udFNjaGVtZSBuYW1lPSJPZmZpY2UiPjxhOm1ham9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT0iQ2FsaWJyaSBMaWdodCIgcGFub3NlPSIwMjBGMDMwMjAyMDIwNDAzMDIwNCIvPjxhOmVhIHR5cGVmYWNlPSIiLz48YTpjcyB0eXBlZmFjZT0iIi8+PGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSLmuLjjgrTjgrfjg4Pjgq8gTGlnaHQiLz48YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9IuunkeydgCDqs6DrlJUiLz48YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Iuetiee6vyBMaWdodCIvPjxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0i5paw57Sw5piO6auUIi8+PGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz48YTpmb250IHNjcmlwdD0iSGViciIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPjxhOmZvbnQgc2NyaXB0PSJUaGFpIiB0eXBlZmFjZT0iVGFob21hIi8+PGE6Zm9udCBzY3JpcHQ9IkV0aGkiIHR5cGVmYWNlPSJOeWFsYSIvPjxhOmZvbnQgc2NyaXB0PSJCZW5nIiB0eXBlZmFjZT0iVnJpbmRhIi8+PGE6Zm9udCBzY3JpcHQ9Ikd1anIiIHR5cGVmYWNlPSJTaHJ1dGkiLz48YTpmb250IHNjcmlwdD0iS2htciIgdHlwZWZhY2U9Ik1vb2xCb3JhbiIvPjxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz48YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+PGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPjxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz48YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+PGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+PGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz48YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz48YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPjxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPjxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+PGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz48YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+PGE6Zm9udCBzY3JpcHQ9IlVpZ2giIHR5cGVmYWNlPSJNaWNyb3NvZnQgVWlnaHVyIi8+PGE6Zm9udCBzY3JpcHQ9Ikdlb3IiIHR5cGVmYWNlPSJTeWxmYWVuIi8+PGE6Zm9udCBzY3JpcHQ9IkFybW4iIHR5cGVmYWNlPSJBcmlhbCIvPjxhOmZvbnQgc2NyaXB0PSJCdWdpIiB0eXBlZmFjZT0iTGVlbGF3YWRlZSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJCb3BvIiB0eXBlZmFjZT0iTWljcm9zb2Z0IEpoZW5nSGVpIi8+PGE6Zm9udCBzY3JpcHQ9IkphdmEiIHR5cGVmYWNlPSJKYXZhbmVzZSBUZXh0Ii8+PGE6Zm9udCBzY3JpcHQ9Ikxpc3UiIHR5cGVmYWNlPSJTZWdvZSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJNeW1yIiB0eXBlZmFjZT0iTXlhbm1hciBUZXh0Ii8+PGE6Zm9udCBzY3JpcHQ9Ik5rb28iIHR5cGVmYWNlPSJFYnJpbWEiLz48YTpmb250IHNjcmlwdD0iT2xjayIgdHlwZWZhY2U9Ik5pcm1hbGEgVUkiLz48YTpmb250IHNjcmlwdD0iT3NtYSIgdHlwZWZhY2U9IkVicmltYSIvPjxhOmZvbnQgc2NyaXB0PSJQaGFnIiB0eXBlZmFjZT0iUGhhZ3NwYSIvPjxhOmZvbnQgc2NyaXB0PSJTeXJuIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz48YTpmb250IHNjcmlwdD0iU3lyaiIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmUiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJTb3JhIiB0eXBlZmFjZT0iTmlybWFsYSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJUYWxlIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFRhaSBMZSIvPjxhOmZvbnQgc2NyaXB0PSJUYWx1IiB0eXBlZmFjZT0iTWljcm9zb2Z0IE5ldyBUYWkgTHVlIi8+PGE6Zm9udCBzY3JpcHQ9IlRmbmciIHR5cGVmYWNlPSJFYnJpbWEiLz48L2E6bWFqb3JGb250PjxhOm1pbm9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT0iQ2FsaWJyaSIgcGFub3NlPSIwMjBGMDUwMjAyMDIwNDAzMDIwNCIvPjxhOmVhIHR5cGVmYWNlPSIiLz48YTpjcyB0eXBlZmFjZT0iIi8+PGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSLmuLjjgrTjgrfjg4Pjgq8iLz48YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9IuunkeydgCDqs6DrlJUiLz48YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Iuetiee6vyIvPjxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0i5paw57Sw5piO6auUIi8+PGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJBcmlhbCIvPjxhOmZvbnQgc2NyaXB0PSJIZWJyIiB0eXBlZmFjZT0iQXJpYWwiLz48YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZhY2U9IlRhaG9tYSIvPjxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz48YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPjxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+PGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJEYXVuUGVuaCIvPjxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz48YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+PGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPjxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz48YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+PGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+PGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz48YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz48YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPjxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPjxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+PGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz48YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iQXJpYWwiLz48YTpmb250IHNjcmlwdD0iVWlnaCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBVaWdodXIiLz48YTpmb250IHNjcmlwdD0iR2VvciIgdHlwZWZhY2U9IlN5bGZhZW4iLz48YTpmb250IHNjcmlwdD0iQXJtbiIgdHlwZWZhY2U9IkFyaWFsIi8+PGE6Zm9udCBzY3JpcHQ9IkJ1Z2kiIHR5cGVmYWNlPSJMZWVsYXdhZGVlIFVJIi8+PGE6Zm9udCBzY3JpcHQ9IkJvcG8iIHR5cGVmYWNlPSJNaWNyb3NvZnQgSmhlbmdIZWkiLz48YTpmb250IHNjcmlwdD0iSmF2YSIgdHlwZWZhY2U9IkphdmFuZXNlIFRleHQiLz48YTpmb250IHNjcmlwdD0iTGlzdSIgdHlwZWZhY2U9IlNlZ29lIFVJIi8+PGE6Zm9udCBzY3JpcHQ9Ik15bXIiIHR5cGVmYWNlPSJNeWFubWFyIFRleHQiLz48YTpmb250IHNjcmlwdD0iTmtvbyIgdHlwZWZhY2U9IkVicmltYSIvPjxhOmZvbnQgc2NyaXB0PSJPbGNrIiB0eXBlZmFjZT0iTmlybWFsYSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJPc21hIiB0eXBlZmFjZT0iRWJyaW1hIi8+PGE6Zm9udCBzY3JpcHQ9IlBoYWciIHR5cGVmYWNlPSJQaGFnc3BhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cm4iIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJTeXJqIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz48YTpmb250IHNjcmlwdD0iU3lyZSIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+PGE6Zm9udCBzY3JpcHQ9IlNvcmEiIHR5cGVmYWNlPSJOaXJtYWxhIFVJIi8+PGE6Zm9udCBzY3JpcHQ9IlRhbGUiIHR5cGVmYWNlPSJNaWNyb3NvZnQgVGFpIExlIi8+PGE6Zm9udCBzY3JpcHQ9IlRhbHUiIHR5cGVmYWNlPSJNaWNyb3NvZnQgTmV3IFRhaSBMdWUiLz48YTpmb250IHNjcmlwdD0iVGZuZyIgdHlwZWZhY2U9IkVicmltYSIvPjwvYTptaW5vckZvbnQ+PC9hOmZvbnRTY2hlbWU+PGE6Zm10U2NoZW1lIG5hbWU9Ik9mZmljZSI+PGE6ZmlsbFN0eWxlTHN0PjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj48YTpnc0xzdD48YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpsdW1Nb2QgdmFsPSIxMTAwMDAiLz48YTpzYXRNb2QgdmFsPSIxMDUwMDAiLz48YTp0aW50IHZhbD0iNjcwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9IjUwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6bHVtTW9kIHZhbD0iMTA1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTAzMDAwIi8+PGE6dGludCB2YWw9IjczMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpsdW1Nb2QgdmFsPSIxMDUwMDAiLz48YTpzYXRNb2QgdmFsPSIxMDkwMDAiLz48YTp0aW50IHZhbD0iODEwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz0iNTQwMDAwMCIgc2NhbGVkPSIwIi8+PC9hOmdyYWRGaWxsPjxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2F0TW9kIHZhbD0iMTAzMDAwIi8+PGE6bHVtTW9kIHZhbD0iMTAyMDAwIi8+PGE6dGludCB2YWw9Ijk0MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSI1MDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNhdE1vZCB2YWw9IjExMDAwMCIvPjxhOmx1bU1vZCB2YWw9IjEwMDAwMCIvPjxhOnNoYWRlIHZhbD0iMTAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpsdW1Nb2QgdmFsPSI5OTAwMCIvPjxhOnNhdE1vZCB2YWw9IjEyMDAwMCIvPjxhOnNoYWRlIHZhbD0iNzgwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz0iNTQwMDAwMCIgc2NhbGVkPSIwIi8+PC9hOmdyYWRGaWxsPjwvYTpmaWxsU3R5bGVMc3Q+PGE6bG5TdHlsZUxzdD48YTpsbiB3PSI2MzUwIiBjYXA9ImZsYXQiIGNtcGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48YTptaXRlciBsaW09IjgwMDAwMCIvPjwvYTpsbj48YTpsbiB3PSIxMjcwMCIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PGE6bWl0ZXIgbGltPSI4MDAwMDAiLz48L2E6bG4+PGE6bG4gdz0iMTkwNTAiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjxhOm1pdGVyIGxpbT0iODAwMDAwIi8+PC9hOmxuPjwvYTpsblN0eWxlTHN0PjxhOmVmZmVjdFN0eWxlTHN0PjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdC8+PC9hOmVmZmVjdFN0eWxlPjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdC8+PC9hOmVmZmVjdFN0eWxlPjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdD48YTpvdXRlclNoZHcgYmx1clJhZD0iNTcxNTAiIGRpc3Q9IjE5MDUwIiBkaXI9IjU0MDAwMDAiIGFsZ249ImN0ciIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjYzMDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz48L2E6ZWZmZWN0THN0PjwvYTplZmZlY3RTdHlsZT48L2E6ZWZmZWN0U3R5bGVMc3Q+PGE6YmdGaWxsU3R5bGVMc3Q+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI5NTAwMCIvPjxhOnNhdE1vZCB2YWw9IjE3MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOnNvbGlkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPjxhOmdzTHN0PjxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI5MzAwMCIvPjxhOnNhdE1vZCB2YWw9IjE1MDAwMCIvPjxhOnNoYWRlIHZhbD0iOTgwMDAiLz48YTpsdW1Nb2QgdmFsPSIxMDIwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9IjUwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9Ijk4MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTMwMDAwIi8+PGE6c2hhZGUgdmFsPSI5MDAwMCIvPjxhOmx1bU1vZCB2YWw9IjEwMzAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSI2MzAwMCIvPjxhOnNhdE1vZCB2YWw9IjEyMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjwvYTpnc0xzdD48YTpsaW4gYW5nPSI1NDAwMDAwIiBzY2FsZWQ9IjAiLz48L2E6Z3JhZEZpbGw+PC9hOmJnRmlsbFN0eWxlTHN0PjwvYTpmbXRTY2hlbWU+PC9hOnRoZW1lRWxlbWVudHM+PGE6b2JqZWN0RGVmYXVsdHMvPjxhOmV4dHJhQ2xyU2NoZW1lTHN0Lz48YTpleHRMc3Q+PGE6ZXh0IHVyaT0iezA1QTRDMjVDLTA4NUUtNDM0MC04NUEzLUE1NTMxRTUxMERCMn0iPjx0aG0xNTp0aGVtZUZhbWlseSB4bWxuczp0aG0xNT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvdGhlbWVtbC8yMDEyL21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSIgaWQ9Ins2MkY5MzlCNi05M0FGLTREQjgtOUM2Qi1ENkM3REZEQzU4OUZ9IiB2aWQ9Ins0QTNDNDZFOC02MUNDLTQ2MDMtQTU4OS03NDIyQTQ3QThFNEF9Ii8+PC9hOmV4dD48L2E6ZXh0THN0PjwvYTp0aGVtZT5QSwMECgAAAAAAAAAhAHmhgGxSBgAAUgYAAA0AAAB4bC9zdHlsZXMueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHN0eWxlU2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIHgxNnIyIHhyIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiIHhtbG5zOngxNnIyPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTUvMDIvbWFpbiIgeG1sbnM6eHI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNC9yZXZpc2lvbiI+PGZvbnRzIGNvdW50PSIxIiB4MTRhYzprbm93bkZvbnRzPSIxIj48Zm9udD48c3ogdmFsPSIxMSIvPjxjb2xvciB0aGVtZT0iMSIvPjxuYW1lIHZhbD0iQ2FsaWJyaSIvPjxmYW1pbHkgdmFsPSIyIi8+PHNjaGVtZSB2YWw9Im1pbm9yIi8+PC9mb250PjwvZm9udHM+PGZpbGxzIGNvdW50PSIyIj48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9Im5vbmUiLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJncmF5MTI1Ii8+PC9maWxsPjwvZmlsbHM+PGJvcmRlcnMgY291bnQ9IjEiPjxib3JkZXI+PGxlZnQvPjxyaWdodC8+PHRvcC8+PGJvdHRvbS8+PGRpYWdvbmFsLz48L2JvcmRlcj48L2JvcmRlcnM+PGNlbGxTdHlsZVhmcyBjb3VudD0iMSI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiLz48L2NlbGxTdHlsZVhmcz48Y2VsbFhmcyBjb3VudD0iMSI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIHhmSWQ9IjAiLz48L2NlbGxYZnM+PGNlbGxTdHlsZXMgY291bnQ9IjEiPjxjZWxsU3R5bGUgbmFtZT0iTm9ybWFsIiB4ZklkPSIwIiBidWlsdGluSWQ9IjAiLz48L2NlbGxTdHlsZXM+PGR4ZnMgY291bnQ9IjAiLz48dGFibGVTdHlsZXMgY291bnQ9IjAiIGRlZmF1bHRUYWJsZVN0eWxlPSJUYWJsZVN0eWxlTWVkaXVtMiIgZGVmYXVsdFBpdm90U3R5bGU9IlBpdm90U3R5bGVMaWdodDE2Ii8+PGV4dExzdD48ZXh0IHVyaT0ie0VCNzlERUYyLTgwQjgtNDNlNS05NUJELTU0Q0JEREY5MDIwQ30iIHhtbG5zOngxND0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvbWFpbiI+PHgxNDpzbGljZXJTdHlsZXMgZGVmYXVsdFNsaWNlclN0eWxlPSJTbGljZXJTdHlsZUxpZ2h0MSIvPjwvZXh0PjxleHQgdXJpPSJ7OTI2MEE1MTAtRjMwMS00NmE4LTg2MzUtRjUxMkQ2NEJFNUY1fSIgeG1sbnM6eDE1PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpbiI+PHgxNTp0aW1lbGluZVN0eWxlcyBkZWZhdWx0VGltZWxpbmVTdHlsZT0iVGltZVNsaWNlclN0eWxlTGlnaHQxIi8+PC9leHQ+PC9leHRMc3Q+PC9zdHlsZVNoZWV0PlBLAwQKAAAAAAAAACEA0IywC4EAAACBAAAAFAAAAHhsL3NoYXJlZFN0cmluZ3MueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHNzdCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIi8+UEsDBAoAAAAAAAAAIQDcCx83XQIAAF0CAAARAAAAZG9jUHJvcHMvY29yZS54bWw8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+DQo8Y3A6Y29yZVByb3BlcnRpZXMgeG1sbnM6Y3A9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmRjdGVybXM9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8iIHhtbG5zOmRjbWl0eXBlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj48ZGM6Y3JlYXRvcj5kdW5jYW48L2RjOmNyZWF0b3I+PGNwOmxhc3RNb2RpZmllZEJ5PmR1bmNhbjwvY3A6bGFzdE1vZGlmaWVkQnk+PGRjdGVybXM6Y3JlYXRlZCB4c2k6dHlwZT0iZGN0ZXJtczpXM0NEVEYiPjIwMTktMDEtMzFUMTY6NDg6MDNaPC9kY3Rlcm1zOmNyZWF0ZWQ+PGRjdGVybXM6bW9kaWZpZWQgeHNpOnR5cGU9ImRjdGVybXM6VzNDRFRGIj4yMDE5LTAxLTMxVDE2OjQ4OjI4WjwvZGN0ZXJtczptb2RpZmllZD48L2NwOmNvcmVQcm9wZXJ0aWVzPlBLAwQKAAAAAAAAACEAYUkJEBEDAAARAwAAEAAAAGRvY1Byb3BzL2FwcC54bWw8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+DQo8UHJvcGVydGllcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvZXh0ZW5kZWQtcHJvcGVydGllcyIgeG1sbnM6dnQ9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2RvY1Byb3BzVlR5cGVzIj48QXBwbGljYXRpb24+TWljcm9zb2Z0IEV4Y2VsPC9BcHBsaWNhdGlvbj48RG9jU2VjdXJpdHk+MDwvRG9jU2VjdXJpdHk+PFNjYWxlQ3JvcD5mYWxzZTwvU2NhbGVDcm9wPjxIZWFkaW5nUGFpcnM+PHZ0OnZlY3RvciBzaXplPSIyIiBiYXNlVHlwZT0idmFyaWFudCI+PHZ0OnZhcmlhbnQ+PHZ0Omxwc3RyPldvcmtzaGVldHM8L3Z0Omxwc3RyPjwvdnQ6dmFyaWFudD48dnQ6dmFyaWFudD48dnQ6aTQ+MTwvdnQ6aTQ+PC92dDp2YXJpYW50PjwvdnQ6dmVjdG9yPjwvSGVhZGluZ1BhaXJzPjxUaXRsZXNPZlBhcnRzPjx2dDp2ZWN0b3Igc2l6ZT0iMSIgYmFzZVR5cGU9Imxwc3RyIj48dnQ6bHBzdHI+U2hlZXQxPC92dDpscHN0cj48L3Z0OnZlY3Rvcj48L1RpdGxlc09mUGFydHM+PENvbXBhbnk+PC9Db21wYW55PjxMaW5rc1VwVG9EYXRlPmZhbHNlPC9MaW5rc1VwVG9EYXRlPjxTaGFyZWREb2M+ZmFsc2U8L1NoYXJlZERvYz48SHlwZXJsaW5rc0NoYW5nZWQ+ZmFsc2U8L0h5cGVybGlua3NDaGFuZ2VkPjxBcHBWZXJzaW9uPjE2LjAzMDA8L0FwcFZlcnNpb24+PC9Qcm9wZXJ0aWVzPlBLAQIUAAoAAAAAAAAAIQBi7p1okAQAAJAEAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAhQACgAAAAAAAAAhALVVMCNMAgAATAIAAAsAAAAAAAAAAAAAAAAAwQQAAF9yZWxzLy5yZWxzUEsBAhQACgAAAAAAAAAhALpwnmbKBgAAygYAAA8AAAAAAAAAAAAAAAAANgcAAHhsL3dvcmtib29rLnhtbFBLAQIUAAoAAAAAAAAAIQCBPpSXugIAALoCAAAaAAAAAAAAAAAAAAAAAC0OAAB4bC9fcmVscy93b3JrYm9vay54bWwucmVsc1BLAQIUAAoAAAAAAAAAIQACrURzpAMAAKQDAAAYAAAAAAAAAAAAAAAAAB8RAAB4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWxQSwECFAAKAAAAAAAAACEAwRcQvsYgAADGIAAAEwAAAAAAAAAAAAAAAAD5FAAAeGwvdGhlbWUvdGhlbWUxLnhtbFBLAQIUAAoAAAAAAAAAIQB5oYBsUgYAAFIGAAANAAAAAAAAAAAAAAAAAPA1AAB4bC9zdHlsZXMueG1sUEsBAhQACgAAAAAAAAAhANCMsAuBAAAAgQAAABQAAAAAAAAAAAAAAAAAbTwAAHhsL3NoYXJlZFN0cmluZ3MueG1sUEsBAhQACgAAAAAAAAAhANwLHzddAgAAXQIAABEAAAAAAAAAAAAAAAAAID0AAGRvY1Byb3BzL2NvcmUueG1sUEsBAhQACgAAAAAAAAAhAGFJCRARAwAAEQMAABAAAAAAAAAAAAAAAAAArD8AAGRvY1Byb3BzL2FwcC54bWxQSwUGAAAAAAoACgCAAgAA60IAAAAA";var jr=s=>s!==null&&typeof s=="object"&&"row"in s&&"column"in s;var W=class s{start_;end_;constructor(e,t=e,r=!1){this.end_=this.PatchNull(t),this.start_=this.PatchNull(e),r&&this.Normalize()}static FromColumn(e){return new s({row:1/0,column:e})}static FromRow(e){return new s({row:e,column:1/0})}static ColumnToLabel(e){let t=String.fromCharCode(65+e%26);for(;e>25;)e=Math.floor(e/26)-1,t=String.fromCharCode(65+e%26)+t;return t}static CellAddressToLabel(e,t=!1){if(e.row===1/0&&e.column===1/0)throw new Error("this is going to break something");let r=t?`${e.sheet_id||0}!`:"";return e.row===1/0?r+(e.absolute_column?"$":"")+this.ColumnToLabel(e.column):e.column===1/0?r+(e.absolute_row?"$":"")+(e.row+1):r+(e.absolute_column?"$":"")+this.ColumnToLabel(e.column)+(e.absolute_row?"$":"")+(e.row+1)+(e.spill?"#":"")}static Join(e,...t){let r=new s(e.start,e.end);for(let i of t)i&&(r.ConsumeAddress(i.start),r.ConsumeAddress(i.end));return r}static Bleed(e,t=1){return new s({row:Math.max(0,e.start.row-t),column:Math.max(0,e.start.column-t),sheet_id:e.start.sheet_id},{row:e.end.row+t,column:e.end.column+t})}static PatchArea(e,t){let{before_column:r,column_count:i,before_row:n,row_count:a}=t,o=new s(e.start,e.end),l=e.start.sheet_id;if(i&&r<=o.end.column){if(i>0)r<=o.start.column?o.Shift(0,i):r>o.start.column&&r<=o.end.column?o.ConsumeAddress({row:o.end.row,column:o.end.column+i}):console.warn("AA X case 1",r,i,JSON.stringify(o));else if(i<0)if(r-i<=o.start.column)o.Shift(0,i);else{if(r<=o.start.column&&r-i>o.end.column)return!1;if(r<=o.start.column){let c=r-i-1;o=new s({row:o.start.row,column:c+1+i,sheet_id:l},{row:o.end.row,column:o.end.column+i})}else r<=o.end.column?r-i-1>=o.end.column?o=new s({row:o.start.row,column:o.start.column,sheet_id:l},{row:o.end.row,column:r-1}):o=new s({row:o.start.row,column:o.start.column,sheet_id:l},{row:o.end.row,column:o.start.column+o.columns+i-1}):console.warn("AA X case 2",r,i,JSON.stringify(o))}}if(a&&n<=o.end.row){if(a>0)n<=o.start.row?o.Shift(a,0):n>o.start.row&&n<=o.end.row?o.ConsumeAddress({row:o.end.row+a,column:o.end.column}):console.warn("AA X case 3",n,a,JSON.stringify(o));else if(a<0)if(n-a<=o.start.row)o.Shift(a,0);else{if(n<=o.start.row&&n-a>o.end.row)return!1;if(n<=o.start.row){let c=n-a-1;o=new s({column:o.start.column,row:c+1+a,sheet_id:l},{column:o.end.column,row:o.end.row+a})}else n<=o.end.row?n-a-1>=o.end.row?o=new s({column:o.start.column,row:o.start.row,sheet_id:l},{column:o.end.column,row:n-1}):o=new s({column:o.start.column,row:o.start.row,sheet_id:l},{column:o.end.column,row:o.start.row+o.rows+a-1}):console.warn("AA X case 4",n,a,JSON.stringify(o))}}return o}get start(){return{...this.start_}}set start(e){this.start_=e}get end(){return{...this.end_}}set end(e){this.end_=e}get rows(){return this.start_.row===1/0||this.end_.row===1/0?1/0:this.end_.row-this.start_.row+1}get columns(){return this.start_.column===1/0||this.end_.column===1/0?1/0:this.end_.column-this.start_.column+1}get count(){return this.rows*this.columns}get entire_sheet(){return this.entire_row&&this.entire_column}get entire_column(){return this.start_.row===1/0}get entire_row(){return this.start_.column===1/0}PatchNull(e){let t={...e};return t.row===null&&(t.row=1/0),t.column===null&&(t.column=1/0),t}SetSheetID(e){this.start_.sheet_id=e}Normalize(){let e={...this.start_},t={...this.end_};e.row===1/0||t.row===1/0?e.row=t.row=1/0:e.row>t.row&&(e.row=this.end_.row,e.absolute_row=this.end_.absolute_row,t.row=this.start_.row,t.absolute_row=this.start_.absolute_row),e.column===1/0||t.column===1/0?e.column=t.column=1/0:e.column>t.column&&(e.column=this.end_.column,e.absolute_column=this.end_.absolute_column,t.column=this.start_.column,t.absolute_column=this.start_.absolute_column),this.start_=e,this.end_=t}TopLeft(){let e={row:0,column:0};return this.entire_row||(e.column=this.start.column),this.entire_column||(e.row=this.start.row),e}BottomRight(){let e={row:0,column:0};return this.entire_row||(e.column=this.end.column),this.entire_column||(e.row=this.end.row),e}ContainsRow(e){return this.entire_column||e>=this.start_.row&&e<=this.end_.row}ContainsColumn(e){return this.entire_row||e>=this.start_.column&&e<=this.end_.column}Contains(e){return(this.entire_column||e.row>=this.start_.row&&e.row<=this.end_.row)&&(this.entire_row||e.column>=this.start_.column&&e.column<=this.end_.column)}ContainsArea(e){return this.start.column<=e.start.column&&this.end.column>=e.end.column&&this.start.row<=e.start.row&&this.end.row>=e.end.row}Intersects(e){return!(e.start.column>this.end.column||this.start.column>e.end.column||e.start.row>this.end.row||this.start.row>e.end.row)}Equals(e){return e.start_.row===this.start_.row&&e.start_.column===this.start_.column&&e.end_.row===this.end_.row&&e.end_.column===this.end_.column}Equals2(e){return e.start.row===this.start_.row&&e.start.column===this.start_.column&&e.end.row===this.end_.row&&e.end.column===this.end_.column}Clone(){return new s(this.start,this.end)}get left(){let e=new s(this.start_,this.end_);return e.end_.column=e.start_.column,e}get right(){let e=new s(this.start_,this.end_);return e.start_.column=e.end_.column,e}get top(){let e=new s(this.start_,this.end_);return e.end_.row=e.start_.row,e}get bottom(){let e=new s(this.start_,this.end_);return e.start_.row=e.end_.row,e}Shift(e,t){return this.start_.row+=e,this.start_.column+=t,this.end_.row+=e,this.end_.column+=t,this}ConsumeAddress(e){this.entire_row||(e.column<this.start_.column&&(this.start_.column=e.column),e.column>this.end_.column&&(this.end_.column=e.column)),this.entire_column||(e.row<this.start_.row&&(this.start_.row=e.row),e.row>this.end_.row&&(this.end_.row=e.row))}Reshape(e,t){return this.end_.row=this.start_.row+e-1,this.end_.column=this.start_.column+t-1,this}ConsumeArea(e){this.ConsumeAddress(e.start),this.ConsumeAddress(e.end)}Resize(e,t){return this.end_.row=this.start_.row+e-1,this.end_.column=this.start_.column+t-1,this}[Symbol.iterator](){if(this.entire_row||this.entire_column)throw new Error("don\'t iterate infinite area");let e=this.start_.row,t=this.start_.column;return{next:()=>{let r={column:t,row:e,sheet_id:this.start_.sheet_id};return t>this.end_.column?{done:!0,value:void 0}:(++e>this.end_.row&&(e=this.start_.row,t++),{value:r})}}}get spreadsheet_label(){let e;return this.entire_sheet?"":this.entire_column?(e=s.ColumnToLabel(this.start_.column),e+=":"+s.ColumnToLabel(this.end_.column),e):this.entire_row?(e=String(this.start_.row+1),e+=":"+(this.end_.row+1),e):(e=s.CellAddressToLabel(this.start_),this.columns>1||this.rows>1?e+":"+s.CellAddressToLabel(this.end_):e)}toJSON(){return{start:{...this.start_},end:{...this.end_}}}};var vs=s=>typeof s=="object"&&!!s&&typeof s.real=="number"&&typeof s.imaginary=="number";var Cs=s=>typeof s=="object"&&!!s&&typeof s.value=="number"&&typeof s.unit=="string",Ss=s=>typeof s=="object"&&s.type==="function",nr=["undefined","formula","string","number","boolean","object","function","error","complex","array","dimensioned_quantity"];var Ge=s=>{switch(typeof s){case"undefined":return 0;case"number":return 3;case"boolean":return 4;case"object":return s===null?0:Ss(s)?6:vs(s)?8:Cs(s)?10:5;case"string":return s[0]==="="?1:2;default:return 7}};var ie=class{static StringToColumn(e){let t=0;e=e.toUpperCase();for(let r=0;r<e.length;r++)t*=26,t+=e.charCodeAt(r)-64;return t-1}value;type=0;calculated;calculated_type;formatted;rendered_type;style;area;spill;merge_area;table;renderer_data;render_clean=[];note;hyperlink;editing;render_function;click_function;constructor(e,t){typeof e<"u"&&this.Set(e,t)}ValueIsNumber(){return this.type===3}ValueIsFormula(){return this.type===1}ValueIsBoolean(){return this.type===4}ValueIsComplex(){return this.type===8}FlushStyle(){this.formatted=this.rendered_type=this.style=void 0,this.render_clean=[]}FlushArray(){this.area=void 0}FlushCache(){this.calculated=this.calculated_type=this.formatted=this.rendered_type=this.render_function=this.click_function=void 0,this.render_clean=[]}Reset(){this.type=0,this.value=this.spill=this.note=this.hyperlink=this.formatted=this.rendered_type=this.style=this.calculated=this.calculated_type=this.area=this.renderer_data=this.render_function=this.click_function=void 0,this.render_clean=[]}Set(e,t=Ge(e)){this.value=e,this.type=t,this.spill=this.formatted=this.rendered_type=this.style=this.calculated=this.calculated_type=this.render_function=this.click_function=this.area=void 0,this.render_clean=[]}SetCalculatedValue(e,t=Ge(e)){e===void 0&&(e=0,t=3),this.calculated!==e&&(this.calculated=e,this.calculated_type=t,this.formatted=this.rendered_type=void 0,this.render_clean=[])}GetValue(){return this.calculated_type?this.calculated:typeof this.value=="string"&&this.value[0]==="\'"?this.value.slice(1):this.value}GetValue4(){return this.calculated_type?{type:this.calculated_type,value:this.calculated}:this.type===1?{type:3,value:0}:{type:this.type,value:typeof this.value=="string"&&this.value[0]==="\'"?this.value.slice(1):this.value}}SetNote(e){this.note=e,this.render_clean=[]}SetCalculationError(e="ERR"){this.SetCalculatedValue(e,7)}SetArray(e){this.type=0,this.value=this.formatted=this.rendered_type=this.style=this.hyperlink=this.calculated=this.calculated_type=void 0,this.area=e,this.render_clean=[]}SetArrayHead(e,t){this.type=Ge(t),this.value=t,this.formatted=this.rendered_type=this.style=this.calculated=this.calculated_type=void 0,this.area=e,this.render_clean=[]}};var As=s=>!s.cells,Ts=s=>!!s[0]&&As(s[0]),Is=s=>!!s[0]&&s[0].row!==void 0,ks=nr.map((s,e)=>({[s]:e})).reduce((s,e)=>({...s,...e}),{}),kt=class{data=[];rows_=0;columns_=0;get rows(){return this.rows_}get columns(){return this.columns_}EnsureRow(e){this.rows_=Math.max(e+1,this.rows_)}EnsureColumn(e){this.columns_=Math.max(e+1,this.columns_)}InsertColumns(e=0,t=1){this.data=this.data.map(r=>{if(r.length>=e){let i=r.slice(0,e),n=e+t,a=r.slice(e);for(let o=0;o<a.length;o++)i[n++]=a[o];return i}return r}),this.columns_+=t}DeleteColumns(e,t=1){this.data.forEach(r=>r.splice(e,t)),this.columns_-=t}DeleteRows(e,t=1){this.data.splice(e,t),this.rows_-=t}InsertRows(e=0,t=1){let r=[e,0,[]];for(let i=1;i<t;i++)r.push([]);Array.prototype.splice.apply(this.data,r),this.rows_+=t}GetCell(e,t){let{row:r,column:i}=e;if(!this.data[r])if(t)this.data[r]=[],this.rows_=Math.max(this.rows_,r+1);else return;return this.data[r][i]||t&&(this.data[r][i]=new ie,this.columns_=Math.max(this.columns_,i+1)),this.data[r][i]}EnsureCell(e){let{row:t,column:r}=e,i=this.data[t];i||(this.data[t]=i=[],this.rows_=Math.max(this.rows_,t+1));let n=i[r];return n||(n=i[r]=new ie,this.columns_=Math.max(this.columns_,r+1)),n}FromArray(e=[],t=!1){this.data=[];let r=0,i=0;if(t){i=e.length;for(let n=0;n<i;n++){let a=e[n];r=Math.max(r,a.length);for(let o=0;o<a.length;o++)this.data[o]||(this.data[o]=[]),this.data[o][n]=new ie(a[o])}}else{r=e.length;for(let n=0;n<r;n++){let a=[],o=e[n];i=Math.max(i,o.length);for(let l=0;l<o.length;l++)a[l]=new ie(o[l]);this.data[n]=a}}this.rows_=r,this.columns_=i}SerializedTypeToValueType(e){if(e)return typeof e=="number"?e:ks[e]||void 0}ValueTypeToSerializedType(e){return e?nr[e]:void 0}FromJSON(e=[],t){if(this.data=[],!Ts(e)){let i=[];if(Is(e))for(let n of e)for(let a of n.cells)i.push({...a,row:n.row});else for(let n of e)for(let a of n.cells)i.push({...a,column:n.column});e=i}let r=[];for(let i of e){this.data[i.row]||(this.data[i.row]=[]);let n=new ie(i.value);if(typeof i.calculated<"u"&&(n.SetCalculatedValue(i.calculated,this.SerializedTypeToValueType(i.calculated_type)),i.spill&&(n.spill=new W(i.spill.start,i.spill.end))),t&&typeof i.style_ref<"u"&&(n.style=t[i.style_ref]),typeof i.note<"u"&&(n.note=i.note),typeof i.hyperlink<"u"&&(n.hyperlink=i.hyperlink),this.data[i.row][i.column]&&this.data[i.row][i.column].area&&(n.area=this.data[i.row][i.column].area),this.data[i.row][i.column]=n,i.area){let a=new W(i.area.start,i.area.end);for(let o=a.start.row;o<=a.end.row;o++)for(let l=a.start.column;l<=a.end.column;l++)this.data[o]||(this.data[o]=[]),this.data[o][l]||(this.data[o][l]=new ie),this.data[o][l].area=a}if(i.table&&r.push({...i.table}),i.merge_area){let a=new W(i.merge_area.start,i.merge_area.end);for(let o=a.start.row;o<=a.end.row;o++)for(let l=a.start.column;l<=a.end.column;l++)this.data[o]||(this.data[o]=[]),this.data[o][l]||(this.data[o][l]=new ie),this.data[o][l].merge_area=a}}for(let i of r)for(let n=i.area.start.row;n<=i.area.end.row;n++)for(let a=i.area.start.column;a<=i.area.end.column;a++)this.data[n]||(this.data[n]=[]),this.data[n][a]||(this.data[n][a]=new ie),this.data[n][a].table=i;this.rows_=this.data.length,this.columns_=this.data.reduce((i,n)=>Math.max(i,n.length),0)}toJSON(e={}){let t=0,r=0,i=this.data.length-1,n;e.subset&&(t=e.subset.start.column,r=e.subset.start.row,i=e.subset.end.row);let a=[],o=-1,l=-1,c={},d={};for(let h=r;h<=i;h++)if(this.data[h]){let f=this.data[h];n=f.length-1,e.subset&&(n=e.subset.end.column);for(let u=t;u<=n;u++){let p=f[u],g=p&&p.merge_area&&p.merge_area.start.row===h&&p.merge_area.start.column===u,v=p&&p.area&&p.area.start.row===h&&p.area.start.column===u,w=p&&p.table&&p.table.area.start.row===h&&p.table.area.start.column===u,b=p?p.type===2&&!p.value:!0;if(p&&(!b||e.preserve_empty_strings)&&(g||p.type||p.calculated_type&&e.expand_arrays||p.calculated_type&&e.calculated_value||p.note||e.decorated_cells&&p.style&&(p.style.fill||p.style.border_bottom||p.style.border_top||p.style.border_left||p.style.border_right))){let m={row:h,column:u,value:p.value};p.note&&(m.note=p.note),p.hyperlink&&(m.hyperlink=p.hyperlink),e.preserve_type&&(m.type=this.ValueTypeToSerializedType(p.type)),e.sheet_id&&(m.sheet_id=e.sheet_id),e.calculated_value&&typeof p.calculated<"u"&&(m.calculated=p.calculated,p.spill&&(m.spill=p.spill.toJSON()),(e.preserve_type||p.calculated_type===7)&&(m.calculated_type=this.ValueTypeToSerializedType(p.calculated_type))),p.table&&w&&e.tables&&(m.table=JSON.parse(JSON.stringify(p.table))),p.area&&v&&(m.area=p.area.toJSON()),p.merge_area&&(m.merge_area=p.merge_area.toJSON()),e.cell_style_refs&&e.cell_style_refs[u]&&e.cell_style_refs[u][h]&&(m.style_ref=e.cell_style_refs[u][h],e.cell_style_refs[u][h]=0),c[h]=h,d[u]=u,o=Math.max(h,o),l=Math.max(u,l),a.push(m)}}}if(e.nested){let h=Object.keys(c),f=Object.keys(d);if(h.length<=f.length&&h.length){let u={},p=[];for(let g of a){let{row:v,...w}=g;u[g.row]||(u[g.row]=[]),u[g.row].push(w)}for(let g of h){let v=Number(g);p.push({row:v,cells:u[v]})}return{data:p,rows:o,columns:l+1}}else if(f.length){let u={},p=[];for(let g of a){let{column:v,...w}=g;u[g.column]||(u[g.column]=[]),u[g.column].push(w)}for(let g of f){let v=Number(g);p.push({column:v,cells:u[v]})}return{data:p,rows:o,columns:l+1}}}return{data:a,rows:o+1,columns:l+1}}GetAll(e=!1){return this.GetRange({row:0,column:0},{row:this.rows_-1,column:this.columns_-1},e)}Normalize(e,t){return e={...e,row:e.row==1/0?0:e.row,column:e.column==1/0?0:e.column},t&&(t={...t,row:t.row==1/0?this.rows_-1:t.row,column:t.column==1/0?this.columns_-1:t.column}),{from:e,to:t}}RawValue(e,t=e){if({from:e,to:t}=this.Normalize(e,t),e.row===t.row&&e.column===t.column)return this.data[e.row]&&this.data[e.row][e.column]?this.data[e.row][e.column].value:void 0;let r=[],i=this.data.slice(e.row,t.row+1),n=e.column,a=t.column+1;for(let o of i){let l=[];for(let c=n,d=0;c<a;c++,d++){let h=o[c];l.push(h?h.value:void 0)}r.push(l)}return r}GetRange(e,t,r=!1){if({from:e,to:t}=this.Normalize(e,t),!t||e===t||e.column===t.column&&e.row===t.row)return this.data[e.row]&&this.data[e.row][e.column]?this.data[e.row][e.column].GetValue():void 0;let i=[];if(r)for(let n=e.column;n<=t.column;n++){let a=[];for(let o=e.row;o<=t.row;o++)this.data[o]&&this.data[o][n]?a.push(this.data[o][n].GetValue()):a.push(void 0);i.push(a)}else for(let n=e.row;n<=t.row;n++){let a=[];for(let o=e.column;o<=t.column;o++)this.data[n]&&this.data[n][o]?a.push(this.data[n][o].GetValue()):a.push(void 0);i.push(a)}return i}GetRange4(e,t=e,r=!1){if({from:e,to:t}=this.Normalize(e,t),e.row===t.row&&e.column===t.column)return this.data[e.row]&&this.data[e.row][e.column]?this.data[e.row][e.column].GetValue4():{value:void 0,type:0};let i=[];if(r)for(let n=e.column;n<=t.column;n++){let a=[];for(let o=e.row;o<=t.row;o++)this.data[o]&&this.data[o][n]?a.push(this.data[o][n].GetValue4()):a.push({type:0});i.push(a)}else for(let n=e.row;n<=t.row;n++){let a=[];for(let o=e.column;o<=t.column;o++)this.data[n]&&this.data[n][o]?a.push(this.data[n][o].GetValue4()):a.push({type:0});i.push(a)}return{type:9,value:i}}SetArea(e,t){if(ArrayBuffer.isView(t))throw new Error("ABIV");if(Array.isArray(t))for(let r=e.start.row,i=0;r<=e.end.row;r++,i++){this.data[r]||(this.data[r]=[]);let n=this.data[r];if(t[i])for(let a=e.start.column,o=0;a<=e.end.column;a++,o++)n[a]||(n[a]=new ie),n[a].Set(t[i][o])}else{let r=Ge(t);for(let i=e.start.row;i<=e.end.row;i++){this.data[i]||(this.data[i]=[]);let n=this.data[i];for(let a=e.start.column;a<=e.end.column;a++)n[a]||(n[a]=new ie),n[a].Set(t,r)}}this.rows_=Math.max(this.rows_,e.end.row+1),this.columns_=Math.max(this.columns_,e.end.column+1)}*IterateRC(e,t=!1){if(!e&&t&&(e=new W({row:0,column:0},{row:this.rows_-1,column:this.columns-1})),e)if(t)for(let r=e.start.row;r<=e.end.row;r++){this.data[r]||(this.data[r]=[]);let i=this.data[r];for(let n=e.start.column;n<=e.end.column;n++)i[n]||(i[n]=new ie),yield{cell:i[n],row:r,column:n}}else for(let r=e.start.row;r<=e.end.row;r++){let i=this.data[r];if(i)for(let n=e.start.column;n<=e.end.column;n++){let a=i[n];a&&(yield{cell:a,row:r,column:n})}}else for(let[r,i]of this.data.entries())if(i)for(let[n,a]of i.entries())a&&(yield{cell:a,row:r,column:n})}*Iterate(e,t=!1){if(!e&&t&&(e=new W({row:0,column:0},{row:this.rows_-1,column:this.columns-1})),e){jr(e)&&(e=new W(e)),(e.entire_column||e.entire_row)&&(e=new W(e.start,e.end),e.start.column===1/0&&(e.start.column=0,e.end.column=this.columns_-1),e.start.row===1/0&&(e.start.row=0,e.end.row=this.rows_-1));let r=e.start,i=e.end;if(t)for(let n=r.row;n<=i.row;n++){this.data[n]||(this.data[n]=[]);let a=this.data[n];for(let o=r.column;o<=i.column;o++)a[o]||(a[o]=new ie),yield a[o]}else for(let n=r.row;n<=i.row;n++)if(this.data[n]){let a=this.data[n];for(let o=r.column;o<=i.column;o++)a[o]&&(yield a[o])}}else for(let r of this.data)if(r)for(let i of r)i&&(yield i)}FlushCellStyles(){for(let e of this.data)if(e)for(let t of e)t&&t.FlushStyle()}FlushCachedValues(){for(let e of this.data)if(e)for(let t of e)t&&t.FlushCache()}};var rt=class{static locale="en-us";static decimal_separator=".";static argument_separator=",";static grouping_separator=",";static date_components={short_days:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long_days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],short_months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long_months:["January","February","March","April","May","June","July","August","September","October","November","December"]};static UpdateLocale(e){if(e)this.locale=e;else if(typeof self<"u"){let i=self?.document?.location;if(i&&i.search&&/locale=([^?&]+?)(?:\\?|$|&)/.test(i.search)){let n=i.search.match(/locale=(.*?)(?:\\?|$|&)/);n&&(this.locale=n[1]),console.info("override locale",this.locale)}else typeof navigator<"u"&&(navigator.languages&&navigator.languages[0]?this.locale=navigator.languages[0]:this.locale=navigator.language)}this.locale==="C"&&(console.warn("Locale not set, defaulting to en-us"),this.locale="en-us");let t=new Intl.NumberFormat(this.locale,{minimumFractionDigits:1}).format(3.3).replace(/\\d/g,"");this.decimal_separator=t===","?",":".",this.decimal_separator===","?(this.argument_separator=";",this.grouping_separator=" "):(this.argument_separator=",",this.grouping_separator=",");let r=new Date(2e3,0,2,12,0,0,0);this.UpdateDateComponent(0,0,r),r=new Date(2e3,1,7,12,0,0,0),this.UpdateDateComponent(1,1,r),r=new Date(2e3,2,7,12,0,0,0),this.UpdateDateComponent(2,2,r),r=new Date(2e3,3,5,12,0,0,0),this.UpdateDateComponent(3,3,r),r=new Date(2e3,4,4,12,0,0,0),this.UpdateDateComponent(4,4,r),r=new Date(2e3,5,2,12,0,0,0),this.UpdateDateComponent(5,5,r),r=new Date(2e3,6,1,12,0,0,0),this.UpdateDateComponent(6,6,r),r=new Date(2e3,7,1,12,0,0,0),this.UpdateDateComponent(7,-1,r),r=new Date(2e3,8,1,12,0,0,0),this.UpdateDateComponent(8,-1,r),r=new Date(2e3,9,1,12,0,0,0),this.UpdateDateComponent(9,-1,r),r=new Date(2e3,10,1,12,0,0,0),this.UpdateDateComponent(10,-1,r),r=new Date(2e3,11,1,12,0,0,0),this.UpdateDateComponent(11,-1,r)}static UpdateDateComponent(e,t,r){t>=0&&(this.date_components.short_days[t]=r.toLocaleString(this.locale,{weekday:"short"}),this.date_components.long_days[t]=r.toLocaleString(this.locale,{weekday:"long"})),e>=0&&(this.date_components.short_months[e]=r.toLocaleString(this.locale,{month:"short"}),this.date_components.long_months[e]=r.toLocaleString(this.locale,{month:"long"}))}};rt.UpdateLocale();var Rs=JSON.stringify({}),Es={Background:0,Text:1,Background2:2,Text2:3,Accent:4,Accent2:5,Accent3:6,Accent4:7,Accent5:8,Accent6:9},$e=s=>typeof s.theme=="number"?s.theme:Es[s.theme]||0,Se=s=>!!s&&typeof s.text=="string",Ae=s=>!!s&&typeof s.theme<"u";var Ce={DefaultProperties:{horizontal_align:"",vertical_align:"",number_format:"General",nan:"NaN",font_size:{unit:"em",value:1},bold:!1,italic:!1,underline:!1,strike:!1,text:{theme:1},border_top:0,border_left:0,border_right:0,border_bottom:0},CompositeBorders:s=>({top:{width:s.border_top||0,color:s.border_top_fill||{}},left:{width:s.border_left||0,color:s.border_left_fill||{}},right:{width:s.border_right||0,color:s.border_right_fill||{}},bottom:{width:s.border_bottom||0,color:s.border_bottom_fill||{}}}),Serialize:s=>{let e=JSON.parse(JSON.stringify(s));return e.border_bottom_fill&&!e.border_bottom&&(e.border_bottom_fill=void 0),e.border_top_fill&&!e.border_top&&(e.border_top_fill=void 0),e.border_left_fill&&!e.border_left&&(e.border_left_fill=void 0),e.border_right_fill&&!e.border_right&&(e.border_right_fill=void 0),JSON.stringify(e)},Merge:(s,e,t=!0)=>{let r=t?{...s,...e}:{...e};return JSON.parse(JSON.stringify(r))},Composite:s=>JSON.parse(JSON.stringify(s.reduce((e,t)=>({...e,...t}),{}))),Empty:s=>JSON.stringify(s)===Rs,ParseFontSize:(s="",e="em")=>{let t=s.match(/(-*[\\d.]+)\\s*(\\S*)/);if(t){let r=Number(t[1]);if(!r||isNaN(r)||r<0)return{};let i=t[2].toLowerCase()||e;if(i==="pt"||i==="em"||i==="%"||i==="px")return{font_size:{unit:i,value:r}}}return{}},RelativeFontSize:(s,e)=>{let t=12,r=12;switch(s.font_size?.unit){case"pt":if(!s.font_size.value)return 1;r=s.font_size.value;break;case"px":if(!s.font_size.value)return 1;r=Math.round(s.font_size.value*300/4)/100;break;case"em":return s.font_size.value||1;case"%":return(s.font_size.value||100)/100;default:return 1}switch(e.font_size?.unit){case"pt":if(!e.font_size.value)return 1;t=e.font_size.value;break;case"px":if(!e.font_size.value)return 1;t=Math.round(e.font_size.value*300/4)/100;break;default:return 1}return r/t},FontSize:(s,e=!0)=>{let t=s.font_size?.value;switch(s.font_size?.unit){case"pt":return(t||12)+"pt";case"px":return e?Math.round((t||16)*300/4)/100+"pt":(t||16)+"px";case"em":return(t||1)+"em";case"%":return(t||100)+"%"}return""},CompositeFontSize:(s,e,t=1,r=!1)=>{let i={...s};return e.unit==="pt"||e.unit==="px"?i={...e}:(i.value=e.value*s.value,e.unit==="%"&&(i.value/=100)),i.unit==="px"&&r&&(i.value=Math.round((i.value||16)*300/4)/100),i.value*=t,i},CompositeFont:(s,e,t,r)=>{let i,n,a,o=[];e.bold&&o.push("bold"),e.italic&&o.push("italic");let l=e.font_face||"stack:default";if(l.startsWith("stack:")){let c=r.font_stacks[l.substring(6)||"default"];c||(c=r.font_stacks.default),c&&(n=e.font_size,a=Ce.CompositeFontSize(c.size,e.font_size||{unit:"pt",value:10},t),o.push(a.value.toFixed(2)+a.unit),o.push(c.font||""),i=c.variants)}else a=Ce.CompositeFontSize(s,e.font_size||{unit:"pt",value:10},t),o.push(a.value.toFixed(2)+a.unit),o.push(l||"");return{font:o.join(" "),variants:i,base:s,size:e.font_size,scale:t,stack_size:n,font_size:a}}};var Ns=1e3,Ve=class{constructor(e=!1,t){this.verbose=e;this.log_id=t}queue=[];dispatched=!1;subscribers=[];Publish(e){this.verbose&&console.info(`es publish (${this.log_id})`,e),Array.isArray(e)?this.queue.push(...e):this.queue.push(e),this.dispatched||(this.dispatched=!0,Promise.resolve().then(()=>{let t=this.queue.slice(0);this.dispatched=!1,this.queue=[];for(let r of t)for(let i of this.subscribers)i.subscriber(r)}))}Subscribe(e){let t=Ns++;return this.subscribers.push({subscriber:e,token:t}),t}Cancel(e){this.subscribers=this.subscribers.filter(t=>t.token!==e)}CancelAll(){this.subscribers=[]}};var Oe=s=>s!==null&&typeof s=="object"&&"row"in s&&"column"in s;var ee=class s{start_;end_;constructor(e,t=e,r=!1){this.end_=this.PatchNull(t),this.start_=this.PatchNull(e),r&&this.Normalize()}static FromColumn(e){return new s({row:1/0,column:e})}static FromRow(e){return new s({row:e,column:1/0})}static ColumnToLabel(e){let t=String.fromCharCode(65+e%26);for(;e>25;)e=Math.floor(e/26)-1,t=String.fromCharCode(65+e%26)+t;return t}static CellAddressToLabel(e,t=!1){if(e.row===1/0&&e.column===1/0)throw new Error("this is going to break something");let r=t?`${e.sheet_id||0}!`:"";return e.row===1/0?r+(e.absolute_column?"$":"")+this.ColumnToLabel(e.column):e.column===1/0?r+(e.absolute_row?"$":"")+(e.row+1):r+(e.absolute_column?"$":"")+this.ColumnToLabel(e.column)+(e.absolute_row?"$":"")+(e.row+1)+(e.spill?"#":"")}static Join(e,...t){let r=new s(e.start,e.end);for(let i of t)i&&(r.ConsumeAddress(i.start),r.ConsumeAddress(i.end));return r}static Bleed(e,t=1){return new s({row:Math.max(0,e.start.row-t),column:Math.max(0,e.start.column-t),sheet_id:e.start.sheet_id},{row:e.end.row+t,column:e.end.column+t})}static PatchArea(e,t){let{before_column:r,column_count:i,before_row:n,row_count:a}=t,o=new s(e.start,e.end),l=e.start.sheet_id;if(i&&r<=o.end.column){if(i>0)r<=o.start.column?o.Shift(0,i):r>o.start.column&&r<=o.end.column?o.ConsumeAddress({row:o.end.row,column:o.end.column+i}):console.warn("AA X case 1",r,i,JSON.stringify(o));else if(i<0)if(r-i<=o.start.column)o.Shift(0,i);else{if(r<=o.start.column&&r-i>o.end.column)return!1;if(r<=o.start.column){let c=r-i-1;o=new s({row:o.start.row,column:c+1+i,sheet_id:l},{row:o.end.row,column:o.end.column+i})}else r<=o.end.column?r-i-1>=o.end.column?o=new s({row:o.start.row,column:o.start.column,sheet_id:l},{row:o.end.row,column:r-1}):o=new s({row:o.start.row,column:o.start.column,sheet_id:l},{row:o.end.row,column:o.start.column+o.columns+i-1}):console.warn("AA X case 2",r,i,JSON.stringify(o))}}if(a&&n<=o.end.row){if(a>0)n<=o.start.row?o.Shift(a,0):n>o.start.row&&n<=o.end.row?o.ConsumeAddress({row:o.end.row+a,column:o.end.column}):console.warn("AA X case 3",n,a,JSON.stringify(o));else if(a<0)if(n-a<=o.start.row)o.Shift(a,0);else{if(n<=o.start.row&&n-a>o.end.row)return!1;if(n<=o.start.row){let c=n-a-1;o=new s({column:o.start.column,row:c+1+a,sheet_id:l},{column:o.end.column,row:o.end.row+a})}else n<=o.end.row?n-a-1>=o.end.row?o=new s({column:o.start.column,row:o.start.row,sheet_id:l},{column:o.end.column,row:n-1}):o=new s({column:o.start.column,row:o.start.row,sheet_id:l},{column:o.end.column,row:o.start.row+o.rows+a-1}):console.warn("AA X case 4",n,a,JSON.stringify(o))}}return o}get start(){return{...this.start_}}set start(e){this.start_=e}get end(){return{...this.end_}}set end(e){this.end_=e}get rows(){return this.start_.row===1/0||this.end_.row===1/0?1/0:this.end_.row-this.start_.row+1}get columns(){return this.start_.column===1/0||this.end_.column===1/0?1/0:this.end_.column-this.start_.column+1}get count(){return this.rows*this.columns}get entire_sheet(){return this.entire_row&&this.entire_column}get entire_column(){return this.start_.row===1/0}get entire_row(){return this.start_.column===1/0}PatchNull(e){let t={...e};return t.row===null&&(t.row=1/0),t.column===null&&(t.column=1/0),t}SetSheetID(e){this.start_.sheet_id=e}Normalize(){let e={...this.start_},t={...this.end_};e.row===1/0||t.row===1/0?e.row=t.row=1/0:e.row>t.row&&(e.row=this.end_.row,e.absolute_row=this.end_.absolute_row,t.row=this.start_.row,t.absolute_row=this.start_.absolute_row),e.column===1/0||t.column===1/0?e.column=t.column=1/0:e.column>t.column&&(e.column=this.end_.column,e.absolute_column=this.end_.absolute_column,t.column=this.start_.column,t.absolute_column=this.start_.absolute_column),this.start_=e,this.end_=t}TopLeft(){let e={row:0,column:0};return this.entire_row||(e.column=this.start.column),this.entire_column||(e.row=this.start.row),e}BottomRight(){let e={row:0,column:0};return this.entire_row||(e.column=this.end.column),this.entire_column||(e.row=this.end.row),e}ContainsRow(e){return this.entire_column||e>=this.start_.row&&e<=this.end_.row}ContainsColumn(e){return this.entire_row||e>=this.start_.column&&e<=this.end_.column}Contains(e){return(this.entire_column||e.row>=this.start_.row&&e.row<=this.end_.row)&&(this.entire_row||e.column>=this.start_.column&&e.column<=this.end_.column)}ContainsArea(e){return this.start.column<=e.start.column&&this.end.column>=e.end.column&&this.start.row<=e.start.row&&this.end.row>=e.end.row}Intersects(e){return!(e.start.column>this.end.column||this.start.column>e.end.column||e.start.row>this.end.row||this.start.row>e.end.row)}Equals(e){return e.start_.row===this.start_.row&&e.start_.column===this.start_.column&&e.end_.row===this.end_.row&&e.end_.column===this.end_.column}Equals2(e){return e.start.row===this.start_.row&&e.start.column===this.start_.column&&e.end.row===this.end_.row&&e.end.column===this.end_.column}Clone(){return new s(this.start,this.end)}get left(){let e=new s(this.start_,this.end_);return e.end_.column=e.start_.column,e}get right(){let e=new s(this.start_,this.end_);return e.start_.column=e.end_.column,e}get top(){let e=new s(this.start_,this.end_);return e.end_.row=e.start_.row,e}get bottom(){let e=new s(this.start_,this.end_);return e.start_.row=e.end_.row,e}Shift(e,t){return this.start_.row+=e,this.start_.column+=t,this.end_.row+=e,this.end_.column+=t,this}ConsumeAddress(e){this.entire_row||(e.column<this.start_.column&&(this.start_.column=e.column),e.column>this.end_.column&&(this.end_.column=e.column)),this.entire_column||(e.row<this.start_.row&&(this.start_.row=e.row),e.row>this.end_.row&&(this.end_.row=e.row))}Reshape(e,t){return this.end_.row=this.start_.row+e-1,this.end_.column=this.start_.column+t-1,this}ConsumeArea(e){this.ConsumeAddress(e.start),this.ConsumeAddress(e.end)}Resize(e,t){return this.end_.row=this.start_.row+e-1,this.end_.column=this.start_.column+t-1,this}[Symbol.iterator](){if(this.entire_row||this.entire_column)throw new Error("don\'t iterate infinite area");let e=this.start_.row,t=this.start_.column;return{next:()=>{let r={column:t,row:e,sheet_id:this.start_.sheet_id};return t>this.end_.column?{done:!0,value:void 0}:(++e>this.end_.row&&(e=this.start_.row,t++),{value:r})}}}get spreadsheet_label(){let e;return this.entire_sheet?"":this.entire_column?(e=s.ColumnToLabel(this.start_.column),e+=":"+s.ColumnToLabel(this.end_.column),e):this.entire_row?(e=String(this.start_.row+1),e+=":"+(this.end_.row+1),e):(e=s.CellAddressToLabel(this.start_),this.columns>1||this.rows>1?e+":"+s.CellAddressToLabel(this.end_):e)}toJSON(){return{start:{...this.start_},end:{...this.end_}}}};var Rt=s=>typeof s=="object"&&!!s&&typeof s.value=="number"&&typeof s.unit=="string";var Yr=["undefined","formula","string","number","boolean","object","function","error","complex","array","dimensioned_quantity"];var Aa=Yr.map((s,e)=>({[s]:e})).reduce((s,e)=>({...s,...e}),{});var z=class{static locale="en-us";static decimal_separator=".";static argument_separator=",";static grouping_separator=",";static date_components={short_days:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long_days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],short_months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long_months:["January","February","March","April","May","June","July","August","September","October","November","December"]};static UpdateLocale(e){if(e)this.locale=e;else if(typeof self<"u"){let i=self?.document?.location;if(i&&i.search&&/locale=([^?&]+?)(?:\\?|$|&)/.test(i.search)){let n=i.search.match(/locale=(.*?)(?:\\?|$|&)/);n&&(this.locale=n[1]),console.info("override locale",this.locale)}else typeof navigator<"u"&&(navigator.languages&&navigator.languages[0]?this.locale=navigator.languages[0]:this.locale=navigator.language)}this.locale==="C"&&(console.warn("Locale not set, defaulting to en-us"),this.locale="en-us");let t=new Intl.NumberFormat(this.locale,{minimumFractionDigits:1}).format(3.3).replace(/\\d/g,"");this.decimal_separator=t===","?",":".",this.decimal_separator===","?(this.argument_separator=";",this.grouping_separator=" "):(this.argument_separator=",",this.grouping_separator=",");let r=new Date(2e3,0,2,12,0,0,0);this.UpdateDateComponent(0,0,r),r=new Date(2e3,1,7,12,0,0,0),this.UpdateDateComponent(1,1,r),r=new Date(2e3,2,7,12,0,0,0),this.UpdateDateComponent(2,2,r),r=new Date(2e3,3,5,12,0,0,0),this.UpdateDateComponent(3,3,r),r=new Date(2e3,4,4,12,0,0,0),this.UpdateDateComponent(4,4,r),r=new Date(2e3,5,2,12,0,0,0),this.UpdateDateComponent(5,5,r),r=new Date(2e3,6,1,12,0,0,0),this.UpdateDateComponent(6,6,r),r=new Date(2e3,7,1,12,0,0,0),this.UpdateDateComponent(7,-1,r),r=new Date(2e3,8,1,12,0,0,0),this.UpdateDateComponent(8,-1,r),r=new Date(2e3,9,1,12,0,0,0),this.UpdateDateComponent(9,-1,r),r=new Date(2e3,10,1,12,0,0,0),this.UpdateDateComponent(10,-1,r),r=new Date(2e3,11,1,12,0,0,0),this.UpdateDateComponent(11,-1,r)}static UpdateDateComponent(e,t,r){t>=0&&(this.date_components.short_days[t]=r.toLocaleString(this.locale,{weekday:"short"}),this.date_components.long_days[t]=r.toLocaleString(this.locale,{weekday:"long"})),e>=0&&(this.date_components.short_months[e]=r.toLocaleString(this.locale,{month:"short"}),this.date_components.long_months[e]=r.toLocaleString(this.locale,{month:"long"}))}};z.UpdateLocale();var Ie=class s{constructor(e=0,t=0,r=0,i=0){this.left=e;this.top=t;this.width=r;this.height=i}get right(){return this.left+this.width}get bottom(){return this.top+this.height}static Create(e){return new s(e.left||0,e.top||0,e.width||0,e.height||0)}static IsRectangle(e){return!!e&&typeof e=="object"&&typeof e.left=="number"&&typeof e.top=="number"&&typeof e.width=="number"&&typeof e.height=="number"}Shift(e=0,t=0){return new s(this.left+e,this.top+t,this.width,this.height)}Scale(e=1,t=e){return new s(this.left*e,this.top*t,this.width*e,this.height*t)}Expand(e=0,t=0){return new s(this.left,this.top,this.width+e,this.height+t)}Combine(e){return new s(Math.min(this.left,e.left),Math.min(this.top,e.top),Math.max(this.right,e.right)-Math.min(this.left,e.left),Math.max(this.bottom,e.bottom)-Math.min(this.top,e.top))}Contains(e,t,r=0){return e>=this.left-r&&e<=this.left+this.width+r&&t>=this.top-r&&t<=this.top+this.height+r}ContextFill(e){e.fillRect(this.left,this.top,this.width,this.height)}ContextStroke(e){e.strokeRect(this.left,this.top,this.width,this.height)}Clamp(e,t){return e=Math.min(Math.max(e,this.left),this.right),t=Math.min(Math.max(t,this.top),this.bottom),{x:e,y:t}}ApplyStyle(e){e.style.top=this.top+"px",e.style.left=this.left+"px",e.style.width=this.width+"px",e.style.height=this.height+"px"}toJSON(){return{top:this.top,left:this.left,width:this.width,height:this.height}}};var Ra=JSON.stringify({});var Ms="http://www.w3.org/2000/svg",le=class s{static instances=[];static GetInstance(e){for(let r of this.instances)if(r.doc===e)return r;let t=new s(e);return this.instances.push(t),t}doc;view;get HTMLElement(){return this.view?.HTMLElement}constructor(e){e&&(this.doc=e,this.view=e?.defaultView)}GetSelection(){return this.view?.getSelection()}Div(e,t,r){return this.Create("div",e,t,r)}ClassNames(e,t){e.classList.add(...(Array.isArray(t)?t:[t]).reduce((r,i)=>[...r,...i.split(/\\s+/g)],[]))}SVG(e,t,r){let i=this.doc.createElementNS(Ms,e);return t&&this.ClassNames(i,t),r&&r.appendChild(i),i}Text(e){return this.doc.createTextNode(e)}Fragment(){return this.doc.createDocumentFragment()}Create(e,t,r,i){let n=this.doc.createElement(e);if(t&&this.ClassNames(n,t),i){if(i.attrs)for(let[a,o]of Object.entries(i.attrs))n.setAttribute(a,o);if(i.data)for(let[a,o]of Object.entries(i.data))n.dataset[a]=o;if(i.text&&(n.textContent=i.text),i.html&&(n.innerHTML=i.html),i.events)for(let[a,o]of Object.entries(i.events))n.addEventListener(a,o);if(i.style)for(let[a,o]of Object.entries(i.style))n.style[a]=o}return r&&r.appendChild(n),n}};var Us={"==":6,"!=":6,"<>":6,"=":6,"<":7,">":7,"<=":7,">=":7,"+":9,"-":9,"&":9,"*":10,"/":10,"^":11,":":13};var Sl=[...Object.keys(Us),"@"].sort((s,e)=>e.length-s.length);var Nt=class s{static _instance=new s;constructor(){}static get instance(){return this._instance}HTML(e,t={}){t={br:!0,...t};let r=[];for(let i of e){let n=[];for(let a of i)a.pre&&n.push("<pre>"),a.emphasis&&n.push("<em>"),a.strong&&n.push("<strong>"),a.strike&&n.push("<strike>"),n.push(a.text),a.strike&&n.push("</strike>"),a.strong&&n.push("</strong>"),a.emphasis&&n.push("</em>"),a.pre&&n.push("</pre>");r.push(n.join(""))}return r.join(t.br?`<br/>\n`:`\n`)}Dummy(e=""){return e.split(/\\n/).map(t=>[{text:t}])}Parse(e=""){let t=this.Tokenize(e);for(let r=0;r<t.length;r++){let i=t[r];if(i.type==="delimeter"){let n=t[r-1],a=t[r+1],o=!n||n.type==="whitespace"||n.type==="newline",l=n&&n.type==="text"&&/[^\\w\\d]$/.test(n.text),c=!a||a.type==="whitespace"||a.type==="newline",d=a&&a.type==="text"&&/^[^\\w\\d]/.test(a.text);i.left_flanking=!c&&(!d||o),i.right_flanking=!o&&(!l||c||d)}}return this.ApplyFormatting(t),this.Consolidate(t)}IsWhitespace(e){return e===" "||e===" "}IsNewline(e){return e==="\\r"||e===`\n`}IsDelimeter(e){return e==="*"||e==="_"||e==="~"}Consolidate(e){let t=[],r={},i=[],n={type:"text",text:""};for(let a of e)if(a.type==="newline")n.text.length&&i.push(n),n={...r,text:"",type:"text"},t.push(i),i=[];else switch((!!r.strong!=!!a.strong||!!r.emphasis!=!!a.emphasis||!!r.strike!=!!a.strike)&&(r.strong=!!a.strong,r.emphasis=!!a.emphasis,r.strike=!!a.strike,n.text.length&&i.push(n),n={...r,text:"",type:"text"}),a.type){case"text":case"whitespace":n.text+=a.text;break;case"delimeter":for(let o=0;o<a.length;o++)n.text+=a.char;break}return n.text.length&&i.push(n),i.length&&t.push(i),t}ApplyFormatting(e,t){let r=0,i=e.length;for(r=0;r<i;r++){let n=e[r];if(n.type==="delimeter"){if(t&&n.right_flanking&&t.char===n.char&&n.length>0)return{index:r,token:n};if(n.left_flanking){let a=this.ApplyFormatting(e.slice(r+1),n);if(a.token){let o=Math.min(a.token.length,n.length),l=n.char==="~",c=!l&&!!(o%2),d=!l&&o>=2;for(let h=r+1;h<=r+a.index;h++)e[h].strong=!!e[h].strong||d,e[h].emphasis=!!e[h].emphasis||c,e[h].strike=!!e[h].strike||l;a.token.length-=o,n.length-=o,n.length>0?r--:r+=a.index}}}}return{index:r}}Tokenize(e=""){let t=[],r=e.length,i=0,n=!1,a="";for(i=0;i<r;i++){let o=e[i];if(this.IsWhitespace(o)){a&&t.push({type:"text",text:a});let l=o;for(;;){let c=e[i+1];if(this.IsWhitespace(c))l+=c,i++;else break}t.push({type:"whitespace",text:l}),n=!1,a=""}else if(this.IsNewline(o)){a&&t.push({type:"text",text:a}),t.push({type:"newline",text:o});let l="";for(;;){let c=e[i+1];if(this.IsNewline(c))l+=c,i++;else break}l.length&&t.push({type:"newline",text:l}),n=!1,a=""}else if(n)a+=o,n=!1;else if(this.IsDelimeter(o)){a&&t.push({type:"text",text:a});let l=o;for(;;){let c=e[i+1];if(c===o)l+=c,i++;else break}t.push({type:"delimeter",text:l,char:o,length:l.length}),n=!1,a=""}else o==="\\\\"?n=!0:a+=o}return a&&t.push({type:"text",text:a}),t}};var ke=class{date_format=!1;string_format=!1;fraction_format=!1;twelve_hour=!1;fraction_denominator=0;fraction_integer=!0;fraction_align=0;fraction_denominator_digits=0;integer_min_digits=0;decimal_min_digits=0;decimal_max_digits=0;grouping=!1;has_number_format=!1;prefix=[{text:""}];suffix=[{text:""}];scaling=0;percent=!1;exponential=!1;has_asterisk=!1};var Qr=42,qr=95,lr=63,Mt=48,Kr=46,cr=44,ei=37,dr=34,st=35,ti=59,Ft=92,ri=64,zs=91,Gs=93,ii=69,si=101,$s=72,Vs=104,Os=77,Zs=109,Bs=83,Ws=115,Hs=68,js=100,Ys=89,Js=121,Xs=65,Qs=97;var Pt=class{static date_pattern=!1;static pattern="";static char_index=0;static characters=[];static sections=[];static current_section=new ke;static preserve_formatting_characters=!1;static decimal_mark=Kr;static group_separator=cr;static Parse(e){if(this.pattern=e,this.characters=e.split("").map(t=>t.charCodeAt(0)),this.char_index=0,this.current_section=new ke,this.sections=[this.current_section],this.ParseDatePattern())return this.sections;for(this.char_index=0,this.current_section=new ke,this.sections=[this.current_section];this.char_index<this.characters.length;)this.ConsumeChar();return this.sections}static ConsumeString(){let e="";for(this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),++this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case Ft:this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),this.char_index+1<this.characters.length&&(e+=this.pattern[++this.char_index]);break;case dr:return this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),this.char_index++,e;default:e+=this.pattern[this.char_index];break}throw new Error("unterminated string")}static ConsumeFormatting(){let e="";for(++this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case Ft:throw new Error("invalid escape character in formatting block");case Gs:return this.char_index++,e;default:e+=this.pattern[this.char_index];break}throw new Error("unterminated format")}static ScanFractionFormat(){let e=/^([#?]+ +){0,1}([#?]+)\\/([#?0-9]+)(?:$|[^#?0-9])/,r=this.pattern.substr(this.char_index).match(e);if(!r)return!1;let i=(r[1]||"").length+r[2].length+r[3].length+1;this.current_section.fraction_format=!0,this.current_section.fraction_integer=!!r[1];let n=Number(r[3]);return isNaN(n)||(this.current_section.fraction_denominator=n),this.current_section.decimal_max_digits=this.current_section.fraction_denominator_digits=r[3].length,this.char_index+=i,this.current_section.has_number_format=!0,!0}static ConsumeNumberFormat(){let e=0;for(this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case this.group_separator:{let r=!1;for(let i=this.char_index+1;!r&&i<this.characters.length;i++){let n=this.characters[i];if(n===this.decimal_mark||n===st||n===Mt)r=!0;else if(n!==cr)break}if(r){if(e===1)throw new Error("invalid grouping in decimal part");this.current_section.grouping=!0}else this.current_section.scaling=(this.current_section.scaling||1)*1e3}break;case this.decimal_mark:if(e===1)throw new Error("too many decimal marks");e=1;break;case st:e===1?this.current_section.decimal_max_digits++:this.current_section.integer_min_digits&&this.current_section.integer_min_digits++;break;case Mt:e===1?(this.current_section.decimal_max_digits++,this.current_section.decimal_min_digits=this.current_section.decimal_max_digits):this.current_section.integer_min_digits++;break;default:return}}static AppendCharAsText(e=!0){this.current_section.has_number_format?this.current_section.suffix[this.current_section.suffix.length-1].text+=this.pattern[this.char_index]:this.current_section.prefix[this.current_section.prefix.length-1].text+=this.pattern[this.char_index],e&&this.char_index++}static AppendString(e){this.current_section.has_number_format?this.current_section.suffix[this.current_section.suffix.length-1].text+=e:this.current_section.prefix[this.current_section.prefix.length-1].text+=e}static AppendTextPart(e){this.current_section.has_number_format?(this.current_section.suffix.push(e),this.current_section.suffix.push({text:""})):(this.current_section.prefix.push(e),this.current_section.prefix.push({text:""}))}static ConsumeChar(){let e=this.characters[this.char_index];if(!((e===lr||e===st)&&!this.current_section.has_number_format&&!this.current_section.string_format&&this.ScanFractionFormat()))switch(e){case ti:this.char_index++,this.current_section=new ke,this.sections.length===3&&(this.current_section.string_format=!0),this.sections.push(this.current_section);break;case ri:this.char_index++,this.AppendTextPart({text:"@",flag:5}),this.current_section.string_format=!0;break;case Mt:case st:case Kr:case cr:!this.current_section.has_number_format&&!this.current_section.string_format?(this.ConsumeNumberFormat(),this.current_section.has_number_format=!0):this.AppendCharAsText();break;case zs:this.AppendTextPart({text:this.ConsumeFormatting(),flag:6});break;case dr:this.AppendString(this.ConsumeString());break;case lr:this.preserve_formatting_characters?this.AppendCharAsText():(this.AppendTextPart({text:"0",flag:1}),this.char_index++);break;case qr:if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:1})}break;case Qr:if(this.current_section.has_asterisk)throw new Error("we don\'t support multiple asterisks");if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:2}),this.current_section.has_asterisk=!0}break;case si:case ii:this.current_section.percent||this.current_section.exponential||this.current_section.string_format?this.AppendCharAsText():(this.current_section.exponential=!0,this.char_index++);break;case ei:!this.current_section.exponential&&!this.current_section.string_format&&(this.current_section.percent=!0),this.AppendCharAsText();break;case Ft:if(this.preserve_formatting_characters&&this.AppendCharAsText(!1),++this.char_index>=this.characters.length)throw new Error("invalid escape character at end");this.AppendCharAsText();break;default:this.AppendCharAsText()}}static ParseDatePattern(){for(this.date_pattern=!0;this.date_pattern&&this.char_index<this.pattern.length;)this.DatePatternConsumeChar();if(this.date_pattern){this.date_pattern=!1;for(let e of this.sections)for(let t of e.prefix)t.flag&&t.flag&7&&(this.date_pattern=!0)}return this.date_pattern&&(this.sections[0].date_format=!0,this.sections[0].prefix.forEach((e,t)=>{if(e.flag===3&&(e.text==="mm"||e.text==="m")){if(t)for(let r=t-1;r;r--){let i=this.sections[0].prefix[r];if(i.flag===3){/h/i.test(i.text)&&(e.flag=4,e.text=e.text.toLowerCase());break}}if(t<this.sections[0].prefix.length-1)for(let r=t+1;r<this.sections[0].prefix.length;r++){let i=this.sections[0].prefix[r];if(i.flag===3){/s/i.test(i.text)&&(e.flag=4,e.text=e.text.toLowerCase());break}}}})),this.date_pattern}static ConsumeDatePart(){let e=this.pattern[this.char_index++],t=e.toLowerCase(),r={text:e,flag:3};for(;this.pattern[this.char_index]&&this.pattern[this.char_index].toLowerCase()===t;)r.text+=this.pattern[this.char_index++];if(t==="s"&&this.pattern[this.char_index]===".")for(r.text+=this.pattern[this.char_index++];this.pattern[this.char_index]==="0";)r.text+=this.pattern[this.char_index++];return r}static ConsumeAMPM(){let e=this.pattern.substr(this.char_index,5);if(e==="am/pm"||e==="AM/PM")return this.char_index+=5,this.sections[0].twelve_hour=!0,{text:e,flag:3};if(e=this.pattern.substr(this.char_index,3),e==="a/p"||e==="A/P")return this.char_index+=3,this.sections[0].twelve_hour=!0,{text:e,flag:3}}static DatePatternConsumeChar(){switch(this.characters[this.char_index]){case ti:this.char_index=this.characters.length;break;case Mt:case st:case si:case ii:case ei:case ri:this.date_pattern=!1;break;case $s:case Vs:case Os:case Zs:case Bs:case Ws:case Hs:case js:case Ys:case Js:this.AppendTextPart(this.ConsumeDatePart());break;case Xs:case Qs:{let t=this.ConsumeAMPM();t?this.AppendTextPart(t):this.AppendCharAsText()}break;case dr:this.AppendString(this.ConsumeString());break;case lr:this.preserve_formatting_characters?this.AppendCharAsText():(this.AppendTextPart({text:"0",flag:1}),this.char_index++);break;case qr:if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:1})}break;case Qr:if(this.current_section.has_asterisk)throw new Error("we don\'t support multiple asterisks");if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:2}),this.current_section.has_asterisk=!0}break;case Ft:if(this.preserve_formatting_characters&&this.AppendCharAsText(!1),++this.char_index>=this.characters.length)throw new Error("invalid escape character at end");this.AppendCharAsText();break;default:this.AppendCharAsText()}}};var ni=s=>(s>=60&&s--,new Date(-22090752e5+864e5*s)),oi=(s,e=!0)=>{if(e){let t=new Date(s);s=new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()).getTime()}return s=(s+22090752e5)/864e5,s>=60&&s++,s},Fe=class s{static grouping_regexp=/\\d{1,3}(?=(\\d{3})+(?!\\d))/g;static fraction_limits=[9,99,999,9999];static imaginary_character="\\u{1D456}";static minus_character="-";magic_decimal=!1;transform_value;_pattern="";sections;decimal_zero_regexp=[];cloned=[];get pattern(){return this._pattern}get date_format(){return this.sections[0]&&this.sections[0].date_format}constructor(e){if(this._pattern=e,this.sections=Pt.Parse(e),this.sections.length||(this.sections=[]),this.sections[0]||(this.sections[0]=new ke),this.sections[1]||(this.sections[1]={...this.sections[0]},this.sections[1].prefix=JSON.parse(JSON.stringify(this.sections[1].prefix)),this.sections[1].suffix=JSON.parse(JSON.stringify(this.sections[1].suffix)),this.sections[1].prefix.push({text:"-"}),this.cloned[1]=!0),this.sections[2]||(this.sections[2]={...this.sections[0]},this.cloned[2]=!0),!this.sections[3]){for(let t of this.sections[0].prefix)if(t.flag===5){this.sections[3]={...this.sections[0]},this.sections[3].string_format=!0,this.cloned[3]=!0;break}}this.decimal_zero_regexp=this.sections.map(t=>{if(t.decimal_max_digits>t.decimal_min_digits)return new RegExp(`0{1,${t.decimal_max_digits-t.decimal_min_digits}}(?:$|e)`)})}static FormatPartsAsText(e,t=0){let r=-1,i=e.map((n,a)=>{switch(n.flag){case 2:return r=a,n.text;case 1:return n.text.replace(/./g," ");case 6:return"";default:return n.text}});if(r>=0&&t){let n=i.reduce((o,l,c)=>c===r?o:o+l.length,0),a="";for(let o=0;o<t-n;o++)a+=i[r];i[r]=a}return i.join("")}SetDecimal(e){for(let t of this.sections)t.fraction_format||(t.decimal_min_digits=e,t.decimal_max_digits=e)}IncreaseDecimal(){this.sections.forEach(e=>{e.fraction_format?e.fraction_denominator||(e.fraction_denominator_digits=Math.min(e.fraction_denominator_digits+1,4)):(e.decimal_min_digits++,e.decimal_max_digits=e.decimal_min_digits)})}DecreaseDecimal(){this.sections.forEach(e=>{e.fraction_format?e.fraction_denominator||(e.fraction_denominator_digits=Math.max(e.fraction_denominator_digits-1,1)):(e.decimal_min_digits=Math.max(0,e.decimal_min_digits-1),e.decimal_max_digits=e.decimal_min_digits)})}AddGrouping(){this.sections.forEach(e=>{e.grouping=!0})}RemoveGrouping(){this.sections.forEach(e=>{e.grouping=!1})}ToggleGrouping(){let e=!this.sections[0].grouping;this.sections.forEach(t=>{t.grouping=e})}toString(){return this.sections[0].date_format?this._pattern:this.sections.filter((e,t)=>!this.cloned[t]).map(e=>{let t="",r=0;if(e.fraction_format){e.fraction_integer&&(t+="? ");let i="";for(let n=0;n<e.fraction_denominator_digits;n++)i+="#";t+=i,t+="/",e.fraction_denominator?t+=e.fraction_denominator:t+=i}else if(e.has_number_format){for(r=0;r<e.integer_min_digits;r++)t+="0";if(e.grouping&&(t.length<4&&(t=("####"+t).slice(-4)),t=t.replace(/[\\d#]{1,3}(?=([\\d#]{3})+(?![\\d#]))/g,"$&,")),e.decimal_max_digits||e.decimal_min_digits){for(t+=".",r=0;r<e.decimal_min_digits;r++)t+="0";for(;r<e.decimal_max_digits;r++)t+="#"}if(e.scaling){let i=Math.log10(e.scaling)/3;for(r=0;r<i;r++)t+=","}e.exponential&&(t+="e")}return e.prefix.map(i=>i.flag===1?i.text==="0"?"?":"_"+i.text:i.flag===2?"*"+i.text:i.flag===6?"["+i.text+"]":i.text).join("")+t+e.suffix.map(i=>i.flag===1?i.text==="0"?"?":"_"+i.text:i.flag===2?"*"+i.text:i.text).join("")}).join(";")}FormatDimensionedQuantity(e){if(this.transform_value){let r=this.transform_value(e);if(Rt(r))e=r;else return typeof r=="string"?r:this.FormatParts(r)}let t=this.FormatParts(e.value||0);return e.unit&&t.push({text:" "},{text:e.unit}),t}FormatComplex(e){if(e.imaginary===1/0||e.imaginary===-1/0||e.real===1/0||e.real===-1/0)return[{text:"Infinity"}];let t=[],r=[],i=!1,n=!!e.imaginary;n&&(t=this.FormatParts(e.imaginary),n=t.some(l=>/[1-9]/.test(l.text)),t.length===1&&this.sections[0].integer_min_digits<=1&&t[0].text==="1"?(t[0].text="",i=!0):t.length===1&&this.sections[1].integer_min_digits<=1&&t[0].text==="-1"&&(t[0].text="-",i=!0));let a=!!e.real;a&&(r=this.FormatParts(e.real),a=r.some(l=>/[1-9]/.test(l.text)));let o=[];if(a||!a&&!n){if(o.push(...r),n){o.push({text:e.imaginary<0?` ${s.minus_character} `:" + "});let l=i?[]:this.FormatParts(Math.abs(e.imaginary));o.push(...l,{text:s.imaginary_character})}}else n&&o.push(...t,{text:s.imaginary_character});return o}FormatParts(e){if(typeof e!="number"&&!this.sections[3])return[{text:(e??"").toString()}];let{parts:t,section:r}=this.BaseFormat(e),i=[];if(r.date_format||r.string_format)for(let n of t)typeof n=="string"?i.push({text:n}):i.push(n);else this.magic_decimal&&t[1]===""&&t.splice(1,1),i=[...r.prefix.map(n=>({...n})),{text:r.has_number_format?t.join(z.decimal_separator):""},...r.suffix.map(n=>({...n}))];for(let n=1;n<i.length;n++)i[n].flag===i[n-1].flag&&(i[n].text=i[n-1].text+i[n].text,i[n-1].text="");return i.filter(n=>n.text)}Format(e,t=0){return s.FormatPartsAsText(this.FormatParts(e),t)}ZeroPad(e,t){for(;e.length<t;)e="0"+e;return e}DateFormat(e){let t=ni(e),r=this.sections[0],i=t.getUTCHours();return r.twelve_hour&&(i>12&&(i-=12),i===0&&(i=12)),{parts:r.prefix.map(a=>{if(a.flag===4)return a.text==="mm"?{text:this.ZeroPad(t.getUTCMinutes().toString(),2)}:{text:this.ZeroPad(t.getUTCMinutes().toString(),1)};if(a.flag===3){switch(a.text.toLowerCase()){case"am/pm":case"a/p":{let l=a.text.split("/");return{text:t.getUTCHours()>12?l[1]:l[0]}}case"mmmmm":return{text:z.date_components.long_months[t.getUTCMonth()][0]};case"mmmm":return a.text==="MMMM"?{text:z.date_components.long_months[t.getUTCMonth()].toUpperCase()}:{text:z.date_components.long_months[t.getUTCMonth()]};case"mmm":return a.text==="MMM"?{text:z.date_components.short_months[t.getUTCMonth()].toUpperCase()}:{text:z.date_components.short_months[t.getUTCMonth()]};case"mm":return{text:this.ZeroPad((t.getUTCMonth()+1).toString(),2)};case"m":return{text:this.ZeroPad((t.getUTCMonth()+1).toString(),1)};case"ddddd":case"dddd":return a.text==="DDDDD"||a.text==="DDDD"?{text:z.date_components.long_days[t.getUTCDay()].toUpperCase()}:{text:z.date_components.long_days[t.getUTCDay()]};case"ddd":return a.text==="DDD"?{text:z.date_components.short_days[t.getUTCDay()].toUpperCase()}:{text:z.date_components.short_days[t.getUTCDay()]};case"dd":return{text:this.ZeroPad(t.getUTCDate().toString(),2)};case"d":return{text:this.ZeroPad(t.getUTCDate().toString(),1)};case"yyyy":case"yyy":return{text:t.getUTCFullYear().toString()};case"yy":case"y":return{text:this.ZeroPad((t.getUTCFullYear()%100).toString(),2)};case"hh":return{text:this.ZeroPad(i.toString(),2)};case"h":return{text:this.ZeroPad(i.toString(),1)};case"ss":return{text:this.ZeroPad(t.getUTCSeconds().toString(),2)};case"s":return{text:this.ZeroPad(t.getUTCSeconds().toString(),1)}}let o=a.text.match(/^(s+)\\.(0+)$/);if(o)return{text:this.ZeroPad(t.getUTCSeconds().toString(),o[1].length)+z.decimal_separator+(t.getUTCMilliseconds()/1e3).toFixed(o[2].length).substr(2)}}return{...a}}),section:r}}StringFormat(e,t){let r=[];for(let i of t.prefix)i.flag===5?r.push({text:e}):r.push({...i});return{parts:r,section:t}}Round2(e,t){let r=Math.pow(10,t);return Math.round(r*e)/r}FormatFraction(e,t){t.percent&&(e*=100);let r={denominator:1,numerator:Math.round(e),error:Math.abs(Math.round(e)-e)};if(t.fraction_denominator)r.denominator=t.fraction_denominator,r.numerator=Math.round(e*r.denominator);else if(r.error){let n=s.fraction_limits[t.fraction_denominator_digits-1]||s.fraction_limits[0];for(let a=2;a<=n;a++){let o=Math.round(e*a),l=Math.abs(o/a-e);if(l<r.error&&(r={numerator:o,denominator:a,error:l},!l))break}}let i=[];if(t.fraction_integer){let n=Math.floor(r.numerator/r.denominator);r.numerator%=r.denominator,(n||!r.numerator)&&(i.push(n.toString()),r.numerator&&i.push(" "))}else r.numerator||i.push("0");return r.numerator&&(i.push(r.numerator.toString()),i.push("/"),i.push(r.denominator.toString())),i.join("")}BaseFormat(e){if(this.sections[0].date_format)return this.DateFormat(Number(e));if(typeof e!="number")return this.StringFormat((e??"").toString(),this.sections[3]);let t=this.sections[0],r=this.decimal_zero_regexp[0];e<0&&(t=this.sections[1]);let i=t.percent?t.decimal_max_digits+2:t.decimal_max_digits,n=Math.pow(10,-i)/2,a=Math.abs(e);if(a<n&&(t=this.sections[2],r=this.decimal_zero_regexp[2]),t.scaling&&(a/=t.scaling,a<n&&(t=this.sections[2],r=this.decimal_zero_regexp[2])),t.string_format)return this.StringFormat(e.toString(),t);let o="";if(t.fraction_format)return{parts:[this.FormatFraction(a,t)],section:t};t.exponential?o=a.toExponential(t.decimal_max_digits):(t.percent&&(a*=100),o=this.Round2(a,t.decimal_max_digits).toFixed(t.decimal_max_digits)),r&&(o=o.replace(r,""));let l=o.split(".");for(;l[0].length<t.integer_min_digits;)l[0]=("0000000000000000"+l[0]).slice(-t.integer_min_digits);return t.integer_min_digits===0&&l[0]==="0"&&(l[0]=""),t.grouping&&(l[0]=l[0].replace(s.grouping_regexp,"$&"+z.grouping_separator)),{parts:l,section:t}}};var je=class{static cache={};static complex_general;static symbolc_name_map={};static base_formats={Accounting:"_(#,##0.00_);(#,##0.00);-???",Number:"0.00",Integer:"0",Percent:"0.00%",General:"0.######",Fraction:"# ?/?",Dollar:"$* _(#,##0.00_);$* (#,##0.00);$* -???",Exponential:"0.000e","Short Date":"mm/dd/yy","Long Date":"dddd, mmm d yyyy",Timestamp:"mm-dd-yy hh:mm:ss"};static aliases={Scientific:"Exponential",Percentage:"Percent",Currency:"Dollar"};static Get(e,t=!1){if(t&&e==="General")return this.complex_general;let r=this.symbolc_name_map[e.toLowerCase()],i=this.cache[r||e];return i||(i=new Fe(e),this.cache[e]=i),i}static Equals(e,t){if(e===t)return!0;let r=this.Get(e),i=this.Get(t);return r.pattern===i.pattern}static Translate(e){let t=this.symbolc_name_map[e.toLowerCase()];return t?this.cache[t].toString():e}static SymbolicName(e){for(let t of Object.keys(this.base_formats))if(e===this.base_formats[t])return t;return null}static InitCache(){for(let e of Object.keys(this.base_formats))this.cache[e]=new Fe(this.base_formats[e]),this.symbolc_name_map[e.toLowerCase()]=e;this.cache.General.magic_decimal=!0,this.complex_general=new Fe("0.###"),this.complex_general.magic_decimal=!0;for(let e of Object.keys(this.aliases))this.cache[e]=this.cache[this.aliases[e]],this.symbolc_name_map[e.toLowerCase()]=e}};je.InitCache();var ai=new Date().getUTCFullYear(),hr=class{compare_day;compare_month;TestDate(e){let t=Date.parse(e);if(isNaN(t))return!1;let r=new Date(t),n=e.replace(/[\\d\\-\\\\/,.\\s]+/g," ").toLocaleLowerCase().split(/\\s+/).map(l=>l.trim()).filter(l=>!!l);if(!n.length)return t;if(!this.compare_month){this.compare_month={};for(let l=0;l<12;l++)this.compare_month[z.date_components.long_months[l].toLocaleLowerCase().replace(/\\./,"")]=l,this.compare_month[z.date_components.short_months[l].toLocaleLowerCase().replace(/\\./,"")]=l}if(!this.compare_day){this.compare_day={};for(let l=0;l<7;l++)this.compare_day[z.date_components.long_days[l].toLocaleLowerCase().replace(/\\./,"")]=l,this.compare_day[z.date_components.short_days[l].toLocaleLowerCase().replace(/\\./,"")]=l}let a=!1,o=!1;for(let l of n){let c=!1;for(let[d,h]of Object.entries(this.compare_month))if(l===d){if(a||r.getUTCMonth()!==h)return!1;c=!0,a=!0}if(!c){for(let[d,h]of Object.entries(this.compare_day))if(l===d){if(o||r.getUTCDay()!==h)return!1;c=!0,o=!0}}if(!c)return!1}return o&&!a?!1:t}TryParse(e=""){let t={};if(e[0]==="\'")return{value:e,type:2};if(e==="")return{value:e,type:2};if(e==="NaN")return{value:NaN,type:3,hints:{Nan:!0}};let r=e.trim(),i=r.match(/^[$](.*?)$/);i&&(r=i[1],t.Currency=!0);let n=r.match(/^\\((.*?)\\)$/);n&&(r=n[1],t.Parens=!0);let a=r.match(/^(.*?)%\\s*$/);a&&(r=a[1],t.Percent=!0),z.decimal_separator==="."?/,/.test(r)&&(r=r.replace(/,/g,""),t.Grouping=!0):(r=r.replace(/(\\d)\\s+/g,"$1"),r=r.replace(/\\./g,""),r=r.replace(/,/,"."));let o=Number(r);if(o===null||isNaN(o)){let l=e.toLowerCase();if(l==="false")return{value:!1,type:4};if(l==="true")return{value:!0,type:4};let c=this.TestDate(e);if(c!==!1&&!isNaN(c)){let d=new Date(c),h=d.getUTCFullYear();if(h>=ai-200&&h<=ai+200)return t={Date:!0},(d.getHours()||d.getMinutes()||d.getSeconds())&&(t.Time=!0),{value:oi(c,!0),type:3,hints:t}}return{value:e,type:2}}if(n&&(o=-o),a){let l=o<0?-1:1,c=(l*o).toString().split(".");c[0]=("00"+c[0]).replace(/(\\d\\d)$/,".$1"),o=Number(c.join(""))*l}return/e/.test(e)&&(t.Exponential=!0),{value:o,type:3,hints:t}}},ur=new hr;var ot=class s extends Ve{constructor(t,r,i){super();this.model=t;this.view=r;this.autocomplete=i;this.parser=t.parser}static FormulaChars=("$^&*(-+={[<>/~%@"+z.argument_separator).split("");active_cell;autocomplete_matcher;container_node;active_editor;nodes=[];target_address;assume_formula=!1;text_formula=!1;get selecting(){if(this.assume_formula)return!0;if(!this.text_formula)return!1;if(this.active_editor&&this.active_editor.node===this.active_editor.node.ownerDocument.activeElement){let t=this.active_editor.node.ownerDocument.defaultView,r=t.getSelection();if(r?.rangeCount){let a=r?.getRangeAt(0);if((a?.endContainer instanceof t.HTMLElement?a.endContainer:a.endContainer?.parentElement)?.dataset.reference!==void 0)return!0;if(a?.startContainer instanceof t.Text){let l=(a.startContainer.textContent?.substring(0,a.startOffset)||"").trim();if(l.length&&s.FormulaChars.includes(l[l.length-1]))return!0}else console.info("mark 21",a)}let n=this.SubstringToCaret2(this.active_editor.node)[1].trim();if(n.length){let a=n[n.length-1];return s.FormulaChars.includes(a)}}return!1}composite_dependencies=[];get dependencies(){return this.composite_dependencies}parser;FocusEditor(){this.active_editor&&this.active_editor.node.focus()}RegisterListener(t,r,i){t.node.addEventListener(r,i),t.listeners||(t.listeners=new Map),t.listeners.set(r,i)}SelectAll(t){let i=t.ownerDocument.defaultView.getSelection(),n=t.ownerDocument.createRange();n.selectNode(t),i?.removeAllRanges(),i?.addRange(n)}SetCaret(t,r){let i=t.node.ownerDocument,n=i?.defaultView,a=n.getSelection(),o=i?.createRange(),l=d=>{let h=d;for(;h&&!(h instanceof n.Text)&&h.firstChild;)h=h.firstChild;return h},c=l(t.node);if(r){let d=l(r.node);a&&o&&(o.setStart(c,t.offset),o.setEnd(d,r.offset),a.removeAllRanges(),a.addRange(o))}else a&&o&&(o.setStart(c,t.offset),o.setEnd(c,t.offset),o.collapse(!0),a.removeAllRanges(),a.addRange(o))}InsertReference(t){if(!this.active_editor)return;let r=this.active_editor.node.ownerDocument.defaultView,i=r.getSelection();if(!i)throw new Error("error getting selection");if(i.rangeCount===0)return"";let n=i.getRangeAt(0),a=this.active_editor.node.textContent||"";if(n.startContainer instanceof r.Text)if(!n.collapsed&&n.startOffset<n.endOffset){let o=this.SubstringToCaret2(this.active_editor.node);this.active_editor.node.textContent=o[0]+t+a.substring(o[1].length),this.SetCaret({node:this.active_editor.node,offset:o[0].length},{node:this.active_editor.node,offset:o[0].length+t.length})}else{let o=n.startContainer.parentElement;if(o instanceof r.HTMLElement&&o.dataset.reference)o.textContent=t,this.SetCaret({node:o,offset:t.length});else{let l=this.SubstringToCaret2(this.active_editor.node)[1],c="",d=l.trim();if(d.length){let h=d[d.length-1];s.FormulaChars.includes(h)||(l.length===d.length?c=" +":c="+")}this.active_editor.node.textContent=l+c+t+a.substring(l.length),this.SetCaret({node:this.active_editor.node,offset:l.length+t.length+c.length})}}else n.startContainer instanceof r.HTMLElement?(n.startContainer.textContent=t,this.SetCaret({node:n.startContainer,offset:t.length})):console.warn("unexpected range start container",n.startContainer);this.UpdateText(this.active_editor),this.UpdateColors(),this.active_editor.node.dispatchEvent(new Event("input",{bubbles:!0,cancelable:!0}))}UpdateColors(t=!1,r=!1){let i=new Map,n=new Map;for(let o of this.nodes)for(let l of o.references||[]){let c=this.model.AddressToLabel(l);i.has(c)||(i.set(c,l),n.set(c,n.size))}for(let o of this.nodes){for(let l of Array.from(o.node.childNodes)){let c=l.ownerDocument?.defaultView;if(c&&l instanceof c.HTMLElement&&l.dataset.reference){let d=n.get(l.dataset.reference);l.dataset.highlightIndex=typeof d=="number"?(d%5+1).toString():"?"}}o.check=o.node.innerHTML.length}let a=Array.from(i.values());!t&&JSON.stringify(this.composite_dependencies)===JSON.stringify(a)||(this.composite_dependencies=a,r||this.Publish({type:"update",dependencies:this.composite_dependencies}))}UpdateDependencies(t,r){let i=[];for(let l of r.full_reference_list||[])switch(l.type){case"address":case"range":{let c=l.type==="range"?l.start:l;c.sheet_id||(c.sheet?c.sheet_id=this.model.sheets.Find(c.sheet)?.id||0:c.sheet_id=this.view.active_sheet.id),i.push(l);break}case"structured-reference":if(this.target_address){let c=this.model.ResolveStructuredReference(l,this.target_address);c&&i.push(c)}else console.info("target address not set");break;case"identifier":{let c=this.model.GetName(l.name,this.view.active_sheet.id);c?.type==="range"&&(c.area.count===1?i.push({type:"address",...c.area.start,label:l.name,position:l.position,id:l.id}):i.push({type:"range",start:{type:"address",position:l.position,id:l.id,label:l.name,...c.area.start},end:{type:"address",position:l.position,label:l.name,id:l.id,...c.area.end},label:l.name,position:l.position,id:l.id}));break}}i.sort((l,c)=>l.position-c.position);let n=[],a=new Set,o=new Map;for(let l of i){let c=this.model.AddressToLabel(l),d=Oe(l)?new ee(l):new ee(l.start,l.end);a.has(c)||(n.push(d),a.add(c)),o.set(l.label,c)}return this.UpdateReferences(t,n),o}UpdateReferences(t,r=[]){t.node.dataset.references=JSON.stringify(r.map(i=>this.model.AddressToLabel(i))),t.references=r}UpdateText(t,r={}){let i=t.node,n=i.textContent||"",a=le.GetInstance(i.ownerDocument);if(this.text_formula=n[0]==="=",this.active_editor&&!this.assume_formula&&(this.active_editor.node.spellcheck=!this.text_formula,!this.text_formula)||n===t.formatted_text)return;let[o,l]=this.SubstringToCaret2(i),c=o.length,d=l.length;if(c===0&&d===0&&(d=n.length),!n)this.UpdateReferences(t);else{let f=this.parser.Parse(n);if(f.expression){let u=this.UpdateDependencies(t,f),p=n[0]==="="?1:0,g=0,v,w,b=0,m,S=a.Fragment(),N=(L,D="text",M="",V=!1)=>{let $=a.Text(L);if((V||(c>b||c===0&&b===0)&&c<=b+L.length)&&(v={offset:c-b,node:$}),d>b&&d<=b+L.length&&(w={offset:d-b,node:$}),D!=="text"){let G=a.Create("span",D);M&&(G.dataset.reference=M),G.appendChild($),S.appendChild(G)}else S.appendChild($);m=$,b+=L.length};this.parser.Walk(f.expression,L=>{if(L.type==="missing"||L.type==="group"||L.type==="dimensioned")return!0;let D=L.position+p,M=n.substring(g,D),V="",$=L.type,G="";switch(L.type){case"identifier":V=n.substring(D,D+L.name.length),G=u.get(L.name)||"";break;case"call":V=n.substring(D,D+L.name.length);break;case"literal":if(typeof L.value=="string")V=n.substring(D,D+L.value.length+2),$="string";else return!1;break;case"address":case"range":case"structured-reference":G=u.get(L.label)||"???",V=r.rewrite_addresses?L.label:n.substring(D,D+L.label.length);break;default:return!0}return N(M),N(V,$,G),g=D+V.length,L.type!=="range"}),g<n.length&&N(n.substring(g)),v||(m?v={node:m,offset:(m.data||"").length}:N("",void 0,"",!0)),i.textContent="",i.appendChild(S),v&&!r.format_only&&i===this.active_editor?.node&&this.SetCaret(v,w)}}t.formatted_text=n;let h=this.autocomplete_matcher;h&&Promise.resolve().then(()=>{let f=h.Exec({text:n,cursor:l.length});this.selecting&&f.completions?.length&&(f.completions=void 0);let u=this.NodeAtIndex(f.completions?.length?f.position||0:f.function_position||0);this.Autocomplete(f,u)})}NodeAtIndex(t){let r=this.active_editor?.node.childNodes||[];for(let i=0;i<r.length;i++){let n=r[i].textContent?.length||0;if(n>t)return r[i];t-=n}}AcceptAutocomplete(t){if(!this.active_editor)return;let r;if(t.data&&t.data.completions){for(let d of t.data.completions)if(d.name.toLowerCase()===t.value?.toLowerCase()){r=d.type;break}}let i=t.data?.position||0,n=i+(t.data?.token?.length||0),a=r==="token"?t.value:t.value+"(",o=this.active_editor.node.textContent||"",l=o.substring(0,i)+a,c=l.length;l+=o.substring(n),this.active_editor.node.textContent=l,this.SetCaret({node:this.active_editor.node,offset:c}),this.autocomplete?.Hide(),this.UpdateText(this.active_editor),this.UpdateColors()}Autocomplete(t,r){if(!this.container_node||!this.autocomplete)return;let i;r?.nodeType===Node.ELEMENT_NODE?i=r.getBoundingClientRect():i=this.container_node.getBoundingClientRect();let n=new Ie(Math.round(i.left),Math.round(i.top),i.width,i.height);this.autocomplete.Show(this.AcceptAutocomplete.bind(this),t,n)}SubstringToCaret2(t,r=!1){let i=["",""];if(!r&&t!==t.ownerDocument.activeElement||t!==this.active_editor?.node)return i;let a=t.ownerDocument.defaultView,o=[!1,!1],l=(d,h)=>{if(d===h.startContainer&&d===h.endContainer&&!(d instanceof a.Text)){o[0]=o[1]=!0,i[0]+=d.textContent,i[1]+=d.textContent;return}if(d===h.startContainer&&(i[0]+=(d.textContent||"").substring(0,h.startOffset),o[0]=!0),d===h.endContainer&&(i[1]+=(d.textContent||"").substring(0,h.endOffset),o[1]=!0),!(o[0]&&o[1])){if(d instanceof a.Text){let f=d.textContent||"";o[0]||(i[0]+=f),o[1]||(i[1]+=f)}else if(d.hasChildNodes()){for(let f of Array.from(d.childNodes))if(l(f,h),o[0]&&o[1])return}}},c=a.getSelection();if(c?.rangeCount??!1){let d=c?.getRangeAt(0);d&&l(t,d)}return i}};var Ks=typeof navigator>"u"?"":navigator.appVersion,xe=typeof navigator>"u"?"":navigator.userAgent,fr=class{is_edge=/Edge/.test(Ks);is_ipad=/iPad|iPhone/.test(xe);is_iphone=/iPhone/.test(xe);is_android=/android|samsung/i.test(xe);is_mobile=this.is_ipad||this.is_android;is_firefox=/firefox/i.test(xe);is_safari=/safari/i.test(xe)&&!/edg/i.test(xe);is_mac=/macintosh/i.test(xe);is_chrome=/Chrome/i.test(xe);is_windows=/win64|win32|windows\\s+nt/i.test(xe);is_modern=!this.is_edge&&!(this.is_firefox&&this.is_android)&&/webkit|firefox/i.test(xe)},en={is_edge:!1,is_ipad:!1,is_iphone:!1,is_android:!1,is_firefox:!1,is_safari:!1,is_mac:!1,is_chrome:!1,is_windows:!1,is_modern:!0,is_mobile:!1},it=typeof navigator>"u"?en:new fr;var fi=":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD",cn=fi+"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040",dn="["+fi+"]["+cn+"]*",hn=new RegExp("^"+dn+"$");function Dt(s,e){let t=[],r=e.exec(s);for(;r;){let i=[];i.startIndex=e.lastIndex-r[0].length;let n=r.length;for(let a=0;a<n;a++)i.push(r[a]);t.push(i),r=e.exec(s)}return t}var at=function(s){let e=hn.exec(s);return!(e===null||typeof e>"u")};function pi(s){return typeof s<"u"}var un={allowBooleanAttributes:!1,unpairedTags:[]};function yi(s,e){e=Object.assign({},un,e);let t=[],r=!1,i=!1;s[0]==="\\uFEFF"&&(s=s.substr(1));for(let n=0;n<s.length;n++)if(s[n]==="<"&&s[n+1]==="?"){if(n+=2,n=_i(s,n),n.err)return n}else if(s[n]==="<"){let a=n;if(n++,s[n]==="!"){n=bi(s,n);continue}else{let o=!1;s[n]==="/"&&(o=!0,n++);let l="";for(;n<s.length&&s[n]!==">"&&s[n]!==" "&&s[n]!==" "&&s[n]!==`\n`&&s[n]!=="\\r";n++)l+=s[n];if(l=l.trim(),l[l.length-1]==="/"&&(l=l.substring(0,l.length-1),n--),!wn(l)){let h;return l.trim().length===0?h="Invalid space after \'<\'.":h="Tag \'"+l+"\' is an invalid name.",X("InvalidTag",h,se(s,n))}let c=mn(s,n);if(c===!1)return X("InvalidAttr","Attributes for \'"+l+"\' have open quote.",se(s,n));let d=c.value;if(n=c.index,d[d.length-1]==="/"){let h=n-d.length;d=d.substring(0,d.length-1);let f=gi(d,e);if(f===!0)r=!0;else return X(f.err.code,f.err.msg,se(s,h+f.err.line))}else if(o)if(c.tagClosed){if(d.trim().length>0)return X("InvalidTag","Closing tag \'"+l+"\' can\'t have attributes or invalid starting.",se(s,a));if(t.length===0)return X("InvalidTag","Closing tag \'"+l+"\' has not been opened.",se(s,a));{let h=t.pop();if(l!==h.tagName){let f=se(s,h.tagStartPos);return X("InvalidTag","Expected closing tag \'"+h.tagName+"\' (opened in line "+f.line+", col "+f.col+") instead of closing tag \'"+l+"\'.",se(s,a))}t.length==0&&(i=!0)}}else return X("InvalidTag","Closing tag \'"+l+"\' doesn\'t have proper closing.",se(s,n));else{let h=gi(d,e);if(h!==!0)return X(h.err.code,h.err.msg,se(s,n-d.length+h.err.line));if(i===!0)return X("InvalidXml","Multiple possible root nodes found.",se(s,n));e.unpairedTags.indexOf(l)!==-1||t.push({tagName:l,tagStartPos:a}),r=!0}for(n++;n<s.length;n++)if(s[n]==="<")if(s[n+1]==="!"){n++,n=bi(s,n);continue}else if(s[n+1]==="?"){if(n=_i(s,++n),n.err)return n}else break;else if(s[n]==="&"){let h=gn(s,n);if(h==-1)return X("InvalidChar","char \'&\' is not expected.",se(s,n));n=h}else if(i===!0&&!mi(s[n]))return X("InvalidXml","Extra text at the end",se(s,n));s[n]==="<"&&n--}}else{if(mi(s[n]))continue;return X("InvalidChar","char \'"+s[n]+"\' is not expected.",se(s,n))}if(r){if(t.length==1)return X("InvalidTag","Unclosed tag \'"+t[0].tagName+"\'.",se(s,t[0].tagStartPos));if(t.length>0)return X("InvalidXml","Invalid \'"+JSON.stringify(t.map(n=>n.tagName),null,4).replace(/\\r?\\n/g,"")+"\' found.",{line:1,col:1})}else return X("InvalidXml","Start tag expected.",1);return!0}function mi(s){return s===" "||s===" "||s===`\n`||s==="\\r"}function _i(s,e){let t=e;for(;e<s.length;e++)if(s[e]=="?"||s[e]==" "){let r=s.substr(t,e-t);if(e>5&&r==="xml")return X("InvalidXml","XML declaration allowed only at the start of the document.",se(s,e));if(s[e]=="?"&&s[e+1]==">"){e++;break}else continue}return e}function bi(s,e){if(s.length>e+5&&s[e+1]==="-"&&s[e+2]==="-"){for(e+=3;e<s.length;e++)if(s[e]==="-"&&s[e+1]==="-"&&s[e+2]===">"){e+=2;break}}else if(s.length>e+8&&s[e+1]==="D"&&s[e+2]==="O"&&s[e+3]==="C"&&s[e+4]==="T"&&s[e+5]==="Y"&&s[e+6]==="P"&&s[e+7]==="E"){let t=1;for(e+=8;e<s.length;e++)if(s[e]==="<")t++;else if(s[e]===">"&&(t--,t===0))break}else if(s.length>e+9&&s[e+1]==="["&&s[e+2]==="C"&&s[e+3]==="D"&&s[e+4]==="A"&&s[e+5]==="T"&&s[e+6]==="A"&&s[e+7]==="["){for(e+=8;e<s.length;e++)if(s[e]==="]"&&s[e+1]==="]"&&s[e+2]===">"){e+=2;break}}return e}var fn=\'"\',pn="\'";function mn(s,e){let t="",r="",i=!1;for(;e<s.length;e++){if(s[e]===fn||s[e]===pn)r===""?r=s[e]:r!==s[e]||(r="");else if(s[e]===">"&&r===""){i=!0;break}t+=s[e]}return r!==""?!1:{value:t,index:e,tagClosed:i}}var _n=new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\'"])(([\\\\s\\\\S])*?)\\\\5)?`,"g");function gi(s,e){let t=Dt(s,_n),r={};for(let i=0;i<t.length;i++){if(t[i][1].length===0)return X("InvalidAttr","Attribute \'"+t[i][2]+"\' has no space in starting.",lt(t[i]));if(t[i][3]!==void 0&&t[i][4]===void 0)return X("InvalidAttr","Attribute \'"+t[i][2]+"\' is without value.",lt(t[i]));if(t[i][3]===void 0&&!e.allowBooleanAttributes)return X("InvalidAttr","boolean attribute \'"+t[i][2]+"\' is not allowed.",lt(t[i]));let n=t[i][2];if(!yn(n))return X("InvalidAttr","Attribute \'"+n+"\' is an invalid name.",lt(t[i]));if(!r.hasOwnProperty(n))r[n]=1;else return X("InvalidAttr","Attribute \'"+n+"\' is repeated.",lt(t[i]))}return!0}function bn(s,e){let t=/\\d/;for(s[e]==="x"&&(e++,t=/[\\da-fA-F]/);e<s.length;e++){if(s[e]===";")return e;if(!s[e].match(t))break}return-1}function gn(s,e){if(e++,s[e]===";")return-1;if(s[e]==="#")return e++,bn(s,e);let t=0;for(;e<s.length;e++,t++)if(!(s[e].match(/\\w/)&&t<20)){if(s[e]===";")break;return-1}return e}function X(s,e,t){return{err:{code:s,msg:e,line:t.line||t,col:t.col}}}function yn(s){return at(s)}function wn(s){return at(s)}function se(s,e){let t=s.substring(0,e).split(/\\r?\\n/);return{line:t.length,col:t[t.length-1].length+1}}function lt(s){return s.startIndex+s[1].length}var xn={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(s,e){return e},attributeValueProcessor:function(s,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(s,e,t){return s},captureMetaData:!1},wi=function(s){return Object.assign({},xn,s)};var Lt;typeof Symbol!="function"?Lt="@@xmlMetadata":Lt=Symbol("XML Node Metadata");var ce=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,t){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e,t){e.tagname==="__proto__"&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child}),t!==void 0&&(this.child[this.child.length-1][Lt]={startIndex:t})}static getMetaDataSymbol(){return Lt}};function pr(s,e){let t={};if(s[e+3]==="O"&&s[e+4]==="C"&&s[e+5]==="T"&&s[e+6]==="Y"&&s[e+7]==="P"&&s[e+8]==="E"){e=e+9;let r=1,i=!1,n=!1,a="";for(;e<s.length;e++)if(s[e]==="<"&&!n){if(i&&Ze(s,"!ENTITY",e)){e+=7;let o,l;[o,l,e]=vn(s,e+1),l.indexOf("&")===-1&&(t[o]={regx:RegExp(`&${o};`,"g"),val:l})}else if(i&&Ze(s,"!ELEMENT",e)){e+=8;let{index:o}=Sn(s,e+1);e=o}else if(i&&Ze(s,"!ATTLIST",e))e+=8;else if(i&&Ze(s,"!NOTATION",e)){e+=9;let{index:o}=Cn(s,e+1);e=o}else if(Ze(s,"!--",e))n=!0;else throw new Error("Invalid DOCTYPE");r++,a=""}else if(s[e]===">"){if(n?s[e-1]==="-"&&s[e-2]==="-"&&(n=!1,r--):r--,r===0)break}else s[e]==="["?i=!0:a+=s[e];if(r!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:t,i:e}}var Pe=(s,e)=>{for(;e<s.length&&/\\s/.test(s[e]);)e++;return e};function vn(s,e){e=Pe(s,e);let t="";for(;e<s.length&&!/\\s/.test(s[e])&&s[e]!==\'"\'&&s[e]!=="\'";)t+=s[e],e++;if(mr(t),e=Pe(s,e),s.substring(e,e+6).toUpperCase()==="SYSTEM")throw new Error("External entities are not supported");if(s[e]==="%")throw new Error("Parameter entities are not supported");let r="";return[e,r]=Ut(s,e,"entity"),e--,[t,r,e]}function Cn(s,e){e=Pe(s,e);let t="";for(;e<s.length&&!/\\s/.test(s[e]);)t+=s[e],e++;mr(t),e=Pe(s,e);let r=s.substring(e,e+6).toUpperCase();if(r!=="SYSTEM"&&r!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${r}"`);e+=r.length,e=Pe(s,e);let i=null,n=null;if(r==="PUBLIC")[e,i]=Ut(s,e,"publicIdentifier"),e=Pe(s,e),(s[e]===\'"\'||s[e]==="\'")&&([e,n]=Ut(s,e,"systemIdentifier"));else if(r==="SYSTEM"&&([e,n]=Ut(s,e,"systemIdentifier"),!n))throw new Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:t,publicIdentifier:i,systemIdentifier:n,index:--e}}function Ut(s,e,t){let r="",i=s[e];if(i!==\'"\'&&i!=="\'")throw new Error(`Expected quoted string, found "${i}"`);for(e++;e<s.length&&s[e]!==i;)r+=s[e],e++;if(s[e]!==i)throw new Error(`Unterminated ${t} value`);return e++,[e,r]}function Sn(s,e){e=Pe(s,e);let t="";for(;e<s.length&&!/\\s/.test(s[e]);)t+=s[e],e++;if(!mr(t))throw new Error(`Invalid element name: "${t}"`);e=Pe(s,e);let r="";if(s[e]==="E"&&Ze(s,"MPTY",e))e+=4;else if(s[e]==="A"&&Ze(s,"NY",e))e+=2;else if(s[e]==="("){for(e++;e<s.length&&s[e]!==")";)r+=s[e],e++;if(s[e]!==")")throw new Error("Unterminated content model")}else throw new Error(`Invalid Element Expression, found "${s[e]}"`);return{elementName:t,contentModel:r.trim(),index:e}}function Ze(s,e,t){for(let r=0;r<e.length;r++)if(e[r]!==s[t+r+1])return!1;return!0}function mr(s){if(at(s))return s;throw new Error(`Invalid entity name ${s}`)}var An=/^[-+]?0x[a-fA-F0-9]+$/,Tn=/^([\\-\\+])?(0*)([0-9]*(\\.[0-9]*)?)$/,In={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function _r(s,e={}){if(e=Object.assign({},In,e),!s||typeof s!="string")return s;let t=s.trim();if(e.skipLike!==void 0&&e.skipLike.test(t))return s;if(s==="0")return 0;if(e.hex&&An.test(t))return Nn(t,16);if(t.search(/.+[eE].+/)!==-1)return Rn(s,t,e);{let r=Tn.exec(t);if(r){let i=r[1]||"",n=r[2],a=En(r[3]),o=i?s[n.length+1]===".":s[n.length]===".";if(!e.leadingZeros&&(n.length>1||n.length===1&&!o))return s;{let l=Number(t),c=String(l);if(l===0)return l;if(c.search(/[eE]/)!==-1)return e.eNotation?l:s;if(t.indexOf(".")!==-1)return c==="0"||c===a||c===`${i}${a}`?l:s;let d=n?a:t;return n?d===c||i+d===c?l:s:d===c||d===i+c?l:s}}else return s}}var kn=/^([-+])?(0*)(\\d*(\\.\\d*)?[eE][-\\+]?\\d+)$/;function Rn(s,e,t){if(!t.eNotation)return s;let r=e.match(kn);if(r){let i=r[1]||"",n=r[3].indexOf("e")===-1?"E":"e",a=r[2],o=i?s[a.length+1]===n:s[a.length]===n;return a.length>1&&o?s:a.length===1&&(r[3].startsWith(`.${n}`)||r[3][0]===n)?Number(e):t.leadingZeros&&!o?(e=(r[1]||"")+r[3],Number(e)):s}else return s}function En(s){return s&&s.indexOf(".")!==-1&&(s=s.replace(/0+$/,""),s==="."?s="0":s[0]==="."?s="0"+s:s[s.length-1]==="."&&(s=s.substring(0,s.length-1))),s}function Nn(s,e){if(parseInt)return parseInt(s,e);if(Number.parseInt)return Number.parseInt(s,e);if(window&&window.parseInt)return window.parseInt(s,e);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}function ct(s){return typeof s=="function"?s:Array.isArray(s)?e=>{for(let t of s)if(typeof t=="string"&&e===t||t instanceof RegExp&&t.test(e))return!0}:()=>!1}var dt=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"\'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:\'"\'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\\xA2"},pound:{regex:/&(pound|#163);/g,val:"\\xA3"},yen:{regex:/&(yen|#165);/g,val:"\\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\\xA9"},reg:{regex:/&(reg|#174);/g,val:"\\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\\u20B9"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,r)=>String.fromCodePoint(Number.parseInt(r,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,r)=>String.fromCodePoint(Number.parseInt(r,16))}},this.addExternalEntities=Mn,this.parseXml=Un,this.parseTextData=Fn,this.resolveNameSpace=Pn,this.buildAttributesMap=Ln,this.isItStopNode=Vn,this.replaceEntitiesValue=Gn,this.readStopNodeData=Zn,this.saveTextToParentTag=$n,this.addChild=zn,this.ignoreAttributesFn=ct(this.options.ignoreAttributes)}};function Mn(s){let e=Object.keys(s);for(let t=0;t<e.length;t++){let r=e[t];this.lastEntities[r]={regex:new RegExp("&"+r+";","g"),val:s[r]}}}function Fn(s,e,t,r,i,n,a){if(s!==void 0&&(this.options.trimValues&&!r&&(s=s.trim()),s.length>0)){a||(s=this.replaceEntitiesValue(s));let o=this.options.tagValueProcessor(e,s,t,i,n);return o==null?s:typeof o!=typeof s||o!==s?o:this.options.trimValues?gr(s,this.options.parseTagValue,this.options.numberParseOptions):s.trim()===s?gr(s,this.options.parseTagValue,this.options.numberParseOptions):s}}function Pn(s){if(this.options.removeNSPrefix){let e=s.split(":"),t=s.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(s=t+e[1])}return s}var Dn=new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*([\'"])([\\\\s\\\\S]*?)\\\\3)?`,"gm");function Ln(s,e,t){if(this.options.ignoreAttributes!==!0&&typeof s=="string"){let r=Dt(s,Dn),i=r.length,n={};for(let a=0;a<i;a++){let o=this.resolveNameSpace(r[a][1]);if(this.ignoreAttributesFn(o,e))continue;let l=r[a][4],c=this.options.attributeNamePrefix+o;if(o.length)if(this.options.transformAttributeName&&(c=this.options.transformAttributeName(c)),c==="__proto__"&&(c="#__proto__"),l!==void 0){this.options.trimValues&&(l=l.trim()),l=this.replaceEntitiesValue(l);let d=this.options.attributeValueProcessor(o,l,e);d==null?n[c]=l:typeof d!=typeof l||d!==l?n[c]=d:n[c]=gr(l,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(n[c]=!0)}if(!Object.keys(n).length)return;if(this.options.attributesGroupName){let a={};return a[this.options.attributesGroupName]=n,a}return n}}var Un=function(s){s=s.replace(/\\r\\n?/g,`\n`);let e=new ce("!xml"),t=e,r="",i="";for(let n=0;n<s.length;n++)if(s[n]==="<")if(s[n+1]==="/"){let o=Be(s,">",n,"Closing Tag is not closed."),l=s.substring(n+2,o).trim();if(this.options.removeNSPrefix){let h=l.indexOf(":");h!==-1&&(l=l.substr(h+1))}this.options.transformTagName&&(l=this.options.transformTagName(l)),t&&(r=this.saveTextToParentTag(r,t,i));let c=i.substring(i.lastIndexOf(".")+1);if(l&&this.options.unpairedTags.indexOf(l)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${l}>`);let d=0;c&&this.options.unpairedTags.indexOf(c)!==-1?(d=i.lastIndexOf(".",i.lastIndexOf(".")-1),this.tagsNodeStack.pop()):d=i.lastIndexOf("."),i=i.substring(0,d),t=this.tagsNodeStack.pop(),r="",n=o}else if(s[n+1]==="?"){let o=br(s,n,!1,"?>");if(!o)throw new Error("Pi Tag is not closed.");if(r=this.saveTextToParentTag(r,t,i),!(this.options.ignoreDeclaration&&o.tagName==="?xml"||this.options.ignorePiTags)){let l=new ce(o.tagName);l.add(this.options.textNodeName,""),o.tagName!==o.tagExp&&o.attrExpPresent&&(l[":@"]=this.buildAttributesMap(o.tagExp,i,o.tagName)),this.addChild(t,l,i,n)}n=o.closeIndex+1}else if(s.substr(n+1,3)==="!--"){let o=Be(s,"-->",n+4,"Comment is not closed.");if(this.options.commentPropName){let l=s.substring(n+4,o-2);r=this.saveTextToParentTag(r,t,i),t.add(this.options.commentPropName,[{[this.options.textNodeName]:l}])}n=o}else if(s.substr(n+1,2)==="!D"){let o=pr(s,n);this.docTypeEntities=o.entities,n=o.i}else if(s.substr(n+1,2)==="!["){let o=Be(s,"]]>",n,"CDATA is not closed.")-2,l=s.substring(n+9,o);r=this.saveTextToParentTag(r,t,i);let c=this.parseTextData(l,t.tagname,i,!0,!1,!0,!0);c==null&&(c=""),this.options.cdataPropName?t.add(this.options.cdataPropName,[{[this.options.textNodeName]:l}]):t.add(this.options.textNodeName,c),n=o+2}else{let o=br(s,n,this.options.removeNSPrefix),l=o.tagName,c=o.rawTagName,d=o.tagExp,h=o.attrExpPresent,f=o.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),t&&r&&t.tagname!=="!xml"&&(r=this.saveTextToParentTag(r,t,i,!1));let u=t;u&&this.options.unpairedTags.indexOf(u.tagname)!==-1&&(t=this.tagsNodeStack.pop(),i=i.substring(0,i.lastIndexOf("."))),l!==e.tagname&&(i+=i?"."+l:l);let p=n;if(this.isItStopNode(this.options.stopNodes,i,l)){let g="";if(d.length>0&&d.lastIndexOf("/")===d.length-1)l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),d=l):d=d.substr(0,d.length-1),n=o.closeIndex;else if(this.options.unpairedTags.indexOf(l)!==-1)n=o.closeIndex;else{let w=this.readStopNodeData(s,c,f+1);if(!w)throw new Error(`Unexpected end of ${c}`);n=w.i,g=w.tagContent}let v=new ce(l);l!==d&&h&&(v[":@"]=this.buildAttributesMap(d,i,l)),g&&(g=this.parseTextData(g,l,i,!0,h,!0,!0)),i=i.substr(0,i.lastIndexOf(".")),v.add(this.options.textNodeName,g),this.addChild(t,v,i,p)}else{if(d.length>0&&d.lastIndexOf("/")===d.length-1){l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),d=l):d=d.substr(0,d.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));let g=new ce(l);l!==d&&h&&(g[":@"]=this.buildAttributesMap(d,i,l)),this.addChild(t,g,i,p),i=i.substr(0,i.lastIndexOf("."))}else{let g=new ce(l);this.tagsNodeStack.push(t),l!==d&&h&&(g[":@"]=this.buildAttributesMap(d,i,l)),this.addChild(t,g,i,p),t=g}r="",n=f}}else r+=s[n];return e.child};function zn(s,e,t,r){this.options.captureMetaData||(r=void 0);let i=this.options.updateTag(e.tagname,t,e[":@"]);i===!1||(typeof i=="string"&&(e.tagname=i),s.addChild(e,r))}var Gn=function(s){if(this.options.processEntities){for(let e in this.docTypeEntities){let t=this.docTypeEntities[e];s=s.replace(t.regx,t.val)}for(let e in this.lastEntities){let t=this.lastEntities[e];s=s.replace(t.regex,t.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){let t=this.htmlEntities[e];s=s.replace(t.regex,t.val)}s=s.replace(this.ampEntity.regex,this.ampEntity.val)}return s};function $n(s,e,t,r){return s&&(r===void 0&&(r=e.child.length===0),s=this.parseTextData(s,e.tagname,t,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,r),s!==void 0&&s!==""&&e.add(this.options.textNodeName,s),s=""),s}function Vn(s,e,t){let r="*."+t;for(let i in s){let n=s[i];if(r===n||e===n)return!0}return!1}function On(s,e,t=">"){let r,i="";for(let n=e;n<s.length;n++){let a=s[n];if(r)a===r&&(r="");else if(a===\'"\'||a==="\'")r=a;else if(a===t[0])if(t[1]){if(s[n+1]===t[1])return{data:i,index:n}}else return{data:i,index:n};else a===" "&&(a=" ");i+=a}}function Be(s,e,t,r){let i=s.indexOf(e,t);if(i===-1)throw new Error(r);return i+e.length-1}function br(s,e,t,r=">"){let i=On(s,e+1,r);if(!i)return;let n=i.data,a=i.index,o=n.search(/\\s/),l=n,c=!0;o!==-1&&(l=n.substring(0,o),n=n.substring(o+1).trimStart());let d=l;if(t){let h=l.indexOf(":");h!==-1&&(l=l.substr(h+1),c=l!==i.data.substr(h+1))}return{tagName:l,tagExp:n,closeIndex:a,attrExpPresent:c,rawTagName:d}}function Zn(s,e,t){let r=t,i=1;for(;t<s.length;t++)if(s[t]==="<")if(s[t+1]==="/"){let n=Be(s,">",t,`${e} is not closed`);if(s.substring(t+2,n).trim()===e&&(i--,i===0))return{tagContent:s.substring(r,t),i:n};t=n}else if(s[t+1]==="?")t=Be(s,"?>",t+1,"StopNode is not closed.");else if(s.substr(t+1,3)==="!--")t=Be(s,"-->",t+3,"StopNode is not closed.");else if(s.substr(t+1,2)==="![")t=Be(s,"]]>",t,"StopNode is not closed.")-2;else{let n=br(s,t,">");n&&((n&&n.tagName)===e&&n.tagExp[n.tagExp.length-1]!=="/"&&i++,t=n.closeIndex)}}function gr(s,e,t){if(e&&typeof s=="string"){let r=s.trim();return r==="true"?!0:r==="false"?!1:_r(s,t)}else return pi(s)?s:""}var yr=ce.getMetaDataSymbol();function wr(s,e){return xi(s,e)}function xi(s,e,t){let r,i={};for(let n=0;n<s.length;n++){let a=s[n],o=Bn(a),l="";if(t===void 0?l=o:l=t+"."+o,o===e.textNodeName)r===void 0?r=a[o]:r+=""+a[o];else{if(o===void 0)continue;if(a[o]){let c=xi(a[o],e,l),d=Hn(c,e);a[yr]!==void 0&&(c[yr]=a[yr]),a[":@"]?Wn(c,a[":@"],l,e):Object.keys(c).length===1&&c[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?c=c[e.textNodeName]:Object.keys(c).length===0&&(e.alwaysCreateTextNode?c[e.textNodeName]="":c=""),i[o]!==void 0&&i.hasOwnProperty(o)?(Array.isArray(i[o])||(i[o]=[i[o]]),i[o].push(c)):e.isArray(o,l,d)?i[o]=[c]:i[o]=c}}}return typeof r=="string"?r.length>0&&(i[e.textNodeName]=r):r!==void 0&&(i[e.textNodeName]=r),i}function Bn(s){let e=Object.keys(s);for(let t=0;t<e.length;t++){let r=e[t];if(r!==":@")return r}}function Wn(s,e,t,r){if(e){let i=Object.keys(e),n=i.length;for(let a=0;a<n;a++){let o=i[a];r.isArray(o,t+"."+o,!0,!0)?s[o]=[e[o]]:s[o]=e[o]}}}function Hn(s,e){let{textNodeName:t}=e,r=Object.keys(s).length;return!!(r===0||r===1&&(s[t]||typeof s[t]=="boolean"||s[t]===0))}var De=class{constructor(e){this.externalEntities={},this.options=wi(e)}parse(e,t){if(typeof e!="string")if(e.toString)e=e.toString();else throw new Error("XML data is accepted in String or Bytes[] form.");if(t){t===!0&&(t={});let n=yi(e,t);if(n!==!0)throw Error(`${n.err.msg}:${n.err.line}:${n.err.col}`)}let r=new dt(this.options);r.addExternalEntities(this.externalEntities);let i=r.parseXml(e);return this.options.preserveOrder||i===void 0?i:wr(i,this.options)}addEntity(e,t){if(t.indexOf("&")!==-1)throw new Error("Entity value can\'t have \'&\'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without \'&\' and \';\'. Eg. use \'#xD\' for \'
\'");if(t==="&")throw new Error("An entity with value \'&\' is not permitted");this.externalEntities[e]=t}static getMetaDataSymbol(){return ce.getMetaDataSymbol()}};function xr(s,e){let t="";return e.format&&e.indentBy.length>0&&(t=`\n`),Ci(s,e,"",t)}function Ci(s,e,t,r){let i="",n=!1;for(let a=0;a<s.length;a++){let o=s[a],l=jn(o);if(l===void 0)continue;let c="";if(t.length===0?c=l:c=`${t}.${l}`,l===e.textNodeName){let p=o[l];Yn(c,e)||(p=e.tagValueProcessor(l,p),p=Si(p,e)),n&&(i+=r),i+=p,n=!1;continue}else if(l===e.cdataPropName){n&&(i+=r),i+=`<![CDATA[${o[l][0][e.textNodeName]}]]>`,n=!1;continue}else if(l===e.commentPropName){i+=r+`<!--${o[l][0][e.textNodeName]}-->`,n=!0;continue}else if(l[0]==="?"){let p=vi(o[":@"],e),g=l==="?xml"?"":r,v=o[l][0][e.textNodeName];v=v.length!==0?" "+v:"",i+=g+`<${l}${v}${p}?>`,n=!0;continue}let d=r;d!==""&&(d+=e.indentBy);let h=vi(o[":@"],e),f=r+`<${l}${h}`,u=Ci(o[l],e,c,d);e.unpairedTags.indexOf(l)!==-1?e.suppressUnpairedNode?i+=f+">":i+=f+"/>":(!u||u.length===0)&&e.suppressEmptyNode?i+=f+"/>":u&&u.endsWith(">")?i+=f+`>${u}${r}</${l}>`:(i+=f+">",u&&r!==""&&(u.includes("/>")||u.includes("</"))?i+=r+e.indentBy+u+r:i+=u,i+=`</${l}>`),n=!0}return i}function jn(s){let e=Object.keys(s);for(let t=0;t<e.length;t++){let r=e[t];if(s.hasOwnProperty(r)&&r!==":@")return r}}function vi(s,e){let t="";if(s&&!e.ignoreAttributes)for(let r in s){if(!s.hasOwnProperty(r))continue;let i=e.attributeValueProcessor(r,s[r]);i=Si(i,e),i===!0&&e.suppressBooleanAttributes?t+=` ${r.substr(e.attributeNamePrefix.length)}`:t+=` ${r.substr(e.attributeNamePrefix.length)}="${i}"`}return t}function Yn(s,e){s=s.substr(0,s.length-e.textNodeName.length-1);let t=s.substr(s.lastIndexOf(".")+1);for(let r in e.stopNodes)if(e.stopNodes[r]===s||e.stopNodes[r]==="*."+t)return!0;return!1}function Si(s,e){if(s&&s.length>0&&e.processEntities)for(let t=0;t<e.entities.length;t++){let r=e.entities[t];s=s.replace(r.regex,r.val)}return s}var Jn={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(s,e){return e},attributeValueProcessor:function(s,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("\'","g"),val:"'"},{regex:new RegExp(\'"\',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function be(s){this.options=Object.assign({},Jn,s),this.options.ignoreAttributes===!0||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=ct(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=qn),this.processTextOrObjNode=Xn,this.options.format?(this.indentate=Qn,this.tagEndChar=`>\n`,this.newLine=`\n`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}be.prototype.build=function(s){return this.options.preserveOrder?xr(s,this.options):(Array.isArray(s)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(s={[this.options.arrayNodeName]:s}),this.j2x(s,0,[]).val)};be.prototype.j2x=function(s,e,t){let r="",i="",n=t.join(".");for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a))if(typeof s[a]>"u")this.isAttribute(a)&&(i+="");else if(s[a]===null)this.isAttribute(a)||a===this.options.cdataPropName?i+="":a[0]==="?"?i+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:i+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(s[a]instanceof Date)i+=this.buildTextValNode(s[a],a,"",e);else if(typeof s[a]!="object"){let o=this.isAttribute(a);if(o&&!this.ignoreAttributesFn(o,n))r+=this.buildAttrPairStr(o,""+s[a]);else if(!o)if(a===this.options.textNodeName){let l=this.options.tagValueProcessor(a,""+s[a]);i+=this.replaceEntitiesValue(l)}else i+=this.buildTextValNode(s[a],a,"",e)}else if(Array.isArray(s[a])){let o=s[a].length,l="",c="";for(let d=0;d<o;d++){let h=s[a][d];if(!(typeof h>"u"))if(h===null)a[0]==="?"?i+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:i+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(typeof h=="object")if(this.options.oneListGroup){let f=this.j2x(h,e+1,t.concat(a));l+=f.val,this.options.attributesGroupName&&h.hasOwnProperty(this.options.attributesGroupName)&&(c+=f.attrStr)}else l+=this.processTextOrObjNode(h,a,e,t);else if(this.options.oneListGroup){let f=this.options.tagValueProcessor(a,h);f=this.replaceEntitiesValue(f),l+=f}else l+=this.buildTextValNode(h,a,"",e)}this.options.oneListGroup&&(l=this.buildObjectNode(l,a,c,e)),i+=l}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){let o=Object.keys(s[a]),l=o.length;for(let c=0;c<l;c++)r+=this.buildAttrPairStr(o[c],""+s[a][o[c]])}else i+=this.processTextOrObjNode(s[a],a,e,t);return{attrStr:r,val:i}};be.prototype.buildAttrPairStr=function(s,e){return e=this.options.attributeValueProcessor(s,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&e==="true"?" "+s:" "+s+\'="\'+e+\'"\'};function Xn(s,e,t,r){let i=this.j2x(s,t+1,r.concat(e));return s[this.options.textNodeName]!==void 0&&Object.keys(s).length===1?this.buildTextValNode(s[this.options.textNodeName],e,i.attrStr,t):this.buildObjectNode(i.val,e,i.attrStr,t)}be.prototype.buildObjectNode=function(s,e,t,r){if(s==="")return e[0]==="?"?this.indentate(r)+"<"+e+t+"?"+this.tagEndChar:this.indentate(r)+"<"+e+t+this.closeTag(e)+this.tagEndChar;{let i="</"+e+this.tagEndChar,n="";return e[0]==="?"&&(n="?",i=""),(t||t==="")&&s.indexOf("<")===-1?this.indentate(r)+"<"+e+t+n+">"+s+i:this.options.commentPropName!==!1&&e===this.options.commentPropName&&n.length===0?this.indentate(r)+`<!--${s}-->`+this.newLine:this.indentate(r)+"<"+e+t+n+this.tagEndChar+s+this.indentate(r)+i}};be.prototype.closeTag=function(s){let e="";return this.options.unpairedTags.indexOf(s)!==-1?this.options.suppressUnpairedNode||(e="/"):this.options.suppressEmptyNode?e="/":e=`></${s}`,e};be.prototype.buildTextValNode=function(s,e,t,r){if(this.options.cdataPropName!==!1&&e===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${s}]]>`+this.newLine;if(this.options.commentPropName!==!1&&e===this.options.commentPropName)return this.indentate(r)+`<!--${s}-->`+this.newLine;if(e[0]==="?")return this.indentate(r)+"<"+e+t+"?"+this.tagEndChar;{let i=this.options.tagValueProcessor(e,s);return i=this.replaceEntitiesValue(i),i===""?this.indentate(r)+"<"+e+t+this.closeTag(e)+this.tagEndChar:this.indentate(r)+"<"+e+t+">"+i+"</"+e+this.tagEndChar}};be.prototype.replaceEntitiesValue=function(s){if(s&&s.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){let t=this.options.entities[e];s=s.replace(t.regex,t.val)}return s};function Qn(s){return this.options.indentBy.repeat(s)}function qn(s){return s.startsWith(this.options.attributeNamePrefix)&&s!==this.options.textNodeName?s.substr(this.attrPrefixLen):!1}var Kn={"<":"<",">":">","&":"&",""":\'"\',"'":"\'"},eo=/&\\w+;/g,to=s=>s.replace(eo,e=>Kn[e]||e);var zt=to;var ro=(s,e)=>zt(e);var vr=s=>{if(s){if(Array.isArray(s))for(let e of s)vr(e);else if(typeof s=="object")for(let[e,t]of Object.entries(s))if(e==="a$"){if(typeof t=="object"){let r={};for(let[i,n]of Object.entries(t))n!==void 0&&(r[i]=n);s[e]=r}}else vr(t)}return s},Ai=s=>{let e=new be(s),t=e.build;return e.build=r=>t.call(e,vr(r)),e},Gt={ignoreAttributes:!1,attributesGroupName:"a$",attributeNamePrefix:"",textNodeName:"t$",trimValues:!1,ignoreDeclaration:!0,isArray:s=>/Relationship$/.test(s),tagValueProcessor:ro},k=class{static FindChild(e={},t){let r=t.split("/");for(let i of r)if(e=e[i],!e)return;return e}static FindAll(e={},t){let r=t.split("/");if(r[0]==="."&&r.shift(),r[0]==="..")throw new Error("invalid path (no access to parent)");if(r[0]==="")throw new Error("invalid path (no access to root)");if(r[0]==="**")throw new Error("ENOTIMPL");return this.FindAllTail(e,r)}static FindAllTail(e,t){if(Array.isArray(e))return e.reduce((r,i)=>r.concat(this.FindAllTail(i,t)),[]);for(let r=0;r<t.length;r++){let i=t[r];if(i==="*"?e=Object.entries(e).reduce((a,[o,l])=>(o!=="a$"&&o!=="t$"&&a.push(l),a),[]):e=e[i],!e)return[];if(Array.isArray(e)){if(r===t.length-1||e.length===0)return e;let n=t.slice(1);return e.reduce((a,o)=>a.concat(this.FindAllTail(o,n)),[])}}return[e]}};var Ye=class{strings=[];reverse={};FromXML(e){this.strings=[],this.reverse={};let t=0;for(let r of k.FindAll(e,"sst/si")){if(r.t!==void 0){let i="";typeof r.t=="string"?i=r.t:r.t.t$&&(i=r.t.t$),this.strings[t]=i,this.reverse[i]=t}else if(r.r){let n=k.FindAll(r.r,"t").map(a=>typeof a=="string"?a:a.t$||"").join("");this.strings[t]=n,this.reverse[n]=t}else console.warn(` ** unexpected shared string @ ${t}`),console.info(r);t++}}Get(e){return this.strings[e]}Ensure(e){e[0]==="\'"&&(e=e.substring(1));let t=this.reverse[e];return typeof t=="number"||(t=this.strings.length,this.strings.push(e),this.reverse[e]=t),t}};var Le=class s{static color_map=["lt1","dk1","lt2","dk2","accent1","accent2","accent3","accent4","accent5","accent6","hlink","folHlink"];colors={};FromXML(e){let t=Object.keys(e)[0],r="",i=t.toString().match(/^(.*?):/);if(i&&(r=i[1]+":"),e[t]&&e[t][`${r}themeElements`]){let n=e[t][`${r}themeElements`][`${r}clrScheme`];for(let a of s.color_map){let o=n[`${r}${a}`],l,c="rgb";o[`${r}srgbClr`]?(c="rgb",l=o[`${r}srgbClr`].a$.val||""):o[`${r}sysClr`]&&(c="system",l=o[`${r}sysClr`].a$.lastClr||""),this.colors[a]={name:a,value:l,type:c}}}}};var Re=class{date_format=!1;string_format=!1;fraction_format=!1;twelve_hour=!1;fraction_denominator=0;fraction_integer=!0;fraction_align=0;fraction_denominator_digits=0;integer_min_digits=0;decimal_min_digits=0;decimal_max_digits=0;grouping=!1;has_number_format=!1;prefix=[{text:""}];suffix=[{text:""}];scaling=0;percent=!1;exponential=!1;has_asterisk=!1};var Ti=42,Ii=95,Cr=63,$t=48,ki=46,Sr=44,Ri=37,Ar=34,ht=35,Ei=59,Vt=92,Ni=64,io=91,so=93,Mi=69,Fi=101,no=72,oo=104,ao=77,lo=109,co=83,ho=115,uo=68,fo=100,po=89,mo=121,_o=65,bo=97;var Ot=class{static date_pattern=!1;static pattern="";static char_index=0;static characters=[];static sections=[];static current_section=new Re;static preserve_formatting_characters=!1;static decimal_mark=ki;static group_separator=Sr;static Parse(e){if(this.pattern=e,this.characters=e.split("").map(t=>t.charCodeAt(0)),this.char_index=0,this.current_section=new Re,this.sections=[this.current_section],this.ParseDatePattern())return this.sections;for(this.char_index=0,this.current_section=new Re,this.sections=[this.current_section];this.char_index<this.characters.length;)this.ConsumeChar();return this.sections}static ConsumeString(){let e="";for(this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),++this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case Vt:this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),this.char_index+1<this.characters.length&&(e+=this.pattern[++this.char_index]);break;case Ar:return this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),this.char_index++,e;default:e+=this.pattern[this.char_index];break}throw new Error("unterminated string")}static ConsumeFormatting(){let e="";for(++this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case Vt:throw new Error("invalid escape character in formatting block");case so:return this.char_index++,e;default:e+=this.pattern[this.char_index];break}throw new Error("unterminated format")}static ScanFractionFormat(){let e=/^([#?]+ +){0,1}([#?]+)\\/([#?0-9]+)(?:$|[^#?0-9])/,r=this.pattern.substr(this.char_index).match(e);if(!r)return!1;let i=(r[1]||"").length+r[2].length+r[3].length+1;this.current_section.fraction_format=!0,this.current_section.fraction_integer=!!r[1];let n=Number(r[3]);return isNaN(n)||(this.current_section.fraction_denominator=n),this.current_section.decimal_max_digits=this.current_section.fraction_denominator_digits=r[3].length,this.char_index+=i,this.current_section.has_number_format=!0,!0}static ConsumeNumberFormat(){let e=0;for(this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case this.group_separator:{let r=!1;for(let i=this.char_index+1;!r&&i<this.characters.length;i++){let n=this.characters[i];if(n===this.decimal_mark||n===ht||n===$t)r=!0;else if(n!==Sr)break}if(r){if(e===1)throw new Error("invalid grouping in decimal part");this.current_section.grouping=!0}else this.current_section.scaling=(this.current_section.scaling||1)*1e3}break;case this.decimal_mark:if(e===1)throw new Error("too many decimal marks");e=1;break;case ht:e===1?this.current_section.decimal_max_digits++:this.current_section.integer_min_digits&&this.current_section.integer_min_digits++;break;case $t:e===1?(this.current_section.decimal_max_digits++,this.current_section.decimal_min_digits=this.current_section.decimal_max_digits):this.current_section.integer_min_digits++;break;default:return}}static AppendCharAsText(e=!0){this.current_section.has_number_format?this.current_section.suffix[this.current_section.suffix.length-1].text+=this.pattern[this.char_index]:this.current_section.prefix[this.current_section.prefix.length-1].text+=this.pattern[this.char_index],e&&this.char_index++}static AppendString(e){this.current_section.has_number_format?this.current_section.suffix[this.current_section.suffix.length-1].text+=e:this.current_section.prefix[this.current_section.prefix.length-1].text+=e}static AppendTextPart(e){this.current_section.has_number_format?(this.current_section.suffix.push(e),this.current_section.suffix.push({text:""})):(this.current_section.prefix.push(e),this.current_section.prefix.push({text:""}))}static ConsumeChar(){let e=this.characters[this.char_index];if(!((e===Cr||e===ht)&&!this.current_section.has_number_format&&!this.current_section.string_format&&this.ScanFractionFormat()))switch(e){case Ei:this.char_index++,this.current_section=new Re,this.sections.length===3&&(this.current_section.string_format=!0),this.sections.push(this.current_section);break;case Ni:this.char_index++,this.AppendTextPart({text:"@",flag:5}),this.current_section.string_format=!0;break;case $t:case ht:case ki:case Sr:!this.current_section.has_number_format&&!this.current_section.string_format?(this.ConsumeNumberFormat(),this.current_section.has_number_format=!0):this.AppendCharAsText();break;case io:this.AppendTextPart({text:this.ConsumeFormatting(),flag:6});break;case Ar:this.AppendString(this.ConsumeString());break;case Cr:this.preserve_formatting_characters?this.AppendCharAsText():(this.AppendTextPart({text:"0",flag:1}),this.char_index++);break;case Ii:if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:1})}break;case Ti:if(this.current_section.has_asterisk)throw new Error("we don\'t support multiple asterisks");if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:2}),this.current_section.has_asterisk=!0}break;case Fi:case Mi:this.current_section.percent||this.current_section.exponential||this.current_section.string_format?this.AppendCharAsText():(this.current_section.exponential=!0,this.char_index++);break;case Ri:!this.current_section.exponential&&!this.current_section.string_format&&(this.current_section.percent=!0),this.AppendCharAsText();break;case Vt:if(this.preserve_formatting_characters&&this.AppendCharAsText(!1),++this.char_index>=this.characters.length)throw new Error("invalid escape character at end");this.AppendCharAsText();break;default:this.AppendCharAsText()}}static ParseDatePattern(){for(this.date_pattern=!0;this.date_pattern&&this.char_index<this.pattern.length;)this.DatePatternConsumeChar();if(this.date_pattern){this.date_pattern=!1;for(let e of this.sections)for(let t of e.prefix)t.flag&&t.flag&7&&(this.date_pattern=!0)}return this.date_pattern&&(this.sections[0].date_format=!0,this.sections[0].prefix.forEach((e,t)=>{if(e.flag===3&&(e.text==="mm"||e.text==="m")){if(t)for(let r=t-1;r;r--){let i=this.sections[0].prefix[r];if(i.flag===3){/h/i.test(i.text)&&(e.flag=4,e.text=e.text.toLowerCase());break}}if(t<this.sections[0].prefix.length-1)for(let r=t+1;r<this.sections[0].prefix.length;r++){let i=this.sections[0].prefix[r];if(i.flag===3){/s/i.test(i.text)&&(e.flag=4,e.text=e.text.toLowerCase());break}}}})),this.date_pattern}static ConsumeDatePart(){let e=this.pattern[this.char_index++],t=e.toLowerCase(),r={text:e,flag:3};for(;this.pattern[this.char_index]&&this.pattern[this.char_index].toLowerCase()===t;)r.text+=this.pattern[this.char_index++];if(t==="s"&&this.pattern[this.char_index]===".")for(r.text+=this.pattern[this.char_index++];this.pattern[this.char_index]==="0";)r.text+=this.pattern[this.char_index++];return r}static ConsumeAMPM(){let e=this.pattern.substr(this.char_index,5);if(e==="am/pm"||e==="AM/PM")return this.char_index+=5,this.sections[0].twelve_hour=!0,{text:e,flag:3};if(e=this.pattern.substr(this.char_index,3),e==="a/p"||e==="A/P")return this.char_index+=3,this.sections[0].twelve_hour=!0,{text:e,flag:3}}static DatePatternConsumeChar(){switch(this.characters[this.char_index]){case Ei:this.char_index=this.characters.length;break;case $t:case ht:case Fi:case Mi:case Ri:case Ni:this.date_pattern=!1;break;case no:case oo:case ao:case lo:case co:case ho:case uo:case fo:case po:case mo:this.AppendTextPart(this.ConsumeDatePart());break;case _o:case bo:{let t=this.ConsumeAMPM();t?this.AppendTextPart(t):this.AppendCharAsText()}break;case Ar:this.AppendString(this.ConsumeString());break;case Cr:this.preserve_formatting_characters?this.AppendCharAsText():(this.AppendTextPart({text:"0",flag:1}),this.char_index++);break;case Ii:if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:1})}break;case Ti:if(this.current_section.has_asterisk)throw new Error("we don\'t support multiple asterisks");if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:2}),this.current_section.has_asterisk=!0}break;case Vt:if(this.preserve_formatting_characters&&this.AppendCharAsText(!1),++this.char_index>=this.characters.length)throw new Error("invalid escape character at end");this.AppendCharAsText();break;default:this.AppendCharAsText()}}};var go=s=>(s>=60&&s--,new Date(-22090752e5+864e5*s)),Pi=(s,e=!0)=>{if(e){let t=new Date(s);s=new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()).getTime()}return s=(s+22090752e5)/864e5,s>=60&&s++,s},Je=class s{static grouping_regexp=/\\d{1,3}(?=(\\d{3})+(?!\\d))/g;static fraction_limits=[9,99,999,9999];static imaginary_character="\\u{1D456}";static minus_character="-";magic_decimal=!1;transform_value;_pattern="";sections;decimal_zero_regexp=[];cloned=[];get pattern(){return this._pattern}get date_format(){return this.sections[0]&&this.sections[0].date_format}constructor(e){if(this._pattern=e,this.sections=Ot.Parse(e),this.sections.length||(this.sections=[]),this.sections[0]||(this.sections[0]=new Re),this.sections[1]||(this.sections[1]={...this.sections[0]},this.sections[1].prefix=JSON.parse(JSON.stringify(this.sections[1].prefix)),this.sections[1].suffix=JSON.parse(JSON.stringify(this.sections[1].suffix)),this.sections[1].prefix.push({text:"-"}),this.cloned[1]=!0),this.sections[2]||(this.sections[2]={...this.sections[0]},this.cloned[2]=!0),!this.sections[3]){for(let t of this.sections[0].prefix)if(t.flag===5){this.sections[3]={...this.sections[0]},this.sections[3].string_format=!0,this.cloned[3]=!0;break}}this.decimal_zero_regexp=this.sections.map(t=>{if(t.decimal_max_digits>t.decimal_min_digits)return new RegExp(`0{1,${t.decimal_max_digits-t.decimal_min_digits}}(?:$|e)`)})}static FormatPartsAsText(e,t=0){let r=-1,i=e.map((n,a)=>{switch(n.flag){case 2:return r=a,n.text;case 1:return n.text.replace(/./g," ");case 6:return"";default:return n.text}});if(r>=0&&t){let n=i.reduce((o,l,c)=>c===r?o:o+l.length,0),a="";for(let o=0;o<t-n;o++)a+=i[r];i[r]=a}return i.join("")}SetDecimal(e){for(let t of this.sections)t.fraction_format||(t.decimal_min_digits=e,t.decimal_max_digits=e)}IncreaseDecimal(){this.sections.forEach(e=>{e.fraction_format?e.fraction_denominator||(e.fraction_denominator_digits=Math.min(e.fraction_denominator_digits+1,4)):(e.decimal_min_digits++,e.decimal_max_digits=e.decimal_min_digits)})}DecreaseDecimal(){this.sections.forEach(e=>{e.fraction_format?e.fraction_denominator||(e.fraction_denominator_digits=Math.max(e.fraction_denominator_digits-1,1)):(e.decimal_min_digits=Math.max(0,e.decimal_min_digits-1),e.decimal_max_digits=e.decimal_min_digits)})}AddGrouping(){this.sections.forEach(e=>{e.grouping=!0})}RemoveGrouping(){this.sections.forEach(e=>{e.grouping=!1})}ToggleGrouping(){let e=!this.sections[0].grouping;this.sections.forEach(t=>{t.grouping=e})}toString(){return this.sections[0].date_format?this._pattern:this.sections.filter((e,t)=>!this.cloned[t]).map(e=>{let t="",r=0;if(e.fraction_format){e.fraction_integer&&(t+="? ");let i="";for(let n=0;n<e.fraction_denominator_digits;n++)i+="#";t+=i,t+="/",e.fraction_denominator?t+=e.fraction_denominator:t+=i}else if(e.has_number_format){for(r=0;r<e.integer_min_digits;r++)t+="0";if(e.grouping&&(t.length<4&&(t=("####"+t).slice(-4)),t=t.replace(/[\\d#]{1,3}(?=([\\d#]{3})+(?![\\d#]))/g,"$&,")),e.decimal_max_digits||e.decimal_min_digits){for(t+=".",r=0;r<e.decimal_min_digits;r++)t+="0";for(;r<e.decimal_max_digits;r++)t+="#"}if(e.scaling){let i=Math.log10(e.scaling)/3;for(r=0;r<i;r++)t+=","}e.exponential&&(t+="e")}return e.prefix.map(i=>i.flag===1?i.text==="0"?"?":"_"+i.text:i.flag===2?"*"+i.text:i.flag===6?"["+i.text+"]":i.text).join("")+t+e.suffix.map(i=>i.flag===1?i.text==="0"?"?":"_"+i.text:i.flag===2?"*"+i.text:i.text).join("")}).join(";")}FormatDimensionedQuantity(e){if(this.transform_value){let r=this.transform_value(e);if(Rt(r))e=r;else return typeof r=="string"?r:this.FormatParts(r)}let t=this.FormatParts(e.value||0);return e.unit&&t.push({text:" "},{text:e.unit}),t}FormatComplex(e){if(e.imaginary===1/0||e.imaginary===-1/0||e.real===1/0||e.real===-1/0)return[{text:"Infinity"}];let t=[],r=[],i=!1,n=!!e.imaginary;n&&(t=this.FormatParts(e.imaginary),n=t.some(l=>/[1-9]/.test(l.text)),t.length===1&&this.sections[0].integer_min_digits<=1&&t[0].text==="1"?(t[0].text="",i=!0):t.length===1&&this.sections[1].integer_min_digits<=1&&t[0].text==="-1"&&(t[0].text="-",i=!0));let a=!!e.real;a&&(r=this.FormatParts(e.real),a=r.some(l=>/[1-9]/.test(l.text)));let o=[];if(a||!a&&!n){if(o.push(...r),n){o.push({text:e.imaginary<0?` ${s.minus_character} `:" + "});let l=i?[]:this.FormatParts(Math.abs(e.imaginary));o.push(...l,{text:s.imaginary_character})}}else n&&o.push(...t,{text:s.imaginary_character});return o}FormatParts(e){if(typeof e!="number"&&!this.sections[3])return[{text:(e??"").toString()}];let{parts:t,section:r}=this.BaseFormat(e),i=[];if(r.date_format||r.string_format)for(let n of t)typeof n=="string"?i.push({text:n}):i.push(n);else this.magic_decimal&&t[1]===""&&t.splice(1,1),i=[...r.prefix.map(n=>({...n})),{text:r.has_number_format?t.join(z.decimal_separator):""},...r.suffix.map(n=>({...n}))];for(let n=1;n<i.length;n++)i[n].flag===i[n-1].flag&&(i[n].text=i[n-1].text+i[n].text,i[n-1].text="");return i.filter(n=>n.text)}Format(e,t=0){return s.FormatPartsAsText(this.FormatParts(e),t)}ZeroPad(e,t){for(;e.length<t;)e="0"+e;return e}DateFormat(e){let t=go(e),r=this.sections[0],i=t.getUTCHours();return r.twelve_hour&&(i>12&&(i-=12),i===0&&(i=12)),{parts:r.prefix.map(a=>{if(a.flag===4)return a.text==="mm"?{text:this.ZeroPad(t.getUTCMinutes().toString(),2)}:{text:this.ZeroPad(t.getUTCMinutes().toString(),1)};if(a.flag===3){switch(a.text.toLowerCase()){case"am/pm":case"a/p":{let l=a.text.split("/");return{text:t.getUTCHours()>12?l[1]:l[0]}}case"mmmmm":return{text:z.date_components.long_months[t.getUTCMonth()][0]};case"mmmm":return a.text==="MMMM"?{text:z.date_components.long_months[t.getUTCMonth()].toUpperCase()}:{text:z.date_components.long_months[t.getUTCMonth()]};case"mmm":return a.text==="MMM"?{text:z.date_components.short_months[t.getUTCMonth()].toUpperCase()}:{text:z.date_components.short_months[t.getUTCMonth()]};case"mm":return{text:this.ZeroPad((t.getUTCMonth()+1).toString(),2)};case"m":return{text:this.ZeroPad((t.getUTCMonth()+1).toString(),1)};case"ddddd":case"dddd":return a.text==="DDDDD"||a.text==="DDDD"?{text:z.date_components.long_days[t.getUTCDay()].toUpperCase()}:{text:z.date_components.long_days[t.getUTCDay()]};case"ddd":return a.text==="DDD"?{text:z.date_components.short_days[t.getUTCDay()].toUpperCase()}:{text:z.date_components.short_days[t.getUTCDay()]};case"dd":return{text:this.ZeroPad(t.getUTCDate().toString(),2)};case"d":return{text:this.ZeroPad(t.getUTCDate().toString(),1)};case"yyyy":case"yyy":return{text:t.getUTCFullYear().toString()};case"yy":case"y":return{text:this.ZeroPad((t.getUTCFullYear()%100).toString(),2)};case"hh":return{text:this.ZeroPad(i.toString(),2)};case"h":return{text:this.ZeroPad(i.toString(),1)};case"ss":return{text:this.ZeroPad(t.getUTCSeconds().toString(),2)};case"s":return{text:this.ZeroPad(t.getUTCSeconds().toString(),1)}}let o=a.text.match(/^(s+)\\.(0+)$/);if(o)return{text:this.ZeroPad(t.getUTCSeconds().toString(),o[1].length)+z.decimal_separator+(t.getUTCMilliseconds()/1e3).toFixed(o[2].length).substr(2)}}return{...a}}),section:r}}StringFormat(e,t){let r=[];for(let i of t.prefix)i.flag===5?r.push({text:e}):r.push({...i});return{parts:r,section:t}}Round2(e,t){let r=Math.pow(10,t);return Math.round(r*e)/r}FormatFraction(e,t){t.percent&&(e*=100);let r={denominator:1,numerator:Math.round(e),error:Math.abs(Math.round(e)-e)};if(t.fraction_denominator)r.denominator=t.fraction_denominator,r.numerator=Math.round(e*r.denominator);else if(r.error){let n=s.fraction_limits[t.fraction_denominator_digits-1]||s.fraction_limits[0];for(let a=2;a<=n;a++){let o=Math.round(e*a),l=Math.abs(o/a-e);if(l<r.error&&(r={numerator:o,denominator:a,error:l},!l))break}}let i=[];if(t.fraction_integer){let n=Math.floor(r.numerator/r.denominator);r.numerator%=r.denominator,(n||!r.numerator)&&(i.push(n.toString()),r.numerator&&i.push(" "))}else r.numerator||i.push("0");return r.numerator&&(i.push(r.numerator.toString()),i.push("/"),i.push(r.denominator.toString())),i.join("")}BaseFormat(e){if(this.sections[0].date_format)return this.DateFormat(Number(e));if(typeof e!="number")return this.StringFormat((e??"").toString(),this.sections[3]);let t=this.sections[0],r=this.decimal_zero_regexp[0];e<0&&(t=this.sections[1]);let i=t.percent?t.decimal_max_digits+2:t.decimal_max_digits,n=Math.pow(10,-i)/2,a=Math.abs(e);if(a<n&&(t=this.sections[2],r=this.decimal_zero_regexp[2]),t.scaling&&(a/=t.scaling,a<n&&(t=this.sections[2],r=this.decimal_zero_regexp[2])),t.string_format)return this.StringFormat(e.toString(),t);let o="";if(t.fraction_format)return{parts:[this.FormatFraction(a,t)],section:t};t.exponential?o=a.toExponential(t.decimal_max_digits):(t.percent&&(a*=100),o=this.Round2(a,t.decimal_max_digits).toFixed(t.decimal_max_digits)),r&&(o=o.replace(r,""));let l=o.split(".");for(;l[0].length<t.integer_min_digits;)l[0]=("0000000000000000"+l[0]).slice(-t.integer_min_digits);return t.integer_min_digits===0&&l[0]==="0"&&(l[0]=""),t.grouping&&(l[0]=l[0].replace(s.grouping_regexp,"$&"+z.grouping_separator)),{parts:l,section:t}}};var ut=class{static cache={};static complex_general;static symbolc_name_map={};static base_formats={Accounting:"_(#,##0.00_);(#,##0.00);-???",Number:"0.00",Integer:"0",Percent:"0.00%",General:"0.######",Fraction:"# ?/?",Dollar:"$* _(#,##0.00_);$* (#,##0.00);$* -???",Exponential:"0.000e","Short Date":"mm/dd/yy","Long Date":"dddd, mmm d yyyy",Timestamp:"mm-dd-yy hh:mm:ss"};static aliases={Scientific:"Exponential",Percentage:"Percent",Currency:"Dollar"};static Get(e,t=!1){if(t&&e==="General")return this.complex_general;let r=this.symbolc_name_map[e.toLowerCase()],i=this.cache[r||e];return i||(i=new Je(e),this.cache[e]=i),i}static Equals(e,t){if(e===t)return!0;let r=this.Get(e),i=this.Get(t);return r.pattern===i.pattern}static Translate(e){let t=this.symbolc_name_map[e.toLowerCase()];return t?this.cache[t].toString():e}static SymbolicName(e){for(let t of Object.keys(this.base_formats))if(e===this.base_formats[t])return t;return null}static InitCache(){for(let e of Object.keys(this.base_formats))this.cache[e]=new Je(this.base_formats[e]),this.symbolc_name_map[e.toLowerCase()]=e;this.cache.General.magic_decimal=!0,this.complex_general=new Je("0.###"),this.complex_general.magic_decimal=!0;for(let e of Object.keys(this.aliases))this.cache[e]=this.cache[this.aliases[e]],this.symbolc_name_map[e.toLowerCase()]=e}};ut.InitCache();var Di=new Date().getUTCFullYear(),Tr=class{compare_day;compare_month;TestDate(e){let t=Date.parse(e);if(isNaN(t))return!1;let r=new Date(t),n=e.replace(/[\\d\\-\\\\/,.\\s]+/g," ").toLocaleLowerCase().split(/\\s+/).map(l=>l.trim()).filter(l=>!!l);if(!n.length)return t;if(!this.compare_month){this.compare_month={};for(let l=0;l<12;l++)this.compare_month[z.date_components.long_months[l].toLocaleLowerCase().replace(/\\./,"")]=l,this.compare_month[z.date_components.short_months[l].toLocaleLowerCase().replace(/\\./,"")]=l}if(!this.compare_day){this.compare_day={};for(let l=0;l<7;l++)this.compare_day[z.date_components.long_days[l].toLocaleLowerCase().replace(/\\./,"")]=l,this.compare_day[z.date_components.short_days[l].toLocaleLowerCase().replace(/\\./,"")]=l}let a=!1,o=!1;for(let l of n){let c=!1;for(let[d,h]of Object.entries(this.compare_month))if(l===d){if(a||r.getUTCMonth()!==h)return!1;c=!0,a=!0}if(!c){for(let[d,h]of Object.entries(this.compare_day))if(l===d){if(o||r.getUTCDay()!==h)return!1;c=!0,o=!0}}if(!c)return!1}return o&&!a?!1:t}TryParse(e=""){let t={};if(e[0]==="\'")return{value:e,type:2};if(e==="")return{value:e,type:2};if(e==="NaN")return{value:NaN,type:3,hints:{Nan:!0}};let r=e.trim(),i=r.match(/^[$](.*?)$/);i&&(r=i[1],t.Currency=!0);let n=r.match(/^\\((.*?)\\)$/);n&&(r=n[1],t.Parens=!0);let a=r.match(/^(.*?)%\\s*$/);a&&(r=a[1],t.Percent=!0),z.decimal_separator==="."?/,/.test(r)&&(r=r.replace(/,/g,""),t.Grouping=!0):(r=r.replace(/(\\d)\\s+/g,"$1"),r=r.replace(/\\./g,""),r=r.replace(/,/,"."));let o=Number(r);if(o===null||isNaN(o)){let l=e.toLowerCase();if(l==="false")return{value:!1,type:4};if(l==="true")return{value:!0,type:4};let c=this.TestDate(e);if(c!==!1&&!isNaN(c)){let d=new Date(c),h=d.getUTCFullYear();if(h>=Di-200&&h<=Di+200)return t={Date:!0},(d.getHours()||d.getMinutes()||d.getSeconds())&&(t.Time=!0),{value:Pi(c,!0),type:3,hints:t}}return{value:e,type:2}}if(n&&(o=-o),a){let l=o<0?-1:1,c=(l*o).toString().split(".");c[0]=("00"+c[0]).replace(/(\\d\\d)$/,".$1"),o=Number(c.join(""))*l}return/e/.test(e)&&(t.Exponential=!0),{value:o,type:3,hints:t}}},Lf=new Tr;var Li=11,Ir={top:{},left:{},bottom:{},right:{},diagonal:{}},Xe=class s{static default_styles={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"mm-dd-yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@"};theme=new Le;cell_xfs=[];fonts=[];borders=[];fills=[];number_formats=[];base_number_format_id=200;dxf_styles=[];modified=!1;Clamp(e,t,r){return Math.max(t,Math.min(e,r))}TintColor(e,t){let r=parseInt(e.substr(0,2),16),i=parseInt(e.substr(2,2),16),n=parseInt(e.substr(4,2),16);return t<0?(r=Math.round(r*t+r),i=Math.round(i*t+i),n=Math.round(n*t+n)):(r=Math.round((255-r)*t+r),i=Math.round((255-i)*t+i),n=Math.round((255-n)*t+n)),[r,i,n].map(a=>{let o=this.Clamp(a,0,255).toString(16);return o.length<2?"0"+o:o}).join("")}StyleOptionsFromProperties(e){let t=JSON.parse(JSON.stringify(e));for(let c of Object.keys(t))t[c]==="none"&&delete t[c];let r={},i={pattern_type:"none"},n=JSON.parse(JSON.stringify(Ir)),a={font:r,border:n};t.number_format&&(a.number_format={format:ut.Translate(t.number_format),symbolic_name:t.number_format},/Scientific/i.test(t.number_format)&&(a.number_format.format="0.00E+00")),t.font_size?.unit&&t.font_size.value&&(t.font_size.unit==="em"?r.size=t.font_size.value*Li:t.font_size.unit==="%"?r.size=t.font_size.value*Li/100:t.font_size.unit==="pt"?r.size=t.font_size.value:t.font_size.unit==="px"?r.size=t.font_size.value*.75:console.warn("Unhandled font size unit",t.font_size)),t.bold&&(r.bold=!0),t.italic&&(r.italic=!0),t.underline&&(r.underline=!0),t.text&&(Se(t.text)?r.color_argb=t.text.text:Ae(t.text)&&(r.color_theme=$e(t.text),t.text.tint&&(r.color_tint=t.text.tint)));let o=(c,d)=>{c.width&&(d.style="thin",Se(c.color)?d.rgba=c.color.text:Ae(c.color)?(d.theme=$e(c.color),c.color.tint&&(d.tint=c.color.tint)):d.color=64)},l=Ce.CompositeBorders(t);switch(o(l.top,n.top),o(l.left,n.left),o(l.right,n.right),o(l.bottom,n.bottom),t.vertical_align){case"top":a.vertical_alignment="top";break;case"middle":a.vertical_alignment="center";break}switch(t.horizontal_align){case"center":a.horizontal_alignment="center";break;case"left":a.horizontal_alignment="left";break;case"right":a.horizontal_alignment="right";break}return a.indent=t.indent,t.fill&&(i.pattern_type="solid",Se(t.fill)?(i.fg_color={argb:t.fill.text},a.fill=i):Ae(t.fill)&&(i.fg_color={theme:$e(t.fill)},t.fill.tint&&(i.fg_color.tint=t.fill.tint),a.fill=i)),t.wrap&&(a.wrap=!0),a}CellXfToStyle(e){let t={},r=s.default_styles[e.number_format];if(!r){for(let c of this.number_formats)if(c.id===e.number_format&&c.format){r=c.format;break}}if(r){let c=/\\[\\$(.)-[0-9A-Za-z]{1,4}\\]/g;r=r.replace(c,"$1");let d=/\\[\\$-[0-9A-Za-z]{1,4}\\]/g;r=r.replace(d,""),t.number_format=r}let i=this.fonts[0],n=this.fonts[e.font||0];n&&(n.bold&&(t.bold=!0),n.italic&&(t.italic=!0),n.underline&&(t.underline=!0),n.strike&&(t.strike=!0),i&&i.size&&n.size&&i.size!==n.size&&(t.font_size={value:100*n.size/i.size,unit:"%"}),n.color_argb?t.text={text:"#"+(n.color_argb.length>6?n.color_argb.substr(n.color_argb.length-6):n.color_argb)}:typeof n.color_theme=="number"&&(t.text={theme:n.color_theme}));let a=this.fills[e.fill||0];if(a&&a.pattern_type!=="none"){if(a.pattern_type==="gray"){let c=Math.round((a.pattern_gray||0)/1e3*255);t.fill={text:`rgb(${c}, ${c}, ${c})`}}a.pattern_type==="solid"&&a.fg_color&&(a.fg_color.argb?t.fill={text:"#"+(a.fg_color.argb.length>6?a.fg_color.argb.substr(a.fg_color.argb.length-6):a.fg_color.argb)}:typeof a.fg_color.theme=="number"&&(t.fill={theme:a.fg_color.theme},a.fg_color.tint&&(t.fill.tint=Math.round(a.fg_color.tint*1e3)/1e3)))}switch(e.horizontal_alignment){case"center":t.horizontal_align="center";break;case"right":t.horizontal_align="right";break;case"left":t.horizontal_align="left";break}switch(e.vertical_alignment){case"center":t.vertical_align="middle";break;case"top":t.vertical_align="top";break;case"bottom":t.vertical_align="bottom";break}t.indent=typeof e.indent=="string"?Number(e.indent):e.indent,e.wrap_text&&(t.wrap=!0);let o=c=>{if(typeof c.theme<"u")return{theme:c.theme,tint:c.tint}},l=this.borders[e.border||0];return l&&(l.bottom.style&&(l.bottom.style==="double"?t.border_bottom=2:t.border_bottom=1,t.border_bottom_fill=o(l.bottom)),l.left.style&&(t.border_left=1,t.border_left_fill=o(l.left)),l.top.style&&(t.border_top=1,t.border_top_fill=o(l.top)),l.right.style&&(t.border_right=1,t.border_right_fill=o(l.right))),t}CellXfToStyles(){return this.cell_xfs.map(e=>this.CellXfToStyle(e))}EnsureNumberFormat(e){if(typeof e.format>"u"||e.symbolic_name&&/^general$/i.test(e.symbolic_name))return 0;for(let r=0;r<100;r++){let i=s.default_styles[r];if(i&&i===e.format)return r}for(let r of this.number_formats)if(r.format===e.format)return r.id||0;this.modified=!0;let t={id:this.base_number_format_id++,format:e.format};return this.number_formats.push(t),t.id}CompareBorderEdge(e,t){return e.color===t.color&&e.rgba===t.rgba&&e.style===t.style&&e.theme===t.theme&&e.tint===t.tint}CompareBorder(e,t){return this.CompareBorderEdge(e.top,t.top)&&this.CompareBorderEdge(e.left,t.left)&&this.CompareBorderEdge(e.bottom,t.bottom)&&this.CompareBorderEdge(e.right,t.right)&&this.CompareBorderEdge(e.diagonal,t.diagonal)}EnsureBorder(e){for(let r=0;r<this.borders.length;r++){let i=this.borders[r];if(this.CompareBorder(i,e))return r}this.modified=!0;let t=JSON.parse(JSON.stringify(e));return this.borders.push(t),this.borders.length-1}MatchColor(e,t){return!e&&!t?!0:!e||!t?!1:e.argb===t.argb&&e.indexed===t.indexed&&e.theme===t.theme&&e.tint===t.tint}EnsureFill(e){for(let r=0;r<this.fills.length;r++){let i=this.fills[r];if(this.MatchColor(e.bg_color,i.bg_color)&&this.MatchColor(e.fg_color,i.fg_color)&&e.pattern_gray===i.pattern_gray&&e.pattern_type===i.pattern_type)return r}this.modified=!0;let t={...e};return this.fills.push(t),this.fills.length-1}EnsureFont(e){let t={...this.fonts[0],...e};for(let r=0;r<this.fonts.length;r++){let i=this.fonts[r];if(i.bold===t.bold&&i.italic===t.italic&&i.underline===t.underline&&i.size===t.size&&i.strike===t.strike&&i.color_argb===t.color_argb&&i.color_theme===t.color_theme&&i.color_tint===t.color_tint&&i.family===t.family)return r}return this.modified=!0,this.fonts.push(t),this.fonts.length-1}EnsureStyle(e){let t=this.EnsureFont(e.font||{}),r=this.EnsureBorder(e.border||Ir),i=this.EnsureNumberFormat(e.number_format||{}),n=this.EnsureFill(e.fill||{pattern_type:"none"});for(let o=0;o<this.cell_xfs.length;o++){let l=this.cell_xfs[o];if(l.font===t&&l.fill===n&&l.border===r&&l.number_format===i&&!!l.wrap_text==!!e.wrap&&l.indent===e.indent&&(!e.horizontal_alignment&&!l.horizontal_alignment||e.horizontal_alignment===l.horizontal_alignment)&&(!e.vertical_alignment&&!l.vertical_alignment||e.vertical_alignment===l.vertical_alignment))return o}this.modified=!0;let a={font:t,fill:n,border:r,number_format:i,indent:e.indent};return e.horizontal_alignment&&(a.horizontal_alignment=e.horizontal_alignment),e.vertical_alignment&&(a.vertical_alignment=e.vertical_alignment),e.wrap&&(a.wrap_text=!0),this.cell_xfs.push(a),this.cell_xfs.length-1}FromXML(e,t){let r=k.FindAll.bind(k,e);this.theme=t;let i=r("styleSheet/numFmts/numFmt");this.number_formats=i.map(d=>({id:Number(d.a$?.numFmtId||0),format:zt(d.a$?.formatCode||"")})),i=r("styleSheet/borders/border");let n=(d,h)=>{d?.a$&&(h.style=d.a$.style,typeof d.color=="object"&&(typeof d.color.a$?.indexed<"u"&&(h.color=Number(d.color.a$.indexed)),typeof d.color.a$?.theme<"u"&&(h.theme=Number(d.color.a$.theme)),typeof d.color.a$?.tint<"u"&&(h.tint=Number(d.color.a$.tint))))};this.borders=i.map(d=>{let h=JSON.parse(JSON.stringify(Ir));return n(d.left,h.left),n(d.right,h.right),n(d.top,h.top),n(d.bottom,h.bottom),h}),i=r("styleSheet/cellXfs/xf"),this.cell_xfs=i.map(d=>{let h={number_format:Number(d.a$.numFmtId),font:Number(d.a$.fontId),fill:Number(d.a$.fillId),border:Number(d.a$.borderId),xfid:Number(d.a$.xfId)};return d.alignment&&(h.horizontal_alignment=d.alignment.a$.horizontal,h.vertical_alignment=d.alignment.a$.vertical,h.wrap_text=!!d.alignment.a$.wrapText,h.indent=d.alignment.a$.indent||void 0),h});let a=d=>{let h={pattern_type:"none"};if(d.patternFill){let f=d.patternFill.a$?.patternType;switch(f){case"none":case void 0:break;case"solid":h.pattern_type="solid",d.patternFill.fgColor&&(h.fg_color={theme:d.patternFill.fgColor.a$?.theme?Number(d.patternFill.fgColor.a$.theme):void 0,indexed:d.patternFill.fgColor.a$?.indexed?Number(d.patternFill.fgColor.a$.indexed):void 0,tint:d.patternFill.fgColor.a$?.tint?Number(d.patternFill.fgColor.a$.tint):void 0,argb:d.patternFill.fgColor.a$?.rgb});break;default:{let u=f?.match(/^gray(\\d+)$/);if(u){h.pattern_type="gray",h.pattern_gray=Number(u[1]);break}}}}return h};i=r("styleSheet/fills/fill"),this.fills=i.map(a);let o=d=>{let h={};return h.italic=typeof d.i<"u",h.bold=typeof d.b<"u",h.underline=typeof d.u<"u",h.strike=typeof d.strike<"u",d.sz&&(h.size=Number(d.sz.a$.val)),d.scheme&&(h.scheme=d.scheme.a$.val),d.name&&(h.name=d.name.a$.val),d.family&&(h.family=Number(d.family.a$.val)),d.color&&(d.color.a$?.theme&&(h.color_theme=Number(d.color.a$.theme)),d.color.a$?.tint&&(h.color_tint=Number(d.color.a$.tint)),d.color.a$?.rgb&&(h.color_argb=d.color.a$.rgb)),h};i=r("styleSheet/fonts/font"),this.fonts=i.map(o);let l=d=>{let h={};return d.a$.rgb?h.text="#"+d.a$.rgb.substring(2):d.a$.theme&&(h.theme=Number(d.a$.theme)||0,d.a$.tint&&(h.tint=Math.round(d.a$.tint*1e3)/1e3)),h},c=r("styleSheet/dxfs/dxf");this.dxf_styles=c.map(d=>{let h={};return d.font&&(h.bold=!!d.font.b,h.italic=!!d.font.i&&d.font.i.a$.val!=="0"),d.font?.color?.a$&&(h.text=l(d.font.color)),d.fill?.patternFill?.bgColor?.a$&&(h.fill=l(d.fill.patternFill.bgColor)),h})}};var ge=(s,e,t,r)=>{let n=`rId${Object.keys(s).length+1}`;return s[n]={id:n,type:e,target:t,mode:r},n};var Ui={spreadsheet_semantics:!0,dimensioned_quantities:!1,fractions:!0,decimal_mark:".",argument_separator:",",boolean_true:"TRUE",boolean_false:"FALSE"};var zi=/[\\s-+=<>!()]/;var kr=34,Rr=39,wo=160,Gi=32,xo=9,vo=10,Co=13,Ee=48,ft=57,Er=46,Nr=43,pt=45,$i=40,Mr=41,mt=44,So=37,Fr=95,Zt=36,Ao=123,To=125,_t=91,Vi=93,Io=63,ko=33,Oi=59,Pr=35,Ro=64,Qe=65,bt=97,Eo=69,No=101,Bt=90,Wt=122,Mo=105,Dr=192,Lr=382,Ur={"==":6,"!=":6,"<>":6,"=":6,"<":7,">":7,"<=":7,">=":7,"+":9,"-":9,"&":9,"*":10,"/":10,"^":11,":":13},Fo={"@":50,"-":100,"+":100},Po=[...Object.keys(Ur),"@"].sort((s,e)=>e.length-s.length),qe=class{get argument_separator(){return this.flags.argument_separator}get decimal_mark(){return this.flags.decimal_mark}flags={...Ui};r1c1_regex=/[rR]((?:\\[[-+]{0,1}\\d+\\]|\\d*))[cC]((?:\\[[-+]{0,1}\\d+\\]|\\d*))$/;argument_separator_char=mt;decimal_mark_char=Er;imaginary_char=Mo;imaginary_number="i";id_counter=0;expression="";data=[];index=0;length=0;valid=!0;error_position;error;dependencies={addresses:{},ranges:{}};address_refcount={};full_reference_list=[];parser_state_cache=[];SetLocaleSettings(e,t){if(typeof t>"u"&&(t=e===","?";":","),t===e)throw new Error("invalid locale setting");this.flags.argument_separator=t,this.flags.decimal_mark=e}Save(){this.parser_state_cache.push(JSON.stringify(this.flags))}Restore(){let e=this.parser_state_cache.shift();if(e)try{this.flags=JSON.parse(e)}catch(t){console.error(t)}else console.warn("No parser state to restore")}Walk2(e,t){let r=t(e);if(typeof r=="object")return r;switch(e.type){case"address":case"missing":case"literal":case"complex":case"identifier":case"operator":case"structured-reference":break;case"dimensioned":r&&(e.expression=this.Walk2(e.expression,t),e.unit=this.Walk2(e.unit,t));break;case"range":t(e)&&(e.start=this.Walk2(e.start,t),e.end=this.Walk2(e.end,t));break;case"binary":t(e)&&(e.left=this.Walk2(e.left,t),e.right=this.Walk2(e.right,t));break;case"unary":t(e)&&(e.operand=this.Walk2(e.operand,t));break;case"group":t(e)&&(e.elements=e.elements.map(i=>this.Walk2(i,t)));break;case"implicit-call":t(e)&&(e.call=this.Walk2(e.call,t),e.args=e.args.map(i=>this.Walk2(i,t)));break;case"call":t(e)&&(e.args=e.args.map(i=>this.Walk2(i,t)));break}return e}Walk(e,t){switch(e.type){case"address":case"missing":case"literal":case"complex":case"identifier":case"operator":case"structured-reference":t(e);return;case"dimensioned":t(e)&&(this.Walk(e.expression,t),this.Walk(e.unit,t));return;case"range":t(e)&&(this.Walk(e.start,t),this.Walk(e.end,t));return;case"binary":t(e)&&(this.Walk(e.left,t),this.Walk(e.right,t));return;case"unary":t(e)&&this.Walk(e.operand,t);return;case"group":if(t(e))for(let r of e.elements)this.Walk(r,t);return;case"implicit-call":if(t(e)){this.Walk(e.call,t);for(let r of e.args)this.Walk(r,t)}return;case"call":if(t(e))for(let r of e.args)this.Walk(r,t)}}Transpose(e){let t=e.length,r=[],i=0;for(let n=0;n<t;n++)Array.isArray(e[n])&&(i=Math.max(i,e[n].length));for(let n=0;n<i;n++){r[n]=[];for(let a=0;a<t;a++)r[n][a]=e[a]?e[a][n]:void 0}return r}Render(e,t={}){let r=t.offset||{rows:0,columns:0},i=t.missing??"(missing)",{convert_decimal:n,convert_argument_separator:a,long_structured_references:o,table_name:l}=t,c=this.flags.argument_separator+" ";a===","?c=", ":a===";"&&(c="; ");let d=n===","?",":".",h=this.flags.decimal_mark===","?/,/:/\\./,f=this.flags.decimal_mark===","?/,/g:/\\./g;switch(e.type){case"address":return t.pass_through_addresses?e.label:t.r1c1?this.R1C1Label(e,t):this.AddressLabel(e,r);case"range":return t.pass_through_addresses?e.label:t.r1c1?this.R1C1Label(e.start,t)+":"+this.R1C1Label(e.end,t):this.AddressLabel(e.start,r)+":"+this.AddressLabel(e.end,r);case"missing":return i;case"array":return"{"+this.Transpose(e.values).map(u=>u.map(p=>typeof p=="string"?\'"\'+p+\'"\':p).join(", ")).join("; ")+"}";case"binary":{let u=e.operator===":"||e.operator==="^"?"":" ";return this.Render(e.left,t)+u+e.operator+u+this.Render(e.right,t)}case"unary":return e.operator+this.Render(e.operand,t);case"complex":if(e.text)return n?e.text.replace(f,d):e.text;{let u=Math.abs(e.imaginary).toString();if((n===","||this.flags.decimal_mark===",")&&(u=u.replace(/\\./,",")),e.real){let p=e.real.toString();(n===","||this.flags.decimal_mark===",")&&(p=p.replace(/\\./,","));let g=Math.abs(e.imaginary);return`${p}${e.imaginary<0?" - ":" + "}${g===1?"":u}i`}else return e.imaginary===-1?"-i":e.imaginary===1?"i":`${e.imaginary<0?"-":""}${u}i`}break;case"literal":if(typeof e.value=="string")return\'"\'+e.value.replace(/"/g,\'""\')+\'"\';if(typeof e.value=="boolean")return e.value?t.boolean_true||this.flags.boolean_true||"true":t.boolean_false||this.flags.boolean_false||"false";if(n&&typeof e.value=="number")if(e.text){let u=e.text;return n===","&&this.flags.decimal_mark==="."&&(u=u.replace(/,/g,"")),u.replace(h,d)}else return e.value.toString().replace(/\\./,d);else if(e.text)return e.text;return e.value.toString();case"identifier":return e.name;case"operator":return"["+e.operator+"]";case"group":return e.explicit?"("+e.elements.map(u=>this.Render(u,t)).join(c)+")":e.elements.map(u=>this.Render(u,t)).join(c);case"implicit-call":return this.Render(e.call,t)+"("+e.args.map(u=>this.Render(u,t)).join(c)+")";case"call":return e.name+"("+e.args.map(u=>this.Render(u,t)).join(c)+")";case"dimensioned":return this.Render(e.expression)+" "+this.Render(e.unit);case"structured-reference":{let u=e.column;/[^A-Za-z]/.test(u)&&(u="["+u+"]");let p=e.table;switch(!p&&o&&l&&(p=l),e.scope){case"all":return`${p}[[#all],${u}]`;case"row":return o?`${p}[[#this row],${u}]`:`${p}[@${u}]`;case"column":return`${p}[${u}]`}throw new Error("unhandled scope in structured reference")}}return"??"}Parse(e){switch(e=e.trim(),e[0]==="="&&(e=e.substr(1).trim()),this.expression=e,this.data=[],this.length=e.length,this.index=0,this.valid=!0,this.error_position=void 0,this.error=void 0,this.dependencies.addresses={},this.dependencies.ranges={},this.address_refcount={},this.full_reference_list=[],this.id_counter=0,this.flags.argument_separator){case";":this.argument_separator_char=Oi;break;default:this.argument_separator_char=mt;break}switch(this.flags.decimal_mark){case",":this.decimal_mark_char=mt;break;default:this.decimal_mark_char=Er;break}for(let i=0;i<this.length;i++)this.data[i]=e.charCodeAt(i);let t=this.ParseGeneric(),r={};for(let i of Object.keys(this.dependencies.addresses))this.address_refcount[i]&&(r[i]=this.dependencies.addresses[i]);return this.dependencies.addresses=r,{expression:t||void 0,valid:this.valid,error:this.error,error_position:this.error_position,dependencies:this.dependencies,separator:this.flags.argument_separator,decimal_mark:this.flags.decimal_mark,full_reference_list:this.full_reference_list.slice(0)}}ColumnLabel(e){if(e===1/0)return"";let t=String.fromCharCode(65+e%26);for(;e>25;)e=Math.floor(e/26)-1,t=String.fromCharCode(65+e%26)+t;return t}R1C1Label(e,t){let r=!!t.r1c1_force_relative,i=t.r1c1_base,n="";e.sheet&&(n=(zi.test(e.sheet)?"\'"+e.sheet+"\'":e.sheet)+"!");let a="",o="";if(r&&t.r1c1_proper_semantics&&i){if(e.absolute_row)a=(e.row+1).toString();else{let l=e.row-i.row;l&&(a=`[${l}]`)}if(e.absolute_column)o=(e.column+1).toString();else{let l=e.column-i.column;l&&(o=`[${l}]`)}}else if(r&&i){let l=e.row-i.row,c=e.column-i.column;l&&(a=`[${l}]`),c&&(o=`[${c}]`)}else a=e.offset_row?`[${e.row}]`:(e.row+1).toString(),o=e.offset_column?`[${e.column}]`:(e.column+1).toString();return n+=`R${a}C${o}`,n}AddressLabel(e,t){let r=e.column;!e.absolute_column&&e.column!==1/0&&(r+=t.columns);let i=e.row;if(!e.absolute_row&&e.row!==1/0&&(i+=t.rows),i<0||r<0||i===1/0&&r===1/0)return"#REF";let n="";return e.sheet&&(n=(zi.test(e.sheet)?"\'"+e.sheet+"\'":e.sheet)+"!"),i===1/0?n+(e.absolute_column?"$":"")+this.ColumnLabel(r):r===1/0?n+(e.absolute_row?"$":"")+(i+1):n+(e.absolute_column?"$":"")+this.ColumnLabel(r)+(e.absolute_row?"$":"")+(i+1)+(e.spill?"#":"")}ParseGeneric(e=[0],t=!1){let r=[];for(;this.index<this.length;){let i=this.ParseNext(r.length===0);if(typeof i=="number"){if(e.some(n=>i===n))break;if(i===$i){this.index++;let n=this.ParseGeneric([Mr],!0);this.index++,r.push({type:"group",id:this.id_counter++,elements:n?[n]:[],explicit:!0})}else{let n=this.ConsumeOperator();n?r.push(n):t&&i===this.argument_separator_char?(r.push({type:"group-separator",position:this.index,id:this.id_counter++}),this.index++):(this.error=`unexpected character [1]: ${String.fromCharCode(i)}, 0x${i.toString(16)}`,this.valid=!1,this.index++)}}else r.push(i)}if(r.length){if(r=this.BinaryToRange2(r),this.flags.fractions){let i=[],n=o=>o.type==="literal"&&typeof o.value=="number"&&o.value%1===0,a=0;for(;a<r.length-3;a++)if(n(r[a])&&n(r[a+1])&&r[a+2].type==="operator"&&r[a+2].operator==="/"&&n(r[a+3])){let o=r[a],l=r[a+1],c=r[a+3],d=(o.value<0?-1:1)*(l.value/c.value);a+=3,i.push({id:r[a].id,type:"literal",text:this.expression.substring(o.position,c.position+1),value:o.value+d,position:o.position})}else i.push(r[a]);for(;a<r.length;a++)i.push(r[a]);r=i}if(r=r.map(i=>i.type==="identifier"&&i.name===this.imaginary_number?{type:"complex",real:0,imaginary:1,position:i.position,text:i.name,id:this.id_counter++}:i),this.flags.dimensioned_quantities){let i=[],n;for(let a=0;a<r.length;a++){let o=r[a];if(!n)n=o;else if(o.type==="identifier"&&(n.type==="literal"||n.type==="group"||n.type==="call")){let l=o;for(;r[a+1]?.type==="identifier";)l.name+=" "+r[++a].name;i.push({type:"dimensioned",expression:n,unit:o,id:this.id_counter++}),n=void 0}else i.push(n),n=o}n&&i.push(n),r=i}}return r.length===0?null:r.length===1?r[0]:this.BinaryToComplex(this.ArrangeUnits(r))}UnitToAddress(e){if(e.type==="literal"){if(typeof e.value=="number"&&e.value>0&&!/\\./.test(e.text||""))return{type:"address",position:e.position,label:e.value.toString(),row:e.value-1,id:this.id_counter++,column:1/0}}else{let t,r=e.name,i=r.split("!");if(i.length>1&&(t=i.slice(0,i.length-1).join("!"),r=r.substr(t.length+1),t[0]==="\'"))if(t.length>1&&t[t.length-1]==="\'")t=t.substr(1,t.length-2);else return;let n=r[0]==="$";r=(n?r.substr(1):r).toUpperCase();let a=Number(r);if(isNaN(a)){if(/[A-Z]{1,3}/.test(r)){let o=-1;for(let l=0;l<r.length;l++){let c=r[l].charCodeAt(0);o=26*(1+o)+(c-Qe)}return{type:"address",position:e.position,absolute_column:n,label:e.name,column:o,id:this.id_counter++,row:1/0,sheet:t}}}else if(a>0&&a!==1/0&&!/\\./.test(r))return{type:"address",position:e.position,absolute_row:n,label:e.name,row:a-1,id:this.id_counter++,column:1/0,sheet:t}}}BinaryToRange2(e){let t=[];for(let r=0;r<e.length;r++){let i=e[r],n=e[r+1],a=e[r+2],o,l="",c;if(i&&n&&a&&n.type==="operator"&&n.operator===":"){if(i.type==="address"&&a.type==="address"){let d=i.position+i.label.length,h=a.position;o={type:"range",id:this.id_counter++,position:i.position,start:i,end:a,label:i.label+this.expression.substring(d,h)+a.label},l=o.start.label+":"+o.end.label,this.address_refcount[o.start.label]--,this.address_refcount[o.end.label]--;let f=[i.position,a.position];this.full_reference_list=this.full_reference_list.filter(u=>u.position!==f[0]&&u.position!==f[1])}else if((i.type==="literal"||i.type==="identifier")&&(a.type==="literal"||a.type==="identifier")){let d=this.UnitToAddress(i);if(!d&&i.type==="literal"&&typeof i.value=="number"&&i.value<0){let f={...i,text:(i.text||"").replace(/^-/,""),position:i.position+1,value:-i.value};d=this.UnitToAddress(f),d&&(c={type:"operator",operator:"-",position:i.position,id:this.id_counter++})}let h=this.UnitToAddress(a);d&&h&&(d.column===1/0&&h.column===1/0||d.row===1/0&&h.row===1/0)&&(l=d.label+":"+h.label,o={type:"range",id:this.id_counter++,position:d.position,start:d,end:h,label:l})}}o?(c&&t.push(c),t.push(o),this.dependencies.ranges[l]=o,this.full_reference_list.push(o),r+=2):t.push(i)}return t}BinaryToComplex(e){if(e.type==="binary")if((e.operator==="+"||e.operator==="-")&&e.left.type==="literal"&&typeof e.left.value=="number"&&e.right.type==="complex"&&!e.right.composited){let t="";t=this.expression.substring(e.left.position,e.right.position+(e.right.text?.length||0));let r=e.right.imaginary;return e.operator==="-"&&(r=-r),{type:"complex",position:e.left.position,text:t,id:this.id_counter++,imaginary:r,real:e.left.value,composited:!0}}else e.left=this.BinaryToComplex(e.left),e.right=this.BinaryToComplex(e.right);else if(e.type==="unary"&&(e.operator==="-"||e.operator==="+")&&e.operand.type==="complex"&&e.operand.text===this.imaginary_number)return{...e.operand,position:e.position,text:this.expression.substring(e.position,e.operand.position+(e.operand.text||"").length),imaginary:e.operand.imaginary*(e.operator==="-"?-1:1)};return e}ArrangeUnits(e){if(e.length===0)return{type:"missing",id:this.id_counter++};if(e.length===1)return e[0];let t=[];for(let r=0;r<e.length;r++){let i=e[r];if(i.type!=="group-separator"){if(i.type==="operator")if(t.length===0||t[t.length-1].type==="operator")if(Fo[i.operator]){let n=this.BinaryToComplex(this.ArrangeUnits(e.slice(r+1)));if(!this.valid)return{type:"group",id:this.id_counter++,elements:e,explicit:!1};n.type==="binary"?(n.left={type:"unary",id:this.id_counter++,operator:i.operator,operand:n.left,position:i.position},i=n):i={type:"unary",id:this.id_counter++,operator:i.operator,operand:n,position:i.position},r=e.length}else return this.error=`unexpected character [2]: ${i.operator}`,this.error_position=i.position,this.valid=!1,{type:"group",id:this.id_counter++,elements:e,explicit:!1};else{t.push(i);continue}if(t.length<2){if(t.length===1){let n=t[0].type;if(i.type==="group"&&i.explicit&&(n==="address"||n==="call"||n==="identifier"||n==="implicit-call")){let a=i.elements;a.length===1&&a[0].type==="group"&&!a[0].explicit&&(a=a[0].elements),t[0]={type:"implicit-call",call:t[0],args:a,id:this.id_counter++,position:t[0].position};continue}}t.push(i)}else if(t[t.length-1].type==="operator"){let n=t[t.length-2],a=t[t.length-1],o=a.operator,l={type:"binary",id:this.id_counter++,left:n,operator:o,position:a.position,right:i};n.type==="binary"&&Ur[o]>Ur[n.operator]&&(l.left=n.left,l.operator=n.operator,l.position=n.position,l.right={type:"binary",id:this.id_counter++,left:n.right,right:i,operator:o,position:a.position}),t.splice(-2,2,l)}else t.push(i)}}return t.length>1?{type:"group",id:this.id_counter++,elements:t,explicit:!1}:t[0]}ParseNext(e=!0){this.ConsumeWhiteSpace();let t=this.data[this.index];if(t===kr)return{type:"literal",id:this.id_counter++,position:this.index,value:this.ConsumeString()};if(t>=Ee&&t<=ft||t===this.decimal_mark_char)return this.ConsumeNumber();if(t===Ao)return this.ConsumeArray();if(e&&(t===pt||t===Nr)){let r=this.data[this.index+1];if(r>=Ee&&r<=ft||r===this.decimal_mark_char)return this.ConsumeNumber()}else if(t>=Qe&&t<=Bt||t>=bt&&t<=Wt||t===Fr||t===Pr||t===Rr||t===Zt||t===_t||t>=Dr&&t<=Lr)return this.ConsumeToken(t);return t}ConsumeArray(){let e={type:"array",id:this.id_counter++,values:[],position:this.index};this.index++;let t=0,r=0;for(;this.index<this.length;){let i=this.ParseNext(),n=this.index;if(typeof i=="number")switch(this.index++,i){case Oi:r++,t=0;break;case mt:t++;break;case To:return e;default:this.valid&&(this.error="invalid character in array literal",this.error_position=n,this.valid=!1);break}else switch(i.type){case"literal":e.values[t]||(e.values[t]=[]),e.values[t][r]=i.value;break;default:this.valid&&(this.error="invalid value in array literal",this.error_position=n,this.valid=!1);break}}return e}ConsumeOperator(){for(let e of Po)if(this.expression.substr(this.index,e.length)===e){let t=this.index;return this.index+=e.length,{type:"operator",id:this.id_counter++,operator:e,position:t}}return null}ConsumeArguments(){this.index++;let e=0,t=[];for(;this.index<this.length;){let r=this.ParseGeneric([this.argument_separator_char,Mr]);r!==null&&t.push(r);let i=this.data[this.index];if(i===this.argument_separator_char){this.index++,e++;for(let n=t.length;n<e;n++)t.push({type:"missing",id:this.id_counter++})}else if(i===Mr)return this.index++,t}return t}ConsumeToken(e){let t=[e],r=this.index,i=e===Rr,n=0,a=!1;for(e===_t&&(n=1,a=!0),++this.index;this.index<this.length;this.index++){let h=this.data[this.index];if(h>=Qe&&h<=Bt||h>=bt&&h<=Wt||h>=Dr&&h<=Lr||h===Fr||h===Zt||h===Er||h===ko||i||h>=Ee&&h<=ft||h===_t||n>0&&h===Vi||h===pt&&this.flags.r1c1&&n===1||n>0&&h===Ro&&this.data[this.index-1]===_t||n===1&&(h===mt||h===Gi)||n>1||h===Io&&n===0)t.push(h),h===_t&&(n++,a=!0),h===Vi&&n--,h===Rr&&(i=!1);else break}this.data[this.index]===Pr&&t.push(this.data[this.index++]);let o=t.map(h=>String.fromCharCode(h)).join("");if(i)return this.error="unbalanced single quote",this.error_position=r,this.valid=!1,{type:"identifier",id:this.id_counter++,name:o,position:r};if(n)return this.error="unbalanced square bracket",this.error_position=r,this.valid=!1,{type:"identifier",id:this.id_counter++,name:o,position:r};if(this.ConsumeWhiteSpace(),this.flags.spreadsheet_semantics){let h=this.ConsumeAddress(o,r);if(h)return h}if(this.data[this.index]===$i){let h=this.ConsumeArguments();return{type:"call",id:this.id_counter++,name:o,args:h,position:r,end:this.index}}if(this.flags.spreadsheet_semantics&&a){let h=this.ConsumeStructuredReference(o,r);if(h)return h}let c=o.toLowerCase();if(c==="true"||this.flags.boolean_true&&c===this.flags.boolean_true.toLowerCase())return{type:"literal",id:this.id_counter++,value:!0,position:r};if(c==="false"||this.flags.boolean_false&&c===this.flags.boolean_false.toLowerCase())return{type:"literal",id:this.id_counter++,value:!1,position:r};let d={type:"identifier",id:this.id_counter++,name:o,position:r};return this.full_reference_list.push(d),d}ConsumeStructuredReference(e,t){let r=e.length,i=e,n="",a=0;for(;a<r;a++){if(e[a]==="["){e=e.substring(a);break}n+=e[a]}if(e[0]!=="["||e[e.length-1]!=="]")return;e=e.substring(1,e.length-1);let o=e.split(",").map(h=>h.trim()),l="column",c="";if(o.length>2)return;o.length===2?(/\\[#this row\\]/i.test(o[0])?l="row":/\\[#all\\]/i.test(o[0])&&(l="all"),c=o[1]):(c=o[0],c[0]==="@"&&(l="row",c=c.substring(1,c.length))),c[0]==="["&&c[c.length-1]==="]"&&(c=c.substring(1,c.length-1));let d={type:"structured-reference",id:this.id_counter++,label:i,position:t,scope:l,column:c,table:n};return this.full_reference_list.push(d),d}ConsumeAddress(e,t){let r=t,i=e.length,n,a=e.split("!");if(a.length>1&&(n=a.slice(0,a.length-1).join("!"),t+=n.length+1),this.flags.r1c1){let h=a[a.length-1].match(this.r1c1_regex);if(h){let f={type:"address",id:this.id_counter++,label:e,row:0,column:0,position:r,sheet:n,r1c1:!0};return h[1][0]==="["?(f.offset_row=!0,f.row=Number(h[1].substring(1,h[1].length-1))):h[1]?(f.row=Number(h[1])-1,this.flags.r1c1_proper_semantics&&(f.absolute_row=!0)):(f.offset_row=!0,f.row=0),h[2][0]==="["?(f.offset_column=!0,f.column=Number(h[2].substring(1,h[2].length-1))):h[2]?(f.column=Number(h[2])-1,this.flags.r1c1_proper_semantics&&(f.absolute_column=!0)):(f.offset_column=!0,f.column=0),f}}let o=this.ConsumeAddressColumn(t);if(!o)return null;t=o.position;let l=this.ConsumeAddressRow(t);if(!l||(t=l.position,o.column===8508&&l.row===9))return null;let c=n?n+e.substr(n.length,t-r).toUpperCase():e.substr(0,t-r).toUpperCase();n&&n[0]==="\'"&&(n=n.substr(1,n.length-2));let d={type:"address",id:this.id_counter++,label:c,row:l.row,column:o.column,absolute_row:l.absolute,absolute_column:o.absolute,position:r,sheet:n,spill:l.spill};return i!==t-r?null:(this.dependencies.addresses[d.label]=d,this.address_refcount[d.label]=(this.address_refcount[d.label]||0)+1,this.full_reference_list.push(d),d)}ConsumeAddressRow(e){let t=this.data[e]===Zt;t&&e++;let r=e,i=0;for(;;e++){let a=this.data[e];if(a>=Ee&&a<=ft)i*=10,i+=a-Ee;else break}if(r===e||i===0)return!1;let n=!1;return this.data[e]===Pr&&(e++,n=!0),{absolute:t,row:i-1,position:e,spill:n}}ConsumeAddressColumn(e){let t=-1,r=0,i=this.data[e]===Zt;for(i&&e++;;e++,r++){if(r>=4)return!1;let n=this.data[e];if(n>=Qe&&n<=Bt)t=26*(1+t)+(n-Qe);else if(n>=bt&&n<=Wt)t=26*(1+t)+(n-bt);else break}return t<0?!1:{absolute:i,column:t,position:e}}ConsumeNumber(){let e=this.index,t=0,r=!1,i=!1,n=0,a=0,o=0,l="integer",c=0,d=!1,h=this.index;for(;this.index<this.length;this.index++,c++){let u=this.data[this.index];if(u===this.decimal_mark_char)if(l==="integer")l="fraction";else break;else if(u===So){n/=100,o/=100,this.index++;break}else if(u===Nr||u===pt)if(c===0)u===pt&&(i=!0);else break;else if(u===Eo||u===No)if(l==="integer"||l==="fraction")l="exponent",this.index<this.length-1&&(this.data[this.index+1]===Nr?this.index++:this.data[this.index+1]===pt&&(this.index++,r=!0));else break;else if(u===this.imaginary_char){let p=this.data[this.index+1];if(p>=Qe&&p<=Bt||p>=bt&&p<=Wt||p>=Dr&&p<=Lr||p===Fr)break;if(l==="integer"||l==="fraction"){this.index++,d=!0;break}}else if(u>=Ee&&u<=ft)switch(l){case"integer":n=n*10+(u-Ee);break;case"fraction":o=o*10+(u-Ee),a++;break;case"exponent":t=t*10+(u-Ee);break}else break}let f=n+o/Math.pow(10,a);return l==="exponent"&&(f=f*Math.pow(10,(r?-1:1)*t)),d?{type:"complex",id:this.id_counter++,position:e,imaginary:i?-f:f,real:0,text:this.expression.substring(h,this.index)||""}:{type:"literal",id:this.id_counter++,position:e,value:i?-f:f,text:this.expression.substring(h,this.index)||""}}ConsumeString(){this.index++;let e=[];for(;this.index<this.length;this.index++){let t=this.data[this.index];if(t===kr&&(this.index++,this.index>=this.length||this.data[this.index]!==kr))break;e.push(t)}return e.map(t=>String.fromCharCode(t)).join("")}ConsumeWhiteSpace(){for(;this.index<this.length;){let e=this.data[this.index];if(e===Gi||e===xo||e===vo||e===Co||e===wo)this.index++;else return}}};var Zi=class s{static _instance=new s;constructor(){}static get instance(){return this._instance}HTML(e,t={}){t={br:!0,...t};let r=[];for(let i of e){let n=[];for(let a of i)a.pre&&n.push("<pre>"),a.emphasis&&n.push("<em>"),a.strong&&n.push("<strong>"),a.strike&&n.push("<strike>"),n.push(a.text),a.strike&&n.push("</strike>"),a.strong&&n.push("</strong>"),a.emphasis&&n.push("</em>"),a.pre&&n.push("</pre>");r.push(n.join(""))}return r.join(t.br?`<br/>\n`:`\n`)}Dummy(e=""){return e.split(/\\n/).map(t=>[{text:t}])}Parse(e=""){let t=this.Tokenize(e);for(let r=0;r<t.length;r++){let i=t[r];if(i.type==="delimeter"){let n=t[r-1],a=t[r+1],o=!n||n.type==="whitespace"||n.type==="newline",l=n&&n.type==="text"&&/[^\\w\\d]$/.test(n.text),c=!a||a.type==="whitespace"||a.type==="newline",d=a&&a.type==="text"&&/^[^\\w\\d]/.test(a.text);i.left_flanking=!c&&(!d||o),i.right_flanking=!o&&(!l||c||d)}}return this.ApplyFormatting(t),this.Consolidate(t)}IsWhitespace(e){return e===" "||e===" "}IsNewline(e){return e==="\\r"||e===`\n`}IsDelimeter(e){return e==="*"||e==="_"||e==="~"}Consolidate(e){let t=[],r={},i=[],n={type:"text",text:""};for(let a of e)if(a.type==="newline")n.text.length&&i.push(n),n={...r,text:"",type:"text"},t.push(i),i=[];else switch((!!r.strong!=!!a.strong||!!r.emphasis!=!!a.emphasis||!!r.strike!=!!a.strike)&&(r.strong=!!a.strong,r.emphasis=!!a.emphasis,r.strike=!!a.strike,n.text.length&&i.push(n),n={...r,text:"",type:"text"}),a.type){case"text":case"whitespace":n.text+=a.text;break;case"delimeter":for(let o=0;o<a.length;o++)n.text+=a.char;break}return n.text.length&&i.push(n),i.length&&t.push(i),t}ApplyFormatting(e,t){let r=0,i=e.length;for(r=0;r<i;r++){let n=e[r];if(n.type==="delimeter"){if(t&&n.right_flanking&&t.char===n.char&&n.length>0)return{index:r,token:n};if(n.left_flanking){let a=this.ApplyFormatting(e.slice(r+1),n);if(a.token){let o=Math.min(a.token.length,n.length),l=n.char==="~",c=!l&&!!(o%2),d=!l&&o>=2;for(let h=r+1;h<=r+a.index;h++)e[h].strong=!!e[h].strong||d,e[h].emphasis=!!e[h].emphasis||c,e[h].strike=!!e[h].strike||l;a.token.length-=o,n.length-=o,n.length>0?r--:r+=a.index}}}}return{index:r}}Tokenize(e=""){let t=[],r=e.length,i=0,n=!1,a="";for(i=0;i<r;i++){let o=e[i];if(this.IsWhitespace(o)){a&&t.push({type:"text",text:a});let l=o;for(;;){let c=e[i+1];if(this.IsWhitespace(c))l+=c,i++;else break}t.push({type:"whitespace",text:l}),n=!1,a=""}else if(this.IsNewline(o)){a&&t.push({type:"text",text:a}),t.push({type:"newline",text:o});let l="";for(;;){let c=e[i+1];if(this.IsNewline(c))l+=c,i++;else break}l.length&&t.push({type:"newline",text:l}),n=!1,a=""}else if(n)a+=o,n=!1;else if(this.IsDelimeter(o)){a&&t.push({type:"text",text:a});let l=o;for(;;){let c=e[i+1];if(c===o)l+=c,i++;else break}t.push({type:"delimeter",text:l,char:o,length:l.length}),n=!1,a=""}else o==="\\\\"?n=!0:a+=o}return a&&t.push({type:"text",text:a}),t}};var Bi={"c:tx":{"c:strRef":{"c:f":"","c:strCache":{"c:ptCount":{a$:{val:"1"}},"c:pt":{a$:{idx:"0"},"c:v":""}}}},"c:overlay":{a$:{val:"0"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"1400",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",spc:"0",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}}},Wi={"c:tx":{"c:rich":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"1400",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",spc:"0",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:r":{"a:rPr":{a$:{lang:""}},"a:t":""}}}},"c:overlay":{a$:{val:"0"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"1400",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",spc:"0",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}}},gt={"c:chartSpace":{a$:{"xmlns:c":"http://schemas.openxmlformats.org/drawingml/2006/chart","xmlns:a":"http://schemas.openxmlformats.org/drawingml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:c16r2":"http://schemas.microsoft.com/office/drawing/2015/06/chart"},"c:date1904":{a$:{val:"0"}},"c:lang":{a$:{val:"en-US"}},"c:roundedCorners":{a$:{val:"0"}},"mc:AlternateContent":{a$:{"xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006"},"mc:Choice":{a$:{Requires:"c14","xmlns:c14":"http://schemas.microsoft.com/office/drawing/2007/8/2/chart"},"c14:style":{a$:{val:"102"}}},"mc:Fallback":{"c:style":{a$:{val:"2"}}}},"c:chart":{},"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"bg1"}}},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:printSettings":{"c:headerFooter":{},"c:pageMargins":{a$:{b:"0.75",l:"0.7",r:"0.7",t:"0.75",header:"0.3",footer:"0.3"}},"c:pageSetup":{}}}};var Hi={"c:idx":{a$:{val:"0"}},"c:order":{a$:{val:"0"}},"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"accent1"}}},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:invertIfNegative":{a$:{val:"0"}},"c:val":{"c:numRef":{"c:f":""}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-F52E-47BC-822F-A046A80610BE}"}}}}},ji={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:barChart":{"c:barDir":{a$:{val:"col"}},"c:grouping":{a$:{val:"clustered"}},"c:varyColors":{a$:{val:"0"}},"c:ser":[],"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}}},"c:gapWidth":{a$:{val:"219"}},"c:overlap":{a$:{val:"-27"}},"c:axId":[{a$:{val:"47003664"}},{a$:{val:"1789284464"}}]},"c:catAx":{"c:axId":{a$:{val:"47003664"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"b"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"1789284464"}},"c:crosses":{a$:{val:"autoZero"}},"c:auto":{a$:{val:"1"}},"c:lblAlgn":{a$:{val:"ctr"}},"c:lblOffset":{a$:{val:"100"}},"c:noMultiLvlLbl":{a$:{val:"0"}}},"c:valAx":{"c:axId":{a$:{val:"1789284464"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"l"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:numFmt":{a$:{formatCode:"General",sourceLinked:"1"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"47003664"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"between"}}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}};var Yi={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:doughnutChart":{"c:varyColors":{a$:{val:"1"}},"c:ser":{"c:idx":{a$:{val:"0"}},"c:order":{a$:{val:"0"}},"c:dPt":{"c:idx":{a$:{val:"3"}},"c:bubble3D":{a$:{val:"0"}},"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"accent4"}}},"a:ln":{a$:{w:"19050"},"a:solidFill":{"a:schemeClr":{a$:{val:"lt1"}}}},"a:effectLst":{}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000007-E886-49A6-AE6D-C67D8A27530F}"}}}}},"c:cat":{"c:strRef":{"c:f":""}},"c:val":{"c:numRef":{"c:f":""}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-3689-4BB4-A84F-05B9F3BBE577}"}}}}},"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}},"c:showLeaderLines":{a$:{val:"1"}}},"c:firstSliceAng":{a$:{val:"0"}},"c:holeSize":{a$:{val:"75"}}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:legend":{"c:legendPos":{a$:{val:"b"}},"c:overlay":{a$:{val:"0"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{a$:{rtl:"0"},"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}};var Ji={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:scatterChart":{"c:scatterStyle":{a$:{val:"lineMarker"}},"c:varyColors":{a$:{val:"0"}},"c:ser":[],"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}}},"c:axId":[{a$:{val:"2028657983"}},{a$:{val:"2023395087"}}]},"c:valAx":[{"c:axId":{a$:{val:"2028657983"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"b"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2023395087"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}},{"c:axId":{a$:{val:"2023395087"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"l"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:numFmt":{a$:{formatCode:"0.00",sourceLinked:"1"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2028657983"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}}],"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}},Xi={"c:spPr":{"a:ln":{a$:{w:"19050",cap:"rnd"},"a:solidFill":{"a:schemeClr":{a$:{val:"accent1"}}},"a:round":{}},"a:effectLst":{}},"c:marker":{"c:symbol":{a$:{val:"none"}}},"c:xVal":{"c:numRef":{"c:f":""}},"c:yVal":{"c:numRef":{"c:f":""}},"c:smooth":{a$:{val:"0"}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-1F6C-44A9-AA4F-6706F20CC72E}"}}}}};var Qi={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:bubbleChart":{"c:varyColors":{a$:{val:"0"}},"c:ser":[],"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}}},"c:axId":[{a$:{val:"2028657983"}},{a$:{val:"2023395087"}}]},"c:valAx":[{"c:axId":{a$:{val:"2028657983"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"b"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2023395087"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}},{"c:axId":{a$:{val:"2023395087"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"l"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:numFmt":{a$:{formatCode:"0.00",sourceLinked:"1"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2028657983"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}}],"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}},qi={"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"accent1"},"a:alpha":{a$:{val:"75000"}}}},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:xVal":{"c:numRef":{"c:f":""}},"c:yVal":{"c:numRef":{"c:f":""}},"c:bubbleSize":{"c:numRef":{"c:f":""}},"c:bubble3D":{a$:{val:"0"}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-03D7-43A5-9DAB-5775FFEF9C03}"}}}}};var Ke=class s{constructor(e,t=s.next_chart_index++){this.options=e;this.index=t}static next_chart_index=1;relationships={};UpdateChartTitle(e){let t=this.options.title||{type:"literal",value:""};if(t&&t.type==="literal"){let r=JSON.parse(JSON.stringify(Wi)),i=r["c:tx"]["c:rich"]["a:p"];i["a:r"]={"a:rPr":{a$:{lang:rt.locale}},"a:t":t.value},e["c:title"]=r}else if(t){let r=JSON.parse(JSON.stringify(Bi));r["c:tx"]["c:strRef"]["c:f"]=t.label,e["c:title"]=r}}toJSON(){switch(this.options.type){case"column":case"bar":return this.CreateBarChart();case"scatter":case"scatter2":return this.CreateScatterChart();case"bubble":return this.CreateBubbleChart();case"donut":return this.CreateDonutChart();default:console.info("unhandled chart type",this.options.type)}return this.CreateBarChart()}CreateBubbleChart(){let e=JSON.parse(JSON.stringify(gt)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Qi));t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let i=t["c:chart"]["c:plotArea"]["c:bubbleChart"]["c:ser"],n=!1;for(let a=0;a<this.options.data.length;a++){let o=JSON.parse(JSON.stringify(qi));if(o["c:idx"]={a$:{val:a.toString()}},o["c:order"]={a$:{val:a.toString()}},this.options.names&&this.options.names[a]){let l=this.options.names[a];switch(l.type){case"literal":o["c:tx"]={"c:v":l.value.toString()},n=!0;break;case"range":case"address":o["c:tx"]={"c:strRef":{"c:f":l.label}},n=!0;break}}a<6&&(o["c:spPr"]["a:solidFill"]["a:schemeClr"].a$.val=`accent${a+1}`),o["c:yVal"]["c:numRef"]["c:f"]=this.options.data[a]?.label,this.options.labels2&&this.options.labels2[a]&&(o["c:xVal"]["c:numRef"]["c:f"]=this.options.labels2[a]?.label),this.options.labels3&&this.options.labels3[a]&&(o["c:bubbleSize"]["c:numRef"]["c:f"]=this.options.labels3[a]?.label),i.push(o)}return n&&(t["c:chart"]["c:legend"]={"c:legendPos":{a$:{val:"b"}},"c:overlay":{a$:{val:"0"}}}),e}CreateScatterChart(){let e=JSON.parse(JSON.stringify(gt)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Ji));this.options.smooth&&(r["c:plotArea"]["c:scatterChart"]["c:scatterStyle"].a$.val="smoothMarker"),t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let i=t["c:chart"]["c:plotArea"]["c:scatterChart"]["c:ser"],n=!1;for(let a=0;a<this.options.data.length;a++){let o=JSON.parse(JSON.stringify(Xi));if(o["c:idx"]={a$:{val:a.toString()}},o["c:order"]={a$:{val:a.toString()}},this.options.names&&this.options.names[a]){let l=this.options.names[a];switch(l.type){case"literal":o["c:tx"]={"c:v":l.value.toString()},n=!0;break;case"range":case"address":o["c:tx"]={"c:strRef":{"c:f":l.label}},n=!0;break}}a<6&&(o["c:spPr"]["a:ln"]["a:solidFill"]["a:schemeClr"].a$.val=`accent${a+1}`),o["c:yVal"]["c:numRef"]["c:f"]=this.options.data[a]?.label,this.options.labels2&&this.options.labels2[a]&&(o["c:xVal"]["c:numRef"]["c:f"]=this.options.labels2[a]?.label),this.options.smooth&&(o["c:smooth"]={a$:{val:1}}),i.push(o)}return n&&(t["c:chart"]["c:legend"]={"c:legendPos":{a$:{val:"b"}},"c:overlay":{a$:{val:"0"}}}),e}CreateDonutChart(){let e=JSON.parse(JSON.stringify(gt)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Yi));t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let i=r["c:plotArea"]["c:doughnutChart"];return i&&(i["c:ser"]["c:cat"]["c:strRef"]["c:f"]=this.options.labels?.label||"",i["c:ser"]["c:val"]["c:numRef"]["c:f"]=this.options.data[0]?.label||""),e}CreateBarChart(){let e=JSON.parse(JSON.stringify(gt)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(ji));t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let i=r["c:plotArea"]["c:barChart"];if(i){let n=i["c:barDir"];n&&(n.a$.val=this.options.type==="bar"?"bar":"col");let a=i["c:ser"];for(let o=0;o<this.options.data.length;o++){let l=JSON.parse(JSON.stringify(Hi));l["c:idx"]={a$:{val:o.toString()}},l["c:order"]={a$:{val:o.toString()}},o<6&&(l["c:spPr"]["a:solidFill"]["a:schemeClr"].a$.val=`accent${o+1}`),!o&&this.options.labels&&(l["c:cat"]={"c:strRef":{"c:f":this.options.labels.label}}),l["c:val"]["c:numRef"]["c:f"]=this.options.data[o]?.label,a.push(l)}}return e}};var Ht=class s{constructor(e,t=s.next_image_index++){this.options=e;this.index=t;switch(e.mimetype){case"svg+xml":this.extension="svg";break;case"image/png":this.extension="png";break;case"jpg":this.extension="jpeg";break;case"svg":case"png":case"jpeg":case"gif":this.extension=e.mimetype;break;default:console.warn("unhandled mime type",e.mimetype);break}}static next_image_index=1;extension=""};var Ki=9525,yt=class s{constructor(e=s.next_drawing_index++){this.index=e}static next_drawing_index=1;sheet_drawing_relationship=0;charts=[];images=[];relationships={};AddImage(e,t){let r=new Ht(e);if(r.extension){let i=ge(this.relationships,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",`../media/image${r.index}.${r.extension}`);this.images.push({image:r,relationship:i,anchor:t})}}AddChart(e,t){let r=new Ke(e),i=ge(this.relationships,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",`../charts/chart${r.index}.xml`);this.charts.push({chart:r,anchor:t,relationship:i})}CornerToJSON(e){return{"xdr:col":e.column,"xdr:colOff":(e.column_offset||0)*Ki,"xdr:row":e.row,"xdr:rowOff":(e.row_offset||0)*Ki}}AnchorToJSON(e){return{"xdr:from":{...this.CornerToJSON(e.from)},"xdr:to":{...this.CornerToJSON(e.to)}}}toJSON(){let e=this.images.map(i=>({a$:{editAs:"oneCell"},...this.AnchorToJSON(i.anchor),"xdr:pic":{"xdr:nvPicPr":{"xdr:cNvPr":{a$:{id:i.image.index+1,name:"Image "+i.image.index}},"xdr:cNvPicPr":{"a:picLocks":{a$:{noChangeAspect:1}}}},"xdr:blipFill":{"a:blip":{a$:i.image.extension==="svg"?{"xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships"}:{"xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","r:embed":i.relationship},"a:extLst":{"a:ext":[{a$:{uri:"{28A0092B-C50C-407E-A947-70E740481C1C}"},"a14:useLocalDpi":{a$:{"xmlns:a14":"http://schemas.microsoft.com/office/drawing/2010/main",val:0}}},i.image.extension==="svg"?{a$:{uri:"{96DAC541-7B7A-43D3-8B79-37D633B846F1}"},"asvg:svgBlip":{a$:{"xmlns:asvg":"http://schemas.microsoft.com/office/drawing/2016/SVG/main","r:embed":i.relationship}}}:void 0]}},"a:stretch":{"a:fillRect":{}}},"xdr:spPr":{"a:xfrm":{"a:off":{a$:{x:0,y:0}},"a:ext":{a$:{cx:4057650,cy:6172200}}},"a:prstGeom":{a$:{prst:"rect"},"a:avLst":{}}}},"xdr:clientData":{}})),t=this.charts.map(i=>({...this.AnchorToJSON(i.anchor),"xdr:graphicFrame":{a$:{macro:""},"xdr:nvGraphicFramePr":{"xdr:cNvPr":{a$:{id:i.chart.index+1,name:`Chart ${i.chart.index}`}},"xdr:cNvGraphicFramePr":{}},"xdr:xfrm":{"a:off":{a$:{x:0,y:0}},"a:ext":{a$:{cx:0,cy:0}}},"a:graphic":{"a:graphicData":{a$:{uri:"http://schemas.openxmlformats.org/drawingml/2006/chart"},"c:chart":{a$:{"xmlns:c":"http://schemas.openxmlformats.org/drawingml/2006/chart","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","r:id":i.relationship}}}}},"xdr:clientData":{}}));return{"xdr:wsDr":{a$:{"xmlns:xdr":"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing","xmlns:a":"http://schemas.openxmlformats.org/drawingml/2006/main"},"xdr:twoCellAnchor":[...t,...e]}}}};var et=s=>"row"in s&&"col"in s,Ue=s=>"from"in s&&"to"in s&&et(s.from)&&et(s.to),wt=(s,e)=>e.sheet===s.sheet&&e.row>=s.from.row&&e.row<=s.to.row&&e.col>=s.from.col&&e.col<=s.to.col,jt=(s,e=0,t=0)=>({from:{row:s.from.row+e,col:s.from.col+t,sheet:s.from.sheet},to:{row:s.to.row+e,col:s.to.col+t,sheet:s.to.sheet}});var Yt=class{constructor(e={}){this.options=e}path;rels_path;rels={};sheet_data={};shared_strings;extent;visible_state;tab_selected=!1;default_width=0;drawings=[];TranslateAddress(e){e=e.toUpperCase();let t=e.match(/([A-Z]+\\d+):([A-Z]+\\d+)/);if(t)return{from:this.TranslateAddress(t[1]),to:this.TranslateAddress(t[2])};let r=0,i=0;if(t=e.match(/^([A-Z]+)(\\d+)$/),t){r=Number(t[2]),i=0;let n=t[1].length;for(let a=0;a<n;a++){let o=t[1].charCodeAt(a)-64;i=i*26+o}}return{row:r,col:i}}Address(e,t=!1){if(Ue(e))return this.Address(e.from,t)+":"+this.Address(e.to,t);let r="",i=e.col;for(;i>0;){let a=(i-1)%26+1;r=String.fromCharCode(64+a)+r,i=(i-a)/26}let n=e.sheet?`\'${e.sheet}\'!`:"";return t?`${n}$${r}$${e.row}`:n+r+e.row}NormalizeAddress(e){let t,r;return typeof e=="string"?(t=e.toUpperCase(),r=this.TranslateAddress(t)):(r=e,t=this.Address(r)),{a:t,rc:r}}Parse(){let e=this.sheet_data.worksheet?.dimension?.a$?.ref,t=this.TranslateAddress(e||"");Ue(t)?this.extent=JSON.parse(JSON.stringify(t)):this.extent={from:JSON.parse(JSON.stringify(t)),to:JSON.parse(JSON.stringify(t))}}};var Gr=St(es()),ts=St(Tt()),tt=class{records;text=new Map;constructor(e){this.records=Gr.default.parse(e)}Has(e){return this.text.has(e)||!!this.records?.[e]}ArrayBuffer(){let e={};if(this.records)for(let[r,i]of Object.entries(this.records))e[r]=new Uint8Array(i);let t=new TextEncoder;for(let[r,i]of this.text.entries())e[r]=t.encode(i);return Gr.default.encode(e)}SetBinary(e,t,r){if(r==="base64"){let i=ts.default.toByteArray(t);this.records[e]=i}else throw new Error("unsupported encoding: "+r)}Set(e,t){this.text.set(e,t),this.records[e]&&delete this.records[e]}GetBinary(e){let t=this.records[e];if(t)return new Uint8Array(t);throw new Error("path not in records: "+e)}Get(e){let t=this.text.get(e);if(t)return t;let r=this.records[e];if(r)return t=new TextDecoder().decode(r),this.text.set(e,t),delete this.records[e],t;throw console.info(this),new Error("path not in zip file: "+e)}};var rs=(s,e,t)=>{if(e==="cell"){let r=s.cell_metadata[t-1];if(r){let i=s.metadata_types[r.t-1];if(i&&i.name!=="XLMDX"){let n=s.future_metadata[i.name];if(n)return n[r.v]||{}}}}else console.warn("value metadata not implemented");return{flags:{}}},is=s=>{let e={metadata_types:[],cell_metadata:[],future_metadata:{}},t=k.FindAll(s,"metadata/metadataTypes/metadataType");for(let i of t){let n=i.a$?.name||"",a=i.a$?.cellMeta,o=a==="1"||a==="true";e.metadata_types.push({name:n,cell_meta:o})}let r=k.FindAll(s,"metadata/futureMetadata");for(let i of r){let n=i.a$?.name||"";if(n){let a=[];for(let o of k.FindAll(i,"bk")){let l={flags:{}};for(let c of k.FindAll(o,"extLst/ext/xda:dynamicArrayProperties"))c?.a$.fDynamic==="1"&&(l.flags["dynamic-array"]=!0);a.push(l)}e.future_metadata[n]=a}}for(let i of k.FindAll(s,"metadata/cellMetadata/bk/rc"))e.cell_metadata.push({t:Number(i.a$?.t||-1),v:Number(i.a$?.v||-1)});return e};var ve=new De(Gt),Xt={greaterThan:">",greaterThanOrEqual:">=",lessThan:"<",lessThanOrEqual:"<=",equal:"=",notEqual:"<>"};var Jt=class{constructor(e){this.zip=e}xml={};shared_strings=new Ye;style_cache=new Xe;theme=new Le;named=[];rels={};metadata;sheets=[];active_tab=0;get sheet_count(){return this.sheets.length}ReadRels(e){let t={},r=this.zip.Has(e)?this.zip.Get(e):"",i=ve.parse(r||"");for(let n of i.Relationships?.Relationship||[]){let a=n.a$.Id;t[a]={id:a,type:n.a$.Type,target:n.a$.Target}}return t}Init(){this.rels=this.ReadRels("xl/_rels/workbook.xml.rels");let e=this.zip.Has("xl/sharedStrings.xml")?this.zip.Get("xl/sharedStrings.xml"):"",t=ve.parse(e||"");this.shared_strings.FromXML(t),this.zip.Has("xl/metadata.xml")&&(e=this.zip.Get("xl/metadata.xml"),t=ve.parse(e),this.metadata=is(t)),e=this.zip.Get("xl/theme/theme1.xml"),t=ve.parse(e),this.theme.FromXML(t),e=this.zip.Get("xl/styles.xml"),t=ve.parse(e),this.style_cache.FromXML(t,this.theme),e=this.zip.Get("xl/workbook.xml"),t=ve.parse(e),this.named=[];let r=k.FindAll(t,"workbook/definedNames/definedName");for(let a of r){let o=a.a$?.name,l=a.t$||"",c=a.a$?.localSheetId?Number(a.a$.localSheetId):void 0;this.named.push({name:o,expression:typeof l=="string"?l:l?.toString()||"",local_scope:c})}let i=k.FindAll(t,"workbook/bookViews/workbookView");i[0]?.a$?.activeTab&&(this.active_tab=Number(i[0].a$.activeTab)||0);let n=k.FindAll(t,"workbook/sheets/sheet");for(let a of n){let o=a.a$?.name;if(o){let l=a.a$.state,c=a.a$["r:id"],d=new Yt({name:o,rid:c,id:Number(a.a$.sheetId)});l==="hidden"?d.visible_state=1:l==="veryHidden"&&(d.visible_state=2),d.shared_strings=this.shared_strings,d.path=`xl/${this.rels[c].target}`,d.rels_path=d.path.replace("worksheets","worksheets/_rels")+".rels",e=this.zip.Get(d.path),d.sheet_data=ve.parse(e||""),d.rels=this.ReadRels(d.rels_path),d.Parse(),this.sheets.push(d)}}}ReadTable(e){let t=this.zip.Get(e.replace(/^../,"xl"));if(!t)return;let r=ve.parse(t),i=r.table?.a$?.name||"";return{name:i,display_name:r.table?.a$?.displayName||i,ref:r.table?.a$.ref||"",totals_row_shown:Number(r.table?.a$.totalsRowShown||"0")||0,totals_row_count:Number(r.table?.a$.totalsRowCount||"0")||0}}ReadDrawing(e){let t=this.zip.Get(e.replace(/^../,"xl"));if(!t)return;let r=ve.parse(t),i=this.ReadRels(e.replace(/^..\\/drawings/,"xl/drawings/_rels")+".rels"),n=[],a=k.FindAll(r,"xdr:wsDr/xdr:twoCellAnchor"),o=(l={})=>({column:l["xdr:col"]||0,column_offset:l["xdr:colOff"]||0,row:l["xdr:row"]||0,row_offset:l["xdr:rowOff"]||0});for(let l of a){let c={from:o(l["xdr:from"]),to:o(l["xdr:to"])},d=k.FindAll(l,"xdr:graphicFrame/a:graphic/a:graphicData/c:chart")[0];if(d||(d=k.FindAll(l,"mc:AlternateContent/mc:Choice/xdr:graphicFrame/a:graphic/a:graphicData/cx:chart")[0]),d&&d.a$&&d.a$["r:id"]){let h={type:"chart",anchor:c},f=i[d.a$["r:id"]];f&&f.target&&(h.chart=this.ReadChart(f.target)),n.push(h)}else{let h=k.FindAll(l,"xdr:pic/xdr:blipFill/a:blip")[0];if(h&&h.a$["r:embed"]){let f=i[h.a$["r:embed"]];if(f&&f.target&&/(?:jpg|jpeg|png|gif)$/i.test(f.target)){let u=f.target.replace(/^\\.\\./,"xl"),p=u.replace(/^.*\\//,""),g={type:"image",anchor:c,image:this.zip.GetBinary(u),filename:p};n.push(g)}}else{let f,u=k.FindAll(l,"xdr:sp")[0];if(u){let p=u.a$?.textlink||void 0,g=k.FindAll(u,"xdr:spPr")[0];if(g){f={};let w=g["a:solidFill"];if(w&&w["a:schemeClr"]?.a$?.val){let b=w["a:schemeClr"].a$.val.match(/accent(\\d+)/);if(b&&(f.fill={theme:Number(b[1])+3},w["a:schemeClr"]["a:lumOff"]?.a$?.val)){let m=Number(w["a:schemeClr"]["a:lumOff"].a$.val);isNaN(m)||(f.fill.tint=m/1e5)}}}let v=k.FindAll(u,"xdr:txBody")[0];if(v){let w=[],b=k.FindAll(v,"a:p");for(let m of b){let S=[],N,L=m["a:fld"];if(L&&L.a$?.type==="TxLink"){let V={text:`{${p}}`,reference:!0},$=L["a:rPr"];$&&(V.style={},$.a$?.b==="1"&&(V.style.bold=!0),$.a$?.i==="1"&&(V.style.italic=!0)),S.push(V)}let D=m["a:pPr"];D&&(N={},D.a$?.algn==="r"?N.horizontal_align="right":D.a$?.algn==="ctr"&&(N.horizontal_align="center"));let M=m["a:r"];if(M){Array.isArray(M)||(M=[M]);for(let V of M){let $={text:V["a:t"]||""},G=V["a:rPr"];G&&($.style={},G.a$?.b==="1"&&($.style.bold=!0),G.a$?.i==="1"&&($.style.italic=!0)),S.push($)}}w.push({content:S,style:N})}n.push({type:"textbox",style:f,paragraphs:w,anchor:c,reference:p})}}}}}return n}ReadChart(e){let t=this.zip.Get(e.replace(/^../,"xl"));if(!t)return;let r=ve.parse(t),i={type:0},n=k.FindChild(r,"c:chartSpace/c:chart/c:title");if(n){let l=k.FindChild(n,"c:tx/c:strRef/c:f");if(l)typeof l=="string"?i.title=l:l.t$&&(i.title=l.t$);else{let c=[],d=k.FindAll(n,"c:tx/c:rich/a:p/a:r");for(let h of d)h["a:t"]&&c.push(h["a:t"]);i.title=\'"\'+c.map(h=>typeof h=="string"?h:h.t$||"").join("")+\'"\'}}let a=(l,c)=>{let d=[],h=l["c:ser"]||[];Array.isArray(h)||(h=[h]);for(let f of h){let u=d.length,p=f["c:order"];p&&(u=Number(p.a$?.val||0)||0);let g={},v=k.FindChild(f,"c:tx/c:v");if(v){let w=v;w&&(g.title=`"${w}"`)}else v=k.FindChild(f,"c:tx/c:strRef/c:f"),v&&(g.title=v);if(c===4||c===7){let w=k.FindChild(f,"c:xVal/c:numRef/c:f");w&&(g.categories=w);let b=k.FindChild(f,"c:yVal/c:numRef/c:f");if(b&&(g.values=b),c===7){let m=k.FindChild(f,"c:bubbleSize/c:numRef/c:f");m&&(g.bubble_size=m)}}else{let w=k.FindChild(f,"c:val/c:numRef/c:f");w&&(g.values=w);let b=k.FindChild(f,"c:cat/c:strRef/c:f");b||(b=k.FindChild(f,"c:cat/c:numRef/c:f")),b&&(g.categories=b)}d[u]=g}return d},o=k.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:barChart");if(o&&(i.type=2,o["c:barDir"]&&o["c:barDir"].a$?.val==="col"&&(i.type=1,o["c:grouping"]?.a$?.val==="stacked"&&(i.flags||(i.flags=[]),i.flags.push("stacked"))),i.series=a(o)),o||(o=k.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:lineChart"),o&&(i.type=3,i.series=a(o))),o||(o=k.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:doughnutChart"),o&&(i.type=5,i.series=a(o))),o||(o=k.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:pieChart"),o&&(i.type=6,i.series=a(o))),o||(o=k.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:scatterChart"),o&&(i.type=4,i.series=a(o,4))),o||(o=k.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:bubbleChart"),o&&(i.type=7,i.series=a(o,7))),!o){let l=k.FindAll(r,"cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series");if(l?.length){let c=!0,d=!0,h=!0;for(let f of l){let u=f.a$?.layoutId;c&&u!=="clusteredColumn"&&(c=!1),h&&u!=="boxWhisker"&&(h=!1),c&&d&&(k.FindAll(f,"cx:layoutPr/cx:binning").length||(d=!1))}if(d){i.type=9,i.series=[];for(let u of l){if(u.a$?.hidden==="1")continue;let p={},g=k.FindAll(r,"cx:chartSpace/cx:chartData/cx:data"),v=[];for(let b of g)v.push(b["cx:numDim"]?.["cx:f"]||"");p.values=v.join(",");let w=k.FindAll(u,"cx:layoutPr/cx:binning/cx:binCount");if(w[0]){let b=Number(w[0].a$?.val||0);b&&(p.bin_count=b)}i.series.push(p)}let f=k.FindAll(r,"cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData");return f&&(f[0]?.["cx:f"]?i.title=f[0]["cx:f"]:f[0]?.["cx:v"]&&(i.title=\'"\'+f[0]["cx:v"]+\'"\')),console.info("histogram",i),i}if(h){i.type=8,i.series=[];let f=k.FindAll(r,"cx:chartSpace/cx:chartData/cx:data");for(let u of l){let p={},g=Number(u["cx:dataId"]?.a$?.val);for(let b of f)if(Number(b.a$?.id)===g){p.values=b["cx:numDim"]?.["cx:f"]||"";break}let v=k.FindAll(u,"cx:tx/cx:txData");v&&(v[0]?.["cx:f"]?p.title=v[0]["cx:f"]:v[0]?.["cx:v"]&&(p.title=\'"\'+v[0]["cx:v"]+\'"\'));let w=k.FindAll(r,"cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData");w&&(w[0]?.["cx:f"]?i.title=w[0]["cx:f"]:w[0]?.["cx:v"]&&(i.title=\'"\'+w[0]["cx:v"]+\'"\')),i.series.push(p)}return i}}}return o||(console.info("Chart type not handled",{xml:r}),i.type=10),i}GetNamedRanges(){return this.named}};var Ne=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n`,$r=s=>{if(Se(s))return{a$:{rgb:"FF"+s.text.substring(1)}};if(Ae(s))return{a$:{theme:$e(s),tint:s.tint}}},Qt=class{zip;xmloptions={format:!0,attributesGroupName:"a$",textNodeName:"t$",ignoreAttributes:!1,suppressEmptyNode:!0};xmlbuilder1=Ai(this.xmloptions);xmlparser2=new De(Gt);parser=new qe;decorated_functions={};Init(e={}){for(let r of Object.keys(e))this.decorated_functions[r.toLowerCase()]=e[r];let t=ss.toByteArray(Hr);this.zip=new tt(t.buffer)}WriteRels(e,t,r=!1){if(!this.zip)throw new Error("missing zip");let i=Object.keys(e),n={Relationships:{a$:{xmlns:"http://schemas.openxmlformats.org/package/2006/relationships"},Relationship:i.map(o=>{let l=e[o],c={Id:l.id,Target:l.target,Type:l.type};return l.mode&&(c.TargetMode=l.mode),{a$:c}})}},a=Ne+this.xmlbuilder1.build(n);r&&console.info(a),this.zip.Set(t,a)}WriteStyleCache(e){if(!this.zip)throw new Error("missing zip");let t=u=>{let p={};return u.indexed!==void 0&&(p.indexed=u.indexed),u.theme!==void 0&&(p.theme=u.theme),u.tint!==void 0&&(p.tint=u.tint),u.argb!==void 0&&(p.rgb=u.argb),p},r=e.cell_xfs.map(u=>{let p={a$:{numFmtId:u.number_format,fontId:u.font,fillId:u.fill,borderId:u.border}};if(u.horizontal_alignment||u.vertical_alignment||u.wrap_text||u.indent){let g={};u.horizontal_alignment&&(g.horizontal=u.horizontal_alignment),u.vertical_alignment&&(g.vertical=u.vertical_alignment),u.wrap_text&&(g.wrapText=1),u.indent&&u.horizontal_alignment!=="center"&&(g.indent=u.indent),p.alignment={a$:g}}return p}),i=u=>{if(u.color)return{indexed:u.color};if(u.rgba)return{rgb:u.rgba};if(typeof u.theme<"u")return{theme:u.theme,tint:u.tint}},n=e.borders.map(u=>{let p={},g={},v={},w={},b={};if(u.top.style){p.a$={style:u.top.style};let m=i(u.top);m&&(p.color={a$:m})}if(u.left.style){g.a$={style:u.left.style};let m=i(u.left);m&&(g.color={a$:m})}if(u.bottom.style){w.a$={style:u.bottom.style};let m=i(u.bottom);m&&(w.color={a$:m})}if(u.right.style){v.a$={style:u.right.style};let m=i(u.right);m&&(v.color={a$:m})}if(u.diagonal.style){b.a$={style:u.diagonal.style};let m=i(u.diagonal);m&&(b.color={a$:m})}return{left:g,right:v,top:p,bottom:w,diagonal:b}}),a=e.fills.map(u=>({patternFill:{a$:{patternType:u.pattern_gray!==void 0?`gray${u.pattern_gray}`:u.pattern_type},bgColor:u.bg_color?{a$:t(u.bg_color)}:void 0,fgColor:u.fg_color?{a$:t(u.fg_color)}:void 0}})),o=u=>{if(!(typeof u>"u"))return{a$:{val:u}}},l=e.fonts.map(u=>({b:u.bold?"":void 0,i:u.italic?"":void 0,u:u.underline?"":void 0,strike:u.strike?"":void 0,sz:o(u.size),family:o(u.family),name:o(u.name),scheme:o(u.scheme),color:u.color_argb?{a$:{rgb:u.color_argb}}:typeof u.color_theme<"u"?{a$:{theme:u.color_theme,tint:u.color_tint}}:void 0})),c=(u,p)=>{if(p.length)return{a$:{count:p.length},[u]:p}},d=e.dxf_styles.map(u=>{let p={};return(u.text||u.bold||u.italic||u.underline)&&(p.font={b:u.bold?{}:void 0,i:u.italic?{}:void 0,u:u.underline?{}:void 0,strike:u.strike?{}:void 0,color:$r(u.text)}),u.fill&&(p.fill={patternFill:{bgColor:$r(u.fill)}}),p}),h={styleSheet:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x14ac x16r2 xr","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac","xmlns:x16r2":"http://schemas.microsoft.com/office/spreadsheetml/2015/02/main","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision"},numFmts:e.number_formats.length?{a$:{count:e.number_formats.length},numFmt:e.number_formats.map(u=>({a$:{numFmtId:u.id,formatCode:u.format}}))}:void 0,fonts:c("font",l),fills:c("fill",a),borders:c("border",n),cellXfs:c("xf",r),dxfs:c("dxf",d)}},f=Ne+this.xmlbuilder1.build(h);this.zip?.Set("xl/styles.xml",f)}WriteSharedStrings(e){if(!this.zip)throw new Error("missing zip");let t={sst:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main",count:e.strings.length,uniqueCount:e.strings.length},si:[...e.strings.map(i=>({t:i}))]}},r=Ne+this.xmlbuilder1.build(t);this.zip.Set("xl/sharedStrings.xml",r)}SheetStyle(e,t){if(!e.sheet_style)return 0;let r=t.StyleOptionsFromProperties(e.sheet_style);return t.EnsureStyle(r)}RowStyle(e,t,r){let i=e.styles||e.cell_style_refs||[],n=[e.sheet_style];if(e.row_style){let o=e.row_style[r];typeof o=="number"&&(o=i[o]),o&&n.push(o)}let a=t.StyleOptionsFromProperties(Ce.Composite(n));return t.EnsureStyle(a)}ColumnStyle(e,t,r){let i=e.styles||e.cell_style_refs||[],n=[e.sheet_style];if(e.column_style){let o=e.column_style[r];typeof o=="number"&&(o=i[o]),o&&n.push(o)}let a=t.StyleOptionsFromProperties(Ce.Composite(n));return t.EnsureStyle(a)}StyleFromCell(e,t,r,i,n={}){let a=e.styles||e.cell_style_refs||[],o=[e.sheet_style];if(e.row_style){let c=e.row_style[r];typeof c=="number"&&(c=a[c]),c&&o.push(c)}if(e.column_style){let c=e.column_style[i];typeof c=="number"&&(c=a[c]),c&&o.push(c)}o.push(n);let l=t.StyleOptionsFromProperties(Ce.Composite(o));return t.EnsureStyle(l)}NormalizeAddress(e,t){let r=e.type==="address"?[e]:[e.start,e.end];for(let i of r)i.absolute_row=!0,i.absolute_column=!0,i.sheet||(i.sheet=t.name);return e.type==="range"&&(e.end.sheet=void 0),e.label=this.parser.Render(e),e}EnsureRange(e){return e.type==="range"?e:{type:"range",start:e,end:e,label:e.label,id:e.id,position:e.position}}AnnotationLayoutToAnchor(e,t){let r=i=>{let n=t.column_width&&t.column_width[i.address.column]?t.column_width[i.address.column]:t.default_column_width||100,a=t.row_height&&t.row_height[i.address.row]?t.row_height[i.address.row]:t.default_row_height||20;return{...i.address,row_offset:Math.round(i.offset.y*a),column_offset:Math.round(i.offset.x*n)}};return{from:r(e.tl),to:r(e.br)}}AnnotationRectToAnchor(e,t){let r={from:{row:-1,column:-1},to:{row:-1,column:-1}},i={top:0,left:0,width:301,height:301,...e},n={...i,right:i.left+i.width,bottom:i.top+i.height};for(let a=0,o=0;o<1e3;o++){let l=t.column_width&&t.column_width[o]?t.column_width[o]:t.default_column_width||100;if(r.from.column<0&&n.left<=a+l&&(r.from.column=o,r.from.column_offset=n.left-a),r.to.column<0&&n.right<=a+l){r.to.column=o,r.to.column_offset=n.right-a;break}a+=l}for(let a=0,o=0;o<1e3;o++){let l=t.row_height&&t.row_height[o]?t.row_height[o]:t.default_row_height||20;if(r.from.row<0&&n.top<=a+l&&(r.from.row=o,r.from.row_offset=n.top-a),r.to.row<0&&n.bottom<=a+l){r.to.row=o,r.to.row_offset=n.bottom-a;break}a+=l}return r}ParseImages(e){let t=[];for(let r of e.annotations||[])if(r.type==="image"&&r.data?.src){let i=r.data.src,n=i.match(/^data:image\\/([^;]*?);base64,/);if(n){let a=i.substr(n[0].length),o=n[1],l={data:a,mimetype:o,encoding:"base64"};switch(o){case"svg+xml":case"webp":case"jpeg":case"jpg":case"image/png":case"png":case"gif":r.layout?t.push({anchor:this.AnnotationLayoutToAnchor(r.layout,e),options:l}):r.rect?t.push({anchor:this.AnnotationRectToAnchor(r.rect,e),options:l}):console.warn("annotation missing layout");break;default:console.info("unhandled image type",o);break}}}return t}ParseCharts(e){let t=[],r=(i,n,a)=>{if(i.type==="range")n.data.push(this.NormalizeAddress(i,e));else if(i.type==="call"){if(/group/i.test(i.name))for(let o of i.args||[])r(o,n,a?a+" (recurse)":void 0);else if(/series/i.test(i.name)){let[o,l,c,d]=i.args;c&&(c.type==="range"||c.type==="address")?(n.data.push(this.EnsureRange(this.NormalizeAddress(c,e))),o&&(n.names||(n.names=[]),o.type==="address"&&this.NormalizeAddress(o,e),o.type==="range"?(this.NormalizeAddress(o.start,e),n.names[n.data.length-1]=o.start):n.names[n.data.length-1]=o),n.labels2||(n.labels2=[]),l&&(l.type==="range"||l.type==="address")&&(n.labels2[n.data.length-1]=this.EnsureRange(this.NormalizeAddress(l,e))),d&&(d.type==="range"||d.type==="address")&&(n.labels3||(n.labels3=[]),n.labels3[n.data.length-1]=this.EnsureRange(this.NormalizeAddress(d,e)))):console.info("invalid series missing Y",{y:c,arg:i,ref:a})}}};for(let i of e.annotations||[]){let n=this.parser.Parse(i.formula||"");if(n.expression&&n.expression.type==="call"){let a="";switch(n.expression.name.toLowerCase()){case"line.chart":a="scatter";break;case"bubble.chart":a="bubble";break;case"scatter.line":a="scatter2";break;case"donut.chart":a="donut";break;case"bar.chart":a="bar";break;case"column.chart":a="column";break}if(a==="column"||a==="donut"||a==="bar"||a==="scatter"||a==="scatter2"||a==="bubble"){let o={type:a,data:[]},l=a==="scatter2"||a==="bubble"?1:2,c=n.expression.args[l];if(c&&c.type==="literal"?o.title=c:c&&c.type==="address"&&(o.title=this.NormalizeAddress(c,e)),n.expression.args[0]){let h=n.expression.args[0];if(a==="scatter2"||a==="bar"||a==="column"||a==="scatter"||a==="bubble")r(h,o,e.name);else if(h.type==="range")o.data.push(this.NormalizeAddress(h,e));else if(h.type==="call"&&/group/i.test(h.name))for(let f of h.args)f.type==="range"?o.data.push(this.NormalizeAddress(f,e)):f.type==="call"&&/series/i.test(f.name)&&f.args[2]&&f.args[2].type==="range"&&o.data.push(this.NormalizeAddress(f.args[2],e));else h.type==="call"&&/series/i.test(h.name)&&h.args[2]&&h.args[2].type==="range"&&o.data.push(this.NormalizeAddress(h.args[2],e))}a!=="scatter2"&&a!=="bubble"&&n.expression.args[1]&&n.expression.args[1].type==="range"&&(o.labels=this.NormalizeAddress(n.expression.args[1],e)),(a==="scatter"&&n.expression.args[4]&&n.expression.args[4].type==="literal"&&n.expression.args[4].value.toString().toLowerCase()==="smooth"||a==="scatter2"&&n.expression.args[2]&&n.expression.args[2].type==="literal"&&/smooth/i.test(n.expression.args[2].value.toString()))&&(o.smooth=!0);let d=i.rect;i.layout?t.push({anchor:this.AnnotationLayoutToAnchor(i.layout,e),options:o}):d?t.push({anchor:this.AnnotationRectToAnchor(d,e),options:o}):console.warn("annotation missing layout")}}}return t}FormulaText(e,t){if(e[0]!=="=")return e;let r=this.parser.Parse(e);if(r.expression){this.parser.Walk(r.expression,n=>{if(n.type==="call"){let a=n.name.toLowerCase();this.decorated_functions[a]&&(n.name=this.decorated_functions[a]+"."+n.name)}return!0});let i=t.table?.name||"";return this.parser.Render(r.expression,{missing:"",long_structured_references:!0,table_name:i})}else return console.warn("parsing function failed"),console.warn(e),e.substring(1)}Export(e){let t=0,r=[];for(let b=0;b<e.sheet_data.length;b++){let m=e.sheet_data[b],S=m.id||0;S&&(r[S]=m.name||""),S===e.active_sheet&&(t=b)}let i=new Ye,n=new Xe,a=new Le,o=this.zip?.Get("xl/theme/theme1.xml");a.FromXML(this.xmlparser2.parse(o||"")),o=this.zip?.Get("xl/styles.xml"),n.FromXML(this.xmlparser2.parse(o||""),a),yt.next_drawing_index=1,Ke.next_chart_index=1;let l=[],c=[];for(let b=0;b<e.sheet_data.length;b++){let m=e.sheet_data[b],S={},N={xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x14ac xr xr2 xr3","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr2":"http://schemas.microsoft.com/office/spreadsheetml/2015/revision2","xmlns:xr3":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3","xr:uid":"{D37933E2-499F-4789-8D13-194E11B743FC}"},L=m.default_row_height?m.default_row_height/20*15:15,D=m.styles||m.cell_style_refs||[],M=new kt;M.FromJSON(m.data,D);for(let x of m.cell_styles){let U=M.EnsureCell(x);U.style||(U.style=D[x.ref])}let V={start:{row:M.rows+1,column:M.columns+1},end:{row:M.rows+1,column:M.columns+1}},$=[],G=[],q=[],Y=[],Q=[],re=[],J=this.SheetStyle(m,n);for(let x=0;x<M.data.length;x++){let U=this.RowStyle(m,n,x);if(M.data[x]&&M.data[x].length){x<V.start.row&&(V.start.row=x);let O={start:-1,end:-1},F=[];for(let I=0;I<M.data[x].length;I++){re[I]||(re[I]=this.ColumnStyle(m,n,I));let T=M.data[x][I];if(T){if(T.table&&T.table.area.start.row===x&&T.table.area.start.column===I){let ae=new W(T.table.area.start,T.table.area.end),xt=c.length+1,os=`../tables/table${xt}.xml`,er=[];for(let ue=0;ue<ae.columns;ue++){let K=M.data[x][I+ue],Me="";K.type!==2?(typeof K.calculated<"u"?Me=K.calculated.toString():typeof K.value<"u"&&(Me=K.value.toString()),K.type=2,K.value=Me):Me=K.value||"",Me||(Me=`Column${ue+1}`);let Ct=Me,rr=!1,as=1;for(;!rr;){rr=!0;e:for(let ls of er)if(ls.toLowerCase()===Ct.toLowerCase()){rr=!1,Ct=`${Me}${++as}`;break e}}K.value=Ct,er.push(Ct)}let vt;if(T.table.totals_row){vt=[];for(let ue=0;ue<ae.columns;ue++){let K=M.data[ae.end.row][ae.start.column+ue];K.type&&(K.type===1?vt[ue]={type:"formula",value:(K.value||"").toString().substring(1)}:(K.type!==2&&(K.type=2,K.value=K.value?.toString()||""),vt[ue]={type:"label",value:K.value}))}}let tr={rel:ge(S,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table",os),index:xt,ref:ae.spreadsheet_label,name:`Table${xt}`,display_name:`Table${xt}`,totals_row_shown:0,totals_row_count:T.table?.totals_row?1:0,columns:er,footers:vt};if(T.table.totals_row){let ue=new W(ae.start,{row:ae.end.row-1,column:ae.end.column});tr.filterRef=ue.spreadsheet_label}Q.push(tr),c.push(tr)}if(T.merge_area&&T.merge_area.start.row===x&&T.merge_area.start.column===I&&Y.push(new W(T.merge_area.start,T.merge_area.end)),T.hyperlink){let ae=ge(S,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",T.hyperlink,"External");G.push({rel:ae,target:T.hyperlink,address:{row:x,column:I}})}if(T.type===1&&/^=?sparkline\\./i.test(T.value)){q.push({address:{row:x,column:I},formula:T.value,style:T.style});continue}I<V.start.column&&(V.start.column=I),O.start<0&&(O.start=I),O.end=I;let B=this.StyleFromCell(m,n,x,I,T.style);if(T.type===0&&(U&&B===U||!U&&re[I]&&B===re[I]))continue;let j,_e,ye;switch(T.type){case 1:switch(ye=this.FormulaText(T.value,T),T.calculated_type){case 2:j=T.calculated,_e="str";break;case 3:j=T.calculated;break;case 4:j=T.calculated?1:0,_e="b";break}break;case 2:j=i.Ensure(T.value),_e="s";break;case 3:j=T.value;break;case 4:j=T.value?1:0,_e="b";break}T.area&&T.area.start.row===x&&T.area.start.column===I&&typeof ye=="string"&&(ye={t$:ye,a$:{t:"array",ref:T.area.spreadsheet_label}}),F.push({a$:{r:W.CellAddressToLabel({row:x,column:I}),t:_e,s:B},f:ye,v:j})}}if(F.length||U&&U!==J){let I,T,B,j;m.row_height&&typeof m.row_height[x]=="number"&&m.row_height[x]!==m.default_row_height&&(I=1,T=m.row_height[x]*3/4),U&&U!==J&&(B=U,j=1),$.push({a$:{r:x+1,spans:`${O.start+1}:${O.end+1}`,customHeight:I,ht:T,s:B,customFormat:j},c:F})}}}let ne=[];for(let x=0;x<m.columns;x++){let U={index:x};m.column_width&&m.default_column_width&&typeof m.column_width[x]=="number"&&m.column_width[x]!==m.default_column_width&&(U.width=It(m.column_width[x]));let O=re[x];O&&O!==J&&(U.style=O),(U.style!==void 0||U.width!==void 0)&&(ne[x]=U)}let pe;if(ne.length||J){let x=[],U=It(m.default_column_width||90);{let O=0;for(let F of ne)F&&(J&&F.index>O+1&&x.push({a$:{min:O+1,max:F.index,style:J,width:U}}),x.push({a$:{min:F.index+1,max:F.index+1,style:F.style===void 0?J:F.style,width:F.width===void 0?U:F.width,customWidth:F.width===void 0?void 0:1}}),O=F.index);J&&O<16384&&x.push({a$:{min:O+1,max:16384,style:J,width:U}}),pe={col:x}}}let de;m.data_validations?.length&&(de={a$:{count:m.data_validations.length},dataValidation:m.data_validations.map(x=>{let U=x.target.map(F=>new W(F.start,F.end).spreadsheet_label).join(" "),O;if(x.type==="range"){let F={id:0,type:"range",label:"",position:0,start:{...x.area.start,absolute_column:!0,absolute_row:!0,id:0,label:"",position:0,type:"address"},end:{...x.area.end,absolute_column:!0,absolute_row:!0,id:0,label:"",position:0,type:"address"}};typeof x.area.start.sheet_id<"u"&&(F.start.sheet=r[x.area.start.sheet_id]),O=this.parser.Render(F)}else x.type==="list"&&(O=`"${x.list.join(",")}"`);return{a$:{type:"list",allowBlank:1,showInputMessage:1,showErrorMessage:1,sqref:U},formula1:O}})});let oe;Q.length&&(oe={a$:{count:Q.length},tablePart:Q.map(x=>({a$:{"r:id":x.rel||""}}))});for(let x of Q){let U={};x.totals_row_count&&(U.totalsRowCount=1);let O={a$:{count:(x.columns||[]).length},tableColumn:(x.columns||[]).map((T,B)=>{let j=(x.footers||[])[B];return{a$:{id:B+1,name:T||`Column${B+1}`,totalsRowLabel:j?.type==="label"?j.value:void 0,totalsRowFunction:j?.type==="formula"?"custom":void 0},totalsRowFormula:j?.type==="formula"?j.value:void 0}})},F={table:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"xr xr3","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr3":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3",id:x.index||0,name:x.name,displayName:x.display_name,...U,ref:x.ref},autoFilter:{a$:{ref:x.filterRef||x.ref}},tableColumns:O,tableStyleInfo:{a$:{name:"TableStyleMedium2",showFirstColumn:0,showLastColumn:0,showRowStripes:1,showColumnStripes:0}}}},I=Ne+this.xmlbuilder1.build(F);this.zip?.Set(`xl/tables/table${x.index}.xml`,I)}let he;if(m.conditional_formats?.length){let x=[],U=1,O={},F=Object.entries(Xt).map(I=>(O[I[1]]=I[0],I[1]));F.sort((I,T)=>T.length-I.length);for(let I of m.conditional_formats){let T=0;switch(I.type!=="gradient"&&I.type!=="data-bar"&&(T=n.dxf_styles.length,n.dxf_styles.push(I.style)),I.type){case"cell-match":{let B="",j="";for(let _e of F)if(new RegExp("^"+_e+"\\\\s").test(I.expression)){B=O[_e],j=I.expression.substring(_e.length).trim();break}B&&x.push({a$:{sqref:new W(I.area.start,I.area.end).spreadsheet_label},cfRule:{a$:{type:"cellIs",dxfId:T,operator:B,priority:U++},formula:j}})}break;case"expression":x.push({a$:{sqref:new W(I.area.start,I.area.end).spreadsheet_label},cfRule:{a$:{type:"expression",dxfId:T,priority:U++},formula:I.expression}});break;case"duplicate-values":x.push({a$:{sqref:new W(I.area.start,I.area.end).spreadsheet_label},cfRule:{a$:{type:I.unique?"uniqueValues":"duplicateValues",dxfId:T,priority:U++}}});break;case"gradient":{let B=[],j=[];for(let ye of I.stops){ye.value===0?B.push({a$:{type:"min"}}):ye.value===1?B.push({a$:{type:"max"}}):B.push({a$:{type:"percentile",val:ye.value*100}});let ae=$r(ye.color);ae&&j.push(ae)}let _e={a$:{sqref:new W(I.area.start,I.area.end).spreadsheet_label},cfRule:{a$:{type:"colorScale",priority:U++},colorScale:{cfvo:B,color:j}}};x.push(_e)}break}}x.length&&(he=x.length>1?x:x[0])}let te;Y.length&&(te={a$:{count:Y.length},mergeCell:Y.map(x=>({a$:{ref:x.spreadsheet_label}}))});let y;G.length&&(y={hyperlink:G.map(x=>({a$:{"r:id":x.rel,ref:new W(x.address).spreadsheet_label,"xr:uid":"{0C6B7792-7EA0-4932-BF15-D49C453C565D}"}}))});let P;if(q.length){let x={a$:{"xmlns:xm":"http://schemas.microsoft.com/office/excel/2006/main"},"x14:sparklineGroup":q.map(U=>{let O=this.parser.Parse(U.formula),F="";if(O.expression&&O.expression.type==="call"&&O.expression.args.length>0){let T=O.expression.args[0];if(T.type==="range"||T.type==="address"){let B=T.type==="range"?T.start:T;B.sheet||(typeof B.sheet_id<"u"?B.sheet=r[B.sheet_id]:B.sheet=m.name),F=this.parser.Render(T)}}let I={rgb:"FF376092"};return U.style?.text&&(Se(U.style.text)?I.rgb=U.style.text.text:Ae(U.style.text)&&(I.rgb=void 0,I.theme=U.style.text.theme.toString(),I.tint=typeof U.style.text.tint=="number"?U.style.text.tint.toString():void 0)),{a$:{displayEmptyCellsAs:"gap",displayHidden:"1",type:/column/i.test(U.formula)?"column":void 0},"x14:colorSeries":{a$:{...I}},"x14:sparklines":{"x14:sparkline":{"xm:f":F,"xm:sqref":new W(U.address).spreadsheet_label}}}})};P={ext:{a$:{uri:"{05C60535-1F16-4fd2-B633-F4F36F0B64E0}","xmlns:x14":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"},"x14:sparklineGroups":x}}}let E,R=this.ParseCharts(m),A=this.ParseImages(m);if(R.length||A.length){let x=new yt;for(let F of R)x.AddChart(F.options,F.anchor);for(let F of A)x.AddImage(F.options,F.anchor);for(let{image:F}of x.images)F.options.data&&this.zip?.SetBinary(`xl/media/image${F.index}.${F.extension}`,F.options.data,F.options.encoding);for(let{chart:F}of x.charts){let I=F.toJSON(),T=Ne+this.xmlbuilder1.build(I);this.zip?.Set(`xl/charts/chart${F.index}.xml`,T),this.WriteRels(F.relationships,`xl/charts/_rels/chart${F.index}.xml.rels`)}this.WriteRels(x.relationships,`xl/drawings/_rels/drawing${x.index}.xml.rels`);let U=Ne+this.xmlbuilder1.build(x.toJSON());this.zip?.Set(`xl/drawings/drawing${x.index}.xml`,U),l.push(x),E={a$:{"r:id":ge(S,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",`../drawings/drawing${x.index}.xml`)}}}let C={};if(m.tab_color){if(Ae(m.tab_color))C.sheetPr={tabColor:{a$:{theme:m.tab_color.theme,tint:m.tab_color.tint}}};else if(Se(m.tab_color)){let x=m.tab_color.text||"";/^#[0-9a-fA-F]*$/.test(x)&&(C.sheetPr={tabColor:{a$:{rgb:"FF"+x.substring(1)}}})}}let H={a$:{"x14ac:dyDescent":.25,defaultRowHeight:L===15?void 0:L,customHeight:L===15?void 0:1,defaultColWidth:m.default_column_width?It(m.default_column_width):void 0}},Z={worksheet:{a$:{...N},...C,dimension:{a$:{ref:new W(V.start,V.end).spreadsheet_label}},sheetViews:{sheetView:{a$:{workbookViewId:0}}},sheetFormatPr:H,cols:pe,sheetData:{row:$},mergeCells:te,conditionalFormatting:he,dataValidations:de,hyperlinks:y,pageMargins:{a$:{left:.7,right:.7,top:.75,bottom:.75,header:.3,footer:.3}},drawing:E,tableParts:oe,extLst:P}},me=Ne+this.xmlbuilder1.build(Z);this.zip?.Set(`xl/worksheets/sheet${b+1}.xml`,me),Object.keys(S).length&&this.WriteRels(S,`xl/worksheets/_rels/sheet${b+1}.xml.rels`)}this.WriteSharedStrings(i),this.WriteStyleCache(n);let d={};ge(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles","styles.xml"),ge(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme","theme/theme1.xml"),ge(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings","sharedStrings.xml");let h=e.sheet_data.map((b,m)=>ge(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet",`worksheets/sheet${m+1}.xml`));this.WriteRels(d,"xl/_rels/workbook.xml.rels");let f=e.named?.length?{definedName:(e.named||[]).map(b=>{let m;if(b.scope){let S=b.scope.toLowerCase();for(let[N,L]of e.sheet_data.entries())if(L.name?.toLowerCase()===S){m=N.toString();break}}return{a$:{name:b.name,localSheetId:m},t$:b.expression}})}:void 0,u={workbook:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x15 xr xr6 xr10 xr2","xmlns:x15":"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr6":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision6","xmlns:xr10":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision10","xmlns:xr2":"http://schemas.microsoft.com/office/spreadsheetml/2015/revision2"},workbookPr:{a$:{defaultThemeVersion:"166925"}},bookViews:{workbookView:{a$:{activeTab:t||0}}},sheets:{sheet:e.sheet_data.map((b,m)=>({a$:{name:b.name||`Sheet${m+1}`,sheetId:m+1,"r:id":h[m],state:b.visible===!1?"hidden":void 0}}))},definedNames:f}},p=Ne+this.xmlbuilder1.build(u);this.zip?.Set("xl/workbook.xml",p);let g={};for(let b of l)for(let m of b.images)switch(m.image.extension){case"gif":case"png":case"jpeg":g[m.image.extension]="image/"+m.image.extension;break;case"svg":g.svg="image/svg+xml";break}let v={Types:{a$:{xmlns:"http://schemas.openxmlformats.org/package/2006/content-types"},Default:[{a$:{Extension:"rels",ContentType:"application/vnd.openxmlformats-package.relationships+xml"}},{a$:{Extension:"xml",ContentType:"application/xml"}},...Object.keys(g).map(b=>({a$:{Extension:b,ContentType:g[b]}}))],Override:[{a$:{PartName:"/xl/workbook.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"}},...e.sheet_data.map((b,m)=>({a$:{ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",PartName:`/xl/worksheets/sheet${m+1}.xml`}})),...l.reduce((b,m)=>b.concat([...m.charts.map(S=>({a$:{ContentType:"application/vnd.openxmlformats-officedocument.drawingml.chart+xml",PartName:`/xl/charts/chart${S.chart.index}.xml`}})),{a$:{ContentType:"application/vnd.openxmlformats-officedocument.drawing+xml",PartName:`/xl/drawings/drawing${m.index}.xml`}}]),[]),{a$:{PartName:"/xl/theme/theme1.xml",ContentType:"application/vnd.openxmlformats-officedocument.theme+xml"}},{a$:{PartName:"/xl/styles.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"}},{a$:{PartName:"/xl/sharedStrings.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"}},...c.map(b=>({a$:{ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",PartName:`/xl/tables/table${b.index||0}.xml`}})),{a$:{PartName:"/docProps/core.xml",ContentType:"application/vnd.openxmlformats-package.core-properties+xml"}},{a$:{PartName:"/docProps/app.xml",ContentType:"application/vnd.openxmlformats-officedocument.extended-properties+xml"}}]}},w=Ne+this.xmlbuilder1.build(v);this.zip?.Set("[Content_Types].xml",w)}ArrayBuffer(){if(!this.zip)throw new Error("missing zip");return this.zip.ArrayBuffer()}Blob(){if(!this.zip)throw new Error("missing zip");let e=this.zip.ArrayBuffer();return new Blob([e],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}};var ns=St(Tt());var Lo=s=>typeof s=="object"&&typeof s.$t<"u",qt=class{parser=new qe;workbook;zip;Init(e){this.zip=new tt(e),this.workbook=new Jt(this.zip),this.workbook.Init()}SheetCount(){return this.workbook?.sheet_count||0}ParseCell(e,t,r,i,n,a,o){let l=t.a$?.r;if(!l){console.warn("cell missing address");return}let c=e.TranslateAddress(l);if(Ue(c)){console.warn("cell has range address");return}let d={};if(t.a$?.cm){let w=Number(t.a$?.cm);this.workbook?.metadata&&(d=rs(this.workbook.metadata,"cell",w).flags)}let h,f="undefined",u,p="undefined";if(t.a$?.t&&t.a$.t==="s"){if(f="string",typeof t.v<"u"){let w=Number(t.v);!isNaN(w)&&e.shared_strings&&(h=e.shared_strings.Get(w)||"",h[0]==="="&&(h="\'"+h))}}else if(typeof t.f<"u"){f="formula";let w=(typeof t.f=="string"?t.f:t.f.t$)||"";if(w){if(h="="+w.replace(/^_xll\\./g,""),/#REF/.test(w))h=w;else{let b=this.parser.Parse(w);if(b.expression){let m=N=>(/^_xll\\./.test(N)&&(N=N.substring(5)),/^_xlfn\\./.test(N)&&(console.info("xlfn:",N),N=N.substring(6)),/^_xlws\\./.test(N)&&(console.info("xlws:",N),N=N.substring(6)),N),S=N=>{if(N.type==="call"){if(/^_xlfn\\.single/i.test(N.name)){let L=N.args[0];if(L.type==="call"){let D=JSON.parse(JSON.stringify(L));D.name="@"+m(D.name);for(let M=0;M<D.args.length;M++)D.args[M]=this.parser.Walk2(D.args[M],S);return D}else console.info("_xlfn.SINGLE unexpected argument",N.args[0])}N.name=m(N.name)}return!0};b.expression=this.parser.Walk2(b.expression,S),h="="+this.parser.Render(b.expression,{missing:""})}}typeof t.f!="string"&&t.f.a$?.t==="shared"&&t.f.a$.si&&(r[t.f.a$.si]={row:c.row-1,column:c.col-1,formula:h,parse_result:this.parser.Parse(h)})}else if(typeof t.f!="string"&&t.f.a$?.t==="shared"&&t.f.a$.si){let b=r[t.f.a$.si];b&&(b.parse_result.expression?h="="+this.parser.Render(b.parse_result.expression,{offset:{rows:c.row-1-b.row,columns:c.col-1-b.column},missing:""}):h=b.formula)}if(typeof t.f!="string"&&t.f.a$?.t==="array"){let m=e.TranslateAddress(t.f.a$.ref||"");Ue(m)||(m={to:{...m},from:{...m},sheet:m.sheet}),d["dynamic-array"]?n.push(jt(m,-1,-1)):i.push(jt(m,-1,-1))}if(typeof t.v<"u"){let b=typeof t.v=="object"?t.v?.t$:t.v,m=Number(b.toString());isNaN(m)?(p="string",u=b.toString()):(p="number",u=m)}}else if(typeof t.v<"u"){let w=Number(t.v.toString());isNaN(w)?(f="string",h=t.v.toString()):(f="number",h=w)}let g={row:c.row-1,col:c.col-1};for(let w of[i,n])for(let b of w)wt(b,g)&&(g.row!==b.from.row||g.col!==b.from.col)&&(p=f,u=h,h=void 0,f="undefined");let v={row:g.row,column:g.col,value:h,type:f};typeof u<"u"&&(v.calculated_type=p,v.calculated=u),t.a$?.s&&(v.style_ref=Number(t.a$.s));for(let w of o)w.address.row===c.row&&w.address.col===c.col&&(v.hyperlink=w.reference);for(let w of a)wt(w,g)&&(v.merge_area={start:{row:w.from.row,column:w.from.col},end:{row:w.to.row,column:w.to.col}});for(let w of n)wt(w,g)&&(v.spill={start:{row:w.from.row,column:w.from.col},end:{row:w.to.row,column:w.to.col}});for(let w of i)wt(w,g)&&(v.area={start:{row:w.from.row,column:w.from.col},end:{row:w.to.row,column:w.to.col}});return v}AddressToArea(e){return et(e)?{start:{row:e.row-1,column:e.col-1},end:{row:e.row-1,column:e.col-1}}:{start:{row:e.from.row-1,column:e.from.col-1},end:{row:e.to.row-1,column:e.to.col-1}}}ParseConditionalFormat(e,t,r){let i=this.AddressToArea(e),n=Xt;switch(t.a$.type){case"duplicateValues":case"uniqueValues":{let a={};if(t.a$.dxfId){let o=Number(t.a$.dxfId);isNaN(o)||(a=this.workbook?.style_cache.dxf_styles[o]||{})}return{type:"duplicate-values",area:i,style:a,unique:t.a$.type==="uniqueValues",priority:t.a$.priority?Number(t.a$.priority):void 0}}case"cellIs":if(t.a$.operator&&(t.formula||typeof t.formula=="number")){let a={};if(t.a$.dxfId){let l=Number(t.a$.dxfId);isNaN(l)||(a=this.workbook?.style_cache.dxf_styles[l]||{})}if(t.a$.operator==="between"&&Array.isArray(t.formula)&&t.formula.length===2&&typeof t.formula[0]=="number"&&typeof t.formula[1]=="number")return{type:"cell-match",expression:"",between:t.formula,area:i,style:a,priority:t.a$.priority?Number(t.a$.priority):void 0};let o=n[t.a$.operator||""];if(!o)console.info("unhandled cellIs operator:",t.a$.operator,{rule:t});else return{type:"cell-match",expression:o+" "+t.formula,area:i,style:a,priority:t.a$.priority?Number(t.a$.priority):void 0}}else console.info("miss?",t);break;case"containsErrors":case"notContainsErrors":case"expression":if(t.formula){typeof t.formula!="string"&&(Lo(t.formula)?t.formula=t.formula.t$:(console.info("unexpected conditional expression",{rule:t}),t.formula=""));let a={};if(t.a$.dxfId){let o=Number(t.a$.dxfId);isNaN(o)||(a=this.workbook?.style_cache.dxf_styles[o]||{})}if(t.a$.type==="expression"&&(i.start.row!==i.end.row||i.start.column!==i.end.column)){this.parser.Save(),this.parser.SetLocaleSettings(".");let o=[],l=new W(i.start,i.end),c=this.parser.Parse(t.formula);if(c.expression)for(let d of l){let h=this.parser.Render(c.expression,{missing:"",offset:{rows:d.row-i.start.row,columns:d.column-i.start.column}});o.push({type:"expression",expression:h,style:a,area:{start:d,end:d},priority:t.a$.priority?Number(t.a$.priority):void 0})}return this.parser.Restore(),o}return{type:"expression",expression:t.formula,area:i,style:a,priority:t.a$.priority?Number(t.a$.priority):void 0}}break;case"dataBar":{let a=t.dataBar?.a$?.showValue==="0",o;if(t.extLst?.ext?.["x14:id"]){for(let l of r||[])if(l["x14:cfRule"]?.a$?.id===t.extLst.ext["x14:id"]){o=l;break}o||console.info("conditional format extension not found")}if(t.dataBar?.color?.a$?.rgb){let l;o?.["x14:cfRule"]?.["x14:dataBar"]?.["x14:negativeFillColor"]?.a$?.rgb&&(l={text:"#"+o["x14:cfRule"]["x14:dataBar"]["x14:negativeFillColor"].a$.rgb.toString().substring(2)});let c={text:"#"+t.dataBar.color.a$.rgb.substring(2)};return{type:"data-bar",area:i,fill:c,hide_values:a,negative:l}}}break;case"colorScale":if(t.colorScale&&Array.isArray(t.colorScale.cfvo)&&Array.isArray(t.colorScale.color)){let a=[];for(let[o,l]of t.colorScale.cfvo.entries()){let c=0,d={},h=t.colorScale.color[o];switch(h.a$.rgb?d.text="#"+h.a$.rgb.substring(2):h.a$.theme&&(d.theme=Number(h.a$.theme)||0,h.a$.tint&&(d.tint=Math.round(Number(h.a$.tint)*1e3)/1e3)),l.a$.type){case"min":c=0;break;case"max":c=1;break;case"percentile":c=(Number(l.a$.val)||0)/100;break}a.push({color:d,value:c})}return{type:"gradient",stops:a,color_space:"RGB",area:i,priority:t.a$.priority?Number(t.a$.priority):void 0}}else console.info("unexpected colorScale",{rule:t});break;default:console.info("unhandled cf type:",{rule:t})}}GetSheet(e=0){if(!this.workbook)throw new Error("missing workbook");let t=this.workbook.sheets[e],r=[],i={},n=[],a=[],o=[],l=[],c=[],d=[],h=[],f=[],u=k.FindAll.bind(k,t.sheet_data),p=u("worksheet/sheetPr/tabColor"),g;if(p?.[0]){let y=p[0];if(y.a$?.theme&&(g={theme:Number(y.a$.theme)},y.a$?.tint&&(g.tint=Number(y.a$.tint))),y.a$?.rgb){let P=y.a$.rgb;g={text:"#"+(P.length>6?P.substr(P.length-6):P)}}}let v=u("worksheet/conditionalFormatting"),w=u("worksheet/extLst/ext/x14:conditionalFormattings/x14:conditionalFormatting");for(let y of v)if(y.a$?.sqref){let P=y.a$.sqref.split(/\\s+/);for(let E of P){let R=t.TranslateAddress(E);if(y.cfRule){let A=Array.isArray(y.cfRule)?y.cfRule:[y.cfRule];for(let C of A){let H=this.ParseConditionalFormat(R,C,w);H&&(Array.isArray(H)?l.push(...H):l.push(H))}}}}let b=u("worksheet/mergeCells/mergeCell");for(let y of b)if(y.a$?.ref){let P=t.TranslateAddress(y.a$.ref);Ue(P)&&o.push(jt(P,-1,-1))}let m=u("worksheet/dataValidations/dataValidation");for(let y of m){let P=y.a$?.type,E=y.a$?.sqref,R=y.formula1;if(E&&R&&typeof R=="string"&&P==="list"){let A,C=this.parser.Parse(E),H=[];C.expression&&(C.expression.type==="address"?H.push({start:C.expression,end:C.expression}):C.expression.type==="range"&&H.push(C.expression)),C=this.parser.Parse(R),C.expression&&(C.expression.type==="range"?A={type:"range",area:C.expression,target:H}:C.expression.type==="literal"&&(A={type:"list",target:H,list:C.expression.value.toString().split(/,/).map(Z=>{let me=Number(Z);return isNaN(me)?Z.toLowerCase()==="true"?!0:Z.toLowerCase()==="false"?!1:Z:me})})),H.length&&A&&h.push(A)}}let S=u("worksheet/hyperlinks/hyperlink");for(let y of S){let P=t.TranslateAddress(y.a$?.ref||"");Ue(P)&&(P=P.from);let E="",R="";if(y.a$&&y.a$["r:id"]){E="remote link";let A=t.rels[y.a$["r:id"]];A&&(R=A.target||"")}else R=typeof y.__location=="string"?y.__location:"",E=typeof y.__display=="string"?y.__display:"";c.push({address:P,reference:R,text:E})}let N=21,L=100,D=t.sheet_data.worksheet?.sheetFormatPr;if(D){if(D.a$?.defaultColWidth){let y=Number(D.a$.defaultColWidth);isNaN(y)||(L=sr(y))}if(D.a$?.defaultRowHeight){let y=Number(D.a$.defaultRowHeight);isNaN(y)||(N=Math.round(y*4/3))}}let M=[],V=[],$=u("worksheet/sheetData/row");for(let y of $){let P=y.a$?.r?Number(y.a$.r):1,E=N;if(y.a$?.ht){let A=Number(y.a$.ht);isNaN(A)||(E=Math.round(A*4/3))}if(y.a$?.outlineLevel){let A=Number(y.a$.outlineLevel);isNaN(A)||(V[P-1]=A)}if(y.a$?.s){let A=Number(y.a$?.s);isNaN(A)||(d[P-1]=A)}E!==N&&(M[P-1]=E);let R=y.c?Array.isArray(y.c)?y.c:[y.c]:[];for(let A of R){let C=this.ParseCell(t,A,i,n,a,o,c);C&&r.push(C)}}let G=[],q=-1,Y=[],Q=u("worksheet/cols/col");for(let y of Q){let P=Number(y.a$?.min),E=Number(y.a$?.max);if(y.a$?.style){let R=Number(y.a$.style);if(!isNaN(P)&&!isNaN(E)&&!isNaN(R))if(t.extent&&E>=t.extent.to.col||E-P>100)q=R;else for(let A=P;A<=E;A++)G[A]=R}if(y.a$?.customWidth){let R=Number(y.a$.width);if(!isNaN(P)&&!isNaN(E)&&!isNaN(R)&&E!==16384){R=sr(R);for(let A=P;A<=E;A++)Y[A-1]=R}}}let re=u("worksheet/tableParts/tablePart");for(let y of re){let P=y.a$?y.a$["r:id"]:void 0;if(P){let E="",R=t.rels[P];if(R){E=R.target||"";let A=this.workbook.ReadTable(E);if(A){let C=t.TranslateAddress(A.ref),H=et(C)?{start:{row:C.row-1,column:C.col-1},end:{row:C.row-1,column:C.col-1}}:{start:{row:C.from.row-1,column:C.from.col-1},end:{row:C.to.row-1,column:C.to.col-1}};for(let Z of r)if(Z.row===H.start.row&&Z.column===H.start.column){Z.table={area:H,name:A.name,totals_row:!!A.totals_row_count};break}}}}}let J=u("worksheet/drawing"),ne=[],pe=[],de=[];for(let y of J){let P=y.a$?y.a$["r:id"]:void 0;if(P){let E="",R=t.rels[P];if(R&&(E=R.target||""),E){let A=this.workbook.ReadDrawing(E);if(A&&A.length)for(let C of A)switch(C.type){case"chart":ne.push(C);break;case"image":pe.push(C);break;case"textbox":de.push(C);break}}}}let oe=y=>{let P={address:{row:y.row,column:y.column},offset:{x:0,y:0}};if(y.row_offset){let E=M[y.row];E===void 0&&(E=N),P.offset.y=y.row_offset/9525/E}if(y.column_offset){let E=Y[y.column];E===void 0&&(E=L),P.offset.x=y.column_offset/9525/E}return P};for(let y of de){let E={layout:{tl:oe(y.anchor.from),br:oe(y.anchor.to)},type:"textbox",data:{style:y.style,paragraphs:y.paragraphs}};y.reference&&(E.formula="="+y.reference),f.push(E)}for(let y of pe)if(y&&y.image){let P={tl:oe(y.anchor.from),br:oe(y.anchor.to)},E="image",R=ns.default.fromByteArray(y.image),A="";if(y.filename&&(/jpe*g$/i.test(y.filename)?A="jpeg":/png$/i.test(y.filename)?A="png":/gif$/i.test(y.filename)&&(A="gif")),A&&R){let C="data:image/"+A+";base64,"+R;f.push({layout:P,type:E,data:{src:C}})}}for(let y of ne)if(y&&y.chart){let P={tl:oe(y.anchor.from),br:oe(y.anchor.to)},E,R=[],A="",C=y.chart?.series;switch(y.chart.type){case 7:E="treb-chart",A="Bubble.Chart",C&&C.length&&(R[0]=`Group(${C.map(Z=>`Series(${[Z.title||"",Z.values||"",Z.categories||"",Z.bubble_size||""].join(", ")})`).join(", ")})`),R[1]=y.chart.title;break;case 9:E="treb-chart",A="Histogram.Plot",C?.length,R[1]=y.chart.title;break;case 8:E="treb-chart",A="Box.Plot",C?.length&&(R[0]=`Group(${C.map(Z=>`Series(${Z.title||""},,${Z.values||""})`).join(", ")})`),R[1]=y.chart.title;break;case 4:E="treb-chart",A="Scatter.Line",C&&C.length&&(R[0]=`Group(${C.map(Z=>`Series(${Z.title||""},${Z.categories||""},${Z.values||""})`).join(", ")})`),R[1]=y.chart.title;break;case 5:case 6:A=y.chart.type===5?"Donut.Chart":"Pie.Chart",E="treb-chart",C&&C[0]&&(R[0]=C[0].values,R[1]=C[0]?.categories||""),R[2]=y.chart.title;break;case 2:case 1:case 3:switch(R[2]=y.chart.title,E="treb-chart",y.chart.type){case 2:A="Bar.Chart";break;case 1:A="Column.Chart";break;default:A="Line.Chart"}C&&(C.length>1?R[0]=`Group(${C.map(Z=>`Series(${Z.title||""},,${Z.values||""})`).join(", ")})`:C.length===1&&(C[0].title?R[0]=`Series(${C[0].title||""},,${C[0].values||""})`:R[0]=C[0].values),R[1]=C[0]?.categories||""),y.chart.type===1&&y.chart.flags?.includes("stacked")&&(R[3]=\'"stacked"\');break}let H=`=${A}(${R.join(", ")})`;E&&H&&f.push({layout:P,type:E,formula:H})}let he=u("worksheet/extLst/ext");for(let y of he){let P="";for(let R of Object.keys(y?.a$||{})){let A=R.match(/^xmlns:(.*)$/);if(A){P=A[1];break}}let E=k.FindAll(y,`${P}:sparklineGroups/${P}:sparklineGroup`);for(let R of E){let A="Sparkline.line",C="",H="";R.a$?.type==="column"&&(A="Sparkline.column");let Z=k.FindAll(R,`${P}:sparklines/${P}:sparkline`);for(let me of Z)for(let x of Object.keys(me))/:f$/.test(x)?H=me[x]:/:sqref$/.test(x)&&(C=me[x]);if(H&&C){let me=`=${A}(${H})`,x=t.TranslateAddress(C);if(et(x)){let U={row:x.row-1,column:x.col-1,value:me,type:"formula"},O=!1;for(let F of r)if(F.row===U.row&&F.column===U.column){O=!0,F.type="formula",F.value=me;break}O||r.push(U)}}}}let te={name:t.options.name,cells:r,default_column_width:L,column_widths:Y,row_heights:M,tab_color:g,row_styles:d,annotations:f,conditional_formats:l,data_validations:h,styles:this.workbook?.style_cache?.CellXfToStyles()||[]};return V.length&&(te.outline=V),(t.visible_state===1||t.visible_state===2)&&(te.hidden=!0),q>=0&&(te.sheet_style=q),G.length&&(te.column_styles=G),te}};var Kt=self,Vr=new Qt,Uo=s=>{s.sheet&&(Vr.Init(s.decorated||[]),Vr.Export(s.sheet),Kt.postMessage({status:"complete",blob:Vr.Blob()}))},zo=s=>{let e=new qt;try{e.Init(s.data);let t=e.workbook?.GetNamedRanges(),r=e.SheetCount(),i={sheets:[],named:t,active_tab:e.workbook?.active_tab};for(let n=0;n<r;n++){let a=e.GetSheet(n);a&&i.sheets.push(a)}for(let n of t||[])if(typeof n.local_scope=="number"){let a=i.sheets[n.local_scope];a&&(n.scope=a.name)}Kt.postMessage({status:"complete",results:i})}catch(t){console.warn("error importing xlsx file"),console.info(t),Kt.postMessage({status:"error",data:t})}};Kt.addEventListener("message",s=>{s.data&&s.data.command==="export"?Uo(s.data):s.data&&s.data.command==="import"&&zo(s.data)});\n';var a=async()=>new Worker(URL.createObjectURL(new Blob([e],{type:"application/javascript"})));export{a as CreateWorker};
|