@hpcc-js/wasm
Version:
hpcc-js - WASM Libraries
13 lines • 131 kB
JavaScript
var Wn=ArrayBuffer,Z=Uint8Array,Dr=Uint16Array,Dn=Int16Array,Xr=Int32Array,le=function(a,s,i){if(Z.prototype.slice)return Z.prototype.slice.call(a,s,i);(s==null||s<0)&&(s=0),(i==null||i>a.length)&&(i=a.length);var f=new Z(i-s);return f.set(a.subarray(s,i)),f},Vr=function(a,s,i,f){if(Z.prototype.fill)return Z.prototype.fill.call(a,s,i,f);for((i==null||i<0)&&(i=0),(f==null||f>a.length)&&(f=a.length);i<f;++i)a[i]=s;return a},Xn=function(a,s,i,f){if(Z.prototype.copyWithin)return Z.prototype.copyWithin.call(a,s,i,f);for((i==null||i<0)&&(i=0),(f==null||f>a.length)&&(f=a.length);i<f;)a[s++]=a[i++]},Yn=["invalid zstd data","window size too large (>2046MB)","invalid block type","FSE accuracy too high","match distance too far back","unexpected EOF"],J=function(a,s,i){var f=new Error(s||Yn[a]);if(f.code=a,Error.captureStackTrace&&Error.captureStackTrace(f,J),!i)throw f;return f},Ge=function(a,s,i){for(var f=0,h=0;f<i;++f)h|=a[s++]<<(f<<3);return h},xn=function(a,s){return(a[s]|a[s+1]<<8|a[s+2]<<16|a[s+3]<<24)>>>0},zn=function(a,s){var i=a[0]|a[1]<<8|a[2]<<16;if(i==3126568&&a[3]==253){var f=a[4],h=f>>5&1,d=f>>2&1,p=f&3,C=f>>6;f&8&&J(0);var E=6-h,F=p==3?4:p,j=Ge(a,E,F);E+=F;var _=C?1<<C:h,P=Ge(a,E,_)+(C==1&&256),K=P;if(!h){var L=1<<10+(a[5]>>3);K=L+(L>>3)*(a[5]&7)}K>2145386496&&J(1);var b=new Z((s==1?P||K:s?0:K)+12);return b[0]=1,b[4]=4,b[8]=8,{b:E+_,y:0,l:0,d:j,w:s&&s!=1?s:b.subarray(12),e:K,o:new Xr(b.buffer,0,3),u:P,c:d,m:Math.min(131072,K)}}else if((i>>4|a[3]<<20)==25481893)return xn(a,4)+8;J(0)},fr=function(a){for(var s=0;1<<s<=a;++s);return s-1},Ur=function(a,s,i){var f=(s<<3)+4,h=(a[s]&15)+5;h>i&&J(3);for(var d=1<<h,p=d,C=-1,E=-1,F=-1,j=d,_=new Wn(512+(d<<2)),P=new Dn(_,0,256),K=new Dr(_,0,256),L=new Dr(_,512,d),b=512+(d<<1),V=new Z(_,b,d),X=new Z(_,b+d);C<255&&p>0;){var H=fr(p+1),R=f>>3,Y=(1<<H+1)-1,U=(a[R]|a[R+1]<<8|a[R+2]<<16)>>(f&7)&Y,$=(1<<H)-1,m=Y-p-1,Q=U&$;if(Q<m?(f+=H,U=Q):(f+=H+1,U>$&&(U-=m)),P[++C]=--U,U==-1?(p+=U,V[--j]=C):p-=U,!U)do{var x=f>>3;E=(a[x]|a[x+1]<<8)>>(f&7)&3,f+=2,C+=E}while(E==3)}(C>255||p)&&J(0);for(var O=0,z=(d>>1)+(d>>3)+3,A=d-1,M=0;M<=C;++M){var S=P[M];if(S<1){K[M]=-S;continue}for(F=0;F<S;++F){V[O]=M;do O=O+z&A;while(O>=j)}}for(O&&J(0),F=0;F<d;++F){var g=K[V[F]]++,B=X[F]=h-fr(g);L[F]=(g<<B)-d}return[f+7>>3,{b:h,s:V,n:X,t:L}]},Mn=function(a,s){var i=0,f=-1,h=new Z(292),d=a[s],p=h.subarray(0,256),C=h.subarray(256,268),E=new Dr(h.buffer,268);if(d<128){var F=Ur(a,s+1,6),j=F[0],_=F[1];s+=d;var P=j<<3,K=a[s];K||J(0);for(var L=0,b=0,V=_.b,X=V,H=(++s<<3)-8+fr(K);H-=V,!(H<P);){var R=H>>3;if(L+=(a[R]|a[R+1]<<8)>>(H&7)&(1<<V)-1,p[++f]=_.s[L],H-=X,H<P)break;R=H>>3,b+=(a[R]|a[R+1]<<8)>>(H&7)&(1<<X)-1,p[++f]=_.s[b],V=_.n[L],L=_.t[L],X=_.n[b],b=_.t[b]}++f>255&&J(0)}else{for(f=d-127;i<f;i+=2){var Y=a[++s];p[i]=Y>>4,p[i+1]=Y&15}++s}var U=0;for(i=0;i<f;++i){var $=p[i];$>11&&J(0),U+=$&&1<<$-1}var m=fr(U)+1,Q=1<<m,x=Q-U;for(x&x-1&&J(0),p[f++]=fr(x)+1,i=0;i<f;++i){var $=p[i];++C[p[i]=$&&m+1-$]}var O=new Z(Q<<1),z=O.subarray(0,Q),A=O.subarray(Q);for(E[m]=0,i=m;i>0;--i){var M=E[i];Vr(A,i,M,E[i-1]=M+C[i]*(1<<m-i))}for(E[0]!=Q&&J(0),i=0;i<f;++i){var S=p[i];if(S){var g=E[S];Vr(z,i,g,E[S]=g+(1<<m-S))}}return[s,{n:A,b:m,s:z}]},Gn=Ur(new Z([81,16,99,140,49,198,24,99,12,33,196,24,99,102,102,134,70,146,4]),0,6)[1],An=Ur(new Z([33,20,196,24,99,140,33,132,16,66,8,33,132,16,66,8,33,68,68,68,68,68,68,68,68,36,9]),0,6)[1],ra=Ur(new Z([32,132,16,66,102,70,68,68,68,68,36,73,2]),0,5)[1],Ae=function(a,s){for(var i=a.length,f=new Xr(i),h=0;h<i;++h)f[h]=s,s+=1<<a[h];return f},ce=new Z(new Xr([0,0,0,0,16843009,50528770,134678020,202050057,269422093]).buffer,0,36),ea=Ae(ce,0),he=new Z(new Xr([0,0,0,0,0,0,0,0,16843009,50528770,117769220,185207048,252579084,16]).buffer,0,53),ta=Ae(he,3),Kr=function(a,s,i){var f=a.length,h=s.length,d=a[f-1],p=(1<<i.b)-1,C=-i.b;d||J(0);for(var E=0,F=i.b,j=(f<<3)-8+fr(d)-F,_=-1;j>C&&_<h;){var P=j>>3,K=(a[P]|a[P+1]<<8|a[P+2]<<16)>>(j&7);E=(E<<F|K)&p,s[++_]=i.s[E],j-=F=i.n[E]}(j!=C||_+1!=h)&&J(0)},na=function(a,s,i){var f=6,h=s.length,d=h+3>>2,p=d<<1,C=d+p;Kr(a.subarray(f,f+=a[0]|a[1]<<8),s.subarray(0,d),i),Kr(a.subarray(f,f+=a[2]|a[3]<<8),s.subarray(d,p),i),Kr(a.subarray(f,f+=a[4]|a[5]<<8),s.subarray(p,C),i),Kr(a.subarray(f),s.subarray(C),i)},aa=function(a,s,i){var f,h=s.b,d=a[h],p=d>>1&3;s.l=d&1;var C=d>>3|a[h+1]<<5|a[h+2]<<13,E=(h+=3)+C;if(p==1)return h>=a.length?void 0:(s.b=h+1,i?(Vr(i,a[h],s.y,s.y+=C),i):Vr(new Z(C),a[h]));if(!(E>a.length)){if(p==0)return s.b=E,i?(i.set(a.subarray(h,E),s.y),s.y+=C,i):le(a,h,E);if(p==2){var F=a[h],j=F&3,_=F>>2&3,P=F>>4,K=0,L=0;j<2?_&1?P|=a[++h]<<4|(_&2&&a[++h]<<12):P=F>>3:(L=_,_<2?(P|=(a[++h]&63)<<4,K=a[h]>>6|a[++h]<<2):_==2?(P|=a[++h]<<4|(a[++h]&3)<<12,K=a[h]>>2|a[++h]<<6):(P|=a[++h]<<4|(a[++h]&63)<<12,K=a[h]>>6|a[++h]<<2|a[++h]<<10)),++h;var b=i?i.subarray(s.y,s.y+s.m):new Z(s.m),V=b.length-P;if(j==0)b.set(a.subarray(h,h+=P),V);else if(j==1)Vr(b,a[h++],V);else{var X=s.h;if(j==2){var H=Mn(a,h);K+=h-(h=H[0]),s.h=X=H[1]}else X||J(0);(L?na:Kr)(a.subarray(h,h+=K),b.subarray(V),X)}var R=a[h++];if(R){R==255?R=(a[h++]|a[h++]<<8)+32512:R>127&&(R=R-128<<8|a[h++]);var Y=a[h++];Y&3&&J(0);for(var U=[An,ra,Gn],$=2;$>-1;--$){var m=Y>>($<<1)+2&3;if(m==1){var Q=new Z([0,0,a[h++]]);U[$]={s:Q.subarray(2,3),n:Q.subarray(0,1),t:new Dr(Q.buffer,0,1),b:0}}else m==2?(f=Ur(a,h,9-($&1)),h=f[0],U[$]=f[1]):m==3&&(s.t||J(0),U[$]=s.t[$])}var x=s.t=U,O=x[0],z=x[1],A=x[2],M=a[E-1];M||J(0);var S=(E<<3)-8+fr(M)-A.b,g=S>>3,B=0,vr=(a[g]|a[g+1]<<8)>>(S&7)&(1<<A.b)-1;g=(S-=z.b)>>3;var pr=(a[g]|a[g+1]<<8)>>(S&7)&(1<<z.b)-1;g=(S-=O.b)>>3;var dr=(a[g]|a[g+1]<<8)>>(S&7)&(1<<O.b)-1;for(++R;--R;){var wr=A.s[vr],Zr=A.n[vr],br=O.s[dr],Hr=O.n[dr],mr=z.s[pr],Cr=z.n[pr];g=(S-=mr)>>3;var Er=1<<mr,er=Er+((a[g]|a[g+1]<<8|a[g+2]<<16|a[g+3]<<24)>>>(S&7)&Er-1);g=(S-=he[br])>>3;var D=ta[br]+((a[g]|a[g+1]<<8|a[g+2]<<16)>>(S&7)&(1<<he[br])-1);g=(S-=ce[wr])>>3;var yr=ea[wr]+((a[g]|a[g+1]<<8|a[g+2]<<16)>>(S&7)&(1<<ce[wr])-1);if(g=(S-=Zr)>>3,vr=A.t[vr]+((a[g]|a[g+1]<<8)>>(S&7)&(1<<Zr)-1),g=(S-=Hr)>>3,dr=O.t[dr]+((a[g]|a[g+1]<<8)>>(S&7)&(1<<Hr)-1),g=(S-=Cr)>>3,pr=z.t[pr]+((a[g]|a[g+1]<<8)>>(S&7)&(1<<Cr)-1),er>3)s.o[2]=s.o[1],s.o[1]=s.o[0],s.o[0]=er-=3;else{var $r=er-(yr!=0);$r?(er=$r==3?s.o[0]-1:s.o[$r],$r>1&&(s.o[2]=s.o[1]),s.o[1]=s.o[0],s.o[0]=er):er=s.o[0]}for(var $=0;$<yr;++$)b[B+$]=b[V+$];B+=yr,V+=yr;var sr=B-er;if(sr<0){var or=-sr,_r=s.e+sr;or>D&&(or=D);for(var $=0;$<or;++$)b[B+$]=s.w[_r+$];B+=or,D-=or,sr=0}for(var $=0;$<D;++$)b[B+$]=b[sr+$];B+=D}if(B!=V)for(;V<b.length;)b[B++]=b[V++];else B=b.length;i?s.y+=B:b=le(b,0,B)}else if(i){if(s.y+=P,V)for(var $=0;$<P;++$)b[$]=b[V+$]}else V&&(b=le(b,V));return s.b=E,b}J(2)}},oa=function(a,s){if(a.length==1)return a[0];for(var i=new Z(s),f=0,h=0;f<a.length;++f){var d=a[f];i.set(d,h),h+=d.length}return i};function ia(a,s){for(var i=[],f=+!s,h=0,d=0;a.length;){var p=zn(a,f||s);if(typeof p=="object"){for(f?(s=null,p.w.length==p.u&&(i.push(s=p.w),d+=p.u)):(i.push(s),p.e=0);!p.l;){var C=aa(a,p,s);C||J(5),s?p.e=p.y:(i.push(C),d+=C.length,Xn(p.w,0,C.length),p.w.set(C,p.w.length-C.length))}h=p.b+p.c*4}else h=p;a=a.subarray(h)}return oa(i,d)}async function sa(a={}){var s,i=a,f="./this.program",h=(r,e)=>{throw e},d="",p="";function C(r){return p+r}var E,F,j=console.log.bind(console),_=console.error.bind(console),P,K=!1,L,b=r=>r.startsWith("file://"),V,X,H,R,Y,U,$,m,Q,x,O=!1;function z(){var r=Qr.buffer;H=new Int8Array(r),Y=new Int16Array(r),i.HEAPU8=R=new Uint8Array(r),U=new Uint16Array(r),$=new Int32Array(r),m=new Uint32Array(r),Q=new Float32Array(r),x=new Float64Array(r)}function A(){}function M(){O=!0,Sr.N()}function S(){}function g(r){r="Aborted("+r+")",_(r),K=!0,r+=". Build with -sASSERTIONS for more info.",O&&Ie();var e=new WebAssembly.RuntimeError(r);throw X?.(e),e}var B;let vr=()=>"";function pr(r){if(r==B&&P)return new Uint8Array(P);if(F)return F(r);throw"both async and sync fetching of the wasm failed"}async function dr(r){if(!P)try{var e=await E(r);return new Uint8Array(e)}catch{}return pr(r)}async function wr(r,e){try{var t=await dr(r),n=await WebAssembly.instantiate(t,e);return n}catch(o){_(`failed to asynchronously prepare wasm: ${o}`),g(o)}}async function Zr(r,e,t){if(!r&&!b(e))try{var n=fetch(e,{credentials:"same-origin"}),o=await WebAssembly.instantiateStreaming(n,t);return o}catch(u){_(`wasm streaming compile failed: ${u}`),_("falling back to ArrayBuffer instantiation")}return wr(e,t)}function br(){var r={a:Nn};return r}async function Hr(){function r(u,l){return Sr=u.exports,Bn(Sr),z(),Sr}function e(u){return r(u.instance)}var t=br();B??=vr();var n=await Zr(P,B,t),o=e(n);return o}class mr{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var Cr=globalThis.TextDecoder&&new TextDecoder,Er=(r,e,t,n)=>{var o=e+t;if(n)return o;for(;r[e]&&!(e>=o);)++e;return e},er=(r,e=0,t,n)=>{var o=Er(r,e,t,n);if(o-e>16&&r.buffer&&Cr)return Cr.decode(r.subarray(e,o));for(var u="";e<o;){var l=r[e++];if(!(l&128)){u+=String.fromCharCode(l);continue}var c=r[e++]&63;if((l&224)==192){u+=String.fromCharCode((l&31)<<6|c);continue}var v=r[e++]&63;if((l&240)==224?l=(l&15)<<12|c<<6|v:l=(l&7)<<18|c<<12|v<<6|r[e++]&63,l<65536)u+=String.fromCharCode(l);else{var y=l-65536;u+=String.fromCharCode(55296|y>>10,56320|y&1023)}}return u},D=(r,e,t)=>r?er(R,r,e,t):"",yr=(r,e,t,n)=>g(`Assertion failed: ${D(r)}, at: `+[e?D(e):"unknown filename",t,n?D(n):"unknown function"]),$r={varargs:void 0,getStr(r){var e=D(r);return e}};function sr(r,e,t,n){$r.varargs=n}var or=()=>Xe,_r=r=>{var e=r.getArg(or(),0);return We(e)},et=()=>Ne(),tt=r=>Oe(r),ve=r=>Be(r),nt=r=>{var e=et(),t=ve(4),n=ve(4);De(r,t,n);var o=m[t>>2],u=m[n>>2],l=D(o);rr(o);var c;return u&&(c=D(u),rr(u)),tt(e),[l,c]},pe=r=>{var e=_r(r);return nt(e)},at=r=>{var e=new WebAssembly.Exception(or(),[r],{traceStack:!0});throw e.message=pe(e),e},ot=()=>g(""),it=(r,e,t,n,o)=>{},W=r=>{for(var e="";;){var t=R[r++];if(!t)return e;e+=String.fromCharCode(t)}},gr={},ur={},Jr={},kr=class extends Error{constructor(r){super(r),this.name="BindingError"}},k=r=>{throw new kr(r)};function st(r,e,t={}){var n=e.name;if(r||k(`type "${n}" must have a positive integer typeid pointer`),ur.hasOwnProperty(r)){if(t.ignoreDuplicateRegistrations)return;k(`Cannot register type '${n}' twice`)}if(ur[r]=e,delete Jr[r],gr.hasOwnProperty(r)){var o=gr[r];delete gr[r],o.forEach(u=>u())}}function tr(r,e,t={}){return st(r,e,t)}var ut=(r,e,t,n)=>{e=W(e),tr(r,{name:e,fromWireType:function(o){return!!o},toWireType:function(o,u){return u?t:n},readValueFromPointer:function(o){return this.fromWireType(R[o])},destructorFunction:null})},lt=r=>({count:r.count,deleteScheduled:r.deleteScheduled,preservePointerOnDelete:r.preservePointerOnDelete,ptr:r.ptr,ptrType:r.ptrType,smartPtr:r.smartPtr,smartPtrType:r.smartPtrType}),Yr=r=>{function e(t){return t.$$.ptrType.registeredClass.name}k(e(r)+" instance already deleted")},xr=!1,de=r=>{},ct=r=>{r.smartPtr?r.smartPtrType.rawDestructor(r.smartPtr):r.ptrType.registeredClass.rawDestructor(r.ptr)},ye=r=>{r.count.value-=1;var e=r.count.value===0;e&&ct(r)},Fr=r=>globalThis.FinalizationRegistry?(xr=new FinalizationRegistry(e=>{ye(e.$$)}),Fr=e=>{var t=e.$$,n=!!t.smartPtr;if(n){var o={$$:t};xr.register(e,o,e)}return e},de=e=>xr.unregister(e),Fr(r)):(Fr=e=>e,r),jr=[],ht=()=>{for(;jr.length;){var r=jr.pop();r.$$.deleteScheduled=!1,r.delete()}},$e,ft=()=>{let r=Lr.prototype;Object.assign(r,{isAliasOf(t){if(!(this instanceof Lr)||!(t instanceof Lr))return!1;var n=this.$$.ptrType.registeredClass,o=this.$$.ptr;t.$$=t.$$;for(var u=t.$$.ptrType.registeredClass,l=t.$$.ptr;n.baseClass;)o=n.upcast(o),n=n.baseClass;for(;u.baseClass;)l=u.upcast(l),u=u.baseClass;return n===u&&o===l},clone(){if(this.$$.ptr||Yr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var t=Fr(Object.create(Object.getPrototypeOf(this),{$$:{value:lt(this.$$)}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},delete(){this.$$.ptr||Yr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&k("Object already scheduled for deletion"),de(this),ye(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Yr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&k("Object already scheduled for deletion"),jr.push(this),jr.length===1&&$e&&$e(ht),this.$$.deleteScheduled=!0,this}});let e=Symbol.dispose;e&&(r[e]=r.delete)};function Lr(){}var zr=(r,e)=>Object.defineProperty(e,"name",{value:r}),ge={},we=(r,e,t)=>{if(r[e].overloadTable===void 0){var n=r[e];r[e]=function(...o){return r[e].overloadTable.hasOwnProperty(o.length)||k(`Function '${t}' called with an invalid number of arguments (${o.length}) - expects one of (${r[e].overloadTable})!`),r[e].overloadTable[o.length].apply(this,o)},r[e].overloadTable=[],r[e].overloadTable[n.argCount]=n}},be=(r,e,t)=>{i.hasOwnProperty(r)?((t===void 0||i[r].overloadTable!==void 0&&i[r].overloadTable[t]!==void 0)&&k(`Cannot register public name '${r}' twice`),we(i,r,r),i[r].overloadTable.hasOwnProperty(t)&&k(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),i[r].overloadTable[t]=e):(i[r]=e,i[r].argCount=t)},vt=48,pt=57,dt=r=>{r=r.replace(/[^a-zA-Z0-9_]/g,"$");var e=r.charCodeAt(0);return e>=vt&&e<=pt?`_${r}`:r};function yt(r,e,t,n,o,u,l,c){this.name=r,this.constructor=e,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=o,this.getActualType=u,this.upcast=l,this.downcast=c,this.pureVirtualFunctions=[]}var Mr=(r,e,t)=>{for(;e!==t;)e.upcast||k(`Expected null or instance of ${t.name}, got an instance of ${e.name}`),r=e.upcast(r),e=e.baseClass;return r},Gr=r=>{if(r===null)return"null";var e=typeof r;return e==="object"||e==="array"||e==="function"?r.toString():""+r};function $t(r,e){if(e===null)return this.isReference&&k(`null is not a valid ${this.name}`),0;e.$$||k(`Cannot pass "${Gr(e)}" as a ${this.name}`),e.$$.ptr||k(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=e.$$.ptrType.registeredClass,n=Mr(e.$$.ptr,t,this.registeredClass);return n}function gt(r,e){var t;if(e===null)return this.isReference&&k(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),r!==null&&r.push(this.rawDestructor,t),t):0;(!e||!e.$$)&&k(`Cannot pass "${Gr(e)}" as a ${this.name}`),e.$$.ptr||k(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&e.$$.ptrType.isConst&&k(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);var n=e.$$.ptrType.registeredClass;if(t=Mr(e.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(e.$$.smartPtr===void 0&&k("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?t=e.$$.smartPtr:k(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)t=e.$$.smartPtr;else{var o=e.clone();t=this.rawShare(t,nr.toHandle(()=>o.delete())),r!==null&&r.push(this.rawDestructor,t)}break;default:k("Unsupported sharing policy")}return t}function wt(r,e){if(e===null)return this.isReference&&k(`null is not a valid ${this.name}`),0;e.$$||k(`Cannot pass "${Gr(e)}" as a ${this.name}`),e.$$.ptr||k(`Cannot pass deleted object as a pointer of type ${this.name}`),e.$$.ptrType.isConst&&k(`Cannot convert argument of type ${e.$$.ptrType.name} to parameter type ${this.name}`);var t=e.$$.ptrType.registeredClass,n=Mr(e.$$.ptr,t,this.registeredClass);return n}function Ir(r){return this.fromWireType(m[r>>2])}var me=(r,e,t)=>{if(e===t)return r;if(t.baseClass===void 0)return null;var n=me(r,e,t.baseClass);return n===null?null:t.downcast(n)},bt={},mt=(r,e)=>{for(e===void 0&&k("ptr should not be undefined");r.baseClass;)e=r.upcast(e),r=r.baseClass;return e},Ct=(r,e)=>(e=mt(r,e),bt[e]),Et=class extends Error{constructor(r){super(r),this.name="InternalError"}},Or=r=>{throw new Et(r)},Br=(r,e)=>{(!e.ptrType||!e.ptr)&&Or("makeClassHandle requires ptr and ptrType");var t=!!e.smartPtrType,n=!!e.smartPtr;return t!==n&&Or("Both smartPtrType and smartPtr must be specified"),e.count={value:1},Fr(Object.create(r,{$$:{value:e,writable:!0}}))};function _t(r){var e=this.getPointee(r);if(!e)return this.destructor(r),null;var t=Ct(this.registeredClass,e);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=e,t.$$.smartPtr=r,t.clone();var n=t.clone();return this.destructor(r),n}function o(){return this.isSmartPointer?Br(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:r}):Br(this.registeredClass.instancePrototype,{ptrType:this,ptr:r})}var u=this.registeredClass.getActualType(e),l=ge[u];if(!l)return o.call(this);var c;this.isConst?c=l.constPointerType:c=l.pointerType;var v=me(e,this.registeredClass,c.registeredClass);return v===null?o.call(this):this.isSmartPointer?Br(c.registeredClass.instancePrototype,{ptrType:c,ptr:v,smartPtrType:this,smartPtr:r}):Br(c.registeredClass.instancePrototype,{ptrType:c,ptr:v})}var kt=()=>{Object.assign(Nr.prototype,{getPointee(r){return this.rawGetPointee&&(r=this.rawGetPointee(r)),r},destructor(r){this.rawDestructor?.(r)},readValueFromPointer:Ir,fromWireType:_t})};function Nr(r,e,t,n,o,u,l,c,v,y,w){this.name=r,this.registeredClass=e,this.isReference=t,this.isConst=n,this.isSmartPointer=o,this.pointeeType=u,this.sharingPolicy=l,this.rawGetPointee=c,this.rawConstructor=v,this.rawShare=y,this.rawDestructor=w,!o&&e.baseClass===void 0?n?(this.toWireType=$t,this.destructorFunction=null):(this.toWireType=wt,this.destructorFunction=null):this.toWireType=gt}var Ce=(r,e,t)=>{i.hasOwnProperty(r)||Or("Replacing nonexistent public symbol"),i[r].overloadTable!==void 0&&t!==void 0?i[r].overloadTable[t]=e:(i[r]=e,i[r].argCount=t)},Ee={},Ft=(r,e,t)=>{r=r.replace(/p/g,"i");var n=Ee[r];return n(e,...t)},_e=r=>Ye.get(r),Rt=(r,e,t=[],n=!1)=>{if(r.includes("j"))return Ft(r,e,t);var o=_e(e),u=o(...t);function l(c){return c}return u},Pt=(r,e,t=!1)=>(...n)=>Rt(r,e,n,t),lr=(r,e,t=!1)=>{r=W(r);function n(){if(r.includes("j"))return Pt(r,e);var u=_e(e);return u}var o=n();return typeof o!="function"&&k(`unknown function pointer with signature ${r}: ${e}`),o};class St extends Error{}var ke=r=>{var e=je(r),t=W(e);return rr(e),t},qr=(r,e)=>{var t=[],n={};function o(u){if(!n[u]&&!ur[u]){if(Jr[u]){Jr[u].forEach(o);return}t.push(u),n[u]=!0}}throw e.forEach(o),new St(`${r}: `+t.map(ke).join([", "]))},cr=(r,e,t)=>{r.forEach(c=>Jr[c]=e);function n(c){var v=t(c);v.length!==r.length&&Or("Mismatched type converter count");for(var y=0;y<r.length;++y)tr(r[y],v[y])}var o=new Array(e.length),u=[],l=0;for(let[c,v]of e.entries())ur.hasOwnProperty(v)?o[c]=ur[v]:(u.push(v),gr.hasOwnProperty(v)||(gr[v]=[]),gr[v].push(()=>{o[c]=ur[v],++l,l===u.length&&n(o)}));u.length===0&&n(o)},Tt=(r,e,t,n,o,u,l,c,v,y,w,I,q)=>{w=W(w),u=lr(o,u),c&&=lr(l,c),y&&=lr(v,y),q=lr(I,q);var T=dt(w);be(T,function(){qr(`Cannot construct ${w} due to unbound types`,[n])}),cr([r,e,t],n?[n]:[],N=>{N=N[0];var G,Tr;n?(G=N.registeredClass,Tr=G.instancePrototype):Tr=Lr.prototype;var ir=zr(w,function(...ue){if(Object.getPrototypeOf(this)!==se)throw new kr(`Use 'new' to construct ${w}`);if(ar.constructor_body===void 0)throw new kr(`${w} has no accessible constructor`);var Me=ar.constructor_body[ue.length];if(Me===void 0)throw new kr(`Tried to invoke ctor of ${w} with invalid number of parameters (${ue.length}) - expected (${Object.keys(ar.constructor_body).toString()}) parameters instead!`);return Me.apply(this,ue)}),se=Object.create(Tr,{constructor:{value:ir}});ir.prototype=se;var ar=new yt(w,ir,se,q,G,u,c,y);ar.baseClass&&(ar.baseClass.__derivedClasses??=[],ar.baseClass.__derivedClasses.push(ar));var Qn=new Nr(w,ar,!0,!1,!1),xe=new Nr(w+"*",ar,!1,!1,!1),ze=new Nr(w+" const*",ar,!1,!0,!1);return ge[r]={pointerType:xe,constPointerType:ze},Ce(T,ir),[Qn,xe,ze]})},Ar=(r,e)=>{for(var t=[],n=0;n<r;n++)t.push(m[e+n*4>>2]);return t},Fe=r=>{for(;r.length;){var e=r.pop(),t=r.pop();t(e)}};function Re(r){for(var e=1;e<r.length;++e)if(r[e]!==null&&r[e].destructorFunction===void 0)return!0;return!1}function Kt(r,e,t,n){var o=Re(r),u=r.length-2,l=[],c=["fn"];e&&c.push("thisWired");for(var v=0;v<u;++v)l.push(`arg${v}`),c.push(`arg${v}Wired`);l=l.join(","),c=c.join(",");var y=`return function (${l}) {
`;o&&(y+=`var destructors = [];
`);var w=o?"destructors":"null",I=["humanName","throwBindingError","invoker","fn","runDestructors","fromRetWire","toClassParamWire"];e&&(y+=`var thisWired = toClassParamWire(${w}, this);
`);for(var v=0;v<u;++v){var q=`toArg${v}Wire`;y+=`var arg${v}Wired = ${q}(${w}, arg${v});
`,I.push(q)}if(y+=(t||n?"var rv = ":"")+`invoker(${c});
`,o)y+=`runDestructors(destructors);
`;else for(var v=e?1:2;v<r.length;++v){var T=v===1?"thisWired":"arg"+(v-2)+"Wired";r[v].destructorFunction!==null&&(y+=`${T}_dtor(${T});
`,I.push(`${T}_dtor`))}return t&&(y+=`var ret = fromRetWire(rv);
return ret;
`),y+=`}
`,new Function(I,y)}function re(r,e,t,n,o,u){var l=e.length;l<2&&k("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var c=e[1]!==null&&t!==null,v=Re(e),y=!e[0].isVoid,w=e[0],I=e[1],q=[r,k,n,o,Fe,w.fromWireType.bind(w),I?.toWireType.bind(I)],T=2;T<l;++T){var N=e[T];q.push(N.toWireType.bind(N))}if(!v)for(var T=c?1:2;T<e.length;++T)e[T].destructorFunction!==null&&q.push(e[T].destructorFunction);var G=Kt(e,c,y,u)(...q);return zr(r,G)}var Vt=(r,e,t,n,o,u)=>{var l=Ar(e,t);o=lr(n,o),cr([],[r],c=>{c=c[0];var v=`constructor ${c.name}`;if(c.registeredClass.constructor_body===void 0&&(c.registeredClass.constructor_body=[]),c.registeredClass.constructor_body[e-1]!==void 0)throw new kr(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return c.registeredClass.constructor_body[e-1]=()=>{qr(`Cannot construct ${c.name} due to unbound types`,l)},cr([],l,y=>(y.splice(1,0,null),c.registeredClass.constructor_body[e-1]=re(v,y,null,o,u),[])),[]})},Pe=r=>{r=r.trim();let e=r.indexOf("(");return e===-1?r:r.slice(0,e)},Ut=(r,e,t,n,o,u,l,c,v,y)=>{var w=Ar(t,n);e=W(e),e=Pe(e),u=lr(o,u,v),cr([],[r],I=>{I=I[0];var q=`${I.name}.${e}`;e.startsWith("@@")&&(e=Symbol[e.substring(2)]),c&&I.registeredClass.pureVirtualFunctions.push(e);function T(){qr(`Cannot call ${q} due to unbound types`,w)}var N=I.registeredClass.instancePrototype,G=N[e];return G===void 0||G.overloadTable===void 0&&G.className!==I.name&&G.argCount===t-2?(T.argCount=t-2,T.className=I.name,N[e]=T):(we(N,e,q),N[e].overloadTable[t-2]=T),cr([],w,Tr=>{var ir=re(q,Tr,I,u,l,v);return N[e].overloadTable===void 0?(ir.argCount=t-2,N[e]=ir):N[e].overloadTable[t-2]=ir,[]}),[]})},Se=[],hr=[0,1,,1,null,1,!0,1,!1,1],ee=r=>{r>9&&--hr[r+1]===0&&(hr[r]=void 0,Se.push(r))},nr={toValue:r=>(r||k(`Cannot use deleted val. handle = ${r}`),hr[r]),toHandle:r=>{switch(r){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let e=Se.pop()||hr.length;return hr[e]=r,hr[e+1]=1,e}}}},Te={name:"emscripten::val",fromWireType:r=>{var e=nr.toValue(r);return ee(r),e},toWireType:(r,e)=>nr.toHandle(e),readValueFromPointer:Ir,destructorFunction:null},Ke=r=>tr(r,Te),Zt=(r,e)=>{switch(e){case 4:return function(t){return this.fromWireType(Q[t>>2])};case 8:return function(t){return this.fromWireType(x[t>>3])};default:throw new TypeError(`invalid float width (${e}): ${r}`)}},Ht=(r,e,t)=>{e=W(e),tr(r,{name:e,fromWireType:n=>n,toWireType:(n,o)=>o,readValueFromPointer:Zt(e,t),destructorFunction:null})},Jt=(r,e,t,n,o,u,l,c)=>{var v=Ar(e,t);r=W(r),r=Pe(r),o=lr(n,o,l),be(r,function(){qr(`Cannot call ${r} due to unbound types`,v)},e-1),cr([],v,y=>{var w=[y[0],null].concat(y.slice(1));return Ce(r,re(r,w,null,o,u,l),e-1),[]})},jt=(r,e,t)=>{switch(e){case 1:return t?n=>H[n]:n=>R[n];case 2:return t?n=>Y[n>>1]:n=>U[n>>1];case 4:return t?n=>$[n>>2]:n=>m[n>>2];default:throw new TypeError(`invalid integer width (${e}): ${r}`)}},Lt=(r,e,t,n,o)=>{e=W(e);let u=n===0,l=v=>v;if(u){var c=32-8*t;l=v=>v<<c>>>c,o=l(o)}tr(r,{name:e,fromWireType:l,toWireType:(v,y)=>y,readValueFromPointer:jt(e,t,n!==0),destructorFunction:null})},It=(r,e,t)=>{let n=(o,u)=>{let l=0;return{next(){if(l>=o)return{done:!0};let c=l;return l++,{value:u(c),done:!1}},[Symbol.iterator](){return this}}};r[Symbol.iterator]||(r[Symbol.iterator]=function(){let o=this[e]();return n(o,u=>this[t](u))})},Ot=(r,e,t,n)=>{t=W(t),n=W(n),cr([],[r,e],o=>{let u=o[0];return It(u.registeredClass.instancePrototype,t,n),[]})},Bt=(r,e,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],o=n[e];function u(l){var c=m[l>>2],v=m[l+4>>2];return new o(H.buffer,v,c)}t=W(t),tr(r,{name:t,fromWireType:u,readValueFromPointer:u},{ignoreDuplicateRegistrations:!0})},Nt=Object.assign({optional:!0},Te),qt=(r,e)=>{tr(r,Nt)},Qt=(r,e,t,n)=>{if(!(n>0))return 0;for(var o=t,u=t+n-1,l=0;l<r.length;++l){var c=r.codePointAt(l);if(c<=127){if(t>=u)break;e[t++]=c}else if(c<=2047){if(t+1>=u)break;e[t++]=192|c>>6,e[t++]=128|c&63}else if(c<=65535){if(t+2>=u)break;e[t++]=224|c>>12,e[t++]=128|c>>6&63,e[t++]=128|c&63}else{if(t+3>=u)break;e[t++]=240|c>>18,e[t++]=128|c>>12&63,e[t++]=128|c>>6&63,e[t++]=128|c&63,l++}}return e[t]=0,t-o},te=(r,e,t)=>Qt(r,R,e,t),ne=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.charCodeAt(t);n<=127?e++:n<=2047?e+=2:n>=55296&&n<=57343?(e+=4,++t):e+=3}return e},Wt=(r,e)=>{e=W(e);var t=!0;tr(r,{name:e,fromWireType(n){var o=m[n>>2],u=n+4,l;if(t)l=D(u,o,!0);else{l="";for(var c=0;c<o;++c)l+=String.fromCharCode(R[u+c])}return rr(n),l},toWireType(n,o){o instanceof ArrayBuffer&&(o=new Uint8Array(o));var u,l=typeof o=="string";l||ArrayBuffer.isView(o)&&o.BYTES_PER_ELEMENT==1||k("Cannot pass non-string to std::string"),t&&l?u=ne(o):u=o.length;var c=ie(4+u+1),v=c+4;if(m[c>>2]=u,l)if(t)te(o,v,u+1);else for(var y=0;y<u;++y){var w=o.charCodeAt(y);w>255&&(rr(c),k("String has UTF-16 code units that do not fit in 8 bits")),R[v+y]=w}else R.set(o,v);return n!==null&&n.push(rr,c),c},readValueFromPointer:Ir,destructorFunction(n){rr(n)}})},Ve=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Dt=(r,e,t)=>{var n=r>>1,o=Er(U,n,e/2,t);if(o-n>16&&Ve)return Ve.decode(U.subarray(n,o));for(var u="",l=n;l<o;++l){var c=U[l];u+=String.fromCharCode(c)}return u},Xt=(r,e,t)=>{if(t??=2147483647,t<2)return 0;t-=2;for(var n=e,o=t<r.length*2?t/2:r.length,u=0;u<o;++u){var l=r.charCodeAt(u);Y[e>>1]=l,e+=2}return Y[e>>1]=0,e-n},Yt=r=>r.length*2,xt=(r,e,t)=>{for(var n="",o=r>>2,u=0;!(u>=e/4);u++){var l=m[o+u];if(!l&&!t)break;n+=String.fromCodePoint(l)}return n},zt=(r,e,t)=>{if(t??=2147483647,t<4)return 0;for(var n=e,o=n+t-4,u=0;u<r.length;++u){var l=r.codePointAt(u);if(l>65535&&u++,$[e>>2]=l,e+=4,e+4>o)break}return $[e>>2]=0,e-n},Mt=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.codePointAt(t);n>65535&&t++,e+=4}return e},Gt=(r,e,t)=>{t=W(t);var n,o,u;e===2?(n=Dt,o=Xt,u=Yt):(n=xt,o=zt,u=Mt),tr(r,{name:t,fromWireType:l=>{var c=m[l>>2],v=n(l+4,c*e,!0);return rr(l),v},toWireType:(l,c)=>{typeof c!="string"&&k(`Cannot pass non-string to C++ string type ${t}`);var v=u(c),y=ie(4+v+e);return m[y>>2]=v/e,o(c,y+4,v+e),l!==null&&l.push(rr,y),y},readValueFromPointer:Ir,destructorFunction(l){rr(l)}})},At=(r,e,t)=>{Ke(r)},rn=(r,e)=>{e=W(e),tr(r,{isVoid:!0,name:e,fromWireType:()=>{},toWireType:(t,n)=>{}})},en=0,tn=()=>{en=0},ae=[],nn=r=>{var e=ae.length;return ae.push(r),e},an=(r,e)=>{var t=ur[r];return t===void 0&&k(`${e} has unknown type ${ke(r)}`),t},on=(r,e)=>{for(var t=new Array(r),n=0;n<r;++n)t[n]=an(m[e+n*4>>2],`parameter ${n}`);return t},sn=(r,e,t)=>{var n=[],o=r(n,t);return n.length&&(m[e>>2]=nr.toHandle(n)),o},un={},Ue=r=>{var e=un[r];return e===void 0?W(r):e},ln=(r,e,t)=>{var n=8,[o,...u]=on(r,e),l=o.toWireType.bind(o),c=u.map(T=>T.readValueFromPointer.bind(T));r--;var v={toValue:nr.toValue},y=c.map((T,N)=>{var G=`argFromPtr${N}`;return v[G]=T,`${G}(args${N?"+"+N*n:""})`}),w;switch(t){case 0:w="toValue(handle)";break;case 2:w="new (toValue(handle))";break;case 3:w="";break;case 1:v.getStringOrSymbol=Ue,w="toValue(handle)[getStringOrSymbol(methodName)]";break}w+=`(${y})`,o.isVoid||(v.toReturnWire=l,v.emval_returnValue=sn,w=`return emval_returnValue(toReturnWire, destructorsRef, ${w})`),w=`return function (handle, methodName, destructorsRef, args) {
${w}
}`;var I=new Function(Object.keys(v),w)(...Object.values(v)),q=`methodCaller<(${u.map(T=>T.name)}) => ${o.name}>`;return nn(zr(q,I))},cn=(r,e)=>(r=nr.toValue(r),e=nr.toValue(e),nr.toHandle(r[e])),hn=r=>{r>9&&(hr[r+1]+=1)},fn=(r,e,t,n,o)=>ae[r](e,t,n,o),vn=r=>nr.toHandle(Ue(r)),pn=r=>{var e=nr.toValue(r);Fe(e),ee(r)},Rr={},Ze=r=>{if(r instanceof mr||r=="unwind")return L;h(1,r)},He=()=>!0,Je=r=>{L=r,He()||(K=!0),h(r,new mr(r))},dn=(r,e)=>{L=r,Je(r)},yn=dn,$n=()=>{if(!He())try{yn(L)}catch(r){Ze(r)}},gn=r=>{if(!K)try{return r()}catch(e){Ze(e)}finally{$n()}},wn=()=>performance.now(),bn=(r,e)=>{if(Rr[r]&&(clearTimeout(Rr[r].id),delete Rr[r]),!e)return 0;var t=setTimeout(()=>{delete Rr[r],gn(()=>Le(r,wn()))},e);return Rr[r]={id:t,timeout_ms:e},0},mn=()=>Date.now(),Cn=()=>2147483648,En=(r,e)=>Math.ceil(r/e)*e,_n=r=>{var e=Qr.buffer.byteLength,t=(r-e+65535)/65536|0;try{return Qr.grow(t),z(),1}catch{}},kn=r=>{var e=R.length;r>>>=0;var t=Cn();if(r>t)return!1;for(var n=1;n<=4;n*=2){var o=e*(1+.2/n);o=Math.min(o,r+100663296);var u=Math.min(t,En(Math.max(r,o),65536)),l=_n(u);if(l)return!0}return!1},oe={},Fn=()=>f||"./this.program",Pr=()=>{if(!Pr.strings){var r=(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:r,_:Fn()};for(var t in oe)oe[t]===void 0?delete e[t]:e[t]=oe[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);Pr.strings=n}return Pr.strings},Rn=(r,e)=>{var t=0,n=0;for(var o of Pr()){var u=e+t;m[r+n>>2]=u,t+=te(o,u,1/0)+1,n+=4}return 0},Pn=(r,e)=>{var t=Pr();m[r>>2]=t.length;var n=0;for(var o of t)n+=ne(o)+1;return m[e>>2]=n,0},Sn=r=>52,Tn=(r,e,t,n)=>52,Kn=(r,e)=>e+2097152>>>0<4194305-!!r?(r>>>0)+e*4294967296:NaN;function Vn(r,e,t,n,o){var u=Kn(e,t);return 70}var Un=[null,[],[]],Zn=(r,e)=>{var t=Un[r];e===0||e===10?((r===1?j:_)(er(t)),t.length=0):t.push(e)},Hn=(r,e,t,n)=>{for(var o=0,u=0;u<t;u++){var l=m[e>>2],c=m[e+4>>2];e+=8;for(var v=0;v<c;v++)Zn(r,R[l+v]);o+=c}return m[n>>2]=o,0},Jn=r=>{var e=_r(r);Qe(e)},jn=r=>{var e=_r(r);qe(e)};ft(),kt(),i.wasmBinary&&(P=i.wasmBinary),i.UTF8ToString=D,i.stringToUTF8=te,i.lengthBytesUTF8=ne,i.getExceptionMessage=pe,i.incrementExceptionRefcount=Jn,i.decrementExceptionRefcount=jn;var je,ie,rr,Le,Ie,Oe,Be,Ne,qe,Qe,We,De,Ln,In,On,Xe,Qr,Ye;function Bn(r){je=r.O,ie=i._malloc=r.P,rr=i._free=r.R,Le=r.S,Ie=r.T,Oe=r.U,Be=r.V,Ne=r.W,qe=r.Y,Qe=r.Z,We=r._,De=r.$,Ln=Ee.jiji=r.aa,In=Qr=r.M,On=Ye=r.Q,Xe=r.X}var Nn={v:yr,B:sr,x:at,w:ot,r:it,H:ut,k:Tt,p:Vt,d:Ut,F:Ke,o:Ht,m:Jt,c:Lt,K:Ot,a:Bt,l:qt,G:Wt,j:Gt,J:At,I:rn,t:tn,g:ln,b:ee,i:cn,L:hn,f:fn,h:vn,e:pn,u:bn,E:mn,y:kn,C:Rn,D:Pn,n:Sn,A:Tn,q:Vn,z:Hn,s:Je};function qn(){function r(){i.calledRun=!0,!K&&(M(),V?.(i))}r()}var Sr;return Sr=await Hr(),qn(),O?s=i:s=new Promise((r,e)=>{V=r,X=e}),s}var ua=sa,la=new Int8Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,90,63,64,65,66,-1,67,68,69,70,71,-1,72,73,52,53,54,55,56,57,58,59,60,61,74,75,76,77,78,79,80,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,81,-1,82,83,84,85,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,86,87,88,89,-1]);function ca(a){let s=new Uint8Array(79700),i=0,f=0,h=0,d=-1;for(let p=0,C=a.length;p<C;p++){let E=a.charCodeAt(p);if(E>127)continue;let F=la[E];if(!(F<0))if(d<0)d=F;else{d+=F*91,f|=d<<h,h+=(d&8191)>88?13:14;do s[i++]=f,f>>>=8,h-=8;while(h>7);d=-1}}return d>=0&&(s[i++]=(f|d<<h)&255),s}var ha='v7#a#A&iP2L&Ht3|AR("k8tUjH_dZcyS@uo5Ae)DS8a5}doX+io@UTS<bu=JHZy(RM&:N|R$/kkXMjO$;o0I<{*xUap8(!>3;J:F*&^{3=Mds6*d:QPri=p+Ojv~y.NV1j,8MI#@*31<^SKK(,I4y,8L;{R(e.6+voYhg3aFy,"|qZ*+]/(>W+oj<qJ`W(LP`Or8ziOg3M7m27}/y,Ro;[RX26{&Ba4?|@rc4q;#8SfW;g*,/QId!30h|Zpy}@Y49};g*,7s.+1_Hj6MG`f7?x&Hhe7`]owxJY3@}~fb10~by#s0I4eL*Gm|1ey{{T[.6.Lm2yTx~??@U0U5X(E,JGhq9K|ZZPQeI9e`)<rZlO[ay|DhzLrNJ8~7>q2N"sn5lek/ZR&bIj!s71=f(Vc~EMYBxFE>L41blPF$53]O+yEFjNCDav3!.Q*dcn_Dq`^j}yyh4+MzB<r&Av^U5x.SU>@<?,%DPi3Rd_!aY[6ggZ,+:K>`q0~`EL#L/^8g(,s(4<I9U,e+.s5I}x~7`U/srm`sRj=DKuo@/1,q$CRA$SP?pA?$Y)8!^!7q<@f}vE`ckk?}>&H#7o6gPl9m0]5ijBN102s.8o_&MQ*eh)Y^}y5ZR6zMG`2lVnyk}*%I!L=r7@s$$4X^@bM5CyYtm.F*Eh4?LN(qYy?rhS!^MkdR7tGVf=KP9%cPd2jbnyh,VY]GsLTVhq`&9qi>y}A&H~cT@{yN9Tr>O68U/e:5)`U>?qD8hZ:q=ql7p[p&)`}m*ygQhAWm(8{yh(b?qu{UKHjEw@v]zI.S;~f*_vkdKirmfAM$xG#~K6%c`RoIbc1lOKYc_eXK]2JS<>/w$xkdcbOUvC8wbo":9O.SThMr,ew*<%&/6goPZ4A4q2pY1#w6u|_#~MM%Gp%`]2=BO549s.Vo&/6d(3Z:R_#0?++*r@J6&WN,]6d9q3s(4/5TmgO&kowN;B>6XLSC<!EmgQNvu@3D1/G3A%Ymlj]NBc**xg@h~joJ5mC1p<es+,6ad;&iJT{g8g1O*?F2f9;0u7JUUFw=lj&`pG%>L)q+D|(|0WIj&O5|Otn[?}XR8}066=]tS38Si%<od[wEwb^U?^m&|{&P1W.`jeZ(c6A9<#x=:1Q[leZICx:1=^%T8$b)/Imix*=qmyEY!_eQHo681<8P&sbGW/0[w[e&y@Vh(`7d]r2NXp(ou>Z54<:t<2RFh!>Y@pRj2I_+IwG{pNc+4YKs{Ty>.icjkN?YHlIM(OlGX0F"vL#F:b25=yxbcn%BxNWCd5YuW[aOkx=yndAqt?g0zoL`g0sZ0Bh0U5bc1lF(K*kb~P2O7<$`:KNgusTts/2fFM/`KnmV$`q4:jSpDG9&Bg.e_5a3v;wydUfjR1!A2P;UBP;4N$fsy/Q(?kao,=bk~(cHUDH/pSSe_+{Uif@kcPDtn8F2u]T>9WKBvr2_E,kV&_[:VHS|$|XZ?MX(N0C,XR`}+)NNhy".9HJPdC_=Ku#3#7Ro,}&R&!nx4}g&V9JJM$E3DiZPAO>"Ce@;?g]dX:S:1(Lop7lx3yf5l5t&gjGy~vx.R#{?ur`[,"s|=Z`Kfgp`v6jn<5"Cs:+3u@M8%e4[##)=_R$4W$V.Sg([<!!8kCS>l0Vtx8h%+wi!3v&HgBeFGBL!?zIqs4?&z!F>tFdJKBvE/RqB4YEm+OGC/Ai4dP@&cU%z)mC8M]d`5,!q"DL3(kYgqR6bQFpI;DeV3eD`*y;/0@A[NGS^3glDj`Ce??L:29O6*#]+EurY^{FgT7[Q(?utQ3H+S5q(20@K,Ntxb?L:R8Z?9gq<VQHlQI|0W&<=3@C]+!)*O6Z"U@1VuMXygCsBEiN&FUu3XKgappjPQz<2m&NQ.ZvWIIs&!~l.Az!;2c[c!G(j%D;!.PhcX:;ym~9@1vtxNPfD$ifg~)s)[9E0.8hed)},(P%3L![2/,FyK$r.>q3<2/iVer&7NNY]O5<9}!&B3>z+h~s^xi@])l3g`fK^+i+snYgVF]3~n0l1ix5y7e<T9E^ss:w;g^UpHaL0N2q`f;K0NSh<TyUn!bEh=r=!1(;r/,EX@&g|?=%,/5w9SY_^zgz.<Hm^gK51pU_@|ZH3!Pl;FMo6mS%R!~9bkJ:6l1yj;q_h6RdOzfaIn4rusoy.r/5P5P;U6Pgq!>[O8pmSR;]qqUz!T!!GN#pPbwcKqo65e[x>}Kmonf/gVu+$%!GNVV`21Z18du8q"UzqF;,N&8bunR<.+pUf?1eWX9}KOa!uM/ZunVGv6]7i2]C[vR&IkJ)s]m1w<+n@,H3c}.6JIx%}$HpU7E$/w*aeS0~wXx:W1/*+#FRM2^XR:H]37U,qLiB&5m?!!qf)Emybt,%11;ks{Io[B8Q>1gg%>iL]!@YsHFI_k>(o2.$V(s&Jwv&JXn`Y"=L_~5C_r54V8I|yIN)Un|_&"^=[q}Jf9o+In+P^c9q$?R<g^=9@J`AP/HBef&|%sa"fn8+P.`]o(@&panv}H1xq,I$q!XqzRWbkk^)`Z>]zE&.ksgJ|(:=ma`swVWw=/])lfQ&1KRw]^m4b!hd}lq68T}1$s%%o(1b1/]^yZ`TmQ1=[O@a}1@f[aJ0RrFRXL,NV.&opw|4a#*t~4]!8KLhvH>B_oK]&L@6V0+5m`{T~&{v6b.c@_;Wru]w*4<3MAK)@6;$oivtC{1%oyxPmTgJMR(^6.2SKRV}UFe!Re.xB1z}ycUw%NNX*H$>8O,#*u&$n(+(:NZ%bBgKnPlCh%&!`;_4VkC3y;_3OXGbklGKn>r>!$o"$>scz8>Q!T*eVb>&{;_0l${Xoy^_sqT?9l:NJbGJJbG*9j@(`=Kj:@I!^4b*)sqAK[*h:s0B]vS#MW141NTy]??aSA6jMlSL/BoFJeD:L76(O(Uu6hZJ(PNeUm1m`rYR#Q39^LFd:L_@hhPP$9|:S+`sTS,H21b<pw6y^r1z0r0$B_np3ZnHC~3`&Oa/5(9SD:eW=,)4,2u(=T#^qib$3:)QO|11bw9+(4s3,bj(o/N_LKdAK?*B{lhSV]n<0u7[8OaF**Xmzo$pTU+|_tV|T9x],2u6o<bula}(h{*H:~GWj:9zLU(:/K"&A*FF,%`tB^E$h]0v8bnp+]bGr2MuVji5AU()L3@$@WO=+O!|ze$r!Gii~%p&JH!GebJ>?$V>U7E8q*3~o1@`HY6?K"1FL`|k+v9hOaR#gK5p/j]Bs:"ahOL[Ua9ZM<oiypRyc}&baQg4XaWQXRSX[i[0a{^2060r0bw(]%>bNX>~Cz<6.?|ukP#m[{lM0*.DW)5y>Oa;|gxgKS,Ep(g^/yB+28uJ&2C_6?*C||k,}RPS5nT1M`WQ(!wM{p;+4j@n7>]~#;wJQ(1t;I]xUwpOS1ls.}^8gXgclM^u&S$O$)m3pgl9#B~et8o1zY0XT}vd<2.xY)~L4hbY*rU5Q5Ty8yc8{Xpz@O,}="^Sqljc^0i5zI|*:tV!o&Mepp2Nasg]#_=W,zv<+HFi~dU)reJ{ffo~Tn0U1&&<=!.g~|>S+[{f,EgS*)7HJCzspCU"_r@Lsdz,;/9ANn2]y]O5es,xSQ[no}^%@?*$QH1D+tX*=9v35.mIj`Tt$FV35o$s>qYcbjkDOo?bfZd"ENNObm(V6m_Y.E@C+Fht(&46jj*l@<gqE`_`_|K%q@kP~hjkY`V/5IdQF,O~`o:@a:t<29/4PjH(KQv`_!/HIf4787N!.R#nX[]v6]hX@#D(qxEspD?p+Qr{QG(Z%<IE=ggT#eX4Dla:a[|IJZ`|.7&(s}J,~u0N*X6Kn9|}yfNdq&*^~7|Ar|:bf]KB(YEB?j+P{%dlDB:HE.u.8[:}oG7x#p*NNUPRP)j61/p]1O*1K75aIRPxOmYH3:eQPcP;Ei(D%0<&#j~YD.Z7Hi1QP#f/r1)c0ovW~17p!.b5VYdnf69~vRI>aetM|fem85(5~Gw,{ixhs`uCy+pc_rj$f^0,:iJ4g(8M]o<u+5.n6nK.&##+C^.aD41_&iv@_BBPYkUn)*8S+p!glDH*~4Mo`b1K~HF|{z<bJ_*D_3Ve1#/WmX}QhcCj!%K>L"?IHQO$8d1dkcv_%}E>acn!u<{/)c)j,Ytpiy^H#GSmVn}<=9h@;SdjiM]=l]/hGZ44wY.X_cjh<DrGr""z+!%>C>?oo7Gv.oIHXVV3M9LEu]vmsGgQ#))]|gFURt1O6~P;myvRtMyHO!kC%!f?1Y/[+OuLJ^B2<BQ{oHdmW,oXy@UlS3veyNNPriDlKf{,=Oqf:>@t8a|pIZ/s17nddT,$co,pFW}pF(_^K}.js=xG?=7=x^_RTb5Q&;D{]U|U>0[{L(.1D={<&<=a@lVx^Y8NZiM~s36/XhywUW>jWB=rVXbAj^"2)/7OK?X+E!_dvgS<44rO]!JP)pCq|]xQ?&Xd||$!~9PspQLHvdWpJIxh}9ryrNoI]Y$(<i>H+XC!qU+wqF;c!shrk2ff?iP&ox6}Bd9p+KWVTGSh:+3N%F3.ar/lwcC}OUbY2^tZ[MLI``|zy&nyF:^V2z<_hdGSPYWkuc+,}z,,}yyxqI`RWN?a&PhE3gNSz_e%||RqY*59&V#}/!eG,:dvEfKSmpa{9|)%U^j];A#c^5_!H`gY:l8vjPi&xv5oodgtd+BxQVB<0p1uqKoC+=Fv8Y/YLuX0W1juIJ2z!b)mR?|=.%%clZF~_mnVFo?Yqj/*48G6r!C%/QWLJDtf#E"(H7k%1`vLK=)"?$`4,>(4MyzkqgYfW8]S;n323qTZ#foQLJ`9]+iweo7.zZw_&dk}BVzy.PS2<b?iPi}.<#>d2pZQeHg!rmP_5j?!8ORI;E:yF(ZqfnX%=7,ZuBp]X@&;oPVVpgQH69AQ2RW/*~*n6QHDhiP7`8:Z["&Gp1lGVcv)Sq~)C">k9Nb0Ll$V2R}Y(2NC0m[HXis45_&C`WnU>>w/^Ql<Q@,P82.^^lO/2{@erZ[1gJ#Xp;.q(PiR?Unjk<q&xr$!Vh:>1$b41!u!^D`%6(qI3Q3a)~d_5`}Tr/zB775}/={BIa.6`][=<9gQ]2WK&9PPW=qF/lN!@p1h~7t^;Ar_cw,Umjy?}y{&]2.pYQdV<a$^cn[7QlkU1gw<9@~.3Bb"nPR;.]jS(U1dmp3`p}C4L.)xJ,JVXVZs:=U*=!._No&<|fx/6WRNNZ,78u:4I`OVy<=,dR3N7pp|rVVjyR&d0/`PTxObRbGInn@O65,<Mx2/c%OB]dk@S/^~5V^SG53h{ceXkU4K;FJs^lQXW{^Ln0GO1y%r<|.TW=KYD{;`}SZ9t:.s+8XW&L$[{Eo)[LF7@6of=EJiv`fSLFIMqcr}|}MUZl$LqX1O*Q#ZUo=_qVWFo&[[wL+_i%O(1L[6GD=OwIN!GrkKH?QR3@&Kqp3kJp2z$B{2u,@%.ArDoZPAd*:S{@muxMg*6|O*eVoj[.833Z#JS&_m3fvV=f`sw!;+lw&)%*Si~|Zud>iKM_rE#o(lo45NgswyvK/&p{!dg8$rURw$;!&GV(u6&GV2M+3=qKj2M05#e;}FWWoFFZ9&^dcHx93AFCrOu__lye>(N`;J{:a+QUT(sIx3hvw[Y0@FX1Z^U[O%Kq0ngY!=j6i`il>4w9;b0;Doo7okW{bI*;pkWs%3.1?GMw&3Q7<o>z}fk4ms^/8F9ui,ZqWB]Zwr/g~R$B{/5D<bnz0DMbnoVAh{l=g+VLUoagjmjmskvNf)l$`[_U3;;2NbkmjL^tVC%1fp]nySK#h}`p/0f"9w+NdsH={?Ty7qh7G!$B{MY_.U~:*nVSPP~Q6wEXy{U={w.ejY"f?`}<X>!ygxE^9={8TJ_NNQ>/wE4:gesr4q3|{ArrO%.p|IFCrQ,&iq#3mc!8l,]}&J#ZU.`[_$b&o4Vi}I2~#0{O.L*)l~p36hyrm^!biF}`fvkI*VgOqd$|=f}lyH9Nse=Z!i3:em8E9Js30^#ilK}0wE%F%{I45s^C9Jslog1x#PsJm,]A9g3;;Ck]j];Arz>+>cDiQ@I#I5*Ei,zsv)$7cU9@2|>0u9nA?E6AypnIX21|J]>Iu~Tat~Q?{0:}geJSP`?~t1#h79)7SMTV=e2(J>k37B/Pb(EP]<4gvPRiNVfc:7X/<T7S1fmfl9B.[/4+gfl>e8E2D}nYX<TpnXX"J6nUXA3{>rBnQm&j,6S_IfvnnsXqZ=p3:1B#d9xeH`?{u9n]>M6PV^Jf7Bgd88S)Izf7SEe9x"zQ!YchGJ96SiO=*%w"$1c)Nel=ddJdO`?rdZ>g2FLc:q5]8#SSO26)v1#qcj$eldtdJtO=*%wOH`?(BNO=*dE.Nfv_B4N=*cD@a9xzI}ndXu=bc*6el^rdJ/K=*7C}nDdY[0:w<PbgFOl_4Cs5:;;PbUFP]]4Nb5:P#26wvHpocXk($z4"Eqnt)vCyUyabldnPb8x!I`?OCNO&k))L14:=x"VclDPL#)6*$ut@B+DxHiksMjgg7_3:V&^qgjcZe$T}JE??nzXtgkcXkflE.2e+$c?hJ%Sok(3alDPya|Exn!)GFpf[[2e+TP)%EmT@4?{q_{$K)yxpHMmM8#^xneu9KY<i:k=J?&C]Psm<4m{#mYJYq?q8?>BAdgU,22EfyU&A?A,uH6P[lOJYq%?DC*e+&ZF8KZ/F)LICX{GI>0_z*bIHYjPI>dVO?MDsZw}bFW&P?YDpSk8GhdVG?nC>T7,yQZqO)UFA6F`x9ZqS){H9WZ=yQW&Q?gD5igUhgL>3_+u=O7c|zI>4_6@$DFeT#13f&W?@Dqf*J:bdqv)LIv9pp/.dqz);I_hME238_(*(I8++ePV|_Xv,F"g!&+G%g=`C{e/c55YSD~M40JFL.f#<k#4,u<G;d+c|DqVf#e/>XeDzO{6h906n%!k(4P6`u/H1fiyo;_q#k+4R6GveIpjwQ~}=`H?V*"BJf3^rP*$Ti,(FEdQoWFx($aq?"5YAxOLf(NB#m#FAD$(<D:}t6rBI~Dm,kh^Hv5EXs6l]9oJ0Gp`W<JtwF.>?IDLcs&idAn.B=k_fEqE=pO!N"$fGtK3@QN<_(WoDPds7)VDdTHR3DJNF_+O}VtM*$V1srs:s"8H.)?J*(k"0V@%"^d[OUD8Y=S5qTo0W5M8:B|_QxZhY,]tg7x]O`H`puqylO>7|x@$CgAi3q!*y]bN@PNHf]t<YP|@B_prB&>g~IEqh.u6nu,y$d;P&pf9Q3e#,P)]!I]2{CTi.}5Vun&wulX6{W[lMP~=zeH8R(HSmd]m~pQ%&%B_TZ)j?,h%(:D`A2HoR[>(F;/5OUI9}!,wo/t.q%Q13w>E8:bY7iG@Pd51#UTc.U=HNN0L27~D8HaeVIAub7wXNH1wS@k,:%t4bYS5OW;$n}!gX6C&I3uF+^*wV#c_(qdu1c">q,yaMrf)/GH?Sw[WVxy+{ofbkkY6y(e+%o}h$V(a[N:AmDugR?`(tfTt$B|<=I%$"9he/$sn%qfb$@vBhA:>`(w!h"$B:;sn~>)82JmDv92(>tnm2(>t{P2(>tCj5"1(>t|!b"$B"fNt$B&^0(>tf$sn}hKi>4ebnl`Mh)%S:NoD}2?t;"5r(NsXHOYY*+(Bd4DHa3JN.zKU_zH#}kNv5rFHVom0*N)O)+tj(+$r!0*NJHV{"dF3+2*Nuwpz!NhoR^;60=qzm|t1br%7j@=V?:S`Kbo_X1$tp4HmEhiOSdTSP{}JQ?nV!D1hKn{~[nF(k`vk^p(6Tk7DZ<7)f&t6ISv)N]~{&!K2_S=CF)gk`+$=Bn+oTXM>s3r@0t?y~ys]@slo:UJF!N]X3@;48qYgYSCMG,O%m~e&3}D7`pNo{okb5)i~o;px?}HreEUvvHQKo0Cf:7f9$q/y1Cy@yg{<Ms5OKF.rd1&grR]o;W?GOQ?},jbE8r4QN1rfYdkK~6e65,v$3H.jDo|i!3D1p?O%@U~&7>.jqx,Al1YohnyM|b~0T5YyQJ$uyJ?qomtF{7.+L*NeOPnYbai[WY2h1,`st`Felqh|9%=^E;,[@bs:]*O`.zB]Zw_pBHSW$LA9E`*SO~X/w}_p>?0I*)_kpi1z"hKFa[OK8;k.JI~>L4BZyo&Mjp(ov`b`,@=eK*aozs(2Rw;2jpS(92bSc@ULsr(8/RZv[$85~sbaFC^+oQ9x2dYKku.FO)JnYQ_WtHI^<V_2S@R|O5?FB|A|ELmP6Hp<lYoFmYx[SMC_4OGz$hG/5Q+7cg<fx6"TxG{b?6j0_V=11H>=^`A.m]xYTkr$rVNHel4J(V[^ThL/kTNy+}xeJ|Vys+Yvk_U*%|n{w[r~x^<@Ibt<yep[1H[YdM8^_@=)iB<wse}]f/x<<)q$*nSPD95O7CL>G=+~?0||"d}h0;".<.JAw#HN="7M/!@W?.XV^$r8}0aY7i<aIr0g$*mNvhPP^*JG]jc)}?3q=iyu/Fyohw)*a;MiH4/1@GkP9K1ax|N$l:=q;}ynpQ9]8<?*U>s<,0G<I,crf<+xW$FLBKq<%Im#P1kx)ZI*ui2MwHZxGe#,8(>I?kShOXTJ{`wIU@EnnW(8=ZlyJD)[OKqGxQ+g$+P3|_(yS,"6(rgSBSS3c2^[A7*]Bw%Fw:^kr%YIW{nx;o}jP1Wrx]]r<}=54NV.ge5D_{.X{KuvC)6c^b(`EDm.Q4u#CM,I`{?nSWoQd|aI.al,0i|(Cuo,So>8y*(GBOxO)fD.G@9v|1zQUf0iqM[{#zxYSHnx0dCv1L9%`@".so1V:@YT99}xSZJK|3/cwCmpLX~vAv0oJ`s%b]Wu.)K`nyZB)lz|]OAxVT0L*+_XM`=O4%V@>[j/X@u&[y;c~aHd9RMFe39[#gi<PmctA<:i%h<b&l2H#h7VAFM:,NG@khkDY>ZNwRgoV%}o8+dj(T&hto,eKXhyO6/~=9}iB)ef<O0thvQv"1ZBO79aRve#!z}97+4sjs5*;IO,#tzfUS%7X+?|kNP@Gr^LgBla.b}DO[t%2y9jN?ngpRRK@rkYgQmBzY*gDZAyqISPk(&aHdJaM=P,AUWSlz$?U_Or>$lFI?if>59{lx)tD,[RF%@)_kvbb=ED5%}PvvC/$/*8CSAaIjp^m%hK{a[Lj7TmNo:!g/ZR]?wh:N[sPPuNVCg<R"<@>o;?/PThR8nbdR9{)@U%55pFqTd!S(Xm}y><U4kloQ/8.:+8E$0:3o+UL/_fRxl!B~<Qo28of76*;)Trjeka/wk$5H&kYE:X2XZxm({;;uc0!z[X!ry]<Y<k"/q/iySu$7(KgDy3>kkrso>>9~VF<T&/t&bN~LKzrWIVS$bleCzYT<i3hf(!+#c*,#`.HjqspV!7_;@T7C$GV>z:`k,]M3(fT}OFRZu?IUB.kbiFzH%Qz/Autp5.ck5Kukau`4OLj(8G~9^kUz9Ehtf+#yfcU9E5O6K|xfwb%/PT}{(.wvU_,&W(3Ja@q#l>_FM5u/kL20>k|vuE?{`rSet|_0l@R/c8q`%F0!!O3{q|+3oJ47J5Jap;[p7Tba0_/@d@JGuTC5AJ8,{`/Fm2``g}(WPlLmBmR:y4:ypVB]CxSyK|_)8F7W<@suee;FMi8#BfTM22O6]fu8*"6Nbwq*)!kxUZCMF]2N.ziNRp5l(!xz3DZIg4]Z_x)_#J_+$!lEe+IAXs)!j58RblmW)I~LXRhZ<ZCA=L^5.tI]lX[=PPm`RE@.m(bs/K{1o9[1PgWv:bRZfQbG#h8z3NL2t{V/XU5Qpm#/.{pg$!VKY]fQbuqwhvQL(e+~>]KSCpO!8+p[*c8thv[4:jwl#w3m:*E=???}0fo#D{V/v%Br3,{^~2y[K]aYX%S[W%{hH>#}vV&o!KtVvxs`{[#W[,+52DuRFu9N)KbIjy*zq`F"YziySUrhrVvx4_L32[gj*1*"]kJRxR3YI9wvk5gPDF]vdzo;nV||&YirLJMq[8+V3Yy9yb|%C]O0J>+h}P#}Gs}P_J2,/*"0(g[8>NP]s3iyx5Cwjt:tX%PtLj^L^0o,&M?0yJ9PC^qj_(qj0jy5(L7sA{:a>SS1|Fsz3N65&eI#{!?Qg:5>AAkYn,zL#;J.$*9>[io#2$3I9u^Tylr/fytpFEUhhQ(e*Y/QGtKE9;9>fBWfo;_lmau,N%]PyBEW2X209H,Aq+wv%JnYfQ%|JN{h3g)(I2LJrmXSD`kx{ve?~)7_468AAA&tJwNNK0W$qM20%VKz3,Zt"t.yT?%v;UM@1h_L*},x~ELw|_MTVZxx]k{`@h{e<3S#RZz0vuY(N%x10gBrqO/)eK!.iMBgV/jAb"c*X[b6JShVHgi4(sBcGezHtUjye*+MB@alp;.Kq;}}W_qr:uWv35C;|6zm_85Y};<.7KCZ0H^&e!;1>Jzz&nBahp=kl}A6Id2a{F/1sA;3)oFJw|M~zVrCM(<@>[j~cQ?gh/z<AK:Q,~Z{/@)q/gF;=wX%&bHd<et1/piMvV0/hmz0,,`kT/PRcB4v)ZPf$_w%KGUI%sd"X2VG!)!vLs=Q1PiEMM8C@@h*ZESP:/}|l1]|7I:/4h8b<$9/.{3[<|Wf)YOR2!XhszI!aL)`DJ:/caf@M6%@!!q46,iyLPg8)K}?P09GDdWp;!#8Yk9Y^ndLUWlC}v(}5$iJ],,MaD;,:fIxrwl7+1;c&*?5P]:i2Mq9D1j6PtdZJEeMqu>tAwUWvB[$BA:cKb8FM)>J,u,B9J3Aps7z$z(8K?R)2Xh5^Q{Q4!}RM}vC$dSBCa$$|?kxGLNOgNwI71O!&nmSiE`JJG5)ro44yFvIW`qbKL^bP2F^vjuVClM^e7iqh."U#q8(4$/OLyk_`_[acTJ=2sL#w`/X4F"c"j8.o7[.P4:`w.W%QELxX~6{V#s&PPg#Q{;k[U<RYFW^REx<y%k}U4*:+KusYSD.X_OrA:(A|s:8LB%E,)Kq`ZELiW>mDOt{k/kr1Q8To$CJJ]PXt!d&ldE~>mYi^;wXc%9|/)T,R_05l(%l.?G(;ozo2hbk!Z{f{<US&KlUrhEi36@H~$/_jZat95a3x0&O.RJY%&c3`xpxYT7GHVgdR?Dq+.E@E@G/<|WrLZf@i.~p:pD[bNOqBk&U<o2.B$Zu&[H/e%NjL9t!v$!=f%9o<m(.8^OnT)1o3.kJ(lr&Hs>wAqE7=e`qj>d$c*RbA|&)~OE{KoNSwjR00|?G0s[Ge>>h8pw6"eK"UXwIa<~ZKsJi2u"fsfGh5v;^1:QVUF0lut9baYb*HX6<X[q_gI<e+.Spn(O9mwf^DnTKpVR(G|:6$`ef5Z`I4>HIFq#/p@WA6Rwx=ecmNoD~W0%mM=b3wqF/aO&Fe^cRXA(Cm`k,tvn&".^Hm^I3h}0i6q0@?yfXVGu"*X,oA4czG~f)0[KS@mEN6m.u@`o4MZ1u[4yrQMy@U3vV"@h9SZw?m4i{ux<R2MYpTg+9n#J,9+iy8+C&)K&%p;MUPy`3B85Rxu$_E`IPcZxeb~i~!pr|a0^[&^Lx%}$KJg)}hm9|5E1*`b]ahN~GV%7p]@_m(hVW$zr$HAN1H=>yGF71U!><Tyv"`l4mWT3]V9S#nVMQ|ozu7CK{hLrQez3v9(9`i85(^aqVjiSw1P!w;PlbiDojn%SG~B8Lg&_Lz|WgUg@;_r:,MZTH?(xt&(&Gfp(%t1y=i2@mqFn<01~06{/y+3SQ9^dWbR)KRC1zh{z{qar}BRN#_Ln%4$+rwl7I8zW~FY+.jY&WtVZr36""O:m"JQ@qAJA*l[}[_n[8?]c2N1ehOa./"fr]kY!NY3A!6^rm7UoJKDAh{*UAqGsc%h7nfi#@0gok9DVp7O6<5go/e%ywtDWgo+aQst![3.@6OK`5]!9#z3;[>WuRB]("o~Dv#Eaxy.*hgo^n[4{6DnEfTxmwI,#]OHkJ_&hXq@SgM2Yn7ci0mrZ`l9qQP;:gl2HSe,VK_&8Gj(7|NOS,&x>Y;!D8s;xO4b|4!vF<J@yBj%lrE[!Dkcr3OKgF:Y9=A+dIx&=Ph|f2k>:x+&)`9jw633Wz]ql29R"`=N)Kv+~`7X#52D#JJ{HTRr5xvV3xUZ1;z5}n,f;.?*^fB+kt&JB43+V,E`]+g%9`NDSy,l~]5$v@/9#yfQ6grEE[Gyn3mV6?JW1Kb_;_W`uiP~aN~+_@Iys3iW0PhJ<aHYPxjySU<om/4,PUE<[<6%6G$]f%!%rBM=[k^z+im99|69!Xw3SI?aX87zEXe;U>r!Le^f7@f7N0vUBSF,#];[>qG_P3^6VeY_q3i(se=KS;;7AJx@4itl(MWh{Z29_Y|/QNn?c[)YvVT5Y5/&gk!!8}yc^[F}~rVSy$%`K>)S+*Y@m3>b7Ttk|}>fZ#tV^WAGvsi@QIW2Zj~]3(D["qopu.4~LBK/Ji1gR!PsX90+I&b921Qo<w"UU@O4os(`taZ%YXh)+.E(yB;b*O!zO1S<{[J|&cHlr9,^/@5{jbA`7dj2aa6wx3Prm8wOO(R{3UaD1z3>[%gmu]sK{*#A9^k<=I[+^mSnnn()W<[2Tnf.o:fd(@$]OaOSK&TgUINo2P~cz,g*C/UmC1p<bD$@tV<>(=amq#Gd@;O%zrT^bOPQ7N)K^!5DH1uqW[eo}]})Q7l["q,X|o?/;bgU=#83$oNP_$uMwPKHfoUKIm4iAHJyU(Q:f2U@F5<sg:eEF5l6aJL/F2xg&3^};gPx+YE5f}b[GKOh&U$1})ePhqrgLaxBlb/3%Uz[@O.]d6!5k<a*rw>U=4DD:m]NQKu>P/w*lq%3Ext>FFbHdp`S.sW=x<{^8LK*brBPy[FtmAc^7p>ONuj0qJ*hjDUoLB__Gi]+}%P}Z*36(O<UiIW9l^u&tO~8%OzX"VnKZCR^#d?nQU}W&X.H/abe{K%Suv%4H4lKd8]Wmb`b{<USNilra9U+theJ.Pqfo^nS>ku{>k%/"tsV7i43PIf}62n$6vCn28&]6(]GV?C`k6_p!Q#=%w/ko7_Y+/V[@"SOZ:/o2DOt{N5=Tylk2p??0w4;c<2.G0j(ni|r(U3DG/<yhsF&y)GLY%gb5=RCm$q13s=&]*6,^3CNPK!!5>[N&|pws*d9NSff*|AB+]:kB]("0%mw/[BQ[!Dm+6@7uqepD)Y`S{aLdY}%HPT2v^^8?a1lw{[[xFg@Tp6MF(]#qD4Kv9nBG(w*NfItdup<CQ6z4[0*wz^}:kIOqqw.){f,9U<g9em|3G4g*GEv5gjfIDeiJa:q@xd%$;fU*>IZ1_$i0Dj%+.br_,}[D0OMD`%#]L*8bTo)=]ly5Xmp)EhK,)g`9@DPW7&Q_7/zmDsN+K>sv@akq<l@]`{6Y9CwKNl@}=Dfo+`z3m`;mtYD;^j1ZvG7BqtoVUvM2.pM%Vk[&RU%&G;Ssoi1u.y5$Lo.$GYcZe9I"U@HmT$c}:%#8inCVpF0JSpcZo&ff8U2DdKEi[pR#0K=>148WRZ`HRu7qv4Y=)=2z+aNUDRLSbRgkYaFiQ/+Q{>IX`0_=X,Y>?`?p/t<UF9&>YvY&0M{mCKX5PX~.NFoW<$1IDP#F?28%c!$;t5[R]@#*#!jn#bB;^~q,6]iZ:18oP2(EgvN{=V3XGLnz87XJ<>S2z?a/sj[/qF9%fQJrm*.xi,.m5@na_Bn+YY&O6c{gEa|(o.T&m4Ilf[.=k15+SlTKH%mq]De#iQIq;e|}Nmh=J<Z[w:/cjN/X)"2T2ek7Cb3qJd^1HdcbSLDGFy^*"+=LJ#D48.PEic,H5&lr~VbNG.L1*EKHh1pHuA5)Y6!Qw|C1+:i,veGsW4<:nh%{wQ<YWQI%{dq.;?]PpBQB#5_eamlgd!SFs?C%C2v?Br6u?dqK}U}(,e1BNWII67o,F#z"lka3QvDj2;USJ2l#NLjA&ItTKG(@U}1gq$=yrHy0O^qjb2POqq5fsN~C6{vaIX"kV:jjQoowX7DYLZBU=WSB>gv_/6V4<05s%d^opt|;gm|J8(!}hJ#U#f8oTt{j:~!lL1@M"b6+%DRk9/yi0oY4%"Lr&0ajP,?54PQ0u;X:vr%;dgqWZB2&?>Ed9R6jUY6n[;]b4]6iOZQr[=)"lqd6V&32+@[D&Q4z%?.zwlrX>n]bzOgv~[_33tyS;[_*)bGA8}>@.d6^N/$FRL/Dg[V3~m`(k(;Eop3o2j8aP&o3%;,Q1n1D{i]"|(,s7[+P0,l2/>%8o4$X5glvOqota:9/]`_P_F]Ir"2wq6j}vhZ2/nv_;uR^a~P3w8|]*,lY{7v>x@9,ZYnbkH5D1p<bVd=j:}]vEg+B)w)k@ddl`$IG1},(q5_5Z*eNc5P(83ii`_<aegH`AEyUg^[)87Nfp7d8P_/W%=.<608~cOVCf<z!e$p9U@Be@b;1c_jL5H8rG5e%{8Um=36^eK[c:ZR6X~?7T3*5@rs:7$6ip&M6ps%S[gTVLW%8^D*Y]TjJ^lc*,$I1tf"p.?TZ[y$u3]a[gAZ$Il*0+n%rPRFe%`lNOwjQIIuh/^9_U+6yRhXvldxEXzuupsE+Y_y~eQl={vF?Ga.h}}|A6F"s9j@*B^G&pm)VvnuVsmI<puL0@p|#/N8n~ocxRk0e;MRhhXvh0{|I<|q*_$9om"I.S#p}6Fh|72@ME)s)Fa[f&PZ@F0[d?xC`:8`/ecb!q^z1L2OR,f{y!awQS!SIro4<M@Q9gY_68|Wv]F$xl%rlrwp.vq6z$lK:$zg,co7j$Rh=<jOnY=N3mHNm?@ex;=wp?B]e[^j8+Du~fy7[:vBTj6y$f6z4yh=23%zaZd9?s1}xgR:QY2EFk#}G.]8[s&fM=sk.)d2[az$a5@#IC=,Mf$_p+p#2;2)sAhe[||}4T/y@y_Ggbq#<py,4"<{C1|i<##{HwRwjWH.}[e[?Sc[##=_3]qM_;Tc/V_#cFRfi0vUR;qI3%R19P*T,pS08+H|**?JH62@thE285p*%%51jiz8Ns:!A&@U`S[R}[:,jl(8e{|aE5fg=<U%:)Aep9,i2smh=czg%s~2^eCp=iq*h}<Oohki&R%g+c{I$:5.Qs`!]@`T=9R#9{&kC5_uUZQP.X`Ot*HW2Ng/xS0gUJd:zN$hn9Mba_[HOt;3HJEhXOL,*)U}j/boJw*c{ImXXvKu(u[Uh%u0zCpXp`f0Ve*OTbOL30oQViO}ge+Uur#g,f*LMF^z4VZrHkWeW}lE#$FxU(Goj*^5g@/(4qq:?L2!1,]o<#0{4mId~2;sU1M4gWGMYBVJv$&xy@M9PSdV{o]X2MpL6<KXrENN~4ccR~{<t`xBx&sL;.Kt.k974g"fdPYx6*tMP1]a@@#1Sq]Q_l//)kXZn|M0W$6c6"SWT:^i+|KMp<535J~&6<7{4!H&lk(o`W!vHl<.d0kE6Gx:RG^riPT0o.]|q~ql%4K6$yxT{TKSD_|/Q;;h;~msTM/4IP6wNC7K%,[_Jhf3t:*KB]@by+_,:UOMN;;L]sO_RV`DnLY<:SDJ6G:FbLa*K]J/|mq*kI.)No)"0g@hJ#IG%R#.1Z3<mp[una=5h!W$a<5zx=>}Z~lyQYf@?5xi#ZNts|cXq>z[zL&Gsyiw^0i}6j|x`?mianBNToV4/+L*Xgc]JWxWNEEUECit/0<nNoV_q$aS>VqXF/(F`SG(TM?lq`?S,4hUdJm).ll._A<]miT?p&<hWX.OqiJ*1,~_`lVV;Q?[_i$D%Po`pq9P#DBR.@([^x@%keNHv)|C}tOV*&~aqHr1sXl;94`h!}%rU)Phzu%DP/o@$mN5X[`&>diM[d+iLmK`6j]4p/Zayu,JPe0#9)OrQqsZ|g={^1Mfh:kda<C:*KKiGfX]iFFR8;Ergux8}o]9Hz1w@nlgdr>)wWX+*5$zT6wVA)WA!9{6yP4In`;`fTpds:bI}wX7{63Q[FVB9!ygz3]@`DvL/a,oV6wVSMs+!%w)LvouVEsg]gAiO8w19Wb.DRwt{xdt^C{Q>L$$z#^"&IA8R8$/2!v}[R.(Ykq`wn~)njp,JBfX)!8|Rzh{ZHY*%6)0urGQ(1Tk0!aY9|eQMhrR)8n,G=<?e!xjbaW55**Y}`7FfLNWgq>$[xnjgKi?T5KHPZ&L>r)8l/UV9bvYbigKdVR?U_"|a/b+*R+~XnI:5WeVK;gsj7)39SzNhwG=&,e)cKx#AS4c)89dBSnJOYzPqEQ5k`vgv*HZ)5`gIyo+7dj+u_&>U@TU^pHFwUEJ*2M#!qaeYRvY/K|{UjXuj2#|S8"o@n%h*wK8&{Li.D.52y6NGqiM5.vz"qoU"eXn;M+1O1~opY=[7jyiw9(95=Y@%q$0g,OSI~t&F6x8Ev>l^eAsqfXe_7:oB8Ae*@O_,xL$3$^;nK|lis8v)%lVB#|EU23vDk{j*/2WPW@8lon$xv=9{[E3A=Z$g`>[F^y9tx^EW^Yj*kesUj+X.UKY(W4X8QG/+Y|wPVS;&sk{%qI#u|opihAE2X)m^!VU;[EeO3!8:hWZrO?qyVT/VZcKB::bY_YEUpx.}B"_bB)lGK%s$z%g+^!|$(Fey%=)msh,S#e`]ao6oT0[Md.zby#H8vI1t8#ncq9%%7J//8%xzMG_[xe[(~cibab)n)nQxPwwwgWIK&4h1=ql]zhTbfME0fuIi<+J2ODHHG*e@lHUZ|_z,:))dv_:;!!{~W&r9])eZNB^bh^}m!L[/BUZfYT=EzWOZ1uDlEHxX5~P/j@U~+m#~;CC/FRP}D1<Ritfji|os1x)e;!rx)W;ucA#M3tw&gTD:!|hnCm$dqz_93Fr``w#U2t;hnzvWN?rx)`lva^d;!MRw*D0hv|qgQh*QG8p8df8>%Q|EUNlT?`7e01L~u6|*Q:<DYsU6.!jOQi,vX8A?uaD3":NYkm`}BwUZI=613zQH*DLn{<mgb8vkbq*vGy]f*S;)eS0e[5R3V:eBCcnhakx?*g)m3r#bnA#gD`!|yWTZW(Ou~sseW,7px(K8O^rTVMpL`W8l[?|9b[@)psmGkq8"/}<Vdn3+VXqTo@uyvbd4?<67XBqtK6[npA!7$08Cj([zb?a*r$ol5a[H$,T*U`$CFOmMf(83=nF~7+iQW+d_O&MOb0Yulp;x;5i{W7>qLg1i3]a5I)Ns.4L.8{]4bog<zs[2=$77Ndp/T/^P3`q5_=dcb[3"7W`n5T.ki<z#egp7Uvi1l.KI~lTRr,,F2=.EePi.jihy%0T>NOOVpKDPZ&!(M5)u)c$;xlC|_|c2*GNMx"xZe}?Hg]_R1[ny.J)Lb13.?B8f[D^ew8,SoKN?Zvu!;iR0B@gnRk/w;MUiFC*]mJ8)$Dx&K3yOw&l4:gO~]8P#omZd0Q*duq%&x6@Wi4zaO>;Q!Kkhou&Bzx,[8L9I1q%7>6o^J367Z@VyEPPs^EyDl"pTnXU71oTPC/vJvS5g(baL)3cyOT(8fR7G$;[=NYn_0PLd^<s`f>a=.Up;$!vT8l?R,w)1=PH=wdR0l/TQ9H3C+v)hxe1wU@Vr;v5V3}zgaC``fsg*f|TPka}(r!Ylp@&RKPT9/LK8X/8jzUd8K>%5@U_z<6je*u69vSbJ/Ir;.)S{MsOmb#)5~@{h&1*h:R{f(1*Te<7OgK7UuiFhbq(_svjusl7:47gNRF}`;Gx7Z>7"d7OpP(L8l}X%XC^76hV`m@"Mrm|a3SbI8Fr3U@n5UBX9u}fRZ!98R>Xi|94Y<Ul,O9uwGF`b7Oan(w92PB3Nq)7&%(?kUW/AK!wBT_ziOTt#ayy|EjKjy9enQSMe"=dl@P%CX!l<7/P}w9vo2)FMswg/j(Ka`Bz`7,l:)xh5TF]/[E6mzb~sk{*Z]&QBe/QA.p(IL!r{T*]cr*{WQZqqbrdyQuT8G+)iiC8xffD8Ty!tYgFy,o`_`lY&7nd$7H&3TxGa!/yaHZi3cY0*R0vxo(K!*B](eN1Z0({AR]#}Z18U`w:I(<Z^sa;jBd]cYK0P@~MGonMLNY{}@sZesP>botOV59!DbrK#1Ra&F6yjA%W,)P@vEEfOF9:kL/CpIvWKc%U)k/Bm##Fc;6gvX1M29UUT2y2W5u|RU29`p7!7zxjbF@B_@_@NR62N0o`%I]dK`cQTWsfGR^EB]UvF1Q5u|"dDx.e;7h(ieR8yU]ZgVnt0}m98KB;gsq]gqjJ(li&Jb|R`^%lxl3Yw&Pc[pCq?#cr4QE*8_mF}!AH}@MLTd2>5:LP(5?eQj?~cxkk=u?S,F2<6_nyW1.10cPQm&s1*ik>OlKnM[