@dbml/parse 5.6.0-alpha.0 → 6.0.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,31 +1,31 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.defineProperty,t=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),n=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n&&e(r,Symbol.toStringTag,{value:`Module`}),r},r=typeof global==`object`&&global&&global.Object===Object&&global,i=r,a=typeof self==`object`&&self&&self.Object===Object&&self,o=i||a||Function(`return this`)(),s=o,c=s.Symbol,l=c,u=Object.prototype,d=u.hasOwnProperty,f=u.toString,p=l?l.toStringTag:void 0;function m(e){var t=d.call(e,p),n=e[p];try{e[p]=void 0;var r=!0}catch{}var i=f.call(e);return r&&(t?e[p]=n:delete e[p]),i}var h=m,g=Object.prototype.toString;function _(e){return g.call(e)}var v=_,y=`[object Null]`,ee=`[object Undefined]`,te=l?l.toStringTag:void 0;function ne(e){return e==null?e===void 0?ee:y:te&&te in Object(e)?h(e):v(e)}var b=ne;function re(e){return typeof e==`object`&&!!e}var ie=re,ae=`[object Symbol]`;function oe(e){return typeof e==`symbol`||ie(e)&&b(e)==ae}var se=oe;function ce(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var le=ce,ue=Array.isArray,de=ue,fe=1/0,pe=l?l.prototype:void 0,me=pe?pe.toString:void 0;function he(e){if(typeof e==`string`)return e;if(de(e))return le(e,he)+``;if(se(e))return me?me.call(e):``;var t=e+``;return t==`0`&&1/e==-fe?`-0`:t}var ge=he,_e=/\s/;function ve(e){for(var t=e.length;t--&&_e.test(e.charAt(t)););return t}var ye=ve,be=/^\s+/;function xe(e){return e&&e.slice(0,ye(e)+1).replace(be,``)}var Se=xe;function Ce(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var we=Ce,Te=NaN,Ee=/^[-+]0x[0-9a-f]+$/i,De=/^0b[01]+$/i,Oe=/^0o[0-7]+$/i,ke=parseInt;function Ae(e){if(typeof e==`number`)return e;if(se(e))return Te;if(we(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=we(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=Se(e);var n=De.test(e);return n||Oe.test(e)?ke(e.slice(2),n?2:8):Ee.test(e)?Te:+e}var je=Ae,Me=1/0,Ne=17976931348623157e292;function Pe(e){return e?(e=je(e),e===Me||e===-Me?(e<0?-1:1)*Ne:e===e?e:0):e===0?e:0}var Fe=Pe;function Ie(e){var t=Fe(e),n=t%1;return t===t?n?t-n:t:0}var Le=Ie;function Re(e){return e}var ze=Re,Be=`[object AsyncFunction]`,Ve=`[object Function]`,He=`[object GeneratorFunction]`,Ue=`[object Proxy]`;function We(e){if(!we(e))return!1;var t=b(e);return t==Ve||t==He||t==Be||t==Ue}var Ge=We,Ke=s[`__core-js_shared__`],qe=Ke,Je=function(){var e=/[^.]+$/.exec(qe&&qe.keys&&qe.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function Ye(e){return!!Je&&Je in e}var Xe=Ye,Ze=Function.prototype.toString;function Qe(e){if(e!=null){try{return Ze.call(e)}catch{}try{return e+``}catch{}}return``}var $e=Qe,et=/[\\^$.*+?()[\]{}|]/g,tt=/^\[object .+?Constructor\]$/,nt=Function.prototype,rt=Object.prototype,it=nt.toString,at=rt.hasOwnProperty,ot=RegExp(`^`+it.call(at).replace(et,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function st(e){return!we(e)||Xe(e)?!1:(Ge(e)?ot:tt).test($e(e))}var ct=st;function lt(e,t){return e?.[t]}var ut=lt;function dt(e,t){var n=ut(e,t);return ct(n)?n:void 0}var ft=dt,pt=ft(s,`WeakMap`),mt=pt;function ht(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var gt=ht,_t=800,vt=16,yt=Date.now;function bt(e){var t=0,n=0;return function(){var r=yt(),i=vt-(r-n);if(n=r,i>0){if(++t>=_t)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var xt=bt;function St(e){return function(){return e}}var Ct=St,wt=function(){try{var e=ft(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),Tt=wt,Et=Tt?function(e,t){return Tt(e,`toString`,{configurable:!0,enumerable:!1,value:Ct(t),writable:!0})}:ze,Dt=Et,Ot=xt(Dt),kt=Ot;function At(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}var jt=At,Mt=9007199254740991,Nt=/^(?:0|[1-9]\d*)$/;function Pt(e,t){var n=typeof e;return t??=Mt,!!t&&(n==`number`||n!=`symbol`&&Nt.test(e))&&e>-1&&e%1==0&&e<t}var x=Pt;function Ft(e,t){return e===t||e!==e&&t!==t}var It=Ft,Lt=Math.max;function Rt(e,t,n){return t=Lt(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,a=Lt(r.length-t,0),o=Array(a);++i<a;)o[i]=r[t+i];i=-1;for(var s=Array(t+1);++i<t;)s[i]=r[i];return s[t]=n(o),gt(e,this,s)}}var zt=Rt;function Bt(e,t){return kt(zt(e,t,ze),e+``)}var Vt=Bt,Ht=9007199254740991;function S(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=Ht}var Ut=S;function Wt(e){return e!=null&&Ut(e.length)&&!Ge(e)}var Gt=Wt,Kt=Object.prototype;function qt(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||Kt)}var Jt=qt;function Yt(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var Xt=Yt,Zt=`[object Arguments]`;function Qt(e){return ie(e)&&b(e)==Zt}var $t=Qt,en=Object.prototype,tn=en.hasOwnProperty,nn=en.propertyIsEnumerable,rn=$t(function(){return arguments}())?$t:function(e){return ie(e)&&tn.call(e,`callee`)&&!nn.call(e,`callee`)},an=rn;function on(){return!1}var sn=on,cn=typeof exports==`object`&&exports&&!exports.nodeType&&exports,ln=cn&&typeof module==`object`&&module&&!module.nodeType&&module,un=ln&&ln.exports===cn?s.Buffer:void 0,dn=(un?un.isBuffer:void 0)||sn,fn=dn,pn=`[object Arguments]`,mn=`[object Array]`,hn=`[object Boolean]`,gn=`[object Date]`,_n=`[object Error]`,vn=`[object Function]`,yn=`[object Map]`,bn=`[object Number]`,xn=`[object Object]`,Sn=`[object RegExp]`,C=`[object Set]`,w=`[object String]`,Cn=`[object WeakMap]`,wn=`[object ArrayBuffer]`,Tn=`[object DataView]`,En=`[object Float32Array]`,Dn=`[object Float64Array]`,On=`[object Int8Array]`,kn=`[object Int16Array]`,An=`[object Int32Array]`,jn=`[object Uint8Array]`,Mn=`[object Uint8ClampedArray]`,Nn=`[object Uint16Array]`,Pn=`[object Uint32Array]`,T={};T[En]=T[Dn]=T[On]=T[kn]=T[An]=T[jn]=T[Mn]=T[Nn]=T[Pn]=!0,T[pn]=T[mn]=T[wn]=T[hn]=T[Tn]=T[gn]=T[_n]=T[vn]=T[yn]=T[bn]=T[xn]=T[Sn]=T[C]=T[w]=T[Cn]=!1;function Fn(e){return ie(e)&&Ut(e.length)&&!!T[b(e)]}var In=Fn;function Ln(e){return function(t){return e(t)}}var Rn=Ln,zn=typeof exports==`object`&&exports&&!exports.nodeType&&exports,Bn=zn&&typeof module==`object`&&module&&!module.nodeType&&module,Vn=Bn&&Bn.exports===zn&&i.process,Hn=function(){try{return Bn&&Bn.require&&Bn.require(`util`).types||Vn&&Vn.binding&&Vn.binding(`util`)}catch{}}(),Un=Hn,Wn=Un&&Un.isTypedArray,Gn=Wn?Rn(Wn):In,Kn=Gn,qn=Object.prototype.hasOwnProperty;function Jn(e,t){var n=de(e),r=!n&&an(e),i=!n&&!r&&fn(e),a=!n&&!r&&!i&&Kn(e),o=n||r||i||a,s=o?Xt(e.length,String):[],c=s.length;for(var l in e)(t||qn.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||x(l,c)))&&s.push(l);return s}var Yn=Jn;function E(e,t){return function(n){return e(t(n))}}var Xn=E,Zn=Xn(Object.keys,Object),Qn=Zn,$n=Object.prototype.hasOwnProperty;function er(e){if(!Jt(e))return Qn(e);var t=[];for(var n in Object(e))$n.call(e,n)&&n!=`constructor`&&t.push(n);return t}var tr=er;function nr(e){return Gt(e)?Yn(e):tr(e)}var rr=nr;function ir(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var ar=ir,or=Object.prototype.hasOwnProperty;function sr(e){if(!we(e))return ar(e);var t=Jt(e),n=[];for(var r in e)r==`constructor`&&(t||!or.call(e,r))||n.push(r);return n}var cr=sr;function lr(e){return Gt(e)?Yn(e,!0):cr(e)}var ur=lr,dr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,fr=/^\w*$/;function pr(e,t){if(de(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||se(e)?!0:fr.test(e)||!dr.test(e)||t!=null&&e in Object(t)}var mr=pr,hr=ft(Object,`create`),gr=hr;function _r(){this.__data__=gr?gr(null):{},this.size=0}var vr=_r;function yr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var br=yr,xr=`__lodash_hash_undefined__`,Sr=Object.prototype.hasOwnProperty;function Cr(e){var t=this.__data__;if(gr){var n=t[e];return n===xr?void 0:n}return Sr.call(t,e)?t[e]:void 0}var wr=Cr,Tr=Object.prototype.hasOwnProperty;function Er(e){var t=this.__data__;return gr?t[e]!==void 0:Tr.call(t,e)}var Dr=Er,Or=`__lodash_hash_undefined__`;function kr(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=gr&&t===void 0?Or:t,this}var Ar=kr;function jr(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}jr.prototype.clear=vr,jr.prototype.delete=br,jr.prototype.get=wr,jr.prototype.has=Dr,jr.prototype.set=Ar;var Mr=jr;function Nr(){this.__data__=[],this.size=0}var Pr=Nr;function Fr(e,t){for(var n=e.length;n--;)if(It(e[n][0],t))return n;return-1}var Ir=Fr,Lr=Array.prototype.splice;function Rr(e){var t=this.__data__,n=Ir(t,e);return n<0?!1:(n==t.length-1?t.pop():Lr.call(t,n,1),--this.size,!0)}var zr=Rr;function Br(e){var t=this.__data__,n=Ir(t,e);return n<0?void 0:t[n][1]}var Vr=Br;function Hr(e){return Ir(this.__data__,e)>-1}var Ur=Hr;function Wr(e,t){var n=this.__data__,r=Ir(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Gr=Wr;function Kr(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Kr.prototype.clear=Pr,Kr.prototype.delete=zr,Kr.prototype.get=Vr,Kr.prototype.has=Ur,Kr.prototype.set=Gr;var qr=Kr,Jr=ft(s,`Map`),Yr=Jr;function D(){this.size=0,this.__data__={hash:new Mr,map:new(Yr||qr),string:new Mr}}var Xr=D;function Zr(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}var Qr=Zr;function O(e,t){var n=e.__data__;return Qr(t)?n[typeof t==`string`?`string`:`hash`]:n.map}var $r=O;function ei(e){var t=$r(this,e).delete(e);return this.size-=t?1:0,t}var ti=ei;function ni(e){return $r(this,e).get(e)}var ri=ni;function ii(e){return $r(this,e).has(e)}var ai=ii;function oi(e,t){var n=$r(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var si=oi;function ci(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ci.prototype.clear=Xr,ci.prototype.delete=ti,ci.prototype.get=ri,ci.prototype.has=ai,ci.prototype.set=si;var li=ci,ui=`Expected a function`;function di(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(ui);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(di.Cache||li),n}di.Cache=li;var fi=di,pi=500;function mi(e){var t=fi(e,function(e){return n.size===pi&&n.clear(),e}),n=t.cache;return t}var hi=mi,gi=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,_i=/\\(\\)?/g,vi=hi(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(gi,function(e,n,r,i){t.push(r?i.replace(_i,`$1`):n||e)}),t}),yi=vi;function bi(e){return e==null?``:ge(e)}var xi=bi;function Si(e,t){return de(e)?e:mr(e,t)?[e]:yi(xi(e))}var Ci=Si,wi=1/0;function Ti(e){if(typeof e==`string`||se(e))return e;var t=e+``;return t==`0`&&1/e==-wi?`-0`:t}var Ei=Ti;function Di(e,t){t=Ci(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[Ei(t[n++])];return n&&n==r?e:void 0}var Oi=Di;function ki(e,t,n){var r=e==null?void 0:Oi(e,t);return r===void 0?n:r}var Ai=ki;function ji(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var Mi=ji,Ni=l?l.isConcatSpreadable:void 0;function Pi(e){return de(e)||an(e)||!!(Ni&&e&&e[Ni])}var Fi=Pi;function Ii(e,t,n,r,i){var a=-1,o=e.length;for(n||=Fi,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?Ii(s,t-1,n,r,i):Mi(i,s):r||(i[i.length]=s)}return i}var Li=Ii;function Ri(e){return e!=null&&e.length?Li(e,1):[]}var zi=Ri;function Bi(){this.__data__=new qr,this.size=0}var Vi=Bi;function Hi(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Ui=Hi;function Wi(e){return this.__data__.get(e)}var Gi=Wi;function Ki(e){return this.__data__.has(e)}var qi=Ki,Ji=200;function Yi(e,t){var n=this.__data__;if(n instanceof qr){var r=n.__data__;if(!Yr||r.length<Ji-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new li(r)}return n.set(e,t),this.size=n.size,this}var Xi=Yi;function Zi(e){this.size=(this.__data__=new qr(e)).size}Zi.prototype.clear=Vi,Zi.prototype.delete=Ui,Zi.prototype.get=Gi,Zi.prototype.has=qi,Zi.prototype.set=Xi;var Qi=Zi;function $i(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}var ea=$i;function ta(){return[]}var na=ta,ra=Object.prototype.propertyIsEnumerable,ia=Object.getOwnPropertySymbols,aa=ia?function(e){return e==null?[]:(e=Object(e),ea(ia(e),function(t){return ra.call(e,t)}))}:na,oa=aa;function sa(e,t,n){var r=t(e);return de(e)?r:Mi(r,n(e))}var ca=sa;function la(e){return ca(e,rr,oa)}var ua=la,da=ft(s,`DataView`),fa=da,pa=ft(s,`Promise`),ma=pa,ha=ft(s,`Set`),ga=ha,_a=`[object Map]`,va=`[object Object]`,ya=`[object Promise]`,ba=`[object Set]`,xa=`[object WeakMap]`,Sa=`[object DataView]`,Ca=$e(fa),wa=$e(Yr),Ta=$e(ma),Ea=$e(ga),Da=$e(mt),Oa=b;(fa&&Oa(new fa(new ArrayBuffer(1)))!=Sa||Yr&&Oa(new Yr)!=_a||ma&&Oa(ma.resolve())!=ya||ga&&Oa(new ga)!=ba||mt&&Oa(new mt)!=xa)&&(Oa=function(e){var t=b(e),n=t==va?e.constructor:void 0,r=n?$e(n):``;if(r)switch(r){case Ca:return Sa;case wa:return _a;case Ta:return ya;case Ea:return ba;case Da:return xa}return t});var ka=Oa,Aa=s.Uint8Array,ja=Aa,Ma=`__lodash_hash_undefined__`;function Na(e){return this.__data__.set(e,Ma),this}var Pa=Na;function Fa(e){return this.__data__.has(e)}var Ia=Fa;function La(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new li;++t<n;)this.add(e[t])}La.prototype.add=La.prototype.push=Pa,La.prototype.has=Ia;var Ra=La;function za(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var Ba=za;function Va(e,t){return e.has(t)}var Ha=Va,Ua=1,Wa=2;function k(e,t,n,r,i,a){var o=n&Ua,s=e.length,c=t.length;if(s!=c&&!(o&&c>s))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&Wa?new Ra:void 0;for(a.set(e,t),a.set(t,e);++d<s;){var m=e[d],h=t[d];if(r)var g=o?r(h,m,d,t,e,a):r(m,h,d,e,t,a);if(g!==void 0){if(g)continue;f=!1;break}if(p){if(!Ba(t,function(e,t){if(!Ha(p,t)&&(m===e||i(m,e,n,r,a)))return p.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,n,r,a))){f=!1;break}}return a.delete(e),a.delete(t),f}var Ga=k;function Ka(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}var qa=Ka;function Ja(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var Ya=Ja,Xa=1,Za=2,Qa=`[object Boolean]`,$a=`[object Date]`,eo=`[object Error]`,to=`[object Map]`,no=`[object Number]`,ro=`[object RegExp]`,io=`[object Set]`,ao=`[object String]`,oo=`[object Symbol]`,so=`[object ArrayBuffer]`,co=`[object DataView]`,lo=l?l.prototype:void 0,uo=lo?lo.valueOf:void 0;function fo(e,t,n,r,i,a,o){switch(n){case co:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case so:return!(e.byteLength!=t.byteLength||!a(new ja(e),new ja(t)));case Qa:case $a:case no:return It(+e,+t);case eo:return e.name==t.name&&e.message==t.message;case ro:case ao:return e==t+``;case to:var s=qa;case io:var c=r&Xa;if(s||=Ya,e.size!=t.size&&!c)return!1;var l=o.get(e);if(l)return l==t;r|=Za,o.set(e,t);var u=Ga(s(e),s(t),r,i,a,o);return o.delete(e),u;case oo:if(uo)return uo.call(e)==uo.call(t)}return!1}var po=fo,mo=1,ho=Object.prototype.hasOwnProperty;function go(e,t,n,r,i,a){var o=n&mo,s=ua(e),c=s.length;if(c!=ua(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:ho.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l<c;){u=s[l];var h=e[u],g=t[u];if(r)var _=o?r(g,h,u,t,e,a):r(h,g,u,e,t,a);if(!(_===void 0?h===g||i(h,g,n,r,a):_)){p=!1;break}m||=u==`constructor`}if(p&&!m){var v=e.constructor,y=t.constructor;v!=y&&`constructor`in e&&`constructor`in t&&!(typeof v==`function`&&v instanceof v&&typeof y==`function`&&y instanceof y)&&(p=!1)}return a.delete(e),a.delete(t),p}var _o=go,vo=1,yo=`[object Arguments]`,bo=`[object Array]`,xo=`[object Object]`,So=Object.prototype.hasOwnProperty;function Co(e,t,n,r,i,a){var o=de(e),s=de(t),c=o?bo:ka(e),l=s?bo:ka(t);c=c==yo?xo:c,l=l==yo?xo:l;var u=c==xo,d=l==xo,f=c==l;if(f&&fn(e)){if(!fn(t))return!1;o=!0,u=!1}if(f&&!u)return a||=new Qi,o||Kn(e)?Ga(e,t,n,r,i,a):po(e,t,c,n,r,i,a);if(!(n&vo)){var p=u&&So.call(e,`__wrapped__`),m=d&&So.call(t,`__wrapped__`);if(p||m){var h=p?e.value():e,g=m?t.value():t;return a||=new Qi,i(h,g,n,r,a)}}return f?(a||=new Qi,_o(e,t,n,r,i,a)):!1}var wo=Co;function To(e,t,n,r,i){return e===t?!0:e==null||t==null||!ie(e)&&!ie(t)?e!==e&&t!==t:wo(e,t,n,r,To,i)}var Eo=To,Do=1,Oo=2;function ko(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new Qi;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?Eo(u,l,Do|Oo,r,d):f))return!1}}return!0}var Ao=ko;function jo(e){return e===e&&!we(e)}var Mo=jo;function No(e){for(var t=rr(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,Mo(i)]}return t}var Po=No;function Fo(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}var Io=Fo;function Lo(e){var t=Po(e);return t.length==1&&t[0][2]?Io(t[0][0],t[0][1]):function(n){return n===e||Ao(n,e,t)}}var Ro=Lo;function zo(e,t){return e!=null&&t in Object(e)}var Bo=zo;function Vo(e,t,n){t=Ci(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=Ei(t[r]);if(!(a=e!=null&&n(e,o)))break;e=e[o]}return a||++r!=i?a:(i=e==null?0:e.length,!!i&&Ut(i)&&x(o,i)&&(de(e)||an(e)))}var Ho=Vo;function Uo(e,t){return e!=null&&Ho(e,t,Bo)}var Wo=Uo,Go=1,Ko=2;function qo(e,t){return mr(e)&&Mo(t)?Io(Ei(e),t):function(n){var r=Ai(n,e);return r===void 0&&r===t?Wo(n,e):Eo(t,r,Go|Ko)}}var Jo=qo;function Yo(e){return function(t){return t?.[e]}}var Xo=Yo;function Zo(e){return function(t){return Oi(t,e)}}var Qo=Zo;function $o(e){return mr(e)?Xo(Ei(e)):Qo(e)}var es=$o;function ts(e){return typeof e==`function`?e:e==null?ze:typeof e==`object`?de(e)?Jo(e[0],e[1]):Ro(e):es(e)}var ns=ts;function rs(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}var is=rs;function as(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}var os=as,ss=os(),cs=ss;function ls(e,t){return e&&cs(e,t,rr)}var us=ls;function ds(e,t){return function(n,r){if(n==null)return n;if(!Gt(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var fs=ds,ps=fs(us),A=ps;function ms(e,t,n,r){return A(e,function(e,i,a){t(r,e,n(e),a)}),r}var hs=ms;function gs(e,t){return function(n,r){var i=de(n)?is:hs,a=t?t():{};return i(n,e,ns(r,2),a)}}var _s=gs;function vs(e){return ie(e)&&Gt(e)}var ys=vs;function bs(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var xs=bs;function Ss(e){return typeof e==`function`?e:ze}var Cs=Ss,ws=Math.max,Ts=Math.min;function Es(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=r-1;return n!==void 0&&(i=Le(n),i=n<0?ws(r+i,0):Ts(i,r-1)),jt(e,ns(t,3),i,!0)}var Ds=Es;function Os(e){return e&&e.length?e[0]:void 0}var ks=Os;function As(e,t){return e==null?e:cs(e,Cs(t),ur)}var js=As,Ms=_s(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),Ns=Ms,Ps=Math.max;function Fs(e){if(!(e&&e.length))return[];var t=0;return e=ea(e,function(e){if(ys(e))return t=Ps(e.length,t),!0}),Xt(t,function(t){return le(e,Xo(t))})}var Is=Fs,Ls=Vt(Is),Rs=Ls;let j=function(e){return e.SPACE=`<space>`,e.TAB=`<tab>`,e.NEWLINE=`<newline>`,e.COMMA=`<comma>`,e.LPAREN=`<lparen>`,e.RPAREN=`<rparen>`,e.LBRACE=`<lbrace>`,e.RBRACE=`<rbrace>`,e.LBRACKET=`<lbracket>`,e.RBRACKET=`<rbracket>`,e.LANGLE=`<langle>`,e.RANGLE=`<rangle>`,e.OP=`<op>`,e.EOF=`<eof>`,e.NUMERIC_LITERAL=`<number>`,e.STRING_LITERAL=`<string>`,e.COLOR_LITERAL=`<color>`,e.FUNCTION_EXPRESSION=`<function-expression>`,e.QUOTED_STRING=`<variable>`,e.IDENTIFIER=`<identifier>`,e.SEMICOLON=`<semicolon>`,e.COLON=`<colon>`,e.SINGLE_LINE_COMMENT=`<single-line-comment>`,e.MULTILINE_COMMENT=`<multiline-comment>`,e}({});function zs(e){switch(e.kind){case j.NEWLINE:case j.SPACE:case j.TAB:case j.SINGLE_LINE_COMMENT:case j.MULTILINE_COMMENT:return!0;default:return!1}}function Bs(e){if(!e)return!1;switch(e){case`+`:case`-`:case`*`:case`/`:case`%`:case`<`:case`>`:case`=`:case`!`:case`.`:case`&`:case`|`:case`~`:return!0;default:return!1}}function Vs(e){return e!==void 0&&e.kind===j.OP}var Hs=class e{constructor(e,t,n,r,i){this.kind=e,this.startPos=t,this.endPos=n,this.value=r,this.leadingTrivia=[],this.trailingTrivia=[],this.leadingInvalid=[],this.trailingInvalid=[],this.isInvalid=i,this.start=t.offset,this.end=n.offset}static create(t,n,r,i,a){return new e(t,n,r,i,a)}};function Us(e){return e.trailingTrivia.find(({kind:e})=>e===j.NEWLINE)!==void 0}function Ws(e,t){return t.leadingTrivia.find(({kind:e})=>e===j.NEWLINE)!==void 0||Us(e)}function Gs(e){return e.trailingTrivia.find(({kind:e})=>[j.SPACE,j.TAB].includes(e))!==void 0}function Ks(e){return e.trailingTrivia.length===0?e.end:Ks(xs(e.trailingTrivia))}function qs(e){return e.leadingTrivia.length===0?e.start:qs(e.leadingTrivia[0])}function Js(e){return[j.SINGLE_LINE_COMMENT,j.MULTILINE_COMMENT].includes(e.kind)}var Ys=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},M=class{constructor(e,t,n){this.id=e,this.kind=t;let r=n.find(e=>e!==void 0&&!Number.isNaN(e.start));r?(this.startPos=r.startPos,this.fullStart=r instanceof Hs?qs(r):r.fullStart):(this.startPos={offset:NaN,column:NaN,line:NaN},this.fullStart=NaN);let i=[...n].reverse().find(e=>e!==void 0&&!Number.isNaN(e.end));i?(this.endPos=i.endPos,this.fullEnd=i instanceof Hs?Ks(i):i.fullEnd):(this.endPos={offset:NaN,column:NaN,line:NaN},this.fullEnd=NaN),this.start=this.startPos.offset,this.end=this.endPos.offset}};let N=function(e){return e.PROGRAM=`<program>`,e.ELEMENT_DECLARATION=`<element-declaration>`,e.ATTRIBUTE=`<attribute>`,e.IDENTIFIER_STREAM=`<identifer-stream>`,e.LITERAL=`<literal>`,e.VARIABLE=`<variable>`,e.PREFIX_EXPRESSION=`<prefix-expression>`,e.INFIX_EXPRESSION=`<infix-expression>`,e.POSTFIX_EXPRESSION=`<postfix-expression>`,e.FUNCTION_EXPRESSION=`<function-expression>`,e.FUNCTION_APPLICATION=`<function-application>`,e.BLOCK_EXPRESSION=`<block-expression>`,e.LIST_EXPRESSION=`<list-expression>`,e.TUPLE_EXPRESSION=`<tuple-expression>`,e.CALL_EXPRESSION=`<call-expression>`,e.PRIMARY_EXPRESSION=`<primary-expression>`,e.GROUP_EXPRESSION=`<group-expression>`,e.DUMMY=`<dummy>`,e.ARRAY=`<array>`,e}({});var Xs=class extends M{constructor({body:e=[],eof:t},n){super(n,N.PROGRAM,[...e,t]),this.body=e,this.eof=t}},P=class e extends M{constructor({type:t,name:n,as:r,alias:i,attributeList:a,bodyColon:o,body:s},c){if(super(c,N.ELEMENT_DECLARATION,[t,n,r,i,a,o,s]),s&&o&&!(s instanceof F||s instanceof e))throw Error(`If an element has a simple body, it must be a function application node`);this.type=t,this.name=n,this.as=r,this.alias=i,this.attributeList=a,this.bodyColon=o,this.body=s}},Zs=class extends M{constructor({identifiers:e=[]},t){super(t,N.IDENTIFIER_STREAM,e||[]),this.identifiers=e}},Qs=class extends M{constructor({name:e,colon:t,value:n},r){super(r,N.ATTRIBUTE,[e,t,n]),this.name=e,this.value=n,this.colon=t}},$s=class extends M{constructor({op:e,expression:t},n){super(n,N.PREFIX_EXPRESSION,[e,t]),this.op=e,this.expression=t}},ec=class extends M{constructor({op:e,leftExpression:t,rightExpression:n},r){super(r,N.INFIX_EXPRESSION,[t,e,n]),this.op=e,this.leftExpression=t,this.rightExpression=n}},tc=class extends M{constructor({op:e,expression:t},n){super(n,N.POSTFIX_EXPRESSION,[t,e]),this.op=e,this.expression=t}},nc=class extends M{constructor({value:e},t){super(t,N.FUNCTION_EXPRESSION,[e]),this.value=e}},F=class extends M{constructor({callee:e,args:t=[]},n){super(n,N.FUNCTION_APPLICATION,[e,...t]),this.callee=e,this.args=t}},rc=class extends M{constructor({blockOpenBrace:e,body:t=[],blockCloseBrace:n},r){super(r,N.BLOCK_EXPRESSION,[e,...t,n]),this.blockOpenBrace=e,this.body=t,this.blockCloseBrace=n}},I=class extends M{constructor({listOpenBracket:e,elementList:t=[],commaList:n=[],listCloseBracket:r},i){super(i,N.LIST_EXPRESSION,[e,...fc(t,n),r]),this.listOpenBracket=e,this.elementList=t,this.commaList=n,this.listCloseBracket=r}},ic=class extends M{constructor({tupleOpenParen:e,elementList:t=[],commaList:n=[],tupleCloseParen:r},i){super(i,N.TUPLE_EXPRESSION,[e,...fc(t,n),r]),this.tupleOpenParen=e,this.elementList=t,this.commaList=n,this.tupleCloseParen=r}},ac=class extends ic{constructor({groupOpenParen:e,expression:t,groupCloseParen:n},r){super({tupleOpenParen:e,elementList:t&&[t],commaList:[],tupleCloseParen:n},r),this.kind=N.GROUP_EXPRESSION}},oc=class extends M{constructor({callee:e,argumentList:t},n){super(n,N.CALL_EXPRESSION,[e,t]),this.callee=e,this.argumentList=t}},sc=class extends M{constructor({literal:e},t){super(t,N.LITERAL,[e]),this.literal=e}},cc=class extends M{constructor({variable:e},t){super(t,N.VARIABLE,[e]),this.variable=e}},lc=class extends M{constructor({expression:e},t){super(t,N.PRIMARY_EXPRESSION,[e]),this.expression=e}},uc=class extends M{constructor({pre:e},t){let n=Hs.create(j.SPACE,e.endPos,e.endPos,` `,!1);super(t,N.DUMMY,[n])}},dc=class extends M{constructor({expression:e,indexer:t},n){super(n,N.ARRAY,[e,t]),this.array=e,this.indexer=t}};function fc(e,t){if(!e||e.length===0)return t||[];if(!t||t.length===0)return e||[];let[n]=e,[r]=t;return(n.start<r.start?zi(Rs(e,t)):zi(Rs(t,e))).filter(e=>e!==null)}function pc(e,t=!1){return JSON.stringify(e,function(e,t){return!(this instanceof Xs)&&e===`symbol`?t?.id:e===`symbol`?{symbolTable:t?.symbolTable,id:t?.id,references:t?.references.map(e=>e.id),declaration:t?.declaration?.id}:e===`referee`||e===`parent`||e===`declaration`?t?.id:e===`symbolTable`?Object.fromEntries(t.table):t},t?2:0)}var mc=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},hc=class{constructor({symbolTable:e},t){this.references=[],this.id=t,this.symbolTable=e}},gc=class{constructor({symbolTable:e,declaration:t},n){this.references=[],this.id=n,this.symbolTable=e,this.declaration=t}},_c=class{constructor({declaration:e},t){this.references=[],this.id=t,this.declaration=e}},vc=class{constructor({symbolTable:e,declaration:t},n){this.references=[],this.id=n,this.symbolTable=e,this.declaration=t}},yc=class{constructor({declaration:e},t){this.references=[],this.id=t,this.declaration=e}},bc=class{constructor({symbolTable:e,declaration:t},n){this.references=[],this.id=n,this.symbolTable=e,this.declaration=t}},xc=class{constructor({declaration:e},t){this.references=[],this.id=t,this.declaration=e}},Sc=class{constructor({symbolTable:e,declaration:t},n){this.references=[],this.id=n,this.symbolTable=e,this.declaration=t}},Cc=class{constructor({symbolTable:e,declaration:t},n){this.references=[],this.id=n,this.symbolTable=e,this.declaration=t}},wc=class{constructor({declaration:e,tablePartialSymbol:t},n){this.references=[],this.id=n,this.declaration=e,this.tablePartialSymbol=t}};let L=function(e){return e[e.UNKNOWN_SYMBOL=1e3]=`UNKNOWN_SYMBOL`,e[e.UNEXPECTED_SYMBOL=1001]=`UNEXPECTED_SYMBOL`,e[e.UNEXPECTED_EOF=1002]=`UNEXPECTED_EOF`,e[e.UNEXPECTED_NEWLINE=1003]=`UNEXPECTED_NEWLINE`,e[e.UNKNOWN_TOKEN=1004]=`UNKNOWN_TOKEN`,e[e.UNEXPECTED_TOKEN=1005]=`UNEXPECTED_TOKEN`,e[e.UNEXPECTED_ELEMENT_DECLARATION=1006]=`UNEXPECTED_ELEMENT_DECLARATION`,e[e.MISSING_SPACES=1007]=`MISSING_SPACES`,e[e.UNKNOWN_PREFIX_OP=1008]=`UNKNOWN_PREFIX_OP`,e[e.INVALID_OPERAND=1009]=`INVALID_OPERAND`,e[e.EMPTY_ATTRIBUTE_NAME=1010]=`EMPTY_ATTRIBUTE_NAME`,e[e.INVALID_ESCAPE_SEQUENCE=1011]=`INVALID_ESCAPE_SEQUENCE`,e[e.INVALID_NAME=3e3]=`INVALID_NAME`,e[e.UNEXPECTED_NAME=3001]=`UNEXPECTED_NAME`,e[e.NAME_NOT_FOUND=3002]=`NAME_NOT_FOUND`,e[e.DUPLICATE_NAME=3003]=`DUPLICATE_NAME`,e[e.INVALID_ALIAS=3004]=`INVALID_ALIAS`,e[e.UNEXPECTED_ALIAS=3005]=`UNEXPECTED_ALIAS`,e[e.UNEXPECTED_SETTINGS=3006]=`UNEXPECTED_SETTINGS`,e[e.INVALID_SETTINGS=3007]=`INVALID_SETTINGS`,e[e.UNEXPECTED_SIMPLE_BODY=3008]=`UNEXPECTED_SIMPLE_BODY`,e[e.UNEXPECTED_COMPLEX_BODY=3009]=`UNEXPECTED_COMPLEX_BODY`,e[e.INVALID_TABLE_CONTEXT=3010]=`INVALID_TABLE_CONTEXT`,e[e.UNKNOWN_TABLE_SETTING=3011]=`UNKNOWN_TABLE_SETTING`,e[e.DUPLICATE_TABLE_SETTING=3012]=`DUPLICATE_TABLE_SETTING`,e[e.INVALID_TABLEGROUP_CONTEXT=3013]=`INVALID_TABLEGROUP_CONTEXT`,e[e.INVALID_TABLEGROUP_ELEMENT_NAME=3014]=`INVALID_TABLEGROUP_ELEMENT_NAME`,e[e.DUPLICATE_TABLEGROUP_ELEMENT_NAME=3015]=`DUPLICATE_TABLEGROUP_ELEMENT_NAME`,e[e.DUPLICATE_TABLEGROUP_FIELD_NAME=3016]=`DUPLICATE_TABLEGROUP_FIELD_NAME`,e[e.INVALID_TABLEGROUP_FIELD=3017]=`INVALID_TABLEGROUP_FIELD`,e[e.EMPTY_TABLE=3018]=`EMPTY_TABLE`,e[e.INVALID_COLUMN=3019]=`INVALID_COLUMN`,e[e.INVALID_COLUMN_NAME=3020]=`INVALID_COLUMN_NAME`,e[e.UNKNOWN_COLUMN_SETTING=3021]=`UNKNOWN_COLUMN_SETTING`,e[e.INVALID_COLUMN_TYPE=3022]=`INVALID_COLUMN_TYPE`,e[e.DUPLICATE_COLUMN_NAME=3023]=`DUPLICATE_COLUMN_NAME`,e[e.DUPLICATE_COLUMN_SETTING=3024]=`DUPLICATE_COLUMN_SETTING`,e[e.INVALID_COLUMN_SETTING_VALUE=3025]=`INVALID_COLUMN_SETTING_VALUE`,e[e.INVALID_ENUM_CONTEXT=3026]=`INVALID_ENUM_CONTEXT`,e[e.INVALID_ENUM_ELEMENT_NAME=3027]=`INVALID_ENUM_ELEMENT_NAME`,e[e.INVALID_ENUM_ELEMENT=3028]=`INVALID_ENUM_ELEMENT`,e[e.DUPLICATE_ENUM_ELEMENT_NAME=3029]=`DUPLICATE_ENUM_ELEMENT_NAME`,e[e.UNKNOWN_ENUM_ELEMENT_SETTING=3030]=`UNKNOWN_ENUM_ELEMENT_SETTING`,e[e.DUPLICATE_ENUM_ELEMENT_SETTING=3031]=`DUPLICATE_ENUM_ELEMENT_SETTING`,e[e.INVALID_ENUM_ELEMENT_SETTING=3032]=`INVALID_ENUM_ELEMENT_SETTING`,e[e.EMPTY_ENUM=3033]=`EMPTY_ENUM`,e[e.INVALID_REF_CONTEXT=3034]=`INVALID_REF_CONTEXT`,e[e.UNKNOWN_REF_SETTING=3035]=`UNKNOWN_REF_SETTING`,e[e.DUPLICATE_REF_SETTING=3036]=`DUPLICATE_REF_SETTING`,e[e.INVALID_REF_SETTING_VALUE=3037]=`INVALID_REF_SETTING_VALUE`,e[e.INVALID_REF_RELATIONSHIP=3038]=`INVALID_REF_RELATIONSHIP`,e[e.INVALID_REF_FIELD=3039]=`INVALID_REF_FIELD`,e[e.EMPTY_REF=3040]=`EMPTY_REF`,e[e.REF_REDEFINED=3041]=`REF_REDEFINED`,e[e.INVALID_NOTE_CONTEXT=3042]=`INVALID_NOTE_CONTEXT`,e[e.INVALID_NOTE=3043]=`INVALID_NOTE`,e[e.NOTE_REDEFINED=3044]=`NOTE_REDEFINED`,e[e.NOTE_CONTENT_REDEFINED=3045]=`NOTE_CONTENT_REDEFINED`,e[e.EMPTY_NOTE=3046]=`EMPTY_NOTE`,e[e.INVALID_INDEXES_CONTEXT=3047]=`INVALID_INDEXES_CONTEXT`,e[e.INVALID_INDEXES_FIELD=3048]=`INVALID_INDEXES_FIELD`,e[e.INVALID_INDEX=3049]=`INVALID_INDEX`,e[e.UNKNOWN_INDEX_SETTING=3050]=`UNKNOWN_INDEX_SETTING`,e[e.DUPLICATE_INDEX_SETTING=3051]=`DUPLICATE_INDEX_SETTING`,e[e.UNEXPECTED_INDEX_SETTING_VALUE=3052]=`UNEXPECTED_INDEX_SETTING_VALUE`,e[e.INVALID_INDEX_SETTING_VALUE=3053]=`INVALID_INDEX_SETTING_VALUE`,e[e.INVALID_PROJECT_CONTEXT=3054]=`INVALID_PROJECT_CONTEXT`,e[e.PROJECT_REDEFINED=3055]=`PROJECT_REDEFINED`,e[e.INVALID_PROJECT_FIELD=3056]=`INVALID_PROJECT_FIELD`,e[e.INVALID_CUSTOM_CONTEXT=3057]=`INVALID_CUSTOM_CONTEXT`,e[e.INVALID_CUSTOM_ELEMENT_VALUE=3058]=`INVALID_CUSTOM_ELEMENT_VALUE`,e[e.INVALID_ELEMENT_IN_SIMPLE_BODY=3059]=`INVALID_ELEMENT_IN_SIMPLE_BODY`,e[e.INVALID_TABLE_PARTIAL_CONTEXT=3060]=`INVALID_TABLE_PARTIAL_CONTEXT`,e[e.INVALID_TABLE_PARTIAL_ELEMENT_NAME=3061]=`INVALID_TABLE_PARTIAL_ELEMENT_NAME`,e[e.INVALID_TABLE_PARTIAL_SETTING_VALUE=3062]=`INVALID_TABLE_PARTIAL_SETTING_VALUE`,e[e.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME=3063]=`DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME`,e[e.DUPLICATE_TABLE_PARTIAL_SETTING=3064]=`DUPLICATE_TABLE_PARTIAL_SETTING`,e[e.INVALID_TABLE_PARTIAL_INJECTION=3065]=`INVALID_TABLE_PARTIAL_INJECTION`,e[e.INVALID_TABLE_PARTIAL_INJECTION_OP=3066]=`INVALID_TABLE_PARTIAL_INJECTION_OP`,e[e.INVALID_TABLE_PARTIAL_INJECTION_NAME=3067]=`INVALID_TABLE_PARTIAL_INJECTION_NAME`,e[e.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME=3068]=`DUPLICATE_TABLE_PARTIAL_INJECTION_NAME`,e[e.UNKNOWN_TABLE_PARTIAL_SETTING=3069]=`UNKNOWN_TABLE_PARTIAL_SETTING`,e[e.INVALID_TABLE_SETTING_VALUE=3070]=`INVALID_TABLE_SETTING_VALUE`,e[e.INVALID_CHECKS_CONTEXT=3071]=`INVALID_CHECKS_CONTEXT`,e[e.INVALID_CHECKS_FIELD=3072]=`INVALID_CHECKS_FIELD`,e[e.INVALID_CHECK=3073]=`INVALID_CHECK`,e[e.UNKNOWN_CHECK_SETTING=3074]=`UNKNOWN_CHECK_SETTING`,e[e.DUPLICATE_CHECK_SETTING=3075]=`DUPLICATE_CHECK_SETTING`,e[e.INVALID_CHECK_SETTING_VALUE=3076]=`INVALID_CHECK_SETTING_VALUE`,e[e.BINDING_ERROR=4e3]=`BINDING_ERROR`,e[e.UNSUPPORTED=5e3]=`UNSUPPORTED`,e[e.CIRCULAR_REF=5001]=`CIRCULAR_REF`,e[e.SAME_ENDPOINT=5002]=`SAME_ENDPOINT`,e[e.UNEQUAL_FIELDS_BINARY_REF=5003]=`UNEQUAL_FIELDS_BINARY_REF`,e[e.CONFLICTING_SETTING=5004]=`CONFLICTING_SETTING`,e[e.TABLE_REAPPEAR_IN_TABLEGROUP=5005]=`TABLE_REAPPEAR_IN_TABLEGROUP`,e}({});var R=class e extends Error{constructor(t,n,r){super(n),this.code=t,this.diagnostic=n,this.nodeOrToken=r,this.start=r.start,this.end=r.end,this.name=this.constructor.name,Object.setPrototypeOf(this,e.prototype)}},Tc=class e{constructor(e,t){this.value=e,this.errors=t===void 0?[]:t}getValue(){return this.value}getErrors(){return this.errors}chain(t){let n=t(this.value),r=[...this.errors,...n.errors];return new e(n.value,r)}map(t){return new e(t(this.value),this.errors)}};function Ec(e){return!!e.match(/(\p{L}|_|\p{M})/gu)}function Dc(e){if(!e)return!1;let t=e[0];return t>=`0`&&t<=`9`}function Oc(e){let[t]=e;return Dc(t)||Ec(t)&&t.toLowerCase()>=`a`&&t.toLowerCase()<=`f`}function kc(e){return Ec(e)||Dc(e)}function Ac(e){return e.split(``).every(kc)?e:`"${e}"`}function jc(e,t){let n=[],r=Math.min(e.length,t.length);for(let i=0;i<r;i+=1)n.push(e[i],t[i]);return n.push(...e.slice(r),...t.slice(r)),n}function Mc(e,t){return e>=t.start&&e<t.end}function Nc(e){return e instanceof $s?`${e.op?.value}${Nc(e.expression)}`:e.expression.literal.value}function Pc(e){return e instanceof $s?e.op?.value===`-`?-Pc(e.expression):Pc(e.expression):Number.parseFloat(e.expression.literal.value)}var Fc=class e{constructor(e){this.value=e}unwrap(){return this.value}unwrap_or(e){return this.value}and_then(e){return e(this.value)}map(t){return new e(t(this.value))}isOk(){return!0}},z=class e{constructor(){this.value=void 0}unwrap(){throw Error(`Trying to unwrap a None value`)}unwrap_or(e){return e}and_then(t){return new e}map(t){return new e}isOk(){return!1}};const Ic=[`null`,`true`,`false`],Lc=[`-`,`+`],Rc=`public`;let B=function(e){return e.Table=`table`,e.Enum=`enum`,e.Ref=`ref`,e.Note=`note`,e.Project=`project`,e.Indexes=`indexes`,e.TableGroup=`tablegroup`,e.TablePartial=`tablepartial`,e.Check=`checks`,e}({}),V=function(e){return e.Color=`color`,e.HeaderColor=`headercolor`,e.Note=`note`,e.PK=`pk`,e.PrimaryKey=`primary key`,e.Unique=`unique`,e.Ref=`ref`,e.NotNull=`not null`,e.Null=`null`,e.Increment=`increment`,e.Default=`default`,e.Name=`name`,e.Type=`type`,e.Check=`check`,e.Update=`update`,e.Delete=`delete`,e}({});var zc=class{constructor(e,t,n){this.declarationNode=e,this.publicSymbolTable=t,this.symbolFactory=n}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof Xs||wl(this.declarationNode.parent).unwrap_or(void 0)!==B.Project?[new R(L.INVALID_CUSTOM_CONTEXT,`A Custom element can only appear in a Project`,this.declarationNode)]:[]}validateName(e){return e?[new R(L.UNEXPECTED_NAME,`A Custom element shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new R(L.UNEXPECTED_NAME,`A Custom element shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new R(L.UNEXPECTED_SETTINGS,`A Custom element shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof rc)return[new R(L.UNEXPECTED_COMPLEX_BODY,`A Custom element can only have an inline field`,e)];let t=[];return Ul(e.callee)||t.push(new R(L.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e)),e.args.length>0&&t.push(...e.args.map(e=>new R(L.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e))),t}};let H=function(e){return e.Schema=`Schema`,e.Table=`Table`,e.Column=`Column`,e.TableGroup=`TableGroup`,e.TableGroupField=`TableGroup field`,e.Enum=`Enum`,e.EnumField=`Enum field`,e.Note=`Note`,e.TablePartial=`TablePartial`,e.PartialInjection=`PartialInjection`,e}({});function Bc(e){return`${H.Schema}:${e}`}function Vc(e){return`${H.Table}:${e}`}function Hc(e){return`${H.Column}:${e}`}function Uc(e){return`${H.Enum}:${e}`}function Wc(e){return`${H.EnumField}:${e}`}function Gc(e){return`${H.TableGroup}:${e}`}function Kc(e){return`${H.TableGroupField}:${e}`}function qc(e){return`${H.Note}:${e}`}function Jc(e){return`${H.TablePartial}:${e}`}function Yc(e){return`${H.PartialInjection}:${e}`}function Xc(e,t){switch(t){case H.Column:return Hc(e);case H.Enum:return Uc(e);case H.EnumField:return Wc(e);case H.Schema:return Bc(e);case H.Table:return Vc(e);case H.TableGroup:return Gc(e);case H.TableGroupField:return Kc(e);case H.TablePartial:return Jc(e);case H.PartialInjection:return Yc(e);default:throw Error(`Unreachable`)}}function Zc(e){let[t,n]=e.split(`:`);return Object.values(H).includes(t)?new Fc({name:n,kind:t}):new z}var Qc=class{constructor(){this.table=new Map}has(e){return this.table.has(e)}set(e,t){this.table.set(e,t)}get(e,t){return this.table.get(e)||t!==void 0&&this.set(e,t)||t}entries(){return this.table.entries()}forEach(e){return this.table.forEach(e)}},$c=class{constructor(e,t,n){this.declarationNode=e,this.publicSymbolTable=t,this.symbolFactory=n}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.registerElement(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof P?[new R(L.INVALID_PROJECT_CONTEXT,`An Enum can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?dl(e)?[]:[new R(L.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,e)]:[new R(L.NAME_NOT_FOUND,`An Enum must have a name`,this.declarationNode)]}validateAlias(e){return e?[new R(L.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,e)]:[]}registerElement(){let e=[];this.declarationNode.symbol=this.symbolFactory.create(gc,{declaration:this.declarationNode,symbolTable:new Qc});let{name:t}=this.declarationNode,n=El(t);if(n.isOk()){let r=n.unwrap(),i=r.pop(),a=hl(r,this.publicSymbolTable,this.symbolFactory),o=Uc(i);a.has(o)&&e.push(new R(L.DUPLICATE_NAME,`Enum name ${i} already exists in schema '${r.join(`.`)||`public`}'`,t)),a.set(o,this.declarationNode.symbol)}return e}validateSettingList(e){return e?[new R(L.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof F)return this.validateFields([e]);let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.length===0?[new R(L.EMPTY_ENUM,`An Enum must have at least one element`,this.declarationNode)]:e.flatMap(e=>{let t=[];e.callee&&!Wl(e.callee)&&t.push(new R(L.INVALID_ENUM_ELEMENT_NAME,`An enum field must be an identifier or a quoted identifier`,e.callee));let n=[...e.args];return xs(n)instanceof I?(t.push(...this.validateFieldSettings(xs(n))),n.pop()):n[0]instanceof I&&(t.push(...this.validateFieldSettings(n[0])),n.shift()),n.length>0&&t.push(...n.map(e=>new R(L.INVALID_ENUM_ELEMENT,`An Enum must have only a field and optionally a setting list`,e))),t.push(...this.registerField(e)),t})}validateFieldSettings(e){let t=U(e),n=t.getErrors(),r=t.getValue();for(let e in r){let t=r[e];switch(e){case`note`:t.length>1&&t.forEach(e=>n.push(new R(L.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{Ul(e.value)||n.push(new R(L.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))});break;default:t.forEach(t=>n.push(new R(L.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${e}'`,t)))}}return n}validateSubElements(e){return e.flatMap(e=>(e.parent=this.declarationNode,e.type?new(ul(e))(e,this.publicSymbolTable,this.symbolFactory).validate():[]))}registerField(e){if(e.callee&&Wl(e.callee)){let t=Al(e.callee).unwrap(),n=Wc(t),r=this.symbolFactory.create(_c,{declaration:e});e.symbol=r;let i=this.declarationNode.symbol.symbolTable;if(i.has(n)){let r=i.get(n);return[new R(L.DUPLICATE_COLUMN_NAME,`Duplicate enum field ${t}`,e),new R(L.DUPLICATE_COLUMN_NAME,`Duplicate enum field ${t}`,r.declaration)]}i.set(n,r)}return[]}},el=class{constructor(e,t,n){this.declarationNode=e,this.publicSymbolTable=t,this.symbolFactory=n}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=new R(L.INVALID_INDEXES_CONTEXT,`An Indexes can only appear inside a Table or a TablePartial`,this.declarationNode);if(this.declarationNode.parent instanceof Xs)return[e];let t=wl(this.declarationNode.parent).unwrap_or(void 0);return t&&[B.Table,B.TablePartial].includes(t)?[]:[e]}validateName(e){return e?[new R(L.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new R(L.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new R(L.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof F)return[new R(L.UNEXPECTED_SIMPLE_BODY,`An Indexes must have a complex body`,e)];let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];return xs(n)instanceof I&&t.push(...this.validateFieldSetting(n.pop())),n.forEach(e=>{for(;e instanceof oc;)e.argumentList&&!kl(e.argumentList).isOk()&&t.push(new R(L.INVALID_INDEXES_FIELD,`An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such`,e.argumentList)),e=e.callee;kl(e).isOk()||t.push(new R(L.INVALID_INDEXES_FIELD,`An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such`,e))}),t})}validateFieldSetting(e){let t=U(e),n=t.getErrors(),r=t.getValue();for(let e in r){let t=r[e];switch(e){case`note`:case`name`:t.length>1&&t.forEach(t=>n.push(new R(L.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{Ul(t.value)||n.push(new R(L.INVALID_INDEX_SETTING_VALUE,`'${e}' must be a string`,t))});break;case`unique`:case`pk`:t.length>1&&t.forEach(t=>n.push(new R(L.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{vl(t.value)||n.push(new R(L.INVALID_INDEX_SETTING_VALUE,`'${e}' must not have a value`,t))});break;case`type`:t.length>1&&t.forEach(e=>n.push(new R(L.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{Wl(e.value)||n.push(new R(L.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))});break;default:t.forEach(t=>n.push(new R(L.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}}return n}validateSubElements(e){return e.flatMap(e=>(e.parent=this.declarationNode,e.type?new(ul(e))(e,this.publicSymbolTable,this.symbolFactory).validate():[]))}},tl=class{constructor(e,t,n){this.declarationNode=e,this.publicSymbolTable=t,this.symbolFactory=n}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return!(this.declarationNode.parent instanceof Xs)&&![B.Table,B.TableGroup,B.TablePartial,B.Project].includes(wl(this.declarationNode.parent).unwrap_or(void 0))?[new R(L.INVALID_NOTE_CONTEXT,`A Note can only appear inside a Table, a TableGroup, a TablePartial or a Project. Sticky note can only appear at the global scope.`,this.declarationNode)]:[]}validateName(e){if(!(this.declarationNode.parent instanceof Xs))return e?[new R(L.UNEXPECTED_NAME,`A Note shouldn't have a name`,e)]:[];if(!e)return[new R(L.INVALID_NAME,`Sticky note must have a name`,this.declarationNode)];let t=El(e);if(!t.isOk())return[new R(L.INVALID_NAME,`Invalid name for sticky note `,this.declarationNode)];let n=t.unwrap().join(`.`),r=qc(n);return this.publicSymbolTable.has(r)?[new R(L.DUPLICATE_NAME,`Sticky note "${n}" has already been defined`,e)]:(this.publicSymbolTable.set(r,this.declarationNode.symbol),[])}validateAlias(e){return e?[new R(L.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new R(L.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof F)return this.validateFields([e]);let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=[];return e.length===0?[new R(L.EMPTY_NOTE,`A Note must have a content`,this.declarationNode)]:(e.length>1&&e.slice(1).forEach(e=>t.push(new R(L.NOTE_CONTENT_REDEFINED,`A Note can only contain one string`,e))),Ul(e[0].callee)||t.push(new R(L.INVALID_NOTE,`A Note content must be a quoted string`,e[0])),e[0].args.length>0&&t.push(...e[0].args.map(e=>new R(L.INVALID_NOTE,`A Note can only contain one quoted string`,e))),t)}validateSubElements(e){return e.flatMap(e=>(e.parent=this.declarationNode,e.type?new(ul(e))(e,this.publicSymbolTable,this.symbolFactory).validate():[]))}},nl=class{constructor(e,t,n){this.declarationNode=e,this.publicSymbolTable=t,this.symbolFactory=n}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof P?[new R(L.INVALID_PROJECT_CONTEXT,`A Project can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?pl(e)?[]:[new R(L.INVALID_NAME,`A Project's name is optional or must be an identifier or a quoted identifer`,e)]:[]}validateAlias(e){return e?[new R(L.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new R(L.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof F)return[new R(L.UNEXPECTED_SIMPLE_BODY,`A Project's body must be a block`,e)];let[t,n]=Ns(e.body,e=>e instanceof F);return[...t.map(e=>new R(L.INVALID_PROJECT_FIELD,`A Project can not have inline fields`,e)),...this.validateSubElements(n)]}validateSubElements(e){return e.flatMap(e=>(e.parent=this.declarationNode,e.type?new(ul(e))(e,this.publicSymbolTable,this.symbolFactory).validate():[]))}},rl=class{constructor(e,t,n){this.declarationNode=e,this.publicSymbolTable=t,this.symbolFactory=n}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof Xs?[]:[new R(L.INVALID_REF_CONTEXT,`A Ref must appear top-level`,this.declarationNode)]}validateName(e){return e?pl(e)?[]:[new R(L.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,e)]:[]}validateAlias(e){return e?[new R(L.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new R(L.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof F)return this.validateFields([e]);let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new R(L.EMPTY_REF,`A Ref must have at least one field`,this.declarationNode)];let t=[];return e.length>1&&t.push(...e.slice(1).map(e=>new R(L.REF_REDEFINED,`A Ref can only contain one binary relationship`,e))),e.forEach(e=>{if(e.callee&&!Ml(e.callee)&&t.push(new R(L.INVALID_REF_FIELD,`A Ref field must be a binary relationship`,e.callee)),e.callee&&Ml(e.callee)){let n=Dl(e.callee.leftExpression).unwrap_or({variables:[],tupleElements:[]}),r=n.variables.length+Math.min(n.tupleElements.length,1),i=Dl(e.callee.rightExpression).unwrap_or({variables:[],tupleElements:[]}),a=i.variables.length+Math.min(i.tupleElements.length,1);r<2&&t.push(new R(L.INVALID_REF_FIELD,`Invalid column reference`,e.callee.leftExpression||e.callee)),a<2&&t.push(new R(L.INVALID_REF_FIELD,`Invalid column reference`,e.callee.rightExpression||e.callee))}e.callee&&!Nl(e.callee)&&t.push(new R(L.UNEQUAL_FIELDS_BINARY_REF,`Unequal fields in ref endpoints`,e.callee));let n=[...e.args];if(xs(n)instanceof I){let e=this.validateFieldSettings(xs(n));t.push(...e),n.pop()}else n[0]instanceof I&&(t.push(...this.validateFieldSettings(n[0])),n.shift());n.length>0&&t.push(...n.map(e=>new R(L.INVALID_REF_FIELD,`A Ref field should only have a single binary relationship`,e)))}),t}validateFieldSettings(e){let t=U(e),n=t.getErrors(),r=t.getValue();for(let e in r){let t=r[e];switch(e){case`delete`:case`update`:t.length>1&&t.forEach(t=>n.push(new R(L.DUPLICATE_REF_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{il(t.value)||n.push(new R(L.INVALID_REF_SETTING_VALUE,`'${e}' can only have values "cascade", "no action", "set null", "set default" or "restrict"`,t))});break;case`color`:t.length>1&&n.push(...t.map(e=>new R(L.DUPLICATE_REF_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{_l(e.value)||n.push(new R(L.INVALID_REF_SETTING_VALUE,`'color' must be a color literal`,e))});break;default:t.forEach(t=>n.push(new R(L.UNKNOWN_REF_SETTING,`Unknown ref setting '${e}'`,t)))}}return n}validateSubElements(e){return e.flatMap(e=>(e.parent=this.declarationNode,e.type?new(ul(e))(e,this.publicSymbolTable,this.symbolFactory).validate():[]))}};function il(e){if(!(Wl(e)&&e.expression.variable.kind!==j.QUOTED_STRING)&&!(e instanceof Zs))return!1;let t;if(t=e instanceof Zs?Jl(e).unwrap_or(``):e.expression.variable.value,t)switch(t.toLowerCase()){case`cascade`:case`no action`:case`set null`:case`set default`:case`restrict`:return!0;default:return!1}return!1}var al=class{constructor(e,t,n){this.declarationNode=e,this.symbolFactory=n,this.publicSymbolTable=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.registerElement(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof P?[new R(L.INVALID_TABLE_CONTEXT,`Table must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof dc?[new R(L.INVALID_NAME,`Invalid array as Table name, maybe you forget to add a space between the name and the setting list?`,e)]:dl(e)?[]:[new R(L.INVALID_NAME,`A Table name must be of the form <table> or <schema>.<table>`,e)]:[new R(L.NAME_NOT_FOUND,`A Table must have a name`,this.declarationNode)]}validateAlias(e){return e?fl(e)?[]:[new R(L.INVALID_ALIAS,`Table aliases can only contains alphanumeric and underscore unless surrounded by double quotes`,e)]:[]}validateSettingList(e){let t=U(e),n=t.getErrors();return js(t.getValue(),(e,t)=>{switch(t){case V.HeaderColor:e.length>1&&n.push(...e.map(e=>new R(L.DUPLICATE_TABLE_SETTING,`'headercolor' can only appear once`,e))),e.forEach(e=>{_l(e.value)||n.push(new R(L.INVALID_TABLE_SETTING_VALUE,`'headercolor' must be a color literal`,e.value||e.name))});break;case V.Note:e.length>1&&n.push(...e.map(e=>new R(L.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.forEach(e=>{Ul(e.value)||n.push(new R(L.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new R(L.UNKNOWN_TABLE_SETTING,`Unknown '${t}' setting`,e)))}}),n}registerElement(){let e=[];this.declarationNode.symbol=this.symbolFactory.create(vc,{declaration:this.declarationNode,symbolTable:new Qc});let{name:t,alias:n}=this.declarationNode,r=El(t);if(r.isOk()){let n=[...r.unwrap()],i=n.pop(),a=hl(n,this.publicSymbolTable,this.symbolFactory),o=Vc(i);a.has(o)&&e.push(new R(L.DUPLICATE_NAME,`Table name '${i}' already exists in schema '${n.join(`.`)||`public`}'`,t)),a.set(o,this.declarationNode.symbol)}if(n&&pl(n)&&!ol(n.expression.variable.value,r.unwrap_or([]))){let r=Al(n).unwrap(),i=Vc(r);this.publicSymbolTable.has(i)&&e.push(new R(L.DUPLICATE_NAME,`Table name '${r}' already exists`,t)),this.publicSymbolTable.set(i,this.declarationNode.symbol)}return e}validateBody(e){if(!e)return[];if(e instanceof F)return[new R(L.UNEXPECTED_SIMPLE_BODY,`A Table's body must be a block`,e)];let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=e=>{let t=[];if(!e.callee)return[];e.args.length===0&&t.push(new R(L.INVALID_COLUMN,`A column must have a type`,e.callee)),Wl(e.callee)||t.push(new R(L.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!Cl(e.args[0])&&t.push(new R(L.INVALID_COLUMN_TYPE,`Invalid column type`,e.args[0]));let n=e.args.slice(1);return t.push(...this.validateFieldSetting(n)),t.push(...this.registerField(e)),t},n=e=>{let t=[];if(!e.callee)return[];if(!ml(e.callee))t.push(new R(L.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection should be of the form ~<table-partial>`,e.callee));else{let t=Ol(e.callee.expression).unwrap_or(``),n=this.symbolFactory.create(Cc,{symbolTable:new Qc,declaration:e}),r=Yc(t),i=this.declarationNode.symbol.symbolTable;if(i.has(r)){let n=i.get(r);return[new R(L.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME,`Duplicate table partial injection '${t}'`,e),new R(L.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME,`Duplicate table partial injection '${t}'`,n.declaration)]}i.set(r,n)}return e.args.length&&t.push(...e.args.map(e=>new R(L.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection does not have any trailing attributes`,e))),t};return e.flatMap(e=>e.callee instanceof $s&&e.callee.op?.value===`~`?n(e):t(e))}registerField(e){if(e.callee&&Wl(e.callee)){let t=Al(e.callee).unwrap(),n=Hc(t),r=this.symbolFactory.create(yc,{declaration:e});e.symbol=r;let i=this.declarationNode.symbol.symbolTable;if(i.has(n)){let r=i.get(n);return[new R(L.DUPLICATE_COLUMN_NAME,`Duplicate column ${t}`,e),new R(L.DUPLICATE_COLUMN_NAME,`Duplicate column ${t}`,r.declaration)]}i.set(n,r)}return[]}validateFieldSetting(e){if(!e.slice(0,-1).every(Gl)||!e.slice(-1).every(e=>Gl(e)||e instanceof I))return[...e.map(e=>new R(L.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e))];if(e.length===0)return[];let t;xs(e)instanceof I&&(t=e.pop());let n=U(t),r=n.getErrors(),i=n.getValue();e.forEach(e=>{let t=Al(e).unwrap_or(``).toLowerCase();if(t!==`pk`&&t!==`unique`){r.push(new R(L.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}i[t]===void 0?i[t]=[e]:i[t].push(e)});let a=i[V.PK]||[],o=i[V.PrimaryKey]||[];return a.length>=1&&o.length>=1&&r.push(...[...a,...o].map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),js(i,(e,t)=>{switch(t){case V.Note:e.length>1&&r.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`note can only appear once`,e))),e.forEach(e=>{Ul(e.value)||r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'note' must be a quoted string`,e.value||e.name))});break;case V.Ref:e.forEach(e=>{xl(e.value)||r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'ref' must be a valid unary relationship`,e.value||e.name))});break;case V.PrimaryKey:e.length>1&&r.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`primary key can only appear once`,e))),e.forEach(e=>{vl(e.value)||r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'primary key' must not have a value`,e.value||e.name))});break;case V.PK:e.length>1&&r.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'pk' can only appear once`,e))),e.forEach(e=>{e instanceof Qs&&!vl(e.value)&&r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'pk' must not have a value`,e.value||e.name))});break;case V.NotNull:{e.length>1&&r.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'not null' can only appear once`,e)));let t=i[V.Null]||[];e.length>=1&&t.length>=1&&r.push(...[...e,...t].map(e=>new R(L.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{vl(e.value)||r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'not null' must not have a value`,e.value||e.name))});break}case V.Null:e.length>1&&r.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'null' can only appear once`,e))),e.forEach(e=>{vl(e.value)||r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'null' must not have a value`,e.value||e.name))});break;case V.Unique:e.length>1&&r.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'unique' can only appear once`,e))),e.forEach(e=>{e instanceof Qs&&!vl(e.value)&&r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'unique' must not have a value`,e.value||e.name))});break;case V.Increment:e.length>1&&r.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'increment' can only appear once`,e))),e.forEach(e=>{e instanceof Qs&&!vl(e.value)&&r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'increment' must not have a value`,e.value||e.name))});break;case V.Default:e.length>1&&r.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'default' can only appear once`,e))),e.forEach(e=>{yl(e.value)||r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'default' must be an enum value, a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case V.Check:e.forEach(e=>{e.value instanceof nc||r.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>r.push(new R(L.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),r}validateSubElements(e){let t=e.flatMap(e=>(e.parent=this.declarationNode,e.type?new(ul(e))(e,this.publicSymbolTable,this.symbolFactory).validate():[])),n=e.filter(e=>e.type?.value.toLowerCase()===`note`);return n.length>1&&t.push(...n.map(e=>new R(L.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function ol(e,t){return t.length===1&&e===t[0]}var sl=class{constructor(e,t,n){this.declarationNode=e,this.publicSymbolTable=t,this.symbolFactory=n}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.registerElement(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof P?[new R(L.INVALID_TABLEGROUP_CONTEXT,`TableGroup must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?pl(e)?[]:[new R(L.INVALID_NAME,`A TableGroup name must be a single identifier`,e)]:[new R(L.NAME_NOT_FOUND,`A TableGroup must have a name`,this.declarationNode)]}validateAlias(e){return e?[new R(L.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,e)]:[]}registerElement(){let{name:e}=this.declarationNode;this.declarationNode.symbol=this.symbolFactory.create(bc,{declaration:this.declarationNode,symbolTable:new Qc});let t=El(e);if(t.isOk()){let n=t.unwrap(),r=n.pop(),i=hl(n,this.publicSymbolTable,this.symbolFactory),a=Gc(r);if(i.has(a))return[new R(L.DUPLICATE_NAME,`TableGroup name '${r}' already exists`,e)];i.set(a,this.declarationNode.symbol)}return[]}validateSettingList(e){let t=U(e),n=t.getErrors();return js(t.getValue(),(e,t)=>{switch(t){case`color`:e.length>1&&n.push(...e.map(e=>new R(L.DUPLICATE_TABLE_SETTING,`'color' can only appear once`,e))),e.forEach(e=>{_l(e.value)||n.push(new R(L.INVALID_TABLE_SETTING_VALUE,`'color' must be a color literal`,e.value||e.name))});break;case`note`:e.length>1&&n.push(...e.map(e=>new R(L.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.filter(e=>!Ul(e.value)).forEach(e=>{n.push(new R(L.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new R(L.UNKNOWN_TABLE_SETTING,`Unknown '${t}' setting`,e)));break}}),n}validateBody(e){if(!e)return[];if(e instanceof F)return[new R(L.UNEXPECTED_SIMPLE_BODY,`A TableGroup's body must be a block`,e)];let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{let t=[];return e.callee&&!El(e.callee).isOk()&&t.push(new R(L.INVALID_TABLEGROUP_FIELD,`A TableGroup field must be of the form <table> or <schema>.<table>`,e.callee)),this.registerField(e),e.args.length>0&&t.push(...e.args.map(e=>new R(L.INVALID_TABLEGROUP_FIELD,`A TableGroup field should only have a single Table name`,e))),t})}validateSubElements(e){let t=e.flatMap(e=>(e.parent=this.declarationNode,e.type?new(ul(e))(e,this.publicSymbolTable,this.symbolFactory).validate():[])),n=e.filter(e=>e.type?.value.toLowerCase()===`note`);return n.length>1&&t.push(...n.map(e=>new R(L.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}registerField(e){if(e.callee&&Wl(e.callee)){let t=Al(e.callee).unwrap(),n=Kc(t),r=this.symbolFactory.create(xc,{declaration:e});e.symbol=r;let i=this.declarationNode.symbol.symbolTable;if(i.has(n)){let r=i.get(n);return[new R(L.DUPLICATE_TABLEGROUP_FIELD_NAME,`${t} already exists in the group`,e),new R(L.DUPLICATE_TABLEGROUP_FIELD_NAME,`${t} already exists in the group`,r.declaration)]}i.set(n,r)}return[]}},cl=class{constructor(e,t,n){this.declarationNode=e,this.symbolFactory=n,this.publicSymbolTable=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.registerElement(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof P?[new R(L.INVALID_TABLE_PARTIAL_CONTEXT,`TablePartial must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?pl(e)?[]:[new R(L.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,e)]:[new R(L.NAME_NOT_FOUND,`A TablePartial must have a name`,this.declarationNode)]}validateAlias(e){return e?[new R(L.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=U(e),n=t.getErrors();return js(t.getValue(),(e,t)=>{switch(t){case V.HeaderColor:e.length>1&&n.push(...e.map(e=>new R(L.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{_l(e.value)||n.push(new R(L.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a color literal`,e.value||e.name))});break;case V.Note:e.length>1&&n.push(...e.map(e=>new R(L.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Ul(e.value)||n.push(new R(L.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new R(L.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),n}registerElement(){let{name:e}=this.declarationNode;this.declarationNode.symbol=this.symbolFactory.create(Sc,{declaration:this.declarationNode,symbolTable:new Qc});let t=El(e);if(!t.isOk())return[];let n=t.unwrap(),r=n.pop(),i=hl(n,this.publicSymbolTable,this.symbolFactory),a=Jc(r);return i.has(a)?[new R(L.DUPLICATE_NAME,`TablePartial name '${r}' already exists`,e)]:(i.set(a,this.declarationNode.symbol),[])}validateBody(e){if(!e)return[];if(e instanceof F)return[new R(L.UNEXPECTED_SIMPLE_BODY,`A TablePartial's body must be a block`,e)];let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[];e.args.length===0&&t.push(new R(L.INVALID_COLUMN,`A column must have a type`,e.callee)),Wl(e.callee)||t.push(new R(L.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!Cl(e.args[0])&&t.push(new R(L.INVALID_COLUMN_TYPE,`Invalid column type`,e.args[0]));let n=e.args.slice(1);return t.push(...this.validateFieldSetting(n),...this.registerField(e)),t})}registerField(e){if(!e.callee||!Wl(e.callee))return[];let t=Al(e.callee).unwrap(),n=Hc(t),r=this.symbolFactory.create(yc,{declaration:e});e.symbol=r;let i=this.declarationNode.symbol.symbolTable;if(i.has(n)){let r=i.get(n);return[new R(L.DUPLICATE_COLUMN_NAME,`Duplicate column ${t}`,e),new R(L.DUPLICATE_COLUMN_NAME,`Duplicate column ${t}`,r.declaration)]}return i.set(n,r),[]}validateFieldSetting(e){let t=xs(e);if(!e.slice(0,-1).every(Gl)||!(Gl(t)||t instanceof I))return[...e.map(e=>new R(L.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e))];if(e.length===0)return[];let n;xs(e)instanceof I&&(n=e.pop());let r=U(n),i=r.getErrors(),a=r.getValue();e.forEach(e=>{let t=Al(e).unwrap_or(``).toLowerCase();if(t!==V.PK&&t!==V.Unique){i.push(new R(L.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}a[t]===void 0?a[t]=[e]:a[t].push(e)});let o=a[V.PK]||[],s=a[V.PrimaryKey]||[];return o.length>=1&&s.length>=1&&i.push(...[...o,...s].map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),js(a,(e,t)=>{switch(t){case V.Note:e.length>1&&i.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Ul(e.value)||i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case V.Ref:e.forEach(e=>{xl(e.value)||i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a valid unary relationship`,e.value||e.name))});break;case V.PrimaryKey:e.length>1&&i.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{vl(e.value)||i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case V.PK:e.length>1&&i.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof Qs&&!vl(e.value)&&i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case V.NotNull:{e.length>1&&i.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e)));let n=a[V.Null]||[];e.length>=1&&n.length>=1&&i.push(...[...e,...n].map(e=>new R(L.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{vl(e.value)||i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break}case V.Null:e.length>1&&i.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{vl(e.value)||i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case V.Unique:e.length>1&&i.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof Qs&&!vl(e.value)&&i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case V.Increment:e.length>1&&i.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof Qs&&!vl(e.value)&&i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case V.Default:e.length>1&&i.push(...e.map(e=>new R(L.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{yl(e.value)||i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case V.Check:e.forEach(e=>{e.value instanceof nc||i.push(new R(L.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:e.forEach(e=>i.push(new R(L.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${t}'`,e)))}}),i}validateSubElements(e){let t=e.flatMap(e=>(e.parent=this.declarationNode,e.type?new(ul(e))(e,this.publicSymbolTable,this.symbolFactory).validate():[])),n=e.filter(e=>e.type?.value.toLowerCase()===B.Note);return n.length>1&&t.push(...n.map(e=>new R(L.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}},ll=class{constructor(e,t,n){this.declarationNode=e,this.publicSymbolTable=t,this.symbolFactory=n}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=new R(L.INVALID_CHECKS_CONTEXT,`A Checks can only appear inside a Table or a TablePartial`,this.declarationNode);if(this.declarationNode.parent instanceof Xs)return[e];let t=wl(this.declarationNode.parent).unwrap_or(void 0);return t&&[B.Table,B.TablePartial].includes(t)?[]:[e]}validateName(e){return e?[new R(L.UNEXPECTED_NAME,`A Checks shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new R(L.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new R(L.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof F)return[new R(L.UNEXPECTED_SIMPLE_BODY,`A Checks must have a complex body`,e)];let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];return xs(n)instanceof I&&t.push(...this.validateFieldSetting(n.pop())),(n.length>1||!(n[0]instanceof nc))&&t.push(new R(L.INVALID_CHECKS_FIELD,`A check field must be a function expression`,e)),t})}validateFieldSetting(e){let t=U(e),n=t.getErrors(),r=t.getValue();for(let e in r){let t=r[e];switch(e){case`name`:t.length>1&&t.forEach(t=>n.push(new R(L.DUPLICATE_CHECK_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{Ul(t.value)||n.push(new R(L.INVALID_CHECK_SETTING_VALUE,`'${e}' must be a string`,t))});break;default:t.forEach(t=>n.push(new R(L.UNKNOWN_CHECK_SETTING,`Unknown check setting '${e}'`,t)))}}return n}validateSubElements(e){return e.flatMap(e=>(e.parent=this.declarationNode,e.type?new(ul(e))(e,this.publicSymbolTable,this.symbolFactory).validate():[]))}};function ul(e){switch(e.type.value.toLowerCase()){case B.Enum:return $c;case B.Table:return al;case B.TableGroup:return sl;case B.Project:return nl;case B.Ref:return rl;case B.Note:return tl;case B.Indexes:return el;case B.TablePartial:return cl;case B.Check:return ll;default:return zc}}function dl(e){return!!El(e).unwrap_or(!1)}function fl(e){return pl(e)}function pl(e){return e instanceof lc&&e.expression instanceof cc}function ml(e){return e instanceof $s&&e.op?.value===`~`&&Wl(e.expression)}function hl(e,t,n){e[0]===`public`&&(e=e.slice(1));let r=t;for(let t of e){let e,i=Bc(t);if(r.has(i)){if(e=r.get(i)?.symbolTable,!e)throw Error(`Expect a symbol table in a schema symbol`)}else{e=new Qc;let t=n.create(hc,{symbolTable:e});r.set(i,t)}r=e}return r}function gl(e){return e===`-`||e===`<>`||e===`>`||e===`<`}function _l(e){if(!(e instanceof lc)||!(e.expression instanceof sc)||e.expression.literal?.kind!==j.COLOR_LITERAL)return!1;let t=e.expression.literal.value;if(t.length!==4&&t.length!==7||t[0]!==`#`)return!1;for(let e=1;e<t.length;e+=1)if(!Oc(t[e]))return!1;return!0}function vl(e){return e===void 0}function yl(e){if(Ul(e)||bl(e)||Gl(e)&&[`true`,`false`,`null`].includes(e.expression.variable.value.toLowerCase())||e instanceof $s&&Lc.includes(e.op?.value)&&bl(e.expression)||e instanceof nc)return!0;if(!e||!ql(e))return!1;let t=Tl(e).unwrap();return t.length===2||t.length===3}function bl(e){return e instanceof $s?Lc.includes(e.op.value)?bl(e.expression):!1:e instanceof lc&&e.expression instanceof sc&&e.expression.literal?.kind===j.NUMERIC_LITERAL}function xl(e){if(!(e instanceof $s)||!gl(e.op?.value))return!1;let t=El(e.expression).unwrap_or(void 0);return t!==void 0&&t.length>0}function Sl(e){return e instanceof ic&&e.elementList.every(Wl)}function Cl(e){if(!(e instanceof oc||Kl(e)||e instanceof lc||e instanceof dc))return!1;for(;e instanceof oc||e instanceof dc;)if(e instanceof oc){if(e.callee===void 0||e.argumentList===void 0||!e.argumentList.elementList.every(e=>bl(e)||Ul(e)||Gl(e)))return!1;e=e.callee}else if(e instanceof dc){if(e.array===void 0||e.indexer===void 0||!e.indexer.elementList.every(e=>!e.colon&&!e.value&&bl(e.name)))return!1;e=e.array}let t=El(e).unwrap_or(void 0);return t!==void 0&&t.length>0}function U(e){let t={},n=[];return e?(e.elementList.forEach(e=>{if(!e.name)return;if(e.name instanceof lc){n.push(new R(L.INVALID_SETTINGS,`A setting name must be a stream of identifiers`,e.name));return}let r=Jl(e.name).unwrap_or(void 0)?.toLowerCase();r&&(t[r]===void 0?t[r]=[e]:t[r].push(e))}),new Tc(t,n)):new Tc({})}function wl(e){let t=e?.type?.value.toLowerCase();switch(t){case B.Enum:case B.Table:case B.Indexes:case B.Note:case B.Project:case B.Ref:case B.TableGroup:case B.TablePartial:case B.Check:return new Fc(t);default:return new z}}function Tl(e){if(!e)return new z;if(!Kl(e))return new Fc([e]);let t=Tl(e.leftExpression).unwrap_or(void 0);return t?(t.push(e.rightExpression),new Fc(t)):new z}function El(e){if(e===void 0)return new z;let t=Tl(e).unwrap_or(void 0);if(!t)return new z;let n=[];for(let e of t){let t=Ol(e).unwrap_or(void 0);if(typeof t!=`string`)return new z;n.push(t)}return new Fc(n)}function Dl(e){if(e===void 0)return new z;let t=Tl(e).unwrap_or(void 0);if(!t||t.length===0)return new z;let n=[];if(!Wl(xs(t))){let e=t.pop();if(Sl(e))n=e.elementList;else return new z}let r=t;return r.every(Wl)?new Fc({variables:r,tupleElements:n}):new z}function Ol(e){return Wl(e)?new Fc(e.expression.variable.value):new z}function kl(e){return Pl(e)?e instanceof nc?new Fc({functional:[e],nonFunctional:[]}):new Fc({functional:[],nonFunctional:[e]}):e instanceof ic&&e.elementList.every(Pl)?new Fc({functional:e.elementList.filter(e=>e instanceof nc),nonFunctional:e.elementList.filter(Wl)}):new z}function Al(e){let t=e?.expression.variable?.value;return t===void 0?new z:new Fc(t)}function jl(e){return Ul(e)?e.expression instanceof cc?new Fc(e.expression.variable.value):new Fc(e.expression.literal.value):new z}function Ml(e){return!(e instanceof ec)||!gl(e.op?.value)?!1:Dl(e.leftExpression).and_then(()=>Dl(e.rightExpression)).unwrap_or(void 0)!==void 0}function Nl(e){let t=Dl(e.leftExpression),n=Dl(e.rightExpression);if(!t.isOk()||!n.isOk())return!1;let{tupleElements:r}=t.unwrap(),{tupleElements:i}=n.unwrap();return r?.length===i?.length}function Pl(e){return e instanceof lc&&e.expression instanceof cc||e instanceof nc}function Fl(e,t,n){if(!e||!Gl(e)||t.length===0)return new z;let r=[...t],i=Hl(e).unwrap(),a=r.pop();if(!(a instanceof rc))return new z;let o=xs(r)instanceof I?r.pop():void 0;if(r.length===3){let e=Hl(r[1]).value;return!e||!Il(e)?new z:new Fc(n.create(P,{type:i,name:r[0],as:e,alias:r[2],attributeList:o,body:a}))}return r.length===1?new Fc(n.create(P,{type:i,name:r[0],attributeList:o,body:a})):r.length===0?new Fc(n.create(P,{type:i,attributeList:o,body:a})):new z}function Il(e){return e?.kind===j.IDENTIFIER&&e.value.toLowerCase()===`as`}function W(e){e&&(e instanceof Hs?Ll(e):Rl(e))}function Ll(e){e.kind!==j.EOF&&(e.isInvalid=!0)}function Rl(e){if(e instanceof P)W(e.type),W(e.name),W(e.as),W(e.alias),W(e.bodyColon),W(e.attributeList),W(e.body);else if(e instanceof Zs)e.identifiers.forEach(W);else if(e instanceof Qs)W(e.name),W(e.colon),W(e.value);else if(e instanceof $s)W(e.op),W(e.expression);else if(e instanceof ec)W(e.leftExpression),W(e.op),W(e.rightExpression);else if(e instanceof tc)W(e.op),W(e.expression);else if(e instanceof rc)W(e.blockOpenBrace),e.body.forEach(W),W(e.blockCloseBrace);else if(e instanceof I)W(e.listOpenBracket),e.commaList.forEach(W),e.elementList.forEach(W),W(e.listCloseBracket);else if(e instanceof ic)W(e.tupleOpenParen),e.commaList.forEach(W),e.elementList.forEach(W),W(e.tupleCloseParen);else if(e instanceof oc)W(e.callee),W(e.argumentList);else if(e instanceof F)W(e.callee),e.args.forEach(W);else if(e instanceof lc)W(e.expression);else if(e instanceof nc)W(e.value);else if(e instanceof cc)W(e.variable);else if(e instanceof sc)W(e.literal);else if(e instanceof ac)throw Error(`This case is handled by the TupleExpressionNode case`);else if(e instanceof dc)W(e.array),W(e.indexer);else if(e instanceof Xs)e.body.forEach(W),W(e.eof);else if(!(e instanceof uc))throw Error(`Unreachable case in markInvalidNode`)}function zl(e){return!!e?.isInvalid}function Bl(...e){return e.filter(e=>e!==void 0)}function Vl(e){if(e instanceof Xs)return Bl(...e.body,e.eof);if(e instanceof P)return Bl(e.type,e.name,e.as,e.alias,e.attributeList,e.bodyColon,e.body);if(e instanceof Qs)return Bl(e.name,e.colon,e.value);if(e instanceof Zs)return e.identifiers;if(e instanceof sc)return e.literal?[e.literal]:[];if(e instanceof cc)return Bl(e.variable);if(e instanceof $s)return Bl(e.op,e.expression);if(e instanceof ec)return Bl(e.leftExpression,e.op,e.rightExpression);if(e instanceof tc)return Bl(e.expression,e.op);if(e instanceof nc)return Bl(e.value);if(e instanceof F)return Bl(e.callee,...e.args);if(e instanceof rc)return Bl(e.blockOpenBrace,...e.body,e.blockCloseBrace);if(e instanceof I)return Bl(e.listOpenBracket,...jc(e.elementList,e.commaList),e.listCloseBracket);if(e instanceof ic)return Bl(e.tupleOpenParen,...jc(e.elementList,e.commaList),e.tupleCloseParen);if(e instanceof oc)return Bl(e.callee,e.argumentList);if(e instanceof lc)return Bl(e.expression);if(e instanceof dc)return Bl(e.array,e.indexer);throw e instanceof ac?Error(`This case is already handled by TupleExpressionNode`):Error(`Unreachable - no other possible cases`)}function Hl(e){return Wl(e)?new Fc(e.expression.variable):new z}function Ul(e){return e instanceof lc&&(e.expression instanceof cc&&e.expression.variable instanceof Hs&&e.expression.variable.kind===j.QUOTED_STRING||e.expression instanceof sc&&e.expression.literal?.kind===j.STRING_LITERAL)}function Wl(e){return e instanceof lc&&e.expression instanceof cc&&e.expression.variable instanceof Hs}function Gl(e){return e instanceof lc&&e.expression instanceof cc&&e.expression.variable?.kind===j.IDENTIFIER}function Kl(e){return e instanceof ec&&e.leftExpression instanceof M&&e.rightExpression instanceof M&&e.op?.value===`.`}function ql(e){return Wl(e)?!0:Kl(e)&&Wl(e.rightExpression)&&ql(e.leftExpression)}function Jl(e){if(e===void 0)return new z;let t=e.identifiers.map(e=>e.value).join(` `);return t===``?new z:new Fc(t)}function Yl(e){return El(e.name).map(e=>e.join(`.`))}var Xl=class{constructor(e){this.start={offset:0,line:0,column:0},this.current={offset:0,line:0,column:0},this.tokens=[],this.errors=[],this.text=e}isAtEnd(){return this.current.offset>=this.text.length}advance(){let e=this.peek();return this.current={...this.current},e===`
2
- `?(this.current.line+=1,this.current.column=0):this.current.column+=1,this.current.offset+=1,e}peek(e=0){if(!(this.current.offset+e>=this.text.length))return this.text[this.current.offset+e]}check(e){for(let t=0;t<e.length;t+=1)if(e[t]!==this.peek(t))return!1;return!0}match(e){return this.check(e)?(e.split(``).forEach(()=>this.advance()),!0):!1}addToken(e,t=!1){this.tokens.push(this.createToken(e,t))}createToken(e,t=!1){return Hs.create(e,this.start,this.current,this.text.substring(this.start.offset,this.current.offset),t)}lex(){return this.scanTokens(),this.tokens.push(Hs.create(j.EOF,this.start,this.current,``,!1)),this.gatherTrivia(),this.gatherInvalid(),new Tc(this.tokens,this.errors)}scanTokens(){for(;!this.isAtEnd();){let e=this.advance();switch(e){case` `:this.addToken(j.SPACE);break;case`\r`:break;case`
3
- `:this.addToken(j.NEWLINE);break;case` `:this.addToken(j.TAB);break;case`,`:this.addToken(j.COMMA);break;case`(`:this.addToken(j.LPAREN);break;case`)`:this.addToken(j.RPAREN);break;case`[`:this.addToken(j.LBRACKET);break;case`]`:this.addToken(j.RBRACKET);break;case`{`:this.addToken(j.LBRACE);break;case`}`:this.addToken(j.RBRACE);break;case`;`:this.addToken(j.SEMICOLON);break;case`:`:this.addToken(j.COLON);break;case`'`:this.match(`''`)?this.multilineStringLiteral():this.singleLineStringLiteral();break;case`"`:this.quotedVariable();break;case"`":this.functionExpression();break;case`#`:this.colorLiteral();break;case`/`:this.match(`/`)?this.singleLineComment():this.match(`*`)?this.multilineComment():this.operator(e);break;default:if(Bs(e)){this.operator(e);break}if(Ec(e)){this.identifier();break}if(Dc(e)){this.numericLiteralOrIdentifier();break}this.addToken(j.OP,!0),this.errors.push(new R(L.UNKNOWN_SYMBOL,`Unexpected token '${e}'`,this.createToken(j.OP,!0)));break}this.start={...this.current}}}gatherTrivia(){let e=!0,t=[],n,r=[];for(let i of this.tokens)zs(i)?(t.push(i),i.kind===j.NEWLINE&&n&&(n.trailingTrivia=t,e=!0,n=void 0,t=[])):(e?i.leadingTrivia=t:n.trailingTrivia=t,r.push(i),t=[],n=i,e=!1);this.tokens=r}gatherInvalid(){let e,t=[],n=[];for(e=0;e<this.tokens.length&&zl(this.tokens[e]);e+=1)n.push(this.tokens[e]);let r=this.tokens[e];for(r.leadingInvalid=[...n,...r.leadingInvalid];e<this.tokens.length;e+=1){let n=this.tokens[e];zl(n)?r.trailingInvalid.push(n):(r=n,t.push(n))}this.tokens=t}consumeUntil(e,t,{allowNewline:n,allowEof:r,raw:i,consumeStopSequence:a=!0}){let o=``;for(;!this.isAtEnd()&&(n||!this.check(`
4
- `))&&!this.check(t);)this.peek()===`\\`&&!i?(this.advance(),o+=this.escapedString()):o+=this.advance();if(this.isAtEnd()&&!r){let t=this.createToken(e,!0);this.tokens.push(t),this.errors.push(new R(L.UNEXPECTED_EOF,`EOF reached while parsing`,t));return}if(this.check(`
5
- `)&&!n){let t=this.createToken(e,!0);this.tokens.push(t),this.errors.push(new R(L.UNEXPECTED_NEWLINE,`Invalid newline encountered while parsing`,t));return}a&&this.match(t),this.tokens.push(Hs.create(e,this.start,this.current,o,!1))}singleLineStringLiteral(){this.consumeUntil(j.STRING_LITERAL,`'`,{allowNewline:!1,allowEof:!1,raw:!1})}multilineStringLiteral(){this.consumeUntil(j.STRING_LITERAL,`'''`,{allowNewline:!0,allowEof:!1,raw:!1})}functionExpression(){this.consumeUntil(j.FUNCTION_EXPRESSION,"`",{allowNewline:!0,allowEof:!1,raw:!0})}quotedVariable(){this.consumeUntil(j.QUOTED_STRING,`"`,{allowNewline:!1,allowEof:!1,raw:!1})}singleLineComment(){this.consumeUntil(j.SINGLE_LINE_COMMENT,`
6
- `,{allowNewline:!0,allowEof:!0,raw:!0,consumeStopSequence:!1})}multilineComment(){this.consumeUntil(j.MULTILINE_COMMENT,`*/`,{allowNewline:!0,allowEof:!1,raw:!0})}identifier(){for(;!this.isAtEnd()&&kc(this.peek());)this.advance();this.addToken(j.IDENTIFIER)}operator(e){switch(e){case`<`:[`>`,`=`].includes(this.peek())&&this.advance();break;case`>`:this.peek()===`=`&&this.advance();break;case`=`:this.peek()===`=`&&this.advance();break;case`!`:this.peek()===`=`&&this.advance();break;default:break}this.addToken(j.OP)}numericLiteralOrIdentifier(){let e=0;if(this.isAtEnd())return this.addToken(j.NUMERIC_LITERAL);for(;!this.isAtEnd();){let t=this.check(`.`);if(e+=t?1:0,e>1)break;if(!t&&this.current.offset===this.text.length-1)return this.advance(),this.addToken(j.NUMERIC_LITERAL);if(!t&&!kc(this.peek()))return this.addToken(j.NUMERIC_LITERAL);if(!t&&!Dc(this.peek()))break;this.advance()}if(e>0){for(;!this.isAtEnd()&&(this.check(`.`)||kc(this.peek()));)this.advance();let e=this.createToken(j.NUMERIC_LITERAL,!0);this.tokens.push(e),this.errors.push(new R(L.UNKNOWN_TOKEN,`Invalid number`,e))}else{for(;!this.isAtEnd()&&kc(this.peek());)this.advance();let e=this.createToken(j.IDENTIFIER,!1);this.tokens.push(e)}}colorLiteral(){for(;!this.isAtEnd()&&kc(this.peek());)this.advance();this.addToken(j.COLOR_LITERAL)}escapedString(){let e={column:this.current.column-1,offset:this.current.offset-1,line:this.current.line};if(this.isAtEnd())return`\\`;switch(this.advance()){case`\r`:return this.check(`
7
- `)&&this.advance(),``;case`
8
- `:return``;case`t`:return` `;case`n`:return`
9
- `;case`\\`:return`\\`;case`r`:return`\r`;case`'`:return`'`;case`"`:return`"`;case"`":return"`";case`0`:return`\0`;case`b`:return`\b`;case`v`:return`\v`;case`f`:return`\f`;case` `:return`\\ `;case`u`:{let t=``;for(let n=0;n<=3;n+=1){if(this.isAtEnd()||!kc(this.peek()))return this.errors.push(new R(L.INVALID_ESCAPE_SEQUENCE,`Invalid unicode escape sequence '\\u${t}', only unicode escape sequences of the form '\\uHHHH' where H is a hexadecimal number are allowed`,Hs.create(j.STRING_LITERAL,e,this.current,`\\u${t}`,!0))),`\\u${t}`;t+=this.advance()}return String.fromCharCode(parseInt(t,16))}default:return this.text[this.current.offset-1]}}};let Zl=function(e){return e[e.ListExpression=0]=`ListExpression`,e[e.GroupExpression=1]=`GroupExpression`,e[e.BlockExpression=2]=`BlockExpression`,e}({});var Ql=class{constructor(){this.stack=[],this.numberOfNestedLParens=0,this.numberOfNestedLBrackets=0,this.numberOfNestedLBraces=0}push(e){this.stack.push(e),e===Zl.ListExpression&&(this.numberOfNestedLBrackets+=1),e===Zl.GroupExpression&&(this.numberOfNestedLParens+=1),e===Zl.BlockExpression&&(this.numberOfNestedLBraces+=1)}pop(){let e=this.stack.pop();return e===Zl.ListExpression&&--this.numberOfNestedLBrackets,e===Zl.GroupExpression&&--this.numberOfNestedLParens,e===Zl.BlockExpression&&--this.numberOfNestedLBraces,e}top(){return xs(this.stack)}isWithinGroupExpressionContext(){return this.numberOfNestedLParens>0}isWithinListExpressionContext(){return this.numberOfNestedLBrackets>0}isWithinBlockExpressionContext(){return this.numberOfNestedLBraces>0}withContextDo(e,t){return()=>{this.push(e);try{return t()}finally{this.pop()}}}findHandlerContext(e,t){if(!(this.numberOfNestedLBraces<=0&&this.numberOfNestedLBrackets<=0&&this.numberOfNestedLParens<=0))for(let n=t;n<e.length-1;n+=1)switch(e[n].kind){case j.COMMA:if(this.isWithinGroupExpressionContext()||this.isWithinListExpressionContext())return[...this.stack].reverse().find(e=>[Zl.GroupExpression,Zl.ListExpression].includes(e));break;case j.RPAREN:if(this.isWithinGroupExpressionContext())return Zl.GroupExpression;break;case j.RBRACE:if(this.isWithinBlockExpressionContext())return Zl.BlockExpression;break;case j.RBRACKET:if(this.isWithinListExpressionContext())return Zl.ListExpression;break;default:break}}},$l=class{constructor(e){this.generator=e}create(e,t){return new e(t,this.generator.nextId())}},G=class{constructor(e,t,n){this.token=e,this.partialNode=t,this.handlerContext=n}},eu=class{constructor(e,t){this.current=0,this.errors=[],this.contextStack=new Ql,this.synchronizeProgram=()=>{let e=this.peek();e.kind===j.EOF?this.logError(e,L.UNEXPECTED_EOF,`Unexpected EOF`):W(this.advance())},this.synchronizeElementDeclarationName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(Il(e)||this.check(j.COLON,j.LBRACE,j.LBRACKET))break;W(e),this.advance()}},this.synchronizeElementDeclarationAlias=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(j.COLON,j.LBRACE,j.LBRACKET))break;W(e),this.advance()}},this.blockExpression=this.contextStack.withContextDo(Zl.BlockExpression,()=>{let e={body:[]},t=()=>this.nodeFactory.create(rc,e);try{this.consume(`Expect an opening brace '{'`,j.LBRACE),e.blockOpenBrace=this.previous()}catch(e){if(!(e instanceof G))throw e;if(!this.canHandle(e))throw new G(e.token,t(),e.handlerContext);this.synchronizeBlock()}for(;!this.isAtEnd()&&!this.check(j.RBRACE);)try{e.body.push(this.canBeField()?this.fieldDeclaration():this.expression())}catch(n){if(!(n instanceof G))throw n;if(e.body.push(n.partialNode),!this.canHandle(n))throw new G(n.token,t(),n.handlerContext);this.synchronizeBlock()}try{this.consume(`Expect a closing brace '}'`,j.RBRACE),e.blockCloseBrace=this.previous()}catch(e){if(!(e instanceof G))throw e;if(!this.canHandle(e))throw new G(e.token,t(),e.handlerContext);this.synchronizeBlock()}return t()}),this.synchronizeBlock=()=>{if(!this.check(j.RBRACE))for(W(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(j.RBRACE)||Ws(this.previous(),e))break;W(e),this.advance()}},this.tupleExpression=this.contextStack.withContextDo(Zl.GroupExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(ac,{groupOpenParen:e.tupleOpenParen,groupCloseParen:e.tupleCloseParen,expression:e.elementList[0]}),n=()=>this.nodeFactory.create(ic,e);try{this.consume(`Expect an opening parenthesis '('`,j.LPAREN),e.tupleOpenParen=this.previous()}catch(e){if(!(e instanceof G))throw e;if(!this.canHandle(e))throw new G(e.token,n(),e.handlerContext);this.synchronizeTuple()}if(!this.isAtEnd()&&!this.check(j.RPAREN))try{e.elementList.push(this.normalExpression())}catch(n){if(!(n instanceof G))throw n;if(e.elementList.push(n.partialNode),!this.canHandle(n))throw new G(n.token,t(),n.handlerContext);this.synchronizeTuple()}for(;!this.isAtEnd()&&!this.check(j.RPAREN);)try{this.consume(`Expect a comma ','`,j.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.normalExpression())}catch(t){if(!(t instanceof G))throw t;if(t.partialNode instanceof M&&e.elementList.push(t.partialNode),!this.canHandle(t))throw new G(t.token,n(),t.handlerContext);this.synchronizeTuple()}try{this.consume(`Expect a closing parenthesis ')'`,j.RPAREN),e.tupleCloseParen=this.previous()}catch(e){if(!(e instanceof G))throw e;if(!this.canHandle(e))throw new G(e.token,n(),e.handlerContext);this.synchronizeTuple()}return e.elementList.length===1?t():n()}),this.synchronizeTuple=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(j.RPAREN,j.COMMA))break;W(e),this.advance()}},this.listExpression=this.contextStack.withContextDo(Zl.ListExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(I,e);try{this.consume(`Expect an opening bracket '['`,j.LBRACKET),e.listOpenBracket=this.previous()}catch(e){if(!(e instanceof G))throw e;if(!this.canHandle(e))throw new G(e.token,t(),e.handlerContext);this.synchronizeList()}if(!this.isAtEnd()&&!this.check(j.RBRACKET))try{e.elementList.push(this.attribute())}catch(n){if(!(n instanceof G))throw n;if(e.elementList.push(n.partialNode),!this.canHandle(n))throw new G(n.token,t(),n.handlerContext);this.synchronizeList()}for(;!this.isAtEnd()&&!this.check(j.RBRACKET);)try{this.consume(`Expect a comma ','`,j.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.attribute())}catch(n){if(!(n instanceof G))throw n;if(n.partialNode instanceof M&&e.elementList.push(n.partialNode),!this.canHandle(n))throw new G(n.token,t(),n.handlerContext);this.synchronizeList()}try{this.consume(`Expect a closing bracket ']'`,j.RBRACKET),e.listCloseBracket=this.previous()}catch(e){if(!(e instanceof G))throw e;if(!this.canHandle(e))throw new G(e.token,t(),e.handlerContext);this.synchronizeList()}return t()}),this.synchronizeList=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(j.COMMA,j.RBRACKET))break;W(e),this.advance()}},this.synchronizeAttributeName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(j.COMMA,j.RBRACKET,j.COLON))break;W(e),this.advance()}},this.synchronizeAttributeValue=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(j.COMMA,j.RBRACKET))break;W(e),this.advance()}},this.tokens=e,this.nodeFactory=new $l(t)}isAtEnd(){return this.current>=this.tokens.length||this.tokens[this.current].kind===j.EOF}advance(){return this.isAtEnd()?xs(this.tokens):this.tokens[this.current++]}peek(e=0){return e+this.current>=this.tokens.length?xs(this.tokens):this.tokens[this.current+e]}match(...e){let t=this.check(...e);return t&&this.advance(),t}check(...e){let t=this.peek();return e.includes(t.kind)}previous(){return this.tokens[this.current-1]}canHandle(e){return e.handlerContext===void 0||e.handlerContext===this.contextStack.top()}consume(e,...t){if(!this.match(...t))throw this.logError(this.peek(),L.UNEXPECTED_TOKEN,e),new G(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}discardUntil(e,...t){if(this.isAtEnd()||!this.check(...t)){for(W(this.peek()),this.logError(this.advance(),L.UNEXPECTED_TOKEN,e);!this.isAtEnd()&&!this.check(...t);)W(this.advance());return!this.isAtEnd()}return!0}gatherInvalid(){let e=[],t=[],n,r=0;for(;r<this.tokens.length&&this.tokens[r].isInvalid;r+=1)t.push(this.tokens[r]);for(n=this.tokens[r],n.leadingInvalid=[...t,...n.leadingInvalid],e.push(n),r+=1;r<this.tokens.length;r+=1){let t=this.tokens[r];t.isInvalid?n.trailingInvalid.push(t):(n=t,e.push(n))}this.tokens=e}parse(){let e=this.program(),t=this.advance(),n=this.nodeFactory.create(Xs,{body:e,eof:t});return this.gatherInvalid(),new Tc({ast:n,tokens:this.tokens},this.errors)}program(){let e=[];for(;!this.isAtEnd();)try{let t=this.elementDeclaration();e.push(t)}catch(t){if(!(t instanceof G))throw t;e.push(t.partialNode),this.synchronizeProgram()}return e}elementDeclaration(){let e={},t=()=>this.nodeFactory.create(P,e);try{this.consume(`Expect an identifier`,j.IDENTIFIER),e.type=this.previous()}catch(e){throw e instanceof G?new G(e.token,t(),e.handlerContext):e}if(!this.check(j.COLON,j.LBRACE,j.LBRACKET))try{e.name=this.normalExpression()}catch(n){if(!(n instanceof G))throw n;if(e.name=n.partialNode,!this.canHandle(n))throw new G(n.token,t(),n.handlerContext);this.synchronizeElementDeclarationName()}if(Il(this.peek()))if(e.as=this.advance(),this.check(j.COLON,j.LBRACE,j.LBRACKET))this.logError(this.peek(),L.UNEXPECTED_TOKEN,`Expect an alias`);else try{e.alias=this.normalExpression()}catch(n){if(!(n instanceof G))throw n;if(e.alias=n.partialNode,!this.canHandle(n))throw new G(n.token,t(),n.handlerContext);this.synchronizeElementDeclarationAlias()}try{e.attributeList=this.check(j.LBRACKET)?this.listExpression():void 0}catch(n){throw n instanceof G?(e.attributeList=n.partialNode,new G(n.token,t(),n.handlerContext)):n}if(!this.discardUntil(`Expect an opening brace '{' or a colon ':'`,j.LBRACE,j.COLON))return t();try{if(this.match(j.COLON)){e.bodyColon=this.previous();let t=this.expression();t instanceof P?(W(t),this.logError(t,L.UNEXPECTED_ELEMENT_DECLARATION,`An element's simple body must not be an element declaration`)):e.body=t}else e.body=this.blockExpression()}catch(n){throw n instanceof G?(e.body=n.partialNode,new G(n.token,t(),n.handlerContext)):n}return this.nodeFactory.create(P,e)}fieldDeclaration(){let e={},t=()=>this.nodeFactory.create(P,e);try{this.consume(`Expect an identifier`,j.IDENTIFIER),e.type=this.previous()}catch(n){throw n instanceof G?(e.type=n.partialNode,new G(n.token,t(),n.handlerContext)):n}try{this.consume(`Expect a colon ':'`,j.COLON),e.bodyColon=this.previous()}catch(n){throw n instanceof G?(e.bodyColon=n.partialNode,new G(n.token,t(),n.handlerContext)):n}try{let t=this.expression();t instanceof P?this.errors.push(new R(L.INVALID_ELEMENT_IN_SIMPLE_BODY,`Simple body cannot be an element declaration`,t)):e.body=t}catch(n){throw n instanceof G?(e.body=n.partialNode,new G(n.token,t(),n.handlerContext)):n}return this.nodeFactory.create(P,e)}expression(){let e={args:[]},t=()=>Fl(e.callee,e.args,this.nodeFactory).unwrap_or(this.nodeFactory.create(F,e));try{e.callee=this.normalExpression()}catch(n){throw n instanceof G?(e.callee=n.partialNode,new G(n.token,t(),n.handlerContext)):n}if(this.shouldStopExpression())return t();let n=e.callee;for(;!this.shouldStopExpression();){Gs(this.previous())||this.logError(n,L.MISSING_SPACES,`Expect a following space`);try{n=this.normalExpression(),e.args.push(n)}catch(r){throw r instanceof G?(n=r.partialNode,e.args.push(n),new G(r.token,t(),r.handlerContext)):r}}return t()}shouldStopExpression(){if(this.isAtEnd()||Us(this.previous()))return!0;let e=this.peek().kind;return e===j.RBRACE||e===j.RBRACKET||e===j.RPAREN||e===j.COMMA||e===j.COLON}normalExpression(){return this.expression_bp(0)}expression_bp(e){let t=this.leftExpression_bp();for(;!this.isAtEnd();){let n=this.peek();if(n.kind===j.LPAREN){let{left:r}=ou(n);if(r<e||Ws(this.previous(),n)&&!this.contextStack.isWithinGroupExpressionContext()&&!this.contextStack.isWithinListExpressionContext())break;try{t=this.nodeFactory.create(oc,{callee:t,argumentList:this.tupleExpression()})}catch(e){throw e instanceof G?(t=this.nodeFactory.create(oc,{callee:t,argumentList:e.partialNode}),new G(e.token,t,e.handlerContext)):e}}else if(n.kind===j.LBRACKET){if(Gs(this.previous()))break;try{t=this.nodeFactory.create(dc,{expression:t,indexer:this.listExpression()})}catch(e){throw e instanceof G?(t=this.nodeFactory.create(dc,{expression:t,indexer:e.partialNode}),new G(e.token,t,e.handlerContext)):e}}else if(Vs(n)){let r=n,i=ou(r);if(i.left!==null){if(i.left<=e)break;this.advance(),t=this.nodeFactory.create(tc,{expression:t,op:r})}else{let n=nu(r);if(n.left===null||n.left<=e)break;this.advance();try{t=this.nodeFactory.create(ec,{leftExpression:t,op:r,rightExpression:r.value===`.`?this.extractOperand():this.expression_bp(n.right)})}catch(e){throw e instanceof G?(t=this.nodeFactory.create(ec,{leftExpression:t,op:r,rightExpression:e.partialNode}),new G(e.token,t,e.handlerContext)):e}}}else break}return t}leftExpression_bp(){let e;if(Vs(this.peek())){let t={};t.op=this.peek();let n=iu(t.op);if(n.right===null)throw this.logError(t.op,L.UNKNOWN_PREFIX_OP,`Unexpected '${t.op.value}' in an expression`),new G(t.op,this.nodeFactory.create(uc,{pre:t.op}),this.contextStack.findHandlerContext(this.tokens,this.current));this.advance();try{t.expression=this.expression_bp(n.right)}catch(e){throw e instanceof G?(t.expression=e.partialNode,new G(e.token,this.nodeFactory.create($s,t),e.handlerContext)):e}e=this.nodeFactory.create($s,t)}else if(e=this.extractOperand(),e instanceof uc)throw new G(this.peek(),this.nodeFactory.create(uc,{pre:this.peek()}),this.contextStack.findHandlerContext(this.tokens,this.current));return e}extractOperand(){return this.check(j.NUMERIC_LITERAL,j.STRING_LITERAL,j.COLOR_LITERAL,j.QUOTED_STRING,j.IDENTIFIER)?this.primaryExpression():this.check(j.FUNCTION_EXPRESSION)?this.functionExpression():this.check(j.LBRACKET)?this.listExpression():this.check(j.LBRACE)?this.blockExpression():this.check(j.LPAREN)?this.tupleExpression():(this.peek().kind===j.EOF?this.logError(this.peek(),L.UNEXPECTED_EOF,`Unexpected EOF`):this.logError(this.peek(),L.INVALID_OPERAND,`Invalid start of operand "${this.peek().value}"`),this.nodeFactory.create(uc,{pre:this.previous()}))}functionExpression(){let e={};try{this.consume(`Expect a function expression`,j.FUNCTION_EXPRESSION),e.value=this.previous()}catch(t){throw t instanceof G?new G(t.token,this.nodeFactory.create(nc,e),t.handlerContext):t}return this.nodeFactory.create(nc,e)}canBeField(){return this.peek().kind===j.IDENTIFIER&&this.peek(1).kind===j.COLON}primaryExpression(){if(this.match(j.COLOR_LITERAL,j.STRING_LITERAL,j.NUMERIC_LITERAL))return this.nodeFactory.create(lc,{expression:this.nodeFactory.create(sc,{literal:this.previous()})});if(this.match(j.QUOTED_STRING,j.IDENTIFIER))return this.nodeFactory.create(lc,{expression:this.nodeFactory.create(cc,{variable:this.previous()})});throw this.logError(this.peek(),L.UNEXPECTED_TOKEN,`Expect a variable or literal`),new G(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}attribute(){let e={};if(this.check(j.COLON,j.RBRACKET,j.COMMA)){let t=this.peek();this.logError(t,L.EMPTY_ATTRIBUTE_NAME,`Expect a non-empty attribute name`),e.name=this.nodeFactory.create(Zs,{identifiers:[]})}else try{e.name=this.attributeName()}catch(t){if(!(t instanceof G))throw t;if(e.name=t.partialNode,!this.canHandle(t))throw new G(t.token,this.nodeFactory.create(Qs,e),t.handlerContext);this.synchronizeAttributeName()}return this.match(j.COLON)&&(e.colon=this.previous(),e.value=this.attributeValue()),this.nodeFactory.create(Qs,e)}attributeValue(){let e;try{e=this.peek().kind===j.IDENTIFIER&&this.peek(1).kind===j.IDENTIFIER?this.attributeName():this.normalExpression()}catch(t){if(!(t instanceof G)||!this.canHandle(t))throw t;e=t.partialNode,this.synchronizeAttributeValue()}return e}attributeName(){let e=[];if(this.peek().kind!==j.IDENTIFIER)return this.primaryExpression();for(;!this.isAtEnd()&&!this.check(j.COLON,j.COMMA,j.RBRACKET);)try{this.consume(`Expect an identifier`,j.IDENTIFIER),e.push(this.previous())}catch(t){throw t instanceof G?new G(t.token,this.nodeFactory.create(Zs,{identifiers:e}),t.handlerContext):t}return this.nodeFactory.create(Zs,{identifiers:e})}logError(e,t,n){this.errors.push(new R(t,n,e))}},tu={"+":{left:9,right:10},"*":{left:11,right:12},"-":{left:9,right:10},"/":{left:11,right:12},"%":{left:11,right:12},"<":{left:7,right:8},"<=":{left:7,right:8},">":{left:7,right:8},">=":{left:7,right:8},"<>":{left:7,right:8},"=":{left:2,right:3},"==":{left:4,right:5},"!=":{left:4,right:5},".":{left:16,right:17}};function nu(e){return tu[e.value]||{left:null,right:null}}var ru={"+":{left:null,right:15},"-":{left:null,right:15},"<":{left:null,right:15},">":{left:null,right:15},"<>":{left:null,right:15},"!":{left:null,right:15},"~":{left:null,right:15}};function iu(e){return ru[e.value]||{left:null,right:null}}var au={"(":{left:14,right:null}};function ou(e){return au[e.value]||{left:null,right:null}}var su=class{constructor(e,t){this.ast=e,this.symbolFactory=t,this.publicSchemaSymbol=this.symbolFactory.create(hc,{symbolTable:new Qc}),this.ast.symbol=this.publicSchemaSymbol,this.ast.symbol.declaration=this.ast}validate(){let e=[];this.ast.body.forEach(t=>{if(t.parent=this.ast,t.type===void 0)return;let n=new(ul(t))(t,this.publicSchemaSymbol.symbolTable,this.symbolFactory);e.push(...n.validate())});let t=this.ast.body.filter(e=>wl(e).unwrap_or(void 0)===B.Project);return t.length>1&&t.forEach(t=>e.push(new R(L.PROJECT_REDEFINED,`Only one project can exist`,t))),new Tc(this.ast,e)}},cu=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return[]}},lu=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return this.bindBody(this.declarationNode.body)}bindBody(e){if(!e||e instanceof F)return[];let t=e.body.filter(e=>e instanceof P);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?new(Tu(e))(e,this.ast,this.symbolFactory).bind():[])}},uu=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return this.declarationNode.body instanceof rc?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof F)return[];let t=e.body.filter(e=>e instanceof F);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?new(Tu(e))(e,this.ast,this.symbolFactory).bind():[])}},du=t(((e,t)=>{(function(){var n,r=`4.17.21`,i=200,a=`Unsupported core-js use. Try https://npms.io/search?q=ponyfill.`,o=`Expected a function`,s="Invalid `variable` option passed into `_.template`",c=`__lodash_hash_undefined__`,l=500,u=`__lodash_placeholder__`,d=1,f=2,p=4,m=1,h=2,g=1,_=2,v=4,y=8,ee=16,te=32,ne=64,b=128,re=256,ie=512,ae=30,oe=`...`,se=800,ce=16,le=1,ue=2,de=3,fe=1/0,pe=9007199254740991,me=17976931348623157e292,he=NaN,ge=4294967295,_e=ge-1,ve=ge>>>1,ye=[[`ary`,b],[`bind`,g],[`bindKey`,_],[`curry`,y],[`curryRight`,ee],[`flip`,ie],[`partial`,te],[`partialRight`,ne],[`rearg`,re]],be=`[object Arguments]`,xe=`[object Array]`,Se=`[object AsyncFunction]`,Ce=`[object Boolean]`,we=`[object Date]`,Te=`[object DOMException]`,Ee=`[object Error]`,De=`[object Function]`,Oe=`[object GeneratorFunction]`,ke=`[object Map]`,Ae=`[object Number]`,je=`[object Null]`,Me=`[object Object]`,Ne=`[object Promise]`,Pe=`[object Proxy]`,Fe=`[object RegExp]`,Ie=`[object Set]`,Le=`[object String]`,Re=`[object Symbol]`,ze=`[object Undefined]`,Be=`[object WeakMap]`,Ve=`[object WeakSet]`,He=`[object ArrayBuffer]`,Ue=`[object DataView]`,We=`[object Float32Array]`,Ge=`[object Float64Array]`,Ke=`[object Int8Array]`,qe=`[object Int16Array]`,Je=`[object Int32Array]`,Ye=`[object Uint8Array]`,Xe=`[object Uint8ClampedArray]`,Ze=`[object Uint16Array]`,Qe=`[object Uint32Array]`,$e=/\b__p \+= '';/g,et=/\b(__p \+=) '' \+/g,tt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,nt=/&(?:amp|lt|gt|quot|#39);/g,rt=/[&<>"']/g,it=RegExp(nt.source),at=RegExp(rt.source),ot=/<%-([\s\S]+?)%>/g,st=/<%([\s\S]+?)%>/g,ct=/<%=([\s\S]+?)%>/g,lt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ut=/^\w*$/,dt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ft=/[\\^$.*+?()[\]{}|]/g,pt=RegExp(ft.source),mt=/^\s+/,ht=/\s/,gt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,_t=/\{\n\/\* \[wrapped with (.+)\] \*/,vt=/,? & /,yt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,bt=/[()=,{}\[\]\/\s]/,xt=/\\(\\)?/g,St=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ct=/\w*$/,wt=/^[-+]0x[0-9a-f]+$/i,Tt=/^0b[01]+$/i,Et=/^\[object .+?Constructor\]$/,Dt=/^0o[0-7]+$/i,Ot=/^(?:0|[1-9]\d*)$/,kt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,At=/($^)/,jt=/['\n\r\u2028\u2029\\]/g,Mt=`\\ud800-\\udfff`,Nt=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,Pt=`\\u2700-\\u27bf`,x=`a-z\\xdf-\\xf6\\xf8-\\xff`,Ft=`\\xac\\xb1\\xd7\\xf7`,It=`\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf`,Lt=`\\u2000-\\u206f`,Rt=` \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000`,zt=`A-Z\\xc0-\\xd6\\xd8-\\xde`,Bt=`\\ufe0e\\ufe0f`,Vt=Ft+It+Lt+Rt,Ht=`['’]`,S=`[`+Mt+`]`,Ut=`[`+Vt+`]`,Wt=`[`+Nt+`]`,Gt=`\\d+`,Kt=`[`+Pt+`]`,qt=`[`+x+`]`,Jt=`[^`+Mt+Vt+Gt+Pt+x+zt+`]`,Yt=`\\ud83c[\\udffb-\\udfff]`,Xt=`(?:`+Wt+`|`+Yt+`)`,Zt=`[^`+Mt+`]`,Qt=`(?:\\ud83c[\\udde6-\\uddff]){2}`,$t=`[\\ud800-\\udbff][\\udc00-\\udfff]`,en=`[`+zt+`]`,tn=`\\u200d`,nn=`(?:`+qt+`|`+Jt+`)`,rn=`(?:`+en+`|`+Jt+`)`,an=`(?:`+Ht+`(?:d|ll|m|re|s|t|ve))?`,on=`(?:`+Ht+`(?:D|LL|M|RE|S|T|VE))?`,sn=Xt+`?`,cn=`[`+Bt+`]?`,ln=`(?:`+tn+`(?:`+[Zt,Qt,$t].join(`|`)+`)`+cn+sn+`)*`,un=`\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])`,dn=`\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])`,fn=cn+sn+ln,pn=`(?:`+[Kt,Qt,$t].join(`|`)+`)`+fn,mn=`(?:`+[Zt+Wt+`?`,Wt,Qt,$t,S].join(`|`)+`)`,hn=RegExp(Ht,`g`),gn=RegExp(Wt,`g`),_n=RegExp(Yt+`(?=`+Yt+`)|`+mn+fn,`g`),vn=RegExp([en+`?`+qt+`+`+an+`(?=`+[Ut,en,`$`].join(`|`)+`)`,rn+`+`+on+`(?=`+[Ut,en+nn,`$`].join(`|`)+`)`,en+`?`+nn+`+`+an,en+`+`+on,dn,un,Gt,pn].join(`|`),`g`),yn=RegExp(`[`+tn+Mt+Nt+Bt+`]`),bn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,xn=`Array.Buffer.DataView.Date.Error.Float32Array.Float64Array.Function.Int8Array.Int16Array.Int32Array.Map.Math.Object.Promise.RegExp.Set.String.Symbol.TypeError.Uint8Array.Uint8ClampedArray.Uint16Array.Uint32Array.WeakMap._.clearTimeout.isFinite.parseInt.setTimeout`.split(`.`),Sn=-1,C={};C[We]=C[Ge]=C[Ke]=C[qe]=C[Je]=C[Ye]=C[Xe]=C[Ze]=C[Qe]=!0,C[be]=C[xe]=C[He]=C[Ce]=C[Ue]=C[we]=C[Ee]=C[De]=C[ke]=C[Ae]=C[Me]=C[Fe]=C[Ie]=C[Le]=C[Be]=!1;var w={};w[be]=w[xe]=w[He]=w[Ue]=w[Ce]=w[we]=w[We]=w[Ge]=w[Ke]=w[qe]=w[Je]=w[ke]=w[Ae]=w[Me]=w[Fe]=w[Ie]=w[Le]=w[Re]=w[Ye]=w[Xe]=w[Ze]=w[Qe]=!0,w[Ee]=w[De]=w[Be]=!1;var Cn={À:`A`,Á:`A`,Â:`A`,Ã:`A`,Ä:`A`,Å:`A`,à:`a`,á:`a`,â:`a`,ã:`a`,ä:`a`,å:`a`,Ç:`C`,ç:`c`,Ð:`D`,ð:`d`,È:`E`,É:`E`,Ê:`E`,Ë:`E`,è:`e`,é:`e`,ê:`e`,ë:`e`,Ì:`I`,Í:`I`,Î:`I`,Ï:`I`,ì:`i`,í:`i`,î:`i`,ï:`i`,Ñ:`N`,ñ:`n`,Ò:`O`,Ó:`O`,Ô:`O`,Õ:`O`,Ö:`O`,Ø:`O`,ò:`o`,ó:`o`,ô:`o`,õ:`o`,ö:`o`,ø:`o`,Ù:`U`,Ú:`U`,Û:`U`,Ü:`U`,ù:`u`,ú:`u`,û:`u`,ü:`u`,Ý:`Y`,ý:`y`,ÿ:`y`,Æ:`Ae`,æ:`ae`,Þ:`Th`,þ:`th`,ß:`ss`,Ā:`A`,Ă:`A`,Ą:`A`,ā:`a`,ă:`a`,ą:`a`,Ć:`C`,Ĉ:`C`,Ċ:`C`,Č:`C`,ć:`c`,ĉ:`c`,ċ:`c`,č:`c`,Ď:`D`,Đ:`D`,ď:`d`,đ:`d`,Ē:`E`,Ĕ:`E`,Ė:`E`,Ę:`E`,Ě:`E`,ē:`e`,ĕ:`e`,ė:`e`,ę:`e`,ě:`e`,Ĝ:`G`,Ğ:`G`,Ġ:`G`,Ģ:`G`,ĝ:`g`,ğ:`g`,ġ:`g`,ģ:`g`,Ĥ:`H`,Ħ:`H`,ĥ:`h`,ħ:`h`,Ĩ:`I`,Ī:`I`,Ĭ:`I`,Į:`I`,İ:`I`,ĩ:`i`,ī:`i`,ĭ:`i`,į:`i`,ı:`i`,Ĵ:`J`,ĵ:`j`,Ķ:`K`,ķ:`k`,ĸ:`k`,Ĺ:`L`,Ļ:`L`,Ľ:`L`,Ŀ:`L`,Ł:`L`,ĺ:`l`,ļ:`l`,ľ:`l`,ŀ:`l`,ł:`l`,Ń:`N`,Ņ:`N`,Ň:`N`,Ŋ:`N`,ń:`n`,ņ:`n`,ň:`n`,ŋ:`n`,Ō:`O`,Ŏ:`O`,Ő:`O`,ō:`o`,ŏ:`o`,ő:`o`,Ŕ:`R`,Ŗ:`R`,Ř:`R`,ŕ:`r`,ŗ:`r`,ř:`r`,Ś:`S`,Ŝ:`S`,Ş:`S`,Š:`S`,ś:`s`,ŝ:`s`,ş:`s`,š:`s`,Ţ:`T`,Ť:`T`,Ŧ:`T`,ţ:`t`,ť:`t`,ŧ:`t`,Ũ:`U`,Ū:`U`,Ŭ:`U`,Ů:`U`,Ű:`U`,Ų:`U`,ũ:`u`,ū:`u`,ŭ:`u`,ů:`u`,ű:`u`,ų:`u`,Ŵ:`W`,ŵ:`w`,Ŷ:`Y`,ŷ:`y`,Ÿ:`Y`,Ź:`Z`,Ż:`Z`,Ž:`Z`,ź:`z`,ż:`z`,ž:`z`,IJ:`IJ`,ij:`ij`,Œ:`Oe`,œ:`oe`,ʼn:`'n`,ſ:`s`},wn={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},Tn={"&amp;":`&`,"&lt;":`<`,"&gt;":`>`,"&quot;":`"`,"&#39;":`'`},En={"\\":`\\`,"'":`'`,"\n":`n`,"\r":`r`,"\u2028":`u2028`,"\u2029":`u2029`},Dn=parseFloat,On=parseInt,kn=typeof global==`object`&&global&&global.Object===Object&&global,An=typeof self==`object`&&self&&self.Object===Object&&self,jn=kn||An||Function(`return this`)(),Mn=typeof e==`object`&&e&&!e.nodeType&&e,Nn=Mn&&typeof t==`object`&&t&&!t.nodeType&&t,Pn=Nn&&Nn.exports===Mn,T=Pn&&kn.process,Fn=function(){try{return Nn&&Nn.require&&Nn.require(`util`).types||T&&T.binding&&T.binding(`util`)}catch{}}(),In=Fn&&Fn.isArrayBuffer,Ln=Fn&&Fn.isDate,Rn=Fn&&Fn.isMap,zn=Fn&&Fn.isRegExp,Bn=Fn&&Fn.isSet,Vn=Fn&&Fn.isTypedArray;function Hn(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Un(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}function Wn(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}function Gn(e,t){for(var n=e==null?0:e.length;n--&&t(e[n],n,e)!==!1;);return e}function Kn(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function qn(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}function Jn(e,t){return!!(e!=null&&e.length)&&ar(e,t,0)>-1}function Yn(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function E(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}function Xn(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}function Zn(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}function Qn(e,t,n,r){var i=e==null?0:e.length;for(r&&i&&(n=e[--i]);i--;)n=t(n,e[i],i,e);return n}function $n(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var er=lr(`length`);function tr(e){return e.split(``)}function nr(e){return e.match(yt)||[]}function rr(e,t,n){var r;return n(e,function(e,n,i){if(t(e,n,i))return r=n,!1}),r}function ir(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}function ar(e,t,n){return t===t?Fr(e,t,n):ir(e,sr,n)}function or(e,t,n,r){for(var i=n-1,a=e.length;++i<a;)if(r(e[i],t))return i;return-1}function sr(e){return e!==e}function cr(e,t){var n=e==null?0:e.length;return n?pr(e,t)/n:he}function lr(e){return function(t){return t==null?n:t[e]}}function ur(e){return function(t){return e==null?n:e[t]}}function dr(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}function fr(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}function pr(e,t){for(var r,i=-1,a=e.length;++i<a;){var o=t(e[i]);o!==n&&(r=r===n?o:r+o)}return r}function mr(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}function hr(e,t){return E(t,function(t){return[t,e[t]]})}function gr(e){return e&&e.slice(0,zr(e)+1).replace(mt,``)}function _r(e){return function(t){return e(t)}}function vr(e,t){return E(t,function(t){return e[t]})}function yr(e,t){return e.has(t)}function br(e,t){for(var n=-1,r=e.length;++n<r&&ar(t,e[n],0)>-1;);return n}function xr(e,t){for(var n=e.length;n--&&ar(t,e[n],0)>-1;);return n}function Sr(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var Cr=ur(Cn),wr=ur(wn);function Tr(e){return`\\`+En[e]}function Er(e,t){return e==null?n:e[t]}function Dr(e){return yn.test(e)}function Or(e){return bn.test(e)}function kr(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function Ar(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function jr(e,t){return function(n){return e(t(n))}}function Mr(e,t){for(var n=-1,r=e.length,i=0,a=[];++n<r;){var o=e[n];(o===t||o===u)&&(e[n]=u,a[i++]=n)}return a}function Nr(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}function Pr(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=[e,e]}),n}function Fr(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function Ir(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}function Lr(e){return Dr(e)?Vr(e):er(e)}function Rr(e){return Dr(e)?Hr(e):tr(e)}function zr(e){for(var t=e.length;t--&&ht.test(e.charAt(t)););return t}var Br=ur(Tn);function Vr(e){for(var t=_n.lastIndex=0;_n.test(e);)++t;return t}function Hr(e){return e.match(_n)||[]}function Ur(e){return e.match(vn)||[]}var Wr=(function e(t){t=t==null?jn:Wr.defaults(jn.Object(),t,Wr.pick(jn,xn));var ht=t.Array,yt=t.Date,Mt=t.Error,Nt=t.Function,Pt=t.Math,x=t.Object,Ft=t.RegExp,It=t.String,Lt=t.TypeError,Rt=ht.prototype,zt=Nt.prototype,Bt=x.prototype,Vt=t[`__core-js_shared__`],Ht=zt.toString,S=Bt.hasOwnProperty,Ut=0,Wt=function(){var e=/[^.]+$/.exec(Vt&&Vt.keys&&Vt.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}(),Gt=Bt.toString,Kt=Ht.call(x),qt=jn._,Jt=Ft(`^`+Ht.call(S).replace(ft,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`),Yt=Pn?t.Buffer:n,Xt=t.Symbol,Zt=t.Uint8Array,Qt=Yt?Yt.allocUnsafe:n,$t=jr(x.getPrototypeOf,x),en=x.create,tn=Bt.propertyIsEnumerable,nn=Rt.splice,rn=Xt?Xt.isConcatSpreadable:n,an=Xt?Xt.iterator:n,on=Xt?Xt.toStringTag:n,sn=function(){try{var e=gs(x,`defineProperty`);return e({},``,{}),e}catch{}}(),cn=t.clearTimeout!==jn.clearTimeout&&t.clearTimeout,ln=yt&&yt.now!==jn.Date.now&&yt.now,un=t.setTimeout!==jn.setTimeout&&t.setTimeout,dn=Pt.ceil,fn=Pt.floor,pn=x.getOwnPropertySymbols,mn=Yt?Yt.isBuffer:n,_n=t.isFinite,vn=Rt.join,yn=jr(x.keys,x),bn=Pt.max,Cn=Pt.min,wn=yt.now,Tn=t.parseInt,En=Pt.random,kn=Rt.reverse,An=gs(t,`DataView`),Mn=gs(t,`Map`),Nn=gs(t,`Promise`),T=gs(t,`Set`),Fn=gs(t,`WeakMap`),er=gs(x,`create`),tr=Fn&&new Fn,ur={},Fr=Zs(An),Vr=Zs(Mn),Hr=Zs(Nn),Gr=Zs(T),Kr=Zs(Fn),qr=Xt?Xt.prototype:n,Jr=qr?qr.valueOf:n,Yr=qr?qr.toString:n;function D(e){if(J(e)&&!K(e)&&!(e instanceof O)){if(e instanceof Qr)return e;if(S.call(e,`__wrapped__`))return $s(e)}return new Qr(e)}var Xr=function(){function e(){}return function(t){if(!q(t))return{};if(en)return en(t);e.prototype=t;var r=new e;return e.prototype=n,r}}();function Zr(){}function Qr(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=n}D.templateSettings={escape:ot,evaluate:st,interpolate:ct,variable:``,imports:{_:D}},D.prototype=Zr.prototype,D.prototype.constructor=D,Qr.prototype=Xr(Zr.prototype),Qr.prototype.constructor=Qr;function O(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ge,this.__views__=[]}function $r(){var e=new O(this.__wrapped__);return e.__actions__=Oo(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Oo(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Oo(this.__views__),e}function ei(){if(this.__filtered__){var e=new O(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}function ti(){var e=this.__wrapped__.value(),t=this.__dir__,n=K(e),r=t<0,i=n?e.length:0,a=xs(0,i,this.__views__),o=a.start,s=a.end,c=s-o,l=r?s:o-1,u=this.__iteratees__,d=u.length,f=0,p=Cn(c,this.__takeCount__);if(!n||!r&&i==c&&p==c)return co(e,this.__actions__);var m=[];outer:for(;c--&&f<p;){l+=t;for(var h=-1,g=e[l];++h<d;){var _=u[h],v=_.iteratee,y=_.type,ee=v(g);if(y==ue)g=ee;else if(!ee){if(y==le)continue outer;break outer}}m[f++]=g}return m}O.prototype=Xr(Zr.prototype),O.prototype.constructor=O;function ni(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ri(){this.__data__=er?er(null):{},this.size=0}function ii(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function ai(e){var t=this.__data__;if(er){var r=t[e];return r===c?n:r}return S.call(t,e)?t[e]:n}function oi(e){var t=this.__data__;return er?t[e]!==n:S.call(t,e)}function si(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=er&&t===n?c:t,this}ni.prototype.clear=ri,ni.prototype.delete=ii,ni.prototype.get=ai,ni.prototype.has=oi,ni.prototype.set=si;function ci(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function li(){this.__data__=[],this.size=0}function ui(e){var t=this.__data__,n=Fi(t,e);return n<0?!1:(n==t.length-1?t.pop():nn.call(t,n,1),--this.size,!0)}function di(e){var t=this.__data__,r=Fi(t,e);return r<0?n:t[r][1]}function fi(e){return Fi(this.__data__,e)>-1}function pi(e,t){var n=this.__data__,r=Fi(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}ci.prototype.clear=li,ci.prototype.delete=ui,ci.prototype.get=di,ci.prototype.has=fi,ci.prototype.set=pi;function mi(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function hi(){this.size=0,this.__data__={hash:new ni,map:new(Mn||ci),string:new ni}}function gi(e){var t=ms(this,e).delete(e);return this.size-=t?1:0,t}function _i(e){return ms(this,e).get(e)}function vi(e){return ms(this,e).has(e)}function yi(e,t){var n=ms(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}mi.prototype.clear=hi,mi.prototype.delete=gi,mi.prototype.get=_i,mi.prototype.has=vi,mi.prototype.set=yi;function bi(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new mi;++t<n;)this.add(e[t])}function xi(e){return this.__data__.set(e,c),this}function Si(e){return this.__data__.has(e)}bi.prototype.add=bi.prototype.push=xi,bi.prototype.has=Si;function Ci(e){this.size=(this.__data__=new ci(e)).size}function wi(){this.__data__=new ci,this.size=0}function Ti(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Ei(e){return this.__data__.get(e)}function Di(e){return this.__data__.has(e)}function Oi(e,t){var n=this.__data__;if(n instanceof ci){var r=n.__data__;if(!Mn||r.length<i-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new mi(r)}return n.set(e,t),this.size=n.size,this}Ci.prototype.clear=wi,Ci.prototype.delete=Ti,Ci.prototype.get=Ei,Ci.prototype.has=Di,Ci.prototype.set=Oi;function ki(e,t){var n=K(e),r=!n&&hu(e),i=!n&&!r&&bu(e),a=!n&&!r&&!i&&Wu(e),o=n||r||i||a,s=o?mr(e.length,It):[],c=s.length;for(var l in e)(t||S.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||ks(l,c)))&&s.push(l);return s}function Ai(e){var t=e.length;return t?e[Ha(0,t-1)]:n}function ji(e,t){return N(Oo(e),Vi(t,0,e.length))}function Mi(e){return N(Oo(e))}function Ni(e,t,r){(r!==n&&!fu(e[t],r)||r===n&&!(t in e))&&zi(e,t,r)}function Pi(e,t,r){var i=e[t];(!(S.call(e,t)&&fu(i,r))||r===n&&!(t in e))&&zi(e,t,r)}function Fi(e,t){for(var n=e.length;n--;)if(fu(e[n][0],t))return n;return-1}function Ii(e,t,n,r){return qi(e,function(e,i,a){t(r,e,n(e),a)}),r}function Li(e,t){return e&&ko(t,Cd(t),e)}function Ri(e,t){return e&&ko(t,wd(t),e)}function zi(e,t,n){t==`__proto__`&&sn?sn(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Bi(e,t){for(var r=-1,i=t.length,a=ht(i),o=e==null;++r<i;)a[r]=o?n:_d(e,t[r]);return a}function Vi(e,t,r){return e===e&&(r!==n&&(e=e<=r?e:r),t!==n&&(e=e>=t?e:t)),e}function Hi(e,t,r,i,a,o){var s,c=t&d,l=t&f,u=t&p;if(r&&(s=a?r(e,i,a,o):r(e)),s!==n)return s;if(!q(e))return e;var m=K(e);if(m){if(s=ws(e),!c)return Oo(e,s)}else{var h=bs(e),g=h==De||h==Oe;if(bu(e))return vo(e,c);if(h==Me||h==be||g&&!a){if(s=l||g?{}:Ts(e),!c)return l?jo(e,Ri(s,e)):Ao(e,Li(s,e))}else{if(!w[h])return a?e:{};s=Es(e,h,c)}}o||=new Ci;var _=o.get(e);if(_)return _;o.set(e,s),Vu(e)?e.forEach(function(n){s.add(Hi(n,t,r,n,e,o))}):Y(e)&&e.forEach(function(n,i){s.set(i,Hi(n,t,r,i,e,o))});var v=m?n:(u?l?us:ls:l?wd:Cd)(e);return Wn(v||e,function(n,i){v&&(i=n,n=e[i]),Pi(s,i,Hi(n,t,r,i,e,o))}),s}function Ui(e){var t=Cd(e);return function(n){return Wi(n,e,t)}}function Wi(e,t,r){var i=r.length;if(e==null)return!i;for(e=x(e);i--;){var a=r[i],o=t[a],s=e[a];if(s===n&&!(a in e)||!o(s))return!1}return!0}function Gi(e,t,r){if(typeof e!=`function`)throw new Lt(o);return qs(function(){e.apply(n,r)},t)}function Ki(e,t,n,r){var a=-1,o=Jn,s=!0,c=e.length,l=[],u=t.length;if(!c)return l;n&&(t=E(t,_r(n))),r?(o=Yn,s=!1):t.length>=i&&(o=yr,s=!1,t=new bi(t));outer:for(;++a<c;){var d=e[a],f=n==null?d:n(d);if(d=r||d!==0?d:0,s&&f===f){for(var p=u;p--;)if(t[p]===f)continue outer;l.push(d)}else o(t,f,r)||l.push(d)}return l}var qi=Po(na),Ji=Po(ra,!0);function Yi(e,t){var n=!0;return qi(e,function(e,r,i){return n=!!t(e,r,i),n}),n}function Xi(e,t,r){for(var i=-1,a=e.length;++i<a;){var o=e[i],s=t(o);if(s!=null&&(c===n?s===s&&!Uu(s):r(s,c)))var c=s,l=o}return l}function Zi(e,t,r,i){var a=e.length;for(r=Z(r),r<0&&(r=-r>a?0:a+r),i=i===n||i>a?a:Z(i),i<0&&(i+=a),i=r>i?0:Zu(i);r<i;)e[r++]=t;return e}function Qi(e,t){var n=[];return qi(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function $i(e,t,n,r,i){var a=-1,o=e.length;for(n||=Os,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?$i(s,t-1,n,r,i):Xn(i,s):r||(i[i.length]=s)}return i}var ea=Fo(),ta=Fo(!0);function na(e,t){return e&&ea(e,t,Cd)}function ra(e,t){return e&&ta(e,t,Cd)}function ia(e,t){return qn(t,function(t){return Ou(e[t])})}function aa(e,t){t=mo(t,e);for(var r=0,i=t.length;e!=null&&r<i;)e=e[P(t[r++])];return r&&r==i?e:n}function oa(e,t,n){var r=t(e);return K(e)?r:Xn(r,n(e))}function sa(e){return e==null?e===n?ze:je:on&&on in x(e)?_s(e):Vs(e)}function ca(e,t){return e>t}function la(e,t){return e!=null&&S.call(e,t)}function ua(e,t){return e!=null&&t in x(e)}function da(e,t,n){return e>=Cn(t,n)&&e<bn(t,n)}function fa(e,t,r){for(var i=r?Yn:Jn,a=e[0].length,o=e.length,s=o,c=ht(o),l=1/0,u=[];s--;){var d=e[s];s&&t&&(d=E(d,_r(t))),l=Cn(d.length,l),c[s]=!r&&(t||a>=120&&d.length>=120)?new bi(s&&d):n}d=e[0];var f=-1,p=c[0];outer:for(;++f<a&&u.length<l;){var m=d[f],h=t?t(m):m;if(m=r||m!==0?m:0,!(p?yr(p,h):i(u,h,r))){for(s=o;--s;){var g=c[s];if(!(g?yr(g,h):i(e[s],h,r)))continue outer}p&&p.push(h),u.push(m)}}return u}function pa(e,t,n,r){return na(e,function(e,i,a){t(r,n(e),i,a)}),r}function ma(e,t,r){t=mo(t,e),e=Us(e,t);var i=e==null?e:e[P(Sc(t))];return i==null?n:Hn(i,e,r)}function ha(e){return J(e)&&sa(e)==be}function ga(e){return J(e)&&sa(e)==He}function _a(e){return J(e)&&sa(e)==we}function va(e,t,n,r,i){return e===t?!0:e==null||t==null||!J(e)&&!J(t)?e!==e&&t!==t:ya(e,t,n,r,va,i)}function ya(e,t,n,r,i,a){var o=K(e),s=K(t),c=o?xe:bs(e),l=s?xe:bs(t);c=c==be?Me:c,l=l==be?Me:l;var u=c==Me,d=l==Me,f=c==l;if(f&&bu(e)){if(!bu(t))return!1;o=!0,u=!1}if(f&&!u)return a||=new Ci,o||Wu(e)?as(e,t,n,r,i,a):os(e,t,c,n,r,i,a);if(!(n&m)){var p=u&&S.call(e,`__wrapped__`),h=d&&S.call(t,`__wrapped__`);if(p||h){var g=p?e.value():e,_=h?t.value():t;return a||=new Ci,i(g,_,n,r,a)}}return f?(a||=new Ci,ss(e,t,n,r,i,a)):!1}function ba(e){return J(e)&&bs(e)==ke}function xa(e,t,r,i){var a=r.length,o=a,s=!i;if(e==null)return!o;for(e=x(e);a--;){var c=r[a];if(s&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++a<o;){c=r[a];var l=c[0],u=e[l],d=c[1];if(s&&c[2]){if(u===n&&!(l in e))return!1}else{var f=new Ci;if(i)var p=i(u,d,l,e,t,f);if(!(p===n?va(d,u,m|h,i,f):p))return!1}}return!0}function Sa(e){return!q(e)||Ps(e)?!1:(Ou(e)?Jt:Et).test(Zs(e))}function Ca(e){return J(e)&&sa(e)==Fe}function wa(e){return J(e)&&bs(e)==Ie}function Ta(e){return J(e)&&Au(e.length)&&!!C[sa(e)]}function Ea(e){return typeof e==`function`?e:e==null?jf:typeof e==`object`?K(e)?Ma(e[0],e[1]):ja(e):Wf(e)}function Da(e){if(!Is(e))return yn(e);var t=[];for(var n in x(e))S.call(e,n)&&n!=`constructor`&&t.push(n);return t}function Oa(e){if(!q(e))return Bs(e);var t=Is(e),n=[];for(var r in e)r==`constructor`&&(t||!S.call(e,r))||n.push(r);return n}function ka(e,t){return e<t}function Aa(e,t){var n=-1,r=_u(e)?ht(e.length):[];return qi(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function ja(e){var t=hs(e);return t.length==1&&t[0][2]?Rs(t[0][0],t[0][1]):function(n){return n===e||xa(n,e,t)}}function Ma(e,t){return js(e)&&Ls(t)?Rs(P(e),t):function(r){var i=_d(r,e);return i===n&&i===t?yd(r,e):va(t,i,m|h)}}function Na(e,t,r,i,a){e!==t&&ea(t,function(o,s){if(a||=new Ci,q(o))Pa(e,t,s,r,Na,i,a);else{var c=i?i(Gs(e,s),o,s+``,e,t,a):n;c===n&&(c=o),Ni(e,s,c)}},wd)}function Pa(e,t,r,i,a,o,s){var c=Gs(e,r),l=Gs(t,r),u=s.get(l);if(u){Ni(e,r,u);return}var d=o?o(c,l,r+``,e,t,s):n,f=d===n;if(f){var p=K(l),m=!p&&bu(l),h=!p&&!m&&Wu(l);d=l,p||m||h?K(c)?d=c:vu(c)?d=Oo(c):m?(f=!1,d=vo(l,!0)):h?(f=!1,d=Co(l,!0)):d=[]:Ru(l)||hu(l)?(d=c,hu(c)?d=$u(c):(!q(c)||Ou(c))&&(d=Ts(l))):f=!1}f&&(s.set(l,d),a(d,l,i,o,s),s.delete(l)),Ni(e,r,d)}function Fa(e,t){var r=e.length;if(r)return t+=t<0?r:0,ks(t,r)?e[t]:n}function Ia(e,t,n){t=t.length?E(t,function(e){return K(e)?function(t){return aa(t,e.length===1?e[0]:e)}:e}):[jf];var r=-1;return t=E(t,_r(A())),fr(Aa(e,function(e,n,i){return{criteria:E(t,function(t){return t(e)}),index:++r,value:e}}),function(e,t){return To(e,t,n)})}function La(e,t){return Ra(e,t,function(t,n){return yd(e,n)})}function Ra(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=aa(e,o);n(s,o)&&qa(a,mo(o,e),s)}return a}function za(e){return function(t){return aa(t,e)}}function Ba(e,t,n,r){var i=r?or:ar,a=-1,o=t.length,s=e;for(e===t&&(t=Oo(t)),n&&(s=E(e,_r(n)));++a<o;)for(var c=0,l=t[a],u=n?n(l):l;(c=i(s,u,c,r))>-1;)s!==e&&nn.call(s,c,1),nn.call(e,c,1);return e}function Va(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==a){var a=i;ks(i)?nn.call(e,i,1):ao(e,i)}}return e}function Ha(e,t){return e+fn(En()*(t-e+1))}function Ua(e,t,n,r){for(var i=-1,a=bn(dn((t-e)/(n||1)),0),o=ht(a);a--;)o[r?a:++i]=e,e+=n;return o}function Wa(e,t){var n=``;if(!e||t<1||t>pe)return n;do t%2&&(n+=e),t=fn(t/2),t&&(e+=e);while(t);return n}function k(e,t){return Js(Hs(e,t,jf),e+``)}function Ga(e){return Ai(Vd(e))}function Ka(e,t){var n=Vd(e);return N(n,Vi(t,0,n.length))}function qa(e,t,r,i){if(!q(e))return e;t=mo(t,e);for(var a=-1,o=t.length,s=o-1,c=e;c!=null&&++a<o;){var l=P(t[a]),u=r;if(l===`__proto__`||l===`constructor`||l===`prototype`)return e;if(a!=s){var d=c[l];u=i?i(d,l,c):n,u===n&&(u=q(d)?d:ks(t[a+1])?[]:{})}Pi(c,l,u),c=c[l]}return e}var Ja=tr?function(e,t){return tr.set(e,t),e}:jf,Ya=sn?function(e,t){return sn(e,`toString`,{configurable:!0,enumerable:!1,value:Df(t),writable:!0})}:jf;function Xa(e){return N(Vd(e))}function Za(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=ht(i);++r<i;)a[r]=e[r+t];return a}function Qa(e,t){var n;return qi(e,function(e,r,i){return n=t(e,r,i),!n}),!!n}function $a(e,t,n){var r=0,i=e==null?r:e.length;if(typeof t==`number`&&t===t&&i<=ve){for(;r<i;){var a=r+i>>>1,o=e[a];o!==null&&!Uu(o)&&(n?o<=t:o<t)?r=a+1:i=a}return i}return eo(e,t,jf,n)}function eo(e,t,r,i){var a=0,o=e==null?0:e.length;if(o===0)return 0;t=r(t);for(var s=t!==t,c=t===null,l=Uu(t),u=t===n;a<o;){var d=fn((a+o)/2),f=r(e[d]),p=f!==n,m=f===null,h=f===f,g=Uu(f);if(s)var _=i||h;else _=u?h&&(i||p):c?h&&p&&(i||!m):l?h&&p&&!m&&(i||!g):m||g?!1:i?f<=t:f<t;_?a=d+1:o=d}return Cn(o,_e)}function to(e,t){for(var n=-1,r=e.length,i=0,a=[];++n<r;){var o=e[n],s=t?t(o):o;if(!n||!fu(s,c)){var c=s;a[i++]=o===0?0:o}}return a}function no(e){return typeof e==`number`?e:Uu(e)?he:+e}function ro(e){if(typeof e==`string`)return e;if(K(e))return E(e,ro)+``;if(Uu(e))return Yr?Yr.call(e):``;var t=e+``;return t==`0`&&1/e==-fe?`-0`:t}function io(e,t,n){var r=-1,a=Jn,o=e.length,s=!0,c=[],l=c;if(n)s=!1,a=Yn;else if(o>=i){var u=t?null:$o(e);if(u)return Nr(u);s=!1,a=yr,l=new bi}else l=t?[]:c;outer:for(;++r<o;){var d=e[r],f=t?t(d):d;if(d=n||d!==0?d:0,s&&f===f){for(var p=l.length;p--;)if(l[p]===f)continue outer;t&&l.push(f),c.push(d)}else a(l,f,n)||(l!==c&&l.push(f),c.push(d))}return c}function ao(e,t){return t=mo(t,e),e=Us(e,t),e==null||delete e[P(Sc(t))]}function oo(e,t,n,r){return qa(e,t,n(aa(e,t)),r)}function so(e,t,n,r){for(var i=e.length,a=r?i:-1;(r?a--:++a<i)&&t(e[a],a,e););return n?Za(e,r?0:a,r?a+1:i):Za(e,r?a+1:0,r?i:a)}function co(e,t){var n=e;return n instanceof O&&(n=n.value()),Zn(t,function(e,t){return t.func.apply(t.thisArg,Xn([e],t.args))},n)}function lo(e,t,n){var r=e.length;if(r<2)return r?io(e[0]):[];for(var i=-1,a=ht(r);++i<r;)for(var o=e[i],s=-1;++s<r;)s!=i&&(a[i]=Ki(a[i]||o,e[s],t,n));return io($i(a,1),t,n)}function uo(e,t,r){for(var i=-1,a=e.length,o=t.length,s={};++i<a;){var c=i<o?t[i]:n;r(s,e[i],c)}return s}function fo(e){return vu(e)?e:[]}function po(e){return typeof e==`function`?e:jf}function mo(e,t){return K(e)?e:js(e,t)?[e]:Xs(Q(e))}var ho=k;function go(e,t,r){var i=e.length;return r=r===n?i:r,!t&&r>=i?e:Za(e,t,r)}var _o=cn||function(e){return jn.clearTimeout(e)};function vo(e,t){if(t)return e.slice();var n=e.length,r=Qt?Qt(n):new e.constructor(n);return e.copy(r),r}function yo(e){var t=new e.constructor(e.byteLength);return new Zt(t).set(new Zt(e)),t}function bo(e,t){var n=t?yo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function xo(e){var t=new e.constructor(e.source,Ct.exec(e));return t.lastIndex=e.lastIndex,t}function So(e){return Jr?x(Jr.call(e)):{}}function Co(e,t){var n=t?yo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function wo(e,t){if(e!==t){var r=e!==n,i=e===null,a=e===e,o=Uu(e),s=t!==n,c=t===null,l=t===t,u=Uu(t);if(!c&&!u&&!o&&e>t||o&&s&&l&&!c&&!u||i&&s&&l||!r&&l||!a)return 1;if(!i&&!o&&!u&&e<t||u&&r&&a&&!i&&!o||c&&r&&a||!s&&a||!l)return-1}return 0}function To(e,t,n){for(var r=-1,i=e.criteria,a=t.criteria,o=i.length,s=n.length;++r<o;){var c=wo(i[r],a[r]);if(c)return r>=s?c:c*(n[r]==`desc`?-1:1)}return e.index-t.index}function Eo(e,t,n,r){for(var i=-1,a=e.length,o=n.length,s=-1,c=t.length,l=bn(a-o,0),u=ht(c+l),d=!r;++s<c;)u[s]=t[s];for(;++i<o;)(d||i<a)&&(u[n[i]]=e[i]);for(;l--;)u[s++]=e[i++];return u}function Do(e,t,n,r){for(var i=-1,a=e.length,o=-1,s=n.length,c=-1,l=t.length,u=bn(a-s,0),d=ht(u+l),f=!r;++i<u;)d[i]=e[i];for(var p=i;++c<l;)d[p+c]=t[c];for(;++o<s;)(f||i<a)&&(d[p+n[o]]=e[i++]);return d}function Oo(e,t){var n=-1,r=e.length;for(t||=ht(r);++n<r;)t[n]=e[n];return t}function ko(e,t,r,i){var a=!r;r||={};for(var o=-1,s=t.length;++o<s;){var c=t[o],l=i?i(r[c],e[c],c,r,e):n;l===n&&(l=e[c]),a?zi(r,c,l):Pi(r,c,l)}return r}function Ao(e,t){return ko(e,vs(e),t)}function jo(e,t){return ko(e,ys(e),t)}function Mo(e,t){return function(n,r){var i=K(n)?Un:Ii,a=t?t():{};return i(n,e,A(r,2),a)}}function No(e){return k(function(t,r){var i=-1,a=r.length,o=a>1?r[a-1]:n,s=a>2?r[2]:n;for(o=e.length>3&&typeof o==`function`?(a--,o):n,s&&As(r[0],r[1],s)&&(o=a<3?n:o,a=1),t=x(t);++i<a;){var c=r[i];c&&e(t,c,i,o)}return t})}function Po(e,t){return function(n,r){if(n==null)return n;if(!_u(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=x(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}function Fo(e){return function(t,n,r){for(var i=-1,a=x(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}function Io(e,t,n){var r=t&g,i=zo(e);function a(){return(this&&this!==jn&&this instanceof a?i:e).apply(r?n:this,arguments)}return a}function Lo(e){return function(t){t=Q(t);var r=Dr(t)?Rr(t):n,i=r?r[0]:t.charAt(0),a=r?go(r,1).join(``):t.slice(1);return i[e]()+a}}function Ro(e){return function(t){return Zn(Sf(Jd(t).replace(hn,``)),e,``)}}function zo(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=Xr(e.prototype),r=e.apply(n,t);return q(r)?r:n}}function Bo(e,t,r){var i=zo(e);function a(){for(var o=arguments.length,s=ht(o),c=o,l=ps(a);c--;)s[c]=arguments[c];var u=o<3&&s[0]!==l&&s[o-1]!==l?[]:Mr(s,l);return o-=u.length,o<r?Zo(e,t,Uo,a.placeholder,n,s,u,n,n,r-o):Hn(this&&this!==jn&&this instanceof a?i:e,this,s)}return a}function Vo(e){return function(t,r,i){var a=x(t);if(!_u(t)){var o=A(r,3);t=Cd(t),r=function(e){return o(a[e],e,a)}}var s=e(t,r,i);return s>-1?a[o?t[s]:s]:n}}function Ho(e){return cs(function(t){var r=t.length,i=r,a=Qr.prototype.thru;for(e&&t.reverse();i--;){var s=t[i];if(typeof s!=`function`)throw new Lt(o);if(a&&!c&&fs(s)==`wrapper`)var c=new Qr([],!0)}for(i=c?i:r;++i<r;){s=t[i];var l=fs(s),u=l==`wrapper`?ds(s):n;c=u&&Ns(u[0])&&u[1]==(b|y|te|re)&&!u[4].length&&u[9]==1?c[fs(u[0])].apply(c,u[3]):s.length==1&&Ns(s)?c[l]():c.thru(s)}return function(){var e=arguments,n=e[0];if(c&&e.length==1&&K(n))return c.plant(n).value();for(var i=0,a=r?t[i].apply(this,e):n;++i<r;)a=t[i].call(this,a);return a}})}function Uo(e,t,r,i,a,o,s,c,l,u){var d=t&b,f=t&g,p=t&_,m=t&(y|ee),h=t&ie,v=p?n:zo(e);function te(){for(var n=arguments.length,g=ht(n),_=n;_--;)g[_]=arguments[_];if(m)var y=ps(te),ee=Sr(g,y);if(i&&(g=Eo(g,i,a,m)),o&&(g=Do(g,o,s,m)),n-=ee,m&&n<u){var ne=Mr(g,y);return Zo(e,t,Uo,te.placeholder,r,g,ne,c,l,u-n)}var b=f?r:this,re=p?b[e]:e;return n=g.length,c?g=Ws(g,c):h&&n>1&&g.reverse(),d&&l<n&&(g.length=l),this&&this!==jn&&this instanceof te&&(re=v||zo(re)),re.apply(b,g)}return te}function Wo(e,t){return function(n,r){return pa(n,e,t(r),{})}}function Go(e,t){return function(r,i){var a;if(r===n&&i===n)return t;if(r!==n&&(a=r),i!==n){if(a===n)return i;typeof r==`string`||typeof i==`string`?(r=ro(r),i=ro(i)):(r=no(r),i=no(i)),a=e(r,i)}return a}}function Ko(e){return cs(function(t){return t=E(t,_r(A())),k(function(n){var r=this;return e(t,function(e){return Hn(e,r,n)})})})}function qo(e,t){t=t===n?` `:ro(t);var r=t.length;if(r<2)return r?Wa(t,e):t;var i=Wa(t,dn(e/Lr(t)));return Dr(t)?go(Rr(i),0,e).join(``):i.slice(0,e)}function Jo(e,t,n,r){var i=t&g,a=zo(e);function o(){for(var t=-1,s=arguments.length,c=-1,l=r.length,u=ht(l+s),d=this&&this!==jn&&this instanceof o?a:e;++c<l;)u[c]=r[c];for(;s--;)u[c++]=arguments[++t];return Hn(d,i?n:this,u)}return o}function Yo(e){return function(t,r,i){return i&&typeof i!=`number`&&As(t,r,i)&&(r=i=n),t=Xu(t),r===n?(r=t,t=0):r=Xu(r),i=i===n?t<r?1:-1:Xu(i),Ua(t,r,i,e)}}function Xo(e){return function(t,n){return typeof t==`string`&&typeof n==`string`||(t=Qu(t),n=Qu(n)),e(t,n)}}function Zo(e,t,r,i,a,o,s,c,l,u){var d=t&y,f=d?s:n,p=d?n:s,m=d?o:n,h=d?n:o;t|=d?te:ne,t&=~(d?ne:te),t&v||(t&=~(g|_));var ee=[e,t,a,m,f,h,p,c,l,u],b=r.apply(n,ee);return Ns(e)&&Ks(b,ee),b.placeholder=i,Ys(b,e,t)}function Qo(e){var t=Pt[e];return function(e,n){if(e=Qu(e),n=n==null?0:Cn(Z(n),292),n&&_n(e)){var r=(Q(e)+`e`).split(`e`);return r=(Q(t(r[0]+`e`+(+r[1]+n)))+`e`).split(`e`),+(r[0]+`e`+(+r[1]-n))}return t(e)}}var $o=T&&1/Nr(new T([,-0]))[1]==fe?function(e){return new T(e)}:zf;function es(e){return function(t){var n=bs(t);return n==ke?Ar(t):n==Ie?Pr(t):hr(t,e(t))}}function ts(e,t,r,i,a,s,c,l){var u=t&_;if(!u&&typeof e!=`function`)throw new Lt(o);var d=i?i.length:0;if(d||(t&=~(te|ne),i=a=n),c=c===n?c:bn(Z(c),0),l=l===n?l:Z(l),d-=a?a.length:0,t&ne){var f=i,p=a;i=a=n}var m=u?n:ds(e),h=[e,t,r,i,a,f,p,s,c,l];if(m&&zs(h,m),e=h[0],t=h[1],r=h[2],i=h[3],a=h[4],l=h[9]=h[9]===n?u?0:e.length:bn(h[9]-d,0),!l&&t&(y|ee)&&(t&=~(y|ee)),!t||t==g)var v=Io(e,t,r);else v=t==y||t==ee?Bo(e,t,l):(t==te||t==(g|te))&&!a.length?Jo(e,t,r,i):Uo.apply(n,h);return Ys((m?Ja:Ks)(v,h),e,t)}function ns(e,t,r,i){return e===n||fu(e,Bt[r])&&!S.call(i,r)?t:e}function rs(e,t,r,i,a,o){return q(e)&&q(t)&&(o.set(t,e),Na(e,t,n,rs,o),o.delete(t)),e}function is(e){return Ru(e)?n:e}function as(e,t,r,i,a,o){var s=r&m,c=e.length,l=t.length;if(c!=l&&!(s&&l>c))return!1;var u=o.get(e),d=o.get(t);if(u&&d)return u==t&&d==e;var f=-1,p=!0,g=r&h?new bi:n;for(o.set(e,t),o.set(t,e);++f<c;){var _=e[f],v=t[f];if(i)var y=s?i(v,_,f,t,e,o):i(_,v,f,e,t,o);if(y!==n){if(y)continue;p=!1;break}if(g){if(!$n(t,function(e,t){if(!yr(g,t)&&(_===e||a(_,e,r,i,o)))return g.push(t)})){p=!1;break}}else if(!(_===v||a(_,v,r,i,o))){p=!1;break}}return o.delete(e),o.delete(t),p}function os(e,t,n,r,i,a,o){switch(n){case Ue:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case He:return!(e.byteLength!=t.byteLength||!a(new Zt(e),new Zt(t)));case Ce:case we:case Ae:return fu(+e,+t);case Ee:return e.name==t.name&&e.message==t.message;case Fe:case Le:return e==t+``;case ke:var s=Ar;case Ie:var c=r&m;if(s||=Nr,e.size!=t.size&&!c)return!1;var l=o.get(e);if(l)return l==t;r|=h,o.set(e,t);var u=as(s(e),s(t),r,i,a,o);return o.delete(e),u;case Re:if(Jr)return Jr.call(e)==Jr.call(t)}return!1}function ss(e,t,r,i,a,o){var s=r&m,c=ls(e),l=c.length;if(l!=ls(t).length&&!s)return!1;for(var u=l;u--;){var d=c[u];if(!(s?d in t:S.call(t,d)))return!1}var f=o.get(e),p=o.get(t);if(f&&p)return f==t&&p==e;var h=!0;o.set(e,t),o.set(t,e);for(var g=s;++u<l;){d=c[u];var _=e[d],v=t[d];if(i)var y=s?i(v,_,d,t,e,o):i(_,v,d,e,t,o);if(!(y===n?_===v||a(_,v,r,i,o):y)){h=!1;break}g||=d==`constructor`}if(h&&!g){var ee=e.constructor,te=t.constructor;ee!=te&&`constructor`in e&&`constructor`in t&&!(typeof ee==`function`&&ee instanceof ee&&typeof te==`function`&&te instanceof te)&&(h=!1)}return o.delete(e),o.delete(t),h}function cs(e){return Js(Hs(e,n,dc),e+``)}function ls(e){return oa(e,Cd,vs)}function us(e){return oa(e,wd,ys)}var ds=tr?function(e){return tr.get(e)}:zf;function fs(e){for(var t=e.name+``,n=ur[t],r=S.call(ur,t)?n.length:0;r--;){var i=n[r],a=i.func;if(a==null||a==e)return i.name}return t}function ps(e){return(S.call(D,`placeholder`)?D:e).placeholder}function A(){var e=D.iteratee||Mf;return e=e===Mf?Ea:e,arguments.length?e(arguments[0],arguments[1]):e}function ms(e,t){var n=e.__data__;return Ms(t)?n[typeof t==`string`?`string`:`hash`]:n.map}function hs(e){for(var t=Cd(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,Ls(i)]}return t}function gs(e,t){var r=Er(e,t);return Sa(r)?r:n}function _s(e){var t=S.call(e,on),r=e[on];try{e[on]=n;var i=!0}catch{}var a=Gt.call(e);return i&&(t?e[on]=r:delete e[on]),a}var vs=pn?function(e){return e==null?[]:(e=x(e),qn(pn(e),function(t){return tn.call(e,t)}))}:Jf,ys=pn?function(e){for(var t=[];e;)Xn(t,vs(e)),e=$t(e);return t}:Jf,bs=sa;(An&&bs(new An(new ArrayBuffer(1)))!=Ue||Mn&&bs(new Mn)!=ke||Nn&&bs(Nn.resolve())!=Ne||T&&bs(new T)!=Ie||Fn&&bs(new Fn)!=Be)&&(bs=function(e){var t=sa(e),r=t==Me?e.constructor:n,i=r?Zs(r):``;if(i)switch(i){case Fr:return Ue;case Vr:return ke;case Hr:return Ne;case Gr:return Ie;case Kr:return Be}return t});function xs(e,t,n){for(var r=-1,i=n.length;++r<i;){var a=n[r],o=a.size;switch(a.type){case`drop`:e+=o;break;case`dropRight`:t-=o;break;case`take`:t=Cn(t,e+o);break;case`takeRight`:e=bn(e,t-o);break}}return{start:e,end:t}}function Ss(e){var t=e.match(_t);return t?t[1].split(vt):[]}function Cs(e,t,n){t=mo(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=P(t[r]);if(!(a=e!=null&&n(e,o)))break;e=e[o]}return a||++r!=i?a:(i=e==null?0:e.length,!!i&&Au(i)&&ks(o,i)&&(K(e)||hu(e)))}function ws(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&S.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}function Ts(e){return typeof e.constructor==`function`&&!Is(e)?Xr($t(e)):{}}function Es(e,t,n){var r=e.constructor;switch(t){case He:return yo(e);case Ce:case we:return new r(+e);case Ue:return bo(e,n);case We:case Ge:case Ke:case qe:case Je:case Ye:case Xe:case Ze:case Qe:return Co(e,n);case ke:return new r;case Ae:case Le:return new r(e);case Fe:return xo(e);case Ie:return new r;case Re:return So(e)}}function Ds(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(n>1?`& `:``)+t[r],t=t.join(n>2?`, `:` `),e.replace(gt,`{
10
- /* [wrapped with `+t+`] */
11
- `)}function Os(e){return K(e)||hu(e)||!!(rn&&e&&e[rn])}function ks(e,t){var n=typeof e;return t??=pe,!!t&&(n==`number`||n!=`symbol`&&Ot.test(e))&&e>-1&&e%1==0&&e<t}function As(e,t,n){if(!q(n))return!1;var r=typeof t;return(r==`number`?_u(n)&&ks(t,n.length):r==`string`&&t in n)?fu(n[t],e):!1}function js(e,t){if(K(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||Uu(e)?!0:ut.test(e)||!lt.test(e)||t!=null&&e in x(t)}function Ms(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}function Ns(e){var t=fs(e),n=D[t];if(typeof n!=`function`||!(t in O.prototype))return!1;if(e===n)return!0;var r=ds(n);return!!r&&e===r[0]}function Ps(e){return!!Wt&&Wt in e}var Fs=Vt?Ou:Yf;function Is(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||Bt)}function Ls(e){return e===e&&!q(e)}function Rs(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==n||e in x(r))}}function j(e){var t=Yl(e,function(e){return n.size===l&&n.clear(),e}),n=t.cache;return t}function zs(e,t){var n=e[1],r=t[1],i=n|r,a=i<(g|_|b),o=r==b&&n==y||r==b&&n==re&&e[7].length<=t[8]||r==(b|re)&&t[7].length<=t[8]&&n==y;if(!(a||o))return e;r&g&&(e[2]=t[2],i|=n&g?0:v);var s=t[3];if(s){var c=e[3];e[3]=c?Eo(c,s,t[4]):s,e[4]=c?Mr(e[3],u):t[4]}return s=t[5],s&&(c=e[5],e[5]=c?Do(c,s,t[6]):s,e[6]=c?Mr(e[5],u):t[6]),s=t[7],s&&(e[7]=s),r&b&&(e[8]=e[8]==null?t[8]:Cn(e[8],t[8])),e[9]??=t[9],e[0]=t[0],e[1]=i,e}function Bs(e){var t=[];if(e!=null)for(var n in x(e))t.push(n);return t}function Vs(e){return Gt.call(e)}function Hs(e,t,r){return t=bn(t===n?e.length-1:t,0),function(){for(var n=arguments,i=-1,a=bn(n.length-t,0),o=ht(a);++i<a;)o[i]=n[t+i];i=-1;for(var s=ht(t+1);++i<t;)s[i]=n[i];return s[t]=r(o),Hn(e,this,s)}}function Us(e,t){return t.length<2?e:aa(e,Za(t,0,-1))}function Ws(e,t){for(var r=e.length,i=Cn(t.length,r),a=Oo(e);i--;){var o=t[i];e[i]=ks(o,r)?a[o]:n}return e}function Gs(e,t){if(!(t===`constructor`&&typeof e[t]==`function`)&&t!=`__proto__`)return e[t]}var Ks=M(Ja),qs=un||function(e,t){return jn.setTimeout(e,t)},Js=M(Ya);function Ys(e,t,n){var r=t+``;return Js(e,Ds(r,Qs(Ss(r),n)))}function M(e){var t=0,r=0;return function(){var i=wn(),a=ce-(i-r);if(r=i,a>0){if(++t>=se)return arguments[0]}else t=0;return e.apply(n,arguments)}}function N(e,t){var r=-1,i=e.length,a=i-1;for(t=t===n?i:t;++r<t;){var o=Ha(r,a),s=e[o];e[o]=e[r],e[r]=s}return e.length=t,e}var Xs=j(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(dt,function(e,n,r,i){t.push(r?i.replace(xt,`$1`):n||e)}),t});function P(e){if(typeof e==`string`||Uu(e))return e;var t=e+``;return t==`0`&&1/e==-fe?`-0`:t}function Zs(e){if(e!=null){try{return Ht.call(e)}catch{}try{return e+``}catch{}}return``}function Qs(e,t){return Wn(ye,function(n){var r=`_.`+n[0];t&n[1]&&!Jn(e,r)&&e.push(r)}),e.sort()}function $s(e){if(e instanceof O)return e.clone();var t=new Qr(e.__wrapped__,e.__chain__);return t.__actions__=Oo(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}function ec(e,t,r){t=(r?As(e,t,r):t===n)?1:bn(Z(t),0);var i=e==null?0:e.length;if(!i||t<1)return[];for(var a=0,o=0,s=ht(dn(i/t));a<i;)s[o++]=Za(e,a,a+=t);return s}function tc(e){for(var t=-1,n=e==null?0:e.length,r=0,i=[];++t<n;){var a=e[t];a&&(i[r++]=a)}return i}function nc(){var e=arguments.length;if(!e)return[];for(var t=ht(e-1),n=arguments[0],r=e;r--;)t[r-1]=arguments[r];return Xn(K(n)?Oo(n):[n],$i(t,1))}var F=k(function(e,t){return vu(e)?Ki(e,$i(t,1,vu,!0)):[]}),rc=k(function(e,t){var r=Sc(t);return vu(r)&&(r=n),vu(e)?Ki(e,$i(t,1,vu,!0),A(r,2)):[]}),I=k(function(e,t){var r=Sc(t);return vu(r)&&(r=n),vu(e)?Ki(e,$i(t,1,vu,!0),n,r):[]});function ic(e,t,r){var i=e==null?0:e.length;return i?(t=r||t===n?1:Z(t),Za(e,t<0?0:t,i)):[]}function ac(e,t,r){var i=e==null?0:e.length;return i?(t=r||t===n?1:Z(t),t=i-t,Za(e,0,t<0?0:t)):[]}function oc(e,t){return e&&e.length?so(e,A(t,3),!0,!0):[]}function sc(e,t){return e&&e.length?so(e,A(t,3),!0):[]}function cc(e,t,n,r){var i=e==null?0:e.length;return i?(n&&typeof n!=`number`&&As(e,t,n)&&(n=0,r=i),Zi(e,t,n,r)):[]}function lc(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:Z(n);return i<0&&(i=bn(r+i,0)),ir(e,A(t,3),i)}function uc(e,t,r){var i=e==null?0:e.length;if(!i)return-1;var a=i-1;return r!==n&&(a=Z(r),a=r<0?bn(i+a,0):Cn(a,i-1)),ir(e,A(t,3),a,!0)}function dc(e){return e!=null&&e.length?$i(e,1):[]}function fc(e){return e!=null&&e.length?$i(e,fe):[]}function pc(e,t){return e!=null&&e.length?(t=t===n?1:Z(t),$i(e,t)):[]}function mc(e){for(var t=-1,n=e==null?0:e.length,r={};++t<n;){var i=e[t];r[i[0]]=i[1]}return r}function hc(e){return e&&e.length?e[0]:n}function gc(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:Z(n);return i<0&&(i=bn(r+i,0)),ar(e,t,i)}function _c(e){return e!=null&&e.length?Za(e,0,-1):[]}var vc=k(function(e){var t=E(e,fo);return t.length&&t[0]===e[0]?fa(t):[]}),yc=k(function(e){var t=Sc(e),r=E(e,fo);return t===Sc(r)?t=n:r.pop(),r.length&&r[0]===e[0]?fa(r,A(t,2)):[]}),bc=k(function(e){var t=Sc(e),r=E(e,fo);return t=typeof t==`function`?t:n,t&&r.pop(),r.length&&r[0]===e[0]?fa(r,n,t):[]});function xc(e,t){return e==null?``:vn.call(e,t)}function Sc(e){var t=e==null?0:e.length;return t?e[t-1]:n}function Cc(e,t,r){var i=e==null?0:e.length;if(!i)return-1;var a=i;return r!==n&&(a=Z(r),a=a<0?bn(i+a,0):Cn(a,i-1)),t===t?Ir(e,t,a):ir(e,sr,a,!0)}function wc(e,t){return e&&e.length?Fa(e,Z(t)):n}var L=k(R);function R(e,t){return e&&e.length&&t&&t.length?Ba(e,t):e}function Tc(e,t,n){return e&&e.length&&t&&t.length?Ba(e,t,A(n,2)):e}function Ec(e,t,r){return e&&e.length&&t&&t.length?Ba(e,t,n,r):e}var Dc=cs(function(e,t){var n=e==null?0:e.length,r=Bi(e,t);return Va(e,E(t,function(e){return ks(e,n)?+e:e}).sort(wo)),r});function Oc(e,t){var n=[];if(!(e&&e.length))return n;var r=-1,i=[],a=e.length;for(t=A(t,3);++r<a;){var o=e[r];t(o,r,e)&&(n.push(o),i.push(r))}return Va(e,i),n}function kc(e){return e==null?e:kn.call(e)}function Ac(e,t,r){var i=e==null?0:e.length;return i?(r&&typeof r!=`number`&&As(e,t,r)?(t=0,r=i):(t=t==null?0:Z(t),r=r===n?i:Z(r)),Za(e,t,r)):[]}function jc(e,t){return $a(e,t)}function Mc(e,t,n){return eo(e,t,A(n,2))}function Nc(e,t){var n=e==null?0:e.length;if(n){var r=$a(e,t);if(r<n&&fu(e[r],t))return r}return-1}function Pc(e,t){return $a(e,t,!0)}function Fc(e,t,n){return eo(e,t,A(n,2),!0)}function z(e,t){if(e!=null&&e.length){var n=$a(e,t,!0)-1;if(fu(e[n],t))return n}return-1}function Ic(e){return e&&e.length?to(e):[]}function Lc(e,t){return e&&e.length?to(e,A(t,2)):[]}function Rc(e){var t=e==null?0:e.length;return t?Za(e,1,t):[]}function B(e,t,r){return e&&e.length?(t=r||t===n?1:Z(t),Za(e,0,t<0?0:t)):[]}function V(e,t,r){var i=e==null?0:e.length;return i?(t=r||t===n?1:Z(t),t=i-t,Za(e,t<0?0:t,i)):[]}function zc(e,t){return e&&e.length?so(e,A(t,3),!1,!0):[]}function H(e,t){return e&&e.length?so(e,A(t,3)):[]}var Bc=k(function(e){return io($i(e,1,vu,!0))}),Vc=k(function(e){var t=Sc(e);return vu(t)&&(t=n),io($i(e,1,vu,!0),A(t,2))}),Hc=k(function(e){var t=Sc(e);return t=typeof t==`function`?t:n,io($i(e,1,vu,!0),n,t)});function Uc(e){return e&&e.length?io(e):[]}function Wc(e,t){return e&&e.length?io(e,A(t,2)):[]}function Gc(e,t){return t=typeof t==`function`?t:n,e&&e.length?io(e,n,t):[]}function Kc(e){if(!(e&&e.length))return[];var t=0;return e=qn(e,function(e){if(vu(e))return t=bn(e.length,t),!0}),mr(t,function(t){return E(e,lr(t))})}function qc(e,t){if(!(e&&e.length))return[];var r=Kc(e);return t==null?r:E(r,function(e){return Hn(t,n,e)})}var Jc=k(function(e,t){return vu(e)?Ki(e,t):[]}),Yc=k(function(e){return lo(qn(e,vu))}),Xc=k(function(e){var t=Sc(e);return vu(t)&&(t=n),lo(qn(e,vu),A(t,2))}),Zc=k(function(e){var t=Sc(e);return t=typeof t==`function`?t:n,lo(qn(e,vu),n,t)}),Qc=k(Kc);function $c(e,t){return uo(e||[],t||[],Pi)}function el(e,t){return uo(e||[],t||[],qa)}var tl=k(function(e){var t=e.length,r=t>1?e[t-1]:n;return r=typeof r==`function`?(e.pop(),r):n,qc(e,r)});function nl(e){var t=D(e);return t.__chain__=!0,t}function rl(e,t){return t(e),e}function il(e,t){return t(e)}var al=cs(function(e){var t=e.length,r=t?e[0]:0,i=this.__wrapped__,a=function(t){return Bi(t,e)};return t>1||this.__actions__.length||!(i instanceof O)||!ks(r)?this.thru(a):(i=i.slice(r,+r+(t?1:0)),i.__actions__.push({func:il,args:[a],thisArg:n}),new Qr(i,this.__chain__).thru(function(e){return t&&!e.length&&e.push(n),e}))});function ol(){return nl(this)}function sl(){return new Qr(this.value(),this.__chain__)}function cl(){this.__values__===n&&(this.__values__=Yu(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?n:this.__values__[this.__index__++]}}function ll(){return this}function ul(e){for(var t,r=this;r instanceof Zr;){var i=$s(r);i.__index__=0,i.__values__=n,t?a.__wrapped__=i:t=i;var a=i;r=r.__wrapped__}return a.__wrapped__=e,t}function dl(){var e=this.__wrapped__;if(e instanceof O){var t=e;return this.__actions__.length&&(t=new O(this)),t=t.reverse(),t.__actions__.push({func:il,args:[kc],thisArg:n}),new Qr(t,this.__chain__)}return this.thru(kc)}function fl(){return co(this.__wrapped__,this.__actions__)}var pl=Mo(function(e,t,n){S.call(e,n)?++e[n]:zi(e,n,1)});function ml(e,t,r){var i=K(e)?Kn:Yi;return r&&As(e,t,r)&&(t=n),i(e,A(t,3))}function hl(e,t){return(K(e)?qn:Qi)(e,A(t,3))}var gl=Vo(lc),_l=Vo(uc);function vl(e,t){return $i(El(e,t),1)}function yl(e,t){return $i(El(e,t),fe)}function bl(e,t,r){return r=r===n?1:Z(r),$i(El(e,t),r)}function xl(e,t){return(K(e)?Wn:qi)(e,A(t,3))}function Sl(e,t){return(K(e)?Gn:Ji)(e,A(t,3))}var Cl=Mo(function(e,t,n){S.call(e,n)?e[n].push(t):zi(e,n,[t])});function U(e,t,n,r){e=_u(e)?e:Vd(e),n=n&&!r?Z(n):0;var i=e.length;return n<0&&(n=bn(i+n,0)),Hu(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&ar(e,t,n)>-1}var wl=k(function(e,t,n){var r=-1,i=typeof t==`function`,a=_u(e)?ht(e.length):[];return qi(e,function(e){a[++r]=i?Hn(t,e,n):ma(e,t,n)}),a}),Tl=Mo(function(e,t,n){zi(e,n,t)});function El(e,t){return(K(e)?E:Aa)(e,A(t,3))}function Dl(e,t,r,i){return e==null?[]:(K(t)||(t=t==null?[]:[t]),r=i?n:r,K(r)||(r=r==null?[]:[r]),Ia(e,t,r))}var Ol=Mo(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]});function kl(e,t,n){var r=K(e)?Zn:dr,i=arguments.length<3;return r(e,A(t,4),n,i,qi)}function Al(e,t,n){var r=K(e)?Qn:dr,i=arguments.length<3;return r(e,A(t,4),n,i,Ji)}function jl(e,t){return(K(e)?qn:Qi)(e,Xl(A(t,3)))}function Ml(e){return(K(e)?Ai:Ga)(e)}function Nl(e,t,r){return t=(r?As(e,t,r):t===n)?1:Z(t),(K(e)?ji:Ka)(e,t)}function Pl(e){return(K(e)?Mi:Xa)(e)}function Fl(e){if(e==null)return 0;if(_u(e))return Hu(e)?Lr(e):e.length;var t=bs(e);return t==ke||t==Ie?e.size:Da(e).length}function Il(e,t,r){var i=K(e)?$n:Qa;return r&&As(e,t,r)&&(t=n),i(e,A(t,3))}var W=k(function(e,t){if(e==null)return[];var n=t.length;return n>1&&As(e,t[0],t[1])?t=[]:n>2&&As(t[0],t[1],t[2])&&(t=[t[0]]),Ia(e,$i(t,1),[])}),Ll=ln||function(){return jn.Date.now()};function Rl(e,t){if(typeof t!=`function`)throw new Lt(o);return e=Z(e),function(){if(--e<1)return t.apply(this,arguments)}}function zl(e,t,r){return t=r?n:t,t=e&&t==null?e.length:t,ts(e,b,n,n,n,n,t)}function Bl(e,t){var r;if(typeof t!=`function`)throw new Lt(o);return e=Z(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=n),r}}var Vl=k(function(e,t,n){var r=g;if(n.length){var i=Mr(n,ps(Vl));r|=te}return ts(e,r,t,n,i)}),Hl=k(function(e,t,n){var r=g|_;if(n.length){var i=Mr(n,ps(Hl));r|=te}return ts(t,r,e,n,i)});function Ul(e,t,r){t=r?n:t;var i=ts(e,y,n,n,n,n,n,t);return i.placeholder=Ul.placeholder,i}function Wl(e,t,r){t=r?n:t;var i=ts(e,ee,n,n,n,n,n,t);return i.placeholder=Wl.placeholder,i}function Gl(e,t,r){var i,a,s,c,l,u,d=0,f=!1,p=!1,m=!0;if(typeof e!=`function`)throw new Lt(o);t=Qu(t)||0,q(r)&&(f=!!r.leading,p=`maxWait`in r,s=p?bn(Qu(r.maxWait)||0,t):s,m=`trailing`in r?!!r.trailing:m);function h(t){var r=i,o=a;return i=a=n,d=t,c=e.apply(o,r),c}function g(e){return d=e,l=qs(y,t),f?h(e):c}function _(e){var n=e-u,r=e-d,i=t-n;return p?Cn(i,s-r):i}function v(e){var r=e-u,i=e-d;return u===n||r>=t||r<0||p&&i>=s}function y(){var e=Ll();if(v(e))return ee(e);l=qs(y,_(e))}function ee(e){return l=n,m&&i?h(e):(i=a=n,c)}function te(){l!==n&&_o(l),d=0,i=u=a=l=n}function ne(){return l===n?c:ee(Ll())}function b(){var e=Ll(),r=v(e);if(i=arguments,a=this,u=e,r){if(l===n)return g(u);if(p)return _o(l),l=qs(y,t),h(u)}return l===n&&(l=qs(y,t)),c}return b.cancel=te,b.flush=ne,b}var Kl=k(function(e,t){return Gi(e,1,t)}),ql=k(function(e,t,n){return Gi(e,Qu(t)||0,n)});function Jl(e){return ts(e,ie)}function Yl(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw new Lt(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(Yl.Cache||mi),n}Yl.Cache=mi;function Xl(e){if(typeof e!=`function`)throw new Lt(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Zl(e){return Bl(2,e)}var Ql=ho(function(e,t){t=t.length==1&&K(t[0])?E(t[0],_r(A())):E($i(t,1),_r(A()));var n=t.length;return k(function(r){for(var i=-1,a=Cn(r.length,n);++i<a;)r[i]=t[i].call(this,r[i]);return Hn(e,this,r)})}),$l=k(function(e,t){return ts(e,te,n,t,Mr(t,ps($l)))}),G=k(function(e,t){return ts(e,ne,n,t,Mr(t,ps(G)))}),eu=cs(function(e,t){return ts(e,re,n,n,n,t)});function tu(e,t){if(typeof e!=`function`)throw new Lt(o);return t=t===n?t:Z(t),k(e,t)}function nu(e,t){if(typeof e!=`function`)throw new Lt(o);return t=t==null?0:bn(Z(t),0),k(function(n){var r=n[t],i=go(n,0,t);return r&&Xn(i,r),Hn(e,this,i)})}function ru(e,t,n){var r=!0,i=!0;if(typeof e!=`function`)throw new Lt(o);return q(n)&&(r=`leading`in n?!!n.leading:r,i=`trailing`in n?!!n.trailing:i),Gl(e,t,{leading:r,maxWait:t,trailing:i})}function iu(e){return zl(e,1)}function au(e,t){return $l(po(t),e)}function ou(){if(!arguments.length)return[];var e=arguments[0];return K(e)?e:[e]}function su(e){return Hi(e,p)}function cu(e,t){return t=typeof t==`function`?t:n,Hi(e,p,t)}function lu(e){return Hi(e,d|p)}function uu(e,t){return t=typeof t==`function`?t:n,Hi(e,d|p,t)}function du(e,t){return t==null||Wi(e,t,Cd(t))}function fu(e,t){return e===t||e!==e&&t!==t}var pu=Xo(ca),mu=Xo(function(e,t){return e>=t}),hu=ha(function(){return arguments}())?ha:function(e){return J(e)&&S.call(e,`callee`)&&!tn.call(e,`callee`)},K=ht.isArray,gu=In?_r(In):ga;function _u(e){return e!=null&&Au(e.length)&&!Ou(e)}function vu(e){return J(e)&&_u(e)}function yu(e){return e===!0||e===!1||J(e)&&sa(e)==Ce}var bu=mn||Yf,xu=Ln?_r(Ln):_a;function Su(e){return J(e)&&e.nodeType===1&&!Ru(e)}function Cu(e){if(e==null)return!0;if(_u(e)&&(K(e)||typeof e==`string`||typeof e.splice==`function`||bu(e)||Wu(e)||hu(e)))return!e.length;var t=bs(e);if(t==ke||t==Ie)return!e.size;if(Is(e))return!Da(e).length;for(var n in e)if(S.call(e,n))return!1;return!0}function wu(e,t){return va(e,t)}function Tu(e,t,r){r=typeof r==`function`?r:n;var i=r?r(e,t):n;return i===n?va(e,t,n,r):!!i}function Eu(e){if(!J(e))return!1;var t=sa(e);return t==Ee||t==Te||typeof e.message==`string`&&typeof e.name==`string`&&!Ru(e)}function Du(e){return typeof e==`number`&&_n(e)}function Ou(e){if(!q(e))return!1;var t=sa(e);return t==De||t==Oe||t==Se||t==Pe}function ku(e){return typeof e==`number`&&e==Z(e)}function Au(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=pe}function q(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}function J(e){return typeof e==`object`&&!!e}var Y=Rn?_r(Rn):ba;function ju(e,t){return e===t||xa(e,t,hs(t))}function Mu(e,t,r){return r=typeof r==`function`?r:n,xa(e,t,hs(t),r)}function Nu(e){return Lu(e)&&e!=+e}function Pu(e){if(Fs(e))throw new Mt(a);return Sa(e)}function Fu(e){return e===null}function Iu(e){return e==null}function Lu(e){return typeof e==`number`||J(e)&&sa(e)==Ae}function Ru(e){if(!J(e)||sa(e)!=Me)return!1;var t=$t(e);if(t===null)return!0;var n=S.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&Ht.call(n)==Kt}var zu=zn?_r(zn):Ca;function Bu(e){return ku(e)&&e>=-pe&&e<=pe}var Vu=Bn?_r(Bn):wa;function Hu(e){return typeof e==`string`||!K(e)&&J(e)&&sa(e)==Le}function Uu(e){return typeof e==`symbol`||J(e)&&sa(e)==Re}var Wu=Vn?_r(Vn):Ta;function Gu(e){return e===n}function Ku(e){return J(e)&&bs(e)==Be}function qu(e){return J(e)&&sa(e)==Ve}var X=Xo(ka),Ju=Xo(function(e,t){return e<=t});function Yu(e){if(!e)return[];if(_u(e))return Hu(e)?Rr(e):Oo(e);if(an&&e[an])return kr(e[an]());var t=bs(e);return(t==ke?Ar:t==Ie?Nr:Vd)(e)}function Xu(e){return e?(e=Qu(e),e===fe||e===-fe?(e<0?-1:1)*me:e===e?e:0):e===0?e:0}function Z(e){var t=Xu(e),n=t%1;return t===t?n?t-n:t:0}function Zu(e){return e?Vi(Z(e),0,ge):0}function Qu(e){if(typeof e==`number`)return e;if(Uu(e))return he;if(q(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=q(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=gr(e);var n=Tt.test(e);return n||Dt.test(e)?On(e.slice(2),n?2:8):wt.test(e)?he:+e}function $u(e){return ko(e,wd(e))}function ed(e){return e?Vi(Z(e),-pe,pe):e===0?e:0}function Q(e){return e==null?``:ro(e)}var td=No(function(e,t){if(Is(t)||_u(t)){ko(t,Cd(t),e);return}for(var n in t)S.call(t,n)&&Pi(e,n,t[n])}),nd=No(function(e,t){ko(t,wd(t),e)}),rd=No(function(e,t,n,r){ko(t,wd(t),e,r)}),id=No(function(e,t,n,r){ko(t,Cd(t),e,r)}),ad=cs(Bi);function od(e,t){var n=Xr(e);return t==null?n:Li(n,t)}var sd=k(function(e,t){e=x(e);var r=-1,i=t.length,a=i>2?t[2]:n;for(a&&As(t[0],t[1],a)&&(i=1);++r<i;)for(var o=t[r],s=wd(o),c=-1,l=s.length;++c<l;){var u=s[c],d=e[u];(d===n||fu(d,Bt[u])&&!S.call(e,u))&&(e[u]=o[u])}return e}),cd=k(function(e){return e.push(n,rs),Hn(Od,n,e)});function ld(e,t){return rr(e,A(t,3),na)}function ud(e,t){return rr(e,A(t,3),ra)}function dd(e,t){return e==null?e:ea(e,A(t,3),wd)}function fd(e,t){return e==null?e:ta(e,A(t,3),wd)}function pd(e,t){return e&&na(e,A(t,3))}function md(e,t){return e&&ra(e,A(t,3))}function hd(e){return e==null?[]:ia(e,Cd(e))}function gd(e){return e==null?[]:ia(e,wd(e))}function _d(e,t,r){var i=e==null?n:aa(e,t);return i===n?r:i}function vd(e,t){return e!=null&&Cs(e,t,la)}function yd(e,t){return e!=null&&Cs(e,t,ua)}var bd=Wo(function(e,t,n){t!=null&&typeof t.toString!=`function`&&(t=Gt.call(t)),e[t]=n},Df(jf)),xd=Wo(function(e,t,n){t!=null&&typeof t.toString!=`function`&&(t=Gt.call(t)),S.call(e,t)?e[t].push(n):e[t]=[n]},A),Sd=k(ma);function Cd(e){return _u(e)?ki(e):Da(e)}function wd(e){return _u(e)?ki(e,!0):Oa(e)}function Td(e,t){var n={};return t=A(t,3),na(e,function(e,r,i){zi(n,t(e,r,i),e)}),n}function Ed(e,t){var n={};return t=A(t,3),na(e,function(e,r,i){zi(n,r,t(e,r,i))}),n}var Dd=No(function(e,t,n){Na(e,t,n)}),Od=No(function(e,t,n,r){Na(e,t,n,r)}),kd=cs(function(e,t){var n={};if(e==null)return n;var r=!1;t=E(t,function(t){return t=mo(t,e),r||=t.length>1,t}),ko(e,us(e),n),r&&(n=Hi(n,d|f|p,is));for(var i=t.length;i--;)ao(n,t[i]);return n});function Ad(e,t){return Md(e,Xl(A(t)))}var jd=cs(function(e,t){return e==null?{}:La(e,t)});function Md(e,t){if(e==null)return{};var n=E(us(e),function(e){return[e]});return t=A(t),Ra(e,n,function(e,n){return t(e,n[0])})}function Nd(e,t,r){t=mo(t,e);var i=-1,a=t.length;for(a||(a=1,e=n);++i<a;){var o=e==null?n:e[P(t[i])];o===n&&(i=a,o=r),e=Ou(o)?o.call(e):o}return e}function Pd(e,t,n){return e==null?e:qa(e,t,n)}function Fd(e,t,r,i){return i=typeof i==`function`?i:n,e==null?e:qa(e,t,r,i)}var $=es(Cd),Id=es(wd);function Ld(e,t,n){var r=K(e),i=r||bu(e)||Wu(e);if(t=A(t,4),n==null){var a=e&&e.constructor;n=i?r?new a:[]:q(e)&&Ou(a)?Xr($t(e)):{}}return(i?Wn:na)(e,function(e,r,i){return t(n,e,r,i)}),n}function Rd(e,t){return e==null?!0:ao(e,t)}function zd(e,t,n){return e==null?e:oo(e,t,po(n))}function Bd(e,t,r,i){return i=typeof i==`function`?i:n,e==null?e:oo(e,t,po(r),i)}function Vd(e){return e==null?[]:vr(e,Cd(e))}function Hd(e){return e==null?[]:vr(e,wd(e))}function Ud(e,t,r){return r===n&&(r=t,t=n),r!==n&&(r=Qu(r),r=r===r?r:0),t!==n&&(t=Qu(t),t=t===t?t:0),Vi(Qu(e),t,r)}function Wd(e,t,r){return t=Xu(t),r===n?(r=t,t=0):r=Xu(r),e=Qu(e),da(e,t,r)}function Gd(e,t,r){if(r&&typeof r!=`boolean`&&As(e,t,r)&&(t=r=n),r===n&&(typeof t==`boolean`?(r=t,t=n):typeof e==`boolean`&&(r=e,e=n)),e===n&&t===n?(e=0,t=1):(e=Xu(e),t===n?(t=e,e=0):t=Xu(t)),e>t){var i=e;e=t,t=i}if(r||e%1||t%1){var a=En();return Cn(e+a*(t-e+Dn(`1e-`+((a+``).length-1))),t)}return Ha(e,t)}var Kd=Ro(function(e,t,n){return t=t.toLowerCase(),e+(n?qd(t):t)});function qd(e){return xf(Q(e).toLowerCase())}function Jd(e){return e=Q(e),e&&e.replace(kt,Cr).replace(gn,``)}function Yd(e,t,r){e=Q(e),t=ro(t);var i=e.length;r=r===n?i:Vi(Z(r),0,i);var a=r;return r-=t.length,r>=0&&e.slice(r,a)==t}function Xd(e){return e=Q(e),e&&at.test(e)?e.replace(rt,wr):e}function Zd(e){return e=Q(e),e&&pt.test(e)?e.replace(ft,`\\$&`):e}var Qd=Ro(function(e,t,n){return e+(n?`-`:``)+t.toLowerCase()}),$d=Ro(function(e,t,n){return e+(n?` `:``)+t.toLowerCase()}),ef=Lo(`toLowerCase`);function tf(e,t,n){e=Q(e),t=Z(t);var r=t?Lr(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return qo(fn(i),n)+e+qo(dn(i),n)}function nf(e,t,n){e=Q(e),t=Z(t);var r=t?Lr(e):0;return t&&r<t?e+qo(t-r,n):e}function rf(e,t,n){e=Q(e),t=Z(t);var r=t?Lr(e):0;return t&&r<t?qo(t-r,n)+e:e}function af(e,t,n){return n||t==null?t=0:t&&=+t,Tn(Q(e).replace(mt,``),t||0)}function of(e,t,r){return t=(r?As(e,t,r):t===n)?1:Z(t),Wa(Q(e),t)}function sf(){var e=arguments,t=Q(e[0]);return e.length<3?t:t.replace(e[1],e[2])}var cf=Ro(function(e,t,n){return e+(n?`_`:``)+t.toLowerCase()});function lf(e,t,r){return r&&typeof r!=`number`&&As(e,t,r)&&(t=r=n),r=r===n?ge:r>>>0,r?(e=Q(e),e&&(typeof t==`string`||t!=null&&!zu(t))&&(t=ro(t),!t&&Dr(e))?go(Rr(e),0,r):e.split(t,r)):[]}var uf=Ro(function(e,t,n){return e+(n?` `:``)+xf(t)});function df(e,t,n){return e=Q(e),n=n==null?0:Vi(Z(n),0,e.length),t=ro(t),e.slice(n,n+t.length)==t}function ff(e,t,r){var i=D.templateSettings;r&&As(e,t,r)&&(t=n),e=Q(e),t=rd({},t,i,ns);var a=rd({},t.imports,i.imports,ns),o=Cd(a),c=vr(a,o),l,u,d=0,f=t.interpolate||At,p=`__p += '`,m=Ft((t.escape||At).source+`|`+f.source+`|`+(f===ct?St:At).source+`|`+(t.evaluate||At).source+`|$`,`g`),h=`//# sourceURL=`+(S.call(t,`sourceURL`)?(t.sourceURL+``).replace(/\s/g,` `):`lodash.templateSources[`+ ++Sn+`]`)+`
12
- `;e.replace(m,function(t,n,r,i,a,o){return r||=i,p+=e.slice(d,o).replace(jt,Tr),n&&(l=!0,p+=`' +
13
- __e(`+n+`) +
14
- '`),a&&(u=!0,p+=`';
15
- `+a+`;
16
- __p += '`),r&&(p+=`' +
17
- ((__t = (`+r+`)) == null ? '' : __t) +
18
- '`),d=o+t.length,t}),p+=`';
19
- `;var g=S.call(t,`variable`)&&t.variable;if(!g)p=`with (obj) {
20
- `+p+`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var kc=typeof global=="object"&&global&&global.Object===Object&&global,FT=typeof self=="object"&&self&&self.Object===Object&&self,an=kc||FT||Function("return this")(),Gt=an.Symbol,Fc=Object.prototype,CT=Fc.hasOwnProperty,BT=Fc.toString,Cr=Gt?Gt.toStringTag:void 0;function GT(t){var r=CT.call(t,Cr),i=t[Cr];try{t[Cr]=void 0;var s=!0}catch{}var o=BT.call(t);return s&&(r?t[Cr]=i:delete t[Cr]),o}var VT=Object.prototype,$T=VT.toString;function WT(t){return $T.call(t)}var XT="[object Null]",HT="[object Undefined]",ql=Gt?Gt.toStringTag:void 0;function lr(t){return t==null?t===void 0?HT:XT:ql&&ql in Object(t)?GT(t):WT(t)}function Fn(t){return t!=null&&typeof t=="object"}var qT="[object Symbol]";function ts(t){return typeof t=="symbol"||Fn(t)&&lr(t)==qT}function Cc(t,r){for(var i=-1,s=t==null?0:t.length,o=Array(s);++i<s;)o[i]=r(t[i],i,t);return o}var Pt=Array.isArray,zl=Gt?Gt.prototype:void 0,Kl=zl?zl.toString:void 0;function Bc(t){if(typeof t=="string")return t;if(Pt(t))return Cc(t,Bc)+"";if(ts(t))return Kl?Kl.call(t):"";var r=t+"";return r=="0"&&1/t==-1/0?"-0":r}var zT=/\s/;function KT(t){for(var r=t.length;r--&&zT.test(t.charAt(r)););return r}var YT=/^\s+/;function JT(t){return t&&t.slice(0,KT(t)+1).replace(YT,"")}function ar(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}var Yl=NaN,QT=/^[-+]0x[0-9a-f]+$/i,ZT=/^0b[01]+$/i,jT=/^0o[0-7]+$/i,ev=parseInt;function tv(t){if(typeof t=="number")return t;if(ts(t))return Yl;if(ar(t)){var r=typeof t.valueOf=="function"?t.valueOf():t;t=ar(r)?r+"":r}if(typeof t!="string")return t===0?t:+t;t=JT(t);var i=ZT.test(t);return i||jT.test(t)?ev(t.slice(2),i?2:8):QT.test(t)?Yl:+t}var Jl=1/0,nv=17976931348623157e292;function rv(t){if(!t)return t===0?t:0;if(t=tv(t),t===Jl||t===-Jl){var r=t<0?-1:1;return r*nv}return t===t?t:0}function iv(t){var r=rv(t),i=r%1;return r===r?i?r-i:r:0}function ns(t){return t}var sv="[object AsyncFunction]",av="[object Function]",ov="[object GeneratorFunction]",uv="[object Proxy]";function Gc(t){if(!ar(t))return!1;var r=lr(t);return r==av||r==ov||r==sv||r==uv}var Da=an["__core-js_shared__"],Ql=function(){var t=/[^.]+$/.exec(Da&&Da.keys&&Da.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function lv(t){return!!Ql&&Ql in t}var cv=Function.prototype,fv=cv.toString;function Gn(t){if(t!=null){try{return fv.call(t)}catch{}try{return t+""}catch{}}return""}var hv=/[\\^$.*+?()[\]{}|]/g,pv=/^\[object .+?Constructor\]$/,dv=Function.prototype,Ev=Object.prototype,_v=dv.toString,gv=Ev.hasOwnProperty,Nv=RegExp("^"+_v.call(gv).replace(hv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Tv(t){if(!ar(t)||lv(t))return!1;var r=Gc(t)?Nv:pv;return r.test(Gn(t))}function vv(t,r){return t?.[r]}function Vn(t,r){var i=vv(t,r);return Tv(i)?i:void 0}var ka=Vn(an,"WeakMap");function bv(t,r,i){switch(i.length){case 0:return t.call(r);case 1:return t.call(r,i[0]);case 2:return t.call(r,i[0],i[1]);case 3:return t.call(r,i[0],i[1],i[2])}return t.apply(r,i)}var mv=800,Iv=16,Av=Date.now;function wv(t){var r=0,i=0;return function(){var s=Av(),o=Iv-(s-i);if(i=s,o>0){if(++r>=mv)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}function Lv(t){return function(){return t}}var Zl=function(){try{var t=Vn(Object,"defineProperty");return t({},"",{}),t}catch{}}(),yv=Zl?function(t,r){return Zl(t,"toString",{configurable:!0,enumerable:!1,value:Lv(r),writable:!0})}:ns,xv=wv(yv);function Sv(t,r,i,s){t.length;for(var o=i+1;o--;)if(r(t[o],o,t))return o;return-1}var Ov=9007199254740991,Pv=/^(?:0|[1-9]\d*)$/;function Vc(t,r){var i=typeof t;return r=r??Ov,!!r&&(i=="number"||i!="symbol"&&Pv.test(t))&&t>-1&&t%1==0&&t<r}function $c(t,r){return t===r||t!==t&&r!==r}var jl=Math.max;function Rv(t,r,i){return r=jl(r===void 0?t.length-1:r,0),function(){for(var s=arguments,o=-1,l=jl(s.length-r,0),f=Array(l);++o<l;)f[o]=s[r+o];o=-1;for(var d=Array(r+1);++o<r;)d[o]=s[o];return d[r]=i(f),bv(t,this,d)}}function Dv(t,r){return xv(Rv(t,r,ns),t+"")}var Mv=9007199254740991;function za(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Mv}function rs(t){return t!=null&&za(t.length)&&!Gc(t)}var Uv=Object.prototype;function Wc(t){var r=t&&t.constructor,i=typeof r=="function"&&r.prototype||Uv;return t===i}function Xc(t,r){for(var i=-1,s=Array(t);++i<t;)s[i]=r(i);return s}var kv="[object Arguments]";function ec(t){return Fn(t)&&lr(t)==kv}var Hc=Object.prototype,Fv=Hc.hasOwnProperty,Cv=Hc.propertyIsEnumerable,Ka=ec(function(){return arguments}())?ec:function(t){return Fn(t)&&Fv.call(t,"callee")&&!Cv.call(t,"callee")};function Bv(){return!1}var qc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,tc=qc&&typeof module=="object"&&module&&!module.nodeType&&module,Gv=tc&&tc.exports===qc,nc=Gv?an.Buffer:void 0,Vv=nc?nc.isBuffer:void 0,Fa=Vv||Bv,$v="[object Arguments]",Wv="[object Array]",Xv="[object Boolean]",Hv="[object Date]",qv="[object Error]",zv="[object Function]",Kv="[object Map]",Yv="[object Number]",Jv="[object Object]",Qv="[object RegExp]",Zv="[object Set]",jv="[object String]",eb="[object WeakMap]",tb="[object ArrayBuffer]",nb="[object DataView]",rb="[object Float32Array]",ib="[object Float64Array]",sb="[object Int8Array]",ab="[object Int16Array]",ob="[object Int32Array]",ub="[object Uint8Array]",lb="[object Uint8ClampedArray]",cb="[object Uint16Array]",fb="[object Uint32Array]",he={};he[rb]=he[ib]=he[sb]=he[ab]=he[ob]=he[ub]=he[lb]=he[cb]=he[fb]=!0;he[$v]=he[Wv]=he[tb]=he[Xv]=he[nb]=he[Hv]=he[qv]=he[zv]=he[Kv]=he[Yv]=he[Jv]=he[Qv]=he[Zv]=he[jv]=he[eb]=!1;function hb(t){return Fn(t)&&za(t.length)&&!!he[lr(t)]}function pb(t){return function(r){return t(r)}}var zc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Vr=zc&&typeof module=="object"&&module&&!module.nodeType&&module,db=Vr&&Vr.exports===zc,Ma=db&&kc.process,rc=function(){try{var t=Vr&&Vr.require&&Vr.require("util").types;return t||Ma&&Ma.binding&&Ma.binding("util")}catch{}}(),ic=rc&&rc.isTypedArray,Kc=ic?pb(ic):hb,Eb=Object.prototype,_b=Eb.hasOwnProperty;function Yc(t,r){var i=Pt(t),s=!i&&Ka(t),o=!i&&!s&&Fa(t),l=!i&&!s&&!o&&Kc(t),f=i||s||o||l,d=f?Xc(t.length,String):[],m=d.length;for(var I in t)(r||_b.call(t,I))&&!(f&&(I=="length"||o&&(I=="offset"||I=="parent")||l&&(I=="buffer"||I=="byteLength"||I=="byteOffset")||Vc(I,m)))&&d.push(I);return d}function gb(t,r){return function(i){return t(r(i))}}var Nb=gb(Object.keys,Object),Tb=Object.prototype,vb=Tb.hasOwnProperty;function bb(t){if(!Wc(t))return Nb(t);var r=[];for(var i in Object(t))vb.call(t,i)&&i!="constructor"&&r.push(i);return r}function Ya(t){return rs(t)?Yc(t):bb(t)}function mb(t){var r=[];if(t!=null)for(var i in Object(t))r.push(i);return r}var Ib=Object.prototype,Ab=Ib.hasOwnProperty;function wb(t){if(!ar(t))return mb(t);var r=Wc(t),i=[];for(var s in t)s=="constructor"&&(r||!Ab.call(t,s))||i.push(s);return i}function Lb(t){return rs(t)?Yc(t,!0):wb(t)}var yb=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xb=/^\w*$/;function Ja(t,r){if(Pt(t))return!1;var i=typeof t;return i=="number"||i=="symbol"||i=="boolean"||t==null||ts(t)?!0:xb.test(t)||!yb.test(t)||r!=null&&t in Object(r)}var Wr=Vn(Object,"create");function Sb(){this.__data__=Wr?Wr(null):{},this.size=0}function Ob(t){var r=this.has(t)&&delete this.__data__[t];return this.size-=r?1:0,r}var Pb="__lodash_hash_undefined__",Rb=Object.prototype,Db=Rb.hasOwnProperty;function Mb(t){var r=this.__data__;if(Wr){var i=r[t];return i===Pb?void 0:i}return Db.call(r,t)?r[t]:void 0}var Ub=Object.prototype,kb=Ub.hasOwnProperty;function Fb(t){var r=this.__data__;return Wr?r[t]!==void 0:kb.call(r,t)}var Cb="__lodash_hash_undefined__";function Bb(t,r){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=Wr&&r===void 0?Cb:r,this}function Cn(t){var r=-1,i=t==null?0:t.length;for(this.clear();++r<i;){var s=t[r];this.set(s[0],s[1])}}Cn.prototype.clear=Sb;Cn.prototype.delete=Ob;Cn.prototype.get=Mb;Cn.prototype.has=Fb;Cn.prototype.set=Bb;function Gb(){this.__data__=[],this.size=0}function is(t,r){for(var i=t.length;i--;)if($c(t[i][0],r))return i;return-1}var Vb=Array.prototype,$b=Vb.splice;function Wb(t){var r=this.__data__,i=is(r,t);if(i<0)return!1;var s=r.length-1;return i==s?r.pop():$b.call(r,i,1),--this.size,!0}function Xb(t){var r=this.__data__,i=is(r,t);return i<0?void 0:r[i][1]}function Hb(t){return is(this.__data__,t)>-1}function qb(t,r){var i=this.__data__,s=is(i,t);return s<0?(++this.size,i.push([t,r])):i[s][1]=r,this}function on(t){var r=-1,i=t==null?0:t.length;for(this.clear();++r<i;){var s=t[r];this.set(s[0],s[1])}}on.prototype.clear=Gb;on.prototype.delete=Wb;on.prototype.get=Xb;on.prototype.has=Hb;on.prototype.set=qb;var Xr=Vn(an,"Map");function zb(){this.size=0,this.__data__={hash:new Cn,map:new(Xr||on),string:new Cn}}function Kb(t){var r=typeof t;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?t!=="__proto__":t===null}function ss(t,r){var i=t.__data__;return Kb(r)?i[typeof r=="string"?"string":"hash"]:i.map}function Yb(t){var r=ss(this,t).delete(t);return this.size-=r?1:0,r}function Jb(t){return ss(this,t).get(t)}function Qb(t){return ss(this,t).has(t)}function Zb(t,r){var i=ss(this,t),s=i.size;return i.set(t,r),this.size+=i.size==s?0:1,this}function un(t){var r=-1,i=t==null?0:t.length;for(this.clear();++r<i;){var s=t[r];this.set(s[0],s[1])}}un.prototype.clear=zb;un.prototype.delete=Yb;un.prototype.get=Jb;un.prototype.has=Qb;un.prototype.set=Zb;var jb="Expected a function";function Qa(t,r){if(typeof t!="function"||r!=null&&typeof r!="function")throw new TypeError(jb);var i=function(){var s=arguments,o=r?r.apply(this,s):s[0],l=i.cache;if(l.has(o))return l.get(o);var f=t.apply(this,s);return i.cache=l.set(o,f)||l,f};return i.cache=new(Qa.Cache||un),i}Qa.Cache=un;var em=500;function tm(t){var r=Qa(t,function(s){return i.size===em&&i.clear(),s}),i=r.cache;return r}var nm=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rm=/\\(\\)?/g,im=tm(function(t){var r=[];return t.charCodeAt(0)===46&&r.push(""),t.replace(nm,function(i,s,o,l){r.push(o?l.replace(rm,"$1"):s||i)}),r});function sm(t){return t==null?"":Bc(t)}function Jc(t,r){return Pt(t)?t:Ja(t,r)?[t]:im(sm(t))}function as(t){if(typeof t=="string"||ts(t))return t;var r=t+"";return r=="0"&&1/t==-1/0?"-0":r}function Qc(t,r){r=Jc(r,t);for(var i=0,s=r.length;t!=null&&i<s;)t=t[as(r[i++])];return i&&i==s?t:void 0}function Zc(t,r,i){var s=t==null?void 0:Qc(t,r);return s===void 0?i:s}function jc(t,r){for(var i=-1,s=r.length,o=t.length;++i<s;)t[o+i]=r[i];return t}var sc=Gt?Gt.isConcatSpreadable:void 0;function am(t){return Pt(t)||Ka(t)||!!(sc&&t&&t[sc])}function om(t,r,i,s,o){var l=-1,f=t.length;for(i||(i=am),o||(o=[]);++l<f;){var d=t[l];i(d)?jc(o,d):o[o.length]=d}return o}function ac(t){var r=t==null?0:t.length;return r?om(t):[]}function um(){this.__data__=new on,this.size=0}function lm(t){var r=this.__data__,i=r.delete(t);return this.size=r.size,i}function cm(t){return this.__data__.get(t)}function fm(t){return this.__data__.has(t)}var hm=200;function pm(t,r){var i=this.__data__;if(i instanceof on){var s=i.__data__;if(!Xr||s.length<hm-1)return s.push([t,r]),this.size=++i.size,this;i=this.__data__=new un(s)}return i.set(t,r),this.size=i.size,this}function rn(t){var r=this.__data__=new on(t);this.size=r.size}rn.prototype.clear=um;rn.prototype.delete=lm;rn.prototype.get=cm;rn.prototype.has=fm;rn.prototype.set=pm;function ef(t,r){for(var i=-1,s=t==null?0:t.length,o=0,l=[];++i<s;){var f=t[i];r(f,i,t)&&(l[o++]=f)}return l}function dm(){return[]}var Em=Object.prototype,_m=Em.propertyIsEnumerable,oc=Object.getOwnPropertySymbols,gm=oc?function(t){return t==null?[]:(t=Object(t),ef(oc(t),function(r){return _m.call(t,r)}))}:dm;function Nm(t,r,i){var s=r(t);return Pt(t)?s:jc(s,i(t))}function uc(t){return Nm(t,Ya,gm)}var Ca=Vn(an,"DataView"),Ba=Vn(an,"Promise"),Ga=Vn(an,"Set"),lc="[object Map]",Tm="[object Object]",cc="[object Promise]",fc="[object Set]",hc="[object WeakMap]",pc="[object DataView]",vm=Gn(Ca),bm=Gn(Xr),mm=Gn(Ba),Im=Gn(Ga),Am=Gn(ka),bn=lr;(Ca&&bn(new Ca(new ArrayBuffer(1)))!=pc||Xr&&bn(new Xr)!=lc||Ba&&bn(Ba.resolve())!=cc||Ga&&bn(new Ga)!=fc||ka&&bn(new ka)!=hc)&&(bn=function(t){var r=lr(t),i=r==Tm?t.constructor:void 0,s=i?Gn(i):"";if(s)switch(s){case vm:return pc;case bm:return lc;case mm:return cc;case Im:return fc;case Am:return hc}return r});var dc=an.Uint8Array,wm="__lodash_hash_undefined__";function Lm(t){return this.__data__.set(t,wm),this}function ym(t){return this.__data__.has(t)}function Yi(t){var r=-1,i=t==null?0:t.length;for(this.__data__=new un;++r<i;)this.add(t[r])}Yi.prototype.add=Yi.prototype.push=Lm;Yi.prototype.has=ym;function xm(t,r){for(var i=-1,s=t==null?0:t.length;++i<s;)if(r(t[i],i,t))return!0;return!1}function Sm(t,r){return t.has(r)}var Om=1,Pm=2;function tf(t,r,i,s,o,l){var f=i&Om,d=t.length,m=r.length;if(d!=m&&!(f&&m>d))return!1;var I=l.get(t),T=l.get(r);if(I&&T)return I==r&&T==t;var y=-1,$=!0,J=i&Pm?new Yi:void 0;for(l.set(t,r),l.set(r,t);++y<d;){var ne=t[y],re=r[y];if(s)var j=f?s(re,ne,y,r,t,l):s(ne,re,y,t,r,l);if(j!==void 0){if(j)continue;$=!1;break}if(J){if(!xm(r,function(de,et){if(!Sm(J,et)&&(ne===de||o(ne,de,i,s,l)))return J.push(et)})){$=!1;break}}else if(!(ne===re||o(ne,re,i,s,l))){$=!1;break}}return l.delete(t),l.delete(r),$}function Rm(t){var r=-1,i=Array(t.size);return t.forEach(function(s,o){i[++r]=[o,s]}),i}function Dm(t){var r=-1,i=Array(t.size);return t.forEach(function(s){i[++r]=s}),i}var Mm=1,Um=2,km="[object Boolean]",Fm="[object Date]",Cm="[object Error]",Bm="[object Map]",Gm="[object Number]",Vm="[object RegExp]",$m="[object Set]",Wm="[object String]",Xm="[object Symbol]",Hm="[object ArrayBuffer]",qm="[object DataView]",Ec=Gt?Gt.prototype:void 0,Ua=Ec?Ec.valueOf:void 0;function zm(t,r,i,s,o,l,f){switch(i){case qm:if(t.byteLength!=r.byteLength||t.byteOffset!=r.byteOffset)return!1;t=t.buffer,r=r.buffer;case Hm:return!(t.byteLength!=r.byteLength||!l(new dc(t),new dc(r)));case km:case Fm:case Gm:return $c(+t,+r);case Cm:return t.name==r.name&&t.message==r.message;case Vm:case Wm:return t==r+"";case Bm:var d=Rm;case $m:var m=s&Mm;if(d||(d=Dm),t.size!=r.size&&!m)return!1;var I=f.get(t);if(I)return I==r;s|=Um,f.set(t,r);var T=tf(d(t),d(r),s,o,l,f);return f.delete(t),T;case Xm:if(Ua)return Ua.call(t)==Ua.call(r)}return!1}var Km=1,Ym=Object.prototype,Jm=Ym.hasOwnProperty;function Qm(t,r,i,s,o,l){var f=i&Km,d=uc(t),m=d.length,I=uc(r),T=I.length;if(m!=T&&!f)return!1;for(var y=m;y--;){var $=d[y];if(!(f?$ in r:Jm.call(r,$)))return!1}var J=l.get(t),ne=l.get(r);if(J&&ne)return J==r&&ne==t;var re=!0;l.set(t,r),l.set(r,t);for(var j=f;++y<m;){$=d[y];var de=t[$],et=r[$];if(s)var ht=f?s(et,de,$,r,t,l):s(de,et,$,t,r,l);if(!(ht===void 0?de===et||o(de,et,i,s,l):ht)){re=!1;break}j||(j=$=="constructor")}if(re&&!j){var Rt=t.constructor,ze=r.constructor;Rt!=ze&&"constructor"in t&&"constructor"in r&&!(typeof Rt=="function"&&Rt instanceof Rt&&typeof ze=="function"&&ze instanceof ze)&&(re=!1)}return l.delete(t),l.delete(r),re}var Zm=1,_c="[object Arguments]",gc="[object Array]",qi="[object Object]",jm=Object.prototype,Nc=jm.hasOwnProperty;function eI(t,r,i,s,o,l){var f=Pt(t),d=Pt(r),m=f?gc:bn(t),I=d?gc:bn(r);m=m==_c?qi:m,I=I==_c?qi:I;var T=m==qi,y=I==qi,$=m==I;if($&&Fa(t)){if(!Fa(r))return!1;f=!0,T=!1}if($&&!T)return l||(l=new rn),f||Kc(t)?tf(t,r,i,s,o,l):zm(t,r,m,i,s,o,l);if(!(i&Zm)){var J=T&&Nc.call(t,"__wrapped__"),ne=y&&Nc.call(r,"__wrapped__");if(J||ne){var re=J?t.value():t,j=ne?r.value():r;return l||(l=new rn),o(re,j,i,s,l)}}return $?(l||(l=new rn),Qm(t,r,i,s,o,l)):!1}function Za(t,r,i,s,o){return t===r?!0:t==null||r==null||!Fn(t)&&!Fn(r)?t!==t&&r!==r:eI(t,r,i,s,Za,o)}var tI=1,nI=2;function rI(t,r,i,s){var o=i.length,l=o;if(t==null)return!l;for(t=Object(t);o--;){var f=i[o];if(f[2]?f[1]!==t[f[0]]:!(f[0]in t))return!1}for(;++o<l;){f=i[o];var d=f[0],m=t[d],I=f[1];if(f[2]){if(m===void 0&&!(d in t))return!1}else{var T=new rn,y;if(!(y===void 0?Za(I,m,tI|nI,s,T):y))return!1}}return!0}function nf(t){return t===t&&!ar(t)}function iI(t){for(var r=Ya(t),i=r.length;i--;){var s=r[i],o=t[s];r[i]=[s,o,nf(o)]}return r}function rf(t,r){return function(i){return i==null?!1:i[t]===r&&(r!==void 0||t in Object(i))}}function sI(t){var r=iI(t);return r.length==1&&r[0][2]?rf(r[0][0],r[0][1]):function(i){return i===t||rI(i,t,r)}}function aI(t,r){return t!=null&&r in Object(t)}function oI(t,r,i){r=Jc(r,t);for(var s=-1,o=r.length,l=!1;++s<o;){var f=as(r[s]);if(!(l=t!=null&&i(t,f)))break;t=t[f]}return l||++s!=o?l:(o=t==null?0:t.length,!!o&&za(o)&&Vc(f,o)&&(Pt(t)||Ka(t)))}function uI(t,r){return t!=null&&oI(t,r,aI)}var lI=1,cI=2;function fI(t,r){return Ja(t)&&nf(r)?rf(as(t),r):function(i){var s=Zc(i,t);return s===void 0&&s===r?uI(i,t):Za(r,s,lI|cI)}}function sf(t){return function(r){return r?.[t]}}function hI(t){return function(r){return Qc(r,t)}}function pI(t){return Ja(t)?sf(as(t)):hI(t)}function af(t){return typeof t=="function"?t:t==null?ns:typeof t=="object"?Pt(t)?fI(t[0],t[1]):sI(t):pI(t)}function dI(t,r,i,s){for(var o=-1,l=t==null?0:t.length;++o<l;){var f=t[o];r(s,f,i(f),t)}return s}function EI(t){return function(r,i,s){for(var o=-1,l=Object(r),f=s(r),d=f.length;d--;){var m=f[++o];if(i(l[m],m,l)===!1)break}return r}}var of=EI();function _I(t,r){return t&&of(t,r,Ya)}function gI(t,r){return function(i,s){if(i==null)return i;if(!rs(i))return t(i,s);for(var o=i.length,l=-1,f=Object(i);++l<o&&s(f[l],l,f)!==!1;);return i}}var NI=gI(_I);function TI(t,r,i,s){return NI(t,function(o,l,f){r(s,o,i(o),f)}),s}function vI(t,r){return function(i,s){var o=Pt(i)?dI:TI,l=r?r():{};return o(i,t,af(s),l)}}function bI(t){return Fn(t)&&rs(t)}function me(t){var r=t==null?0:t.length;return r?t[r-1]:void 0}function mI(t){return typeof t=="function"?t:ns}var II=Math.max,AI=Math.min;function wI(t,r,i){var s=t==null?0:t.length;if(!s)return-1;var o=s-1;return i!==void 0&&(o=iv(i),o=i<0?II(s+o,0):AI(o,s-1)),Sv(t,af(r),o)}function LI(t){return t&&t.length?t[0]:void 0}function Hr(t,r){return t==null?t:of(t,mI(r),Lb)}var ft=vI(function(t,r,i){t[i?0:1].push(r)},function(){return[[],[]]}),yI=Math.max;function xI(t){if(!(t&&t.length))return[];var r=0;return t=ef(t,function(i){if(bI(i))return r=yI(i.length,r),!0}),Xc(r,function(i){return Cc(t,sf(i))})}var Va=Dv(xI),A=(t=>(t.SPACE="<space>",t.TAB="<tab>",t.NEWLINE="<newline>",t.COMMA="<comma>",t.LPAREN="<lparen>",t.RPAREN="<rparen>",t.LBRACE="<lbrace>",t.RBRACE="<rbrace>",t.LBRACKET="<lbracket>",t.RBRACKET="<rbracket>",t.LANGLE="<langle>",t.RANGLE="<rangle>",t.OP="<op>",t.EOF="<eof>",t.NUMERIC_LITERAL="<number>",t.STRING_LITERAL="<string>",t.COLOR_LITERAL="<color>",t.FUNCTION_EXPRESSION="<function-expression>",t.QUOTED_STRING="<variable>",t.IDENTIFIER="<identifier>",t.SEMICOLON="<semicolon>",t.COLON="<colon>",t.SINGLE_LINE_COMMENT="<single-line-comment>",t.MULTILINE_COMMENT="<multiline-comment>",t))(A||{});function SI(t){switch(t.kind){case"<newline>":case"<space>":case"<tab>":case"<single-line-comment>":case"<multiline-comment>":return!0;default:return!1}}function OI(t){if(!t)return!1;switch(t){case"+":case"-":case"*":case"/":case"%":case"<":case">":case"=":case"!":case".":case"&":case"|":case"~":return!0;default:return!1}}function Tc(t){return t!==void 0&&t.kind==="<op>"}class Ze{constructor(r,i,s,o,l){this.kind=r,this.startPos=i,this.endPos=s,this.value=o,this.leadingTrivia=[],this.trailingTrivia=[],this.leadingInvalid=[],this.trailingInvalid=[],this.isInvalid=l,this.start=i.offset,this.end=s.offset}static create(r,i,s,o,l){return new Ze(r,i,s,o,l)}}function uf(t){return t.trailingTrivia.find(({kind:r})=>r===A.NEWLINE)!==void 0}function vc(t,r){return r.leadingTrivia.find(({kind:s})=>s===A.NEWLINE)!==void 0||uf(t)}function $a(t){return t.trailingTrivia.find(({kind:r})=>[A.SPACE,A.TAB].includes(r))!==void 0}function lf(t){return t.trailingTrivia.length===0?t.end:lf(me(t.trailingTrivia))}function cf(t){return t.leadingTrivia.length===0?t.start:cf(t.leadingTrivia[0])}function PI(t){return[A.SINGLE_LINE_COMMENT,A.MULTILINE_COMMENT].includes(t.kind)}class RI{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}}class Te{constructor(r,i,s){this.id=r,this.kind=i;const o=s.find(f=>f!==void 0&&!Number.isNaN(f.start));o?(this.startPos=o.startPos,this.fullStart=o instanceof Ze?cf(o):o.fullStart):(this.startPos={offset:NaN,column:NaN,line:NaN},this.fullStart=NaN);const l=[...s].reverse().find(f=>f!==void 0&&!Number.isNaN(f.end));l?(this.endPos=l.endPos,this.fullEnd=l instanceof Ze?lf(l):l.fullEnd):(this.endPos={offset:NaN,column:NaN,line:NaN},this.fullEnd=NaN),this.start=this.startPos.offset,this.end=this.endPos.offset}}var kn=(t=>(t.PROGRAM="<program>",t.ELEMENT_DECLARATION="<element-declaration>",t.ATTRIBUTE="<attribute>",t.IDENTIFIER_STREAM="<identifer-stream>",t.LITERAL="<literal>",t.VARIABLE="<variable>",t.PREFIX_EXPRESSION="<prefix-expression>",t.INFIX_EXPRESSION="<infix-expression>",t.POSTFIX_EXPRESSION="<postfix-expression>",t.FUNCTION_EXPRESSION="<function-expression>",t.FUNCTION_APPLICATION="<function-application>",t.BLOCK_EXPRESSION="<block-expression>",t.LIST_EXPRESSION="<list-expression>",t.TUPLE_EXPRESSION="<tuple-expression>",t.CALL_EXPRESSION="<call-expression>",t.PRIMARY_EXPRESSION="<primary-expression>",t.GROUP_EXPRESSION="<group-expression>",t.DUMMY="<dummy>",t.ARRAY="<array>",t))(kn||{});class qe extends Te{constructor({body:r=[],eof:i},s){super(s,"<program>",[...r,i]),this.body=r,this.eof=i}}class se extends Te{constructor({type:r,name:i,as:s,alias:o,attributeList:l,bodyColon:f,body:d},m){if(super(m,"<element-declaration>",[r,i,s,o,l,f,d]),d&&f&&!(d instanceof W||d instanceof se))throw new Error("If an element has a simple body, it must be a function application node");this.type=r,this.name=i,this.as=s,this.alias=o,this.attributeList=l,this.bodyColon=f,this.body=d}}class xt extends Te{constructor({identifiers:r=[]},i){super(i,"<identifer-stream>",r||[]),this.identifiers=r}}class St extends Te{constructor({name:r,colon:i,value:s},o){super(o,"<attribute>",[r,i,s]),this.name=r,this.value=s,this.colon=i}}class je extends Te{constructor({op:r,expression:i},s){super(s,"<prefix-expression>",[r,i]),this.op=r,this.expression=i}}class Vt extends Te{constructor({op:r,leftExpression:i,rightExpression:s},o){super(o,"<infix-expression>",[i,r,s]),this.op=r,this.leftExpression=i,this.rightExpression=s}}class os extends Te{constructor({op:r,expression:i},s){super(s,"<postfix-expression>",[i,r]),this.op=r,this.expression=i}}class bt extends Te{constructor({value:r},i){super(i,"<function-expression>",[r]),this.value=r}}class W extends Te{constructor({callee:r,args:i=[]},s){super(s,"<function-application>",[r,...i]),this.callee=r,this.args=i}}class ke extends Te{constructor({blockOpenBrace:r,body:i=[],blockCloseBrace:s},o){super(o,"<block-expression>",[r,...i,s]),this.blockOpenBrace=r,this.body=i,this.blockCloseBrace=s}}class _e extends Te{constructor({listOpenBracket:r,elementList:i=[],commaList:s=[],listCloseBracket:o},l){super(l,"<list-expression>",[r,...ff(i,s),o]),this.listOpenBracket=r,this.elementList=i,this.commaList=s,this.listCloseBracket=o}}class Wt extends Te{constructor({tupleOpenParen:r,elementList:i=[],commaList:s=[],tupleCloseParen:o},l){super(l,"<tuple-expression>",[r,...ff(i,s),o]),this.tupleOpenParen=r,this.elementList=i,this.commaList=s,this.tupleCloseParen=o}}class ja extends Wt{constructor({groupOpenParen:r,expression:i,groupCloseParen:s},o){super({tupleOpenParen:r,elementList:i&&[i],commaList:[],tupleCloseParen:s},o),this.kind="<group-expression>"}}class He extends Te{constructor({callee:r,argumentList:i},s){super(s,"<call-expression>",[r,i]),this.callee=r,this.argumentList=i}}class cr extends Te{constructor({literal:r},i){super(i,"<literal>",[r]),this.literal=r}}class ln extends Te{constructor({variable:r},i){super(i,"<variable>",[r]),this.variable=r}}class lt extends Te{constructor({expression:r},i){super(i,"<primary-expression>",[r]),this.expression=r}}class Br extends Te{constructor({pre:r},i){const s=Ze.create(A.SPACE,r.endPos,r.endPos," ",!1);super(i,"<dummy>",[s])}}class Bt extends Te{constructor({expression:r,indexer:i},s){super(s,"<array>",[r,i]),this.array=r,this.indexer=i}}function ff(t,r){if(!t||t.length===0)return r||[];if(!r||r.length===0)return t||[];const[i]=t,[s]=r;return(i.start<s.start?ac(Va(t,r)):ac(Va(r,t))).filter(o=>o!==null)}function DI(t,r=!1){return JSON.stringify(t,function(i,s){return!(this instanceof qe)&&i==="symbol"?s?.id:i==="symbol"?{symbolTable:s?.symbolTable,id:s?.id,references:s?.references.map(o=>o.id),declaration:s?.declaration?.id}:i==="referee"||i==="parent"||i==="declaration"?s?.id:i==="symbolTable"?Object.fromEntries(s.table):s},r?2:0)}class MI{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}}class eo{constructor({symbolTable:r},i){this.references=[],this.id=i,this.symbolTable=r}}class hf{constructor({symbolTable:r,declaration:i},s){this.references=[],this.id=s,this.symbolTable=r,this.declaration=i}}class pf{constructor({declaration:r},i){this.references=[],this.id=i,this.declaration=r}}class qr{constructor({symbolTable:r,declaration:i},s){this.references=[],this.id=s,this.symbolTable=r,this.declaration=i}}class to{constructor({declaration:r},i){this.references=[],this.id=i,this.declaration=r}}class df{constructor({symbolTable:r,declaration:i},s){this.references=[],this.id=s,this.symbolTable=r,this.declaration=i}}class Ef{constructor({declaration:r},i){this.references=[],this.id=i,this.declaration=r}}class _f{constructor({symbolTable:r,declaration:i},s){this.references=[],this.id=s,this.symbolTable=r,this.declaration=i}}class gf{constructor({symbolTable:r,declaration:i},s){this.references=[],this.id=s,this.symbolTable=r,this.declaration=i}}class Nf{constructor({declaration:r,tablePartialSymbol:i},s){this.references=[],this.id=s,this.declaration=r,this.tablePartialSymbol=i}}var _=(t=>(t[t.UNKNOWN_SYMBOL=1e3]="UNKNOWN_SYMBOL",t[t.UNEXPECTED_SYMBOL=1001]="UNEXPECTED_SYMBOL",t[t.UNEXPECTED_EOF=1002]="UNEXPECTED_EOF",t[t.UNEXPECTED_NEWLINE=1003]="UNEXPECTED_NEWLINE",t[t.UNKNOWN_TOKEN=1004]="UNKNOWN_TOKEN",t[t.UNEXPECTED_TOKEN=1005]="UNEXPECTED_TOKEN",t[t.UNEXPECTED_ELEMENT_DECLARATION=1006]="UNEXPECTED_ELEMENT_DECLARATION",t[t.MISSING_SPACES=1007]="MISSING_SPACES",t[t.UNKNOWN_PREFIX_OP=1008]="UNKNOWN_PREFIX_OP",t[t.INVALID_OPERAND=1009]="INVALID_OPERAND",t[t.EMPTY_ATTRIBUTE_NAME=1010]="EMPTY_ATTRIBUTE_NAME",t[t.INVALID_ESCAPE_SEQUENCE=1011]="INVALID_ESCAPE_SEQUENCE",t[t.INVALID_NAME=3e3]="INVALID_NAME",t[t.UNEXPECTED_NAME=3001]="UNEXPECTED_NAME",t[t.NAME_NOT_FOUND=3002]="NAME_NOT_FOUND",t[t.DUPLICATE_NAME=3003]="DUPLICATE_NAME",t[t.INVALID_ALIAS=3004]="INVALID_ALIAS",t[t.UNEXPECTED_ALIAS=3005]="UNEXPECTED_ALIAS",t[t.UNEXPECTED_SETTINGS=3006]="UNEXPECTED_SETTINGS",t[t.INVALID_SETTINGS=3007]="INVALID_SETTINGS",t[t.UNEXPECTED_SIMPLE_BODY=3008]="UNEXPECTED_SIMPLE_BODY",t[t.UNEXPECTED_COMPLEX_BODY=3009]="UNEXPECTED_COMPLEX_BODY",t[t.INVALID_TABLE_CONTEXT=3010]="INVALID_TABLE_CONTEXT",t[t.UNKNOWN_TABLE_SETTING=3011]="UNKNOWN_TABLE_SETTING",t[t.DUPLICATE_TABLE_SETTING=3012]="DUPLICATE_TABLE_SETTING",t[t.INVALID_TABLEGROUP_CONTEXT=3013]="INVALID_TABLEGROUP_CONTEXT",t[t.INVALID_TABLEGROUP_ELEMENT_NAME=3014]="INVALID_TABLEGROUP_ELEMENT_NAME",t[t.DUPLICATE_TABLEGROUP_ELEMENT_NAME=3015]="DUPLICATE_TABLEGROUP_ELEMENT_NAME",t[t.DUPLICATE_TABLEGROUP_FIELD_NAME=3016]="DUPLICATE_TABLEGROUP_FIELD_NAME",t[t.INVALID_TABLEGROUP_FIELD=3017]="INVALID_TABLEGROUP_FIELD",t[t.EMPTY_TABLE=3018]="EMPTY_TABLE",t[t.INVALID_COLUMN=3019]="INVALID_COLUMN",t[t.INVALID_COLUMN_NAME=3020]="INVALID_COLUMN_NAME",t[t.UNKNOWN_COLUMN_SETTING=3021]="UNKNOWN_COLUMN_SETTING",t[t.INVALID_COLUMN_TYPE=3022]="INVALID_COLUMN_TYPE",t[t.DUPLICATE_COLUMN_NAME=3023]="DUPLICATE_COLUMN_NAME",t[t.DUPLICATE_COLUMN_SETTING=3024]="DUPLICATE_COLUMN_SETTING",t[t.INVALID_COLUMN_SETTING_VALUE=3025]="INVALID_COLUMN_SETTING_VALUE",t[t.INVALID_ENUM_CONTEXT=3026]="INVALID_ENUM_CONTEXT",t[t.INVALID_ENUM_ELEMENT_NAME=3027]="INVALID_ENUM_ELEMENT_NAME",t[t.INVALID_ENUM_ELEMENT=3028]="INVALID_ENUM_ELEMENT",t[t.DUPLICATE_ENUM_ELEMENT_NAME=3029]="DUPLICATE_ENUM_ELEMENT_NAME",t[t.UNKNOWN_ENUM_ELEMENT_SETTING=3030]="UNKNOWN_ENUM_ELEMENT_SETTING",t[t.DUPLICATE_ENUM_ELEMENT_SETTING=3031]="DUPLICATE_ENUM_ELEMENT_SETTING",t[t.INVALID_ENUM_ELEMENT_SETTING=3032]="INVALID_ENUM_ELEMENT_SETTING",t[t.EMPTY_ENUM=3033]="EMPTY_ENUM",t[t.INVALID_REF_CONTEXT=3034]="INVALID_REF_CONTEXT",t[t.UNKNOWN_REF_SETTING=3035]="UNKNOWN_REF_SETTING",t[t.DUPLICATE_REF_SETTING=3036]="DUPLICATE_REF_SETTING",t[t.INVALID_REF_SETTING_VALUE=3037]="INVALID_REF_SETTING_VALUE",t[t.INVALID_REF_RELATIONSHIP=3038]="INVALID_REF_RELATIONSHIP",t[t.INVALID_REF_FIELD=3039]="INVALID_REF_FIELD",t[t.EMPTY_REF=3040]="EMPTY_REF",t[t.REF_REDEFINED=3041]="REF_REDEFINED",t[t.INVALID_NOTE_CONTEXT=3042]="INVALID_NOTE_CONTEXT",t[t.INVALID_NOTE=3043]="INVALID_NOTE",t[t.NOTE_REDEFINED=3044]="NOTE_REDEFINED",t[t.NOTE_CONTENT_REDEFINED=3045]="NOTE_CONTENT_REDEFINED",t[t.EMPTY_NOTE=3046]="EMPTY_NOTE",t[t.INVALID_INDEXES_CONTEXT=3047]="INVALID_INDEXES_CONTEXT",t[t.INVALID_INDEXES_FIELD=3048]="INVALID_INDEXES_FIELD",t[t.INVALID_INDEX=3049]="INVALID_INDEX",t[t.UNKNOWN_INDEX_SETTING=3050]="UNKNOWN_INDEX_SETTING",t[t.DUPLICATE_INDEX_SETTING=3051]="DUPLICATE_INDEX_SETTING",t[t.UNEXPECTED_INDEX_SETTING_VALUE=3052]="UNEXPECTED_INDEX_SETTING_VALUE",t[t.INVALID_INDEX_SETTING_VALUE=3053]="INVALID_INDEX_SETTING_VALUE",t[t.INVALID_PROJECT_CONTEXT=3054]="INVALID_PROJECT_CONTEXT",t[t.PROJECT_REDEFINED=3055]="PROJECT_REDEFINED",t[t.INVALID_PROJECT_FIELD=3056]="INVALID_PROJECT_FIELD",t[t.INVALID_CUSTOM_CONTEXT=3057]="INVALID_CUSTOM_CONTEXT",t[t.INVALID_CUSTOM_ELEMENT_VALUE=3058]="INVALID_CUSTOM_ELEMENT_VALUE",t[t.INVALID_ELEMENT_IN_SIMPLE_BODY=3059]="INVALID_ELEMENT_IN_SIMPLE_BODY",t[t.INVALID_TABLE_PARTIAL_CONTEXT=3060]="INVALID_TABLE_PARTIAL_CONTEXT",t[t.INVALID_TABLE_PARTIAL_ELEMENT_NAME=3061]="INVALID_TABLE_PARTIAL_ELEMENT_NAME",t[t.INVALID_TABLE_PARTIAL_SETTING_VALUE=3062]="INVALID_TABLE_PARTIAL_SETTING_VALUE",t[t.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME=3063]="DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME",t[t.DUPLICATE_TABLE_PARTIAL_SETTING=3064]="DUPLICATE_TABLE_PARTIAL_SETTING",t[t.INVALID_TABLE_PARTIAL_INJECTION=3065]="INVALID_TABLE_PARTIAL_INJECTION",t[t.INVALID_TABLE_PARTIAL_INJECTION_OP=3066]="INVALID_TABLE_PARTIAL_INJECTION_OP",t[t.INVALID_TABLE_PARTIAL_INJECTION_NAME=3067]="INVALID_TABLE_PARTIAL_INJECTION_NAME",t[t.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME=3068]="DUPLICATE_TABLE_PARTIAL_INJECTION_NAME",t[t.UNKNOWN_TABLE_PARTIAL_SETTING=3069]="UNKNOWN_TABLE_PARTIAL_SETTING",t[t.INVALID_TABLE_SETTING_VALUE=3070]="INVALID_TABLE_SETTING_VALUE",t[t.INVALID_CHECKS_CONTEXT=3071]="INVALID_CHECKS_CONTEXT",t[t.INVALID_CHECKS_FIELD=3072]="INVALID_CHECKS_FIELD",t[t.INVALID_CHECK=3073]="INVALID_CHECK",t[t.UNKNOWN_CHECK_SETTING=3074]="UNKNOWN_CHECK_SETTING",t[t.DUPLICATE_CHECK_SETTING=3075]="DUPLICATE_CHECK_SETTING",t[t.INVALID_CHECK_SETTING_VALUE=3076]="INVALID_CHECK_SETTING_VALUE",t[t.BINDING_ERROR=4e3]="BINDING_ERROR",t[t.UNSUPPORTED=5e3]="UNSUPPORTED",t[t.CIRCULAR_REF=5001]="CIRCULAR_REF",t[t.SAME_ENDPOINT=5002]="SAME_ENDPOINT",t[t.UNEQUAL_FIELDS_BINARY_REF=5003]="UNEQUAL_FIELDS_BINARY_REF",t[t.CONFLICTING_SETTING=5004]="CONFLICTING_SETTING",t[t.TABLE_REAPPEAR_IN_TABLEGROUP=5005]="TABLE_REAPPEAR_IN_TABLEGROUP",t))(_||{});class g extends Error{constructor(r,i,s){super(i),this.code=r,this.diagnostic=i,this.nodeOrToken=s,this.start=s.start,this.end=s.end,this.name=this.constructor.name,Object.setPrototypeOf(this,g.prototype)}}class ct{constructor(r,i){this.value=r,this.errors=i===void 0?[]:i}getValue(){return this.value}getErrors(){return this.errors}chain(r){const i=r(this.value),s=[...this.errors,...i.errors];return new ct(i.value,s)}map(r){return new ct(r(this.value),this.errors)}}function Yr(t){return!!t.match(new RegExp("(\\p{L}|_|\\p{M})","gu"))}function or(t){if(!t)return!1;const r=t[0];return r>="0"&&r<="9"}function UI(t){const[r]=t;return or(r)||Yr(r)&&r.toLowerCase()>="a"&&r.toLowerCase()<="f"}function Un(t){return Yr(t)||or(t)}function kI(t){return t.split("").every(Un)?t:`"${t}"`}function bc(t,r){const i=[],s=Math.min(t.length,r.length);for(let o=0;o<s;o+=1)i.push(t[o],r[o]);return i.push(...t.slice(s),...r.slice(s)),i}function $r(t,r){return t>=r.start&&t<r.end}function Wa(t){return t instanceof je?`${t.op?.value}${Wa(t.expression)}`:t.expression.literal.value}function Xa(t){return t instanceof je?t.op?.value==="-"?-Xa(t.expression):Xa(t.expression):Number.parseFloat(t.expression.literal.value)}class ye{constructor(r){this.value=r}unwrap(){return this.value}unwrap_or(r){return this.value}and_then(r){return r(this.value)}map(r){return new ye(r(this.value))}isOk(){return!0}}class pe{constructor(){this.value=void 0}unwrap(){throw new Error("Trying to unwrap a None value")}unwrap_or(r){return r}and_then(r){return new pe}map(r){return new pe}isOk(){return!1}}const FI=["null","true","false"],Tf=["-","+"],$t="public";var F=(t=>(t.Table="table",t.Enum="enum",t.Ref="ref",t.Note="note",t.Project="project",t.Indexes="indexes",t.TableGroup="tablegroup",t.TablePartial="tablepartial",t.Check="checks",t))(F||{}),P=(t=>(t.Color="color",t.HeaderColor="headercolor",t.Note="note",t.PK="pk",t.PrimaryKey="primary key",t.Unique="unique",t.Ref="ref",t.NotNull="not null",t.Null="null",t.Increment="increment",t.Default="default",t.Name="name",t.Type="type",t.Check="check",t.Update="update",t.Delete="delete",t))(P||{});class CI{constructor(r,i,s){this.declarationNode=r,this.publicSymbolTable=i,this.symbolFactory=s}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof qe||cn(this.declarationNode.parent).unwrap_or(void 0)!==F.Project?[new g(_.INVALID_CUSTOM_CONTEXT,"A Custom element can only appear in a Project",this.declarationNode)]:[]}validateName(r){return r?[new g(_.UNEXPECTED_NAME,"A Custom element shouldn't have a name",r)]:[]}validateAlias(r){return r?[new g(_.UNEXPECTED_NAME,"A Custom element shouldn't have an alias",r)]:[]}validateSettingList(r){return r?[new g(_.UNEXPECTED_SETTINGS,"A Custom element shouldn't have a setting list",r)]:[]}validateBody(r){if(!r)return[];if(r instanceof ke)return[new g(_.UNEXPECTED_COMPLEX_BODY,"A Custom element can only have an inline field",r)];const i=[];return Fe(r.callee)||i.push(new g(_.INVALID_CUSTOM_ELEMENT_VALUE,"A Custom element value can only be a string",r)),r.args.length>0&&i.push(...r.args.map(s=>new g(_.INVALID_CUSTOM_ELEMENT_VALUE,"A Custom element value can only be a string",s))),i}}var U=(t=>(t.Schema="Schema",t.Table="Table",t.Column="Column",t.TableGroup="TableGroup",t.TableGroupField="TableGroup field",t.Enum="Enum",t.EnumField="Enum field",t.Note="Note",t.TablePartial="TablePartial",t.PartialInjection="PartialInjection",t))(U||{});function Jr(t){return`Schema:${t}`}function ur(t){return`Table:${t}`}function fr(t){return`Column:${t}`}function no(t){return`Enum:${t}`}function ro(t){return`Enum field:${t}`}function io(t){return`TableGroup:${t}`}function so(t){return`TableGroup field:${t}`}function BI(t){return`Note:${t}`}function ao(t){return`TablePartial:${t}`}function oo(t){return`PartialInjection:${t}`}function GI(t,r){switch(r){case"Column":return fr(t);case"Enum":return no(t);case"Enum field":return ro(t);case"Schema":return Jr(t);case"Table":return ur(t);case"TableGroup":return io(t);case"TableGroup field":return so(t);case"TablePartial":return ao(t);case"PartialInjection":return oo(t);default:throw new Error("Unreachable")}}function Qr(t){const[r,i]=t.split(":");return Object.values(U).includes(r)?new ye({name:i,kind:r}):new pe}class Bn{constructor(){this.table=new Map}has(r){return this.table.has(r)}set(r,i){this.table.set(r,i)}get(r,i){return this.table.get(r)||i!==void 0&&this.set(r,i)||i}entries(){return this.table.entries()}forEach(r){return this.table.forEach(r)}}class VI{constructor(r,i,s){this.declarationNode=r,this.publicSymbolTable=i,this.symbolFactory=s}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.registerElement(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof se?[new g(_.INVALID_PROJECT_CONTEXT,"An Enum can only appear top-level",this.declarationNode)]:[]}validateName(r){return r?vf(r)?[]:[new g(_.INVALID_NAME,"An Enum name must be of the form <enum> or <schema>.<enum>",r)]:[new g(_.NAME_NOT_FOUND,"An Enum must have a name",this.declarationNode)]}validateAlias(r){return r?[new g(_.UNEXPECTED_ALIAS,"An Enum shouldn't have an alias",r)]:[]}registerElement(){const r=[];this.declarationNode.symbol=this.symbolFactory.create(hf,{declaration:this.declarationNode,symbolTable:new Bn});const{name:i}=this.declarationNode,s=Ge(i);if(s.isOk()){const o=s.unwrap(),l=o.pop(),f=us(o,this.publicSymbolTable,this.symbolFactory),d=no(l);f.has(d)&&r.push(new g(_.DUPLICATE_NAME,`Enum name ${l} already exists in schema '${o.join(".")||$t}'`,i)),f.set(d,this.declarationNode.symbol)}return r}validateSettingList(r){return r?[new g(_.UNEXPECTED_SETTINGS,"An Enum shouldn't have a setting list",r)]:[]}validateBody(r){if(!r)return[];if(r instanceof W)return this.validateFields([r]);const[i,s]=ft(r.body,o=>o instanceof W);return[...this.validateFields(i),...this.validateSubElements(s)]}validateFields(r){return r.length===0?[new g(_.EMPTY_ENUM,"An Enum must have at least one element",this.declarationNode)]:r.flatMap(i=>{const s=[];i.callee&&!we(i.callee)&&s.push(new g(_.INVALID_ENUM_ELEMENT_NAME,"An enum field must be an identifier or a quoted identifier",i.callee));const o=[...i.args];return me(o)instanceof _e?(s.push(...this.validateFieldSettings(me(o))),o.pop()):o[0]instanceof _e&&(s.push(...this.validateFieldSettings(o[0])),o.shift()),o.length>0&&s.push(...o.map(l=>new g(_.INVALID_ENUM_ELEMENT,"An Enum must have only a field and optionally a setting list",l))),s.push(...this.registerField(i)),s})}validateFieldSettings(r){const i=Ne(r),s=i.getErrors(),o=i.getValue();for(const l in o){const f=o[l];switch(l){case"note":f.length>1&&f.forEach(d=>s.push(new g(_.DUPLICATE_ENUM_ELEMENT_SETTING,"'note' can only appear once",d))),f.forEach(d=>{Fe(d.value)||s.push(new g(_.INVALID_ENUM_ELEMENT_SETTING,"'note' must be a string",d))});break;default:f.forEach(d=>s.push(new g(_.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${l}'`,d)))}}return s}validateSubElements(r){return r.flatMap(i=>{if(i.parent=this.declarationNode,!i.type)return[];const s=Xt(i);return new s(i,this.publicSymbolTable,this.symbolFactory).validate()})}registerField(r){if(r.callee&&we(r.callee)){const i=Me(r.callee).unwrap(),s=ro(i),o=this.symbolFactory.create(pf,{declaration:r});r.symbol=o;const l=this.declarationNode.symbol.symbolTable;if(l.has(s)){const f=l.get(s);return[new g(_.DUPLICATE_COLUMN_NAME,`Duplicate enum field ${i}`,r),new g(_.DUPLICATE_COLUMN_NAME,`Duplicate enum field ${i}`,f.declaration)]}l.set(s,o)}return[]}}class $I{constructor(r,i,s){this.declarationNode=r,this.publicSymbolTable=i,this.symbolFactory=s}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){const r=new g(_.INVALID_INDEXES_CONTEXT,"An Indexes can only appear inside a Table or a TablePartial",this.declarationNode);if(this.declarationNode.parent instanceof qe)return[r];const i=cn(this.declarationNode.parent).unwrap_or(void 0);return i&&[F.Table,F.TablePartial].includes(i)?[]:[r]}validateName(r){return r?[new g(_.UNEXPECTED_NAME,"An Indexes shouldn't have a name",r)]:[]}validateAlias(r){return r?[new g(_.UNEXPECTED_ALIAS,"An Indexes shouldn't have an alias",r)]:[]}validateSettingList(r){return r?[new g(_.UNEXPECTED_SETTINGS,"An Indexes shouldn't have a setting list",r)]:[]}validateBody(r){if(!r)return[];if(r instanceof W)return[new g(_.UNEXPECTED_SIMPLE_BODY,"An Indexes must have a complex body",r)];const[i,s]=ft(r.body,o=>o instanceof W);return[...this.validateFields(i),...this.validateSubElements(s)]}validateFields(r){return r.flatMap(i=>{if(!i.callee)return[];const s=[],o=[i.callee,...i.args];return me(o)instanceof _e&&s.push(...this.validateFieldSetting(o.pop())),o.forEach(l=>{for(;l instanceof He;)l.argumentList&&!Qi(l.argumentList).isOk()&&s.push(new g(_.INVALID_INDEXES_FIELD,"An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such",l.argumentList)),l=l.callee;Qi(l).isOk()||s.push(new g(_.INVALID_INDEXES_FIELD,"An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such",l))}),s})}validateFieldSetting(r){const i=Ne(r),s=i.getErrors(),o=i.getValue();for(const l in o){const f=o[l];switch(l){case"note":case"name":f.length>1&&f.forEach(d=>s.push(new g(_.DUPLICATE_INDEX_SETTING,`'${l}' can only appear once`,d))),f.forEach(d=>{Fe(d.value)||s.push(new g(_.INVALID_INDEX_SETTING_VALUE,`'${l}' must be a string`,d))});break;case"unique":case"pk":f.length>1&&f.forEach(d=>s.push(new g(_.DUPLICATE_INDEX_SETTING,`'${l}' can only appear once`,d))),f.forEach(d=>{ot(d.value)||s.push(new g(_.INVALID_INDEX_SETTING_VALUE,`'${l}' must not have a value`,d))});break;case"type":f.length>1&&f.forEach(d=>s.push(new g(_.DUPLICATE_INDEX_SETTING,"'type' can only appear once",d))),f.forEach(d=>{we(d.value)||s.push(new g(_.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,d))});break;default:f.forEach(d=>s.push(new g(_.UNKNOWN_INDEX_SETTING,`Unknown index setting '${l}'`,d)))}}return s}validateSubElements(r){return r.flatMap(i=>{if(i.parent=this.declarationNode,!i.type)return[];const s=Xt(i);return new s(i,this.publicSymbolTable,this.symbolFactory).validate()})}}class WI{constructor(r,i,s){this.declarationNode=r,this.publicSymbolTable=i,this.symbolFactory=s}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return!(this.declarationNode.parent instanceof qe)&&![F.Table,F.TableGroup,F.TablePartial,F.Project].includes(cn(this.declarationNode.parent).unwrap_or(void 0))?[new g(_.INVALID_NOTE_CONTEXT,"A Note can only appear inside a Table, a TableGroup, a TablePartial or a Project. Sticky note can only appear at the global scope.",this.declarationNode)]:[]}validateName(r){if(!(this.declarationNode.parent instanceof qe))return r?[new g(_.UNEXPECTED_NAME,"A Note shouldn't have a name",r)]:[];if(!r)return[new g(_.INVALID_NAME,"Sticky note must have a name",this.declarationNode)];const i=Ge(r);if(!i.isOk())return[new g(_.INVALID_NAME,"Invalid name for sticky note ",this.declarationNode)];const o=i.unwrap().join("."),l=BI(o);return this.publicSymbolTable.has(l)?[new g(_.DUPLICATE_NAME,`Sticky note "${o}" has already been defined`,r)]:(this.publicSymbolTable.set(l,this.declarationNode.symbol),[])}validateAlias(r){return r?[new g(_.UNEXPECTED_ALIAS,"A Ref shouldn't have an alias",r)]:[]}validateSettingList(r){return r?[new g(_.UNEXPECTED_SETTINGS,"A Note shouldn't have a setting list",r)]:[]}validateBody(r){if(!r)return[];if(r instanceof W)return this.validateFields([r]);const[i,s]=ft(r.body,o=>o instanceof W);return[...this.validateFields(i),...this.validateSubElements(s)]}validateFields(r){const i=[];return r.length===0?[new g(_.EMPTY_NOTE,"A Note must have a content",this.declarationNode)]:(r.length>1&&r.slice(1).forEach(s=>i.push(new g(_.NOTE_CONTENT_REDEFINED,"A Note can only contain one string",s))),Fe(r[0].callee)||i.push(new g(_.INVALID_NOTE,"A Note content must be a quoted string",r[0])),r[0].args.length>0&&i.push(...r[0].args.map(s=>new g(_.INVALID_NOTE,"A Note can only contain one quoted string",s))),i)}validateSubElements(r){return r.flatMap(i=>{if(i.parent=this.declarationNode,!i.type)return[];const s=Xt(i);return new s(i,this.publicSymbolTable,this.symbolFactory).validate()})}}class XI{constructor(r,i,s){this.declarationNode=r,this.publicSymbolTable=i,this.symbolFactory=s}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof se?[new g(_.INVALID_PROJECT_CONTEXT,"A Project can only appear top-level",this.declarationNode)]:[]}validateName(r){return r?hr(r)?[]:[new g(_.INVALID_NAME,"A Project's name is optional or must be an identifier or a quoted identifer",r)]:[]}validateAlias(r){return r?[new g(_.UNEXPECTED_ALIAS,"A Project shouldn't have an alias",r)]:[]}validateSettingList(r){return r?[new g(_.UNEXPECTED_SETTINGS,"A Project shouldn't have a setting list",r)]:[]}validateBody(r){if(!r)return[];if(r instanceof W)return[new g(_.UNEXPECTED_SIMPLE_BODY,"A Project's body must be a block",r)];const[i,s]=ft(r.body,o=>o instanceof W);return[...i.map(o=>new g(_.INVALID_PROJECT_FIELD,"A Project can not have inline fields",o)),...this.validateSubElements(s)]}validateSubElements(r){return r.flatMap(i=>{if(i.parent=this.declarationNode,!i.type)return[];const s=Xt(i);return new s(i,this.publicSymbolTable,this.symbolFactory).validate()})}}class HI{constructor(r,i,s){this.declarationNode=r,this.publicSymbolTable=i,this.symbolFactory=s}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof qe?[]:[new g(_.INVALID_REF_CONTEXT,"A Ref must appear top-level",this.declarationNode)]}validateName(r){return r?hr(r)?[]:[new g(_.INVALID_NAME,"A Ref's name is optional or must be an identifier or a quoted identifer",r)]:[]}validateAlias(r){return r?[new g(_.UNEXPECTED_ALIAS,"A Ref shouldn't have an alias",r)]:[]}validateSettingList(r){return r?[new g(_.UNEXPECTED_SETTINGS,"A Ref shouldn't have a setting list",r)]:[]}validateBody(r){if(!r)return[];if(r instanceof W)return this.validateFields([r]);const[i,s]=ft(r.body,o=>o instanceof W);return[...this.validateFields(i),...this.validateSubElements(s)]}validateFields(r){if(r.length===0)return[new g(_.EMPTY_REF,"A Ref must have at least one field",this.declarationNode)];const i=[];return r.length>1&&i.push(...r.slice(1).map(s=>new g(_.REF_REDEFINED,"A Ref can only contain one binary relationship",s))),r.forEach(s=>{if(s.callee&&!mc(s.callee)&&i.push(new g(_.INVALID_REF_FIELD,"A Ref field must be a binary relationship",s.callee)),s.callee&&mc(s.callee)){const l=ut(s.callee.leftExpression).unwrap_or({variables:[],tupleElements:[]}),f=l.variables.length+Math.min(l.tupleElements.length,1),d=ut(s.callee.rightExpression).unwrap_or({variables:[],tupleElements:[]}),m=d.variables.length+Math.min(d.tupleElements.length,1);f<2&&i.push(new g(_.INVALID_REF_FIELD,"Invalid column reference",s.callee.leftExpression||s.callee)),m<2&&i.push(new g(_.INVALID_REF_FIELD,"Invalid column reference",s.callee.rightExpression||s.callee))}s.callee&&!eA(s.callee)&&i.push(new g(_.UNEQUAL_FIELDS_BINARY_REF,"Unequal fields in ref endpoints",s.callee));const o=[...s.args];if(me(o)instanceof _e){const l=this.validateFieldSettings(me(o));i.push(...l),o.pop()}else o[0]instanceof _e&&(i.push(...this.validateFieldSettings(o[0])),o.shift());o.length>0&&i.push(...o.map(l=>new g(_.INVALID_REF_FIELD,"A Ref field should only have a single binary relationship",l)))}),i}validateFieldSettings(r){const i=Ne(r),s=i.getErrors(),o=i.getValue();for(const l in o){const f=o[l];switch(l){case"delete":case"update":f.length>1&&f.forEach(d=>s.push(new g(_.DUPLICATE_REF_SETTING,`'${l}' can only appear once`,d))),f.forEach(d=>{qI(d.value)||s.push(new g(_.INVALID_REF_SETTING_VALUE,`'${l}' can only have values "cascade", "no action", "set null", "set default" or "restrict"`,d))});break;case"color":f.length>1&&s.push(...f.map(d=>new g(_.DUPLICATE_REF_SETTING,"'color' can only appear once",d))),f.forEach(d=>{ls(d.value)||s.push(new g(_.INVALID_REF_SETTING_VALUE,"'color' must be a color literal",d))});break;default:f.forEach(d=>s.push(new g(_.UNKNOWN_REF_SETTING,`Unknown ref setting '${l}'`,d)))}}return s}validateSubElements(r){return r.flatMap(i=>{if(i.parent=this.declarationNode,!i.type)return[];const s=Xt(i);return new s(i,this.publicSymbolTable,this.symbolFactory).validate()})}}function qI(t){if(!(we(t)&&t.expression.variable.kind!==A.QUOTED_STRING)&&!(t instanceof xt))return!1;let r;if(t instanceof xt?r=zr(t).unwrap_or(""):r=t.expression.variable.value,r)switch(r.toLowerCase()){case"cascade":case"no action":case"set null":case"set default":case"restrict":return!0;default:return!1}return!1}class zI{constructor(r,i,s){this.declarationNode=r,this.symbolFactory=s,this.publicSymbolTable=i}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.registerElement(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof se?[new g(_.INVALID_TABLE_CONTEXT,"Table must appear top-level",this.declarationNode)]:[]}validateName(r){return r?r instanceof Bt?[new g(_.INVALID_NAME,"Invalid array as Table name, maybe you forget to add a space between the name and the setting list?",r)]:vf(r)?[]:[new g(_.INVALID_NAME,"A Table name must be of the form <table> or <schema>.<table>",r)]:[new g(_.NAME_NOT_FOUND,"A Table must have a name",this.declarationNode)]}validateAlias(r){return r?ZI(r)?[]:[new g(_.INVALID_ALIAS,"Table aliases can only contains alphanumeric and underscore unless surrounded by double quotes",r)]:[]}validateSettingList(r){const i=Ne(r),s=i.getErrors(),o=i.getValue();return Hr(o,(l,f)=>{switch(f){case P.HeaderColor:l.length>1&&s.push(...l.map(d=>new g(_.DUPLICATE_TABLE_SETTING,"'headercolor' can only appear once",d))),l.forEach(d=>{ls(d.value)||s.push(new g(_.INVALID_TABLE_SETTING_VALUE,"'headercolor' must be a color literal",d.value||d.name))});break;case P.Note:l.length>1&&s.push(...l.map(d=>new g(_.DUPLICATE_TABLE_SETTING,"'note' can only appear once",d))),l.forEach(d=>{Fe(d.value)||s.push(new g(_.INVALID_TABLE_SETTING_VALUE,"'note' must be a string literal",d.value||d.name))});break;default:s.push(...l.map(d=>new g(_.UNKNOWN_TABLE_SETTING,`Unknown '${f}' setting`,d)))}}),s}registerElement(){const r=[];this.declarationNode.symbol=this.symbolFactory.create(qr,{declaration:this.declarationNode,symbolTable:new Bn});const{name:i,alias:s}=this.declarationNode,o=Ge(i);if(o.isOk()){const l=[...o.unwrap()],f=l.pop(),d=us(l,this.publicSymbolTable,this.symbolFactory),m=ur(f);d.has(m)&&r.push(new g(_.DUPLICATE_NAME,`Table name '${f}' already exists in schema '${l.join(".")||$t}'`,i)),d.set(m,this.declarationNode.symbol)}if(s&&hr(s)&&!KI(s.expression.variable.value,o.unwrap_or([]))){const l=Me(s).unwrap(),f=ur(l);this.publicSymbolTable.has(f)&&r.push(new g(_.DUPLICATE_NAME,`Table name '${l}' already exists`,i)),this.publicSymbolTable.set(f,this.declarationNode.symbol)}return r}validateBody(r){if(!r)return[];if(r instanceof W)return[new g(_.UNEXPECTED_SIMPLE_BODY,"A Table's body must be a block",r)];const[i,s]=ft(r.body,o=>o instanceof W);return[...this.validateFields(i),...this.validateSubElements(s)]}validateFields(r){const i=o=>{const l=[];if(!o.callee)return[];o.args.length===0&&l.push(new g(_.INVALID_COLUMN,"A column must have a type",o.callee)),we(o.callee)||l.push(new g(_.INVALID_COLUMN_NAME,"A column name must be an identifier or a quoted identifier",o.callee)),o.args[0]&&!Af(o.args[0])&&l.push(new g(_.INVALID_COLUMN_TYPE,"Invalid column type",o.args[0]));const f=o.args.slice(1);return l.push(...this.validateFieldSetting(f)),l.push(...this.registerField(o)),l},s=o=>{const l=[];if(!o.callee)return[];if(!Ji(o.callee))l.push(new g(_.INVALID_TABLE_PARTIAL_INJECTION,"A partial injection should be of the form ~<table-partial>",o.callee));else{const f=Pe(o.callee.expression).unwrap_or(""),d=this.symbolFactory.create(gf,{symbolTable:new Bn,declaration:o}),m=oo(f),I=this.declarationNode.symbol.symbolTable;if(I.has(m)){const T=I.get(m);return[new g(_.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME,`Duplicate table partial injection '${f}'`,o),new g(_.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME,`Duplicate table partial injection '${f}'`,T.declaration)]}I.set(m,d)}return o.args.length&&l.push(...o.args.map(f=>new g(_.INVALID_TABLE_PARTIAL_INJECTION,"A partial injection does not have any trailing attributes",f))),l};return r.flatMap(o=>o.callee instanceof je&&o.callee.op?.value==="~"?s(o):i(o))}registerField(r){if(r.callee&&we(r.callee)){const i=Me(r.callee).unwrap(),s=fr(i),o=this.symbolFactory.create(to,{declaration:r});r.symbol=o;const l=this.declarationNode.symbol.symbolTable;if(l.has(s)){const f=l.get(s);return[new g(_.DUPLICATE_COLUMN_NAME,`Duplicate column ${i}`,r),new g(_.DUPLICATE_COLUMN_NAME,`Duplicate column ${i}`,f.declaration)]}l.set(s,o)}return[]}validateFieldSetting(r){if(!r.slice(0,-1).every(In)||!r.slice(-1).every(m=>In(m)||m instanceof _e))return[...r.map(m=>new g(_.INVALID_COLUMN,"These fields must be some inline settings optionally ended with a setting list",m))];if(r.length===0)return[];let i;me(r)instanceof _e&&(i=r.pop());const s=Ne(i),o=s.getErrors(),l=s.getValue();r.forEach(m=>{const I=Me(m).unwrap_or("").toLowerCase();if(I!=="pk"&&I!=="unique"){o.push(new g(_.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",m));return}l[I]===void 0?l[I]=[m]:l[I].push(m)});const f=l[P.PK]||[],d=l[P.PrimaryKey]||[];return f.length>=1&&d.length>=1&&o.push(...[...f,...d].map(m=>new g(_.DUPLICATE_COLUMN_SETTING,"Either one of 'primary key' and 'pk' can appear",m))),Hr(l,(m,I)=>{switch(I){case P.Note:m.length>1&&o.push(...m.map(T=>new g(_.DUPLICATE_COLUMN_SETTING,"note can only appear once",T))),m.forEach(T=>{Fe(T.value)||o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'note' must be a quoted string",T.value||T.name))});break;case P.Ref:m.forEach(T=>{If(T.value)||o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'ref' must be a valid unary relationship",T.value||T.name))});break;case P.PrimaryKey:m.length>1&&o.push(...m.map(T=>new g(_.DUPLICATE_COLUMN_SETTING,"primary key can only appear once",T))),m.forEach(T=>{ot(T.value)||o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'primary key' must not have a value",T.value||T.name))});break;case P.PK:m.length>1&&o.push(...m.map(T=>new g(_.DUPLICATE_COLUMN_SETTING,"'pk' can only appear once",T))),m.forEach(T=>{T instanceof St&&!ot(T.value)&&o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'pk' must not have a value",T.value||T.name))});break;case P.NotNull:{m.length>1&&o.push(...m.map(y=>new g(_.DUPLICATE_COLUMN_SETTING,"'not null' can only appear once",y)));const T=l[P.Null]||[];m.length>=1&&T.length>=1&&o.push(...[...m,...T].map(y=>new g(_.CONFLICTING_SETTING,"'not null' and 'null' can not be set at the same time",y))),m.forEach(y=>{ot(y.value)||o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'not null' must not have a value",y.value||y.name))});break}case P.Null:m.length>1&&o.push(...m.map(T=>new g(_.DUPLICATE_COLUMN_SETTING,"'null' can only appear once",T))),m.forEach(T=>{ot(T.value)||o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'null' must not have a value",T.value||T.name))});break;case P.Unique:m.length>1&&o.push(...m.map(T=>new g(_.DUPLICATE_COLUMN_SETTING,"'unique' can only appear once",T))),m.forEach(T=>{T instanceof St&&!ot(T.value)&&o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'unique' must not have a value",T.value||T.name))});break;case P.Increment:m.length>1&&o.push(...m.map(T=>new g(_.DUPLICATE_COLUMN_SETTING,"'increment' can only appear once",T))),m.forEach(T=>{T instanceof St&&!ot(T.value)&&o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'increment' must not have a value",T.value||T.name))});break;case P.Default:m.length>1&&o.push(...m.map(T=>new g(_.DUPLICATE_COLUMN_SETTING,"'default' can only appear once",T))),m.forEach(T=>{mf(T.value)||o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'default' must be an enum value, a string literal, number literal, function expression, true, false or null",T.value||T.name))});break;case P.Check:m.forEach(T=>{T.value instanceof bt||o.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'check' must be a function expression",T.value||T.name))});break;default:m.forEach(T=>o.push(new g(_.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${I}'`,T)))}}),o}validateSubElements(r){const i=r.flatMap(o=>{if(o.parent=this.declarationNode,!o.type)return[];const l=Xt(o);return new l(o,this.publicSymbolTable,this.symbolFactory).validate()}),s=r.filter(o=>o.type?.value.toLowerCase()==="note");return s.length>1&&i.push(...s.map(o=>new g(_.NOTE_REDEFINED,"Duplicate notes are defined",o))),i}}function KI(t,r){return r.length===1&&t===r[0]}class YI{constructor(r,i,s){this.declarationNode=r,this.publicSymbolTable=i,this.symbolFactory=s}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.registerElement(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof se?[new g(_.INVALID_TABLEGROUP_CONTEXT,"TableGroup must appear top-level",this.declarationNode)]:[]}validateName(r){return r?hr(r)?[]:[new g(_.INVALID_NAME,"A TableGroup name must be a single identifier",r)]:[new g(_.NAME_NOT_FOUND,"A TableGroup must have a name",this.declarationNode)]}validateAlias(r){return r?[new g(_.UNEXPECTED_ALIAS,"A TableGroup shouldn't have an alias",r)]:[]}registerElement(){const{name:r}=this.declarationNode;this.declarationNode.symbol=this.symbolFactory.create(df,{declaration:this.declarationNode,symbolTable:new Bn});const i=Ge(r);if(i.isOk()){const s=i.unwrap(),o=s.pop(),l=us(s,this.publicSymbolTable,this.symbolFactory),f=io(o);if(l.has(f))return[new g(_.DUPLICATE_NAME,`TableGroup name '${o}' already exists`,r)];l.set(f,this.declarationNode.symbol)}return[]}validateSettingList(r){const i=Ne(r),s=i.getErrors(),o=i.getValue();return Hr(o,(l,f)=>{switch(f){case"color":l.length>1&&s.push(...l.map(d=>new g(_.DUPLICATE_TABLE_SETTING,"'color' can only appear once",d))),l.forEach(d=>{ls(d.value)||s.push(new g(_.INVALID_TABLE_SETTING_VALUE,"'color' must be a color literal",d.value||d.name))});break;case"note":l.length>1&&s.push(...l.map(d=>new g(_.DUPLICATE_TABLE_SETTING,"'note' can only appear once",d))),l.filter(d=>!Fe(d.value)).forEach(d=>{s.push(new g(_.INVALID_TABLE_SETTING_VALUE,"'note' must be a string literal",d.value||d.name))});break;default:s.push(...l.map(d=>new g(_.UNKNOWN_TABLE_SETTING,`Unknown '${f}' setting`,d)));break}}),s}validateBody(r){if(!r)return[];if(r instanceof W)return[new g(_.UNEXPECTED_SIMPLE_BODY,"A TableGroup's body must be a block",r)];const[i,s]=ft(r.body,o=>o instanceof W);return[...this.validateFields(i),...this.validateSubElements(s)]}validateFields(r){return r.flatMap(i=>{const s=[];return i.callee&&!Ge(i.callee).isOk()&&s.push(new g(_.INVALID_TABLEGROUP_FIELD,"A TableGroup field must be of the form <table> or <schema>.<table>",i.callee)),this.registerField(i),i.args.length>0&&s.push(...i.args.map(o=>new g(_.INVALID_TABLEGROUP_FIELD,"A TableGroup field should only have a single Table name",o))),s})}validateSubElements(r){const i=r.flatMap(o=>{if(o.parent=this.declarationNode,!o.type)return[];const l=Xt(o);return new l(o,this.publicSymbolTable,this.symbolFactory).validate()}),s=r.filter(o=>o.type?.value.toLowerCase()==="note");return s.length>1&&i.push(...s.map(o=>new g(_.NOTE_REDEFINED,"Duplicate notes are defined",o))),i}registerField(r){if(r.callee&&we(r.callee)){const i=Me(r.callee).unwrap(),s=so(i),o=this.symbolFactory.create(Ef,{declaration:r});r.symbol=o;const l=this.declarationNode.symbol.symbolTable;if(l.has(s)){const f=l.get(s);return[new g(_.DUPLICATE_TABLEGROUP_FIELD_NAME,`${i} already exists in the group`,r),new g(_.DUPLICATE_TABLEGROUP_FIELD_NAME,`${i} already exists in the group`,f.declaration)]}l.set(s,o)}return[]}}class JI{constructor(r,i,s){this.declarationNode=r,this.symbolFactory=s,this.publicSymbolTable=i}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.registerElement(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof se?[new g(_.INVALID_TABLE_PARTIAL_CONTEXT,"TablePartial must appear top-level",this.declarationNode)]:[]}validateName(r){return r?hr(r)?[]:[new g(_.INVALID_NAME,"A TablePartial name must be an identifier or a quoted identifer",r)]:[new g(_.NAME_NOT_FOUND,"A TablePartial must have a name",this.declarationNode)]}validateAlias(r){return r?[new g(_.UNEXPECTED_ALIAS,"A TablePartial shouldn't have an alias",r)]:[]}validateSettingList(r){const i=Ne(r),s=i.getErrors(),o=i.getValue();return Hr(o,(l,f)=>{switch(f){case P.HeaderColor:l.length>1&&s.push(...l.map(d=>new g(_.DUPLICATE_TABLE_PARTIAL_SETTING,`'${f}' can only appear once`,d))),l.forEach(d=>{ls(d.value)||s.push(new g(_.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${f}' must be a color literal`,d.value||d.name))});break;case P.Note:l.length>1&&s.push(...l.map(d=>new g(_.DUPLICATE_TABLE_PARTIAL_SETTING,`'${f}' can only appear once`,d))),l.forEach(d=>{Fe(d.value)||s.push(new g(_.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${f}' must be a string literal`,d.value||d.name))});break;default:s.push(...l.map(d=>new g(_.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${f}' setting`,d)))}}),s}registerElement(){const{name:r}=this.declarationNode;this.declarationNode.symbol=this.symbolFactory.create(_f,{declaration:this.declarationNode,symbolTable:new Bn});const i=Ge(r);if(!i.isOk())return[];const s=i.unwrap(),o=s.pop(),l=us(s,this.publicSymbolTable,this.symbolFactory),f=ao(o);return l.has(f)?[new g(_.DUPLICATE_NAME,`TablePartial name '${o}' already exists`,r)]:(l.set(f,this.declarationNode.symbol),[])}validateBody(r){if(!r)return[];if(r instanceof W)return[new g(_.UNEXPECTED_SIMPLE_BODY,"A TablePartial's body must be a block",r)];const[i,s]=ft(r.body,o=>o instanceof W);return[...this.validateFields(i),...this.validateSubElements(s)]}validateFields(r){return r.flatMap(i=>{if(!i.callee)return[];const s=[];i.args.length===0&&s.push(new g(_.INVALID_COLUMN,"A column must have a type",i.callee)),we(i.callee)||s.push(new g(_.INVALID_COLUMN_NAME,"A column name must be an identifier or a quoted identifier",i.callee)),i.args[0]&&!Af(i.args[0])&&s.push(new g(_.INVALID_COLUMN_TYPE,"Invalid column type",i.args[0]));const o=i.args.slice(1);return s.push(...this.validateFieldSetting(o),...this.registerField(i)),s})}registerField(r){if(!r.callee||!we(r.callee))return[];const i=Me(r.callee).unwrap(),s=fr(i),o=this.symbolFactory.create(to,{declaration:r});r.symbol=o;const l=this.declarationNode.symbol.symbolTable;if(l.has(s)){const f=l.get(s);return[new g(_.DUPLICATE_COLUMN_NAME,`Duplicate column ${i}`,r),new g(_.DUPLICATE_COLUMN_NAME,`Duplicate column ${i}`,f.declaration)]}return l.set(s,o),[]}validateFieldSetting(r){const i=me(r);if(!r.slice(0,-1).every(In)||!(In(i)||i instanceof _e))return[...r.map(I=>new g(_.INVALID_COLUMN,"These fields must be some inline settings optionally ended with a setting list",I))];if(r.length===0)return[];let s;me(r)instanceof _e&&(s=r.pop());const o=Ne(s),l=o.getErrors(),f=o.getValue();r.forEach(I=>{const T=Me(I).unwrap_or("").toLowerCase();if(T!==P.PK&&T!==P.Unique){l.push(new g(_.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",I));return}f[T]===void 0?f[T]=[I]:f[T].push(I)});const d=f[P.PK]||[],m=f[P.PrimaryKey]||[];return d.length>=1&&m.length>=1&&l.push(...[...d,...m].map(I=>new g(_.DUPLICATE_COLUMN_SETTING,"Either one of 'primary key' and 'pk' can appear",I))),Hr(f,(I,T)=>{switch(T){case P.Note:I.length>1&&l.push(...I.map(y=>new g(_.DUPLICATE_COLUMN_SETTING,`'${T}' can only appear once`,y))),I.forEach(y=>{Fe(y.value)||l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,`'${T}' must be a quoted string`,y.value||y.name))});break;case P.Ref:I.forEach(y=>{If(y.value)||l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,`'${T}' must be a valid unary relationship`,y.value||y.name))});break;case P.PrimaryKey:I.length>1&&l.push(...I.map(y=>new g(_.DUPLICATE_COLUMN_SETTING,`'${T}' can only appear once`,y))),I.forEach(y=>{ot(y.value)||l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,`'${T}' must not have a value`,y.value||y.name))});break;case P.PK:I.length>1&&l.push(...I.map(y=>new g(_.DUPLICATE_COLUMN_SETTING,`'${T}' can only appear once`,y))),I.forEach(y=>{y instanceof St&&!ot(y.value)&&l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,`'${T}' must not have a value`,y.value||y.name))});break;case P.NotNull:{I.length>1&&l.push(...I.map($=>new g(_.DUPLICATE_COLUMN_SETTING,`'${T}' can only appear once`,$)));const y=f[P.Null]||[];I.length>=1&&y.length>=1&&l.push(...[...I,...y].map($=>new g(_.CONFLICTING_SETTING,"'not null' and 'null' can not be set at the same time",$))),I.forEach($=>{ot($.value)||l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,`'${T}' must not have a value`,$.value||$.name))});break}case P.Null:I.length>1&&l.push(...I.map(y=>new g(_.DUPLICATE_COLUMN_SETTING,`'${T}' can only appear once`,y))),I.forEach(y=>{ot(y.value)||l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,`'${T}' must not have a value`,y.value||y.name))});break;case P.Unique:I.length>1&&l.push(...I.map(y=>new g(_.DUPLICATE_COLUMN_SETTING,`'${T}' can only appear once`,y))),I.forEach(y=>{y instanceof St&&!ot(y.value)&&l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,`'${T}' must not have a value`,y.value||y.name))});break;case P.Increment:I.length>1&&l.push(...I.map(y=>new g(_.DUPLICATE_COLUMN_SETTING,`'${T}' can only appear once`,y))),I.forEach(y=>{y instanceof St&&!ot(y.value)&&l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,`'${T}' must not have a value`,y.value||y.name))});break;case P.Default:I.length>1&&l.push(...I.map(y=>new g(_.DUPLICATE_COLUMN_SETTING,`'${T}' can only appear once`,y))),I.forEach(y=>{mf(y.value)||l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,`'${T}' must be a string literal, number literal, function expression, true, false or null`,y.value||y.name))});break;case P.Check:I.forEach(y=>{y.value instanceof bt||l.push(new g(_.INVALID_COLUMN_SETTING_VALUE,"'check' must be a function expression",y.value||y.name))});break;default:I.forEach(y=>l.push(new g(_.UNKNOWN_COLUMN_SETTING,`Unknown column setting '${T}'`,y)))}}),l}validateSubElements(r){const i=r.flatMap(o=>{if(o.parent=this.declarationNode,!o.type)return[];const l=Xt(o);return new l(o,this.publicSymbolTable,this.symbolFactory).validate()}),s=r.filter(o=>o.type?.value.toLowerCase()===F.Note);return s.length>1&&i.push(...s.map(o=>new g(_.NOTE_REDEFINED,"Duplicate notes are defined",o))),i}}class QI{constructor(r,i,s){this.declarationNode=r,this.publicSymbolTable=i,this.symbolFactory=s}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){const r=new g(_.INVALID_CHECKS_CONTEXT,"A Checks can only appear inside a Table or a TablePartial",this.declarationNode);if(this.declarationNode.parent instanceof qe)return[r];const i=cn(this.declarationNode.parent).unwrap_or(void 0);return i&&[F.Table,F.TablePartial].includes(i)?[]:[r]}validateName(r){return r?[new g(_.UNEXPECTED_NAME,"A Checks shouldn't have a name",r)]:[]}validateAlias(r){return r?[new g(_.UNEXPECTED_ALIAS,"A Checks shouldn't have an alias",r)]:[]}validateSettingList(r){return r?[new g(_.UNEXPECTED_SETTINGS,"A Checks shouldn't have a setting list",r)]:[]}validateBody(r){if(!r)return[];if(r instanceof W)return[new g(_.UNEXPECTED_SIMPLE_BODY,"A Checks must have a complex body",r)];const[i,s]=ft(r.body,o=>o instanceof W);return[...this.validateFields(i),...this.validateSubElements(s)]}validateFields(r){return r.flatMap(i=>{if(!i.callee)return[];const s=[],o=[i.callee,...i.args];return me(o)instanceof _e&&s.push(...this.validateFieldSetting(o.pop())),(o.length>1||!(o[0]instanceof bt))&&s.push(new g(_.INVALID_CHECKS_FIELD,"A check field must be a function expression",i)),s})}validateFieldSetting(r){const i=Ne(r),s=i.getErrors(),o=i.getValue();for(const l in o){const f=o[l];switch(l){case"name":f.length>1&&f.forEach(d=>s.push(new g(_.DUPLICATE_CHECK_SETTING,`'${l}' can only appear once`,d))),f.forEach(d=>{Fe(d.value)||s.push(new g(_.INVALID_CHECK_SETTING_VALUE,`'${l}' must be a string`,d))});break;default:f.forEach(d=>s.push(new g(_.UNKNOWN_CHECK_SETTING,`Unknown check setting '${l}'`,d)))}}return s}validateSubElements(r){return r.flatMap(i=>{if(i.parent=this.declarationNode,!i.type)return[];const s=Xt(i);return new s(i,this.publicSymbolTable,this.symbolFactory).validate()})}}function Xt(t){switch(t.type.value.toLowerCase()){case F.Enum:return VI;case F.Table:return zI;case F.TableGroup:return YI;case F.Project:return XI;case F.Ref:return HI;case F.Note:return WI;case F.Indexes:return $I;case F.TablePartial:return JI;case F.Check:return QI;default:return CI}}function vf(t){return!!Ge(t).unwrap_or(!1)}function ZI(t){return hr(t)}function hr(t){return t instanceof lt&&t.expression instanceof ln}function Ji(t){return t instanceof je&&t.op?.value==="~"&&we(t.expression)}function us(t,r,i){t[0]===$t&&(t=t.slice(1));let s=r;for(const o of t){let l;const f=Jr(o);if(s.has(f)){if(l=s.get(f)?.symbolTable,!l)throw new Error("Expect a symbol table in a schema symbol")}else{l=new Bn;const d=i.create(eo,{symbolTable:l});s.set(f,d)}s=l}return s}function bf(t){return t==="-"||t==="<>"||t===">"||t==="<"}function ls(t){if(!(t instanceof lt)||!(t.expression instanceof cr)||t.expression.literal?.kind!==A.COLOR_LITERAL)return!1;const r=t.expression.literal.value;if(r.length!==4&&r.length!==7||r[0]!=="#")return!1;for(let i=1;i<r.length;i+=1)if(!UI(r[i]))return!1;return!0}function ot(t){return t===void 0}function mf(t){if(Fe(t)||mn(t)||In(t)&&["true","false","null"].includes(t.expression.variable.value.toLowerCase())||t instanceof je&&Tf.includes(t.op?.value)&&mn(t.expression)||t instanceof bt)return!0;if(!t||!lo(t))return!1;const r=An(t).unwrap();return r.length===2||r.length===3}function mn(t){return t instanceof je?Tf.includes(t.op.value)?mn(t.expression):!1:t instanceof lt&&t.expression instanceof cr&&t.expression.literal?.kind===A.NUMERIC_LITERAL}function If(t){if(!(t instanceof je)||!bf(t.op?.value))return!1;const r=Ge(t.expression).unwrap_or(void 0);return r!==void 0&&r.length>0}function jI(t){return t instanceof Wt&&t.elementList.every(we)}function Af(t){if(!(t instanceof He||uo(t)||t instanceof lt||t instanceof Bt))return!1;for(;t instanceof He||t instanceof Bt;)if(t instanceof He){if(t.callee===void 0||t.argumentList===void 0||!t.argumentList.elementList.every(i=>mn(i)||Fe(i)||In(i)))return!1;t=t.callee}else if(t instanceof Bt){if(t.array===void 0||t.indexer===void 0||!t.indexer.elementList.every(i=>!i.colon&&!i.value&&mn(i.name)))return!1;t=t.array}const r=Ge(t).unwrap_or(void 0);return r!==void 0&&r.length>0}function Ne(t){const r={},i=[];return t?(t.elementList.forEach(s=>{if(!s.name)return;if(s.name instanceof lt){i.push(new g(_.INVALID_SETTINGS,"A setting name must be a stream of identifiers",s.name));return}const o=zr(s.name).unwrap_or(void 0)?.toLowerCase();o&&(r[o]===void 0?r[o]=[s]:r[o].push(s))}),new ct(r,i)):new ct({})}function cn(t){const r=t?.type?.value.toLowerCase();switch(r){case F.Enum:case F.Table:case F.Indexes:case F.Note:case F.Project:case F.Ref:case F.TableGroup:case F.TablePartial:case F.Check:return new ye(r);default:return new pe}}function An(t){if(!t)return new pe;if(!uo(t))return new ye([t]);const r=An(t.leftExpression).unwrap_or(void 0);return r?(r.push(t.rightExpression),new ye(r)):new pe}function Ge(t){if(t===void 0)return new pe;const r=An(t).unwrap_or(void 0);if(!r)return new pe;const i=[];for(const s of r){const o=Pe(s).unwrap_or(void 0);if(typeof o!="string")return new pe;i.push(o)}return new ye(i)}function ut(t){if(t===void 0)return new pe;const r=An(t).unwrap_or(void 0);if(!r||r.length===0)return new pe;let i=[];if(!we(me(r))){const o=r.pop();if(jI(o))i=o.elementList;else return new pe}const s=r;return s.every(we)?new ye({variables:s,tupleElements:i}):new pe}function Pe(t){return we(t)?new ye(t.expression.variable.value):new pe}function Qi(t){if(Ic(t))return t instanceof bt?new ye({functional:[t],nonFunctional:[]}):new ye({functional:[],nonFunctional:[t]});if(t instanceof Wt&&t.elementList.every(Ic)){const r=t.elementList.filter(s=>s instanceof bt),i=t.elementList.filter(we);return new ye({functional:r,nonFunctional:i})}return new pe}function Me(t){const r=t?.expression.variable?.value;return r===void 0?new pe:new ye(r)}function Le(t){return Fe(t)?t.expression instanceof ln?new ye(t.expression.variable.value):new ye(t.expression.literal.value):new pe}function mc(t){return!(t instanceof Vt)||!bf(t.op?.value)?!1:ut(t.leftExpression).and_then(()=>ut(t.rightExpression)).unwrap_or(void 0)!==void 0}function eA(t){const r=ut(t.leftExpression),i=ut(t.rightExpression);if(!r.isOk()||!i.isOk())return!1;const{tupleElements:s}=r.unwrap(),{tupleElements:o}=i.unwrap();return s?.length===o?.length}function Ic(t){return t instanceof lt&&t.expression instanceof ln||t instanceof bt}function tA(t,r,i){if(!t||!In(t)||r.length===0)return new pe;const s=[...r],o=Ac(t).unwrap(),l=s.pop();if(!(l instanceof ke))return new pe;const f=me(s)instanceof _e?s.pop():void 0;if(s.length===3){const d=Ac(s[1]).value;return!d||!Ha(d)?new pe:new ye(i.create(se,{type:o,name:s[0],as:d,alias:s[2],attributeList:f,body:l}))}return s.length===1?new ye(i.create(se,{type:o,name:s[0],attributeList:f,body:l})):s.length===0?new ye(i.create(se,{type:o,attributeList:f,body:l})):new pe}function Ha(t){return t?.kind===A.IDENTIFIER&&t.value.toLowerCase()==="as"}function C(t){t&&(t instanceof Ze?nA(t):rA(t))}function nA(t){t.kind!==A.EOF&&(t.isInvalid=!0)}function rA(t){if(t instanceof se)C(t.type),C(t.name),C(t.as),C(t.alias),C(t.bodyColon),C(t.attributeList),C(t.body);else if(t instanceof xt)t.identifiers.forEach(C);else if(t instanceof St)C(t.name),C(t.colon),C(t.value);else if(t instanceof je)C(t.op),C(t.expression);else if(t instanceof Vt)C(t.leftExpression),C(t.op),C(t.rightExpression);else if(t instanceof os)C(t.op),C(t.expression);else if(t instanceof ke)C(t.blockOpenBrace),t.body.forEach(C),C(t.blockCloseBrace);else if(t instanceof _e)C(t.listOpenBracket),t.commaList.forEach(C),t.elementList.forEach(C),C(t.listCloseBracket);else if(t instanceof Wt)C(t.tupleOpenParen),t.commaList.forEach(C),t.elementList.forEach(C),C(t.tupleCloseParen);else if(t instanceof He)C(t.callee),C(t.argumentList);else if(t instanceof W)C(t.callee),t.args.forEach(C);else if(t instanceof lt)C(t.expression);else if(t instanceof bt)C(t.value);else if(t instanceof ln)C(t.variable);else if(t instanceof cr)C(t.literal);else{if(t instanceof ja)throw new Error("This case is handled by the TupleExpressionNode case");if(t instanceof Bt)C(t.array),C(t.indexer);else if(t instanceof qe)t.body.forEach(C),C(t.eof);else if(!(t instanceof Br))throw new Error("Unreachable case in markInvalidNode")}}function qa(t){return!!t?.isInvalid}function Xe(...t){return t.filter(r=>r!==void 0)}function iA(t){if(t instanceof qe)return Xe(...t.body,t.eof);if(t instanceof se)return Xe(t.type,t.name,t.as,t.alias,t.attributeList,t.bodyColon,t.body);if(t instanceof St)return Xe(t.name,t.colon,t.value);if(t instanceof xt)return t.identifiers;if(t instanceof cr)return t.literal?[t.literal]:[];if(t instanceof ln)return Xe(t.variable);if(t instanceof je)return Xe(t.op,t.expression);if(t instanceof Vt)return Xe(t.leftExpression,t.op,t.rightExpression);if(t instanceof os)return Xe(t.expression,t.op);if(t instanceof bt)return Xe(t.value);if(t instanceof W)return Xe(t.callee,...t.args);if(t instanceof ke)return Xe(t.blockOpenBrace,...t.body,t.blockCloseBrace);if(t instanceof _e)return Xe(t.listOpenBracket,...bc(t.elementList,t.commaList),t.listCloseBracket);if(t instanceof Wt)return Xe(t.tupleOpenParen,...bc(t.elementList,t.commaList),t.tupleCloseParen);if(t instanceof He)return Xe(t.callee,t.argumentList);if(t instanceof lt)return Xe(t.expression);if(t instanceof Bt)return Xe(t.array,t.indexer);throw t instanceof ja?new Error("This case is already handled by TupleExpressionNode"):new Error("Unreachable - no other possible cases")}function Ac(t){return we(t)?new ye(t.expression.variable):new pe}function Fe(t){return t instanceof lt&&(t.expression instanceof ln&&t.expression.variable instanceof Ze&&t.expression.variable.kind===A.QUOTED_STRING||t.expression instanceof cr&&t.expression.literal?.kind===A.STRING_LITERAL)}function we(t){return t instanceof lt&&t.expression instanceof ln&&t.expression.variable instanceof Ze}function In(t){return t instanceof lt&&t.expression instanceof ln&&t.expression.variable?.kind===A.IDENTIFIER}function uo(t){return t instanceof Vt&&t.leftExpression instanceof Te&&t.rightExpression instanceof Te&&t.op?.value==="."}function lo(t){return we(t)?!0:uo(t)&&we(t.rightExpression)&&lo(t.leftExpression)}function zr(t){if(t===void 0)return new pe;const r=t.identifiers.map(i=>i.value).join(" ");return r===""?new pe:new ye(r)}function sA(t){return Ge(t.name).map(r=>r.join("."))}class aA{constructor(r){this.start={offset:0,line:0,column:0},this.current={offset:0,line:0,column:0},this.tokens=[],this.errors=[],this.text=r}isAtEnd(){return this.current.offset>=this.text.length}advance(){const r=this.peek();return this.current={...this.current},r===`
2
+ `?(this.current.line+=1,this.current.column=0):this.current.column+=1,this.current.offset+=1,r}peek(r=0){if(!(this.current.offset+r>=this.text.length))return this.text[this.current.offset+r]}check(r){for(let i=0;i<r.length;i+=1)if(r[i]!==this.peek(i))return!1;return!0}match(r){return this.check(r)?(r.split("").forEach(()=>this.advance()),!0):!1}addToken(r,i=!1){this.tokens.push(this.createToken(r,i))}createToken(r,i=!1){return Ze.create(r,this.start,this.current,this.text.substring(this.start.offset,this.current.offset),i)}lex(){return this.scanTokens(),this.tokens.push(Ze.create(A.EOF,this.start,this.current,"",!1)),this.gatherTrivia(),this.gatherInvalid(),new ct(this.tokens,this.errors)}scanTokens(){for(;!this.isAtEnd();){const r=this.advance();switch(r){case" ":this.addToken(A.SPACE);break;case"\r":break;case`
3
+ `:this.addToken(A.NEWLINE);break;case" ":this.addToken(A.TAB);break;case",":this.addToken(A.COMMA);break;case"(":this.addToken(A.LPAREN);break;case")":this.addToken(A.RPAREN);break;case"[":this.addToken(A.LBRACKET);break;case"]":this.addToken(A.RBRACKET);break;case"{":this.addToken(A.LBRACE);break;case"}":this.addToken(A.RBRACE);break;case";":this.addToken(A.SEMICOLON);break;case":":this.addToken(A.COLON);break;case"'":this.match("''")?this.multilineStringLiteral():this.singleLineStringLiteral();break;case'"':this.quotedVariable();break;case"`":this.functionExpression();break;case"#":this.colorLiteral();break;case"/":this.match("/")?this.singleLineComment():this.match("*")?this.multilineComment():this.operator(r);break;default:if(OI(r)){this.operator(r);break}if(Yr(r)){this.identifier();break}if(or(r)){this.numericLiteralOrIdentifier();break}this.addToken(A.OP,!0),this.errors.push(new g(_.UNKNOWN_SYMBOL,`Unexpected token '${r}'`,this.createToken(A.OP,!0)));break}this.start={...this.current}}}gatherTrivia(){let r=!0,i=[],s;const o=[];for(const l of this.tokens)SI(l)?(i.push(l),l.kind===A.NEWLINE&&s&&(s.trailingTrivia=i,r=!0,s=void 0,i=[])):(r?l.leadingTrivia=i:s.trailingTrivia=i,o.push(l),i=[],s=l,r=!1);this.tokens=o}gatherInvalid(){let r;const i=[],s=[];for(r=0;r<this.tokens.length&&qa(this.tokens[r]);r+=1)s.push(this.tokens[r]);let o=this.tokens[r];for(o.leadingInvalid=[...s,...o.leadingInvalid];r<this.tokens.length;r+=1){const l=this.tokens[r];qa(l)?o.trailingInvalid.push(l):(o=l,i.push(l))}this.tokens=i}consumeUntil(r,i,{allowNewline:s,allowEof:o,raw:l,consumeStopSequence:f=!0}){let d="";for(;!this.isAtEnd()&&(s||!this.check(`
4
+ `))&&!this.check(i);)this.peek()==="\\"&&!l?(this.advance(),d+=this.escapedString()):d+=this.advance();if(this.isAtEnd()&&!o){const m=this.createToken(r,!0);this.tokens.push(m),this.errors.push(new g(_.UNEXPECTED_EOF,"EOF reached while parsing",m));return}if(this.check(`
5
+ `)&&!s){const m=this.createToken(r,!0);this.tokens.push(m),this.errors.push(new g(_.UNEXPECTED_NEWLINE,"Invalid newline encountered while parsing",m));return}f&&this.match(i),this.tokens.push(Ze.create(r,this.start,this.current,d,!1))}singleLineStringLiteral(){this.consumeUntil(A.STRING_LITERAL,"'",{allowNewline:!1,allowEof:!1,raw:!1})}multilineStringLiteral(){this.consumeUntil(A.STRING_LITERAL,"'''",{allowNewline:!0,allowEof:!1,raw:!1})}functionExpression(){this.consumeUntil(A.FUNCTION_EXPRESSION,"`",{allowNewline:!0,allowEof:!1,raw:!0})}quotedVariable(){this.consumeUntil(A.QUOTED_STRING,'"',{allowNewline:!1,allowEof:!1,raw:!1})}singleLineComment(){this.consumeUntil(A.SINGLE_LINE_COMMENT,`
6
+ `,{allowNewline:!0,allowEof:!0,raw:!0,consumeStopSequence:!1})}multilineComment(){this.consumeUntil(A.MULTILINE_COMMENT,"*/",{allowNewline:!0,allowEof:!1,raw:!0})}identifier(){for(;!this.isAtEnd()&&Un(this.peek());)this.advance();this.addToken(A.IDENTIFIER)}operator(r){switch(r){case"<":[">","="].includes(this.peek())&&this.advance();break;case">":this.peek()==="="&&this.advance();break;case"=":this.peek()==="="&&this.advance();break;case"!":this.peek()==="="&&this.advance();break}this.addToken(A.OP)}numericLiteralOrIdentifier(){let r=0;if(this.isAtEnd())return this.addToken(A.NUMERIC_LITERAL);for(;!this.isAtEnd();){const i=this.check(".");if(r+=i?1:0,r>1)break;if(!i&&this.current.offset===this.text.length-1)return this.advance(),this.addToken(A.NUMERIC_LITERAL);if(!i&&!Un(this.peek()))return this.addToken(A.NUMERIC_LITERAL);if(!i&&!or(this.peek()))break;this.advance()}if(r>0){for(;!this.isAtEnd()&&(this.check(".")||Un(this.peek()));)this.advance();const i=this.createToken(A.NUMERIC_LITERAL,!0);this.tokens.push(i),this.errors.push(new g(_.UNKNOWN_TOKEN,"Invalid number",i))}else{for(;!this.isAtEnd()&&Un(this.peek());)this.advance();const i=this.createToken(A.IDENTIFIER,!1);this.tokens.push(i)}}colorLiteral(){for(;!this.isAtEnd()&&Un(this.peek());)this.advance();this.addToken(A.COLOR_LITERAL)}escapedString(){const r={column:this.current.column-1,offset:this.current.offset-1,line:this.current.line};if(this.isAtEnd())return"\\";switch(this.advance()){case"\r":return this.check(`
7
+ `)&&this.advance(),"";case`
8
+ `:return"";case"t":return" ";case"n":return`
9
+ `;case"\\":return"\\";case"r":return"\r";case"'":return"'";case'"':return'"';case"`":return"`";case"0":return"\0";case"b":return"\b";case"v":return"\v";case"f":return"\f";case" ":return"\\ ";case"u":{let i="";for(let s=0;s<=3;s+=1){if(this.isAtEnd()||!Un(this.peek()))return this.errors.push(new g(_.INVALID_ESCAPE_SEQUENCE,`Invalid unicode escape sequence '\\u${i}', only unicode escape sequences of the form '\\uHHHH' where H is a hexadecimal number are allowed`,Ze.create(A.STRING_LITERAL,r,this.current,`\\u${i}`,!0))),`\\u${i}`;i+=this.advance()}return String.fromCharCode(parseInt(i,16))}default:return this.text[this.current.offset-1]}}}var Ki=(t=>(t[t.ListExpression=0]="ListExpression",t[t.GroupExpression=1]="GroupExpression",t[t.BlockExpression=2]="BlockExpression",t))(Ki||{});class oA{constructor(){this.stack=[],this.numberOfNestedLParens=0,this.numberOfNestedLBrackets=0,this.numberOfNestedLBraces=0}push(r){this.stack.push(r),r===0&&(this.numberOfNestedLBrackets+=1),r===1&&(this.numberOfNestedLParens+=1),r===2&&(this.numberOfNestedLBraces+=1)}pop(){const r=this.stack.pop();return r===0&&(this.numberOfNestedLBrackets-=1),r===1&&(this.numberOfNestedLParens-=1),r===2&&(this.numberOfNestedLBraces-=1),r}top(){return me(this.stack)}isWithinGroupExpressionContext(){return this.numberOfNestedLParens>0}isWithinListExpressionContext(){return this.numberOfNestedLBrackets>0}isWithinBlockExpressionContext(){return this.numberOfNestedLBraces>0}withContextDo(r,i){return()=>{this.push(r);try{return i()}finally{this.pop()}}}findHandlerContext(r,i){if(!(this.numberOfNestedLBraces<=0&&this.numberOfNestedLBrackets<=0&&this.numberOfNestedLParens<=0))for(let s=i;s<r.length-1;s+=1)switch(r[s].kind){case A.COMMA:if(this.isWithinGroupExpressionContext()||this.isWithinListExpressionContext())return[...this.stack].reverse().find(l=>[1,0].includes(l));break;case A.RPAREN:if(this.isWithinGroupExpressionContext())return 1;break;case A.RBRACE:if(this.isWithinBlockExpressionContext())return 2;break;case A.RBRACKET:if(this.isWithinListExpressionContext())return 0;break}}}class uA{constructor(r){this.generator=r}create(r,i){return new r(i,this.generator.nextId())}}class M{constructor(r,i,s){this.token=r,this.partialNode=i,this.handlerContext=s}}class lA{constructor(r,i){this.current=0,this.errors=[],this.contextStack=new oA,this.synchronizeProgram=()=>{const s=this.peek();s.kind!==A.EOF?C(this.advance()):this.logError(s,_.UNEXPECTED_EOF,"Unexpected EOF")},this.synchronizeElementDeclarationName=()=>{for(;!this.isAtEnd();){const s=this.peek();if(Ha(s)||this.check(A.COLON,A.LBRACE,A.LBRACKET))break;C(s),this.advance()}},this.synchronizeElementDeclarationAlias=()=>{for(;!this.isAtEnd();){const s=this.peek();if(this.check(A.COLON,A.LBRACE,A.LBRACKET))break;C(s),this.advance()}},this.blockExpression=this.contextStack.withContextDo(Ki.BlockExpression,()=>{const s={body:[]},o=()=>this.nodeFactory.create(ke,s);try{this.consume("Expect an opening brace '{'",A.LBRACE),s.blockOpenBrace=this.previous()}catch(l){if(!(l instanceof M))throw l;if(!this.canHandle(l))throw new M(l.token,o(),l.handlerContext);this.synchronizeBlock()}for(;!this.isAtEnd()&&!this.check(A.RBRACE);)try{s.body.push(this.canBeField()?this.fieldDeclaration():this.expression())}catch(l){if(!(l instanceof M))throw l;if(s.body.push(l.partialNode),!this.canHandle(l))throw new M(l.token,o(),l.handlerContext);this.synchronizeBlock()}try{this.consume("Expect a closing brace '}'",A.RBRACE),s.blockCloseBrace=this.previous()}catch(l){if(!(l instanceof M))throw l;if(!this.canHandle(l))throw new M(l.token,o(),l.handlerContext);this.synchronizeBlock()}return o()}),this.synchronizeBlock=()=>{if(!this.check(A.RBRACE))for(C(this.advance());!this.isAtEnd();){const s=this.peek();if(this.check(A.RBRACE)||vc(this.previous(),s))break;C(s),this.advance()}},this.tupleExpression=this.contextStack.withContextDo(Ki.GroupExpression,()=>{const s={elementList:[],commaList:[]},o=()=>this.nodeFactory.create(ja,{groupOpenParen:s.tupleOpenParen,groupCloseParen:s.tupleCloseParen,expression:s.elementList[0]}),l=()=>this.nodeFactory.create(Wt,s);try{this.consume("Expect an opening parenthesis '('",A.LPAREN),s.tupleOpenParen=this.previous()}catch(f){if(!(f instanceof M))throw f;if(!this.canHandle(f))throw new M(f.token,l(),f.handlerContext);this.synchronizeTuple()}if(!this.isAtEnd()&&!this.check(A.RPAREN))try{s.elementList.push(this.normalExpression())}catch(f){if(!(f instanceof M))throw f;if(s.elementList.push(f.partialNode),!this.canHandle(f))throw new M(f.token,o(),f.handlerContext);this.synchronizeTuple()}for(;!this.isAtEnd()&&!this.check(A.RPAREN);)try{this.consume("Expect a comma ','",A.COMMA),s.commaList.push(this.previous()),s.elementList.push(this.normalExpression())}catch(f){if(!(f instanceof M))throw f;if(f.partialNode instanceof Te&&s.elementList.push(f.partialNode),!this.canHandle(f))throw new M(f.token,l(),f.handlerContext);this.synchronizeTuple()}try{this.consume("Expect a closing parenthesis ')'",A.RPAREN),s.tupleCloseParen=this.previous()}catch(f){if(!(f instanceof M))throw f;if(!this.canHandle(f))throw new M(f.token,l(),f.handlerContext);this.synchronizeTuple()}return s.elementList.length===1?o():l()}),this.synchronizeTuple=()=>{for(;!this.isAtEnd();){const s=this.peek();if(this.check(A.RPAREN,A.COMMA))break;C(s),this.advance()}},this.listExpression=this.contextStack.withContextDo(Ki.ListExpression,()=>{const s={elementList:[],commaList:[]},o=()=>this.nodeFactory.create(_e,s);try{this.consume("Expect an opening bracket '['",A.LBRACKET),s.listOpenBracket=this.previous()}catch(l){if(!(l instanceof M))throw l;if(!this.canHandle(l))throw new M(l.token,o(),l.handlerContext);this.synchronizeList()}if(!this.isAtEnd()&&!this.check(A.RBRACKET))try{s.elementList.push(this.attribute())}catch(l){if(!(l instanceof M))throw l;if(s.elementList.push(l.partialNode),!this.canHandle(l))throw new M(l.token,o(),l.handlerContext);this.synchronizeList()}for(;!this.isAtEnd()&&!this.check(A.RBRACKET);)try{this.consume("Expect a comma ','",A.COMMA),s.commaList.push(this.previous()),s.elementList.push(this.attribute())}catch(l){if(!(l instanceof M))throw l;if(l.partialNode instanceof Te&&s.elementList.push(l.partialNode),!this.canHandle(l))throw new M(l.token,o(),l.handlerContext);this.synchronizeList()}try{this.consume("Expect a closing bracket ']'",A.RBRACKET),s.listCloseBracket=this.previous()}catch(l){if(!(l instanceof M))throw l;if(!this.canHandle(l))throw new M(l.token,o(),l.handlerContext);this.synchronizeList()}return o()}),this.synchronizeList=()=>{for(;!this.isAtEnd();){const s=this.peek();if(this.check(A.COMMA,A.RBRACKET))break;C(s),this.advance()}},this.synchronizeAttributeName=()=>{for(;!this.isAtEnd();){const s=this.peek();if(this.check(A.COMMA,A.RBRACKET,A.COLON))break;C(s),this.advance()}},this.synchronizeAttributeValue=()=>{for(;!this.isAtEnd();){const s=this.peek();if(this.check(A.COMMA,A.RBRACKET))break;C(s),this.advance()}},this.tokens=r,this.nodeFactory=new uA(i)}isAtEnd(){return this.current>=this.tokens.length||this.tokens[this.current].kind===A.EOF}advance(){return this.isAtEnd()?me(this.tokens):this.tokens[this.current++]}peek(r=0){return r+this.current>=this.tokens.length?me(this.tokens):this.tokens[this.current+r]}match(...r){const i=this.check(...r);return i&&this.advance(),i}check(...r){const i=this.peek();return r.includes(i.kind)}previous(){return this.tokens[this.current-1]}canHandle(r){return r.handlerContext===void 0||r.handlerContext===this.contextStack.top()}consume(r,...i){if(!this.match(...i))throw this.logError(this.peek(),_.UNEXPECTED_TOKEN,r),new M(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}discardUntil(r,...i){if(this.isAtEnd()||!this.check(...i)){for(C(this.peek()),this.logError(this.advance(),_.UNEXPECTED_TOKEN,r);!this.isAtEnd()&&!this.check(...i);)C(this.advance());return!this.isAtEnd()}return!0}gatherInvalid(){const r=[],i=[];let s,o=0;for(;o<this.tokens.length&&this.tokens[o].isInvalid;o+=1)i.push(this.tokens[o]);for(s=this.tokens[o],s.leadingInvalid=[...i,...s.leadingInvalid],r.push(s),o+=1;o<this.tokens.length;o+=1){const l=this.tokens[o];l.isInvalid?s.trailingInvalid.push(l):(s=l,r.push(s))}this.tokens=r}parse(){const r=this.program(),i=this.advance(),s=this.nodeFactory.create(qe,{body:r,eof:i});return this.gatherInvalid(),new ct({ast:s,tokens:this.tokens},this.errors)}program(){const r=[];for(;!this.isAtEnd();)try{const i=this.elementDeclaration();r.push(i)}catch(i){if(!(i instanceof M))throw i;r.push(i.partialNode),this.synchronizeProgram()}return r}elementDeclaration(){const r={},i=()=>this.nodeFactory.create(se,r);try{this.consume("Expect an identifier",A.IDENTIFIER),r.type=this.previous()}catch(s){throw s instanceof M?new M(s.token,i(),s.handlerContext):s}if(!this.check(A.COLON,A.LBRACE,A.LBRACKET))try{r.name=this.normalExpression()}catch(s){if(!(s instanceof M))throw s;if(r.name=s.partialNode,!this.canHandle(s))throw new M(s.token,i(),s.handlerContext);this.synchronizeElementDeclarationName()}if(Ha(this.peek()))if(r.as=this.advance(),this.check(A.COLON,A.LBRACE,A.LBRACKET))this.logError(this.peek(),_.UNEXPECTED_TOKEN,"Expect an alias");else try{r.alias=this.normalExpression()}catch(s){if(!(s instanceof M))throw s;if(r.alias=s.partialNode,!this.canHandle(s))throw new M(s.token,i(),s.handlerContext);this.synchronizeElementDeclarationAlias()}try{r.attributeList=this.check(A.LBRACKET)?this.listExpression():void 0}catch(s){throw s instanceof M?(r.attributeList=s.partialNode,new M(s.token,i(),s.handlerContext)):s}if(!this.discardUntil("Expect an opening brace '{' or a colon ':'",A.LBRACE,A.COLON))return i();try{if(this.match(A.COLON)){r.bodyColon=this.previous();const s=this.expression();s instanceof se?(C(s),this.logError(s,_.UNEXPECTED_ELEMENT_DECLARATION,"An element's simple body must not be an element declaration")):r.body=s}else r.body=this.blockExpression()}catch(s){throw s instanceof M?(r.body=s.partialNode,new M(s.token,i(),s.handlerContext)):s}return this.nodeFactory.create(se,r)}fieldDeclaration(){const r={},i=()=>this.nodeFactory.create(se,r);try{this.consume("Expect an identifier",A.IDENTIFIER),r.type=this.previous()}catch(s){throw s instanceof M?(r.type=s.partialNode,new M(s.token,i(),s.handlerContext)):s}try{this.consume("Expect a colon ':'",A.COLON),r.bodyColon=this.previous()}catch(s){throw s instanceof M?(r.bodyColon=s.partialNode,new M(s.token,i(),s.handlerContext)):s}try{const s=this.expression();s instanceof se?this.errors.push(new g(_.INVALID_ELEMENT_IN_SIMPLE_BODY,"Simple body cannot be an element declaration",s)):r.body=s}catch(s){throw s instanceof M?(r.body=s.partialNode,new M(s.token,i(),s.handlerContext)):s}return this.nodeFactory.create(se,r)}expression(){const r={args:[]},i=()=>tA(r.callee,r.args,this.nodeFactory).unwrap_or(this.nodeFactory.create(W,r));try{r.callee=this.normalExpression()}catch(o){throw o instanceof M?(r.callee=o.partialNode,new M(o.token,i(),o.handlerContext)):o}if(this.shouldStopExpression())return i();let s=r.callee;for(;!this.shouldStopExpression();){$a(this.previous())||this.logError(s,_.MISSING_SPACES,"Expect a following space");try{s=this.normalExpression(),r.args.push(s)}catch(o){throw o instanceof M?(s=o.partialNode,r.args.push(s),new M(o.token,i(),o.handlerContext)):o}}return i()}shouldStopExpression(){if(this.isAtEnd()||uf(this.previous()))return!0;const r=this.peek().kind;return r===A.RBRACE||r===A.RBRACKET||r===A.RPAREN||r===A.COMMA||r===A.COLON}normalExpression(){return this.expression_bp(0)}expression_bp(r){let i=this.leftExpression_bp();for(;!this.isAtEnd();){const s=this.peek();if(s.kind===A.LPAREN){const{left:o}=wc(s);if(o<r||vc(this.previous(),s)&&!this.contextStack.isWithinGroupExpressionContext()&&!this.contextStack.isWithinListExpressionContext())break;try{i=this.nodeFactory.create(He,{callee:i,argumentList:this.tupleExpression()})}catch(l){throw l instanceof M?(i=this.nodeFactory.create(He,{callee:i,argumentList:l.partialNode}),new M(l.token,i,l.handlerContext)):l}}else if(s.kind===A.LBRACKET){if($a(this.previous()))break;try{i=this.nodeFactory.create(Bt,{expression:i,indexer:this.listExpression()})}catch(o){throw o instanceof M?(i=this.nodeFactory.create(Bt,{expression:i,indexer:o.partialNode}),new M(o.token,i,o.handlerContext)):o}}else if(Tc(s)){const o=s,l=wc(o);if(l.left!==null){if(l.left<=r)break;this.advance(),i=this.nodeFactory.create(os,{expression:i,op:o})}else{const f=fA(o);if(f.left===null||f.left<=r)break;this.advance();try{i=this.nodeFactory.create(Vt,{leftExpression:i,op:o,rightExpression:o.value==="."?this.extractOperand():this.expression_bp(f.right)})}catch(d){throw d instanceof M?(i=this.nodeFactory.create(Vt,{leftExpression:i,op:o,rightExpression:d.partialNode}),new M(d.token,i,d.handlerContext)):d}}}else break}return i}leftExpression_bp(){let r;if(Tc(this.peek())){const i={};i.op=this.peek();const s=pA(i.op);if(s.right===null)throw this.logError(i.op,_.UNKNOWN_PREFIX_OP,`Unexpected '${i.op.value}' in an expression`),new M(i.op,this.nodeFactory.create(Br,{pre:i.op}),this.contextStack.findHandlerContext(this.tokens,this.current));this.advance();try{i.expression=this.expression_bp(s.right)}catch(o){throw o instanceof M?(i.expression=o.partialNode,new M(o.token,this.nodeFactory.create(je,i),o.handlerContext)):o}r=this.nodeFactory.create(je,i)}else if(r=this.extractOperand(),r instanceof Br)throw new M(this.peek(),this.nodeFactory.create(Br,{pre:this.peek()}),this.contextStack.findHandlerContext(this.tokens,this.current));return r}extractOperand(){return this.check(A.NUMERIC_LITERAL,A.STRING_LITERAL,A.COLOR_LITERAL,A.QUOTED_STRING,A.IDENTIFIER)?this.primaryExpression():this.check(A.FUNCTION_EXPRESSION)?this.functionExpression():this.check(A.LBRACKET)?this.listExpression():this.check(A.LBRACE)?this.blockExpression():this.check(A.LPAREN)?this.tupleExpression():(this.peek().kind===A.EOF?this.logError(this.peek(),_.UNEXPECTED_EOF,"Unexpected EOF"):this.logError(this.peek(),_.INVALID_OPERAND,`Invalid start of operand "${this.peek().value}"`),this.nodeFactory.create(Br,{pre:this.previous()}))}functionExpression(){const r={};try{this.consume("Expect a function expression",A.FUNCTION_EXPRESSION),r.value=this.previous()}catch(i){throw i instanceof M?new M(i.token,this.nodeFactory.create(bt,r),i.handlerContext):i}return this.nodeFactory.create(bt,r)}canBeField(){return this.peek().kind===A.IDENTIFIER&&this.peek(1).kind===A.COLON}primaryExpression(){if(this.match(A.COLOR_LITERAL,A.STRING_LITERAL,A.NUMERIC_LITERAL))return this.nodeFactory.create(lt,{expression:this.nodeFactory.create(cr,{literal:this.previous()})});if(this.match(A.QUOTED_STRING,A.IDENTIFIER))return this.nodeFactory.create(lt,{expression:this.nodeFactory.create(ln,{variable:this.previous()})});throw this.logError(this.peek(),_.UNEXPECTED_TOKEN,"Expect a variable or literal"),new M(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}attribute(){const r={};if(this.check(A.COLON,A.RBRACKET,A.COMMA)){const i=this.peek();this.logError(i,_.EMPTY_ATTRIBUTE_NAME,"Expect a non-empty attribute name"),r.name=this.nodeFactory.create(xt,{identifiers:[]})}else try{r.name=this.attributeName()}catch(i){if(!(i instanceof M))throw i;if(r.name=i.partialNode,!this.canHandle(i))throw new M(i.token,this.nodeFactory.create(St,r),i.handlerContext);this.synchronizeAttributeName()}return this.match(A.COLON)&&(r.colon=this.previous(),r.value=this.attributeValue()),this.nodeFactory.create(St,r)}attributeValue(){let r;try{r=this.peek().kind===A.IDENTIFIER&&this.peek(1).kind===A.IDENTIFIER?this.attributeName():this.normalExpression()}catch(i){if(!(i instanceof M)||!this.canHandle(i))throw i;r=i.partialNode,this.synchronizeAttributeValue()}return r}attributeName(){const r=[];if(this.peek().kind!==A.IDENTIFIER)return this.primaryExpression();for(;!this.isAtEnd()&&!this.check(A.COLON,A.COMMA,A.RBRACKET);)try{this.consume("Expect an identifier",A.IDENTIFIER),r.push(this.previous())}catch(i){throw i instanceof M?new M(i.token,this.nodeFactory.create(xt,{identifiers:r}),i.handlerContext):i}return this.nodeFactory.create(xt,{identifiers:r})}logError(r,i,s){this.errors.push(new g(i,s,r))}}const cA={"+":{left:9,right:10},"*":{left:11,right:12},"-":{left:9,right:10},"/":{left:11,right:12},"%":{left:11,right:12},"<":{left:7,right:8},"<=":{left:7,right:8},">":{left:7,right:8},">=":{left:7,right:8},"<>":{left:7,right:8},"=":{left:2,right:3},"==":{left:4,right:5},"!=":{left:4,right:5},".":{left:16,right:17}};function fA(t){return cA[t.value]||{left:null,right:null}}const hA={"+":{left:null,right:15},"-":{left:null,right:15},"<":{left:null,right:15},">":{left:null,right:15},"<>":{left:null,right:15},"!":{left:null,right:15},"~":{left:null,right:15}};function pA(t){return hA[t.value]||{left:null,right:null}}const dA={"(":{left:14,right:null}};function wc(t){return dA[t.value]||{left:null,right:null}}class Lc{constructor(r,i){this.ast=r,this.symbolFactory=i,this.publicSchemaSymbol=this.symbolFactory.create(eo,{symbolTable:new Bn}),this.ast.symbol=this.publicSchemaSymbol,this.ast.symbol.declaration=this.ast}validate(){const r=[];this.ast.body.forEach(s=>{if(s.parent=this.ast,s.type===void 0)return;const o=Xt(s),l=new o(s,this.publicSchemaSymbol.symbolTable,this.symbolFactory);r.push(...l.validate())});const i=this.ast.body.filter(s=>cn(s).unwrap_or(void 0)===F.Project);return i.length>1&&i.forEach(s=>r.push(new g(_.PROJECT_REDEFINED,"Only one project can exist",s))),new ct(this.ast,r)}}class EA{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return[]}}class _A{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return this.bindBody(this.declarationNode.body)}bindBody(r){if(!r)return[];if(r instanceof W)return[];const i=r.body.filter(s=>s instanceof se);return this.bindSubElements(i)}bindSubElements(r){return r.flatMap(i=>{if(!i.type)return[];const s=Ht(i);return new s(i,this.ast,this.symbolFactory).bind()})}}class gA{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return this.declarationNode.body instanceof ke?this.bindBody(this.declarationNode.body):[]}bindBody(r){if(!r)return[];if(r instanceof W)return[];const i=r.body.filter(s=>s instanceof W);return this.bindSubElements(i)}bindSubElements(r){return r.flatMap(i=>{if(!i.type)return[];const s=Ht(i);return new s(i,this.ast,this.symbolFactory).bind()})}}var zi=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Gr={exports:{}};var NA=Gr.exports,yc;function TA(){return yc||(yc=1,function(t,r){(function(){var i,s="4.17.21",o=200,l="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",f="Expected a function",d="Invalid `variable` option passed into `_.template`",m="__lodash_hash_undefined__",I=500,T="__lodash_placeholder__",y=1,$=2,J=4,ne=1,re=2,j=1,de=2,et=4,ht=8,Rt=16,ze=32,dr=64,qt=128,Er=256,fs=512,$f=30,Wf="...",Xf=800,Hf=16,po=1,qf=2,zf=3,wn=1/0,fn=9007199254740991,Kf=17976931348623157e292,jr=NaN,Dt=4294967295,Yf=Dt-1,Jf=Dt>>>1,Qf=[["ary",qt],["bind",j],["bindKey",de],["curry",ht],["curryRight",Rt],["flip",fs],["partial",ze],["partialRight",dr],["rearg",Er]],Wn="[object Arguments]",ei="[object Array]",Zf="[object AsyncFunction]",_r="[object Boolean]",gr="[object Date]",jf="[object DOMException]",ti="[object Error]",ni="[object Function]",Eo="[object GeneratorFunction]",mt="[object Map]",Nr="[object Number]",eh="[object Null]",zt="[object Object]",_o="[object Promise]",th="[object Proxy]",Tr="[object RegExp]",It="[object Set]",vr="[object String]",ri="[object Symbol]",nh="[object Undefined]",br="[object WeakMap]",rh="[object WeakSet]",mr="[object ArrayBuffer]",Xn="[object DataView]",hs="[object Float32Array]",ps="[object Float64Array]",ds="[object Int8Array]",Es="[object Int16Array]",_s="[object Int32Array]",gs="[object Uint8Array]",Ns="[object Uint8ClampedArray]",Ts="[object Uint16Array]",vs="[object Uint32Array]",ih=/\b__p \+= '';/g,sh=/\b(__p \+=) '' \+/g,ah=/(__e\(.*?\)|\b__t\)) \+\n'';/g,go=/&(?:amp|lt|gt|quot|#39);/g,No=/[&<>"']/g,oh=RegExp(go.source),uh=RegExp(No.source),lh=/<%-([\s\S]+?)%>/g,ch=/<%([\s\S]+?)%>/g,To=/<%=([\s\S]+?)%>/g,fh=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hh=/^\w*$/,ph=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,bs=/[\\^$.*+?()[\]{}|]/g,dh=RegExp(bs.source),ms=/^\s+/,Eh=/\s/,_h=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,gh=/\{\n\/\* \[wrapped with (.+)\] \*/,Nh=/,? & /,Th=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,vh=/[()=,{}\[\]\/\s]/,bh=/\\(\\)?/g,mh=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,vo=/\w*$/,Ih=/^[-+]0x[0-9a-f]+$/i,Ah=/^0b[01]+$/i,wh=/^\[object .+?Constructor\]$/,Lh=/^0o[0-7]+$/i,yh=/^(?:0|[1-9]\d*)$/,xh=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ii=/($^)/,Sh=/['\n\r\u2028\u2029\\]/g,si="\\ud800-\\udfff",Oh="\\u0300-\\u036f",Ph="\\ufe20-\\ufe2f",Rh="\\u20d0-\\u20ff",bo=Oh+Ph+Rh,mo="\\u2700-\\u27bf",Io="a-z\\xdf-\\xf6\\xf8-\\xff",Dh="\\xac\\xb1\\xd7\\xf7",Mh="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Uh="\\u2000-\\u206f",kh=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ao="A-Z\\xc0-\\xd6\\xd8-\\xde",wo="\\ufe0e\\ufe0f",Lo=Dh+Mh+Uh+kh,Is="['’]",Fh="["+si+"]",yo="["+Lo+"]",ai="["+bo+"]",xo="\\d+",Ch="["+mo+"]",So="["+Io+"]",Oo="[^"+si+Lo+xo+mo+Io+Ao+"]",As="\\ud83c[\\udffb-\\udfff]",Bh="(?:"+ai+"|"+As+")",Po="[^"+si+"]",ws="(?:\\ud83c[\\udde6-\\uddff]){2}",Ls="[\\ud800-\\udbff][\\udc00-\\udfff]",Hn="["+Ao+"]",Ro="\\u200d",Do="(?:"+So+"|"+Oo+")",Gh="(?:"+Hn+"|"+Oo+")",Mo="(?:"+Is+"(?:d|ll|m|re|s|t|ve))?",Uo="(?:"+Is+"(?:D|LL|M|RE|S|T|VE))?",ko=Bh+"?",Fo="["+wo+"]?",Vh="(?:"+Ro+"(?:"+[Po,ws,Ls].join("|")+")"+Fo+ko+")*",$h="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Wh="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Co=Fo+ko+Vh,Xh="(?:"+[Ch,ws,Ls].join("|")+")"+Co,Hh="(?:"+[Po+ai+"?",ai,ws,Ls,Fh].join("|")+")",qh=RegExp(Is,"g"),zh=RegExp(ai,"g"),ys=RegExp(As+"(?="+As+")|"+Hh+Co,"g"),Kh=RegExp([Hn+"?"+So+"+"+Mo+"(?="+[yo,Hn,"$"].join("|")+")",Gh+"+"+Uo+"(?="+[yo,Hn+Do,"$"].join("|")+")",Hn+"?"+Do+"+"+Mo,Hn+"+"+Uo,Wh,$h,xo,Xh].join("|"),"g"),Yh=RegExp("["+Ro+si+bo+wo+"]"),Jh=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Qh=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Zh=-1,fe={};fe[hs]=fe[ps]=fe[ds]=fe[Es]=fe[_s]=fe[gs]=fe[Ns]=fe[Ts]=fe[vs]=!0,fe[Wn]=fe[ei]=fe[mr]=fe[_r]=fe[Xn]=fe[gr]=fe[ti]=fe[ni]=fe[mt]=fe[Nr]=fe[zt]=fe[Tr]=fe[It]=fe[vr]=fe[br]=!1;var ce={};ce[Wn]=ce[ei]=ce[mr]=ce[Xn]=ce[_r]=ce[gr]=ce[hs]=ce[ps]=ce[ds]=ce[Es]=ce[_s]=ce[mt]=ce[Nr]=ce[zt]=ce[Tr]=ce[It]=ce[vr]=ce[ri]=ce[gs]=ce[Ns]=ce[Ts]=ce[vs]=!0,ce[ti]=ce[ni]=ce[br]=!1;var jh={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},ep={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},tp={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},np={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},rp=parseFloat,ip=parseInt,Bo=typeof zi=="object"&&zi&&zi.Object===Object&&zi,sp=typeof self=="object"&&self&&self.Object===Object&&self,Re=Bo||sp||Function("return this")(),xs=r&&!r.nodeType&&r,Ln=xs&&!0&&t&&!t.nodeType&&t,Go=Ln&&Ln.exports===xs,Ss=Go&&Bo.process,pt=function(){try{var v=Ln&&Ln.require&&Ln.require("util").types;return v||Ss&&Ss.binding&&Ss.binding("util")}catch{}}(),Vo=pt&&pt.isArrayBuffer,$o=pt&&pt.isDate,Wo=pt&&pt.isMap,Xo=pt&&pt.isRegExp,Ho=pt&&pt.isSet,qo=pt&&pt.isTypedArray;function tt(v,L,w){switch(w.length){case 0:return v.call(L);case 1:return v.call(L,w[0]);case 2:return v.call(L,w[0],w[1]);case 3:return v.call(L,w[0],w[1],w[2])}return v.apply(L,w)}function ap(v,L,w,D){for(var X=-1,ie=v==null?0:v.length;++X<ie;){var xe=v[X];L(D,xe,w(xe),v)}return D}function dt(v,L){for(var w=-1,D=v==null?0:v.length;++w<D&&L(v[w],w,v)!==!1;);return v}function op(v,L){for(var w=v==null?0:v.length;w--&&L(v[w],w,v)!==!1;);return v}function zo(v,L){for(var w=-1,D=v==null?0:v.length;++w<D;)if(!L(v[w],w,v))return!1;return!0}function hn(v,L){for(var w=-1,D=v==null?0:v.length,X=0,ie=[];++w<D;){var xe=v[w];L(xe,w,v)&&(ie[X++]=xe)}return ie}function oi(v,L){var w=v==null?0:v.length;return!!w&&qn(v,L,0)>-1}function Os(v,L,w){for(var D=-1,X=v==null?0:v.length;++D<X;)if(w(L,v[D]))return!0;return!1}function Ee(v,L){for(var w=-1,D=v==null?0:v.length,X=Array(D);++w<D;)X[w]=L(v[w],w,v);return X}function pn(v,L){for(var w=-1,D=L.length,X=v.length;++w<D;)v[X+w]=L[w];return v}function Ps(v,L,w,D){var X=-1,ie=v==null?0:v.length;for(D&&ie&&(w=v[++X]);++X<ie;)w=L(w,v[X],X,v);return w}function up(v,L,w,D){var X=v==null?0:v.length;for(D&&X&&(w=v[--X]);X--;)w=L(w,v[X],X,v);return w}function Rs(v,L){for(var w=-1,D=v==null?0:v.length;++w<D;)if(L(v[w],w,v))return!0;return!1}var lp=Ds("length");function cp(v){return v.split("")}function fp(v){return v.match(Th)||[]}function Ko(v,L,w){var D;return w(v,function(X,ie,xe){if(L(X,ie,xe))return D=ie,!1}),D}function ui(v,L,w,D){for(var X=v.length,ie=w+(D?1:-1);D?ie--:++ie<X;)if(L(v[ie],ie,v))return ie;return-1}function qn(v,L,w){return L===L?Ip(v,L,w):ui(v,Yo,w)}function hp(v,L,w,D){for(var X=w-1,ie=v.length;++X<ie;)if(D(v[X],L))return X;return-1}function Yo(v){return v!==v}function Jo(v,L){var w=v==null?0:v.length;return w?Us(v,L)/w:jr}function Ds(v){return function(L){return L==null?i:L[v]}}function Ms(v){return function(L){return v==null?i:v[L]}}function Qo(v,L,w,D,X){return X(v,function(ie,xe,ue){w=D?(D=!1,ie):L(w,ie,xe,ue)}),w}function pp(v,L){var w=v.length;for(v.sort(L);w--;)v[w]=v[w].value;return v}function Us(v,L){for(var w,D=-1,X=v.length;++D<X;){var ie=L(v[D]);ie!==i&&(w=w===i?ie:w+ie)}return w}function ks(v,L){for(var w=-1,D=Array(v);++w<v;)D[w]=L(w);return D}function dp(v,L){return Ee(L,function(w){return[w,v[w]]})}function Zo(v){return v&&v.slice(0,nu(v)+1).replace(ms,"")}function nt(v){return function(L){return v(L)}}function Fs(v,L){return Ee(L,function(w){return v[w]})}function Ir(v,L){return v.has(L)}function jo(v,L){for(var w=-1,D=v.length;++w<D&&qn(L,v[w],0)>-1;);return w}function eu(v,L){for(var w=v.length;w--&&qn(L,v[w],0)>-1;);return w}function Ep(v,L){for(var w=v.length,D=0;w--;)v[w]===L&&++D;return D}var _p=Ms(jh),gp=Ms(ep);function Np(v){return"\\"+np[v]}function Tp(v,L){return v==null?i:v[L]}function zn(v){return Yh.test(v)}function vp(v){return Jh.test(v)}function bp(v){for(var L,w=[];!(L=v.next()).done;)w.push(L.value);return w}function Cs(v){var L=-1,w=Array(v.size);return v.forEach(function(D,X){w[++L]=[X,D]}),w}function tu(v,L){return function(w){return v(L(w))}}function dn(v,L){for(var w=-1,D=v.length,X=0,ie=[];++w<D;){var xe=v[w];(xe===L||xe===T)&&(v[w]=T,ie[X++]=w)}return ie}function li(v){var L=-1,w=Array(v.size);return v.forEach(function(D){w[++L]=D}),w}function mp(v){var L=-1,w=Array(v.size);return v.forEach(function(D){w[++L]=[D,D]}),w}function Ip(v,L,w){for(var D=w-1,X=v.length;++D<X;)if(v[D]===L)return D;return-1}function Ap(v,L,w){for(var D=w+1;D--;)if(v[D]===L)return D;return D}function Kn(v){return zn(v)?Lp(v):lp(v)}function At(v){return zn(v)?yp(v):cp(v)}function nu(v){for(var L=v.length;L--&&Eh.test(v.charAt(L)););return L}var wp=Ms(tp);function Lp(v){for(var L=ys.lastIndex=0;ys.test(v);)++L;return L}function yp(v){return v.match(ys)||[]}function xp(v){return v.match(Kh)||[]}var Sp=function v(L){L=L==null?Re:Yn.defaults(Re.Object(),L,Yn.pick(Re,Qh));var w=L.Array,D=L.Date,X=L.Error,ie=L.Function,xe=L.Math,ue=L.Object,Bs=L.RegExp,Op=L.String,Et=L.TypeError,ci=w.prototype,Pp=ie.prototype,Jn=ue.prototype,fi=L["__core-js_shared__"],hi=Pp.toString,oe=Jn.hasOwnProperty,Rp=0,ru=function(){var e=/[^.]+$/.exec(fi&&fi.keys&&fi.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),pi=Jn.toString,Dp=hi.call(ue),Mp=Re._,Up=Bs("^"+hi.call(oe).replace(bs,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),di=Go?L.Buffer:i,En=L.Symbol,Ei=L.Uint8Array,iu=di?di.allocUnsafe:i,_i=tu(ue.getPrototypeOf,ue),su=ue.create,au=Jn.propertyIsEnumerable,gi=ci.splice,ou=En?En.isConcatSpreadable:i,Ar=En?En.iterator:i,yn=En?En.toStringTag:i,Ni=function(){try{var e=Rn(ue,"defineProperty");return e({},"",{}),e}catch{}}(),kp=L.clearTimeout!==Re.clearTimeout&&L.clearTimeout,Fp=D&&D.now!==Re.Date.now&&D.now,Cp=L.setTimeout!==Re.setTimeout&&L.setTimeout,Ti=xe.ceil,vi=xe.floor,Gs=ue.getOwnPropertySymbols,Bp=di?di.isBuffer:i,uu=L.isFinite,Gp=ci.join,Vp=tu(ue.keys,ue),Se=xe.max,Ce=xe.min,$p=D.now,Wp=L.parseInt,lu=xe.random,Xp=ci.reverse,Vs=Rn(L,"DataView"),wr=Rn(L,"Map"),$s=Rn(L,"Promise"),Qn=Rn(L,"Set"),Lr=Rn(L,"WeakMap"),yr=Rn(ue,"create"),bi=Lr&&new Lr,Zn={},Hp=Dn(Vs),qp=Dn(wr),zp=Dn($s),Kp=Dn(Qn),Yp=Dn(Lr),mi=En?En.prototype:i,xr=mi?mi.valueOf:i,cu=mi?mi.toString:i;function h(e){if(ve(e)&&!H(e)&&!(e instanceof Z)){if(e instanceof _t)return e;if(oe.call(e,"__wrapped__"))return fl(e)}return new _t(e)}var jn=function(){function e(){}return function(n){if(!ge(n))return{};if(su)return su(n);e.prototype=n;var a=new e;return e.prototype=i,a}}();function Ii(){}function _t(e,n){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=i}h.templateSettings={escape:lh,evaluate:ch,interpolate:To,variable:"",imports:{_:h}},h.prototype=Ii.prototype,h.prototype.constructor=h,_t.prototype=jn(Ii.prototype),_t.prototype.constructor=_t;function Z(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Dt,this.__views__=[]}function Jp(){var e=new Z(this.__wrapped__);return e.__actions__=Ke(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Ke(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Ke(this.__views__),e}function Qp(){if(this.__filtered__){var e=new Z(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}function Zp(){var e=this.__wrapped__.value(),n=this.__dir__,a=H(e),u=n<0,c=a?e.length:0,p=cE(0,c,this.__views__),E=p.start,N=p.end,b=N-E,x=u?N:E-1,S=this.__iteratees__,O=S.length,R=0,k=Ce(b,this.__takeCount__);if(!a||!u&&c==b&&k==b)return Mu(e,this.__actions__);var G=[];e:for(;b--&&R<k;){x+=n;for(var K=-1,V=e[x];++K<O;){var Q=S[K],ee=Q.iteratee,st=Q.type,We=ee(V);if(st==qf)V=We;else if(!We){if(st==po)continue e;break e}}G[R++]=V}return G}Z.prototype=jn(Ii.prototype),Z.prototype.constructor=Z;function xn(e){var n=-1,a=e==null?0:e.length;for(this.clear();++n<a;){var u=e[n];this.set(u[0],u[1])}}function jp(){this.__data__=yr?yr(null):{},this.size=0}function ed(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}function td(e){var n=this.__data__;if(yr){var a=n[e];return a===m?i:a}return oe.call(n,e)?n[e]:i}function nd(e){var n=this.__data__;return yr?n[e]!==i:oe.call(n,e)}function rd(e,n){var a=this.__data__;return this.size+=this.has(e)?0:1,a[e]=yr&&n===i?m:n,this}xn.prototype.clear=jp,xn.prototype.delete=ed,xn.prototype.get=td,xn.prototype.has=nd,xn.prototype.set=rd;function Kt(e){var n=-1,a=e==null?0:e.length;for(this.clear();++n<a;){var u=e[n];this.set(u[0],u[1])}}function id(){this.__data__=[],this.size=0}function sd(e){var n=this.__data__,a=Ai(n,e);if(a<0)return!1;var u=n.length-1;return a==u?n.pop():gi.call(n,a,1),--this.size,!0}function ad(e){var n=this.__data__,a=Ai(n,e);return a<0?i:n[a][1]}function od(e){return Ai(this.__data__,e)>-1}function ud(e,n){var a=this.__data__,u=Ai(a,e);return u<0?(++this.size,a.push([e,n])):a[u][1]=n,this}Kt.prototype.clear=id,Kt.prototype.delete=sd,Kt.prototype.get=ad,Kt.prototype.has=od,Kt.prototype.set=ud;function Yt(e){var n=-1,a=e==null?0:e.length;for(this.clear();++n<a;){var u=e[n];this.set(u[0],u[1])}}function ld(){this.size=0,this.__data__={hash:new xn,map:new(wr||Kt),string:new xn}}function cd(e){var n=ki(this,e).delete(e);return this.size-=n?1:0,n}function fd(e){return ki(this,e).get(e)}function hd(e){return ki(this,e).has(e)}function pd(e,n){var a=ki(this,e),u=a.size;return a.set(e,n),this.size+=a.size==u?0:1,this}Yt.prototype.clear=ld,Yt.prototype.delete=cd,Yt.prototype.get=fd,Yt.prototype.has=hd,Yt.prototype.set=pd;function Sn(e){var n=-1,a=e==null?0:e.length;for(this.__data__=new Yt;++n<a;)this.add(e[n])}function dd(e){return this.__data__.set(e,m),this}function Ed(e){return this.__data__.has(e)}Sn.prototype.add=Sn.prototype.push=dd,Sn.prototype.has=Ed;function wt(e){var n=this.__data__=new Kt(e);this.size=n.size}function _d(){this.__data__=new Kt,this.size=0}function gd(e){var n=this.__data__,a=n.delete(e);return this.size=n.size,a}function Nd(e){return this.__data__.get(e)}function Td(e){return this.__data__.has(e)}function vd(e,n){var a=this.__data__;if(a instanceof Kt){var u=a.__data__;if(!wr||u.length<o-1)return u.push([e,n]),this.size=++a.size,this;a=this.__data__=new Yt(u)}return a.set(e,n),this.size=a.size,this}wt.prototype.clear=_d,wt.prototype.delete=gd,wt.prototype.get=Nd,wt.prototype.has=Td,wt.prototype.set=vd;function fu(e,n){var a=H(e),u=!a&&Mn(e),c=!a&&!u&&vn(e),p=!a&&!u&&!c&&rr(e),E=a||u||c||p,N=E?ks(e.length,Op):[],b=N.length;for(var x in e)(n||oe.call(e,x))&&!(E&&(x=="length"||c&&(x=="offset"||x=="parent")||p&&(x=="buffer"||x=="byteLength"||x=="byteOffset")||jt(x,b)))&&N.push(x);return N}function hu(e){var n=e.length;return n?e[js(0,n-1)]:i}function bd(e,n){return Fi(Ke(e),On(n,0,e.length))}function md(e){return Fi(Ke(e))}function Ws(e,n,a){(a!==i&&!Lt(e[n],a)||a===i&&!(n in e))&&Jt(e,n,a)}function Sr(e,n,a){var u=e[n];(!(oe.call(e,n)&&Lt(u,a))||a===i&&!(n in e))&&Jt(e,n,a)}function Ai(e,n){for(var a=e.length;a--;)if(Lt(e[a][0],n))return a;return-1}function Id(e,n,a,u){return _n(e,function(c,p,E){n(u,c,a(c),E)}),u}function pu(e,n){return e&&Ut(n,Oe(n),e)}function Ad(e,n){return e&&Ut(n,Je(n),e)}function Jt(e,n,a){n=="__proto__"&&Ni?Ni(e,n,{configurable:!0,enumerable:!0,value:a,writable:!0}):e[n]=a}function Xs(e,n){for(var a=-1,u=n.length,c=w(u),p=e==null;++a<u;)c[a]=p?i:Aa(e,n[a]);return c}function On(e,n,a){return e===e&&(a!==i&&(e=e<=a?e:a),n!==i&&(e=e>=n?e:n)),e}function gt(e,n,a,u,c,p){var E,N=n&y,b=n&$,x=n&J;if(a&&(E=c?a(e,u,c,p):a(e)),E!==i)return E;if(!ge(e))return e;var S=H(e);if(S){if(E=hE(e),!N)return Ke(e,E)}else{var O=Be(e),R=O==ni||O==Eo;if(vn(e))return Fu(e,N);if(O==zt||O==Wn||R&&!c){if(E=b||R?{}:nl(e),!N)return b?tE(e,Ad(E,e)):eE(e,pu(E,e))}else{if(!ce[O])return c?e:{};E=pE(e,O,N)}}p||(p=new wt);var k=p.get(e);if(k)return k;p.set(e,E),Pl(e)?e.forEach(function(V){E.add(gt(V,n,a,V,e,p))}):Sl(e)&&e.forEach(function(V,Q){E.set(Q,gt(V,n,a,Q,e,p))});var G=x?b?ca:la:b?Je:Oe,K=S?i:G(e);return dt(K||e,function(V,Q){K&&(Q=V,V=e[Q]),Sr(E,Q,gt(V,n,a,Q,e,p))}),E}function wd(e){var n=Oe(e);return function(a){return du(a,e,n)}}function du(e,n,a){var u=a.length;if(e==null)return!u;for(e=ue(e);u--;){var c=a[u],p=n[c],E=e[c];if(E===i&&!(c in e)||!p(E))return!1}return!0}function Eu(e,n,a){if(typeof e!="function")throw new Et(f);return kr(function(){e.apply(i,a)},n)}function Or(e,n,a,u){var c=-1,p=oi,E=!0,N=e.length,b=[],x=n.length;if(!N)return b;a&&(n=Ee(n,nt(a))),u?(p=Os,E=!1):n.length>=o&&(p=Ir,E=!1,n=new Sn(n));e:for(;++c<N;){var S=e[c],O=a==null?S:a(S);if(S=u||S!==0?S:0,E&&O===O){for(var R=x;R--;)if(n[R]===O)continue e;b.push(S)}else p(n,O,u)||b.push(S)}return b}var _n=$u(Mt),_u=$u(qs,!0);function Ld(e,n){var a=!0;return _n(e,function(u,c,p){return a=!!n(u,c,p),a}),a}function wi(e,n,a){for(var u=-1,c=e.length;++u<c;){var p=e[u],E=n(p);if(E!=null&&(N===i?E===E&&!it(E):a(E,N)))var N=E,b=p}return b}function yd(e,n,a,u){var c=e.length;for(a=z(a),a<0&&(a=-a>c?0:c+a),u=u===i||u>c?c:z(u),u<0&&(u+=c),u=a>u?0:Dl(u);a<u;)e[a++]=n;return e}function gu(e,n){var a=[];return _n(e,function(u,c,p){n(u,c,p)&&a.push(u)}),a}function De(e,n,a,u,c){var p=-1,E=e.length;for(a||(a=EE),c||(c=[]);++p<E;){var N=e[p];n>0&&a(N)?n>1?De(N,n-1,a,u,c):pn(c,N):u||(c[c.length]=N)}return c}var Hs=Wu(),Nu=Wu(!0);function Mt(e,n){return e&&Hs(e,n,Oe)}function qs(e,n){return e&&Nu(e,n,Oe)}function Li(e,n){return hn(n,function(a){return en(e[a])})}function Pn(e,n){n=Nn(n,e);for(var a=0,u=n.length;e!=null&&a<u;)e=e[kt(n[a++])];return a&&a==u?e:i}function Tu(e,n,a){var u=n(e);return H(e)?u:pn(u,a(e))}function Ve(e){return e==null?e===i?nh:eh:yn&&yn in ue(e)?lE(e):mE(e)}function zs(e,n){return e>n}function xd(e,n){return e!=null&&oe.call(e,n)}function Sd(e,n){return e!=null&&n in ue(e)}function Od(e,n,a){return e>=Ce(n,a)&&e<Se(n,a)}function Ks(e,n,a){for(var u=a?Os:oi,c=e[0].length,p=e.length,E=p,N=w(p),b=1/0,x=[];E--;){var S=e[E];E&&n&&(S=Ee(S,nt(n))),b=Ce(S.length,b),N[E]=!a&&(n||c>=120&&S.length>=120)?new Sn(E&&S):i}S=e[0];var O=-1,R=N[0];e:for(;++O<c&&x.length<b;){var k=S[O],G=n?n(k):k;if(k=a||k!==0?k:0,!(R?Ir(R,G):u(x,G,a))){for(E=p;--E;){var K=N[E];if(!(K?Ir(K,G):u(e[E],G,a)))continue e}R&&R.push(G),x.push(k)}}return x}function Pd(e,n,a,u){return Mt(e,function(c,p,E){n(u,a(c),p,E)}),u}function Pr(e,n,a){n=Nn(n,e),e=al(e,n);var u=e==null?e:e[kt(Tt(n))];return u==null?i:tt(u,e,a)}function vu(e){return ve(e)&&Ve(e)==Wn}function Rd(e){return ve(e)&&Ve(e)==mr}function Dd(e){return ve(e)&&Ve(e)==gr}function Rr(e,n,a,u,c){return e===n?!0:e==null||n==null||!ve(e)&&!ve(n)?e!==e&&n!==n:Md(e,n,a,u,Rr,c)}function Md(e,n,a,u,c,p){var E=H(e),N=H(n),b=E?ei:Be(e),x=N?ei:Be(n);b=b==Wn?zt:b,x=x==Wn?zt:x;var S=b==zt,O=x==zt,R=b==x;if(R&&vn(e)){if(!vn(n))return!1;E=!0,S=!1}if(R&&!S)return p||(p=new wt),E||rr(e)?ju(e,n,a,u,c,p):oE(e,n,b,a,u,c,p);if(!(a&ne)){var k=S&&oe.call(e,"__wrapped__"),G=O&&oe.call(n,"__wrapped__");if(k||G){var K=k?e.value():e,V=G?n.value():n;return p||(p=new wt),c(K,V,a,u,p)}}return R?(p||(p=new wt),uE(e,n,a,u,c,p)):!1}function Ud(e){return ve(e)&&Be(e)==mt}function Ys(e,n,a,u){var c=a.length,p=c,E=!u;if(e==null)return!p;for(e=ue(e);c--;){var N=a[c];if(E&&N[2]?N[1]!==e[N[0]]:!(N[0]in e))return!1}for(;++c<p;){N=a[c];var b=N[0],x=e[b],S=N[1];if(E&&N[2]){if(x===i&&!(b in e))return!1}else{var O=new wt;if(u)var R=u(x,S,b,e,n,O);if(!(R===i?Rr(S,x,ne|re,u,O):R))return!1}}return!0}function bu(e){if(!ge(e)||gE(e))return!1;var n=en(e)?Up:wh;return n.test(Dn(e))}function kd(e){return ve(e)&&Ve(e)==Tr}function Fd(e){return ve(e)&&Be(e)==It}function Cd(e){return ve(e)&&Wi(e.length)&&!!fe[Ve(e)]}function mu(e){return typeof e=="function"?e:e==null?Qe:typeof e=="object"?H(e)?wu(e[0],e[1]):Au(e):Xl(e)}function Js(e){if(!Ur(e))return Vp(e);var n=[];for(var a in ue(e))oe.call(e,a)&&a!="constructor"&&n.push(a);return n}function Bd(e){if(!ge(e))return bE(e);var n=Ur(e),a=[];for(var u in e)u=="constructor"&&(n||!oe.call(e,u))||a.push(u);return a}function Qs(e,n){return e<n}function Iu(e,n){var a=-1,u=Ye(e)?w(e.length):[];return _n(e,function(c,p,E){u[++a]=n(c,p,E)}),u}function Au(e){var n=ha(e);return n.length==1&&n[0][2]?il(n[0][0],n[0][1]):function(a){return a===e||Ys(a,e,n)}}function wu(e,n){return da(e)&&rl(n)?il(kt(e),n):function(a){var u=Aa(a,e);return u===i&&u===n?wa(a,e):Rr(n,u,ne|re)}}function yi(e,n,a,u,c){e!==n&&Hs(n,function(p,E){if(c||(c=new wt),ge(p))Gd(e,n,E,a,yi,u,c);else{var N=u?u(_a(e,E),p,E+"",e,n,c):i;N===i&&(N=p),Ws(e,E,N)}},Je)}function Gd(e,n,a,u,c,p,E){var N=_a(e,a),b=_a(n,a),x=E.get(b);if(x){Ws(e,a,x);return}var S=p?p(N,b,a+"",e,n,E):i,O=S===i;if(O){var R=H(b),k=!R&&vn(b),G=!R&&!k&&rr(b);S=b,R||k||G?H(N)?S=N:Ie(N)?S=Ke(N):k?(O=!1,S=Fu(b,!0)):G?(O=!1,S=Cu(b,!0)):S=[]:Fr(b)||Mn(b)?(S=N,Mn(N)?S=Ml(N):(!ge(N)||en(N))&&(S=nl(b))):O=!1}O&&(E.set(b,S),c(S,b,u,p,E),E.delete(b)),Ws(e,a,S)}function Lu(e,n){var a=e.length;if(a)return n+=n<0?a:0,jt(n,a)?e[n]:i}function yu(e,n,a){n.length?n=Ee(n,function(p){return H(p)?function(E){return Pn(E,p.length===1?p[0]:p)}:p}):n=[Qe];var u=-1;n=Ee(n,nt(B()));var c=Iu(e,function(p,E,N){var b=Ee(n,function(x){return x(p)});return{criteria:b,index:++u,value:p}});return pp(c,function(p,E){return jd(p,E,a)})}function Vd(e,n){return xu(e,n,function(a,u){return wa(e,u)})}function xu(e,n,a){for(var u=-1,c=n.length,p={};++u<c;){var E=n[u],N=Pn(e,E);a(N,E)&&Dr(p,Nn(E,e),N)}return p}function $d(e){return function(n){return Pn(n,e)}}function Zs(e,n,a,u){var c=u?hp:qn,p=-1,E=n.length,N=e;for(e===n&&(n=Ke(n)),a&&(N=Ee(e,nt(a)));++p<E;)for(var b=0,x=n[p],S=a?a(x):x;(b=c(N,S,b,u))>-1;)N!==e&&gi.call(N,b,1),gi.call(e,b,1);return e}function Su(e,n){for(var a=e?n.length:0,u=a-1;a--;){var c=n[a];if(a==u||c!==p){var p=c;jt(c)?gi.call(e,c,1):na(e,c)}}return e}function js(e,n){return e+vi(lu()*(n-e+1))}function Wd(e,n,a,u){for(var c=-1,p=Se(Ti((n-e)/(a||1)),0),E=w(p);p--;)E[u?p:++c]=e,e+=a;return E}function ea(e,n){var a="";if(!e||n<1||n>fn)return a;do n%2&&(a+=e),n=vi(n/2),n&&(e+=e);while(n);return a}function Y(e,n){return ga(sl(e,n,Qe),e+"")}function Xd(e){return hu(ir(e))}function Hd(e,n){var a=ir(e);return Fi(a,On(n,0,a.length))}function Dr(e,n,a,u){if(!ge(e))return e;n=Nn(n,e);for(var c=-1,p=n.length,E=p-1,N=e;N!=null&&++c<p;){var b=kt(n[c]),x=a;if(b==="__proto__"||b==="constructor"||b==="prototype")return e;if(c!=E){var S=N[b];x=u?u(S,b,N):i,x===i&&(x=ge(S)?S:jt(n[c+1])?[]:{})}Sr(N,b,x),N=N[b]}return e}var Ou=bi?function(e,n){return bi.set(e,n),e}:Qe,qd=Ni?function(e,n){return Ni(e,"toString",{configurable:!0,enumerable:!1,value:ya(n),writable:!0})}:Qe;function zd(e){return Fi(ir(e))}function Nt(e,n,a){var u=-1,c=e.length;n<0&&(n=-n>c?0:c+n),a=a>c?c:a,a<0&&(a+=c),c=n>a?0:a-n>>>0,n>>>=0;for(var p=w(c);++u<c;)p[u]=e[u+n];return p}function Kd(e,n){var a;return _n(e,function(u,c,p){return a=n(u,c,p),!a}),!!a}function xi(e,n,a){var u=0,c=e==null?u:e.length;if(typeof n=="number"&&n===n&&c<=Jf){for(;u<c;){var p=u+c>>>1,E=e[p];E!==null&&!it(E)&&(a?E<=n:E<n)?u=p+1:c=p}return c}return ta(e,n,Qe,a)}function ta(e,n,a,u){var c=0,p=e==null?0:e.length;if(p===0)return 0;n=a(n);for(var E=n!==n,N=n===null,b=it(n),x=n===i;c<p;){var S=vi((c+p)/2),O=a(e[S]),R=O!==i,k=O===null,G=O===O,K=it(O);if(E)var V=u||G;else x?V=G&&(u||R):N?V=G&&R&&(u||!k):b?V=G&&R&&!k&&(u||!K):k||K?V=!1:V=u?O<=n:O<n;V?c=S+1:p=S}return Ce(p,Yf)}function Pu(e,n){for(var a=-1,u=e.length,c=0,p=[];++a<u;){var E=e[a],N=n?n(E):E;if(!a||!Lt(N,b)){var b=N;p[c++]=E===0?0:E}}return p}function Ru(e){return typeof e=="number"?e:it(e)?jr:+e}function rt(e){if(typeof e=="string")return e;if(H(e))return Ee(e,rt)+"";if(it(e))return cu?cu.call(e):"";var n=e+"";return n=="0"&&1/e==-wn?"-0":n}function gn(e,n,a){var u=-1,c=oi,p=e.length,E=!0,N=[],b=N;if(a)E=!1,c=Os;else if(p>=o){var x=n?null:sE(e);if(x)return li(x);E=!1,c=Ir,b=new Sn}else b=n?[]:N;e:for(;++u<p;){var S=e[u],O=n?n(S):S;if(S=a||S!==0?S:0,E&&O===O){for(var R=b.length;R--;)if(b[R]===O)continue e;n&&b.push(O),N.push(S)}else c(b,O,a)||(b!==N&&b.push(O),N.push(S))}return N}function na(e,n){return n=Nn(n,e),e=al(e,n),e==null||delete e[kt(Tt(n))]}function Du(e,n,a,u){return Dr(e,n,a(Pn(e,n)),u)}function Si(e,n,a,u){for(var c=e.length,p=u?c:-1;(u?p--:++p<c)&&n(e[p],p,e););return a?Nt(e,u?0:p,u?p+1:c):Nt(e,u?p+1:0,u?c:p)}function Mu(e,n){var a=e;return a instanceof Z&&(a=a.value()),Ps(n,function(u,c){return c.func.apply(c.thisArg,pn([u],c.args))},a)}function ra(e,n,a){var u=e.length;if(u<2)return u?gn(e[0]):[];for(var c=-1,p=w(u);++c<u;)for(var E=e[c],N=-1;++N<u;)N!=c&&(p[c]=Or(p[c]||E,e[N],n,a));return gn(De(p,1),n,a)}function Uu(e,n,a){for(var u=-1,c=e.length,p=n.length,E={};++u<c;){var N=u<p?n[u]:i;a(E,e[u],N)}return E}function ia(e){return Ie(e)?e:[]}function sa(e){return typeof e=="function"?e:Qe}function Nn(e,n){return H(e)?e:da(e,n)?[e]:cl(ae(e))}var Yd=Y;function Tn(e,n,a){var u=e.length;return a=a===i?u:a,!n&&a>=u?e:Nt(e,n,a)}var ku=kp||function(e){return Re.clearTimeout(e)};function Fu(e,n){if(n)return e.slice();var a=e.length,u=iu?iu(a):new e.constructor(a);return e.copy(u),u}function aa(e){var n=new e.constructor(e.byteLength);return new Ei(n).set(new Ei(e)),n}function Jd(e,n){var a=n?aa(e.buffer):e.buffer;return new e.constructor(a,e.byteOffset,e.byteLength)}function Qd(e){var n=new e.constructor(e.source,vo.exec(e));return n.lastIndex=e.lastIndex,n}function Zd(e){return xr?ue(xr.call(e)):{}}function Cu(e,n){var a=n?aa(e.buffer):e.buffer;return new e.constructor(a,e.byteOffset,e.length)}function Bu(e,n){if(e!==n){var a=e!==i,u=e===null,c=e===e,p=it(e),E=n!==i,N=n===null,b=n===n,x=it(n);if(!N&&!x&&!p&&e>n||p&&E&&b&&!N&&!x||u&&E&&b||!a&&b||!c)return 1;if(!u&&!p&&!x&&e<n||x&&a&&c&&!u&&!p||N&&a&&c||!E&&c||!b)return-1}return 0}function jd(e,n,a){for(var u=-1,c=e.criteria,p=n.criteria,E=c.length,N=a.length;++u<E;){var b=Bu(c[u],p[u]);if(b){if(u>=N)return b;var x=a[u];return b*(x=="desc"?-1:1)}}return e.index-n.index}function Gu(e,n,a,u){for(var c=-1,p=e.length,E=a.length,N=-1,b=n.length,x=Se(p-E,0),S=w(b+x),O=!u;++N<b;)S[N]=n[N];for(;++c<E;)(O||c<p)&&(S[a[c]]=e[c]);for(;x--;)S[N++]=e[c++];return S}function Vu(e,n,a,u){for(var c=-1,p=e.length,E=-1,N=a.length,b=-1,x=n.length,S=Se(p-N,0),O=w(S+x),R=!u;++c<S;)O[c]=e[c];for(var k=c;++b<x;)O[k+b]=n[b];for(;++E<N;)(R||c<p)&&(O[k+a[E]]=e[c++]);return O}function Ke(e,n){var a=-1,u=e.length;for(n||(n=w(u));++a<u;)n[a]=e[a];return n}function Ut(e,n,a,u){var c=!a;a||(a={});for(var p=-1,E=n.length;++p<E;){var N=n[p],b=u?u(a[N],e[N],N,a,e):i;b===i&&(b=e[N]),c?Jt(a,N,b):Sr(a,N,b)}return a}function eE(e,n){return Ut(e,pa(e),n)}function tE(e,n){return Ut(e,el(e),n)}function Oi(e,n){return function(a,u){var c=H(a)?ap:Id,p=n?n():{};return c(a,e,B(u,2),p)}}function er(e){return Y(function(n,a){var u=-1,c=a.length,p=c>1?a[c-1]:i,E=c>2?a[2]:i;for(p=e.length>3&&typeof p=="function"?(c--,p):i,E&&$e(a[0],a[1],E)&&(p=c<3?i:p,c=1),n=ue(n);++u<c;){var N=a[u];N&&e(n,N,u,p)}return n})}function $u(e,n){return function(a,u){if(a==null)return a;if(!Ye(a))return e(a,u);for(var c=a.length,p=n?c:-1,E=ue(a);(n?p--:++p<c)&&u(E[p],p,E)!==!1;);return a}}function Wu(e){return function(n,a,u){for(var c=-1,p=ue(n),E=u(n),N=E.length;N--;){var b=E[e?N:++c];if(a(p[b],b,p)===!1)break}return n}}function nE(e,n,a){var u=n&j,c=Mr(e);function p(){var E=this&&this!==Re&&this instanceof p?c:e;return E.apply(u?a:this,arguments)}return p}function Xu(e){return function(n){n=ae(n);var a=zn(n)?At(n):i,u=a?a[0]:n.charAt(0),c=a?Tn(a,1).join(""):n.slice(1);return u[e]()+c}}function tr(e){return function(n){return Ps($l(Vl(n).replace(qh,"")),e,"")}}function Mr(e){return function(){var n=arguments;switch(n.length){case 0:return new e;case 1:return new e(n[0]);case 2:return new e(n[0],n[1]);case 3:return new e(n[0],n[1],n[2]);case 4:return new e(n[0],n[1],n[2],n[3]);case 5:return new e(n[0],n[1],n[2],n[3],n[4]);case 6:return new e(n[0],n[1],n[2],n[3],n[4],n[5]);case 7:return new e(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var a=jn(e.prototype),u=e.apply(a,n);return ge(u)?u:a}}function rE(e,n,a){var u=Mr(e);function c(){for(var p=arguments.length,E=w(p),N=p,b=nr(c);N--;)E[N]=arguments[N];var x=p<3&&E[0]!==b&&E[p-1]!==b?[]:dn(E,b);if(p-=x.length,p<a)return Yu(e,n,Pi,c.placeholder,i,E,x,i,i,a-p);var S=this&&this!==Re&&this instanceof c?u:e;return tt(S,this,E)}return c}function Hu(e){return function(n,a,u){var c=ue(n);if(!Ye(n)){var p=B(a,3);n=Oe(n),a=function(N){return p(c[N],N,c)}}var E=e(n,a,u);return E>-1?c[p?n[E]:E]:i}}function qu(e){return Zt(function(n){var a=n.length,u=a,c=_t.prototype.thru;for(e&&n.reverse();u--;){var p=n[u];if(typeof p!="function")throw new Et(f);if(c&&!E&&Ui(p)=="wrapper")var E=new _t([],!0)}for(u=E?u:a;++u<a;){p=n[u];var N=Ui(p),b=N=="wrapper"?fa(p):i;b&&Ea(b[0])&&b[1]==(qt|ht|ze|Er)&&!b[4].length&&b[9]==1?E=E[Ui(b[0])].apply(E,b[3]):E=p.length==1&&Ea(p)?E[N]():E.thru(p)}return function(){var x=arguments,S=x[0];if(E&&x.length==1&&H(S))return E.plant(S).value();for(var O=0,R=a?n[O].apply(this,x):S;++O<a;)R=n[O].call(this,R);return R}})}function Pi(e,n,a,u,c,p,E,N,b,x){var S=n&qt,O=n&j,R=n&de,k=n&(ht|Rt),G=n&fs,K=R?i:Mr(e);function V(){for(var Q=arguments.length,ee=w(Q),st=Q;st--;)ee[st]=arguments[st];if(k)var We=nr(V),at=Ep(ee,We);if(u&&(ee=Gu(ee,u,c,k)),p&&(ee=Vu(ee,p,E,k)),Q-=at,k&&Q<x){var Ae=dn(ee,We);return Yu(e,n,Pi,V.placeholder,a,ee,Ae,N,b,x-Q)}var yt=O?a:this,nn=R?yt[e]:e;return Q=ee.length,N?ee=IE(ee,N):G&&Q>1&&ee.reverse(),S&&b<Q&&(ee.length=b),this&&this!==Re&&this instanceof V&&(nn=K||Mr(nn)),nn.apply(yt,ee)}return V}function zu(e,n){return function(a,u){return Pd(a,e,n(u),{})}}function Ri(e,n){return function(a,u){var c;if(a===i&&u===i)return n;if(a!==i&&(c=a),u!==i){if(c===i)return u;typeof a=="string"||typeof u=="string"?(a=rt(a),u=rt(u)):(a=Ru(a),u=Ru(u)),c=e(a,u)}return c}}function oa(e){return Zt(function(n){return n=Ee(n,nt(B())),Y(function(a){var u=this;return e(n,function(c){return tt(c,u,a)})})})}function Di(e,n){n=n===i?" ":rt(n);var a=n.length;if(a<2)return a?ea(n,e):n;var u=ea(n,Ti(e/Kn(n)));return zn(n)?Tn(At(u),0,e).join(""):u.slice(0,e)}function iE(e,n,a,u){var c=n&j,p=Mr(e);function E(){for(var N=-1,b=arguments.length,x=-1,S=u.length,O=w(S+b),R=this&&this!==Re&&this instanceof E?p:e;++x<S;)O[x]=u[x];for(;b--;)O[x++]=arguments[++N];return tt(R,c?a:this,O)}return E}function Ku(e){return function(n,a,u){return u&&typeof u!="number"&&$e(n,a,u)&&(a=u=i),n=tn(n),a===i?(a=n,n=0):a=tn(a),u=u===i?n<a?1:-1:tn(u),Wd(n,a,u,e)}}function Mi(e){return function(n,a){return typeof n=="string"&&typeof a=="string"||(n=vt(n),a=vt(a)),e(n,a)}}function Yu(e,n,a,u,c,p,E,N,b,x){var S=n&ht,O=S?E:i,R=S?i:E,k=S?p:i,G=S?i:p;n|=S?ze:dr,n&=~(S?dr:ze),n&et||(n&=-4);var K=[e,n,c,k,O,G,R,N,b,x],V=a.apply(i,K);return Ea(e)&&ol(V,K),V.placeholder=u,ul(V,e,n)}function ua(e){var n=xe[e];return function(a,u){if(a=vt(a),u=u==null?0:Ce(z(u),292),u&&uu(a)){var c=(ae(a)+"e").split("e"),p=n(c[0]+"e"+(+c[1]+u));return c=(ae(p)+"e").split("e"),+(c[0]+"e"+(+c[1]-u))}return n(a)}}var sE=Qn&&1/li(new Qn([,-0]))[1]==wn?function(e){return new Qn(e)}:Oa;function Ju(e){return function(n){var a=Be(n);return a==mt?Cs(n):a==It?mp(n):dp(n,e(n))}}function Qt(e,n,a,u,c,p,E,N){var b=n&de;if(!b&&typeof e!="function")throw new Et(f);var x=u?u.length:0;if(x||(n&=-97,u=c=i),E=E===i?E:Se(z(E),0),N=N===i?N:z(N),x-=c?c.length:0,n&dr){var S=u,O=c;u=c=i}var R=b?i:fa(e),k=[e,n,a,u,c,S,O,p,E,N];if(R&&vE(k,R),e=k[0],n=k[1],a=k[2],u=k[3],c=k[4],N=k[9]=k[9]===i?b?0:e.length:Se(k[9]-x,0),!N&&n&(ht|Rt)&&(n&=-25),!n||n==j)var G=nE(e,n,a);else n==ht||n==Rt?G=rE(e,n,N):(n==ze||n==(j|ze))&&!c.length?G=iE(e,n,a,u):G=Pi.apply(i,k);var K=R?Ou:ol;return ul(K(G,k),e,n)}function Qu(e,n,a,u){return e===i||Lt(e,Jn[a])&&!oe.call(u,a)?n:e}function Zu(e,n,a,u,c,p){return ge(e)&&ge(n)&&(p.set(n,e),yi(e,n,i,Zu,p),p.delete(n)),e}function aE(e){return Fr(e)?i:e}function ju(e,n,a,u,c,p){var E=a&ne,N=e.length,b=n.length;if(N!=b&&!(E&&b>N))return!1;var x=p.get(e),S=p.get(n);if(x&&S)return x==n&&S==e;var O=-1,R=!0,k=a&re?new Sn:i;for(p.set(e,n),p.set(n,e);++O<N;){var G=e[O],K=n[O];if(u)var V=E?u(K,G,O,n,e,p):u(G,K,O,e,n,p);if(V!==i){if(V)continue;R=!1;break}if(k){if(!Rs(n,function(Q,ee){if(!Ir(k,ee)&&(G===Q||c(G,Q,a,u,p)))return k.push(ee)})){R=!1;break}}else if(!(G===K||c(G,K,a,u,p))){R=!1;break}}return p.delete(e),p.delete(n),R}function oE(e,n,a,u,c,p,E){switch(a){case Xn:if(e.byteLength!=n.byteLength||e.byteOffset!=n.byteOffset)return!1;e=e.buffer,n=n.buffer;case mr:return!(e.byteLength!=n.byteLength||!p(new Ei(e),new Ei(n)));case _r:case gr:case Nr:return Lt(+e,+n);case ti:return e.name==n.name&&e.message==n.message;case Tr:case vr:return e==n+"";case mt:var N=Cs;case It:var b=u&ne;if(N||(N=li),e.size!=n.size&&!b)return!1;var x=E.get(e);if(x)return x==n;u|=re,E.set(e,n);var S=ju(N(e),N(n),u,c,p,E);return E.delete(e),S;case ri:if(xr)return xr.call(e)==xr.call(n)}return!1}function uE(e,n,a,u,c,p){var E=a&ne,N=la(e),b=N.length,x=la(n),S=x.length;if(b!=S&&!E)return!1;for(var O=b;O--;){var R=N[O];if(!(E?R in n:oe.call(n,R)))return!1}var k=p.get(e),G=p.get(n);if(k&&G)return k==n&&G==e;var K=!0;p.set(e,n),p.set(n,e);for(var V=E;++O<b;){R=N[O];var Q=e[R],ee=n[R];if(u)var st=E?u(ee,Q,R,n,e,p):u(Q,ee,R,e,n,p);if(!(st===i?Q===ee||c(Q,ee,a,u,p):st)){K=!1;break}V||(V=R=="constructor")}if(K&&!V){var We=e.constructor,at=n.constructor;We!=at&&"constructor"in e&&"constructor"in n&&!(typeof We=="function"&&We instanceof We&&typeof at=="function"&&at instanceof at)&&(K=!1)}return p.delete(e),p.delete(n),K}function Zt(e){return ga(sl(e,i,dl),e+"")}function la(e){return Tu(e,Oe,pa)}function ca(e){return Tu(e,Je,el)}var fa=bi?function(e){return bi.get(e)}:Oa;function Ui(e){for(var n=e.name+"",a=Zn[n],u=oe.call(Zn,n)?a.length:0;u--;){var c=a[u],p=c.func;if(p==null||p==e)return c.name}return n}function nr(e){var n=oe.call(h,"placeholder")?h:e;return n.placeholder}function B(){var e=h.iteratee||xa;return e=e===xa?mu:e,arguments.length?e(arguments[0],arguments[1]):e}function ki(e,n){var a=e.__data__;return _E(n)?a[typeof n=="string"?"string":"hash"]:a.map}function ha(e){for(var n=Oe(e),a=n.length;a--;){var u=n[a],c=e[u];n[a]=[u,c,rl(c)]}return n}function Rn(e,n){var a=Tp(e,n);return bu(a)?a:i}function lE(e){var n=oe.call(e,yn),a=e[yn];try{e[yn]=i;var u=!0}catch{}var c=pi.call(e);return u&&(n?e[yn]=a:delete e[yn]),c}var pa=Gs?function(e){return e==null?[]:(e=ue(e),hn(Gs(e),function(n){return au.call(e,n)}))}:Pa,el=Gs?function(e){for(var n=[];e;)pn(n,pa(e)),e=_i(e);return n}:Pa,Be=Ve;(Vs&&Be(new Vs(new ArrayBuffer(1)))!=Xn||wr&&Be(new wr)!=mt||$s&&Be($s.resolve())!=_o||Qn&&Be(new Qn)!=It||Lr&&Be(new Lr)!=br)&&(Be=function(e){var n=Ve(e),a=n==zt?e.constructor:i,u=a?Dn(a):"";if(u)switch(u){case Hp:return Xn;case qp:return mt;case zp:return _o;case Kp:return It;case Yp:return br}return n});function cE(e,n,a){for(var u=-1,c=a.length;++u<c;){var p=a[u],E=p.size;switch(p.type){case"drop":e+=E;break;case"dropRight":n-=E;break;case"take":n=Ce(n,e+E);break;case"takeRight":e=Se(e,n-E);break}}return{start:e,end:n}}function fE(e){var n=e.match(gh);return n?n[1].split(Nh):[]}function tl(e,n,a){n=Nn(n,e);for(var u=-1,c=n.length,p=!1;++u<c;){var E=kt(n[u]);if(!(p=e!=null&&a(e,E)))break;e=e[E]}return p||++u!=c?p:(c=e==null?0:e.length,!!c&&Wi(c)&&jt(E,c)&&(H(e)||Mn(e)))}function hE(e){var n=e.length,a=new e.constructor(n);return n&&typeof e[0]=="string"&&oe.call(e,"index")&&(a.index=e.index,a.input=e.input),a}function nl(e){return typeof e.constructor=="function"&&!Ur(e)?jn(_i(e)):{}}function pE(e,n,a){var u=e.constructor;switch(n){case mr:return aa(e);case _r:case gr:return new u(+e);case Xn:return Jd(e,a);case hs:case ps:case ds:case Es:case _s:case gs:case Ns:case Ts:case vs:return Cu(e,a);case mt:return new u;case Nr:case vr:return new u(e);case Tr:return Qd(e);case It:return new u;case ri:return Zd(e)}}function dE(e,n){var a=n.length;if(!a)return e;var u=a-1;return n[u]=(a>1?"& ":"")+n[u],n=n.join(a>2?", ":" "),e.replace(_h,`{
10
+ /* [wrapped with `+n+`] */
11
+ `)}function EE(e){return H(e)||Mn(e)||!!(ou&&e&&e[ou])}function jt(e,n){var a=typeof e;return n=n??fn,!!n&&(a=="number"||a!="symbol"&&yh.test(e))&&e>-1&&e%1==0&&e<n}function $e(e,n,a){if(!ge(a))return!1;var u=typeof n;return(u=="number"?Ye(a)&&jt(n,a.length):u=="string"&&n in a)?Lt(a[n],e):!1}function da(e,n){if(H(e))return!1;var a=typeof e;return a=="number"||a=="symbol"||a=="boolean"||e==null||it(e)?!0:hh.test(e)||!fh.test(e)||n!=null&&e in ue(n)}function _E(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}function Ea(e){var n=Ui(e),a=h[n];if(typeof a!="function"||!(n in Z.prototype))return!1;if(e===a)return!0;var u=fa(a);return!!u&&e===u[0]}function gE(e){return!!ru&&ru in e}var NE=fi?en:Ra;function Ur(e){var n=e&&e.constructor,a=typeof n=="function"&&n.prototype||Jn;return e===a}function rl(e){return e===e&&!ge(e)}function il(e,n){return function(a){return a==null?!1:a[e]===n&&(n!==i||e in ue(a))}}function TE(e){var n=Vi(e,function(u){return a.size===I&&a.clear(),u}),a=n.cache;return n}function vE(e,n){var a=e[1],u=n[1],c=a|u,p=c<(j|de|qt),E=u==qt&&a==ht||u==qt&&a==Er&&e[7].length<=n[8]||u==(qt|Er)&&n[7].length<=n[8]&&a==ht;if(!(p||E))return e;u&j&&(e[2]=n[2],c|=a&j?0:et);var N=n[3];if(N){var b=e[3];e[3]=b?Gu(b,N,n[4]):N,e[4]=b?dn(e[3],T):n[4]}return N=n[5],N&&(b=e[5],e[5]=b?Vu(b,N,n[6]):N,e[6]=b?dn(e[5],T):n[6]),N=n[7],N&&(e[7]=N),u&qt&&(e[8]=e[8]==null?n[8]:Ce(e[8],n[8])),e[9]==null&&(e[9]=n[9]),e[0]=n[0],e[1]=c,e}function bE(e){var n=[];if(e!=null)for(var a in ue(e))n.push(a);return n}function mE(e){return pi.call(e)}function sl(e,n,a){return n=Se(n===i?e.length-1:n,0),function(){for(var u=arguments,c=-1,p=Se(u.length-n,0),E=w(p);++c<p;)E[c]=u[n+c];c=-1;for(var N=w(n+1);++c<n;)N[c]=u[c];return N[n]=a(E),tt(e,this,N)}}function al(e,n){return n.length<2?e:Pn(e,Nt(n,0,-1))}function IE(e,n){for(var a=e.length,u=Ce(n.length,a),c=Ke(e);u--;){var p=n[u];e[u]=jt(p,a)?c[p]:i}return e}function _a(e,n){if(!(n==="constructor"&&typeof e[n]=="function")&&n!="__proto__")return e[n]}var ol=ll(Ou),kr=Cp||function(e,n){return Re.setTimeout(e,n)},ga=ll(qd);function ul(e,n,a){var u=n+"";return ga(e,dE(u,AE(fE(u),a)))}function ll(e){var n=0,a=0;return function(){var u=$p(),c=Hf-(u-a);if(a=u,c>0){if(++n>=Xf)return arguments[0]}else n=0;return e.apply(i,arguments)}}function Fi(e,n){var a=-1,u=e.length,c=u-1;for(n=n===i?u:n;++a<n;){var p=js(a,c),E=e[p];e[p]=e[a],e[a]=E}return e.length=n,e}var cl=TE(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(ph,function(a,u,c,p){n.push(c?p.replace(bh,"$1"):u||a)}),n});function kt(e){if(typeof e=="string"||it(e))return e;var n=e+"";return n=="0"&&1/e==-wn?"-0":n}function Dn(e){if(e!=null){try{return hi.call(e)}catch{}try{return e+""}catch{}}return""}function AE(e,n){return dt(Qf,function(a){var u="_."+a[0];n&a[1]&&!oi(e,u)&&e.push(u)}),e.sort()}function fl(e){if(e instanceof Z)return e.clone();var n=new _t(e.__wrapped__,e.__chain__);return n.__actions__=Ke(e.__actions__),n.__index__=e.__index__,n.__values__=e.__values__,n}function wE(e,n,a){(a?$e(e,n,a):n===i)?n=1:n=Se(z(n),0);var u=e==null?0:e.length;if(!u||n<1)return[];for(var c=0,p=0,E=w(Ti(u/n));c<u;)E[p++]=Nt(e,c,c+=n);return E}function LE(e){for(var n=-1,a=e==null?0:e.length,u=0,c=[];++n<a;){var p=e[n];p&&(c[u++]=p)}return c}function yE(){var e=arguments.length;if(!e)return[];for(var n=w(e-1),a=arguments[0],u=e;u--;)n[u-1]=arguments[u];return pn(H(a)?Ke(a):[a],De(n,1))}var xE=Y(function(e,n){return Ie(e)?Or(e,De(n,1,Ie,!0)):[]}),SE=Y(function(e,n){var a=Tt(n);return Ie(a)&&(a=i),Ie(e)?Or(e,De(n,1,Ie,!0),B(a,2)):[]}),OE=Y(function(e,n){var a=Tt(n);return Ie(a)&&(a=i),Ie(e)?Or(e,De(n,1,Ie,!0),i,a):[]});function PE(e,n,a){var u=e==null?0:e.length;return u?(n=a||n===i?1:z(n),Nt(e,n<0?0:n,u)):[]}function RE(e,n,a){var u=e==null?0:e.length;return u?(n=a||n===i?1:z(n),n=u-n,Nt(e,0,n<0?0:n)):[]}function DE(e,n){return e&&e.length?Si(e,B(n,3),!0,!0):[]}function ME(e,n){return e&&e.length?Si(e,B(n,3),!0):[]}function UE(e,n,a,u){var c=e==null?0:e.length;return c?(a&&typeof a!="number"&&$e(e,n,a)&&(a=0,u=c),yd(e,n,a,u)):[]}function hl(e,n,a){var u=e==null?0:e.length;if(!u)return-1;var c=a==null?0:z(a);return c<0&&(c=Se(u+c,0)),ui(e,B(n,3),c)}function pl(e,n,a){var u=e==null?0:e.length;if(!u)return-1;var c=u-1;return a!==i&&(c=z(a),c=a<0?Se(u+c,0):Ce(c,u-1)),ui(e,B(n,3),c,!0)}function dl(e){var n=e==null?0:e.length;return n?De(e,1):[]}function kE(e){var n=e==null?0:e.length;return n?De(e,wn):[]}function FE(e,n){var a=e==null?0:e.length;return a?(n=n===i?1:z(n),De(e,n)):[]}function CE(e){for(var n=-1,a=e==null?0:e.length,u={};++n<a;){var c=e[n];u[c[0]]=c[1]}return u}function El(e){return e&&e.length?e[0]:i}function BE(e,n,a){var u=e==null?0:e.length;if(!u)return-1;var c=a==null?0:z(a);return c<0&&(c=Se(u+c,0)),qn(e,n,c)}function GE(e){var n=e==null?0:e.length;return n?Nt(e,0,-1):[]}var VE=Y(function(e){var n=Ee(e,ia);return n.length&&n[0]===e[0]?Ks(n):[]}),$E=Y(function(e){var n=Tt(e),a=Ee(e,ia);return n===Tt(a)?n=i:a.pop(),a.length&&a[0]===e[0]?Ks(a,B(n,2)):[]}),WE=Y(function(e){var n=Tt(e),a=Ee(e,ia);return n=typeof n=="function"?n:i,n&&a.pop(),a.length&&a[0]===e[0]?Ks(a,i,n):[]});function XE(e,n){return e==null?"":Gp.call(e,n)}function Tt(e){var n=e==null?0:e.length;return n?e[n-1]:i}function HE(e,n,a){var u=e==null?0:e.length;if(!u)return-1;var c=u;return a!==i&&(c=z(a),c=c<0?Se(u+c,0):Ce(c,u-1)),n===n?Ap(e,n,c):ui(e,Yo,c,!0)}function qE(e,n){return e&&e.length?Lu(e,z(n)):i}var zE=Y(_l);function _l(e,n){return e&&e.length&&n&&n.length?Zs(e,n):e}function KE(e,n,a){return e&&e.length&&n&&n.length?Zs(e,n,B(a,2)):e}function YE(e,n,a){return e&&e.length&&n&&n.length?Zs(e,n,i,a):e}var JE=Zt(function(e,n){var a=e==null?0:e.length,u=Xs(e,n);return Su(e,Ee(n,function(c){return jt(c,a)?+c:c}).sort(Bu)),u});function QE(e,n){var a=[];if(!(e&&e.length))return a;var u=-1,c=[],p=e.length;for(n=B(n,3);++u<p;){var E=e[u];n(E,u,e)&&(a.push(E),c.push(u))}return Su(e,c),a}function Na(e){return e==null?e:Xp.call(e)}function ZE(e,n,a){var u=e==null?0:e.length;return u?(a&&typeof a!="number"&&$e(e,n,a)?(n=0,a=u):(n=n==null?0:z(n),a=a===i?u:z(a)),Nt(e,n,a)):[]}function jE(e,n){return xi(e,n)}function e_(e,n,a){return ta(e,n,B(a,2))}function t_(e,n){var a=e==null?0:e.length;if(a){var u=xi(e,n);if(u<a&&Lt(e[u],n))return u}return-1}function n_(e,n){return xi(e,n,!0)}function r_(e,n,a){return ta(e,n,B(a,2),!0)}function i_(e,n){var a=e==null?0:e.length;if(a){var u=xi(e,n,!0)-1;if(Lt(e[u],n))return u}return-1}function s_(e){return e&&e.length?Pu(e):[]}function a_(e,n){return e&&e.length?Pu(e,B(n,2)):[]}function o_(e){var n=e==null?0:e.length;return n?Nt(e,1,n):[]}function u_(e,n,a){return e&&e.length?(n=a||n===i?1:z(n),Nt(e,0,n<0?0:n)):[]}function l_(e,n,a){var u=e==null?0:e.length;return u?(n=a||n===i?1:z(n),n=u-n,Nt(e,n<0?0:n,u)):[]}function c_(e,n){return e&&e.length?Si(e,B(n,3),!1,!0):[]}function f_(e,n){return e&&e.length?Si(e,B(n,3)):[]}var h_=Y(function(e){return gn(De(e,1,Ie,!0))}),p_=Y(function(e){var n=Tt(e);return Ie(n)&&(n=i),gn(De(e,1,Ie,!0),B(n,2))}),d_=Y(function(e){var n=Tt(e);return n=typeof n=="function"?n:i,gn(De(e,1,Ie,!0),i,n)});function E_(e){return e&&e.length?gn(e):[]}function __(e,n){return e&&e.length?gn(e,B(n,2)):[]}function g_(e,n){return n=typeof n=="function"?n:i,e&&e.length?gn(e,i,n):[]}function Ta(e){if(!(e&&e.length))return[];var n=0;return e=hn(e,function(a){if(Ie(a))return n=Se(a.length,n),!0}),ks(n,function(a){return Ee(e,Ds(a))})}function gl(e,n){if(!(e&&e.length))return[];var a=Ta(e);return n==null?a:Ee(a,function(u){return tt(n,i,u)})}var N_=Y(function(e,n){return Ie(e)?Or(e,n):[]}),T_=Y(function(e){return ra(hn(e,Ie))}),v_=Y(function(e){var n=Tt(e);return Ie(n)&&(n=i),ra(hn(e,Ie),B(n,2))}),b_=Y(function(e){var n=Tt(e);return n=typeof n=="function"?n:i,ra(hn(e,Ie),i,n)}),m_=Y(Ta);function I_(e,n){return Uu(e||[],n||[],Sr)}function A_(e,n){return Uu(e||[],n||[],Dr)}var w_=Y(function(e){var n=e.length,a=n>1?e[n-1]:i;return a=typeof a=="function"?(e.pop(),a):i,gl(e,a)});function Nl(e){var n=h(e);return n.__chain__=!0,n}function L_(e,n){return n(e),e}function Ci(e,n){return n(e)}var y_=Zt(function(e){var n=e.length,a=n?e[0]:0,u=this.__wrapped__,c=function(p){return Xs(p,e)};return n>1||this.__actions__.length||!(u instanceof Z)||!jt(a)?this.thru(c):(u=u.slice(a,+a+(n?1:0)),u.__actions__.push({func:Ci,args:[c],thisArg:i}),new _t(u,this.__chain__).thru(function(p){return n&&!p.length&&p.push(i),p}))});function x_(){return Nl(this)}function S_(){return new _t(this.value(),this.__chain__)}function O_(){this.__values__===i&&(this.__values__=Rl(this.value()));var e=this.__index__>=this.__values__.length,n=e?i:this.__values__[this.__index__++];return{done:e,value:n}}function P_(){return this}function R_(e){for(var n,a=this;a instanceof Ii;){var u=fl(a);u.__index__=0,u.__values__=i,n?c.__wrapped__=u:n=u;var c=u;a=a.__wrapped__}return c.__wrapped__=e,n}function D_(){var e=this.__wrapped__;if(e instanceof Z){var n=e;return this.__actions__.length&&(n=new Z(this)),n=n.reverse(),n.__actions__.push({func:Ci,args:[Na],thisArg:i}),new _t(n,this.__chain__)}return this.thru(Na)}function M_(){return Mu(this.__wrapped__,this.__actions__)}var U_=Oi(function(e,n,a){oe.call(e,a)?++e[a]:Jt(e,a,1)});function k_(e,n,a){var u=H(e)?zo:Ld;return a&&$e(e,n,a)&&(n=i),u(e,B(n,3))}function F_(e,n){var a=H(e)?hn:gu;return a(e,B(n,3))}var C_=Hu(hl),B_=Hu(pl);function G_(e,n){return De(Bi(e,n),1)}function V_(e,n){return De(Bi(e,n),wn)}function $_(e,n,a){return a=a===i?1:z(a),De(Bi(e,n),a)}function Tl(e,n){var a=H(e)?dt:_n;return a(e,B(n,3))}function vl(e,n){var a=H(e)?op:_u;return a(e,B(n,3))}var W_=Oi(function(e,n,a){oe.call(e,a)?e[a].push(n):Jt(e,a,[n])});function X_(e,n,a,u){e=Ye(e)?e:ir(e),a=a&&!u?z(a):0;var c=e.length;return a<0&&(a=Se(c+a,0)),Xi(e)?a<=c&&e.indexOf(n,a)>-1:!!c&&qn(e,n,a)>-1}var H_=Y(function(e,n,a){var u=-1,c=typeof n=="function",p=Ye(e)?w(e.length):[];return _n(e,function(E){p[++u]=c?tt(n,E,a):Pr(E,n,a)}),p}),q_=Oi(function(e,n,a){Jt(e,a,n)});function Bi(e,n){var a=H(e)?Ee:Iu;return a(e,B(n,3))}function z_(e,n,a,u){return e==null?[]:(H(n)||(n=n==null?[]:[n]),a=u?i:a,H(a)||(a=a==null?[]:[a]),yu(e,n,a))}var K_=Oi(function(e,n,a){e[a?0:1].push(n)},function(){return[[],[]]});function Y_(e,n,a){var u=H(e)?Ps:Qo,c=arguments.length<3;return u(e,B(n,4),a,c,_n)}function J_(e,n,a){var u=H(e)?up:Qo,c=arguments.length<3;return u(e,B(n,4),a,c,_u)}function Q_(e,n){var a=H(e)?hn:gu;return a(e,$i(B(n,3)))}function Z_(e){var n=H(e)?hu:Xd;return n(e)}function j_(e,n,a){(a?$e(e,n,a):n===i)?n=1:n=z(n);var u=H(e)?bd:Hd;return u(e,n)}function eg(e){var n=H(e)?md:zd;return n(e)}function tg(e){if(e==null)return 0;if(Ye(e))return Xi(e)?Kn(e):e.length;var n=Be(e);return n==mt||n==It?e.size:Js(e).length}function ng(e,n,a){var u=H(e)?Rs:Kd;return a&&$e(e,n,a)&&(n=i),u(e,B(n,3))}var rg=Y(function(e,n){if(e==null)return[];var a=n.length;return a>1&&$e(e,n[0],n[1])?n=[]:a>2&&$e(n[0],n[1],n[2])&&(n=[n[0]]),yu(e,De(n,1),[])}),Gi=Fp||function(){return Re.Date.now()};function ig(e,n){if(typeof n!="function")throw new Et(f);return e=z(e),function(){if(--e<1)return n.apply(this,arguments)}}function bl(e,n,a){return n=a?i:n,n=e&&n==null?e.length:n,Qt(e,qt,i,i,i,i,n)}function ml(e,n){var a;if(typeof n!="function")throw new Et(f);return e=z(e),function(){return--e>0&&(a=n.apply(this,arguments)),e<=1&&(n=i),a}}var va=Y(function(e,n,a){var u=j;if(a.length){var c=dn(a,nr(va));u|=ze}return Qt(e,u,n,a,c)}),Il=Y(function(e,n,a){var u=j|de;if(a.length){var c=dn(a,nr(Il));u|=ze}return Qt(n,u,e,a,c)});function Al(e,n,a){n=a?i:n;var u=Qt(e,ht,i,i,i,i,i,n);return u.placeholder=Al.placeholder,u}function wl(e,n,a){n=a?i:n;var u=Qt(e,Rt,i,i,i,i,i,n);return u.placeholder=wl.placeholder,u}function Ll(e,n,a){var u,c,p,E,N,b,x=0,S=!1,O=!1,R=!0;if(typeof e!="function")throw new Et(f);n=vt(n)||0,ge(a)&&(S=!!a.leading,O="maxWait"in a,p=O?Se(vt(a.maxWait)||0,n):p,R="trailing"in a?!!a.trailing:R);function k(Ae){var yt=u,nn=c;return u=c=i,x=Ae,E=e.apply(nn,yt),E}function G(Ae){return x=Ae,N=kr(Q,n),S?k(Ae):E}function K(Ae){var yt=Ae-b,nn=Ae-x,Hl=n-yt;return O?Ce(Hl,p-nn):Hl}function V(Ae){var yt=Ae-b,nn=Ae-x;return b===i||yt>=n||yt<0||O&&nn>=p}function Q(){var Ae=Gi();if(V(Ae))return ee(Ae);N=kr(Q,K(Ae))}function ee(Ae){return N=i,R&&u?k(Ae):(u=c=i,E)}function st(){N!==i&&ku(N),x=0,u=b=c=N=i}function We(){return N===i?E:ee(Gi())}function at(){var Ae=Gi(),yt=V(Ae);if(u=arguments,c=this,b=Ae,yt){if(N===i)return G(b);if(O)return ku(N),N=kr(Q,n),k(b)}return N===i&&(N=kr(Q,n)),E}return at.cancel=st,at.flush=We,at}var sg=Y(function(e,n){return Eu(e,1,n)}),ag=Y(function(e,n,a){return Eu(e,vt(n)||0,a)});function og(e){return Qt(e,fs)}function Vi(e,n){if(typeof e!="function"||n!=null&&typeof n!="function")throw new Et(f);var a=function(){var u=arguments,c=n?n.apply(this,u):u[0],p=a.cache;if(p.has(c))return p.get(c);var E=e.apply(this,u);return a.cache=p.set(c,E)||p,E};return a.cache=new(Vi.Cache||Yt),a}Vi.Cache=Yt;function $i(e){if(typeof e!="function")throw new Et(f);return function(){var n=arguments;switch(n.length){case 0:return!e.call(this);case 1:return!e.call(this,n[0]);case 2:return!e.call(this,n[0],n[1]);case 3:return!e.call(this,n[0],n[1],n[2])}return!e.apply(this,n)}}function ug(e){return ml(2,e)}var lg=Yd(function(e,n){n=n.length==1&&H(n[0])?Ee(n[0],nt(B())):Ee(De(n,1),nt(B()));var a=n.length;return Y(function(u){for(var c=-1,p=Ce(u.length,a);++c<p;)u[c]=n[c].call(this,u[c]);return tt(e,this,u)})}),ba=Y(function(e,n){var a=dn(n,nr(ba));return Qt(e,ze,i,n,a)}),yl=Y(function(e,n){var a=dn(n,nr(yl));return Qt(e,dr,i,n,a)}),cg=Zt(function(e,n){return Qt(e,Er,i,i,i,n)});function fg(e,n){if(typeof e!="function")throw new Et(f);return n=n===i?n:z(n),Y(e,n)}function hg(e,n){if(typeof e!="function")throw new Et(f);return n=n==null?0:Se(z(n),0),Y(function(a){var u=a[n],c=Tn(a,0,n);return u&&pn(c,u),tt(e,this,c)})}function pg(e,n,a){var u=!0,c=!0;if(typeof e!="function")throw new Et(f);return ge(a)&&(u="leading"in a?!!a.leading:u,c="trailing"in a?!!a.trailing:c),Ll(e,n,{leading:u,maxWait:n,trailing:c})}function dg(e){return bl(e,1)}function Eg(e,n){return ba(sa(n),e)}function _g(){if(!arguments.length)return[];var e=arguments[0];return H(e)?e:[e]}function gg(e){return gt(e,J)}function Ng(e,n){return n=typeof n=="function"?n:i,gt(e,J,n)}function Tg(e){return gt(e,y|J)}function vg(e,n){return n=typeof n=="function"?n:i,gt(e,y|J,n)}function bg(e,n){return n==null||du(e,n,Oe(n))}function Lt(e,n){return e===n||e!==e&&n!==n}var mg=Mi(zs),Ig=Mi(function(e,n){return e>=n}),Mn=vu(function(){return arguments}())?vu:function(e){return ve(e)&&oe.call(e,"callee")&&!au.call(e,"callee")},H=w.isArray,Ag=Vo?nt(Vo):Rd;function Ye(e){return e!=null&&Wi(e.length)&&!en(e)}function Ie(e){return ve(e)&&Ye(e)}function wg(e){return e===!0||e===!1||ve(e)&&Ve(e)==_r}var vn=Bp||Ra,Lg=$o?nt($o):Dd;function yg(e){return ve(e)&&e.nodeType===1&&!Fr(e)}function xg(e){if(e==null)return!0;if(Ye(e)&&(H(e)||typeof e=="string"||typeof e.splice=="function"||vn(e)||rr(e)||Mn(e)))return!e.length;var n=Be(e);if(n==mt||n==It)return!e.size;if(Ur(e))return!Js(e).length;for(var a in e)if(oe.call(e,a))return!1;return!0}function Sg(e,n){return Rr(e,n)}function Og(e,n,a){a=typeof a=="function"?a:i;var u=a?a(e,n):i;return u===i?Rr(e,n,i,a):!!u}function ma(e){if(!ve(e))return!1;var n=Ve(e);return n==ti||n==jf||typeof e.message=="string"&&typeof e.name=="string"&&!Fr(e)}function Pg(e){return typeof e=="number"&&uu(e)}function en(e){if(!ge(e))return!1;var n=Ve(e);return n==ni||n==Eo||n==Zf||n==th}function xl(e){return typeof e=="number"&&e==z(e)}function Wi(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=fn}function ge(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}function ve(e){return e!=null&&typeof e=="object"}var Sl=Wo?nt(Wo):Ud;function Rg(e,n){return e===n||Ys(e,n,ha(n))}function Dg(e,n,a){return a=typeof a=="function"?a:i,Ys(e,n,ha(n),a)}function Mg(e){return Ol(e)&&e!=+e}function Ug(e){if(NE(e))throw new X(l);return bu(e)}function kg(e){return e===null}function Fg(e){return e==null}function Ol(e){return typeof e=="number"||ve(e)&&Ve(e)==Nr}function Fr(e){if(!ve(e)||Ve(e)!=zt)return!1;var n=_i(e);if(n===null)return!0;var a=oe.call(n,"constructor")&&n.constructor;return typeof a=="function"&&a instanceof a&&hi.call(a)==Dp}var Ia=Xo?nt(Xo):kd;function Cg(e){return xl(e)&&e>=-fn&&e<=fn}var Pl=Ho?nt(Ho):Fd;function Xi(e){return typeof e=="string"||!H(e)&&ve(e)&&Ve(e)==vr}function it(e){return typeof e=="symbol"||ve(e)&&Ve(e)==ri}var rr=qo?nt(qo):Cd;function Bg(e){return e===i}function Gg(e){return ve(e)&&Be(e)==br}function Vg(e){return ve(e)&&Ve(e)==rh}var $g=Mi(Qs),Wg=Mi(function(e,n){return e<=n});function Rl(e){if(!e)return[];if(Ye(e))return Xi(e)?At(e):Ke(e);if(Ar&&e[Ar])return bp(e[Ar]());var n=Be(e),a=n==mt?Cs:n==It?li:ir;return a(e)}function tn(e){if(!e)return e===0?e:0;if(e=vt(e),e===wn||e===-wn){var n=e<0?-1:1;return n*Kf}return e===e?e:0}function z(e){var n=tn(e),a=n%1;return n===n?a?n-a:n:0}function Dl(e){return e?On(z(e),0,Dt):0}function vt(e){if(typeof e=="number")return e;if(it(e))return jr;if(ge(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=ge(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=Zo(e);var a=Ah.test(e);return a||Lh.test(e)?ip(e.slice(2),a?2:8):Ih.test(e)?jr:+e}function Ml(e){return Ut(e,Je(e))}function Xg(e){return e?On(z(e),-fn,fn):e===0?e:0}function ae(e){return e==null?"":rt(e)}var Hg=er(function(e,n){if(Ur(n)||Ye(n)){Ut(n,Oe(n),e);return}for(var a in n)oe.call(n,a)&&Sr(e,a,n[a])}),Ul=er(function(e,n){Ut(n,Je(n),e)}),Hi=er(function(e,n,a,u){Ut(n,Je(n),e,u)}),qg=er(function(e,n,a,u){Ut(n,Oe(n),e,u)}),zg=Zt(Xs);function Kg(e,n){var a=jn(e);return n==null?a:pu(a,n)}var Yg=Y(function(e,n){e=ue(e);var a=-1,u=n.length,c=u>2?n[2]:i;for(c&&$e(n[0],n[1],c)&&(u=1);++a<u;)for(var p=n[a],E=Je(p),N=-1,b=E.length;++N<b;){var x=E[N],S=e[x];(S===i||Lt(S,Jn[x])&&!oe.call(e,x))&&(e[x]=p[x])}return e}),Jg=Y(function(e){return e.push(i,Zu),tt(kl,i,e)});function Qg(e,n){return Ko(e,B(n,3),Mt)}function Zg(e,n){return Ko(e,B(n,3),qs)}function jg(e,n){return e==null?e:Hs(e,B(n,3),Je)}function eN(e,n){return e==null?e:Nu(e,B(n,3),Je)}function tN(e,n){return e&&Mt(e,B(n,3))}function nN(e,n){return e&&qs(e,B(n,3))}function rN(e){return e==null?[]:Li(e,Oe(e))}function iN(e){return e==null?[]:Li(e,Je(e))}function Aa(e,n,a){var u=e==null?i:Pn(e,n);return u===i?a:u}function sN(e,n){return e!=null&&tl(e,n,xd)}function wa(e,n){return e!=null&&tl(e,n,Sd)}var aN=zu(function(e,n,a){n!=null&&typeof n.toString!="function"&&(n=pi.call(n)),e[n]=a},ya(Qe)),oN=zu(function(e,n,a){n!=null&&typeof n.toString!="function"&&(n=pi.call(n)),oe.call(e,n)?e[n].push(a):e[n]=[a]},B),uN=Y(Pr);function Oe(e){return Ye(e)?fu(e):Js(e)}function Je(e){return Ye(e)?fu(e,!0):Bd(e)}function lN(e,n){var a={};return n=B(n,3),Mt(e,function(u,c,p){Jt(a,n(u,c,p),u)}),a}function cN(e,n){var a={};return n=B(n,3),Mt(e,function(u,c,p){Jt(a,c,n(u,c,p))}),a}var fN=er(function(e,n,a){yi(e,n,a)}),kl=er(function(e,n,a,u){yi(e,n,a,u)}),hN=Zt(function(e,n){var a={};if(e==null)return a;var u=!1;n=Ee(n,function(p){return p=Nn(p,e),u||(u=p.length>1),p}),Ut(e,ca(e),a),u&&(a=gt(a,y|$|J,aE));for(var c=n.length;c--;)na(a,n[c]);return a});function pN(e,n){return Fl(e,$i(B(n)))}var dN=Zt(function(e,n){return e==null?{}:Vd(e,n)});function Fl(e,n){if(e==null)return{};var a=Ee(ca(e),function(u){return[u]});return n=B(n),xu(e,a,function(u,c){return n(u,c[0])})}function EN(e,n,a){n=Nn(n,e);var u=-1,c=n.length;for(c||(c=1,e=i);++u<c;){var p=e==null?i:e[kt(n[u])];p===i&&(u=c,p=a),e=en(p)?p.call(e):p}return e}function _N(e,n,a){return e==null?e:Dr(e,n,a)}function gN(e,n,a,u){return u=typeof u=="function"?u:i,e==null?e:Dr(e,n,a,u)}var Cl=Ju(Oe),Bl=Ju(Je);function NN(e,n,a){var u=H(e),c=u||vn(e)||rr(e);if(n=B(n,4),a==null){var p=e&&e.constructor;c?a=u?new p:[]:ge(e)?a=en(p)?jn(_i(e)):{}:a={}}return(c?dt:Mt)(e,function(E,N,b){return n(a,E,N,b)}),a}function TN(e,n){return e==null?!0:na(e,n)}function vN(e,n,a){return e==null?e:Du(e,n,sa(a))}function bN(e,n,a,u){return u=typeof u=="function"?u:i,e==null?e:Du(e,n,sa(a),u)}function ir(e){return e==null?[]:Fs(e,Oe(e))}function mN(e){return e==null?[]:Fs(e,Je(e))}function IN(e,n,a){return a===i&&(a=n,n=i),a!==i&&(a=vt(a),a=a===a?a:0),n!==i&&(n=vt(n),n=n===n?n:0),On(vt(e),n,a)}function AN(e,n,a){return n=tn(n),a===i?(a=n,n=0):a=tn(a),e=vt(e),Od(e,n,a)}function wN(e,n,a){if(a&&typeof a!="boolean"&&$e(e,n,a)&&(n=a=i),a===i&&(typeof n=="boolean"?(a=n,n=i):typeof e=="boolean"&&(a=e,e=i)),e===i&&n===i?(e=0,n=1):(e=tn(e),n===i?(n=e,e=0):n=tn(n)),e>n){var u=e;e=n,n=u}if(a||e%1||n%1){var c=lu();return Ce(e+c*(n-e+rp("1e-"+((c+"").length-1))),n)}return js(e,n)}var LN=tr(function(e,n,a){return n=n.toLowerCase(),e+(a?Gl(n):n)});function Gl(e){return La(ae(e).toLowerCase())}function Vl(e){return e=ae(e),e&&e.replace(xh,_p).replace(zh,"")}function yN(e,n,a){e=ae(e),n=rt(n);var u=e.length;a=a===i?u:On(z(a),0,u);var c=a;return a-=n.length,a>=0&&e.slice(a,c)==n}function xN(e){return e=ae(e),e&&uh.test(e)?e.replace(No,gp):e}function SN(e){return e=ae(e),e&&dh.test(e)?e.replace(bs,"\\$&"):e}var ON=tr(function(e,n,a){return e+(a?"-":"")+n.toLowerCase()}),PN=tr(function(e,n,a){return e+(a?" ":"")+n.toLowerCase()}),RN=Xu("toLowerCase");function DN(e,n,a){e=ae(e),n=z(n);var u=n?Kn(e):0;if(!n||u>=n)return e;var c=(n-u)/2;return Di(vi(c),a)+e+Di(Ti(c),a)}function MN(e,n,a){e=ae(e),n=z(n);var u=n?Kn(e):0;return n&&u<n?e+Di(n-u,a):e}function UN(e,n,a){e=ae(e),n=z(n);var u=n?Kn(e):0;return n&&u<n?Di(n-u,a)+e:e}function kN(e,n,a){return a||n==null?n=0:n&&(n=+n),Wp(ae(e).replace(ms,""),n||0)}function FN(e,n,a){return(a?$e(e,n,a):n===i)?n=1:n=z(n),ea(ae(e),n)}function CN(){var e=arguments,n=ae(e[0]);return e.length<3?n:n.replace(e[1],e[2])}var BN=tr(function(e,n,a){return e+(a?"_":"")+n.toLowerCase()});function GN(e,n,a){return a&&typeof a!="number"&&$e(e,n,a)&&(n=a=i),a=a===i?Dt:a>>>0,a?(e=ae(e),e&&(typeof n=="string"||n!=null&&!Ia(n))&&(n=rt(n),!n&&zn(e))?Tn(At(e),0,a):e.split(n,a)):[]}var VN=tr(function(e,n,a){return e+(a?" ":"")+La(n)});function $N(e,n,a){return e=ae(e),a=a==null?0:On(z(a),0,e.length),n=rt(n),e.slice(a,a+n.length)==n}function WN(e,n,a){var u=h.templateSettings;a&&$e(e,n,a)&&(n=i),e=ae(e),n=Hi({},n,u,Qu);var c=Hi({},n.imports,u.imports,Qu),p=Oe(c),E=Fs(c,p),N,b,x=0,S=n.interpolate||ii,O="__p += '",R=Bs((n.escape||ii).source+"|"+S.source+"|"+(S===To?mh:ii).source+"|"+(n.evaluate||ii).source+"|$","g"),k="//# sourceURL="+(oe.call(n,"sourceURL")?(n.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Zh+"]")+`
12
+ `;e.replace(R,function(V,Q,ee,st,We,at){return ee||(ee=st),O+=e.slice(x,at).replace(Sh,Np),Q&&(N=!0,O+=`' +
13
+ __e(`+Q+`) +
14
+ '`),We&&(b=!0,O+=`';
15
+ `+We+`;
16
+ __p += '`),ee&&(O+=`' +
17
+ ((__t = (`+ee+`)) == null ? '' : __t) +
18
+ '`),x=at+V.length,V}),O+=`';
19
+ `;var G=oe.call(n,"variable")&&n.variable;if(!G)O=`with (obj) {
20
+ `+O+`
21
21
  }
22
- `;else if(bt.test(g))throw new Mt(s);p=(u?p.replace($e,``):p).replace(et,`$1`).replace(tt,`$1;`),p=`function(`+(g||`obj`)+`) {
23
- `+(g?``:`obj || (obj = {});
24
- `)+`var __t, __p = ''`+(l?`, __e = _.escape`:``)+(u?`, __j = Array.prototype.join;
22
+ `;else if(vh.test(G))throw new X(d);O=(b?O.replace(ih,""):O).replace(sh,"$1").replace(ah,"$1;"),O="function("+(G||"obj")+`) {
23
+ `+(G?"":`obj || (obj = {});
24
+ `)+"var __t, __p = ''"+(N?", __e = _.escape":"")+(b?`, __j = Array.prototype.join;
25
25
  function print() { __p += __j.call(arguments, '') }
26
26
  `:`;
27
- `)+p+`return __p
28
- }`;var _=Cf(function(){return Nt(o,h+`return `+p).apply(n,c)});if(_.source=p,Eu(_))throw _;return _}function pf(e){return Q(e).toLowerCase()}function mf(e){return Q(e).toUpperCase()}function hf(e,t,r){if(e=Q(e),e&&(r||t===n))return gr(e);if(!e||!(t=ro(t)))return e;var i=Rr(e),a=Rr(t);return go(i,br(i,a),xr(i,a)+1).join(``)}function gf(e,t,r){if(e=Q(e),e&&(r||t===n))return e.slice(0,zr(e)+1);if(!e||!(t=ro(t)))return e;var i=Rr(e);return go(i,0,xr(i,Rr(t))+1).join(``)}function _f(e,t,r){if(e=Q(e),e&&(r||t===n))return e.replace(mt,``);if(!e||!(t=ro(t)))return e;var i=Rr(e);return go(i,br(i,Rr(t))).join(``)}function vf(e,t){var r=ae,i=oe;if(q(t)){var a=`separator`in t?t.separator:a;r=`length`in t?Z(t.length):r,i=`omission`in t?ro(t.omission):i}e=Q(e);var o=e.length;if(Dr(e)){var s=Rr(e);o=s.length}if(r>=o)return e;var c=r-Lr(i);if(c<1)return i;var l=s?go(s,0,c).join(``):e.slice(0,c);if(a===n)return l+i;if(s&&(c+=l.length-c),zu(a)){if(e.slice(c).search(a)){var u,d=l;for(a.global||(a=Ft(a.source,Q(Ct.exec(a))+`g`)),a.lastIndex=0;u=a.exec(d);)var f=u.index;l=l.slice(0,f===n?c:f)}}else if(e.indexOf(ro(a),c)!=c){var p=l.lastIndexOf(a);p>-1&&(l=l.slice(0,p))}return l+i}function yf(e){return e=Q(e),e&&it.test(e)?e.replace(nt,Br):e}var bf=Ro(function(e,t,n){return e+(n?` `:``)+t.toUpperCase()}),xf=Lo(`toUpperCase`);function Sf(e,t,r){return e=Q(e),t=r?n:t,t===n?Or(e)?Ur(e):nr(e):e.match(t)||[]}var Cf=k(function(e,t){try{return Hn(e,n,t)}catch(e){return Eu(e)?e:new Mt(e)}}),wf=cs(function(e,t){return Wn(t,function(t){t=P(t),zi(e,t,Vl(e[t],e))}),e});function Tf(e){var t=e==null?0:e.length,n=A();return e=t?E(e,function(e){if(typeof e[1]!=`function`)throw new Lt(o);return[n(e[0]),e[1]]}):[],k(function(n){for(var r=-1;++r<t;){var i=e[r];if(Hn(i[0],this,n))return Hn(i[1],this,n)}})}function Ef(e){return Ui(Hi(e,d))}function Df(e){return function(){return e}}function Of(e,t){return e==null||e!==e?t:e}var kf=Ho(),Af=Ho(!0);function jf(e){return e}function Mf(e){return Ea(typeof e==`function`?e:Hi(e,d))}function Nf(e){return ja(Hi(e,d))}function Pf(e,t){return Ma(e,Hi(t,d))}var Ff=k(function(e,t){return function(n){return ma(n,e,t)}}),If=k(function(e,t){return function(n){return ma(e,n,t)}});function Lf(e,t,n){var r=Cd(t),i=ia(t,r);n==null&&!(q(t)&&(i.length||!r.length))&&(n=t,t=e,e=this,i=ia(t,Cd(t)));var a=!(q(n)&&`chain`in n)||!!n.chain,o=Ou(e);return Wn(i,function(n){var r=t[n];e[n]=r,o&&(e.prototype[n]=function(){var t=this.__chain__;if(a||t){var n=e(this.__wrapped__);return(n.__actions__=Oo(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,Xn([this.value()],arguments))})}),e}function Rf(){return jn._===this&&(jn._=qt),this}function zf(){}function Bf(e){return e=Z(e),k(function(t){return Fa(t,e)})}var Vf=Ko(E),Hf=Ko(Kn),Uf=Ko($n);function Wf(e){return js(e)?lr(P(e)):za(e)}function Gf(e){return function(t){return e==null?n:aa(e,t)}}var Kf=Yo(),qf=Yo(!0);function Jf(){return[]}function Yf(){return!1}function Xf(){return{}}function Zf(){return``}function Qf(){return!0}function $f(e,t){if(e=Z(e),e<1||e>pe)return[];var n=ge,r=Cn(e,ge);t=A(t),e-=ge;for(var i=mr(r,t);++n<e;)t(n);return i}function ep(e){return K(e)?E(e,P):Uu(e)?[e]:Oo(Xs(Q(e)))}function tp(e){var t=++Ut;return Q(e)+t}var np=Go(function(e,t){return e+t},0),rp=Qo(`ceil`),ip=Go(function(e,t){return e/t},1),ap=Qo(`floor`);function op(e){return e&&e.length?Xi(e,jf,ca):n}function sp(e,t){return e&&e.length?Xi(e,A(t,2),ca):n}function cp(e){return cr(e,jf)}function lp(e,t){return cr(e,A(t,2))}function up(e){return e&&e.length?Xi(e,jf,ka):n}function dp(e,t){return e&&e.length?Xi(e,A(t,2),ka):n}var fp=Go(function(e,t){return e*t},1),pp=Qo(`round`),mp=Go(function(e,t){return e-t},0);function hp(e){return e&&e.length?pr(e,jf):0}function gp(e,t){return e&&e.length?pr(e,A(t,2)):0}return D.after=Rl,D.ary=zl,D.assign=td,D.assignIn=nd,D.assignInWith=rd,D.assignWith=id,D.at=ad,D.before=Bl,D.bind=Vl,D.bindAll=wf,D.bindKey=Hl,D.castArray=ou,D.chain=nl,D.chunk=ec,D.compact=tc,D.concat=nc,D.cond=Tf,D.conforms=Ef,D.constant=Df,D.countBy=pl,D.create=od,D.curry=Ul,D.curryRight=Wl,D.debounce=Gl,D.defaults=sd,D.defaultsDeep=cd,D.defer=Kl,D.delay=ql,D.difference=F,D.differenceBy=rc,D.differenceWith=I,D.drop=ic,D.dropRight=ac,D.dropRightWhile=oc,D.dropWhile=sc,D.fill=cc,D.filter=hl,D.flatMap=vl,D.flatMapDeep=yl,D.flatMapDepth=bl,D.flatten=dc,D.flattenDeep=fc,D.flattenDepth=pc,D.flip=Jl,D.flow=kf,D.flowRight=Af,D.fromPairs=mc,D.functions=hd,D.functionsIn=gd,D.groupBy=Cl,D.initial=_c,D.intersection=vc,D.intersectionBy=yc,D.intersectionWith=bc,D.invert=bd,D.invertBy=xd,D.invokeMap=wl,D.iteratee=Mf,D.keyBy=Tl,D.keys=Cd,D.keysIn=wd,D.map=El,D.mapKeys=Td,D.mapValues=Ed,D.matches=Nf,D.matchesProperty=Pf,D.memoize=Yl,D.merge=Dd,D.mergeWith=Od,D.method=Ff,D.methodOf=If,D.mixin=Lf,D.negate=Xl,D.nthArg=Bf,D.omit=kd,D.omitBy=Ad,D.once=Zl,D.orderBy=Dl,D.over=Vf,D.overArgs=Ql,D.overEvery=Hf,D.overSome=Uf,D.partial=$l,D.partialRight=G,D.partition=Ol,D.pick=jd,D.pickBy=Md,D.property=Wf,D.propertyOf=Gf,D.pull=L,D.pullAll=R,D.pullAllBy=Tc,D.pullAllWith=Ec,D.pullAt=Dc,D.range=Kf,D.rangeRight=qf,D.rearg=eu,D.reject=jl,D.remove=Oc,D.rest=tu,D.reverse=kc,D.sampleSize=Nl,D.set=Pd,D.setWith=Fd,D.shuffle=Pl,D.slice=Ac,D.sortBy=W,D.sortedUniq=Ic,D.sortedUniqBy=Lc,D.split=lf,D.spread=nu,D.tail=Rc,D.take=B,D.takeRight=V,D.takeRightWhile=zc,D.takeWhile=H,D.tap=rl,D.throttle=ru,D.thru=il,D.toArray=Yu,D.toPairs=$,D.toPairsIn=Id,D.toPath=ep,D.toPlainObject=$u,D.transform=Ld,D.unary=iu,D.union=Bc,D.unionBy=Vc,D.unionWith=Hc,D.uniq=Uc,D.uniqBy=Wc,D.uniqWith=Gc,D.unset=Rd,D.unzip=Kc,D.unzipWith=qc,D.update=zd,D.updateWith=Bd,D.values=Vd,D.valuesIn=Hd,D.without=Jc,D.words=Sf,D.wrap=au,D.xor=Yc,D.xorBy=Xc,D.xorWith=Zc,D.zip=Qc,D.zipObject=$c,D.zipObjectDeep=el,D.zipWith=tl,D.entries=$,D.entriesIn=Id,D.extend=nd,D.extendWith=rd,Lf(D,D),D.add=np,D.attempt=Cf,D.camelCase=Kd,D.capitalize=qd,D.ceil=rp,D.clamp=Ud,D.clone=su,D.cloneDeep=lu,D.cloneDeepWith=uu,D.cloneWith=cu,D.conformsTo=du,D.deburr=Jd,D.defaultTo=Of,D.divide=ip,D.endsWith=Yd,D.eq=fu,D.escape=Xd,D.escapeRegExp=Zd,D.every=ml,D.find=gl,D.findIndex=lc,D.findKey=ld,D.findLast=_l,D.findLastIndex=uc,D.findLastKey=ud,D.floor=ap,D.forEach=xl,D.forEachRight=Sl,D.forIn=dd,D.forInRight=fd,D.forOwn=pd,D.forOwnRight=md,D.get=_d,D.gt=pu,D.gte=mu,D.has=vd,D.hasIn=yd,D.head=hc,D.identity=jf,D.includes=U,D.indexOf=gc,D.inRange=Wd,D.invoke=Sd,D.isArguments=hu,D.isArray=K,D.isArrayBuffer=gu,D.isArrayLike=_u,D.isArrayLikeObject=vu,D.isBoolean=yu,D.isBuffer=bu,D.isDate=xu,D.isElement=Su,D.isEmpty=Cu,D.isEqual=wu,D.isEqualWith=Tu,D.isError=Eu,D.isFinite=Du,D.isFunction=Ou,D.isInteger=ku,D.isLength=Au,D.isMap=Y,D.isMatch=ju,D.isMatchWith=Mu,D.isNaN=Nu,D.isNative=Pu,D.isNil=Iu,D.isNull=Fu,D.isNumber=Lu,D.isObject=q,D.isObjectLike=J,D.isPlainObject=Ru,D.isRegExp=zu,D.isSafeInteger=Bu,D.isSet=Vu,D.isString=Hu,D.isSymbol=Uu,D.isTypedArray=Wu,D.isUndefined=Gu,D.isWeakMap=Ku,D.isWeakSet=qu,D.join=xc,D.kebabCase=Qd,D.last=Sc,D.lastIndexOf=Cc,D.lowerCase=$d,D.lowerFirst=ef,D.lt=X,D.lte=Ju,D.max=op,D.maxBy=sp,D.mean=cp,D.meanBy=lp,D.min=up,D.minBy=dp,D.stubArray=Jf,D.stubFalse=Yf,D.stubObject=Xf,D.stubString=Zf,D.stubTrue=Qf,D.multiply=fp,D.nth=wc,D.noConflict=Rf,D.noop=zf,D.now=Ll,D.pad=tf,D.padEnd=nf,D.padStart=rf,D.parseInt=af,D.random=Gd,D.reduce=kl,D.reduceRight=Al,D.repeat=of,D.replace=sf,D.result=Nd,D.round=pp,D.runInContext=e,D.sample=Ml,D.size=Fl,D.snakeCase=cf,D.some=Il,D.sortedIndex=jc,D.sortedIndexBy=Mc,D.sortedIndexOf=Nc,D.sortedLastIndex=Pc,D.sortedLastIndexBy=Fc,D.sortedLastIndexOf=z,D.startCase=uf,D.startsWith=df,D.subtract=mp,D.sum=hp,D.sumBy=gp,D.template=ff,D.times=$f,D.toFinite=Xu,D.toInteger=Z,D.toLength=Zu,D.toLower=pf,D.toNumber=Qu,D.toSafeInteger=ed,D.toString=Q,D.toUpper=mf,D.trim=hf,D.trimEnd=gf,D.trimStart=_f,D.truncate=vf,D.unescape=yf,D.uniqueId=tp,D.upperCase=bf,D.upperFirst=xf,D.each=xl,D.eachRight=Sl,D.first=hc,Lf(D,function(){var e={};return na(D,function(t,n){S.call(D.prototype,n)||(e[n]=t)}),e}(),{chain:!1}),D.VERSION=r,Wn([`bind`,`bindKey`,`curry`,`curryRight`,`partial`,`partialRight`],function(e){D[e].placeholder=D}),Wn([`drop`,`take`],function(e,t){O.prototype[e]=function(r){r=r===n?1:bn(Z(r),0);var i=this.__filtered__&&!t?new O(this):this.clone();return i.__filtered__?i.__takeCount__=Cn(r,i.__takeCount__):i.__views__.push({size:Cn(r,ge),type:e+(i.__dir__<0?`Right`:``)}),i},O.prototype[e+`Right`]=function(t){return this.reverse()[e](t).reverse()}}),Wn([`filter`,`map`,`takeWhile`],function(e,t){var n=t+1,r=n==le||n==de;O.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:A(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),Wn([`head`,`last`],function(e,t){var n=`take`+(t?`Right`:``);O.prototype[e]=function(){return this[n](1).value()[0]}}),Wn([`initial`,`tail`],function(e,t){var n=`drop`+(t?``:`Right`);O.prototype[e]=function(){return this.__filtered__?new O(this):this[n](1)}}),O.prototype.compact=function(){return this.filter(jf)},O.prototype.find=function(e){return this.filter(e).head()},O.prototype.findLast=function(e){return this.reverse().find(e)},O.prototype.invokeMap=k(function(e,t){return typeof e==`function`?new O(this):this.map(function(n){return ma(n,e,t)})}),O.prototype.reject=function(e){return this.filter(Xl(A(e)))},O.prototype.slice=function(e,t){e=Z(e);var r=this;return r.__filtered__&&(e>0||t<0)?new O(r):(e<0?r=r.takeRight(-e):e&&(r=r.drop(e)),t!==n&&(t=Z(t),r=t<0?r.dropRight(-t):r.take(t-e)),r)},O.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},O.prototype.toArray=function(){return this.take(ge)},na(O.prototype,function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),a=D[i?`take`+(t==`last`?`Right`:``):t],o=i||/^find/.test(t);a&&(D.prototype[t]=function(){var t=this.__wrapped__,s=i?[1]:arguments,c=t instanceof O,l=s[0],u=c||K(t),d=function(e){var t=a.apply(D,Xn([e],s));return i&&f?t[0]:t};u&&r&&typeof l==`function`&&l.length!=1&&(c=u=!1);var f=this.__chain__,p=!!this.__actions__.length,m=o&&!f,h=c&&!p;if(!o&&u){t=h?t:new O(this);var g=e.apply(t,s);return g.__actions__.push({func:il,args:[d],thisArg:n}),new Qr(g,f)}return m&&h?e.apply(this,s):(g=this.thru(d),m?i?g.value()[0]:g.value():g)})}),Wn([`pop`,`push`,`shift`,`sort`,`splice`,`unshift`],function(e){var t=Rt[e],n=/^(?:push|sort|unshift)$/.test(e)?`tap`:`thru`,r=/^(?:pop|shift)$/.test(e);D.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(K(i)?i:[],e)}return this[n](function(n){return t.apply(K(n)?n:[],e)})}}),na(O.prototype,function(e,t){var n=D[t];if(n){var r=n.name+``;S.call(ur,r)||(ur[r]=[]),ur[r].push({name:t,func:n})}}),ur[Uo(n,_).name]=[{name:`wrapper`,func:n}],O.prototype.clone=$r,O.prototype.reverse=ei,O.prototype.value=ti,D.prototype.at=al,D.prototype.chain=ol,D.prototype.commit=sl,D.prototype.next=cl,D.prototype.plant=ul,D.prototype.reverse=dl,D.prototype.toJSON=D.prototype.valueOf=D.prototype.value=fl,D.prototype.first=D.prototype.head,an&&(D.prototype[an]=ll),D})();typeof define==`function`&&typeof define.amd==`object`&&define.amd?(jn._=Wr,define(function(){return Wr})):Nn?((Nn.exports=Wr)._=Wr,Mn._=Wr):jn._=Wr}).call(e)})),fu=du(),pu=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return!(this.declarationNode.parent instanceof P)||wl(this.declarationNode.parent).unwrap_or(void 0)!==B.Table||!(this.declarationNode.body instanceof rc)?[]:this.bindBody(this.declarationNode.body)}bindBody(e){if(!e)return[];if(e instanceof F)return this.bindFields([e]);let[t,n]=(0,fu.partition)(e.body,e=>e instanceof F);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=El(this.declarationNode.parent.name).map(e=>e.join(`.`)).unwrap_or(`<unnamed>`),n=this.declarationNode.parent.symbol.symbolTable;return[e.callee,...e.args].flatMap(Eu).flatMap(e=>e.variables.length+e.tupleElements.length>1?[]:e.variables.length?e.variables[0]:e.tupleElements).flatMap(e=>{let r=Al(e).unwrap_or(void 0);if(r===void 0)return[];let i=Hc(r),a=n.get(i);return a?(e.referee=a,a.references.push(e),[]):new R(L.BINDING_ERROR,`No column named '${r}' inside Table '${t}'`,e)})})}bindSubElements(e){return e.flatMap(e=>e.type?new(Tu(e))(e,this.ast,this.symbolFactory).bind():[])}},mu=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return this.bindBody(this.declarationNode.body)}bindBody(e){if(!e||e instanceof F)return[];let t=e.body.filter(e=>e instanceof P);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?new(Tu(e))(e,this.ast,this.symbolFactory).bind():[])}},hu=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return this.declarationNode.body instanceof rc?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof F)return[];let t=e.body.filter(e=>e instanceof P);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?new(Tu(e))(e,this.ast,this.symbolFactory).bind():[])}},K=du(),gu=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return!(this.declarationNode.parent instanceof Xs)&&wl(this.declarationNode.parent).unwrap_or(void 0)!==B.Project?[]:this.bindBody(this.declarationNode.body)}bindBody(e){if(!e)return[];if(e instanceof F)return this.bindFields([e]);let[t,n]=(0,K.partition)(e.body,e=>e instanceof F);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(Eu).flatMap(e=>{let t=e.tupleElements.length?e.tupleElements:e.variables.pop(),n=e.variables.pop();if(!t||!n)return[];Array.isArray(t)||(t=[t]);let r=e.variables;return t.flatMap(e=>Du(this.ast,[...r.map(e=>({node:e,kind:H.Schema})),{node:n,kind:H.Table},{node:e,kind:H.Column}]))}):[])}bindSubElements(e){return e.flatMap(e=>e.type?new(Tu(e))(e,this.ast,this.symbolFactory).bind():[])}},_u=du(),vu=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return this.declarationNode.body instanceof rc?this.bindBody(this.declarationNode.body):[]}resolvePartialInjections(){let{body:e}=this.declarationNode;return(e?e instanceof rc?e.body:[e]:[]).filter(e=>e instanceof F&&ml(e.callee)).reverse().flatMap(e=>{let t=Dl(e.callee.expression).unwrap_or(void 0);if(!t)return[];let n=t.variables.pop(),r=t.variables;if(!n)return[];let i=Du(this.ast,[...r.map(e=>({node:e,kind:H.Schema})),{node:n,kind:H.TablePartial}]);return i.length?i:(n.referee?.symbolTable?.forEach(t=>{let r=Ol(t.declaration.callee).unwrap_or(void 0);if(r===void 0)return;let i=this.symbolFactory.create(wc,{declaration:e,tablePartialSymbol:n.referee}),a=Hc(r),o=this.declarationNode.symbol?.symbolTable;o?.has(a)||o?.set(a,i)}),[])})}bindBody(e){if(!e)return[];if(e instanceof F)return this.bindFields([e]);let[t,n]=(0,_u.partition)(e.body,e=>e instanceof F);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return(e=>e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];if((0,_u.last)(n)instanceof I){let e=U((0,_u.last)(n)).getValue();t.push(...e.ref?.flatMap(e=>e.value?this.bindInlineRef(e.value):[])||[]),t.push(...e.default?.flatMap(e=>e.value?this.tryToBindEnumFieldRef(e.value):[])||[]),n.pop()}return n[1]&&this.tryToBindColumnType(n[1]),t}))(e.filter(e=>!ml(e.callee)))}tryToBindColumnType(e){let t=Dl(e).unwrap_or(void 0);if(!t)return;let n=t.variables.pop(),r=t.variables;n&&Du(this.ast,[...r.map(e=>({node:e,kind:H.Schema})),{node:n,kind:H.Enum}])}tryToBindEnumFieldRef(e){if(Ul(e))return[];if(Wl(e)){let t=e.expression.variable?.value?.toLowerCase();if(t&&Ic.includes(t))return[]}let t=Dl(e).unwrap_or(void 0);if(!t)return[];let n=t.variables.pop(),r=t.variables.pop();if(!n||!r)return[];let i=t.variables;return Du(this.ast,[...i.map(e=>({node:e,kind:H.Schema})),{node:r,kind:H.Enum},{node:n,kind:H.EnumField}])}bindInlineRef(e){return Eu(e).flatMap(e=>{let t=e.variables.pop(),n=e.variables.pop();if(!t)return[];let r=e.variables;return n?Du(this.ast,[...r.map(e=>({node:e,kind:H.Schema})),{node:n,kind:H.Table},{node:t,kind:H.Column}]):Du(this.declarationNode,[{node:t,kind:H.Column}])})}bindSubElements(e){return e.flatMap(e=>e.type?new(Tu(e))(e,this.ast,this.symbolFactory).bind():[])}},yu=du(),bu=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return this.declarationNode.body instanceof rc?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof F)return this.bindFields([e]);let[t,n]=(0,yu.partition)(e.body,e=>e instanceof F);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(Eu).flatMap(e=>{let t=e.variables.pop();if(!t)return[];let n=e.variables;return Du(this.ast,[...n.map(e=>({node:e,kind:H.Schema})),{node:t,kind:H.Table}])}):[])}bindSubElements(e){return e.flatMap(e=>e.type?new(Tu(e))(e,this.ast,this.symbolFactory).bind():[])}},xu=du(),Su=class{constructor(e,t,n){this.declarationNode=e,this.ast=t,this.symbolFactory=n}bind(){return this.declarationNode.body instanceof rc?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof F)return this.bindFields([e]);let[t,n]=(0,xu.partition)(e.body,e=>e instanceof F);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[],n=[e.callee,...e.args];if((0,xu.last)(n)instanceof I){let e=U((0,xu.last)(n)).getValue();t.push(...e.ref?.flatMap(e=>e.value?this.bindInlineRef(e.value):[])||[]),n.pop()}return n[1]&&this.tryToBindColumnType(n[1]),t})}tryToBindColumnType(e){let t=Dl(e).unwrap_or(void 0);if(!t)return;let n=t.variables.pop(),r=t.variables;n&&Du(this.ast,[...r.map(e=>({node:e,kind:H.Schema})),{node:n,kind:H.Enum}])}bindInlineRef(e){return Eu(e).flatMap(e=>{let t=e.variables.pop(),n=e.variables.pop();if(!t)return[];let r=e.variables;return n?Du(this.ast,[...r.map(e=>({node:e,kind:H.Schema})),{node:n,kind:H.Table},{node:t,kind:H.Column}]):Du(this.declarationNode,[{node:t,kind:H.Column}])})}bindSubElements(e){return e.flatMap(e=>e.type?new(Tu(e))(e,this.ast,this.symbolFactory).bind():[])}};function Cu(e){return[Bc,Vc,Uc,Gc,Hc,Wc,Kc,Jc,Yc].map(t=>t(e))}function wu(e){if(e instanceof hc)return H.Schema;if(e instanceof vc)return H.Table;if(e instanceof yc)return H.Column;if(e instanceof gc)return H.Enum;if(e instanceof _c)return H.EnumField;if(e instanceof bc)return H.TableGroup;if(e instanceof xc)return H.TableGroupField;if(e instanceof Sc)return H.TablePartial;if(e instanceof wc)return H.Column;if(e instanceof Cc)return H.PartialInjection;throw Error(`No other possible symbol kind in getSymbolKind`)}function Tu(e){switch(e.type.value.toLowerCase()){case B.Enum:return uu;case B.Table:return vu;case B.TableGroup:return bu;case B.Project:return hu;case B.Ref:return gu;case B.Note:return mu;case B.Indexes:return pu;case B.TablePartial:return Su;case B.Check:return cu;default:return lu}}function Eu(e){if(!e)return[];if(Wl(e))return[{variables:[e],tupleElements:[]}];if(e instanceof ec){let t=Dl(e).unwrap_or(void 0);return t?[t]:[...Eu(e.leftExpression),...Eu(e.rightExpression)]}if(e instanceof $s||e instanceof tc)return Eu(e.expression);if(e instanceof ic){let t=Dl(e).unwrap_or(void 0);return t?[t]:e.elementList.flatMap(Eu)}return[]}function Du(e,t){if(!e.symbol?.symbolTable)throw Error(`lookupAndBindInScope should only be called with initial scope having a symbol table`);let n=e.symbol.symbolTable,r=wu(e.symbol),i=e instanceof P?Yl(e).unwrap_or(`<invalid name>`):Rc;if(e instanceof Xs&&t.length){let{node:e,kind:n}=t[0];Al(e).unwrap_or(`<unnamed>`)===`public`&&n===H.Schema&&t.shift()}for(let e of t){let{node:t,kind:a}=e,o=Al(t).unwrap_or(`<unnamed>`),s=Xc(o,a),c=n.get(s);if(!c)return[new R(L.BINDING_ERROR,`${a} '${o}' does not exist in ${i===void 0?`global scope`:`${r} '${i}'`}`,t)];if(t.referee=c,c.references.push(t),i=o,r=a,!c.symbolTable)return[];n=c.symbolTable}return[]}var Ou=class{constructor(e,t){this.ast=e,this.symbolFactory=t}resolvePartialInjections(){return this.ast.body.filter(e=>wl(e).unwrap_or(``)===B.Table).flatMap(e=>new vu(e,this.ast,this.symbolFactory).resolvePartialInjections())}resolve(){let e=[];e.push(...this.resolvePartialInjections());for(let t of this.ast.body)if(t.type){let n=new(Tu(t))(t,this.ast,this.symbolFactory);e.push(...n.bind())}return new Tc(this.ast,e)}},ku=class{constructor(e){this.generator=e}create(e,t){return new e(t,this.generator.nextId())}},Au=class{constructor(e,t){this.ast=e,this.symbolFactory=new ku(t)}analyze(){return new su(this.ast,this.symbolFactory).validate().chain(e=>new Ou(e,this.symbolFactory).resolve())}validate(){return new su(this.ast,this.symbolFactory).validate().chain(e=>new Tc(e,[]))}};function q(e,t){let{variables:n,tupleElements:r}=Dl(e).unwrap(),i=r.map(e=>Al(e).unwrap()),a=n.map(e=>Al(e).unwrap());return r.length?n.length===0?{schemaName:t.schemaName,tableName:t.name,fieldNames:i}:{tableName:a.pop(),schemaName:a.pop()||null,fieldNames:i}:n.length===1?{schemaName:t.schemaName,tableName:t.name,fieldNames:[a[0]]}:{fieldNames:[a.pop()],tableName:a.pop(),schemaName:a.pop()||null}}function J(e){switch(e){case`<`:return[`1`,`*`];case`<>`:return[`*`,`*`];case`>`:return[`*`,`1`];case`-`:return[`1`,`1`];default:throw Error(`Invalid relation op`)}}function Y(e){return{start:{offset:e.startPos.offset,line:e.startPos.line+1,column:e.startPos.column+1},end:{offset:e.endPos.offset,line:e.endPos.line+1,column:e.endPos.column+1}}}function ju(e){let t=Tl(e).unwrap_or(void 0)?.pop();return t instanceof ic?t.elementList.map(e=>e.referee):[t.referee]}function Mu(e){let t=El(e).unwrap();return{name:t.pop(),schemaName:t}}function Nu(e){return e.expression.literal.value}function Pu(e,t){if(Array.isArray(e)){let n=e.map(({id:e})=>e).sort().join(`,`),r=t.map(({id:e})=>e).sort().join(`,`);return n<r?`${n}-${r}`:`${r}-${n}`}let n=e.id.toString(),r=t.id.toString();return n<r?`${n}-${r}`:`${r}-${n}`}function Fu(e,t){return Array.isArray(e)?Rs(e.map(({id:e})=>e).sort(),t.map(({id:e})=>e).sort()).every(([e,t])=>e===t):e.id===t.id}function Iu(e){let t=e.split(`
29
- `),n=t.slice(t.findIndex(e=>e.trimStart()!==``)),r=n.filter(e=>e.trimStart()),i=Math.min(...r.map(e=>e.length-e.trimStart().length));return n.map(e=>e.slice(i)).join(`
30
- `)}function Lu(e){if(e){if(Ul(e))return{value:jl(e).unwrap(),type:`string`};if(bl(e))return{type:`number`,value:Pc(e)};if(Gl(e))return{value:e.expression.variable.value.toLowerCase(),type:`boolean`};if(e instanceof nc&&e.value)return{value:e.value.value,type:`expression`};if(ql(e))return{value:Tl(e).map(xs).and_then(Ol).unwrap(),type:`string`};throw Error(`Unreachable`)}}function Ru(e){let t=``,n=null;for(e instanceof oc&&(n=e.argumentList.elementList.map(e=>bl(e)?Nc(e):Ul(e)?jl(e).unwrap():Ol(e).unwrap()).join(`,`),t=`(${n})`,e=e.callee);e instanceof oc||e instanceof dc;)e instanceof oc?(t=`(${e.argumentList.elementList.map(e=>bl(e)?Nc(e):Ul(e)?jl(e).unwrap():Ol(e).unwrap()).join(`,`)})${t}`,e=e.callee):e instanceof dc&&(t=`${`[${e.indexer.elementList.map(e=>e.name.expression.literal.value).join(`,`)}]`}${t}`,e=e.array);let{name:r,schemaName:i}=Mu(e);return i.length>1?new Tc({schemaName:i.length===0?null:i[0],type_name:`${r}${t}`,args:n},[new R(L.UNSUPPORTED,`Nested schema is not supported`,e)]):new Tc({schemaName:i.length===0?null:i[0],type_name:`${r}${t}`,args:n})}var zu=class{constructor(e,t){this.declarationNode=e,this.env=t,this.table={name:void 0,schemaName:void 0,alias:null,fields:[],token:void 0,indexes:[],partials:[],checks:[]},this.pkColumns=[]}interpret(){this.table.token=Y(this.declarationNode),this.env.tables.set(this.declarationNode,this.table);let e=[...this.interpretName(this.declarationNode.name),...this.interpretAlias(this.declarationNode.alias),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.table.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1}},pk:!0}),this.pkColumns.forEach(e=>{e.pk=!1})),e}interpretName(e){let{name:t,schemaName:n}=Mu(e);return n.length>1?(this.table.name=t,this.table.schemaName=n.join(`.`),[new R(L.UNSUPPORTED,`Nested schema is not supported`,e)]):(this.table.name=t,this.table.schemaName=n.length?n[0]:null,[])}interpretAlias(e){if(!e)return[];let t=Al(e).unwrap_or(null);return t&&(this.env.aliases.push({name:t,kind:`table`,value:{tableName:this.table.name,schemaName:this.table.schemaName}}),this.table.alias=t),[]}interpretSettingList(e){let t=U(e).getValue();this.table.headerColor=t[V.HeaderColor]?.length?Nu(t[V.HeaderColor]?.at(0)?.value):void 0;let[n]=t[V.Note]||[];return this.table.note=n&&{value:jl(n?.value).map(Iu).unwrap(),token:Y(n)},[]}interpretBody(e){let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.type?.value.toLowerCase()){case B.Note:return this.table.note={value:jl(e.body instanceof rc?e.body.body[0].callee:e.body.callee).map(Iu).unwrap(),token:Y(e)},[];case B.Indexes:return this.interpretIndexes(e);case B.Check:return this.interpretChecks(e);default:return[]}})}interpretInjection(e,t){let n={order:t,token:Y(e)};return n.name=Ol(e.expression).unwrap_or(``),this.table.partials.push(n),[]}interpretFields(e){let t=(this.declarationNode.symbol?.symbolTable?[...this.declarationNode.symbol.symbolTable.entries()]:[]).filter(([e])=>Zc(e).unwrap_or(null)?.kind===H.Column).length?[]:[new R(L.EMPTY_TABLE,`A Table must have at least one column`,this.declarationNode)],n=e.flatMap((e,t)=>ml(e.callee)?this.interpretInjection(e.callee,t):this.interpretColumn(e));return[...t,...n]}interpretColumn(e){let t=[],n={};n.name=Al(e.callee).unwrap();let r=Ru(e.args[0]);n.type=r.getValue(),t.push(...r.getErrors()),n.token=Y(e),n.inline_refs=[];let i=e.args.slice(1);if(xs(i)instanceof I){let r=U(i.pop()).getValue();n.pk=!!r[V.PK]?.length||!!r[V.PrimaryKey]?.length,n.increment=!!r[V.Increment]?.length,n.unique=!!r[V.Unique]?.length,n.not_null=r[V.NotNull]?.length?!0:r[V.Null]?.length?!1:void 0,n.dbdefault=Lu(r[V.Default]?.at(0)?.value);let a=r[V.Note]?.at(0);n.note=a&&{value:jl(a.value).map(Iu).unwrap(),token:Y(a)},n.inline_refs=(r[V.Ref]||[]).flatMap(n=>{let[r]=ju(n.value.expression);if(Fu(r,e.symbol))return t.push(new R(L.SAME_ENDPOINT,`Two endpoints are the same`,n)),[];let i=n.value.op,a=El(n.value.expression).unwrap(),o;if(a.length===1){let[e]=a;o={schemaName:this.table.schemaName,tableName:this.table.name,fieldNames:[e],relation:i.value,token:Y(n)}}else if(a.length===2){let[e,t]=a;o={schemaName:null,tableName:e,fieldNames:[t],relation:i.value,token:Y(n)}}else if(a.length===3){let[e,t,r]=a;o={schemaName:e,tableName:t,fieldNames:[r],relation:i.value,token:Y(n)}}else{t.push(new R(L.UNSUPPORTED,`Nested schema is not supported`,n));let e=a.pop(),r=a.pop();o={schemaName:a.join(`.`),tableName:r,fieldNames:[e],relation:i.value,token:Y(n)}}let s=this.registerInlineRefToEnv(e,r,o,n);return t.push(...s),s.length===0?o:[]}),n.checks=(r[V.Check]||[]).map(e=>({token:Y(e),expression:e.value.value.value}))}return n.pk||=i.some(e=>Ol(e).unwrap().toLowerCase()===`pk`),n.unique||=i.some(e=>Ol(e).unwrap().toLowerCase()===`unique`),this.table.fields.push(n),n.pk&&this.pkColumns.push(n),t}interpretIndexes(e){return this.table.indexes.push(...e.body.body.map(e=>{let t={columns:[]},n=e;t.token=Y(n);let r=[n.callee,...n.args];if(xs(r)instanceof I){let e=U(r.pop()).getValue();t.pk=!!e[V.PK]?.length,t.unique=!!e[V.Unique]?.length,t.name=jl(e[V.Name]?.at(0)?.value).unwrap_or(void 0);let n=e[V.Note]?.at(0);t.note=n&&{value:jl(n.value).unwrap(),token:Y(n)},t.type=Ol(e[V.Type]?.at(0)?.value).unwrap_or(void 0)}return r.flatMap(e=>{if(!(e instanceof oc))return e;let t=[];for(;e instanceof oc;)t.push(e.argumentList),e=e.callee;return t.push(e),t}).forEach(e=>{let{functional:n,nonFunctional:r}=kl(e).unwrap();t.columns.push(...n.map(e=>({value:e.value.value,type:`expression`,token:Y(e)})),...r.map(e=>({value:Al(e).unwrap(),type:`column`,token:Y(e)})))}),t})),[]}interpretChecks(e){return this.table.checks.push(...e.body.body.map(e=>{let t={},n=e;return t.token=Y(n),n.args[0]instanceof I&&(t.name=jl(U(n.args[0]).getValue()[V.Name]?.at(0)?.value).unwrap_or(void 0)),t.expression=n.callee.value.value,t})),[]}registerInlineRefToEnv(e,t,n,r){let i=Pu(e.symbol,t);if(this.env.refIds[i])return[new R(L.CIRCULAR_REF,`References with same endpoints exist`,r),new R(L.CIRCULAR_REF,`References with same endpoints exist`,this.env.refIds[i])];let a=J(n.relation);return this.env.refIds[i]=r,this.env.ref.set(r,{name:null,schemaName:null,token:n.token,endpoints:[{...n,relation:a[1]},{schemaName:this.table.schemaName,tableName:this.table.name,fieldNames:[Ol(e.callee).unwrap()],token:Y(e),relation:a[0]}]}),[]}},Bu=class{constructor(e,t){this.declarationNode=e,this.env=t,this.note={name:void 0,content:void 0,token:void 0}}interpret(){return this.note.token=Y(this.declarationNode),this.env.notes.set(this.declarationNode,this.note),[...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)]}interpretName(e){let{name:t}=Mu(e);return this.note.name=t,[]}interpretSettingList(e){let t=U(e).getValue();return this.note.headerColor=t.headercolor?.length?Nu(t.headercolor?.at(0)?.value):void 0,[]}interpretBody(e){let[t,n]=Ns(e.body,e=>e instanceof F);return t.length!==1||n.length>0?[new R(L.INVALID_NOTE,`Invalid note syntax`,e)]:[...this.interpretNote(t[0])]}interpretNote(e){let t=Ai(e,`callee.expression.literal.value`,``);return this.note.content=Iu(t),[]}},Vu=class{constructor(e,t){this.declarationNode=e,this.env=t,this.container=this.declarationNode.parent instanceof P?this.env.tables.get(this.declarationNode.parent):void 0,this.ref={}}interpret(){return this.ref.token=Y(this.declarationNode),this.env.ref.set(this.declarationNode,this.ref),[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)]}interpretName(e){let t=[],n=El(this.declarationNode.name).unwrap_or([]);return this.ref.name=n.pop()||null,n.length>1&&t.push(new R(L.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name)),this.ref.schemaName=n.join(`.`)||null,t}interpretBody(e){return e instanceof F?this.interpretField(e):this.interpretField(e.body[0])}interpretField(e){let t=e.callee.op.value,{leftExpression:n,rightExpression:r}=e.callee,i=ju(n),a=ju(r);if(Fu(i,a))return[new R(L.SAME_ENDPOINT,`Two endpoints are the same`,e)];let o=Pu(i,a);if(this.env.refIds[o])return[new R(L.CIRCULAR_REF,`References with same endpoints exist`,this.declarationNode),new R(L.CIRCULAR_REF,`References with same endpoints exist`,this.env.refIds[o])];if(e.args[0]){let t=U(e.args[0]).getValue(),n=t.delete?.at(0)?.value;this.ref.onDelete=n instanceof Zs?Jl(n).unwrap_or(void 0):Ol(n).unwrap_or(void 0);let r=t.update?.at(0)?.value;this.ref.onUpdate=r instanceof Zs?Jl(r).unwrap_or(void 0):Ol(r).unwrap_or(void 0),this.ref.color=t.color?.length?Nu(t.color?.at(0)?.value):void 0}let s=J(t);return this.ref.endpoints=[{...q(n,this.container),relation:s[0],token:Y(n)},{...q(r,this.container),relation:s[1],token:Y(r)}],this.env.refIds[o]=this.declarationNode,[]}},Hu=class{constructor(e,t){this.declarationNode=e,this.env=t,this.tableGroup={tables:[]}}interpret(){let e=[];return this.tableGroup.token=Y(this.declarationNode),this.env.tableGroups.set(this.declarationNode,this.tableGroup),e.push(...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)),e}interpretName(e){let t=[],{name:n,schemaName:r}=Mu(e);return r.length>=2&&(this.tableGroup.name=n,this.tableGroup.schemaName=r.join(`.`),t.push(new R(L.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name))),this.tableGroup.name=n,this.tableGroup.schemaName=r[0]||null,t}interpretBody(e){let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.type?.value.toLowerCase()){case`note`:this.tableGroup.note={value:jl(e.body instanceof rc?e.body.body[0].callee:e.body.callee).map(Iu).unwrap(),token:Y(e)};break;default:break}return[]})}interpretFields(e){let t=[];return this.tableGroup.tables=e.map(e=>{let n=El(e.callee).unwrap();n.length>2&&t.push(new R(L.UNSUPPORTED,`Nested schema is not supported`,e));let r=Tl(e.callee).unwrap().pop().referee.id;if(this.env.tableOwnerGroup[r]){let i=this.env.tableOwnerGroup[r],{schemaName:a,name:o}=this.env.tableGroups.get(i),s=a?`${a}.${o}`:o;t.push(new R(L.TABLE_REAPPEAR_IN_TABLEGROUP,`Table "${n.join(`.`)}" already appears in group "${s}"`,e))}else this.env.tableOwnerGroup[r]=this.declarationNode;return{name:n.pop(),schemaName:n.join(`.`)}}),t}interpretSettingList(e){let t=U(e).getValue();this.tableGroup.color=t.color?.length?Nu(t.color?.at(0)?.value):void 0;let[n]=t.note||[];return this.tableGroup.note=n&&{value:jl(n?.value).map(Iu).unwrap(),token:Y(n)},[]}},Uu=class{constructor(e,t){this.declarationNode=e,this.env=t,this.enum={values:[]}}interpret(){return this.enum.token=Y(this.declarationNode),this.env.enums.set(this.declarationNode,this.enum),[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)]}interpretName(e){let{name:t,schemaName:n}=Mu(e);return n.length>1?(this.enum.name=t,this.enum.schemaName=n.join(`.`),[new R(L.UNSUPPORTED,`Nested schema is not supported`,e)]):(this.enum.name=t,this.enum.schemaName=n.length?n[0]:null,[])}interpretBody(e){return e.body.flatMap(e=>{let t=e,n={};n.token=Y(t),n.name=Ol(t.callee).unwrap();let r=U(t.args[0]).getValue().note?.at(0);return n.note=r&&{value:jl(r.value).map(Iu).unwrap(),token:Y(r)},this.enum.values.push(n),[]})}},Wu=class{constructor(e,t){this.declarationNode=e,this.env=t,this.tablePartial={name:void 0,fields:[],token:void 0,indexes:[],checks:[]},this.pkColumns=[]}interpret(){this.tablePartial.token=Y(this.declarationNode),this.env.tablePartials.set(this.declarationNode,this.tablePartial);let e=[...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.tablePartial.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1}},pk:!0}),this.pkColumns.forEach(e=>{e.pk=!1})),e}interpretName(e){let{name:t}=Mu(e);return this.tablePartial.name=t,[]}interpretSettingList(e){let t=U(e).getValue(),n=ks(t[V.HeaderColor]);this.tablePartial.headerColor=n?Nu(n.value):void 0;let[r]=t[V.Note]||[];return this.tablePartial.note=r&&{value:jl(r?.value).map(Iu).unwrap(),token:Y(r)},[]}interpretBody(e){let[t,n]=Ns(e.body,e=>e instanceof F);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.type?.value.toLowerCase()){case B.Note:return this.tablePartial.note={value:jl(e.body instanceof rc?e.body.body[0].callee:e.body.callee).map(Iu).unwrap(),token:Y(e)},[];case B.Indexes:return this.interpretIndexes(e);case B.Check:return this.interpretChecks(e);default:return[]}})}interpretFields(e){return e.flatMap(e=>this.interpretColumn(e))}interpretColumn(e){let t=[],n={};n.name=Al(e.callee).unwrap();let r=Ru(e.args[0]);n.type=r.getValue(),t.push(...r.getErrors()),n.token=Y(e),n.inline_refs=[];let i=e.args.slice(1);if(xs(i)instanceof I){let r=U(i.pop()).getValue();n.pk=!!r[V.PK]?.length||!!r[V.PrimaryKey]?.length,n.increment=!!r[V.Increment]?.length,n.unique=!!r[V.Unique]?.length,n.not_null=r[V.NotNull]?.length?!0:r[V.Null]?.length?!1:void 0,n.dbdefault=Lu(r[V.Default]?.at(0)?.value);let a=r[V.Note]?.at(0);n.note=a&&{value:jl(a.value).map(Iu).unwrap(),token:Y(a)},n.inline_refs=(r[V.Ref]||[]).flatMap(n=>{let[r]=ju(n.value.expression);if(Fu(r,e.symbol))return t.push(new R(L.SAME_ENDPOINT,`Two endpoints are the same`,n)),[];let i=n.value.op,a=El(n.value.expression).unwrap(),o;if(a.length===2){let[e,t]=a;o={schemaName:null,tableName:e,fieldNames:[t],relation:i.value,token:Y(n)}}else if(a.length===3){let[e,t,r]=a;o={schemaName:e,tableName:t,fieldNames:[r],relation:i.value,token:Y(n)}}else{t.push(new R(L.UNSUPPORTED,`Unsupported`,n));let e=a.pop(),r=a.pop();o={schemaName:a.join(`.`),tableName:r,fieldNames:[e],relation:i.value,token:Y(n)}}return o}),n.checks=(r[V.Check]||[]).map(e=>({token:Y(e),expression:e.value.value.value}))}return n.pk||=i.some(e=>Ol(e).unwrap().toLowerCase()===`pk`),n.unique||=i.some(e=>Ol(e).unwrap().toLowerCase()===`unique`),this.tablePartial.fields.push(n),n.pk&&this.pkColumns.push(n),t}interpretIndexes(e){return this.tablePartial.indexes.push(...e.body.body.map(e=>{let t={columns:[]},n=e;t.token=Y(n);let r=[n.callee,...n.args];if(xs(r)instanceof I){let e=U(r.pop()).getValue();t.pk=!!e[V.PK]?.length,t.unique=!!e[V.Unique]?.length,t.name=jl(e[V.Name]?.at(0)?.value).unwrap_or(void 0);let n=e[V.Note]?.at(0);t.note=n&&{value:jl(n.value).unwrap(),token:Y(n)},t.type=Ol(e[V.Type]?.at(0)?.value).unwrap_or(void 0)}return r.flatMap(e=>{if(!(e instanceof oc))return e;let t=[],n=e;for(;n instanceof oc;)t.push(n.argumentList),n=n.callee;return t.push(n),t}).forEach(e=>{let{functional:n,nonFunctional:r}=kl(e).unwrap();t.columns.push(...n.map(e=>({value:e.value.value,type:`expression`,token:Y(e)})),...r.map(e=>({value:Al(e).unwrap(),type:`column`,token:Y(e)})))}),t})),[]}interpretChecks(e){return this.tablePartial.checks.push(...e.body.body.map(e=>{let t={},n=e;return t.token=Y(n),n.args[0]instanceof I&&(t.name=jl(U(n.args[0]).getValue()[V.Name]?.at(0)?.value).unwrap_or(void 0)),t.expression=n.callee.value.value,t})),[]}},Gu=class{constructor(e,t){this.declarationNode=e,this.env=t,this.project={enums:[],refs:[],tableGroups:[],tables:[],tablePartials:[]}}interpret(){return this.env.project.set(this.declarationNode,this.project),this.project.token=Y(this.declarationNode),[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)]}interpretName(e){if(!e)return this.project.name=null,[];let{name:t}=Mu(e);return this.project.name=t,[]}interpretBody(e){return e.body.flatMap(e=>{let t=e;switch(t.type?.value.toLowerCase()){case`table`:{let e=new zu(t,this.env).interpret();return this.project.tables.push(this.env.tables.get(t)),e}case`ref`:{let e=new Vu(t,this.env).interpret();return this.project.refs.push(this.env.ref.get(t)),e}case`tablegroup`:{let e=new Hu(t,this.env).interpret();return this.project.tableGroups.push(this.env.tableGroups.get(t)),e}case`enum`:{let e=new Uu(t,this.env).interpret();return this.project.enums.push(this.env.enums.get(t)),e}case`note`:return this.project.note={value:jl(t.body instanceof rc?t.body.body[0].callee:t.body.callee).map(Iu).unwrap(),token:Y(t)},[];case`tablepartial`:{let e=new Wu(t,this.env).interpret();return this.project.tablePartials.push(this.env.tablePartials.get(t)),e}default:return this.project[t.type.value.toLowerCase()]=jl(t.body.callee).unwrap(),[]}})}};function Ku(e){return{schemas:[],tables:Array.from(e.tables.values()),notes:Array.from(e.notes.values()),refs:Array.from(e.ref.values()),enums:Array.from(e.enums.values()),tableGroups:Array.from(e.tableGroups.values()),aliases:e.aliases,project:Array.from(e.project.values())[0]||{},tablePartials:Array.from(e.tablePartials.values())}}var qu=class{constructor(e){this.ast=e,this.env={schema:[],tables:new Map,notes:new Map,refIds:{},ref:new Map,enums:new Map,tableOwnerGroup:{},tableGroups:new Map,aliases:[],project:new Map,tablePartials:new Map}}interpret(){let e=this.ast.body.flatMap(e=>{switch(wl(e).unwrap_or(void 0)){case B.Table:return new zu(e,this.env).interpret();case B.Note:return new Bu(e,this.env).interpret();case B.Ref:return new Vu(e,this.env).interpret();case B.TableGroup:return new Hu(e,this.env).interpret();case B.TablePartial:return new Wu(e,this.env).interpret();case B.Enum:return new Uu(e,this.env).interpret();case B.Project:return new Gu(e,this.env).interpret();default:return[]}});return new Tc(Ku(this.env),e)}};let X=function(e){return e[e.Function=1]=`Function`,e[e.Constructor=2]=`Constructor`,e[e.Field=3]=`Field`,e[e.Variable=4]=`Variable`,e[e.Class=5]=`Class`,e[e.Struct=6]=`Struct`,e[e.Interface=7]=`Interface`,e[e.Module=8]=`Module`,e[e.Property=9]=`Property`,e[e.Event=10]=`Event`,e[e.Operator=11]=`Operator`,e[e.Unit=12]=`Unit`,e[e.Value=13]=`Value`,e[e.Constant=14]=`Constant`,e[e.Enum=15]=`Enum`,e[e.EnumMember=16]=`EnumMember`,e[e.Keyword=17]=`Keyword`,e[e.Text=18]=`Text`,e[e.Color=19]=`Color`,e[e.File=20]=`File`,e[e.Reference=21]=`Reference`,e[e.Customcolor=22]=`Customcolor`,e[e.Folder=23]=`Folder`,e[e.TypeParameter=24]=`TypeParameter`,e[e.User=25]=`User`,e[e.Issue=26]=`Issue`,e[e.Snippet=27]=`Snippet`,e}({}),Ju=function(e){return e[e.None=0]=`None`,e[e.KeepWhitespace=1]=`KeepWhitespace`,e[e.InsertAsSnippet=4]=`InsertAsSnippet`,e}({});function Yu(e){switch(e){case H.Schema:return X.Module;case H.Table:case H.TablePartial:return X.Class;case H.Column:case H.TableGroupField:return X.Field;case H.Enum:return X.Enum;case H.EnumField:return X.EnumMember;case H.TableGroup:return X.Struct;default:return X.Text}}function Xu(e,t){if(!e||Gs(e))return!1;for(let n of e.trailingTrivia){if(n.start>t)break;if(n.kind===j.NEWLINE&&n.end<=t)return!1}return!0}function Z(){return{suggestions:[]}}function Zu(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:` ${e.insertText}`}))}}function Qu(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:!e.insertText||!e.insertText.split(``).every(Ec)?`"${e.insertText??``}"`:e.insertText}))}}function $u(e,t){return e.getOffsetAt(t)}var ed=class{constructor(e,t=[]){this.compiler=e,this.triggerCharacters=t}provideCompletionItems(e,t){let n=$u(e,t),r=this.compiler.token.flatStream(),{token:i,index:a}=this.compiler.container.token(n),o=a===void 0?r[0]:r[a+1];if([...i?.trailingTrivia||[],...i?.leadingTrivia||[],...o?.leadingTrivia||[]].find(e=>Js(e)&&Mc(n,e)))return Z();if(a===void 0)return ld();if([j.STRING_LITERAL,j.QUOTED_STRING].includes(i.kind)&&Mc(n,i))return Z();let s=this.compiler.container.element(n);if(this.compiler.container.scopeKind(n)===$.TOPLEVEL||s instanceof P&&s.type&&s.type.start<=n&&s.type.end>=n)return ld();let c=[...this.compiler.container.stack(n)].reverse();for(let e of c)if(e instanceof $s)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return td(this.compiler,n,e);case`~`:return Q(this.compiler,n);default:}else if(e instanceof ec)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return td(this.compiler,n,e);case`.`:return sd(this.compiler,n,e);default:}else if(e instanceof Qs)return id(this.compiler,n,e);else if(e instanceof I)return id(this.compiler,n,e);else if(e instanceof ic)return rd(this.compiler,n);else if(e instanceof F)return cd(this.compiler,n,e);else if(e instanceof P&&(e.bodyColon&&n>=e.bodyColon.end||e.body&&Mc(n,e.body)))return cd(this.compiler,n,void 0);return Z()}};function Q(e,t){return nd(e,t,e.parse.ast(),[H.TablePartial])}function td(e,t,n){let r=e.container.scopeKind(t);if([$.REF,$.TABLE,$.TABLEPARTIAL].includes(r)){let r=nd(e,t,e.container.element(t),[H.Table,H.Schema,H.Column]);return Xu(n.op,t)?Zu(r):r}return Z()}function nd(e,t,n,r){if(n===void 0)return Z();let i=n,a={suggestions:[]};for(;i;){if(i?.symbol?.symbolTable){let{symbol:t}=i;a.suggestions.push(...e.symbol.members(t).filter(({kind:e})=>r.includes(e)).map(({name:e,kind:t})=>({label:e,insertText:e,insertTextRules:Ju.KeepWhitespace,kind:Yu(t),sortText:Yu(t).toString().padStart(2,`0`),range:void 0})))}i=i instanceof P?i.parent:void 0}return Qu(a)}function rd(e,t){switch(e.container.scopeKind(t)){case $.INDEXES:return _d(e,t);case $.REF:{let n=[...e.container.stack(t)];for(;n.length>0;){let r=n.pop();if(r instanceof ec&&r.op?.value===`.`)return sd(e,t,r)}}return pd(e,t);default:break}return Z()}function id(e,t,n){let{token:r}=e.container.token(t);if([j.COMMA,j.LBRACKET].includes(r?.kind)){let n=ad(e,t);return r?.kind===j.COMMA&&Xu(r,t)?Zu(n):n}if(n.name&&n.name.start<=t&&n.name.end>=t)return ad(e,t);if(n.name instanceof Zs){let i=od(e,t,Jl(n.name).unwrap_or(``));return r?.kind===j.COLON&&Xu(r,t)?Zu(i):i}return Z()}function ad(e,t){let n=e.container.element(t);if(n instanceof Xs)return Z();let r=e.container.scopeKind(t);if(n.body&&!Mc(t,n.body)){let e;switch(r){case $.TABLE:case $.TABLEPARTIAL:e=[V.HeaderColor,V.Note];break;case $.TABLEGROUP:e=[V.Color,V.Note];break;default:e=[]}return{suggestions:e.map(e=>({label:e,insertText:`${e}: `,kind:X.Field,insertTextRules:Ju.KeepWhitespace,range:void 0}))}}switch(r){case $.TABLE:case $.TABLEPARTIAL:return{suggestions:[...[V.PK,V.PrimaryKey,V.Null,V.NotNull,V.Increment,V.Unique].map(e=>({label:e,insertText:e,kind:X.Property,insertTextRules:Ju.KeepWhitespace,range:void 0})),...[V.Ref,V.Default,V.Note,V.Check].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Ju.KeepWhitespace,range:void 0}))]};case $.ENUM:return{suggestions:[...[V.Note].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Ju.KeepWhitespace,range:void 0}))]};case $.INDEXES:return{suggestions:[...[V.Unique,V.PK].map(e=>({label:e,insertText:e,insertTextRules:Ju.KeepWhitespace,kind:X.Property,range:void 0})),...[V.Note,V.Name,V.Type].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Ju.KeepWhitespace,range:void 0}))]};case $.REF:return{suggestions:[V.Update,V.Delete,V.Color].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Ju.KeepWhitespace,range:void 0}))};case $.CHECKS:return{suggestions:[V.Name].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Ju.KeepWhitespace,range:void 0}))};default:break}return Z()}function od(e,t,n){switch(n?.toLowerCase()){case`update`:case`delete`:return{suggestions:[`cascade`,`set default`,`set null`,`restrict`].map(e=>({label:e,insertText:e,kind:X.Value,insertTextRules:Ju.KeepWhitespace,range:void 0}))};case`type`:return{suggestions:[`btree`,`hash`].map(e=>({label:e,insertText:`${e}`,kind:X.Value,insertTextRules:Ju.KeepWhitespace,range:void 0}))};case`default`:return nd(e,t,e.container.element(t),[H.Schema,H.Enum]);default:break}return Z()}function sd(e,t,n){let r=Tl(n).unwrap_or([]);if(r.pop(),r.some(e=>!Wl(e)))return Z();let i=r.map(e=>Ol(e).unwrap());return Qu({suggestions:e.symbol.ofName(i,e.container.element(t)).flatMap(({symbol:t})=>e.symbol.members(t)).map(({kind:e,name:t})=>({label:t,insertText:t,kind:Yu(e),range:void 0}))})}function cd(e,t,n){switch(e.container.scopeKind(t)){case $.TABLE:case $.TABLEPARTIAL:return dd(e,t,n);case $.PROJECT:return fd(e,t,n);case $.INDEXES:return hd(e,t);case $.ENUM:return ud(e,t,n);case $.REF:{let n=pd(e,t);return e.container.token(t).token?.kind===j.COLON&&Xu(e.container.token(t).token,t)?Zu(n):n}case $.TABLEGROUP:return md(e);default:return Z()}}function ld(){return{suggestions:[`Table`,`TableGroup`,`Enum`,`Project`,`Ref`,`TablePartial`].map(e=>({label:e,insertText:e,insertTextRules:Ju.KeepWhitespace,kind:X.Keyword,range:void 0}))}}function ud(e,t,n){return n?.callee&&vd(t,n)===1?nd(e,t,e.container.element(t),[H.Schema,H.Table,H.Column]):Z()}function dd(e,t,n){let r=[`Note`,`indexes`,`checks`];if(!n?.callee)return{suggestions:r.map(e=>({label:e,insertText:e,insertTextRules:Ju.KeepWhitespace,kind:X.Keyword,range:void 0}))};let i=vd(t,n);return i===0?{suggestions:r.map(e=>({label:e,insertText:e,insertTextRules:Ju.KeepWhitespace,kind:X.Keyword,range:void 0}))}:i===1?gd(e,t):Z()}function fd(e,t,n){return!n?.callee||vd(t,n)===0?{suggestions:[`Table`,`TableGroup`,`Enum`,`Note`,`Ref`,`TablePartial`].map(e=>({label:e,insertText:e,insertTextRules:Ju.KeepWhitespace,kind:X.Keyword,range:void 0}))}:Z()}function pd(e,t){return nd(e,t,e.container.element(t),[H.Schema,H.Table,H.Column])}function md(e){return{suggestions:[...Qu({suggestions:[...e.parse.publicSymbolTable().entries()].flatMap(([e])=>{let t=Zc(e).unwrap_or(void 0);if(t===void 0)return[];let{kind:n,name:r}=t;return n!==H.Table&&n!==H.Schema?[]:{label:r,insertText:r,insertTextRules:Ju.KeepWhitespace,kind:Yu(n),range:void 0}})}).suggestions,...[`Note`].map(e=>({label:e,insertText:e,insertTextRules:Ju.KeepWhitespace,kind:X.Keyword,range:void 0}))]}}function hd(e,t){return _d(e,t)}function gd(e,t){return{suggestions:[...`integer.int.tinyint.smallint.mediumint.bigint.bit.bool.binary.varbinary.logical.char.nchar.varchar.varchar2.nvarchar.nvarchar2.binary_float.binary_double.float.double.decimal.dec.real.money.smallmoney.enum.tinyblob.tinytext.blob.text.mediumblob.mediumtext.longblob.longtext.ntext.set.inet6.uuid.image.date.time.datetime.datetime2.timestamp.year.smalldatetime.datetimeoffset.XML.sql_variant.uniqueidentifier.CURSOR.BFILE.CLOB.NCLOB.RAW`.split(`.`).map(e=>({label:e,insertText:e,insertTextRules:Ju.KeepWhitespace,kind:X.TypeParameter,sortText:X.TypeParameter.toString().padStart(2,`0`),range:void 0})),...nd(e,t,e.container.element(t),[H.Enum,H.Schema]).suggestions]}}function _d(e,t){let n=e.container.element(t)?.parent;if(!(n?.symbol instanceof vc))return Z();let{symbolTable:r}=n.symbol;return Qu({suggestions:[...r.entries()].flatMap(([e])=>{let t=Zc(e).unwrap_or(void 0);if(t===void 0)return[];let{name:n}=t;return{label:n,insertText:n,insertTextRules:Ju.KeepWhitespace,kind:Yu(H.Column),range:void 0}})})}function vd(e,t){if(!t.callee)return-1;let n=[t.callee,...t.args],r=n.findIndex(t=>e<=t.end);return r===-1?n.length:r}var yd=class{constructor(e){this.compiler=e}provideDefinition(e,t){let{uri:n}=e,r=$u(e,t),i=[...this.compiler.container.stack(r)];for(;i.length!==0;){let e=i.pop();if(!e?.referee)continue;let t;if(e.referee?.declaration&&[N.PRIMARY_EXPRESSION,N.VARIABLE].includes(e?.kind)&&({declaration:t}=e.referee),t){let{startPos:e,endPos:r}=t;return[{range:{startColumn:e.column+1,startLineNumber:e.line+1,endColumn:r.column+1,endLineNumber:r.line+1},uri:n}]}}return[]}},bd=class{constructor(e){this.compiler=e}provideReferences(e,t){let{uri:n}=e,r=$u(e,t),i=[...this.compiler.container.stack(r)];for(;i.length!==0;){let e=i.pop();if(e&&[N.ELEMENT_DECLARATION,N.FUNCTION_APPLICATION,N.PRIMARY_EXPRESSION].includes(e?.kind)){let{symbol:t}=e;if(t?.references.length)return t.references.map(({startPos:e,endPos:t})=>({range:{startColumn:e.column+1,startLineNumber:e.line+1,endColumn:t.column+1,endLineNumber:t.line+1},uri:n}))}}return[]}},xd=n({CompletionItemInsertTextRule:()=>Ju,CompletionItemKind:()=>X,DBMLCompletionItemProvider:()=>ed,DBMLDefinitionProvider:()=>yd,DBMLReferencesProvider:()=>bd},1);function Sd(){return this.parse._().getValue().ast}function Cd(){return this.parse._().getErrors()}function wd(){return this.parse._().getValue().tokens}function Td(){return this.parse._().getValue().rawDb}function Ed(){return this.parse._().getValue().ast.symbol.symbolTable}function Dd(){return this.parse.tokens().flatMap(e=>[...e.leadingInvalid,e,...e.trailingInvalid])}function Od(){return this.parse.tokens().filter(zl)}function kd(e){return e.symbolTable?[...e.symbolTable.entries()].map(([e,t])=>({...Zc(e).unwrap(),symbol:t})):[]}function Ad(e,t){if(e.length===0)return[];let n=[];for(let r=t;r;r=r instanceof P?r.parent:void 0){if(!r.symbol?.symbolTable)continue;let{symbolTable:t}=r.symbol,i=[t],a=[];for(let t of e)a=i.flatMap(e=>Cu(t).flatMap(t=>{let n=e.get(t),r=Zc(t).unwrap_or(void 0);return!n||!r?[]:{...r,symbol:n}})),i=a.flatMap(e=>e.symbol.symbolTable?e.symbol.symbolTable:[]);n.push(...a)}return n}function jd(e,t){return`${e.join(`.`)}@${t.id}`}function Md(e){let t=this.token.flatStream(),{index:n,token:r}=this.container.token(e),i=n===void 0?-1:Ds(t,e=>!e.isInvalid,n);if(i===-1)return[this.parse.ast()];let a=t[i].start,o=this.parse.ast(),s=[o];for(;;){let e=Vl(o).find(e=>Mc(a,e));if(e===void 0||e instanceof Hs)break;s.push(e),o=e}if(r?.kind===j.COLON)return s;for(;s.length>0;){let t=!1,n=xs(s);if(n instanceof F){let r=this.parse.source();for(let i=n.end;i<e;i+=1)r[i]===`
31
- `&&(s.pop(),t=!0)}else n instanceof $s||n instanceof ec?this.container.token(e).token!==n.op&&(s.pop(),t=!0):n instanceof I?n.listCloseBracket&&n.end<=e&&(s.pop(),t=!0):n instanceof ic?n.tupleCloseParen&&n.end<=e&&(s.pop(),t=!0):n instanceof rc?n.blockCloseBrace&&n.end<=e&&(s.pop(),t=!0):n instanceof Zs||n.end<e&&(s.pop(),t=!0);if(t){let t=xs(s);t instanceof P&&t.end<=e&&s.pop()}if(!t)break}return s}function Nd(e){let t=this.token.flatStream().findIndex(t=>t.start>=e);return t===void 0||t<=0?{token:void 0,index:void 0}:{token:this.token.flatStream()[t-1],index:t-1}}function Pd(e){let t=this.container.stack(e);for(let e=t.length-1;e>=0;--e)if(t[e]instanceof P)return t[e];return this.parse.ast()}function Fd(e){return this.container.element(e)?.symbol?.symbolTable}let $=function(e){return e[e.TABLE=0]=`TABLE`,e[e.ENUM=1]=`ENUM`,e[e.TABLEGROUP=2]=`TABLEGROUP`,e[e.INDEXES=3]=`INDEXES`,e[e.NOTE=4]=`NOTE`,e[e.REF=5]=`REF`,e[e.PROJECT=6]=`PROJECT`,e[e.CUSTOM=7]=`CUSTOM`,e[e.TOPLEVEL=8]=`TOPLEVEL`,e[e.TABLEPARTIAL=9]=`TABLEPARTIAL`,e[e.CHECKS=10]=`CHECKS`,e}({});function Id(e){let t=this.container.element(e);if(t instanceof Xs)return $.TOPLEVEL;switch(t.type?.value.toLowerCase()){case`table`:return $.TABLE;case`enum`:return $.ENUM;case`ref`:return $.REF;case`tablegroup`:return $.TABLEGROUP;case`indexes`:return $.INDEXES;case`note`:return $.NOTE;case`project`:return $.PROJECT;case`tablepartial`:return $.TABLEPARTIAL;case`checks`:return $.CHECKS;default:return $.CUSTOM}}function Ld(e,t){let n=[...t].sort((e,t)=>t.start-e.start),r=e;for(let{start:e,end:t,newText:i}of n)r=r.substring(0,e)+i+r.substring(t);return r}function Rd(e){return e.startsWith(`"`)&&e.endsWith(`"`)&&e.length>=2?e.slice(1,-1):e}function zd(e){if(typeof e!=`string`)return{schema:e.schema??`public`,table:e.table};let t=e.split(`.`);if(t.length===1)return{schema:Rc,table:Rd(t[0])};if(t.length===2)return{schema:Rd(t[0]),table:Rd(t[1])};let n=t.pop();return{schema:Rd(t.join(`.`)),table:Rd(n)}}function Bd(e){return e?e.split(``).every(e=>Ec(e)||Dc(e))&&!Dc(e[0]):!1}function Vd(e,t){if(!e.declaration)return!1;let n=e.declaration;if(!n.name)return!1;let r=n.name;return t.substring(r.start,r.end).includes(`"`)}function Hd(e,t,n){let r=!Bd(t),i=!Bd(e),a=n||r,o=n||i;return{schema:e,table:t,formattedSchema:o?`"${e}"`:e,formattedTable:a?`"${t}"`:t,shouldQuoteSchema:o,shouldQuoteTable:a}}function Ud(e,t,n){let r=Vc(n);if(t===`public`){let t=e.get(r);return t instanceof vc?t:null}let i=Bc(t),a=e.get(i);if(!a||!a.symbolTable)return null;let o=a.symbolTable.get(r);return o instanceof vc?o:null}function Wd(e,t,n,r,i){let a=Vc(i),o;if(r===`public`)o=e.get(a);else{let t=Bc(r),n=e.get(t);if(!n||!n.symbolTable)return!1;o=n.symbolTable.get(a)}return!(!o||t===r&&n===i)}function Gd(e,t,n){let r=e.start-1;for(;r>=0&&/\s/.test(n[r]);)r--;if(r<0||n[r]!==`.`)return null;for(r--;r>=0&&/\s/.test(n[r]);)r--;if(r<0)return null;let i,a;if(n[r]===`"`){for(a=r+1,r--;r>=0&&n[r]!==`"`;)r--;if(r<0)return null;i=r}else{for(a=r+1;r>=0&&/[a-zA-Z0-9_]/.test(n[r]);)r--;i=r+1}return Rd(n.substring(i,a))===t?{start:i,end:e.end}:null}function Kd(e,t,n,r){let i=[],a=new Set;for(let o of e){let e=Gd(o,t,r)??{start:o.start,end:o.end},s=`${e.start}-${e.end}`;if(a.has(s))continue;a.add(s);let c=n.schema===`public`?n.formattedTable:`${n.formattedSchema}.${n.formattedTable}`;i.push({start:e.start,end:e.end,newText:c})}return i}function qd(e,t){let n=this.parse.source(),r=this.parse.publicSymbolTable(),i=zd(e),a=zd(t),o=i.schema,s=i.table,c=a.schema,l=a.table,u=Ud(r,o,s);if(!u||Wd(r,o,s,c,l))return n;let d=Hd(c,l,Vd(u,n)),f=[];if(u.declaration){let e=u.declaration;e.name&&f.push(e.name)}for(let e of u.references)n.substring(e.start,e.end).replace(/"/g,``)===s&&f.push(e);return Ld(n,Kd(f,o,d,n))}var Jd=class{constructor(){this.source=``,this.cache=new Map,this.nodeIdGenerator=new Ys,this.symbolIdGenerator=new mc,this.token={invalidStream:this.query(Od),flatStream:this.query(Dd)},this.parse={source:()=>this.source,_:this.query(this.interpret),ast:this.query(Sd),errors:this.query(Cd),tokens:this.query(wd),rawDb:this.query(Td),publicSymbolTable:this.query(Ed)},this.container={stack:this.query(Md),token:this.query(Nd),element:this.query(Pd),scope:this.query(Fd),scopeKind:this.query(Id)},this.symbol={ofName:this.query(Ad,jd),members:this.query(kd)}}setSource(e){this.source=e,this.cache.clear(),this.nodeIdGenerator.reset(),this.symbolIdGenerator.reset()}query(e,t){let n=Symbol();return((...r)=>{if(r.length===0){if(this.cache.has(n))return this.cache.get(n);let t=e.apply(this,r);return this.cache.set(n,t),t}let i=t?t(...r):r[0],a=this.cache.get(n);if(a instanceof Map&&a.has(i))return a.get(i);let o=e.apply(this,r);return a instanceof Map||(a=new Map,this.cache.set(n,a)),a.set(i,o),o})}interpret(){let e=new Xl(this.source).lex().chain(e=>new eu(e,this.nodeIdGenerator).parse()).chain(({ast:e,tokens:t})=>new Au(e,this.symbolIdGenerator).analyze().map(()=>({ast:e,tokens:t})));return e.getErrors().length>0?e:e.chain(({ast:e,tokens:t})=>new qu(e).interpret().map(n=>({ast:e,tokens:t,rawDb:n})))}renameTable(e,t){return qd.call(this,e,t)}applyTextEdits(e){return Ld(this.parse.source(),e)}initMonacoServices(){return{definitionProvider:new yd(this),referenceProvider:new bd(this),autocompletionProvider:new ed(this)}}};exports.CompileError=R,exports.CompileErrorCode=L,exports.Compiler=Jd,exports.ElementDeclarationNode=P,exports.ElementKind=B,exports.ProgramNode=Xs,exports.ScopeKind=$,exports.SyntaxNode=M,exports.SyntaxNodeKind=N,exports.SyntaxToken=Hs,exports.SyntaxTokenKind=j,exports.addQuoteIfNeeded=Ac,exports.serialize=pc,Object.defineProperty(exports,`services`,{enumerable:!0,get:function(){return xd}});
27
+ `)+O+`return __p
28
+ }`;var K=Wl(function(){return ie(p,k+"return "+O).apply(i,E)});if(K.source=O,ma(K))throw K;return K}function XN(e){return ae(e).toLowerCase()}function HN(e){return ae(e).toUpperCase()}function qN(e,n,a){if(e=ae(e),e&&(a||n===i))return Zo(e);if(!e||!(n=rt(n)))return e;var u=At(e),c=At(n),p=jo(u,c),E=eu(u,c)+1;return Tn(u,p,E).join("")}function zN(e,n,a){if(e=ae(e),e&&(a||n===i))return e.slice(0,nu(e)+1);if(!e||!(n=rt(n)))return e;var u=At(e),c=eu(u,At(n))+1;return Tn(u,0,c).join("")}function KN(e,n,a){if(e=ae(e),e&&(a||n===i))return e.replace(ms,"");if(!e||!(n=rt(n)))return e;var u=At(e),c=jo(u,At(n));return Tn(u,c).join("")}function YN(e,n){var a=$f,u=Wf;if(ge(n)){var c="separator"in n?n.separator:c;a="length"in n?z(n.length):a,u="omission"in n?rt(n.omission):u}e=ae(e);var p=e.length;if(zn(e)){var E=At(e);p=E.length}if(a>=p)return e;var N=a-Kn(u);if(N<1)return u;var b=E?Tn(E,0,N).join(""):e.slice(0,N);if(c===i)return b+u;if(E&&(N+=b.length-N),Ia(c)){if(e.slice(N).search(c)){var x,S=b;for(c.global||(c=Bs(c.source,ae(vo.exec(c))+"g")),c.lastIndex=0;x=c.exec(S);)var O=x.index;b=b.slice(0,O===i?N:O)}}else if(e.indexOf(rt(c),N)!=N){var R=b.lastIndexOf(c);R>-1&&(b=b.slice(0,R))}return b+u}function JN(e){return e=ae(e),e&&oh.test(e)?e.replace(go,wp):e}var QN=tr(function(e,n,a){return e+(a?" ":"")+n.toUpperCase()}),La=Xu("toUpperCase");function $l(e,n,a){return e=ae(e),n=a?i:n,n===i?vp(e)?xp(e):fp(e):e.match(n)||[]}var Wl=Y(function(e,n){try{return tt(e,i,n)}catch(a){return ma(a)?a:new X(a)}}),ZN=Zt(function(e,n){return dt(n,function(a){a=kt(a),Jt(e,a,va(e[a],e))}),e});function jN(e){var n=e==null?0:e.length,a=B();return e=n?Ee(e,function(u){if(typeof u[1]!="function")throw new Et(f);return[a(u[0]),u[1]]}):[],Y(function(u){for(var c=-1;++c<n;){var p=e[c];if(tt(p[0],this,u))return tt(p[1],this,u)}})}function eT(e){return wd(gt(e,y))}function ya(e){return function(){return e}}function tT(e,n){return e==null||e!==e?n:e}var nT=qu(),rT=qu(!0);function Qe(e){return e}function xa(e){return mu(typeof e=="function"?e:gt(e,y))}function iT(e){return Au(gt(e,y))}function sT(e,n){return wu(e,gt(n,y))}var aT=Y(function(e,n){return function(a){return Pr(a,e,n)}}),oT=Y(function(e,n){return function(a){return Pr(e,a,n)}});function Sa(e,n,a){var u=Oe(n),c=Li(n,u);a==null&&!(ge(n)&&(c.length||!u.length))&&(a=n,n=e,e=this,c=Li(n,Oe(n)));var p=!(ge(a)&&"chain"in a)||!!a.chain,E=en(e);return dt(c,function(N){var b=n[N];e[N]=b,E&&(e.prototype[N]=function(){var x=this.__chain__;if(p||x){var S=e(this.__wrapped__),O=S.__actions__=Ke(this.__actions__);return O.push({func:b,args:arguments,thisArg:e}),S.__chain__=x,S}return b.apply(e,pn([this.value()],arguments))})}),e}function uT(){return Re._===this&&(Re._=Mp),this}function Oa(){}function lT(e){return e=z(e),Y(function(n){return Lu(n,e)})}var cT=oa(Ee),fT=oa(zo),hT=oa(Rs);function Xl(e){return da(e)?Ds(kt(e)):$d(e)}function pT(e){return function(n){return e==null?i:Pn(e,n)}}var dT=Ku(),ET=Ku(!0);function Pa(){return[]}function Ra(){return!1}function _T(){return{}}function gT(){return""}function NT(){return!0}function TT(e,n){if(e=z(e),e<1||e>fn)return[];var a=Dt,u=Ce(e,Dt);n=B(n),e-=Dt;for(var c=ks(u,n);++a<e;)n(a);return c}function vT(e){return H(e)?Ee(e,kt):it(e)?[e]:Ke(cl(ae(e)))}function bT(e){var n=++Rp;return ae(e)+n}var mT=Ri(function(e,n){return e+n},0),IT=ua("ceil"),AT=Ri(function(e,n){return e/n},1),wT=ua("floor");function LT(e){return e&&e.length?wi(e,Qe,zs):i}function yT(e,n){return e&&e.length?wi(e,B(n,2),zs):i}function xT(e){return Jo(e,Qe)}function ST(e,n){return Jo(e,B(n,2))}function OT(e){return e&&e.length?wi(e,Qe,Qs):i}function PT(e,n){return e&&e.length?wi(e,B(n,2),Qs):i}var RT=Ri(function(e,n){return e*n},1),DT=ua("round"),MT=Ri(function(e,n){return e-n},0);function UT(e){return e&&e.length?Us(e,Qe):0}function kT(e,n){return e&&e.length?Us(e,B(n,2)):0}return h.after=ig,h.ary=bl,h.assign=Hg,h.assignIn=Ul,h.assignInWith=Hi,h.assignWith=qg,h.at=zg,h.before=ml,h.bind=va,h.bindAll=ZN,h.bindKey=Il,h.castArray=_g,h.chain=Nl,h.chunk=wE,h.compact=LE,h.concat=yE,h.cond=jN,h.conforms=eT,h.constant=ya,h.countBy=U_,h.create=Kg,h.curry=Al,h.curryRight=wl,h.debounce=Ll,h.defaults=Yg,h.defaultsDeep=Jg,h.defer=sg,h.delay=ag,h.difference=xE,h.differenceBy=SE,h.differenceWith=OE,h.drop=PE,h.dropRight=RE,h.dropRightWhile=DE,h.dropWhile=ME,h.fill=UE,h.filter=F_,h.flatMap=G_,h.flatMapDeep=V_,h.flatMapDepth=$_,h.flatten=dl,h.flattenDeep=kE,h.flattenDepth=FE,h.flip=og,h.flow=nT,h.flowRight=rT,h.fromPairs=CE,h.functions=rN,h.functionsIn=iN,h.groupBy=W_,h.initial=GE,h.intersection=VE,h.intersectionBy=$E,h.intersectionWith=WE,h.invert=aN,h.invertBy=oN,h.invokeMap=H_,h.iteratee=xa,h.keyBy=q_,h.keys=Oe,h.keysIn=Je,h.map=Bi,h.mapKeys=lN,h.mapValues=cN,h.matches=iT,h.matchesProperty=sT,h.memoize=Vi,h.merge=fN,h.mergeWith=kl,h.method=aT,h.methodOf=oT,h.mixin=Sa,h.negate=$i,h.nthArg=lT,h.omit=hN,h.omitBy=pN,h.once=ug,h.orderBy=z_,h.over=cT,h.overArgs=lg,h.overEvery=fT,h.overSome=hT,h.partial=ba,h.partialRight=yl,h.partition=K_,h.pick=dN,h.pickBy=Fl,h.property=Xl,h.propertyOf=pT,h.pull=zE,h.pullAll=_l,h.pullAllBy=KE,h.pullAllWith=YE,h.pullAt=JE,h.range=dT,h.rangeRight=ET,h.rearg=cg,h.reject=Q_,h.remove=QE,h.rest=fg,h.reverse=Na,h.sampleSize=j_,h.set=_N,h.setWith=gN,h.shuffle=eg,h.slice=ZE,h.sortBy=rg,h.sortedUniq=s_,h.sortedUniqBy=a_,h.split=GN,h.spread=hg,h.tail=o_,h.take=u_,h.takeRight=l_,h.takeRightWhile=c_,h.takeWhile=f_,h.tap=L_,h.throttle=pg,h.thru=Ci,h.toArray=Rl,h.toPairs=Cl,h.toPairsIn=Bl,h.toPath=vT,h.toPlainObject=Ml,h.transform=NN,h.unary=dg,h.union=h_,h.unionBy=p_,h.unionWith=d_,h.uniq=E_,h.uniqBy=__,h.uniqWith=g_,h.unset=TN,h.unzip=Ta,h.unzipWith=gl,h.update=vN,h.updateWith=bN,h.values=ir,h.valuesIn=mN,h.without=N_,h.words=$l,h.wrap=Eg,h.xor=T_,h.xorBy=v_,h.xorWith=b_,h.zip=m_,h.zipObject=I_,h.zipObjectDeep=A_,h.zipWith=w_,h.entries=Cl,h.entriesIn=Bl,h.extend=Ul,h.extendWith=Hi,Sa(h,h),h.add=mT,h.attempt=Wl,h.camelCase=LN,h.capitalize=Gl,h.ceil=IT,h.clamp=IN,h.clone=gg,h.cloneDeep=Tg,h.cloneDeepWith=vg,h.cloneWith=Ng,h.conformsTo=bg,h.deburr=Vl,h.defaultTo=tT,h.divide=AT,h.endsWith=yN,h.eq=Lt,h.escape=xN,h.escapeRegExp=SN,h.every=k_,h.find=C_,h.findIndex=hl,h.findKey=Qg,h.findLast=B_,h.findLastIndex=pl,h.findLastKey=Zg,h.floor=wT,h.forEach=Tl,h.forEachRight=vl,h.forIn=jg,h.forInRight=eN,h.forOwn=tN,h.forOwnRight=nN,h.get=Aa,h.gt=mg,h.gte=Ig,h.has=sN,h.hasIn=wa,h.head=El,h.identity=Qe,h.includes=X_,h.indexOf=BE,h.inRange=AN,h.invoke=uN,h.isArguments=Mn,h.isArray=H,h.isArrayBuffer=Ag,h.isArrayLike=Ye,h.isArrayLikeObject=Ie,h.isBoolean=wg,h.isBuffer=vn,h.isDate=Lg,h.isElement=yg,h.isEmpty=xg,h.isEqual=Sg,h.isEqualWith=Og,h.isError=ma,h.isFinite=Pg,h.isFunction=en,h.isInteger=xl,h.isLength=Wi,h.isMap=Sl,h.isMatch=Rg,h.isMatchWith=Dg,h.isNaN=Mg,h.isNative=Ug,h.isNil=Fg,h.isNull=kg,h.isNumber=Ol,h.isObject=ge,h.isObjectLike=ve,h.isPlainObject=Fr,h.isRegExp=Ia,h.isSafeInteger=Cg,h.isSet=Pl,h.isString=Xi,h.isSymbol=it,h.isTypedArray=rr,h.isUndefined=Bg,h.isWeakMap=Gg,h.isWeakSet=Vg,h.join=XE,h.kebabCase=ON,h.last=Tt,h.lastIndexOf=HE,h.lowerCase=PN,h.lowerFirst=RN,h.lt=$g,h.lte=Wg,h.max=LT,h.maxBy=yT,h.mean=xT,h.meanBy=ST,h.min=OT,h.minBy=PT,h.stubArray=Pa,h.stubFalse=Ra,h.stubObject=_T,h.stubString=gT,h.stubTrue=NT,h.multiply=RT,h.nth=qE,h.noConflict=uT,h.noop=Oa,h.now=Gi,h.pad=DN,h.padEnd=MN,h.padStart=UN,h.parseInt=kN,h.random=wN,h.reduce=Y_,h.reduceRight=J_,h.repeat=FN,h.replace=CN,h.result=EN,h.round=DT,h.runInContext=v,h.sample=Z_,h.size=tg,h.snakeCase=BN,h.some=ng,h.sortedIndex=jE,h.sortedIndexBy=e_,h.sortedIndexOf=t_,h.sortedLastIndex=n_,h.sortedLastIndexBy=r_,h.sortedLastIndexOf=i_,h.startCase=VN,h.startsWith=$N,h.subtract=MT,h.sum=UT,h.sumBy=kT,h.template=WN,h.times=TT,h.toFinite=tn,h.toInteger=z,h.toLength=Dl,h.toLower=XN,h.toNumber=vt,h.toSafeInteger=Xg,h.toString=ae,h.toUpper=HN,h.trim=qN,h.trimEnd=zN,h.trimStart=KN,h.truncate=YN,h.unescape=JN,h.uniqueId=bT,h.upperCase=QN,h.upperFirst=La,h.each=Tl,h.eachRight=vl,h.first=El,Sa(h,function(){var e={};return Mt(h,function(n,a){oe.call(h.prototype,a)||(e[a]=n)}),e}(),{chain:!1}),h.VERSION=s,dt(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){h[e].placeholder=h}),dt(["drop","take"],function(e,n){Z.prototype[e]=function(a){a=a===i?1:Se(z(a),0);var u=this.__filtered__&&!n?new Z(this):this.clone();return u.__filtered__?u.__takeCount__=Ce(a,u.__takeCount__):u.__views__.push({size:Ce(a,Dt),type:e+(u.__dir__<0?"Right":"")}),u},Z.prototype[e+"Right"]=function(a){return this.reverse()[e](a).reverse()}}),dt(["filter","map","takeWhile"],function(e,n){var a=n+1,u=a==po||a==zf;Z.prototype[e]=function(c){var p=this.clone();return p.__iteratees__.push({iteratee:B(c,3),type:a}),p.__filtered__=p.__filtered__||u,p}}),dt(["head","last"],function(e,n){var a="take"+(n?"Right":"");Z.prototype[e]=function(){return this[a](1).value()[0]}}),dt(["initial","tail"],function(e,n){var a="drop"+(n?"":"Right");Z.prototype[e]=function(){return this.__filtered__?new Z(this):this[a](1)}}),Z.prototype.compact=function(){return this.filter(Qe)},Z.prototype.find=function(e){return this.filter(e).head()},Z.prototype.findLast=function(e){return this.reverse().find(e)},Z.prototype.invokeMap=Y(function(e,n){return typeof e=="function"?new Z(this):this.map(function(a){return Pr(a,e,n)})}),Z.prototype.reject=function(e){return this.filter($i(B(e)))},Z.prototype.slice=function(e,n){e=z(e);var a=this;return a.__filtered__&&(e>0||n<0)?new Z(a):(e<0?a=a.takeRight(-e):e&&(a=a.drop(e)),n!==i&&(n=z(n),a=n<0?a.dropRight(-n):a.take(n-e)),a)},Z.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Z.prototype.toArray=function(){return this.take(Dt)},Mt(Z.prototype,function(e,n){var a=/^(?:filter|find|map|reject)|While$/.test(n),u=/^(?:head|last)$/.test(n),c=h[u?"take"+(n=="last"?"Right":""):n],p=u||/^find/.test(n);c&&(h.prototype[n]=function(){var E=this.__wrapped__,N=u?[1]:arguments,b=E instanceof Z,x=N[0],S=b||H(E),O=function(Q){var ee=c.apply(h,pn([Q],N));return u&&R?ee[0]:ee};S&&a&&typeof x=="function"&&x.length!=1&&(b=S=!1);var R=this.__chain__,k=!!this.__actions__.length,G=p&&!R,K=b&&!k;if(!p&&S){E=K?E:new Z(this);var V=e.apply(E,N);return V.__actions__.push({func:Ci,args:[O],thisArg:i}),new _t(V,R)}return G&&K?e.apply(this,N):(V=this.thru(O),G?u?V.value()[0]:V.value():V)})}),dt(["pop","push","shift","sort","splice","unshift"],function(e){var n=ci[e],a=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",u=/^(?:pop|shift)$/.test(e);h.prototype[e]=function(){var c=arguments;if(u&&!this.__chain__){var p=this.value();return n.apply(H(p)?p:[],c)}return this[a](function(E){return n.apply(H(E)?E:[],c)})}}),Mt(Z.prototype,function(e,n){var a=h[n];if(a){var u=a.name+"";oe.call(Zn,u)||(Zn[u]=[]),Zn[u].push({name:n,func:a})}}),Zn[Pi(i,de).name]=[{name:"wrapper",func:i}],Z.prototype.clone=Jp,Z.prototype.reverse=Qp,Z.prototype.value=Zp,h.prototype.at=y_,h.prototype.chain=x_,h.prototype.commit=S_,h.prototype.next=O_,h.prototype.plant=R_,h.prototype.reverse=D_,h.prototype.toJSON=h.prototype.valueOf=h.prototype.value=M_,h.prototype.first=h.prototype.head,Ar&&(h.prototype[Ar]=P_),h},Yn=Sp();Ln?((Ln.exports=Yn)._=Yn,xs._=Yn):Re._=Yn}).call(NA)}(Gr,Gr.exports)),Gr.exports}var sn=TA();class vA{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return!(this.declarationNode.parent instanceof se)||cn(this.declarationNode.parent).unwrap_or(void 0)!==F.Table?[]:this.declarationNode.body instanceof ke?this.bindBody(this.declarationNode.body):[]}bindBody(r){if(!r)return[];if(r instanceof W)return this.bindFields([r]);const[i,s]=sn.partition(r.body,o=>o instanceof W);return[...this.bindFields(i),...this.bindSubElements(s)]}bindFields(r){return r.flatMap(i=>{if(!i.callee)return[];const s=Ge(this.declarationNode.parent.name).map(d=>d.join(".")).unwrap_or("<unnamed>"),o=this.declarationNode.parent.symbol.symbolTable;return[i.callee,...i.args].flatMap(Ft).flatMap(d=>d.variables.length+d.tupleElements.length>1?[]:d.variables.length?d.variables[0]:d.tupleElements).flatMap(d=>{const m=Me(d).unwrap_or(void 0);if(m===void 0)return[];const I=fr(m),T=o.get(I);return T?(d.referee=T,T.references.push(d),[]):new g(_.BINDING_ERROR,`No column named '${m}' inside Table '${s}'`,d)})})}bindSubElements(r){return r.flatMap(i=>{if(!i.type)return[];const s=Ht(i);return new s(i,this.ast,this.symbolFactory).bind()})}}class bA{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return this.bindBody(this.declarationNode.body)}bindBody(r){if(!r)return[];if(r instanceof W)return[];const i=r.body.filter(s=>s instanceof se);return this.bindSubElements(i)}bindSubElements(r){return r.flatMap(i=>{if(!i.type)return[];const s=Ht(i);return new s(i,this.ast,this.symbolFactory).bind()})}}class mA{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return this.declarationNode.body instanceof ke?this.bindBody(this.declarationNode.body):[]}bindBody(r){if(!r)return[];if(r instanceof W)return[];const i=r.body.filter(s=>s instanceof se);return this.bindSubElements(i)}bindSubElements(r){return r.flatMap(i=>{if(!i.type)return[];const s=Ht(i);return new s(i,this.ast,this.symbolFactory).bind()})}}class IA{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return!(this.declarationNode.parent instanceof qe)&&cn(this.declarationNode.parent).unwrap_or(void 0)!==F.Project?[]:this.bindBody(this.declarationNode.body)}bindBody(r){if(!r)return[];if(r instanceof W)return this.bindFields([r]);const[i,s]=sn.partition(r.body,o=>o instanceof W);return[...this.bindFields(i),...this.bindSubElements(s)]}bindFields(r){return r.flatMap(i=>i.callee?[i.callee,...i.args].flatMap(Ft).flatMap(l=>{let f=l.tupleElements.length?l.tupleElements:l.variables.pop();const d=l.variables.pop();if(!f||!d)return[];Array.isArray(f)||(f=[f]);const m=l.variables;return f.flatMap(I=>Ct(this.ast,[...m.map(T=>({node:T,kind:U.Schema})),{node:d,kind:U.Table},{node:I,kind:U.Column}]))}):[])}bindSubElements(r){return r.flatMap(i=>{if(!i.type)return[];const s=Ht(i);return new s(i,this.ast,this.symbolFactory).bind()})}}class wf{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return this.declarationNode.body instanceof ke?this.bindBody(this.declarationNode.body):[]}resolvePartialInjections(){const{body:r}=this.declarationNode;return(r?r instanceof ke?r.body:[r]:[]).filter(s=>s instanceof W&&Ji(s.callee)).reverse().flatMap(s=>{const o=ut(s.callee.expression).unwrap_or(void 0);if(!o)return[];const l=o.variables.pop(),f=o.variables;if(!l)return[];const d=Ct(this.ast,[...f.map(m=>({node:m,kind:U.Schema})),{node:l,kind:U.TablePartial}]);return d.length?d:(l.referee?.symbolTable?.forEach(m=>{const I=Pe(m.declaration.callee).unwrap_or(void 0);if(I===void 0)return;const T=this.symbolFactory.create(Nf,{declaration:s,tablePartialSymbol:l.referee}),y=fr(I),$=this.declarationNode.symbol?.symbolTable;$?.has(y)||$?.set(y,T)}),[])})}bindBody(r){if(!r)return[];if(r instanceof W)return this.bindFields([r]);const[i,s]=sn.partition(r.body,o=>o instanceof W);return[...this.bindFields(i),...this.bindSubElements(s)]}bindFields(r){const i=r.filter(o=>!Ji(o.callee));return(o=>o.flatMap(l=>{if(!l.callee)return[];const f=[],d=[l.callee,...l.args];if(sn.last(d)instanceof _e){const m=sn.last(d),I=Ne(m).getValue();f.push(...I.ref?.flatMap(T=>T.value?this.bindInlineRef(T.value):[])||[]),f.push(...I.default?.flatMap(T=>T.value?this.tryToBindEnumFieldRef(T.value):[])||[]),d.pop()}return d[1]&&this.tryToBindColumnType(d[1]),f}))(i)}tryToBindColumnType(r){const i=ut(r).unwrap_or(void 0);if(!i)return;const s=i.variables.pop(),o=i.variables;s&&Ct(this.ast,[...o.map(l=>({node:l,kind:U.Schema})),{node:s,kind:U.Enum}])}tryToBindEnumFieldRef(r){if(Fe(r))return[];if(we(r)){const f=r.expression.variable?.value?.toLowerCase();if(f&&FI.includes(f))return[]}const i=ut(r).unwrap_or(void 0);if(!i)return[];const s=i.variables.pop(),o=i.variables.pop();if(!s||!o)return[];const l=i.variables;return Ct(this.ast,[...l.map(f=>({node:f,kind:U.Schema})),{node:o,kind:U.Enum},{node:s,kind:U.EnumField}])}bindInlineRef(r){return Ft(r).flatMap(s=>{const o=s.variables.pop(),l=s.variables.pop();if(!o)return[];const f=s.variables;return l?Ct(this.ast,[...f.map(d=>({node:d,kind:U.Schema})),{node:l,kind:U.Table},{node:o,kind:U.Column}]):Ct(this.declarationNode,[{node:o,kind:U.Column}])})}bindSubElements(r){return r.flatMap(i=>{if(!i.type)return[];const s=Ht(i);return new s(i,this.ast,this.symbolFactory).bind()})}}class AA{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return this.declarationNode.body instanceof ke?this.bindBody(this.declarationNode.body):[]}bindBody(r){if(!r)return[];if(r instanceof W)return this.bindFields([r]);const[i,s]=sn.partition(r.body,o=>o instanceof W);return[...this.bindFields(i),...this.bindSubElements(s)]}bindFields(r){return r.flatMap(i=>i.callee?[i.callee,...i.args].flatMap(Ft).flatMap(l=>{const f=l.variables.pop();if(!f)return[];const d=l.variables;return Ct(this.ast,[...d.map(m=>({node:m,kind:U.Schema})),{node:f,kind:U.Table}])}):[])}bindSubElements(r){return r.flatMap(i=>{if(!i.type)return[];const s=Ht(i);return new s(i,this.ast,this.symbolFactory).bind()})}}class wA{constructor(r,i,s){this.declarationNode=r,this.ast=i,this.symbolFactory=s}bind(){return this.declarationNode.body instanceof ke?this.bindBody(this.declarationNode.body):[]}bindBody(r){if(!r)return[];if(r instanceof W)return this.bindFields([r]);const[i,s]=sn.partition(r.body,o=>o instanceof W);return[...this.bindFields(i),...this.bindSubElements(s)]}bindFields(r){return r.flatMap(i=>{if(!i.callee)return[];const s=[],o=[i.callee,...i.args];if(sn.last(o)instanceof _e){const l=sn.last(o),f=Ne(l).getValue();s.push(...f.ref?.flatMap(d=>d.value?this.bindInlineRef(d.value):[])||[]),o.pop()}return o[1]&&this.tryToBindColumnType(o[1]),s})}tryToBindColumnType(r){const i=ut(r).unwrap_or(void 0);if(!i)return;const s=i.variables.pop(),o=i.variables;s&&Ct(this.ast,[...o.map(l=>({node:l,kind:U.Schema})),{node:s,kind:U.Enum}])}bindInlineRef(r){return Ft(r).flatMap(s=>{const o=s.variables.pop(),l=s.variables.pop();if(!o)return[];const f=s.variables;return l?Ct(this.ast,[...f.map(d=>({node:d,kind:U.Schema})),{node:l,kind:U.Table},{node:o,kind:U.Column}]):Ct(this.declarationNode,[{node:o,kind:U.Column}])})}bindSubElements(r){return r.flatMap(i=>{if(!i.type)return[];const s=Ht(i);return new s(i,this.ast,this.symbolFactory).bind()})}}function LA(t){return[Jr,ur,no,io,fr,ro,so,ao,oo].map(r=>r(t))}function yA(t){if(t instanceof eo)return U.Schema;if(t instanceof qr)return U.Table;if(t instanceof to)return U.Column;if(t instanceof hf)return U.Enum;if(t instanceof pf)return U.EnumField;if(t instanceof df)return U.TableGroup;if(t instanceof Ef)return U.TableGroupField;if(t instanceof _f)return U.TablePartial;if(t instanceof Nf)return U.Column;if(t instanceof gf)return U.PartialInjection;throw new Error("No other possible symbol kind in getSymbolKind")}function Ht(t){switch(t.type.value.toLowerCase()){case F.Enum:return gA;case F.Table:return wf;case F.TableGroup:return AA;case F.Project:return mA;case F.Ref:return IA;case F.Note:return bA;case F.Indexes:return vA;case F.TablePartial:return wA;case F.Check:return EA;default:return _A}}function Ft(t){if(!t)return[];if(we(t))return[{variables:[t],tupleElements:[]}];if(t instanceof Vt){const r=ut(t).unwrap_or(void 0);return r?[r]:[...Ft(t.leftExpression),...Ft(t.rightExpression)]}if(t instanceof je||t instanceof os)return Ft(t.expression);if(t instanceof Wt){const r=ut(t).unwrap_or(void 0);return r?[r]:t.elementList.flatMap(Ft)}return[]}function Ct(t,r){if(!t.symbol?.symbolTable)throw new Error("lookupAndBindInScope should only be called with initial scope having a symbol table");let i=t.symbol.symbolTable,s=yA(t.symbol),o=t instanceof se?sA(t).unwrap_or("<invalid name>"):$t;if(t instanceof qe&&r.length){const{node:l,kind:f}=r[0];Me(l).unwrap_or("<unnamed>")===$t&&f===U.Schema&&r.shift()}for(const l of r){const{node:f,kind:d}=l,m=Me(f).unwrap_or("<unnamed>"),I=GI(m,d),T=i.get(I);if(!T)return[new g(_.BINDING_ERROR,`${d} '${m}' does not exist in ${o===void 0?"global scope":`${s} '${o}'`}`,f)];if(f.referee=T,T.references.push(f),o=m,s=d,!T.symbolTable)return[];i=T.symbolTable}return[]}class xA{constructor(r,i){this.ast=r,this.symbolFactory=i}resolvePartialInjections(){return this.ast.body.filter(r=>cn(r).unwrap_or("")===F.Table).flatMap(r=>new wf(r,this.ast,this.symbolFactory).resolvePartialInjections())}resolve(){const r=[];r.push(...this.resolvePartialInjections());for(const i of this.ast.body)if(i.type){const s=Ht(i),o=new s(i,this.ast,this.symbolFactory);r.push(...o.bind())}return new ct(this.ast,r)}}class SA{constructor(r){this.generator=r}create(r,i){return new r(i,this.generator.nextId())}}class OA{constructor(r,i){this.ast=r,this.symbolFactory=new SA(i)}analyze(){return new Lc(this.ast,this.symbolFactory).validate().chain(i=>new xA(i,this.symbolFactory).resolve())}validate(){return new Lc(this.ast,this.symbolFactory).validate().chain(i=>new ct(i,[]))}}function xc(t,r){const{variables:i,tupleElements:s}=ut(t).unwrap(),o=s.map(f=>Me(f).unwrap()),l=i.map(f=>Me(f).unwrap());return s.length?i.length===0?{schemaName:r.schemaName,tableName:r.name,fieldNames:o}:{tableName:l.pop(),schemaName:l.pop()||null,fieldNames:o}:i.length===1?{schemaName:r.schemaName,tableName:r.name,fieldNames:[l[0]]}:{fieldNames:[l.pop()],tableName:l.pop(),schemaName:l.pop()||null}}function Lf(t){switch(t){case"<":return["1","*"];case"<>":return["*","*"];case">":return["*","1"];case"-":return["1","1"];default:throw new Error("Invalid relation op")}}function q(t){return{start:{offset:t.startPos.offset,line:t.startPos.line+1,column:t.startPos.column+1},end:{offset:t.endPos.offset,line:t.endPos.line+1,column:t.endPos.column+1}}}function Zi(t){const r=An(t).unwrap_or(void 0)?.pop();return r instanceof Wt?r.elementList.map(i=>i.referee):[r.referee]}function $n(t){const r=Ge(t).unwrap();return{name:r.pop(),schemaName:r}}function Zr(t){return t.expression.literal.value}function yf(t,r){if(Array.isArray(t)){const o=t.map(({id:f})=>f).sort().join(","),l=r.map(({id:f})=>f).sort().join(",");return o<l?`${o}-${l}`:`${l}-${o}`}const i=t.id.toString(),s=r.id.toString();return i<s?`${i}-${s}`:`${s}-${i}`}function co(t,r){if(Array.isArray(t)){const o=t.map(({id:f})=>f).sort(),l=r.map(({id:f})=>f).sort();return Va(o,l).every(([f,d])=>f===d)}const i=t.id,s=r.id;return i===s}function Ot(t){const r=t.split(`
29
+ `),i=r.slice(r.findIndex(l=>l.trimStart()!=="")),s=i.filter(l=>l.trimStart()),o=Math.min(...s.map(l=>l.length-l.trimStart().length));return i.map(l=>l.slice(o)).join(`
30
+ `)}function xf(t){if(t){if(Fe(t))return{value:Le(t).unwrap(),type:"string"};if(mn(t))return{type:"number",value:Xa(t)};if(In(t))return{value:t.expression.variable.value.toLowerCase(),type:"boolean"};if(t instanceof bt&&t.value)return{value:t.value.value,type:"expression"};if(lo(t))return{value:An(t).map(me).and_then(Pe).unwrap(),type:"string"};throw new Error("Unreachable")}}function Sf(t){let r="",i=null;for(t instanceof He&&(i=t.argumentList.elementList.map(l=>mn(l)?Wa(l):Fe(l)?Le(l).unwrap():Pe(l).unwrap()).join(","),r=`(${i})`,t=t.callee);t instanceof He||t instanceof Bt;)t instanceof He?(r=`(${t.argumentList.elementList.map(f=>mn(f)?Wa(f):Fe(f)?Le(f).unwrap():Pe(f).unwrap()).join(",")})${r}`,t=t.callee):t instanceof Bt&&(r=`${`[${t.indexer.elementList.map(f=>f.name.expression.literal.value).join(",")}]`}${r}`,t=t.array);const{name:s,schemaName:o}=$n(t);return o.length>1?new ct({schemaName:o.length===0?null:o[0],type_name:`${s}${r}`,args:i},[new g(_.UNSUPPORTED,"Nested schema is not supported",t)]):new ct({schemaName:o.length===0?null:o[0],type_name:`${s}${r}`,args:i})}class Of{constructor(r,i){this.declarationNode=r,this.env=i,this.table={name:void 0,schemaName:void 0,alias:null,fields:[],token:void 0,indexes:[],partials:[],checks:[]},this.pkColumns=[]}interpret(){this.table.token=q(this.declarationNode),this.env.tables.set(this.declarationNode,this.table);const r=[...this.interpretName(this.declarationNode.name),...this.interpretAlias(this.declarationNode.alias),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.table.indexes.push({columns:this.pkColumns.map(({name:i,token:s})=>({value:i,type:"column",token:s})),token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1}},pk:!0}),this.pkColumns.forEach(i=>{i.pk=!1})),r}interpretName(r){const{name:i,schemaName:s}=$n(r);return s.length>1?(this.table.name=i,this.table.schemaName=s.join("."),[new g(_.UNSUPPORTED,"Nested schema is not supported",r)]):(this.table.name=i,this.table.schemaName=s.length?s[0]:null,[])}interpretAlias(r){if(!r)return[];const i=Me(r).unwrap_or(null);return i&&(this.env.aliases.push({name:i,kind:"table",value:{tableName:this.table.name,schemaName:this.table.schemaName}}),this.table.alias=i),[]}interpretSettingList(r){const i=Ne(r).getValue();this.table.headerColor=i[P.HeaderColor]?.length?Zr(i[P.HeaderColor]?.at(0)?.value):void 0;const[s]=i[P.Note]||[];return this.table.note=s&&{value:Le(s?.value).map(Ot).unwrap(),token:q(s)},[]}interpretBody(r){const[i,s]=ft(r.body,o=>o instanceof W);return[...this.interpretFields(i),...this.interpretSubElements(s)]}interpretSubElements(r){return r.flatMap(i=>{switch(i.type?.value.toLowerCase()){case F.Note:return this.table.note={value:Le(i.body instanceof ke?i.body.body[0].callee:i.body.callee).map(Ot).unwrap(),token:q(i)},[];case F.Indexes:return this.interpretIndexes(i);case F.Check:return this.interpretChecks(i);default:return[]}})}interpretInjection(r,i){const s={order:i,token:q(r)};return s.name=Pe(r.expression).unwrap_or(""),this.table.partials.push(s),[]}interpretFields(r){const o=(this.declarationNode.symbol?.symbolTable?[...this.declarationNode.symbol.symbolTable.entries()]:[]).filter(([f])=>Qr(f).unwrap_or(null)?.kind===U.Column).length?[]:[new g(_.EMPTY_TABLE,"A Table must have at least one column",this.declarationNode)],l=r.flatMap((f,d)=>Ji(f.callee)?this.interpretInjection(f.callee,d):this.interpretColumn(f));return[...o,...l]}interpretColumn(r){const i=[],s={};s.name=Me(r.callee).unwrap();const o=Sf(r.args[0]);s.type=o.getValue(),i.push(...o.getErrors()),s.token=q(r),s.inline_refs=[];const l=r.args.slice(1);if(me(l)instanceof _e){const f=Ne(l.pop()).getValue();s.pk=!!f[P.PK]?.length||!!f[P.PrimaryKey]?.length,s.increment=!!f[P.Increment]?.length,s.unique=!!f[P.Unique]?.length,s.not_null=f[P.NotNull]?.length?!0:f[P.Null]?.length?!1:void 0,s.dbdefault=xf(f[P.Default]?.at(0)?.value);const d=f[P.Note]?.at(0);s.note=d&&{value:Le(d.value).map(Ot).unwrap(),token:q(d)};const m=f[P.Ref]||[];s.inline_refs=m.flatMap(T=>{const[y]=Zi(T.value.expression);if(co(y,r.symbol))return i.push(new g(_.SAME_ENDPOINT,"Two endpoints are the same",T)),[];const $=T.value.op,J=Ge(T.value.expression).unwrap();let ne;if(J.length===1){const[j]=J;ne={schemaName:this.table.schemaName,tableName:this.table.name,fieldNames:[j],relation:$.value,token:q(T)}}else if(J.length===2){const[j,de]=J;ne={schemaName:null,tableName:j,fieldNames:[de],relation:$.value,token:q(T)}}else if(J.length===3){const[j,de,et]=J;ne={schemaName:j,tableName:de,fieldNames:[et],relation:$.value,token:q(T)}}else{i.push(new g(_.UNSUPPORTED,"Nested schema is not supported",T));const j=J.pop(),de=J.pop();ne={schemaName:J.join("."),tableName:de,fieldNames:[j],relation:$.value,token:q(T)}}const re=this.registerInlineRefToEnv(r,y,ne,T);return i.push(...re),re.length===0?ne:[]});const I=f[P.Check]||[];s.checks=I.map(T=>{const y=q(T),$=T.value.value.value;return{token:y,expression:$}})}return s.pk||=l.some(f=>Pe(f).unwrap().toLowerCase()==="pk"),s.unique||=l.some(f=>Pe(f).unwrap().toLowerCase()==="unique"),this.table.fields.push(s),s.pk&&this.pkColumns.push(s),i}interpretIndexes(r){return this.table.indexes.push(...r.body.body.map(i=>{const s={columns:[]},o=i;s.token=q(o);const l=[o.callee,...o.args];if(me(l)instanceof _e){const f=Ne(l.pop()).getValue();s.pk=!!f[P.PK]?.length,s.unique=!!f[P.Unique]?.length,s.name=Le(f[P.Name]?.at(0)?.value).unwrap_or(void 0);const d=f[P.Note]?.at(0);s.note=d&&{value:Le(d.value).unwrap(),token:q(d)},s.type=Pe(f[P.Type]?.at(0)?.value).unwrap_or(void 0)}return l.flatMap(f=>{if(!(f instanceof He))return f;const d=[];for(;f instanceof He;)d.push(f.argumentList),f=f.callee;return d.push(f),d}).forEach(f=>{const{functional:d,nonFunctional:m}=Qi(f).unwrap();s.columns.push(...d.map(I=>({value:I.value.value,type:"expression",token:q(I)})),...m.map(I=>({value:Me(I).unwrap(),type:"column",token:q(I)})))}),s})),[]}interpretChecks(r){return this.table.checks.push(...r.body.body.map(i=>{const s={},o=i;if(s.token=q(o),o.args[0]instanceof _e){const l=Ne(o.args[0]).getValue();s.name=Le(l[P.Name]?.at(0)?.value).unwrap_or(void 0)}return s.expression=o.callee.value.value,s})),[]}registerInlineRefToEnv(r,i,s,o){const l=yf(r.symbol,i);if(this.env.refIds[l])return[new g(_.CIRCULAR_REF,"References with same endpoints exist",o),new g(_.CIRCULAR_REF,"References with same endpoints exist",this.env.refIds[l])];const f=Lf(s.relation);return this.env.refIds[l]=o,this.env.ref.set(o,{name:null,schemaName:null,token:s.token,endpoints:[{...s,relation:f[1]},{schemaName:this.table.schemaName,tableName:this.table.name,fieldNames:[Pe(r.callee).unwrap()],token:q(r),relation:f[0]}]}),[]}}class PA{constructor(r,i){this.declarationNode=r,this.env=i,this.note={name:void 0,content:void 0,token:void 0}}interpret(){return this.note.token=q(this.declarationNode),this.env.notes.set(this.declarationNode,this.note),[...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)]}interpretName(r){const{name:i}=$n(r);return this.note.name=i,[]}interpretSettingList(r){const i=Ne(r).getValue();return this.note.headerColor=i.headercolor?.length?Zr(i.headercolor?.at(0)?.value):void 0,[]}interpretBody(r){const[i,s]=ft(r.body,o=>o instanceof W);return i.length!==1||s.length>0?[new g(_.INVALID_NOTE,"Invalid note syntax",r)]:[...this.interpretNote(i[0])]}interpretNote(r){const i=Zc(r,"callee.expression.literal.value","");return this.note.content=Ot(i),[]}}class Pf{constructor(r,i){this.declarationNode=r,this.env=i,this.container=this.declarationNode.parent instanceof se?this.env.tables.get(this.declarationNode.parent):void 0,this.ref={}}interpret(){return this.ref.token=q(this.declarationNode),this.env.ref.set(this.declarationNode,this.ref),[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)]}interpretName(r){const i=[],s=Ge(this.declarationNode.name).unwrap_or([]);return this.ref.name=s.pop()||null,s.length>1&&i.push(new g(_.UNSUPPORTED,"Nested schema is not supported",this.declarationNode.name)),this.ref.schemaName=s.join(".")||null,i}interpretBody(r){return r instanceof W?this.interpretField(r):this.interpretField(r.body[0])}interpretField(r){const i=r.callee.op.value,{leftExpression:s,rightExpression:o}=r.callee,l=Zi(s),f=Zi(o);if(co(l,f))return[new g(_.SAME_ENDPOINT,"Two endpoints are the same",r)];const d=yf(l,f);if(this.env.refIds[d])return[new g(_.CIRCULAR_REF,"References with same endpoints exist",this.declarationNode),new g(_.CIRCULAR_REF,"References with same endpoints exist",this.env.refIds[d])];if(r.args[0]){const I=Ne(r.args[0]).getValue(),T=I.delete?.at(0)?.value;this.ref.onDelete=T instanceof xt?zr(T).unwrap_or(void 0):Pe(T).unwrap_or(void 0);const y=I.update?.at(0)?.value;this.ref.onUpdate=y instanceof xt?zr(y).unwrap_or(void 0):Pe(y).unwrap_or(void 0),this.ref.color=I.color?.length?Zr(I.color?.at(0)?.value):void 0}const m=Lf(i);return this.ref.endpoints=[{...xc(s,this.container),relation:m[0],token:q(s)},{...xc(o,this.container),relation:m[1],token:q(o)}],this.env.refIds[d]=this.declarationNode,[]}}class Rf{constructor(r,i){this.declarationNode=r,this.env=i,this.tableGroup={tables:[]}}interpret(){const r=[];return this.tableGroup.token=q(this.declarationNode),this.env.tableGroups.set(this.declarationNode,this.tableGroup),r.push(...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)),r}interpretName(r){const i=[],{name:s,schemaName:o}=$n(r);return o.length>=2&&(this.tableGroup.name=s,this.tableGroup.schemaName=o.join("."),i.push(new g(_.UNSUPPORTED,"Nested schema is not supported",this.declarationNode.name))),this.tableGroup.name=s,this.tableGroup.schemaName=o[0]||null,i}interpretBody(r){const[i,s]=ft(r.body,o=>o instanceof W);return[...this.interpretFields(i),...this.interpretSubElements(s)]}interpretSubElements(r){return r.flatMap(i=>{switch(i.type?.value.toLowerCase()){case"note":this.tableGroup.note={value:Le(i.body instanceof ke?i.body.body[0].callee:i.body.callee).map(Ot).unwrap(),token:q(i)};break}return[]})}interpretFields(r){const i=[];return this.tableGroup.tables=r.map(s=>{const o=Ge(s.callee).unwrap();o.length>2&&i.push(new g(_.UNSUPPORTED,"Nested schema is not supported",s));const l=An(s.callee).unwrap().pop().referee.id;if(this.env.tableOwnerGroup[l]){const f=this.env.tableOwnerGroup[l],{schemaName:d,name:m}=this.env.tableGroups.get(f),I=d?`${d}.${m}`:m;i.push(new g(_.TABLE_REAPPEAR_IN_TABLEGROUP,`Table "${o.join(".")}" already appears in group "${I}"`,s))}else this.env.tableOwnerGroup[l]=this.declarationNode;return{name:o.pop(),schemaName:o.join(".")}}),i}interpretSettingList(r){const i=Ne(r).getValue();this.tableGroup.color=i.color?.length?Zr(i.color?.at(0)?.value):void 0;const[s]=i.note||[];return this.tableGroup.note=s&&{value:Le(s?.value).map(Ot).unwrap(),token:q(s)},[]}}class Df{constructor(r,i){this.declarationNode=r,this.env=i,this.enum={values:[]}}interpret(){return this.enum.token=q(this.declarationNode),this.env.enums.set(this.declarationNode,this.enum),[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)]}interpretName(r){const{name:i,schemaName:s}=$n(r);return s.length>1?(this.enum.name=i,this.enum.schemaName=s.join("."),[new g(_.UNSUPPORTED,"Nested schema is not supported",r)]):(this.enum.name=i,this.enum.schemaName=s.length?s[0]:null,[])}interpretBody(r){return r.body.flatMap(i=>{const s=i,o={};o.token=q(s),o.name=Pe(s.callee).unwrap();const f=Ne(s.args[0]).getValue().note?.at(0);return o.note=f&&{value:Le(f.value).map(Ot).unwrap(),token:q(f)},this.enum.values.push(o),[]})}}class Mf{constructor(r,i){this.declarationNode=r,this.env=i,this.tablePartial={name:void 0,fields:[],token:void 0,indexes:[],checks:[]},this.pkColumns=[]}interpret(){this.tablePartial.token=q(this.declarationNode),this.env.tablePartials.set(this.declarationNode,this.tablePartial);const r=[...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.tablePartial.indexes.push({columns:this.pkColumns.map(({name:i,token:s})=>({value:i,type:"column",token:s})),token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1}},pk:!0}),this.pkColumns.forEach(i=>{i.pk=!1})),r}interpretName(r){const{name:i}=$n(r);return this.tablePartial.name=i,[]}interpretSettingList(r){const i=Ne(r).getValue(),s=LI(i[P.HeaderColor]);this.tablePartial.headerColor=s?Zr(s.value):void 0;const[o]=i[P.Note]||[];return this.tablePartial.note=o&&{value:Le(o?.value).map(Ot).unwrap(),token:q(o)},[]}interpretBody(r){const[i,s]=ft(r.body,o=>o instanceof W);return[...this.interpretFields(i),...this.interpretSubElements(s)]}interpretSubElements(r){return r.flatMap(i=>{switch(i.type?.value.toLowerCase()){case F.Note:return this.tablePartial.note={value:Le(i.body instanceof ke?i.body.body[0].callee:i.body.callee).map(Ot).unwrap(),token:q(i)},[];case F.Indexes:return this.interpretIndexes(i);case F.Check:return this.interpretChecks(i);default:return[]}})}interpretFields(r){return r.flatMap(i=>this.interpretColumn(i))}interpretColumn(r){const i=[],s={};s.name=Me(r.callee).unwrap();const o=Sf(r.args[0]);s.type=o.getValue(),i.push(...o.getErrors()),s.token=q(r),s.inline_refs=[];const l=r.args.slice(1);if(me(l)instanceof _e){const f=Ne(l.pop()).getValue();s.pk=!!f[P.PK]?.length||!!f[P.PrimaryKey]?.length,s.increment=!!f[P.Increment]?.length,s.unique=!!f[P.Unique]?.length,s.not_null=f[P.NotNull]?.length?!0:f[P.Null]?.length?!1:void 0,s.dbdefault=xf(f[P.Default]?.at(0)?.value);const d=f[P.Note]?.at(0);s.note=d&&{value:Le(d.value).map(Ot).unwrap(),token:q(d)};const m=f[P.Ref]||[];s.inline_refs=m.flatMap(T=>{const[y]=Zi(T.value.expression);if(co(y,r.symbol))return i.push(new g(_.SAME_ENDPOINT,"Two endpoints are the same",T)),[];const $=T.value.op,J=Ge(T.value.expression).unwrap();let ne;if(J.length===2){const[re,j]=J;ne={schemaName:null,tableName:re,fieldNames:[j],relation:$.value,token:q(T)}}else if(J.length===3){const[re,j,de]=J;ne={schemaName:re,tableName:j,fieldNames:[de],relation:$.value,token:q(T)}}else{i.push(new g(_.UNSUPPORTED,"Unsupported",T));const re=J.pop(),j=J.pop();ne={schemaName:J.join("."),tableName:j,fieldNames:[re],relation:$.value,token:q(T)}}return ne});const I=f[P.Check]||[];s.checks=I.map(T=>{const y=q(T),$=T.value.value.value;return{token:y,expression:$}})}return s.pk||=l.some(f=>Pe(f).unwrap().toLowerCase()==="pk"),s.unique||=l.some(f=>Pe(f).unwrap().toLowerCase()==="unique"),this.tablePartial.fields.push(s),s.pk&&this.pkColumns.push(s),i}interpretIndexes(r){return this.tablePartial.indexes.push(...r.body.body.map(i=>{const s={columns:[]},o=i;s.token=q(o);const l=[o.callee,...o.args];if(me(l)instanceof _e){const f=Ne(l.pop()).getValue();s.pk=!!f[P.PK]?.length,s.unique=!!f[P.Unique]?.length,s.name=Le(f[P.Name]?.at(0)?.value).unwrap_or(void 0);const d=f[P.Note]?.at(0);s.note=d&&{value:Le(d.value).unwrap(),token:q(d)},s.type=Pe(f[P.Type]?.at(0)?.value).unwrap_or(void 0)}return l.flatMap(f=>{if(!(f instanceof He))return f;const d=[];let m=f;for(;m instanceof He;)d.push(m.argumentList),m=m.callee;return d.push(m),d}).forEach(f=>{const{functional:d,nonFunctional:m}=Qi(f).unwrap();s.columns.push(...d.map(I=>({value:I.value.value,type:"expression",token:q(I)})),...m.map(I=>({value:Me(I).unwrap(),type:"column",token:q(I)})))}),s})),[]}interpretChecks(r){return this.tablePartial.checks.push(...r.body.body.map(i=>{const s={},o=i;if(s.token=q(o),o.args[0]instanceof _e){const l=Ne(o.args[0]).getValue();s.name=Le(l[P.Name]?.at(0)?.value).unwrap_or(void 0)}return s.expression=o.callee.value.value,s})),[]}}class RA{constructor(r,i){this.declarationNode=r,this.env=i,this.project={enums:[],refs:[],tableGroups:[],tables:[],tablePartials:[]}}interpret(){return this.env.project.set(this.declarationNode,this.project),this.project.token=q(this.declarationNode),[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)]}interpretName(r){if(!r)return this.project.name=null,[];const{name:i}=$n(r);return this.project.name=i,[]}interpretBody(r){return r.body.flatMap(i=>{const s=i;switch(s.type?.value.toLowerCase()){case"table":{const o=new Of(s,this.env).interpret();return this.project.tables.push(this.env.tables.get(s)),o}case"ref":{const o=new Pf(s,this.env).interpret();return this.project.refs.push(this.env.ref.get(s)),o}case"tablegroup":{const o=new Rf(s,this.env).interpret();return this.project.tableGroups.push(this.env.tableGroups.get(s)),o}case"enum":{const o=new Df(s,this.env).interpret();return this.project.enums.push(this.env.enums.get(s)),o}case"note":return this.project.note={value:Le(s.body instanceof ke?s.body.body[0].callee:s.body.callee).map(Ot).unwrap(),token:q(s)},[];case"tablepartial":{const o=new Mf(s,this.env).interpret();return this.project.tablePartials.push(this.env.tablePartials.get(s)),o}default:return this.project[s.type.value.toLowerCase()]=Le(s.body.callee).unwrap(),[]}})}}function DA(t){return{schemas:[],tables:Array.from(t.tables.values()),notes:Array.from(t.notes.values()),refs:Array.from(t.ref.values()),enums:Array.from(t.enums.values()),tableGroups:Array.from(t.tableGroups.values()),aliases:t.aliases,project:Array.from(t.project.values())[0]||{},tablePartials:Array.from(t.tablePartials.values())}}class MA{constructor(r){this.ast=r,this.env={schema:[],tables:new Map,notes:new Map,refIds:{},ref:new Map,enums:new Map,tableOwnerGroup:{},tableGroups:new Map,aliases:[],project:new Map,tablePartials:new Map}}interpret(){const r=this.ast.body.flatMap(i=>{switch(cn(i).unwrap_or(void 0)){case F.Table:return new Of(i,this.env).interpret();case F.Note:return new PA(i,this.env).interpret();case F.Ref:return new Pf(i,this.env).interpret();case F.TableGroup:return new Rf(i,this.env).interpret();case F.TablePartial:return new Mf(i,this.env).interpret();case F.Enum:return new Df(i,this.env).interpret();case F.Project:return new RA(i,this.env).interpret();default:return[]}});return new ct(DA(this.env),r)}}var le=(t=>(t[t.Function=1]="Function",t[t.Constructor=2]="Constructor",t[t.Field=3]="Field",t[t.Variable=4]="Variable",t[t.Class=5]="Class",t[t.Struct=6]="Struct",t[t.Interface=7]="Interface",t[t.Module=8]="Module",t[t.Property=9]="Property",t[t.Event=10]="Event",t[t.Operator=11]="Operator",t[t.Unit=12]="Unit",t[t.Value=13]="Value",t[t.Constant=14]="Constant",t[t.Enum=15]="Enum",t[t.EnumMember=16]="EnumMember",t[t.Keyword=17]="Keyword",t[t.Text=18]="Text",t[t.Color=19]="Color",t[t.File=20]="File",t[t.Reference=21]="Reference",t[t.Customcolor=22]="Customcolor",t[t.Folder=23]="Folder",t[t.TypeParameter=24]="TypeParameter",t[t.User=25]="User",t[t.Issue=26]="Issue",t[t.Snippet=27]="Snippet",t))(le||{}),be=(t=>(t[t.None=0]="None",t[t.KeepWhitespace=1]="KeepWhitespace",t[t.InsertAsSnippet=4]="InsertAsSnippet",t))(be||{});function Kr(t){switch(t){case U.Schema:return le.Module;case U.Table:case U.TablePartial:return le.Class;case U.Column:case U.TableGroupField:return le.Field;case U.Enum:return le.Enum;case U.EnumField:return le.EnumMember;case U.TableGroup:return le.Struct;default:return le.Text}}function ji(t,r){if(!t||$a(t))return!1;for(const i of t.trailingTrivia){if(i.start>r)break;if(i.kind===A.NEWLINE&&i.end<=r)return!1}return!0}function Ue(){return{suggestions:[]}}function es(t){return{...t,suggestions:t.suggestions.map(r=>({...r,insertText:` ${r.insertText}`}))}}function cs(t){return{...t,suggestions:t.suggestions.map(r=>({...r,insertText:!r.insertText||!r.insertText.split("").every(Yr)?`"${r.insertText??""}"`:r.insertText}))}}function fo(t,r){return t.getOffsetAt(r)}class Uf{constructor(r,i=[]){this.compiler=r,this.triggerCharacters=i}provideCompletionItems(r,i){const s=fo(r,i),o=this.compiler.token.flatStream(),{token:l,index:f}=this.compiler.container.token(s),d=f===void 0?o[0]:o[f+1];if([...l?.trailingTrivia||[],...l?.leadingTrivia||[],...d?.leadingTrivia||[]].find(T=>PI(T)&&$r(s,T)))return Ue();if(f===void 0)return Dc();if([A.STRING_LITERAL,A.QUOTED_STRING].includes(l.kind)&&$r(s,l))return Ue();const m=this.compiler.container.element(s);if(this.compiler.container.scopeKind(s)===te.TOPLEVEL||m instanceof se&&m.type&&m.type.start<=s&&m.type.end>=s)return Dc();const I=[...this.compiler.container.stack(s)].reverse();for(const T of I)if(T instanceof je)switch(T.op?.value){case">":case"<":case"<>":case"-":return Sc(this.compiler,s,T);case"~":return UA(this.compiler,s)}else if(T instanceof Vt)switch(T.op?.value){case">":case"<":case"<>":case"-":return Sc(this.compiler,s,T);case".":return kf(this.compiler,s,T)}else{if(T instanceof St)return Oc(this.compiler,s,T);if(T instanceof _e)return Oc(this.compiler,s,T);if(T instanceof Wt)return kA(this.compiler,s);if(T instanceof W)return Rc(this.compiler,s,T);if(T instanceof se&&(T.bodyColon&&s>=T.bodyColon.end||T.body&&$r(s,T.body)))return Rc(this.compiler,s,void 0)}return Ue()}}function UA(t,r){return pr(t,r,t.parse.ast(),[U.TablePartial])}function Sc(t,r,i){const s=t.container.scopeKind(r);if([te.REF,te.TABLE,te.TABLEPARTIAL].includes(s)){const o=pr(t,r,t.container.element(r),[U.Table,U.Schema,U.Column]);return ji(i.op,r)?es(o):o}return Ue()}function pr(t,r,i,s){if(i===void 0)return Ue();let o=i;const l={suggestions:[]};for(;o;){if(o?.symbol?.symbolTable){const{symbol:f}=o;l.suggestions.push(...t.symbol.members(f).filter(({kind:d})=>s.includes(d)).map(({name:d,kind:m})=>({label:d,insertText:d,insertTextRules:be.KeepWhitespace,kind:Kr(m),sortText:Kr(m).toString().padStart(2,"0"),range:void 0})))}o=o instanceof se?o.parent:void 0}return cs(l)}function kA(t,r){switch(t.container.scopeKind(r)){case te.INDEXES:return Cf(t,r);case te.REF:{const s=[...t.container.stack(r)];for(;s.length>0;){const o=s.pop();if(o instanceof Vt&&o.op?.value===".")return kf(t,r,o)}}return Ff(t,r)}return Ue()}function Oc(t,r,i){const{token:s}=t.container.token(r);if([A.COMMA,A.LBRACKET].includes(s?.kind)){const o=Pc(t,r);return s?.kind===A.COMMA&&ji(s,r)?es(o):o}if(i.name&&i.name.start<=r&&i.name.end>=r)return Pc(t,r);if(i.name instanceof xt){const o=FA(t,r,zr(i.name).unwrap_or(""));return s?.kind===A.COLON&&ji(s,r)?es(o):o}return Ue()}function Pc(t,r){const i=t.container.element(r);if(i instanceof qe)return Ue();const s=t.container.scopeKind(r);if(i.body&&!$r(r,i.body)){let o;switch(s){case te.TABLE:case te.TABLEPARTIAL:o=[P.HeaderColor,P.Note];break;case te.TABLEGROUP:o=[P.Color,P.Note];break;default:o=[]}return{suggestions:o.map(l=>({label:l,insertText:`${l}: `,kind:le.Field,insertTextRules:be.KeepWhitespace,range:void 0}))}}switch(s){case te.TABLE:case te.TABLEPARTIAL:return{suggestions:[...[P.PK,P.PrimaryKey,P.Null,P.NotNull,P.Increment,P.Unique].map(o=>({label:o,insertText:o,kind:le.Property,insertTextRules:be.KeepWhitespace,range:void 0})),...[P.Ref,P.Default,P.Note,P.Check].map(o=>({label:o,insertText:`${o}: `,kind:le.Property,insertTextRules:be.KeepWhitespace,range:void 0}))]};case te.ENUM:return{suggestions:[...[P.Note].map(o=>({label:o,insertText:`${o}: `,kind:le.Property,insertTextRules:be.KeepWhitespace,range:void 0}))]};case te.INDEXES:return{suggestions:[...[P.Unique,P.PK].map(o=>({label:o,insertText:o,insertTextRules:be.KeepWhitespace,kind:le.Property,range:void 0})),...[P.Note,P.Name,P.Type].map(o=>({label:o,insertText:`${o}: `,kind:le.Property,insertTextRules:be.KeepWhitespace,range:void 0}))]};case te.REF:return{suggestions:[P.Update,P.Delete,P.Color].map(o=>({label:o,insertText:`${o}: `,kind:le.Property,insertTextRules:be.KeepWhitespace,range:void 0}))};case te.CHECKS:return{suggestions:[P.Name].map(o=>({label:o,insertText:`${o}: `,kind:le.Property,insertTextRules:be.KeepWhitespace,range:void 0}))}}return Ue()}function FA(t,r,i){switch(i?.toLowerCase()){case"update":case"delete":return{suggestions:["cascade","set default","set null","restrict"].map(s=>({label:s,insertText:s,kind:le.Value,insertTextRules:be.KeepWhitespace,range:void 0}))};case"type":return{suggestions:["btree","hash"].map(s=>({label:s,insertText:`${s}`,kind:le.Value,insertTextRules:be.KeepWhitespace,range:void 0}))};case"default":return pr(t,r,t.container.element(r),[U.Schema,U.Enum])}return Ue()}function kf(t,r,i){const s=An(i).unwrap_or([]);if(s.pop(),s.some(l=>!we(l)))return Ue();const o=s.map(l=>Pe(l).unwrap());return cs({suggestions:t.symbol.ofName(o,t.container.element(r)).flatMap(({symbol:l})=>t.symbol.members(l)).map(({kind:l,name:f})=>({label:f,insertText:f,kind:Kr(l),range:void 0}))})}function Rc(t,r,i){switch(t.container.scopeKind(r)){case te.TABLE:case te.TABLEPARTIAL:return BA(t,r,i);case te.PROJECT:return GA(t,r,i);case te.INDEXES:return $A(t,r);case te.ENUM:return CA(t,r,i);case te.REF:{const o=Ff(t,r);return t.container.token(r).token?.kind===A.COLON&&ji(t.container.token(r).token,r)?es(o):o}case te.TABLEGROUP:return VA(t);default:return Ue()}}function Dc(){return{suggestions:["Table","TableGroup","Enum","Project","Ref","TablePartial"].map(t=>({label:t,insertText:t,insertTextRules:be.KeepWhitespace,kind:le.Keyword,range:void 0}))}}function CA(t,r,i){return i?.callee&&ho(r,i)===1?pr(t,r,t.container.element(r),[U.Schema,U.Table,U.Column]):Ue()}function BA(t,r,i){const s=["Note","indexes","checks"];if(!i?.callee)return{suggestions:s.map(l=>({label:l,insertText:l,insertTextRules:be.KeepWhitespace,kind:le.Keyword,range:void 0}))};const o=ho(r,i);return o===0?{suggestions:s.map(l=>({label:l,insertText:l,insertTextRules:be.KeepWhitespace,kind:le.Keyword,range:void 0}))}:o===1?WA(t,r):Ue()}function GA(t,r,i){const s=["Table","TableGroup","Enum","Note","Ref","TablePartial"];return i?.callee?ho(r,i)===0?{suggestions:s.map(l=>({label:l,insertText:l,insertTextRules:be.KeepWhitespace,kind:le.Keyword,range:void 0}))}:Ue():{suggestions:s.map(l=>({label:l,insertText:l,insertTextRules:be.KeepWhitespace,kind:le.Keyword,range:void 0}))}}function Ff(t,r){return pr(t,r,t.container.element(r),[U.Schema,U.Table,U.Column])}function VA(t){return{suggestions:[...cs({suggestions:[...t.parse.publicSymbolTable().entries()].flatMap(([r])=>{const i=Qr(r).unwrap_or(void 0);if(i===void 0)return[];const{kind:s,name:o}=i;return s!==U.Table&&s!==U.Schema?[]:{label:o,insertText:o,insertTextRules:be.KeepWhitespace,kind:Kr(s),range:void 0}})}).suggestions,...["Note"].map(r=>({label:r,insertText:r,insertTextRules:be.KeepWhitespace,kind:le.Keyword,range:void 0}))]}}function $A(t,r){return Cf(t,r)}function WA(t,r){return{suggestions:[...["integer","int","tinyint","smallint","mediumint","bigint","bit","bool","binary","varbinary","logical","char","nchar","varchar","varchar2","nvarchar","nvarchar2","binary_float","binary_double","float","double","decimal","dec","real","money","smallmoney","enum","tinyblob","tinytext","blob","text","mediumblob","mediumtext","longblob","longtext","ntext","set","inet6","uuid","image","date","time","datetime","datetime2","timestamp","year","smalldatetime","datetimeoffset","XML","sql_variant","uniqueidentifier","CURSOR","BFILE","CLOB","NCLOB","RAW"].map(i=>({label:i,insertText:i,insertTextRules:be.KeepWhitespace,kind:le.TypeParameter,sortText:le.TypeParameter.toString().padStart(2,"0"),range:void 0})),...pr(t,r,t.container.element(r),[U.Enum,U.Schema]).suggestions]}}function Cf(t,r){const s=t.container.element(r)?.parent;if(!(s?.symbol instanceof qr))return Ue();const{symbolTable:o}=s.symbol;return cs({suggestions:[...o.entries()].flatMap(([l])=>{const f=Qr(l).unwrap_or(void 0);if(f===void 0)return[];const{name:d}=f;return{label:d,insertText:d,insertTextRules:be.KeepWhitespace,kind:Kr(U.Column),range:void 0}})})}function ho(t,r){if(!r.callee)return-1;const i=[r.callee,...r.args],s=i.findIndex(o=>t<=o.end);return s===-1?i.length:s}class Bf{constructor(r){this.compiler=r}provideDefinition(r,i){const{uri:s}=r,o=fo(r,i),l=[...this.compiler.container.stack(o)];for(;l.length!==0;){const f=l.pop();if(!f?.referee)continue;let d;if(f.referee?.declaration&&[kn.PRIMARY_EXPRESSION,kn.VARIABLE].includes(f?.kind)&&({declaration:d}=f.referee),d){const{startPos:m,endPos:I}=d;return[{range:{startColumn:m.column+1,startLineNumber:m.line+1,endColumn:I.column+1,endLineNumber:I.line+1},uri:s}]}}return[]}}class Gf{constructor(r){this.compiler=r}provideReferences(r,i){const{uri:s}=r,o=fo(r,i),l=[...this.compiler.container.stack(o)];for(;l.length!==0;){const f=l.pop();if(f&&[kn.ELEMENT_DECLARATION,kn.FUNCTION_APPLICATION,kn.PRIMARY_EXPRESSION].includes(f?.kind)){const{symbol:d}=f;if(d?.references.length)return d.references.map(({startPos:m,endPos:I})=>({range:{startColumn:m.column+1,startLineNumber:m.line+1,endColumn:I.column+1,endLineNumber:I.line+1},uri:s}))}}return[]}}const XA=Object.freeze(Object.defineProperty({__proto__:null,CompletionItemInsertTextRule:be,CompletionItemKind:le,DBMLCompletionItemProvider:Uf,DBMLDefinitionProvider:Bf,DBMLReferencesProvider:Gf},Symbol.toStringTag,{value:"Module"}));function HA(){return this.parse._().getValue().ast}function qA(){return this.parse._().getErrors()}function zA(){return this.parse._().getValue().tokens}function KA(){return this.parse._().getValue().rawDb}function YA(){return this.parse._().getValue().ast.symbol.symbolTable}function JA(){return this.parse.tokens().flatMap(t=>[...t.leadingInvalid,t,...t.trailingInvalid])}function QA(){return this.parse.tokens().filter(qa)}function ZA(t){return t.symbolTable?[...t.symbolTable.entries()].map(([r,i])=>({...Qr(r).unwrap(),symbol:i})):[]}function jA(t,r){if(t.length===0)return[];const i=[];for(let s=r;s;s=s instanceof se?s.parent:void 0){if(!s.symbol?.symbolTable)continue;const{symbolTable:o}=s.symbol;let l=[o],f=[];for(const d of t)f=l.flatMap(m=>LA(d).flatMap(I=>{const T=m.get(I),y=Qr(I).unwrap_or(void 0);return!T||!y?[]:{...y,symbol:T}})),l=f.flatMap(m=>m.symbol.symbolTable?m.symbol.symbolTable:[]);i.push(...f)}return i}function ew(t,r){return`${t.join(".")}@${r.id}`}function tw(t){const r=this.token.flatStream(),{index:i,token:s}=this.container.token(t),o=i===void 0?-1:wI(r,m=>!m.isInvalid,i);if(o===-1)return[this.parse.ast()];const l=r[o].start;let f=this.parse.ast();const d=[f];for(;;){const I=iA(f).find(T=>$r(l,T));if(I===void 0||I instanceof Ze)break;d.push(I),f=I}if(s?.kind===A.COLON)return d;for(;d.length>0;){let m=!1;const I=me(d);if(I instanceof W){const T=this.parse.source();for(let y=I.end;y<t;y+=1)T[y]===`
31
+ `&&(d.pop(),m=!0)}else I instanceof je||I instanceof Vt?this.container.token(t).token!==I.op&&(d.pop(),m=!0):I instanceof _e?I.listCloseBracket&&I.end<=t&&(d.pop(),m=!0):I instanceof Wt?I.tupleCloseParen&&I.end<=t&&(d.pop(),m=!0):I instanceof ke?I.blockCloseBrace&&I.end<=t&&(d.pop(),m=!0):I instanceof xt||I.end<t&&(d.pop(),m=!0);if(m){const T=me(d);T instanceof se&&T.end<=t&&d.pop()}if(!m)break}return d}function nw(t){const r=this.token.flatStream().findIndex(i=>i.start>=t);return r===void 0?{token:void 0,index:void 0}:r<=0?{token:void 0,index:void 0}:{token:this.token.flatStream()[r-1],index:r-1}}function rw(t){const r=this.container.stack(t);for(let i=r.length-1;i>=0;i-=1)if(r[i]instanceof se)return r[i];return this.parse.ast()}function iw(t){return this.container.element(t)?.symbol?.symbolTable}var te=(t=>(t[t.TABLE=0]="TABLE",t[t.ENUM=1]="ENUM",t[t.TABLEGROUP=2]="TABLEGROUP",t[t.INDEXES=3]="INDEXES",t[t.NOTE=4]="NOTE",t[t.REF=5]="REF",t[t.PROJECT=6]="PROJECT",t[t.CUSTOM=7]="CUSTOM",t[t.TOPLEVEL=8]="TOPLEVEL",t[t.TABLEPARTIAL=9]="TABLEPARTIAL",t[t.CHECKS=10]="CHECKS",t))(te||{});function sw(t){const r=this.container.element(t);if(r instanceof qe)return te.TOPLEVEL;switch(r.type?.value.toLowerCase()){case"table":return te.TABLE;case"enum":return te.ENUM;case"ref":return te.REF;case"tablegroup":return te.TABLEGROUP;case"indexes":return te.INDEXES;case"note":return te.NOTE;case"project":return te.PROJECT;case"tablepartial":return te.TABLEPARTIAL;case"checks":return te.CHECKS;default:return te.CUSTOM}}function Vf(t,r){const i=[...r].sort((o,l)=>l.start-o.start);let s=t;for(const{start:o,end:l,newText:f}of i)s=s.substring(0,o)+f+s.substring(l);return s}function sr(t){return t.startsWith('"')&&t.endsWith('"')&&t.length>=2?t.slice(1,-1):t}function Mc(t){if(typeof t!="string")return{schema:t.schema??$t,table:t.table};const r=t.split(".");if(r.length===1)return{schema:$t,table:sr(r[0])};if(r.length===2)return{schema:sr(r[0]),table:sr(r[1])};const i=r.pop();return{schema:sr(r.join(".")),table:sr(i)}}function Uc(t){return t?t.split("").every(r=>Yr(r)||or(r))&&!or(t[0]):!1}function aw(t,r){if(!t.declaration)return!1;const i=t.declaration;if(!i.name)return!1;const s=i.name;return r.substring(s.start,s.end).includes('"')}function ow(t,r,i){const s=!Uc(r),o=!Uc(t),l=i||s,f=i||o;return{schema:t,table:r,formattedSchema:f?`"${t}"`:t,formattedTable:l?`"${r}"`:r,shouldQuoteSchema:f,shouldQuoteTable:l}}function uw(t,r,i){const s=ur(i);if(r===$t){const d=t.get(s);return d instanceof qr?d:null}const o=Jr(r),l=t.get(o);if(!l||!l.symbolTable)return null;const f=l.symbolTable.get(s);return f instanceof qr?f:null}function lw(t,r,i,s,o){const l=ur(o);let f;if(s===$t)f=t.get(l);else{const d=Jr(s),m=t.get(d);if(!m||!m.symbolTable)return!1;f=m.symbolTable.get(l)}return!(!f||r===s&&i===o)}function cw(t,r,i){let s=t.start-1;for(;s>=0&&/\s/.test(i[s]);)s--;if(s<0||i[s]!==".")return null;for(s--;s>=0&&/\s/.test(i[s]);)s--;if(s<0)return null;let o,l;if(i[s]==='"'){for(l=s+1,s--;s>=0&&i[s]!=='"';)s--;if(s<0)return null;o=s}else{for(l=s+1;s>=0&&/[a-zA-Z0-9_]/.test(i[s]);)s--;o=s+1}const f=i.substring(o,l);return sr(f)===r?{start:o,end:t.end}:null}function fw(t,r,i,s){const o=[],l=new Set;for(const f of t){const m=cw(f,r,s)??{start:f.start,end:f.end},I=`${m.start}-${m.end}`;if(l.has(I))continue;l.add(I);const T=i.schema!==$t?`${i.formattedSchema}.${i.formattedTable}`:i.formattedTable;o.push({start:m.start,end:m.end,newText:T})}return o}function hw(t,r){const i=this.parse.source(),s=this.parse.publicSymbolTable(),o=Mc(t),l=Mc(r),f=o.schema,d=o.table,m=l.schema,I=l.table,T=uw(s,f,d);if(!T||lw(s,f,d,m,I))return i;const y=aw(T,i),$=ow(m,I,y),J=[];if(T.declaration){const re=T.declaration;re.name&&J.push(re.name)}for(const re of T.references)i.substring(re.start,re.end).replace(/"/g,"")===d&&J.push(re);const ne=fw(J,f,$,i);return Vf(i,ne)}class pw{constructor(){this.source="",this.cache=new Map,this.nodeIdGenerator=new RI,this.symbolIdGenerator=new MI,this.token={invalidStream:this.query(QA),flatStream:this.query(JA)},this.parse={source:()=>this.source,_:this.query(this.interpret),ast:this.query(HA),errors:this.query(qA),tokens:this.query(zA),rawDb:this.query(KA),publicSymbolTable:this.query(YA)},this.container={stack:this.query(tw),token:this.query(nw),element:this.query(rw),scope:this.query(iw),scopeKind:this.query(sw)},this.symbol={ofName:this.query(jA,ew),members:this.query(ZA)}}setSource(r){this.source=r,this.cache.clear(),this.nodeIdGenerator.reset(),this.symbolIdGenerator.reset()}query(r,i){const s=Symbol();return(...o)=>{if(o.length===0){if(this.cache.has(s))return this.cache.get(s);const m=r.apply(this,o);return this.cache.set(s,m),m}const l=i?i(...o):o[0];let f=this.cache.get(s);if(f instanceof Map&&f.has(l))return f.get(l);const d=r.apply(this,o);return f instanceof Map||(f=new Map,this.cache.set(s,f)),f.set(l,d),d}}interpret(){const r=new aA(this.source).lex().chain(i=>new lA(i,this.nodeIdGenerator).parse()).chain(({ast:i,tokens:s})=>new OA(i,this.symbolIdGenerator).analyze().map(()=>({ast:i,tokens:s})));return r.getErrors().length>0?r:r.chain(({ast:i,tokens:s})=>new MA(i).interpret().map(o=>({ast:i,tokens:s,rawDb:o})))}renameTable(r,i){return hw.call(this,r,i)}applyTextEdits(r){return Vf(this.parse.source(),r)}initMonacoServices(){return{definitionProvider:new Bf(this),referenceProvider:new Gf(this),autocompletionProvider:new Uf(this)}}}exports.CompileError=g;exports.CompileErrorCode=_;exports.Compiler=pw;exports.ElementDeclarationNode=se;exports.ElementKind=F;exports.ProgramNode=qe;exports.ScopeKind=te;exports.SyntaxNode=Te;exports.SyntaxNodeKind=kn;exports.SyntaxToken=Ze;exports.SyntaxTokenKind=A;exports.addQuoteIfNeeded=kI;exports.serialize=DI;exports.services=XA;