geogrid 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,4 +1,4 @@
1
- !function(A,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((A="undefined"!=typeof globalThis?globalThis:A||self).geogrid={})}(this,(function(A){"use strict";class e{constructor(){this._partials=new Float64Array(32),this._n=0}add(A){const e=this._partials;let r=0;for(let t=0;t<this._n&&t<32;t++){const n=e[t],i=A+n,o=Math.abs(A)<Math.abs(n)?A-(i-n):n-(i-A);o&&(e[r++]=o),A=i}return e[r]=A,this._n=r+1,this}valueOf(){const A=this._partials;let e,r,t,n=this._n,i=0;if(n>0){for(i=A[--n];n>0&&(e=i,r=A[--n],i=e+r,t=r-(i-e),!t););n>0&&(t<0&&A[n-1]<0||t>0&&A[n-1]>0)&&(r=2*t,e=i+r,r==e-i&&(i=e))}return i}}class r extends Map{constructor(A,e=n){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=A)for(const[e,r]of A)this.set(e,r)}get(A){return super.get(t(this,A))}has(A){return super.has(t(this,A))}set(A,e){return super.set(function({_intern:A,_key:e},r){const t=e(r);return A.has(t)?A.get(t):(A.set(t,r),r)}(this,A),e)}delete(A){return super.delete(function({_intern:A,_key:e},r){const t=e(r);A.has(t)&&(r=A.get(t),A.delete(t));return r}(this,A))}}function t({_intern:A,_key:e},r){const t=e(r);return A.has(t)?A.get(t):r}function n(A){return null!==A&&"object"==typeof A?A.valueOf():A}function i(A){return A}function o(A,e){let r;if(void 0===e)for(const e of A)null!=e&&(r<e||void 0===r&&e>=e)&&(r=e);else{let t=-1;for(let n of A)null!=(n=e(n,++t,A))&&(r<n||void 0===r&&n>=n)&&(r=n)}return r}function a(A,e,r){A=+A,e=+e,r=(n=arguments.length)<2?(e=A,A=0,1):n<3?1:+r;for(var t=-1,n=0|Math.max(0,Math.ceil((e-A)/r)),i=new Array(n);++t<n;)i[t]=A+t*r;return i}const f=Object.assign({},{range:a});const l=Object.assign({},{range:a,max:o});const s=Object.assign({},{range:a});const u=134217729;function c(A,e,r,t,n){let i,o,a,f,l=e[0],s=t[0],u=0,c=0;s>l==s>-l?(i=l,l=e[++u]):(i=s,s=t[++c]);let h=0;if(u<A&&c<r)for(s>l==s>-l?(o=l+i,a=i-(o-l),l=e[++u]):(o=s+i,a=i-(o-s),s=t[++c]),i=o,0!==a&&(n[h++]=a);u<A&&c<r;)s>l==s>-l?(o=i+l,f=o-i,a=i-(o-f)+(l-f),l=e[++u]):(o=i+s,f=o-i,a=i-(o-f)+(s-f),s=t[++c]),i=o,0!==a&&(n[h++]=a);for(;u<A;)o=i+l,f=o-i,a=i-(o-f)+(l-f),l=e[++u],i=o,0!==a&&(n[h++]=a);for(;c<r;)o=i+s,f=o-i,a=i-(o-f)+(s-f),s=t[++c],i=o,0!==a&&(n[h++]=a);return 0===i&&0!==h||(n[h++]=i),h}function h(A){return new Float64Array(A)}const g=h(4),d=h(8),w=h(12),b=h(16),B=h(4);function p(A,e,r,t,n,i){const o=(e-i)*(r-n),a=(A-n)*(t-i),f=o-a,l=Math.abs(o+a);return Math.abs(f)>=33306690738754716e-32*l?f:-function(A,e,r,t,n,i,o){let a,f,l,s,h,p,k,v,E,y,_,m,Q,D,M,C,x,I;const F=A-n,P=r-n,G=e-i,S=t-i;D=F*S,p=u*F,k=p-(p-F),v=F-k,p=u*S,E=p-(p-S),y=S-E,M=v*y-(D-k*E-v*E-k*y),C=G*P,p=u*G,k=p-(p-G),v=G-k,p=u*P,E=p-(p-P),y=P-E,x=v*y-(C-k*E-v*E-k*y),_=M-x,h=M-_,g[0]=M-(_+h)+(h-x),m=D+_,h=m-D,Q=D-(m-h)+(_-h),_=Q-C,h=Q-_,g[1]=Q-(_+h)+(h-C),I=m+_,h=I-m,g[2]=m-(I-h)+(_-h),g[3]=I;let U=function(A,e){let r=e[0];for(let t=1;t<A;t++)r+=e[t];return r}(4,g),T=22204460492503146e-32*o;if(U>=T||-U>=T)return U;if(h=A-F,a=A-(F+h)+(h-n),h=r-P,l=r-(P+h)+(h-n),h=e-G,f=e-(G+h)+(h-i),h=t-S,s=t-(S+h)+(h-i),0===a&&0===f&&0===l&&0===s)return U;if(T=11093356479670487e-47*o+33306690738754706e-32*Math.abs(U),U+=F*s+S*a-(G*l+P*f),U>=T||-U>=T)return U;D=a*S,p=u*a,k=p-(p-a),v=a-k,p=u*S,E=p-(p-S),y=S-E,M=v*y-(D-k*E-v*E-k*y),C=f*P,p=u*f,k=p-(p-f),v=f-k,p=u*P,E=p-(p-P),y=P-E,x=v*y-(C-k*E-v*E-k*y),_=M-x,h=M-_,B[0]=M-(_+h)+(h-x),m=D+_,h=m-D,Q=D-(m-h)+(_-h),_=Q-C,h=Q-_,B[1]=Q-(_+h)+(h-C),I=m+_,h=I-m,B[2]=m-(I-h)+(_-h),B[3]=I;const R=c(4,g,4,B,d);D=F*s,p=u*F,k=p-(p-F),v=F-k,p=u*s,E=p-(p-s),y=s-E,M=v*y-(D-k*E-v*E-k*y),C=G*l,p=u*G,k=p-(p-G),v=G-k,p=u*l,E=p-(p-l),y=l-E,x=v*y-(C-k*E-v*E-k*y),_=M-x,h=M-_,B[0]=M-(_+h)+(h-x),m=D+_,h=m-D,Q=D-(m-h)+(_-h),_=Q-C,h=Q-_,B[1]=Q-(_+h)+(h-C),I=m+_,h=I-m,B[2]=m-(I-h)+(_-h),B[3]=I;const L=c(R,d,4,B,w);D=a*s,p=u*a,k=p-(p-a),v=a-k,p=u*s,E=p-(p-s),y=s-E,M=v*y-(D-k*E-v*E-k*y),C=f*l,p=u*f,k=p-(p-f),v=f-k,p=u*l,E=p-(p-l),y=l-E,x=v*y-(C-k*E-v*E-k*y),_=M-x,h=M-_,B[0]=M-(_+h)+(h-x),m=D+_,h=m-D,Q=D-(m-h)+(_-h),_=Q-C,h=Q-_,B[1]=Q-(_+h)+(h-C),I=m+_,h=I-m,B[2]=m-(I-h)+(_-h),B[3]=I;const H=c(L,w,4,B,b);return b[H-1]}(A,e,r,t,n,i,l)}const k=Math.pow(2,-52),v=new Uint32Array(512);class E{static from(A,e=M,r=C){const t=A.length,n=new Float64Array(2*t);for(let i=0;i<t;i++){const t=A[i];n[2*i]=e(t),n[2*i+1]=r(t)}return new E(n)}constructor(A){const e=A.length>>1;if(e>0&&"number"!=typeof A[0])throw new Error("Expected coords to contain numbers.");this.coords=A;const r=Math.max(2*e-5,0);this._triangles=new Uint32Array(3*r),this._halfedges=new Int32Array(3*r),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:A,_hullPrev:e,_hullNext:r,_hullTri:t,_hullHash:n}=this,i=A.length>>1;let o=1/0,a=1/0,f=-1/0,l=-1/0;for(let e=0;e<i;e++){const r=A[2*e],t=A[2*e+1];r<o&&(o=r),t<a&&(a=t),r>f&&(f=r),t>l&&(l=t),this._ids[e]=e}const s=(o+f)/2,u=(a+l)/2;let c,h,g;for(let e=0,r=1/0;e<i;e++){const t=y(s,u,A[2*e],A[2*e+1]);t<r&&(c=e,r=t)}const d=A[2*c],w=A[2*c+1];for(let e=0,r=1/0;e<i;e++){if(e===c)continue;const t=y(d,w,A[2*e],A[2*e+1]);t<r&&t>0&&(h=e,r=t)}let b=A[2*h],B=A[2*h+1],v=1/0;for(let e=0;e<i;e++){if(e===c||e===h)continue;const r=m(d,w,b,B,A[2*e],A[2*e+1]);r<v&&(g=e,v=r)}let E=A[2*g],_=A[2*g+1];if(v===1/0){for(let e=0;e<i;e++)this._dists[e]=A[2*e]-A[0]||A[2*e+1]-A[1];Q(this._ids,this._dists,0,i-1);const e=new Uint32Array(i);let r=0;for(let A=0,t=-1/0;A<i;A++){const n=this._ids[A],i=this._dists[n];i>t&&(e[r++]=n,t=i)}return this.hull=e.subarray(0,r),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(p(d,w,b,B,E,_)<0){const A=h,e=b,r=B;h=g,b=E,B=_,g=A,E=e,_=r}const D=function(A,e,r,t,n,i){const o=r-A,a=t-e,f=n-A,l=i-e,s=o*o+a*a,u=f*f+l*l,c=.5/(o*l-a*f);return{x:A+(l*s-a*u)*c,y:e+(o*u-f*s)*c}}(d,w,b,B,E,_);this._cx=D.x,this._cy=D.y;for(let e=0;e<i;e++)this._dists[e]=y(A[2*e],A[2*e+1],D.x,D.y);Q(this._ids,this._dists,0,i-1),this._hullStart=c;let M=3;r[c]=e[g]=h,r[h]=e[c]=g,r[g]=e[h]=c,t[c]=0,t[h]=1,t[g]=2,n.fill(-1),n[this._hashKey(d,w)]=c,n[this._hashKey(b,B)]=h,n[this._hashKey(E,_)]=g,this.trianglesLen=0,this._addTriangle(c,h,g,-1,-1,-1);for(let i,o,a=0;a<this._ids.length;a++){const f=this._ids[a],l=A[2*f],s=A[2*f+1];if(a>0&&Math.abs(l-i)<=k&&Math.abs(s-o)<=k)continue;if(i=l,o=s,f===c||f===h||f===g)continue;let u=0;for(let A=0,e=this._hashKey(l,s);A<this._hashSize&&(u=n[(e+A)%this._hashSize],-1===u||u===r[u]);A++);u=e[u];let d,w=u;for(;d=r[w],p(l,s,A[2*w],A[2*w+1],A[2*d],A[2*d+1])>=0;)if(w=d,w===u){w=-1;break}if(-1===w)continue;let b=this._addTriangle(w,f,r[w],-1,-1,t[w]);t[f]=this._legalize(b+2),t[w]=b,M++;let B=r[w];for(;d=r[B],p(l,s,A[2*B],A[2*B+1],A[2*d],A[2*d+1])<0;)b=this._addTriangle(B,f,d,t[f],-1,t[B]),t[f]=this._legalize(b+2),r[B]=B,M--,B=d;if(w===u)for(;d=e[w],p(l,s,A[2*d],A[2*d+1],A[2*w],A[2*w+1])<0;)b=this._addTriangle(d,f,w,-1,t[w],t[d]),this._legalize(b+2),t[d]=b,r[w]=w,M--,w=d;this._hullStart=e[f]=w,r[w]=e[B]=f,r[f]=B,n[this._hashKey(l,s)]=f,n[this._hashKey(A[2*w],A[2*w+1])]=w}this.hull=new Uint32Array(M);for(let A=0,e=this._hullStart;A<M;A++)this.hull[A]=e,e=r[e];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(A,e){return Math.floor(function(A,e){const r=A/(Math.abs(A)+Math.abs(e));return(e>0?3-r:1+r)/4}(A-this._cx,e-this._cy)*this._hashSize)%this._hashSize}_legalize(A){const{_triangles:e,_halfedges:r,coords:t}=this;let n=0,i=0;for(;;){const o=r[A],a=A-A%3;if(i=a+(A+2)%3,-1===o){if(0===n)break;A=v[--n];continue}const f=o-o%3,l=a+(A+1)%3,s=f+(o+2)%3,u=e[i],c=e[A],h=e[l],g=e[s];if(_(t[2*u],t[2*u+1],t[2*c],t[2*c+1],t[2*h],t[2*h+1],t[2*g],t[2*g+1])){e[A]=g,e[o]=u;const t=r[s];if(-1===t){let e=this._hullStart;do{if(this._hullTri[e]===s){this._hullTri[e]=A;break}e=this._hullPrev[e]}while(e!==this._hullStart)}this._link(A,t),this._link(o,r[i]),this._link(i,s);const a=f+(o+1)%3;n<v.length&&(v[n++]=a)}else{if(0===n)break;A=v[--n]}}return i}_link(A,e){this._halfedges[A]=e,-1!==e&&(this._halfedges[e]=A)}_addTriangle(A,e,r,t,n,i){const o=this.trianglesLen;return this._triangles[o]=A,this._triangles[o+1]=e,this._triangles[o+2]=r,this._link(o,t),this._link(o+1,n),this._link(o+2,i),this.trianglesLen+=3,o}}function y(A,e,r,t){const n=A-r,i=e-t;return n*n+i*i}function _(A,e,r,t,n,i,o,a){const f=A-o,l=e-a,s=r-o,u=t-a,c=n-o,h=i-a,g=s*s+u*u,d=c*c+h*h;return f*(u*d-g*h)-l*(s*d-g*c)+(f*f+l*l)*(s*h-u*c)<0}function m(A,e,r,t,n,i){const o=r-A,a=t-e,f=n-A,l=i-e,s=o*o+a*a,u=f*f+l*l,c=.5/(o*l-a*f),h=(l*s-a*u)*c,g=(o*u-f*s)*c;return h*h+g*g}function Q(A,e,r,t){if(t-r<=20)for(let n=r+1;n<=t;n++){const t=A[n],i=e[t];let o=n-1;for(;o>=r&&e[A[o]]>i;)A[o+1]=A[o--];A[o+1]=t}else{let n=r+1,i=t;D(A,r+t>>1,n),e[A[r]]>e[A[t]]&&D(A,r,t),e[A[n]]>e[A[t]]&&D(A,n,t),e[A[r]]>e[A[n]]&&D(A,r,n);const o=A[n],a=e[o];for(;;){do{n++}while(e[A[n]]<a);do{i--}while(e[A[i]]>a);if(i<n)break;D(A,n,i)}A[r+1]=A[i],A[i]=o,t-n+1>=i-r?(Q(A,e,n,t),Q(A,e,r,i-1)):(Q(A,e,r,i-1),Q(A,e,n,t))}}function D(A,e,r){const t=A[e];A[e]=A[r],A[r]=t}function M(A){return A[0]}function C(A){return A[1]}const I=1e-6;class F{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(A,e){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(A,e){this._+=`L${this._x1=+A},${this._y1=+e}`}arc(A,e,r){const t=(A=+A)+(r=+r),n=e=+e;if(r<0)throw new Error("negative radius");null===this._x1?this._+=`M${t},${n}`:(Math.abs(this._x1-t)>I||Math.abs(this._y1-n)>I)&&(this._+="L"+t+","+n),r&&(this._+=`A${r},${r},0,1,1,${A-r},${e}A${r},${r},0,1,1,${this._x1=t},${this._y1=n}`)}rect(A,e,r,t){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+e}h${+r}v${+t}h${-r}Z`}value(){return this._||null}}class P{constructor(){this._=[]}moveTo(A,e){this._.push([A,e])}closePath(){this._.push(this._[0].slice())}lineTo(A,e){this._.push([A,e])}value(){return this._.length?this._:null}}class G{constructor(A,[e,r,t,n]=[0,0,960,500]){if(!((t=+t)>=(e=+e)&&(n=+n)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=A,this._circumcenters=new Float64Array(2*A.points.length),this.vectors=new Float64Array(2*A.points.length),this.xmax=t,this.xmin=e,this.ymax=n,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:A,hull:e,triangles:r},vectors:t}=this;let n,i;const o=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let t,a,f=0,l=0,s=r.length;f<s;f+=3,l+=2){const s=2*r[f],u=2*r[f+1],c=2*r[f+2],h=A[s],g=A[s+1],d=A[u],w=A[u+1],b=A[c],B=A[c+1],p=d-h,k=w-g,v=b-h,E=B-g,y=2*(p*E-k*v);if(Math.abs(y)<1e-9){if(void 0===n){n=i=0;for(const r of e)n+=A[2*r],i+=A[2*r+1];n/=e.length,i/=e.length}const r=1e9*Math.sign((n-h)*E-(i-g)*v);t=(h+b)/2-r*E,a=(g+B)/2+r*v}else{const A=1/y,e=p*p+k*k,r=v*v+E*E;t=h+(E*e-k*r)*A,a=g+(p*r-v*e)*A}o[l]=t,o[l+1]=a}let a,f,l,s=e[e.length-1],u=4*s,c=A[2*s],h=A[2*s+1];t.fill(0);for(let r=0;r<e.length;++r)s=e[r],a=u,f=c,l=h,u=4*s,c=A[2*s],h=A[2*s+1],t[a+2]=t[u]=l-h,t[a+3]=t[u+1]=c-f}render(A){const e=null==A?A=new F:void 0,{delaunay:{halfedges:r,inedges:t,hull:n},circumcenters:i,vectors:o}=this;if(n.length<=1)return null;for(let e=0,t=r.length;e<t;++e){const t=r[e];if(t<e)continue;const n=2*Math.floor(e/3),o=2*Math.floor(t/3),a=i[n],f=i[n+1],l=i[o],s=i[o+1];this._renderSegment(a,f,l,s,A)}let a,f=n[n.length-1];for(let e=0;e<n.length;++e){a=f,f=n[e];const r=2*Math.floor(t[f]/3),l=i[r],s=i[r+1],u=4*a,c=this._project(l,s,o[u+2],o[u+3]);c&&this._renderSegment(l,s,c[0],c[1],A)}return e&&e.value()}renderBounds(A){const e=null==A?A=new F:void 0;return A.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),e&&e.value()}renderCell(A,e){const r=null==e?e=new F:void 0,t=this._clip(A);if(null===t||!t.length)return;e.moveTo(t[0],t[1]);let n=t.length;for(;t[0]===t[n-2]&&t[1]===t[n-1]&&n>1;)n-=2;for(let A=2;A<n;A+=2)t[A]===t[A-2]&&t[A+1]===t[A-1]||e.lineTo(t[A],t[A+1]);return e.closePath(),r&&r.value()}*cellPolygons(){const{delaunay:{points:A}}=this;for(let e=0,r=A.length/2;e<r;++e){const A=this.cellPolygon(e);A&&(A.index=e,yield A)}}cellPolygon(A){const e=new P;return this.renderCell(A,e),e.value()}_renderSegment(A,e,r,t,n){let i;const o=this._regioncode(A,e),a=this._regioncode(r,t);0===o&&0===a?(n.moveTo(A,e),n.lineTo(r,t)):(i=this._clipSegment(A,e,r,t,o,a))&&(n.moveTo(i[0],i[1]),n.lineTo(i[2],i[3]))}contains(A,e,r){return(e=+e)==e&&(r=+r)==r&&this.delaunay._step(A,e,r)===A}*neighbors(A){const e=this._clip(A);if(e)for(const r of this.delaunay.neighbors(A)){const A=this._clip(r);if(A)A:for(let t=0,n=e.length;t<n;t+=2)for(let i=0,o=A.length;i<o;i+=2)if(e[t]===A[i]&&e[t+1]===A[i+1]&&e[(t+2)%n]===A[(i+o-2)%o]&&e[(t+3)%n]===A[(i+o-1)%o]){yield r;break A}}}_cell(A){const{circumcenters:e,delaunay:{inedges:r,halfedges:t,triangles:n}}=this,i=r[A];if(-1===i)return null;const o=[];let a=i;do{const r=Math.floor(a/3);if(o.push(e[2*r],e[2*r+1]),a=a%3==2?a-2:a+1,n[a]!==A)break;a=t[a]}while(a!==i&&-1!==a);return o}_clip(A){if(0===A&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const e=this._cell(A);if(null===e)return null;const{vectors:r}=this,t=4*A;return this._simplify(r[t]||r[t+1]?this._clipInfinite(A,e,r[t],r[t+1],r[t+2],r[t+3]):this._clipFinite(A,e))}_clipFinite(A,e){const r=e.length;let t,n,i,o,a=null,f=e[r-2],l=e[r-1],s=this._regioncode(f,l),u=0;for(let c=0;c<r;c+=2)if(t=f,n=l,f=e[c],l=e[c+1],i=s,s=this._regioncode(f,l),0===i&&0===s)o=u,u=0,a?a.push(f,l):a=[f,l];else{let e,r,c,h,g;if(0===i){if(null===(e=this._clipSegment(t,n,f,l,i,s)))continue;[r,c,h,g]=e}else{if(null===(e=this._clipSegment(f,l,t,n,s,i)))continue;[h,g,r,c]=e,o=u,u=this._edgecode(r,c),o&&u&&this._edge(A,o,u,a,a.length),a?a.push(r,c):a=[r,c]}o=u,u=this._edgecode(h,g),o&&u&&this._edge(A,o,u,a,a.length),a?a.push(h,g):a=[h,g]}if(a)o=u,u=this._edgecode(a[0],a[1]),o&&u&&this._edge(A,o,u,a,a.length);else if(this.contains(A,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return a}_clipSegment(A,e,r,t,n,i){const o=n<i;for(o&&([A,e,r,t,n,i]=[r,t,A,e,i,n]);;){if(0===n&&0===i)return o?[r,t,A,e]:[A,e,r,t];if(n&i)return null;let a,f,l=n||i;8&l?(a=A+(r-A)*(this.ymax-e)/(t-e),f=this.ymax):4&l?(a=A+(r-A)*(this.ymin-e)/(t-e),f=this.ymin):2&l?(f=e+(t-e)*(this.xmax-A)/(r-A),a=this.xmax):(f=e+(t-e)*(this.xmin-A)/(r-A),a=this.xmin),n?(A=a,e=f,n=this._regioncode(A,e)):(r=a,t=f,i=this._regioncode(r,t))}}_clipInfinite(A,e,r,t,n,i){let o,a=Array.from(e);if((o=this._project(a[0],a[1],r,t))&&a.unshift(o[0],o[1]),(o=this._project(a[a.length-2],a[a.length-1],n,i))&&a.push(o[0],o[1]),a=this._clipFinite(A,a))for(let e,r=0,t=a.length,n=this._edgecode(a[t-2],a[t-1]);r<t;r+=2)e=n,n=this._edgecode(a[r],a[r+1]),e&&n&&(r=this._edge(A,e,n,a,r),t=a.length);else this.contains(A,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(a=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return a}_edge(A,e,r,t,n){for(;e!==r;){let r,i;switch(e){case 5:e=4;continue;case 4:e=6,r=this.xmax,i=this.ymin;break;case 6:e=2;continue;case 2:e=10,r=this.xmax,i=this.ymax;break;case 10:e=8;continue;case 8:e=9,r=this.xmin,i=this.ymax;break;case 9:e=1;continue;case 1:e=5,r=this.xmin,i=this.ymin}t[n]===r&&t[n+1]===i||!this.contains(A,r,i)||(t.splice(n,0,r,i),n+=2)}return n}_project(A,e,r,t){let n,i,o,a=1/0;if(t<0){if(e<=this.ymin)return null;(n=(this.ymin-e)/t)<a&&(o=this.ymin,i=A+(a=n)*r)}else if(t>0){if(e>=this.ymax)return null;(n=(this.ymax-e)/t)<a&&(o=this.ymax,i=A+(a=n)*r)}if(r>0){if(A>=this.xmax)return null;(n=(this.xmax-A)/r)<a&&(i=this.xmax,o=e+(a=n)*t)}else if(r<0){if(A<=this.xmin)return null;(n=(this.xmin-A)/r)<a&&(i=this.xmin,o=e+(a=n)*t)}return[i,o]}_edgecode(A,e){return(A===this.xmin?1:A===this.xmax?2:0)|(e===this.ymin?4:e===this.ymax?8:0)}_regioncode(A,e){return(A<this.xmin?1:A>this.xmax?2:0)|(e<this.ymin?4:e>this.ymax?8:0)}_simplify(A){if(A&&A.length>4){for(let e=0;e<A.length;e+=2){const r=(e+2)%A.length,t=(e+4)%A.length;(A[e]===A[r]&&A[r]===A[t]||A[e+1]===A[r+1]&&A[r+1]===A[t+1])&&(A.splice(r,2),e-=2)}A.length||(A=null)}return A}}const S=2*Math.PI,U=Math.pow;function T(A){return A[0]}function R(A){return A[1]}function L(A,e,r){return[A+Math.sin(A+e)*r,e+Math.cos(A-e)*r]}class H{static from(A,e=T,r=R,t){return new H("length"in A?function(A,e,r,t){const n=A.length,i=new Float64Array(2*n);for(let o=0;o<n;++o){const n=A[o];i[2*o]=e.call(t,n,o,A),i[2*o+1]=r.call(t,n,o,A)}return i}(A,e,r,t):Float64Array.from(function*(A,e,r,t){let n=0;for(const i of A)yield e.call(t,i,n,A),yield r.call(t,i,n,A),++n}(A,e,r,t)))}constructor(A){this._delaunator=new E(A),this.inedges=new Int32Array(A.length/2),this._hullIndex=new Int32Array(A.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const A=this._delaunator,e=this.points;if(A.hull&&A.hull.length>2&&function(A){const{triangles:e,coords:r}=A;for(let A=0;A<e.length;A+=3){const t=2*e[A],n=2*e[A+1],i=2*e[A+2];if((r[i]-r[t])*(r[n+1]-r[t+1])-(r[n]-r[t])*(r[i+1]-r[t+1])>1e-10)return!1}return!0}(A)){this.collinear=Int32Array.from({length:e.length/2},((A,e)=>e)).sort(((A,r)=>e[2*A]-e[2*r]||e[2*A+1]-e[2*r+1]));const A=this.collinear[0],r=this.collinear[this.collinear.length-1],t=[e[2*A],e[2*A+1],e[2*r],e[2*r+1]],n=1e-8*Math.hypot(t[3]-t[1],t[2]-t[0]);for(let A=0,r=e.length/2;A<r;++A){const r=L(e[2*A],e[2*A+1],n);e[2*A]=r[0],e[2*A+1]=r[1]}this._delaunator=new E(e)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,t=this.hull=this._delaunator.hull,n=this.triangles=this._delaunator.triangles,i=this.inedges.fill(-1),o=this._hullIndex.fill(-1);for(let A=0,e=r.length;A<e;++A){const e=n[A%3==2?A-2:A+1];-1!==r[A]&&-1!==i[e]||(i[e]=A)}for(let A=0,e=t.length;A<e;++A)o[t[A]]=A;t.length<=2&&t.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=t[0],i[t[0]]=1,2===t.length&&(i[t[1]]=0,this.triangles[1]=t[1],this.triangles[2]=t[1]))}voronoi(A){return new G(this,A)}*neighbors(A){const{inedges:e,hull:r,_hullIndex:t,halfedges:n,triangles:i,collinear:o}=this;if(o){const e=o.indexOf(A);return e>0&&(yield o[e-1]),void(e<o.length-1&&(yield o[e+1]))}const a=e[A];if(-1===a)return;let f=a,l=-1;do{if(yield l=i[f],f=f%3==2?f-2:f+1,i[f]!==A)return;if(f=n[f],-1===f){const e=r[(t[A]+1)%r.length];return void(e!==l&&(yield e))}}while(f!==a)}find(A,e,r=0){if((A=+A)!=A||(e=+e)!=e)return-1;const t=r;let n;for(;(n=this._step(r,A,e))>=0&&n!==r&&n!==t;)r=n;return n}_step(A,e,r){const{inedges:t,hull:n,_hullIndex:i,halfedges:o,triangles:a,points:f}=this;if(-1===t[A]||!f.length)return(A+1)%(f.length>>1);let l=A,s=U(e-f[2*A],2)+U(r-f[2*A+1],2);const u=t[A];let c=u;do{let t=a[c];const u=U(e-f[2*t],2)+U(r-f[2*t+1],2);if(u<s&&(s=u,l=t),c=c%3==2?c-2:c+1,a[c]!==A)break;if(c=o[c],-1===c){if(c=n[(i[A]+1)%n.length],c!==t&&U(e-f[2*c],2)+U(r-f[2*c+1],2)<s)return c;break}}while(c!==u);return l}render(A){const e=null==A?A=new F:void 0,{points:r,halfedges:t,triangles:n}=this;for(let e=0,i=t.length;e<i;++e){const i=t[e];if(i<e)continue;const o=2*n[e],a=2*n[i];A.moveTo(r[o],r[o+1]),A.lineTo(r[a],r[a+1])}return this.renderHull(A),e&&e.value()}renderPoints(A,e){void 0!==e||A&&"function"==typeof A.moveTo||(e=A,A=null),e=null==e?2:+e;const r=null==A?A=new F:void 0,{points:t}=this;for(let r=0,n=t.length;r<n;r+=2){const n=t[r],i=t[r+1];A.moveTo(n+e,i),A.arc(n,i,e,0,S)}return r&&r.value()}renderHull(A){const e=null==A?A=new F:void 0,{hull:r,points:t}=this,n=2*r[0],i=r.length;A.moveTo(t[n],t[n+1]);for(let e=1;e<i;++e){const n=2*r[e];A.lineTo(t[n],t[n+1])}return A.closePath(),e&&e.value()}hullPolygon(){const A=new P;return this.renderHull(A),A.value()}renderTriangle(A,e){const r=null==e?e=new F:void 0,{points:t,triangles:n}=this,i=2*n[A*=3],o=2*n[A+1],a=2*n[A+2];return e.moveTo(t[i],t[i+1]),e.lineTo(t[o],t[o+1]),e.lineTo(t[a],t[a+1]),e.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:A}=this;for(let e=0,r=A.length/3;e<r;++e)yield this.trianglePolygon(e)}trianglePolygon(A){const e=new P;return this.renderTriangle(A,e),e.value()}}const z=Object.assign({},{Delaunay:H});const O=Object.assign({},{range:a});const V=Object.assign({},{range:a,max:o});var Y=function(A){var e,r=void 0!==(A=A||{})?A:{},t={};for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);var n,i,o,a,f;n="object"==typeof window,i="function"==typeof importScripts,a="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=a&&!n&&!i,f=!n&&!o&&!i;var l,s,u,c,h,g="";o?(g=__dirname+"/",l=function(A,e){var r;return(r=tA(A))||(c||(c=require("fs")),h||(h=require("path")),A=h.normalize(A),r=c.readFileSync(A)),e?r:r.toString()},u=function(A){var e=l(A,!0);return e.buffer||(e=new Uint8Array(e)),p(e.buffer),e},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),r.inspect=function(){return"[Emscripten Module object]"}):f?("undefined"!=typeof read&&(l=function(A){var e=tA(A);return e?eA(e):read(A)}),u=function(A){var e;return(e=tA(A))?e:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(p("object"==typeof(e=read(A,"binary"))),e)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(n||i)&&(i?g=self.location.href:"undefined"!=typeof document&&document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",l=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var r=tA(A);if(r)return eA(r);throw e}},i&&(u=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}catch(e){var r=tA(A);if(r)return r;throw e}}),s=function(A,e,r){var t=new XMLHttpRequest;t.open("GET",A,!0),t.responseType="arraybuffer",t.onload=function(){if(200==t.status||0==t.status&&t.response)e(t.response);else{var n=tA(A);n?e(n.buffer):r()}},t.onerror=r,t.send(null)});var d=r.print||console.log.bind(console),w=r.printErr||console.warn.bind(console);for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);t=null,r.arguments&&r.arguments,r.thisProgram&&r.thisProgram;var b=0;var B=!1;function p(A,e){A||bA("Assertion failed: "+e)}function k(A){var e=r["_"+A];return p(e,"Cannot call unknown function "+A+", make sure it is exported"),e}function v(A,e,r,t,n){var i={string:function(A){var e=0;if(null!=A&&0!==A){var r=1+(A.length<<2);(function(A,e,r){(function(A,e,r,t){if(!(t>0))return 0;for(var n=r,i=r+t-1,o=0;o<A.length;++o){var a=A.charCodeAt(o);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&A.charCodeAt(++o);if(a<=127){if(r>=i)break;e[r++]=a}else if(a<=2047){if(r+1>=i)break;e[r++]=192|a>>6,e[r++]=128|63&a}else if(a<=65535){if(r+2>=i)break;e[r++]=224|a>>12,e[r++]=128|a>>6&63,e[r++]=128|63&a}else{if(r+3>=i)break;e[r++]=240|a>>18,e[r++]=128|a>>12&63,e[r++]=128|a>>6&63,e[r++]=128|63&a}}e[r]=0})(A,_,e,r)})(A,e=fA(r),r)}return e},array:function(A){var e=fA(A.length);return function(A,e){y.set(A,e)}(A,e),e}};var o=k(A),a=[],f=0;if(t)for(var l=0;l<t.length;l++){var s=i[r[l]];s?(0===f&&(f=sA()),a[l]=s(t[l])):a[l]=t[l]}var u=o.apply(null,a);return u=function(A){return"string"===e?x(A):"boolean"===e?Boolean(A):A}(u),0!==f&&lA(f),u}var E,y,_,m,Q,D,M,C="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function x(A,e){return A?function(A,e,r){for(var t=e+r,n=e;A[n]&&!(n>=t);)++n;if(n-e>16&&A.subarray&&C)return C.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var a=63&A[e++];if(192!=(224&o)){var f=63&A[e++];if((o=224==(240&o)?(15&o)<<12|a<<6|f:(7&o)<<18|a<<12|f<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var l=o-65536;i+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|a)}else i+=String.fromCharCode(o)}return i}(_,A,e):""}function I(A,e){return A%e>0&&(A+=e-A%e),A}function F(A){E=A,r.HEAP8=y=new Int8Array(A),r.HEAP16=m=new Int16Array(A),r.HEAP32=Q=new Int32Array(A),r.HEAPU8=_=new Uint8Array(A),r.HEAPU16=new Uint16Array(A),r.HEAPU32=new Uint32Array(A),r.HEAPF32=D=new Float32Array(A),r.HEAPF64=M=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var P=r.TOTAL_MEMORY||33554432;function G(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var t=e.func;"number"==typeof t?void 0===e.arg?r.dynCall_v(t):r.dynCall_vi(t,e.arg):t(void 0===e.arg?null:e.arg)}else e()}}P=(E=r.buffer?r.buffer:new ArrayBuffer(P)).byteLength,F(E),Q[6032]=5267040;var S=[],U=[],T=[],R=[];var L=Math.abs,H=Math.ceil,z=Math.floor,O=Math.min,V=0,Y=null;r.preloadedImages={},r.preloadedAudios={};var N,Z,W=null,K="data:application/octet-stream;base64,";function j(A){return String.prototype.startsWith?A.startsWith(K):0===A.indexOf(K)}W="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAA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AAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAA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Zhu25b633D8c1YgmzowSQNM25BRKWARArGS08/lNxD+LFssHwmMRQLC5aNcxBgJABL9HT0WRF0CjCmJmOGEOQHsuaVzMP/s/TWJCaGGwBUCeu1PAPLzjP9nqN9DZOBNAKE4JcydbCkCGtbd1qjPzP8dgm9U8jhVAtPeKTkVwDkCeCLss5l37P401XMPLmBdAFd29VMVQDUBg0yA55h75Pz6odcYLCRdApBM4rBrkAkDyAVWgQxbRP4XDMnK20hFAymLlF7EmzD8GUgo9XBHlP3lbK7T9COc/k+OhPthhy7+YGEpnrOvCPzBFhLs15u4/epbqB6H4uz9IuuLF5svev6lzLKY31es/CaQ0envF5z8ZY0xlUADXv7zaz7HYEuI/CfbK1sn16T8uAQfWwxLWPzKn/YuFN94/5KdbC1AFu793fyCSnlfvPzK2y4doAMY/NRg5t1/X6b/shq4QJaHDP5yNIAKPOeI/vpn7BSE30r/X4YQrO6nrv78Ziv/Thto/DqJ1Y6+y5z9l51NaxFrlv8QlA65HOLS/86dxiEc96z+Hj0+LFjneP6LzBZ8LTc2/DaJ1Y6+y579l51NaxFrlP8QlA65HOLQ/8qdxiEc967+Jj0+LFjnev6LzBZ8LTc0/1qdbC1AFuz93fyCSnlfvvzK2y4doAMa/NRg5t1/X6T/vhq4QJaHDv5yNIAKPOeK/wJn7BSE30j/W4YQrO6nrP78Ziv/Thtq/CaQ0envF578XY0xlUADXP7zaz7HYEuK/CvbK1sn16b8rAQfWwxLWvzKn/YuFN96/zWLlF7EmzL8GUgo9XBHlv3lbK7T9COe/kOOhPthhyz+cGEpnrOvCvzBFhLs15u6/c5bqB6H4u79IuuLF5sveP6lzLKY31eu/AQAAAP////8HAAAA/////zEAAAD/////VwEAAP////9hCQAA/////6dBAAD/////kcsBAP/////3kAwA/////8H2VwAAAAAAAAAAAAAAAAACAAAA/////w4AAAD/////YgAAAP////+uAgAA/////8ISAAD/////ToMAAP////8ilwMA/////+4hGQD/////gu2vAAAAAAAAAAAAAAAAAAAAAAACAAAA//////////8BAAAAAwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////AgAAAP//////////AQAAAAAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD/////////////////////AQAAAP///////////////wIAAAD///////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP///////////////////////////////wIAAAD///////////////8BAAAA/////////////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAABAAAA//////////8CAAAA//////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAAAQAAAP//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAAAAAAAAIAAAADAAAAEwAAAAAAAAACAAAAAgAAAAMAAAAPAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACAAAAAAAAAAIAAAABAAAAEwAAAAIAAAACAAAAAAAAAAUAAAAKAAAAAAAAAAIAAAACAAAAAwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAIAAAAAAAAAAgAAAAEAAAAPAAAAAgAAAAIAAAAAAAAABQAAAAsAAAAAAAAAAgAAAAIAAAADAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAgAAAAAAAAACAAAAAQAAABAAAAACAAAAAgAAAAAAAAAFAAAADAAAAAAAAAACAAAAAgAAAAMAAAASAAAAAAAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAIAAAABAAAAEQAAAAIAAAACAAAAAAAAAAUAAAANAAAAAAAAAAIAAAACAAAAAwAAABMAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAIAAAAAAAAAAgAAAAEAAAASAAAAAgAAAAIAAAAAAAAABQAAAA4AAAAAAAAAAgAAAAIAAAADAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAOgehWlKfUEEz1zLi+JsiQa2og3wcMfVAWCbHorc0yEDi+Yn/Y6mbQJ11/mfsnG9At6bnG4UQQkBvMCQWKqUUQJVmwwswmOc/3hVgVBL3uj//qqOEOdGOPw/WDN4gnGE/H3ANkCUgND+AA8btKgAHPwTXBqJVSdo+XfRQAqsKrj4fc+zLYbSPQklEmCZHv2FCUP+uDso1NEKYtPhwphUHQptxnyFXYdpB7CddZAMmrkGAt1AxSTqBQUibBVdTsFNBSuX3MV+AJkFocv82SLf5QAqmgj7AY81A23VDSEnLoEDGEJVSeDFzQDYrqvBk70VA8U157pcRGUBWfEF+ZKbsP7KBdLHZTpFAqKYk69AqekDbeGY41MdjQD8AZzHK501A1vcrrjubNkD5LnquvBYhQCbiRRD71QlAqt72EbOH8z8Eu+jL1YbdP4uaox/xUcY/abedg1XfsD+BsUdzJ4KZP5wE9YFySIM/rW1kAKMpbT+rZFthVRhWPy4PKlXIs0A/qMZLlwDnMEHByqEF0I0ZQQYSFD8lUQNBPpY+dFs07UAH8BZImBPWQN9RY0I0sMBA2T7kLfc6qUByFYvfhBKTQMq+0Mis1XxA0XQbeQXMZUBJJ5aEGXpQQP7/SY0a6ThAaMD92b/UIkAs8s8yqXoMQNIegOvCk/U/aOi7NZJP4D8AAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA/////wAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAP////8AAAAABQAAAAAAAAAAAAAAAAAAAAAAAAD/////BQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAEAAQAAAQEAAAAAAAEAAAABAAAAAQABAAAAAAAAAAAAAAAAAAAAAAcAAAAHAAAAAQAAAAIAAAAEAAAAAwAAAAAAAAAAAAAABwAAAAMAAAABAAAAAgAAAAUAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAGAAAAAgAAAAMAAAAFAAAABAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAwAAAAEAAAAFAAAABAAAAAAAAAAAAAAABwAAAAUAAAADAAAABAAAAAEAAAAAAAAAAgAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAGFsZ29zLmMAaDNOZWlnaGJvclJvdGF0aW9ucwBjb29yZGlqay5jAF91cEFwN0NoZWNrZWQAX3VwQXA3ckNoZWNrZWQAZGlyZWN0ZWRFZGdlLmMAZGlyZWN0ZWRFZGdlVG9Cb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0NlbGxCb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbY2VudGVySUpLLmZhY2VdW2ZhY2UyXSA9PSBLSQBfZmFjZUlqa1RvQ2VsbEJvdW5kYXJ5AGgzSW5kZXguYwBjb21wYWN0Q2VsbHMAbGF0TG5nVG9DZWxsAGNlbGxUb0NoaWxkUG9zAHZhbGlkYXRlQ2hpbGRQb3MAbGF0TG5nLmMAY2VsbEFyZWFSYWRzMgBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGNlbGxUb0xvY2FsSWprAGJhc2VDZWxsICE9IG9yaWdpbkJhc2VDZWxsACEob3JpZ2luT25QZW50ICYmIGluZGV4T25QZW50KQBiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvQ2VsbAAhX2lzQmFzZUNlbGxQZW50YWdvbihiYXNlQ2VsbCkAYmFzZUNlbGxSb3RhdGlvbnMgPj0gMABncmlkUGF0aENlbGxzADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";function J(A){return A}function X(A){return A.replace(/\b__Z[\w\d_]+/g,(function(A){return A===A?A:A+" ["+A+"]"}))}function q(){var A=new Error;if(!A.stack){try{throw new Error(0)}catch(e){A=e}if(!A.stack)return"(no stack trace available)"}return A.stack.toString()}function $(){return y.length}function AA(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(y),iA(e),F(e),1}catch(A){}}function eA(A){for(var e=[],r=0;r<A.length;r++){var t=A[r];t>255&&(t&=255),e.push(String.fromCharCode(t))}return e.join("")}var rA="function"==typeof atob?atob:function(A){var e,r,t,n,i,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="",l=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=a.indexOf(A.charAt(l++))<<2|(n=a.indexOf(A.charAt(l++)))>>4,r=(15&n)<<4|(i=a.indexOf(A.charAt(l++)))>>2,t=(3&i)<<6|(o=a.indexOf(A.charAt(l++))),f+=String.fromCharCode(e),64!==i&&(f+=String.fromCharCode(r)),64!==o&&(f+=String.fromCharCode(t))}while(l<A.length);return f};function tA(A){if(j(A))return function(A){if("boolean"==typeof o&&o){var e;try{e=Buffer.from(A,"base64")}catch(r){e=new Buffer(A,"base64")}return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var r=rA(A),t=new Uint8Array(r.length),n=0;n<r.length;++n)t[n]=r.charCodeAt(n);return t}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(K.length))}var nA=function(A,e,r){var t=new A.Int8Array(r),n=new A.Int32Array(r);new A.Uint8Array(r),new A.Float32Array(r);var i=new A.Float64Array(r),o=0|e.o,a=0|e.p,f=A.Math.floor,l=A.Math.abs,s=A.Math.sqrt,u=A.Math.pow,c=A.Math.cos,h=A.Math.sin,g=A.Math.tan,d=A.Math.acos,w=A.Math.asin,b=A.Math.atan,B=A.Math.atan2,p=A.Math.ceil,k=A.Math.imul,v=A.Math.min,E=A.Math.max,y=A.Math.clz32,_=e.b,m=e.c,Q=e.d,D=e.e,M=e.f,C=e.g,x=e.h,I=e.i,F=24160;function P(A,e,r,t){return 0|G(A|=0,e|=0,r|=0,t|=0,0)}function G(A,e,r,t,i){var o,a=0,f=0,l=0,s=0;if(o=F,F=F+16|0,f=o,!(0|S(A|=0,e|=0,r|=0,t|=0,i|=0)))return F=o,0|(t=0);do{if((0|r)>=0){if((0|r)>13780509){if(0|(a=0|ee(15,f)))break;f=0|n[(l=f)>>2],l=0|n[l+4>>2]}else s=0|Te(0|r,0|(a=((0|r)<0)<<31>>31),3,0),l=0|m(),a=0|Fe(0|r,0|a,1,0),a=0|Fe(0|(a=0|Te(0|s,0|l,0|a,0|m())),0|m(),1,0),l=0|m(),n[f>>2]=a,n[f+4>>2]=l,f=a;if(We(0|t,0,f<<3),0|i){We(0|i,0,f<<2),a=0|U(A,e,r,t,i,f,l,0);break}(a=0|Ie(f,4))?(s=0|U(A,e,r,t,a,f,l,0),xe(a),a=s):a=13}else a=2}while(0);return F=o,0|(s=a)}function S(A,e,r,t,i){A|=0,e|=0,r|=0,t|=0,i|=0;var o,a,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0;if(a=F,F=F+16|0,w=a+8|0,n[(d=o=a)>>2]=A,n[d+4>>2]=e,(0|r)<0)return F=a,0|(w=2);if(n[(f=t)>>2]=A,n[f+4>>2]=e,(f=!!(0|i))&&(n[i>>2]=0),0|TA(A,e))return F=a,0|(w=9);n[w>>2]=0;A:do{if((0|r)>=1)if(f)for(h=1,c=0,g=0,d=1,f=A;;){if(!(c|g)){if(0|(f=0|T(f,e,4,w,o)))break A;if(0|TA(f=0|n[(e=o)>>2],e=0|n[e+4>>2])){f=9;break A}}if(0|(f=0|T(f,e,0|n[22384+(g<<2)>>2],w,o)))break A;if(f=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=t+(h<<3)|0)>>2]=f,n[A+4>>2]=e,n[i+(h<<2)>>2]=d,l=(0|(A=c+1|0))==(0|d),u=6==(0|(s=g+1|0)),0|TA(f,e)){f=9;break A}if((0|(d=d+(u&l&1)|0))>(0|r)){f=0;break}h=h+1|0,c=l?0:A,g=l?u?0:s:g}else for(h=1,c=0,g=0,d=1,f=A;;){if(!(c|g)){if(0|(f=0|T(f,e,4,w,o)))break A;if(0|TA(f=0|n[(e=o)>>2],e=0|n[e+4>>2])){f=9;break A}}if(0|(f=0|T(f,e,0|n[22384+(g<<2)>>2],w,o)))break A;if(f=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=t+(h<<3)|0)>>2]=f,n[A+4>>2]=e,l=(0|(A=c+1|0))==(0|d),u=6==(0|(s=g+1|0)),0|TA(f,e)){f=9;break A}if((0|(d=d+(u&l&1)|0))>(0|r)){f=0;break}h=h+1|0,c=l?0:A,g=l?u?0:s:g}else f=0}while(0);return F=a,0|(w=f)}function U(A,e,r,t,i,o,a,f){r|=0,t|=0,i|=0,f|=0;var l,s,u,c=0,h=0,g=0,d=0,w=0,b=0,B=0;if(u=F,F=F+16|0,l=u+8|0,s=u,c=0|Le(0|(A|=0),0|(e|=0),0|(o|=0),0|(a|=0)),g=0|m(),!(!(0|(B=0|n[(b=d=t+(c<<3)|0)>>2]))&!(0|(b=0|n[b+4>>2]))|(h=(0|B)==(0|A)&(0|b)==(0|e))))do{c=0|Re(0|(c=0|Fe(0|c,0|g,1,0)),0|m(),0|o,0|a),g=0|m(),h=(0|(b=0|n[(B=d=t+(c<<3)|0)>>2]))==(0|A)&(0|(B=0|n[B+4>>2]))==(0|e)}while(!(!(0|b)&!(0|B)|h));if(c=i+(c<<2)|0,h&&(0|n[c>>2])<=(0|f))return F=u,0|(B=0);if(n[(B=d)>>2]=A,n[B+4>>2]=e,n[c>>2]=f,(0|f)>=(0|r))return F=u,0|(B=0);switch(h=f+1|0,n[l>>2]=0,0|(c=0|T(A,e,2,l,s))){case 9:w=9;break;case 0:(c=0|U(0|n[(c=s)>>2],0|n[c+4>>2],r,t,i,o,a,h))||(w=9)}A:do{if(9==(0|w)){switch(n[l>>2]=0,0|(c=0|T(A,e,3,l,s))){case 9:break;case 0:if(0|(c=0|U(0|n[(c=s)>>2],0|n[c+4>>2],r,t,i,o,a,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|T(A,e,1,l,s))){case 9:break;case 0:if(0|(c=0|U(0|n[(c=s)>>2],0|n[c+4>>2],r,t,i,o,a,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|T(A,e,5,l,s))){case 9:break;case 0:if(0|(c=0|U(0|n[(c=s)>>2],0|n[c+4>>2],r,t,i,o,a,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|T(A,e,4,l,s))){case 9:break;case 0:if(0|(c=0|U(0|n[(c=s)>>2],0|n[c+4>>2],r,t,i,o,a,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|T(A,e,6,l,s))){case 9:break;case 0:if(0|(c=0|U(0|n[(c=s)>>2],0|n[c+4>>2],r,t,i,o,a,h)))break A;break;default:break A}return F=u,0|(B=0)}}while(0);return F=u,0|(B=c)}function T(A,e,r,t,i){A|=0,e|=0,i|=0;var o,a,f=0,l=0,s=0,u=0,c=0,h=0,g=0;if((r|=0)>>>0>6)return 0|(i=1);if(c=(0|n[(t|=0)>>2])%6|0,n[t>>2]=c,(0|c)>0){f=0;do{r=0|gA(r),f=f+1|0}while((0|f)<(0|n[t>>2]))}if(c=0|ze(0|A,0|e,45),m(),(a=127&c)>>>0>121)return 0|(i=5);o=0|RA(A,e),f=0|ze(0|A,0|e,52),m(),f&=15;A:do{if(f){for(;;){if(s=0|ze(0|A,0|e,0|(l=3*(15-f|0)|0)),m(),7==(0|(s&=7))){e=5;break}if(g=!(0|VA(f)),f=f+-1|0,h=0|Oe(7,0,0|l),e&=~m(),A=0|Oe(0|n[(g?432:16)+(28*s|0)+(r<<2)>>2],0,0|l)|A&~h,e|=l=0|m(),!(r=0|n[(g?640:224)+(28*s|0)+(r<<2)>>2])){r=0;break A}if(!f){u=8;break A}}return 0|e}u=8}while(0);8==(0|u)&&(A|=0|Oe(0|(g=0|n[848+(28*a|0)+(r<<2)>>2]),0,45),e=m()|-1040385&e,r=0|n[4272+(28*a|0)+(r<<2)>>2],127&~g||(g=0|Oe(0|n[848+(28*a|0)+20>>2],0,45),e=m()|-1040385&e,r=0|n[4272+(28*a|0)+20>>2],A=0|HA(g|A,e),e=0|m(),n[t>>2]=1+(0|n[t>>2]))),s=0|ze(0|A,0|e,45),m(),s&=127;A:do{if(0|H(s)){e:do{if(1==(0|RA(A,e))){if((0|a)!=(0|s)){if(0|Y(s,0|n[7696+(28*a|0)>>2])){A=0|OA(A,e),l=1,e=0|m();break}Q(23313,22416,436,22424)}switch(0|o){case 3:A=0|HA(A,e),e=0|m(),n[t>>2]=1+(0|n[t>>2]),l=0;break e;case 5:A=0|OA(A,e),e=0|m(),n[t>>2]=5+(0|n[t>>2]),l=0;break e;case 0:return 0|(g=9);default:return 0|(g=1)}}else l=0}while(0);if((0|r)>0){f=0;do{A=0|LA(A,e),e=0|m(),f=f+1|0}while((0|f)!=(0|r))}if((0|a)!=(0|s)){if(!(0|z(s))){if(!!(0|l)|5!=(0|RA(A,e)))break;n[t>>2]=1+(0|n[t>>2]);break}switch(127&c){case 8:case 118:break A}3!=(0|RA(A,e))&&(n[t>>2]=1+(0|n[t>>2]))}}else if((0|r)>0){f=0;do{A=0|HA(A,e),e=0|m(),f=f+1|0}while((0|f)!=(0|r))}}while(0);return n[t>>2]=((0|n[t>>2])+r|0)%6|0,n[(g=i)>>2]=A,n[g+4>>2]=e,0|(g=0)}function R(A,e,r,t){r|=0,t|=0;var i,o,a,f=0,l=0;for(a=F,F=F+16|0,i=a,o=a+8|0,f=(f=!(0|TA(A|=0,e|=0)))?1:2;;){if(n[o>>2]=0,!(0|T(A,e,f,o,i))&((0|n[(l=i)>>2])==(0|r)?(0|n[l+4>>2])==(0|t):0)){A=4;break}if((f=f+1|0)>>>0>=7){f=7,A=4;break}}return 4==(0|A)?(F=a,0|f):0}function L(A,e,r,t,o,a,f){e|=0,r|=0,t|=0,o|=0,a|=0,f|=0;var l,s,u,c,h,g,d,w,b,B,p=0,k=0,v=0,E=0,y=0,_=0,Q=0,D=0,M=0,C=0,x=0,I=0,P=0,G=0,S=0,U=0,T=0,R=0,L=0;if(B=F,F=F+64|0,d=B+48|0,w=B+32|0,b=B+24|0,l=B+8|0,s=B,(0|(k=0|n[(A|=0)>>2]))<=0)return F=B,0|(S=0);for(u=A+4|0,c=d+8|0,h=w+8|0,g=l+8|0,p=0,P=0;;){I=(v=0|n[u>>2])+(P<<4)|0,n[d>>2]=n[I>>2],n[d+4>>2]=n[I+4>>2],n[d+8>>2]=n[I+8>>2],n[d+12>>2]=n[I+12>>2],(0|P)==(k+-1|0)?(n[w>>2]=n[v>>2],n[w+4>>2]=n[v+4>>2],n[w+8>>2]=n[v+8>>2],n[w+12>>2]=n[v+12>>2]):(I=v+(P+1<<4)|0,n[w>>2]=n[I>>2],n[w+4>>2]=n[I+4>>2],n[w+8>>2]=n[I+8>>2],n[w+12>>2]=n[I+12>>2]),k=0|J(d,w,t,b);A:do{if(k)v=0,p=k;else if(k=0|n[(v=b)>>2],(0|(v=0|n[v+4>>2]))>0|!(0|v)&k>>>0>0){x=0,I=0;e:for(;;){if(L=+i[d>>3],R=+((C=0|Pe(0|k,0|v,0|x,0|I))>>>0)+4294967296*+(0|m()),U=+(k>>>0)+4294967296*+(0|v),T=+(x>>>0)+4294967296*+(0|I),i[l>>3]=L*R/U+ +i[w>>3]*T/U,i[g>>3]=+i[c>>3]*R/U+ +i[h>>3]*T/U,0|(k=0|YA(l,t,s))){p=k;break}_=0|Le(0|(M=0|n[(C=s)>>2]),0|(C=0|n[C+4>>2]),0|e,0|r),E=0|m(),v=0|n[(y=k=f+(_<<3)|0)>>2],y=0|n[y+4>>2];r:do{if(!(0|v)&!(0|y))G=k,S=16;else for(Q=0,D=0;;){if((0|Q)>(0|r)|(0|Q)==(0|r)&D>>>0>e>>>0){p=1;break e}if((0|v)==(0|M)&(0|y)==(0|C))break r;if(_=0|Re(0|(k=0|Fe(0|_,0|E,1,0)),0|m(),0|e,0|r),E=0|m(),D=0|Fe(0|D,0|Q,1,0),Q=0|m(),!(0|(v=0|n[(y=k=f+(_<<3)|0)>>2]))&!(0|(y=0|n[y+4>>2]))){G=k,S=16;break}}}while(0);if(16!=(0|S)||(S=0,!(0|M)&!(0|C))||(n[(D=G)>>2]=M,n[D+4>>2]=C,D=a+(n[o>>2]<<3)|0,n[D>>2]=M,n[D+4>>2]=C,D=0|Fe(0|n[(D=o)>>2],0|n[D+4>>2],1,0),M=0|m(),n[(C=o)>>2]=D,n[C+4>>2]=M),x=0|Fe(0|x,0|I,1,0),I=0|m(),k=0|n[(v=b)>>2],!((0|(v=0|n[v+4>>2]))>(0|I)|(0|v)==(0|I)&k>>>0>x>>>0)){v=1;break A}}v=0}else v=1}while(0);if(P=P+1|0,!v){S=21;break}if((0|P)>=(0|(k=0|n[A>>2]))){p=0,S=21;break}}return 21==(0|S)?(F=B,0|p):0}function H(A){return(A|=0)>>>0>121?0|(A=0):0|(A=0|n[7696+(28*A|0)+16>>2])}function z(A){return 4==(0|(A|=0))|117==(0|A)}function O(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function V(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function Y(A,e){return e|=0,(0|n[7696+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|n[7696+(28*A|0)+24>>2])==(0|e))}function N(A,e){return 0|n[848+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function Z(A,e){return e|=0,(0|n[848+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|n[848+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[848+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[848+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[848+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[848+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[848+(28*A|0)+24>>2])==(0|e)?6:7)}function W(A){return+i[(A|=0)+16>>3]<+i[A+24>>3]|0}function K(A,e){A|=0;var r,t,n=0;return(n=+i[(e|=0)>>3])>=+i[A+8>>3]&&n<=+i[A>>3]?(r=+i[A+16>>3],n=+i[A+24>>3],e=(t=+i[e+8>>3])>=n,A=t<=r&1,r<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function j(A,e,r){A|=0,e|=0,r|=0;var t,a,s,u,c,h,g,d=0,w=0,b=0,B=0,k=0,E=0,y=0;h=F,F=F+288|0,c=h+264|0,B=h+96|0,w=(d=b=h)+96|0;do{n[d>>2]=0,d=d+4|0}while((0|d)<(0|w));return 0|(e=0|jA(e,b))?(F=h,0|(E=e)):(WA(b=0|n[(w=b)>>2],w=0|n[w+4>>2],c),KA(b,w,B),u=+Ae(c,B+8|0),i[c>>3]=+i[A>>3],i[(w=c+8|0)>>3]=+i[A+16>>3],i[B>>3]=+i[A+8>>3],i[(b=B+8|0)>>3]=+i[A+24>>3],a=+Ae(c,B),y=+i[w>>3]-+i[b>>3],s=+l(+y),g=+i[c>>3]-+i[B>>3],t=+l(+g),!(0==y|0==g)&&(y=+Ve(+s,+t),y=+p(+a*a/+Ye(+y/+Ye(+s,+t),3)/(u*(2.59807621135*u)*.8)),i[o>>3]=y,k=~~y>>>0,E=+l(y)>=1?y>0?~~+v(+f(y/4294967296),4294967295)>>>0:~~+p((y-+(~~y>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2])?(B=!(0|k)&!(0|E),n[(e=r)>>2]=B?1:k,n[e+4>>2]=B?0:E,e=0):e=1,F=h,0|(E=e))}function J(A,e,r,t){A|=0,e|=0,r|=0,t|=0;var a,s,u,c,h=0,g=0,d=0;c=F,F=F+288|0,s=c+264|0,u=c+96|0,a=(h=g=c)+96|0;do{n[h>>2]=0,h=h+4|0}while((0|h)<(0|a));return 0|(r=0|jA(r,g))?(F=c,0|(t=r)):(WA(h=0|n[(r=g)>>2],r=0|n[r+4>>2],s),KA(h,r,u),d=+Ae(s,u+8|0),d=+p(+ +Ae(A,e)/(2*d)),i[o>>3]=d,r=~~d>>>0,h=+l(d)>=1?d>0?~~+v(+f(d/4294967296),4294967295)>>>0:~~+p((d-+(~~d>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2]?(g=!(0|r)&!(0|h),n[t>>2]=g?1:r,n[t+4>>2]=g?0:h,F=c,0|(t=0)):(F=c,0|(t=1)))}function X(A,e,r,t){e|=0,r|=0,t|=0,n[(A|=0)>>2]=e,n[A+4>>2]=r,n[A+8>>2]=t}function q(A,e){A|=0;var r,t,o,a,f=0,s=0,u=0,c=0,h=0,g=0,d=0;n[(a=(e|=0)+8|0)>>2]=0,t=+i[A>>3],c=+l(+t),o=+i[A+8>>3],c+=.5*(h=+l(+o)/.8660254037844386),c-=+(0|(f=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=f,h<.5*(c+1)){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,n[e+4>>2]=A,d<=h&h<2*c){f=f+1|0,n[e>>2]=f;break}n[e>>2]=f;break}if(!(c<.6666666666666666)){if(f=f+1|0,n[e>>2]=f,h<.5*c){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=f;break}}else A=A+1|0,n[e+4>>2]=A;f=f+1|0,n[e>>2]=f}while(0);do{if(t<0){if(1&A){f=~~(+(0|f)-(2*(+((g=0|Pe(0|f,((0|f)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|m()))+1)),n[e>>2]=f;break}f=~~(+(0|f)-2*(+((g=0|Pe(0|f,((0|f)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|m()))),n[e>>2]=f;break}}while(0);g=e+4|0,o<0&&(f=f-((1|A<<1)/2|0)|0,n[e>>2]=f,A=0-A|0,n[g>>2]=A),s=A-f|0,(0|f)<0?(u=0-f|0,n[g>>2]=s,n[a>>2]=u,n[e>>2]=0,A=s,f=0):u=0,(0|A)<0&&(f=f-A|0,n[e>>2]=f,u=u-A|0,n[a>>2]=u,n[g>>2]=0,A=0),r=f-u|0,s=A-u|0,(0|u)<0&&(n[e>>2]=r,n[g>>2]=s,n[a>>2]=0,A=s,f=r,u=0),(0|(s=(0|u)<(0|(s=(0|A)<(0|f)?A:f))?u:s))<=0||(n[e>>2]=f-s,n[g>>2]=A-s,n[a>>2]=u-s)}function $(A){var e,r=0,t=0,i=0,o=0,a=0;r=0|n[(A|=0)>>2],t=0|n[(e=A+4|0)>>2],(0|r)<0&&(t=t-r|0,n[e>>2]=t,n[(a=A+8|0)>>2]=(0|n[a>>2])-r,n[A>>2]=0,r=0),(0|t)<0?(r=r-t|0,n[A>>2]=r,o=(0|n[(a=A+8|0)>>2])-t|0,n[a>>2]=o,n[e>>2]=0,t=0):(a=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(r=r-o|0,n[A>>2]=r,t=t-o|0,n[e>>2]=t,n[a>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|t)<(0|r)?t:r))?o:i))<=0||(n[A>>2]=r-i,n[e>>2]=t-i,n[a>>2]=o-i)}function AA(A,e){e|=0;var r,t;t=0|n[(A|=0)+8>>2],r=+((0|n[A+4>>2])-t|0),i[e>>3]=+((0|n[A>>2])-t|0)-.5*r,i[e+8>>3]=.8660254037844386*r}function eA(A,e,r){A|=0,e|=0,n[(r|=0)>>2]=(0|n[e>>2])+(0|n[A>>2]),n[r+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[r+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function rA(A,e,r){A|=0,e|=0,n[(r|=0)>>2]=(0|n[A>>2])-(0|n[e>>2]),n[r+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[r+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function tA(A,e){e|=0;var r,t=0;t=0|k(0|n[(A|=0)>>2],e),n[A>>2]=t,r=0|k(0|n[(t=A+4|0)>>2],e),n[t>>2]=r,e=0|k(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function nA(A){var e,r,t=0,i=0,o=0,a=0,f=0;f=(0|(r=0|n[(A|=0)>>2]))<0,A=(A=(i=(0|(a=((e=(0|(o=(0|n[A+4>>2])-(f?r:0)|0))<0)?0-o|0:0)+((0|n[A+8>>2])-(f?r:0))|0))<0)?0:a)-((o=(0|(i=(0|A)<(0|(i=(0|(t=(e?0:o)-(i?a:0)|0))<(0|(a=(f?0:r)-(e?o:0)-(i?a:0)|0))?t:a))?A:i))>0)?i:0)|0,t=t-(o?i:0)|0;A:do{switch(a-(o?i:0)|0){case 0:switch(0|t){case 0:return 0|(f=0|A?1==(0|A)?1:7:0);case 1:return 0|(f=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|t){case 0:return 0|(f=0|A?1==(0|A)?5:7:4);case 1:if(A)break A;return 0|(A=6);default:break A}}}while(0);return 0|(f=7)}function iA(A){var e,r=0,t=0,i=0,o=0,a=0,f=0;o=0|n[(e=(A|=0)+8|0)>>2],a=(0|n[A>>2])-o|0,o=(0|n[(f=A+4|0)>>2])-o|0;do{if(a>>>0>715827881|o>>>0>715827881){if(t=(0|a)>0){if((2147483647-a|0)<(0|a))return 0|(f=1);if((2147483647-(a<<1)|0)<(0|a))return 0|(f=1)}else{if((-2147483648-a|0)>(0|a))return 0|(f=1);if((-2147483648-(a<<1)|0)>(0|a))return 0|(f=1)}if(r=3*a|0,(0|o)>0){if((2147483647-o|0)<(0|o))return 0|(f=1)}else if((-2147483648-o|0)>(0|o))return 0|(f=1);if(i=o<<1,(0|a)>-1){if((-2147483648|r)>=(0|o))return 0|(f=1)}else if((-2147483648^r)<(0|o))return 0|(f=1);if(t){if(!((2147483647-a|0)<(0|i))){t=i;break}return 0|(r=1)}if(!((-2147483648-a|0)>(0|i))){t=i;break}return 0|(r=1)}t=o<<1,r=3*a|0}while(0);i=0|Me(+(r-o|0)/7),n[A>>2]=i,o=0|Me(+(t+a|0)/7),n[f>>2]=o,n[e>>2]=0,r=(t=(0|o)<(0|i))?i:o,t=t?o:i;do{if((0|t)<0){if((0|r)>0){if((-2147483648|r)<(0|t)&-2147483648!=(0|t)&(2147483647-r|0)>=(0|t))break;Q(23313,22444,355,22455)}if(-2147483648==(0|t)|(-2147483648-r|0)>(0|t)&&Q(23313,22444,355,22455),(0|r)>-1){if((-2147483648|r)<(0|t))break;Q(23313,22444,355,22455)}else{if((-2147483648^r)>=(0|t))break;Q(23313,22444,355,22455)}}}while(0);return r=o-i|0,(0|i)<0?(t=0-i|0,n[f>>2]=r,n[e>>2]=t,n[A>>2]=0,i=0):(r=o,t=0),(0|r)<0&&(i=i-r|0,n[A>>2]=i,t=t-r|0,n[e>>2]=t,n[f>>2]=0,r=0),a=i-t|0,o=r-t|0,(0|t)<0?(n[A>>2]=a,n[f>>2]=o,n[e>>2]=0,r=o,o=a,t=0):o=i,(0|(i=(0|t)<(0|(i=(0|r)<(0|o)?r:o))?t:i))<=0||(n[A>>2]=o-i,n[f>>2]=r-i,n[e>>2]=t-i),0|(f=0)}function oA(A){var e,r=0,t=0,i=0,o=0,a=0,f=0;o=0|n[(e=(A|=0)+8|0)>>2],a=(0|n[A>>2])-o|0,o=(0|n[(f=A+4|0)>>2])-o|0;do{if(a>>>0>715827881|o>>>0>715827881){if(t=(0|a)>0){if((2147483647-a|0)<(0|a))return 0|(f=1)}else if((-2147483648-a|0)>(0|a))return 0|(f=1);if(r=a<<1,(0|o)>0){if((2147483647-o|0)<(0|o))return 0|(f=1);if((2147483647-(o<<1)|0)<(0|o))return 0|(f=1)}else{if((-2147483648-o|0)>(0|o))return 0|(f=1);if((-2147483648-(o<<1)|0)>(0|o))return 0|(f=1)}if(i=3*o|0,t){if((2147483647-r|0)<(0|o))return 0|(f=1)}else if((-2147483648-r|0)>(0|o))return 0|(f=1);if((0|o)>-1){if((-2147483648|i)<(0|a)){t=i;break}return 0|(r=1)}if(!((-2147483648^i)<(0|a))){t=i;break}return 0|(r=1)}t=3*o|0,r=a<<1}while(0);i=0|Me(+(r+o|0)/7),n[A>>2]=i,o=0|Me(+(t-a|0)/7),n[f>>2]=o,n[e>>2]=0,r=(t=(0|o)<(0|i))?i:o,t=t?o:i;do{if((0|t)<0){if((0|r)>0){if((-2147483648|r)<(0|t)&-2147483648!=(0|t)&(2147483647-r|0)>=(0|t))break;Q(23313,22444,404,22469)}if(-2147483648==(0|t)|(-2147483648-r|0)>(0|t)&&Q(23313,22444,404,22469),(0|r)>-1){if((-2147483648|r)<(0|t))break;Q(23313,22444,404,22469)}else{if((-2147483648^r)>=(0|t))break;Q(23313,22444,404,22469)}}}while(0);return r=o-i|0,(0|i)<0?(t=0-i|0,n[f>>2]=r,n[e>>2]=t,n[A>>2]=0,i=0):(r=o,t=0),(0|r)<0&&(i=i-r|0,n[A>>2]=i,t=t-r|0,n[e>>2]=t,n[f>>2]=0,r=0),a=i-t|0,o=r-t|0,(0|t)<0?(n[A>>2]=a,n[f>>2]=o,n[e>>2]=0,r=o,o=a,t=0):o=i,(0|(i=(0|t)<(0|(i=(0|r)<(0|o)?r:o))?t:i))<=0||(n[A>>2]=o-i,n[f>>2]=r-i,n[e>>2]=t-i),0|(f=0)}function aA(A){var e,r,t=0,i=0,o=0,a=0,f=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|Me(+((3*(t=(0|n[A>>2])-i|0)|0)-(i=(0|n[(r=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,t=0|Me(+((i<<1)+t|0)/7),n[r>>2]=t,n[e>>2]=0,i=t-o|0,(0|o)<0?(f=0-o|0,n[r>>2]=i,n[e>>2]=f,n[A>>2]=0,t=i,o=0,i=f):i=0,(0|t)<0&&(o=o-t|0,n[A>>2]=o,i=i-t|0,n[e>>2]=i,n[r>>2]=0,t=0),f=o-i|0,a=t-i|0,(0|i)<0?(n[A>>2]=f,n[r>>2]=a,n[e>>2]=0,t=a,a=f,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|t)<(0|a)?t:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=t-o,n[e>>2]=i-o)}function fA(A){var e,r,t=0,i=0,o=0,a=0,f=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|Me(+(((t=(0|n[A>>2])-i|0)<<1)+(i=(0|n[(r=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,t=0|Me(+((3*i|0)-t|0)/7),n[r>>2]=t,n[e>>2]=0,i=t-o|0,(0|o)<0?(f=0-o|0,n[r>>2]=i,n[e>>2]=f,n[A>>2]=0,t=i,o=0,i=f):i=0,(0|t)<0&&(o=o-t|0,n[A>>2]=o,i=i-t|0,n[e>>2]=i,n[r>>2]=0,t=0),f=o-i|0,a=t-i|0,(0|i)<0?(n[A>>2]=f,n[r>>2]=a,n[e>>2]=0,t=a,a=f,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|t)<(0|a)?t:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=t-o,n[e>>2]=i-o)}function lA(A){var e,r,t,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],o=0|n[(r=A+4|0)>>2],a=0|n[(t=A+8|0)>>2],f=o+(3*i|0)|0,n[A>>2]=f,o=a+(3*o|0)|0,n[r>>2]=o,i=(3*a|0)+i|0,n[t>>2]=i,a=o-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=a,n[t>>2]=i,n[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=f,n[t>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=f-o,n[t>>2]=i-o)}function sA(A){var e,r,t,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=(3*(i=0|n[(r=A+4|0)>>2])|0)+f|0,f=(o=0|n[(t=A+8|0)>>2])+(3*f|0)|0,n[A>>2]=f,n[r>>2]=a,i=(3*o|0)+i|0,n[t>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=o,n[t>>2]=i,n[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,n[A>>2]=f,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=f-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=a,n[t>>2]=0,f=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|f)?a:f))?i:o))<=0||(n[A>>2]=f-o,n[r>>2]=a-o,n[t>>2]=i-o)}function uA(A,e){A|=0;var r,t,i,o=0,a=0,f=0;((e|=0)+-1|0)>>>0>=6||(f=(0|n[15440+(12*e|0)>>2])+(0|n[A>>2])|0,n[A>>2]=f,i=A+4|0,a=(0|n[15440+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[i>>2]=a,t=A+8|0,e=(0|n[15440+(12*e|0)+8>>2])+(0|n[t>>2])|0,n[t>>2]=e,o=a-f|0,(0|f)<0?(e=e-f|0,n[i>>2]=o,n[t>>2]=e,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,e=e-o|0,n[t>>2]=e,n[i>>2]=0,o=0),r=a-e|0,f=o-e|0,(0|e)<0?(n[A>>2]=r,n[i>>2]=f,n[t>>2]=0,a=r,e=0):f=o,(0|(o=(0|e)<(0|(o=(0|f)<(0|a)?f:a))?e:o))<=0||(n[A>>2]=a-o,n[i>>2]=f-o,n[t>>2]=e-o))}function cA(A){var e,r,t,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=(i=0|n[(r=A+4|0)>>2])+f|0,f=(o=0|n[(t=A+8|0)>>2])+f|0,n[A>>2]=f,n[r>>2]=a,i=o+i|0,n[t>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=o,n[t>>2]=i,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=f,n[t>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=f-o,n[t>>2]=i-o)}function hA(A){var e,r,t,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],a=0|n[(r=A+4|0)>>2],o=0|n[(t=A+8|0)>>2],f=a+i|0,n[A>>2]=f,a=o+a|0,n[r>>2]=a,i=o+i|0,n[t>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=o,n[t>>2]=i,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=f,n[t>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=f-o,n[t>>2]=i-o)}function gA(A){switch(0|(A|=0)){case 1:A=5;break;case 5:A=4;break;case 4:A=6;break;case 6:A=2;break;case 2:A=3;break;case 3:A=1}return 0|A}function dA(A){switch(0|(A|=0)){case 1:A=3;break;case 3:A=2;break;case 2:A=6;break;case 6:A=4;break;case 4:A=5;break;case 5:A=1}return 0|A}function wA(A){var e,r,t,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],o=0|n[(r=A+4|0)>>2],a=0|n[(t=A+8|0)>>2],f=o+(i<<1)|0,n[A>>2]=f,o=a+(o<<1)|0,n[r>>2]=o,i=(a<<1)+i|0,n[t>>2]=i,a=o-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=a,n[t>>2]=i,n[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=f,n[t>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=f-o,n[t>>2]=i-o)}function bA(A){var e,r,t,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=((i=0|n[(r=A+4|0)>>2])<<1)+f|0,f=(o=0|n[(t=A+8|0)>>2])+(f<<1)|0,n[A>>2]=f,n[r>>2]=a,i=(o<<1)+i|0,n[t>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=o,n[t>>2]=i,n[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,n[A>>2]=f,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=f-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=a,n[t>>2]=0,f=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|f)?a:f))?i:o))<=0||(n[A>>2]=f-o,n[r>>2]=a-o,n[t>>2]=i-o)}function BA(A,e){e|=0;var r,t,i,o=0,a=0,f=0;return i=(0|(t=(0|n[(A|=0)>>2])-(0|n[e>>2])|0))<0,r=(0|(a=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?t:0)|0))<0,e=(e=(A=(0|(f=(i?0-t|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+(r?0-a|0:0)|0))<0)?0:f)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(r?0:a)-(A?f:0)|0))<(0|(f=(i?0:t)-(r?a:0)-(A?f:0)|0))?o:f))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=f-(a?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function pA(A,e){e|=0;var r;r=0|n[(A|=0)+8>>2],n[e>>2]=(0|n[A>>2])-r,n[e+4>>2]=(0|n[A+4>>2])-r}function kA(A,e){e|=0;var r,t,i,o=0,a=0,f=0;a=0|n[(A|=0)>>2],n[e>>2]=a,f=0|n[A+4>>2],n[(t=e+4|0)>>2]=f,n[(i=e+8|0)>>2]=0,A=(o=(0|f)<(0|a))?a:f,o=o?f:a;do{if((0|o)<0){if((0|A)>0){if((-2147483648|A)<(0|o)&-2147483648!=(0|o)&(2147483647-A|0)>=(0|o))break;return 0|(A=1)}if(-2147483648==(0|o)|(-2147483648-A|0)>(0|o))return 0|(e=1);if((0|A)>-1){if((-2147483648|A)<(0|o))break;return 0|(A=1)}if(!((-2147483648^A)<(0|o)))break;return 0|(A=1)}}while(0);return A=f-a|0,(0|a)<0?(o=0-a|0,n[t>>2]=A,n[i>>2]=o,n[e>>2]=0,a=0):(A=f,o=0),(0|A)<0&&(a=a-A|0,n[e>>2]=a,o=o-A|0,n[i>>2]=o,n[t>>2]=0,A=0),r=a-o|0,f=A-o|0,(0|o)<0?(n[e>>2]=r,n[t>>2]=f,n[i>>2]=0,A=f,f=r,o=0):f=a,(0|(a=(0|o)<(0|(a=(0|A)<(0|f)?A:f))?o:a))<=0||(n[e>>2]=f-a,n[t>>2]=A-a,n[i>>2]=o-a),0|(e=0)}function vA(A){var e,r,t,i;r=(i=0|n[(e=(A|=0)+8|0)>>2])-(0|n[A>>2])|0,n[A>>2]=r,A=(0|n[(t=A+4|0)>>2])-i|0,n[t>>2]=A,n[e>>2]=0-(A+r)}function EA(A){var e,r,t=0,i=0,o=0,a=0,f=0;t=0-(i=0|n[(A|=0)>>2])|0,n[A>>2]=t,n[(e=A+8|0)>>2]=0,a=(o=0|n[(r=A+4|0)>>2])+i|0,(0|i)>0?(n[r>>2]=a,n[e>>2]=i,n[A>>2]=0,t=0,o=a):i=0,(0|o)<0?(f=t-o|0,n[A>>2]=f,i=i-o|0,n[e>>2]=i,n[r>>2]=0,a=f-i|0,t=0-i|0,(0|i)<0?(n[A>>2]=a,n[r>>2]=t,n[e>>2]=0,o=t,i=0):(o=0,a=f)):a=t,(0|(t=(0|i)<(0|(t=(0|o)<(0|a)?o:a))?i:t))<=0||(n[A>>2]=a-t,n[r>>2]=o-t,n[e>>2]=i-t)}function yA(A,e,r){r|=0;var t,i,o=0,a=0;return i=F,F=F+16|0,t=i,a=-2130706433&(e|=0)|134217728,!0&268435456==(2013265920&e)?(o=0|ze(0|(A|=0),0|e,56),m(),o=0|function(A,e,r){A|=0,e|=0,r|=0;var t=0,i=0,o=0;if(o=F,F=F+16|0,i=o,t=0|TA(A,e),(r+-1|0)>>>0>5)return F=o,0|(i=-1);if(t=!!(0|t),1==(0|r)&t)return F=o,0|(i=-1);do{if(!(0|pe(A,e,i))){if(t){t=(5+(0|n[21936+(r<<2)>>2])-(0|n[i>>2])|0)%5|0;break}t=(6+(0|n[21968+(r<<2)>>2])-(0|n[i>>2])|0)%6|0;break}t=-1}while(0);return i=t,F=o,0|i}(A,a,7&o),-1==(0|o)?(n[r>>2]=0,F=i,0|(a=6)):(0|ZA(A,a,t)&&Q(23313,22484,282,22499),e=0|ze(0|A,0|e,52),m(),e&=15,0|TA(A,a)?DA(t,e,o,2,r):IA(t,e,o,2,r),F=i,0|(a=0))):(F=i,0|(a=6))}function _A(A,e,r,t){e|=0,t|=0;var o,a=0,f=0,l=0,s=0;if(o=F,F=F+16|0,function(A,e,r){A|=0,e|=0,r|=0;var t=0,o=0,a=0;a=F,F=F+32|0,o=a,function(A,e){A|=0,e|=0;var r=0,t=0,n=0;r=+i[A>>3],t=+c(+r),r=+h(+r),i[e+16>>3]=r,r=+i[A+8>>3],n=t*+c(+r),i[e>>3]=n,r=t*+h(+r),i[e+8>>3]=r}(A,o),n[e>>2]=0,i[r>>3]=5,t=+Be(16400,o),t<+i[r>>3]&&(n[e>>2]=0,i[r>>3]=t);t=+Be(16424,o),t<+i[r>>3]&&(n[e>>2]=1,i[r>>3]=t);t=+Be(16448,o),t<+i[r>>3]&&(n[e>>2]=2,i[r>>3]=t);t=+Be(16472,o),t<+i[r>>3]&&(n[e>>2]=3,i[r>>3]=t);t=+Be(16496,o),t<+i[r>>3]&&(n[e>>2]=4,i[r>>3]=t);t=+Be(16520,o),t<+i[r>>3]&&(n[e>>2]=5,i[r>>3]=t);t=+Be(16544,o),t<+i[r>>3]&&(n[e>>2]=6,i[r>>3]=t);t=+Be(16568,o),t<+i[r>>3]&&(n[e>>2]=7,i[r>>3]=t);t=+Be(16592,o),t<+i[r>>3]&&(n[e>>2]=8,i[r>>3]=t);t=+Be(16616,o),t<+i[r>>3]&&(n[e>>2]=9,i[r>>3]=t);t=+Be(16640,o),t<+i[r>>3]&&(n[e>>2]=10,i[r>>3]=t);t=+Be(16664,o),t<+i[r>>3]&&(n[e>>2]=11,i[r>>3]=t);t=+Be(16688,o),t<+i[r>>3]&&(n[e>>2]=12,i[r>>3]=t);t=+Be(16712,o),t<+i[r>>3]&&(n[e>>2]=13,i[r>>3]=t);t=+Be(16736,o),t<+i[r>>3]&&(n[e>>2]=14,i[r>>3]=t);t=+Be(16760,o),t<+i[r>>3]&&(n[e>>2]=15,i[r>>3]=t);t=+Be(16784,o),t<+i[r>>3]&&(n[e>>2]=16,i[r>>3]=t);t=+Be(16808,o),t<+i[r>>3]&&(n[e>>2]=17,i[r>>3]=t);t=+Be(16832,o),t<+i[r>>3]&&(n[e>>2]=18,i[r>>3]=t);if(t=+Be(16856,o),!(t<+i[r>>3]))return void(F=a);n[e>>2]=19,i[r>>3]=t,F=a}(A|=0,r|=0,s=o),(f=+d(+(1-.5*+i[s>>3])))<1e-16)return n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,n[t+12>>2]=0,void(F=o);if(s=0|n[r>>2],a=+qA((a=+i[15920+(24*s|0)>>3])-+qA(+function(A,e){A|=0,e|=0;var r=0,t=0,n=0,o=0,a=0;return o=+i[e>>3],t=+c(+o),n=+i[e+8>>3]-+i[A+8>>3],a=t*+h(+n),r=+i[A>>3],+ +B(+a,+(+h(+o)*+c(+r)-+c(+n)*(t*+h(+r))))}(15600+(s<<4)|0,A))),l=0|VA(e)?+qA(a+-.3334731722518321):a,a=+g(+f)/.381966011250105,(0|e)>0){A=0;do{a*=2.6457513110645907,A=A+1|0}while((0|A)!=(0|e))}f=+c(+l)*a,i[t>>3]=f,l=+h(+l)*a,i[t+8>>3]=l,F=o}function mA(A,e,r,t,o){e|=0,r|=0,t|=0,o|=0;var a=0,f=0;if(a=+function(A){A|=0;var e=0,r=0;return r=+i[A>>3],e=+i[A+8>>3],+ +s(+(r*r+e*e))}(A|=0),a<1e-16)return e=15600+(e<<4)|0,n[o>>2]=n[e>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(f=+B(+ +i[A+8>>3],+ +i[A>>3]),(0|r)>0){A=0;do{a/=2.6457513110645907,A=A+1|0}while((0|A)!=(0|r))}t?(a/=3,r=!(0|VA(r)),a=+b(.381966011250105*(r?a:a/2.6457513110645907))):(a=+b(.381966011250105*a),0|VA(r)&&(f=+qA(f+.3334731722518321))),function(A,e,r,t){A|=0,e=+e,r=+r,t|=0;var o=0,a=0,f=0,s=0;if(r<1e-16)return n[t>>2]=n[A>>2],n[t+4>>2]=n[A+4>>2],n[t+8>>2]=n[A+8>>2],void(n[t+12>>2]=n[A+12>>2]);a=e<0?e+6.283185307179586:e,a=e>=6.283185307179586?a+-6.283185307179586:a;do{if(!(a<1e-16)){if(o=+l(+(a+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=r,i[t>>3]=e,o=t;break}if(f=+c(+r),r=+h(+r),e=f*+h(+e)+ +c(+a)*(r*+c(+e)),e=+w(+((e=e>1?1:e)<-1?-1:e)),i[t>>3]=e,+l(+(e+-1.5707963267948966))<1e-16)return i[t>>3]=1.5707963267948966,void(i[t+8>>3]=0);if(+l(+(e+1.5707963267948966))<1e-16)return i[t>>3]=-1.5707963267948966,void(i[t+8>>3]=0);if(s=+c(+e),a=r*+h(+a)/s,r=+i[A>>3],e=(f-+h(+e)*+h(+r))/+c(+r)/s,f=a>1?1:a,e=e>1?1:e,(e=+i[A+8>>3]+ +B(+(f<-1?-1:f),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[t+8>>3]=e)}e=+i[A>>3]+r,i[t>>3]=e,o=t}while(0);if(+l(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[t+8>>3]=0);if(+l(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[t+8>>3]=0);if(e=+i[A+8>>3],e>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[t+8>>3]=e}(15600+(e<<4)|0,+qA(+i[15920+(24*e|0)>>3]-f),a,o)}function QA(A,e,r){e|=0,r|=0;var t,i;t=F,F=F+16|0,AA((A|=0)+4|0,i=t),mA(i,0|n[A>>2],e,0,r),F=t}function DA(A,e,r,t,o){A|=0,e|=0,r|=0,t|=0,o|=0;var a,f,l,s,u,c,h,g,d,w,b,B,p,k,v,E,y,_,m,D,M,C,x=0,I=0,P=0,G=0,S=0,U=0;if(C=F,F=F+272|0,G=C+240|0,m=C,D=C+224|0,M=C+208|0,b=C+176|0,B=C+160|0,p=C+192|0,k=C+144|0,v=C+128|0,E=C+112|0,y=C+96|0,_=C+80|0,n[(x=C+256|0)>>2]=e,n[G>>2]=n[A>>2],n[G+4>>2]=n[A+4>>2],n[G+8>>2]=n[A+8>>2],n[G+12>>2]=n[A+12>>2],MA(G,x,m),n[o>>2]=0,(0|(G=t+r+(5==(0|t)&1)|0))<=(0|r))F=C;else{f=D+4|0,l=b+4|0,s=r+5|0,u=16880+((a=0|n[x>>2])<<2)|0,c=16960+(a<<2)|0,h=v+8|0,g=E+8|0,d=y+8|0,w=M+4|0,P=r;A:for(;;){I=m+((0|P)%5<<4)|0,n[M>>2]=n[I>>2],n[M+4>>2]=n[I+4>>2],n[M+8>>2]=n[I+8>>2],n[M+12>>2]=n[I+12>>2];do{}while(2==(0|CA(M,a,0,1)));if((0|P)>(0|r)&!!(0|VA(e))){if(n[b>>2]=n[M>>2],n[b+4>>2]=n[M+4>>2],n[b+8>>2]=n[M+8>>2],n[b+12>>2]=n[M+12>>2],AA(f,B),t=0|n[b>>2],x=0|n[17040+(80*t|0)+(n[D>>2]<<2)>>2],n[b>>2]=n[18640+(80*t|0)+(20*x|0)>>2],(0|(I=0|n[18640+(80*t|0)+(20*x|0)+16>>2]))>0){A=0;do{cA(l),A=A+1|0}while((0|A)<(0|I))}switch(I=18640+(80*t|0)+(20*x|0)+4|0,n[p>>2]=n[I>>2],n[p+4>>2]=n[I+4>>2],n[p+8>>2]=n[I+8>>2],tA(p,3*(0|n[u>>2])|0),eA(l,p,l),$(l),AA(l,k),S=+(0|n[c>>2]),i[v>>3]=3*S,i[h>>3]=0,U=-1.5*S,i[E>>3]=U,i[g>>3]=2.598076211353316*S,i[y>>3]=U,i[d>>3]=-2.598076211353316*S,0|n[17040+(80*(0|n[b>>2])|0)+(n[M>>2]<<2)>>2]){case 1:A=E,t=v;break;case 3:A=y,t=E;break;case 2:A=v,t=y;break;default:A=12;break A}we(B,k,t,A,_),mA(_,0|n[b>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|P)<(0|s)&&(AA(w,b),mA(b,0|n[M>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[D>>2]=n[M>>2],n[D+4>>2]=n[M+4>>2],n[D+8>>2]=n[M+8>>2],n[D+12>>2]=n[M+12>>2],(0|(P=P+1|0))>=(0|G)){A=3;break}}3!=(0|A)?12==(0|A)&&Q(22522,22569,571,22579):F=C}}function MA(A,e,r){A|=0,e|=0,r|=0;var t,i=0,o=0,a=0,f=0,l=0;t=F,F=F+128|0,o=t,f=20240,l=(a=i=t+64|0)+60|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));f=20304,l=(a=o)+60|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));i=(l=!(0|VA(0|n[e>>2])))?i:o,wA(o=A+4|0),bA(o),0|VA(0|n[e>>2])&&(sA(o),n[e>>2]=1+(0|n[e>>2])),n[r>>2]=n[A>>2],eA(o,i,e=r+4|0),$(e),n[r+16>>2]=n[A>>2],eA(o,i+12|0,e=r+20|0),$(e),n[r+32>>2]=n[A>>2],eA(o,i+24|0,e=r+36|0),$(e),n[r+48>>2]=n[A>>2],eA(o,i+36|0,e=r+52|0),$(e),n[r+64>>2]=n[A>>2],eA(o,i+48|0,r=r+68|0),$(r),F=t}function CA(A,e,r,t){r|=0,t|=0;var i,o,a,f,l,s,u=0,c=0,h=0,g=0,d=0;if(s=F,F=F+32|0,l=s+12|0,o=s,d=(A|=0)+4|0,g=0|n[16960+((e|=0)<<2)>>2],g=(f=!!(0|t))?3*g|0:g,u=0|n[d>>2],i=0|n[(a=A+8|0)>>2],f){if((0|(u=i+u+(t=0|n[(c=A+12|0)>>2])|0))==(0|g))return F=s,0|(d=1);h=c}else u=i+u+(t=0|n[(h=A+12|0)>>2])|0;if((0|u)<=(0|g))return F=s,0|(d=0);do{if((0|t)>0){if(t=0|n[A>>2],(0|i)>0){c=18640+(80*t|0)+60|0,t=A;break}t=18640+(80*t|0)+40|0,r?(X(l,g,0,0),rA(d,l,o),hA(o),eA(o,l,d),c=t,t=A):(c=t,t=A)}else c=18640+(80*(0|n[A>>2])|0)+20|0,t=A}while(0);if(n[t>>2]=n[c>>2],(0|n[(u=c+16|0)>>2])>0){t=0;do{cA(d),t=t+1|0}while((0|t)<(0|n[u>>2]))}return A=c+4|0,n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],e=0|n[16880+(e<<2)>>2],tA(l,f?3*e|0:e),eA(d,l,d),$(d),t=f&&((0|n[a>>2])+(0|n[d>>2])+(0|n[h>>2])|0)==(0|g)?1:2,F=s,0|(d=t)}function xA(A,e){A|=0,e|=0;var r=0;do{r=0|CA(A,e,0,1)}while(2==(0|r));return 0|r}function IA(A,e,r,t,o){A|=0,e|=0,r|=0,t|=0,o|=0;var a,f,l,s,u,c,h,g,d,w,b,B,p,k,v,E,y,_,m=0,D=0,M=0,C=0,x=0;if(_=F,F=F+240|0,k=_+208|0,v=_,E=_+192|0,y=_+176|0,d=_+160|0,w=_+144|0,b=_+128|0,B=_+112|0,p=_+96|0,n[(m=_+224|0)>>2]=e,n[k>>2]=n[A>>2],n[k+4>>2]=n[A+4>>2],n[k+8>>2]=n[A+8>>2],n[k+12>>2]=n[A+12>>2],FA(k,m,v),n[o>>2]=0,(0|(g=t+r+(6==(0|t)&1)|0))<=(0|r))F=_;else{f=r+6|0,l=16960+((a=0|n[m>>2])<<2)|0,s=w+8|0,u=b+8|0,c=B+8|0,h=E+4|0,D=0,M=r,t=-1;A:for(;;){if(A=v+((m=(0|M)%6|0)<<4)|0,n[E>>2]=n[A>>2],n[E+4>>2]=n[A+4>>2],n[E+8>>2]=n[A+8>>2],n[E+12>>2]=n[A+12>>2],A=D,D=0|CA(E,a,0,1),(0|M)>(0|r)&!!(0|VA(e))&&(1!=(0|A)&&(0|n[E>>2])!=(0|t))){switch(AA(v+((m+5|0)%6<<4)+4|0,y),AA(v+(m<<4)+4|0,d),C=+(0|n[l>>2]),i[w>>3]=3*C,i[s>>3]=0,x=-1.5*C,i[b>>3]=x,i[u>>3]=2.598076211353316*C,i[B>>3]=x,i[c>>3]=-2.598076211353316*C,m=0|n[k>>2],0|n[17040+(80*m|0)+(((0|t)==(0|m)?n[E>>2]:t)<<2)>>2]){case 1:A=b,t=w;break;case 3:A=B,t=b;break;case 2:A=w,t=B;break;default:A=8;break A}we(y,d,t,A,p),0|be(y,p)||0|be(d,p)||(mA(p,0|n[k>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|M)<(0|f)&&(AA(h,y),mA(y,0|n[E>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(M=M+1|0))>=(0|g)){A=3;break}t=0|n[E>>2]}3!=(0|A)?8==(0|A)&&Q(22606,22569,736,22651):F=_}}function FA(A,e,r){A|=0,e|=0,r|=0;var t,i=0,o=0,a=0,f=0,l=0;t=F,F=F+160|0,o=t,f=20368,l=(a=i=t+80|0)+72|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));f=20448,l=(a=o)+72|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));i=(l=!(0|VA(0|n[e>>2])))?i:o,wA(o=A+4|0),bA(o),0|VA(0|n[e>>2])&&(sA(o),n[e>>2]=1+(0|n[e>>2])),n[r>>2]=n[A>>2],eA(o,i,e=r+4|0),$(e),n[r+16>>2]=n[A>>2],eA(o,i+12|0,e=r+20|0),$(e),n[r+32>>2]=n[A>>2],eA(o,i+24|0,e=r+36|0),$(e),n[r+48>>2]=n[A>>2],eA(o,i+36|0,e=r+52|0),$(e),n[r+64>>2]=n[A>>2],eA(o,i+48|0,e=r+68|0),$(e),n[r+80>>2]=n[A>>2],eA(o,i+60|0,r=r+84|0),$(r),F=t}function PA(A,e){return e=0|ze(0|(A|=0),0|(e|=0),45),m(),127&e}function GA(A,e){var r=0,t=0,n=0,i=0,o=0,a=0;if(!(!0&134217728==(-16777216&(e|=0))))return 0|(e=0);if(o=0|ze(0|(A|=0),0|e,45),m(),(o&=127)>>>0>121)return 0|(e=0);r=0|ze(0|A,0|e,52),m(),r&=15;do{if(0|r){for(n=1,t=0;;){if(i=0|ze(0|A,0|e,3*(15-n|0)|0),m(),!!(0|(i&=7))&(1^t)){if(1==(0|i)&!!(0|H(o))){a=0,t=13;break}t=1}if(7==(0|i)){a=0,t=13;break}if(!(n>>>0<r>>>0)){t=9;break}n=n+1|0}if(9==(0|t)){if(15!=(0|r))break;return 0|(a=1)}if(13==(0|t))return 0|a}}while(0);for(;;){if(a=0|ze(0|A,0|e,3*(14-r|0)|0),m(),!(!0&!(7&~a))){a=0,t=13;break}if(!(r>>>0<14)){a=1,t=13;break}r=r+1|0}return 13==(0|t)?0|a:0}function SA(A,e,r,t){r|=0,t|=0;var i=0,o=0;if(o=0|ze(0|(A|=0),0|(e|=0),52),m(),r>>>0>15)return 0|(t=4);if((0|(o&=15))<(0|r))return 0|(t=12);if((0|o)==(0|r))return n[t>>2]=A,n[t+4>>2]=e,0|(t=0);if(i=0|Oe(0|r,0,52),i|=A,A=m()|-15728641&e,(0|o)>(0|r))do{e=0|Oe(7,0,3*(14-r|0)|0),r=r+1|0,i|=e,A=m()|A}while((0|r)<(0|o));return n[t>>2]=i,n[t+4>>2]=A,0|(t=0)}function UA(A,e,r,t){r|=0,t|=0;var i=0,o=0,a=0;if(o=0|ze(0|(A|=0),0|(e|=0),52),m(),!((0|r)<16&(0|(o&=15))<=(0|r)))return 0|(t=4);i=r-o|0,r=0|ze(0|A,0|e,45),m();A:do{if(0|H(127&r)){e:do{if(0|o){for(r=1;!((a=0|Oe(7,0,3*(15-r|0)|0))&A)&!(m()&e);){if(!(r>>>0<o>>>0))break e;r=r+1|0}r=0|ue(7,0,i,((0|i)<0)<<31>>31),i=0|m();break A}}while(0);r=0|Fe(0|(r=0|Te(0|(r=0|ue(7,0,i,((0|i)<0)<<31>>31)),0|m(),5,0)),0|m(),-5,-1),r=0|Fe(0|(r=0|Ue(0|r,0|m(),6,0)),0|m(),1,0),i=0|m()}else r=0|ue(7,0,i,((0|i)<0)<<31>>31),i=0|m()}while(0);return n[(a=t)>>2]=r,n[a+4>>2]=i,0|(a=0)}function TA(A,e){var r=0,t=0,n=0;if(n=0|ze(0|(A|=0),0|(e|=0),45),m(),!(0|H(127&n)))return 0|(n=0);n=0|ze(0|A,0|e,52),m(),n&=15;A:do{if(n)for(t=1;;){if(r=0|ze(0|A,0|e,3*(15-t|0)|0),m(),0|(r&=7))break A;if(!(t>>>0<n>>>0)){r=0;break}t=t+1|0}else r=0}while(0);return 0|(n=1&!(0|r))}function RA(A,e){var r=0,t=0,n=0;if(n=0|ze(0|(A|=0),0|(e|=0),52),m(),!(n&=15))return 0|(n=0);for(t=1;;){if(r=0|ze(0|A,0|e,3*(15-t|0)|0),m(),0|(r&=7)){t=5;break}if(!(t>>>0<n>>>0)){r=0,t=5;break}t=t+1|0}return 5==(0|t)?0|r:0}function LA(A,e){var r=0,t=0,n=0,i=0,o=0,a=0,f=0;if(f=0|ze(0|(A|=0),0|(e|=0),52),m(),!(f&=15))return f=A,_(0|(a=e)),0|f;for(a=1,r=0;;){t=0|Oe(7,0,0|(i=3*(15-a|0)|0)),n=0|m(),o=0|ze(0|A,0|e,0|i),m(),A=(i=0|Oe(0|gA(7&o),0,0|i))|A&~t,e=(o=0|m())|e&~n;A:do{if(!r)if(!(i&t)&!(o&n))r=0;else if(t=0|ze(0|A,0|e,52),m(),t&=15){r=1;e:for(;;){switch(o=0|ze(0|A,0|e,3*(15-r|0)|0),m(),7&o){case 1:break e;case 0:break;default:r=1;break A}if(!(r>>>0<t>>>0)){r=1;break A}r=r+1|0}for(r=1;;){if(n=0|ze(0|A,0|e,0|(o=3*(15-r|0)|0)),m(),i=0|Oe(7,0,0|o),e&=~m(),A=A&~i|(o=0|Oe(0|gA(7&n),0,0|o)),e|=m(),!(r>>>0<t>>>0)){r=1;break}r=r+1|0}}else r=1}while(0);if(!(a>>>0<f>>>0))break;a=a+1|0}return _(0|e),0|A}function HA(A,e){var r=0,t=0,n=0,i=0,o=0;if(t=0|ze(0|(A|=0),0|(e|=0),52),m(),!(t&=15))return t=A,_(0|(r=e)),0|t;for(r=1;o=0|ze(0|A,0|e,0|(i=3*(15-r|0)|0)),m(),n=0|Oe(7,0,0|i),e&=~m(),A=(i=0|Oe(0|gA(7&o),0,0|i))|A&~n,e=m()|e,r>>>0<t>>>0;)r=r+1|0;return _(0|e),0|A}function zA(A,e){var r=0,t=0,n=0,i=0,o=0,a=0,f=0;if(f=0|ze(0|(A|=0),0|(e|=0),52),m(),!(f&=15))return f=A,_(0|(a=e)),0|f;for(a=1,r=0;;){t=0|Oe(7,0,0|(i=3*(15-a|0)|0)),n=0|m(),o=0|ze(0|A,0|e,0|i),m(),A=(i=0|Oe(0|dA(7&o),0,0|i))|A&~t,e=(o=0|m())|e&~n;A:do{if(!r)if(!(i&t)&!(o&n))r=0;else if(t=0|ze(0|A,0|e,52),m(),t&=15){r=1;e:for(;;){switch(o=0|ze(0|A,0|e,3*(15-r|0)|0),m(),7&o){case 1:break e;case 0:break;default:r=1;break A}if(!(r>>>0<t>>>0)){r=1;break A}r=r+1|0}for(r=1;;){if(i=0|Oe(7,0,0|(n=3*(15-r|0)|0)),o=e&~m(),e=0|ze(0|A,0|e,0|n),m(),A=A&~i|(e=0|Oe(0|dA(7&e),0,0|n)),e=o|m(),!(r>>>0<t>>>0)){r=1;break}r=r+1|0}}else r=1}while(0);if(!(a>>>0<f>>>0))break;a=a+1|0}return _(0|e),0|A}function OA(A,e){var r=0,t=0,n=0,i=0,o=0;if(t=0|ze(0|(A|=0),0|(e|=0),52),m(),!(t&=15))return t=A,_(0|(r=e)),0|t;for(r=1;i=0|Oe(7,0,0|(o=3*(15-r|0)|0)),n=e&~m(),e=0|ze(0|A,0|e,0|o),m(),A=(e=0|Oe(0|dA(7&e),0,0|o))|A&~i,e=m()|n,r>>>0<t>>>0;)r=r+1|0;return _(0|e),0|A}function VA(A){return(0|(A|=0))%2|0}function YA(A,e,r){r|=0;var t,i=0;return t=F,F=F+16|0,i=t,(e|=0)>>>0>15?(F=t,0|(i=4)):2146435072&~n[(A|=0)+4>>2]&&2146435072&~n[A+8+4>>2]?(function(A,e,r){var t,n;t=F,F=F+16|0,_A(A|=0,e|=0,r|=0,n=t),q(n,r+4|0),F=t}(A,e,i),e=0|function(A,e){A|=0;var r,t=0,i=0,o=0,a=0,f=0,l=0,s=0,u=0;if(r=F,F=F+64|0,l=r+40|0,i=r+24|0,o=r+12|0,a=r,Oe(0|(e|=0),0,52),t=134225919|m(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(l=0,_(0|(f=0)),F=r,0|l):(Oe(0|O(A),0,45),f=m()|t,l=-1,_(0|f),F=r,0|l);if(n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],n[l+12>>2]=n[A+12>>2],f=l+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[f>>2],n[i+4>>2]=n[f+4>>2],n[i+8>>2]=n[f+8>>2],1&e?(aA(f),n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],lA(o)):(fA(f),n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],sA(o)),rA(i,o,a),$(a),s=0|Oe(7,0,0|(u=3*(15-e|0)|0)),t&=~m(),A=(u=0|Oe(0|nA(a),0,0|u))|A&~s,t=m()|t,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[f>>2])<=2&&(0|n[l+8>>2])<=2&&(0|n[l+12>>2])<=2){if(e=0|Oe(0|(i=0|O(l)),0,45),e|=A,A=m()|-1040385&t,a=0|V(l),!(0|H(i))){if((0|a)<=0)break;for(o=0;;){if(i=0|ze(0|e,0|A,52),m(),i&=15)for(t=1;l=0|ze(0|e,0|A,0|(u=3*(15-t|0)|0)),m(),s=0|Oe(7,0,0|u),A&=~m(),e=e&~s|(u=0|Oe(0|gA(7&l),0,0|u)),A|=m(),t>>>0<i>>>0;)t=t+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|ze(0|e,0|A,52),m(),o&=15;e:do{if(o){t=1;r:for(;;){switch(u=0|ze(0|e,0|A,3*(15-t|0)|0),m(),7&u){case 1:break r;case 0:break;default:break e}if(!(t>>>0<o>>>0))break e;t=t+1|0}if(0|Y(i,0|n[l>>2]))for(t=1;s=0|Oe(7,0,0|(l=3*(15-t|0)|0)),u=A&~m(),A=0|ze(0|e,0|A,0|l),m(),e=e&~s|(A=0|Oe(0|dA(7&A),0,0|l)),A=u|m(),t>>>0<o>>>0;)t=t+1|0;else for(t=1;l=0|ze(0|e,0|A,0|(u=3*(15-t|0)|0)),m(),s=0|Oe(7,0,0|u),A&=~m(),e=e&~s|(u=0|Oe(0|gA(7&l),0,0|u)),A|=m(),t>>>0<o>>>0;)t=t+1|0}}while(0);if((0|a)>0){t=0;do{e=0|LA(e,A),A=0|m(),t=t+1|0}while((0|t)!=(0|a))}}else e=0,A=0}while(0);return u=e,_(0|(s=A)),F=r,0|u}(i,e),i=0|m(),n[r>>2]=e,n[r+4>>2]=i,!(0|e)&!(0|i)&&Q(23313,22674,786,22697),F=t,0|(i=0)):(F=t,0|(i=3))}function NA(A,e,r){var t,i=0,o=0,a=0;if(t=(r|=0)+4|0,o=0|ze(0|(A|=0),0|(e|=0),52),m(),o&=15,a=0|ze(0|A,0|e,45),m(),i=!(0|o),0|H(127&a)){if(i)return 0|(a=1);i=1}else{if(i)return 0|(a=0);i=0|n[t>>2]||0|n[r+8>>2]?1:1&!!(0|n[r+12>>2])}for(r=1;1&r?lA(t):sA(t),a=0|ze(0|A,0|e,3*(15-r|0)|0),m(),uA(t,7&a),r>>>0<o>>>0;)r=r+1|0;return 0|i}function ZA(A,e,r){r|=0;var t,i,o=0,a=0,f=0,l=0,s=0,u=0;if(i=F,F=F+16|0,t=i,u=0|ze(0|(A|=0),0|(e|=0),45),m(),(u&=127)>>>0>121)return n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,n[r+12>>2]=0,F=i,0|(u=5);A:do{if(0|H(u)&&(f=0|ze(0|A,0|e,52),m(),0|(f&=15))){o=1;e:for(;;){switch(s=0|ze(0|A,0|e,3*(15-o|0)|0),m(),7&s){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<f>>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;l=0|Oe(7,0,0|(e=3*(15-a|0)|0)),s=o&~m(),o=0|ze(0|A,0|o,0|e),m(),A=A&~l|(o=0|Oe(0|dA(7&o),0,0|e)),o=s|m(),a>>>0<f>>>0;)a=a+1|0}else o=e}while(0);if(s=7696+(28*u|0)|0,n[r>>2]=n[s>>2],n[r+4>>2]=n[s+4>>2],n[r+8>>2]=n[s+8>>2],n[r+12>>2]=n[s+12>>2],!(0|NA(A,o,r)))return F=i,0|(u=0);if(l=r+4|0,n[t>>2]=n[l>>2],n[t+4>>2]=n[l+4>>2],n[t+8>>2]=n[l+8>>2],f=0|ze(0|A,0|o,52),m(),s=15&f,1&f?(sA(l),f=s+1|0):f=s,0|H(u)){A:do{if(s)for(e=1;;){if(a=0|ze(0|A,0|o,3*(15-e|0)|0),m(),0|(a&=7)){o=a;break A}if(!(e>>>0<s>>>0)){o=0;break}e=e+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|CA(r,f,o,0)){if(0|H(u))do{}while(0|CA(r,f,0,0));(0|f)!=(0|s)&&fA(l)}else(0|f)!=(0|s)&&(n[l>>2]=n[t>>2],n[l+4>>2]=n[t+4>>2],n[l+8>>2]=n[t+8>>2]);return F=i,0|(u=0)}function WA(A,e,r){r|=0;var t,n,i=0;return n=F,F=F+16|0,0|(i=0|ZA(A|=0,e|=0,t=n))?(F=n,0|i):(i=0|ze(0|A,0|e,52),m(),QA(t,15&i,r),F=n,0|(i=0))}function KA(A,e,r){r|=0;var t,n=0,i=0,o=0;if(t=F,F=F+16|0,0|(n=0|ZA(A|=0,e|=0,o=t)))return F=t,0|(o=n);n=0|ze(0|A,0|e,45),m(),n=!(0|H(127&n)),i=0|ze(0|A,0|e,52),m(),i&=15;A:do{if(!n){if(0|i)for(n=1;;){if(!(!((0|Oe(7,0,3*(15-n|0)|0))&A)&!(m()&e)))break A;if(!(n>>>0<i>>>0))break;n=n+1|0}return DA(o,i,0,5,r),F=t,0|0}}while(0);return IA(o,i,0,6,r),F=t,0|0}function jA(A,e){e|=0;var r=0,t=0,i=0,o=0,a=0,f=0,l=0;if((A|=0)>>>0>15)return 0|(f=4);if(Oe(0|A,0,52),f=134225919|m(),!A){r=0,t=0;do{0|H(t)&&(Oe(0|t,0,45),a=f|m(),n[(A=e+(r<<3)|0)>>2]=-1,n[A+4>>2]=a,r=r+1|0),t=t+1|0}while(122!=(0|t));return 0|(r=0)}r=0,a=0;do{if(0|H(a)){for(Oe(0|a,0,45),t=1,i=-1,o=f|m();i&=~(l=0|Oe(7,0,3*(15-t|0)|0)),o&=~m(),(0|t)!=(0|A);)t=t+1|0;n[(l=e+(r<<3)|0)>>2]=i,n[l+4>>2]=o,r=r+1|0}a=a+1|0}while(122!=(0|a));return 0|(r=0)}function JA(A,e,r,t){A|=0,t|=0;var i=0,o=0;i=0|ze(0|(e|=0),0|(r|=0),52),m(),!(0|e)&!(0|r)|(0|t)>15|(0|(i&=15))>(0|t)?(t=-1,i=-1,e=0,r=0):(o=0|function(A,e,r,t){return A|=0,e|=0,(0|(t|=0))<(0|(r|=0))?(t=A,_(0|(r=e)),0|t):(r=0|Oe(-1,-1,3+(3*(t-r|0)|0)|0),t=0|Oe(0|~r,0|~m(),3*(15-t|0)|0),r=~m()&e,t=~t&A,_(0|r),0|t)}(e,r,i+1|0,t),r=-15728641&m(),e=0|Oe(0|t,0,52),t=(o=!(0|TA(e|=o,r|=m())))?-1:t),n[(o=A)>>2]=e,n[o+4>>2]=r,n[A+8>>2]=i,n[A+12>>2]=t}function XA(A){var e,r=0,t=0,i=0,o=0,a=0,f=0,l=0,s=0;if(!(!(0|(r=0|n[(t=A|=0)>>2]))&!(0|(t=0|n[t+4>>2]))||(i=0|ze(0|r,0|t,52),m(),r=0|Fe(0|(l=0|Oe(1,0,3*(15^(i&=15))|0)),0|m(),0|r,0|t),t=0|m(),n[(l=A)>>2]=r,n[l+4>>2]=t,(0|i)<(0|(f=0|n[(l=A+8|0)>>2]))))){for(e=A+12|0,a=i;;){if((0|a)==(0|f)){i=5;break}if(s=(0|a)==(0|n[e>>2]),i=0|ze(0|r,0|t,0|(o=3*(15-a|0)|0)),m(),s&1==(0|(i&=7))&!0){i=7;break}if(!(7==(0|i)&!0)){i=10;break}if(r=0|Fe(0|r,0|t,0|(s=0|Oe(1,0,0|o)),0|m()),t=0|m(),n[(s=A)>>2]=r,n[s+4>>2]=t,!((0|a)>(0|f))){i=10;break}a=a+-1|0}if(5==(0|i))return n[(s=A)>>2]=0,n[s+4>>2]=0,n[l>>2]=-1,void(n[e>>2]=-1);if(7==(0|i))return f=0|Fe(0|r,0|t,0|(f=0|Oe(1,0,0|o)),0|m()),l=0|m(),n[(s=A)>>2]=f,n[s+4>>2]=l,void(n[e>>2]=a+-1)}}function qA(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function $A(A,e){return e|=0,+l(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+l(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function Ae(A,e){A|=0;var r,t,n,o=0;return t=+i[(e|=0)>>3],r=+i[A>>3],o=(n=+h(.5*(t-r)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+t)*+c(+r)*o),2*+B(+ +s(+o),+ +s(+(1-o)))*6371.007180918475}function ee(A,e){e|=0;var r=0;return(A|=0)>>>0>15?0|(e=4):(r=0|Te(0|(r=0|ue(7,0,A,((0|A)<0)<<31>>31)),0|m(),120,0),A=0|m(),n[e>>2]=2|r,n[e+4>>2]=A,0|(e=0))}function re(A,e,r){A|=0,r|=0;var t,n,o,a,f=0,l=0,u=0,d=0,w=0,p=0;return p=+i[(e|=0)>>3],o=+i[A>>3],w=+h(.5*(p-o)),u=+i[e+8>>3],n=+i[A+8>>3],d=+h(.5*(u-n)),t=+c(+o),a=+c(+p),d=2*+B(+ +s(+(d=w*w+d*(a*t*d))),+ +s(+(1-d))),w=+i[r>>3],p=+h(.5*(w-p)),f=+i[r+8>>3],u=+h(.5*(f-u)),l=+c(+w),u=2*+B(+ +s(+(u=p*p+u*(a*l*u))),+ +s(+(1-u))),w=+h(.5*(o-w)),f=+h(.5*(n-f)),f=2*+B(+ +s(+(f=w*w+f*(t*l*f))),+ +s(+(1-f))),4*+b(+ +s(+ +g(.5*(l=.5*(d+u+f)))*+g(.5*(l-d))*+g(.5*(l-u))*+g(.5*(l-f))))}function te(A,e,r){r|=0;var t,o,a,f=0,l=0;if(a=F,F=F+192|0,o=a,0|(l=0|WA(A|=0,e|=0,t=a+168|0)))return F=a,0|(r=l);if(0|KA(A,e,o)&&Q(23313,22742,386,22751),(0|(e=0|n[o>>2]))>0){if(f=+re(o+8|0,o+8+((1!=(0|e)&1)<<4)|0,t)+0,1!=(0|e)){A=1;do{f+=+re(o+8+((l=A)<<4)|0,o+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e))}}else f=0;return i[r>>3]=f,F=a,0|(r=0)}function ne(A){A|=0;var e,r,t=0;return(e=0|Ie(1,12))||Q(22832,22787,49,22845),0|(t=0|n[(r=A+4|0)>>2])?(n[(t=t+8|0)>>2]=e,n[r>>2]=e,0|e):(0|n[A>>2]&&Q(22862,22787,61,22885),n[(t=A)>>2]=e,n[r>>2]=e,0|e)}function ie(A,e){A|=0,e|=0;var r,t;return(t=0|Ce(24))||Q(22899,22787,78,22913),n[t>>2]=n[e>>2],n[t+4>>2]=n[e+4>>2],n[t+8>>2]=n[e+8>>2],n[t+12>>2]=n[e+12>>2],n[t+16>>2]=0,0|(r=0|n[(e=A+4|0)>>2])?(n[r+16>>2]=t,n[e>>2]=t,0|t):(0|n[A>>2]&&Q(22928,22787,82,22913),n[A>>2]=t,n[e>>2]=t,0|t)}function oe(A){var e=0,r=0,t=0,i=0;if(A|=0)for(t=1;;){if(0|(e=0|n[A>>2]))do{if(0|(r=0|n[e>>2]))do{i=r,r=0|n[r+16>>2],xe(i)}while(0|r);i=e,e=0|n[e+8>>2],xe(i)}while(0|e);if(e=A,A=0|n[A+8>>2],t||xe(e),!A)break;t=0}}function ae(A){var e,r,t=0,o=0,a=0,f=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,y=0,_=0,m=0,D=0,M=0,C=0,x=0,I=0,F=0,P=0,G=0,S=0,U=0;if(0|n[(f=(A|=0)+8|0)>>2])return 0|(U=1);if(!(a=0|n[A>>2]))return 0|(U=0);t=a,o=0;do{o=o+1|0,t=0|n[t+8>>2]}while(0|t);if(o>>>0<2)return 0|(U=0);(r=0|Ce(o<<2))||Q(22948,22787,317,22967),(e=0|Ce(o<<5))||Q(22989,22787,321,22967),n[A>>2]=0,n[(M=A+4|0)>>2]=0,n[f>>2]=0,o=0,G=0,D=0,w=0;A:for(;;){if(d=0|n[a>>2]){s=0,u=d;do{if(h=+i[u+8>>3],t=u,u=0|n[u+16>>2],c=+i[(f=(g=!(0|u))?d:u)+8>>3],+l(+(h-c))>3.141592653589793){U=14;break}s+=(c-h)*(+i[t>>3]+ +i[f>>3])}while(!g);if(14==(0|U)){U=0,s=0,t=d;do{m=+i[t+8>>3],F=0|n[(P=t+16|0)>>2],_=+i[(F=0|F?F:d)+8>>3],s+=(+i[t>>3]+ +i[F>>3])*((_<0?_+6.283185307179586:_)-(m<0?m+6.283185307179586:m)),t=0|n[(0|t?P:a)>>2]}while(0|t)}s>0?(n[r+(G<<2)>>2]=a,G=G+1|0,f=D,t=w):U=19}else U=19;if(19==(0|U)){U=0;do{if(!o){if(w){f=M,u=w+8|0,t=a,o=A;break}if(0|n[A>>2]){U=27;break A}f=M,u=A,t=a,o=A;break}if(0|n[(t=o+8|0)>>2]){U=21;break A}if(!(o=0|Ie(1,12))){U=23;break A}n[t>>2]=o,f=o+4|0,u=o,t=w}while(0);if(n[u>>2]=a,n[f>>2]=a,u=e+(D<<5)|0,g=0|n[a>>2]){for(i[(d=e+(D<<5)+8|0)>>3]=17976931348623157e292,i[(w=e+(D<<5)+24|0)>>3]=17976931348623157e292,i[u>>3]=-17976931348623157e292,i[(b=e+(D<<5)+16|0)>>3]=-17976931348623157e292,E=17976931348623157e292,y=-17976931348623157e292,f=0,B=g,h=17976931348623157e292,k=17976931348623157e292,v=-17976931348623157e292,c=-17976931348623157e292;s=+i[B>>3],m=+i[B+8>>3],B=0|n[B+16>>2],_=+i[((p=!(0|B))?g:B)+8>>3],s<h&&(i[d>>3]=s,h=s),m<k&&(i[w>>3]=m,k=m),s>v?i[u>>3]=s:s=v,m>c&&(i[b>>3]=m,c=m),E=m>0&m<E?m:E,y=m<0&m>y?m:y,f|=+l(+(m-_))>3.141592653589793,!p;)v=s;f&&(i[b>>3]=y,i[w>>3]=E)}else n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,n[u+12>>2]=0,n[u+16>>2]=0,n[u+20>>2]=0,n[u+24>>2]=0,n[u+28>>2]=0;f=D+1|0}if(a=0|n[(P=a+8|0)>>2],n[P>>2]=0,!a){U=45;break}D=f,w=t}if(21==(0|U))Q(22765,22787,35,22799);else if(23==(0|U))Q(22819,22787,37,22799);else if(27==(0|U))Q(22862,22787,61,22885);else if(45==(0|U)){A:do{if((0|G)>0){for(P=!(0|f),I=f<<2,F=!(0|A),x=0,t=0;;){if(C=0|n[r+(x<<2)>>2],P)U=73;else{if(!(D=0|Ce(I))){U=50;break}if(!(M=0|Ce(I))){U=52;break}e:do{if(F)o=0;else{for(f=0,o=0,u=A;a=e+(f<<5)|0,0|fe(0|n[u>>2],a,0|n[C>>2])?(n[D+(o<<2)>>2]=u,n[M+(o<<2)>>2]=a,p=o+1|0):p=o,u=0|n[u+8>>2];)f=f+1|0,o=p;if((0|p)>0)if(a=0|n[D>>2],1==(0|p))o=a;else for(b=0,B=-1,o=a,w=a;;){for(g=0|n[w>>2],a=0,u=0;d=(0|(f=0|n[n[D+(u<<2)>>2]>>2]))==(0|g)?a:a+(1&fe(f,0|n[M+(u<<2)>>2],0|n[g>>2]))|0,(0|(u=u+1|0))!=(0|p);)a=d;if(o=(f=(0|d)>(0|B))?w:o,(0|(a=b+1|0))==(0|p))break e;b=a,B=f?d:B,w=0|n[D+(a<<2)>>2]}else o=0}}while(0);if(xe(D),xe(M),o){if(a=0|n[(f=o+4|0)>>2])o=a+8|0;else if(0|n[o>>2]){U=70;break}n[o>>2]=C,n[f>>2]=C}else U=73}if(73==(0|U)){if(U=0,0|(t=0|n[C>>2]))do{M=t,t=0|n[t+16>>2],xe(M)}while(0|t);xe(C),t=1}if((0|(x=x+1|0))>=(0|G)){S=t;break A}}50==(0|U)?Q(23004,22787,249,23023):52==(0|U)?Q(23042,22787,252,23023):70==(0|U)&&Q(22862,22787,61,22885)}else S=0}while(0);return xe(r),xe(e),0|(U=S)}return 0}function fe(A,e,r){A|=0;var t=0,o=0,a=0,f=0,l=0,s=0,u=0,c=0;if(!(0|K(e|=0,r|=0)))return 0|(A=0);if(e=0|W(e),t=+i[r>>3],o=e&(o=+i[r+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0|(A=0);if(e){e=0,u=o,r=A;A:for(;;){for(;f=+i[r>>3],o=+i[r+8>>3],c=0|n[(r=r+16|0)>>2],a=+i[(c=0|c?c:A)>>3],l=+i[c+8>>3],f>a?(s=f,f=l):(s=a,a=f,f=o,o=l),(t=t==a|t==s?t+2220446049250313e-31:t)<a|t>s;)if(!(r=0|n[r>>2])){r=22;break A}if(((s=(l=f<0?f+6.283185307179586:f)+(t-a)/(s-a)*((f=o<0?o+6.283185307179586:o)-l))<0?s+6.283185307179586:s)>(u=l==u|f==u?u+-2220446049250313e-31:u)&&(e^=1),!(r=0|n[r>>2])){r=22;break}}if(22==(0|r))return 0|e}else{e=0,u=o,r=A;A:for(;;){for(;f=+i[r>>3],o=+i[r+8>>3],c=0|n[(r=r+16|0)>>2],a=+i[(c=0|c?c:A)>>3],l=+i[c+8>>3],f>a?(s=f,f=l):(s=a,a=f,f=o,o=l),(t=t==a|t==s?t+2220446049250313e-31:t)<a|t>s;)if(!(r=0|n[r>>2])){r=22;break A}if(f+(t-a)/(s-a)*(o-f)>(u=f==u|o==u?u+-2220446049250313e-31:u)&&(e^=1),!(r=0|n[r>>2])){r=22;break}}if(22==(0|r))return 0|e}return 0}function le(A,e,r,i,o){r|=0,i|=0,o|=0;var a,f,l,s,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0;if(s=F,F=F+32|0,k=s+16|0,l=s,u=0|ze(0|(A|=0),0|(e|=0),52),m(),u&=15,b=0|ze(0|r,0|i,52),m(),(0|u)!=(15&b))return F=s,0|(k=12);if(d=0|ze(0|A,0|e,45),m(),d&=127,w=0|ze(0|r,0|i,45),m(),d>>>0>121|(w&=127)>>>0>121)return F=s,0|(k=5);if(b=(0|d)!=(0|w)){if(7==(0|(h=0|Z(d,w))))return F=s,0|(k=1);7==(0|(g=0|Z(w,d)))?Q(23066,23090,161,23100):(B=h,c=g)}else B=0,c=0;a=0|H(d),f=0|H(w),n[k>>2]=0,n[k+4>>2]=0,n[k+8>>2]=0,n[k+12>>2]=0;do{if(B){if(h=(0|(w=0|n[4272+(28*d|0)+(B<<2)>>2]))>0,f)if(h){d=0,g=r,h=i;do{g=0|zA(g,h),h=0|m(),1==(0|(c=0|dA(c)))&&(c=0|dA(1)),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=r,g=i;else if(h){d=0,g=r,h=i;do{g=0|OA(g,h),h=0|m(),c=0|dA(c),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=r,g=i;if(NA(d,g,k),b||Q(23115,23090,191,23100),(h=!!(0|a))&(c=!!(0|f))&&Q(23142,23090,192,23100),h){if(7==(0|(c=0|RA(A,e)))){u=5;break}if(0|t[21872+(7*c|0)+B|0]){u=1;break}d=g=0|n[21040+(28*c|0)+(B<<2)>>2]}else if(c){if(7==(0|(c=0|RA(d,g)))){u=5;break}if(0|t[21872+(7*c|0)+w|0]){u=1;break}d=0,g=0|n[21040+(28*w|0)+(c<<2)>>2]}else d=0,g=0;if((d|g)<0)u=5;else{if((0|g)>0){h=k+4|0,c=0;do{hA(h),c=c+1|0}while((0|c)!=(0|g))}if(n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,uA(l,B),0|u)for(;0|VA(u)?lA(l):sA(l),(0|u)>1;)u=u+-1|0;if((0|d)>0){u=0;do{hA(l),u=u+1|0}while((0|u)!=(0|d))}eA(p=k+4|0,l,p),$(p),p=51}}else if(NA(r,i,k),!!(0|a)&!!(0|f))if((0|w)!=(0|d)&&Q(23173,23090,261,23100),7==(0|(c=0|RA(A,e)))|7==(0|(u=0|RA(r,i))))u=5;else if(0|t[21872+(7*c|0)+u|0])u=1;else if((0|(c=0|n[21040+(28*c|0)+(u<<2)>>2]))>0){h=k+4|0,u=0;do{hA(h),u=u+1|0}while((0|u)!=(0|c));p=51}else p=51;else p=51}while(0);return 51==(0|p)&&(u=k+4|0,n[o>>2]=n[u>>2],n[o+4>>2]=n[u+4>>2],n[o+8>>2]=n[u+8>>2],u=0),F=s,0|(k=u)}function se(A,e,r,t){r|=0,t|=0;var i,o,a,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0;if(a=F,F=F+48|0,i=a+36|0,s=a+24|0,u=a+12|0,c=a,f=0|ze(0|(A|=0),0|(e|=0),52),m(),f&=15,g=0|ze(0|A,0|e,45),m(),(g&=127)>>>0>121)return F=a,0|(t=5);if(o=0|H(g),Oe(0|f,0,52),b=134225919|m(),n[(l=t)>>2]=-1,n[l+4>>2]=b,!f)return 7==(0|(f=0|nA(r)))||127==(0|(f=0|N(g,f)))?(F=a,0|(b=1)):(d=0|Oe(0|f,0,45),w=0|m(),w=-1040385&n[(g=t)+4>>2]|w,n[(b=t)>>2]=n[g>>2]|d,n[b+4>>2]=w,F=a,0|(b=0));for(n[i>>2]=n[r>>2],n[i+4>>2]=n[r+4>>2],n[i+8>>2]=n[r+8>>2],r=f;;){if(l=r,r=r+-1|0,n[s>>2]=n[i>>2],n[s+4>>2]=n[i+4>>2],n[s+8>>2]=n[i+8>>2],0|VA(l)){if(0|(f=0|iA(i))){r=13;break}n[u>>2]=n[i>>2],n[u+4>>2]=n[i+4>>2],n[u+8>>2]=n[i+8>>2],lA(u)}else{if(0|(f=0|oA(i))){r=13;break}n[u>>2]=n[i>>2],n[u+4>>2]=n[i+4>>2],n[u+8>>2]=n[i+8>>2],sA(u)}if(rA(s,u,c),$(c),p=0|n[(f=t)>>2],f=0|n[f+4>>2],B=0|Oe(7,0,0|(k=3*(15-l|0)|0)),f&=~m(),k=0|Oe(0|nA(c),0,0|k),f=m()|f,n[(b=t)>>2]=k|p&~B,n[b+4>>2]=f,(0|l)<=1){r=14;break}}A:do{if(13!=(0|r)&&14==(0|r))if((0|n[i>>2])<=1&&(0|n[i+4>>2])<=1&&(0|n[i+8>>2])<=1){c=127==(0|(f=0|N(g,r=0|nA(i))))?0:0|H(f);e:do{if(r){if(o){if(7==(0|(f=0|RA(A,e)))){f=5;break A}if((0|(l=0|n[21248+(28*f|0)+(r<<2)>>2]))>0){f=r,r=0;do{f=0|gA(f),r=r+1|0}while((0|r)!=(0|l))}else f=r;if(1==(0|f)){f=9;break A}127==(0|(r=0|N(g,f)))&&Q(23200,23090,411,23230),0|H(r)?Q(23245,23090,412,23230):(w=r,d=l,h=f)}else w=f,d=0,h=r;if((0|(u=0|n[4272+(28*g|0)+(h<<2)>>2]))<=-1&&Q(23276,23090,419,23230),!c){if((0|d)<0){f=5;break A}if(0|d){f=0,r=0|n[(l=t)>>2],l=0|n[l+4>>2];do{r=0|HA(r,l),l=0|m(),n[(k=t)>>2]=r,n[k+4>>2]=l,f=f+1|0}while((0|f)<(0|d))}if((0|u)<=0){f=w,r=58;break}for(f=0,r=0|n[(l=t)>>2],l=0|n[l+4>>2];;)if(r=0|HA(r,l),l=0|m(),n[(k=t)>>2]=r,n[k+4>>2]=l,(0|(f=f+1|0))==(0|u)){f=w,r=58;break e}}if(7==(0|(s=0|Z(w,g)))&&Q(23066,23090,428,23230),r=0|n[(f=t)>>2],f=0|n[f+4>>2],(0|u)>0){l=0;do{r=0|HA(r,f),f=0|m(),n[(k=t)>>2]=r,n[k+4>>2]=f,l=l+1|0}while((0|l)!=(0|u))}if(7==(0|(f=0|RA(r,f)))&&Q(23313,23090,440,23230),r=0|z(w),(0|(r=0|n[(r?21664:21456)+(28*s|0)+(f<<2)>>2]))<0&&Q(23313,23090,454,23230),r){f=0,l=0|n[(s=t)>>2],s=0|n[s+4>>2];do{l=0|LA(l,s),s=0|m(),n[(k=t)>>2]=l,n[k+4>>2]=s,f=f+1|0}while((0|f)<(0|r));f=w,r=58}else f=w,r=58}else if(!!(0|o)&!!(0|c)){if(7==(0|(r=0|RA(A,e)))|7==(0|(l=0|RA(0|n[(l=t)>>2],0|n[l+4>>2])))){f=5;break A}if((0|(l=0|n[21248+(28*r|0)+(l<<2)>>2]))<0){f=5;break A}if(l){r=0,s=0|n[(u=t)>>2],u=0|n[u+4>>2];do{s=0|HA(s,u),u=0|m(),n[(k=t)>>2]=s,n[k+4>>2]=u,r=r+1|0}while((0|r)<(0|l));r=58}else r=59}else r=58}while(0);if(58==(0|r)&&c&&(r=59),59==(0|r)&&1==(0|RA(0|n[(k=t)>>2],0|n[k+4>>2]))){f=9;break}B=0|n[(k=t)>>2],k=-1040385&n[k+4>>2],p=0|Oe(0|f,0,45),k|=m(),n[(f=t)>>2]=B|p,n[f+4>>2]=k,f=0}else f=1}while(0);return F=a,0|(k=f)}function ue(A,e,r,t){A|=0,e|=0;var n=0,i=0,o=0;if(!(0|(r|=0))&!(0|(t|=0)))return i=1,_(0|(n=0)),0|i;i=A,n=e,A=1,e=0;do{A=0|Te(0|((o=!0&!(1&r))?1:i),0|(o?0:n),0|A,0|e),e=0|m(),r=0|He(0|r,0|t,1),t=0|m(),i=0|Te(0|i,0|n,0|i,0|n),n=0|m()}while(!(!(0|r)&!(0|t)));return _(0|e),0|A}function ce(A,e,r){A|=0;var t,o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0;if(!(0|K(e|=0,r|=0)))return 0|(g=0);if(e=0|W(e),o=+i[r>>3],a=e&(a=+i[r+8>>3])<0?a+6.283185307179586:a,(0|(g=0|n[A>>2]))<=0)return 0|(g=0);if(t=0|n[A+4>>2],e){e=0,h=a,r=-1,A=0;A:for(;;){for(c=A;l=+i[t+(c<<4)>>3],a=+i[t+(c<<4)+8>>3],f=+i[t+((A=(r+2|0)%(0|g)|0)<<4)>>3],s=+i[t+(A<<4)+8>>3],l>f?(u=l,l=s):(u=f,f=l,l=a,a=s),(o=o==f|o==u?o+2220446049250313e-31:o)<f|o>u;){if((0|(r=c+1|0))>=(0|g)){r=22;break A}A=c,c=r,r=A}if(((u=(s=l<0?l+6.283185307179586:l)+(o-f)/(u-f)*((l=a<0?a+6.283185307179586:a)-s))<0?u+6.283185307179586:u)>(h=s==h|l==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|g)){r=22;break}r=c}if(22==(0|r))return 0|e}else{e=0,h=a,r=-1,A=0;A:for(;;){for(c=A;l=+i[t+(c<<4)>>3],a=+i[t+(c<<4)+8>>3],f=+i[t+((A=(r+2|0)%(0|g)|0)<<4)>>3],s=+i[t+(A<<4)+8>>3],l>f?(u=l,l=s):(u=f,f=l,l=a,a=s),(o=o==f|o==u?o+2220446049250313e-31:o)<f|o>u;){if((0|(r=c+1|0))>=(0|g)){r=22;break A}A=c,c=r,r=A}if(l+(o-f)/(u-f)*(a-l)>(h=l==h|a==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|g)){r=22;break}r=c}if(22==(0|r))return 0|e}return 0}function he(A,e){e|=0;var r,t,o,a,f,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0;if(!(t=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(a=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(f=e+16|0)>>3]=-17976931348623157e292,!((0|t)<=0)){for(r=0|n[A+4>>2],b=17976931348623157e292,B=-17976931348623157e292,p=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,w=-17976931348623157e292,u=-17976931348623157e292,k=0;s=+i[r+(k<<4)>>3],d=+i[r+(k<<4)+8>>3],c=+i[r+(((0|(A=A+2|0))==(0|t)?0:A)<<4)+8>>3],s<h&&(i[o>>3]=s,h=s),d<g&&(i[a>>3]=d,g=d),s>w?i[e>>3]=s:s=w,d>u&&(i[f>>3]=d,u=d),b=d>0&d<b?d:b,B=d<0&d>B?d:B,p|=+l(+(d-c))>3.141592653589793,(0|(A=k+1|0))!=(0|t);)v=k,w=s,k=A,A=v;p&&(i[f>>3]=B,i[a>>3]=b)}}function ge(A,e){e|=0;var r,t=0,o=0,a=0,f=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,y=0,_=0,m=0,Q=0;if(B=0|n[(A|=0)>>2]){if(i[(p=e+8|0)>>3]=17976931348623157e292,i[(k=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(v=e+16|0)>>3]=-17976931348623157e292,(0|B)>0){for(a=0|n[A+4>>2],w=17976931348623157e292,b=-17976931348623157e292,o=0,t=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,s=-17976931348623157e292,E=0;f=+i[a+(E<<4)>>3],g=+i[a+(E<<4)+8>>3],u=+i[a+(((0|(m=t+2|0))==(0|B)?0:m)<<4)+8>>3],f<c&&(i[p>>3]=f,c=f),g<h&&(i[k>>3]=g,h=g),f>d?i[e>>3]=f:f=d,g>s&&(i[v>>3]=g,s=g),w=g>0&g<w?g:w,b=g<0&g>b?g:b,o|=+l(+(g-u))>3.141592653589793,(0|(t=E+1|0))!=(0|B);)m=E,d=f,E=t,t=m;o&&(i[v>>3]=b,i[k>>3]=w)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(t=0|n[(m=A+8|0)>>2]))<=0)){r=A+12|0,_=0;do{if(a=0|n[r>>2],o=_,k=e+((_=_+1|0)<<5)|0,v=0|n[a+(o<<3)>>2]){if(i[(E=e+(_<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(_<<5)+24|0)>>3]=17976931348623157e292,i[k>>3]=-17976931348623157e292,i[(y=e+(_<<5)+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(B=0|n[a+(o<<3)+4>>2],w=17976931348623157e292,b=-17976931348623157e292,a=0,o=-1,p=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,s=-17976931348623157e292;f=+i[B+(p<<4)>>3],d=+i[B+(p<<4)+8>>3],u=+i[B+(((0|(o=o+2|0))==(0|v)?0:o)<<4)+8>>3],f<c&&(i[E>>3]=f,c=f),d<h&&(i[A>>3]=d,h=d),f>g?i[k>>3]=f:f=g,d>s&&(i[y>>3]=d,s=d),w=d>0&d<w?d:w,b=d<0&d>b?d:b,a|=+l(+(d-u))>3.141592653589793,(0|(o=p+1|0))!=(0|v);)Q=p,p=o,g=f,o=Q;a&&(i[y>>3]=b,i[A>>3]=w)}}else n[k>>2]=0,n[k+4>>2]=0,n[k+8>>2]=0,n[k+12>>2]=0,n[k+16>>2]=0,n[k+20>>2]=0,n[k+24>>2]=0,n[k+28>>2]=0,t=0|n[m>>2]}while((0|_)<(0|t))}}function de(A,e,r){var t=0,i=0,o=0;if(!(0|ce(A|=0,e|=0,r|=0)))return 0|(i=0);if((0|n[(i=A+8|0)>>2])<=0)return 0|(i=1);for(t=A+12|0,A=0;;){if(o=A,A=A+1|0,0|ce((0|n[t>>2])+(o<<3)|0,e+(A<<5)|0,r)){A=0,t=6;break}if((0|A)>=(0|n[i>>2])){A=1,t=6;break}}return 6==(0|t)?0|A:0}function we(A,e,r,t,n){e|=0,r|=0,t|=0,n|=0;var o,a,f,l,s,u,c,h=0;l=+i[(A|=0)>>3],f=+i[e>>3]-l,a=+i[A+8>>3],o=+i[e+8>>3]-a,u=+i[r>>3],h=((h=+i[t>>3]-u)*(a-(c=+i[r+8>>3]))-(l-u)*(s=+i[t+8>>3]-c))/(f*s-o*h),i[n>>3]=l+f*h,i[n+8>>3]=a+o*h}function be(A,e){return e|=0,+l(+(+i[(A|=0)>>3]-+i[e>>3]))<1.1920928955078125e-7?0|(e=+l(+(+i[A+8>>3]-+i[e+8>>3]))<1.1920928955078125e-7):0|(e=0)}function Be(A,e){e|=0;var r,t,n;return+((n=+i[(A|=0)>>3]-+i[e>>3])*n+(t=+i[A+8>>3]-+i[e+8>>3])*t+(r=+i[A+16>>3]-+i[e+16>>3])*r)}function pe(A,e,r){r|=0;var t,i,o,a,f=0,l=0,s=0;if(a=F,F=F+32|0,s=a,0|(f=0|ZA(A|=0,e|=0,i=a+16|0)))return F=a,0|(r=f);t=0|PA(A,e),o=0|RA(A,e),function(A,e){A=7696+(28*(A|=0)|0)|0,n[(e|=0)>>2]=n[A>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(t,s),f=0|function(A,e){A|=0;var r=0,t=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11120+(216*e|0)>>2])!=(0|A))if((0|n[11120+(216*e|0)+8>>2])!=(0|A))if((0|n[11120+(216*e|0)+16>>2])!=(0|A))if((0|n[11120+(216*e|0)+24>>2])!=(0|A))if((0|n[11120+(216*e|0)+32>>2])!=(0|A))if((0|n[11120+(216*e|0)+40>>2])!=(0|A))if((0|n[11120+(216*e|0)+48>>2])!=(0|A))if((0|n[11120+(216*e|0)+56>>2])!=(0|A))if((0|n[11120+(216*e|0)+64>>2])!=(0|A))if((0|n[11120+(216*e|0)+72>>2])!=(0|A))if((0|n[11120+(216*e|0)+80>>2])!=(0|A))if((0|n[11120+(216*e|0)+88>>2])!=(0|A))if((0|n[11120+(216*e|0)+96>>2])!=(0|A))if((0|n[11120+(216*e|0)+104>>2])!=(0|A))if((0|n[11120+(216*e|0)+112>>2])!=(0|A))if((0|n[11120+(216*e|0)+120>>2])!=(0|A))if((0|n[11120+(216*e|0)+128>>2])!=(0|A)){if((0|n[11120+(216*e|0)+136>>2])!=(0|A)){if((0|n[11120+(216*e|0)+144>>2])==(0|A)){A=0,r=2,t=0;break}if((0|n[11120+(216*e|0)+152>>2])==(0|A)){A=0,r=2,t=1;break}if((0|n[11120+(216*e|0)+160>>2])==(0|A)){A=0,r=2,t=2;break}if((0|n[11120+(216*e|0)+168>>2])==(0|A)){A=1,r=2,t=0;break}if((0|n[11120+(216*e|0)+176>>2])==(0|A)){A=1,r=2,t=1;break}if((0|n[11120+(216*e|0)+184>>2])==(0|A)){A=1,r=2,t=2;break}if((0|n[11120+(216*e|0)+192>>2])==(0|A)){A=2,r=2,t=0;break}if((0|n[11120+(216*e|0)+200>>2])==(0|A)){A=2,r=2,t=1;break}if((0|n[11120+(216*e|0)+208>>2])==(0|A)){A=2,r=2,t=2;break}return-1}A=2,r=1,t=2}else A=2,r=1,t=1;else A=2,r=1,t=0;else A=1,r=1,t=2;else A=1,r=1,t=1;else A=1,r=1,t=0;else A=0,r=1,t=2;else A=0,r=1,t=1;else A=0,r=1,t=0;else A=2,r=0,t=2;else A=2,r=0,t=1;else A=2,r=0,t=0;else A=1,r=0,t=2;else A=1,r=0,t=1;else A=1,r=0,t=0;else A=0,r=0,t=2;else A=0,r=0,t=1;else A=0,r=0,t=0}while(0);return 0|n[11120+(216*e|0)+(72*r|0)+(24*A|0)+(t<<3)+4>>2]}(t,0|n[i>>2]);A:do{if(0|H(t)){switch(0|t){case 4:A=0;break;case 14:A=1;break;case 24:A=2;break;case 38:A=3;break;case 49:A=4;break;case 58:A=5;break;case 63:A=6;break;case 72:A=7;break;case 83:A=8;break;case 97:A=9;break;case 107:A=10;break;case 117:A=11;break;default:f=1;break A}if(l=0|n[22e3+(24*A|0)+8>>2],e=0|n[22e3+(24*A|0)+16>>2],(0|(A=0|n[i>>2]))!=(0|n[s>>2])&&(s=0|z(t))|(0|(A=0|n[i>>2]))==(0|e)&&(f=(f+1|0)%6|0),3==(0|o)&(0|A)==(0|e)){f=(f+5|0)%6|0,l=22;break}5==(0|o)&(0|A)==(0|l)?(f=(f+1|0)%6|0,l=22):l=22}else l=22}while(0);return 22==(0|l)&&(n[r>>2]=f,f=0),F=a,0|(r=f)}function ke(A,e,r,t){r|=0,t|=0;var i,o,a,f,l,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0;if(l=F,F=F+32|0,k=l+24|0,f=l+20|0,a=l+8|0,o=l+16|0,i=l,g=(g=!(0|TA(A|=0,e|=0)))?6:5,w=0|ze(0|A,0|e,52),m(),g>>>0<=r>>>0)return F=l,0|(t=2);!(b=!(0|(w&=15)))&&!((B=0|Oe(7,0,3*(15^w)|0))&A)&!(m()&e)?s=r:u=4;A:do{if(4==(0|u)){if((0|((s=!!(0|TA(A,e)))?4:5))<(0|r))return F=l,0|(t=1);if(0|pe(A,e,k))return F=l,0|(t=1);if(u=(0|n[k>>2])+r|0,7==(0|(B=0|n[(s=s?22288+((0|u)%5<<2)|0:22320+((0|u)%6<<2)|0)>>2])))return F=l,0|(t=1);n[f>>2]=0,s=0|T(A,e,B,f,a);do{if(!s){if(d=0|n[(h=a)>>2],u=(c=(h=0|n[h+4>>2])>>>0<e>>>0|(0|h)==(0|e)&d>>>0<A>>>0)?d:A,c=c?h:e,!b&&!(d&(b=0|Oe(7,0,3*(15^w)|0)))&!(h&m()))s=r;else{if(h=(r+-1+g|0)%(0|g)|0,s=0|TA(A,e),(0|h)<0&&Q(23313,23315,245,23324),(0|((g=!!(0|s))?4:5))<(0|h)&&Q(23313,23315,245,23324),0|pe(A,e,k)&&Q(23313,23315,245,23324),s=(0|n[k>>2])+h|0,7==(0|(h=0|n[(s=g?22288+((0|s)%5<<2)|0:22320+((0|s)%6<<2)|0)>>2]))&&Q(23313,23315,245,23324),n[o>>2]=0,0|(s=0|T(A,e,h,o,i)))break;g=0|n[(d=i)>>2],d=0|n[d+4>>2];do{if(d>>>0<c>>>0|(0|d)==(0|c)&g>>>0<u>>>0){if(u=0|TA(g,d)?0|R(g,d,A,e):0|n[22384+(((0|n[o>>2])+(0|n[22352+(h<<2)>>2])|0)%6<<2)>>2],s=0|TA(g,d),(u+-1|0)>>>0>5){s=-1,u=g,c=d;break}if(1==(0|u)&(s=!!(0|s))){s=-1,u=g,c=d;break}do{if(!(0|pe(g,d,k))){if(s){s=(5+(0|n[21936+(u<<2)>>2])-(0|n[k>>2])|0)%5|0;break}s=(6+(0|n[21968+(u<<2)>>2])-(0|n[k>>2])|0)%6|0;break}s=-1}while(0);u=g,c=d}else s=r}while(0);d=0|n[(h=a)>>2],h=0|n[h+4>>2]}if((0|u)==(0|d)&(0|c)==(0|h)){if(A=(g=!!(0|TA(d,h)))?0|R(d,h,A,e):0|n[22384+(((0|n[f>>2])+(0|n[22352+(B<<2)>>2])|0)%6<<2)>>2],s=0|TA(d,h),(A+-1|0)>>>0<=5&&!(1==(0|A)&(p=!!(0|s))))do{if(!(0|pe(d,h,k))){if(p){s=(5+(0|n[21936+(A<<2)>>2])-(0|n[k>>2])|0)%5|0;break}s=(6+(0|n[21968+(A<<2)>>2])-(0|n[k>>2])|0)%6|0;break}s=-1}while(0);else s=-1;s=6==(0|(s=s+1|0))|g&5==(0|s)?0:s}e=c,A=u;break A}}while(0);return F=l,0|(t=s)}}while(0);return p=0|Oe(0|s,0,56),k=m()|-2130706433&e|536870912,n[t>>2]=p|A,n[t+4>>2]=k,F=l,0|(t=0)}function ve(A,e,r){A|=0,r|=0;var t=0;(0|(e|=0))>0?(t=0|Ie(e,4),n[A>>2]=t,t||Q(23337,23360,40,23374)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=r}function Ee(A){var e,r,t,o=0,a=0,f=0,s=0;e=(A|=0)+4|0,r=A+12|0,t=A+8|0;A:for(;;){for(a=0|n[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(f=0|n[A>>2],s=0|n[f+(o<<2)>>2])break;o=o+1|0}o=f+(~~(+l(+ +u(10,+ +(15-(0|n[r>>2])|0))*(+i[s>>3]+ +i[s+8>>3]))%+(0|a))>>>0<<2)|0,a=0|n[o>>2];e:do{if(0|a){if(f=s+32|0,(0|a)==(0|s))n[o>>2]=n[f>>2];else{if(!(o=0|n[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|s);)if(!(o=0|n[(a=o+32|0)>>2]))break e;n[a>>2]=n[f>>2]}xe(s),n[t>>2]=(0|n[t>>2])-1}}while(0)}xe(0|n[A>>2])}function ye(A){var e,r=0,t=0;for(e=0|n[(A|=0)+4>>2],t=0;;){if((0|t)>=(0|e)){r=0,t=4;break}if(r=0|n[(0|n[A>>2])+(t<<2)>>2]){t=4;break}t=t+1|0}return 4==(0|t)?0|r:0}function _e(A,e){e|=0;var r=0,t=0,o=0,a=0;if(r=~~(+l(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,r=(0|n[A>>2])+(r<<2)|0,!(t=0|n[r>>2]))return 0|(a=1);a=e+32|0;do{if((0|t)!=(0|e)){if(!(r=0|n[t+32>>2]))return 0|(a=1);for(o=r;;){if((0|o)==(0|e)){o=8;break}if(!(r=0|n[o+32>>2])){r=1,o=10;break}t=o,o=r}if(8==(0|o)){n[t+32>>2]=n[a>>2];break}if(10==(0|o))return 0|r}else n[r>>2]=n[a>>2]}while(0);return xe(e),n[(a=A+8|0)>>2]=(0|n[a>>2])-1,0|(a=0)}function me(A,e,r){A|=0,e|=0,r|=0;var t,o=0,a=0,f=0;(t=0|Ce(40))||Q(23390,23360,98,23403),n[t>>2]=n[e>>2],n[t+4>>2]=n[e+4>>2],n[t+8>>2]=n[e+8>>2],n[t+12>>2]=n[e+12>>2],n[(a=t+16|0)>>2]=n[r>>2],n[a+4>>2]=n[r+4>>2],n[a+8>>2]=n[r+8>>2],n[a+12>>2]=n[r+12>>2],n[t+32>>2]=0,a=~~(+l(+ +u(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,a=(0|n[A>>2])+(a<<2)|0,o=0|n[a>>2];do{if(o){for(;!(0|$A(o,e)&&0|$A(o+16|0,r));)if(a=0|n[o+32>>2],!(0|n[(o=0|a?a:o)+32>>2])){f=10;break}if(10==(0|f)){n[o+32>>2]=t;break}return xe(t),0|(f=o)}n[a>>2]=t}while(0);return n[(f=A+8|0)>>2]=1+(0|n[f>>2]),0|(f=t)}function Qe(A,e,r){e|=0,r|=0;var t=0,o=0;if(o=~~(+l(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0|(r=0);if(!r){for(A=o;;){if(0|$A(A,e)){t=10;break}if(!(A=0|n[A+32>>2])){A=0,t=10;break}}if(10==(0|t))return 0|A}for(A=o;;){if(0|$A(A,e)&&0|$A(A+16|0,r)){t=10;break}if(!(A=0|n[A+32>>2])){A=0,t=10;break}}return 10==(0|t)?0|A:0}function De(A,e){e|=0;var r=0;if(r=~~(+l(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(r<<2)>>2]))return 0|(r=0);for(;;){if(0|$A(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function Me(A){return 0|+function(A){return+ +Ke(+(A=+A))}(A=+A)}function Ce(A){A|=0;var e,r=0,t=0,i=0,o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0;e=F,F=F+16|0,g=e;do{if(A>>>0<245){if(A=(u=A>>>0<11?16:A+11&-8)>>>3,3&(t=(h=0|n[5857])>>>A))return i=0|n[(t=(A=23468+((r=(1&t^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|n[(o=i+8|0)>>2]))==(0|A)?n[5857]=h&~(1<<r):(n[a+12>>2]=A,n[t>>2]=a),E=r<<3,n[i+4>>2]=3|E,n[(E=i+E+4|0)>>2]=1|n[E>>2],F=e,0|(E=o);if(u>>>0>(c=0|n[5859])>>>0){if(0|t)return r=((r=t<<A&((r=2<<A)|0-r))&0-r)-1|0,a=0|n[(A=(r=23468+((i=((t=(r>>>=l=r>>>12&16)>>>5&8)|l|(a=(r>>>=t)>>>2&4)|(A=(r>>>=a)>>>1&2)|(i=(r>>>=A)>>>1&1))+(r>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(t=0|n[(l=a+8|0)>>2]))==(0|r)?(A=h&~(1<<i),n[5857]=A):(n[t+12>>2]=r,n[A>>2]=t,A=h),f=(E=i<<3)-u|0,n[a+4>>2]=3|u,n[(o=a+u|0)+4>>2]=1|f,n[a+E>>2]=f,0|c&&(i=0|n[5862],t=23468+((r=c>>>3)<<1<<2)|0,A&(r=1<<r)?r=0|n[(A=t+8|0)>>2]:(n[5857]=A|r,r=t,A=t+8|0),n[A>>2]=i,n[r+12>>2]=i,n[i+8>>2]=r,n[i+12>>2]=t),n[5859]=f,n[5862]=o,F=e,0|(E=l);if(a=0|n[5858]){for(t=(a&0-a)-1|0,t=s=0|n[23732+(((i=(t>>>=o=t>>>12&16)>>>5&8)|o|(f=(t>>>=i)>>>2&4)|(l=(t>>>=f)>>>1&2)|(s=(t>>>=l)>>>1&1))+(t>>>s)<<2)>>2],l=s,s=(-8&n[s+4>>2])-u|0;(A=0|n[t+16>>2])||(A=0|n[t+20>>2]);)t=A,l=(o=(f=(-8&n[A+4>>2])-u|0)>>>0<s>>>0)?A:l,s=o?f:s;if((f=l+u|0)>>>0>l>>>0){o=0|n[l+24>>2],r=0|n[l+12>>2];do{if((0|r)==(0|l)){if(!(r=0|n[(A=l+20|0)>>2])&&!(r=0|n[(A=l+16|0)>>2])){t=0;break}for(;;)if(t=0|n[(i=r+20|0)>>2])r=t,A=i;else{if(!(t=0|n[(i=r+16|0)>>2]))break;r=t,A=i}n[A>>2]=0,t=r}else t=0|n[l+8>>2],n[t+12>>2]=r,n[r+8>>2]=t,t=r}while(0);do{if(0|o){if(r=0|n[l+28>>2],(0|l)==(0|n[(A=23732+(r<<2)|0)>>2])){if(n[A>>2]=t,!t){n[5858]=a&~(1<<r);break}}else if(n[((0|n[(E=o+16|0)>>2])==(0|l)?E:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(r=0|n[l+16>>2])&&(n[t+16>>2]=r,n[r+24>>2]=t),0|(r=0|n[l+20>>2])&&(n[t+20>>2]=r,n[r+24>>2]=t)}}while(0);return s>>>0<16?(E=s+u|0,n[l+4>>2]=3|E,n[(E=l+E+4|0)>>2]=1|n[E>>2]):(n[l+4>>2]=3|u,n[f+4>>2]=1|s,n[f+s>>2]=s,0|c&&(i=0|n[5862],t=23468+((r=c>>>3)<<1<<2)|0,(r=1<<r)&h?r=0|n[(A=t+8|0)>>2]:(n[5857]=r|h,r=t,A=t+8|0),n[A>>2]=i,n[r+12>>2]=i,n[i+8>>2]=r,n[i+12>>2]=t),n[5859]=s,n[5862]=f),F=e,0|(E=l+8|0)}h=u}else h=u}else h=u}else if(A>>>0<=4294967231)if(u=-8&(A=A+11|0),i=0|n[5858]){o=0-u|0,s=(A>>>=8)?u>>>0>16777215?31:u>>>((s=14-((l=((b=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(s=((b<<=l)+245760|0)>>>16&2))+(b<<s>>>15)|0)+7|0)&1|s<<1:0,t=0|n[23732+(s<<2)>>2];A:do{if(t)for(A=0,l=u<<(31==(0|s)?0:25-(s>>>1)),a=0;;){if((f=(-8&n[t+4>>2])-u|0)>>>0<o>>>0){if(!f){A=t,o=0,b=65;break A}A=t,o=f}if(a=!(0|(b=0|n[t+20>>2]))|(0|b)==(0|(t=0|n[t+16+(l>>>31<<2)>>2]))?a:b,!t){t=a,b=61;break}l<<=1}else t=0,A=0,b=61}while(0);if(61==(0|b)){if(!(0|t)&!(0|A)){if(!(A=((A=2<<s)|0-A)&i)){h=u;break}h=(A&0-A)-1|0,A=0,t=0|n[23732+(((a=(h>>>=f=h>>>12&16)>>>5&8)|f|(l=(h>>>=a)>>>2&4)|(s=(h>>>=l)>>>1&2)|(t=(h>>>=s)>>>1&1))+(h>>>t)<<2)>>2]}t?b=65:(l=A,f=o)}if(65==(0|b))for(a=t;;){if(o=(t=(h=(-8&n[a+4>>2])-u|0)>>>0<o>>>0)?h:o,A=t?a:A,(t=0|n[a+16>>2])||(t=0|n[a+20>>2]),!t){l=A,f=o;break}a=t}if(0|l&&f>>>0<((0|n[5859])-u|0)>>>0&&(c=l+u|0)>>>0>l>>>0){a=0|n[l+24>>2],r=0|n[l+12>>2];do{if((0|r)==(0|l)){if(!(r=0|n[(A=l+20|0)>>2])&&!(r=0|n[(A=l+16|0)>>2])){r=0;break}for(;;)if(t=0|n[(o=r+20|0)>>2])r=t,A=o;else{if(!(t=0|n[(o=r+16|0)>>2]))break;r=t,A=o}n[A>>2]=0}else E=0|n[l+8>>2],n[E+12>>2]=r,n[r+8>>2]=E}while(0);do{if(a){if(A=0|n[l+28>>2],(0|l)==(0|n[(t=23732+(A<<2)|0)>>2])){if(n[t>>2]=r,!r){i&=~(1<<A),n[5858]=i;break}}else if(n[((0|n[(E=a+16|0)>>2])==(0|l)?E:a+20)>>2]=r,!r)break;n[r+24>>2]=a,0|(A=0|n[l+16>>2])&&(n[r+16>>2]=A,n[A+24>>2]=r),(A=0|n[l+20>>2])&&(n[r+20>>2]=A,n[A+24>>2]=r)}}while(0);A:do{if(f>>>0<16)E=f+u|0,n[l+4>>2]=3|E,n[(E=l+E+4|0)>>2]=1|n[E>>2];else{if(n[l+4>>2]=3|u,n[c+4>>2]=1|f,n[c+f>>2]=f,r=f>>>3,f>>>0<256){t=23468+(r<<1<<2)|0,(A=0|n[5857])&(r=1<<r)?r=0|n[(A=t+8|0)>>2]:(n[5857]=A|r,r=t,A=t+8|0),n[A>>2]=c,n[r+12>>2]=c,n[c+8>>2]=r,n[c+12>>2]=t;break}if(r=23732+((t=(r=f>>>8)?f>>>0>16777215?31:f>>>((t=14-((k=((E=r<<(v=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(t=((E<<=k)+245760|0)>>>16&2))+(E<<t>>>15)|0)+7|0)&1|t<<1:0)<<2)|0,n[c+28>>2]=t,n[(A=c+16|0)+4>>2]=0,n[A>>2]=0,!(i&(A=1<<t))){n[5858]=i|A,n[r>>2]=c,n[c+24>>2]=r,n[c+12>>2]=c,n[c+8>>2]=c;break}r=0|n[r>>2];e:do{if((-8&n[r+4>>2])!=(0|f)){for(i=f<<(31==(0|t)?0:25-(t>>>1));A=0|n[(t=r+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|f)){r=A;break e}i<<=1,r=A}n[t>>2]=c,n[c+24>>2]=r,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);E=0|n[(v=r+8|0)>>2],n[E+12>>2]=c,n[v>>2]=c,n[c+8>>2]=E,n[c+12>>2]=r,n[c+24>>2]=0}}while(0);return F=e,0|(E=l+8|0)}h=u}else h=u;else h=-1}while(0);if((t=0|n[5859])>>>0>=h>>>0)return r=t-h|0,A=0|n[5862],r>>>0>15?(E=A+h|0,n[5862]=E,n[5859]=r,n[E+4>>2]=1|r,n[A+t>>2]=r,n[A+4>>2]=3|h):(n[5859]=0,n[5862]=0,n[A+4>>2]=3|t,n[(E=A+t+4|0)>>2]=1|n[E>>2]),F=e,0|(E=A+8|0);if((f=0|n[5860])>>>0>h>>>0)return k=f-h|0,n[5860]=k,v=(E=0|n[5863])+h|0,n[5863]=v,n[v+4>>2]=1|k,n[E+4>>2]=3|h,F=e,0|(E=E+8|0);if(0|n[5975]?A=0|n[5977]:(n[5977]=4096,n[5976]=4096,n[5978]=-1,n[5979]=-1,n[5980]=0,n[5968]=0,n[5975]=-16&g^1431655768,A=4096),l=h+48|0,(u=(a=A+(s=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return F=e,0|(E=0);if(0|(A=0|n[5967])&&(g=(c=0|n[5965])+u|0)>>>0<=c>>>0|g>>>0>A>>>0)return F=e,0|(E=0);A:do{if(4&n[5968])r=0,b=143;else{t=0|n[5863];e:do{if(t){for(i=23876;!((g=0|n[i>>2])>>>0<=t>>>0&&(g+(0|n[i+4>>2])|0)>>>0>t>>>0);){if(!(A=0|n[i+8>>2])){b=128;break e}i=A}if((r=a-f&o)>>>0<2147483647)if((0|(A=0|je(0|r)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){f=r,a=A,b=145;break A}}else i=A,b=136;else r=0}else b=128}while(0);do{if(128==(0|b))if(-1!=(0|(t=0|je(0)))&&(r=t,w=(r=((w=(d=0|n[5976])+-1|0)&r?(w+r&0-d)-r|0:0)+u|0)+(d=0|n[5965])|0,r>>>0>h>>>0&r>>>0<2147483647)){if(0|(g=0|n[5967])&&w>>>0<=d>>>0|w>>>0>g>>>0){r=0;break}if((0|(A=0|je(0|r)))==(0|t)){f=r,a=t,b=145;break A}i=A,b=136}else r=0}while(0);do{if(136==(0|b)){if(t=0-r|0,!(l>>>0>r>>>0&r>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){r=0;break}f=r,a=i,b=145;break A}if((A=s-r+(A=0|n[5977])&0-A)>>>0>=2147483647){f=r,a=i,b=145;break A}if(-1==(0|je(0|A))){je(0|t),r=0;break}f=A+r|0,a=i,b=145;break A}}while(0);n[5968]=4|n[5968],b=143}}while(0);if(143==(0|b)&&u>>>0<2147483647&&!(-1==(0|(k=0|je(0|u)))|1^(p=(B=(w=0|je(0))-k|0)>>>0>(h+40|0)>>>0)|k>>>0<w>>>0&-1!=(0|k)&-1!=(0|w)^1)&&(f=p?B:r,a=k,b=145),145==(0|b)){r=(0|n[5965])+f|0,n[5965]=r,r>>>0>(0|n[5966])>>>0&&(n[5966]=r),s=0|n[5863];A:do{if(s){for(r=23876;;){if((0|a)==((A=0|n[r>>2])+(t=0|n[r+4>>2])|0)){b=154;break}if(!(i=0|n[r+8>>2]))break;r=i}if(!(154!=(0|b)||(v=r+4|0,8&n[r+12>>2]))&&a>>>0>s>>>0&A>>>0<=s>>>0){n[v>>2]=t+f,v=s+(k=7&(k=s+8|0)?0-k&7:0)|0,k=(E=(0|n[5860])+f|0)-k|0,n[5863]=v,n[5860]=k,n[v+4>>2]=1|k,n[s+E+4>>2]=40,n[5864]=n[5979];break}for(a>>>0<(0|n[5861])>>>0&&(n[5861]=a),t=a+f|0,r=23876;;){if((0|n[r>>2])==(0|t)){b=162;break}if(!(A=0|n[r+8>>2]))break;r=A}if(162==(0|b)&&!(8&n[r+12>>2])){n[r>>2]=a,n[(c=r+4|0)>>2]=(0|n[c>>2])+f,u=(c=a+(7&(c=a+8|0)?0-c&7:0)|0)+h|0,l=(r=t+(7&(r=t+8|0)?0-r&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|s)==(0|r))E=(0|n[5860])+l|0,n[5860]=E,n[5863]=u,n[u+4>>2]=1|E;else{if((0|n[5862])==(0|r)){E=(0|n[5859])+l|0,n[5859]=E,n[5862]=u,n[u+4>>2]=1|E,n[u+E>>2]=E;break}if(1==(3&(A=0|n[r+4>>2]))){f=-8&A,i=A>>>3;r:do{if(A>>>0<256){if(A=0|n[r+8>>2],(0|(t=0|n[r+12>>2]))==(0|A)){n[5857]=n[5857]&~(1<<i);break}n[A+12>>2]=t,n[t+8>>2]=A;break}a=0|n[r+24>>2],A=0|n[r+12>>2];do{if((0|A)==(0|r)){if(A=0|n[(i=(t=r+16|0)+4|0)>>2])t=i;else if(!(A=0|n[t>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,t=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,t=o}n[t>>2]=0}else E=0|n[r+8>>2],n[E+12>>2]=A,n[A+8>>2]=E}while(0);if(!a)break;i=23732+((t=0|n[r+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|r)){if(n[i>>2]=A,0|A)break;n[5858]=n[5858]&~(1<<t);break r}if(n[((0|n[(E=a+16|0)>>2])==(0|r)?E:a+20)>>2]=A,!A)break r}while(0);if(n[A+24>>2]=a,0|(i=0|n[(t=r+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(t=0|n[t+4>>2]))break;n[A+20>>2]=t,n[t+24>>2]=A}while(0);r=r+f|0,o=f+l|0}else o=l;if(n[(r=r+4|0)>>2]=-2&n[r>>2],n[u+4>>2]=1|o,n[u+o>>2]=o,r=o>>>3,o>>>0<256){t=23468+(r<<1<<2)|0,(A=0|n[5857])&(r=1<<r)?r=0|n[(A=t+8|0)>>2]:(n[5857]=A|r,r=t,A=t+8|0),n[A>>2]=u,n[r+12>>2]=u,n[u+8>>2]=r,n[u+12>>2]=t;break}r=o>>>8;do{if(r){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((k=((E=r<<(v=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((E<<=k)+245760|0)>>>16&2))+(E<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(r=23732+(i<<2)|0,n[u+28>>2]=i,n[(A=u+16|0)+4>>2]=0,n[A>>2]=0,!((A=0|n[5858])&(t=1<<i))){n[5858]=A|t,n[r>>2]=u,n[u+24>>2]=r,n[u+12>>2]=u,n[u+8>>2]=u;break}r=0|n[r>>2];r:do{if((-8&n[r+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1));A=0|n[(t=r+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){r=A;break r}i<<=1,r=A}n[t>>2]=u,n[u+24>>2]=r,n[u+12>>2]=u,n[u+8>>2]=u;break e}}while(0);E=0|n[(v=r+8|0)>>2],n[E+12>>2]=u,n[v>>2]=u,n[u+8>>2]=E,n[u+12>>2]=r,n[u+24>>2]=0}}while(0);return F=e,0|(E=c+8|0)}for(r=23876;!((A=0|n[r>>2])>>>0<=s>>>0&&(E=A+(0|n[r+4>>2])|0)>>>0>s>>>0);)r=0|n[r+8>>2];r=(A=(A=(o=E+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=s+16|0)>>>0?s:A)+8|0,v=a+(k=7&(k=a+8|0)?0-k&7:0)|0,k=(t=f+-40|0)-k|0,n[5863]=v,n[5860]=k,n[v+4>>2]=1|k,n[a+t+4>>2]=40,n[5864]=n[5979],n[(t=A+4|0)>>2]=27,n[r>>2]=n[5969],n[r+4>>2]=n[5970],n[r+8>>2]=n[5971],n[r+12>>2]=n[5972],n[5969]=a,n[5970]=f,n[5972]=0,n[5971]=r,r=A+24|0;do{v=r,n[(r=r+4|0)>>2]=7}while((v+8|0)>>>0<E>>>0);if((0|A)!=(0|s)){if(a=A-s|0,n[t>>2]=-2&n[t>>2],n[s+4>>2]=1|a,n[A>>2]=a,r=a>>>3,a>>>0<256){t=23468+(r<<1<<2)|0,(A=0|n[5857])&(r=1<<r)?r=0|n[(A=t+8|0)>>2]:(n[5857]=A|r,r=t,A=t+8|0),n[A>>2]=s,n[r+12>>2]=s,n[s+8>>2]=r,n[s+12>>2]=t;break}if(t=23732+((i=(r=a>>>8)?a>>>0>16777215?31:a>>>((i=14-((k=((E=r<<(v=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((E<<=k)+245760|0)>>>16&2))+(E<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,n[s+28>>2]=i,n[s+20>>2]=0,n[o>>2]=0,!((r=0|n[5858])&(A=1<<i))){n[5858]=r|A,n[t>>2]=s,n[s+24>>2]=t,n[s+12>>2]=s,n[s+8>>2]=s;break}r=0|n[t>>2];e:do{if((-8&n[r+4>>2])!=(0|a)){for(i=a<<(31==(0|i)?0:25-(i>>>1));A=0|n[(t=r+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){r=A;break e}i<<=1,r=A}n[t>>2]=s,n[s+24>>2]=r,n[s+12>>2]=s,n[s+8>>2]=s;break A}}while(0);E=0|n[(v=r+8|0)>>2],n[E+12>>2]=s,n[v>>2]=s,n[s+8>>2]=E,n[s+12>>2]=r,n[s+24>>2]=0}}else!(0|(E=0|n[5861]))|a>>>0<E>>>0&&(n[5861]=a),n[5969]=a,n[5970]=f,n[5972]=0,n[5866]=n[5975],n[5865]=-1,n[5870]=23468,n[5869]=23468,n[5872]=23476,n[5871]=23476,n[5874]=23484,n[5873]=23484,n[5876]=23492,n[5875]=23492,n[5878]=23500,n[5877]=23500,n[5880]=23508,n[5879]=23508,n[5882]=23516,n[5881]=23516,n[5884]=23524,n[5883]=23524,n[5886]=23532,n[5885]=23532,n[5888]=23540,n[5887]=23540,n[5890]=23548,n[5889]=23548,n[5892]=23556,n[5891]=23556,n[5894]=23564,n[5893]=23564,n[5896]=23572,n[5895]=23572,n[5898]=23580,n[5897]=23580,n[5900]=23588,n[5899]=23588,n[5902]=23596,n[5901]=23596,n[5904]=23604,n[5903]=23604,n[5906]=23612,n[5905]=23612,n[5908]=23620,n[5907]=23620,n[5910]=23628,n[5909]=23628,n[5912]=23636,n[5911]=23636,n[5914]=23644,n[5913]=23644,n[5916]=23652,n[5915]=23652,n[5918]=23660,n[5917]=23660,n[5920]=23668,n[5919]=23668,n[5922]=23676,n[5921]=23676,n[5924]=23684,n[5923]=23684,n[5926]=23692,n[5925]=23692,n[5928]=23700,n[5927]=23700,n[5930]=23708,n[5929]=23708,n[5932]=23716,n[5931]=23716,v=a+(k=7&(k=a+8|0)?0-k&7:0)|0,k=(E=f+-40|0)-k|0,n[5863]=v,n[5860]=k,n[v+4>>2]=1|k,n[a+E+4>>2]=40,n[5864]=n[5979]}while(0);if((r=0|n[5860])>>>0>h>>>0)return k=r-h|0,n[5860]=k,v=(E=0|n[5863])+h|0,n[5863]=v,n[v+4>>2]=1|k,n[E+4>>2]=3|h,F=e,0|(E=E+8|0)}return n[(E=23424)>>2]=12,F=e,0|(E=0)}function xe(A){var e=0,r=0,t=0,i=0,o=0,a=0,f=0,l=0;if(A|=0){r=A+-8|0,i=0|n[5861],l=r+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)f=r,a=r;else{if(t=0|n[r>>2],!(3&A))return;if(o=t+e|0,(a=r+(0-t)|0)>>>0<i>>>0)return;if((0|n[5862])==(0|a)){if(3&~(e=0|n[(A=l+4|0)>>2])){f=a,e=o;break}return n[5859]=o,n[A>>2]=-2&e,n[a+4>>2]=1|o,void(n[a+o>>2]=o)}if(r=t>>>3,t>>>0<256){if(A=0|n[a+8>>2],(0|(e=0|n[a+12>>2]))==(0|A)){n[5857]=n[5857]&~(1<<r),f=a,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,f=a,e=o;break}i=0|n[a+24>>2],A=0|n[a+12>>2];do{if((0|A)==(0|a)){if(A=0|n[(r=(e=a+16|0)+4|0)>>2])e=r;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(r=0|n[(t=A+20|0)>>2])A=r,e=t;else{if(!(r=0|n[(t=A+16|0)>>2]))break;A=r,e=t}n[e>>2]=0}else f=0|n[a+8>>2],n[f+12>>2]=A,n[A+8>>2]=f}while(0);if(i){if(e=0|n[a+28>>2],(0|n[(r=23732+(e<<2)|0)>>2])==(0|a)){if(n[r>>2]=A,!A){n[5858]=n[5858]&~(1<<e),f=a,e=o;break}}else if(n[((0|n[(f=i+16|0)>>2])==(0|a)?f:i+20)>>2]=A,!A){f=a,e=o;break}n[A+24>>2]=i,0|(r=0|n[(e=a+16|0)>>2])&&(n[A+16>>2]=r,n[r+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,f=a,e=o):(f=a,e=o)}else f=a,e=o}}while(0);if(!(a>>>0>=l>>>0)&&1&(t=0|n[(A=l+4|0)>>2])){if(2&t)n[A>>2]=-2&t,n[f+4>>2]=1|e,n[a+e>>2]=e,i=e;else{if((0|n[5863])==(0|l)){if(l=(0|n[5860])+e|0,n[5860]=l,n[5863]=f,n[f+4>>2]=1|l,(0|f)!=(0|n[5862]))return;return n[5862]=0,void(n[5859]=0)}if((0|n[5862])==(0|l))return l=(0|n[5859])+e|0,n[5859]=l,n[5862]=a,n[f+4>>2]=1|l,void(n[a+l>>2]=l);i=(-8&t)+e|0,r=t>>>3;do{if(t>>>0<256){if(e=0|n[l+8>>2],(0|(A=0|n[l+12>>2]))==(0|e)){n[5857]=n[5857]&~(1<<r);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[l+24>>2],A=0|n[l+12>>2];do{if((0|A)==(0|l)){if(A=0|n[(r=(e=l+16|0)+4|0)>>2])e=r;else if(!(A=0|n[e>>2])){r=0;break}for(;;)if(r=0|n[(t=A+20|0)>>2])A=r,e=t;else{if(!(r=0|n[(t=A+16|0)>>2]))break;A=r,e=t}n[e>>2]=0,r=A}else r=0|n[l+8>>2],n[r+12>>2]=A,n[A+8>>2]=r,r=A}while(0);if(0|o){if(A=0|n[l+28>>2],(0|n[(e=23732+(A<<2)|0)>>2])==(0|l)){if(n[e>>2]=r,!r){n[5858]=n[5858]&~(1<<A);break}}else if(n[((0|n[(t=o+16|0)>>2])==(0|l)?t:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(e=0|n[(A=l+16|0)>>2])&&(n[r+16>>2]=e,n[e+24>>2]=r),0|(A=0|n[A+4>>2])&&(n[r+20>>2]=A,n[A+24>>2]=r)}}while(0);if(n[f+4>>2]=1|i,n[a+i>>2]=i,(0|f)==(0|n[5862]))return void(n[5859]=i)}if(A=i>>>3,i>>>0<256)return r=23468+(A<<1<<2)|0,(e=0|n[5857])&(A=1<<A)?A=0|n[(e=r+8|0)>>2]:(n[5857]=e|A,A=r,e=r+8|0),n[e>>2]=f,n[A+12>>2]=f,n[f+8>>2]=A,void(n[f+12>>2]=r);A=23732+((t=(A=i>>>8)?i>>>0>16777215?31:i>>>((t=14-((o=((l=A<<(a=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(t=((l<<=o)+245760|0)>>>16&2))+(l<<t>>>15)|0)+7|0)&1|t<<1:0)<<2)|0,n[f+28>>2]=t,n[f+20>>2]=0,n[f+16>>2]=0,e=0|n[5858],r=1<<t;A:do{if(e&r){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(t=i<<(31==(0|t)?0:25-(t>>>1));e=0|n[(r=A+16+(t>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}t<<=1,A=e}n[r>>2]=f,n[f+24>>2]=A,n[f+12>>2]=f,n[f+8>>2]=f;break A}}while(0);l=0|n[(a=A+8|0)>>2],n[l+12>>2]=f,n[a>>2]=f,n[f+8>>2]=l,n[f+12>>2]=A,n[f+24>>2]=0}else n[5858]=e|r,n[A>>2]=f,n[f+24>>2]=A,n[f+12>>2]=f,n[f+8>>2]=f}while(0);if(l=(0|n[5865])-1|0,n[5865]=l,!(0|l)){for(A=23884;A=0|n[A>>2];)A=A+8|0;n[5865]=-1}}}}function Ie(A,e){e|=0;var r=0;return(A|=0)?(r=0|k(e,A),(e|A)>>>0>65535&&(r=((r>>>0)/(A>>>0)|0)==(0|e)?r:-1)):r=0,(A=0|Ce(r))&&3&n[A+-4>>2]?(We(0|A,0,0|r),0|A):0|A}function Fe(A,e,r,t){return 0|(_((e|=0)+(t|=0)+((r=(A|=0)+(r|=0)>>>0)>>>0<A>>>0|0)>>>0|0),r)}function Pe(A,e,r,t){return 0|(_(0|(t=(e|=0)-(t|=0)-((r|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-r>>>0)}function Ge(A){return 0|((A|=0)?31-(0|y(A^A-1)):32)}function Se(A,e,r,t,i){i|=0;var o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0;if(u=A|=0,a=r|=0,f=h=t|=0,!(s=l=e|=0))return o=!!(0|i),f?o?(n[i>>2]=0|A,n[i+4>>2]=0,i=0,0|(_(0|(h=0)),i)):(i=0,0|(_(0|(h=0)),i)):(o&&(n[i>>2]=(u>>>0)%(a>>>0),n[i+4>>2]=0),i=(u>>>0)/(a>>>0)>>>0,0|(_(0|(h=0)),i));o=!(0|f);do{if(a){if(!o){if((o=(0|y(0|f))-(0|y(0|s))|0)>>>0<=31){a=c=o+1|0,A=u>>>(c>>>0)&(e=o-31>>31)|s<<(f=31-o|0),e&=s>>>(c>>>0),o=0,f=u<<f;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|l,i=0,0|(_(0|(h=0)),i)):(i=0,0|(_(0|(h=0)),i))}if((o=a-1|0)&a){a=f=33+(0|y(0|a))-(0|y(0|s))|0,A=(c=32-f|0)-1>>31&s>>>((g=f-32|0)>>>0)|(s<<c|u>>>(f>>>0))&(e=g>>31),e&=s>>>(f>>>0),o=u<<(d=64-f|0)&(l=c>>31),f=(s<<d|u>>>(g>>>0))&l|u<<c&f-33>>31;break}return 0|i&&(n[i>>2]=o&u,n[i+4>>2]=0),1==(0|a)?(d=0|A,0|(_(0|(g=0|l)),d)):(g=s>>>((d=0|Ge(0|a))>>>0)|0,d=s<<32-d|u>>>(d>>>0),0|(_(0|g),d))}if(o)return 0|i&&(n[i>>2]=(s>>>0)%(a>>>0),n[i+4>>2]=0),d=(s>>>0)/(a>>>0)>>>0,0|(_(0|(g=0)),d);if(!u)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(s>>>0)%(f>>>0)),d=(s>>>0)/(f>>>0)>>>0,0|(_(0|(g=0)),d);if(!((o=f-1|0)&f))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&s),g=0,d=s>>>((0|Ge(0|f))>>>0),0|(_(0|g),d);if((o=(0|y(0|f))-(0|y(0|s))|0)>>>0<=30){a=e=o+1|0,A=s<<(f=31-o|0)|u>>>(e>>>0),e=s>>>(e>>>0),o=0,f=u<<f;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|l,d=0,0|(_(0|(g=0)),d)):(d=0,0|(_(0|(g=0)),d))}while(0);if(a){s=0|Fe(0|(c=0|r),0|(u=0|h),-1,-1),r=0|m(),l=f,f=0;do{t=l,l=o>>>31|l<<1,o=f|o<<1,Pe(0|s,0|r,0|(t=A<<1|t>>>31),0|(h=A>>>31|e<<1)),f=1&(g=(d=0|m())>>31|((0|d)<0?-1:0)<<1),A=0|Pe(0|t,0|h,g&c,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&u),e=0|m(),a=a-1|0}while(0|a);s=l,l=0}else s=f,l=0,f=0;return a=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),d=o<<1&-2|f,0|(_(0|(g=(0|o)>>>31|(s|a)<<1|l)),d)}function Ue(A,e,r,t){r|=0;var n,i,o,a,f;return i=(t|=0)>>31|((0|t)<0?-1:0)<<1,n=((0|t)<0?-1:0)>>31|((0|t)<0?-1:0)<<1,o=0|Pe((f=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0),(a=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e,0|f,0|a),A=i^f,e=n^a,0|Pe(Se(o,0|m(),0|Pe(i^r,n^t,0|i,0|n),0|m(),0)^A,m()^e,0|A,0|e)}function Te(A,e,r,t){e|=0,t|=0;var n,i;return r=0|function(A,e){var r,t,n,i=0;return A=((r=0|k(i=65535&(e|=0),n=65535&(A|=0)))>>>16)+(0|k(i,t=A>>>16))|0,e=0|k(i=e>>>16,n),0|(_((A>>>16)+(0|k(i,t))+(((65535&A)+e|0)>>>16)|0),A+e<<16|65535&r)}(n=A|=0,i=r|=0),A=0|m(),0|(_((0|k(e,i))+(0|k(t,n))+A|0),r)}function Re(A,e,r,t){r|=0;var i,o,a,f,l,s;return i=F,F=F+16|0,f=0|i,s=(t|=0)>>31|((0|t)<0?-1:0)<<1,l=((0|t)<0?-1:0)>>31|((0|t)<0?-1:0)<<1,Se(A=0|Pe((a=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0),(o=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e,0|a,0|o),e=0|m(),0|Pe(s^r,l^t,0|s,0|l),0|m(),f),t=0|Pe(n[f>>2]^a,n[f+4>>2]^o,0|a,0|o),r=0|m(),F=i,0|(_(0|r),t)}function Le(A,e,r,t){var i,o;return o=F,F=F+16|0,Se(A|=0,e|=0,r|=0,t|=0,i=0|o),F=o,0|(_(0|n[i+4>>2]),n[i>>2])}function He(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(_(e>>r),A>>>r|(e&(1<<r)-1)<<32-r):(_(0|((0|e)<0?-1:0)),e>>r-32)}function ze(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(_(e>>>r|0),A>>>r|(e&(1<<r)-1)<<32-r):(_(0),e>>>r-32|0)}function Oe(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(_(e<<r|(A&(1<<r)-1<<32-r)>>>32-r),A<<r):(_(A<<r-32),0)}function Ve(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+E(+A,+e)}function Ye(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+v(+A,+e)}function Ne(A){return(A=+A)>=0?+f(A+.5):+p(A-.5)}function Ze(A,e,r){A|=0,e|=0;var i,o,a=0;if((0|(r|=0))>=8192)return C(0|A,0|e,0|r),0|A;if(o=0|A,i=A+r|0,(3&A)==(3&e)){for(;3&A;){if(!r)return 0|o;t[A|0]=0|t[e|0],A=A+1|0,e=e+1|0,r=r-1|0}for(a=(r=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|r);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(r=i-4|0;(0|A)<(0|r);)t[A|0]=0|t[e|0],t[A+1|0]=0|t[e+1|0],t[A+2|0]=0|t[e+2|0],t[A+3|0]=0|t[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)t[A|0]=0|t[e|0],A=A+1|0,e=e+1|0;return 0|o}function We(A,e,r){e|=0;var i,o=0,a=0,f=0;if(i=(A|=0)+(r|=0)|0,e&=255,(0|r)>=67){for(;3&A;)t[A|0]=e,A=A+1|0;for(f=e|e<<8|e<<16|e<<24,a=(o=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=f,n[A+4>>2]=f,n[A+8>>2]=f,n[A+12>>2]=f,n[A+16>>2]=f,n[A+20>>2]=f,n[A+24>>2]=f,n[A+28>>2]=f,n[A+32>>2]=f,n[A+36>>2]=f,n[A+40>>2]=f,n[A+44>>2]=f,n[A+48>>2]=f,n[A+52>>2]=f,n[A+56>>2]=f,n[A+60>>2]=f,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=f,A=A+4|0}for(;(0|A)<(0|i);)t[A|0]=e,A=A+1|0;return i-r|0}function Ke(A){return(A=+A)>=0?+f(A+.5):+p(A-.5)}function je(A){A|=0;var e,r,t;return t=0|M(),(0|A)>0&(0|(e=(r=0|n[a>>2])+A|0))<(0|r)|(0|e)<0?(I(0|e),D(12),-1):(0|e)>(0|t)&&!(0|x(0|e))?(D(12),-1):(n[a>>2]=e,0|r)}return{___divdi3:Ue,___muldi3:Te,___remdi3:Re,___uremdi3:Le,_areNeighborCells:function(A,e,r,t,i){i|=0;var o,a,f,l=0,s=0,u=0,c=0;if(f=F,F=F+64|0,a=f,o=f+56|0,!(!0&134217728==(2013265920&(e|=0))&!0&134217728==(2013265920&(t|=0))))return F=f,0|(i=5);if((0|(A|=0))==(0|(r|=0))&(0|e)==(0|t))return n[i>>2]=0,F=f,0|(i=0);if(s=0|ze(0|A,0|e,52),m(),s&=15,c=0|ze(0|r,0|t,52),m(),(0|s)!=(15&c))return F=f,0|(i=12);if(l=s+-1|0,s>>>0>1){SA(A,e,l,a),SA(r,t,l,o),u=0|n[(c=a)>>2],c=0|n[c+4>>2];A:do{if((0|u)==(0|n[o>>2])&&(0|c)==(0|n[o+4>>2])){l=0|ze(0|A,0|e,0|(s=3*(15^s)|0)),m(),l&=7,s=0|ze(0|r,0|t,0|s),m(),s&=7;do{if(!(0|l)|!(0|s))n[i>>2]=1,l=0;else if(7==(0|l))l=5;else{if(1==(0|l)|1==(0|s)&&0|TA(u,c)){l=5;break}if((0|n[15536+(l<<2)>>2])!=(0|s)&&(0|n[15568+(l<<2)>>2])!=(0|s))break A;n[i>>2]=1,l=0}}while(0);return F=f,0|(i=l)}}while(0)}s=(l=a)+56|0;do{n[l>>2]=0,l=l+4|0}while((0|l)<(0|s));return P(A,e,1,a),l=(0|n[(e=a)>>2])==(0|r)&&(0|n[e+4>>2])==(0|t)||(0|n[(e=a+8|0)>>2])==(0|r)&&(0|n[e+4>>2])==(0|t)||(0|n[(e=a+16|0)>>2])==(0|r)&&(0|n[e+4>>2])==(0|t)||(0|n[(e=a+24|0)>>2])==(0|r)&&(0|n[e+4>>2])==(0|t)||(0|n[(e=a+32|0)>>2])==(0|r)&&(0|n[e+4>>2])==(0|t)||(0|n[(e=a+40|0)>>2])==(0|r)&&(0|n[e+4>>2])==(0|t)?1:1&((0|n[(l=a+48|0)>>2])==(0|r)?(0|n[l+4>>2])==(0|t):0),n[i>>2]=l,F=f,0|(i=0)},_bitshift64Ashr:He,_bitshift64Lshr:ze,_bitshift64Shl:Oe,_calloc:Ie,_cellAreaKm2:function(A,e,r){return 0|(A=0|te(A|=0,e|=0,r|=0))||(i[r>>3]=6371.007180918475*+i[r>>3]*6371.007180918475),0|A},_cellAreaM2:function(A,e,r){return 0|(A=0|te(A|=0,e|=0,r|=0))||(i[r>>3]=6371.007180918475*+i[r>>3]*6371.007180918475*1e3*1e3),0|A},_cellAreaRads2:te,_cellToBoundary:KA,_cellToCenterChild:function(A,e,r,t){r|=0,t|=0;var i=0;return i=0|ze(0|(A|=0),0|(e|=0),52),m(),(0|r)<16&(0|(i&=15))<=(0|r)?((0|i)<(0|r)&&(i=0|Oe(-1,-1,3+(3*(r+-1-i|0)|0)|0),i=0|Oe(0|~i,0|~m(),3*(15-r|0)|0),e=~m()&e,A&=~i),i=0|Oe(0|r,0,52),r=-15728641&e|m(),n[t>>2]=A|i,n[t+4>>2]=r,0|(t=0)):0|(t=4)},_cellToChildPos:function(A,e,r,t){r|=0,t|=0;var i,o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0;if(i=F,F=F+16|0,B=i,p=0|ze(0|(A|=0),0|(e|=0),52),m(),p&=15,r>>>0>15)return F=i,0|(p=4);if((0|p)<(0|r))return F=i,0|(p=12);if((0|p)!=(0|r))if(a=0|Oe(0|r,0,52),a|=A,l=m()|-15728641&e,(0|p)>(0|r)){s=r;do{b=0|Oe(7,0,3*(14-s|0)|0),s=s+1|0,a|=b,l=m()|l}while((0|s)<(0|p));b=a}else b=a;else b=A,l=e;w=0|ze(0|b,0|l,45),m();A:do{if(0|H(127&w)){if(s=0|ze(0|b,0|l,52),m(),0|(s&=15))for(a=1;;){if(!(!((w=0|Oe(7,0,3*(15-a|0)|0))&b)&!(m()&l))){u=33;break A}if(!(a>>>0<s>>>0))break;a=a+1|0}if(n[(w=t)>>2]=0,n[w+4>>2]=0,(0|p)>(0|r)){for(w=-15728641&e,d=p;;){if(g=d,(d=d+-1|0)>>>0>15|(0|p)<(0|d)){u=19;break}if((0|p)!=(0|d))if(a=0|Oe(0|d,0,52),a|=A,s=m()|w,(0|p)<(0|g))h=a;else{u=d;do{h=0|Oe(7,0,3*(14-u|0)|0),u=u+1|0,a|=h,s=m()|s}while((0|u)<(0|p));h=a}else h=A,s=e;if(c=0|ze(0|h,0|s,45),m(),0|H(127&c)){c=0|ze(0|h,0|s,52),m(),c&=15;e:do{if(c)for(u=1;;){if(a=0|ze(0|h,0|s,3*(15-u|0)|0),m(),0|(a&=7))break e;if(!(u>>>0<c>>>0)){a=0;break}u=u+1|0}else a=0}while(0);a=1&!(0|a)}else a=0;if(s=0|ze(0|A,0|e,3*(15-g|0)|0),m(),7==(0|(s&=7))){o=5,u=42;break}if(1==(0|s)&(a=!!(0|a))){o=5,u=42;break}if(0|(h=s+((!!(0|s)&a)<<31>>31)|0)&&(u=0|ue(7,0,u=p-g|0,((0|u)<0)<<31>>31),c=0|m(),a?(a=0|Fe(0|(a=0|Te(0|u,0|c,5,0)),0|m(),-5,-1),a=0|Fe(0|(a=0|Ue(0|a,0|m(),6,0)),0|m(),1,0),s=0|m()):(a=u,s=c),g=0|Fe(0|a,0|s,0|(g=0|Te(0|u,0|c,0|(g=h+-1|0),((0|g)<0)<<31>>31)),0|m()),c=0|Fe(0|g,0|(h=0|m()),0|n[(c=t)>>2],0|n[c+4>>2]),h=0|m(),n[(g=t)>>2]=c,n[g+4>>2]=h),(0|d)<=(0|r)){u=37;break}}if(19==(0|u))Q(23313,22674,1099,22710);else{if(37==(0|u)){o=0|n[(f=t)+4>>2],f=0|n[f>>2];break}if(42==(0|u))return F=i,0|o}}else o=0,f=0}else u=33}while(0);A:do{if(33==(0|u)){if(n[(w=t)>>2]=0,n[w+4>>2]=0,(0|p)>(0|r)){for(a=p;;){if(o=0|ze(0|A,0|e,3*(15-a|0)|0),m(),7==(0|(o&=7))){o=5;break}if(o=0|Te(0|(f=0|ue(7,0,f=p-a|0,((0|f)<0)<<31>>31)),0|m(),0|o,0),f=0|m(),f=0|Fe(0|n[(w=t)>>2],0|n[w+4>>2],0|o,0|f),o=0|m(),n[(w=t)>>2]=f,n[w+4>>2]=o,(0|(a=a+-1|0))<=(0|r))break A}return F=i,0|o}o=0,f=0}}while(0);return 0|UA(b,l,p,B)&&Q(23313,22674,1063,22725),((0|o)>-1|-1==(0|o)&f>>>0>4294967295)&((0|(B=0|n[(p=B)+4>>2]))>(0|o)|((0|B)==(0|o)?(0|n[p>>2])>>>0>f>>>0:0))?(F=i,0|(p=0)):(Q(23313,22674,1139,22710),0)},_cellToChildren:function(A,e,r,t){t|=0;var i,o,a=0,f=0;if(o=F,F=F+16|0,JA(i=o,A|=0,e|=0,r|=0),!(0|(A=0|n[(e=i)>>2]))&!(0|(e=0|n[e+4>>2])))return F=o,0;a=0,r=0;do{n[(f=t+(a<<3)|0)>>2]=A,n[f+4>>2]=e,a=0|Fe(0|a,0|r,1,0),r=0|m(),XA(i),A=0|n[(f=i)>>2],e=0|n[f+4>>2]}while(!(!(0|A)&!(0|e)));return F=o,0},_cellToChildrenSize:UA,_cellToLatLng:WA,_cellToLocalIj:function(A,e,r,t,n,i){var o,a;return A|=0,e|=0,r|=0,t|=0,i|=0,a=F,F=F+16|0,o=a,(n|=0)?A=15:(A=0|le(A,e,r,t,o))||(pA(o,i),A=0),F=a,0|A},_cellToParent:SA,_cellToVertex:ke,_cellToVertexes:function(A,e,r){r|=0;var t,i=0,o=0;return o=!(0|TA(A|=0,e|=0)),t=!(0|(i=0|ke(A,e,0,r))),o?t?0|(i=0|ke(A,e,1,r+8|0))||0|(i=0|ke(A,e,2,r+16|0))||0|(i=0|ke(A,e,3,r+24|0))||(i=0|ke(A,e,4,r+32|0))?0|(o=i):0|ke(A,e,5,r+40|0):0|(o=i):t?0|(i=0|ke(A,e,1,r+8|0))||0|(i=0|ke(A,e,2,r+16|0))||0|(i=0|ke(A,e,3,r+24|0))||0|(i=0|ke(A,e,4,r+32|0))?0|(o=i):(n[(o=r+40|0)>>2]=0,n[o+4>>2]=0,0|(o=0)):0|(o=i)},_cellsToDirectedEdge:function(A,e,r,t,i){return i|=0,7==(0|(r=0|R(A|=0,e|=0,r|=0,t|=0)))?0|(i=11):(t=0|Oe(0|r,0,56),e=-2130706433&e|m()|268435456,n[i>>2]=A|t,n[i+4>>2]=e,0|(i=0))},_cellsToLinkedMultiPolygon:function(A,e,r){r|=0;var t,i,o,a=0;if(o=F,F=F+32|0,t=o,A=0|function(A,e,r){A|=0,r|=0;var t,i,o=0,a=0,f=0,l=0,s=0,u=0;if(i=F,F=F+176|0,t=i,(0|(e|=0))<1)return ve(r,0,0),F=i,0;for(s=0|ze(0|n[(s=A)>>2],0|n[s+4>>2],52),m(),ve(r,(0|e)>6?e:6,15&s),s=0;!(0|(o=0|KA(0|n[(o=A+(s<<3)|0)>>2],0|n[o+4>>2],t)));){if((0|(o=0|n[t>>2]))>0){l=0;do{f=t+8+(l<<4)|0,(a=0|Qe(r,o=t+8+((0|(l=l+1|0))%(0|o)<<4)|0,f))?_e(r,a):me(r,f,o),o=0|n[t>>2]}while((0|l)<(0|o))}if((0|(s=s+1|0))>=(0|e)){o=0,u=13;break}}return 13==(0|u)?(F=i,0|o):(Ee(r),F=i,0|(u=o))}(A|=0,e|=0,i=o+16|0),0|A)return F=o,0|(r=A);if(n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,0|(A=0|ye(i)))do{e=0|ne(r);do{ie(e,A),a=A+16|0,n[t>>2]=n[a>>2],n[t+4>>2]=n[a+4>>2],n[t+8>>2]=n[a+8>>2],n[t+12>>2]=n[a+12>>2],_e(i,A),A=0|De(i,t)}while(0|A);A=0|ye(i)}while(0|A);return Ee(i),(A=0|ae(r))?(oe(r),F=o,0|(a=A)):(F=o,0|(a=0))},_childPosToCell:function(A,e,r,t,i,o){A|=0,e|=0,o|=0;var a,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0;if(a=F,F=F+16|0,f=a,(i|=0)>>>0>15)return F=a,0|(o=4);if(l=0|ze(0|(r|=0),0|(t|=0),52),m(),(0|(l&=15))>(0|i))return F=a,0|(o=12);if(0|UA(r,t,i,f)&&Q(23313,22674,1063,22725),!(((0|e)>-1|-1==(0|e)&A>>>0>4294967295)&((0|(u=0|n[(c=f)+4>>2]))>(0|e)|((0|u)==(0|e)?(0|n[c>>2])>>>0>A>>>0:0))))return F=a,0|(o=2);c=i-l|0,i=0|Oe(0|i,0,52),s=m()|-15728641&t,n[(u=o)>>2]=i|r,n[u+4>>2]=s,u=0|ze(0|r,0|t,45),m();A:do{if(0|H(127&u)){if(0|l)for(f=1;;){if(!(!((u=0|Oe(7,0,3*(15-f|0)|0))&r)&!(m()&t)))break A;if(!(f>>>0<l>>>0))break;f=f+1|0}if((0|c)<1)return F=a,0|(o=0);for(u=15^l,t=-1,s=1,f=1;;){l=0|ue(7,0,l=c-s|0,((0|l)<0)<<31>>31),r=0|m();do{if(f){if(f=0|Ue(0|(f=0|Fe(0|(f=0|Te(0|l,0|r,5,0)),0|m(),-5,-1)),0|m(),6,0),(0|e)>(0|(i=0|m()))|(0|e)==(0|i)&A>>>0>f>>>0){e=0|Pe(0|(e=0|Fe(0|A,0|e,-1,-1)),0|m(),0|f,0|i),f=0|m(),d=0|n[(h=o)>>2],h=0|n[h+4>>2],g=0|Oe(7,0,0|(w=3*(u+t|0)|0)),h&=~m(),w=0|Oe(0|(i=0|Fe(0|(t=0|Ue(0|e,0|f,0|l,0|r)),0|(A=0|m()),2,0)),0|m(),0|w),h=m()|h,n[(i=o)>>2]=w|d&~g,n[i+4>>2]=h,A=0|Pe(0|e,0|f,0|(A=0|Te(0|t,0|A,0|l,0|r)),0|m()),f=0,e=0|m();break}g=0|n[(w=o)>>2],w=0|n[w+4>>2],d=0|Oe(7,0,3*(u+t|0)|0),w&=~m(),n[(f=o)>>2]=g&~d,n[f+4>>2]=w,f=1;break}i=0|n[(g=o)>>2],g=0|n[g+4>>2],h=0|Oe(7,0,0|(t=3*(u+t|0)|0)),g&=~m(),t=0|Oe(0|(w=0|Ue(0|A,0|e,0|l,0|r)),0|(f=0|m()),0|t),g=m()|g,n[(d=o)>>2]=t|i&~h,n[d+4>>2]=g,A=0|Pe(0|A,0|e,0|(f=0|Te(0|w,0|f,0|l,0|r)),0|m()),f=0,e=0|m()}while(0);if(!((0|c)>(0|s))){e=0;break}t=~s,s=s+1|0}return F=a,0|e}}while(0);if((0|c)<1)return F=a,0|(w=0);for(i=15^l,f=1;;){if(d=0|ue(7,0,d=c-f|0,((0|d)<0)<<31>>31),w=0|m(),r=0|n[(s=o)>>2],s=0|n[s+4>>2],t=0|Oe(7,0,0|(l=3*(i-f|0)|0)),s&=~m(),l=0|Oe(0|(h=0|Ue(0|A,0|e,0|d,0|w)),0|(g=0|m()),0|l),s=m()|s,n[(u=o)>>2]=l|r&~t,n[u+4>>2]=s,A=0|Pe(0|A,0|e,0|(w=0|Te(0|h,0|g,0|d,0|w)),0|m()),e=0|m(),(0|c)<=(0|f)){e=0;break}f=f+1|0}return F=a,0|e},_compactCells:function(A,e,r,t){e|=0;var i,o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,y=0,_=0,D=0;if(!(0|(r|=0))&!(0|(t|=0)))return 0|(_=0);if(a=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if(!((0|t)>0|!(0|t)&r>>>0>0))return 0|(_=0);if(n[(_=e)>>2]=a,n[_+4>>2]=o,1==(0|r)&!(0|t))return 0|(_=0);o=1;do{y=0|n[(E=A+(o<<3)|0)+4>>2],n[(_=e+(o<<3)|0)>>2]=n[E>>2],n[_+4>>2]=y,o=o+1|0}while(0<(0|t)|!(0|t)&o>>>0<r>>>0);return 0|(o=0)}if(!(y=0|Ce(i=r<<3)))return 0|(_=13);if(Ze(0|y,0|A,0|i),!(E=0|Ie(r,8)))return xe(y),0|(_=13);A:do{if(0|r){e:for(;;){k=0|ze(0|(p=0|n[(o=y)>>2]),0|(o=0|n[o+4>>2]),52),m(),v=(k&=15)+-1|0,B=(0|r)>0;r:do{if(!!(0|k)&B){if(d=((0|r)<0)<<31>>31,w=0|Oe(0|v,0,52),b=0|m(),v>>>0>15){if(!(!(0|p)&!(0|o))){_=17;break e}for(a=0;;){if((0|(a=a+1|0))>=(0|r))break r;if(!(!(0|(b=0|n[(t=y+(a<<3)|0)>>2]))&!(0|(t=0|n[t+4>>2])))){o=t,_=17;break e}}}for(a=0,A=p,t=o;;){if(!(!(0|A)&!(0|t))){if(!(!0&!(117440512&t))){_=22;break e}if(l=0|ze(0|A,0|t,52),m(),(0|(l&=15))<(0|v)){o=12,_=28;break e}if((0|l)!=(0|v)&&(A|=w,t=-15728641&t|b,l>>>0>=k>>>0)){f=v;do{g=0|Oe(7,0,3*(14-f|0)|0),f=f+1|0,A|=g,t=m()|t}while(f>>>0<l>>>0)}if(f=0|Le(0|A,0|t,0|r,0|d),m(),!(0|(s=0|n[(l=u=E+(f<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2])))f=u;else for(g=0;;){if((0|g)>(0|r)){_=32;break e}if((0|s)==(0|A)&(-117440513&l)==(0|t)){c=0|ze(0|s,0|l,56),m(),h=(c&=7)+1|0,D=0|ze(0|s,0|l,45),m();t:do{if(0|H(127&D)){if(s=0|ze(0|s,0|l,52),m(),!(s&=15)){l=6;break}for(l=1;;){if(!(!((D=0|Oe(7,0,3*(15-l|0)|0))&A)&!(m()&t))){l=7;break t}if(!(l>>>0<s>>>0)){l=6;break}l=l+1|0}}else l=7}while(0);if((c+2|0)>>>0>l>>>0){_=42;break e}D=0|Oe(0|h,0,56),t=m()|-117440513&t,n[(h=u)>>2]=0,n[h+4>>2]=0,A|=D}else f=(f+1|0)%(0|r)|0;if(!(0|(s=0|n[(l=u=E+(f<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2]))){f=u;break}g=g+1|0}n[(D=f)>>2]=A,n[D+4>>2]=t}if((0|(a=a+1|0))>=(0|r))break r;A=0|n[(t=y+(a<<3)|0)>>2],t=0|n[t+4>>2]}}}while(0);if((r+5|0)>>>0<11){_=85;break}if(!(b=0|Ie((0|r)/6|0,8))){_=49;break}r:do{if(B){g=0,h=0;do{if(!(!(0|(a=0|n[(t=l=E+(g<<3)|0)>>2]))&!(0|(t=0|n[t+4>>2])))){s=0|ze(0|a,0|t,56),m(),A=(s&=7)+1|0,u=-117440513&t,D=0|ze(0|a,0|t,45),m();t:do{if(0|H(127&D)){if(c=0|ze(0|a,0|t,52),m(),0|(c&=15))for(f=1;;){if(!(!(a&(D=0|Oe(7,0,3*(15-f|0)|0)))&!(u&m())))break t;if(!(f>>>0<c>>>0))break;f=f+1|0}a|=t=0|Oe(0|A,0,56),t=m()|u,n[(A=l)>>2]=a,n[A+4>>2]=t,A=s+2|0}}while(0);7==(0|A)&&(n[(D=b+(h<<3)|0)>>2]=a,n[D+4>>2]=-117440513&t,h=h+1|0)}g=g+1|0}while((0|g)!=(0|r));if(B){if(g=((0|r)<0)<<31>>31,d=0|Oe(0|v,0,52),w=0|m(),v>>>0>15){if(!(!(0|p)&!(0|o))){o=4,_=84;break e}for(o=0;;){if((0|(o=o+1|0))>=(0|r)){a=0,o=h;break r}if(!(!(0|n[(D=y+(o<<3)|0)>>2])&!(0|n[D+4>>2]))){o=4,_=84;break e}}}for(c=0,a=0,u=p;;){do{if(!(!(0|u)&!(0|o))){if(l=0|ze(0|u,0|o,52),m(),(0|(l&=15))<(0|v)){o=12,_=84;break e}do{if((0|l)==(0|v))t=u,l=o;else{if(t=u|d,A=-15728641&o|w,l>>>0<k>>>0){l=A;break}f=v;do{D=0|Oe(7,0,3*(14-f|0)|0),f=f+1|0,t|=D,A=m()|A}while(f>>>0<l>>>0);l=A}}while(0);for(f=0|Le(0|t,0|l,0|r,0|g),m(),A=0;;){if((0|A)>(0|r)){_=77;break e}if((-117440513&(s=0|n[(D=E+(f<<3)|0)+4>>2]))==(0|l)&&(0|n[D>>2])==(0|t)){_=79;break}if((0|n[(D=E+((f=(f+1|0)%(0|r)|0)<<3)|0)>>2])==(0|t)&&(0|n[D+4>>2])==(0|l))break;A=A+1|0}if(79==(0|_)&&(_=0,!0&100663296==(117440512&s)))break;n[(D=e+(a<<3)|0)>>2]=u,n[D+4>>2]=o,a=a+1|0}}while(0);if((0|(o=c+1|0))>=(0|r)){o=h;break r}c=o,u=0|n[(D=y+(o<<3)|0)>>2],o=0|n[D+4>>2]}}else a=0,o=h}else a=0,o=0}while(0);if(We(0|E,0,0|i),Ze(0|y,0|b,o<<3),xe(b),!o)break A;e=e+(a<<3)|0,r=o}if(17==(0|_))!0&!(117440512&o)?(o=4,_=28):_=22;else if(32==(0|_))Q(23313,22674,362,22684);else{if(42==(0|_))return xe(y),xe(E),0|(D=10);if(49==(0|_))return xe(y),xe(E),0|(D=13);if(77==(0|_))Q(23313,22674,462,22684);else{if(84==(0|_))return xe(b),xe(y),xe(E),0|(D=o);if(85==(0|_)){Ze(0|e,0|y,r<<3);break}}}if(22==(0|_))return xe(y),xe(E),0|(D=5);if(28==(0|_))return xe(y),xe(E),0|(D=o)}}while(0);return xe(y),xe(E),0|(D=0)},_destroyLinkedMultiPolygon:oe,_directedEdgeToBoundary:yA,_directedEdgeToCells:function(A,e,r){A|=0;var t,i,o,a=0;return t=F,F=F+16|0,a=t,!0&268435456==(2013265920&(e|=0))?(i=-2130706433&e|134217728,n[(o=r|=0)>>2]=A,n[o+4>>2]=i,n[a>>2]=0,e=0|ze(0|A,0|e,56),m(),a=0|T(A,i,7&e,a,r+8|0),F=t,0|a):(F=t,0|(a=6))},_edgeLengthKm:function(A,e,r){r|=0;var t,o=0,a=0,f=0,l=0,u=0,g=0,d=0;if(t=F,F=F+176|0,0|(A=0|yA(A|=0,e|=0,l=t)))return l=A,f=+i[r>>3],f*=6371.007180918475,i[r>>3]=f,F=t,0|l;if(i[r>>3]=0,(0|(A=0|n[l>>2]))<=1)return l=0,f=0,f*=6371.007180918475,i[r>>3]=f,F=t,0|l;e=A+-1|0,A=0,o=+i[l+8>>3],a=+i[l+16>>3],f=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),u=a,a=+i[l+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(a-u)))*(+c(+g)*+c(+o)*u),f+=2*+B(+ +s(+u),+ +s(+(1-u)))}while((0|A)!=(0|e));return i[r>>3]=f,l=0,d=f,d*=6371.007180918475,i[r>>3]=d,F=t,0|l},_edgeLengthM:function(A,e,r){r|=0;var t,o=0,a=0,f=0,l=0,u=0,g=0,d=0;if(t=F,F=F+176|0,0|(A=0|yA(A|=0,e|=0,l=t)))return l=A,f=+i[r>>3],f*=6371.007180918475,f*=1e3,i[r>>3]=f,F=t,0|l;if(i[r>>3]=0,(0|(A=0|n[l>>2]))<=1)return l=0,f=0,f*=6371.007180918475,f*=1e3,i[r>>3]=f,F=t,0|l;e=A+-1|0,A=0,o=+i[l+8>>3],a=+i[l+16>>3],f=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),u=a,a=+i[l+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(a-u)))*(+c(+g)*+c(+o)*u),f+=2*+B(+ +s(+u),+ +s(+(1-u)))}while((0|A)!=(0|e));return i[r>>3]=f,l=0,d=f,d*=6371.007180918475,d*=1e3,i[r>>3]=d,F=t,0|l},_edgeLengthRads:function(A,e,r){r|=0;var t,o=0,a=0,f=0,l=0,u=0,g=0,d=0;if(t=F,F=F+176|0,0|(A=0|yA(A|=0,e|=0,l=t)))return F=t,0|(l=A);if(i[r>>3]=0,(0|(A=0|n[l>>2]))<=1)return F=t,0|(l=0);e=A+-1|0,A=0,o=+i[l+8>>3],a=+i[l+16>>3],f=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),u=a,a=+i[l+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(a-u)))*(+c(+o)*+c(+g)*u),f+=2*+B(+ +s(+u),+ +s(+(1-u)))}while((0|A)<(0|e));return i[r>>3]=f,F=t,0|(l=0)},_emscripten_replace_memory:function(A){return t=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),r=A,!0},_free:xe,_getBaseCellNumber:PA,_getDirectedEdgeDestination:function(A,e,r){A|=0,e|=0,r|=0;var t,i,o=0;return t=F,F=F+16|0,n[(o=t)>>2]=0,!0&268435456==(2013265920&e)?(i=0|ze(0|A,0|e,56),m(),o=0|T(A,-2130706433&e|134217728,7&i,o,r),F=t,0|o):(F=t,0|(o=6))},_getDirectedEdgeOrigin:function(A,e,r){return A|=0,r|=0,!0&268435456==(2013265920&(e|=0))?(n[r>>2]=A,n[r+4>>2]=-2130706433&e|134217728,0|(r=0)):0|(r=6)},_getHexagonAreaAvgKm2:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20528+(A<<3)>>3],0|(e=0))},_getHexagonAreaAvgM2:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20656+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgKm:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20784+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgM:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20912+(A<<3)>>3],0|(e=0))},_getIcosahedronFaces:function A(e,r,t){t|=0;var i,o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0;i=F,F=F+128|0,c=i+112|0,f=i+96|0,h=i,a=0|ze(0|(e|=0),0|(r|=0),52),m(),s=15&a,n[c>>2]=s,l=0|ze(0|e,0|r,45),m(),l&=127;A:do{if(0|H(l)){if(0|s)for(o=1;;){if(!(!((u=0|Oe(7,0,3*(15-o|0)|0))&e)&!(m()&r))){a=0;break A}if(!(o>>>0<s>>>0))break;o=o+1|0}if(!(1&a))return u=0|Oe(s+1|0,0,52),h=m()|-15728641&r,h=0|A((u|e)&~(c=0|Oe(7,0,3*(14-s|0)|0)),h&~m(),t),F=i,0|h;a=1}else a=0}while(0);if(!(o=0|ZA(e,r,f))){a?(MA(f,c,h),u=5):(FA(f,c,h),u=6);A:do{if(0|H(l))if(s)for(o=1;;){if(!(!((l=0|Oe(7,0,3*(15-o|0)|0))&e)&!(m()&r))){e=2;break A}if(!(o>>>0<s>>>0)){e=5;break}o=o+1|0}else e=5;else e=2}while(0);We(0|t,-1,e<<2);A:do{if(a)for(f=0;;){if(xA(l=h+(f<<4)|0,0|n[c>>2]),l=0|n[l>>2],-1==(0|(s=0|n[t>>2]))|(0|s)==(0|l))o=t;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}s=0|n[(o=t+(a<<2)|0)>>2]}while(!(-1==(0|s)|(0|s)==(0|l)))}if(n[o>>2]=l,(f=f+1|0)>>>0>=u>>>0){o=0;break}}else for(f=0;;){if(CA(l=h+(f<<4)|0,0|n[c>>2],0,1),l=0|n[l>>2],-1==(0|(s=0|n[t>>2]))|(0|s)==(0|l))o=t;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}s=0|n[(o=t+(a<<2)|0)>>2]}while(!(-1==(0|s)|(0|s)==(0|l)))}if(n[o>>2]=l,(f=f+1|0)>>>0>=u>>>0){o=0;break}}}while(0)}return F=i,0|(h=o)},_getNumCells:ee,_getPentagons:jA,_getRes0Cells:function(A){A|=0;var e=0,r=0,t=0;e=0;do{Oe(0|e,0,45),t=134225919|m(),n[(r=A+(e<<3)|0)>>2]=-1,n[r+4>>2]=t,e=e+1|0}while(122!=(0|e));return 0},_getResolution:function(A,e){return e=0|ze(0|(A|=0),0|(e|=0),52),m(),15&e},_greatCircleDistanceKm:Ae,_greatCircleDistanceM:function(A,e){A|=0;var r,t,n,o=0;return t=+i[(e|=0)>>3],r=+i[A>>3],o=(n=+h(.5*(t-r)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+t)*+c(+r)*o),2*+B(+ +s(+o),+ +s(+(1-o)))*6371.007180918475*1e3},_greatCircleDistanceRads:function(A,e){A|=0;var r,t,n,o=0;return t=+i[(e|=0)>>3],r=+i[A>>3],o=(n=+h(.5*(t-r)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+t)*+c(+r)*o),2*+B(+ +s(+o),+ +s(+(1-o)))},_gridDisk:P,_gridDiskDistances:G,_gridDistance:function(A,e,r,t,i){r|=0,t|=0,i|=0;var o,a,f=0,l=0;return a=F,F=F+32|0,l=a,0|(o=0|le(A|=0,e|=0,A,e,f=a+12|0))?(F=a,0|(l=o)):0|(A=0|le(A,e,r,t,l))?(F=a,0|(l=A)):(f=0|BA(f,l),n[(l=i)>>2]=f,n[l+4>>2]=((0|f)<0)<<31>>31,F=a,0|(l=0))},_gridPathCells:function(A,e,r,t,i){r|=0,t|=0,i|=0;var o,a=0,f=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,y=0,_=0,D=0,M=0;if(o=F,F=F+48|0,s=o+12|0,D=o,!(a=0|le(A|=0,e|=0,A,e,f=o+24|0))&&!(a=0|le(A,e,r,t,s))){_=((0|(y=0|BA(f,s)))<0)<<31>>31,n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,0|le(A,e,A,e,f)&&Q(23313,23090,691,23299),0|le(A,e,r,t,s)&&Q(23313,23090,696,23299),vA(f),vA(s),y?(b=+(0|y),E=f,t=g=0|n[f>>2],a=d=0|n[(k=f+4|0)>>2],r=w=0|n[(v=f+8|0)>>2],B=+((0|n[s>>2])-g|0)/b,p=+((0|n[s+4>>2])-d|0)/b,b=+((0|n[s+8>>2])-w|0)/b):(k=a=f+4|0,v=r=f+8|0,E=f,t=0|n[f>>2],a=0|n[a>>2],r=0|n[r>>2],B=0,p=0,b=0),n[D>>2]=t,n[(w=D+4|0)>>2]=a,n[(d=D+8|0)>>2]=r;A:do{if((0|y)<0)a=0;else for(h=0,g=0,a=t;;){M=B*(c=+(g>>>0)+4294967296*+(0|h))+ +(0|a),u=p*c+ +(0|n[k>>2]),c=b*c+ +(0|n[v>>2]),r=~~+Ne(+M),f=~~+Ne(+u),a=~~+Ne(+c),M=+l(+(+(0|r)-M)),u=+l(+(+(0|f)-u)),c=+l(+(+(0|a)-c));do{if(!(M>u&M>c)){if(s=0-r|0,u>c){t=s-a|0;break}t=f,a=s-f|0;break}r=0-(f+a)|0,t=f}while(0);if(n[D>>2]=r,n[w>>2]=t,n[d>>2]=a,EA(D),0|(a=0|se(A,e,D,i+(g<<3)|0)))break A;if(!((0|h)<(0|_)|(0|h)==(0|_)&g>>>0<y>>>0)){a=0;break A}a=0|Fe(0|g,0|h,1,0),h=s=0|m(),g=a,a=0|n[E>>2]}}while(0);return F=o,0|(D=a)}return F=o,0|(D=a)},_gridPathCellsSize:function(A,e,r,t,i){r|=0,t|=0,i|=0;var o,a=0,f=0,l=0;return o=F,F=F+32|0,l=o,(a=0|le(A|=0,e|=0,A,e,f=o+12|0))||(a=0|le(A,e,r,t,l))?(F=o,0|(l=a)):(t=0|Fe(0|(t=0|BA(f,l)),((0|t)<0)<<31>>31,1,0),f=0|m(),n[(l=i)>>2]=t,n[l+4>>2]=f,F=o,0|(l=0))},_gridRingUnsafe:function(A,e,r,t){A|=0,e|=0,r|=0,t|=0;var i,o,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0;if(o=F,F=F+16|0,d=o+8|0,n[(g=i=o)>>2]=A,n[g+4>>2]=e,!r)return n[(d=t)>>2]=A,n[d+4>>2]=e,F=o,0|(d=0);n[d>>2]=0;A:do{if(0|TA(A,e))A=9;else{if(f=(0|r)>0){a=0,g=A;do{if(0|(A=0|T(g,e,4,d,i)))break A;if(a=a+1|0,0|TA(g=0|n[(e=i)>>2],e=0|n[e+4>>2])){A=9;break A}}while((0|a)<(0|r));if(n[(h=t)>>2]=g,n[h+4>>2]=e,h=r+-1|0,f){c=0,A=1;do{if(a=22384+(c<<2)|0,5==(0|c))for(l=0|n[a>>2],f=0,a=A;;){if(0|(A=0|T(0|n[(A=i)>>2],0|n[A+4>>2],l,d,i)))break A;if((0|f)!=(0|h)){if(s=0|n[(u=i)>>2],u=0|n[u+4>>2],n[(A=t+(a<<3)|0)>>2]=s,n[A+4>>2]=u,0|TA(s,u)){A=9;break A}A=a+1|0}else A=a;if((0|(f=f+1|0))>=(0|r))break;a=A}else for(l=i,u=0|n[a>>2],s=0,a=A,f=0|n[l>>2],l=0|n[l+4>>2];;){if(0|(A=0|T(f,l,u,d,i)))break A;if(f=0|n[(l=i)>>2],l=0|n[l+4>>2],n[(A=t+(a<<3)|0)>>2]=f,n[A+4>>2]=l,A=a+1|0,0|TA(f,l)){A=9;break A}if((0|(s=s+1|0))>=(0|r))break;a=A}c=c+1|0}while(c>>>0<6);l=g,a=0|n[(A=i)>>2],f=e,A=0|n[A+4>>2]}else l=g,a=g,f=e,A=e}else n[(l=t)>>2]=A,n[l+4>>2]=e,l=A,a=A,f=e,A=e;A=(0|l)==(0|a)&(0|f)==(0|A)?0:9}}while(0);return F=o,0|(d=A)},_i64Add:Fe,_i64Subtract:Pe,_isPentagon:TA,_isResClassIII:function(A,e){return e=0|ze(0|(A|=0),0|(e|=0),52),m(),1&e},_isValidCell:GA,_isValidDirectedEdge:function(A,e){var r=0;switch(r=0|ze(0|(A|=0),0|(e|=0),56),m(),7&r){case 0:case 7:return 0|(r=0)}return r=-2130706433&e|134217728,!0&268435456==(2013265920&e)?!0&16777216==(117440512&e)&!!(0|TA(A,r))?0|(r=0):0|(r=0|GA(A,r)):0|(r=0)},_isValidVertex:function(A,e){A|=0;var r,t,i=0,o=0;return t=F,F=F+16|0,r=t,!0&536870912==(2013265920&(e|=0))&&0|GA(A,i=-2130706433&e|134217728)?(o=0|ze(0|A,0|e,56),m(),i=(o=!(0|ke(A,i,7&o,r)))&((0|n[(i=r)>>2])==(0|A)?(0|n[i+4>>2])==(0|e):0)&1,F=t,0|i):(F=t,0|(i=0))},_latLngToCell:YA,_llvm_maxnum_f64:Ve,_llvm_minnum_f64:Ye,_llvm_round_f64:Ne,_localIjToCell:function(A,e,r,t,n){var i,o;return A|=0,e|=0,r|=0,n|=0,o=F,F=F+16|0,i=o,(t|=0)?r=15:(r=0|kA(r,i))||(r=0|se(A,e,i,n)),F=o,0|r},_malloc:Ce,_maxFaceCount:function(A,e,r){r|=0;var t=0,i=0;if(i=0|ze(0|(A|=0),0|(e|=0),45),m(),!(0|H(127&i)))return i=2,n[r>>2]=i,0;if(i=0|ze(0|A,0|e,52),m(),!(i&=15))return i=5,n[r>>2]=i,0;for(t=1;;){if(!(!((0|Oe(7,0,3*(15-t|0)|0))&A)&!(m()&e))){t=2,A=6;break}if(!(t>>>0<i>>>0)){t=5,A=6;break}t=t+1|0}return 6==(0|A)?(n[r>>2]=t,0):0},_maxGridDiskSize:function(A,e){e|=0;var r=0,t=0,i=0;return(0|(A|=0))<0?0|(e=2):(0|A)>13780509?0|(e=0|ee(15,e)):(i=0|Te(0|A,0|(r=((0|A)<0)<<31>>31),3,0),t=0|m(),r=0|Fe(0|A,0|r,1,0),r=0|Fe(0|(r=0|Te(0|i,0|t,0|r,0|m())),0|m(),1,0),A=0|m(),n[e>>2]=r,n[e+4>>2]=A,0|(e=0))},_maxPolygonToCellsSize:function(A,e,r,t){e|=0,t|=0;var i,o=0,a=0,f=0,l=0,s=0;if(i=F,F=F+48|0,o=i+16|0,a=i+8|0,f=i,0|(r|=0))return F=i,0|(f=15);if(l=0|n[(s=A|=0)+4>>2],n[(r=a)>>2]=n[s>>2],n[r+4>>2]=l,he(a,o),!(e=0|j(o,e,f))){if(r=0|n[a>>2],(0|(a=0|n[A+8>>2]))>0){o=0|n[A+12>>2],e=0;do{r=(0|n[o+(e<<3)>>2])+r|0,e=e+1|0}while((0|e)<(0|a))}o=0|n[(e=f)>>2],(0|(e=0|n[e+4>>2]))<(0|(a=((0|r)<0)<<31>>31))|(0|e)==(0|a)&o>>>0<r>>>0?(n[(e=f)>>2]=r,n[e+4>>2]=a,e=a):r=o,l=0|Fe(0|r,0|e,12,0),s=0|m(),n[(e=f)>>2]=l,n[e+4>>2]=s,n[(e=t)>>2]=l,n[e+4>>2]=s,e=0}return F=i,0|(s=e)},_memcpy:Ze,_memset:We,_originToDirectedEdges:function(A,e,r){r|=0;var t,i=0;return t=!(0|TA(A|=0,e|=0)),e&=-2130706433,n[(i=r)>>2]=t?A:0,n[i+4>>2]=t?285212672|e:0,n[(i=r+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=r+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=r+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=r+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(r=r+40|0)>>2]=A,n[r+4>>2]=369098752|e,0},_pentagonCount:function(){return 12},_polygonToCells:function(A,e,r,t){e|=0,t|=0;var i,o,a,f,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,y=0,_=0,Q=0,D=0,M=0,C=0,x=0,I=0,P=0,G=0,T=0,R=0,H=0;if(f=F,F=F+112|0,i=f+80|0,h=f+72|0,o=f,a=f+56|0,0|(r|=0))return F=f,0|(H=15);if(!(H=0|Ce(32+(n[(g=(A|=0)+8|0)>>2]<<5)|0)))return F=f,0|(H=13);if(ge(A,H),R=0|n[(T=A)+4>>2],n[(r=h)>>2]=n[T>>2],n[r+4>>2]=R,he(h,i),r=0|j(i,e,o))T=0,R=0;else{if(r=0|n[h>>2],(0|(s=0|n[g>>2]))>0){u=0|n[A+12>>2],l=0;do{r=(0|n[u+(l<<3)>>2])+r|0,l=l+1|0}while((0|l)!=(0|s));l=r}else l=r;s=0|n[(r=o)>>2],(0|(r=0|n[r+4>>2]))<(0|(u=((0|l)<0)<<31>>31))|(0|r)==(0|u)&s>>>0<l>>>0?(n[(r=o)>>2]=l,n[r+4>>2]=u,r=u):l=s,T=0|Fe(0|l,0|r,12,0),R=0|m(),n[(r=o)>>2]=T,n[r+4>>2]=R,r=0}if(0|r)return xe(H),F=f,0|(H=r);if(!(l=0|Ie(T,8)))return xe(H),F=f,0|(H=13);if(!(c=0|Ie(T,8)))return xe(H),xe(l),F=f,0|(H=13);n[(P=i)>>2]=0,n[P+4>>2]=0,G=0|n[(P=A)+4>>2],n[(r=h)>>2]=n[P>>2],n[r+4>>2]=G,r=0|L(h,T,R,e,i,l,c);A:do{if(r)xe(l),xe(c),xe(H);else{e:do{if((0|n[g>>2])>0){for(u=A+12|0,s=0;r=0|L((0|n[u>>2])+(s<<3)|0,T,R,e,i,l,c),s=s+1|0,!(0|r);)if((0|s)>=(0|n[g>>2]))break e;xe(l),xe(c),xe(H);break A}}while(0);(0|R)>0|!(0|R)&T>>>0>0&&We(0|c,0,T<<3),P=0|n[(G=i)+4>>2];e:do{if((0|P)>0|!(0|P)&(0|n[G>>2])>>>0>0){C=l,x=c,I=l,P=c,G=l,r=l,Q=l,D=c,M=c,l=c;r:for(;;){for(v=0,E=0,y=0,_=0,s=0,u=0;;){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));if(0|S(g=0|n[(e=C+(v<<3)|0)>>2],e=0|n[e+4>>2],1,o,0)){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));0|(c=0|Ie(7,4))&&(U(g,e,1,o,c,7,0,0),xe(c))}for(k=0;;){B=0|n[(p=o+(k<<3)|0)>>2],p=0|n[p+4>>2];t:do{if(!(0|B)&!(0|p))c=s,h=u;else{if(d=0|Le(0|B,0|p,0|T,0|R),g=0|m(),!(!(0|(h=0|n[(e=c=t+(d<<3)|0)>>2]))&!(0|(e=0|n[e+4>>2])))){w=0,b=0;do{if((0|w)>(0|R)|(0|w)==(0|R)&b>>>0>T>>>0)break r;if((0|h)==(0|B)&(0|e)==(0|p)){c=s,h=u;break t}d=0|Re(0|(c=0|Fe(0|d,0|g,1,0)),0|m(),0|T,0|R),g=0|m(),b=0|Fe(0|b,0|w,1,0),w=0|m(),h=0|n[(e=c=t+(d<<3)|0)>>2],e=0|n[e+4>>2]}while(!(!(0|h)&!(0|e)))}!(0|B)&!(0|p)?(c=s,h=u):(WA(B,p,a),0|de(A,H,a)&&(b=0|Fe(0|s,0|u,1,0),u=0|m(),n[(w=c)>>2]=B,n[w+4>>2]=p,n[(s=x+(s<<3)|0)>>2]=B,n[s+4>>2]=p,s=b),c=s,h=u)}}while(0);if((k=k+1|0)>>>0>=7)break;s=c,u=h}if(v=0|Fe(0|v,0|E,1,0),E=0|m(),y=0|Fe(0|y,0|_,1,0),_=0|m(),s=0|n[(u=i)>>2],!((0|_)<(0|(u=0|n[u+4>>2]))|(0|_)==(0|u)&y>>>0<s>>>0))break;s=c,u=h}if((0|u)>0|!(0|u)&s>>>0>0){s=0,u=0;do{n[(_=C+(s<<3)|0)>>2]=0,n[_+4>>2]=0,s=0|Fe(0|s,0|u,1,0),u=0|m(),y=0|n[(_=i)+4>>2]}while((0|u)<(0|y)|((0|u)==(0|y)?s>>>0<(0|n[_>>2])>>>0:0))}if(n[(_=i)>>2]=c,n[_+4>>2]=h,!((0|h)>0|!(0|h)&c>>>0>0))break e;k=l,v=M,E=G,y=D,_=x,l=Q,M=r,D=I,Q=k,r=v,G=P,P=E,I=y,x=C,C=_}xe(I),xe(P),xe(H),r=1;break A}r=c}while(0);xe(H),xe(l),xe(r),r=0}}while(0);return F=f,0|(H=r)},_readInt64AsDoubleFromPointer:function(A){return+(+((0|n[(A|=0)>>2])>>>0)+4294967296*+(0|n[A+4>>2]))},_res0CellCount:function(){return 122},_round:Ke,_sbrk:je,_sizeOfCellBoundary:function(){return 168},_sizeOfCoordIJ:function(){return 8},_sizeOfGeoLoop:function(){return 8},_sizeOfGeoPolygon:function(){return 16},_sizeOfH3Index:function(){return 8},_sizeOfLatLng:function(){return 16},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompactCells:function(A,e,r,t,i,o,a){A|=0,t|=0,i|=0,o|=0;var f,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0;if(f=F,F=F+16|0,w=f,!((0|(r|=0))>0|!(0|r)&(e|=0)>>>0>0))return F=f,0|(w=0);if((0|(a|=0))>=16)return F=f,0|(w=12);g=0,d=0,h=0,l=0;A:for(;;){if(c=0|ze(0|(s=0|n[(u=A+(g<<3)|0)>>2]),0|(u=0|n[u+4>>2]),52),m(),(15&c)>(0|a)){l=12,s=11;break}if(JA(w,s,u,a),!(0|(u=0|n[(c=w)>>2]))&!(0|(c=0|n[c+4>>2])))s=h;else{s=h;do{if(!((0|l)<(0|o)|(0|l)==(0|o)&s>>>0<i>>>0)){s=10;break A}n[(h=t+(s<<3)|0)>>2]=u,n[h+4>>2]=c,s=0|Fe(0|s,0|l,1,0),l=0|m(),XA(w),u=0|n[(h=w)>>2],c=0|n[h+4>>2]}while(!(!(0|u)&!(0|c)))}if(g=0|Fe(0|g,0|d,1,0),!((0|(d=0|m()))<(0|r)|(0|d)==(0|r)&g>>>0<e>>>0)){l=0,s=11;break}h=s}return 10==(0|s)?(F=f,0|(w=14)):11==(0|s)?(F=f,0|l):0},_uncompactCellsSize:function(A,e,r,t,i){A|=0,e|=0,r|=0,t|=0,i|=0;var o,a,f=0,l=0,s=0,u=0,c=0,h=0;a=F,F=F+16|0,o=a;A:do{if((0|r)>0|!(0|r)&e>>>0>0){for(c=0,l=0,f=0,h=0;;){if(!(!(0|(s=0|n[(u=A+(c<<3)|0)>>2]))&!(0|(u=0|n[u+4>>2]))||(u=!(0|UA(s,u,t,o)),l=0|Fe(0|n[(s=o)>>2],0|n[s+4>>2],0|l,0|f),f=0|m(),u))){f=12;break}if(c=0|Fe(0|c,0|h,1,0),!((0|(h=0|m()))<(0|r)|(0|h)==(0|r)&c>>>0<e>>>0))break A}return F=a,0|f}l=0,f=0}while(0);return n[i>>2]=l,n[i+4>>2]=f,F=a,0|(i=0)},_vertexToLatLng:function(A,e,r){r|=0;var t,i,o,a,f=0,l=0;return a=F,F=F+192|0,i=a,o=a+168|0,f=0|ze(0|(A|=0),0|(e|=0),56),m(),f&=7,0|(t=0|ZA(A,l=-2130706433&e|134217728,o))?(F=a,0|(l=t)):(e=0|ze(0|A,0|e,52),m(),e&=15,0|TA(A,l)?DA(o,e,f,1,i):IA(o,e,f,1,i),l=i+8|0,n[r>>2]=n[l>>2],n[r+4>>2]=n[l+4>>2],n[r+8>>2]=n[l+8>>2],n[r+12>>2]=n[l+12>>2],F=a,0|(l=0))},establishStackSpace:function(A,e){F=A|=0},stackAlloc:function(A){var e;return e=F,F=(F=F+(A|=0)|0)+15&-16,0|e},stackRestore:function(A){F=A|=0},stackSave:function(){return 0|F}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{a:bA,b:function(A){b=A},c:function(){return b},d:function(A,e,r,t){bA("Assertion failed: "+x(A)+", at: "+[e?x(e):"unknown filename",r,t?x(t):"unknown function"])},e:function(A){return r.___errno_location&&(Q[r.___errno_location()>>2]=A),A},f:$,g:function(A,e,r){_.set(_.subarray(e,e+r),A)},h:function(A){var e=$(),r=16777216,t=2130706432;if(A>t)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?I(2*n,r):Math.min(I((3*n+2147483648)/4,r),t);return!!AA(n)},i:function(A){bA("OOM")},j:J,k:X,l:AA,m:q,n:function(){var A=q();return r.extraStackTrace&&(A+="\n"+r.extraStackTrace()),X(A)},o:24144,p:24128},E);r.___divdi3=nA.___divdi3,r.___muldi3=nA.___muldi3,r.___remdi3=nA.___remdi3,r.___uremdi3=nA.___uremdi3,r._areNeighborCells=nA._areNeighborCells,r._bitshift64Ashr=nA._bitshift64Ashr,r._bitshift64Lshr=nA._bitshift64Lshr,r._bitshift64Shl=nA._bitshift64Shl,r._calloc=nA._calloc,r._cellAreaKm2=nA._cellAreaKm2,r._cellAreaM2=nA._cellAreaM2,r._cellAreaRads2=nA._cellAreaRads2,r._cellToBoundary=nA._cellToBoundary,r._cellToCenterChild=nA._cellToCenterChild,r._cellToChildPos=nA._cellToChildPos,r._cellToChildren=nA._cellToChildren,r._cellToChildrenSize=nA._cellToChildrenSize,r._cellToLatLng=nA._cellToLatLng,r._cellToLocalIj=nA._cellToLocalIj,r._cellToParent=nA._cellToParent,r._cellToVertex=nA._cellToVertex,r._cellToVertexes=nA._cellToVertexes,r._cellsToDirectedEdge=nA._cellsToDirectedEdge,r._cellsToLinkedMultiPolygon=nA._cellsToLinkedMultiPolygon,r._childPosToCell=nA._childPosToCell,r._compactCells=nA._compactCells,r._destroyLinkedMultiPolygon=nA._destroyLinkedMultiPolygon,r._directedEdgeToBoundary=nA._directedEdgeToBoundary,r._directedEdgeToCells=nA._directedEdgeToCells,r._edgeLengthKm=nA._edgeLengthKm,r._edgeLengthM=nA._edgeLengthM,r._edgeLengthRads=nA._edgeLengthRads;var iA=r._emscripten_replace_memory=nA._emscripten_replace_memory;r._free=nA._free,r._getBaseCellNumber=nA._getBaseCellNumber,r._getDirectedEdgeDestination=nA._getDirectedEdgeDestination,r._getDirectedEdgeOrigin=nA._getDirectedEdgeOrigin,r._getHexagonAreaAvgKm2=nA._getHexagonAreaAvgKm2,r._getHexagonAreaAvgM2=nA._getHexagonAreaAvgM2,r._getHexagonEdgeLengthAvgKm=nA._getHexagonEdgeLengthAvgKm,r._getHexagonEdgeLengthAvgM=nA._getHexagonEdgeLengthAvgM,r._getIcosahedronFaces=nA._getIcosahedronFaces,r._getNumCells=nA._getNumCells,r._getPentagons=nA._getPentagons,r._getRes0Cells=nA._getRes0Cells,r._getResolution=nA._getResolution,r._greatCircleDistanceKm=nA._greatCircleDistanceKm,r._greatCircleDistanceM=nA._greatCircleDistanceM,r._greatCircleDistanceRads=nA._greatCircleDistanceRads,r._gridDisk=nA._gridDisk,r._gridDiskDistances=nA._gridDiskDistances,r._gridDistance=nA._gridDistance,r._gridPathCells=nA._gridPathCells,r._gridPathCellsSize=nA._gridPathCellsSize,r._gridRingUnsafe=nA._gridRingUnsafe,r._i64Add=nA._i64Add,r._i64Subtract=nA._i64Subtract,r._isPentagon=nA._isPentagon,r._isResClassIII=nA._isResClassIII,r._isValidCell=nA._isValidCell,r._isValidDirectedEdge=nA._isValidDirectedEdge,r._isValidVertex=nA._isValidVertex,r._latLngToCell=nA._latLngToCell,r._llvm_maxnum_f64=nA._llvm_maxnum_f64,r._llvm_minnum_f64=nA._llvm_minnum_f64,r._llvm_round_f64=nA._llvm_round_f64,r._localIjToCell=nA._localIjToCell,r._malloc=nA._malloc,r._maxFaceCount=nA._maxFaceCount,r._maxGridDiskSize=nA._maxGridDiskSize,r._maxPolygonToCellsSize=nA._maxPolygonToCellsSize,r._memcpy=nA._memcpy,r._memset=nA._memset,r._originToDirectedEdges=nA._originToDirectedEdges,r._pentagonCount=nA._pentagonCount,r._polygonToCells=nA._polygonToCells,r._readInt64AsDoubleFromPointer=nA._readInt64AsDoubleFromPointer,r._res0CellCount=nA._res0CellCount,r._round=nA._round,r._sbrk=nA._sbrk,r._sizeOfCellBoundary=nA._sizeOfCellBoundary,r._sizeOfCoordIJ=nA._sizeOfCoordIJ,r._sizeOfGeoLoop=nA._sizeOfGeoLoop,r._sizeOfGeoPolygon=nA._sizeOfGeoPolygon,r._sizeOfH3Index=nA._sizeOfH3Index,r._sizeOfLatLng=nA._sizeOfLatLng,r._sizeOfLinkedGeoPolygon=nA._sizeOfLinkedGeoPolygon,r._uncompactCells=nA._uncompactCells,r._uncompactCellsSize=nA._uncompactCellsSize,r._vertexToLatLng=nA._vertexToLatLng,r.establishStackSpace=nA.establishStackSpace;var oA,aA,fA=r.stackAlloc=nA.stackAlloc,lA=r.stackRestore=nA.stackRestore,sA=r.stackSave=nA.stackSave;if(r.asm=nA,r.cwrap=function(A,e,r,t){var n=(r=r||[]).every((function(A){return"number"===A}));return"string"!==e&&n&&!t?k(A):function(){return v(A,e,r,arguments)}},r.setValue=function(A,e,r,t){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":y[A|0]=e;break;case"i16":m[A>>1]=e;break;case"i32":Q[A>>2]=e;break;case"i64":Z=[e>>>0,(N=e,+L(N)>=1?N>0?(0|O(+z(N/4294967296),4294967295))>>>0:~~+H((N-+(~~N>>>0))/4294967296)>>>0:0)],Q[A>>2]=Z[0],Q[A+4>>2]=Z[1];break;case"float":D[A>>2]=e;break;case"double":M[A>>3]=e;break;default:bA("invalid type for setValue: "+r)}},r.getValue=function(A,e,r){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return y[A|0];case"i16":return m[A>>1];case"i32":case"i64":return Q[A>>2];case"float":return D[A>>2];case"double":return M[A>>3];default:bA("invalid type for getValue: "+e)}return null},W)if(j(W)||(oA=W,W=r.locateFile?r.locateFile(oA,g):g+oA),o||f){var uA=u(W);_.set(uA,8)}else{V++,r.monitorRunDependencies&&r.monitorRunDependencies(V);var cA=function(A){A.byteLength&&(A=new Uint8Array(A)),_.set(A,8),r.memoryInitializerRequest&&delete r.memoryInitializerRequest.response,function(){if(V--,r.monitorRunDependencies&&r.monitorRunDependencies(V),0==V&&Y){var A=Y;Y=null,A()}}()},hA=function(){s(W,cA,(function(){throw"could not load memory initializer "+W}))},gA=tA(W);if(gA)cA(gA.buffer);else if(r.memoryInitializerRequest){var dA=function(){var A=r.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var t=tA(r.memoryInitializerRequestURL);if(!t)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+W),void hA();e=t.buffer}cA(e)};r.memoryInitializerRequest.response?setTimeout(dA,0):r.memoryInitializerRequest.addEventListener("load",dA)}else hA()}function wA(A){function e(){aA||(aA=!0,B||(G(U),G(T),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)A=r.postRun.shift(),R.unshift(A);var A;G(R)}()))}V>0||(!function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)A=r.preRun.shift(),S.unshift(A);var A;G(S)}(),V>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),e()}),1)):e()))}function bA(A){throw r.onAbort&&r.onAbort(A),d(A+=""),w(A),B=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(Y=function A(){aA||wA(),aA||(Y=A)},r.run=wA,r.abort=bA,r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return wA(),A}("object"==typeof Y?Y:{}),N="number",Z={0:"Success",1:"The operation failed but a more specific error is not available",2:"Argument was outside of acceptable range",3:"Latitude or longitude arguments were outside of acceptable range",4:"Resolution argument was outside of acceptable range",5:"Cell argument was not valid",6:"Directed edge argument was not valid",7:"Undirected edge argument was not valid",8:"Vertex argument was not valid",9:"Pentagon distortion was encountered",10:"Duplicate input",11:"Cell arguments were not neighbors",12:"Cell arguments had incompatible resolutions",13:"Memory allocation failed",14:"Bounds of provided memory were insufficient",15:"Mode or flags argument was not valid"},W={1e3:"Unknown unit",1001:"Array length out of bounds",1002:"Got unexpected null value for H3 index"};function K(A,e,r){var t=r&&"value"in r,n=new Error((A[e]||"Unknown error")+" (code: "+e+(t?", value: "+r.value:"")+")");return n.code=e,n}function j(A,e){return K(Z,A,2===arguments.length?{value:e}:{})}function J(A){if(0!==A)throw j(A)}var X={};[["sizeOfH3Index",N],["sizeOfLatLng",N],["sizeOfCellBoundary",N],["sizeOfGeoLoop",N],["sizeOfGeoPolygon",N],["sizeOfLinkedGeoPolygon",N],["sizeOfCoordIJ",N],["readInt64AsDoubleFromPointer",N],["isValidCell",N,[N,N]],["latLngToCell",N,[N,N,N,N]],["cellToLatLng",N,[N,N,N]],["cellToBoundary",N,[N,N,N]],["maxGridDiskSize",N,[N,N]],["gridDisk",N,[N,N,N,N]],["gridDiskDistances",N,[N,N,N,N,N]],["gridRingUnsafe",N,[N,N,N,N]],["maxPolygonToCellsSize",N,[N,N,N,N]],["polygonToCells",N,[N,N,N,N]],["cellsToLinkedMultiPolygon",N,[N,N,N]],["destroyLinkedMultiPolygon",null,[N]],["compactCells",N,[N,N,N,N]],["uncompactCells",N,[N,N,N,N,N,N]],["uncompactCellsSize",N,[N,N,N,N,N]],["isPentagon",N,[N,N]],["isResClassIII",N,[N,N]],["getBaseCellNumber",N,[N,N]],["getResolution",N,[N,N]],["maxFaceCount",N,[N,N,N]],["getIcosahedronFaces",N,[N,N,N]],["cellToParent",N,[N,N,N,N]],["cellToChildren",N,[N,N,N,N]],["cellToCenterChild",N,[N,N,N,N]],["cellToChildrenSize",N,[N,N,N,N]],["cellToChildPos",N,[N,N,N,N]],["childPosToCell",N,[N,N,N,N,N,N]],["areNeighborCells",N,[N,N,N,N,N]],["cellsToDirectedEdge",N,[N,N,N,N,N]],["getDirectedEdgeOrigin",N,[N,N,N]],["getDirectedEdgeDestination",N,[N,N,N]],["isValidDirectedEdge",N,[N,N]],["directedEdgeToCells",N,[N,N,N]],["originToDirectedEdges",N,[N,N,N]],["directedEdgeToBoundary",N,[N,N,N]],["gridDistance",N,[N,N,N,N,N]],["gridPathCells",N,[N,N,N,N,N]],["gridPathCellsSize",N,[N,N,N,N,N]],["cellToLocalIj",N,[N,N,N,N,N,N]],["localIjToCell",N,[N,N,N,N,N]],["getHexagonAreaAvgM2",N,[N,N]],["getHexagonAreaAvgKm2",N,[N,N]],["getHexagonEdgeLengthAvgM",N,[N,N]],["getHexagonEdgeLengthAvgKm",N,[N,N]],["greatCircleDistanceM",N,[N,N]],["greatCircleDistanceKm",N,[N,N]],["greatCircleDistanceRads",N,[N,N]],["cellAreaM2",N,[N,N,N]],["cellAreaKm2",N,[N,N,N]],["cellAreaRads2",N,[N,N,N]],["edgeLengthM",N,[N,N,N]],["edgeLengthKm",N,[N,N,N]],["edgeLengthRads",N,[N,N,N]],["getNumCells",N,[N,N]],["getRes0Cells",N,[N]],["res0CellCount",N],["getPentagons",N,[N,N]],["pentagonCount",N],["cellToVertex",N,[N,N,N,N]],["cellToVertexes",N,[N,N,N]],["vertexToLatLng",N,[N,N,N]],["isValidVertex",N,[N,N]]].forEach((function(A){X[A[0]]=Y.cwrap.apply(Y,A)}));var q=16,$=X.sizeOfH3Index();X.sizeOfLatLng();var AA=X.sizeOfCellBoundary();X.sizeOfGeoPolygon(),X.sizeOfGeoLoop(),X.sizeOfLinkedGeoPolygon(),X.sizeOfCoordIJ();var eA=Math.pow(2,32)-1;function rA(A){if(A>eA)throw function(A,e){return K(W,A,2===arguments.length?{value:e}:{})}(1001,A);return A}var tA=/[^0-9a-fA-F]/;function nA(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||tA.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),q);return[parseInt(A.substring(A.length-8),q),e]}function iA(A){if(A>=0)return A.toString(q);var e=oA(8,(A&=2147483647).toString(q));return e=(parseInt(e[0],q)+8).toString(q)+e.substring(1)}function oA(A,e){for(var r=A-e.length,t="",n=0;n<r;n++)t+="0";return t+=e}function aA(A,e){void 0===e&&(e=0);var r=Y.getValue(A+$*e,"i32"),t=Y.getValue(A+$*e+4,"i32");return t?function(A,e){return iA(e)+oA(8,iA(A))}(r,t):null}function fA(A,e){for(var r=[],t=0;t<e;t++){var n=aA(A,t);null!==n&&r.push(n)}return r}function lA(A){return 180*Y.getValue(A,"double")/Math.PI}function sA(A){return[lA(A+8),lA(A)]}function uA(A){var e=nA(A),r=e[0],t=e[1];return Boolean(X.isValidCell(r,t))}function cA(A,e){var r=Y._malloc(AA),t=nA(A),n=t[0],i=t[1];try{return J(X.cellToBoundary(n,i,r)),function(A){for(var e=Y.getValue(A,"i32"),r=A+8,t=[],n=sA,i=0;i<2*e;i+=2)t.push(n(r+8*i));return t.push(t[0]),t}(r)}finally{Y._free(r)}}function hA(A,e){if(!uA(A))return[];var r=nA(A),t=r[0],n=r[1],i=rA(function(A,e){if(!uA(A))throw j(5);var r=nA(A),t=r[0],n=r[1],i=Y._malloc(8);try{return J(X.cellToChildrenSize(t,n,e,i)),o=i,X.readInt64AsDoubleFromPointer(o)}finally{Y._free(i)}var o}(A,e)),o=Y._calloc(i,$);try{return J(X.cellToChildren(t,n,e,o)),fA(o,i)}finally{Y._free(o)}}function gA(){var A=X.res0CellCount(),e=Y._malloc($*A);try{return J(X.getRes0Cells(e)),fA(e,A)}finally{Y._free(e)}}function dA(A){if(A.__esModule)return A;var e=A.default;if("function"==typeof e){var r=function A(){return this instanceof A?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(A).forEach((function(e){var t=Object.getOwnPropertyDescriptor(A,e);Object.defineProperty(r,e,t.get?t:{enumerable:!0,get:function(){return A[e]}})})),r}var wA=function(A){var e,r=void 0!==(A=A||{})?A:{},t={};for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);var n,i,o,a,f;n="object"==typeof window,i="function"==typeof importScripts,a="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=a&&!n&&!i,f=!n&&!o&&!i;var l,s,u,c,h,g="";o?(g=__dirname+"/",l=function(A,e){var r;return(r=nA(A))||(c||(c=require("fs")),h||(h=require("path")),A=h.normalize(A),r=c.readFileSync(A)),e?r:r.toString()},u=function(A){var e=l(A,!0);return e.buffer||(e=new Uint8Array(e)),k(e.buffer),e},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),r.inspect=function(){return"[Emscripten Module object]"}):f?("undefined"!=typeof read&&(l=function(A){var e=nA(A);return e?rA(e):read(A)}),u=function(A){var e;return(e=nA(A))?e:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(k("object"==typeof(e=read(A,"binary"))),e)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(n||i)&&(i?g=self.location.href:document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",l=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var r=nA(A);if(r)return rA(r);throw e}},i&&(u=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}catch(e){var r=nA(A);if(r)return r;throw e}}),s=function(A,e,r){var t=new XMLHttpRequest;t.open("GET",A,!0),t.responseType="arraybuffer",t.onload=function(){if(200==t.status||0==t.status&&t.response)e(t.response);else{var n=nA(A);n?e(n.buffer):r()}},t.onerror=r,t.send(null)});var d=r.print||console.log.bind(console),w=r.printErr||console.warn.bind(console);for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);t=null,r.arguments&&r.arguments,r.thisProgram&&r.thisProgram;var b=0,B=function(){return b};var p=!1;function k(A,e){A||BA("Assertion failed: "+e)}function v(A){var e=r["_"+A];return k(e,"Cannot call unknown function "+A+", make sure it is exported"),e}function E(A,e,r,t,n){var i={string:function(A){var e=0;if(null!=A&&0!==A){var r=1+(A.length<<2);(function(A,e,r){(function(A,e,r,t){if(!(t>0))return 0;for(var n=r,i=r+t-1,o=0;o<A.length;++o){var a=A.charCodeAt(o);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&A.charCodeAt(++o);if(a<=127){if(r>=i)break;e[r++]=a}else if(a<=2047){if(r+1>=i)break;e[r++]=192|a>>6,e[r++]=128|63&a}else if(a<=65535){if(r+2>=i)break;e[r++]=224|a>>12,e[r++]=128|a>>6&63,e[r++]=128|63&a}else{if(r+3>=i)break;e[r++]=240|a>>18,e[r++]=128|a>>12&63,e[r++]=128|a>>6&63,e[r++]=128|63&a}}e[r]=0})(A,m,e,r)})(A,e=lA(r),r)}return e},array:function(A){var e=lA(A.length);return function(A,e){_.set(A,e)}(A,e),e}};var o=v(A),a=[],f=0;if(t)for(var l=0;l<t.length;l++){var s=i[r[l]];s?(0===f&&(f=uA()),a[l]=s(t[l])):a[l]=t[l]}var u=o.apply(null,a);return u=function(A){return"string"===e?I(A):"boolean"===e?Boolean(A):A}(u),0!==f&&sA(f),u}var y,_,m,Q,D,M,C,x="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function I(A,e){return A?function(A,e,r){for(var t=e+r,n=e;A[n]&&!(n>=t);)++n;if(n-e>16&&A.subarray&&x)return x.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var a=63&A[e++];if(192!=(224&o)){var f=63&A[e++];if((o=224==(240&o)?(15&o)<<12|a<<6|f:(7&o)<<18|a<<12|f<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var l=o-65536;i+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|a)}else i+=String.fromCharCode(o)}return i}(m,A,e):""}function F(A,e){return A%e>0&&(A+=e-A%e),A}function P(A){y=A,r.HEAP8=_=new Int8Array(A),r.HEAP16=Q=new Int16Array(A),r.HEAP32=D=new Int32Array(A),r.HEAPU8=m=new Uint8Array(A),r.HEAPU16=new Uint16Array(A),r.HEAPU32=new Uint32Array(A),r.HEAPF32=M=new Float32Array(A),r.HEAPF64=C=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var G=r.TOTAL_MEMORY||33554432;function S(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var t=e.func;"number"==typeof t?void 0===e.arg?r.dynCall_v(t):r.dynCall_vi(t,e.arg):t(void 0===e.arg?null:e.arg)}else e()}}G=(y=r.buffer?r.buffer:new ArrayBuffer(G)).byteLength,P(y),D[6004]=5266928;var U=[],T=[],R=[],L=[];var H=Math.abs,z=Math.ceil,O=Math.floor,V=Math.min,Y=0,N=null;r.preloadedImages={},r.preloadedAudios={};var Z,W,K=null,j="data:application/octet-stream;base64,";function J(A){return String.prototype.startsWith?A.startsWith(j):0===A.indexOf(j)}K="data:application/octet-stream;base64,AAAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAABAAAAAMAAAAGAAAABQAAAAIAAAAAAAAAAgAAAAMAAAABAAAABAAAAAYAAAAAAAAABQAAAAMAAAAGAAAABAAAAAUAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAABAAAABQAAAAIAAAAAAAAAAQAAAAMAAAAGAAAABAAAAAYAAAAAAAAABQAAAAIAAAABAAAABAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABgAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAABgAAAAAAAAADAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAUAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAACAAAABAAAAAMAAAAIAAAA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AAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAADAAAABQAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAABQAAAAUAAAAAAAAAAAAAAP////8BAAAAAAAAAAMAAAAEAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAP//////////AQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAIAAAAAAAAAAAAAAAEAAAACAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAACAAAAAAAAAAAAAAABAAAAAQAAAAUAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAAAAAAAAAAAAAEAAAADAAAABwAAAAYAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAJAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAAAAAAAAAAAAQAAAAQAAAAIAAAACgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAAAAAABAAAACwAAAA8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAAAAAAAAAAABAAAADAAAABAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAEAAAAKAAAAEwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAAAAAAAAQAAAA0AAAARAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAAAAAAAAAAAAAEAAAAOAAAAEgAAAA8AAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAAAAAABAAAA//////////8TAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABIAAAAAAAAAGAAAAAAAAAAhAAAAAAAAAB4AAAAAAAAAIAAAAAMAAAAxAAAAAQAAADAAAAADAAAAMgAAAAMAAAAIAAAAAAAAAAUAAAAFAAAACgAAAAUAAAAWAAAAAAAAABAAAAAAAAAAEgAAAAAAAAApAAAAAQAAACEAAAAAAAAAHgAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAPAAAAAQAAAAgAAAAAAAAABQAAAAUAAAAfAAAAAQAAABYAAAAAAAAAEAAAAAAAAAACAAAAAAAAAAYAAAAAAAAADgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAAEQAAAAMAAAAYAAAAAQAAABcAAAADAAAAGQAAAAMAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAUAAAAFAAAAAAAAAAIAAAAAAAAABgAAAAAAAAASAAAAAQAAAAoAAAAAAAAACwAAAAAAAAAEAAAAAQAAAAMAAAAFAAAABwAAAAUAAAAIAAAAAQAAAAAAAAAAAAAAAQAAAAUAAAAQAAAAAQAAAAUAAAAAAAAAAgAAAAAAAAAHAAAAAAAAABUAAAAAAAAAJgAAAAAAAAAJAAAAAAAAABMAAAAAAAAAIgAAAAMAAAAOAAAAAQAAABQAAAADAAAAJAAAAAMAAAADAAAAAAAAAA0AAAAFAAAAHQAAAAUAAAABAAAAAAAAAAcAAAAAAAAAFQAAAAAAAAAGAAAA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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAABAAEAAAEBAAAAAAABAAAAAQAAAAEAAQAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAAYWxnb3MuYwBfcG9seWZpbGxJbnRlcm5hbABhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0dlb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9HZW9Cb3VuZGFyeQBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGgzVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAcGVudGFnb25Sb3RhdGlvbnMgPj0gMABkaXJlY3Rpb25Sb3RhdGlvbnMgPj0gMABiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvSDMAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAd2l0aGluUGVudGFnb25Sb3RhdGlvbnMgPj0gMABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl";function X(A){return A}function q(A){return A.replace(/\b__Z[\w\d_]+/g,(function(A){return A===A?A:A+" ["+A+"]"}))}function $(){var A=new Error;if(!A.stack){try{throw new Error(0)}catch(e){A=e}if(!A.stack)return"(no stack trace available)"}return A.stack.toString()}function AA(){return _.length}function eA(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(_),oA(e),P(e),1}catch(A){}}function rA(A){for(var e=[],r=0;r<A.length;r++){var t=A[r];t>255&&(t&=255),e.push(String.fromCharCode(t))}return e.join("")}var tA="function"==typeof atob?atob:function(A){var e,r,t,n,i,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="",l=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=a.indexOf(A.charAt(l++))<<2|(n=a.indexOf(A.charAt(l++)))>>4,r=(15&n)<<4|(i=a.indexOf(A.charAt(l++)))>>2,t=(3&i)<<6|(o=a.indexOf(A.charAt(l++))),f+=String.fromCharCode(e),64!==i&&(f+=String.fromCharCode(r)),64!==o&&(f+=String.fromCharCode(t))}while(l<A.length);return f};function nA(A){if(J(A))return function(A){if("boolean"==typeof o&&o){var e;try{e=Buffer.from(A,"base64")}catch(r){e=new Buffer(A,"base64")}return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var r=tA(A),t=new Uint8Array(r.length),n=0;n<r.length;++n)t[n]=r.charCodeAt(n);return t}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(j.length))}var iA=function(A,e,r){var t=new A.Int8Array(r),n=new A.Int32Array(r);new A.Uint8Array(r),new A.Float32Array(r);var i=new A.Float64Array(r),o=0|e.p,a=A.Math.floor,f=A.Math.abs,l=A.Math.sqrt,s=A.Math.pow,u=A.Math.cos,c=A.Math.sin,h=A.Math.tan,g=A.Math.acos,d=A.Math.asin,w=A.Math.atan,b=A.Math.atan2,B=A.Math.ceil,p=A.Math.imul,k=A.Math.min,v=A.Math.clz32,E=e.b,y=e.c,_=e.d,m=e.e,Q=e.f,D=e.g,M=e.h,C=e.i,x=24048;function I(A,e,r,t){var n,i;0|F(A|=0,e|=0,r|=0,t|=0,0)&&(Ce(0|t,0,(i=1+(0|p(3*r|0,r+1|0))|0)<<3),(n=0|pe(i,4))&&(P(A,e,r,t,n,i,0),Be(n)))}function F(A,e,r,t,i){A|=0,e|=0,r|=0,i|=0;var o,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0;if(o=x,x=x+16|0,g=o,n[(a=t|=0)>>2]=A,n[a+4>>2]=e,(a=!!(0|i))&&(n[i>>2]=0),0|GA(A,e))return x=o,0|(g=1);n[g>>2]=0;A:do{if((0|r)>=1)if(a)for(u=0,c=1,h=1,f=0,a=A;;){if(!(f|u)){if(!(0|(a=0|G(a,e,4,g)))&!(0|(e=0|y()))){a=2;break A}if(0|GA(a,e)){a=1;break A}}if(!(0|(a=0|G(a,e,0|n[16+(u<<2)>>2],g)))&!(0|(e=0|y()))){a=2;break A}if(n[(A=t+(h<<3)|0)>>2]=a,n[A+4>>2]=e,n[i+(h<<2)>>2]=c,A=(0|(f=f+1|0))==(0|c),s=6==(0|(l=u+1|0)),0|GA(a,e)){a=1;break A}if((0|(c=c+(s&A&1)|0))>(0|r)){a=0;break}u=A?s?0:l:u,h=h+1|0,f=A?0:f}else for(u=0,c=1,h=1,f=0,a=A;;){if(!(f|u)){if(!(0|(a=0|G(a,e,4,g)))&!(0|(e=0|y()))){a=2;break A}if(0|GA(a,e)){a=1;break A}}if(!(0|(a=0|G(a,e,0|n[16+(u<<2)>>2],g)))&!(0|(e=0|y()))){a=2;break A}if(n[(A=t+(h<<3)|0)>>2]=a,n[A+4>>2]=e,A=(0|(f=f+1|0))==(0|c),s=6==(0|(l=u+1|0)),0|GA(a,e)){a=1;break A}if((0|(c=c+(s&A&1)|0))>(0|r)){a=0;break}u=A?s?0:l:u,h=h+1|0,f=A?0:f}else a=0}while(0);return x=o,0|(g=a)}function P(A,e,r,t,i,o,a){r|=0,t|=0,i|=0,o|=0,a|=0;var f,l,s=0,u=0,c=0,h=0,g=0;if(l=x,x=x+16|0,f=l,!(0|(A|=0))&!(0|(e|=0)))x=l;else{if(s=0|ye(0|A,0|e,0|o,((0|o)<0)<<31>>31),y(),!(!(0|(g=0|n[(h=u=t+(s<<3)|0)>>2]))&!(0|(h=0|n[h+4>>2]))|(c=(0|g)==(0|A)&(0|h)==(0|e))))do{c=(0|(h=0|n[(g=u=t+((s=(s+1|0)%(0|o)|0)<<3)|0)>>2]))==(0|A)&(0|(g=0|n[g+4>>2]))==(0|e)}while(!(!(0|h)&!(0|g)|c));s=i+(s<<2)|0,c&&(0|n[s>>2])<=(0|a)||(n[(g=u)>>2]=A,n[g+4>>2]=e,n[s>>2]=a,(0|a)>=(0|r)||(g=a+1|0,n[f>>2]=0,P(h=0|G(A,e,2,f),0|y(),r,t,i,o,g),n[f>>2]=0,P(h=0|G(A,e,3,f),0|y(),r,t,i,o,g),n[f>>2]=0,P(h=0|G(A,e,1,f),0|y(),r,t,i,o,g),n[f>>2]=0,P(h=0|G(A,e,5,f),0|y(),r,t,i,o,g),n[f>>2]=0,P(h=0|G(A,e,4,f),0|y(),r,t,i,o,g),n[f>>2]=0,P(h=0|G(A,e,6,f),0|y(),r,t,i,o,g))),x=l}}function G(A,e,r,t){A|=0,e|=0,r|=0;var i,o,a=0,f=0,l=0,s=0,u=0,c=0,h=0;if((0|n[(t|=0)>>2])>0){a=0;do{r=0|fA(r),a=a+1|0}while((0|a)<(0|n[t>>2]))}i=0|_e(0|A,0|e,45),y(),o=127&i,f=0|SA(A,e),a=0|_e(0|A,0|e,52),y(),a&=15;A:do{if(a)for(;;){if(c=0|_e(0|A,0|e,0|(u=3*(15-a|0)|0)),y(),c&=7,h=!(0|HA(a)),a=a+-1|0,s=0|me(7,0,0|u),e&=~y(),A=(u=0|me(0|n[(h?464:48)+(28*c|0)+(r<<2)>>2],0,0|u))|A&~s,e|=0|y(),!(r=0|n[(h?672:256)+(28*c|0)+(r<<2)>>2])){r=0;break A}if(!a){l=6;break}}else l=6}while(0);6==(0|l)&&(A|=c=0|me(0|(h=0|n[880+(28*o|0)+(r<<2)>>2]),0,45),e=y()|-1040385&e,r=0|n[4304+(28*o|0)+(r<<2)>>2],127&~h||(h=0|me(0|n[880+(28*o|0)+20>>2],0,45),e=y()|-1040385&e,r=0|n[4304+(28*o|0)+20>>2],A=0|TA(h|A,e),e=0|y(),n[t>>2]=1+(0|n[t>>2]))),l=0|_e(0|A,0|e,45),y(),l&=127;A:do{if(0|U(l)){e:do{if(1==(0|SA(A,e))){if((0|o)!=(0|l)){if(0|H(l,0|n[7728+(28*o|0)>>2])){A=0|LA(A,e),f=1,e=0|y();break}A=0|TA(A,e),f=1,e=0|y();break}switch(0|f){case 5:A=0|LA(A,e),e=0|y(),n[t>>2]=5+(0|n[t>>2]),f=0;break e;case 3:A=0|TA(A,e),e=0|y(),n[t>>2]=1+(0|n[t>>2]),f=0;break e;default:return h=0,E(0|(c=0)),0|h}}else f=0}while(0);if((0|r)>0){a=0;do{A=0|UA(A,e),e=0|y(),a=a+1|0}while((0|a)!=(0|r))}if((0|o)!=(0|l)){if(!(0|T(l))){if(!!(0|f)|5!=(0|SA(A,e)))break;n[t>>2]=1+(0|n[t>>2]);break}switch(127&i){case 8:case 118:break A}3!=(0|SA(A,e))&&(n[t>>2]=1+(0|n[t>>2]))}}else if((0|r)>0){a=0;do{A=0|TA(A,e),e=0|y(),a=a+1|0}while((0|a)!=(0|r))}}while(0);return n[t>>2]=((0|n[t>>2])+r|0)%6|0,h=A,E(0|(c=e)),0|h}function S(A,e,r,t,o,a){e|=0,r|=0,t|=0,o|=0,a|=0;var f,l,s,u,c,h,g,d,w,b=0,B=0,p=0,k=0,v=0,E=0,_=0,m=0,Q=0,D=0,M=0,C=0,I=0,F=0;if(w=x,x=x+48|0,h=w+32|0,g=w+16|0,d=w,(0|(b=0|n[(A|=0)>>2]))<=0)return x=w,0|(C=0);f=A+4|0,l=h+8|0,s=g+8|0,u=d+8|0,c=((0|e)<0)<<31>>31,M=0;A:for(;;){Q=(B=0|n[f>>2])+(M<<4)|0,n[h>>2]=n[Q>>2],n[h+4>>2]=n[Q+4>>2],n[h+8>>2]=n[Q+8>>2],n[h+12>>2]=n[Q+12>>2],(0|M)==(b+-1|0)?(n[g>>2]=n[B>>2],n[g+4>>2]=n[B+4>>2],n[g+8>>2]=n[B+8>>2],n[g+12>>2]=n[B+12>>2]):(Q=B+(M+1<<4)|0,n[g>>2]=n[Q>>2],n[g+4>>2]=n[Q+4>>2],n[g+8>>2]=n[Q+8>>2],n[g+12>>2]=n[Q+12>>2]),Q=0|Z(h,g,r);e:do{if((0|Q)>0){D=+(0|Q),m=0;r:for(;;){F=+(Q-m|0),I=+(0|m),i[d>>3]=+i[h>>3]*F/D+ +i[g>>3]*I/D,i[u>>3]=+i[l>>3]*F/D+ +i[s>>3]*I/D,B=0|ye(0|(E=0|zA(d,r)),0|(_=0|y()),0|e,0|c),y(),k=0|n[(p=b=a+(B<<3)|0)>>2],p=0|n[p+4>>2];t:do{if(!(0|k)&!(0|p))C=14;else for(v=0;;){if((0|v)>(0|e)){b=1;break t}if((0|k)==(0|E)&(0|p)==(0|_)){b=7;break t}if(!(0|(k=0|n[(p=b=a+((B=(B+1|0)%(0|e)|0)<<3)|0)>>2]))&!(0|(p=0|n[p+4>>2]))){C=14;break}v=v+1|0}}while(0);switch(14==(0|C)&&(C=0,!(0|E)&!(0|_)?b=7:(n[b>>2]=E,n[b+4>>2]=_,b=0|n[t>>2],n[(v=o+(b<<3)|0)>>2]=E,n[v+4>>2]=_,n[t>>2]=b+1,b=0)),7&b){case 7:case 0:break;default:break r}if((0|Q)<=(0|(m=m+1|0))){C=8;break e}}if(0|b){b=-1,C=20;break A}}else C=8}while(0);if(8==(0|C)&&(C=0),(0|(M=M+1|0))>=(0|(b=0|n[A>>2]))){b=0,C=20;break}}return 20==(0|C)?(x=w,0|b):0}function U(A){return 0|n[7728+(28*(A|=0)|0)+16>>2]}function T(A){return 4==(0|(A|=0))|117==(0|A)}function R(A){return 0|n[11152+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function L(A){return 0|n[11152+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function H(A,e){return e|=0,(0|n[7728+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|n[7728+(28*A|0)+24>>2])==(0|e))}function z(A,e){return 0|n[880+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function O(A,e){return e|=0,(0|n[880+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|n[880+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[880+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[880+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[880+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[880+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[880+(28*A|0)+24>>2])==(0|e)?6:7)}function V(A){return+i[(A|=0)+16>>3]<+i[A+24>>3]|0}function Y(A,e){A|=0;var r,t,n=0;return(n=+i[(e|=0)>>3])>=+i[A+8>>3]&&n<=+i[A>>3]?(r=+i[A+16>>3],n=+i[A+24>>3],e=(t=+i[e+8>>3])>=n,A=t<=r&1,r<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function N(A,e){A|=0,e|=0;var r,t,o,a,l,s,u=0,c=0;a=x,x=x+288|0,r=a+264|0,t=a+96|0,c=(u=o=a)+96|0;do{n[u>>2]=0,u=u+4|0}while((0|u)<(0|c));return ZA(e,o),YA(c=0|n[(u=o)>>2],u=0|n[u+4>>2],r),NA(c,u,t),l=+MA(r,t+8|0),i[r>>3]=+i[A>>3],i[(u=r+8|0)>>3]=+i[A+16>>3],i[t>>3]=+i[A+8>>3],i[(c=t+8|0)>>3]=+i[A+24>>3],s=+MA(r,t),c=~~+B(+s*s/+Qe(+ +f(+(+i[u>>3]-+i[c>>3])/(+i[r>>3]-+i[t>>3])),3)/(l*(2.59807621135*l)*.8)),x=a,0|(0|c?c:1)}function Z(A,e,r){A|=0,e|=0,r|=0;var t,i,o,a,f,l=0,s=0;a=x,x=x+288|0,t=a+264|0,i=a+96|0,s=(l=o=a)+96|0;do{n[l>>2]=0,l=l+4|0}while((0|l)<(0|s));return ZA(r,o),YA(l=0|n[(s=o)>>2],s=0|n[s+4>>2],t),NA(l,s,i),f=+MA(t,i+8|0),s=~~+B(+ +MA(A,e)/(2*f)),x=a,0|(0|s?s:1)}function W(A,e,r,t){e|=0,r|=0,t|=0,n[(A|=0)>>2]=e,n[A+4>>2]=r,n[A+8>>2]=t}function K(A,e){A|=0;var r,t,o,a,l=0,s=0,u=0,c=0,h=0,g=0,d=0;n[(a=(e|=0)+8|0)>>2]=0,t=+i[A>>3],c=+f(+t),o=+i[A+8>>3],c+=.5*(h=+f(+o)/.8660254037844386),c-=+(0|(l=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=l,h<.5*(c+1)){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,n[e+4>>2]=A,d<=h&h<2*c){l=l+1|0,n[e>>2]=l;break}n[e>>2]=l;break}if(!(c<.6666666666666666)){if(l=l+1|0,n[e>>2]=l,h<.5*c){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=l;break}}else A=A+1|0,n[e+4>>2]=A;l=l+1|0,n[e>>2]=l}while(0);do{if(t<0){if(1&A){l=~~(+(0|l)-(2*(+((g=0|ke(0|l,((0|l)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|y()))+1)),n[e>>2]=l;break}l=~~(+(0|l)-2*(+((g=0|ke(0|l,((0|l)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|y()))),n[e>>2]=l;break}}while(0);g=e+4|0,o<0&&(l=l-((1|A<<1)/2|0)|0,n[e>>2]=l,A=0-A|0,n[g>>2]=A),s=A-l|0,(0|l)<0?(u=0-l|0,n[g>>2]=s,n[a>>2]=u,n[e>>2]=0,A=s,l=0):u=0,(0|A)<0&&(l=l-A|0,n[e>>2]=l,u=u-A|0,n[a>>2]=u,n[g>>2]=0,A=0),r=l-u|0,s=A-u|0,(0|u)<0&&(n[e>>2]=r,n[g>>2]=s,n[a>>2]=0,A=s,l=r,u=0),(0|(s=(0|u)<(0|(s=(0|A)<(0|l)?A:l))?u:s))<=0||(n[e>>2]=l-s,n[g>>2]=A-s,n[a>>2]=u-s)}function j(A){var e,r=0,t=0,i=0,o=0,a=0;r=0|n[(A|=0)>>2],t=0|n[(e=A+4|0)>>2],(0|r)<0&&(t=t-r|0,n[e>>2]=t,n[(a=A+8|0)>>2]=(0|n[a>>2])-r,n[A>>2]=0,r=0),(0|t)<0?(r=r-t|0,n[A>>2]=r,o=(0|n[(a=A+8|0)>>2])-t|0,n[a>>2]=o,n[e>>2]=0,t=0):(a=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(r=r-o|0,n[A>>2]=r,t=t-o|0,n[e>>2]=t,n[a>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|t)<(0|r)?t:r))?o:i))<=0||(n[A>>2]=r-i,n[e>>2]=t-i,n[a>>2]=o-i)}function J(A,e){e|=0;var r,t;t=0|n[(A|=0)+8>>2],r=+((0|n[A+4>>2])-t|0),i[e>>3]=+((0|n[A>>2])-t|0)-.5*r,i[e+8>>3]=.8660254037844386*r}function X(A,e,r){A|=0,e|=0,n[(r|=0)>>2]=(0|n[e>>2])+(0|n[A>>2]),n[r+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[r+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function q(A,e,r){A|=0,e|=0,n[(r|=0)>>2]=(0|n[A>>2])-(0|n[e>>2]),n[r+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[r+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function $(A,e){e|=0;var r,t=0;t=0|p(0|n[(A|=0)>>2],e),n[A>>2]=t,r=0|p(0|n[(t=A+4|0)>>2],e),n[t>>2]=r,e=0|p(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function AA(A){var e,r,t=0,i=0,o=0,a=0,f=0;f=(0|(r=0|n[(A|=0)>>2]))<0,A=(A=(i=(0|(a=((e=(0|(o=(0|n[A+4>>2])-(f?r:0)|0))<0)?0-o|0:0)+((0|n[A+8>>2])-(f?r:0))|0))<0)?0:a)-((o=(0|(i=(0|A)<(0|(i=(0|(t=(e?0:o)-(i?a:0)|0))<(0|(a=(f?0:r)-(e?o:0)-(i?a:0)|0))?t:a))?A:i))>0)?i:0)|0,t=t-(o?i:0)|0;A:do{switch(a-(o?i:0)|0){case 0:switch(0|t){case 0:return 0|(f=0|A?1==(0|A)?1:7:0);case 1:return 0|(f=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|t){case 0:return 0|(f=0|A?1==(0|A)?5:7:4);case 1:if(A)break A;return 0|(A=6);default:break A}}}while(0);return 0|(f=7)}function eA(A){var e,r,t=0,i=0,o=0,a=0,f=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|we(+((3*(t=(0|n[A>>2])-i|0)|0)-(i=(0|n[(r=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,t=0|we(+((i<<1)+t|0)/7),n[r>>2]=t,n[e>>2]=0,i=t-o|0,(0|o)<0?(f=0-o|0,n[r>>2]=i,n[e>>2]=f,n[A>>2]=0,t=i,o=0,i=f):i=0,(0|t)<0&&(o=o-t|0,n[A>>2]=o,i=i-t|0,n[e>>2]=i,n[r>>2]=0,t=0),f=o-i|0,a=t-i|0,(0|i)<0?(n[A>>2]=f,n[r>>2]=a,n[e>>2]=0,t=a,a=f,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|t)<(0|a)?t:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=t-o,n[e>>2]=i-o)}function rA(A){var e,r,t=0,i=0,o=0,a=0,f=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|we(+(((t=(0|n[A>>2])-i|0)<<1)+(i=(0|n[(r=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,t=0|we(+((3*i|0)-t|0)/7),n[r>>2]=t,n[e>>2]=0,i=t-o|0,(0|o)<0?(f=0-o|0,n[r>>2]=i,n[e>>2]=f,n[A>>2]=0,t=i,o=0,i=f):i=0,(0|t)<0&&(o=o-t|0,n[A>>2]=o,i=i-t|0,n[e>>2]=i,n[r>>2]=0,t=0),f=o-i|0,a=t-i|0,(0|i)<0?(n[A>>2]=f,n[r>>2]=a,n[e>>2]=0,t=a,a=f,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|t)<(0|a)?t:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=t-o,n[e>>2]=i-o)}function tA(A){var e,r,t,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],o=0|n[(r=A+4|0)>>2],a=0|n[(t=A+8|0)>>2],f=o+(3*i|0)|0,n[A>>2]=f,o=a+(3*o|0)|0,n[r>>2]=o,i=(3*a|0)+i|0,n[t>>2]=i,a=o-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=a,n[t>>2]=i,n[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=f,n[t>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=f-o,n[t>>2]=i-o)}function nA(A){var e,r,t,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=(3*(i=0|n[(r=A+4|0)>>2])|0)+f|0,f=(o=0|n[(t=A+8|0)>>2])+(3*f|0)|0,n[A>>2]=f,n[r>>2]=a,i=(3*o|0)+i|0,n[t>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=o,n[t>>2]=i,n[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,n[A>>2]=f,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=f-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=a,n[t>>2]=0,f=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|f)?a:f))?i:o))<=0||(n[A>>2]=f-o,n[r>>2]=a-o,n[t>>2]=i-o)}function iA(A,e){A|=0;var r,t,i,o=0,a=0,f=0;((e|=0)+-1|0)>>>0>=6||(f=(0|n[15472+(12*e|0)>>2])+(0|n[A>>2])|0,n[A>>2]=f,i=A+4|0,a=(0|n[15472+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[i>>2]=a,t=A+8|0,e=(0|n[15472+(12*e|0)+8>>2])+(0|n[t>>2])|0,n[t>>2]=e,o=a-f|0,(0|f)<0?(e=e-f|0,n[i>>2]=o,n[t>>2]=e,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,e=e-o|0,n[t>>2]=e,n[i>>2]=0,o=0),r=a-e|0,f=o-e|0,(0|e)<0?(n[A>>2]=r,n[i>>2]=f,n[t>>2]=0,a=r,e=0):f=o,(0|(o=(0|e)<(0|(o=(0|f)<(0|a)?f:a))?e:o))<=0||(n[A>>2]=a-o,n[i>>2]=f-o,n[t>>2]=e-o))}function oA(A){var e,r,t,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=(i=0|n[(r=A+4|0)>>2])+f|0,f=(o=0|n[(t=A+8|0)>>2])+f|0,n[A>>2]=f,n[r>>2]=a,i=o+i|0,n[t>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=o,n[t>>2]=i,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=f,n[t>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=f-o,n[t>>2]=i-o)}function aA(A){var e,r,t,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],a=0|n[(r=A+4|0)>>2],o=0|n[(t=A+8|0)>>2],f=a+i|0,n[A>>2]=f,a=o+a|0,n[r>>2]=a,i=o+i|0,n[t>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=o,n[t>>2]=i,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=f,n[t>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=f-o,n[t>>2]=i-o)}function fA(A){switch(0|(A|=0)){case 1:A=5;break;case 5:A=4;break;case 4:A=6;break;case 6:A=2;break;case 2:A=3;break;case 3:A=1}return 0|A}function lA(A){switch(0|(A|=0)){case 1:A=3;break;case 3:A=2;break;case 2:A=6;break;case 6:A=4;break;case 4:A=5;break;case 5:A=1}return 0|A}function sA(A){var e,r,t,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],o=0|n[(r=A+4|0)>>2],a=0|n[(t=A+8|0)>>2],f=o+(i<<1)|0,n[A>>2]=f,o=a+(o<<1)|0,n[r>>2]=o,i=(a<<1)+i|0,n[t>>2]=i,a=o-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=a,n[t>>2]=i,n[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=f,n[t>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[r>>2]=f-o,n[t>>2]=i-o)}function uA(A){var e,r,t,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=((i=0|n[(r=A+4|0)>>2])<<1)+f|0,f=(o=0|n[(t=A+8|0)>>2])+(f<<1)|0,n[A>>2]=f,n[r>>2]=a,i=(o<<1)+i|0,n[t>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[r>>2]=o,n[t>>2]=i,n[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,n[A>>2]=f,i=i-o|0,n[t>>2]=i,n[r>>2]=0,o=0),e=f-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[r>>2]=a,n[t>>2]=0,f=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|f)?a:f))?i:o))<=0||(n[A>>2]=f-o,n[r>>2]=a-o,n[t>>2]=i-o)}function cA(A,e){e|=0;var r,t,i,o=0,a=0,f=0;return i=(0|(t=(0|n[(A|=0)>>2])-(0|n[e>>2])|0))<0,r=(0|(a=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?t:0)|0))<0,e=(e=(A=(0|(f=(i?0-t|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+(r?0-a|0:0)|0))<0)?0:f)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(r?0:a)-(A?f:0)|0))<(0|(f=(i?0:t)-(r?a:0)-(A?f:0)|0))?o:f))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=f-(a?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function hA(A,e){e|=0;var r;r=0|n[(A|=0)+8>>2],n[e>>2]=(0|n[A>>2])-r,n[e+4>>2]=(0|n[A+4>>2])-r}function gA(A,e){e|=0;var r,t,i,o=0,a=0,f=0;a=0|n[(A|=0)>>2],n[e>>2]=a,A=0|n[A+4>>2],n[(t=e+4|0)>>2]=A,n[(i=e+8|0)>>2]=0,o=A-a|0,(0|a)<0?(A=0-a|0,n[t>>2]=o,n[i>>2]=A,n[e>>2]=0,a=0):(o=A,A=0),(0|o)<0&&(a=a-o|0,n[e>>2]=a,A=A-o|0,n[i>>2]=A,n[t>>2]=0,o=0),r=a-A|0,f=o-A|0,(0|A)<0?(n[e>>2]=r,n[t>>2]=f,n[i>>2]=0,o=f,f=r,A=0):f=a,(0|(a=(0|A)<(0|(a=(0|o)<(0|f)?o:f))?A:a))<=0||(n[e>>2]=f-a,n[t>>2]=o-a,n[i>>2]=A-a)}function dA(A){var e,r,t,i;r=(i=0|n[(e=(A|=0)+8|0)>>2])-(0|n[A>>2])|0,n[A>>2]=r,A=(0|n[(t=A+4|0)>>2])-i|0,n[t>>2]=A,n[e>>2]=0-(A+r)}function wA(A){var e,r,t=0,i=0,o=0,a=0,f=0;t=0-(i=0|n[(A|=0)>>2])|0,n[A>>2]=t,n[(e=A+8|0)>>2]=0,a=(o=0|n[(r=A+4|0)>>2])+i|0,(0|i)>0?(n[r>>2]=a,n[e>>2]=i,n[A>>2]=0,t=0,o=a):i=0,(0|o)<0?(f=t-o|0,n[A>>2]=f,i=i-o|0,n[e>>2]=i,n[r>>2]=0,a=f-i|0,t=0-i|0,(0|i)<0?(n[A>>2]=a,n[r>>2]=t,n[e>>2]=0,o=t,i=0):(o=0,a=f)):a=t,(0|(t=(0|i)<(0|(t=(0|o)<(0|a)?o:a))?i:t))<=0||(n[A>>2]=a-t,n[r>>2]=o-t,n[e>>2]=i-t)}function bA(A,e,r,t){e|=0,r|=0,t|=0;var o,a=0,f=0,l=0,s=0;if(o=x,x=x+32|0,function(A,e){A|=0,e|=0;var r=0,t=0,n=0;r=+i[A>>3],t=+u(+r),r=+c(+r),i[e+16>>3]=r,r=+i[A+8>>3],n=t*+u(+r),i[e>>3]=n,r=t*+c(+r),i[e+8>>3]=r}(A|=0,f=o),n[r>>2]=0,a=+fe(15888,f),(l=+fe(15912,f))<a&&(n[r>>2]=1,a=l),(l=+fe(15936,f))<a&&(n[r>>2]=2,a=l),(l=+fe(15960,f))<a&&(n[r>>2]=3,a=l),(l=+fe(15984,f))<a&&(n[r>>2]=4,a=l),(l=+fe(16008,f))<a&&(n[r>>2]=5,a=l),(l=+fe(16032,f))<a&&(n[r>>2]=6,a=l),(l=+fe(16056,f))<a&&(n[r>>2]=7,a=l),(l=+fe(16080,f))<a&&(n[r>>2]=8,a=l),(l=+fe(16104,f))<a&&(n[r>>2]=9,a=l),(l=+fe(16128,f))<a&&(n[r>>2]=10,a=l),(l=+fe(16152,f))<a&&(n[r>>2]=11,a=l),(l=+fe(16176,f))<a&&(n[r>>2]=12,a=l),(l=+fe(16200,f))<a&&(n[r>>2]=13,a=l),(l=+fe(16224,f))<a&&(n[r>>2]=14,a=l),(l=+fe(16248,f))<a&&(n[r>>2]=15,a=l),(l=+fe(16272,f))<a&&(n[r>>2]=16,a=l),(l=+fe(16296,f))<a&&(n[r>>2]=17,a=l),(l=+fe(16320,f))<a&&(n[r>>2]=18,a=l),(l=+fe(16344,f))<a&&(n[r>>2]=19,a=l),(l=+g(+(1-.5*a)))<1e-16)return n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,n[t+12>>2]=0,void(x=o);if(r=0|n[r>>2],a=+QA((a=+i[16368+(24*r|0)>>3])-+QA(+function(A,e){A|=0,e|=0;var r=0,t=0,n=0,o=0,a=0;return o=+i[e>>3],t=+u(+o),n=+i[e+8>>3]-+i[A+8>>3],a=t*+c(+n),r=+i[A>>3],+ +b(+a,+(+c(+o)*+u(+r)-+u(+n)*(t*+c(+r))))}(15568+(r<<4)|0,A))),s=0|HA(e)?+QA(a+-.3334731722518321):a,a=+h(+l)/.381966011250105,(0|e)>0){f=0;do{a*=2.6457513110645907,f=f+1|0}while((0|f)!=(0|e))}l=+u(+s)*a,i[t>>3]=l,s=+c(+s)*a,i[t+8>>3]=s,x=o}function BA(A,e,r,t,o){e|=0,r|=0,t|=0,o|=0;var a=0,s=0;if(a=+function(A){A|=0;var e=0,r=0;return r=+i[A>>3],e=+i[A+8>>3],+ +l(+(r*r+e*e))}(A|=0),a<1e-16)return e=15568+(e<<4)|0,n[o>>2]=n[e>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(s=+b(+ +i[A+8>>3],+ +i[A>>3]),(0|r)>0){A=0;do{a/=2.6457513110645907,A=A+1|0}while((0|A)!=(0|r))}t?(a/=3,r=!(0|HA(r)),a=+w(.381966011250105*(r?a:a/2.6457513110645907))):(a=+w(.381966011250105*a),0|HA(r)&&(s=+QA(s+.3334731722518321))),function(A,e,r,t){A|=0,e=+e,r=+r,t|=0;var o=0,a=0,l=0,s=0;if(r<1e-16)return n[t>>2]=n[A>>2],n[t+4>>2]=n[A+4>>2],n[t+8>>2]=n[A+8>>2],void(n[t+12>>2]=n[A+12>>2]);a=e<0?e+6.283185307179586:e,a=e>=6.283185307179586?a+-6.283185307179586:a;do{if(!(a<1e-16)){if(o=+f(+(a+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=r,i[t>>3]=e,o=t;break}if(l=+u(+r),r=+c(+r),e=l*+c(+e)+ +u(+a)*(r*+u(+e)),e=+d(+((e=e>1?1:e)<-1?-1:e)),i[t>>3]=e,+f(+(e+-1.5707963267948966))<1e-16)return i[t>>3]=1.5707963267948966,void(i[t+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return i[t>>3]=-1.5707963267948966,void(i[t+8>>3]=0);if(s=+u(+e),a=r*+c(+a)/s,r=+i[A>>3],e=(l-+c(+e)*+c(+r))/+u(+r)/s,l=a>1?1:a,e=e>1?1:e,(e=+i[A+8>>3]+ +b(+(l<-1?-1:l),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[t+8>>3]=e)}e=+i[A>>3]+r,i[t>>3]=e,o=t}while(0);if(+f(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[t+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[t+8>>3]=0);if(e=+i[A+8>>3],e>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[t+8>>3]=e}(15568+(e<<4)|0,+QA(+i[16368+(24*e|0)>>3]-s),a,o)}function pA(A,e,r){e|=0,r|=0;var t,i;t=x,x=x+16|0,J((A|=0)+4|0,i=t),BA(i,0|n[A>>2],e,0,r),x=t}function kA(A,e,r,t,o){A|=0,e|=0,r|=0,t|=0,o|=0;var a,f,l,s,u,c,h,g,d,w,b,B,p,k,v,E,y,m,Q,D,M,C,I=0,F=0,P=0,G=0,S=0,U=0;if(C=x,x=x+272|0,G=C+240|0,Q=C,D=C+224|0,M=C+208|0,b=C+176|0,B=C+160|0,p=C+192|0,k=C+144|0,v=C+128|0,E=C+112|0,y=C+96|0,m=C+80|0,n[(I=C+256|0)>>2]=e,n[G>>2]=n[A>>2],n[G+4>>2]=n[A+4>>2],n[G+8>>2]=n[A+8>>2],n[G+12>>2]=n[A+12>>2],vA(G,I,Q),n[o>>2]=0,(0|(G=t+r+(5==(0|t)&1)|0))<=(0|r))x=C;else{f=D+4|0,l=b+4|0,s=r+5|0,u=16848+((a=0|n[I>>2])<<2)|0,c=16928+(a<<2)|0,h=v+8|0,g=E+8|0,d=y+8|0,w=M+4|0,P=r;A:for(;;){F=Q+((0|P)%5<<4)|0,n[M>>2]=n[F>>2],n[M+4>>2]=n[F+4>>2],n[M+8>>2]=n[F+8>>2],n[M+12>>2]=n[F+12>>2];do{}while(2==(0|EA(M,a,0,1)));if((0|P)>(0|r)&!!(0|HA(e))){if(n[b>>2]=n[M>>2],n[b+4>>2]=n[M+4>>2],n[b+8>>2]=n[M+8>>2],n[b+12>>2]=n[M+12>>2],J(f,B),t=0|n[b>>2],I=0|n[17008+(80*t|0)+(n[D>>2]<<2)>>2],n[b>>2]=n[18608+(80*t|0)+(20*I|0)>>2],(0|(F=0|n[18608+(80*t|0)+(20*I|0)+16>>2]))>0){A=0;do{oA(l),A=A+1|0}while((0|A)<(0|F))}switch(F=18608+(80*t|0)+(20*I|0)+4|0,n[p>>2]=n[F>>2],n[p+4>>2]=n[F+4>>2],n[p+8>>2]=n[F+8>>2],$(p,3*(0|n[u>>2])|0),X(l,p,l),j(l),J(l,k),S=+(0|n[c>>2]),i[v>>3]=3*S,i[h>>3]=0,U=-1.5*S,i[E>>3]=U,i[g>>3]=2.598076211353316*S,i[y>>3]=U,i[d>>3]=-2.598076211353316*S,0|n[17008+(80*(0|n[b>>2])|0)+(n[M>>2]<<2)>>2]){case 1:A=E,t=v;break;case 3:A=y,t=E;break;case 2:A=v,t=y;break;default:A=12;break A}oe(B,k,t,A,m),BA(m,0|n[b>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|P)<(0|s)&&(J(w,b),BA(b,0|n[M>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[D>>2]=n[M>>2],n[D+4>>2]=n[M+4>>2],n[D+8>>2]=n[M+8>>2],n[D+12>>2]=n[M+12>>2],(0|(P=P+1|0))>=(0|G)){A=3;break}}3!=(0|A)?12==(0|A)&&_(22474,22521,581,22531):x=C}}function vA(A,e,r){A|=0,e|=0,r|=0;var t,i=0,o=0,a=0,f=0,l=0;t=x,x=x+128|0,o=t,f=20208,l=(a=i=t+64|0)+60|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));f=20272,l=(a=o)+60|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));i=(l=!(0|HA(0|n[e>>2])))?i:o,sA(o=A+4|0),uA(o),0|HA(0|n[e>>2])&&(nA(o),n[e>>2]=1+(0|n[e>>2])),n[r>>2]=n[A>>2],X(o,i,e=r+4|0),j(e),n[r+16>>2]=n[A>>2],X(o,i+12|0,e=r+20|0),j(e),n[r+32>>2]=n[A>>2],X(o,i+24|0,e=r+36|0),j(e),n[r+48>>2]=n[A>>2],X(o,i+36|0,e=r+52|0),j(e),n[r+64>>2]=n[A>>2],X(o,i+48|0,r=r+68|0),j(r),x=t}function EA(A,e,r,t){r|=0,t|=0;var i,o,a,f,l,s,u=0,c=0,h=0,g=0,d=0;if(s=x,x=x+32|0,l=s+12|0,o=s,d=(A|=0)+4|0,g=0|n[16928+((e|=0)<<2)>>2],g=(f=!!(0|t))?3*g|0:g,u=0|n[d>>2],i=0|n[(a=A+8|0)>>2],f){if((0|(u=i+u+(t=0|n[(c=A+12|0)>>2])|0))==(0|g))return x=s,0|(d=1);h=c}else u=i+u+(t=0|n[(h=A+12|0)>>2])|0;if((0|u)<=(0|g))return x=s,0|(d=0);do{if((0|t)>0){if(t=0|n[A>>2],(0|i)>0){c=18608+(80*t|0)+60|0,t=A;break}t=18608+(80*t|0)+40|0,r?(W(l,g,0,0),q(d,l,o),aA(o),X(o,l,d),c=t,t=A):(c=t,t=A)}else c=18608+(80*(0|n[A>>2])|0)+20|0,t=A}while(0);if(n[t>>2]=n[c>>2],(0|n[(u=c+16|0)>>2])>0){t=0;do{oA(d),t=t+1|0}while((0|t)<(0|n[u>>2]))}return A=c+4|0,n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],e=0|n[16848+(e<<2)>>2],$(l,f?3*e|0:e),X(d,l,d),j(d),t=f&&((0|n[a>>2])+(0|n[d>>2])+(0|n[h>>2])|0)==(0|g)?1:2,x=s,0|(d=t)}function yA(A,e){A|=0,e|=0;var r=0;do{r=0|EA(A,e,0,1)}while(2==(0|r));return 0|r}function _A(A,e,r,t,o){A|=0,e|=0,r|=0,t|=0,o|=0;var a,f,l,s,u,c,h,g,d,w,b,B,p,k,v,E,y,m,Q=0,D=0,M=0,C=0,I=0;if(m=x,x=x+240|0,k=m+208|0,v=m,E=m+192|0,y=m+176|0,d=m+160|0,w=m+144|0,b=m+128|0,B=m+112|0,p=m+96|0,n[(Q=m+224|0)>>2]=e,n[k>>2]=n[A>>2],n[k+4>>2]=n[A+4>>2],n[k+8>>2]=n[A+8>>2],n[k+12>>2]=n[A+12>>2],mA(k,Q,v),n[o>>2]=0,(0|(g=t+r+(6==(0|t)&1)|0))<=(0|r))x=m;else{f=r+6|0,l=16928+((a=0|n[Q>>2])<<2)|0,s=w+8|0,u=b+8|0,c=B+8|0,h=E+4|0,D=0,M=r,t=-1;A:for(;;){if(A=v+((Q=(0|M)%6|0)<<4)|0,n[E>>2]=n[A>>2],n[E+4>>2]=n[A+4>>2],n[E+8>>2]=n[A+8>>2],n[E+12>>2]=n[A+12>>2],A=D,D=0|EA(E,a,0,1),(0|M)>(0|r)&!!(0|HA(e))&&(1!=(0|A)&&(0|n[E>>2])!=(0|t))){switch(J(v+((Q+5|0)%6<<4)+4|0,y),J(v+(Q<<4)+4|0,d),C=+(0|n[l>>2]),i[w>>3]=3*C,i[s>>3]=0,I=-1.5*C,i[b>>3]=I,i[u>>3]=2.598076211353316*C,i[B>>3]=I,i[c>>3]=-2.598076211353316*C,Q=0|n[k>>2],0|n[17008+(80*Q|0)+(((0|t)==(0|Q)?n[E>>2]:t)<<2)>>2]){case 1:A=b,t=w;break;case 3:A=B,t=b;break;case 2:A=w,t=B;break;default:A=8;break A}oe(y,d,t,A,p),0|ae(y,p)||0|ae(d,p)||(BA(p,0|n[k>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|M)<(0|f)&&(J(h,y),BA(y,0|n[E>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(M=M+1|0))>=(0|g)){A=3;break}t=0|n[E>>2]}3!=(0|A)?8==(0|A)&&_(22557,22521,746,22602):x=m}}function mA(A,e,r){A|=0,e|=0,r|=0;var t,i=0,o=0,a=0,f=0,l=0;t=x,x=x+160|0,o=t,f=20336,l=(a=i=t+80|0)+72|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));f=20416,l=(a=o)+72|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));i=(l=!(0|HA(0|n[e>>2])))?i:o,sA(o=A+4|0),uA(o),0|HA(0|n[e>>2])&&(nA(o),n[e>>2]=1+(0|n[e>>2])),n[r>>2]=n[A>>2],X(o,i,e=r+4|0),j(e),n[r+16>>2]=n[A>>2],X(o,i+12|0,e=r+20|0),j(e),n[r+32>>2]=n[A>>2],X(o,i+24|0,e=r+36|0),j(e),n[r+48>>2]=n[A>>2],X(o,i+36|0,e=r+52|0),j(e),n[r+64>>2]=n[A>>2],X(o,i+48|0,e=r+68|0),j(e),n[r+80>>2]=n[A>>2],X(o,i+60|0,r=r+84|0),j(r),x=t}function QA(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function DA(A,e){return e|=0,+f(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+f(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function MA(A,e){A|=0;var r,t,n,o=0;return t=+i[(e|=0)>>3],r=+i[A>>3],o=(n=+c(.5*(t-r)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+u(+t)*+u(+r)*o),2*+b(+ +l(+o),+ +l(+(1-o)))*6371.007180918475}function CA(A,e,r){A|=0,r|=0;var t,n,o,a,f=0,s=0,g=0,d=0,B=0,p=0;return p=+i[(e|=0)>>3],o=+i[A>>3],B=+c(.5*(p-o)),g=+i[e+8>>3],n=+i[A+8>>3],d=+c(.5*(g-n)),t=+u(+o),a=+u(+p),d=2*+b(+ +l(+(d=B*B+d*(a*t*d))),+ +l(+(1-d))),B=+i[r>>3],p=+c(.5*(B-p)),f=+i[r+8>>3],g=+c(.5*(f-g)),s=+u(+B),g=2*+b(+ +l(+(g=p*p+g*(a*s*g))),+ +l(+(1-g))),B=+c(.5*(o-B)),f=+c(.5*(n-f)),f=2*+b(+ +l(+(f=B*B+f*(t*s*f))),+ +l(+(1-f))),4*+w(+ +l(+ +h(.5*(s=.5*(d+g+f)))*+h(.5*(s-d))*+h(.5*(s-g))*+h(.5*(s-f))))}function xA(A,e){return e=0|_e(0|(A|=0),0|(e|=0),45),y(),127&e}function IA(A,e){var r=0,t=0,n=0,i=0,o=0,a=0;if(!(!0&134217728==(-16777216&(e|=0))))return 0|(e=0);if(o=0|_e(0|(A|=0),0|e,45),y(),(o&=127)>>>0>121)return 0|(e=0);r=0|_e(0|A,0|e,52),y(),r&=15;do{if(0|r){for(n=1,t=0;;){if(i=0|_e(0|A,0|e,3*(15-n|0)|0),y(),!!(0|(i&=7))&(1^t)){if(1==(0|i)&!!(0|U(o))){a=0,t=13;break}t=1}if(7==(0|i)){a=0,t=13;break}if(!(n>>>0<r>>>0)){t=9;break}n=n+1|0}if(9==(0|t)){if(15!=(0|r))break;return 0|(a=1)}if(13==(0|t))return 0|a}}while(0);for(;;){if(a=0|_e(0|A,0|e,3*(14-r|0)|0),y(),!(!0&!(7&~a))){a=0,t=13;break}if(!(r>>>0<14)){a=1,t=13;break}r=r+1|0}return 13==(0|t)?0|a:0}function FA(A,e,r){r|=0;var t=0,n=0;if(t=0|_e(0|(A|=0),0|(e|=0),52),y(),(0|(t&=15))>=(0|r)){if((0|t)!=(0|r))if(r>>>0<=15){if(A|=n=0|me(0|r,0,52),e=y()|-15728641&e,(0|t)>(0|r))do{n=0|me(7,0,3*(14-r|0)|0),r=r+1|0,A|=n,e=y()|e}while((0|r)<(0|t))}else e=0,A=0}else e=0,A=0;return E(0|e),0|A}function PA(A,e,r,t){r|=0,t|=0;var i,o=0,a=0,f=0,l=0,s=0,u=0;if(f=0|_e(0|(A|=0),0|(e|=0),52),y(),(0|r)<16&(0|(f&=15))<=(0|r)){if((0|f)==(0|r))return n[(r=t)>>2]=A,void(n[r+4>>2]=e);if(i=(0|(s=0|ee(7,r-f|0)))/7|0,l=0|_e(0|A,0|e,45),y(),0|U(127&l)){A:do{if(f)for(a=1;;){if(o=0|_e(0|A,0|e,3*(15-a|0)|0),y(),0|(o&=7))break A;if(!(a>>>0<f>>>0)){o=0;break}a=a+1|0}else o=0}while(0);a=!(0|o)}else a=0;if(u=0|me(f+1|0,0,52),o=y()|-15728641&e,PA(e=(u|A)&~(e=0|me(7,0,0|(l=3*(14-f|0)|0))),f=o&~y(),r,t),o=t+(i<<3)|0,!a)return PA((u=0|me(1,0,0|l))|e,y()|f,r,o),u=o+(i<<3)|0,PA((s=0|me(2,0,0|l))|e,y()|f,r,u),u=u+(i<<3)|0,PA((s=0|me(3,0,0|l))|e,y()|f,r,u),u=u+(i<<3)|0,PA((s=0|me(4,0,0|l))|e,y()|f,r,u),u=u+(i<<3)|0,PA((s=0|me(5,0,0|l))|e,y()|f,r,u),void PA((s=0|me(6,0,0|l))|e,y()|f,r,u+(i<<3)|0);a=o+(i<<3)|0,(0|s)>6&&(Ce(0|o,0,(u=(a>>>0>(s=o+8|0)>>>0?a:s)+-1+(0-o)|0)+8&-8),o=s+(u>>>3<<3)|0),PA((u=0|me(2,0,0|l))|e,y()|f,r,o),u=o+(i<<3)|0,PA((s=0|me(3,0,0|l))|e,y()|f,r,u),u=u+(i<<3)|0,PA((s=0|me(4,0,0|l))|e,y()|f,r,u),u=u+(i<<3)|0,PA((s=0|me(5,0,0|l))|e,y()|f,r,u),PA((s=0|me(6,0,0|l))|e,y()|f,r,u+(i<<3)|0)}}function GA(A,e){var r=0,t=0,n=0;if(n=0|_e(0|(A|=0),0|(e|=0),45),y(),!(0|U(127&n)))return 0|(n=0);n=0|_e(0|A,0|e,52),y(),n&=15;A:do{if(n)for(t=1;;){if(r=0|_e(0|A,0|e,3*(15-t|0)|0),y(),0|(r&=7))break A;if(!(t>>>0<n>>>0)){r=0;break}t=t+1|0}else r=0}while(0);return 0|(n=1&!(0|r))}function SA(A,e){var r=0,t=0,n=0;if(n=0|_e(0|(A|=0),0|(e|=0),52),y(),!(n&=15))return 0|(n=0);for(t=1;;){if(r=0|_e(0|A,0|e,3*(15-t|0)|0),y(),0|(r&=7)){t=5;break}if(!(t>>>0<n>>>0)){r=0,t=5;break}t=t+1|0}return 5==(0|t)?0|r:0}function UA(A,e){var r=0,t=0,n=0,i=0,o=0,a=0,f=0;if(f=0|_e(0|(A|=0),0|(e|=0),52),y(),!(f&=15))return f=A,E(0|(a=e)),0|f;for(a=1,r=0;;){t=0|me(7,0,0|(i=3*(15-a|0)|0)),n=0|y(),o=0|_e(0|A,0|e,0|i),y(),A=(i=0|me(0|fA(7&o),0,0|i))|A&~t,e=(o=0|y())|e&~n;A:do{if(!r)if(!(i&t)&!(o&n))r=0;else if(t=0|_e(0|A,0|e,52),y(),t&=15){r=1;e:for(;;){switch(o=0|_e(0|A,0|e,3*(15-r|0)|0),y(),7&o){case 1:break e;case 0:break;default:r=1;break A}if(!(r>>>0<t>>>0)){r=1;break A}r=r+1|0}for(r=1;;){if(n=0|_e(0|A,0|e,0|(o=3*(15-r|0)|0)),y(),i=0|me(7,0,0|o),e&=~y(),A=A&~i|(o=0|me(0|fA(7&n),0,0|o)),e|=y(),!(r>>>0<t>>>0)){r=1;break}r=r+1|0}}else r=1}while(0);if(!(a>>>0<f>>>0))break;a=a+1|0}return E(0|e),0|A}function TA(A,e){var r=0,t=0,n=0,i=0,o=0;if(t=0|_e(0|(A|=0),0|(e|=0),52),y(),!(t&=15))return t=A,E(0|(r=e)),0|t;for(r=1;o=0|_e(0|A,0|e,0|(i=3*(15-r|0)|0)),y(),n=0|me(7,0,0|i),e&=~y(),A=(i=0|me(0|fA(7&o),0,0|i))|A&~n,e=y()|e,r>>>0<t>>>0;)r=r+1|0;return E(0|e),0|A}function RA(A,e){var r=0,t=0,n=0,i=0,o=0,a=0,f=0;if(f=0|_e(0|(A|=0),0|(e|=0),52),y(),!(f&=15))return f=A,E(0|(a=e)),0|f;for(a=1,r=0;;){t=0|me(7,0,0|(i=3*(15-a|0)|0)),n=0|y(),o=0|_e(0|A,0|e,0|i),y(),A=(i=0|me(0|lA(7&o),0,0|i))|A&~t,e=(o=0|y())|e&~n;A:do{if(!r)if(!(i&t)&!(o&n))r=0;else if(t=0|_e(0|A,0|e,52),y(),t&=15){r=1;e:for(;;){switch(o=0|_e(0|A,0|e,3*(15-r|0)|0),y(),7&o){case 1:break e;case 0:break;default:r=1;break A}if(!(r>>>0<t>>>0)){r=1;break A}r=r+1|0}for(r=1;;){if(i=0|me(7,0,0|(n=3*(15-r|0)|0)),o=e&~y(),e=0|_e(0|A,0|e,0|n),y(),A=A&~i|(e=0|me(0|lA(7&e),0,0|n)),e=o|y(),!(r>>>0<t>>>0)){r=1;break}r=r+1|0}}else r=1}while(0);if(!(a>>>0<f>>>0))break;a=a+1|0}return E(0|e),0|A}function LA(A,e){var r=0,t=0,n=0,i=0,o=0;if(t=0|_e(0|(A|=0),0|(e|=0),52),y(),!(t&=15))return t=A,E(0|(r=e)),0|t;for(r=1;i=0|me(7,0,0|(o=3*(15-r|0)|0)),n=e&~y(),e=0|_e(0|A,0|e,0|o),y(),A=(e=0|me(0|lA(7&e),0,0|o))|A&~i,e=y()|n,r>>>0<t>>>0;)r=r+1|0;return E(0|e),0|A}function HA(A){return(0|(A|=0))%2|0}function zA(A,e){A|=0;var r,t;return t=x,x=x+16|0,r=t,(e|=0)>>>0<=15&&2146435072&~n[A+4>>2]&&2146435072&~n[A+8+4>>2]?(!function(A,e,r){var t,n;t=x,x=x+16|0,bA(A|=0,e|=0,r|=0,n=t),K(n,r+4|0),x=t}(A,e,r),e=0|function(A,e){A|=0;var r,t=0,i=0,o=0,a=0,f=0,l=0,s=0,u=0;if(r=x,x=x+64|0,l=r+40|0,i=r+24|0,o=r+12|0,a=r,me(0|(e|=0),0,52),t=134225919|y(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(l=0,E(0|(f=0)),x=r,0|l):(me(0|R(A),0,45),f=y()|t,l=-1,E(0|f),x=r,0|l);if(n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],n[l+12>>2]=n[A+12>>2],f=l+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[f>>2],n[i+4>>2]=n[f+4>>2],n[i+8>>2]=n[f+8>>2],1&e?(eA(f),n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],tA(o)):(rA(f),n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],nA(o)),q(i,o,a),j(a),s=0|me(7,0,0|(u=3*(15-e|0)|0)),t&=~y(),A=(u=0|me(0|AA(a),0,0|u))|A&~s,t=y()|t,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[f>>2])<=2&&(0|n[l+8>>2])<=2&&(0|n[l+12>>2])<=2){if(e=0|me(0|(i=0|R(l)),0,45),e|=A,A=y()|-1040385&t,a=0|L(l),!(0|U(i))){if((0|a)<=0)break;for(o=0;;){if(i=0|_e(0|e,0|A,52),y(),i&=15)for(t=1;l=0|_e(0|e,0|A,0|(u=3*(15-t|0)|0)),y(),s=0|me(7,0,0|u),A&=~y(),e=e&~s|(u=0|me(0|fA(7&l),0,0|u)),A|=y(),t>>>0<i>>>0;)t=t+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|_e(0|e,0|A,52),y(),o&=15;e:do{if(o){t=1;r:for(;;){switch(u=0|_e(0|e,0|A,3*(15-t|0)|0),y(),7&u){case 1:break r;case 0:break;default:break e}if(!(t>>>0<o>>>0))break e;t=t+1|0}if(0|H(i,0|n[l>>2]))for(t=1;s=0|me(7,0,0|(l=3*(15-t|0)|0)),u=A&~y(),A=0|_e(0|e,0|A,0|l),y(),e=e&~s|(A=0|me(0|lA(7&A),0,0|l)),A=u|y(),t>>>0<o>>>0;)t=t+1|0;else for(t=1;l=0|_e(0|e,0|A,0|(u=3*(15-t|0)|0)),y(),s=0|me(7,0,0|u),A&=~y(),e=e&~s|(u=0|me(0|fA(7&l),0,0|u)),A|=y(),t>>>0<o>>>0;)t=t+1|0}}while(0);if((0|a)>0){t=0;do{e=0|UA(e,A),A=0|y(),t=t+1|0}while((0|t)!=(0|a))}}else e=0,A=0}while(0);return u=e,E(0|(s=A)),x=r,0|u}(r,e),A=0|y()):(A=0,e=0),E(0|A),x=t,0|e}function OA(A,e,r){var t,i=0,o=0,a=0;if(t=(r|=0)+4|0,o=0|_e(0|(A|=0),0|(e|=0),52),y(),o&=15,a=0|_e(0|A,0|e,45),y(),i=!(0|o),0|U(127&a)){if(i)return 0|(a=1);i=1}else{if(i)return 0|(a=0);i=0|n[t>>2]||0|n[r+8>>2]?1:1&!!(0|n[r+12>>2])}for(r=1;1&r?tA(t):nA(t),a=0|_e(0|A,0|e,3*(15-r|0)|0),y(),iA(t,7&a),r>>>0<o>>>0;)r=r+1|0;return 0|i}function VA(A,e,r){r|=0;var t,i,o=0,a=0,f=0,l=0,s=0,u=0;i=x,x=x+16|0,t=i,u=0|_e(0|(A|=0),0|(e|=0),45),y(),u&=127;A:do{if(0|U(u)&&(f=0|_e(0|A,0|e,52),y(),0|(f&=15))){o=1;e:for(;;){switch(s=0|_e(0|A,0|e,3*(15-o|0)|0),y(),7&s){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<f>>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;l=0|me(7,0,0|(e=3*(15-a|0)|0)),s=o&~y(),o=0|_e(0|A,0|o,0|e),y(),A=A&~l|(o=0|me(0|lA(7&o),0,0|e)),o=s|y(),a>>>0<f>>>0;)a=a+1|0}else o=e}while(0);if(s=7728+(28*u|0)|0,n[r>>2]=n[s>>2],n[r+4>>2]=n[s+4>>2],n[r+8>>2]=n[s+8>>2],n[r+12>>2]=n[s+12>>2],0|OA(A,o,r)){if(l=r+4|0,n[t>>2]=n[l>>2],n[t+4>>2]=n[l+4>>2],n[t+8>>2]=n[l+8>>2],f=0|_e(0|A,0|o,52),y(),s=15&f,1&f?(nA(l),f=s+1|0):f=s,0|U(u)){A:do{if(s)for(e=1;;){if(a=0|_e(0|A,0|o,3*(15-e|0)|0),y(),0|(a&=7)){o=a;break A}if(!(e>>>0<s>>>0)){o=0;break}e=e+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|EA(r,f,o,0)){if(0|U(u))do{}while(0|EA(r,f,0,0));(0|f)!=(0|s)&&rA(l)}else(0|f)!=(0|s)&&(n[l>>2]=n[t>>2],n[l+4>>2]=n[t+4>>2],n[l+8>>2]=n[t+8>>2]);x=i}else x=i}function YA(A,e,r){r|=0;var t,n;t=x,x=x+16|0,VA(A|=0,e|=0,n=t),e=0|_e(0|A,0|e,52),y(),pA(n,15&e,r),x=t}function NA(A,e,r){r|=0;var t,n,i=0,o=0;n=x,x=x+16|0,VA(A|=0,e|=0,t=n),i=0|_e(0|A,0|e,45),y(),i=!(0|U(127&i)),o=0|_e(0|A,0|e,52),y(),o&=15;A:do{if(!i){if(0|o)for(i=1;;){if(!(!((0|me(7,0,3*(15-i|0)|0))&A)&!(y()&e)))break A;if(!(i>>>0<o>>>0))break;i=i+1|0}return kA(t,o,0,5,r),void(x=n)}}while(0);_A(t,o,0,6,r),x=n}function ZA(A,e){e|=0;var r,t=0,i=0,o=0,a=0,f=0,l=0;if(me(0|(A|=0),0,52),r=134225919|y(),(0|A)<1){i=0,t=0;do{0|U(i)&&(me(0|i,0,45),f=r|y(),n[(A=e+(t<<3)|0)>>2]=-1,n[A+4>>2]=f,t=t+1|0),i=i+1|0}while(122!=(0|i))}else{f=0,t=0;do{if(0|U(f)){for(me(0|f,0,45),i=1,o=-1,a=r|y();o&=~(l=0|me(7,0,3*(15-i|0)|0)),a&=~y(),(0|i)!=(0|A);)i=i+1|0;n[(l=e+(t<<3)|0)>>2]=o,n[l+4>>2]=a,t=t+1|0}f=f+1|0}while(122!=(0|f))}}function WA(A,e,r,t){var i,o=0,a=0,f=0,l=0,s=0;if(i=x,x=x+64|0,f=i,(0|(A|=0))==(0|(r|=0))&(0|(e|=0))==(0|(t|=0))|!1|134217728!=(2013265920&e)|!1|134217728!=(2013265920&t))return x=i,0|(f=0);if(o=0|_e(0|A,0|e,52),y(),o&=15,a=0|_e(0|r,0|t,52),y(),(0|o)!=(15&a))return x=i,0|(f=0);if(a=o+-1|0,o>>>0>1&&(s=0|FA(A,e,a),l=0|y(),(0|s)==(0|(a=0|FA(r,t,a)))&(0|l)==(0|y()))){if(o=0|_e(0|A,0|e,0|(a=3*(15^o)|0)),y(),o&=7,a=0|_e(0|r,0|t,0|a),y(),!(0|o)|!(0|(a&=7)))return x=i,0|(s=1);if((0|n[21136+(o<<2)>>2])==(0|a))return x=i,0|(s=1);if((0|n[21168+(o<<2)>>2])==(0|a))return x=i,0|(s=1)}a=(o=f)+56|0;do{n[o>>2]=0,o=o+4|0}while((0|o)<(0|a));return I(A,e,1,f),o=(0|n[(s=f)>>2])==(0|r)&&(0|n[s+4>>2])==(0|t)||(0|n[(s=f+8|0)>>2])==(0|r)&&(0|n[s+4>>2])==(0|t)||(0|n[(s=f+16|0)>>2])==(0|r)&&(0|n[s+4>>2])==(0|t)||(0|n[(s=f+24|0)>>2])==(0|r)&&(0|n[s+4>>2])==(0|t)||(0|n[(s=f+32|0)>>2])==(0|r)&&(0|n[s+4>>2])==(0|t)||(0|n[(s=f+40|0)>>2])==(0|r)&&(0|n[s+4>>2])==(0|t)?1:1&((0|n[(o=f+48|0)>>2])==(0|r)?(0|n[o+4>>2])==(0|t):0),x=i,0|(s=o)}function KA(A,e,r){r|=0;var t,i,o,a,f=0;if(o=x,x=x+16|0,i=o,f=0|_e(0|(A|=0),0|(e|=0),56),y(),e=0|function(A,e,r){A|=0,e|=0,r|=0;var t=0,i=0;if(t=0|GA(A,e),(r+-1|0)>>>0>5)return 0|(r=-1);if(i=!!(0|t),1==(0|r)&i)return 0|(r=-1);return t=0|function(A,e){A|=0,e|=0;var r=0,t=0,i=0,o=0,a=0,f=0,l=0,s=0;if(s=x,x=x+32|0,i=s+16|0,o=s,VA(A,e,i),a=0|xA(A,e),l=0|SA(A,e),function(A,e){A=7728+(28*(A|=0)|0)|0,n[(e|=0)>>2]=n[A>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(a,o),e=0|function(A,e){A|=0;var r=0,t=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11152+(216*e|0)>>2])!=(0|A))if((0|n[11152+(216*e|0)+8>>2])!=(0|A))if((0|n[11152+(216*e|0)+16>>2])!=(0|A))if((0|n[11152+(216*e|0)+24>>2])!=(0|A))if((0|n[11152+(216*e|0)+32>>2])!=(0|A))if((0|n[11152+(216*e|0)+40>>2])!=(0|A))if((0|n[11152+(216*e|0)+48>>2])!=(0|A))if((0|n[11152+(216*e|0)+56>>2])!=(0|A))if((0|n[11152+(216*e|0)+64>>2])!=(0|A))if((0|n[11152+(216*e|0)+72>>2])!=(0|A))if((0|n[11152+(216*e|0)+80>>2])!=(0|A))if((0|n[11152+(216*e|0)+88>>2])!=(0|A))if((0|n[11152+(216*e|0)+96>>2])!=(0|A))if((0|n[11152+(216*e|0)+104>>2])!=(0|A))if((0|n[11152+(216*e|0)+112>>2])!=(0|A))if((0|n[11152+(216*e|0)+120>>2])!=(0|A))if((0|n[11152+(216*e|0)+128>>2])!=(0|A)){if((0|n[11152+(216*e|0)+136>>2])!=(0|A)){if((0|n[11152+(216*e|0)+144>>2])==(0|A)){A=0,r=2,t=0;break}if((0|n[11152+(216*e|0)+152>>2])==(0|A)){A=0,r=2,t=1;break}if((0|n[11152+(216*e|0)+160>>2])==(0|A)){A=0,r=2,t=2;break}if((0|n[11152+(216*e|0)+168>>2])==(0|A)){A=1,r=2,t=0;break}if((0|n[11152+(216*e|0)+176>>2])==(0|A)){A=1,r=2,t=1;break}if((0|n[11152+(216*e|0)+184>>2])==(0|A)){A=1,r=2,t=2;break}if((0|n[11152+(216*e|0)+192>>2])==(0|A)){A=2,r=2,t=0;break}if((0|n[11152+(216*e|0)+200>>2])==(0|A)){A=2,r=2,t=1;break}if((0|n[11152+(216*e|0)+208>>2])==(0|A)){A=2,r=2,t=2;break}return-1}A=2,r=1,t=2}else A=2,r=1,t=1;else A=2,r=1,t=0;else A=1,r=1,t=2;else A=1,r=1,t=1;else A=1,r=1,t=0;else A=0,r=1,t=2;else A=0,r=1,t=1;else A=0,r=1,t=0;else A=2,r=0,t=2;else A=2,r=0,t=1;else A=2,r=0,t=0;else A=1,r=0,t=2;else A=1,r=0,t=1;else A=1,r=0,t=0;else A=0,r=0,t=2;else A=0,r=0,t=1;else A=0,r=0,t=0}while(0);return 0|n[11152+(216*e|0)+(72*r|0)+(24*A|0)+(t<<3)+4>>2]}(a,0|n[i>>2]),!(0|U(a)))return x=s,0|(l=e);switch(0|a){case 4:A=0,r=14;break;case 14:A=1,r=14;break;case 24:A=2,r=14;break;case 38:A=3,r=14;break;case 49:A=4,r=14;break;case 58:A=5,r=14;break;case 63:A=6,r=14;break;case 72:A=7,r=14;break;case 83:A=8,r=14;break;case 97:A=9,r=14;break;case 107:A=10,r=14;break;case 117:A=11,r=14;break;default:f=0,t=0}14==(0|r)&&(f=0|n[22096+(24*A|0)+8>>2],t=0|n[22096+(24*A|0)+16>>2]);A=0|n[i>>2],(0|A)!=(0|n[o>>2])&&(a=0|T(a))|(0|(A=0|n[i>>2]))==(0|t)&&(e=(e+1|0)%6|0);if(3==(0|l)&(0|A)==(0|t))return x=s,0|(l=(e+5|0)%6|0);if(!(5==(0|l)&(0|A)==(0|f)))return x=s,0|(l=e);return l=(e+1|0)%6|0,x=s,0|l}(A,e),i?0|(r=(5-t+(0|n[22384+(r<<2)>>2])|0)%5|0):0|(r=(6-t+(0|n[22416+(r<<2)>>2])|0)%6|0)}(t=(a=!0&268435456==(2013265920&e))?A:0,A=a?-2130706433&e|134217728:0,7&f),-1==(0|e))return n[r>>2]=0,void(x=o);VA(t,A,i),f=0|_e(0|t,0|A,52),y(),f&=15,0|GA(t,A)?kA(i,f,e,2,r):_A(i,f,e,2,r),x=o}function jA(A){A|=0;var e,r,t=0;return(e=0|pe(1,12))||_(22691,22646,49,22704),0|(t=0|n[(r=A+4|0)>>2])?(n[(t=t+8|0)>>2]=e,n[r>>2]=e,0|e):(0|n[A>>2]&&_(22721,22646,61,22744),n[(t=A)>>2]=e,n[r>>2]=e,0|e)}function JA(A,e){A|=0,e|=0;var r,t;return(t=0|be(24))||_(22758,22646,78,22772),n[t>>2]=n[e>>2],n[t+4>>2]=n[e+4>>2],n[t+8>>2]=n[e+8>>2],n[t+12>>2]=n[e+12>>2],n[t+16>>2]=0,0|(r=0|n[(e=A+4|0)>>2])?(n[r+16>>2]=t,n[e>>2]=t,0|t):(0|n[A>>2]&&_(22787,22646,82,22772),n[A>>2]=t,n[e>>2]=t,0|t)}function XA(A){var e,r,t=0,o=0,a=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,y=0,m=0,Q=0,D=0,M=0,C=0,x=0,I=0,F=0,P=0,G=0,S=0,U=0;if(0|n[(l=(A|=0)+8|0)>>2])return 0|(U=1);if(!(a=0|n[A>>2]))return 0|(U=0);t=a,o=0;do{o=o+1|0,t=0|n[t+8>>2]}while(0|t);if(o>>>0<2)return 0|(U=0);(r=0|be(o<<2))||_(22807,22646,317,22826),(e=0|be(o<<5))||_(22848,22646,321,22826),n[A>>2]=0,n[(M=A+4|0)>>2]=0,n[l>>2]=0,o=0,G=0,D=0,w=0;A:for(;;){if(d=0|n[a>>2]){s=0,u=d;do{if(h=+i[u+8>>3],t=u,u=0|n[u+16>>2],c=+i[(l=(g=!(0|u))?d:u)+8>>3],+f(+(h-c))>3.141592653589793){U=14;break}s+=(c-h)*(+i[t>>3]+ +i[l>>3])}while(!g);if(14==(0|U)){U=0,s=0,t=d;do{Q=+i[t+8>>3],F=0|n[(P=t+16|0)>>2],m=+i[(F=0|F?F:d)+8>>3],s+=(+i[t>>3]+ +i[F>>3])*((m<0?m+6.283185307179586:m)-(Q<0?Q+6.283185307179586:Q)),t=0|n[(0|t?P:a)>>2]}while(0|t)}s>0?(n[r+(G<<2)>>2]=a,G=G+1|0,l=D,t=w):U=19}else U=19;if(19==(0|U)){U=0;do{if(!o){if(w){l=M,u=w+8|0,t=a,o=A;break}if(0|n[A>>2]){U=27;break A}l=M,u=A,t=a,o=A;break}if(0|n[(t=o+8|0)>>2]){U=21;break A}if(!(o=0|pe(1,12))){U=23;break A}n[t>>2]=o,l=o+4|0,u=o,t=w}while(0);if(n[u>>2]=a,n[l>>2]=a,u=e+(D<<5)|0,g=0|n[a>>2]){for(i[(d=e+(D<<5)+8|0)>>3]=17976931348623157e292,i[(w=e+(D<<5)+24|0)>>3]=17976931348623157e292,i[u>>3]=-17976931348623157e292,i[(b=e+(D<<5)+16|0)>>3]=-17976931348623157e292,E=17976931348623157e292,y=-17976931348623157e292,l=0,B=g,h=17976931348623157e292,k=17976931348623157e292,v=-17976931348623157e292,c=-17976931348623157e292;s=+i[B>>3],Q=+i[B+8>>3],B=0|n[B+16>>2],m=+i[((p=!(0|B))?g:B)+8>>3],s<h&&(i[d>>3]=s,h=s),Q<k&&(i[w>>3]=Q,k=Q),s>v?i[u>>3]=s:s=v,Q>c&&(i[b>>3]=Q,c=Q),E=Q>0&Q<E?Q:E,y=Q<0&Q>y?Q:y,l|=+f(+(Q-m))>3.141592653589793,!p;)v=s;l&&(i[b>>3]=y,i[w>>3]=E)}else n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,n[u+12>>2]=0,n[u+16>>2]=0,n[u+20>>2]=0,n[u+24>>2]=0,n[u+28>>2]=0;l=D+1|0}if(a=0|n[(P=a+8|0)>>2],n[P>>2]=0,!a){U=45;break}D=l,w=t}if(21==(0|U))_(22624,22646,35,22658);else if(23==(0|U))_(22678,22646,37,22658);else if(27==(0|U))_(22721,22646,61,22744);else if(45==(0|U)){A:do{if((0|G)>0){for(P=!(0|l),I=l<<2,F=!(0|A),x=0,t=0;;){if(C=0|n[r+(x<<2)>>2],P)U=73;else{if(!(D=0|be(I))){U=50;break}if(!(M=0|be(I))){U=52;break}e:do{if(F)o=0;else{for(l=0,o=0,u=A;a=e+(l<<5)|0,0|qA(0|n[u>>2],a,0|n[C>>2])?(n[D+(o<<2)>>2]=u,n[M+(o<<2)>>2]=a,p=o+1|0):p=o,u=0|n[u+8>>2];)l=l+1|0,o=p;if((0|p)>0)if(a=0|n[D>>2],1==(0|p))o=a;else for(b=0,B=-1,o=a,w=a;;){for(g=0|n[w>>2],a=0,u=0;d=(0|(l=0|n[n[D+(u<<2)>>2]>>2]))==(0|g)?a:a+(1&qA(l,0|n[M+(u<<2)>>2],0|n[g>>2]))|0,(0|(u=u+1|0))!=(0|p);)a=d;if(o=(l=(0|d)>(0|B))?w:o,(0|(a=b+1|0))==(0|p))break e;b=a,B=l?d:B,w=0|n[D+(a<<2)>>2]}else o=0}}while(0);if(Be(D),Be(M),o){if(a=0|n[(l=o+4|0)>>2])o=a+8|0;else if(0|n[o>>2]){U=70;break}n[o>>2]=C,n[l>>2]=C}else U=73}if(73==(0|U)){if(U=0,0|(t=0|n[C>>2]))do{M=t,t=0|n[t+16>>2],Be(M)}while(0|t);Be(C),t=2}if((0|(x=x+1|0))>=(0|G)){S=t;break A}}50==(0|U)?_(22863,22646,249,22882):52==(0|U)?_(22901,22646,252,22882):70==(0|U)&&_(22721,22646,61,22744)}else S=0}while(0);return Be(r),Be(e),0|(U=S)}return 0}function qA(A,e,r){A|=0;var t,o=0,a=0,f=0,l=0,s=0,u=0,c=0;if(!(0|Y(e|=0,r|=0)))return 0|(A=0);if(e=0|V(e),t=+i[r>>3],o=e&(o=+i[r+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0|(A=0);if(e){e=0,r=A;A:for(;;){for(;l=+i[r>>3],u=+i[r+8>>3],c=0|n[(r=r+16|0)>>2],f=+i[(c=0|c?c:A)>>3],a=+i[c+8>>3],l>f?(s=l,l=u):(s=f,f=l,l=a,a=u),t<f|t>s;)if(!(r=0|n[r>>2])){r=22;break A}if(o=(l=l<0?l+6.283185307179586:l)==o|(u=a<0?a+6.283185307179586:a)==o?o+-2220446049250313e-31:o,((u+=(t-f)/(s-f)*(l-u))<0?u+6.283185307179586:u)>o&&(e^=1),!(r=0|n[r>>2])){r=22;break}}if(22==(0|r))return 0|e}else{e=0,r=A;A:for(;;){for(;l=+i[r>>3],u=+i[r+8>>3],c=0|n[(r=r+16|0)>>2],f=+i[(c=0|c?c:A)>>3],a=+i[c+8>>3],l>f?(s=l,l=u):(s=f,f=l,l=a,a=u),t<f|t>s;)if(!(r=0|n[r>>2])){r=22;break A}if(a+(t-f)/(s-f)*(l-a)>(o=l==o|a==o?o+-2220446049250313e-31:o)&&(e^=1),!(r=0|n[r>>2])){r=22;break}}if(22==(0|r))return 0|e}return 0}function $A(A,e,r,i,o){r|=0,i|=0,o|=0;var a,f,l,s,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0;if(s=x,x=x+32|0,k=s+16|0,l=s,u=0|_e(0|(A|=0),0|(e|=0),52),y(),u&=15,b=0|_e(0|r,0|i,52),y(),(0|u)!=(15&b))return x=s,0|(k=1);if(d=0|_e(0|A,0|e,45),y(),d&=127,w=0|_e(0|r,0|i,45),y(),b=(0|d)!=(0|(w&=127))){if(7==(0|(h=0|O(d,w))))return x=s,0|(k=2);7==(0|(g=0|O(w,d)))?_(22925,22949,151,22959):(B=h,c=g)}else B=0,c=0;a=0|U(d),f=0|U(w),n[k>>2]=0,n[k+4>>2]=0,n[k+8>>2]=0,n[k+12>>2]=0;do{if(B){if(h=(0|(w=0|n[4304+(28*d|0)+(B<<2)>>2]))>0,f)if(h){d=0,g=r,h=i;do{g=0|RA(g,h),h=0|y(),1==(0|(c=0|lA(c)))&&(c=0|lA(1)),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=r,g=i;else if(h){d=0,g=r,h=i;do{g=0|LA(g,h),h=0|y(),c=0|lA(c),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=r,g=i;if(OA(d,g,k),b||_(22972,22949,181,22959),(h=!!(0|a))&(c=!!(0|f))&&_(22999,22949,182,22959),h){if(c=0|SA(A,e),0|t[22032+(7*c|0)+B|0]){u=3;break}d=g=0|n[21200+(28*c|0)+(B<<2)>>2],p=26}else if(c){if(c=0|SA(d,g),0|t[22032+(7*c|0)+w|0]){u=4;break}d=0,g=0|n[21200+(28*w|0)+(c<<2)>>2],p=26}else c=0;if(26==(0|p))if((0|g)<=-1&&_(23030,22949,212,22959),(0|d)<=-1&&_(23053,22949,213,22959),(0|g)>0){h=k+4|0,c=0;do{aA(h),c=c+1|0}while((0|c)!=(0|g));c=d}else c=d;if(n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,iA(l,B),0|u)for(;0|HA(u)?tA(l):nA(l),(0|u)>1;)u=u+-1|0;if((0|c)>0){u=0;do{aA(l),u=u+1|0}while((0|u)!=(0|c))}X(p=k+4|0,l,p),j(p),p=50}else if(OA(r,i,k),!!(0|a)&!!(0|f))if((0|w)!=(0|d)&&_(23077,22949,243,22959),c=0|SA(A,e),u=0|SA(r,i),0|t[22032+(7*c|0)+u|0])u=5;else if((0|(c=0|n[21200+(28*c|0)+(u<<2)>>2]))>0){h=k+4|0,u=0;do{aA(h),u=u+1|0}while((0|u)!=(0|c));p=50}else p=50;else p=50}while(0);return 50==(0|p)&&(u=k+4|0,n[o>>2]=n[u>>2],n[o+4>>2]=n[u+4>>2],n[o+8>>2]=n[u+8>>2],u=0),x=s,0|(k=u)}function Ae(A,e,r,t){r|=0,t|=0;var i,o,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0;if(o=x,x=x+48|0,l=o+36|0,s=o+24|0,u=o+12|0,c=o,f=0|_e(0|(A|=0),0|(e|=0),52),y(),f&=15,g=0|_e(0|A,0|e,45),y(),i=0|U(g&=127),me(0|f,0,52),b=134225919|y(),n[(w=t)>>2]=-1,n[w+4>>2]=b,!f)return(0|n[r>>2])>1||(0|n[r+4>>2])>1||(0|n[r+8>>2])>1||127==(0|(a=0|z(g,0|AA(r))))?(x=o,0|(b=1)):(d=0|me(0|a,0,45),w=0|y(),w=-1040385&n[(g=t)+4>>2]|w,n[(b=t)>>2]=n[g>>2]|d,n[b+4>>2]=w,x=o,0|(b=0));for(n[l>>2]=n[r>>2],n[l+4>>2]=n[r+4>>2],n[l+8>>2]=n[r+8>>2];n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],0|HA(f)?(eA(l),n[u>>2]=n[l>>2],n[u+4>>2]=n[l+4>>2],n[u+8>>2]=n[l+8>>2],tA(u)):(rA(l),n[u>>2]=n[l>>2],n[u+4>>2]=n[l+4>>2],n[u+8>>2]=n[l+8>>2],nA(u)),q(s,u,c),j(c),B=0|n[(w=t)>>2],w=0|n[w+4>>2],r=0|me(7,0,0|(p=3*(15-f|0)|0)),w&=~y(),p=0|me(0|AA(c),0,0|p),w=y()|w,n[(b=t)>>2]=p|B&~r,n[b+4>>2]=w,(0|f)>1;)f=f+-1|0;A:do{if((0|n[l>>2])<=1&&(0|n[l+4>>2])<=1&&(0|n[l+8>>2])<=1){c=127==(0|(s=0|z(g,f=0|AA(l))))?0:0|U(s);e:do{if(f){if(i){if(l=21408+(28*(0|SA(A,e))|0)+(f<<2)|0,(0|(l=0|n[l>>2]))>0){r=0;do{f=0|fA(f),r=r+1|0}while((0|r)!=(0|l))}if(1==(0|f)){a=3;break A}127==(0|(r=0|z(g,f)))&&_(23104,22949,376,23134),0|U(r)?_(23147,22949,377,23134):(d=l,h=f,a=r)}else d=0,h=f,a=s;if((0|(u=0|n[4304+(28*g|0)+(h<<2)>>2]))<=-1&&_(23178,22949,384,23134),!c){if((0|d)<=-1&&_(23030,22949,417,23134),0|d){f=0,r=0|n[(l=t)>>2],l=0|n[l+4>>2];do{r=0|TA(r,l),l=0|y(),n[(p=t)>>2]=r,n[p+4>>2]=l,f=f+1|0}while((0|f)<(0|d))}if((0|u)<=0){f=54;break}for(f=0,r=0|n[(l=t)>>2],l=0|n[l+4>>2];;)if(r=0|TA(r,l),l=0|y(),n[(p=t)>>2]=r,n[p+4>>2]=l,(0|(f=f+1|0))==(0|u)){f=54;break e}}if(7==(0|(s=0|O(a,g)))&&_(22925,22949,393,23134),r=0|n[(f=t)>>2],f=0|n[f+4>>2],(0|u)>0){l=0;do{r=0|TA(r,f),f=0|y(),n[(p=t)>>2]=r,n[p+4>>2]=f,l=l+1|0}while((0|l)!=(0|u))}if(r=0|SA(r,f),p=0|T(a),(0|(r=0|n[(p?21824:21616)+(28*s|0)+(r<<2)>>2]))<=-1&&_(23030,22949,412,23134),r){f=0,l=0|n[(s=t)>>2],s=0|n[s+4>>2];do{l=0|UA(l,s),s=0|y(),n[(p=t)>>2]=l,n[p+4>>2]=s,f=f+1|0}while((0|f)<(0|r));f=54}else f=54}else if(!!(0|i)&!!(0|c))if(f=21408+(28*(p=0|SA(A,e))|0)+(SA(0|n[(f=t)>>2],0|n[f+4>>2])<<2)|0,(0|(f=0|n[f>>2]))<=-1&&_(23201,22949,433,23134),f){a=0,r=0|n[(l=t)>>2],l=0|n[l+4>>2];do{r=0|TA(r,l),l=0|y(),n[(p=t)>>2]=r,n[p+4>>2]=l,a=a+1|0}while((0|a)<(0|f));a=s,f=54}else a=s,f=55;else a=s,f=54}while(0);if(54==(0|f)&&c&&(f=55),55==(0|f)&&1==(0|SA(0|n[(p=t)>>2],0|n[p+4>>2]))){a=4;break}b=0|n[(p=t)>>2],p=-1040385&n[p+4>>2],B=0|me(0|a,0,45),p|=y(),n[(a=t)>>2]=b|B,n[a+4>>2]=p,a=0}else a=2}while(0);return x=o,0|(p=a)}function ee(A,e){var r=0;if(!(e|=0))return 0|(r=1);r=A|=0,A=1;do{A=0|p(1&e?r:1,A),e>>=1,r=0|p(r,r)}while(0|e);return 0|A}function re(A,e,r){A|=0;var t,o,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0;if(!(0|Y(e|=0,r|=0)))return 0|(g=0);if(e=0|V(e),o=+i[r>>3],a=e&(a=+i[r+8>>3])<0?a+6.283185307179586:a,(0|(g=0|n[A>>2]))<=0)return 0|(g=0);if(t=0|n[A+4>>2],e){e=0,r=-1,A=0;A:for(;;){for(h=A;s=+i[t+(h<<4)>>3],c=+i[t+(h<<4)+8>>3],l=+i[t+((A=(r+2|0)%(0|g)|0)<<4)>>3],f=+i[t+(A<<4)+8>>3],s>l?(u=s,s=c):(u=l,l=s,s=f,f=c),o<l|o>u;){if(!((0|(r=h+1|0))<(0|g))){r=22;break A}A=h,h=r,r=A}if(a=(s=s<0?s+6.283185307179586:s)==a|(c=f<0?f+6.283185307179586:f)==a?a+-2220446049250313e-31:a,((c+=(o-l)/(u-l)*(s-c))<0?c+6.283185307179586:c)>a&&(e^=1),(0|(A=h+1|0))>=(0|g)){r=22;break}r=h}if(22==(0|r))return 0|e}else{e=0,r=-1,A=0;A:for(;;){for(h=A;s=+i[t+(h<<4)>>3],c=+i[t+(h<<4)+8>>3],l=+i[t+((A=(r+2|0)%(0|g)|0)<<4)>>3],f=+i[t+(A<<4)+8>>3],s>l?(u=s,s=c):(u=l,l=s,s=f,f=c),o<l|o>u;){if(!((0|(r=h+1|0))<(0|g))){r=22;break A}A=h,h=r,r=A}if(f+(o-l)/(u-l)*(s-f)>(a=s==a|f==a?a+-2220446049250313e-31:a)&&(e^=1),(0|(A=h+1|0))>=(0|g)){r=22;break}r=h}if(22==(0|r))return 0|e}return 0}function te(A,e){e|=0;var r,t,o,a,l,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0;if(!(t=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(a=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(l=e+16|0)>>3]=-17976931348623157e292,!((0|t)<=0)){for(r=0|n[A+4>>2],b=17976931348623157e292,B=-17976931348623157e292,p=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,w=-17976931348623157e292,u=-17976931348623157e292,k=0;s=+i[r+(k<<4)>>3],d=+i[r+(k<<4)+8>>3],c=+i[r+(((0|(A=A+2|0))==(0|t)?0:A)<<4)+8>>3],s<h&&(i[o>>3]=s,h=s),d<g&&(i[a>>3]=d,g=d),s>w?i[e>>3]=s:s=w,d>u&&(i[l>>3]=d,u=d),b=d>0&d<b?d:b,B=d<0&d>B?d:B,p|=+f(+(d-c))>3.141592653589793,(0|(A=k+1|0))!=(0|t);)v=k,w=s,k=A,A=v;p&&(i[l>>3]=B,i[a>>3]=b)}}function ne(A,e){e|=0;var r,t=0,o=0,a=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,y=0,_=0,m=0,Q=0;if(B=0|n[(A|=0)>>2]){if(i[(p=e+8|0)>>3]=17976931348623157e292,i[(k=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(v=e+16|0)>>3]=-17976931348623157e292,(0|B)>0){for(a=0|n[A+4>>2],w=17976931348623157e292,b=-17976931348623157e292,o=0,t=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,s=-17976931348623157e292,E=0;l=+i[a+(E<<4)>>3],g=+i[a+(E<<4)+8>>3],u=+i[a+(((0|(m=t+2|0))==(0|B)?0:m)<<4)+8>>3],l<c&&(i[p>>3]=l,c=l),g<h&&(i[k>>3]=g,h=g),l>d?i[e>>3]=l:l=d,g>s&&(i[v>>3]=g,s=g),w=g>0&g<w?g:w,b=g<0&g>b?g:b,o|=+f(+(g-u))>3.141592653589793,(0|(t=E+1|0))!=(0|B);)m=E,d=l,E=t,t=m;o&&(i[v>>3]=b,i[k>>3]=w)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(t=0|n[(m=A+8|0)>>2]))<=0)){r=A+12|0,_=0;do{if(a=0|n[r>>2],o=_,k=e+((_=_+1|0)<<5)|0,v=0|n[a+(o<<3)>>2]){if(i[(E=e+(_<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(_<<5)+24|0)>>3]=17976931348623157e292,i[k>>3]=-17976931348623157e292,i[(y=e+(_<<5)+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(B=0|n[a+(o<<3)+4>>2],w=17976931348623157e292,b=-17976931348623157e292,a=0,o=-1,p=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,s=-17976931348623157e292;l=+i[B+(p<<4)>>3],d=+i[B+(p<<4)+8>>3],u=+i[B+(((0|(o=o+2|0))==(0|v)?0:o)<<4)+8>>3],l<c&&(i[E>>3]=l,c=l),d<h&&(i[A>>3]=d,h=d),l>g?i[k>>3]=l:l=g,d>s&&(i[y>>3]=d,s=d),w=d>0&d<w?d:w,b=d<0&d>b?d:b,a|=+f(+(d-u))>3.141592653589793,(0|(o=p+1|0))!=(0|v);)Q=p,p=o,g=l,o=Q;a&&(i[y>>3]=b,i[A>>3]=w)}}else n[k>>2]=0,n[k+4>>2]=0,n[k+8>>2]=0,n[k+12>>2]=0,n[k+16>>2]=0,n[k+20>>2]=0,n[k+24>>2]=0,n[k+28>>2]=0,t=0|n[m>>2]}while((0|_)<(0|t))}}function ie(A,e,r){var t=0,i=0,o=0;if(!(0|re(A|=0,e|=0,r|=0)))return 0|(i=0);if((0|n[(i=A+8|0)>>2])<=0)return 0|(i=1);for(t=A+12|0,A=0;;){if(o=A,A=A+1|0,0|re((0|n[t>>2])+(o<<3)|0,e+(A<<5)|0,r)){A=0,t=6;break}if((0|A)>=(0|n[i>>2])){A=1,t=6;break}}return 6==(0|t)?0|A:0}function oe(A,e,r,t,n){e|=0,r|=0,t|=0,n|=0;var o,a,f,l,s,u,c,h=0;l=+i[(A|=0)>>3],f=+i[e>>3]-l,a=+i[A+8>>3],o=+i[e+8>>3]-a,u=+i[r>>3],h=((h=+i[t>>3]-u)*(a-(c=+i[r+8>>3]))-(l-u)*(s=+i[t+8>>3]-c))/(f*s-o*h),i[n>>3]=l+f*h,i[n+8>>3]=a+o*h}function ae(A,e){return e|=0,+i[(A|=0)>>3]!=+i[e>>3]?0|(e=0):0|(e=+i[A+8>>3]==+i[e+8>>3])}function fe(A,e){e|=0;var r,t,n;return+((n=+i[(A|=0)>>3]-+i[e>>3])*n+(t=+i[A+8>>3]-+i[e+8>>3])*t+(r=+i[A+16>>3]-+i[e+16>>3])*r)}function le(A,e,r){A|=0,r|=0;var t=0;(0|(e|=0))>0?(t=0|pe(e,4),n[A>>2]=t,t||_(23230,23253,40,23267)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=r}function se(A){var e,r,t,o=0,a=0,l=0,u=0;e=(A|=0)+4|0,r=A+12|0,t=A+8|0;A:for(;;){for(a=0|n[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(l=0|n[A>>2],u=0|n[l+(o<<2)>>2])break;o=o+1|0}o=l+(~~(+f(+ +s(10,+ +(15-(0|n[r>>2])|0))*(+i[u>>3]+ +i[u+8>>3]))%+(0|a))>>>0<<2)|0,a=0|n[o>>2];e:do{if(0|a){if(l=u+32|0,(0|a)==(0|u))n[o>>2]=n[l>>2];else{if(!(o=0|n[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|u);)if(!(o=0|n[(a=o+32|0)>>2]))break e;n[a>>2]=n[l>>2]}Be(u),n[t>>2]=(0|n[t>>2])-1}}while(0)}Be(0|n[A>>2])}function ue(A){var e,r=0,t=0;for(e=0|n[(A|=0)+4>>2],t=0;;){if((0|t)>=(0|e)){r=0,t=4;break}if(r=0|n[(0|n[A>>2])+(t<<2)>>2]){t=4;break}t=t+1|0}return 4==(0|t)?0|r:0}function ce(A,e){e|=0;var r=0,t=0,o=0,a=0;if(r=~~(+f(+ +s(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,r=(0|n[A>>2])+(r<<2)|0,!(t=0|n[r>>2]))return 0|(a=1);a=e+32|0;do{if((0|t)!=(0|e)){if(!(r=0|n[t+32>>2]))return 0|(a=1);for(o=r;;){if((0|o)==(0|e)){o=8;break}if(!(r=0|n[o+32>>2])){r=1,o=10;break}t=o,o=r}if(8==(0|o)){n[t+32>>2]=n[a>>2];break}if(10==(0|o))return 0|r}else n[r>>2]=n[a>>2]}while(0);return Be(e),n[(a=A+8|0)>>2]=(0|n[a>>2])-1,0|(a=0)}function he(A,e,r){A|=0,e|=0,r|=0;var t,o=0,a=0,l=0;(t=0|be(40))||_(23283,23253,98,23296),n[t>>2]=n[e>>2],n[t+4>>2]=n[e+4>>2],n[t+8>>2]=n[e+8>>2],n[t+12>>2]=n[e+12>>2],n[(a=t+16|0)>>2]=n[r>>2],n[a+4>>2]=n[r+4>>2],n[a+8>>2]=n[r+8>>2],n[a+12>>2]=n[r+12>>2],n[t+32>>2]=0,a=~~(+f(+ +s(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,a=(0|n[A>>2])+(a<<2)|0,o=0|n[a>>2];do{if(o){for(;!(0|DA(o,e)&&0|DA(o+16|0,r));)if(a=0|n[o+32>>2],!(0|n[(o=0|a?a:o)+32>>2])){l=10;break}if(10==(0|l)){n[o+32>>2]=t;break}return Be(t),0|(l=o)}n[a>>2]=t}while(0);return n[(l=A+8|0)>>2]=1+(0|n[l>>2]),0|(l=t)}function ge(A,e,r){e|=0,r|=0;var t=0,o=0;if(o=~~(+f(+ +s(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0|(r=0);if(!r){for(A=o;;){if(0|DA(A,e)){t=10;break}if(!(A=0|n[A+32>>2])){A=0,t=10;break}}if(10==(0|t))return 0|A}for(A=o;;){if(0|DA(A,e)&&0|DA(A+16|0,r)){t=10;break}if(!(A=0|n[A+32>>2])){A=0,t=10;break}}return 10==(0|t)?0|A:0}function de(A,e){e|=0;var r=0;if(r=~~(+f(+ +s(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(r<<2)>>2]))return 0|(r=0);for(;;){if(0|DA(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function we(A){return 0|+function(A){return+ +xe(+(A=+A))}(A=+A)}function be(A){A|=0;var e,r=0,t=0,i=0,o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0;e=x,x=x+16|0,g=e;do{if(A>>>0<245){if(A=(u=A>>>0<11?16:A+11&-8)>>>3,3&(t=(h=0|n[5829])>>>A))return i=0|n[(t=(A=23356+((r=(1&t^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|n[(o=i+8|0)>>2]))==(0|A)?n[5829]=h&~(1<<r):(n[a+12>>2]=A,n[t>>2]=a),E=r<<3,n[i+4>>2]=3|E,n[(E=i+E+4|0)>>2]=1|n[E>>2],x=e,0|(E=o);if(u>>>0>(c=0|n[5831])>>>0){if(0|t)return r=((r=t<<A&((r=2<<A)|0-r))&0-r)-1|0,a=0|n[(A=(r=23356+((i=((t=(r>>>=l=r>>>12&16)>>>5&8)|l|(a=(r>>>=t)>>>2&4)|(A=(r>>>=a)>>>1&2)|(i=(r>>>=A)>>>1&1))+(r>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(t=0|n[(l=a+8|0)>>2]))==(0|r)?(A=h&~(1<<i),n[5829]=A):(n[t+12>>2]=r,n[A>>2]=t,A=h),f=(E=i<<3)-u|0,n[a+4>>2]=3|u,n[(o=a+u|0)+4>>2]=1|f,n[a+E>>2]=f,0|c&&(i=0|n[5834],t=23356+((r=c>>>3)<<1<<2)|0,A&(r=1<<r)?r=0|n[(A=t+8|0)>>2]:(n[5829]=A|r,r=t,A=t+8|0),n[A>>2]=i,n[r+12>>2]=i,n[i+8>>2]=r,n[i+12>>2]=t),n[5831]=f,n[5834]=o,x=e,0|(E=l);if(a=0|n[5830]){for(t=(a&0-a)-1|0,t=s=0|n[23620+(((i=(t>>>=o=t>>>12&16)>>>5&8)|o|(f=(t>>>=i)>>>2&4)|(l=(t>>>=f)>>>1&2)|(s=(t>>>=l)>>>1&1))+(t>>>s)<<2)>>2],l=s,s=(-8&n[s+4>>2])-u|0;(A=0|n[t+16>>2])||(A=0|n[t+20>>2]);)t=A,l=(o=(f=(-8&n[A+4>>2])-u|0)>>>0<s>>>0)?A:l,s=o?f:s;if((f=l+u|0)>>>0>l>>>0){o=0|n[l+24>>2],r=0|n[l+12>>2];do{if((0|r)==(0|l)){if(!(r=0|n[(A=l+20|0)>>2])&&!(r=0|n[(A=l+16|0)>>2])){t=0;break}for(;;)if(t=0|n[(i=r+20|0)>>2])r=t,A=i;else{if(!(t=0|n[(i=r+16|0)>>2]))break;r=t,A=i}n[A>>2]=0,t=r}else t=0|n[l+8>>2],n[t+12>>2]=r,n[r+8>>2]=t,t=r}while(0);do{if(0|o){if(r=0|n[l+28>>2],(0|l)==(0|n[(A=23620+(r<<2)|0)>>2])){if(n[A>>2]=t,!t){n[5830]=a&~(1<<r);break}}else if(n[((0|n[(E=o+16|0)>>2])==(0|l)?E:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(r=0|n[l+16>>2])&&(n[t+16>>2]=r,n[r+24>>2]=t),0|(r=0|n[l+20>>2])&&(n[t+20>>2]=r,n[r+24>>2]=t)}}while(0);return s>>>0<16?(E=s+u|0,n[l+4>>2]=3|E,n[(E=l+E+4|0)>>2]=1|n[E>>2]):(n[l+4>>2]=3|u,n[f+4>>2]=1|s,n[f+s>>2]=s,0|c&&(i=0|n[5834],t=23356+((r=c>>>3)<<1<<2)|0,(r=1<<r)&h?r=0|n[(A=t+8|0)>>2]:(n[5829]=r|h,r=t,A=t+8|0),n[A>>2]=i,n[r+12>>2]=i,n[i+8>>2]=r,n[i+12>>2]=t),n[5831]=s,n[5834]=f),x=e,0|(E=l+8|0)}h=u}else h=u}else h=u}else if(A>>>0<=4294967231)if(u=-8&(A=A+11|0),i=0|n[5830]){o=0-u|0,s=(A>>>=8)?u>>>0>16777215?31:u>>>((s=14-((l=((b=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(s=((b<<=l)+245760|0)>>>16&2))+(b<<s>>>15)|0)+7|0)&1|s<<1:0,t=0|n[23620+(s<<2)>>2];A:do{if(t)for(A=0,l=u<<(31==(0|s)?0:25-(s>>>1)),a=0;;){if((f=(-8&n[t+4>>2])-u|0)>>>0<o>>>0){if(!f){A=t,o=0,b=65;break A}A=t,o=f}if(a=!(0|(b=0|n[t+20>>2]))|(0|b)==(0|(t=0|n[t+16+(l>>>31<<2)>>2]))?a:b,!t){t=a,b=61;break}l<<=1}else t=0,A=0,b=61}while(0);if(61==(0|b)){if(!(0|t)&!(0|A)){if(!(A=((A=2<<s)|0-A)&i)){h=u;break}h=(A&0-A)-1|0,A=0,t=0|n[23620+(((a=(h>>>=f=h>>>12&16)>>>5&8)|f|(l=(h>>>=a)>>>2&4)|(s=(h>>>=l)>>>1&2)|(t=(h>>>=s)>>>1&1))+(h>>>t)<<2)>>2]}t?b=65:(l=A,f=o)}if(65==(0|b))for(a=t;;){if(o=(t=(h=(-8&n[a+4>>2])-u|0)>>>0<o>>>0)?h:o,A=t?a:A,(t=0|n[a+16>>2])||(t=0|n[a+20>>2]),!t){l=A,f=o;break}a=t}if(0|l&&f>>>0<((0|n[5831])-u|0)>>>0&&(c=l+u|0)>>>0>l>>>0){a=0|n[l+24>>2],r=0|n[l+12>>2];do{if((0|r)==(0|l)){if(!(r=0|n[(A=l+20|0)>>2])&&!(r=0|n[(A=l+16|0)>>2])){r=0;break}for(;;)if(t=0|n[(o=r+20|0)>>2])r=t,A=o;else{if(!(t=0|n[(o=r+16|0)>>2]))break;r=t,A=o}n[A>>2]=0}else E=0|n[l+8>>2],n[E+12>>2]=r,n[r+8>>2]=E}while(0);do{if(a){if(A=0|n[l+28>>2],(0|l)==(0|n[(t=23620+(A<<2)|0)>>2])){if(n[t>>2]=r,!r){i&=~(1<<A),n[5830]=i;break}}else if(n[((0|n[(E=a+16|0)>>2])==(0|l)?E:a+20)>>2]=r,!r)break;n[r+24>>2]=a,0|(A=0|n[l+16>>2])&&(n[r+16>>2]=A,n[A+24>>2]=r),(A=0|n[l+20>>2])&&(n[r+20>>2]=A,n[A+24>>2]=r)}}while(0);A:do{if(f>>>0<16)E=f+u|0,n[l+4>>2]=3|E,n[(E=l+E+4|0)>>2]=1|n[E>>2];else{if(n[l+4>>2]=3|u,n[c+4>>2]=1|f,n[c+f>>2]=f,r=f>>>3,f>>>0<256){t=23356+(r<<1<<2)|0,(A=0|n[5829])&(r=1<<r)?r=0|n[(A=t+8|0)>>2]:(n[5829]=A|r,r=t,A=t+8|0),n[A>>2]=c,n[r+12>>2]=c,n[c+8>>2]=r,n[c+12>>2]=t;break}if(r=23620+((t=(r=f>>>8)?f>>>0>16777215?31:f>>>((t=14-((k=((E=r<<(v=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(t=((E<<=k)+245760|0)>>>16&2))+(E<<t>>>15)|0)+7|0)&1|t<<1:0)<<2)|0,n[c+28>>2]=t,n[(A=c+16|0)+4>>2]=0,n[A>>2]=0,!(i&(A=1<<t))){n[5830]=i|A,n[r>>2]=c,n[c+24>>2]=r,n[c+12>>2]=c,n[c+8>>2]=c;break}r=0|n[r>>2];e:do{if((-8&n[r+4>>2])!=(0|f)){for(i=f<<(31==(0|t)?0:25-(t>>>1));A=0|n[(t=r+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|f)){r=A;break e}i<<=1,r=A}n[t>>2]=c,n[c+24>>2]=r,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);E=0|n[(v=r+8|0)>>2],n[E+12>>2]=c,n[v>>2]=c,n[c+8>>2]=E,n[c+12>>2]=r,n[c+24>>2]=0}}while(0);return x=e,0|(E=l+8|0)}h=u}else h=u;else h=-1}while(0);if((t=0|n[5831])>>>0>=h>>>0)return r=t-h|0,A=0|n[5834],r>>>0>15?(E=A+h|0,n[5834]=E,n[5831]=r,n[E+4>>2]=1|r,n[A+t>>2]=r,n[A+4>>2]=3|h):(n[5831]=0,n[5834]=0,n[A+4>>2]=3|t,n[(E=A+t+4|0)>>2]=1|n[E>>2]),x=e,0|(E=A+8|0);if((f=0|n[5832])>>>0>h>>>0)return k=f-h|0,n[5832]=k,v=(E=0|n[5835])+h|0,n[5835]=v,n[v+4>>2]=1|k,n[E+4>>2]=3|h,x=e,0|(E=E+8|0);if(0|n[5947]?A=0|n[5949]:(n[5949]=4096,n[5948]=4096,n[5950]=-1,n[5951]=-1,n[5952]=0,n[5940]=0,n[5947]=-16&g^1431655768,A=4096),l=h+48|0,(u=(a=A+(s=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return x=e,0|(E=0);if(0|(A=0|n[5939])&&(g=(c=0|n[5937])+u|0)>>>0<=c>>>0|g>>>0>A>>>0)return x=e,0|(E=0);A:do{if(4&n[5940])r=0,b=143;else{t=0|n[5835];e:do{if(t){for(i=23764;!((g=0|n[i>>2])>>>0<=t>>>0&&(g+(0|n[i+4>>2])|0)>>>0>t>>>0);){if(!(A=0|n[i+8>>2])){b=128;break e}i=A}if((r=a-f&o)>>>0<2147483647)if((0|(A=0|Ie(0|r)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){f=r,a=A,b=145;break A}}else i=A,b=136;else r=0}else b=128}while(0);do{if(128==(0|b))if(-1!=(0|(t=0|Ie(0)))&&(r=t,w=(r=((w=(d=0|n[5948])+-1|0)&r?(w+r&0-d)-r|0:0)+u|0)+(d=0|n[5937])|0,r>>>0>h>>>0&r>>>0<2147483647)){if(0|(g=0|n[5939])&&w>>>0<=d>>>0|w>>>0>g>>>0){r=0;break}if((0|(A=0|Ie(0|r)))==(0|t)){f=r,a=t,b=145;break A}i=A,b=136}else r=0}while(0);do{if(136==(0|b)){if(t=0-r|0,!(l>>>0>r>>>0&r>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){r=0;break}f=r,a=i,b=145;break A}if((A=s-r+(A=0|n[5949])&0-A)>>>0>=2147483647){f=r,a=i,b=145;break A}if(-1==(0|Ie(0|A))){Ie(0|t),r=0;break}f=A+r|0,a=i,b=145;break A}}while(0);n[5940]=4|n[5940],b=143}}while(0);if(143==(0|b)&&u>>>0<2147483647&&!(-1==(0|(k=0|Ie(0|u)))|1^(p=(B=(w=0|Ie(0))-k|0)>>>0>(h+40|0)>>>0)|k>>>0<w>>>0&-1!=(0|k)&-1!=(0|w)^1)&&(f=p?B:r,a=k,b=145),145==(0|b)){r=(0|n[5937])+f|0,n[5937]=r,r>>>0>(0|n[5938])>>>0&&(n[5938]=r),s=0|n[5835];A:do{if(s){for(r=23764;;){if((0|a)==((A=0|n[r>>2])+(t=0|n[r+4>>2])|0)){b=154;break}if(!(i=0|n[r+8>>2]))break;r=i}if(!(154!=(0|b)||(v=r+4|0,8&n[r+12>>2]))&&a>>>0>s>>>0&A>>>0<=s>>>0){n[v>>2]=t+f,v=s+(k=7&(k=s+8|0)?0-k&7:0)|0,k=(E=(0|n[5832])+f|0)-k|0,n[5835]=v,n[5832]=k,n[v+4>>2]=1|k,n[s+E+4>>2]=40,n[5836]=n[5951];break}for(a>>>0<(0|n[5833])>>>0&&(n[5833]=a),t=a+f|0,r=23764;;){if((0|n[r>>2])==(0|t)){b=162;break}if(!(A=0|n[r+8>>2]))break;r=A}if(162==(0|b)&&!(8&n[r+12>>2])){n[r>>2]=a,n[(c=r+4|0)>>2]=(0|n[c>>2])+f,u=(c=a+(7&(c=a+8|0)?0-c&7:0)|0)+h|0,l=(r=t+(7&(r=t+8|0)?0-r&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|s)==(0|r))E=(0|n[5832])+l|0,n[5832]=E,n[5835]=u,n[u+4>>2]=1|E;else{if((0|n[5834])==(0|r)){E=(0|n[5831])+l|0,n[5831]=E,n[5834]=u,n[u+4>>2]=1|E,n[u+E>>2]=E;break}if(1==(3&(A=0|n[r+4>>2]))){f=-8&A,i=A>>>3;r:do{if(A>>>0<256){if(A=0|n[r+8>>2],(0|(t=0|n[r+12>>2]))==(0|A)){n[5829]=n[5829]&~(1<<i);break}n[A+12>>2]=t,n[t+8>>2]=A;break}a=0|n[r+24>>2],A=0|n[r+12>>2];do{if((0|A)==(0|r)){if(A=0|n[(i=(t=r+16|0)+4|0)>>2])t=i;else if(!(A=0|n[t>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,t=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,t=o}n[t>>2]=0}else E=0|n[r+8>>2],n[E+12>>2]=A,n[A+8>>2]=E}while(0);if(!a)break;i=23620+((t=0|n[r+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|r)){if(n[i>>2]=A,0|A)break;n[5830]=n[5830]&~(1<<t);break r}if(n[((0|n[(E=a+16|0)>>2])==(0|r)?E:a+20)>>2]=A,!A)break r}while(0);if(n[A+24>>2]=a,0|(i=0|n[(t=r+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(t=0|n[t+4>>2]))break;n[A+20>>2]=t,n[t+24>>2]=A}while(0);r=r+f|0,o=f+l|0}else o=l;if(n[(r=r+4|0)>>2]=-2&n[r>>2],n[u+4>>2]=1|o,n[u+o>>2]=o,r=o>>>3,o>>>0<256){t=23356+(r<<1<<2)|0,(A=0|n[5829])&(r=1<<r)?r=0|n[(A=t+8|0)>>2]:(n[5829]=A|r,r=t,A=t+8|0),n[A>>2]=u,n[r+12>>2]=u,n[u+8>>2]=r,n[u+12>>2]=t;break}r=o>>>8;do{if(r){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((k=((E=r<<(v=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((E<<=k)+245760|0)>>>16&2))+(E<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(r=23620+(i<<2)|0,n[u+28>>2]=i,n[(A=u+16|0)+4>>2]=0,n[A>>2]=0,!((A=0|n[5830])&(t=1<<i))){n[5830]=A|t,n[r>>2]=u,n[u+24>>2]=r,n[u+12>>2]=u,n[u+8>>2]=u;break}r=0|n[r>>2];r:do{if((-8&n[r+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1));A=0|n[(t=r+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){r=A;break r}i<<=1,r=A}n[t>>2]=u,n[u+24>>2]=r,n[u+12>>2]=u,n[u+8>>2]=u;break e}}while(0);E=0|n[(v=r+8|0)>>2],n[E+12>>2]=u,n[v>>2]=u,n[u+8>>2]=E,n[u+12>>2]=r,n[u+24>>2]=0}}while(0);return x=e,0|(E=c+8|0)}for(r=23764;!((A=0|n[r>>2])>>>0<=s>>>0&&(E=A+(0|n[r+4>>2])|0)>>>0>s>>>0);)r=0|n[r+8>>2];r=(A=(A=(o=E+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=s+16|0)>>>0?s:A)+8|0,v=a+(k=7&(k=a+8|0)?0-k&7:0)|0,k=(t=f+-40|0)-k|0,n[5835]=v,n[5832]=k,n[v+4>>2]=1|k,n[a+t+4>>2]=40,n[5836]=n[5951],n[(t=A+4|0)>>2]=27,n[r>>2]=n[5941],n[r+4>>2]=n[5942],n[r+8>>2]=n[5943],n[r+12>>2]=n[5944],n[5941]=a,n[5942]=f,n[5944]=0,n[5943]=r,r=A+24|0;do{v=r,n[(r=r+4|0)>>2]=7}while((v+8|0)>>>0<E>>>0);if((0|A)!=(0|s)){if(a=A-s|0,n[t>>2]=-2&n[t>>2],n[s+4>>2]=1|a,n[A>>2]=a,r=a>>>3,a>>>0<256){t=23356+(r<<1<<2)|0,(A=0|n[5829])&(r=1<<r)?r=0|n[(A=t+8|0)>>2]:(n[5829]=A|r,r=t,A=t+8|0),n[A>>2]=s,n[r+12>>2]=s,n[s+8>>2]=r,n[s+12>>2]=t;break}if(t=23620+((i=(r=a>>>8)?a>>>0>16777215?31:a>>>((i=14-((k=((E=r<<(v=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((E<<=k)+245760|0)>>>16&2))+(E<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,n[s+28>>2]=i,n[s+20>>2]=0,n[o>>2]=0,!((r=0|n[5830])&(A=1<<i))){n[5830]=r|A,n[t>>2]=s,n[s+24>>2]=t,n[s+12>>2]=s,n[s+8>>2]=s;break}r=0|n[t>>2];e:do{if((-8&n[r+4>>2])!=(0|a)){for(i=a<<(31==(0|i)?0:25-(i>>>1));A=0|n[(t=r+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){r=A;break e}i<<=1,r=A}n[t>>2]=s,n[s+24>>2]=r,n[s+12>>2]=s,n[s+8>>2]=s;break A}}while(0);E=0|n[(v=r+8|0)>>2],n[E+12>>2]=s,n[v>>2]=s,n[s+8>>2]=E,n[s+12>>2]=r,n[s+24>>2]=0}}else!(0|(E=0|n[5833]))|a>>>0<E>>>0&&(n[5833]=a),n[5941]=a,n[5942]=f,n[5944]=0,n[5838]=n[5947],n[5837]=-1,n[5842]=23356,n[5841]=23356,n[5844]=23364,n[5843]=23364,n[5846]=23372,n[5845]=23372,n[5848]=23380,n[5847]=23380,n[5850]=23388,n[5849]=23388,n[5852]=23396,n[5851]=23396,n[5854]=23404,n[5853]=23404,n[5856]=23412,n[5855]=23412,n[5858]=23420,n[5857]=23420,n[5860]=23428,n[5859]=23428,n[5862]=23436,n[5861]=23436,n[5864]=23444,n[5863]=23444,n[5866]=23452,n[5865]=23452,n[5868]=23460,n[5867]=23460,n[5870]=23468,n[5869]=23468,n[5872]=23476,n[5871]=23476,n[5874]=23484,n[5873]=23484,n[5876]=23492,n[5875]=23492,n[5878]=23500,n[5877]=23500,n[5880]=23508,n[5879]=23508,n[5882]=23516,n[5881]=23516,n[5884]=23524,n[5883]=23524,n[5886]=23532,n[5885]=23532,n[5888]=23540,n[5887]=23540,n[5890]=23548,n[5889]=23548,n[5892]=23556,n[5891]=23556,n[5894]=23564,n[5893]=23564,n[5896]=23572,n[5895]=23572,n[5898]=23580,n[5897]=23580,n[5900]=23588,n[5899]=23588,n[5902]=23596,n[5901]=23596,n[5904]=23604,n[5903]=23604,v=a+(k=7&(k=a+8|0)?0-k&7:0)|0,k=(E=f+-40|0)-k|0,n[5835]=v,n[5832]=k,n[v+4>>2]=1|k,n[a+E+4>>2]=40,n[5836]=n[5951]}while(0);if((r=0|n[5832])>>>0>h>>>0)return k=r-h|0,n[5832]=k,v=(E=0|n[5835])+h|0,n[5835]=v,n[v+4>>2]=1|k,n[E+4>>2]=3|h,x=e,0|(E=E+8|0)}return n[(E=23312)>>2]=12,x=e,0|(E=0)}function Be(A){var e=0,r=0,t=0,i=0,o=0,a=0,f=0,l=0;if(A|=0){r=A+-8|0,i=0|n[5833],l=r+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)f=r,a=r;else{if(t=0|n[r>>2],!(3&A))return;if(o=t+e|0,(a=r+(0-t)|0)>>>0<i>>>0)return;if((0|n[5834])==(0|a)){if(3&~(e=0|n[(A=l+4|0)>>2])){f=a,e=o;break}return n[5831]=o,n[A>>2]=-2&e,n[a+4>>2]=1|o,void(n[a+o>>2]=o)}if(r=t>>>3,t>>>0<256){if(A=0|n[a+8>>2],(0|(e=0|n[a+12>>2]))==(0|A)){n[5829]=n[5829]&~(1<<r),f=a,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,f=a,e=o;break}i=0|n[a+24>>2],A=0|n[a+12>>2];do{if((0|A)==(0|a)){if(A=0|n[(r=(e=a+16|0)+4|0)>>2])e=r;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(r=0|n[(t=A+20|0)>>2])A=r,e=t;else{if(!(r=0|n[(t=A+16|0)>>2]))break;A=r,e=t}n[e>>2]=0}else f=0|n[a+8>>2],n[f+12>>2]=A,n[A+8>>2]=f}while(0);if(i){if(e=0|n[a+28>>2],(0|n[(r=23620+(e<<2)|0)>>2])==(0|a)){if(n[r>>2]=A,!A){n[5830]=n[5830]&~(1<<e),f=a,e=o;break}}else if(n[((0|n[(f=i+16|0)>>2])==(0|a)?f:i+20)>>2]=A,!A){f=a,e=o;break}n[A+24>>2]=i,0|(r=0|n[(e=a+16|0)>>2])&&(n[A+16>>2]=r,n[r+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,f=a,e=o):(f=a,e=o)}else f=a,e=o}}while(0);if(!(a>>>0>=l>>>0)&&1&(t=0|n[(A=l+4|0)>>2])){if(2&t)n[A>>2]=-2&t,n[f+4>>2]=1|e,n[a+e>>2]=e,i=e;else{if((0|n[5835])==(0|l)){if(l=(0|n[5832])+e|0,n[5832]=l,n[5835]=f,n[f+4>>2]=1|l,(0|f)!=(0|n[5834]))return;return n[5834]=0,void(n[5831]=0)}if((0|n[5834])==(0|l))return l=(0|n[5831])+e|0,n[5831]=l,n[5834]=a,n[f+4>>2]=1|l,void(n[a+l>>2]=l);i=(-8&t)+e|0,r=t>>>3;do{if(t>>>0<256){if(e=0|n[l+8>>2],(0|(A=0|n[l+12>>2]))==(0|e)){n[5829]=n[5829]&~(1<<r);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[l+24>>2],A=0|n[l+12>>2];do{if((0|A)==(0|l)){if(A=0|n[(r=(e=l+16|0)+4|0)>>2])e=r;else if(!(A=0|n[e>>2])){r=0;break}for(;;)if(r=0|n[(t=A+20|0)>>2])A=r,e=t;else{if(!(r=0|n[(t=A+16|0)>>2]))break;A=r,e=t}n[e>>2]=0,r=A}else r=0|n[l+8>>2],n[r+12>>2]=A,n[A+8>>2]=r,r=A}while(0);if(0|o){if(A=0|n[l+28>>2],(0|n[(e=23620+(A<<2)|0)>>2])==(0|l)){if(n[e>>2]=r,!r){n[5830]=n[5830]&~(1<<A);break}}else if(n[((0|n[(t=o+16|0)>>2])==(0|l)?t:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(e=0|n[(A=l+16|0)>>2])&&(n[r+16>>2]=e,n[e+24>>2]=r),0|(A=0|n[A+4>>2])&&(n[r+20>>2]=A,n[A+24>>2]=r)}}while(0);if(n[f+4>>2]=1|i,n[a+i>>2]=i,(0|f)==(0|n[5834]))return void(n[5831]=i)}if(A=i>>>3,i>>>0<256)return r=23356+(A<<1<<2)|0,(e=0|n[5829])&(A=1<<A)?A=0|n[(e=r+8|0)>>2]:(n[5829]=e|A,A=r,e=r+8|0),n[e>>2]=f,n[A+12>>2]=f,n[f+8>>2]=A,void(n[f+12>>2]=r);A=23620+((t=(A=i>>>8)?i>>>0>16777215?31:i>>>((t=14-((o=((l=A<<(a=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(t=((l<<=o)+245760|0)>>>16&2))+(l<<t>>>15)|0)+7|0)&1|t<<1:0)<<2)|0,n[f+28>>2]=t,n[f+20>>2]=0,n[f+16>>2]=0,e=0|n[5830],r=1<<t;A:do{if(e&r){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(t=i<<(31==(0|t)?0:25-(t>>>1));e=0|n[(r=A+16+(t>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}t<<=1,A=e}n[r>>2]=f,n[f+24>>2]=A,n[f+12>>2]=f,n[f+8>>2]=f;break A}}while(0);l=0|n[(a=A+8|0)>>2],n[l+12>>2]=f,n[a>>2]=f,n[f+8>>2]=l,n[f+12>>2]=A,n[f+24>>2]=0}else n[5830]=e|r,n[A>>2]=f,n[f+24>>2]=A,n[f+12>>2]=f,n[f+8>>2]=f}while(0);if(l=(0|n[5837])-1|0,n[5837]=l,!(0|l)){for(A=23772;A=0|n[A>>2];)A=A+8|0;n[5837]=-1}}}}function pe(A,e){e|=0;var r=0;return(A|=0)?(r=0|p(e,A),(e|A)>>>0>65535&&(r=((r>>>0)/(A>>>0)|0)==(0|e)?r:-1)):r=0,(A=0|be(r))&&3&n[A+-4>>2]?(Ce(0|A,0,0|r),0|A):0|A}function ke(A,e,r,t){return 0|(E(0|(t=(e|=0)-(t|=0)-((r|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-r>>>0)}function ve(A){return 0|((A|=0)?31-(0|v(A^A-1)):32)}function Ee(A,e,r,t,i){i|=0;var o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0;if(u=A|=0,a=r|=0,f=h=t|=0,!(s=l=e|=0))return o=!!(0|i),f?o?(n[i>>2]=0|A,n[i+4>>2]=0,i=0,0|(E(0|(h=0)),i)):(i=0,0|(E(0|(h=0)),i)):(o&&(n[i>>2]=(u>>>0)%(a>>>0),n[i+4>>2]=0),i=(u>>>0)/(a>>>0)>>>0,0|(E(0|(h=0)),i));o=!(0|f);do{if(a){if(!o){if((o=(0|v(0|f))-(0|v(0|s))|0)>>>0<=31){a=c=o+1|0,A=u>>>(c>>>0)&(e=o-31>>31)|s<<(f=31-o|0),e&=s>>>(c>>>0),o=0,f=u<<f;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|l,i=0,0|(E(0|(h=0)),i)):(i=0,0|(E(0|(h=0)),i))}if((o=a-1|0)&a){a=f=33+(0|v(0|a))-(0|v(0|s))|0,A=(c=32-f|0)-1>>31&s>>>((g=f-32|0)>>>0)|(s<<c|u>>>(f>>>0))&(e=g>>31),e&=s>>>(f>>>0),o=u<<(d=64-f|0)&(l=c>>31),f=(s<<d|u>>>(g>>>0))&l|u<<c&f-33>>31;break}return 0|i&&(n[i>>2]=o&u,n[i+4>>2]=0),1==(0|a)?(d=0|A,0|(E(0|(g=0|l)),d)):(g=s>>>((d=0|ve(0|a))>>>0)|0,d=s<<32-d|u>>>(d>>>0),0|(E(0|g),d))}if(o)return 0|i&&(n[i>>2]=(s>>>0)%(a>>>0),n[i+4>>2]=0),d=(s>>>0)/(a>>>0)>>>0,0|(E(0|(g=0)),d);if(!u)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(s>>>0)%(f>>>0)),d=(s>>>0)/(f>>>0)>>>0,0|(E(0|(g=0)),d);if(!((o=f-1|0)&f))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&s),g=0,d=s>>>((0|ve(0|f))>>>0),0|(E(0|g),d);if((o=(0|v(0|f))-(0|v(0|s))|0)>>>0<=30){a=e=o+1|0,A=s<<(f=31-o|0)|u>>>(e>>>0),e=s>>>(e>>>0),o=0,f=u<<f;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|l,d=0,0|(E(0|(g=0)),d)):(d=0,0|(E(0|(g=0)),d))}while(0);if(a){s=0|function(A,e,r,t){return 0|(E((e|=0)+(t|=0)+((r=(A|=0)+(r|=0)>>>0)>>>0<A>>>0|0)>>>0|0),r)}(0|(c=0|r),0|(u=0|h),-1,-1),r=0|y(),l=f,f=0;do{t=l,l=o>>>31|l<<1,o=f|o<<1,ke(0|s,0|r,0|(t=A<<1|t>>>31),0|(h=A>>>31|e<<1)),f=1&(g=(d=0|y())>>31|((0|d)<0?-1:0)<<1),A=0|ke(0|t,0|h,g&c,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&u),e=0|y(),a=a-1|0}while(0|a);s=l,l=0}else s=f,l=0,f=0;return a=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),d=o<<1&-2|f,0|(E(0|(g=(0|o)>>>31|(s|a)<<1|l)),d)}function ye(A,e,r,t){var i,o;return o=x,x=x+16|0,Ee(A|=0,e|=0,r|=0,t|=0,i=0|o),x=o,0|(E(0|n[i+4>>2]),n[i>>2])}function _e(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(E(e>>>r|0),A>>>r|(e&(1<<r)-1)<<32-r):(E(0),e>>>r-32|0)}function me(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(E(e<<r|(A&(1<<r)-1<<32-r)>>>32-r),A<<r):(E(A<<r-32),0)}function Qe(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+k(+A,+e)}function De(A){return(A=+A)>=0?+a(A+.5):+B(A-.5)}function Me(A,e,r){A|=0,e|=0;var i,o,a=0;if((0|(r|=0))>=8192)return D(0|A,0|e,0|r),0|A;if(o=0|A,i=A+r|0,(3&A)==(3&e)){for(;3&A;){if(!r)return 0|o;t[A|0]=0|t[e|0],A=A+1|0,e=e+1|0,r=r-1|0}for(a=(r=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|r);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(r=i-4|0;(0|A)<(0|r);)t[A|0]=0|t[e|0],t[A+1|0]=0|t[e+1|0],t[A+2|0]=0|t[e+2|0],t[A+3|0]=0|t[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)t[A|0]=0|t[e|0],A=A+1|0,e=e+1|0;return 0|o}function Ce(A,e,r){e|=0;var i,o=0,a=0,f=0;if(i=(A|=0)+(r|=0)|0,e&=255,(0|r)>=67){for(;3&A;)t[A|0]=e,A=A+1|0;for(f=e|e<<8|e<<16|e<<24,a=(o=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=f,n[A+4>>2]=f,n[A+8>>2]=f,n[A+12>>2]=f,n[A+16>>2]=f,n[A+20>>2]=f,n[A+24>>2]=f,n[A+28>>2]=f,n[A+32>>2]=f,n[A+36>>2]=f,n[A+40>>2]=f,n[A+44>>2]=f,n[A+48>>2]=f,n[A+52>>2]=f,n[A+56>>2]=f,n[A+60>>2]=f,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=f,A=A+4|0}for(;(0|A)<(0|i);)t[A|0]=e,A=A+1|0;return i-r|0}function xe(A){return(A=+A)>=0?+a(A+.5):+B(A-.5)}function Ie(A){A|=0;var e,r,t;return t=0|Q(),(0|A)>0&(0|(e=(r=0|n[o>>2])+A|0))<(0|r)|(0|e)<0?(C(0|e),m(12),-1):(0|e)>(0|t)&&!(0|M(0|e))?(m(12),-1):(n[o>>2]=e,0|r)}return{___uremdi3:ye,_bitshift64Lshr:_e,_bitshift64Shl:me,_calloc:pe,_cellAreaKm2:function(A,e){var r,t,i,o=0;if(i=x,x=x+192|0,t=i,YA(A|=0,e|=0,r=i+168|0),NA(A,e,t),(0|(e=0|n[t>>2]))>0){if(o=+CA(t+8|0,t+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{o+=+CA(t+8+(A<<4)|0,t+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e))}}else o=0;return x=i,6371.007180918475*o*6371.007180918475},_cellAreaM2:function(A,e){var r,t,i,o=0;if(i=x,x=x+192|0,t=i,YA(A|=0,e|=0,r=i+168|0),NA(A,e,t),(0|(e=0|n[t>>2]))>0){if(o=+CA(t+8|0,t+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{o+=+CA(t+8+(A<<4)|0,t+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e))}}else o=0;return x=i,6371.007180918475*o*6371.007180918475*1e3*1e3},_cellAreaRads2:function(A,e){var r,t,i,o=0;if(i=x,x=x+192|0,t=i,YA(A|=0,e|=0,r=i+168|0),NA(A,e,t),(0|(e=0|n[t>>2]))<=0)return x=i,+(o=0);if(o=+CA(t+8|0,t+8+((1!=(0|e)&1)<<4)|0,r)+0,1==(0|e))return x=i,+o;A=1;do{o+=+CA(t+8+(A<<4)|0,t+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e));return x=i,+o},_compact:function(A,e,r){e|=0;var t,i=0,o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,_=0,m=0,Q=0;if(!(r|=0))return 0|(m=0);if(i=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if((0|r)<=0)return 0|(m=0);if(n[(m=e)>>2]=i,n[m+4>>2]=o,1==(0|r))return 0|(m=0);i=1;do{_=0|n[(E=A+(i<<3)|0)+4>>2],n[(m=e+(i<<3)|0)>>2]=n[E>>2],n[m+4>>2]=_,i=i+1|0}while((0|i)!=(0|r));return 0|(i=0)}if(!(_=0|be(E=r<<3)))return 0|(m=-3);if(Me(0|_,0|A,0|E),!(t=0|pe(r,8)))return Be(_),0|(m=-3);i=r;A:for(;;){k=0|_e(0|(c=0|n[(f=_)>>2]),0|(f=0|n[f+4>>2]),52),y(),v=(k&=15)+-1|0,p=(0|i)>0;e:do{if(p){if(B=((0|i)<0)<<31>>31,w=0|me(0|v,0,52),b=0|y(),v>>>0>15)for(o=0,A=c,r=f;;){if(!(!(0|A)&!(0|r))){if(a=0|_e(0|A,0|r,52),y(),l=(0|(a&=15))<(0|v),a=(0|a)==(0|v),r=0|ye(0|(u=l?0:a?A:0),0|(A=l?0:a?r:0),0|i,0|B),y(),!(0|(s=0|n[(l=a=t+(r<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2])))r=u;else for(w=0,d=r,g=l,r=u;;){if((0|w)>(0|i)){m=41;break A}if((0|s)==(0|r)&(-117440513&g)==(0|A)){u=0|_e(0|s,0|g,56),y(),h=(u&=7)+1|0,b=0|_e(0|s,0|g,45),y();r:do{if(0|U(127&b)){if(s=0|_e(0|s,0|g,52),y(),!(s&=15)){l=6;break}for(l=1;;){if(!(!((b=0|me(7,0,3*(15-l|0)|0))&r)&!(y()&A))){l=7;break r}if(!(l>>>0<s>>>0)){l=6;break}l=l+1|0}}else l=7}while(0);if((u+2|0)>>>0>l>>>0){m=51;break A}b=0|me(0|h,0,56),A=y()|-117440513&A,n[(l=a)>>2]=0,n[l+4>>2]=0,l=d,r|=b}else l=(d+1|0)%(0|i)|0;if(!(0|(s=0|n[(g=a=t+(l<<3)|0)>>2]))&!(0|(g=0|n[g+4>>2])))break;w=w+1|0,d=l}n[(b=a)>>2]=r,n[b+4>>2]=A}if((0|(o=o+1|0))>=(0|i))break e;A=0|n[(r=_+(o<<3)|0)>>2],r=0|n[r+4>>2]}for(o=0,A=c,r=f;;){if(!(!(0|A)&!(0|r))){if(l=0|_e(0|A,0|r,52),y(),(0|(l&=15))>=(0|v)){if((0|l)!=(0|v)&&(A|=w,r=-15728641&r|b,l>>>0>=k>>>0)){a=v;do{d=0|me(7,0,3*(14-a|0)|0),a=a+1|0,A|=d,r=y()|r}while(a>>>0<l>>>0)}}else A=0,r=0;if(l=0|ye(0|A,0|r,0|i,0|B),y(),!(!(0|(u=0|n[(s=a=t+(l<<3)|0)>>2]))&!(0|(s=0|n[s+4>>2]))))for(d=0;;){if((0|d)>(0|i)){m=41;break A}if((0|u)==(0|A)&(-117440513&s)==(0|r)){h=0|_e(0|u,0|s,56),y(),g=(h&=7)+1|0,Q=0|_e(0|u,0|s,45),y();r:do{if(0|U(127&Q)){if(u=0|_e(0|u,0|s,52),y(),!(u&=15)){s=6;break}for(s=1;;){if(!(!((Q=0|me(7,0,3*(15-s|0)|0))&A)&!(y()&r))){s=7;break r}if(!(s>>>0<u>>>0)){s=6;break}s=s+1|0}}else s=7}while(0);if((h+2|0)>>>0>s>>>0){m=51;break A}Q=0|me(0|g,0,56),r=y()|-117440513&r,n[(g=a)>>2]=0,n[g+4>>2]=0,A|=Q}else l=(l+1|0)%(0|i)|0;if(!(0|(u=0|n[(s=a=t+(l<<3)|0)>>2]))&!(0|(s=0|n[s+4>>2])))break;d=d+1|0}n[(Q=a)>>2]=A,n[Q+4>>2]=r}if((0|(o=o+1|0))>=(0|i))break e;A=0|n[(r=_+(o<<3)|0)>>2],r=0|n[r+4>>2]}}}while(0);if((i+5|0)>>>0<11){m=99;break}if(!(b=0|pe((0|i)/6|0,8))){m=58;break}e:do{if(p){d=0,g=0;do{if(!(!(0|(o=0|n[(A=l=t+(d<<3)|0)>>2]))&!(0|(A=0|n[A+4>>2])))){s=0|_e(0|o,0|A,56),y(),r=(s&=7)+1|0,u=-117440513&A,Q=0|_e(0|o,0|A,45),y();r:do{if(0|U(127&Q)){if(h=0|_e(0|o,0|A,52),y(),0|(h&=15))for(a=1;;){if(!(!(o&(Q=0|me(7,0,3*(15-a|0)|0)))&!(u&y())))break r;if(!(a>>>0<h>>>0))break;a=a+1|0}o|=A=0|me(0|r,0,56),A=y()|u,n[(r=l)>>2]=o,n[r+4>>2]=A,r=s+2|0}}while(0);7==(0|r)&&(n[(Q=b+(g<<3)|0)>>2]=o,n[Q+4>>2]=-117440513&A,g=g+1|0)}d=d+1|0}while((0|d)!=(0|i));if(p){if(w=((0|i)<0)<<31>>31,h=0|me(0|v,0,52),d=0|y(),v>>>0>15)for(A=0,o=0;;){do{if(!(!(0|c)&!(0|f))){for(s=0|_e(0|c,0|f,52),y(),a=(0|(s&=15))<(0|v),s=(0|s)==(0|v),a=0|ye(0|(l=a?0:s?c:0),0|(s=a?0:s?f:0),0|i,0|w),y(),r=0;;){if((0|r)>(0|i)){m=98;break A}if((-117440513&(u=0|n[(Q=t+(a<<3)|0)+4>>2]))==(0|s)&&(0|n[Q>>2])==(0|l)){m=70;break}if((0|n[(Q=t+((a=(a+1|0)%(0|i)|0)<<3)|0)>>2])==(0|l)&&(0|n[Q+4>>2])==(0|s))break;r=r+1|0}if(70==(0|m)&&(m=0,!0&100663296==(117440512&u)))break;n[(Q=e+(o<<3)|0)>>2]=c,n[Q+4>>2]=f,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|n[(f=_+(A<<3)|0)>>2],f=0|n[f+4>>2]}for(A=0,o=0;;){do{if(!(!(0|c)&!(0|f))){if(s=0|_e(0|c,0|f,52),y(),(0|(s&=15))>=(0|v))if((0|s)!=(0|v))if(r=c|h,a=-15728641&f|d,s>>>0<k>>>0)s=a;else{l=v;do{Q=0|me(7,0,3*(14-l|0)|0),l=l+1|0,r|=Q,a=y()|a}while(l>>>0<s>>>0);s=a}else r=c,s=f;else r=0,s=0;for(l=0|ye(0|r,0|s,0|i,0|w),y(),a=0;;){if((0|a)>(0|i)){m=98;break A}if((-117440513&(u=0|n[(Q=t+(l<<3)|0)+4>>2]))==(0|s)&&(0|n[Q>>2])==(0|r)){m=93;break}if((0|n[(Q=t+((l=(l+1|0)%(0|i)|0)<<3)|0)>>2])==(0|r)&&(0|n[Q+4>>2])==(0|s))break;a=a+1|0}if(93==(0|m)&&(m=0,!0&100663296==(117440512&u)))break;n[(Q=e+(o<<3)|0)>>2]=c,n[Q+4>>2]=f,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|n[(f=_+(A<<3)|0)>>2],f=0|n[f+4>>2]}}else o=0,i=g}else o=0,i=0}while(0);if(Ce(0|t,0,0|E),Me(0|_,0|b,i<<3),Be(b),!i)break;e=e+(o<<3)|0}return 41==(0|m)?(Be(_),Be(t),0|(Q=-1)):51==(0|m)?(Be(_),Be(t),0|(Q=-2)):58==(0|m)?(Be(_),Be(t),0|(Q=-3)):98==(0|m)?(Be(b),Be(_),Be(t),0|(Q=-1)):(99==(0|m)&&Me(0|e,0|_,i<<3),Be(_),Be(t),0|(Q=0))},_destroyLinkedPolygon:function(A){var e=0,r=0,t=0,i=0;if(A|=0)for(t=1;;){if(0|(e=0|n[A>>2]))do{if(0|(r=0|n[e>>2]))do{i=r,r=0|n[r+16>>2],Be(i)}while(0|r);i=e,e=0|n[e+8>>2],Be(i)}while(0|e);if(e=A,A=0|n[A+8>>2],t||Be(e),!A)break;t=0}},_edgeLengthKm:function(A){return+ +i[20752+((A|=0)<<3)>>3]},_edgeLengthM:function(A){return+ +i[20880+((A|=0)<<3)>>3]},_emscripten_replace_memory:function(A){return t=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),r=A,!0},_exactEdgeLengthKm:function(A,e){var r,t,o=0,a=0,f=0,s=0,h=0,g=0;if(t=x,x=x+176|0,KA(A|=0,e|=0,r=t),(0|(A=0|n[r>>2]))<=1)return x=t,+(f=0);e=A+-1|0,A=0,o=0,a=+i[r+8>>3],f=+i[r+16>>3];do{h=a,a=+i[r+8+((A=A+1|0)<<4)>>3],g=+c(.5*(a-h)),s=f,f=+i[r+8+(A<<4)+8>>3],s=g*g+(s=+c(.5*(f-s)))*(+u(+h)*+u(+a)*s),o+=2*+b(+ +l(+s),+ +l(+(1-s)))}while((0|A)!=(0|e));return x=t,+(g=6371.007180918475*o)},_exactEdgeLengthM:function(A,e){var r,t,o=0,a=0,f=0,s=0,h=0,g=0;if(t=x,x=x+176|0,KA(A|=0,e|=0,r=t),(0|(A=0|n[r>>2]))<=1)return x=t,+(f=0);e=A+-1|0,A=0,o=0,a=+i[r+8>>3],f=+i[r+16>>3];do{h=a,a=+i[r+8+((A=A+1|0)<<4)>>3],g=+c(.5*(a-h)),s=f,f=+i[r+8+(A<<4)+8>>3],s=g*g+(s=+c(.5*(f-s)))*(+u(+h)*+u(+a)*s),o+=2*+b(+ +l(+s),+ +l(+(1-s)))}while((0|A)!=(0|e));return x=t,+(g=6371.007180918475*o*1e3)},_exactEdgeLengthRads:function(A,e){var r,t,o=0,a=0,f=0,s=0,h=0,g=0;if(t=x,x=x+176|0,KA(A|=0,e|=0,r=t),(0|(A=0|n[r>>2]))<=1)return x=t,+(f=0);e=A+-1|0,A=0,o=0,a=+i[r+8>>3],f=+i[r+16>>3];do{h=a,a=+i[r+8+((A=A+1|0)<<4)>>3],g=+c(.5*(a-h)),s=f,f=+i[r+8+(A<<4)+8>>3],s=g*g+(s=+c(.5*(f-s)))*(+u(+a)*+u(+h)*s),o+=2*+b(+ +l(+s),+ +l(+(1-s)))}while((0|A)<(0|e));return x=t,+o},_experimentalH3ToLocalIj:function(A,e,r,t,n){var i,o;return n|=0,o=x,x=x+16|0,(A=0|$A(A|=0,e|=0,r|=0,t|=0,i=o))||(hA(i,n),A=0),x=o,0|A},_experimentalLocalIjToH3:function(A,e,r,t){var n,i;return A|=0,e|=0,t|=0,n=x,x=x+16|0,gA(r|=0,i=n),t=0|Ae(A,e,i,t),x=n,0|t},_free:Be,_geoToH3:zA,_getDestinationH3IndexFromUnidirectionalEdge:function(A,e){A|=0;var r,t,i=0;return r=x,x=x+16|0,i=r,!0&268435456==(2013265920&(e|=0))?(t=0|_e(0|A,0|e,56),y(),n[i>>2]=0,i=0|G(A,-2130706433&e|134217728,7&t,i),e=0|y(),E(0|e),x=r,0|i):(i=0,E(0|(e=0)),x=r,0|i)},_getH3IndexesFromUnidirectionalEdge:function(A,e,r){A|=0;var t,i,o,a,f=0;o=x,x=x+16|0,t=o,a=!0&268435456==(2013265920&(e|=0)),i=-2130706433&e|134217728,n[(f=r|=0)>>2]=a?A:0,n[f+4>>2]=a?i:0,a?(e=0|_e(0|A,0|e,56),y(),n[t>>2]=0,A=0|G(A,i,7&e,t),e=0|y()):(A=0,e=0),n[(f=r+8|0)>>2]=A,n[f+4>>2]=e,x=o},_getH3UnidirectionalEdge:function(A,e,r,t){var i,o,a=0,f=0,l=0,s=0,u=0;if(o=x,x=x+16|0,i=o,!(0|WA(A|=0,e|=0,r|=0,t|=0)))return s=0,E(0|(l=0)),x=o,0|s;for(l=-2130706433&e,a=(a=!(0|GA(A,e)))?1:2;n[i>>2]=0,f=a+1|0,!((0|(u=0|G(A,e,a,i)))==(0|r)&(0|y())==(0|t));){if(!(f>>>0<7)){a=0,A=0,s=6;break}a=f}return 6==(0|s)?(E(0|a),x=o,0|A):(u=0|me(0|a,0,56),s=l|y()|268435456,u|=A,E(0|s),x=o,0|u)},_getH3UnidirectionalEdgeBoundary:KA,_getH3UnidirectionalEdgesFromHexagon:function(A,e,r){r|=0;var t,i=0;t=!(0|GA(A|=0,e|=0)),e&=-2130706433,n[(i=r)>>2]=t?A:0,n[i+4>>2]=t?285212672|e:0,n[(i=r+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=r+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=r+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=r+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(r=r+40|0)>>2]=A,n[r+4>>2]=369098752|e},_getOriginH3IndexFromUnidirectionalEdge:function(A,e){var r;return A|=0,E(0|((r=!0&268435456==(2013265920&(e|=0)))?-2130706433&e|134217728:0)),0|(r?A:0)},_getPentagonIndexes:ZA,_getRes0Indexes:function(A){A|=0;var e=0,r=0,t=0;e=0;do{me(0|e,0,45),t=134225919|y(),n[(r=A+(e<<3)|0)>>2]=-1,n[r+4>>2]=t,e=e+1|0}while(122!=(0|e))},_h3Distance:function(A,e,r,t){var n,i,o;return r|=0,t|=0,o=x,x=x+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,n=o+12|0)||0|$A(A,e,r,t,i)?-1:0|cA(n,i),x=o,0|A},_h3GetBaseCell:xA,_h3GetFaces:function A(e,r,t){t|=0;var i,o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0;i=x,x=x+128|0,c=i+112|0,f=i+96|0,h=i,a=0|_e(0|(e|=0),0|(r|=0),52),y(),s=15&a,n[c>>2]=s,l=0|_e(0|e,0|r,45),y(),l&=127;A:do{if(0|U(l)){if(0|s)for(o=1;;){if(!(!((u=0|me(7,0,3*(15-o|0)|0))&e)&!(y()&r))){a=0;break A}if(!(o>>>0<s>>>0))break;o=o+1|0}if(!(1&a))return u=0|me(s+1|0,0,52),h=y()|-15728641&r,A((u|e)&~(c=0|me(7,0,3*(14-s|0)|0)),h&~y(),t),void(x=i);a=1}else a=0}while(0);VA(e,r,f),a?(vA(f,c,h),u=5):(mA(f,c,h),u=6);A:do{if(0|U(l))if(s)for(o=1;;){if(!(!((l=0|me(7,0,3*(15-o|0)|0))&e)&!(y()&r))){o=8;break A}if(!(o>>>0<s>>>0)){o=20;break}o=o+1|0}else o=20;else o=8}while(0);if(Ce(0|t,-1,0|o),a){a=0;do{for(yA(f=h+(a<<4)|0,0|n[c>>2]),f=0|n[f>>2],o=0;!(-1==(0|(s=0|n[(l=t+(o<<2)|0)>>2]))|(0|s)==(0|f));)o=o+1|0;n[l>>2]=f,a=a+1|0}while((0|a)!=(0|u))}else{a=0;do{for(EA(f=h+(a<<4)|0,0|n[c>>2],0,1),f=0|n[f>>2],o=0;!(-1==(0|(s=0|n[(l=t+(o<<2)|0)>>2]))|(0|s)==(0|f));)o=o+1|0;n[l>>2]=f,a=a+1|0}while((0|a)!=(0|u))}x=i},_h3GetResolution:function(A,e){return e=0|_e(0|(A|=0),0|(e|=0),52),y(),15&e},_h3IndexesAreNeighbors:WA,_h3IsPentagon:GA,_h3IsResClassIII:function(A,e){return e=0|_e(0|(A|=0),0|(e|=0),52),y(),1&e},_h3IsValid:IA,_h3Line:function(A,e,r,t,i){r|=0,t|=0,i|=0;var o,a=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,y=0,_=0;if(o=x,x=x+48|0,l=o+12|0,y=o,!(0|$A(A|=0,e|=0,A,e,a=o+24|0))&&!(0|$A(A,e,r,t,l))){if((0|(E=0|cA(a,l)))<0)return x=o,0|(y=E);for(n[a>>2]=0,n[a+4>>2]=0,n[a+8>>2]=0,n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,$A(A,e,A,e,a),$A(A,e,r,t,l),dA(a),dA(l),E?(w=+(0|E),v=a,r=h=0|n[a>>2],t=g=0|n[(p=a+4|0)>>2],a=d=0|n[(k=a+8|0)>>2],b=+((0|n[l>>2])-h|0)/w,B=+((0|n[l+4>>2])-g|0)/w,w=+((0|n[l+8>>2])-d|0)/w):(p=t=a+4|0,k=d=a+8|0,v=a,r=0|n[a>>2],t=0|n[t>>2],a=0|n[d>>2],b=0,B=0,w=0),n[y>>2]=r,n[(d=y+4|0)>>2]=t,n[(g=y+8|0)>>2]=a,h=0;;){_=b*(u=+(0|h))+ +(0|r),s=B*u+ +(0|n[p>>2]),u=w*u+ +(0|n[k>>2]),t=~~+De(+_),l=~~+De(+s),r=~~+De(+u),_=+f(+(+(0|t)-_)),s=+f(+(+(0|l)-s)),u=+f(+(+(0|r)-u));do{if(!(_>s&_>u)){if(c=0-t|0,s>u){a=c-r|0;break}a=l,r=c-l|0;break}t=0-(l+r)|0,a=l}while(0);if(n[y>>2]=t,n[d>>2]=a,n[g>>2]=r,wA(y),Ae(A,e,y,i+(h<<3)|0),(0|h)==(0|E))break;h=h+1|0,r=0|n[v>>2]}return x=o,0|(y=0)}return x=o,0|(y=-1)},_h3LineSize:function(A,e,r,t){var n,i,o;return r|=0,t|=0,o=x,x=x+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,n=o+12|0)||0|$A(A,e,r,t,i)?-1:0|cA(n,i),x=o,(A>>>31^1)+A|0},_h3SetToLinkedGeo:function(A,e,r){r|=0;var t,i,o,a=0;if(o=x,x=x+32|0,t=o,function(A,e,r){A|=0,r|=0;var t,i,o=0,a=0,f=0,l=0,s=0;if(i=x,x=x+176|0,t=i,(0|(e|=0))<1)return le(r,0,0),void(x=i);l=0|_e(0|n[(l=A)>>2],0|n[l+4>>2],52),y(),le(r,(0|e)>6?e:6,15&l),l=0;do{if(NA(0|n[(o=A+(l<<3)|0)>>2],0|n[o+4>>2],t),(0|(o=0|n[t>>2]))>0){s=0;do{f=t+8+(s<<4)|0,(a=0|ge(r,o=t+8+((0|(s=s+1|0))%(0|o)<<4)|0,f))?ce(r,a):he(r,f,o),o=0|n[t>>2]}while((0|s)<(0|o))}l=l+1|0}while((0|l)!=(0|e));x=i}(A|=0,e|=0,i=o+16|0),n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,!(A=0|ue(i)))return XA(r),se(i),void(x=o);do{e=0|jA(r);do{JA(e,A),a=A+16|0,n[t>>2]=n[a>>2],n[t+4>>2]=n[a+4>>2],n[t+8>>2]=n[a+8>>2],n[t+12>>2]=n[a+12>>2],ce(i,A),A=0|de(i,t)}while(0|A);A=0|ue(i)}while(0|A);XA(r),se(i),x=o},_h3ToCenterChild:function(A,e,r){r|=0;var t=0,n=0;if(t=0|_e(0|(A|=0),0|(e|=0),52),y(),(0|r)<16&(0|(t&=15))<=(0|r)){if((0|t)!=(0|r)&&(A|=n=0|me(0|r,0,52),e=y()|-15728641&e,(0|t)<(0|r)))do{n=0|me(7,0,3*(14-t|0)|0),t=t+1|0,A&=~n,e&=~y()}while((0|t)<(0|r))}else e=0,A=0;return E(0|e),0|A},_h3ToChildren:PA,_h3ToGeo:YA,_h3ToGeoBoundary:NA,_h3ToParent:FA,_h3UnidirectionalEdgeIsValid:function(A,e){var r=0;if(!(!0&268435456==(2013265920&(e|=0))))return 0|(r=0);switch(r=0|_e(0|(A|=0),0|e,56),y(),7&r){case 0:case 7:return 0|(r=0)}return!0&16777216==(117440512&e)&!!(0|GA(A,r=-2130706433&e|134217728))?0|(r=0):0|(r=0|IA(A,r))},_hexAreaKm2:function(A){return+ +i[20496+((A|=0)<<3)>>3]},_hexAreaM2:function(A){return+ +i[20624+((A|=0)<<3)>>3]},_hexRing:function(A,e,r,t){A|=0,e|=0,t|=0;var i,o=0,a=0,f=0,l=0,s=0,u=0,c=0;if(i=x,x=x+16|0,c=i,!(r|=0))return n[(c=t)>>2]=A,n[c+4>>2]=e,x=i,0|(c=0);n[c>>2]=0;A:do{if(0|GA(A,e))A=1;else{if(a=(0|r)>0){o=0,u=A;do{if(!(0|(u=0|G(u,e,4,c)))&!(0|(e=0|y()))){A=2;break A}if(o=o+1|0,0|GA(u,e)){A=1;break A}}while((0|o)<(0|r));if(n[(s=t)>>2]=u,n[s+4>>2]=e,s=r+-1|0,a){a=0,f=1,o=u,A=e;do{if(!(0|(o=0|G(o,A,2,c)))&!(0|(A=0|y()))){A=2;break A}if(n[(l=t+(f<<3)|0)>>2]=o,n[l+4>>2]=A,f=f+1|0,0|GA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|r));l=0,a=f;do{if(!(0|(o=0|G(o,A,3,c)))&!(0|(A=0|y()))){A=2;break A}if(n[(f=t+(a<<3)|0)>>2]=o,n[f+4>>2]=A,a=a+1|0,0|GA(o,A)){A=1;break A}l=l+1|0}while((0|l)<(0|r));f=0;do{if(!(0|(o=0|G(o,A,1,c)))&!(0|(A=0|y()))){A=2;break A}if(n[(l=t+(a<<3)|0)>>2]=o,n[l+4>>2]=A,a=a+1|0,0|GA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|r));f=0;do{if(!(0|(o=0|G(o,A,5,c)))&!(0|(A=0|y()))){A=2;break A}if(n[(l=t+(a<<3)|0)>>2]=o,n[l+4>>2]=A,a=a+1|0,0|GA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|r));f=0;do{if(!(0|(o=0|G(o,A,4,c)))&!(0|(A=0|y()))){A=2;break A}if(n[(l=t+(a<<3)|0)>>2]=o,n[l+4>>2]=A,a=a+1|0,0|GA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|r));for(f=0;;){if(!(0|(o=0|G(o,A,6,c)))&!(0|(A=0|y()))){A=2;break A}if((0|f)!=(0|s)){if(n[(l=t+(a<<3)|0)>>2]=o,n[l+4>>2]=A,0|GA(o,A)){A=1;break A}a=a+1|0}if((0|(f=f+1|0))>=(0|r)){f=u,a=e;break}}}else f=u,o=u,a=e,A=e}else n[(f=t)>>2]=A,n[f+4>>2]=e,f=A,o=A,a=e,A=e;A=1&((0|f)!=(0|o)|(0|a)!=(0|A))}}while(0);return x=i,0|(c=A)},_i64Subtract:ke,_kRing:I,_kRingDistances:function(A,e,r,t,n){var i;if(0|F(A|=0,e|=0,r|=0,t|=0,n|=0)){if(Ce(0|t,0,(i=1+(0|p(3*r|0,r+1|0))|0)<<3),0|n)return Ce(0|n,0,i<<2),void P(A,e,r,t,n,i,0);(n=0|pe(i,4))&&(P(A,e,r,t,n,i,0),Be(n))}},_llvm_minnum_f64:Qe,_llvm_round_f64:De,_malloc:be,_maxFaceCount:function(A,e){var r=0,t=0;if(t=0|_e(0|(A|=0),0|(e|=0),45),y(),!(0|U(127&t)))return 0|(t=2);if(t=0|_e(0|A,0|e,52),y(),!(t&=15))return 0|(t=5);for(r=1;;){if(!(!((0|me(7,0,3*(15-r|0)|0))&A)&!(y()&e))){r=2,A=6;break}if(!(r>>>0<t>>>0)){r=5,A=6;break}r=r+1|0}return 6==(0|A)?0|r:0},_maxH3ToChildrenSize:function(A,e,r){return r|=0,A=0|_e(0|(A|=0),0|(e|=0),52),y(),(0|r)<16&(0|(A&=15))<=(0|r)?0|(r=0|ee(7,r-A|0)):0|(r=0)},_maxKringSize:function(A){return 1+(0|p(3*(A|=0)|0,A+1|0))|0},_maxPolyfillSize:function(A,e){e|=0;var r,t=0,i=0,o=0,a=0,f=0;if(r=x,x=x+48|0,o=r+8|0,i=r,a=0|n[(f=A|=0)+4>>2],n[(t=i)>>2]=n[f>>2],n[t+4>>2]=a,te(i,o),o=0|N(o,e),e=0|n[i>>2],(0|(i=0|n[A+8>>2]))<=0)return x=r,0|(f=(f=(a=(0|o)<(0|(f=e)))?f:o)+12|0);t=0|n[A+12>>2],A=0;do{e=(0|n[t+(A<<3)>>2])+e|0,A=A+1|0}while((0|A)<(0|i));return x=r,0|(f=(f=(f=(0|o)<(0|e))?e:o)+12|0)},_maxUncompactSize:function(A,e,r){A|=0,r|=0;var t=0,i=0,o=0,a=0;if((0|(e|=0))<=0)return 0|(r=0);if((0|r)>=16){for(t=0;;){if(!(!(0|n[(a=A+(t<<3)|0)>>2])&!(0|n[a+4>>2]))){t=-1,i=13;break}if((0|(t=t+1|0))>=(0|e)){t=0,i=13;break}}if(13==(0|i))return 0|t}t=0,a=0;A:for(;;){o=0|n[(i=A+(a<<3)|0)>>2],i=0|n[i+4>>2];do{if(!(!(0|o)&!(0|i))){if(i=0|_e(0|o,0|i,52),y(),(0|(i&=15))>(0|r)){t=-1,i=13;break A}if((0|i)==(0|r)){t=t+1|0;break}t=(0|ee(7,r-i|0))+t|0;break}}while(0);if((0|(a=a+1|0))>=(0|e)){i=13;break}}return 13==(0|i)?0|t:0},_memcpy:Me,_memset:Ce,_numHexagons:function(A){var e;return A=0|n[(e=21008+((A|=0)<<3)|0)>>2],E(0|n[e+4>>2]),0|A},_pentagonIndexCount:function(){return 12},_pointDistKm:MA,_pointDistM:function(A,e){A|=0;var r,t,n,o=0;return t=+i[(e|=0)>>3],r=+i[A>>3],o=(n=+c(.5*(t-r)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+u(+t)*+u(+r)*o),2*+b(+ +l(+o),+ +l(+(1-o)))*6371.007180918475*1e3},_pointDistRads:function(A,e){A|=0;var r,t,n,o=0;return t=+i[(e|=0)>>3],r=+i[A>>3],o=(n=+c(.5*(t-r)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+u(+t)*+u(+r)*o),2*+b(+ +l(+o),+ +l(+(1-o)))},_polyfill:function(A,e,r){var t,i=0,o=0,a=0,f=0,l=0;if(t=x,x=x+48|0,i=t+8|0,o=t,0|function(A,e,r){A|=0,e|=0,r|=0;var t=0,i=0,o=0,a=0,f=0,l=0,s=0,u=0,c=0,h=0,g=0,d=0,w=0,b=0,B=0,p=0,k=0,v=0,E=0,m=0,Q=0,D=0,M=0,C=0,I=0,G=0,U=0,T=0,R=0,L=0;L=x,x=x+112|0,G=L+80|0,l=L+72|0,U=L,T=L+56|0,s=A+8|0,R=0|be(32+(n[s>>2]<<5)|0),R||_(22848,22448,800,22456);if(ne(A,R),o=A,t=0|n[o+4>>2],f=l,n[f>>2]=n[o>>2],n[f+4>>2]=t,te(l,G),f=0|N(G,e),t=0|n[l>>2],o=0|n[s>>2],(0|o)>0){a=0|n[A+12>>2],i=0;do{t=(0|n[a+(i<<3)>>2])+t|0,i=i+1|0}while((0|i)!=(0|o))}if(f=(0|f)<(0|t)?t:f,I=f+12|0,i=0|pe(I,8),u=0|pe(I,8),n[G>>2]=0,M=A,C=0|n[M+4>>2],t=l,n[t>>2]=n[M>>2],n[t+4>>2]=C,t=0|S(l,I,e,G,i,u),0|t)return Be(i),Be(u),Be(R),x=L,0|(R=t);A:do{if((0|n[s>>2])>0){for(o=A+12|0,t=0;a=0|S((0|n[o>>2])+(t<<3)|0,I,e,G,i,u),t=t+1|0,!(0|a);)if((0|t)>=(0|n[s>>2]))break A;return Be(i),Be(u),Be(R),x=L,0|(R=a)}}while(0);(0|f)>-12&&Ce(0|u,0,((0|I)>1?I:1)<<3);A:do{if((0|n[G>>2])>0){C=((0|I)<0)<<31>>31,v=i,E=u,m=i,Q=i,D=u,M=i,t=i,b=i,B=u,p=u,k=u,i=u;e:for(;;){for(w=0|n[G>>2],g=0,d=0,o=0;;){f=(a=U)+56|0;do{n[a>>2]=0,a=a+4|0}while((0|a)<(0|f));if(0|F(l=0|n[(e=v+(g<<3)|0)>>2],e=0|n[e+4>>2],1,U,0)){f=(a=U)+56|0;do{n[a>>2]=0,a=a+4|0}while((0|a)<(0|f));0|(a=0|pe(7,4))&&(P(l,e,1,U,a,7,0),Be(a))}h=0;do{u=0|n[(c=U+(h<<3)|0)>>2],c=0|n[c+4>>2];r:do{if(!(!(0|u)&!(0|c))){if(l=0|ye(0|u,0|c,0|I,0|C),y(),!(!(0|(e=0|n[(f=a=r+(l<<3)|0)>>2]))&!(0|(f=0|n[f+4>>2]))))for(s=0;;){if((0|s)>(0|I))break e;if((0|e)==(0|u)&(0|f)==(0|c))break r;if(!(0|(e=0|n[(f=a=r+((l=(l+1|0)%(0|I)|0)<<3)|0)>>2]))&!(0|(f=0|n[f+4>>2])))break;s=s+1|0}!(0|u)&!(0|c)||(YA(u,c,T),0|ie(A,R,T)&&(n[(s=a)>>2]=u,n[s+4>>2]=c,n[(s=E+(o<<3)|0)>>2]=u,n[s+4>>2]=c,o=o+1|0))}}while(0);h=h+1|0}while(h>>>0<7);if((0|(d=d+1|0))>=(0|w))break;g=g+1|0}if((0|w)>0&&Ce(0|m,0,w<<3),n[G>>2]=o,!((0|o)>0))break A;u=i,c=k,h=M,g=p,d=B,w=E,i=b,k=t,p=Q,B=m,b=u,t=c,M=D,D=h,Q=g,m=d,E=v,v=w}return Be(Q),Be(D),Be(R),x=L,0|(R=-1)}t=u}while(0);return Be(R),Be(i),Be(t),R=0,x=L,0|R}(A|=0,e|=0,r|=0)){if(a=0|n[(l=A)+4>>2],n[(f=o)>>2]=n[l>>2],n[f+4>>2]=a,te(o,i),f=0|N(i,e),e=0|n[o>>2],(0|(a=0|n[A+8>>2]))>0){o=0|n[A+12>>2],i=0;do{e=(0|n[o+(i<<3)>>2])+e|0,i=i+1|0}while((0|i)!=(0|a))}(0|(e=(0|f)<(0|e)?e:f))<=-12||Ce(0|r,0,8+(((0|(l=e+11|0))>0?l:0)<<3)|0),x=t}else x=t},_res0IndexCount:function(){return 122},_round:xe,_sbrk:Ie,_sizeOfCoordIJ:function(){return 8},_sizeOfGeoBoundary:function(){return 168},_sizeOfGeoCoord:function(){return 16},_sizeOfGeoPolygon:function(){return 16},_sizeOfGeofence:function(){return 8},_sizeOfH3Index:function(){return 8},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompact:function(A,e,r,t,i){A|=0,r|=0,t|=0,i|=0;var o=0,a=0,f=0,l=0,s=0,u=0;if((0|(e|=0))<=0)return 0|(i=0);if((0|i)>=16){for(o=0;;){if(!(!(0|n[(u=A+(o<<3)|0)>>2])&!(0|n[u+4>>2]))){o=14;break}if((0|(o=o+1|0))>=(0|e)){a=0,o=16;break}}if(14==(0|o))return 0|((0|t)>0?-2:-1);if(16==(0|o))return 0|a}o=0,u=0;A:for(;;){a=0|n[(f=s=A+(u<<3)|0)>>2],f=0|n[f+4>>2];do{if(!(!(0|a)&!(0|f))){if((0|o)>=(0|t)){a=-1,o=16;break A}if(l=0|_e(0|a,0|f,52),y(),(0|(l&=15))>(0|i)){a=-2,o=16;break A}if((0|l)==(0|i)){n[(s=r+(o<<3)|0)>>2]=a,n[s+4>>2]=f,o=o+1|0;break}if((0|(a=(0|ee(7,i-l|0))+o|0))>(0|t)){a=-1,o=16;break A}PA(0|n[s>>2],0|n[s+4>>2],i,r+(o<<3)|0),o=a}}while(0);if((0|(u=u+1|0))>=(0|e)){a=0,o=16;break}}return 16==(0|o)?0|a:0},establishStackSpace:function(A,e){x=A|=0},stackAlloc:function(A){var e;return e=x,x=(x=x+(A|=0)|0)+15&-16,0|e},stackRestore:function(A){x=A|=0},stackSave:function(){return 0|x}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{a:BA,b:function(A){b=A},c:B,d:function(A,e,r,t){BA("Assertion failed: "+I(A)+", at: "+[e?I(e):"unknown filename",r,t?I(t):"unknown function"])},e:function(A){return r.___errno_location&&(D[r.___errno_location()>>2]=A),A},f:AA,g:function(A,e,r){m.set(m.subarray(e,e+r),A)},h:function(A){var e=AA(),r=16777216,t=2130706432;if(A>t)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?F(2*n,r):Math.min(F((3*n+2147483648)/4,r),t);return!!eA(n)},i:function(A){BA("OOM")},j:X,k:q,l:eA,m:$,n:function(){var A=$();return r.extraStackTrace&&(A+="\n"+r.extraStackTrace()),q(A)},o:24032,p:24016},y);r.___uremdi3=iA.___uremdi3,r._bitshift64Lshr=iA._bitshift64Lshr,r._bitshift64Shl=iA._bitshift64Shl,r._calloc=iA._calloc,r._cellAreaKm2=iA._cellAreaKm2,r._cellAreaM2=iA._cellAreaM2,r._cellAreaRads2=iA._cellAreaRads2,r._compact=iA._compact,r._destroyLinkedPolygon=iA._destroyLinkedPolygon,r._edgeLengthKm=iA._edgeLengthKm,r._edgeLengthM=iA._edgeLengthM;var oA=r._emscripten_replace_memory=iA._emscripten_replace_memory;r._exactEdgeLengthKm=iA._exactEdgeLengthKm,r._exactEdgeLengthM=iA._exactEdgeLengthM,r._exactEdgeLengthRads=iA._exactEdgeLengthRads,r._experimentalH3ToLocalIj=iA._experimentalH3ToLocalIj,r._experimentalLocalIjToH3=iA._experimentalLocalIjToH3,r._free=iA._free,r._geoToH3=iA._geoToH3,r._getDestinationH3IndexFromUnidirectionalEdge=iA._getDestinationH3IndexFromUnidirectionalEdge,r._getH3IndexesFromUnidirectionalEdge=iA._getH3IndexesFromUnidirectionalEdge,r._getH3UnidirectionalEdge=iA._getH3UnidirectionalEdge,r._getH3UnidirectionalEdgeBoundary=iA._getH3UnidirectionalEdgeBoundary,r._getH3UnidirectionalEdgesFromHexagon=iA._getH3UnidirectionalEdgesFromHexagon,r._getOriginH3IndexFromUnidirectionalEdge=iA._getOriginH3IndexFromUnidirectionalEdge,r._getPentagonIndexes=iA._getPentagonIndexes,r._getRes0Indexes=iA._getRes0Indexes,r._h3Distance=iA._h3Distance,r._h3GetBaseCell=iA._h3GetBaseCell,r._h3GetFaces=iA._h3GetFaces,r._h3GetResolution=iA._h3GetResolution,r._h3IndexesAreNeighbors=iA._h3IndexesAreNeighbors,r._h3IsPentagon=iA._h3IsPentagon,r._h3IsResClassIII=iA._h3IsResClassIII,r._h3IsValid=iA._h3IsValid,r._h3Line=iA._h3Line,r._h3LineSize=iA._h3LineSize,r._h3SetToLinkedGeo=iA._h3SetToLinkedGeo,r._h3ToCenterChild=iA._h3ToCenterChild,r._h3ToChildren=iA._h3ToChildren,r._h3ToGeo=iA._h3ToGeo,r._h3ToGeoBoundary=iA._h3ToGeoBoundary,r._h3ToParent=iA._h3ToParent,r._h3UnidirectionalEdgeIsValid=iA._h3UnidirectionalEdgeIsValid,r._hexAreaKm2=iA._hexAreaKm2,r._hexAreaM2=iA._hexAreaM2,r._hexRing=iA._hexRing,r._i64Subtract=iA._i64Subtract,r._kRing=iA._kRing,r._kRingDistances=iA._kRingDistances,r._llvm_minnum_f64=iA._llvm_minnum_f64,r._llvm_round_f64=iA._llvm_round_f64,r._malloc=iA._malloc,r._maxFaceCount=iA._maxFaceCount,r._maxH3ToChildrenSize=iA._maxH3ToChildrenSize,r._maxKringSize=iA._maxKringSize,r._maxPolyfillSize=iA._maxPolyfillSize,r._maxUncompactSize=iA._maxUncompactSize,r._memcpy=iA._memcpy,r._memset=iA._memset,r._numHexagons=iA._numHexagons,r._pentagonIndexCount=iA._pentagonIndexCount,r._pointDistKm=iA._pointDistKm,r._pointDistM=iA._pointDistM,r._pointDistRads=iA._pointDistRads,r._polyfill=iA._polyfill,r._res0IndexCount=iA._res0IndexCount,r._round=iA._round,r._sbrk=iA._sbrk,r._sizeOfCoordIJ=iA._sizeOfCoordIJ,r._sizeOfGeoBoundary=iA._sizeOfGeoBoundary,r._sizeOfGeoCoord=iA._sizeOfGeoCoord,r._sizeOfGeoPolygon=iA._sizeOfGeoPolygon,r._sizeOfGeofence=iA._sizeOfGeofence,r._sizeOfH3Index=iA._sizeOfH3Index,r._sizeOfLinkedGeoPolygon=iA._sizeOfLinkedGeoPolygon,r._uncompact=iA._uncompact,r.establishStackSpace=iA.establishStackSpace;var aA,fA,lA=r.stackAlloc=iA.stackAlloc,sA=r.stackRestore=iA.stackRestore,uA=r.stackSave=iA.stackSave;if(r.asm=iA,r.cwrap=function(A,e,r,t){var n=(r=r||[]).every((function(A){return"number"===A}));return"string"!==e&&n&&!t?v(A):function(){return E(A,e,r,arguments)}},r.setValue=function(A,e,r,t){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":_[A|0]=e;break;case"i16":Q[A>>1]=e;break;case"i32":D[A>>2]=e;break;case"i64":W=[e>>>0,(Z=e,+H(Z)>=1?Z>0?(0|V(+O(Z/4294967296),4294967295))>>>0:~~+z((Z-+(~~Z>>>0))/4294967296)>>>0:0)],D[A>>2]=W[0],D[A+4>>2]=W[1];break;case"float":M[A>>2]=e;break;case"double":C[A>>3]=e;break;default:BA("invalid type for setValue: "+r)}},r.getValue=function(A,e,r){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return _[A|0];case"i16":return Q[A>>1];case"i32":case"i64":return D[A>>2];case"float":return M[A>>2];case"double":return C[A>>3];default:BA("invalid type for getValue: "+e)}return null},r.getTempRet0=B,K)if(J(K)||(aA=K,K=r.locateFile?r.locateFile(aA,g):g+aA),o||f){var cA=u(K);m.set(cA,8)}else{Y++,r.monitorRunDependencies&&r.monitorRunDependencies(Y);var hA=function(A){A.byteLength&&(A=new Uint8Array(A)),m.set(A,8),r.memoryInitializerRequest&&delete r.memoryInitializerRequest.response,function(){if(Y--,r.monitorRunDependencies&&r.monitorRunDependencies(Y),0==Y&&N){var A=N;N=null,A()}}()},gA=function(){s(K,hA,(function(){throw"could not load memory initializer "+K}))},dA=nA(K);if(dA)hA(dA.buffer);else if(r.memoryInitializerRequest){var wA=function(){var A=r.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var t=nA(r.memoryInitializerRequestURL);if(!t)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+K),void gA();e=t.buffer}hA(e)};r.memoryInitializerRequest.response?setTimeout(wA,0):r.memoryInitializerRequest.addEventListener("load",wA)}else gA()}function bA(A){function e(){fA||(fA=!0,p||(S(T),S(R),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)A=r.postRun.shift(),L.unshift(A);var A;S(L)}()))}Y>0||(!function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)A=r.preRun.shift(),U.unshift(A);var A;S(U)}(),Y>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),e()}),1)):e()))}function BA(A){throw r.onAbort&&r.onAbort(A),d(A+=""),w(A),p=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(N=function A(){fA||bA(),fA||(N=A)},r.run=bA,r.abort=BA,r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return bA(),A}("object"==typeof wA?wA:{}),bA="number",BA={};[["sizeOfH3Index",bA],["sizeOfGeoCoord",bA],["sizeOfGeoBoundary",bA],["sizeOfGeoPolygon",bA],["sizeOfGeofence",bA],["sizeOfLinkedGeoPolygon",bA],["sizeOfCoordIJ",bA],["h3IsValid",bA,[bA,bA]],["geoToH3",bA,[bA,bA,bA]],["h3ToGeo",null,[bA,bA,bA]],["h3ToGeoBoundary",null,[bA,bA,bA]],["maxKringSize",bA,[bA]],["kRing",null,[bA,bA,bA,bA]],["kRingDistances",null,[bA,bA,bA,bA,bA]],["hexRing",null,[bA,bA,bA,bA]],["maxPolyfillSize",bA,[bA,bA]],["polyfill",null,[bA,bA,bA]],["h3SetToLinkedGeo",null,[bA,bA,bA]],["destroyLinkedPolygon",null,[bA]],["compact",bA,[bA,bA,bA]],["uncompact",bA,[bA,bA,bA,bA,bA]],["maxUncompactSize",bA,[bA,bA,bA]],["h3IsPentagon",bA,[bA,bA]],["h3IsResClassIII",bA,[bA,bA]],["h3GetBaseCell",bA,[bA,bA]],["h3GetResolution",bA,[bA,bA]],["maxFaceCount",bA,[bA,bA]],["h3GetFaces",null,[bA,bA,bA]],["h3ToParent",bA,[bA,bA,bA]],["h3ToChildren",null,[bA,bA,bA,bA]],["h3ToCenterChild",bA,[bA,bA,bA]],["maxH3ToChildrenSize",bA,[bA,bA,bA]],["h3IndexesAreNeighbors",bA,[bA,bA,bA,bA]],["getH3UnidirectionalEdge",bA,[bA,bA,bA,bA]],["getOriginH3IndexFromUnidirectionalEdge",bA,[bA,bA]],["getDestinationH3IndexFromUnidirectionalEdge",bA,[bA,bA]],["h3UnidirectionalEdgeIsValid",bA,[bA,bA]],["getH3IndexesFromUnidirectionalEdge",null,[bA,bA,bA]],["getH3UnidirectionalEdgesFromHexagon",null,[bA,bA,bA]],["getH3UnidirectionalEdgeBoundary",null,[bA,bA,bA]],["h3Distance",bA,[bA,bA,bA,bA]],["h3Line",bA,[bA,bA,bA,bA,bA]],["h3LineSize",bA,[bA,bA,bA,bA]],["experimentalH3ToLocalIj",bA,[bA,bA,bA,bA,bA]],["experimentalLocalIjToH3",bA,[bA,bA,bA,bA]],["hexAreaM2",bA,[bA]],["hexAreaKm2",bA,[bA]],["edgeLengthM",bA,[bA]],["edgeLengthKm",bA,[bA]],["pointDistM",bA,[bA,bA]],["pointDistKm",bA,[bA,bA]],["pointDistRads",bA,[bA,bA]],["cellAreaM2",bA,[bA,bA]],["cellAreaKm2",bA,[bA,bA]],["cellAreaRads2",bA,[bA,bA]],["exactEdgeLengthM",bA,[bA,bA]],["exactEdgeLengthKm",bA,[bA,bA]],["exactEdgeLengthRads",bA,[bA,bA]],["numHexagons",bA,[bA]],["getRes0Indexes",null,[bA]],["res0IndexCount",bA],["getPentagonIndexes",null,[bA,bA]],["pentagonIndexCount",bA]].forEach((function(A){BA[A[0]]=wA.cwrap.apply(wA,A)}));var pA=16,kA=BA.sizeOfH3Index(),vA=BA.sizeOfGeoCoord(),EA=BA.sizeOfGeoBoundary(),yA=BA.sizeOfGeoPolygon(),_A=BA.sizeOfGeofence(),mA=BA.sizeOfLinkedGeoPolygon(),QA=BA.sizeOfCoordIJ(),DA={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function MA(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw new Error("Invalid resolution: "+A)}var CA=/[^0-9a-fA-F]/;function xA(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||CA.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),pA);return[parseInt(A.substring(A.length-8),pA),e]}function IA(A){if(A>=0)return A.toString(pA);var e=PA(8,(A&=2147483647).toString(pA));return e=(parseInt(e[0],pA)+8).toString(pA)+e.substring(1)}function FA(A,e){return IA(e)+PA(8,IA(A))}function PA(A,e){for(var r=A-e.length,t="",n=0;n<r;n++)t+="0";return t+=e}function GA(A,e,r){for(var t=A.length,n=wA._calloc(t,vA),i=r?1:0,o=r?0:1,a=0;a<2*t;a+=2)wA.HEAPF64.set([A[a/2][i],A[a/2][o]].map(WA),n/8+a);return wA.HEAPU32.set([t,n],e/4),e}function SA(A){return[A,wA.getTempRet0()]}function UA(A){var e=SA(A),r=e[0],t=e[1];return t?FA(r,t):null}function TA(A,e){void 0===e&&(e=0);var r=wA.getValue(A+4*e*2,"i32"),t=wA.getValue(A+4*(2*e+1),"i32");return t?FA(r,t):null}function RA(A,e,r){wA.HEAPU32.set(xA(A),e/4+2*r)}function LA(A,e){for(var r=[],t=0;t<e;t++){var n=TA(A,t);null!==n&&r.push(n)}return r}function HA(A,e){for(var r=e.length,t=0;t<r;t++)RA(e[t],A,t)}function zA(A,e){var r=wA._calloc(1,vA);return wA.HEAPF64.set([A,e].map(WA),r/8),r}function OA(A){return KA(wA.getValue(A,"double"))}function VA(A){return[OA(A),OA(A+8)]}function YA(A){return[OA(A+8),OA(A)]}function NA(A,e,r){for(var t=wA.getValue(A,"i32"),n=A+8,i=[],o=e?YA:VA,a=0;a<2*t;a+=2)i.push(o(n+8*a));return r&&i.push(i[0]),i}function ZA(A){var e=xA(A),r=e[0],t=e[1];return Boolean(BA.h3IsValid(r,t))}function WA(A){return A*Math.PI/180}function KA(A){return 180*A/Math.PI}var jA=Object.freeze({__proto__:null,UNITS:DA,cellArea:function(A,e){var r=xA(A),t=r[0],n=r[1];switch(e){case DA.m2:return BA.cellAreaM2(t,n);case DA.km2:return BA.cellAreaKm2(t,n);case DA.rads2:return BA.cellAreaRads2(t,n);default:throw new Error("Unknown unit: "+e)}},compact:function(A){if(!A||!A.length)return[];var e=A.length,r=wA._calloc(e,kA);HA(r,A);var t=wA._calloc(e,kA);if(0!==BA.compact(r,t,e))throw wA._free(r),wA._free(t),new Error("Failed to compact, malformed input data (duplicate hexagons?)");var n=LA(t,e);return wA._free(r),wA._free(t),n},degsToRads:WA,edgeLength:function(A,e){switch(MA(A),e){case DA.m:return BA.edgeLengthM(A);case DA.km:return BA.edgeLengthKm(A);default:throw new Error("Unknown unit: "+e)}},exactEdgeLength:function(A,e){var r=xA(A),t=r[0],n=r[1];switch(e){case DA.m:return BA.exactEdgeLengthM(t,n);case DA.km:return BA.exactEdgeLengthKm(t,n);case DA.rads:return BA.exactEdgeLengthRads(t,n);default:throw new Error("Unknown unit: "+e)}},experimentalH3ToLocalIj:function(A,e){var r,t=wA._malloc(QA),n=BA.experimentalH3ToLocalIj.apply(BA,xA(A).concat(xA(e),[t])),i=(r=t,{i:wA.getValue(r,"i32"),j:wA.getValue(r+4,"i32")});switch(wA._free(t),n){case 0:return i;case 1:throw new Error("Incompatible origin and index.");case 2:default:throw new Error("Local IJ coordinates undefined for this origin and index pair. The index may be too far from the origin.");case 3:case 4:case 5:throw new Error("Encountered possible pentagon distortion")}},experimentalLocalIjToH3:function(A,e){if(!e||"number"!=typeof e.i||"number"!=typeof e.j)throw new Error("Coordinates must be provided as an {i, j} object");var r,t,n,i,o=wA._malloc(QA),a=wA._malloc(kA);r=o,n=(t=e).i,i=t.j,wA.setValue(r,n,"i32"),wA.setValue(r+4,i,"i32");var f=BA.experimentalLocalIjToH3.apply(BA,xA(A).concat([o],[a])),l=TA(a);if(wA._free(o),wA._free(a),0!==f)throw new Error("Index not defined for this origin and IJ coordinates pair. IJ coordinates may be too far from origin, or a pentagon distortion was encountered.");return l},geoToH3:function(A,e,r){var t=wA._malloc(vA);wA.HEAPF64.set([A,e].map(WA),t/8);var n=UA(BA.geoToH3(t,r));return wA._free(t),n},getDestinationH3IndexFromUnidirectionalEdge:function(A){var e=xA(A),r=e[0],t=e[1];return UA(BA.getDestinationH3IndexFromUnidirectionalEdge(r,t))},getH3IndexesFromUnidirectionalEdge:function(A){var e=xA(A),r=e[0],t=e[1],n=wA._calloc(2,kA);BA.getH3IndexesFromUnidirectionalEdge(r,t,n);var i=LA(n,2);return wA._free(n),i},getH3UnidirectionalEdge:function(A,e){var r=xA(A),t=r[0],n=r[1],i=xA(e),o=i[0],a=i[1];return UA(BA.getH3UnidirectionalEdge(t,n,o,a))},getH3UnidirectionalEdgeBoundary:function(A,e){var r=wA._malloc(EA),t=xA(A),n=t[0],i=t[1];BA.getH3UnidirectionalEdgeBoundary(n,i,r);var o=NA(r,e);return wA._free(r),o},getH3UnidirectionalEdgesFromHexagon:function(A){var e=xA(A),r=e[0],t=e[1],n=wA._calloc(6,kA);BA.getH3UnidirectionalEdgesFromHexagon(r,t,n);var i=LA(n,6);return wA._free(n),i},getOriginH3IndexFromUnidirectionalEdge:function(A){var e=xA(A),r=e[0],t=e[1];return UA(BA.getOriginH3IndexFromUnidirectionalEdge(r,t))},getPentagonIndexes:function(A){MA(A);var e=BA.pentagonIndexCount(),r=wA._malloc(kA*e);BA.getPentagonIndexes(A,r);var t=LA(r,e);return wA._free(r),t},getRes0Indexes:function(){var A=BA.res0IndexCount(),e=wA._malloc(kA*A);BA.getRes0Indexes(e);var r=LA(e,A);return wA._free(e),r},h3Distance:function(A,e){var r=xA(A),t=r[0],n=r[1],i=xA(e),o=i[0],a=i[1];return BA.h3Distance(t,n,o,a)},h3GetBaseCell:function(A){var e=xA(A),r=e[0],t=e[1];return BA.h3GetBaseCell(r,t)},h3GetFaces:function(A){var e=xA(A),r=e[0],t=e[1],n=BA.maxFaceCount(r,t),i=wA._malloc(4*n);BA.h3GetFaces(r,t,i);var o=function(A,e){for(var r=[],t=0;t<e;t++){var n=wA.getValue(A+4*t,"i32");n>=0&&r.push(n)}return r}(i,n);return wA._free(i),o},h3GetResolution:function(A){var e=xA(A),r=e[0],t=e[1];return BA.h3IsValid(r,t)?BA.h3GetResolution(r,t):-1},h3IndexToSplitLong:xA,h3IndexesAreNeighbors:function(A,e){var r=xA(A),t=r[0],n=r[1],i=xA(e),o=i[0],a=i[1];return Boolean(BA.h3IndexesAreNeighbors(t,n,o,a))},h3IsPentagon:function(A){var e=xA(A),r=e[0],t=e[1];return Boolean(BA.h3IsPentagon(r,t))},h3IsResClassIII:function(A){var e=xA(A),r=e[0],t=e[1];return Boolean(BA.h3IsResClassIII(r,t))},h3IsValid:ZA,h3Line:function(A,e){var r=xA(A),t=r[0],n=r[1],i=xA(e),o=i[0],a=i[1],f=BA.h3LineSize(t,n,o,a);if(f<0)throw new Error("Line cannot be calculated");var l=wA._calloc(f,kA);BA.h3Line(t,n,o,a,l);var s=LA(l,f);return wA._free(l),s},h3SetToMultiPolygon:function(A,e){if(!A||!A.length)return[];var r=A.length,t=wA._calloc(r,kA);HA(t,A);var n=wA._calloc(mA),i=n;BA.h3SetToLinkedGeo(t,r,n);var o=function(A,e){for(var r,t,n,i,o=[],a=e?YA:VA;A;){for(o.push(r=[]),t=wA.getValue(A,"i8*");t;){for(r.push(n=[]),i=wA.getValue(t,"i8*");i;)n.push(a(i)),i=wA.getValue(i+16,"i8*");e&&n.push(n[0]),t=wA.getValue(t+8,"i8*")}A=wA.getValue(A+8,"i8*")}return o}(n,e);return BA.destroyLinkedPolygon(i),wA._free(i),wA._free(t),o},h3ToCenterChild:function(A,e){var r=xA(A),t=r[0],n=r[1];return UA(BA.h3ToCenterChild(t,n,e))},h3ToChildren:function(A,e){if(!ZA(A))return[];var r=xA(A),t=r[0],n=r[1],i=BA.maxH3ToChildrenSize(t,n,e),o=wA._calloc(i,kA);BA.h3ToChildren(t,n,e,o);var a=LA(o,i);return wA._free(o),a},h3ToGeo:function(A){var e=wA._malloc(vA),r=xA(A),t=r[0],n=r[1];BA.h3ToGeo(t,n,e);var i=VA(e);return wA._free(e),i},h3ToGeoBoundary:function(A,e){var r=wA._malloc(EA),t=xA(A),n=t[0],i=t[1];BA.h3ToGeoBoundary(n,i,r);var o=NA(r,e,e);return wA._free(r),o},h3ToParent:function(A,e){var r=xA(A),t=r[0],n=r[1];return UA(BA.h3ToParent(t,n,e))},h3UnidirectionalEdgeIsValid:function(A){var e=xA(A),r=e[0],t=e[1];return Boolean(BA.h3UnidirectionalEdgeIsValid(r,t))},hexArea:function(A,e){switch(MA(A),e){case DA.m2:return BA.hexAreaM2(A);case DA.km2:return BA.hexAreaKm2(A);default:throw new Error("Unknown unit: "+e)}},hexRing:function(A,e){var r=0===e?1:6*e,t=wA._calloc(r,kA);if(0!==BA.hexRing.apply(BA,xA(A).concat([e],[t])))throw wA._free(t),new Error("Failed to get hexRing (encountered a pentagon?)");var n=LA(t,r);return wA._free(t),n},kRing:function(A,e){var r=xA(A),t=r[0],n=r[1],i=BA.maxKringSize(e),o=wA._calloc(i,kA);BA.kRing(t,n,e,o);var a=LA(o,i);return wA._free(o),a},kRingDistances:function(A,e){var r=xA(A),t=r[0],n=r[1],i=BA.maxKringSize(e),o=wA._calloc(i,kA),a=wA._calloc(i,4);BA.kRingDistances(t,n,e,o,a);for(var f=[],l=0;l<e+1;l++)f.push([]);for(var s=0;s<2*i;s+=2){var u=wA.getValue(o+4*s,"i32"),c=wA.getValue(o+4*(s+1),"i32"),h=wA.getValue(a+s/2*4,"i32");0===u&&0===c||f[h].push(FA(u,c))}return wA._free(o),wA._free(a),f},numHexagons:function(A){MA(A);var e=SA(BA.numHexagons(A)),r=e[0],t=e[1];return t?t*Math.pow(2,32)+r:r},pointDist:function(A,e,r){var t,n=zA(A[0],A[1]),i=zA(e[0],e[1]);switch(r){case DA.m:t=BA.pointDistM(n,i);break;case DA.km:t=BA.pointDistKm(n,i);break;case DA.rads:t=BA.pointDistRads(n,i);break;default:t=null}if(wA._free(n),wA._free(i),null===t)throw new Error("Unknown unit: "+r);return t},polyfill:function(A,e,r){if(MA(e),r=Boolean(r),0===A.length||0===A[0].length)return[];"number"==typeof A[0][0]&&(A=[A]);var t=function(A,e){var r,t=A.length-1,n=wA._calloc(yA),i=0+_A,o=i+4;if(GA(A[0],n+0,e),t>0){r=wA._calloc(t,_A);for(var a=0;a<t;a++)GA(A[a+1],r+_A*a,e)}return wA.setValue(n+i,t,"i32"),wA.setValue(n+o,r,"i32"),n}(A,r),n=BA.maxPolyfillSize(t,e),i=wA._calloc(n,kA);BA.polyfill(t,e,i);var o=LA(i,n);return wA._free(i),function(A){var e=0+_A,r=e+4;wA._free(wA.getValue(A+0+4,"i8*"));var t=wA.getValue(A+e,"i32");if(t>0){for(var n=wA.getValue(A+r,"i32"),i=0;i<t;i++)wA._free(wA.getValue(n+_A*i+4,"i8*"));wA._free(n)}wA._free(A)}(t),o},radsToDegs:KA,splitLongToh3Index:FA,uncompact:function(A,e){if(MA(e),!A||!A.length)return[];var r=A.length,t=wA._calloc(r,kA);HA(t,A);var n=BA.maxUncompactSize(t,r,e),i=wA._calloc(n,kA);if(0!==BA.uncompact(t,r,i,n,e))throw wA._free(t),wA._free(i),new Error("Failed to uncompact (bad resolution?)");var o=LA(i,n);return wA._free(t),wA._free(i),o}}),JA=dA(jA),XA="Feature",qA="FeatureCollection",$A="Polygon",Ae="MultiPolygon";function ee(A){for(var e=null,r=0;r<A.length;r++)if(null!==e)for(var t=0;t<A[r].length;t++)e.push(A[r][t]);else e=A[r];return Array.from(new Set(e))}function re(A,e,r){void 0===r&&(r={});var t=A.type,n=A.geometry,i=n&&n.type;if(t===qA)return function(A,e){var r=A.features;if(!r)throw new Error("No features found");return ee(r.map((function(A){return re(A,e)})))}(A,e);if(t!==XA)throw new Error("Unhandled type: "+t);if(i!==$A&&i!==Ae)throw new Error("Unhandled geometry type: "+i);return ee((i===$A?[n.coordinates]:n.coordinates).map((function(A){var t=JA.polyfill(A,e,!0);if(t.length||!r.ensureOutput)return t;var n=function(A){for(var e=0,r=0,t=0,n=A[0],i=0;i<n.length;i++)e+=n[i][0],r+=n[i][1],t++;return[e/t,r/t]}(A),i=n[0],o=n[1];return[JA.geoToH3(o,i,e)]})))}function te(A,e){void 0===e&&(e={});var r=[JA.h3ToGeoBoundary(A,!0)];return{type:XA,id:A,properties:e,geometry:{type:$A,coordinates:r}}}var ne={featureToH3Set:re,h3ToFeature:te,h3SetToFeature:function(A,e){void 0===e&&(e={});var r=JA.h3SetToMultiPolygon(A,!0),t=r.length>1,n=t?Ae:$A,i=t?r:r[0]||[];return{type:XA,properties:e,geometry:{type:n,coordinates:i}}},h3SetToMultiPolygonFeature:function(A,e){void 0===e&&(e={});var r=A.map((function(A){return[JA.h3ToGeoBoundary(A,{geoJson:!0})]}));return{type:XA,properties:e,geometry:{type:Ae,coordinates:r}}},h3SetToFeatureCollection:function(A,e){for(var r=[],t=0;t<A.length;t++){var n=A[t],i=e?e(n):{};r.push(te(n,i))}return{type:qA,features:r}}};function ie(A,e){if(0!==A.length){oe(A[0],e);for(let r=1;r<A.length;r++)oe(A[r],!e)}}function oe(A,e){let r=0,t=0;for(let e=0,n=A.length,i=n-1;e<n;i=e++){const n=(A[e][0]-A[i][0])*(A[i][1]+A[e][1]),o=r+n;t+=Math.abs(r)>=Math.abs(n)?r-o+n:n-o+r,r=o}r+t>=0!=!!e&&A.reverse()}function ae(A,e){for(var r=0,t=0,n=0,i=0,o=0,a=0,f=0,l=0,s=null,u=null,c=A[0],h=A[1],g=e.length;r<g;r++){t=0;var d=e[r].length-1,w=e[r];if((s=w[0])[0]!==w[d][0]&&s[1]!==w[d][1])throw new Error("First and last coordinates in a ring must be the same");for(o=s[0]-c,a=s[1]-h;t<d;t++)if(l=(u=w[t+1])[1]-h,a<0&&l<0||a>0&&l>0)a=l,o=(s=u)[0]-c;else{if(f=u[0]-A[0],l>0&&a<=0){if((i=o*l-f*a)>0)n+=1;else if(0===i)return 0}else if(a>0&&l<=0){if((i=o*l-f*a)<0)n+=1;else if(0===i)return 0}else if(0===l&&a<0){if(0===(i=o*l-f*a))return 0}else if(0===a&&l<0){if(0===(i=o*l-f*a))return 0}else if(0===a&&0===l){if(f<=0&&o>=0)return 0;if(o<=0&&f>=0)return 0}s=u,a=l,o=f}}return n%2!=0}function fe(A,e,r={}){const t={type:"Feature"};return(0===r.id||r.id)&&(t.id=r.id),r.bbox&&(t.bbox=r.bbox),t.properties=e||{},t.geometry=A,t}var le=function(A,e,r={}){if(!A)throw new Error("point is required");if(!e)throw new Error("polygon is required");const t=function(A){if(!A)throw new Error("coord is required");if(!Array.isArray(A)){if("Feature"===A.type&&null!==A.geometry&&"Point"===A.geometry.type)return[...A.geometry.coordinates];if("Point"===A.type)return[...A.coordinates]}if(Array.isArray(A)&&A.length>=2&&!Array.isArray(A[0])&&!Array.isArray(A[1]))return[...A];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(A),n="Feature"===(i=e).type?i.geometry:i;var i;const o=n.type,a=e.bbox;let f=n.coordinates;if(a&&!1===function(A,e){return e[0]<=A[0]&&e[1]<=A[1]&&e[2]>=A[0]&&e[3]>=A[1]}(t,a))return!1;"Polygon"===o&&(f=[f]);let l=!1;for(var s=0;s<f.length;++s){const A=ae(t,f[s]);if(0===A)return!r.ignoreBoundary;A&&(l=!0)}return l};
1
+ !function(A,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((A="undefined"!=typeof globalThis?globalThis:A||self).geogrid={})}(this,(function(A){"use strict";function e(A,e,t,r=!1){const n=[];for(let r=A;r<=e;r+=t)n.push(r);return r?n.reverse():n}const t=134217729;function r(A,e,t,r,n){let i,o,a,f,l=e[0],u=r[0],s=0,c=0;u>l==u>-l?(i=l,l=e[++s]):(i=u,u=r[++c]);let h=0;if(s<A&&c<t)for(u>l==u>-l?(o=l+i,a=i-(o-l),l=e[++s]):(o=u+i,a=i-(o-u),u=r[++c]),i=o,0!==a&&(n[h++]=a);s<A&&c<t;)u>l==u>-l?(o=i+l,f=o-i,a=i-(o-f)+(l-f),l=e[++s]):(o=i+u,f=o-i,a=i-(o-f)+(u-f),u=r[++c]),i=o,0!==a&&(n[h++]=a);for(;s<A;)o=i+l,f=o-i,a=i-(o-f)+(l-f),l=e[++s],i=o,0!==a&&(n[h++]=a);for(;c<t;)o=i+u,f=o-i,a=i-(o-f)+(u-f),u=r[++c],i=o,0!==a&&(n[h++]=a);return 0===i&&0!==h||(n[h++]=i),h}function n(A){return new Float64Array(A)}const i=n(4),o=n(8),a=n(12),f=n(16),l=n(4);function u(A,e,n,u,s,c){const h=(e-c)*(n-s),g=(A-s)*(u-c),d=h-g,p=Math.abs(h+g);return Math.abs(d)>=33306690738754716e-32*p?d:-function(A,e,n,u,s,c,h){let g,d,p,w,b,v,y,m,B,E,k,_,M,Q,x,D,C,I;const F=A-s,S=n-s,P=e-c,G=u-c;Q=F*G,v=t*F,y=v-(v-F),m=F-y,v=t*G,B=v-(v-G),E=G-B,x=m*E-(Q-y*B-m*B-y*E),D=P*S,v=t*P,y=v-(v-P),m=P-y,v=t*S,B=v-(v-S),E=S-B,C=m*E-(D-y*B-m*B-y*E),k=x-C,b=x-k,i[0]=x-(k+b)+(b-C),_=Q+k,b=_-Q,M=Q-(_-b)+(k-b),k=M-D,b=M-k,i[1]=M-(k+b)+(b-D),I=_+k,b=I-_,i[2]=_-(I-b)+(k-b),i[3]=I;let T=function(A,e){let t=e[0];for(let r=1;r<A;r++)t+=e[r];return t}(4,i),U=22204460492503146e-32*h;if(T>=U||-T>=U)return T;if(b=A-F,g=A-(F+b)+(b-s),b=n-S,p=n-(S+b)+(b-s),b=e-P,d=e-(P+b)+(b-c),b=u-G,w=u-(G+b)+(b-c),0===g&&0===d&&0===p&&0===w)return T;if(U=11093356479670487e-47*h+33306690738754706e-32*Math.abs(T),T+=F*w+G*g-(P*p+S*d),T>=U||-T>=U)return T;Q=g*G,v=t*g,y=v-(v-g),m=g-y,v=t*G,B=v-(v-G),E=G-B,x=m*E-(Q-y*B-m*B-y*E),D=d*S,v=t*d,y=v-(v-d),m=d-y,v=t*S,B=v-(v-S),E=S-B,C=m*E-(D-y*B-m*B-y*E),k=x-C,b=x-k,l[0]=x-(k+b)+(b-C),_=Q+k,b=_-Q,M=Q-(_-b)+(k-b),k=M-D,b=M-k,l[1]=M-(k+b)+(b-D),I=_+k,b=I-_,l[2]=_-(I-b)+(k-b),l[3]=I;const R=r(4,i,4,l,o);Q=F*w,v=t*F,y=v-(v-F),m=F-y,v=t*w,B=v-(v-w),E=w-B,x=m*E-(Q-y*B-m*B-y*E),D=P*p,v=t*P,y=v-(v-P),m=P-y,v=t*p,B=v-(v-p),E=p-B,C=m*E-(D-y*B-m*B-y*E),k=x-C,b=x-k,l[0]=x-(k+b)+(b-C),_=Q+k,b=_-Q,M=Q-(_-b)+(k-b),k=M-D,b=M-k,l[1]=M-(k+b)+(b-D),I=_+k,b=I-_,l[2]=_-(I-b)+(k-b),l[3]=I;const L=r(R,o,4,l,a);Q=g*w,v=t*g,y=v-(v-g),m=g-y,v=t*w,B=v-(v-w),E=w-B,x=m*E-(Q-y*B-m*B-y*E),D=d*p,v=t*d,y=v-(v-d),m=d-y,v=t*p,B=v-(v-p),E=p-B,C=m*E-(D-y*B-m*B-y*E),k=x-C,b=x-k,l[0]=x-(k+b)+(b-C),_=Q+k,b=_-Q,M=Q-(_-b)+(k-b),k=M-D,b=M-k,l[1]=M-(k+b)+(b-D),I=_+k,b=I-_,l[2]=_-(I-b)+(k-b),l[3]=I;const H=r(L,a,4,l,f);return f[H-1]}(A,e,n,u,s,c,p)}const s=Math.pow(2,-52),c=new Uint32Array(512);class h{static from(A,e=v,t=y){const r=A.length,n=new Float64Array(2*r);for(let i=0;i<r;i++){const r=A[i];n[2*i]=e(r),n[2*i+1]=t(r)}return new h(n)}constructor(A){const e=A.length>>1;if(e>0&&"number"!=typeof A[0])throw new Error("Expected coords to contain numbers.");this.coords=A;const t=Math.max(2*e-5,0);this._triangles=new Uint32Array(3*t),this._halfedges=new Int32Array(3*t),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:A,_hullPrev:e,_hullNext:t,_hullTri:r,_hullHash:n}=this,i=A.length>>1;let o=1/0,a=1/0,f=-1/0,l=-1/0;for(let e=0;e<i;e++){const t=A[2*e],r=A[2*e+1];t<o&&(o=t),r<a&&(a=r),t>f&&(f=t),r>l&&(l=r),this._ids[e]=e}const c=(o+f)/2,h=(a+l)/2;let d,b,v;for(let e=0,t=1/0;e<i;e++){const r=g(c,h,A[2*e],A[2*e+1]);r<t&&(d=e,t=r)}const y=A[2*d],m=A[2*d+1];for(let e=0,t=1/0;e<i;e++){if(e===d)continue;const r=g(y,m,A[2*e],A[2*e+1]);r<t&&r>0&&(b=e,t=r)}let B=A[2*b],E=A[2*b+1],k=1/0;for(let e=0;e<i;e++){if(e===d||e===b)continue;const t=p(y,m,B,E,A[2*e],A[2*e+1]);t<k&&(v=e,k=t)}let _=A[2*v],M=A[2*v+1];if(k===1/0){for(let e=0;e<i;e++)this._dists[e]=A[2*e]-A[0]||A[2*e+1]-A[1];w(this._ids,this._dists,0,i-1);const e=new Uint32Array(i);let t=0;for(let A=0,r=-1/0;A<i;A++){const n=this._ids[A],i=this._dists[n];i>r&&(e[t++]=n,r=i)}return this.hull=e.subarray(0,t),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(u(y,m,B,E,_,M)<0){const A=b,e=B,t=E;b=v,B=_,E=M,v=A,_=e,M=t}const Q=function(A,e,t,r,n,i){const o=t-A,a=r-e,f=n-A,l=i-e,u=o*o+a*a,s=f*f+l*l,c=.5/(o*l-a*f);return{x:A+(l*u-a*s)*c,y:e+(o*s-f*u)*c}}(y,m,B,E,_,M);this._cx=Q.x,this._cy=Q.y;for(let e=0;e<i;e++)this._dists[e]=g(A[2*e],A[2*e+1],Q.x,Q.y);w(this._ids,this._dists,0,i-1),this._hullStart=d;let x=3;t[d]=e[v]=b,t[b]=e[d]=v,t[v]=e[b]=d,r[d]=0,r[b]=1,r[v]=2,n.fill(-1),n[this._hashKey(y,m)]=d,n[this._hashKey(B,E)]=b,n[this._hashKey(_,M)]=v,this.trianglesLen=0,this._addTriangle(d,b,v,-1,-1,-1);for(let i,o,a=0;a<this._ids.length;a++){const f=this._ids[a],l=A[2*f],c=A[2*f+1];if(a>0&&Math.abs(l-i)<=s&&Math.abs(c-o)<=s)continue;if(i=l,o=c,f===d||f===b||f===v)continue;let h=0;for(let A=0,e=this._hashKey(l,c);A<this._hashSize&&(h=n[(e+A)%this._hashSize],-1===h||h===t[h]);A++);h=e[h];let g,p=h;for(;g=t[p],u(l,c,A[2*p],A[2*p+1],A[2*g],A[2*g+1])>=0;)if(p=g,p===h){p=-1;break}if(-1===p)continue;let w=this._addTriangle(p,f,t[p],-1,-1,r[p]);r[f]=this._legalize(w+2),r[p]=w,x++;let y=t[p];for(;g=t[y],u(l,c,A[2*y],A[2*y+1],A[2*g],A[2*g+1])<0;)w=this._addTriangle(y,f,g,r[f],-1,r[y]),r[f]=this._legalize(w+2),t[y]=y,x--,y=g;if(p===h)for(;g=e[p],u(l,c,A[2*g],A[2*g+1],A[2*p],A[2*p+1])<0;)w=this._addTriangle(g,f,p,-1,r[p],r[g]),this._legalize(w+2),r[g]=w,t[p]=p,x--,p=g;this._hullStart=e[f]=p,t[p]=e[y]=f,t[f]=y,n[this._hashKey(l,c)]=f,n[this._hashKey(A[2*p],A[2*p+1])]=p}this.hull=new Uint32Array(x);for(let A=0,e=this._hullStart;A<x;A++)this.hull[A]=e,e=t[e];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(A,e){return Math.floor(function(A,e){const t=A/(Math.abs(A)+Math.abs(e));return(e>0?3-t:1+t)/4}(A-this._cx,e-this._cy)*this._hashSize)%this._hashSize}_legalize(A){const{_triangles:e,_halfedges:t,coords:r}=this;let n=0,i=0;for(;;){const o=t[A],a=A-A%3;if(i=a+(A+2)%3,-1===o){if(0===n)break;A=c[--n];continue}const f=o-o%3,l=a+(A+1)%3,u=f+(o+2)%3,s=e[i],h=e[A],g=e[l],p=e[u];if(d(r[2*s],r[2*s+1],r[2*h],r[2*h+1],r[2*g],r[2*g+1],r[2*p],r[2*p+1])){e[A]=p,e[o]=s;const r=t[u];if(-1===r){let e=this._hullStart;do{if(this._hullTri[e]===u){this._hullTri[e]=A;break}e=this._hullPrev[e]}while(e!==this._hullStart)}this._link(A,r),this._link(o,t[i]),this._link(i,u);const a=f+(o+1)%3;n<c.length&&(c[n++]=a)}else{if(0===n)break;A=c[--n]}}return i}_link(A,e){this._halfedges[A]=e,-1!==e&&(this._halfedges[e]=A)}_addTriangle(A,e,t,r,n,i){const o=this.trianglesLen;return this._triangles[o]=A,this._triangles[o+1]=e,this._triangles[o+2]=t,this._link(o,r),this._link(o+1,n),this._link(o+2,i),this.trianglesLen+=3,o}}function g(A,e,t,r){const n=A-t,i=e-r;return n*n+i*i}function d(A,e,t,r,n,i,o,a){const f=A-o,l=e-a,u=t-o,s=r-a,c=n-o,h=i-a,g=u*u+s*s,d=c*c+h*h;return f*(s*d-g*h)-l*(u*d-g*c)+(f*f+l*l)*(u*h-s*c)<0}function p(A,e,t,r,n,i){const o=t-A,a=r-e,f=n-A,l=i-e,u=o*o+a*a,s=f*f+l*l,c=.5/(o*l-a*f),h=(l*u-a*s)*c,g=(o*s-f*u)*c;return h*h+g*g}function w(A,e,t,r){if(r-t<=20)for(let n=t+1;n<=r;n++){const r=A[n],i=e[r];let o=n-1;for(;o>=t&&e[A[o]]>i;)A[o+1]=A[o--];A[o+1]=r}else{let n=t+1,i=r;b(A,t+r>>1,n),e[A[t]]>e[A[r]]&&b(A,t,r),e[A[n]]>e[A[r]]&&b(A,n,r),e[A[t]]>e[A[n]]&&b(A,t,n);const o=A[n],a=e[o];for(;;){do{n++}while(e[A[n]]<a);do{i--}while(e[A[i]]>a);if(i<n)break;b(A,n,i)}A[t+1]=A[i],A[i]=o,r-n+1>=i-t?(w(A,e,n,r),w(A,e,t,i-1)):(w(A,e,t,i-1),w(A,e,n,r))}}function b(A,e,t){const r=A[e];A[e]=A[t],A[t]=r}function v(A){return A[0]}function y(A){return A[1]}const m=1e-6;class B{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(A,e){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(A,e){this._+=`L${this._x1=+A},${this._y1=+e}`}arc(A,e,t){const r=(A=+A)+(t=+t),n=e=+e;if(t<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${n}`:(Math.abs(this._x1-r)>m||Math.abs(this._y1-n)>m)&&(this._+="L"+r+","+n),t&&(this._+=`A${t},${t},0,1,1,${A-t},${e}A${t},${t},0,1,1,${this._x1=r},${this._y1=n}`)}rect(A,e,t,r){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+e}h${+t}v${+r}h${-t}Z`}value(){return this._||null}}class E{constructor(){this._=[]}moveTo(A,e){this._.push([A,e])}closePath(){this._.push(this._[0].slice())}lineTo(A,e){this._.push([A,e])}value(){return this._.length?this._:null}}class k{constructor(A,[e,t,r,n]=[0,0,960,500]){if(!((r=+r)>=(e=+e)&&(n=+n)>=(t=+t)))throw new Error("invalid bounds");this.delaunay=A,this._circumcenters=new Float64Array(2*A.points.length),this.vectors=new Float64Array(2*A.points.length),this.xmax=r,this.xmin=e,this.ymax=n,this.ymin=t,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:A,hull:e,triangles:t},vectors:r}=this;let n,i;const o=this.circumcenters=this._circumcenters.subarray(0,t.length/3*2);for(let r,a,f=0,l=0,u=t.length;f<u;f+=3,l+=2){const u=2*t[f],s=2*t[f+1],c=2*t[f+2],h=A[u],g=A[u+1],d=A[s],p=A[s+1],w=A[c],b=A[c+1],v=d-h,y=p-g,m=w-h,B=b-g,E=2*(v*B-y*m);if(Math.abs(E)<1e-9){if(void 0===n){n=i=0;for(const t of e)n+=A[2*t],i+=A[2*t+1];n/=e.length,i/=e.length}const t=1e9*Math.sign((n-h)*B-(i-g)*m);r=(h+w)/2-t*B,a=(g+b)/2+t*m}else{const A=1/E,e=v*v+y*y,t=m*m+B*B;r=h+(B*e-y*t)*A,a=g+(v*t-m*e)*A}o[l]=r,o[l+1]=a}let a,f,l,u=e[e.length-1],s=4*u,c=A[2*u],h=A[2*u+1];r.fill(0);for(let t=0;t<e.length;++t)u=e[t],a=s,f=c,l=h,s=4*u,c=A[2*u],h=A[2*u+1],r[a+2]=r[s]=l-h,r[a+3]=r[s+1]=c-f}render(A){const e=null==A?A=new B:void 0,{delaunay:{halfedges:t,inedges:r,hull:n},circumcenters:i,vectors:o}=this;if(n.length<=1)return null;for(let e=0,r=t.length;e<r;++e){const r=t[e];if(r<e)continue;const n=2*Math.floor(e/3),o=2*Math.floor(r/3),a=i[n],f=i[n+1],l=i[o],u=i[o+1];this._renderSegment(a,f,l,u,A)}let a,f=n[n.length-1];for(let e=0;e<n.length;++e){a=f,f=n[e];const t=2*Math.floor(r[f]/3),l=i[t],u=i[t+1],s=4*a,c=this._project(l,u,o[s+2],o[s+3]);c&&this._renderSegment(l,u,c[0],c[1],A)}return e&&e.value()}renderBounds(A){const e=null==A?A=new B:void 0;return A.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),e&&e.value()}renderCell(A,e){const t=null==e?e=new B:void 0,r=this._clip(A);if(null===r||!r.length)return;e.moveTo(r[0],r[1]);let n=r.length;for(;r[0]===r[n-2]&&r[1]===r[n-1]&&n>1;)n-=2;for(let A=2;A<n;A+=2)r[A]===r[A-2]&&r[A+1]===r[A-1]||e.lineTo(r[A],r[A+1]);return e.closePath(),t&&t.value()}*cellPolygons(){const{delaunay:{points:A}}=this;for(let e=0,t=A.length/2;e<t;++e){const A=this.cellPolygon(e);A&&(A.index=e,yield A)}}cellPolygon(A){const e=new E;return this.renderCell(A,e),e.value()}_renderSegment(A,e,t,r,n){let i;const o=this._regioncode(A,e),a=this._regioncode(t,r);0===o&&0===a?(n.moveTo(A,e),n.lineTo(t,r)):(i=this._clipSegment(A,e,t,r,o,a))&&(n.moveTo(i[0],i[1]),n.lineTo(i[2],i[3]))}contains(A,e,t){return(e=+e)==e&&(t=+t)==t&&this.delaunay._step(A,e,t)===A}*neighbors(A){const e=this._clip(A);if(e)for(const t of this.delaunay.neighbors(A)){const A=this._clip(t);if(A)A:for(let r=0,n=e.length;r<n;r+=2)for(let i=0,o=A.length;i<o;i+=2)if(e[r]===A[i]&&e[r+1]===A[i+1]&&e[(r+2)%n]===A[(i+o-2)%o]&&e[(r+3)%n]===A[(i+o-1)%o]){yield t;break A}}}_cell(A){const{circumcenters:e,delaunay:{inedges:t,halfedges:r,triangles:n}}=this,i=t[A];if(-1===i)return null;const o=[];let a=i;do{const t=Math.floor(a/3);if(o.push(e[2*t],e[2*t+1]),a=a%3==2?a-2:a+1,n[a]!==A)break;a=r[a]}while(a!==i&&-1!==a);return o}_clip(A){if(0===A&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const e=this._cell(A);if(null===e)return null;const{vectors:t}=this,r=4*A;return this._simplify(t[r]||t[r+1]?this._clipInfinite(A,e,t[r],t[r+1],t[r+2],t[r+3]):this._clipFinite(A,e))}_clipFinite(A,e){const t=e.length;let r,n,i,o,a=null,f=e[t-2],l=e[t-1],u=this._regioncode(f,l),s=0;for(let c=0;c<t;c+=2)if(r=f,n=l,f=e[c],l=e[c+1],i=u,u=this._regioncode(f,l),0===i&&0===u)o=s,s=0,a?a.push(f,l):a=[f,l];else{let e,t,c,h,g;if(0===i){if(null===(e=this._clipSegment(r,n,f,l,i,u)))continue;[t,c,h,g]=e}else{if(null===(e=this._clipSegment(f,l,r,n,u,i)))continue;[h,g,t,c]=e,o=s,s=this._edgecode(t,c),o&&s&&this._edge(A,o,s,a,a.length),a?a.push(t,c):a=[t,c]}o=s,s=this._edgecode(h,g),o&&s&&this._edge(A,o,s,a,a.length),a?a.push(h,g):a=[h,g]}if(a)o=s,s=this._edgecode(a[0],a[1]),o&&s&&this._edge(A,o,s,a,a.length);else if(this.contains(A,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return a}_clipSegment(A,e,t,r,n,i){const o=n<i;for(o&&([A,e,t,r,n,i]=[t,r,A,e,i,n]);;){if(0===n&&0===i)return o?[t,r,A,e]:[A,e,t,r];if(n&i)return null;let a,f,l=n||i;8&l?(a=A+(t-A)*(this.ymax-e)/(r-e),f=this.ymax):4&l?(a=A+(t-A)*(this.ymin-e)/(r-e),f=this.ymin):2&l?(f=e+(r-e)*(this.xmax-A)/(t-A),a=this.xmax):(f=e+(r-e)*(this.xmin-A)/(t-A),a=this.xmin),n?(A=a,e=f,n=this._regioncode(A,e)):(t=a,r=f,i=this._regioncode(t,r))}}_clipInfinite(A,e,t,r,n,i){let o,a=Array.from(e);if((o=this._project(a[0],a[1],t,r))&&a.unshift(o[0],o[1]),(o=this._project(a[a.length-2],a[a.length-1],n,i))&&a.push(o[0],o[1]),a=this._clipFinite(A,a))for(let e,t=0,r=a.length,n=this._edgecode(a[r-2],a[r-1]);t<r;t+=2)e=n,n=this._edgecode(a[t],a[t+1]),e&&n&&(t=this._edge(A,e,n,a,t),r=a.length);else this.contains(A,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(a=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return a}_edge(A,e,t,r,n){for(;e!==t;){let t,i;switch(e){case 5:e=4;continue;case 4:e=6,t=this.xmax,i=this.ymin;break;case 6:e=2;continue;case 2:e=10,t=this.xmax,i=this.ymax;break;case 10:e=8;continue;case 8:e=9,t=this.xmin,i=this.ymax;break;case 9:e=1;continue;case 1:e=5,t=this.xmin,i=this.ymin}r[n]===t&&r[n+1]===i||!this.contains(A,t,i)||(r.splice(n,0,t,i),n+=2)}return n}_project(A,e,t,r){let n,i,o,a=1/0;if(r<0){if(e<=this.ymin)return null;(n=(this.ymin-e)/r)<a&&(o=this.ymin,i=A+(a=n)*t)}else if(r>0){if(e>=this.ymax)return null;(n=(this.ymax-e)/r)<a&&(o=this.ymax,i=A+(a=n)*t)}if(t>0){if(A>=this.xmax)return null;(n=(this.xmax-A)/t)<a&&(i=this.xmax,o=e+(a=n)*r)}else if(t<0){if(A<=this.xmin)return null;(n=(this.xmin-A)/t)<a&&(i=this.xmin,o=e+(a=n)*r)}return[i,o]}_edgecode(A,e){return(A===this.xmin?1:A===this.xmax?2:0)|(e===this.ymin?4:e===this.ymax?8:0)}_regioncode(A,e){return(A<this.xmin?1:A>this.xmax?2:0)|(e<this.ymin?4:e>this.ymax?8:0)}_simplify(A){if(A&&A.length>4){for(let e=0;e<A.length;e+=2){const t=(e+2)%A.length,r=(e+4)%A.length;(A[e]===A[t]&&A[t]===A[r]||A[e+1]===A[t+1]&&A[t+1]===A[r+1])&&(A.splice(t,2),e-=2)}A.length||(A=null)}return A}}const _=2*Math.PI,M=Math.pow;function Q(A){return A[0]}function x(A){return A[1]}function D(A,e,t){return[A+Math.sin(A+e)*t,e+Math.cos(A-e)*t]}class C{static from(A,e=Q,t=x,r){return new C("length"in A?function(A,e,t,r){const n=A.length,i=new Float64Array(2*n);for(let o=0;o<n;++o){const n=A[o];i[2*o]=e.call(r,n,o,A),i[2*o+1]=t.call(r,n,o,A)}return i}(A,e,t,r):Float64Array.from(function*(A,e,t,r){let n=0;for(const i of A)yield e.call(r,i,n,A),yield t.call(r,i,n,A),++n}(A,e,t,r)))}constructor(A){this._delaunator=new h(A),this.inedges=new Int32Array(A.length/2),this._hullIndex=new Int32Array(A.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const A=this._delaunator,e=this.points;if(A.hull&&A.hull.length>2&&function(A){const{triangles:e,coords:t}=A;for(let A=0;A<e.length;A+=3){const r=2*e[A],n=2*e[A+1],i=2*e[A+2];if((t[i]-t[r])*(t[n+1]-t[r+1])-(t[n]-t[r])*(t[i+1]-t[r+1])>1e-10)return!1}return!0}(A)){this.collinear=Int32Array.from({length:e.length/2},((A,e)=>e)).sort(((A,t)=>e[2*A]-e[2*t]||e[2*A+1]-e[2*t+1]));const A=this.collinear[0],t=this.collinear[this.collinear.length-1],r=[e[2*A],e[2*A+1],e[2*t],e[2*t+1]],n=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let A=0,t=e.length/2;A<t;++A){const t=D(e[2*A],e[2*A+1],n);e[2*A]=t[0],e[2*A+1]=t[1]}this._delaunator=new h(e)}else delete this.collinear;const t=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,n=this.triangles=this._delaunator.triangles,i=this.inedges.fill(-1),o=this._hullIndex.fill(-1);for(let A=0,e=t.length;A<e;++A){const e=n[A%3==2?A-2:A+1];-1!==t[A]&&-1!==i[e]||(i[e]=A)}for(let A=0,e=r.length;A<e;++A)o[r[A]]=A;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],i[r[0]]=1,2===r.length&&(i[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(A){return new k(this,A)}*neighbors(A){const{inedges:e,hull:t,_hullIndex:r,halfedges:n,triangles:i,collinear:o}=this;if(o){const e=o.indexOf(A);return e>0&&(yield o[e-1]),void(e<o.length-1&&(yield o[e+1]))}const a=e[A];if(-1===a)return;let f=a,l=-1;do{if(yield l=i[f],f=f%3==2?f-2:f+1,i[f]!==A)return;if(f=n[f],-1===f){const e=t[(r[A]+1)%t.length];return void(e!==l&&(yield e))}}while(f!==a)}find(A,e,t=0){if((A=+A)!=A||(e=+e)!=e)return-1;const r=t;let n;for(;(n=this._step(t,A,e))>=0&&n!==t&&n!==r;)t=n;return n}_step(A,e,t){const{inedges:r,hull:n,_hullIndex:i,halfedges:o,triangles:a,points:f}=this;if(-1===r[A]||!f.length)return(A+1)%(f.length>>1);let l=A,u=M(e-f[2*A],2)+M(t-f[2*A+1],2);const s=r[A];let c=s;do{let r=a[c];const s=M(e-f[2*r],2)+M(t-f[2*r+1],2);if(s<u&&(u=s,l=r),c=c%3==2?c-2:c+1,a[c]!==A)break;if(c=o[c],-1===c){if(c=n[(i[A]+1)%n.length],c!==r&&M(e-f[2*c],2)+M(t-f[2*c+1],2)<u)return c;break}}while(c!==s);return l}render(A){const e=null==A?A=new B:void 0,{points:t,halfedges:r,triangles:n}=this;for(let e=0,i=r.length;e<i;++e){const i=r[e];if(i<e)continue;const o=2*n[e],a=2*n[i];A.moveTo(t[o],t[o+1]),A.lineTo(t[a],t[a+1])}return this.renderHull(A),e&&e.value()}renderPoints(A,e){void 0!==e||A&&"function"==typeof A.moveTo||(e=A,A=null),e=null==e?2:+e;const t=null==A?A=new B:void 0,{points:r}=this;for(let t=0,n=r.length;t<n;t+=2){const n=r[t],i=r[t+1];A.moveTo(n+e,i),A.arc(n,i,e,0,_)}return t&&t.value()}renderHull(A){const e=null==A?A=new B:void 0,{hull:t,points:r}=this,n=2*t[0],i=t.length;A.moveTo(r[n],r[n+1]);for(let e=1;e<i;++e){const n=2*t[e];A.lineTo(r[n],r[n+1])}return A.closePath(),e&&e.value()}hullPolygon(){const A=new E;return this.renderHull(A),A.value()}renderTriangle(A,e){const t=null==e?e=new B:void 0,{points:r,triangles:n}=this,i=2*n[A*=3],o=2*n[A+1],a=2*n[A+2];return e.moveTo(r[i],r[i+1]),e.lineTo(r[o],r[o+1]),e.lineTo(r[a],r[a+1]),e.closePath(),t&&t.value()}*trianglePolygons(){const{triangles:A}=this;for(let e=0,t=A.length/3;e<t;++e)yield this.trianglePolygon(e)}trianglePolygon(A){const e=new E;return this.renderTriangle(A,e),e.value()}}const I=Object.assign({},{Delaunay:C});var F=function(A){var e,t=void 0!==(A=A||{})?A:{},r={};for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);var n,i,o,a,f;n="object"==typeof window,i="function"==typeof importScripts,a="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=a&&!n&&!i,f=!n&&!o&&!i;var l,u,s,c,h,g="";o?(g=__dirname+"/",l=function(A,e){var t;return(t=rA(A))||(c||(c=require("fs")),h||(h=require("path")),A=h.normalize(A),t=c.readFileSync(A)),e?t:t.toString()},s=function(A){var e=l(A,!0);return e.buffer||(e=new Uint8Array(e)),v(e.buffer),e},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),t.inspect=function(){return"[Emscripten Module object]"}):f?("undefined"!=typeof read&&(l=function(A){var e=rA(A);return e?eA(e):read(A)}),s=function(A){var e;return(e=rA(A))?e:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(v("object"==typeof(e=read(A,"binary"))),e)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(n||i)&&(i?g=self.location.href:"undefined"!=typeof document&&document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",l=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var t=rA(A);if(t)return eA(t);throw e}},i&&(s=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}catch(e){var t=rA(A);if(t)return t;throw e}}),u=function(A,e,t){var r=new XMLHttpRequest;r.open("GET",A,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)e(r.response);else{var n=rA(A);n?e(n.buffer):t()}},r.onerror=t,r.send(null)});var d=t.print||console.log.bind(console),p=t.printErr||console.warn.bind(console);for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);r=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram;var w=0;var b=!1;function v(A,e){A||wA("Assertion failed: "+e)}function y(A){var e=t["_"+A];return v(e,"Cannot call unknown function "+A+", make sure it is exported"),e}function m(A,e,t,r,n){var i={string:function(A){var e=0;if(null!=A&&0!==A){var t=1+(A.length<<2);(function(A,e,t){(function(A,e,t,r){if(!(r>0))return 0;for(var n=t,i=t+r-1,o=0;o<A.length;++o){var a=A.charCodeAt(o);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&A.charCodeAt(++o);if(a<=127){if(t>=i)break;e[t++]=a}else if(a<=2047){if(t+1>=i)break;e[t++]=192|a>>6,e[t++]=128|63&a}else if(a<=65535){if(t+2>=i)break;e[t++]=224|a>>12,e[t++]=128|a>>6&63,e[t++]=128|63&a}else{if(t+3>=i)break;e[t++]=240|a>>18,e[t++]=128|a>>12&63,e[t++]=128|a>>6&63,e[t++]=128|63&a}}e[t]=0})(A,k,e,t)})(A,e=fA(t),t)}return e},array:function(A){var e=fA(A.length);return function(A,e){E.set(A,e)}(A,e),e}};var o=y(A),a=[],f=0;if(r)for(var l=0;l<r.length;l++){var u=i[t[l]];u?(0===f&&(f=uA()),a[l]=u(r[l])):a[l]=r[l]}var s=o.apply(null,a);return s=function(A){return"string"===e?C(A):"boolean"===e?Boolean(A):A}(s),0!==f&&lA(f),s}var B,E,k,_,M,Q,x,D="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function C(A,e){return A?function(A,e,t){for(var r=e+t,n=e;A[n]&&!(n>=r);)++n;if(n-e>16&&A.subarray&&D)return D.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var a=63&A[e++];if(192!=(224&o)){var f=63&A[e++];if((o=224==(240&o)?(15&o)<<12|a<<6|f:(7&o)<<18|a<<12|f<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var l=o-65536;i+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|a)}else i+=String.fromCharCode(o)}return i}(k,A,e):""}function I(A,e){return A%e>0&&(A+=e-A%e),A}function F(A){B=A,t.HEAP8=E=new Int8Array(A),t.HEAP16=_=new Int16Array(A),t.HEAP32=M=new Int32Array(A),t.HEAPU8=k=new Uint8Array(A),t.HEAPU16=new Uint16Array(A),t.HEAPU32=new Uint32Array(A),t.HEAPF32=Q=new Float32Array(A),t.HEAPF64=x=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var S=t.TOTAL_MEMORY||33554432;function P(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?t.dynCall_v(r):t.dynCall_vi(r,e.arg):r(void 0===e.arg?null:e.arg)}else e()}}S=(B=t.buffer?t.buffer:new ArrayBuffer(S)).byteLength,F(B),M[6032]=5267040;var G=[],T=[],U=[],R=[];var L=Math.abs,H=Math.ceil,Y=Math.floor,z=Math.min,O=0,N=null;t.preloadedImages={},t.preloadedAudios={};var V,j,Z=null,W="data:application/octet-stream;base64,";function X(A){return String.prototype.startsWith?A.startsWith(W):0===A.indexOf(W)}Z="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAA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AAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAA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Zhu25b633D8c1YgmzowSQNM25BRKWARArGS08/lNxD+LFssHwmMRQLC5aNcxBgJABL9HT0WRF0CjCmJmOGEOQHsuaVzMP/s/TWJCaGGwBUCeu1PAPLzjP9nqN9DZOBNAKE4JcydbCkCGtbd1qjPzP8dgm9U8jhVAtPeKTkVwDkCeCLss5l37P401XMPLmBdAFd29VMVQDUBg0yA55h75Pz6odcYLCRdApBM4rBrkAkDyAVWgQxbRP4XDMnK20hFAymLlF7EmzD8GUgo9XBHlP3lbK7T9COc/k+OhPthhy7+YGEpnrOvCPzBFhLs15u4/epbqB6H4uz9IuuLF5svev6lzLKY31es/CaQ0envF5z8ZY0xlUADXv7zaz7HYEuI/CfbK1sn16T8uAQfWwxLWPzKn/YuFN94/5KdbC1AFu793fyCSnlfvPzK2y4doAMY/NRg5t1/X6b/shq4QJaHDP5yNIAKPOeI/vpn7BSE30r/X4YQrO6nrv78Ziv/Thto/DqJ1Y6+y5z9l51NaxFrlv8QlA65HOLS/86dxiEc96z+Hj0+LFjneP6LzBZ8LTc2/DaJ1Y6+y579l51NaxFrlP8QlA65HOLQ/8qdxiEc967+Jj0+LFjnev6LzBZ8LTc0/1qdbC1AFuz93fyCSnlfvvzK2y4doAMa/NRg5t1/X6T/vhq4QJaHDv5yNIAKPOeK/wJn7BSE30j/W4YQrO6nrP78Ziv/Thtq/CaQ0envF578XY0xlUADXP7zaz7HYEuK/CvbK1sn16b8rAQfWwxLWvzKn/YuFN96/zWLlF7EmzL8GUgo9XBHlv3lbK7T9COe/kOOhPthhyz+cGEpnrOvCvzBFhLs15u6/c5bqB6H4u79IuuLF5sveP6lzLKY31eu/AQAAAP////8HAAAA/////zEAAAD/////VwEAAP////9hCQAA/////6dBAAD/////kcsBAP/////3kAwA/////8H2VwAAAAAAAAAAAAAAAAACAAAA/////w4AAAD/////YgAAAP////+uAgAA/////8ISAAD/////ToMAAP////8ilwMA/////+4hGQD/////gu2vAAAAAAAAAAAAAAAAAAAAAAACAAAA//////////8BAAAAAwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////AgAAAP//////////AQAAAAAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD/////////////////////AQAAAP///////////////wIAAAD///////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP///////////////////////////////wIAAAD///////////////8BAAAA/////////////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAABAAAA//////////8CAAAA//////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAAAQAAAP//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAAAAAAAAIAAAADAAAAEwAAAAAAAAACAAAAAgAAAAMAAAAPAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACAAAAAAAAAAIAAAABAAAAEwAAAAIAAAACAAAAAAAAAAUAAAAKAAAAAAAAAAIAAAACAAAAAwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAIAAAAAAAAAAgAAAAEAAAAPAAAAAgAAAAIAAAAAAAAABQAAAAsAAAAAAAAAAgAAAAIAAAADAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAgAAAAAAAAACAAAAAQAAABAAAAACAAAAAgAAAAAAAAAFAAAADAAAAAAAAAACAAAAAgAAAAMAAAASAAAAAAAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAIAAAABAAAAEQAAAAIAAAACAAAAAAAAAAUAAAANAAAAAAAAAAIAAAACAAAAAwAAABMAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAIAAAAAAAAAAgAAAAEAAAASAAAAAgAAAAIAAAAAAAAABQAAAA4AAAAAAAAAAgAAAAIAAAADAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAOgehWlKfUEEz1zLi+JsiQa2og3wcMfVAWCbHorc0yEDi+Yn/Y6mbQJ11/mfsnG9At6bnG4UQQkBvMCQWKqUUQJVmwwswmOc/3hVgVBL3uj//qqOEOdGOPw/WDN4gnGE/H3ANkCUgND+AA8btKgAHPwTXBqJVSdo+XfRQAqsKrj4fc+zLYbSPQklEmCZHv2FCUP+uDso1NEKYtPhwphUHQptxnyFXYdpB7CddZAMmrkGAt1AxSTqBQUibBVdTsFNBSuX3MV+AJkFocv82SLf5QAqmgj7AY81A23VDSEnLoEDGEJVSeDFzQDYrqvBk70VA8U157pcRGUBWfEF+ZKbsP7KBdLHZTpFAqKYk69AqekDbeGY41MdjQD8AZzHK501A1vcrrjubNkD5LnquvBYhQCbiRRD71QlAqt72EbOH8z8Eu+jL1YbdP4uaox/xUcY/abedg1XfsD+BsUdzJ4KZP5wE9YFySIM/rW1kAKMpbT+rZFthVRhWPy4PKlXIs0A/qMZLlwDnMEHByqEF0I0ZQQYSFD8lUQNBPpY+dFs07UAH8BZImBPWQN9RY0I0sMBA2T7kLfc6qUByFYvfhBKTQMq+0Mis1XxA0XQbeQXMZUBJJ5aEGXpQQP7/SY0a6ThAaMD92b/UIkAs8s8yqXoMQNIegOvCk/U/aOi7NZJP4D8AAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA/////wAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAP////8AAAAABQAAAAAAAAAAAAAAAAAAAAAAAAD/////BQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAEAAQAAAQEAAAAAAAEAAAABAAAAAQABAAAAAAAAAAAAAAAAAAAAAAcAAAAHAAAAAQAAAAIAAAAEAAAAAwAAAAAAAAAAAAAABwAAAAMAAAABAAAAAgAAAAUAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAGAAAAAgAAAAMAAAAFAAAABAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAwAAAAEAAAAFAAAABAAAAAAAAAAAAAAABwAAAAUAAAADAAAABAAAAAEAAAAAAAAAAgAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAGFsZ29zLmMAaDNOZWlnaGJvclJvdGF0aW9ucwBjb29yZGlqay5jAF91cEFwN0NoZWNrZWQAX3VwQXA3ckNoZWNrZWQAZGlyZWN0ZWRFZGdlLmMAZGlyZWN0ZWRFZGdlVG9Cb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0NlbGxCb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbY2VudGVySUpLLmZhY2VdW2ZhY2UyXSA9PSBLSQBfZmFjZUlqa1RvQ2VsbEJvdW5kYXJ5AGgzSW5kZXguYwBjb21wYWN0Q2VsbHMAbGF0TG5nVG9DZWxsAGNlbGxUb0NoaWxkUG9zAHZhbGlkYXRlQ2hpbGRQb3MAbGF0TG5nLmMAY2VsbEFyZWFSYWRzMgBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGNlbGxUb0xvY2FsSWprAGJhc2VDZWxsICE9IG9yaWdpbkJhc2VDZWxsACEob3JpZ2luT25QZW50ICYmIGluZGV4T25QZW50KQBiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvQ2VsbAAhX2lzQmFzZUNlbGxQZW50YWdvbihiYXNlQ2VsbCkAYmFzZUNlbGxSb3RhdGlvbnMgPj0gMABncmlkUGF0aENlbGxzADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";function K(A){return A}function J(A){return A.replace(/\b__Z[\w\d_]+/g,(function(A){return A===A?A:A+" ["+A+"]"}))}function q(){var A=new Error;if(!A.stack){try{throw new Error(0)}catch(e){A=e}if(!A.stack)return"(no stack trace available)"}return A.stack.toString()}function $(){return E.length}function AA(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(E),iA(e),F(e),1}catch(A){}}function eA(A){for(var e=[],t=0;t<A.length;t++){var r=A[t];r>255&&(r&=255),e.push(String.fromCharCode(r))}return e.join("")}var tA="function"==typeof atob?atob:function(A){var e,t,r,n,i,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="",l=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=a.indexOf(A.charAt(l++))<<2|(n=a.indexOf(A.charAt(l++)))>>4,t=(15&n)<<4|(i=a.indexOf(A.charAt(l++)))>>2,r=(3&i)<<6|(o=a.indexOf(A.charAt(l++))),f+=String.fromCharCode(e),64!==i&&(f+=String.fromCharCode(t)),64!==o&&(f+=String.fromCharCode(r))}while(l<A.length);return f};function rA(A){if(X(A))return function(A){if("boolean"==typeof o&&o){var e;try{e=Buffer.from(A,"base64")}catch(t){e=new Buffer(A,"base64")}return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var t=tA(A),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(W.length))}var nA=function(A,e,t){var r=new A.Int8Array(t),n=new A.Int32Array(t);new A.Uint8Array(t),new A.Float32Array(t);var i=new A.Float64Array(t),o=0|e.o,a=0|e.p,f=A.Math.floor,l=A.Math.abs,u=A.Math.sqrt,s=A.Math.pow,c=A.Math.cos,h=A.Math.sin,g=A.Math.tan,d=A.Math.acos,p=A.Math.asin,w=A.Math.atan,b=A.Math.atan2,v=A.Math.ceil,y=A.Math.imul,m=A.Math.min,B=A.Math.max,E=A.Math.clz32,k=e.b,_=e.c,M=e.d,Q=e.e,x=e.f,D=e.g,C=e.h,I=e.i,F=24160;function S(A,e,t,r){return 0|P(A|=0,e|=0,t|=0,r|=0,0)}function P(A,e,t,r,i){var o,a=0,f=0,l=0,u=0;if(o=F,F=F+16|0,f=o,!(0|G(A|=0,e|=0,t|=0,r|=0,i|=0)))return F=o,0|(r=0);do{if((0|t)>=0){if((0|t)>13780509){if(0|(a=0|ee(15,f)))break;f=0|n[(l=f)>>2],l=0|n[l+4>>2]}else u=0|Ue(0|t,0|(a=((0|t)<0)<<31>>31),3,0),l=0|_(),a=0|Fe(0|t,0|a,1,0),a=0|Fe(0|(a=0|Ue(0|u,0|l,0|a,0|_())),0|_(),1,0),l=0|_(),n[f>>2]=a,n[f+4>>2]=l,f=a;if(Ze(0|r,0,f<<3),0|i){Ze(0|i,0,f<<2),a=0|T(A,e,t,r,i,f,l,0);break}(a=0|Ie(f,4))?(u=0|T(A,e,t,r,a,f,l,0),Ce(a),a=u):a=13}else a=2}while(0);return F=o,0|(u=a)}function G(A,e,t,r,i){A|=0,e|=0,t|=0,r|=0,i|=0;var o,a,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0;if(a=F,F=F+16|0,p=a+8|0,n[(d=o=a)>>2]=A,n[d+4>>2]=e,(0|t)<0)return F=a,0|(p=2);if(n[(f=r)>>2]=A,n[f+4>>2]=e,(f=!!(0|i))&&(n[i>>2]=0),0|UA(A,e))return F=a,0|(p=9);n[p>>2]=0;A:do{if((0|t)>=1)if(f)for(h=1,c=0,g=0,d=1,f=A;;){if(!(c|g)){if(0|(f=0|U(f,e,4,p,o)))break A;if(0|UA(f=0|n[(e=o)>>2],e=0|n[e+4>>2])){f=9;break A}}if(0|(f=0|U(f,e,0|n[22384+(g<<2)>>2],p,o)))break A;if(f=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=f,n[A+4>>2]=e,n[i+(h<<2)>>2]=d,l=(0|(A=c+1|0))==(0|d),s=6==(0|(u=g+1|0)),0|UA(f,e)){f=9;break A}if((0|(d=d+(s&l&1)|0))>(0|t)){f=0;break}h=h+1|0,c=l?0:A,g=l?s?0:u:g}else for(h=1,c=0,g=0,d=1,f=A;;){if(!(c|g)){if(0|(f=0|U(f,e,4,p,o)))break A;if(0|UA(f=0|n[(e=o)>>2],e=0|n[e+4>>2])){f=9;break A}}if(0|(f=0|U(f,e,0|n[22384+(g<<2)>>2],p,o)))break A;if(f=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=f,n[A+4>>2]=e,l=(0|(A=c+1|0))==(0|d),s=6==(0|(u=g+1|0)),0|UA(f,e)){f=9;break A}if((0|(d=d+(s&l&1)|0))>(0|t)){f=0;break}h=h+1|0,c=l?0:A,g=l?s?0:u:g}else f=0}while(0);return F=a,0|(p=f)}function T(A,e,t,r,i,o,a,f){t|=0,r|=0,i|=0,f|=0;var l,u,s,c=0,h=0,g=0,d=0,p=0,w=0,b=0;if(s=F,F=F+16|0,l=s+8|0,u=s,c=0|Le(0|(A|=0),0|(e|=0),0|(o|=0),0|(a|=0)),g=0|_(),!(!(0|(b=0|n[(w=d=r+(c<<3)|0)>>2]))&!(0|(w=0|n[w+4>>2]))|(h=(0|b)==(0|A)&(0|w)==(0|e))))do{c=0|Re(0|(c=0|Fe(0|c,0|g,1,0)),0|_(),0|o,0|a),g=0|_(),h=(0|(w=0|n[(b=d=r+(c<<3)|0)>>2]))==(0|A)&(0|(b=0|n[b+4>>2]))==(0|e)}while(!(!(0|w)&!(0|b)|h));if(c=i+(c<<2)|0,h&&(0|n[c>>2])<=(0|f))return F=s,0|(b=0);if(n[(b=d)>>2]=A,n[b+4>>2]=e,n[c>>2]=f,(0|f)>=(0|t))return F=s,0|(b=0);switch(h=f+1|0,n[l>>2]=0,0|(c=0|U(A,e,2,l,u))){case 9:p=9;break;case 0:(c=0|T(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h))||(p=9)}A:do{if(9==(0|p)){switch(n[l>>2]=0,0|(c=0|U(A,e,3,l,u))){case 9:break;case 0:if(0|(c=0|T(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|U(A,e,1,l,u))){case 9:break;case 0:if(0|(c=0|T(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|U(A,e,5,l,u))){case 9:break;case 0:if(0|(c=0|T(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|U(A,e,4,l,u))){case 9:break;case 0:if(0|(c=0|T(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|U(A,e,6,l,u))){case 9:break;case 0:if(0|(c=0|T(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}return F=s,0|(b=0)}}while(0);return F=s,0|(b=c)}function U(A,e,t,r,i){A|=0,e|=0,i|=0;var o,a,f=0,l=0,u=0,s=0,c=0,h=0,g=0;if((t|=0)>>>0>6)return 0|(i=1);if(c=(0|n[(r|=0)>>2])%6|0,n[r>>2]=c,(0|c)>0){f=0;do{t=0|gA(t),f=f+1|0}while((0|f)<(0|n[r>>2]))}if(c=0|Ye(0|A,0|e,45),_(),(a=127&c)>>>0>121)return 0|(i=5);o=0|RA(A,e),f=0|Ye(0|A,0|e,52),_(),f&=15;A:do{if(f){for(;;){if(u=0|Ye(0|A,0|e,0|(l=3*(15-f|0)|0)),_(),7==(0|(u&=7))){e=5;break}if(g=!(0|OA(f)),f=f+-1|0,h=0|ze(7,0,0|l),e&=~_(),A=0|ze(0|n[(g?432:16)+(28*u|0)+(t<<2)>>2],0,0|l)|A&~h,e|=l=0|_(),!(t=0|n[(g?640:224)+(28*u|0)+(t<<2)>>2])){t=0;break A}if(!f){s=8;break A}}return 0|e}s=8}while(0);8==(0|s)&&(A|=0|ze(0|(g=0|n[848+(28*a|0)+(t<<2)>>2]),0,45),e=_()|-1040385&e,t=0|n[4272+(28*a|0)+(t<<2)>>2],127&~g||(g=0|ze(0|n[848+(28*a|0)+20>>2],0,45),e=_()|-1040385&e,t=0|n[4272+(28*a|0)+20>>2],A=0|HA(g|A,e),e=0|_(),n[r>>2]=1+(0|n[r>>2]))),u=0|Ye(0|A,0|e,45),_(),u&=127;A:do{if(0|H(u)){e:do{if(1==(0|RA(A,e))){if((0|a)!=(0|u)){if(0|N(u,0|n[7696+(28*a|0)>>2])){A=0|zA(A,e),l=1,e=0|_();break}M(23313,22416,436,22424)}switch(0|o){case 3:A=0|HA(A,e),e=0|_(),n[r>>2]=1+(0|n[r>>2]),l=0;break e;case 5:A=0|zA(A,e),e=0|_(),n[r>>2]=5+(0|n[r>>2]),l=0;break e;case 0:return 0|(g=9);default:return 0|(g=1)}}else l=0}while(0);if((0|t)>0){f=0;do{A=0|LA(A,e),e=0|_(),f=f+1|0}while((0|f)!=(0|t))}if((0|a)!=(0|u)){if(!(0|Y(u))){if(!!(0|l)|5!=(0|RA(A,e)))break;n[r>>2]=1+(0|n[r>>2]);break}switch(127&c){case 8:case 118:break A}3!=(0|RA(A,e))&&(n[r>>2]=1+(0|n[r>>2]))}}else if((0|t)>0){f=0;do{A=0|HA(A,e),e=0|_(),f=f+1|0}while((0|f)!=(0|t))}}while(0);return n[r>>2]=((0|n[r>>2])+t|0)%6|0,n[(g=i)>>2]=A,n[g+4>>2]=e,0|(g=0)}function R(A,e,t,r){t|=0,r|=0;var i,o,a,f=0,l=0;for(a=F,F=F+16|0,i=a,o=a+8|0,f=(f=!(0|UA(A|=0,e|=0)))?1:2;;){if(n[o>>2]=0,!(0|U(A,e,f,o,i))&((0|n[(l=i)>>2])==(0|t)?(0|n[l+4>>2])==(0|r):0)){A=4;break}if((f=f+1|0)>>>0>=7){f=7,A=4;break}}return 4==(0|A)?(F=a,0|f):0}function L(A,e,t,r,o,a,f){e|=0,t|=0,r|=0,o|=0,a|=0,f|=0;var l,u,s,c,h,g,d,p,w,b,v=0,y=0,m=0,B=0,E=0,k=0,M=0,Q=0,x=0,D=0,C=0,I=0,S=0,P=0,G=0,T=0,U=0,R=0,L=0;if(b=F,F=F+64|0,d=b+48|0,p=b+32|0,w=b+24|0,l=b+8|0,u=b,(0|(y=0|n[(A|=0)>>2]))<=0)return F=b,0|(G=0);for(s=A+4|0,c=d+8|0,h=p+8|0,g=l+8|0,v=0,S=0;;){I=(m=0|n[s>>2])+(S<<4)|0,n[d>>2]=n[I>>2],n[d+4>>2]=n[I+4>>2],n[d+8>>2]=n[I+8>>2],n[d+12>>2]=n[I+12>>2],(0|S)==(y+-1|0)?(n[p>>2]=n[m>>2],n[p+4>>2]=n[m+4>>2],n[p+8>>2]=n[m+8>>2],n[p+12>>2]=n[m+12>>2]):(I=m+(S+1<<4)|0,n[p>>2]=n[I>>2],n[p+4>>2]=n[I+4>>2],n[p+8>>2]=n[I+8>>2],n[p+12>>2]=n[I+12>>2]),y=0|K(d,p,r,w);A:do{if(y)m=0,v=y;else if(y=0|n[(m=w)>>2],(0|(m=0|n[m+4>>2]))>0|!(0|m)&y>>>0>0){C=0,I=0;e:for(;;){if(L=+i[d>>3],R=+((D=0|Se(0|y,0|m,0|C,0|I))>>>0)+4294967296*+(0|_()),T=+(y>>>0)+4294967296*+(0|m),U=+(C>>>0)+4294967296*+(0|I),i[l>>3]=L*R/T+ +i[p>>3]*U/T,i[g>>3]=+i[c>>3]*R/T+ +i[h>>3]*U/T,0|(y=0|NA(l,r,u))){v=y;break}k=0|Le(0|(x=0|n[(D=u)>>2]),0|(D=0|n[D+4>>2]),0|e,0|t),B=0|_(),m=0|n[(E=y=f+(k<<3)|0)>>2],E=0|n[E+4>>2];t:do{if(!(0|m)&!(0|E))P=y,G=16;else for(M=0,Q=0;;){if((0|M)>(0|t)|(0|M)==(0|t)&Q>>>0>e>>>0){v=1;break e}if((0|m)==(0|x)&(0|E)==(0|D))break t;if(k=0|Re(0|(y=0|Fe(0|k,0|B,1,0)),0|_(),0|e,0|t),B=0|_(),Q=0|Fe(0|Q,0|M,1,0),M=0|_(),!(0|(m=0|n[(E=y=f+(k<<3)|0)>>2]))&!(0|(E=0|n[E+4>>2]))){P=y,G=16;break}}}while(0);if(16!=(0|G)||(G=0,!(0|x)&!(0|D))||(n[(Q=P)>>2]=x,n[Q+4>>2]=D,Q=a+(n[o>>2]<<3)|0,n[Q>>2]=x,n[Q+4>>2]=D,Q=0|Fe(0|n[(Q=o)>>2],0|n[Q+4>>2],1,0),x=0|_(),n[(D=o)>>2]=Q,n[D+4>>2]=x),C=0|Fe(0|C,0|I,1,0),I=0|_(),y=0|n[(m=w)>>2],!((0|(m=0|n[m+4>>2]))>(0|I)|(0|m)==(0|I)&y>>>0>C>>>0)){m=1;break A}}m=0}else m=1}while(0);if(S=S+1|0,!m){G=21;break}if((0|S)>=(0|(y=0|n[A>>2]))){v=0,G=21;break}}return 21==(0|G)?(F=b,0|v):0}function H(A){return(A|=0)>>>0>121?0|(A=0):0|(A=0|n[7696+(28*A|0)+16>>2])}function Y(A){return 4==(0|(A|=0))|117==(0|A)}function z(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function O(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function N(A,e){return e|=0,(0|n[7696+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|n[7696+(28*A|0)+24>>2])==(0|e))}function V(A,e){return 0|n[848+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function j(A,e){return e|=0,(0|n[848+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|n[848+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[848+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[848+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[848+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[848+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[848+(28*A|0)+24>>2])==(0|e)?6:7)}function Z(A){return+i[(A|=0)+16>>3]<+i[A+24>>3]|0}function W(A,e){A|=0;var t,r,n=0;return(n=+i[(e|=0)>>3])>=+i[A+8>>3]&&n<=+i[A>>3]?(t=+i[A+16>>3],n=+i[A+24>>3],e=(r=+i[e+8>>3])>=n,A=r<=t&1,t<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function X(A,e,t){A|=0,e|=0,t|=0;var r,a,u,s,c,h,g,d=0,p=0,w=0,b=0,y=0,B=0,E=0;h=F,F=F+288|0,c=h+264|0,b=h+96|0,p=(d=w=h)+96|0;do{n[d>>2]=0,d=d+4|0}while((0|d)<(0|p));return 0|(e=0|XA(e,w))?(F=h,0|(B=e)):(ZA(w=0|n[(p=w)>>2],p=0|n[p+4>>2],c),WA(w,p,b),s=+Ae(c,b+8|0),i[c>>3]=+i[A>>3],i[(p=c+8|0)>>3]=+i[A+16>>3],i[b>>3]=+i[A+8>>3],i[(w=b+8|0)>>3]=+i[A+24>>3],a=+Ae(c,b),E=+i[p>>3]-+i[w>>3],u=+l(+E),g=+i[c>>3]-+i[b>>3],r=+l(+g),!(0==E|0==g)&&(E=+Oe(+u,+r),E=+v(+a*a/+Ne(+E/+Ne(+u,+r),3)/(s*(2.59807621135*s)*.8)),i[o>>3]=E,y=~~E>>>0,B=+l(E)>=1?E>0?~~+m(+f(E/4294967296),4294967295)>>>0:~~+v((E-+(~~E>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2])?(b=!(0|y)&!(0|B),n[(e=t)>>2]=b?1:y,n[e+4>>2]=b?0:B,e=0):e=1,F=h,0|(B=e))}function K(A,e,t,r){A|=0,e|=0,t|=0,r|=0;var a,u,s,c,h=0,g=0,d=0;c=F,F=F+288|0,u=c+264|0,s=c+96|0,a=(h=g=c)+96|0;do{n[h>>2]=0,h=h+4|0}while((0|h)<(0|a));return 0|(t=0|XA(t,g))?(F=c,0|(r=t)):(ZA(h=0|n[(t=g)>>2],t=0|n[t+4>>2],u),WA(h,t,s),d=+Ae(u,s+8|0),d=+v(+ +Ae(A,e)/(2*d)),i[o>>3]=d,t=~~d>>>0,h=+l(d)>=1?d>0?~~+m(+f(d/4294967296),4294967295)>>>0:~~+v((d-+(~~d>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2]?(g=!(0|t)&!(0|h),n[r>>2]=g?1:t,n[r+4>>2]=g?0:h,F=c,0|(r=0)):(F=c,0|(r=1)))}function J(A,e,t,r){e|=0,t|=0,r|=0,n[(A|=0)>>2]=e,n[A+4>>2]=t,n[A+8>>2]=r}function q(A,e){A|=0;var t,r,o,a,f=0,u=0,s=0,c=0,h=0,g=0,d=0;n[(a=(e|=0)+8|0)>>2]=0,r=+i[A>>3],c=+l(+r),o=+i[A+8>>3],c+=.5*(h=+l(+o)/.8660254037844386),c-=+(0|(f=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=f,h<.5*(c+1)){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,n[e+4>>2]=A,d<=h&h<2*c){f=f+1|0,n[e>>2]=f;break}n[e>>2]=f;break}if(!(c<.6666666666666666)){if(f=f+1|0,n[e>>2]=f,h<.5*c){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=f;break}}else A=A+1|0,n[e+4>>2]=A;f=f+1|0,n[e>>2]=f}while(0);do{if(r<0){if(1&A){f=~~(+(0|f)-(2*(+((g=0|Se(0|f,((0|f)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|_()))+1)),n[e>>2]=f;break}f=~~(+(0|f)-2*(+((g=0|Se(0|f,((0|f)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|_()))),n[e>>2]=f;break}}while(0);g=e+4|0,o<0&&(f=f-((1|A<<1)/2|0)|0,n[e>>2]=f,A=0-A|0,n[g>>2]=A),u=A-f|0,(0|f)<0?(s=0-f|0,n[g>>2]=u,n[a>>2]=s,n[e>>2]=0,A=u,f=0):s=0,(0|A)<0&&(f=f-A|0,n[e>>2]=f,s=s-A|0,n[a>>2]=s,n[g>>2]=0,A=0),t=f-s|0,u=A-s|0,(0|s)<0&&(n[e>>2]=t,n[g>>2]=u,n[a>>2]=0,A=u,f=t,s=0),(0|(u=(0|s)<(0|(u=(0|A)<(0|f)?A:f))?s:u))<=0||(n[e>>2]=f-u,n[g>>2]=A-u,n[a>>2]=s-u)}function $(A){var e,t=0,r=0,i=0,o=0,a=0;t=0|n[(A|=0)>>2],r=0|n[(e=A+4|0)>>2],(0|t)<0&&(r=r-t|0,n[e>>2]=r,n[(a=A+8|0)>>2]=(0|n[a>>2])-t,n[A>>2]=0,t=0),(0|r)<0?(t=t-r|0,n[A>>2]=t,o=(0|n[(a=A+8|0)>>2])-r|0,n[a>>2]=o,n[e>>2]=0,r=0):(a=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(t=t-o|0,n[A>>2]=t,r=r-o|0,n[e>>2]=r,n[a>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|r)<(0|t)?r:t))?o:i))<=0||(n[A>>2]=t-i,n[e>>2]=r-i,n[a>>2]=o-i)}function AA(A,e){e|=0;var t,r;r=0|n[(A|=0)+8>>2],t=+((0|n[A+4>>2])-r|0),i[e>>3]=+((0|n[A>>2])-r|0)-.5*t,i[e+8>>3]=.8660254037844386*t}function eA(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[e>>2])+(0|n[A>>2]),n[t+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[t+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function tA(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[A>>2])-(0|n[e>>2]),n[t+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[t+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function rA(A,e){e|=0;var t,r=0;r=0|y(0|n[(A|=0)>>2],e),n[A>>2]=r,t=0|y(0|n[(r=A+4|0)>>2],e),n[r>>2]=t,e=0|y(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function nA(A){var e,t,r=0,i=0,o=0,a=0,f=0;f=(0|(t=0|n[(A|=0)>>2]))<0,A=(A=(i=(0|(a=((e=(0|(o=(0|n[A+4>>2])-(f?t:0)|0))<0)?0-o|0:0)+((0|n[A+8>>2])-(f?t:0))|0))<0)?0:a)-((o=(0|(i=(0|A)<(0|(i=(0|(r=(e?0:o)-(i?a:0)|0))<(0|(a=(f?0:t)-(e?o:0)-(i?a:0)|0))?r:a))?A:i))>0)?i:0)|0,r=r-(o?i:0)|0;A:do{switch(a-(o?i:0)|0){case 0:switch(0|r){case 0:return 0|(f=0|A?1==(0|A)?1:7:0);case 1:return 0|(f=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|r){case 0:return 0|(f=0|A?1==(0|A)?5:7:4);case 1:if(A)break A;return 0|(A=6);default:break A}}}while(0);return 0|(f=7)}function iA(A){var e,t=0,r=0,i=0,o=0,a=0,f=0;o=0|n[(e=(A|=0)+8|0)>>2],a=(0|n[A>>2])-o|0,o=(0|n[(f=A+4|0)>>2])-o|0;do{if(a>>>0>715827881|o>>>0>715827881){if(r=(0|a)>0){if((2147483647-a|0)<(0|a))return 0|(f=1);if((2147483647-(a<<1)|0)<(0|a))return 0|(f=1)}else{if((-2147483648-a|0)>(0|a))return 0|(f=1);if((-2147483648-(a<<1)|0)>(0|a))return 0|(f=1)}if(t=3*a|0,(0|o)>0){if((2147483647-o|0)<(0|o))return 0|(f=1)}else if((-2147483648-o|0)>(0|o))return 0|(f=1);if(i=o<<1,(0|a)>-1){if((-2147483648|t)>=(0|o))return 0|(f=1)}else if((-2147483648^t)<(0|o))return 0|(f=1);if(r){if(!((2147483647-a|0)<(0|i))){r=i;break}return 0|(t=1)}if(!((-2147483648-a|0)>(0|i))){r=i;break}return 0|(t=1)}r=o<<1,t=3*a|0}while(0);i=0|xe(+(t-o|0)/7),n[A>>2]=i,o=0|xe(+(r+a|0)/7),n[f>>2]=o,n[e>>2]=0,t=(r=(0|o)<(0|i))?i:o,r=r?o:i;do{if((0|r)<0){if((0|t)>0){if((-2147483648|t)<(0|r)&-2147483648!=(0|r)&(2147483647-t|0)>=(0|r))break;M(23313,22444,355,22455)}if(-2147483648==(0|r)|(-2147483648-t|0)>(0|r)&&M(23313,22444,355,22455),(0|t)>-1){if((-2147483648|t)<(0|r))break;M(23313,22444,355,22455)}else{if((-2147483648^t)>=(0|r))break;M(23313,22444,355,22455)}}}while(0);return t=o-i|0,(0|i)<0?(r=0-i|0,n[f>>2]=t,n[e>>2]=r,n[A>>2]=0,i=0):(t=o,r=0),(0|t)<0&&(i=i-t|0,n[A>>2]=i,r=r-t|0,n[e>>2]=r,n[f>>2]=0,t=0),a=i-r|0,o=t-r|0,(0|r)<0?(n[A>>2]=a,n[f>>2]=o,n[e>>2]=0,t=o,o=a,r=0):o=i,(0|(i=(0|r)<(0|(i=(0|t)<(0|o)?t:o))?r:i))<=0||(n[A>>2]=o-i,n[f>>2]=t-i,n[e>>2]=r-i),0|(f=0)}function oA(A){var e,t=0,r=0,i=0,o=0,a=0,f=0;o=0|n[(e=(A|=0)+8|0)>>2],a=(0|n[A>>2])-o|0,o=(0|n[(f=A+4|0)>>2])-o|0;do{if(a>>>0>715827881|o>>>0>715827881){if(r=(0|a)>0){if((2147483647-a|0)<(0|a))return 0|(f=1)}else if((-2147483648-a|0)>(0|a))return 0|(f=1);if(t=a<<1,(0|o)>0){if((2147483647-o|0)<(0|o))return 0|(f=1);if((2147483647-(o<<1)|0)<(0|o))return 0|(f=1)}else{if((-2147483648-o|0)>(0|o))return 0|(f=1);if((-2147483648-(o<<1)|0)>(0|o))return 0|(f=1)}if(i=3*o|0,r){if((2147483647-t|0)<(0|o))return 0|(f=1)}else if((-2147483648-t|0)>(0|o))return 0|(f=1);if((0|o)>-1){if((-2147483648|i)<(0|a)){r=i;break}return 0|(t=1)}if(!((-2147483648^i)<(0|a))){r=i;break}return 0|(t=1)}r=3*o|0,t=a<<1}while(0);i=0|xe(+(t+o|0)/7),n[A>>2]=i,o=0|xe(+(r-a|0)/7),n[f>>2]=o,n[e>>2]=0,t=(r=(0|o)<(0|i))?i:o,r=r?o:i;do{if((0|r)<0){if((0|t)>0){if((-2147483648|t)<(0|r)&-2147483648!=(0|r)&(2147483647-t|0)>=(0|r))break;M(23313,22444,404,22469)}if(-2147483648==(0|r)|(-2147483648-t|0)>(0|r)&&M(23313,22444,404,22469),(0|t)>-1){if((-2147483648|t)<(0|r))break;M(23313,22444,404,22469)}else{if((-2147483648^t)>=(0|r))break;M(23313,22444,404,22469)}}}while(0);return t=o-i|0,(0|i)<0?(r=0-i|0,n[f>>2]=t,n[e>>2]=r,n[A>>2]=0,i=0):(t=o,r=0),(0|t)<0&&(i=i-t|0,n[A>>2]=i,r=r-t|0,n[e>>2]=r,n[f>>2]=0,t=0),a=i-r|0,o=t-r|0,(0|r)<0?(n[A>>2]=a,n[f>>2]=o,n[e>>2]=0,t=o,o=a,r=0):o=i,(0|(i=(0|r)<(0|(i=(0|t)<(0|o)?t:o))?r:i))<=0||(n[A>>2]=o-i,n[f>>2]=t-i,n[e>>2]=r-i),0|(f=0)}function aA(A){var e,t,r=0,i=0,o=0,a=0,f=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|xe(+((3*(r=(0|n[A>>2])-i|0)|0)-(i=(0|n[(t=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,r=0|xe(+((i<<1)+r|0)/7),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(f=0-o|0,n[t>>2]=i,n[e>>2]=f,n[A>>2]=0,r=i,o=0,i=f):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),f=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=f,n[t>>2]=a,n[e>>2]=0,r=a,a=f,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=r-o,n[e>>2]=i-o)}function fA(A){var e,t,r=0,i=0,o=0,a=0,f=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|xe(+(((r=(0|n[A>>2])-i|0)<<1)+(i=(0|n[(t=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,r=0|xe(+((3*i|0)-r|0)/7),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(f=0-o|0,n[t>>2]=i,n[e>>2]=f,n[A>>2]=0,r=i,o=0,i=f):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),f=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=f,n[t>>2]=a,n[e>>2]=0,r=a,a=f,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=r-o,n[e>>2]=i-o)}function lA(A){var e,t,r,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],a=0|n[(r=A+8|0)>>2],f=o+(3*i|0)|0,n[A>>2]=f,o=a+(3*o|0)|0,n[t>>2]=o,i=(3*a|0)+i|0,n[r>>2]=i,a=o-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=a,n[r>>2]=i,n[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=f,n[r>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=f-o,n[r>>2]=i-o)}function uA(A){var e,t,r,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=(3*(i=0|n[(t=A+4|0)>>2])|0)+f|0,f=(o=0|n[(r=A+8|0)>>2])+(3*f|0)|0,n[A>>2]=f,n[t>>2]=a,i=(3*o|0)+i|0,n[r>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,n[A>>2]=f,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=f-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,f=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|f)?a:f))?i:o))<=0||(n[A>>2]=f-o,n[t>>2]=a-o,n[r>>2]=i-o)}function sA(A,e){A|=0;var t,r,i,o=0,a=0,f=0;((e|=0)+-1|0)>>>0>=6||(f=(0|n[15440+(12*e|0)>>2])+(0|n[A>>2])|0,n[A>>2]=f,i=A+4|0,a=(0|n[15440+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[i>>2]=a,r=A+8|0,e=(0|n[15440+(12*e|0)+8>>2])+(0|n[r>>2])|0,n[r>>2]=e,o=a-f|0,(0|f)<0?(e=e-f|0,n[i>>2]=o,n[r>>2]=e,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,e=e-o|0,n[r>>2]=e,n[i>>2]=0,o=0),t=a-e|0,f=o-e|0,(0|e)<0?(n[A>>2]=t,n[i>>2]=f,n[r>>2]=0,a=t,e=0):f=o,(0|(o=(0|e)<(0|(o=(0|f)<(0|a)?f:a))?e:o))<=0||(n[A>>2]=a-o,n[i>>2]=f-o,n[r>>2]=e-o))}function cA(A){var e,t,r,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=(i=0|n[(t=A+4|0)>>2])+f|0,f=(o=0|n[(r=A+8|0)>>2])+f|0,n[A>>2]=f,n[t>>2]=a,i=o+i|0,n[r>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=f,n[r>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=f-o,n[r>>2]=i-o)}function hA(A){var e,t,r,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],a=0|n[(t=A+4|0)>>2],o=0|n[(r=A+8|0)>>2],f=a+i|0,n[A>>2]=f,a=o+a|0,n[t>>2]=a,i=o+i|0,n[r>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=f,n[r>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=f-o,n[r>>2]=i-o)}function gA(A){switch(0|(A|=0)){case 1:A=5;break;case 5:A=4;break;case 4:A=6;break;case 6:A=2;break;case 2:A=3;break;case 3:A=1}return 0|A}function dA(A){switch(0|(A|=0)){case 1:A=3;break;case 3:A=2;break;case 2:A=6;break;case 6:A=4;break;case 4:A=5;break;case 5:A=1}return 0|A}function pA(A){var e,t,r,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],a=0|n[(r=A+8|0)>>2],f=o+(i<<1)|0,n[A>>2]=f,o=a+(o<<1)|0,n[t>>2]=o,i=(a<<1)+i|0,n[r>>2]=i,a=o-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=a,n[r>>2]=i,n[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=f,n[r>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=f-o,n[r>>2]=i-o)}function wA(A){var e,t,r,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=((i=0|n[(t=A+4|0)>>2])<<1)+f|0,f=(o=0|n[(r=A+8|0)>>2])+(f<<1)|0,n[A>>2]=f,n[t>>2]=a,i=(o<<1)+i|0,n[r>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,n[A>>2]=f,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=f-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,f=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|f)?a:f))?i:o))<=0||(n[A>>2]=f-o,n[t>>2]=a-o,n[r>>2]=i-o)}function bA(A,e){e|=0;var t,r,i,o=0,a=0,f=0;return i=(0|(r=(0|n[(A|=0)>>2])-(0|n[e>>2])|0))<0,t=(0|(a=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?r:0)|0))<0,e=(e=(A=(0|(f=(i?0-r|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+(t?0-a|0:0)|0))<0)?0:f)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:a)-(A?f:0)|0))<(0|(f=(i?0:r)-(t?a:0)-(A?f:0)|0))?o:f))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=f-(a?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function vA(A,e){e|=0;var t;t=0|n[(A|=0)+8>>2],n[e>>2]=(0|n[A>>2])-t,n[e+4>>2]=(0|n[A+4>>2])-t}function yA(A,e){e|=0;var t,r,i,o=0,a=0,f=0;a=0|n[(A|=0)>>2],n[e>>2]=a,f=0|n[A+4>>2],n[(r=e+4|0)>>2]=f,n[(i=e+8|0)>>2]=0,A=(o=(0|f)<(0|a))?a:f,o=o?f:a;do{if((0|o)<0){if((0|A)>0){if((-2147483648|A)<(0|o)&-2147483648!=(0|o)&(2147483647-A|0)>=(0|o))break;return 0|(A=1)}if(-2147483648==(0|o)|(-2147483648-A|0)>(0|o))return 0|(e=1);if((0|A)>-1){if((-2147483648|A)<(0|o))break;return 0|(A=1)}if(!((-2147483648^A)<(0|o)))break;return 0|(A=1)}}while(0);return A=f-a|0,(0|a)<0?(o=0-a|0,n[r>>2]=A,n[i>>2]=o,n[e>>2]=0,a=0):(A=f,o=0),(0|A)<0&&(a=a-A|0,n[e>>2]=a,o=o-A|0,n[i>>2]=o,n[r>>2]=0,A=0),t=a-o|0,f=A-o|0,(0|o)<0?(n[e>>2]=t,n[r>>2]=f,n[i>>2]=0,A=f,f=t,o=0):f=a,(0|(a=(0|o)<(0|(a=(0|A)<(0|f)?A:f))?o:a))<=0||(n[e>>2]=f-a,n[r>>2]=A-a,n[i>>2]=o-a),0|(e=0)}function mA(A){var e,t,r,i;t=(i=0|n[(e=(A|=0)+8|0)>>2])-(0|n[A>>2])|0,n[A>>2]=t,A=(0|n[(r=A+4|0)>>2])-i|0,n[r>>2]=A,n[e>>2]=0-(A+t)}function BA(A){var e,t,r=0,i=0,o=0,a=0,f=0;r=0-(i=0|n[(A|=0)>>2])|0,n[A>>2]=r,n[(e=A+8|0)>>2]=0,a=(o=0|n[(t=A+4|0)>>2])+i|0,(0|i)>0?(n[t>>2]=a,n[e>>2]=i,n[A>>2]=0,r=0,o=a):i=0,(0|o)<0?(f=r-o|0,n[A>>2]=f,i=i-o|0,n[e>>2]=i,n[t>>2]=0,a=f-i|0,r=0-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=r,n[e>>2]=0,o=r,i=0):(o=0,a=f)):a=r,(0|(r=(0|i)<(0|(r=(0|o)<(0|a)?o:a))?i:r))<=0||(n[A>>2]=a-r,n[t>>2]=o-r,n[e>>2]=i-r)}function EA(A,e,t){t|=0;var r,i,o=0,a=0;return i=F,F=F+16|0,r=i,a=-2130706433&(e|=0)|134217728,!0&268435456==(2013265920&e)?(o=0|Ye(0|(A|=0),0|e,56),_(),o=0|function(A,e,t){A|=0,e|=0,t|=0;var r=0,i=0,o=0;if(o=F,F=F+16|0,i=o,r=0|UA(A,e),(t+-1|0)>>>0>5)return F=o,0|(i=-1);if(r=!!(0|r),1==(0|t)&r)return F=o,0|(i=-1);do{if(!(0|ve(A,e,i))){if(r){r=(5+(0|n[21936+(t<<2)>>2])-(0|n[i>>2])|0)%5|0;break}r=(6+(0|n[21968+(t<<2)>>2])-(0|n[i>>2])|0)%6|0;break}r=-1}while(0);return i=r,F=o,0|i}(A,a,7&o),-1==(0|o)?(n[t>>2]=0,F=i,0|(a=6)):(0|jA(A,a,r)&&M(23313,22484,282,22499),e=0|Ye(0|A,0|e,52),_(),e&=15,0|UA(A,a)?QA(r,e,o,2,t):IA(r,e,o,2,t),F=i,0|(a=0))):(F=i,0|(a=6))}function kA(A,e,t,r){e|=0,r|=0;var o,a=0,f=0,l=0,u=0;if(o=F,F=F+16|0,function(A,e,t){A|=0,e|=0,t|=0;var r=0,o=0,a=0;a=F,F=F+32|0,o=a,function(A,e){A|=0,e|=0;var t=0,r=0,n=0;t=+i[A>>3],r=+c(+t),t=+h(+t),i[e+16>>3]=t,t=+i[A+8>>3],n=r*+c(+t),i[e>>3]=n,t=r*+h(+t),i[e+8>>3]=t}(A,o),n[e>>2]=0,i[t>>3]=5,r=+be(16400,o),r<+i[t>>3]&&(n[e>>2]=0,i[t>>3]=r);r=+be(16424,o),r<+i[t>>3]&&(n[e>>2]=1,i[t>>3]=r);r=+be(16448,o),r<+i[t>>3]&&(n[e>>2]=2,i[t>>3]=r);r=+be(16472,o),r<+i[t>>3]&&(n[e>>2]=3,i[t>>3]=r);r=+be(16496,o),r<+i[t>>3]&&(n[e>>2]=4,i[t>>3]=r);r=+be(16520,o),r<+i[t>>3]&&(n[e>>2]=5,i[t>>3]=r);r=+be(16544,o),r<+i[t>>3]&&(n[e>>2]=6,i[t>>3]=r);r=+be(16568,o),r<+i[t>>3]&&(n[e>>2]=7,i[t>>3]=r);r=+be(16592,o),r<+i[t>>3]&&(n[e>>2]=8,i[t>>3]=r);r=+be(16616,o),r<+i[t>>3]&&(n[e>>2]=9,i[t>>3]=r);r=+be(16640,o),r<+i[t>>3]&&(n[e>>2]=10,i[t>>3]=r);r=+be(16664,o),r<+i[t>>3]&&(n[e>>2]=11,i[t>>3]=r);r=+be(16688,o),r<+i[t>>3]&&(n[e>>2]=12,i[t>>3]=r);r=+be(16712,o),r<+i[t>>3]&&(n[e>>2]=13,i[t>>3]=r);r=+be(16736,o),r<+i[t>>3]&&(n[e>>2]=14,i[t>>3]=r);r=+be(16760,o),r<+i[t>>3]&&(n[e>>2]=15,i[t>>3]=r);r=+be(16784,o),r<+i[t>>3]&&(n[e>>2]=16,i[t>>3]=r);r=+be(16808,o),r<+i[t>>3]&&(n[e>>2]=17,i[t>>3]=r);r=+be(16832,o),r<+i[t>>3]&&(n[e>>2]=18,i[t>>3]=r);if(r=+be(16856,o),!(r<+i[t>>3]))return void(F=a);n[e>>2]=19,i[t>>3]=r,F=a}(A|=0,t|=0,u=o),(f=+d(+(1-.5*+i[u>>3])))<1e-16)return n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,n[r+12>>2]=0,void(F=o);if(u=0|n[t>>2],a=+qA((a=+i[15920+(24*u|0)>>3])-+qA(+function(A,e){A|=0,e|=0;var t=0,r=0,n=0,o=0,a=0;return o=+i[e>>3],r=+c(+o),n=+i[e+8>>3]-+i[A+8>>3],a=r*+h(+n),t=+i[A>>3],+ +b(+a,+(+h(+o)*+c(+t)-+c(+n)*(r*+h(+t))))}(15600+(u<<4)|0,A))),l=0|OA(e)?+qA(a+-.3334731722518321):a,a=+g(+f)/.381966011250105,(0|e)>0){A=0;do{a*=2.6457513110645907,A=A+1|0}while((0|A)!=(0|e))}f=+c(+l)*a,i[r>>3]=f,l=+h(+l)*a,i[r+8>>3]=l,F=o}function _A(A,e,t,r,o){e|=0,t|=0,r|=0,o|=0;var a=0,f=0;if(a=+function(A){A|=0;var e=0,t=0;return t=+i[A>>3],e=+i[A+8>>3],+ +u(+(t*t+e*e))}(A|=0),a<1e-16)return e=15600+(e<<4)|0,n[o>>2]=n[e>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(f=+b(+ +i[A+8>>3],+ +i[A>>3]),(0|t)>0){A=0;do{a/=2.6457513110645907,A=A+1|0}while((0|A)!=(0|t))}r?(a/=3,t=!(0|OA(t)),a=+w(.381966011250105*(t?a:a/2.6457513110645907))):(a=+w(.381966011250105*a),0|OA(t)&&(f=+qA(f+.3334731722518321))),function(A,e,t,r){A|=0,e=+e,t=+t,r|=0;var o=0,a=0,f=0,u=0;if(t<1e-16)return n[r>>2]=n[A>>2],n[r+4>>2]=n[A+4>>2],n[r+8>>2]=n[A+8>>2],void(n[r+12>>2]=n[A+12>>2]);a=e<0?e+6.283185307179586:e,a=e>=6.283185307179586?a+-6.283185307179586:a;do{if(!(a<1e-16)){if(o=+l(+(a+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=t,i[r>>3]=e,o=r;break}if(f=+c(+t),t=+h(+t),e=f*+h(+e)+ +c(+a)*(t*+c(+e)),e=+p(+((e=e>1?1:e)<-1?-1:e)),i[r>>3]=e,+l(+(e+-1.5707963267948966))<1e-16)return i[r>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+l(+(e+1.5707963267948966))<1e-16)return i[r>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(u=+c(+e),a=t*+h(+a)/u,t=+i[A>>3],e=(f-+h(+e)*+h(+t))/+c(+t)/u,f=a>1?1:a,e=e>1?1:e,(e=+i[A+8>>3]+ +b(+(f<-1?-1:f),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[r+8>>3]=e)}e=+i[A>>3]+t,i[r>>3]=e,o=r}while(0);if(+l(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+l(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(e=+i[A+8>>3],e>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[r+8>>3]=e}(15600+(e<<4)|0,+qA(+i[15920+(24*e|0)>>3]-f),a,o)}function MA(A,e,t){e|=0,t|=0;var r,i;r=F,F=F+16|0,AA((A|=0)+4|0,i=r),_A(i,0|n[A>>2],e,0,t),F=r}function QA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var a,f,l,u,s,c,h,g,d,p,w,b,v,y,m,B,E,k,_,Q,x,D,C=0,I=0,S=0,P=0,G=0,T=0;if(D=F,F=F+272|0,P=D+240|0,_=D,Q=D+224|0,x=D+208|0,w=D+176|0,b=D+160|0,v=D+192|0,y=D+144|0,m=D+128|0,B=D+112|0,E=D+96|0,k=D+80|0,n[(C=D+256|0)>>2]=e,n[P>>2]=n[A>>2],n[P+4>>2]=n[A+4>>2],n[P+8>>2]=n[A+8>>2],n[P+12>>2]=n[A+12>>2],xA(P,C,_),n[o>>2]=0,(0|(P=r+t+(5==(0|r)&1)|0))<=(0|t))F=D;else{f=Q+4|0,l=w+4|0,u=t+5|0,s=16880+((a=0|n[C>>2])<<2)|0,c=16960+(a<<2)|0,h=m+8|0,g=B+8|0,d=E+8|0,p=x+4|0,S=t;A:for(;;){I=_+((0|S)%5<<4)|0,n[x>>2]=n[I>>2],n[x+4>>2]=n[I+4>>2],n[x+8>>2]=n[I+8>>2],n[x+12>>2]=n[I+12>>2];do{}while(2==(0|DA(x,a,0,1)));if((0|S)>(0|t)&!!(0|OA(e))){if(n[w>>2]=n[x>>2],n[w+4>>2]=n[x+4>>2],n[w+8>>2]=n[x+8>>2],n[w+12>>2]=n[x+12>>2],AA(f,b),r=0|n[w>>2],C=0|n[17040+(80*r|0)+(n[Q>>2]<<2)>>2],n[w>>2]=n[18640+(80*r|0)+(20*C|0)>>2],(0|(I=0|n[18640+(80*r|0)+(20*C|0)+16>>2]))>0){A=0;do{cA(l),A=A+1|0}while((0|A)<(0|I))}switch(I=18640+(80*r|0)+(20*C|0)+4|0,n[v>>2]=n[I>>2],n[v+4>>2]=n[I+4>>2],n[v+8>>2]=n[I+8>>2],rA(v,3*(0|n[s>>2])|0),eA(l,v,l),$(l),AA(l,y),G=+(0|n[c>>2]),i[m>>3]=3*G,i[h>>3]=0,T=-1.5*G,i[B>>3]=T,i[g>>3]=2.598076211353316*G,i[E>>3]=T,i[d>>3]=-2.598076211353316*G,0|n[17040+(80*(0|n[w>>2])|0)+(n[x>>2]<<2)>>2]){case 1:A=B,r=m;break;case 3:A=E,r=B;break;case 2:A=m,r=E;break;default:A=12;break A}pe(b,y,r,A,k),_A(k,0|n[w>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|S)<(0|u)&&(AA(p,w),_A(w,0|n[x>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[Q>>2]=n[x>>2],n[Q+4>>2]=n[x+4>>2],n[Q+8>>2]=n[x+8>>2],n[Q+12>>2]=n[x+12>>2],(0|(S=S+1|0))>=(0|P)){A=3;break}}3!=(0|A)?12==(0|A)&&M(22522,22569,571,22579):F=D}}function xA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,a=0,f=0,l=0;r=F,F=F+128|0,o=r,f=20240,l=(a=i=r+64|0)+60|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));f=20304,l=(a=o)+60|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));i=(l=!(0|OA(0|n[e>>2])))?i:o,pA(o=A+4|0),wA(o),0|OA(0|n[e>>2])&&(uA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],eA(o,i,e=t+4|0),$(e),n[t+16>>2]=n[A>>2],eA(o,i+12|0,e=t+20|0),$(e),n[t+32>>2]=n[A>>2],eA(o,i+24|0,e=t+36|0),$(e),n[t+48>>2]=n[A>>2],eA(o,i+36|0,e=t+52|0),$(e),n[t+64>>2]=n[A>>2],eA(o,i+48|0,t=t+68|0),$(t),F=r}function DA(A,e,t,r){t|=0,r|=0;var i,o,a,f,l,u,s=0,c=0,h=0,g=0,d=0;if(u=F,F=F+32|0,l=u+12|0,o=u,d=(A|=0)+4|0,g=0|n[16960+((e|=0)<<2)>>2],g=(f=!!(0|r))?3*g|0:g,s=0|n[d>>2],i=0|n[(a=A+8|0)>>2],f){if((0|(s=i+s+(r=0|n[(c=A+12|0)>>2])|0))==(0|g))return F=u,0|(d=1);h=c}else s=i+s+(r=0|n[(h=A+12|0)>>2])|0;if((0|s)<=(0|g))return F=u,0|(d=0);do{if((0|r)>0){if(r=0|n[A>>2],(0|i)>0){c=18640+(80*r|0)+60|0,r=A;break}r=18640+(80*r|0)+40|0,t?(J(l,g,0,0),tA(d,l,o),hA(o),eA(o,l,d),c=r,r=A):(c=r,r=A)}else c=18640+(80*(0|n[A>>2])|0)+20|0,r=A}while(0);if(n[r>>2]=n[c>>2],(0|n[(s=c+16|0)>>2])>0){r=0;do{cA(d),r=r+1|0}while((0|r)<(0|n[s>>2]))}return A=c+4|0,n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],e=0|n[16880+(e<<2)>>2],rA(l,f?3*e|0:e),eA(d,l,d),$(d),r=f&&((0|n[a>>2])+(0|n[d>>2])+(0|n[h>>2])|0)==(0|g)?1:2,F=u,0|(d=r)}function CA(A,e){A|=0,e|=0;var t=0;do{t=0|DA(A,e,0,1)}while(2==(0|t));return 0|t}function IA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var a,f,l,u,s,c,h,g,d,p,w,b,v,y,m,B,E,k,_=0,Q=0,x=0,D=0,C=0;if(k=F,F=F+240|0,y=k+208|0,m=k,B=k+192|0,E=k+176|0,d=k+160|0,p=k+144|0,w=k+128|0,b=k+112|0,v=k+96|0,n[(_=k+224|0)>>2]=e,n[y>>2]=n[A>>2],n[y+4>>2]=n[A+4>>2],n[y+8>>2]=n[A+8>>2],n[y+12>>2]=n[A+12>>2],FA(y,_,m),n[o>>2]=0,(0|(g=r+t+(6==(0|r)&1)|0))<=(0|t))F=k;else{f=t+6|0,l=16960+((a=0|n[_>>2])<<2)|0,u=p+8|0,s=w+8|0,c=b+8|0,h=B+4|0,Q=0,x=t,r=-1;A:for(;;){if(A=m+((_=(0|x)%6|0)<<4)|0,n[B>>2]=n[A>>2],n[B+4>>2]=n[A+4>>2],n[B+8>>2]=n[A+8>>2],n[B+12>>2]=n[A+12>>2],A=Q,Q=0|DA(B,a,0,1),(0|x)>(0|t)&!!(0|OA(e))&&(1!=(0|A)&&(0|n[B>>2])!=(0|r))){switch(AA(m+((_+5|0)%6<<4)+4|0,E),AA(m+(_<<4)+4|0,d),D=+(0|n[l>>2]),i[p>>3]=3*D,i[u>>3]=0,C=-1.5*D,i[w>>3]=C,i[s>>3]=2.598076211353316*D,i[b>>3]=C,i[c>>3]=-2.598076211353316*D,_=0|n[y>>2],0|n[17040+(80*_|0)+(((0|r)==(0|_)?n[B>>2]:r)<<2)>>2]){case 1:A=w,r=p;break;case 3:A=b,r=w;break;case 2:A=p,r=b;break;default:A=8;break A}pe(E,d,r,A,v),0|we(E,v)||0|we(d,v)||(_A(v,0|n[y>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|x)<(0|f)&&(AA(h,E),_A(E,0|n[B>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(x=x+1|0))>=(0|g)){A=3;break}r=0|n[B>>2]}3!=(0|A)?8==(0|A)&&M(22606,22569,736,22651):F=k}}function FA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,a=0,f=0,l=0;r=F,F=F+160|0,o=r,f=20368,l=(a=i=r+80|0)+72|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));f=20448,l=(a=o)+72|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));i=(l=!(0|OA(0|n[e>>2])))?i:o,pA(o=A+4|0),wA(o),0|OA(0|n[e>>2])&&(uA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],eA(o,i,e=t+4|0),$(e),n[t+16>>2]=n[A>>2],eA(o,i+12|0,e=t+20|0),$(e),n[t+32>>2]=n[A>>2],eA(o,i+24|0,e=t+36|0),$(e),n[t+48>>2]=n[A>>2],eA(o,i+36|0,e=t+52|0),$(e),n[t+64>>2]=n[A>>2],eA(o,i+48|0,e=t+68|0),$(e),n[t+80>>2]=n[A>>2],eA(o,i+60|0,t=t+84|0),$(t),F=r}function SA(A,e){return e=0|Ye(0|(A|=0),0|(e|=0),45),_(),127&e}function PA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0;if(!(!0&134217728==(-16777216&(e|=0))))return 0|(e=0);if(o=0|Ye(0|(A|=0),0|e,45),_(),(o&=127)>>>0>121)return 0|(e=0);t=0|Ye(0|A,0|e,52),_(),t&=15;do{if(0|t){for(n=1,r=0;;){if(i=0|Ye(0|A,0|e,3*(15-n|0)|0),_(),!!(0|(i&=7))&(1^r)){if(1==(0|i)&!!(0|H(o))){a=0,r=13;break}r=1}if(7==(0|i)){a=0,r=13;break}if(!(n>>>0<t>>>0)){r=9;break}n=n+1|0}if(9==(0|r)){if(15!=(0|t))break;return 0|(a=1)}if(13==(0|r))return 0|a}}while(0);for(;;){if(a=0|Ye(0|A,0|e,3*(14-t|0)|0),_(),!(!0&!(7&~a))){a=0,r=13;break}if(!(t>>>0<14)){a=1,r=13;break}t=t+1|0}return 13==(0|r)?0|a:0}function GA(A,e,t,r){t|=0,r|=0;var i=0,o=0;if(o=0|Ye(0|(A|=0),0|(e|=0),52),_(),t>>>0>15)return 0|(r=4);if((0|(o&=15))<(0|t))return 0|(r=12);if((0|o)==(0|t))return n[r>>2]=A,n[r+4>>2]=e,0|(r=0);if(i=0|ze(0|t,0,52),i|=A,A=_()|-15728641&e,(0|o)>(0|t))do{e=0|ze(7,0,3*(14-t|0)|0),t=t+1|0,i|=e,A=_()|A}while((0|t)<(0|o));return n[r>>2]=i,n[r+4>>2]=A,0|(r=0)}function TA(A,e,t,r){t|=0,r|=0;var i=0,o=0,a=0;if(o=0|Ye(0|(A|=0),0|(e|=0),52),_(),!((0|t)<16&(0|(o&=15))<=(0|t)))return 0|(r=4);i=t-o|0,t=0|Ye(0|A,0|e,45),_();A:do{if(0|H(127&t)){e:do{if(0|o){for(t=1;!((a=0|ze(7,0,3*(15-t|0)|0))&A)&!(_()&e);){if(!(t>>>0<o>>>0))break e;t=t+1|0}t=0|se(7,0,i,((0|i)<0)<<31>>31),i=0|_();break A}}while(0);t=0|Fe(0|(t=0|Ue(0|(t=0|se(7,0,i,((0|i)<0)<<31>>31)),0|_(),5,0)),0|_(),-5,-1),t=0|Fe(0|(t=0|Te(0|t,0|_(),6,0)),0|_(),1,0),i=0|_()}else t=0|se(7,0,i,((0|i)<0)<<31>>31),i=0|_()}while(0);return n[(a=r)>>2]=t,n[a+4>>2]=i,0|(a=0)}function UA(A,e){var t=0,r=0,n=0;if(n=0|Ye(0|(A|=0),0|(e|=0),45),_(),!(0|H(127&n)))return 0|(n=0);n=0|Ye(0|A,0|e,52),_(),n&=15;A:do{if(n)for(r=1;;){if(t=0|Ye(0|A,0|e,3*(15-r|0)|0),_(),0|(t&=7))break A;if(!(r>>>0<n>>>0)){t=0;break}r=r+1|0}else t=0}while(0);return 0|(n=1&!(0|t))}function RA(A,e){var t=0,r=0,n=0;if(n=0|Ye(0|(A|=0),0|(e|=0),52),_(),!(n&=15))return 0|(n=0);for(r=1;;){if(t=0|Ye(0|A,0|e,3*(15-r|0)|0),_(),0|(t&=7)){r=5;break}if(!(r>>>0<n>>>0)){t=0,r=5;break}r=r+1|0}return 5==(0|r)?0|t:0}function LA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0,f=0;if(f=0|Ye(0|(A|=0),0|(e|=0),52),_(),!(f&=15))return f=A,k(0|(a=e)),0|f;for(a=1,t=0;;){r=0|ze(7,0,0|(i=3*(15-a|0)|0)),n=0|_(),o=0|Ye(0|A,0|e,0|i),_(),A=(i=0|ze(0|gA(7&o),0,0|i))|A&~r,e=(o=0|_())|e&~n;A:do{if(!t)if(!(i&r)&!(o&n))t=0;else if(r=0|Ye(0|A,0|e,52),_(),r&=15){t=1;e:for(;;){switch(o=0|Ye(0|A,0|e,3*(15-t|0)|0),_(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(n=0|Ye(0|A,0|e,0|(o=3*(15-t|0)|0)),_(),i=0|ze(7,0,0|o),e&=~_(),A=A&~i|(o=0|ze(0|gA(7&n),0,0|o)),e|=_(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<f>>>0))break;a=a+1|0}return k(0|e),0|A}function HA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|Ye(0|(A|=0),0|(e|=0),52),_(),!(r&=15))return r=A,k(0|(t=e)),0|r;for(t=1;o=0|Ye(0|A,0|e,0|(i=3*(15-t|0)|0)),_(),n=0|ze(7,0,0|i),e&=~_(),A=(i=0|ze(0|gA(7&o),0,0|i))|A&~n,e=_()|e,t>>>0<r>>>0;)t=t+1|0;return k(0|e),0|A}function YA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0,f=0;if(f=0|Ye(0|(A|=0),0|(e|=0),52),_(),!(f&=15))return f=A,k(0|(a=e)),0|f;for(a=1,t=0;;){r=0|ze(7,0,0|(i=3*(15-a|0)|0)),n=0|_(),o=0|Ye(0|A,0|e,0|i),_(),A=(i=0|ze(0|dA(7&o),0,0|i))|A&~r,e=(o=0|_())|e&~n;A:do{if(!t)if(!(i&r)&!(o&n))t=0;else if(r=0|Ye(0|A,0|e,52),_(),r&=15){t=1;e:for(;;){switch(o=0|Ye(0|A,0|e,3*(15-t|0)|0),_(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|ze(7,0,0|(n=3*(15-t|0)|0)),o=e&~_(),e=0|Ye(0|A,0|e,0|n),_(),A=A&~i|(e=0|ze(0|dA(7&e),0,0|n)),e=o|_(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<f>>>0))break;a=a+1|0}return k(0|e),0|A}function zA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|Ye(0|(A|=0),0|(e|=0),52),_(),!(r&=15))return r=A,k(0|(t=e)),0|r;for(t=1;i=0|ze(7,0,0|(o=3*(15-t|0)|0)),n=e&~_(),e=0|Ye(0|A,0|e,0|o),_(),A=(e=0|ze(0|dA(7&e),0,0|o))|A&~i,e=_()|n,t>>>0<r>>>0;)t=t+1|0;return k(0|e),0|A}function OA(A){return(0|(A|=0))%2|0}function NA(A,e,t){t|=0;var r,i=0;return r=F,F=F+16|0,i=r,(e|=0)>>>0>15?(F=r,0|(i=4)):2146435072&~n[(A|=0)+4>>2]&&2146435072&~n[A+8+4>>2]?(function(A,e,t){var r,n;r=F,F=F+16|0,kA(A|=0,e|=0,t|=0,n=r),q(n,t+4|0),F=r}(A,e,i),e=0|function(A,e){A|=0;var t,r=0,i=0,o=0,a=0,f=0,l=0,u=0,s=0;if(t=F,F=F+64|0,l=t+40|0,i=t+24|0,o=t+12|0,a=t,ze(0|(e|=0),0,52),r=134225919|_(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(l=0,k(0|(f=0)),F=t,0|l):(ze(0|z(A),0,45),f=_()|r,l=-1,k(0|f),F=t,0|l);if(n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],n[l+12>>2]=n[A+12>>2],f=l+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[f>>2],n[i+4>>2]=n[f+4>>2],n[i+8>>2]=n[f+8>>2],1&e?(aA(f),n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],lA(o)):(fA(f),n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],uA(o)),tA(i,o,a),$(a),u=0|ze(7,0,0|(s=3*(15-e|0)|0)),r&=~_(),A=(s=0|ze(0|nA(a),0,0|s))|A&~u,r=_()|r,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[f>>2])<=2&&(0|n[l+8>>2])<=2&&(0|n[l+12>>2])<=2){if(e=0|ze(0|(i=0|z(l)),0,45),e|=A,A=_()|-1040385&r,a=0|O(l),!(0|H(i))){if((0|a)<=0)break;for(o=0;;){if(i=0|Ye(0|e,0|A,52),_(),i&=15)for(r=1;l=0|Ye(0|e,0|A,0|(s=3*(15-r|0)|0)),_(),u=0|ze(7,0,0|s),A&=~_(),e=e&~u|(s=0|ze(0|gA(7&l),0,0|s)),A|=_(),r>>>0<i>>>0;)r=r+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|Ye(0|e,0|A,52),_(),o&=15;e:do{if(o){r=1;t:for(;;){switch(s=0|Ye(0|e,0|A,3*(15-r|0)|0),_(),7&s){case 1:break t;case 0:break;default:break e}if(!(r>>>0<o>>>0))break e;r=r+1|0}if(0|N(i,0|n[l>>2]))for(r=1;u=0|ze(7,0,0|(l=3*(15-r|0)|0)),s=A&~_(),A=0|Ye(0|e,0|A,0|l),_(),e=e&~u|(A=0|ze(0|dA(7&A),0,0|l)),A=s|_(),r>>>0<o>>>0;)r=r+1|0;else for(r=1;l=0|Ye(0|e,0|A,0|(s=3*(15-r|0)|0)),_(),u=0|ze(7,0,0|s),A&=~_(),e=e&~u|(s=0|ze(0|gA(7&l),0,0|s)),A|=_(),r>>>0<o>>>0;)r=r+1|0}}while(0);if((0|a)>0){r=0;do{e=0|LA(e,A),A=0|_(),r=r+1|0}while((0|r)!=(0|a))}}else e=0,A=0}while(0);return s=e,k(0|(u=A)),F=t,0|s}(i,e),i=0|_(),n[t>>2]=e,n[t+4>>2]=i,!(0|e)&!(0|i)&&M(23313,22674,786,22697),F=r,0|(i=0)):(F=r,0|(i=3))}function VA(A,e,t){var r,i=0,o=0,a=0;if(r=(t|=0)+4|0,o=0|Ye(0|(A|=0),0|(e|=0),52),_(),o&=15,a=0|Ye(0|A,0|e,45),_(),i=!(0|o),0|H(127&a)){if(i)return 0|(a=1);i=1}else{if(i)return 0|(a=0);i=0|n[r>>2]||0|n[t+8>>2]?1:1&!!(0|n[t+12>>2])}for(t=1;1&t?lA(r):uA(r),a=0|Ye(0|A,0|e,3*(15-t|0)|0),_(),sA(r,7&a),t>>>0<o>>>0;)t=t+1|0;return 0|i}function jA(A,e,t){t|=0;var r,i,o=0,a=0,f=0,l=0,u=0,s=0;if(i=F,F=F+16|0,r=i,s=0|Ye(0|(A|=0),0|(e|=0),45),_(),(s&=127)>>>0>121)return n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,n[t+12>>2]=0,F=i,0|(s=5);A:do{if(0|H(s)&&(f=0|Ye(0|A,0|e,52),_(),0|(f&=15))){o=1;e:for(;;){switch(u=0|Ye(0|A,0|e,3*(15-o|0)|0),_(),7&u){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<f>>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;l=0|ze(7,0,0|(e=3*(15-a|0)|0)),u=o&~_(),o=0|Ye(0|A,0|o,0|e),_(),A=A&~l|(o=0|ze(0|dA(7&o),0,0|e)),o=u|_(),a>>>0<f>>>0;)a=a+1|0}else o=e}while(0);if(u=7696+(28*s|0)|0,n[t>>2]=n[u>>2],n[t+4>>2]=n[u+4>>2],n[t+8>>2]=n[u+8>>2],n[t+12>>2]=n[u+12>>2],!(0|VA(A,o,t)))return F=i,0|(s=0);if(l=t+4|0,n[r>>2]=n[l>>2],n[r+4>>2]=n[l+4>>2],n[r+8>>2]=n[l+8>>2],f=0|Ye(0|A,0|o,52),_(),u=15&f,1&f?(uA(l),f=u+1|0):f=u,0|H(s)){A:do{if(u)for(e=1;;){if(a=0|Ye(0|A,0|o,3*(15-e|0)|0),_(),0|(a&=7)){o=a;break A}if(!(e>>>0<u>>>0)){o=0;break}e=e+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|DA(t,f,o,0)){if(0|H(s))do{}while(0|DA(t,f,0,0));(0|f)!=(0|u)&&fA(l)}else(0|f)!=(0|u)&&(n[l>>2]=n[r>>2],n[l+4>>2]=n[r+4>>2],n[l+8>>2]=n[r+8>>2]);return F=i,0|(s=0)}function ZA(A,e,t){t|=0;var r,n,i=0;return n=F,F=F+16|0,0|(i=0|jA(A|=0,e|=0,r=n))?(F=n,0|i):(i=0|Ye(0|A,0|e,52),_(),MA(r,15&i,t),F=n,0|(i=0))}function WA(A,e,t){t|=0;var r,n=0,i=0,o=0;if(r=F,F=F+16|0,0|(n=0|jA(A|=0,e|=0,o=r)))return F=r,0|(o=n);n=0|Ye(0|A,0|e,45),_(),n=!(0|H(127&n)),i=0|Ye(0|A,0|e,52),_(),i&=15;A:do{if(!n){if(0|i)for(n=1;;){if(!(!((0|ze(7,0,3*(15-n|0)|0))&A)&!(_()&e)))break A;if(!(n>>>0<i>>>0))break;n=n+1|0}return QA(o,i,0,5,t),F=r,0|0}}while(0);return IA(o,i,0,6,t),F=r,0|0}function XA(A,e){e|=0;var t=0,r=0,i=0,o=0,a=0,f=0,l=0;if((A|=0)>>>0>15)return 0|(f=4);if(ze(0|A,0,52),f=134225919|_(),!A){t=0,r=0;do{0|H(r)&&(ze(0|r,0,45),a=f|_(),n[(A=e+(t<<3)|0)>>2]=-1,n[A+4>>2]=a,t=t+1|0),r=r+1|0}while(122!=(0|r));return 0|(t=0)}t=0,a=0;do{if(0|H(a)){for(ze(0|a,0,45),r=1,i=-1,o=f|_();i&=~(l=0|ze(7,0,3*(15-r|0)|0)),o&=~_(),(0|r)!=(0|A);)r=r+1|0;n[(l=e+(t<<3)|0)>>2]=i,n[l+4>>2]=o,t=t+1|0}a=a+1|0}while(122!=(0|a));return 0|(t=0)}function KA(A,e,t,r){A|=0,r|=0;var i=0,o=0;i=0|Ye(0|(e|=0),0|(t|=0),52),_(),!(0|e)&!(0|t)|(0|r)>15|(0|(i&=15))>(0|r)?(r=-1,i=-1,e=0,t=0):(o=0|function(A,e,t,r){return A|=0,e|=0,(0|(r|=0))<(0|(t|=0))?(r=A,k(0|(t=e)),0|r):(t=0|ze(-1,-1,3+(3*(r-t|0)|0)|0),r=0|ze(0|~t,0|~_(),3*(15-r|0)|0),t=~_()&e,r=~r&A,k(0|t),0|r)}(e,t,i+1|0,r),t=-15728641&_(),e=0|ze(0|r,0,52),r=(o=!(0|UA(e|=o,t|=_())))?-1:r),n[(o=A)>>2]=e,n[o+4>>2]=t,n[A+8>>2]=i,n[A+12>>2]=r}function JA(A){var e,t=0,r=0,i=0,o=0,a=0,f=0,l=0,u=0;if(!(!(0|(t=0|n[(r=A|=0)>>2]))&!(0|(r=0|n[r+4>>2]))||(i=0|Ye(0|t,0|r,52),_(),t=0|Fe(0|(l=0|ze(1,0,3*(15^(i&=15))|0)),0|_(),0|t,0|r),r=0|_(),n[(l=A)>>2]=t,n[l+4>>2]=r,(0|i)<(0|(f=0|n[(l=A+8|0)>>2]))))){for(e=A+12|0,a=i;;){if((0|a)==(0|f)){i=5;break}if(u=(0|a)==(0|n[e>>2]),i=0|Ye(0|t,0|r,0|(o=3*(15-a|0)|0)),_(),u&1==(0|(i&=7))&!0){i=7;break}if(!(7==(0|i)&!0)){i=10;break}if(t=0|Fe(0|t,0|r,0|(u=0|ze(1,0,0|o)),0|_()),r=0|_(),n[(u=A)>>2]=t,n[u+4>>2]=r,!((0|a)>(0|f))){i=10;break}a=a+-1|0}if(5==(0|i))return n[(u=A)>>2]=0,n[u+4>>2]=0,n[l>>2]=-1,void(n[e>>2]=-1);if(7==(0|i))return f=0|Fe(0|t,0|r,0|(f=0|ze(1,0,0|o)),0|_()),l=0|_(),n[(u=A)>>2]=f,n[u+4>>2]=l,void(n[e>>2]=a+-1)}}function qA(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function $A(A,e){return e|=0,+l(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+l(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function Ae(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+h(.5*(r-t)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+b(+ +u(+o),+ +u(+(1-o)))*6371.007180918475}function ee(A,e){e|=0;var t=0;return(A|=0)>>>0>15?0|(e=4):(t=0|Ue(0|(t=0|se(7,0,A,((0|A)<0)<<31>>31)),0|_(),120,0),A=0|_(),n[e>>2]=2|t,n[e+4>>2]=A,0|(e=0))}function te(A,e,t){A|=0,t|=0;var r,n,o,a,f=0,l=0,s=0,d=0,p=0,v=0;return v=+i[(e|=0)>>3],o=+i[A>>3],p=+h(.5*(v-o)),s=+i[e+8>>3],n=+i[A+8>>3],d=+h(.5*(s-n)),r=+c(+o),a=+c(+v),d=2*+b(+ +u(+(d=p*p+d*(a*r*d))),+ +u(+(1-d))),p=+i[t>>3],v=+h(.5*(p-v)),f=+i[t+8>>3],s=+h(.5*(f-s)),l=+c(+p),s=2*+b(+ +u(+(s=v*v+s*(a*l*s))),+ +u(+(1-s))),p=+h(.5*(o-p)),f=+h(.5*(n-f)),f=2*+b(+ +u(+(f=p*p+f*(r*l*f))),+ +u(+(1-f))),4*+w(+ +u(+ +g(.5*(l=.5*(d+s+f)))*+g(.5*(l-d))*+g(.5*(l-s))*+g(.5*(l-f))))}function re(A,e,t){t|=0;var r,o,a,f=0,l=0;if(a=F,F=F+192|0,o=a,0|(l=0|ZA(A|=0,e|=0,r=a+168|0)))return F=a,0|(t=l);if(0|WA(A,e,o)&&M(23313,22742,386,22751),(0|(e=0|n[o>>2]))>0){if(f=+te(o+8|0,o+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{f+=+te(o+8+((l=A)<<4)|0,o+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e))}}else f=0;return i[t>>3]=f,F=a,0|(t=0)}function ne(A){A|=0;var e,t,r=0;return(e=0|Ie(1,12))||M(22832,22787,49,22845),0|(r=0|n[(t=A+4|0)>>2])?(n[(r=r+8|0)>>2]=e,n[t>>2]=e,0|e):(0|n[A>>2]&&M(22862,22787,61,22885),n[(r=A)>>2]=e,n[t>>2]=e,0|e)}function ie(A,e){A|=0,e|=0;var t,r;return(r=0|De(24))||M(22899,22787,78,22913),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[r+16>>2]=0,0|(t=0|n[(e=A+4|0)>>2])?(n[t+16>>2]=r,n[e>>2]=r,0|r):(0|n[A>>2]&&M(22928,22787,82,22913),n[A>>2]=r,n[e>>2]=r,0|r)}function oe(A){var e=0,t=0,r=0,i=0;if(A|=0)for(r=1;;){if(0|(e=0|n[A>>2]))do{if(0|(t=0|n[e>>2]))do{i=t,t=0|n[t+16>>2],Ce(i)}while(0|t);i=e,e=0|n[e+8>>2],Ce(i)}while(0|e);if(e=A,A=0|n[A+8>>2],r||Ce(e),!A)break;r=0}}function ae(A){var e,t,r=0,o=0,a=0,f=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,E=0,k=0,_=0,Q=0,x=0,D=0,C=0,I=0,F=0,S=0,P=0,G=0,T=0;if(0|n[(f=(A|=0)+8|0)>>2])return 0|(T=1);if(!(a=0|n[A>>2]))return 0|(T=0);r=a,o=0;do{o=o+1|0,r=0|n[r+8>>2]}while(0|r);if(o>>>0<2)return 0|(T=0);(t=0|De(o<<2))||M(22948,22787,317,22967),(e=0|De(o<<5))||M(22989,22787,321,22967),n[A>>2]=0,n[(x=A+4|0)>>2]=0,n[f>>2]=0,o=0,P=0,Q=0,p=0;A:for(;;){if(d=0|n[a>>2]){u=0,s=d;do{if(h=+i[s+8>>3],r=s,s=0|n[s+16>>2],c=+i[(f=(g=!(0|s))?d:s)+8>>3],+l(+(h-c))>3.141592653589793){T=14;break}u+=(c-h)*(+i[r>>3]+ +i[f>>3])}while(!g);if(14==(0|T)){T=0,u=0,r=d;do{_=+i[r+8>>3],F=0|n[(S=r+16|0)>>2],k=+i[(F=0|F?F:d)+8>>3],u+=(+i[r>>3]+ +i[F>>3])*((k<0?k+6.283185307179586:k)-(_<0?_+6.283185307179586:_)),r=0|n[(0|r?S:a)>>2]}while(0|r)}u>0?(n[t+(P<<2)>>2]=a,P=P+1|0,f=Q,r=p):T=19}else T=19;if(19==(0|T)){T=0;do{if(!o){if(p){f=x,s=p+8|0,r=a,o=A;break}if(0|n[A>>2]){T=27;break A}f=x,s=A,r=a,o=A;break}if(0|n[(r=o+8|0)>>2]){T=21;break A}if(!(o=0|Ie(1,12))){T=23;break A}n[r>>2]=o,f=o+4|0,s=o,r=p}while(0);if(n[s>>2]=a,n[f>>2]=a,s=e+(Q<<5)|0,g=0|n[a>>2]){for(i[(d=e+(Q<<5)+8|0)>>3]=17976931348623157e292,i[(p=e+(Q<<5)+24|0)>>3]=17976931348623157e292,i[s>>3]=-17976931348623157e292,i[(w=e+(Q<<5)+16|0)>>3]=-17976931348623157e292,B=17976931348623157e292,E=-17976931348623157e292,f=0,b=g,h=17976931348623157e292,y=17976931348623157e292,m=-17976931348623157e292,c=-17976931348623157e292;u=+i[b>>3],_=+i[b+8>>3],b=0|n[b+16>>2],k=+i[((v=!(0|b))?g:b)+8>>3],u<h&&(i[d>>3]=u,h=u),_<y&&(i[p>>3]=_,y=_),u>m?i[s>>3]=u:u=m,_>c&&(i[w>>3]=_,c=_),B=_>0&_<B?_:B,E=_<0&_>E?_:E,f|=+l(+(_-k))>3.141592653589793,!v;)m=u;f&&(i[w>>3]=E,i[p>>3]=B)}else n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0,n[s+16>>2]=0,n[s+20>>2]=0,n[s+24>>2]=0,n[s+28>>2]=0;f=Q+1|0}if(a=0|n[(S=a+8|0)>>2],n[S>>2]=0,!a){T=45;break}Q=f,p=r}if(21==(0|T))M(22765,22787,35,22799);else if(23==(0|T))M(22819,22787,37,22799);else if(27==(0|T))M(22862,22787,61,22885);else if(45==(0|T)){A:do{if((0|P)>0){for(S=!(0|f),I=f<<2,F=!(0|A),C=0,r=0;;){if(D=0|n[t+(C<<2)>>2],S)T=73;else{if(!(Q=0|De(I))){T=50;break}if(!(x=0|De(I))){T=52;break}e:do{if(F)o=0;else{for(f=0,o=0,s=A;a=e+(f<<5)|0,0|fe(0|n[s>>2],a,0|n[D>>2])?(n[Q+(o<<2)>>2]=s,n[x+(o<<2)>>2]=a,v=o+1|0):v=o,s=0|n[s+8>>2];)f=f+1|0,o=v;if((0|v)>0)if(a=0|n[Q>>2],1==(0|v))o=a;else for(w=0,b=-1,o=a,p=a;;){for(g=0|n[p>>2],a=0,s=0;d=(0|(f=0|n[n[Q+(s<<2)>>2]>>2]))==(0|g)?a:a+(1&fe(f,0|n[x+(s<<2)>>2],0|n[g>>2]))|0,(0|(s=s+1|0))!=(0|v);)a=d;if(o=(f=(0|d)>(0|b))?p:o,(0|(a=w+1|0))==(0|v))break e;w=a,b=f?d:b,p=0|n[Q+(a<<2)>>2]}else o=0}}while(0);if(Ce(Q),Ce(x),o){if(a=0|n[(f=o+4|0)>>2])o=a+8|0;else if(0|n[o>>2]){T=70;break}n[o>>2]=D,n[f>>2]=D}else T=73}if(73==(0|T)){if(T=0,0|(r=0|n[D>>2]))do{x=r,r=0|n[r+16>>2],Ce(x)}while(0|r);Ce(D),r=1}if((0|(C=C+1|0))>=(0|P)){G=r;break A}}50==(0|T)?M(23004,22787,249,23023):52==(0|T)?M(23042,22787,252,23023):70==(0|T)&&M(22862,22787,61,22885)}else G=0}while(0);return Ce(t),Ce(e),0|(T=G)}return 0}function fe(A,e,t){A|=0;var r=0,o=0,a=0,f=0,l=0,u=0,s=0,c=0;if(!(0|W(e|=0,t|=0)))return 0|(A=0);if(e=0|Z(e),r=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0|(A=0);if(e){e=0,s=o,t=A;A:for(;;){for(;f=+i[t>>3],o=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],a=+i[(c=0|c?c:A)>>3],l=+i[c+8>>3],f>a?(u=f,f=l):(u=a,a=f,f=o,o=l),(r=r==a|r==u?r+2220446049250313e-31:r)<a|r>u;)if(!(t=0|n[t>>2])){t=22;break A}if(((u=(l=f<0?f+6.283185307179586:f)+(r-a)/(u-a)*((f=o<0?o+6.283185307179586:o)-l))<0?u+6.283185307179586:u)>(s=l==s|f==s?s+-2220446049250313e-31:s)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,s=o,t=A;A:for(;;){for(;f=+i[t>>3],o=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],a=+i[(c=0|c?c:A)>>3],l=+i[c+8>>3],f>a?(u=f,f=l):(u=a,a=f,f=o,o=l),(r=r==a|r==u?r+2220446049250313e-31:r)<a|r>u;)if(!(t=0|n[t>>2])){t=22;break A}if(f+(r-a)/(u-a)*(o-f)>(s=f==s|o==s?s+-2220446049250313e-31:s)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}return 0}function le(A,e,t,i,o){t|=0,i|=0,o|=0;var a,f,l,u,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0;if(u=F,F=F+32|0,y=u+16|0,l=u,s=0|Ye(0|(A|=0),0|(e|=0),52),_(),s&=15,w=0|Ye(0|t,0|i,52),_(),(0|s)!=(15&w))return F=u,0|(y=12);if(d=0|Ye(0|A,0|e,45),_(),d&=127,p=0|Ye(0|t,0|i,45),_(),d>>>0>121|(p&=127)>>>0>121)return F=u,0|(y=5);if(w=(0|d)!=(0|p)){if(7==(0|(h=0|j(d,p))))return F=u,0|(y=1);7==(0|(g=0|j(p,d)))?M(23066,23090,161,23100):(b=h,c=g)}else b=0,c=0;a=0|H(d),f=0|H(p),n[y>>2]=0,n[y+4>>2]=0,n[y+8>>2]=0,n[y+12>>2]=0;do{if(b){if(h=(0|(p=0|n[4272+(28*d|0)+(b<<2)>>2]))>0,f)if(h){d=0,g=t,h=i;do{g=0|YA(g,h),h=0|_(),1==(0|(c=0|dA(c)))&&(c=0|dA(1)),d=d+1|0}while((0|d)!=(0|p));p=c,d=g,g=h}else p=c,d=t,g=i;else if(h){d=0,g=t,h=i;do{g=0|zA(g,h),h=0|_(),c=0|dA(c),d=d+1|0}while((0|d)!=(0|p));p=c,d=g,g=h}else p=c,d=t,g=i;if(VA(d,g,y),w||M(23115,23090,191,23100),(h=!!(0|a))&(c=!!(0|f))&&M(23142,23090,192,23100),h){if(7==(0|(c=0|RA(A,e)))){s=5;break}if(0|r[21872+(7*c|0)+b|0]){s=1;break}d=g=0|n[21040+(28*c|0)+(b<<2)>>2]}else if(c){if(7==(0|(c=0|RA(d,g)))){s=5;break}if(0|r[21872+(7*c|0)+p|0]){s=1;break}d=0,g=0|n[21040+(28*p|0)+(c<<2)>>2]}else d=0,g=0;if((d|g)<0)s=5;else{if((0|g)>0){h=y+4|0,c=0;do{hA(h),c=c+1|0}while((0|c)!=(0|g))}if(n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,sA(l,b),0|s)for(;0|OA(s)?lA(l):uA(l),(0|s)>1;)s=s+-1|0;if((0|d)>0){s=0;do{hA(l),s=s+1|0}while((0|s)!=(0|d))}eA(v=y+4|0,l,v),$(v),v=51}}else if(VA(t,i,y),!!(0|a)&!!(0|f))if((0|p)!=(0|d)&&M(23173,23090,261,23100),7==(0|(c=0|RA(A,e)))|7==(0|(s=0|RA(t,i))))s=5;else if(0|r[21872+(7*c|0)+s|0])s=1;else if((0|(c=0|n[21040+(28*c|0)+(s<<2)>>2]))>0){h=y+4|0,s=0;do{hA(h),s=s+1|0}while((0|s)!=(0|c));v=51}else v=51;else v=51}while(0);return 51==(0|v)&&(s=y+4|0,n[o>>2]=n[s>>2],n[o+4>>2]=n[s+4>>2],n[o+8>>2]=n[s+8>>2],s=0),F=u,0|(y=s)}function ue(A,e,t,r){t|=0,r|=0;var i,o,a,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0;if(a=F,F=F+48|0,i=a+36|0,u=a+24|0,s=a+12|0,c=a,f=0|Ye(0|(A|=0),0|(e|=0),52),_(),f&=15,g=0|Ye(0|A,0|e,45),_(),(g&=127)>>>0>121)return F=a,0|(r=5);if(o=0|H(g),ze(0|f,0,52),w=134225919|_(),n[(l=r)>>2]=-1,n[l+4>>2]=w,!f)return 7==(0|(f=0|nA(t)))||127==(0|(f=0|V(g,f)))?(F=a,0|(w=1)):(d=0|ze(0|f,0,45),p=0|_(),p=-1040385&n[(g=r)+4>>2]|p,n[(w=r)>>2]=n[g>>2]|d,n[w+4>>2]=p,F=a,0|(w=0));for(n[i>>2]=n[t>>2],n[i+4>>2]=n[t+4>>2],n[i+8>>2]=n[t+8>>2],t=f;;){if(l=t,t=t+-1|0,n[u>>2]=n[i>>2],n[u+4>>2]=n[i+4>>2],n[u+8>>2]=n[i+8>>2],0|OA(l)){if(0|(f=0|iA(i))){t=13;break}n[s>>2]=n[i>>2],n[s+4>>2]=n[i+4>>2],n[s+8>>2]=n[i+8>>2],lA(s)}else{if(0|(f=0|oA(i))){t=13;break}n[s>>2]=n[i>>2],n[s+4>>2]=n[i+4>>2],n[s+8>>2]=n[i+8>>2],uA(s)}if(tA(u,s,c),$(c),v=0|n[(f=r)>>2],f=0|n[f+4>>2],b=0|ze(7,0,0|(y=3*(15-l|0)|0)),f&=~_(),y=0|ze(0|nA(c),0,0|y),f=_()|f,n[(w=r)>>2]=y|v&~b,n[w+4>>2]=f,(0|l)<=1){t=14;break}}A:do{if(13!=(0|t)&&14==(0|t))if((0|n[i>>2])<=1&&(0|n[i+4>>2])<=1&&(0|n[i+8>>2])<=1){c=127==(0|(f=0|V(g,t=0|nA(i))))?0:0|H(f);e:do{if(t){if(o){if(7==(0|(f=0|RA(A,e)))){f=5;break A}if((0|(l=0|n[21248+(28*f|0)+(t<<2)>>2]))>0){f=t,t=0;do{f=0|gA(f),t=t+1|0}while((0|t)!=(0|l))}else f=t;if(1==(0|f)){f=9;break A}127==(0|(t=0|V(g,f)))&&M(23200,23090,411,23230),0|H(t)?M(23245,23090,412,23230):(p=t,d=l,h=f)}else p=f,d=0,h=t;if((0|(s=0|n[4272+(28*g|0)+(h<<2)>>2]))<=-1&&M(23276,23090,419,23230),!c){if((0|d)<0){f=5;break A}if(0|d){f=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];do{t=0|HA(t,l),l=0|_(),n[(y=r)>>2]=t,n[y+4>>2]=l,f=f+1|0}while((0|f)<(0|d))}if((0|s)<=0){f=p,t=58;break}for(f=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];;)if(t=0|HA(t,l),l=0|_(),n[(y=r)>>2]=t,n[y+4>>2]=l,(0|(f=f+1|0))==(0|s)){f=p,t=58;break e}}if(7==(0|(u=0|j(p,g)))&&M(23066,23090,428,23230),t=0|n[(f=r)>>2],f=0|n[f+4>>2],(0|s)>0){l=0;do{t=0|HA(t,f),f=0|_(),n[(y=r)>>2]=t,n[y+4>>2]=f,l=l+1|0}while((0|l)!=(0|s))}if(7==(0|(f=0|RA(t,f)))&&M(23313,23090,440,23230),t=0|Y(p),(0|(t=0|n[(t?21664:21456)+(28*u|0)+(f<<2)>>2]))<0&&M(23313,23090,454,23230),t){f=0,l=0|n[(u=r)>>2],u=0|n[u+4>>2];do{l=0|LA(l,u),u=0|_(),n[(y=r)>>2]=l,n[y+4>>2]=u,f=f+1|0}while((0|f)<(0|t));f=p,t=58}else f=p,t=58}else if(!!(0|o)&!!(0|c)){if(7==(0|(t=0|RA(A,e)))|7==(0|(l=0|RA(0|n[(l=r)>>2],0|n[l+4>>2])))){f=5;break A}if((0|(l=0|n[21248+(28*t|0)+(l<<2)>>2]))<0){f=5;break A}if(l){t=0,u=0|n[(s=r)>>2],s=0|n[s+4>>2];do{u=0|HA(u,s),s=0|_(),n[(y=r)>>2]=u,n[y+4>>2]=s,t=t+1|0}while((0|t)<(0|l));t=58}else t=59}else t=58}while(0);if(58==(0|t)&&c&&(t=59),59==(0|t)&&1==(0|RA(0|n[(y=r)>>2],0|n[y+4>>2]))){f=9;break}b=0|n[(y=r)>>2],y=-1040385&n[y+4>>2],v=0|ze(0|f,0,45),y|=_(),n[(f=r)>>2]=b|v,n[f+4>>2]=y,f=0}else f=1}while(0);return F=a,0|(y=f)}function se(A,e,t,r){A|=0,e|=0;var n=0,i=0,o=0;if(!(0|(t|=0))&!(0|(r|=0)))return i=1,k(0|(n=0)),0|i;i=A,n=e,A=1,e=0;do{A=0|Ue(0|((o=!0&!(1&t))?1:i),0|(o?0:n),0|A,0|e),e=0|_(),t=0|He(0|t,0|r,1),r=0|_(),i=0|Ue(0|i,0|n,0|i,0|n),n=0|_()}while(!(!(0|t)&!(0|r)));return k(0|e),0|A}function ce(A,e,t){A|=0;var r,o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0;if(!(0|W(e|=0,t|=0)))return 0|(g=0);if(e=0|Z(e),o=+i[t>>3],a=e&(a=+i[t+8>>3])<0?a+6.283185307179586:a,(0|(g=0|n[A>>2]))<=0)return 0|(g=0);if(r=0|n[A+4>>2],e){e=0,h=a,t=-1,A=0;A:for(;;){for(c=A;l=+i[r+(c<<4)>>3],a=+i[r+(c<<4)+8>>3],f=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],u=+i[r+(A<<4)+8>>3],l>f?(s=l,l=u):(s=f,f=l,l=a,a=u),(o=o==f|o==s?o+2220446049250313e-31:o)<f|o>s;){if((0|(t=c+1|0))>=(0|g)){t=22;break A}A=c,c=t,t=A}if(((s=(u=l<0?l+6.283185307179586:l)+(o-f)/(s-f)*((l=a<0?a+6.283185307179586:a)-u))<0?s+6.283185307179586:s)>(h=u==h|l==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|g)){t=22;break}t=c}if(22==(0|t))return 0|e}else{e=0,h=a,t=-1,A=0;A:for(;;){for(c=A;l=+i[r+(c<<4)>>3],a=+i[r+(c<<4)+8>>3],f=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],u=+i[r+(A<<4)+8>>3],l>f?(s=l,l=u):(s=f,f=l,l=a,a=u),(o=o==f|o==s?o+2220446049250313e-31:o)<f|o>s;){if((0|(t=c+1|0))>=(0|g)){t=22;break A}A=c,c=t,t=A}if(l+(o-f)/(s-f)*(a-l)>(h=l==h|a==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|g)){t=22;break}t=c}if(22==(0|t))return 0|e}return 0}function he(A,e){e|=0;var t,r,o,a,f,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0;if(!(r=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(a=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(f=e+16|0)>>3]=-17976931348623157e292,!((0|r)<=0)){for(t=0|n[A+4>>2],w=17976931348623157e292,b=-17976931348623157e292,v=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,p=-17976931348623157e292,s=-17976931348623157e292,y=0;u=+i[t+(y<<4)>>3],d=+i[t+(y<<4)+8>>3],c=+i[t+(((0|(A=A+2|0))==(0|r)?0:A)<<4)+8>>3],u<h&&(i[o>>3]=u,h=u),d<g&&(i[a>>3]=d,g=d),u>p?i[e>>3]=u:u=p,d>s&&(i[f>>3]=d,s=d),w=d>0&d<w?d:w,b=d<0&d>b?d:b,v|=+l(+(d-c))>3.141592653589793,(0|(A=y+1|0))!=(0|r);)m=y,p=u,y=A,A=m;v&&(i[f>>3]=b,i[a>>3]=w)}}function ge(A,e){e|=0;var t,r=0,o=0,a=0,f=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,E=0,k=0,_=0,M=0;if(b=0|n[(A|=0)>>2]){if(i[(v=e+8|0)>>3]=17976931348623157e292,i[(y=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(m=e+16|0)>>3]=-17976931348623157e292,(0|b)>0){for(a=0|n[A+4>>2],p=17976931348623157e292,w=-17976931348623157e292,o=0,r=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,u=-17976931348623157e292,B=0;f=+i[a+(B<<4)>>3],g=+i[a+(B<<4)+8>>3],s=+i[a+(((0|(_=r+2|0))==(0|b)?0:_)<<4)+8>>3],f<c&&(i[v>>3]=f,c=f),g<h&&(i[y>>3]=g,h=g),f>d?i[e>>3]=f:f=d,g>u&&(i[m>>3]=g,u=g),p=g>0&g<p?g:p,w=g<0&g>w?g:w,o|=+l(+(g-s))>3.141592653589793,(0|(r=B+1|0))!=(0|b);)_=B,d=f,B=r,r=_;o&&(i[m>>3]=w,i[y>>3]=p)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(r=0|n[(_=A+8|0)>>2]))<=0)){t=A+12|0,k=0;do{if(a=0|n[t>>2],o=k,y=e+((k=k+1|0)<<5)|0,m=0|n[a+(o<<3)>>2]){if(i[(B=e+(k<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(k<<5)+24|0)>>3]=17976931348623157e292,i[y>>3]=-17976931348623157e292,i[(E=e+(k<<5)+16|0)>>3]=-17976931348623157e292,(0|m)>0){for(b=0|n[a+(o<<3)+4>>2],p=17976931348623157e292,w=-17976931348623157e292,a=0,o=-1,v=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292;f=+i[b+(v<<4)>>3],d=+i[b+(v<<4)+8>>3],s=+i[b+(((0|(o=o+2|0))==(0|m)?0:o)<<4)+8>>3],f<c&&(i[B>>3]=f,c=f),d<h&&(i[A>>3]=d,h=d),f>g?i[y>>3]=f:f=g,d>u&&(i[E>>3]=d,u=d),p=d>0&d<p?d:p,w=d<0&d>w?d:w,a|=+l(+(d-s))>3.141592653589793,(0|(o=v+1|0))!=(0|m);)M=v,v=o,g=f,o=M;a&&(i[E>>3]=w,i[A>>3]=p)}}else n[y>>2]=0,n[y+4>>2]=0,n[y+8>>2]=0,n[y+12>>2]=0,n[y+16>>2]=0,n[y+20>>2]=0,n[y+24>>2]=0,n[y+28>>2]=0,r=0|n[_>>2]}while((0|k)<(0|r))}}function de(A,e,t){var r=0,i=0,o=0;if(!(0|ce(A|=0,e|=0,t|=0)))return 0|(i=0);if((0|n[(i=A+8|0)>>2])<=0)return 0|(i=1);for(r=A+12|0,A=0;;){if(o=A,A=A+1|0,0|ce((0|n[r>>2])+(o<<3)|0,e+(A<<5)|0,t)){A=0,r=6;break}if((0|A)>=(0|n[i>>2])){A=1,r=6;break}}return 6==(0|r)?0|A:0}function pe(A,e,t,r,n){e|=0,t|=0,r|=0,n|=0;var o,a,f,l,u,s,c,h=0;l=+i[(A|=0)>>3],f=+i[e>>3]-l,a=+i[A+8>>3],o=+i[e+8>>3]-a,s=+i[t>>3],h=((h=+i[r>>3]-s)*(a-(c=+i[t+8>>3]))-(l-s)*(u=+i[r+8>>3]-c))/(f*u-o*h),i[n>>3]=l+f*h,i[n+8>>3]=a+o*h}function we(A,e){return e|=0,+l(+(+i[(A|=0)>>3]-+i[e>>3]))<1.1920928955078125e-7?0|(e=+l(+(+i[A+8>>3]-+i[e+8>>3]))<1.1920928955078125e-7):0|(e=0)}function be(A,e){e|=0;var t,r,n;return+((n=+i[(A|=0)>>3]-+i[e>>3])*n+(r=+i[A+8>>3]-+i[e+8>>3])*r+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function ve(A,e,t){t|=0;var r,i,o,a,f=0,l=0,u=0;if(a=F,F=F+32|0,u=a,0|(f=0|jA(A|=0,e|=0,i=a+16|0)))return F=a,0|(t=f);r=0|SA(A,e),o=0|RA(A,e),function(A,e){A=7696+(28*(A|=0)|0)|0,n[(e|=0)>>2]=n[A>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(r,u),f=0|function(A,e){A|=0;var t=0,r=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11120+(216*e|0)>>2])!=(0|A))if((0|n[11120+(216*e|0)+8>>2])!=(0|A))if((0|n[11120+(216*e|0)+16>>2])!=(0|A))if((0|n[11120+(216*e|0)+24>>2])!=(0|A))if((0|n[11120+(216*e|0)+32>>2])!=(0|A))if((0|n[11120+(216*e|0)+40>>2])!=(0|A))if((0|n[11120+(216*e|0)+48>>2])!=(0|A))if((0|n[11120+(216*e|0)+56>>2])!=(0|A))if((0|n[11120+(216*e|0)+64>>2])!=(0|A))if((0|n[11120+(216*e|0)+72>>2])!=(0|A))if((0|n[11120+(216*e|0)+80>>2])!=(0|A))if((0|n[11120+(216*e|0)+88>>2])!=(0|A))if((0|n[11120+(216*e|0)+96>>2])!=(0|A))if((0|n[11120+(216*e|0)+104>>2])!=(0|A))if((0|n[11120+(216*e|0)+112>>2])!=(0|A))if((0|n[11120+(216*e|0)+120>>2])!=(0|A))if((0|n[11120+(216*e|0)+128>>2])!=(0|A)){if((0|n[11120+(216*e|0)+136>>2])!=(0|A)){if((0|n[11120+(216*e|0)+144>>2])==(0|A)){A=0,t=2,r=0;break}if((0|n[11120+(216*e|0)+152>>2])==(0|A)){A=0,t=2,r=1;break}if((0|n[11120+(216*e|0)+160>>2])==(0|A)){A=0,t=2,r=2;break}if((0|n[11120+(216*e|0)+168>>2])==(0|A)){A=1,t=2,r=0;break}if((0|n[11120+(216*e|0)+176>>2])==(0|A)){A=1,t=2,r=1;break}if((0|n[11120+(216*e|0)+184>>2])==(0|A)){A=1,t=2,r=2;break}if((0|n[11120+(216*e|0)+192>>2])==(0|A)){A=2,t=2,r=0;break}if((0|n[11120+(216*e|0)+200>>2])==(0|A)){A=2,t=2,r=1;break}if((0|n[11120+(216*e|0)+208>>2])==(0|A)){A=2,t=2,r=2;break}return-1}A=2,t=1,r=2}else A=2,t=1,r=1;else A=2,t=1,r=0;else A=1,t=1,r=2;else A=1,t=1,r=1;else A=1,t=1,r=0;else A=0,t=1,r=2;else A=0,t=1,r=1;else A=0,t=1,r=0;else A=2,t=0,r=2;else A=2,t=0,r=1;else A=2,t=0,r=0;else A=1,t=0,r=2;else A=1,t=0,r=1;else A=1,t=0,r=0;else A=0,t=0,r=2;else A=0,t=0,r=1;else A=0,t=0,r=0}while(0);return 0|n[11120+(216*e|0)+(72*t|0)+(24*A|0)+(r<<3)+4>>2]}(r,0|n[i>>2]);A:do{if(0|H(r)){switch(0|r){case 4:A=0;break;case 14:A=1;break;case 24:A=2;break;case 38:A=3;break;case 49:A=4;break;case 58:A=5;break;case 63:A=6;break;case 72:A=7;break;case 83:A=8;break;case 97:A=9;break;case 107:A=10;break;case 117:A=11;break;default:f=1;break A}if(l=0|n[22e3+(24*A|0)+8>>2],e=0|n[22e3+(24*A|0)+16>>2],(0|(A=0|n[i>>2]))!=(0|n[u>>2])&&(u=0|Y(r))|(0|(A=0|n[i>>2]))==(0|e)&&(f=(f+1|0)%6|0),3==(0|o)&(0|A)==(0|e)){f=(f+5|0)%6|0,l=22;break}5==(0|o)&(0|A)==(0|l)?(f=(f+1|0)%6|0,l=22):l=22}else l=22}while(0);return 22==(0|l)&&(n[t>>2]=f,f=0),F=a,0|(t=f)}function ye(A,e,t,r){t|=0,r|=0;var i,o,a,f,l,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0;if(l=F,F=F+32|0,y=l+24|0,f=l+20|0,a=l+8|0,o=l+16|0,i=l,g=(g=!(0|UA(A|=0,e|=0)))?6:5,p=0|Ye(0|A,0|e,52),_(),g>>>0<=t>>>0)return F=l,0|(r=2);!(w=!(0|(p&=15)))&&!((b=0|ze(7,0,3*(15^p)|0))&A)&!(_()&e)?u=t:s=4;A:do{if(4==(0|s)){if((0|((u=!!(0|UA(A,e)))?4:5))<(0|t))return F=l,0|(r=1);if(0|ve(A,e,y))return F=l,0|(r=1);if(s=(0|n[y>>2])+t|0,7==(0|(b=0|n[(u=u?22288+((0|s)%5<<2)|0:22320+((0|s)%6<<2)|0)>>2])))return F=l,0|(r=1);n[f>>2]=0,u=0|U(A,e,b,f,a);do{if(!u){if(d=0|n[(h=a)>>2],s=(c=(h=0|n[h+4>>2])>>>0<e>>>0|(0|h)==(0|e)&d>>>0<A>>>0)?d:A,c=c?h:e,!w&&!(d&(w=0|ze(7,0,3*(15^p)|0)))&!(h&_()))u=t;else{if(h=(t+-1+g|0)%(0|g)|0,u=0|UA(A,e),(0|h)<0&&M(23313,23315,245,23324),(0|((g=!!(0|u))?4:5))<(0|h)&&M(23313,23315,245,23324),0|ve(A,e,y)&&M(23313,23315,245,23324),u=(0|n[y>>2])+h|0,7==(0|(h=0|n[(u=g?22288+((0|u)%5<<2)|0:22320+((0|u)%6<<2)|0)>>2]))&&M(23313,23315,245,23324),n[o>>2]=0,0|(u=0|U(A,e,h,o,i)))break;g=0|n[(d=i)>>2],d=0|n[d+4>>2];do{if(d>>>0<c>>>0|(0|d)==(0|c)&g>>>0<s>>>0){if(s=0|UA(g,d)?0|R(g,d,A,e):0|n[22384+(((0|n[o>>2])+(0|n[22352+(h<<2)>>2])|0)%6<<2)>>2],u=0|UA(g,d),(s+-1|0)>>>0>5){u=-1,s=g,c=d;break}if(1==(0|s)&(u=!!(0|u))){u=-1,s=g,c=d;break}do{if(!(0|ve(g,d,y))){if(u){u=(5+(0|n[21936+(s<<2)>>2])-(0|n[y>>2])|0)%5|0;break}u=(6+(0|n[21968+(s<<2)>>2])-(0|n[y>>2])|0)%6|0;break}u=-1}while(0);s=g,c=d}else u=t}while(0);d=0|n[(h=a)>>2],h=0|n[h+4>>2]}if((0|s)==(0|d)&(0|c)==(0|h)){if(A=(g=!!(0|UA(d,h)))?0|R(d,h,A,e):0|n[22384+(((0|n[f>>2])+(0|n[22352+(b<<2)>>2])|0)%6<<2)>>2],u=0|UA(d,h),(A+-1|0)>>>0<=5&&!(1==(0|A)&(v=!!(0|u))))do{if(!(0|ve(d,h,y))){if(v){u=(5+(0|n[21936+(A<<2)>>2])-(0|n[y>>2])|0)%5|0;break}u=(6+(0|n[21968+(A<<2)>>2])-(0|n[y>>2])|0)%6|0;break}u=-1}while(0);else u=-1;u=6==(0|(u=u+1|0))|g&5==(0|u)?0:u}e=c,A=s;break A}}while(0);return F=l,0|(r=u)}}while(0);return v=0|ze(0|u,0,56),y=_()|-2130706433&e|536870912,n[r>>2]=v|A,n[r+4>>2]=y,F=l,0|(r=0)}function me(A,e,t){A|=0,t|=0;var r=0;(0|(e|=0))>0?(r=0|Ie(e,4),n[A>>2]=r,r||M(23337,23360,40,23374)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=t}function Be(A){var e,t,r,o=0,a=0,f=0,u=0;e=(A|=0)+4|0,t=A+12|0,r=A+8|0;A:for(;;){for(a=0|n[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(f=0|n[A>>2],u=0|n[f+(o<<2)>>2])break;o=o+1|0}o=f+(~~(+l(+ +s(10,+ +(15-(0|n[t>>2])|0))*(+i[u>>3]+ +i[u+8>>3]))%+(0|a))>>>0<<2)|0,a=0|n[o>>2];e:do{if(0|a){if(f=u+32|0,(0|a)==(0|u))n[o>>2]=n[f>>2];else{if(!(o=0|n[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|u);)if(!(o=0|n[(a=o+32|0)>>2]))break e;n[a>>2]=n[f>>2]}Ce(u),n[r>>2]=(0|n[r>>2])-1}}while(0)}Ce(0|n[A>>2])}function Ee(A){var e,t=0,r=0;for(e=0|n[(A|=0)+4>>2],r=0;;){if((0|r)>=(0|e)){t=0,r=4;break}if(t=0|n[(0|n[A>>2])+(r<<2)>>2]){r=4;break}r=r+1|0}return 4==(0|r)?0|t:0}function ke(A,e){e|=0;var t=0,r=0,o=0,a=0;if(t=~~(+l(+ +s(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,t=(0|n[A>>2])+(t<<2)|0,!(r=0|n[t>>2]))return 0|(a=1);a=e+32|0;do{if((0|r)!=(0|e)){if(!(t=0|n[r+32>>2]))return 0|(a=1);for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|n[o+32>>2])){t=1,o=10;break}r=o,o=t}if(8==(0|o)){n[r+32>>2]=n[a>>2];break}if(10==(0|o))return 0|t}else n[t>>2]=n[a>>2]}while(0);return Ce(e),n[(a=A+8|0)>>2]=(0|n[a>>2])-1,0|(a=0)}function _e(A,e,t){A|=0,e|=0,t|=0;var r,o=0,a=0,f=0;(r=0|De(40))||M(23390,23360,98,23403),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[(a=r+16|0)>>2]=n[t>>2],n[a+4>>2]=n[t+4>>2],n[a+8>>2]=n[t+8>>2],n[a+12>>2]=n[t+12>>2],n[r+32>>2]=0,a=~~(+l(+ +s(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,a=(0|n[A>>2])+(a<<2)|0,o=0|n[a>>2];do{if(o){for(;!(0|$A(o,e)&&0|$A(o+16|0,t));)if(a=0|n[o+32>>2],!(0|n[(o=0|a?a:o)+32>>2])){f=10;break}if(10==(0|f)){n[o+32>>2]=r;break}return Ce(r),0|(f=o)}n[a>>2]=r}while(0);return n[(f=A+8|0)>>2]=1+(0|n[f>>2]),0|(f=r)}function Me(A,e,t){e|=0,t|=0;var r=0,o=0;if(o=~~(+l(+ +s(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0|(t=0);if(!t){for(A=o;;){if(0|$A(A,e)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}if(10==(0|r))return 0|A}for(A=o;;){if(0|$A(A,e)&&0|$A(A+16|0,t)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}return 10==(0|r)?0|A:0}function Qe(A,e){e|=0;var t=0;if(t=~~(+l(+ +s(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(t<<2)>>2]))return 0|(t=0);for(;;){if(0|$A(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function xe(A){return 0|+function(A){return+ +We(+(A=+A))}(A=+A)}function De(A){A|=0;var e,t=0,r=0,i=0,o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0;e=F,F=F+16|0,g=e;do{if(A>>>0<245){if(A=(s=A>>>0<11?16:A+11&-8)>>>3,3&(r=(h=0|n[5857])>>>A))return i=0|n[(r=(A=23468+((t=(1&r^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|n[(o=i+8|0)>>2]))==(0|A)?n[5857]=h&~(1<<t):(n[a+12>>2]=A,n[r>>2]=a),B=t<<3,n[i+4>>2]=3|B,n[(B=i+B+4|0)>>2]=1|n[B>>2],F=e,0|(B=o);if(s>>>0>(c=0|n[5859])>>>0){if(0|r)return t=((t=r<<A&((t=2<<A)|0-t))&0-t)-1|0,a=0|n[(A=(t=23468+((i=((r=(t>>>=l=t>>>12&16)>>>5&8)|l|(a=(t>>>=r)>>>2&4)|(A=(t>>>=a)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(r=0|n[(l=a+8|0)>>2]))==(0|t)?(A=h&~(1<<i),n[5857]=A):(n[r+12>>2]=t,n[A>>2]=r,A=h),f=(B=i<<3)-s|0,n[a+4>>2]=3|s,n[(o=a+s|0)+4>>2]=1|f,n[a+B>>2]=f,0|c&&(i=0|n[5862],r=23468+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5857]=A|t,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[5859]=f,n[5862]=o,F=e,0|(B=l);if(a=0|n[5858]){for(r=(a&0-a)-1|0,r=u=0|n[23732+(((i=(r>>>=o=r>>>12&16)>>>5&8)|o|(f=(r>>>=i)>>>2&4)|(l=(r>>>=f)>>>1&2)|(u=(r>>>=l)>>>1&1))+(r>>>u)<<2)>>2],l=u,u=(-8&n[u+4>>2])-s|0;(A=0|n[r+16>>2])||(A=0|n[r+20>>2]);)r=A,l=(o=(f=(-8&n[A+4>>2])-s|0)>>>0<u>>>0)?A:l,u=o?f:u;if((f=l+s|0)>>>0>l>>>0){o=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){r=0;break}for(;;)if(r=0|n[(i=t+20|0)>>2])t=r,A=i;else{if(!(r=0|n[(i=t+16|0)>>2]))break;t=r,A=i}n[A>>2]=0,r=t}else r=0|n[l+8>>2],n[r+12>>2]=t,n[t+8>>2]=r,r=t}while(0);do{if(0|o){if(t=0|n[l+28>>2],(0|l)==(0|n[(A=23732+(t<<2)|0)>>2])){if(n[A>>2]=r,!r){n[5858]=a&~(1<<t);break}}else if(n[((0|n[(B=o+16|0)>>2])==(0|l)?B:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(t=0|n[l+16>>2])&&(n[r+16>>2]=t,n[t+24>>2]=r),0|(t=0|n[l+20>>2])&&(n[r+20>>2]=t,n[t+24>>2]=r)}}while(0);return u>>>0<16?(B=u+s|0,n[l+4>>2]=3|B,n[(B=l+B+4|0)>>2]=1|n[B>>2]):(n[l+4>>2]=3|s,n[f+4>>2]=1|u,n[f+u>>2]=u,0|c&&(i=0|n[5862],r=23468+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|n[(A=r+8|0)>>2]:(n[5857]=t|h,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[5859]=u,n[5862]=f),F=e,0|(B=l+8|0)}h=s}else h=s}else h=s}else if(A>>>0<=4294967231)if(s=-8&(A=A+11|0),i=0|n[5858]){o=0-s|0,u=(A>>>=8)?s>>>0>16777215?31:s>>>((u=14-((l=((w=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(u=((w<<=l)+245760|0)>>>16&2))+(w<<u>>>15)|0)+7|0)&1|u<<1:0,r=0|n[23732+(u<<2)>>2];A:do{if(r)for(A=0,l=s<<(31==(0|u)?0:25-(u>>>1)),a=0;;){if((f=(-8&n[r+4>>2])-s|0)>>>0<o>>>0){if(!f){A=r,o=0,w=65;break A}A=r,o=f}if(a=!(0|(w=0|n[r+20>>2]))|(0|w)==(0|(r=0|n[r+16+(l>>>31<<2)>>2]))?a:w,!r){r=a,w=61;break}l<<=1}else r=0,A=0,w=61}while(0);if(61==(0|w)){if(!(0|r)&!(0|A)){if(!(A=((A=2<<u)|0-A)&i)){h=s;break}h=(A&0-A)-1|0,A=0,r=0|n[23732+(((a=(h>>>=f=h>>>12&16)>>>5&8)|f|(l=(h>>>=a)>>>2&4)|(u=(h>>>=l)>>>1&2)|(r=(h>>>=u)>>>1&1))+(h>>>r)<<2)>>2]}r?w=65:(l=A,f=o)}if(65==(0|w))for(a=r;;){if(o=(r=(h=(-8&n[a+4>>2])-s|0)>>>0<o>>>0)?h:o,A=r?a:A,(r=0|n[a+16>>2])||(r=0|n[a+20>>2]),!r){l=A,f=o;break}a=r}if(0|l&&f>>>0<((0|n[5859])-s|0)>>>0&&(c=l+s|0)>>>0>l>>>0){a=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){t=0;break}for(;;)if(r=0|n[(o=t+20|0)>>2])t=r,A=o;else{if(!(r=0|n[(o=t+16|0)>>2]))break;t=r,A=o}n[A>>2]=0}else B=0|n[l+8>>2],n[B+12>>2]=t,n[t+8>>2]=B}while(0);do{if(a){if(A=0|n[l+28>>2],(0|l)==(0|n[(r=23732+(A<<2)|0)>>2])){if(n[r>>2]=t,!t){i&=~(1<<A),n[5858]=i;break}}else if(n[((0|n[(B=a+16|0)>>2])==(0|l)?B:a+20)>>2]=t,!t)break;n[t+24>>2]=a,0|(A=0|n[l+16>>2])&&(n[t+16>>2]=A,n[A+24>>2]=t),(A=0|n[l+20>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);A:do{if(f>>>0<16)B=f+s|0,n[l+4>>2]=3|B,n[(B=l+B+4|0)>>2]=1|n[B>>2];else{if(n[l+4>>2]=3|s,n[c+4>>2]=1|f,n[c+f>>2]=f,t=f>>>3,f>>>0<256){r=23468+(t<<1<<2)|0,(A=0|n[5857])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5857]=A|t,t=r,A=r+8|0),n[A>>2]=c,n[t+12>>2]=c,n[c+8>>2]=t,n[c+12>>2]=r;break}if(t=23732+((r=(t=f>>>8)?f>>>0>16777215?31:f>>>((r=14-((y=((B=t<<(m=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|m|(r=((B<<=y)+245760|0)>>>16&2))+(B<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[c+28>>2]=r,n[(A=c+16|0)+4>>2]=0,n[A>>2]=0,!(i&(A=1<<r))){n[5858]=i|A,n[t>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break}t=0|n[t>>2];e:do{if((-8&n[t+4>>2])!=(0|f)){for(i=f<<(31==(0|r)?0:25-(r>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|f)){t=A;break e}i<<=1,t=A}n[r>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);B=0|n[(m=t+8|0)>>2],n[B+12>>2]=c,n[m>>2]=c,n[c+8>>2]=B,n[c+12>>2]=t,n[c+24>>2]=0}}while(0);return F=e,0|(B=l+8|0)}h=s}else h=s;else h=-1}while(0);if((r=0|n[5859])>>>0>=h>>>0)return t=r-h|0,A=0|n[5862],t>>>0>15?(B=A+h|0,n[5862]=B,n[5859]=t,n[B+4>>2]=1|t,n[A+r>>2]=t,n[A+4>>2]=3|h):(n[5859]=0,n[5862]=0,n[A+4>>2]=3|r,n[(B=A+r+4|0)>>2]=1|n[B>>2]),F=e,0|(B=A+8|0);if((f=0|n[5860])>>>0>h>>>0)return y=f-h|0,n[5860]=y,m=(B=0|n[5863])+h|0,n[5863]=m,n[m+4>>2]=1|y,n[B+4>>2]=3|h,F=e,0|(B=B+8|0);if(0|n[5975]?A=0|n[5977]:(n[5977]=4096,n[5976]=4096,n[5978]=-1,n[5979]=-1,n[5980]=0,n[5968]=0,n[5975]=-16&g^1431655768,A=4096),l=h+48|0,(s=(a=A+(u=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return F=e,0|(B=0);if(0|(A=0|n[5967])&&(g=(c=0|n[5965])+s|0)>>>0<=c>>>0|g>>>0>A>>>0)return F=e,0|(B=0);A:do{if(4&n[5968])t=0,w=143;else{r=0|n[5863];e:do{if(r){for(i=23876;!((g=0|n[i>>2])>>>0<=r>>>0&&(g+(0|n[i+4>>2])|0)>>>0>r>>>0);){if(!(A=0|n[i+8>>2])){w=128;break e}i=A}if((t=a-f&o)>>>0<2147483647)if((0|(A=0|Xe(0|t)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){f=t,a=A,w=145;break A}}else i=A,w=136;else t=0}else w=128}while(0);do{if(128==(0|w))if(-1!=(0|(r=0|Xe(0)))&&(t=r,p=(t=((p=(d=0|n[5976])+-1|0)&t?(p+t&0-d)-t|0:0)+s|0)+(d=0|n[5965])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(g=0|n[5967])&&p>>>0<=d>>>0|p>>>0>g>>>0){t=0;break}if((0|(A=0|Xe(0|t)))==(0|r)){f=t,a=r,w=145;break A}i=A,w=136}else t=0}while(0);do{if(136==(0|w)){if(r=0-t|0,!(l>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}f=t,a=i,w=145;break A}if((A=u-t+(A=0|n[5977])&0-A)>>>0>=2147483647){f=t,a=i,w=145;break A}if(-1==(0|Xe(0|A))){Xe(0|r),t=0;break}f=A+t|0,a=i,w=145;break A}}while(0);n[5968]=4|n[5968],w=143}}while(0);if(143==(0|w)&&s>>>0<2147483647&&!(-1==(0|(y=0|Xe(0|s)))|1^(v=(b=(p=0|Xe(0))-y|0)>>>0>(h+40|0)>>>0)|y>>>0<p>>>0&-1!=(0|y)&-1!=(0|p)^1)&&(f=v?b:t,a=y,w=145),145==(0|w)){t=(0|n[5965])+f|0,n[5965]=t,t>>>0>(0|n[5966])>>>0&&(n[5966]=t),u=0|n[5863];A:do{if(u){for(t=23876;;){if((0|a)==((A=0|n[t>>2])+(r=0|n[t+4>>2])|0)){w=154;break}if(!(i=0|n[t+8>>2]))break;t=i}if(!(154!=(0|w)||(m=t+4|0,8&n[t+12>>2]))&&a>>>0>u>>>0&A>>>0<=u>>>0){n[m>>2]=r+f,m=u+(y=7&(y=u+8|0)?0-y&7:0)|0,y=(B=(0|n[5860])+f|0)-y|0,n[5863]=m,n[5860]=y,n[m+4>>2]=1|y,n[u+B+4>>2]=40,n[5864]=n[5979];break}for(a>>>0<(0|n[5861])>>>0&&(n[5861]=a),r=a+f|0,t=23876;;){if((0|n[t>>2])==(0|r)){w=162;break}if(!(A=0|n[t+8>>2]))break;t=A}if(162==(0|w)&&!(8&n[t+12>>2])){n[t>>2]=a,n[(c=t+4|0)>>2]=(0|n[c>>2])+f,s=(c=a+(7&(c=a+8|0)?0-c&7:0)|0)+h|0,l=(t=r+(7&(t=r+8|0)?0-t&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|u)==(0|t))B=(0|n[5860])+l|0,n[5860]=B,n[5863]=s,n[s+4>>2]=1|B;else{if((0|n[5862])==(0|t)){B=(0|n[5859])+l|0,n[5859]=B,n[5862]=s,n[s+4>>2]=1|B,n[s+B>>2]=B;break}if(1==(3&(A=0|n[t+4>>2]))){f=-8&A,i=A>>>3;t:do{if(A>>>0<256){if(A=0|n[t+8>>2],(0|(r=0|n[t+12>>2]))==(0|A)){n[5857]=n[5857]&~(1<<i);break}n[A+12>>2]=r,n[r+8>>2]=A;break}a=0|n[t+24>>2],A=0|n[t+12>>2];do{if((0|A)==(0|t)){if(A=0|n[(i=(r=t+16|0)+4|0)>>2])r=i;else if(!(A=0|n[r>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,r=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,r=o}n[r>>2]=0}else B=0|n[t+8>>2],n[B+12>>2]=A,n[A+8>>2]=B}while(0);if(!a)break;i=23732+((r=0|n[t+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|t)){if(n[i>>2]=A,0|A)break;n[5858]=n[5858]&~(1<<r);break t}if(n[((0|n[(B=a+16|0)>>2])==(0|t)?B:a+20)>>2]=A,!A)break t}while(0);if(n[A+24>>2]=a,0|(i=0|n[(r=t+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(r=0|n[r+4>>2]))break;n[A+20>>2]=r,n[r+24>>2]=A}while(0);t=t+f|0,o=f+l|0}else o=l;if(n[(t=t+4|0)>>2]=-2&n[t>>2],n[s+4>>2]=1|o,n[s+o>>2]=o,t=o>>>3,o>>>0<256){r=23468+(t<<1<<2)|0,(A=0|n[5857])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5857]=A|t,t=r,A=r+8|0),n[A>>2]=s,n[t+12>>2]=s,n[s+8>>2]=t,n[s+12>>2]=r;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((y=((B=t<<(m=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|m|(i=((B<<=y)+245760|0)>>>16&2))+(B<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(t=23732+(i<<2)|0,n[s+28>>2]=i,n[(A=s+16|0)+4>>2]=0,n[A>>2]=0,!((A=0|n[5858])&(r=1<<i))){n[5858]=A|r,n[t>>2]=s,n[s+24>>2]=t,n[s+12>>2]=s,n[s+8>>2]=s;break}t=0|n[t>>2];t:do{if((-8&n[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}n[r>>2]=s,n[s+24>>2]=t,n[s+12>>2]=s,n[s+8>>2]=s;break e}}while(0);B=0|n[(m=t+8|0)>>2],n[B+12>>2]=s,n[m>>2]=s,n[s+8>>2]=B,n[s+12>>2]=t,n[s+24>>2]=0}}while(0);return F=e,0|(B=c+8|0)}for(t=23876;!((A=0|n[t>>2])>>>0<=u>>>0&&(B=A+(0|n[t+4>>2])|0)>>>0>u>>>0);)t=0|n[t+8>>2];t=(A=(A=(o=B+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=u+16|0)>>>0?u:A)+8|0,m=a+(y=7&(y=a+8|0)?0-y&7:0)|0,y=(r=f+-40|0)-y|0,n[5863]=m,n[5860]=y,n[m+4>>2]=1|y,n[a+r+4>>2]=40,n[5864]=n[5979],n[(r=A+4|0)>>2]=27,n[t>>2]=n[5969],n[t+4>>2]=n[5970],n[t+8>>2]=n[5971],n[t+12>>2]=n[5972],n[5969]=a,n[5970]=f,n[5972]=0,n[5971]=t,t=A+24|0;do{m=t,n[(t=t+4|0)>>2]=7}while((m+8|0)>>>0<B>>>0);if((0|A)!=(0|u)){if(a=A-u|0,n[r>>2]=-2&n[r>>2],n[u+4>>2]=1|a,n[A>>2]=a,t=a>>>3,a>>>0<256){r=23468+(t<<1<<2)|0,(A=0|n[5857])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5857]=A|t,t=r,A=r+8|0),n[A>>2]=u,n[t+12>>2]=u,n[u+8>>2]=t,n[u+12>>2]=r;break}if(r=23732+((i=(t=a>>>8)?a>>>0>16777215?31:a>>>((i=14-((y=((B=t<<(m=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|m|(i=((B<<=y)+245760|0)>>>16&2))+(B<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,n[u+28>>2]=i,n[u+20>>2]=0,n[o>>2]=0,!((t=0|n[5858])&(A=1<<i))){n[5858]=t|A,n[r>>2]=u,n[u+24>>2]=r,n[u+12>>2]=u,n[u+8>>2]=u;break}t=0|n[r>>2];e:do{if((-8&n[t+4>>2])!=(0|a)){for(i=a<<(31==(0|i)?0:25-(i>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}n[r>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break A}}while(0);B=0|n[(m=t+8|0)>>2],n[B+12>>2]=u,n[m>>2]=u,n[u+8>>2]=B,n[u+12>>2]=t,n[u+24>>2]=0}}else!(0|(B=0|n[5861]))|a>>>0<B>>>0&&(n[5861]=a),n[5969]=a,n[5970]=f,n[5972]=0,n[5866]=n[5975],n[5865]=-1,n[5870]=23468,n[5869]=23468,n[5872]=23476,n[5871]=23476,n[5874]=23484,n[5873]=23484,n[5876]=23492,n[5875]=23492,n[5878]=23500,n[5877]=23500,n[5880]=23508,n[5879]=23508,n[5882]=23516,n[5881]=23516,n[5884]=23524,n[5883]=23524,n[5886]=23532,n[5885]=23532,n[5888]=23540,n[5887]=23540,n[5890]=23548,n[5889]=23548,n[5892]=23556,n[5891]=23556,n[5894]=23564,n[5893]=23564,n[5896]=23572,n[5895]=23572,n[5898]=23580,n[5897]=23580,n[5900]=23588,n[5899]=23588,n[5902]=23596,n[5901]=23596,n[5904]=23604,n[5903]=23604,n[5906]=23612,n[5905]=23612,n[5908]=23620,n[5907]=23620,n[5910]=23628,n[5909]=23628,n[5912]=23636,n[5911]=23636,n[5914]=23644,n[5913]=23644,n[5916]=23652,n[5915]=23652,n[5918]=23660,n[5917]=23660,n[5920]=23668,n[5919]=23668,n[5922]=23676,n[5921]=23676,n[5924]=23684,n[5923]=23684,n[5926]=23692,n[5925]=23692,n[5928]=23700,n[5927]=23700,n[5930]=23708,n[5929]=23708,n[5932]=23716,n[5931]=23716,m=a+(y=7&(y=a+8|0)?0-y&7:0)|0,y=(B=f+-40|0)-y|0,n[5863]=m,n[5860]=y,n[m+4>>2]=1|y,n[a+B+4>>2]=40,n[5864]=n[5979]}while(0);if((t=0|n[5860])>>>0>h>>>0)return y=t-h|0,n[5860]=y,m=(B=0|n[5863])+h|0,n[5863]=m,n[m+4>>2]=1|y,n[B+4>>2]=3|h,F=e,0|(B=B+8|0)}return n[(B=23424)>>2]=12,F=e,0|(B=0)}function Ce(A){var e=0,t=0,r=0,i=0,o=0,a=0,f=0,l=0;if(A|=0){t=A+-8|0,i=0|n[5861],l=t+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)f=t,a=t;else{if(r=0|n[t>>2],!(3&A))return;if(o=r+e|0,(a=t+(0-r)|0)>>>0<i>>>0)return;if((0|n[5862])==(0|a)){if(3&~(e=0|n[(A=l+4|0)>>2])){f=a,e=o;break}return n[5859]=o,n[A>>2]=-2&e,n[a+4>>2]=1|o,void(n[a+o>>2]=o)}if(t=r>>>3,r>>>0<256){if(A=0|n[a+8>>2],(0|(e=0|n[a+12>>2]))==(0|A)){n[5857]=n[5857]&~(1<<t),f=a,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,f=a,e=o;break}i=0|n[a+24>>2],A=0|n[a+12>>2];do{if((0|A)==(0|a)){if(A=0|n[(t=(e=a+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0}else f=0|n[a+8>>2],n[f+12>>2]=A,n[A+8>>2]=f}while(0);if(i){if(e=0|n[a+28>>2],(0|n[(t=23732+(e<<2)|0)>>2])==(0|a)){if(n[t>>2]=A,!A){n[5858]=n[5858]&~(1<<e),f=a,e=o;break}}else if(n[((0|n[(f=i+16|0)>>2])==(0|a)?f:i+20)>>2]=A,!A){f=a,e=o;break}n[A+24>>2]=i,0|(t=0|n[(e=a+16|0)>>2])&&(n[A+16>>2]=t,n[t+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,f=a,e=o):(f=a,e=o)}else f=a,e=o}}while(0);if(!(a>>>0>=l>>>0)&&1&(r=0|n[(A=l+4|0)>>2])){if(2&r)n[A>>2]=-2&r,n[f+4>>2]=1|e,n[a+e>>2]=e,i=e;else{if((0|n[5863])==(0|l)){if(l=(0|n[5860])+e|0,n[5860]=l,n[5863]=f,n[f+4>>2]=1|l,(0|f)!=(0|n[5862]))return;return n[5862]=0,void(n[5859]=0)}if((0|n[5862])==(0|l))return l=(0|n[5859])+e|0,n[5859]=l,n[5862]=a,n[f+4>>2]=1|l,void(n[a+l>>2]=l);i=(-8&r)+e|0,t=r>>>3;do{if(r>>>0<256){if(e=0|n[l+8>>2],(0|(A=0|n[l+12>>2]))==(0|e)){n[5857]=n[5857]&~(1<<t);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[l+24>>2],A=0|n[l+12>>2];do{if((0|A)==(0|l)){if(A=0|n[(t=(e=l+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){t=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0,t=A}else t=0|n[l+8>>2],n[t+12>>2]=A,n[A+8>>2]=t,t=A}while(0);if(0|o){if(A=0|n[l+28>>2],(0|n[(e=23732+(A<<2)|0)>>2])==(0|l)){if(n[e>>2]=t,!t){n[5858]=n[5858]&~(1<<A);break}}else if(n[((0|n[(r=o+16|0)>>2])==(0|l)?r:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(e=0|n[(A=l+16|0)>>2])&&(n[t+16>>2]=e,n[e+24>>2]=t),0|(A=0|n[A+4>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);if(n[f+4>>2]=1|i,n[a+i>>2]=i,(0|f)==(0|n[5862]))return void(n[5859]=i)}if(A=i>>>3,i>>>0<256)return t=23468+(A<<1<<2)|0,(e=0|n[5857])&(A=1<<A)?A=0|n[(e=t+8|0)>>2]:(n[5857]=e|A,A=t,e=t+8|0),n[e>>2]=f,n[A+12>>2]=f,n[f+8>>2]=A,void(n[f+12>>2]=t);A=23732+((r=(A=i>>>8)?i>>>0>16777215?31:i>>>((r=14-((o=((l=A<<(a=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(r=((l<<=o)+245760|0)>>>16&2))+(l<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[f+28>>2]=r,n[f+20>>2]=0,n[f+16>>2]=0,e=0|n[5858],t=1<<r;A:do{if(e&t){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(r=i<<(31==(0|r)?0:25-(r>>>1));e=0|n[(t=A+16+(r>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}r<<=1,A=e}n[t>>2]=f,n[f+24>>2]=A,n[f+12>>2]=f,n[f+8>>2]=f;break A}}while(0);l=0|n[(a=A+8|0)>>2],n[l+12>>2]=f,n[a>>2]=f,n[f+8>>2]=l,n[f+12>>2]=A,n[f+24>>2]=0}else n[5858]=e|t,n[A>>2]=f,n[f+24>>2]=A,n[f+12>>2]=f,n[f+8>>2]=f}while(0);if(l=(0|n[5865])-1|0,n[5865]=l,!(0|l)){for(A=23884;A=0|n[A>>2];)A=A+8|0;n[5865]=-1}}}}function Ie(A,e){e|=0;var t=0;return(A|=0)?(t=0|y(e,A),(e|A)>>>0>65535&&(t=((t>>>0)/(A>>>0)|0)==(0|e)?t:-1)):t=0,(A=0|De(t))&&3&n[A+-4>>2]?(Ze(0|A,0,0|t),0|A):0|A}function Fe(A,e,t,r){return 0|(k((e|=0)+(r|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}function Se(A,e,t,r){return 0|(k(0|(r=(e|=0)-(r|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function Pe(A){return 0|((A|=0)?31-(0|E(A^A-1)):32)}function Ge(A,e,t,r,i){i|=0;var o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0;if(s=A|=0,a=t|=0,f=h=r|=0,!(u=l=e|=0))return o=!!(0|i),f?o?(n[i>>2]=0|A,n[i+4>>2]=0,i=0,0|(k(0|(h=0)),i)):(i=0,0|(k(0|(h=0)),i)):(o&&(n[i>>2]=(s>>>0)%(a>>>0),n[i+4>>2]=0),i=(s>>>0)/(a>>>0)>>>0,0|(k(0|(h=0)),i));o=!(0|f);do{if(a){if(!o){if((o=(0|E(0|f))-(0|E(0|u))|0)>>>0<=31){a=c=o+1|0,A=s>>>(c>>>0)&(e=o-31>>31)|u<<(f=31-o|0),e&=u>>>(c>>>0),o=0,f=s<<f;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|l,i=0,0|(k(0|(h=0)),i)):(i=0,0|(k(0|(h=0)),i))}if((o=a-1|0)&a){a=f=33+(0|E(0|a))-(0|E(0|u))|0,A=(c=32-f|0)-1>>31&u>>>((g=f-32|0)>>>0)|(u<<c|s>>>(f>>>0))&(e=g>>31),e&=u>>>(f>>>0),o=s<<(d=64-f|0)&(l=c>>31),f=(u<<d|s>>>(g>>>0))&l|s<<c&f-33>>31;break}return 0|i&&(n[i>>2]=o&s,n[i+4>>2]=0),1==(0|a)?(d=0|A,0|(k(0|(g=0|l)),d)):(g=u>>>((d=0|Pe(0|a))>>>0)|0,d=u<<32-d|s>>>(d>>>0),0|(k(0|g),d))}if(o)return 0|i&&(n[i>>2]=(u>>>0)%(a>>>0),n[i+4>>2]=0),d=(u>>>0)/(a>>>0)>>>0,0|(k(0|(g=0)),d);if(!s)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(u>>>0)%(f>>>0)),d=(u>>>0)/(f>>>0)>>>0,0|(k(0|(g=0)),d);if(!((o=f-1|0)&f))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&u),g=0,d=u>>>((0|Pe(0|f))>>>0),0|(k(0|g),d);if((o=(0|E(0|f))-(0|E(0|u))|0)>>>0<=30){a=e=o+1|0,A=u<<(f=31-o|0)|s>>>(e>>>0),e=u>>>(e>>>0),o=0,f=s<<f;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|l,d=0,0|(k(0|(g=0)),d)):(d=0,0|(k(0|(g=0)),d))}while(0);if(a){u=0|Fe(0|(c=0|t),0|(s=0|h),-1,-1),t=0|_(),l=f,f=0;do{r=l,l=o>>>31|l<<1,o=f|o<<1,Se(0|u,0|t,0|(r=A<<1|r>>>31),0|(h=A>>>31|e<<1)),f=1&(g=(d=0|_())>>31|((0|d)<0?-1:0)<<1),A=0|Se(0|r,0|h,g&c,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&s),e=0|_(),a=a-1|0}while(0|a);u=l,l=0}else u=f,l=0,f=0;return a=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),d=o<<1&-2|f,0|(k(0|(g=(0|o)>>>31|(u|a)<<1|l)),d)}function Te(A,e,t,r){t|=0;var n,i,o,a,f;return i=(r|=0)>>31|((0|r)<0?-1:0)<<1,n=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,o=0|Se((f=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0),(a=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e,0|f,0|a),A=i^f,e=n^a,0|Se(Ge(o,0|_(),0|Se(i^t,n^r,0|i,0|n),0|_(),0)^A,_()^e,0|A,0|e)}function Ue(A,e,t,r){e|=0,r|=0;var n,i;return t=0|function(A,e){var t,r,n,i=0;return A=((t=0|y(i=65535&(e|=0),n=65535&(A|=0)))>>>16)+(0|y(i,r=A>>>16))|0,e=0|y(i=e>>>16,n),0|(k((A>>>16)+(0|y(i,r))+(((65535&A)+e|0)>>>16)|0),A+e<<16|65535&t)}(n=A|=0,i=t|=0),A=0|_(),0|(k((0|y(e,i))+(0|y(r,n))+A|0),t)}function Re(A,e,t,r){t|=0;var i,o,a,f,l,u;return i=F,F=F+16|0,f=0|i,u=(r|=0)>>31|((0|r)<0?-1:0)<<1,l=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,Ge(A=0|Se((a=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0),(o=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e,0|a,0|o),e=0|_(),0|Se(u^t,l^r,0|u,0|l),0|_(),f),r=0|Se(n[f>>2]^a,n[f+4>>2]^o,0|a,0|o),t=0|_(),F=i,0|(k(0|t),r)}function Le(A,e,t,r){var i,o;return o=F,F=F+16|0,Ge(A|=0,e|=0,t|=0,r|=0,i=0|o),F=o,0|(k(0|n[i+4>>2]),n[i>>2])}function He(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(k(e>>t),A>>>t|(e&(1<<t)-1)<<32-t):(k(0|((0|e)<0?-1:0)),e>>t-32)}function Ye(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(k(e>>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(k(0),e>>>t-32|0)}function ze(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(k(e<<t|(A&(1<<t)-1<<32-t)>>>32-t),A<<t):(k(A<<t-32),0)}function Oe(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+B(+A,+e)}function Ne(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+m(+A,+e)}function Ve(A){return(A=+A)>=0?+f(A+.5):+v(A-.5)}function je(A,e,t){A|=0,e|=0;var i,o,a=0;if((0|(t|=0))>=8192)return D(0|A,0|e,0|t),0|A;if(o=0|A,i=A+t|0,(3&A)==(3&e)){for(;3&A;){if(!t)return 0|o;r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0,t=t-1|0}for(a=(t=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)r[A|0]=0|r[e|0],r[A+1|0]=0|r[e+1|0],r[A+2|0]=0|r[e+2|0],r[A+3|0]=0|r[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0;return 0|o}function Ze(A,e,t){e|=0;var i,o=0,a=0,f=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)r[A|0]=e,A=A+1|0;for(f=e|e<<8|e<<16|e<<24,a=(o=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=f,n[A+4>>2]=f,n[A+8>>2]=f,n[A+12>>2]=f,n[A+16>>2]=f,n[A+20>>2]=f,n[A+24>>2]=f,n[A+28>>2]=f,n[A+32>>2]=f,n[A+36>>2]=f,n[A+40>>2]=f,n[A+44>>2]=f,n[A+48>>2]=f,n[A+52>>2]=f,n[A+56>>2]=f,n[A+60>>2]=f,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=f,A=A+4|0}for(;(0|A)<(0|i);)r[A|0]=e,A=A+1|0;return i-t|0}function We(A){return(A=+A)>=0?+f(A+.5):+v(A-.5)}function Xe(A){A|=0;var e,t,r;return r=0|x(),(0|A)>0&(0|(e=(t=0|n[a>>2])+A|0))<(0|t)|(0|e)<0?(I(0|e),Q(12),-1):(0|e)>(0|r)&&!(0|C(0|e))?(Q(12),-1):(n[a>>2]=e,0|t)}return{___divdi3:Te,___muldi3:Ue,___remdi3:Re,___uremdi3:Le,_areNeighborCells:function(A,e,t,r,i){i|=0;var o,a,f,l=0,u=0,s=0,c=0;if(f=F,F=F+64|0,a=f,o=f+56|0,!(!0&134217728==(2013265920&(e|=0))&!0&134217728==(2013265920&(r|=0))))return F=f,0|(i=5);if((0|(A|=0))==(0|(t|=0))&(0|e)==(0|r))return n[i>>2]=0,F=f,0|(i=0);if(u=0|Ye(0|A,0|e,52),_(),u&=15,c=0|Ye(0|t,0|r,52),_(),(0|u)!=(15&c))return F=f,0|(i=12);if(l=u+-1|0,u>>>0>1){GA(A,e,l,a),GA(t,r,l,o),s=0|n[(c=a)>>2],c=0|n[c+4>>2];A:do{if((0|s)==(0|n[o>>2])&&(0|c)==(0|n[o+4>>2])){l=0|Ye(0|A,0|e,0|(u=3*(15^u)|0)),_(),l&=7,u=0|Ye(0|t,0|r,0|u),_(),u&=7;do{if(!(0|l)|!(0|u))n[i>>2]=1,l=0;else if(7==(0|l))l=5;else{if(1==(0|l)|1==(0|u)&&0|UA(s,c)){l=5;break}if((0|n[15536+(l<<2)>>2])!=(0|u)&&(0|n[15568+(l<<2)>>2])!=(0|u))break A;n[i>>2]=1,l=0}}while(0);return F=f,0|(i=l)}}while(0)}u=(l=a)+56|0;do{n[l>>2]=0,l=l+4|0}while((0|l)<(0|u));return S(A,e,1,a),l=(0|n[(e=a)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+8|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+16|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+24|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+32|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+40|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)?1:1&((0|n[(l=a+48|0)>>2])==(0|t)?(0|n[l+4>>2])==(0|r):0),n[i>>2]=l,F=f,0|(i=0)},_bitshift64Ashr:He,_bitshift64Lshr:Ye,_bitshift64Shl:ze,_calloc:Ie,_cellAreaKm2:function(A,e,t){return 0|(A=0|re(A|=0,e|=0,t|=0))||(i[t>>3]=6371.007180918475*+i[t>>3]*6371.007180918475),0|A},_cellAreaM2:function(A,e,t){return 0|(A=0|re(A|=0,e|=0,t|=0))||(i[t>>3]=6371.007180918475*+i[t>>3]*6371.007180918475*1e3*1e3),0|A},_cellAreaRads2:re,_cellToBoundary:WA,_cellToCenterChild:function(A,e,t,r){t|=0,r|=0;var i=0;return i=0|Ye(0|(A|=0),0|(e|=0),52),_(),(0|t)<16&(0|(i&=15))<=(0|t)?((0|i)<(0|t)&&(i=0|ze(-1,-1,3+(3*(t+-1-i|0)|0)|0),i=0|ze(0|~i,0|~_(),3*(15-t|0)|0),e=~_()&e,A&=~i),i=0|ze(0|t,0,52),t=-15728641&e|_(),n[r>>2]=A|i,n[r+4>>2]=t,0|(r=0)):0|(r=4)},_cellToChildPos:function(A,e,t,r){t|=0,r|=0;var i,o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0;if(i=F,F=F+16|0,b=i,v=0|Ye(0|(A|=0),0|(e|=0),52),_(),v&=15,t>>>0>15)return F=i,0|(v=4);if((0|v)<(0|t))return F=i,0|(v=12);if((0|v)!=(0|t))if(a=0|ze(0|t,0,52),a|=A,l=_()|-15728641&e,(0|v)>(0|t)){u=t;do{w=0|ze(7,0,3*(14-u|0)|0),u=u+1|0,a|=w,l=_()|l}while((0|u)<(0|v));w=a}else w=a;else w=A,l=e;p=0|Ye(0|w,0|l,45),_();A:do{if(0|H(127&p)){if(u=0|Ye(0|w,0|l,52),_(),0|(u&=15))for(a=1;;){if(!(!((p=0|ze(7,0,3*(15-a|0)|0))&w)&!(_()&l))){s=33;break A}if(!(a>>>0<u>>>0))break;a=a+1|0}if(n[(p=r)>>2]=0,n[p+4>>2]=0,(0|v)>(0|t)){for(p=-15728641&e,d=v;;){if(g=d,(d=d+-1|0)>>>0>15|(0|v)<(0|d)){s=19;break}if((0|v)!=(0|d))if(a=0|ze(0|d,0,52),a|=A,u=_()|p,(0|v)<(0|g))h=a;else{s=d;do{h=0|ze(7,0,3*(14-s|0)|0),s=s+1|0,a|=h,u=_()|u}while((0|s)<(0|v));h=a}else h=A,u=e;if(c=0|Ye(0|h,0|u,45),_(),0|H(127&c)){c=0|Ye(0|h,0|u,52),_(),c&=15;e:do{if(c)for(s=1;;){if(a=0|Ye(0|h,0|u,3*(15-s|0)|0),_(),0|(a&=7))break e;if(!(s>>>0<c>>>0)){a=0;break}s=s+1|0}else a=0}while(0);a=1&!(0|a)}else a=0;if(u=0|Ye(0|A,0|e,3*(15-g|0)|0),_(),7==(0|(u&=7))){o=5,s=42;break}if(1==(0|u)&(a=!!(0|a))){o=5,s=42;break}if(0|(h=u+((!!(0|u)&a)<<31>>31)|0)&&(s=0|se(7,0,s=v-g|0,((0|s)<0)<<31>>31),c=0|_(),a?(a=0|Fe(0|(a=0|Ue(0|s,0|c,5,0)),0|_(),-5,-1),a=0|Fe(0|(a=0|Te(0|a,0|_(),6,0)),0|_(),1,0),u=0|_()):(a=s,u=c),g=0|Fe(0|a,0|u,0|(g=0|Ue(0|s,0|c,0|(g=h+-1|0),((0|g)<0)<<31>>31)),0|_()),c=0|Fe(0|g,0|(h=0|_()),0|n[(c=r)>>2],0|n[c+4>>2]),h=0|_(),n[(g=r)>>2]=c,n[g+4>>2]=h),(0|d)<=(0|t)){s=37;break}}if(19==(0|s))M(23313,22674,1099,22710);else{if(37==(0|s)){o=0|n[(f=r)+4>>2],f=0|n[f>>2];break}if(42==(0|s))return F=i,0|o}}else o=0,f=0}else s=33}while(0);A:do{if(33==(0|s)){if(n[(p=r)>>2]=0,n[p+4>>2]=0,(0|v)>(0|t)){for(a=v;;){if(o=0|Ye(0|A,0|e,3*(15-a|0)|0),_(),7==(0|(o&=7))){o=5;break}if(o=0|Ue(0|(f=0|se(7,0,f=v-a|0,((0|f)<0)<<31>>31)),0|_(),0|o,0),f=0|_(),f=0|Fe(0|n[(p=r)>>2],0|n[p+4>>2],0|o,0|f),o=0|_(),n[(p=r)>>2]=f,n[p+4>>2]=o,(0|(a=a+-1|0))<=(0|t))break A}return F=i,0|o}o=0,f=0}}while(0);return 0|TA(w,l,v,b)&&M(23313,22674,1063,22725),((0|o)>-1|-1==(0|o)&f>>>0>4294967295)&((0|(b=0|n[(v=b)+4>>2]))>(0|o)|((0|b)==(0|o)?(0|n[v>>2])>>>0>f>>>0:0))?(F=i,0|(v=0)):(M(23313,22674,1139,22710),0)},_cellToChildren:function(A,e,t,r){r|=0;var i,o,a=0,f=0;if(o=F,F=F+16|0,KA(i=o,A|=0,e|=0,t|=0),!(0|(A=0|n[(e=i)>>2]))&!(0|(e=0|n[e+4>>2])))return F=o,0;a=0,t=0;do{n[(f=r+(a<<3)|0)>>2]=A,n[f+4>>2]=e,a=0|Fe(0|a,0|t,1,0),t=0|_(),JA(i),A=0|n[(f=i)>>2],e=0|n[f+4>>2]}while(!(!(0|A)&!(0|e)));return F=o,0},_cellToChildrenSize:TA,_cellToLatLng:ZA,_cellToLocalIj:function(A,e,t,r,n,i){var o,a;return A|=0,e|=0,t|=0,r|=0,i|=0,a=F,F=F+16|0,o=a,(n|=0)?A=15:(A=0|le(A,e,t,r,o))||(vA(o,i),A=0),F=a,0|A},_cellToParent:GA,_cellToVertex:ye,_cellToVertexes:function(A,e,t){t|=0;var r,i=0,o=0;return o=!(0|UA(A|=0,e|=0)),r=!(0|(i=0|ye(A,e,0,t))),o?r?0|(i=0|ye(A,e,1,t+8|0))||0|(i=0|ye(A,e,2,t+16|0))||0|(i=0|ye(A,e,3,t+24|0))||(i=0|ye(A,e,4,t+32|0))?0|(o=i):0|ye(A,e,5,t+40|0):0|(o=i):r?0|(i=0|ye(A,e,1,t+8|0))||0|(i=0|ye(A,e,2,t+16|0))||0|(i=0|ye(A,e,3,t+24|0))||0|(i=0|ye(A,e,4,t+32|0))?0|(o=i):(n[(o=t+40|0)>>2]=0,n[o+4>>2]=0,0|(o=0)):0|(o=i)},_cellsToDirectedEdge:function(A,e,t,r,i){return i|=0,7==(0|(t=0|R(A|=0,e|=0,t|=0,r|=0)))?0|(i=11):(r=0|ze(0|t,0,56),e=-2130706433&e|_()|268435456,n[i>>2]=A|r,n[i+4>>2]=e,0|(i=0))},_cellsToLinkedMultiPolygon:function(A,e,t){t|=0;var r,i,o,a=0;if(o=F,F=F+32|0,r=o,A=0|function(A,e,t){A|=0,t|=0;var r,i,o=0,a=0,f=0,l=0,u=0,s=0;if(i=F,F=F+176|0,r=i,(0|(e|=0))<1)return me(t,0,0),F=i,0;for(u=0|Ye(0|n[(u=A)>>2],0|n[u+4>>2],52),_(),me(t,(0|e)>6?e:6,15&u),u=0;!(0|(o=0|WA(0|n[(o=A+(u<<3)|0)>>2],0|n[o+4>>2],r)));){if((0|(o=0|n[r>>2]))>0){l=0;do{f=r+8+(l<<4)|0,(a=0|Me(t,o=r+8+((0|(l=l+1|0))%(0|o)<<4)|0,f))?ke(t,a):_e(t,f,o),o=0|n[r>>2]}while((0|l)<(0|o))}if((0|(u=u+1|0))>=(0|e)){o=0,s=13;break}}return 13==(0|s)?(F=i,0|o):(Be(t),F=i,0|(s=o))}(A|=0,e|=0,i=o+16|0),0|A)return F=o,0|(t=A);if(n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,0|(A=0|Ee(i)))do{e=0|ne(t);do{ie(e,A),a=A+16|0,n[r>>2]=n[a>>2],n[r+4>>2]=n[a+4>>2],n[r+8>>2]=n[a+8>>2],n[r+12>>2]=n[a+12>>2],ke(i,A),A=0|Qe(i,r)}while(0|A);A=0|Ee(i)}while(0|A);return Be(i),(A=0|ae(t))?(oe(t),F=o,0|(a=A)):(F=o,0|(a=0))},_childPosToCell:function(A,e,t,r,i,o){A|=0,e|=0,o|=0;var a,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0;if(a=F,F=F+16|0,f=a,(i|=0)>>>0>15)return F=a,0|(o=4);if(l=0|Ye(0|(t|=0),0|(r|=0),52),_(),(0|(l&=15))>(0|i))return F=a,0|(o=12);if(0|TA(t,r,i,f)&&M(23313,22674,1063,22725),!(((0|e)>-1|-1==(0|e)&A>>>0>4294967295)&((0|(s=0|n[(c=f)+4>>2]))>(0|e)|((0|s)==(0|e)?(0|n[c>>2])>>>0>A>>>0:0))))return F=a,0|(o=2);c=i-l|0,i=0|ze(0|i,0,52),u=_()|-15728641&r,n[(s=o)>>2]=i|t,n[s+4>>2]=u,s=0|Ye(0|t,0|r,45),_();A:do{if(0|H(127&s)){if(0|l)for(f=1;;){if(!(!((s=0|ze(7,0,3*(15-f|0)|0))&t)&!(_()&r)))break A;if(!(f>>>0<l>>>0))break;f=f+1|0}if((0|c)<1)return F=a,0|(o=0);for(s=15^l,r=-1,u=1,f=1;;){l=0|se(7,0,l=c-u|0,((0|l)<0)<<31>>31),t=0|_();do{if(f){if(f=0|Te(0|(f=0|Fe(0|(f=0|Ue(0|l,0|t,5,0)),0|_(),-5,-1)),0|_(),6,0),(0|e)>(0|(i=0|_()))|(0|e)==(0|i)&A>>>0>f>>>0){e=0|Se(0|(e=0|Fe(0|A,0|e,-1,-1)),0|_(),0|f,0|i),f=0|_(),d=0|n[(h=o)>>2],h=0|n[h+4>>2],g=0|ze(7,0,0|(p=3*(s+r|0)|0)),h&=~_(),p=0|ze(0|(i=0|Fe(0|(r=0|Te(0|e,0|f,0|l,0|t)),0|(A=0|_()),2,0)),0|_(),0|p),h=_()|h,n[(i=o)>>2]=p|d&~g,n[i+4>>2]=h,A=0|Se(0|e,0|f,0|(A=0|Ue(0|r,0|A,0|l,0|t)),0|_()),f=0,e=0|_();break}g=0|n[(p=o)>>2],p=0|n[p+4>>2],d=0|ze(7,0,3*(s+r|0)|0),p&=~_(),n[(f=o)>>2]=g&~d,n[f+4>>2]=p,f=1;break}i=0|n[(g=o)>>2],g=0|n[g+4>>2],h=0|ze(7,0,0|(r=3*(s+r|0)|0)),g&=~_(),r=0|ze(0|(p=0|Te(0|A,0|e,0|l,0|t)),0|(f=0|_()),0|r),g=_()|g,n[(d=o)>>2]=r|i&~h,n[d+4>>2]=g,A=0|Se(0|A,0|e,0|(f=0|Ue(0|p,0|f,0|l,0|t)),0|_()),f=0,e=0|_()}while(0);if(!((0|c)>(0|u))){e=0;break}r=~u,u=u+1|0}return F=a,0|e}}while(0);if((0|c)<1)return F=a,0|(p=0);for(i=15^l,f=1;;){if(d=0|se(7,0,d=c-f|0,((0|d)<0)<<31>>31),p=0|_(),t=0|n[(u=o)>>2],u=0|n[u+4>>2],r=0|ze(7,0,0|(l=3*(i-f|0)|0)),u&=~_(),l=0|ze(0|(h=0|Te(0|A,0|e,0|d,0|p)),0|(g=0|_()),0|l),u=_()|u,n[(s=o)>>2]=l|t&~r,n[s+4>>2]=u,A=0|Se(0|A,0|e,0|(p=0|Ue(0|h,0|g,0|d,0|p)),0|_()),e=0|_(),(0|c)<=(0|f)){e=0;break}f=f+1|0}return F=a,0|e},_compactCells:function(A,e,t,r){e|=0;var i,o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,E=0,k=0,Q=0;if(!(0|(t|=0))&!(0|(r|=0)))return 0|(k=0);if(a=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if(!((0|r)>0|!(0|r)&t>>>0>0))return 0|(k=0);if(n[(k=e)>>2]=a,n[k+4>>2]=o,1==(0|t)&!(0|r))return 0|(k=0);o=1;do{E=0|n[(B=A+(o<<3)|0)+4>>2],n[(k=e+(o<<3)|0)>>2]=n[B>>2],n[k+4>>2]=E,o=o+1|0}while(0<(0|r)|!(0|r)&o>>>0<t>>>0);return 0|(o=0)}if(!(E=0|De(i=t<<3)))return 0|(k=13);if(je(0|E,0|A,0|i),!(B=0|Ie(t,8)))return Ce(E),0|(k=13);A:do{if(0|t){e:for(;;){y=0|Ye(0|(v=0|n[(o=E)>>2]),0|(o=0|n[o+4>>2]),52),_(),m=(y&=15)+-1|0,b=(0|t)>0;t:do{if(!!(0|y)&b){if(d=((0|t)<0)<<31>>31,p=0|ze(0|m,0,52),w=0|_(),m>>>0>15){if(!(!(0|v)&!(0|o))){k=17;break e}for(a=0;;){if((0|(a=a+1|0))>=(0|t))break t;if(!(!(0|(w=0|n[(r=E+(a<<3)|0)>>2]))&!(0|(r=0|n[r+4>>2])))){o=r,k=17;break e}}}for(a=0,A=v,r=o;;){if(!(!(0|A)&!(0|r))){if(!(!0&!(117440512&r))){k=22;break e}if(l=0|Ye(0|A,0|r,52),_(),(0|(l&=15))<(0|m)){o=12,k=28;break e}if((0|l)!=(0|m)&&(A|=p,r=-15728641&r|w,l>>>0>=y>>>0)){f=m;do{g=0|ze(7,0,3*(14-f|0)|0),f=f+1|0,A|=g,r=_()|r}while(f>>>0<l>>>0)}if(f=0|Le(0|A,0|r,0|t,0|d),_(),!(0|(u=0|n[(l=s=B+(f<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2])))f=s;else for(g=0;;){if((0|g)>(0|t)){k=32;break e}if((0|u)==(0|A)&(-117440513&l)==(0|r)){c=0|Ye(0|u,0|l,56),_(),h=(c&=7)+1|0,Q=0|Ye(0|u,0|l,45),_();r:do{if(0|H(127&Q)){if(u=0|Ye(0|u,0|l,52),_(),!(u&=15)){l=6;break}for(l=1;;){if(!(!((Q=0|ze(7,0,3*(15-l|0)|0))&A)&!(_()&r))){l=7;break r}if(!(l>>>0<u>>>0)){l=6;break}l=l+1|0}}else l=7}while(0);if((c+2|0)>>>0>l>>>0){k=42;break e}Q=0|ze(0|h,0,56),r=_()|-117440513&r,n[(h=s)>>2]=0,n[h+4>>2]=0,A|=Q}else f=(f+1|0)%(0|t)|0;if(!(0|(u=0|n[(l=s=B+(f<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2]))){f=s;break}g=g+1|0}n[(Q=f)>>2]=A,n[Q+4>>2]=r}if((0|(a=a+1|0))>=(0|t))break t;A=0|n[(r=E+(a<<3)|0)>>2],r=0|n[r+4>>2]}}}while(0);if((t+5|0)>>>0<11){k=85;break}if(!(w=0|Ie((0|t)/6|0,8))){k=49;break}t:do{if(b){g=0,h=0;do{if(!(!(0|(a=0|n[(r=l=B+(g<<3)|0)>>2]))&!(0|(r=0|n[r+4>>2])))){u=0|Ye(0|a,0|r,56),_(),A=(u&=7)+1|0,s=-117440513&r,Q=0|Ye(0|a,0|r,45),_();r:do{if(0|H(127&Q)){if(c=0|Ye(0|a,0|r,52),_(),0|(c&=15))for(f=1;;){if(!(!(a&(Q=0|ze(7,0,3*(15-f|0)|0)))&!(s&_())))break r;if(!(f>>>0<c>>>0))break;f=f+1|0}a|=r=0|ze(0|A,0,56),r=_()|s,n[(A=l)>>2]=a,n[A+4>>2]=r,A=u+2|0}}while(0);7==(0|A)&&(n[(Q=w+(h<<3)|0)>>2]=a,n[Q+4>>2]=-117440513&r,h=h+1|0)}g=g+1|0}while((0|g)!=(0|t));if(b){if(g=((0|t)<0)<<31>>31,d=0|ze(0|m,0,52),p=0|_(),m>>>0>15){if(!(!(0|v)&!(0|o))){o=4,k=84;break e}for(o=0;;){if((0|(o=o+1|0))>=(0|t)){a=0,o=h;break t}if(!(!(0|n[(Q=E+(o<<3)|0)>>2])&!(0|n[Q+4>>2]))){o=4,k=84;break e}}}for(c=0,a=0,s=v;;){do{if(!(!(0|s)&!(0|o))){if(l=0|Ye(0|s,0|o,52),_(),(0|(l&=15))<(0|m)){o=12,k=84;break e}do{if((0|l)==(0|m))r=s,l=o;else{if(r=s|d,A=-15728641&o|p,l>>>0<y>>>0){l=A;break}f=m;do{Q=0|ze(7,0,3*(14-f|0)|0),f=f+1|0,r|=Q,A=_()|A}while(f>>>0<l>>>0);l=A}}while(0);for(f=0|Le(0|r,0|l,0|t,0|g),_(),A=0;;){if((0|A)>(0|t)){k=77;break e}if((-117440513&(u=0|n[(Q=B+(f<<3)|0)+4>>2]))==(0|l)&&(0|n[Q>>2])==(0|r)){k=79;break}if((0|n[(Q=B+((f=(f+1|0)%(0|t)|0)<<3)|0)>>2])==(0|r)&&(0|n[Q+4>>2])==(0|l))break;A=A+1|0}if(79==(0|k)&&(k=0,!0&100663296==(117440512&u)))break;n[(Q=e+(a<<3)|0)>>2]=s,n[Q+4>>2]=o,a=a+1|0}}while(0);if((0|(o=c+1|0))>=(0|t)){o=h;break t}c=o,s=0|n[(Q=E+(o<<3)|0)>>2],o=0|n[Q+4>>2]}}else a=0,o=h}else a=0,o=0}while(0);if(Ze(0|B,0,0|i),je(0|E,0|w,o<<3),Ce(w),!o)break A;e=e+(a<<3)|0,t=o}if(17==(0|k))!0&!(117440512&o)?(o=4,k=28):k=22;else if(32==(0|k))M(23313,22674,362,22684);else{if(42==(0|k))return Ce(E),Ce(B),0|(Q=10);if(49==(0|k))return Ce(E),Ce(B),0|(Q=13);if(77==(0|k))M(23313,22674,462,22684);else{if(84==(0|k))return Ce(w),Ce(E),Ce(B),0|(Q=o);if(85==(0|k)){je(0|e,0|E,t<<3);break}}}if(22==(0|k))return Ce(E),Ce(B),0|(Q=5);if(28==(0|k))return Ce(E),Ce(B),0|(Q=o)}}while(0);return Ce(E),Ce(B),0|(Q=0)},_destroyLinkedMultiPolygon:oe,_directedEdgeToBoundary:EA,_directedEdgeToCells:function(A,e,t){A|=0;var r,i,o,a=0;return r=F,F=F+16|0,a=r,!0&268435456==(2013265920&(e|=0))?(i=-2130706433&e|134217728,n[(o=t|=0)>>2]=A,n[o+4>>2]=i,n[a>>2]=0,e=0|Ye(0|A,0|e,56),_(),a=0|U(A,i,7&e,a,t+8|0),F=r,0|a):(F=r,0|(a=6))},_edgeLengthKm:function(A,e,t){t|=0;var r,o=0,a=0,f=0,l=0,s=0,g=0,d=0;if(r=F,F=F+176|0,0|(A=0|EA(A|=0,e|=0,l=r)))return l=A,f=+i[t>>3],f*=6371.007180918475,i[t>>3]=f,F=r,0|l;if(i[t>>3]=0,(0|(A=0|n[l>>2]))<=1)return l=0,f=0,f*=6371.007180918475,i[t>>3]=f,F=r,0|l;e=A+-1|0,A=0,o=+i[l+8>>3],a=+i[l+16>>3],f=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),s=a,a=+i[l+8+(A<<4)+8>>3],s=d*d+(s=+h(.5*(a-s)))*(+c(+g)*+c(+o)*s),f+=2*+b(+ +u(+s),+ +u(+(1-s)))}while((0|A)!=(0|e));return i[t>>3]=f,l=0,d=f,d*=6371.007180918475,i[t>>3]=d,F=r,0|l},_edgeLengthM:function(A,e,t){t|=0;var r,o=0,a=0,f=0,l=0,s=0,g=0,d=0;if(r=F,F=F+176|0,0|(A=0|EA(A|=0,e|=0,l=r)))return l=A,f=+i[t>>3],f*=6371.007180918475,f*=1e3,i[t>>3]=f,F=r,0|l;if(i[t>>3]=0,(0|(A=0|n[l>>2]))<=1)return l=0,f=0,f*=6371.007180918475,f*=1e3,i[t>>3]=f,F=r,0|l;e=A+-1|0,A=0,o=+i[l+8>>3],a=+i[l+16>>3],f=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),s=a,a=+i[l+8+(A<<4)+8>>3],s=d*d+(s=+h(.5*(a-s)))*(+c(+g)*+c(+o)*s),f+=2*+b(+ +u(+s),+ +u(+(1-s)))}while((0|A)!=(0|e));return i[t>>3]=f,l=0,d=f,d*=6371.007180918475,d*=1e3,i[t>>3]=d,F=r,0|l},_edgeLengthRads:function(A,e,t){t|=0;var r,o=0,a=0,f=0,l=0,s=0,g=0,d=0;if(r=F,F=F+176|0,0|(A=0|EA(A|=0,e|=0,l=r)))return F=r,0|(l=A);if(i[t>>3]=0,(0|(A=0|n[l>>2]))<=1)return F=r,0|(l=0);e=A+-1|0,A=0,o=+i[l+8>>3],a=+i[l+16>>3],f=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),s=a,a=+i[l+8+(A<<4)+8>>3],s=d*d+(s=+h(.5*(a-s)))*(+c(+o)*+c(+g)*s),f+=2*+b(+ +u(+s),+ +u(+(1-s)))}while((0|A)<(0|e));return i[t>>3]=f,F=r,0|(l=0)},_emscripten_replace_memory:function(A){return r=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),t=A,!0},_free:Ce,_getBaseCellNumber:SA,_getDirectedEdgeDestination:function(A,e,t){A|=0,e|=0,t|=0;var r,i,o=0;return r=F,F=F+16|0,n[(o=r)>>2]=0,!0&268435456==(2013265920&e)?(i=0|Ye(0|A,0|e,56),_(),o=0|U(A,-2130706433&e|134217728,7&i,o,t),F=r,0|o):(F=r,0|(o=6))},_getDirectedEdgeOrigin:function(A,e,t){return A|=0,t|=0,!0&268435456==(2013265920&(e|=0))?(n[t>>2]=A,n[t+4>>2]=-2130706433&e|134217728,0|(t=0)):0|(t=6)},_getHexagonAreaAvgKm2:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20528+(A<<3)>>3],0|(e=0))},_getHexagonAreaAvgM2:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20656+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgKm:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20784+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgM:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20912+(A<<3)>>3],0|(e=0))},_getIcosahedronFaces:function A(e,t,r){r|=0;var i,o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0;i=F,F=F+128|0,c=i+112|0,f=i+96|0,h=i,a=0|Ye(0|(e|=0),0|(t|=0),52),_(),u=15&a,n[c>>2]=u,l=0|Ye(0|e,0|t,45),_(),l&=127;A:do{if(0|H(l)){if(0|u)for(o=1;;){if(!(!((s=0|ze(7,0,3*(15-o|0)|0))&e)&!(_()&t))){a=0;break A}if(!(o>>>0<u>>>0))break;o=o+1|0}if(!(1&a))return s=0|ze(u+1|0,0,52),h=_()|-15728641&t,h=0|A((s|e)&~(c=0|ze(7,0,3*(14-u|0)|0)),h&~_(),r),F=i,0|h;a=1}else a=0}while(0);if(!(o=0|jA(e,t,f))){a?(xA(f,c,h),s=5):(FA(f,c,h),s=6);A:do{if(0|H(l))if(u)for(o=1;;){if(!(!((l=0|ze(7,0,3*(15-o|0)|0))&e)&!(_()&t))){e=2;break A}if(!(o>>>0<u>>>0)){e=5;break}o=o+1|0}else e=5;else e=2}while(0);Ze(0|r,-1,e<<2);A:do{if(a)for(f=0;;){if(CA(l=h+(f<<4)|0,0|n[c>>2]),l=0|n[l>>2],-1==(0|(u=0|n[r>>2]))|(0|u)==(0|l))o=r;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}u=0|n[(o=r+(a<<2)|0)>>2]}while(!(-1==(0|u)|(0|u)==(0|l)))}if(n[o>>2]=l,(f=f+1|0)>>>0>=s>>>0){o=0;break}}else for(f=0;;){if(DA(l=h+(f<<4)|0,0|n[c>>2],0,1),l=0|n[l>>2],-1==(0|(u=0|n[r>>2]))|(0|u)==(0|l))o=r;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}u=0|n[(o=r+(a<<2)|0)>>2]}while(!(-1==(0|u)|(0|u)==(0|l)))}if(n[o>>2]=l,(f=f+1|0)>>>0>=s>>>0){o=0;break}}}while(0)}return F=i,0|(h=o)},_getNumCells:ee,_getPentagons:XA,_getRes0Cells:function(A){A|=0;var e=0,t=0,r=0;e=0;do{ze(0|e,0,45),r=134225919|_(),n[(t=A+(e<<3)|0)>>2]=-1,n[t+4>>2]=r,e=e+1|0}while(122!=(0|e));return 0},_getResolution:function(A,e){return e=0|Ye(0|(A|=0),0|(e|=0),52),_(),15&e},_greatCircleDistanceKm:Ae,_greatCircleDistanceM:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+h(.5*(r-t)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+b(+ +u(+o),+ +u(+(1-o)))*6371.007180918475*1e3},_greatCircleDistanceRads:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+h(.5*(r-t)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+b(+ +u(+o),+ +u(+(1-o)))},_gridDisk:S,_gridDiskDistances:P,_gridDistance:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a,f=0,l=0;return a=F,F=F+32|0,l=a,0|(o=0|le(A|=0,e|=0,A,e,f=a+12|0))?(F=a,0|(l=o)):0|(A=0|le(A,e,t,r,l))?(F=a,0|(l=A)):(f=0|bA(f,l),n[(l=i)>>2]=f,n[l+4>>2]=((0|f)<0)<<31>>31,F=a,0|(l=0))},_gridPathCells:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a=0,f=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,E=0,k=0,Q=0,x=0;if(o=F,F=F+48|0,u=o+12|0,Q=o,!(a=0|le(A|=0,e|=0,A,e,f=o+24|0))&&!(a=0|le(A,e,t,r,u))){k=((0|(E=0|bA(f,u)))<0)<<31>>31,n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,0|le(A,e,A,e,f)&&M(23313,23090,691,23299),0|le(A,e,t,r,u)&&M(23313,23090,696,23299),mA(f),mA(u),E?(w=+(0|E),B=f,r=g=0|n[f>>2],a=d=0|n[(y=f+4|0)>>2],t=p=0|n[(m=f+8|0)>>2],b=+((0|n[u>>2])-g|0)/w,v=+((0|n[u+4>>2])-d|0)/w,w=+((0|n[u+8>>2])-p|0)/w):(y=a=f+4|0,m=t=f+8|0,B=f,r=0|n[f>>2],a=0|n[a>>2],t=0|n[t>>2],b=0,v=0,w=0),n[Q>>2]=r,n[(p=Q+4|0)>>2]=a,n[(d=Q+8|0)>>2]=t;A:do{if((0|E)<0)a=0;else for(h=0,g=0,a=r;;){x=b*(c=+(g>>>0)+4294967296*+(0|h))+ +(0|a),s=v*c+ +(0|n[y>>2]),c=w*c+ +(0|n[m>>2]),t=~~+Ve(+x),f=~~+Ve(+s),a=~~+Ve(+c),x=+l(+(+(0|t)-x)),s=+l(+(+(0|f)-s)),c=+l(+(+(0|a)-c));do{if(!(x>s&x>c)){if(u=0-t|0,s>c){r=u-a|0;break}r=f,a=u-f|0;break}t=0-(f+a)|0,r=f}while(0);if(n[Q>>2]=t,n[p>>2]=r,n[d>>2]=a,BA(Q),0|(a=0|ue(A,e,Q,i+(g<<3)|0)))break A;if(!((0|h)<(0|k)|(0|h)==(0|k)&g>>>0<E>>>0)){a=0;break A}a=0|Fe(0|g,0|h,1,0),h=u=0|_(),g=a,a=0|n[B>>2]}}while(0);return F=o,0|(Q=a)}return F=o,0|(Q=a)},_gridPathCellsSize:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a=0,f=0,l=0;return o=F,F=F+32|0,l=o,(a=0|le(A|=0,e|=0,A,e,f=o+12|0))||(a=0|le(A,e,t,r,l))?(F=o,0|(l=a)):(r=0|Fe(0|(r=0|bA(f,l)),((0|r)<0)<<31>>31,1,0),f=0|_(),n[(l=i)>>2]=r,n[l+4>>2]=f,F=o,0|(l=0))},_gridRingUnsafe:function(A,e,t,r){A|=0,e|=0,t|=0,r|=0;var i,o,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0;if(o=F,F=F+16|0,d=o+8|0,n[(g=i=o)>>2]=A,n[g+4>>2]=e,!t)return n[(d=r)>>2]=A,n[d+4>>2]=e,F=o,0|(d=0);n[d>>2]=0;A:do{if(0|UA(A,e))A=9;else{if(f=(0|t)>0){a=0,g=A;do{if(0|(A=0|U(g,e,4,d,i)))break A;if(a=a+1|0,0|UA(g=0|n[(e=i)>>2],e=0|n[e+4>>2])){A=9;break A}}while((0|a)<(0|t));if(n[(h=r)>>2]=g,n[h+4>>2]=e,h=t+-1|0,f){c=0,A=1;do{if(a=22384+(c<<2)|0,5==(0|c))for(l=0|n[a>>2],f=0,a=A;;){if(0|(A=0|U(0|n[(A=i)>>2],0|n[A+4>>2],l,d,i)))break A;if((0|f)!=(0|h)){if(u=0|n[(s=i)>>2],s=0|n[s+4>>2],n[(A=r+(a<<3)|0)>>2]=u,n[A+4>>2]=s,0|UA(u,s)){A=9;break A}A=a+1|0}else A=a;if((0|(f=f+1|0))>=(0|t))break;a=A}else for(l=i,s=0|n[a>>2],u=0,a=A,f=0|n[l>>2],l=0|n[l+4>>2];;){if(0|(A=0|U(f,l,s,d,i)))break A;if(f=0|n[(l=i)>>2],l=0|n[l+4>>2],n[(A=r+(a<<3)|0)>>2]=f,n[A+4>>2]=l,A=a+1|0,0|UA(f,l)){A=9;break A}if((0|(u=u+1|0))>=(0|t))break;a=A}c=c+1|0}while(c>>>0<6);l=g,a=0|n[(A=i)>>2],f=e,A=0|n[A+4>>2]}else l=g,a=g,f=e,A=e}else n[(l=r)>>2]=A,n[l+4>>2]=e,l=A,a=A,f=e,A=e;A=(0|l)==(0|a)&(0|f)==(0|A)?0:9}}while(0);return F=o,0|(d=A)},_i64Add:Fe,_i64Subtract:Se,_isPentagon:UA,_isResClassIII:function(A,e){return e=0|Ye(0|(A|=0),0|(e|=0),52),_(),1&e},_isValidCell:PA,_isValidDirectedEdge:function(A,e){var t=0;switch(t=0|Ye(0|(A|=0),0|(e|=0),56),_(),7&t){case 0:case 7:return 0|(t=0)}return t=-2130706433&e|134217728,!0&268435456==(2013265920&e)?!0&16777216==(117440512&e)&!!(0|UA(A,t))?0|(t=0):0|(t=0|PA(A,t)):0|(t=0)},_isValidVertex:function(A,e){A|=0;var t,r,i=0,o=0;return r=F,F=F+16|0,t=r,!0&536870912==(2013265920&(e|=0))&&0|PA(A,i=-2130706433&e|134217728)?(o=0|Ye(0|A,0|e,56),_(),i=(o=!(0|ye(A,i,7&o,t)))&((0|n[(i=t)>>2])==(0|A)?(0|n[i+4>>2])==(0|e):0)&1,F=r,0|i):(F=r,0|(i=0))},_latLngToCell:NA,_llvm_maxnum_f64:Oe,_llvm_minnum_f64:Ne,_llvm_round_f64:Ve,_localIjToCell:function(A,e,t,r,n){var i,o;return A|=0,e|=0,t|=0,n|=0,o=F,F=F+16|0,i=o,(r|=0)?t=15:(t=0|yA(t,i))||(t=0|ue(A,e,i,n)),F=o,0|t},_malloc:De,_maxFaceCount:function(A,e,t){t|=0;var r=0,i=0;if(i=0|Ye(0|(A|=0),0|(e|=0),45),_(),!(0|H(127&i)))return i=2,n[t>>2]=i,0;if(i=0|Ye(0|A,0|e,52),_(),!(i&=15))return i=5,n[t>>2]=i,0;for(r=1;;){if(!(!((0|ze(7,0,3*(15-r|0)|0))&A)&!(_()&e))){r=2,A=6;break}if(!(r>>>0<i>>>0)){r=5,A=6;break}r=r+1|0}return 6==(0|A)?(n[t>>2]=r,0):0},_maxGridDiskSize:function(A,e){e|=0;var t=0,r=0,i=0;return(0|(A|=0))<0?0|(e=2):(0|A)>13780509?0|(e=0|ee(15,e)):(i=0|Ue(0|A,0|(t=((0|A)<0)<<31>>31),3,0),r=0|_(),t=0|Fe(0|A,0|t,1,0),t=0|Fe(0|(t=0|Ue(0|i,0|r,0|t,0|_())),0|_(),1,0),A=0|_(),n[e>>2]=t,n[e+4>>2]=A,0|(e=0))},_maxPolygonToCellsSize:function(A,e,t,r){e|=0,r|=0;var i,o=0,a=0,f=0,l=0,u=0;if(i=F,F=F+48|0,o=i+16|0,a=i+8|0,f=i,0|(t|=0))return F=i,0|(f=15);if(l=0|n[(u=A|=0)+4>>2],n[(t=a)>>2]=n[u>>2],n[t+4>>2]=l,he(a,o),!(e=0|X(o,e,f))){if(t=0|n[a>>2],(0|(a=0|n[A+8>>2]))>0){o=0|n[A+12>>2],e=0;do{t=(0|n[o+(e<<3)>>2])+t|0,e=e+1|0}while((0|e)<(0|a))}o=0|n[(e=f)>>2],(0|(e=0|n[e+4>>2]))<(0|(a=((0|t)<0)<<31>>31))|(0|e)==(0|a)&o>>>0<t>>>0?(n[(e=f)>>2]=t,n[e+4>>2]=a,e=a):t=o,l=0|Fe(0|t,0|e,12,0),u=0|_(),n[(e=f)>>2]=l,n[e+4>>2]=u,n[(e=r)>>2]=l,n[e+4>>2]=u,e=0}return F=i,0|(u=e)},_memcpy:je,_memset:Ze,_originToDirectedEdges:function(A,e,t){t|=0;var r,i=0;return r=!(0|UA(A|=0,e|=0)),e&=-2130706433,n[(i=t)>>2]=r?A:0,n[i+4>>2]=r?285212672|e:0,n[(i=t+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=t+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=t+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=t+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(t=t+40|0)>>2]=A,n[t+4>>2]=369098752|e,0},_pentagonCount:function(){return 12},_polygonToCells:function(A,e,t,r){e|=0,r|=0;var i,o,a,f,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,E=0,k=0,M=0,Q=0,x=0,D=0,C=0,I=0,S=0,P=0,U=0,R=0,H=0;if(f=F,F=F+112|0,i=f+80|0,h=f+72|0,o=f,a=f+56|0,0|(t|=0))return F=f,0|(H=15);if(!(H=0|De(32+(n[(g=(A|=0)+8|0)>>2]<<5)|0)))return F=f,0|(H=13);if(ge(A,H),R=0|n[(U=A)+4>>2],n[(t=h)>>2]=n[U>>2],n[t+4>>2]=R,he(h,i),t=0|X(i,e,o))U=0,R=0;else{if(t=0|n[h>>2],(0|(u=0|n[g>>2]))>0){s=0|n[A+12>>2],l=0;do{t=(0|n[s+(l<<3)>>2])+t|0,l=l+1|0}while((0|l)!=(0|u));l=t}else l=t;u=0|n[(t=o)>>2],(0|(t=0|n[t+4>>2]))<(0|(s=((0|l)<0)<<31>>31))|(0|t)==(0|s)&u>>>0<l>>>0?(n[(t=o)>>2]=l,n[t+4>>2]=s,t=s):l=u,U=0|Fe(0|l,0|t,12,0),R=0|_(),n[(t=o)>>2]=U,n[t+4>>2]=R,t=0}if(0|t)return Ce(H),F=f,0|(H=t);if(!(l=0|Ie(U,8)))return Ce(H),F=f,0|(H=13);if(!(c=0|Ie(U,8)))return Ce(H),Ce(l),F=f,0|(H=13);n[(S=i)>>2]=0,n[S+4>>2]=0,P=0|n[(S=A)+4>>2],n[(t=h)>>2]=n[S>>2],n[t+4>>2]=P,t=0|L(h,U,R,e,i,l,c);A:do{if(t)Ce(l),Ce(c),Ce(H);else{e:do{if((0|n[g>>2])>0){for(s=A+12|0,u=0;t=0|L((0|n[s>>2])+(u<<3)|0,U,R,e,i,l,c),u=u+1|0,!(0|t);)if((0|u)>=(0|n[g>>2]))break e;Ce(l),Ce(c),Ce(H);break A}}while(0);(0|R)>0|!(0|R)&U>>>0>0&&Ze(0|c,0,U<<3),S=0|n[(P=i)+4>>2];e:do{if((0|S)>0|!(0|S)&(0|n[P>>2])>>>0>0){D=l,C=c,I=l,S=c,P=l,t=l,M=l,Q=c,x=c,l=c;t:for(;;){for(m=0,B=0,E=0,k=0,u=0,s=0;;){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));if(0|G(g=0|n[(e=D+(m<<3)|0)>>2],e=0|n[e+4>>2],1,o,0)){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));0|(c=0|Ie(7,4))&&(T(g,e,1,o,c,7,0,0),Ce(c))}for(y=0;;){b=0|n[(v=o+(y<<3)|0)>>2],v=0|n[v+4>>2];r:do{if(!(0|b)&!(0|v))c=u,h=s;else{if(d=0|Le(0|b,0|v,0|U,0|R),g=0|_(),!(!(0|(h=0|n[(e=c=r+(d<<3)|0)>>2]))&!(0|(e=0|n[e+4>>2])))){p=0,w=0;do{if((0|p)>(0|R)|(0|p)==(0|R)&w>>>0>U>>>0)break t;if((0|h)==(0|b)&(0|e)==(0|v)){c=u,h=s;break r}d=0|Re(0|(c=0|Fe(0|d,0|g,1,0)),0|_(),0|U,0|R),g=0|_(),w=0|Fe(0|w,0|p,1,0),p=0|_(),h=0|n[(e=c=r+(d<<3)|0)>>2],e=0|n[e+4>>2]}while(!(!(0|h)&!(0|e)))}!(0|b)&!(0|v)?(c=u,h=s):(ZA(b,v,a),0|de(A,H,a)&&(w=0|Fe(0|u,0|s,1,0),s=0|_(),n[(p=c)>>2]=b,n[p+4>>2]=v,n[(u=C+(u<<3)|0)>>2]=b,n[u+4>>2]=v,u=w),c=u,h=s)}}while(0);if((y=y+1|0)>>>0>=7)break;u=c,s=h}if(m=0|Fe(0|m,0|B,1,0),B=0|_(),E=0|Fe(0|E,0|k,1,0),k=0|_(),u=0|n[(s=i)>>2],!((0|k)<(0|(s=0|n[s+4>>2]))|(0|k)==(0|s)&E>>>0<u>>>0))break;u=c,s=h}if((0|s)>0|!(0|s)&u>>>0>0){u=0,s=0;do{n[(k=D+(u<<3)|0)>>2]=0,n[k+4>>2]=0,u=0|Fe(0|u,0|s,1,0),s=0|_(),E=0|n[(k=i)+4>>2]}while((0|s)<(0|E)|((0|s)==(0|E)?u>>>0<(0|n[k>>2])>>>0:0))}if(n[(k=i)>>2]=c,n[k+4>>2]=h,!((0|h)>0|!(0|h)&c>>>0>0))break e;y=l,m=x,B=P,E=Q,k=C,l=M,x=t,Q=I,M=y,t=m,P=S,S=B,I=E,C=D,D=k}Ce(I),Ce(S),Ce(H),t=1;break A}t=c}while(0);Ce(H),Ce(l),Ce(t),t=0}}while(0);return F=f,0|(H=t)},_readInt64AsDoubleFromPointer:function(A){return+(+((0|n[(A|=0)>>2])>>>0)+4294967296*+(0|n[A+4>>2]))},_res0CellCount:function(){return 122},_round:We,_sbrk:Xe,_sizeOfCellBoundary:function(){return 168},_sizeOfCoordIJ:function(){return 8},_sizeOfGeoLoop:function(){return 8},_sizeOfGeoPolygon:function(){return 16},_sizeOfH3Index:function(){return 8},_sizeOfLatLng:function(){return 16},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompactCells:function(A,e,t,r,i,o,a){A|=0,r|=0,i|=0,o|=0;var f,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0;if(f=F,F=F+16|0,p=f,!((0|(t|=0))>0|!(0|t)&(e|=0)>>>0>0))return F=f,0|(p=0);if((0|(a|=0))>=16)return F=f,0|(p=12);g=0,d=0,h=0,l=0;A:for(;;){if(c=0|Ye(0|(u=0|n[(s=A+(g<<3)|0)>>2]),0|(s=0|n[s+4>>2]),52),_(),(15&c)>(0|a)){l=12,u=11;break}if(KA(p,u,s,a),!(0|(s=0|n[(c=p)>>2]))&!(0|(c=0|n[c+4>>2])))u=h;else{u=h;do{if(!((0|l)<(0|o)|(0|l)==(0|o)&u>>>0<i>>>0)){u=10;break A}n[(h=r+(u<<3)|0)>>2]=s,n[h+4>>2]=c,u=0|Fe(0|u,0|l,1,0),l=0|_(),JA(p),s=0|n[(h=p)>>2],c=0|n[h+4>>2]}while(!(!(0|s)&!(0|c)))}if(g=0|Fe(0|g,0|d,1,0),!((0|(d=0|_()))<(0|t)|(0|d)==(0|t)&g>>>0<e>>>0)){l=0,u=11;break}h=u}return 10==(0|u)?(F=f,0|(p=14)):11==(0|u)?(F=f,0|l):0},_uncompactCellsSize:function(A,e,t,r,i){A|=0,e|=0,t|=0,r|=0,i|=0;var o,a,f=0,l=0,u=0,s=0,c=0,h=0;a=F,F=F+16|0,o=a;A:do{if((0|t)>0|!(0|t)&e>>>0>0){for(c=0,l=0,f=0,h=0;;){if(!(!(0|(u=0|n[(s=A+(c<<3)|0)>>2]))&!(0|(s=0|n[s+4>>2]))||(s=!(0|TA(u,s,r,o)),l=0|Fe(0|n[(u=o)>>2],0|n[u+4>>2],0|l,0|f),f=0|_(),s))){f=12;break}if(c=0|Fe(0|c,0|h,1,0),!((0|(h=0|_()))<(0|t)|(0|h)==(0|t)&c>>>0<e>>>0))break A}return F=a,0|f}l=0,f=0}while(0);return n[i>>2]=l,n[i+4>>2]=f,F=a,0|(i=0)},_vertexToLatLng:function(A,e,t){t|=0;var r,i,o,a,f=0,l=0;return a=F,F=F+192|0,i=a,o=a+168|0,f=0|Ye(0|(A|=0),0|(e|=0),56),_(),f&=7,0|(r=0|jA(A,l=-2130706433&e|134217728,o))?(F=a,0|(l=r)):(e=0|Ye(0|A,0|e,52),_(),e&=15,0|UA(A,l)?QA(o,e,f,1,i):IA(o,e,f,1,i),l=i+8|0,n[t>>2]=n[l>>2],n[t+4>>2]=n[l+4>>2],n[t+8>>2]=n[l+8>>2],n[t+12>>2]=n[l+12>>2],F=a,0|(l=0))},establishStackSpace:function(A,e){F=A|=0},stackAlloc:function(A){var e;return e=F,F=(F=F+(A|=0)|0)+15&-16,0|e},stackRestore:function(A){F=A|=0},stackSave:function(){return 0|F}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{a:wA,b:function(A){w=A},c:function(){return w},d:function(A,e,t,r){wA("Assertion failed: "+C(A)+", at: "+[e?C(e):"unknown filename",t,r?C(r):"unknown function"])},e:function(A){return t.___errno_location&&(M[t.___errno_location()>>2]=A),A},f:$,g:function(A,e,t){k.set(k.subarray(e,e+t),A)},h:function(A){var e=$(),t=16777216,r=2130706432;if(A>r)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?I(2*n,t):Math.min(I((3*n+2147483648)/4,t),r);return!!AA(n)},i:function(A){wA("OOM")},j:K,k:J,l:AA,m:q,n:function(){var A=q();return t.extraStackTrace&&(A+="\n"+t.extraStackTrace()),J(A)},o:24144,p:24128},B);t.___divdi3=nA.___divdi3,t.___muldi3=nA.___muldi3,t.___remdi3=nA.___remdi3,t.___uremdi3=nA.___uremdi3,t._areNeighborCells=nA._areNeighborCells,t._bitshift64Ashr=nA._bitshift64Ashr,t._bitshift64Lshr=nA._bitshift64Lshr,t._bitshift64Shl=nA._bitshift64Shl,t._calloc=nA._calloc,t._cellAreaKm2=nA._cellAreaKm2,t._cellAreaM2=nA._cellAreaM2,t._cellAreaRads2=nA._cellAreaRads2,t._cellToBoundary=nA._cellToBoundary,t._cellToCenterChild=nA._cellToCenterChild,t._cellToChildPos=nA._cellToChildPos,t._cellToChildren=nA._cellToChildren,t._cellToChildrenSize=nA._cellToChildrenSize,t._cellToLatLng=nA._cellToLatLng,t._cellToLocalIj=nA._cellToLocalIj,t._cellToParent=nA._cellToParent,t._cellToVertex=nA._cellToVertex,t._cellToVertexes=nA._cellToVertexes,t._cellsToDirectedEdge=nA._cellsToDirectedEdge,t._cellsToLinkedMultiPolygon=nA._cellsToLinkedMultiPolygon,t._childPosToCell=nA._childPosToCell,t._compactCells=nA._compactCells,t._destroyLinkedMultiPolygon=nA._destroyLinkedMultiPolygon,t._directedEdgeToBoundary=nA._directedEdgeToBoundary,t._directedEdgeToCells=nA._directedEdgeToCells,t._edgeLengthKm=nA._edgeLengthKm,t._edgeLengthM=nA._edgeLengthM,t._edgeLengthRads=nA._edgeLengthRads;var iA=t._emscripten_replace_memory=nA._emscripten_replace_memory;t._free=nA._free,t._getBaseCellNumber=nA._getBaseCellNumber,t._getDirectedEdgeDestination=nA._getDirectedEdgeDestination,t._getDirectedEdgeOrigin=nA._getDirectedEdgeOrigin,t._getHexagonAreaAvgKm2=nA._getHexagonAreaAvgKm2,t._getHexagonAreaAvgM2=nA._getHexagonAreaAvgM2,t._getHexagonEdgeLengthAvgKm=nA._getHexagonEdgeLengthAvgKm,t._getHexagonEdgeLengthAvgM=nA._getHexagonEdgeLengthAvgM,t._getIcosahedronFaces=nA._getIcosahedronFaces,t._getNumCells=nA._getNumCells,t._getPentagons=nA._getPentagons,t._getRes0Cells=nA._getRes0Cells,t._getResolution=nA._getResolution,t._greatCircleDistanceKm=nA._greatCircleDistanceKm,t._greatCircleDistanceM=nA._greatCircleDistanceM,t._greatCircleDistanceRads=nA._greatCircleDistanceRads,t._gridDisk=nA._gridDisk,t._gridDiskDistances=nA._gridDiskDistances,t._gridDistance=nA._gridDistance,t._gridPathCells=nA._gridPathCells,t._gridPathCellsSize=nA._gridPathCellsSize,t._gridRingUnsafe=nA._gridRingUnsafe,t._i64Add=nA._i64Add,t._i64Subtract=nA._i64Subtract,t._isPentagon=nA._isPentagon,t._isResClassIII=nA._isResClassIII,t._isValidCell=nA._isValidCell,t._isValidDirectedEdge=nA._isValidDirectedEdge,t._isValidVertex=nA._isValidVertex,t._latLngToCell=nA._latLngToCell,t._llvm_maxnum_f64=nA._llvm_maxnum_f64,t._llvm_minnum_f64=nA._llvm_minnum_f64,t._llvm_round_f64=nA._llvm_round_f64,t._localIjToCell=nA._localIjToCell,t._malloc=nA._malloc,t._maxFaceCount=nA._maxFaceCount,t._maxGridDiskSize=nA._maxGridDiskSize,t._maxPolygonToCellsSize=nA._maxPolygonToCellsSize,t._memcpy=nA._memcpy,t._memset=nA._memset,t._originToDirectedEdges=nA._originToDirectedEdges,t._pentagonCount=nA._pentagonCount,t._polygonToCells=nA._polygonToCells,t._readInt64AsDoubleFromPointer=nA._readInt64AsDoubleFromPointer,t._res0CellCount=nA._res0CellCount,t._round=nA._round,t._sbrk=nA._sbrk,t._sizeOfCellBoundary=nA._sizeOfCellBoundary,t._sizeOfCoordIJ=nA._sizeOfCoordIJ,t._sizeOfGeoLoop=nA._sizeOfGeoLoop,t._sizeOfGeoPolygon=nA._sizeOfGeoPolygon,t._sizeOfH3Index=nA._sizeOfH3Index,t._sizeOfLatLng=nA._sizeOfLatLng,t._sizeOfLinkedGeoPolygon=nA._sizeOfLinkedGeoPolygon,t._uncompactCells=nA._uncompactCells,t._uncompactCellsSize=nA._uncompactCellsSize,t._vertexToLatLng=nA._vertexToLatLng,t.establishStackSpace=nA.establishStackSpace;var oA,aA,fA=t.stackAlloc=nA.stackAlloc,lA=t.stackRestore=nA.stackRestore,uA=t.stackSave=nA.stackSave;if(t.asm=nA,t.cwrap=function(A,e,t,r){var n=(t=t||[]).every((function(A){return"number"===A}));return"string"!==e&&n&&!r?y(A):function(){return m(A,e,t,arguments)}},t.setValue=function(A,e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":E[A|0]=e;break;case"i16":_[A>>1]=e;break;case"i32":M[A>>2]=e;break;case"i64":j=[e>>>0,(V=e,+L(V)>=1?V>0?(0|z(+Y(V/4294967296),4294967295))>>>0:~~+H((V-+(~~V>>>0))/4294967296)>>>0:0)],M[A>>2]=j[0],M[A+4>>2]=j[1];break;case"float":Q[A>>2]=e;break;case"double":x[A>>3]=e;break;default:wA("invalid type for setValue: "+t)}},t.getValue=function(A,e,t){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return E[A|0];case"i16":return _[A>>1];case"i32":case"i64":return M[A>>2];case"float":return Q[A>>2];case"double":return x[A>>3];default:wA("invalid type for getValue: "+e)}return null},Z)if(X(Z)||(oA=Z,Z=t.locateFile?t.locateFile(oA,g):g+oA),o||f){var sA=s(Z);k.set(sA,8)}else{O++,t.monitorRunDependencies&&t.monitorRunDependencies(O);var cA=function(A){A.byteLength&&(A=new Uint8Array(A)),k.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(O--,t.monitorRunDependencies&&t.monitorRunDependencies(O),0==O&&N){var A=N;N=null,A()}}()},hA=function(){u(Z,cA,(function(){throw"could not load memory initializer "+Z}))},gA=rA(Z);if(gA)cA(gA.buffer);else if(t.memoryInitializerRequest){var dA=function(){var A=t.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var r=rA(t.memoryInitializerRequestURL);if(!r)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+Z),void hA();e=r.buffer}cA(e)};t.memoryInitializerRequest.response?setTimeout(dA,0):t.memoryInitializerRequest.addEventListener("load",dA)}else hA()}function pA(A){function e(){aA||(aA=!0,b||(P(T),P(U),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)A=t.postRun.shift(),R.unshift(A);var A;P(R)}()))}O>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)A=t.preRun.shift(),G.unshift(A);var A;P(G)}(),O>0||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),e()}),1)):e()))}function wA(A){throw t.onAbort&&t.onAbort(A),d(A+=""),p(A),b=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(N=function A(){aA||pA(),aA||(N=A)},t.run=pA,t.abort=wA,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return pA(),A}("object"==typeof F?F:{}),S="number",P={0:"Success",1:"The operation failed but a more specific error is not available",2:"Argument was outside of acceptable range",3:"Latitude or longitude arguments were outside of acceptable range",4:"Resolution argument was outside of acceptable range",5:"Cell argument was not valid",6:"Directed edge argument was not valid",7:"Undirected edge argument was not valid",8:"Vertex argument was not valid",9:"Pentagon distortion was encountered",10:"Duplicate input",11:"Cell arguments were not neighbors",12:"Cell arguments had incompatible resolutions",13:"Memory allocation failed",14:"Bounds of provided memory were insufficient",15:"Mode or flags argument was not valid"},G={1e3:"Unknown unit",1001:"Array length out of bounds",1002:"Got unexpected null value for H3 index"};function T(A,e,t){var r=t&&"value"in t,n=new Error((A[e]||"Unknown error")+" (code: "+e+(r?", value: "+t.value:"")+")");return n.code=e,n}function U(A,e){return T(P,A,2===arguments.length?{value:e}:{})}function R(A){if(0!==A)throw U(A)}var L={};[["sizeOfH3Index",S],["sizeOfLatLng",S],["sizeOfCellBoundary",S],["sizeOfGeoLoop",S],["sizeOfGeoPolygon",S],["sizeOfLinkedGeoPolygon",S],["sizeOfCoordIJ",S],["readInt64AsDoubleFromPointer",S],["isValidCell",S,[S,S]],["latLngToCell",S,[S,S,S,S]],["cellToLatLng",S,[S,S,S]],["cellToBoundary",S,[S,S,S]],["maxGridDiskSize",S,[S,S]],["gridDisk",S,[S,S,S,S]],["gridDiskDistances",S,[S,S,S,S,S]],["gridRingUnsafe",S,[S,S,S,S]],["maxPolygonToCellsSize",S,[S,S,S,S]],["polygonToCells",S,[S,S,S,S]],["cellsToLinkedMultiPolygon",S,[S,S,S]],["destroyLinkedMultiPolygon",null,[S]],["compactCells",S,[S,S,S,S]],["uncompactCells",S,[S,S,S,S,S,S]],["uncompactCellsSize",S,[S,S,S,S,S]],["isPentagon",S,[S,S]],["isResClassIII",S,[S,S]],["getBaseCellNumber",S,[S,S]],["getResolution",S,[S,S]],["maxFaceCount",S,[S,S,S]],["getIcosahedronFaces",S,[S,S,S]],["cellToParent",S,[S,S,S,S]],["cellToChildren",S,[S,S,S,S]],["cellToCenterChild",S,[S,S,S,S]],["cellToChildrenSize",S,[S,S,S,S]],["cellToChildPos",S,[S,S,S,S]],["childPosToCell",S,[S,S,S,S,S,S]],["areNeighborCells",S,[S,S,S,S,S]],["cellsToDirectedEdge",S,[S,S,S,S,S]],["getDirectedEdgeOrigin",S,[S,S,S]],["getDirectedEdgeDestination",S,[S,S,S]],["isValidDirectedEdge",S,[S,S]],["directedEdgeToCells",S,[S,S,S]],["originToDirectedEdges",S,[S,S,S]],["directedEdgeToBoundary",S,[S,S,S]],["gridDistance",S,[S,S,S,S,S]],["gridPathCells",S,[S,S,S,S,S]],["gridPathCellsSize",S,[S,S,S,S,S]],["cellToLocalIj",S,[S,S,S,S,S,S]],["localIjToCell",S,[S,S,S,S,S]],["getHexagonAreaAvgM2",S,[S,S]],["getHexagonAreaAvgKm2",S,[S,S]],["getHexagonEdgeLengthAvgM",S,[S,S]],["getHexagonEdgeLengthAvgKm",S,[S,S]],["greatCircleDistanceM",S,[S,S]],["greatCircleDistanceKm",S,[S,S]],["greatCircleDistanceRads",S,[S,S]],["cellAreaM2",S,[S,S,S]],["cellAreaKm2",S,[S,S,S]],["cellAreaRads2",S,[S,S,S]],["edgeLengthM",S,[S,S,S]],["edgeLengthKm",S,[S,S,S]],["edgeLengthRads",S,[S,S,S]],["getNumCells",S,[S,S]],["getRes0Cells",S,[S]],["res0CellCount",S],["getPentagons",S,[S,S]],["pentagonCount",S],["cellToVertex",S,[S,S,S,S]],["cellToVertexes",S,[S,S,S]],["vertexToLatLng",S,[S,S,S]],["isValidVertex",S,[S,S]]].forEach((function(A){L[A[0]]=F.cwrap.apply(F,A)}));var H=16,Y=L.sizeOfH3Index();L.sizeOfLatLng();var z=L.sizeOfCellBoundary();L.sizeOfGeoPolygon(),L.sizeOfGeoLoop(),L.sizeOfLinkedGeoPolygon(),L.sizeOfCoordIJ();var O=Math.pow(2,32)-1;function N(A){if(A>O)throw function(A,e){return T(G,A,2===arguments.length?{value:e}:{})}(1001,A);return A}var V=/[^0-9a-fA-F]/;function j(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||V.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),H);return[parseInt(A.substring(A.length-8),H),e]}function Z(A){if(A>=0)return A.toString(H);var e=W(8,(A&=2147483647).toString(H));return e=(parseInt(e[0],H)+8).toString(H)+e.substring(1)}function W(A,e){for(var t=A-e.length,r="",n=0;n<t;n++)r+="0";return r+=e}function X(A,e){void 0===e&&(e=0);var t=F.getValue(A+Y*e,"i32"),r=F.getValue(A+Y*e+4,"i32");return r?function(A,e){return Z(e)+W(8,Z(A))}(t,r):null}function K(A,e){for(var t=[],r=0;r<e;r++){var n=X(A,r);null!==n&&t.push(n)}return t}function J(A){return 180*F.getValue(A,"double")/Math.PI}function q(A){return[J(A+8),J(A)]}function $(A){var e=j(A),t=e[0],r=e[1];return Boolean(L.isValidCell(t,r))}function AA(A,e){var t=F._malloc(z),r=j(A),n=r[0],i=r[1];try{return R(L.cellToBoundary(n,i,t)),function(A){for(var e=F.getValue(A,"i32"),t=A+8,r=[],n=q,i=0;i<2*e;i+=2)r.push(n(t+8*i));return r.push(r[0]),r}(t)}finally{F._free(t)}}function eA(A,e){if(!$(A))return[];var t=j(A),r=t[0],n=t[1],i=N(function(A,e){if(!$(A))throw U(5);var t=j(A),r=t[0],n=t[1],i=F._malloc(8);try{return R(L.cellToChildrenSize(r,n,e,i)),o=i,L.readInt64AsDoubleFromPointer(o)}finally{F._free(i)}var o}(A,e)),o=F._calloc(i,Y);try{return R(L.cellToChildren(r,n,e,o)),K(o,i)}finally{F._free(o)}}function tA(){var A=L.res0CellCount(),e=F._malloc(Y*A);try{return R(L.getRes0Cells(e)),K(e,A)}finally{F._free(e)}}function rA(A){if(A.__esModule)return A;var e=A.default;if("function"==typeof e){var t=function A(){return this instanceof A?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(A).forEach((function(e){var r=Object.getOwnPropertyDescriptor(A,e);Object.defineProperty(t,e,r.get?r:{enumerable:!0,get:function(){return A[e]}})})),t}var nA=function(A){var e,t=void 0!==(A=A||{})?A:{},r={};for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);var n,i,o,a,f;n="object"==typeof window,i="function"==typeof importScripts,a="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=a&&!n&&!i,f=!n&&!o&&!i;var l,u,s,c,h,g="";o?(g=__dirname+"/",l=function(A,e){var t;return(t=nA(A))||(c||(c=require("fs")),h||(h=require("path")),A=h.normalize(A),t=c.readFileSync(A)),e?t:t.toString()},s=function(A){var e=l(A,!0);return e.buffer||(e=new Uint8Array(e)),y(e.buffer),e},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),t.inspect=function(){return"[Emscripten Module object]"}):f?("undefined"!=typeof read&&(l=function(A){var e=nA(A);return e?tA(e):read(A)}),s=function(A){var e;return(e=nA(A))?e:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(y("object"==typeof(e=read(A,"binary"))),e)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(n||i)&&(i?g=self.location.href:document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",l=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var t=nA(A);if(t)return tA(t);throw e}},i&&(s=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}catch(e){var t=nA(A);if(t)return t;throw e}}),u=function(A,e,t){var r=new XMLHttpRequest;r.open("GET",A,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)e(r.response);else{var n=nA(A);n?e(n.buffer):t()}},r.onerror=t,r.send(null)});var d=t.print||console.log.bind(console),p=t.printErr||console.warn.bind(console);for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);r=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram;var w=0,b=function(){return w};var v=!1;function y(A,e){A||bA("Assertion failed: "+e)}function m(A){var e=t["_"+A];return y(e,"Cannot call unknown function "+A+", make sure it is exported"),e}function B(A,e,t,r,n){var i={string:function(A){var e=0;if(null!=A&&0!==A){var t=1+(A.length<<2);(function(A,e,t){(function(A,e,t,r){if(!(r>0))return 0;for(var n=t,i=t+r-1,o=0;o<A.length;++o){var a=A.charCodeAt(o);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&A.charCodeAt(++o);if(a<=127){if(t>=i)break;e[t++]=a}else if(a<=2047){if(t+1>=i)break;e[t++]=192|a>>6,e[t++]=128|63&a}else if(a<=65535){if(t+2>=i)break;e[t++]=224|a>>12,e[t++]=128|a>>6&63,e[t++]=128|63&a}else{if(t+3>=i)break;e[t++]=240|a>>18,e[t++]=128|a>>12&63,e[t++]=128|a>>6&63,e[t++]=128|63&a}}e[t]=0})(A,_,e,t)})(A,e=lA(t),t)}return e},array:function(A){var e=lA(A.length);return function(A,e){k.set(A,e)}(A,e),e}};var o=m(A),a=[],f=0;if(r)for(var l=0;l<r.length;l++){var u=i[t[l]];u?(0===f&&(f=sA()),a[l]=u(r[l])):a[l]=r[l]}var s=o.apply(null,a);return s=function(A){return"string"===e?I(A):"boolean"===e?Boolean(A):A}(s),0!==f&&uA(f),s}var E,k,_,M,Q,x,D,C="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function I(A,e){return A?function(A,e,t){for(var r=e+t,n=e;A[n]&&!(n>=r);)++n;if(n-e>16&&A.subarray&&C)return C.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var a=63&A[e++];if(192!=(224&o)){var f=63&A[e++];if((o=224==(240&o)?(15&o)<<12|a<<6|f:(7&o)<<18|a<<12|f<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var l=o-65536;i+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|a)}else i+=String.fromCharCode(o)}return i}(_,A,e):""}function F(A,e){return A%e>0&&(A+=e-A%e),A}function S(A){E=A,t.HEAP8=k=new Int8Array(A),t.HEAP16=M=new Int16Array(A),t.HEAP32=Q=new Int32Array(A),t.HEAPU8=_=new Uint8Array(A),t.HEAPU16=new Uint16Array(A),t.HEAPU32=new Uint32Array(A),t.HEAPF32=x=new Float32Array(A),t.HEAPF64=D=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var P=t.TOTAL_MEMORY||33554432;function G(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?t.dynCall_v(r):t.dynCall_vi(r,e.arg):r(void 0===e.arg?null:e.arg)}else e()}}P=(E=t.buffer?t.buffer:new ArrayBuffer(P)).byteLength,S(E),Q[6004]=5266928;var T=[],U=[],R=[],L=[];var H=Math.abs,Y=Math.ceil,z=Math.floor,O=Math.min,N=0,V=null;t.preloadedImages={},t.preloadedAudios={};var j,Z,W=null,X="data:application/octet-stream;base64,";function K(A){return String.prototype.startsWith?A.startsWith(X):0===A.indexOf(X)}W="data:application/octet-stream;base64,AAAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAABAAAAAMAAAAGAAAABQAAAAIAAAAAAAAAAgAAAAMAAAABAAAABAAAAAYAAAAAAAAABQAAAAMAAAAGAAAABAAAAAUAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAABAAAABQAAAAIAAAAAAAAAAQAAAAMAAAAGAAAABAAAAAYAAAAAAAAABQAAAAIAAAABAAAABAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABgAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAABgAAAAAAAAADAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAUAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAACAAAABAAAAAMAAAAIAAAA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AAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAADAAAABQAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAABQAAAAUAAAAAAAAAAAAAAP////8BAAAAAAAAAAMAAAAEAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAP//////////AQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAIAAAAAAAAAAAAAAAEAAAACAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAACAAAAAAAAAAAAAAABAAAAAQAAAAUAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAAAAAAAAAAAAAEAAAADAAAABwAAAAYAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAJAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAAAAAAAAAAAAQAAAAQAAAAIAAAACgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAAAAAABAAAACwAAAA8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAAAAAAAAAAABAAAADAAAABAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAEAAAAKAAAAEwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAAAAAAAAQAAAA0AAAARAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAAAAAAAAAAAAAEAAAAOAAAAEgAAAA8AAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAAAAAABAAAA//////////8TAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABIAAAAAAAAAGAAAAAAAAAAhAAAAAAAAAB4AAAAAAAAAIAAAAAMAAAAxAAAAAQAAADAAAAADAAAAMgAAAAMAAAAIAAAAAAAAAAUAAAAFAAAACgAAAAUAAAAWAAAAAAAAABAAAAAAAAAAEgAAAAAAAAApAAAAAQAAACEAAAAAAAAAHgAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAPAAAAAQAAAAgAAAAAAAAABQAAAAUAAAAfAAAAAQAAABYAAAAAAAAAEAAAAAAAAAACAAAAAAAAAAYAAAAAAAAADgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAAEQAAAAMAAAAYAAAAAQAAABcAAAADAAAAGQAAAAMAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAUAAAAFAAAAAAAAAAIAAAAAAAAABgAAAAAAAAASAAAAAQAAAAoAAAAAAAAACwAAAAAAAAAEAAAAAQAAAAMAAAAFAAAABwAAAAUAAAAIAAAAAQAAAAAAAAAAAAAAAQAAAAUAAAAQAAAAAQAAAAUAAAAAAAAAAgAAAAAAAAAHAAAAAAAAABUAAAAAAAAAJgAAAAAAAAAJAAAAAAAAABMAAAAAAAAAIgAAAAMAAAAOAAAAAQAAABQAAAADAAAAJAAAAAMAAAADAAAAAAAAAA0AAAAFAAAAHQAAAAUAAAABAAAAAAAAAAcAAAAAAAAAFQAAAAAAAAAGAAAA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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAABAAEAAAEBAAAAAAABAAAAAQAAAAEAAQAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAAYWxnb3MuYwBfcG9seWZpbGxJbnRlcm5hbABhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0dlb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9HZW9Cb3VuZGFyeQBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGgzVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAcGVudGFnb25Sb3RhdGlvbnMgPj0gMABkaXJlY3Rpb25Sb3RhdGlvbnMgPj0gMABiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvSDMAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAd2l0aGluUGVudGFnb25Sb3RhdGlvbnMgPj0gMABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl";function J(A){return A}function q(A){return A.replace(/\b__Z[\w\d_]+/g,(function(A){return A===A?A:A+" ["+A+"]"}))}function $(){var A=new Error;if(!A.stack){try{throw new Error(0)}catch(e){A=e}if(!A.stack)return"(no stack trace available)"}return A.stack.toString()}function AA(){return k.length}function eA(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(k),oA(e),S(e),1}catch(A){}}function tA(A){for(var e=[],t=0;t<A.length;t++){var r=A[t];r>255&&(r&=255),e.push(String.fromCharCode(r))}return e.join("")}var rA="function"==typeof atob?atob:function(A){var e,t,r,n,i,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="",l=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=a.indexOf(A.charAt(l++))<<2|(n=a.indexOf(A.charAt(l++)))>>4,t=(15&n)<<4|(i=a.indexOf(A.charAt(l++)))>>2,r=(3&i)<<6|(o=a.indexOf(A.charAt(l++))),f+=String.fromCharCode(e),64!==i&&(f+=String.fromCharCode(t)),64!==o&&(f+=String.fromCharCode(r))}while(l<A.length);return f};function nA(A){if(K(A))return function(A){if("boolean"==typeof o&&o){var e;try{e=Buffer.from(A,"base64")}catch(t){e=new Buffer(A,"base64")}return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var t=rA(A),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(X.length))}var iA=function(A,e,t){var r=new A.Int8Array(t),n=new A.Int32Array(t);new A.Uint8Array(t),new A.Float32Array(t);var i=new A.Float64Array(t),o=0|e.p,a=A.Math.floor,f=A.Math.abs,l=A.Math.sqrt,u=A.Math.pow,s=A.Math.cos,c=A.Math.sin,h=A.Math.tan,g=A.Math.acos,d=A.Math.asin,p=A.Math.atan,w=A.Math.atan2,b=A.Math.ceil,v=A.Math.imul,y=A.Math.min,m=A.Math.clz32,B=e.b,E=e.c,k=e.d,_=e.e,M=e.f,Q=e.g,x=e.h,D=e.i,C=24048;function I(A,e,t,r){var n,i;0|F(A|=0,e|=0,t|=0,r|=0,0)&&(De(0|r,0,(i=1+(0|v(3*t|0,t+1|0))|0)<<3),(n=0|ve(i,4))&&(S(A,e,t,r,n,i,0),be(n)))}function F(A,e,t,r,i){A|=0,e|=0,t|=0,i|=0;var o,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0;if(o=C,C=C+16|0,g=o,n[(a=r|=0)>>2]=A,n[a+4>>2]=e,(a=!!(0|i))&&(n[i>>2]=0),0|PA(A,e))return C=o,0|(g=1);n[g>>2]=0;A:do{if((0|t)>=1)if(a)for(s=0,c=1,h=1,f=0,a=A;;){if(!(f|s)){if(!(0|(a=0|P(a,e,4,g)))&!(0|(e=0|E()))){a=2;break A}if(0|PA(a,e)){a=1;break A}}if(!(0|(a=0|P(a,e,0|n[16+(s<<2)>>2],g)))&!(0|(e=0|E()))){a=2;break A}if(n[(A=r+(h<<3)|0)>>2]=a,n[A+4>>2]=e,n[i+(h<<2)>>2]=c,A=(0|(f=f+1|0))==(0|c),u=6==(0|(l=s+1|0)),0|PA(a,e)){a=1;break A}if((0|(c=c+(u&A&1)|0))>(0|t)){a=0;break}s=A?u?0:l:s,h=h+1|0,f=A?0:f}else for(s=0,c=1,h=1,f=0,a=A;;){if(!(f|s)){if(!(0|(a=0|P(a,e,4,g)))&!(0|(e=0|E()))){a=2;break A}if(0|PA(a,e)){a=1;break A}}if(!(0|(a=0|P(a,e,0|n[16+(s<<2)>>2],g)))&!(0|(e=0|E()))){a=2;break A}if(n[(A=r+(h<<3)|0)>>2]=a,n[A+4>>2]=e,A=(0|(f=f+1|0))==(0|c),u=6==(0|(l=s+1|0)),0|PA(a,e)){a=1;break A}if((0|(c=c+(u&A&1)|0))>(0|t)){a=0;break}s=A?u?0:l:s,h=h+1|0,f=A?0:f}else a=0}while(0);return C=o,0|(g=a)}function S(A,e,t,r,i,o,a){t|=0,r|=0,i|=0,o|=0,a|=0;var f,l,u=0,s=0,c=0,h=0,g=0;if(l=C,C=C+16|0,f=l,!(0|(A|=0))&!(0|(e|=0)))C=l;else{if(u=0|Ee(0|A,0|e,0|o,((0|o)<0)<<31>>31),E(),!(!(0|(g=0|n[(h=s=r+(u<<3)|0)>>2]))&!(0|(h=0|n[h+4>>2]))|(c=(0|g)==(0|A)&(0|h)==(0|e))))do{c=(0|(h=0|n[(g=s=r+((u=(u+1|0)%(0|o)|0)<<3)|0)>>2]))==(0|A)&(0|(g=0|n[g+4>>2]))==(0|e)}while(!(!(0|h)&!(0|g)|c));u=i+(u<<2)|0,c&&(0|n[u>>2])<=(0|a)||(n[(g=s)>>2]=A,n[g+4>>2]=e,n[u>>2]=a,(0|a)>=(0|t)||(g=a+1|0,n[f>>2]=0,S(h=0|P(A,e,2,f),0|E(),t,r,i,o,g),n[f>>2]=0,S(h=0|P(A,e,3,f),0|E(),t,r,i,o,g),n[f>>2]=0,S(h=0|P(A,e,1,f),0|E(),t,r,i,o,g),n[f>>2]=0,S(h=0|P(A,e,5,f),0|E(),t,r,i,o,g),n[f>>2]=0,S(h=0|P(A,e,4,f),0|E(),t,r,i,o,g),n[f>>2]=0,S(h=0|P(A,e,6,f),0|E(),t,r,i,o,g))),C=l}}function P(A,e,t,r){A|=0,e|=0,t|=0;var i,o,a=0,f=0,l=0,u=0,s=0,c=0,h=0;if((0|n[(r|=0)>>2])>0){a=0;do{t=0|fA(t),a=a+1|0}while((0|a)<(0|n[r>>2]))}i=0|ke(0|A,0|e,45),E(),o=127&i,f=0|GA(A,e),a=0|ke(0|A,0|e,52),E(),a&=15;A:do{if(a)for(;;){if(c=0|ke(0|A,0|e,0|(s=3*(15-a|0)|0)),E(),c&=7,h=!(0|HA(a)),a=a+-1|0,u=0|_e(7,0,0|s),e&=~E(),A=(s=0|_e(0|n[(h?464:48)+(28*c|0)+(t<<2)>>2],0,0|s))|A&~u,e|=0|E(),!(t=0|n[(h?672:256)+(28*c|0)+(t<<2)>>2])){t=0;break A}if(!a){l=6;break}}else l=6}while(0);6==(0|l)&&(A|=c=0|_e(0|(h=0|n[880+(28*o|0)+(t<<2)>>2]),0,45),e=E()|-1040385&e,t=0|n[4304+(28*o|0)+(t<<2)>>2],127&~h||(h=0|_e(0|n[880+(28*o|0)+20>>2],0,45),e=E()|-1040385&e,t=0|n[4304+(28*o|0)+20>>2],A=0|UA(h|A,e),e=0|E(),n[r>>2]=1+(0|n[r>>2]))),l=0|ke(0|A,0|e,45),E(),l&=127;A:do{if(0|T(l)){e:do{if(1==(0|GA(A,e))){if((0|o)!=(0|l)){if(0|H(l,0|n[7728+(28*o|0)>>2])){A=0|LA(A,e),f=1,e=0|E();break}A=0|UA(A,e),f=1,e=0|E();break}switch(0|f){case 5:A=0|LA(A,e),e=0|E(),n[r>>2]=5+(0|n[r>>2]),f=0;break e;case 3:A=0|UA(A,e),e=0|E(),n[r>>2]=1+(0|n[r>>2]),f=0;break e;default:return h=0,B(0|(c=0)),0|h}}else f=0}while(0);if((0|t)>0){a=0;do{A=0|TA(A,e),e=0|E(),a=a+1|0}while((0|a)!=(0|t))}if((0|o)!=(0|l)){if(!(0|U(l))){if(!!(0|f)|5!=(0|GA(A,e)))break;n[r>>2]=1+(0|n[r>>2]);break}switch(127&i){case 8:case 118:break A}3!=(0|GA(A,e))&&(n[r>>2]=1+(0|n[r>>2]))}}else if((0|t)>0){a=0;do{A=0|UA(A,e),e=0|E(),a=a+1|0}while((0|a)!=(0|t))}}while(0);return n[r>>2]=((0|n[r>>2])+t|0)%6|0,h=A,B(0|(c=e)),0|h}function G(A,e,t,r,o,a){e|=0,t|=0,r|=0,o|=0,a|=0;var f,l,u,s,c,h,g,d,p,w=0,b=0,v=0,y=0,m=0,B=0,k=0,_=0,M=0,Q=0,x=0,D=0,I=0,F=0;if(p=C,C=C+48|0,h=p+32|0,g=p+16|0,d=p,(0|(w=0|n[(A|=0)>>2]))<=0)return C=p,0|(D=0);f=A+4|0,l=h+8|0,u=g+8|0,s=d+8|0,c=((0|e)<0)<<31>>31,x=0;A:for(;;){M=(b=0|n[f>>2])+(x<<4)|0,n[h>>2]=n[M>>2],n[h+4>>2]=n[M+4>>2],n[h+8>>2]=n[M+8>>2],n[h+12>>2]=n[M+12>>2],(0|x)==(w+-1|0)?(n[g>>2]=n[b>>2],n[g+4>>2]=n[b+4>>2],n[g+8>>2]=n[b+8>>2],n[g+12>>2]=n[b+12>>2]):(M=b+(x+1<<4)|0,n[g>>2]=n[M>>2],n[g+4>>2]=n[M+4>>2],n[g+8>>2]=n[M+8>>2],n[g+12>>2]=n[M+12>>2]),M=0|j(h,g,t);e:do{if((0|M)>0){Q=+(0|M),_=0;t:for(;;){F=+(M-_|0),I=+(0|_),i[d>>3]=+i[h>>3]*F/Q+ +i[g>>3]*I/Q,i[s>>3]=+i[l>>3]*F/Q+ +i[u>>3]*I/Q,b=0|Ee(0|(B=0|YA(d,t)),0|(k=0|E()),0|e,0|c),E(),y=0|n[(v=w=a+(b<<3)|0)>>2],v=0|n[v+4>>2];r:do{if(!(0|y)&!(0|v))D=14;else for(m=0;;){if((0|m)>(0|e)){w=1;break r}if((0|y)==(0|B)&(0|v)==(0|k)){w=7;break r}if(!(0|(y=0|n[(v=w=a+((b=(b+1|0)%(0|e)|0)<<3)|0)>>2]))&!(0|(v=0|n[v+4>>2]))){D=14;break}m=m+1|0}}while(0);switch(14==(0|D)&&(D=0,!(0|B)&!(0|k)?w=7:(n[w>>2]=B,n[w+4>>2]=k,w=0|n[r>>2],n[(m=o+(w<<3)|0)>>2]=B,n[m+4>>2]=k,n[r>>2]=w+1,w=0)),7&w){case 7:case 0:break;default:break t}if((0|M)<=(0|(_=_+1|0))){D=8;break e}}if(0|w){w=-1,D=20;break A}}else D=8}while(0);if(8==(0|D)&&(D=0),(0|(x=x+1|0))>=(0|(w=0|n[A>>2]))){w=0,D=20;break}}return 20==(0|D)?(C=p,0|w):0}function T(A){return 0|n[7728+(28*(A|=0)|0)+16>>2]}function U(A){return 4==(0|(A|=0))|117==(0|A)}function R(A){return 0|n[11152+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function L(A){return 0|n[11152+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function H(A,e){return e|=0,(0|n[7728+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|n[7728+(28*A|0)+24>>2])==(0|e))}function Y(A,e){return 0|n[880+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function z(A,e){return e|=0,(0|n[880+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|n[880+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[880+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[880+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[880+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[880+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[880+(28*A|0)+24>>2])==(0|e)?6:7)}function O(A){return+i[(A|=0)+16>>3]<+i[A+24>>3]|0}function N(A,e){A|=0;var t,r,n=0;return(n=+i[(e|=0)>>3])>=+i[A+8>>3]&&n<=+i[A>>3]?(t=+i[A+16>>3],n=+i[A+24>>3],e=(r=+i[e+8>>3])>=n,A=r<=t&1,t<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function V(A,e){A|=0,e|=0;var t,r,o,a,l,u,s=0,c=0;a=C,C=C+288|0,t=a+264|0,r=a+96|0,c=(s=o=a)+96|0;do{n[s>>2]=0,s=s+4|0}while((0|s)<(0|c));return jA(e,o),NA(c=0|n[(s=o)>>2],s=0|n[s+4>>2],t),VA(c,s,r),l=+xA(t,r+8|0),i[t>>3]=+i[A>>3],i[(s=t+8|0)>>3]=+i[A+16>>3],i[r>>3]=+i[A+8>>3],i[(c=r+8|0)>>3]=+i[A+24>>3],u=+xA(t,r),c=~~+b(+u*u/+Me(+ +f(+(+i[s>>3]-+i[c>>3])/(+i[t>>3]-+i[r>>3])),3)/(l*(2.59807621135*l)*.8)),C=a,0|(0|c?c:1)}function j(A,e,t){A|=0,e|=0,t|=0;var r,i,o,a,f,l=0,u=0;a=C,C=C+288|0,r=a+264|0,i=a+96|0,u=(l=o=a)+96|0;do{n[l>>2]=0,l=l+4|0}while((0|l)<(0|u));return jA(t,o),NA(l=0|n[(u=o)>>2],u=0|n[u+4>>2],r),VA(l,u,i),f=+xA(r,i+8|0),u=~~+b(+ +xA(A,e)/(2*f)),C=a,0|(0|u?u:1)}function Z(A,e,t,r){e|=0,t|=0,r|=0,n[(A|=0)>>2]=e,n[A+4>>2]=t,n[A+8>>2]=r}function W(A,e){A|=0;var t,r,o,a,l=0,u=0,s=0,c=0,h=0,g=0,d=0;n[(a=(e|=0)+8|0)>>2]=0,r=+i[A>>3],c=+f(+r),o=+i[A+8>>3],c+=.5*(h=+f(+o)/.8660254037844386),c-=+(0|(l=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=l,h<.5*(c+1)){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,n[e+4>>2]=A,d<=h&h<2*c){l=l+1|0,n[e>>2]=l;break}n[e>>2]=l;break}if(!(c<.6666666666666666)){if(l=l+1|0,n[e>>2]=l,h<.5*c){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=l;break}}else A=A+1|0,n[e+4>>2]=A;l=l+1|0,n[e>>2]=l}while(0);do{if(r<0){if(1&A){l=~~(+(0|l)-(2*(+((g=0|ye(0|l,((0|l)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|E()))+1)),n[e>>2]=l;break}l=~~(+(0|l)-2*(+((g=0|ye(0|l,((0|l)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|E()))),n[e>>2]=l;break}}while(0);g=e+4|0,o<0&&(l=l-((1|A<<1)/2|0)|0,n[e>>2]=l,A=0-A|0,n[g>>2]=A),u=A-l|0,(0|l)<0?(s=0-l|0,n[g>>2]=u,n[a>>2]=s,n[e>>2]=0,A=u,l=0):s=0,(0|A)<0&&(l=l-A|0,n[e>>2]=l,s=s-A|0,n[a>>2]=s,n[g>>2]=0,A=0),t=l-s|0,u=A-s|0,(0|s)<0&&(n[e>>2]=t,n[g>>2]=u,n[a>>2]=0,A=u,l=t,s=0),(0|(u=(0|s)<(0|(u=(0|A)<(0|l)?A:l))?s:u))<=0||(n[e>>2]=l-u,n[g>>2]=A-u,n[a>>2]=s-u)}function X(A){var e,t=0,r=0,i=0,o=0,a=0;t=0|n[(A|=0)>>2],r=0|n[(e=A+4|0)>>2],(0|t)<0&&(r=r-t|0,n[e>>2]=r,n[(a=A+8|0)>>2]=(0|n[a>>2])-t,n[A>>2]=0,t=0),(0|r)<0?(t=t-r|0,n[A>>2]=t,o=(0|n[(a=A+8|0)>>2])-r|0,n[a>>2]=o,n[e>>2]=0,r=0):(a=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(t=t-o|0,n[A>>2]=t,r=r-o|0,n[e>>2]=r,n[a>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|r)<(0|t)?r:t))?o:i))<=0||(n[A>>2]=t-i,n[e>>2]=r-i,n[a>>2]=o-i)}function K(A,e){e|=0;var t,r;r=0|n[(A|=0)+8>>2],t=+((0|n[A+4>>2])-r|0),i[e>>3]=+((0|n[A>>2])-r|0)-.5*t,i[e+8>>3]=.8660254037844386*t}function J(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[e>>2])+(0|n[A>>2]),n[t+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[t+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function q(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[A>>2])-(0|n[e>>2]),n[t+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[t+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function $(A,e){e|=0;var t,r=0;r=0|v(0|n[(A|=0)>>2],e),n[A>>2]=r,t=0|v(0|n[(r=A+4|0)>>2],e),n[r>>2]=t,e=0|v(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function AA(A){var e,t,r=0,i=0,o=0,a=0,f=0;f=(0|(t=0|n[(A|=0)>>2]))<0,A=(A=(i=(0|(a=((e=(0|(o=(0|n[A+4>>2])-(f?t:0)|0))<0)?0-o|0:0)+((0|n[A+8>>2])-(f?t:0))|0))<0)?0:a)-((o=(0|(i=(0|A)<(0|(i=(0|(r=(e?0:o)-(i?a:0)|0))<(0|(a=(f?0:t)-(e?o:0)-(i?a:0)|0))?r:a))?A:i))>0)?i:0)|0,r=r-(o?i:0)|0;A:do{switch(a-(o?i:0)|0){case 0:switch(0|r){case 0:return 0|(f=0|A?1==(0|A)?1:7:0);case 1:return 0|(f=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|r){case 0:return 0|(f=0|A?1==(0|A)?5:7:4);case 1:if(A)break A;return 0|(A=6);default:break A}}}while(0);return 0|(f=7)}function eA(A){var e,t,r=0,i=0,o=0,a=0,f=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|pe(+((3*(r=(0|n[A>>2])-i|0)|0)-(i=(0|n[(t=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,r=0|pe(+((i<<1)+r|0)/7),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(f=0-o|0,n[t>>2]=i,n[e>>2]=f,n[A>>2]=0,r=i,o=0,i=f):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),f=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=f,n[t>>2]=a,n[e>>2]=0,r=a,a=f,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=r-o,n[e>>2]=i-o)}function tA(A){var e,t,r=0,i=0,o=0,a=0,f=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|pe(+(((r=(0|n[A>>2])-i|0)<<1)+(i=(0|n[(t=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,r=0|pe(+((3*i|0)-r|0)/7),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(f=0-o|0,n[t>>2]=i,n[e>>2]=f,n[A>>2]=0,r=i,o=0,i=f):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),f=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=f,n[t>>2]=a,n[e>>2]=0,r=a,a=f,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=r-o,n[e>>2]=i-o)}function rA(A){var e,t,r,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],a=0|n[(r=A+8|0)>>2],f=o+(3*i|0)|0,n[A>>2]=f,o=a+(3*o|0)|0,n[t>>2]=o,i=(3*a|0)+i|0,n[r>>2]=i,a=o-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=a,n[r>>2]=i,n[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=f,n[r>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=f-o,n[r>>2]=i-o)}function nA(A){var e,t,r,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=(3*(i=0|n[(t=A+4|0)>>2])|0)+f|0,f=(o=0|n[(r=A+8|0)>>2])+(3*f|0)|0,n[A>>2]=f,n[t>>2]=a,i=(3*o|0)+i|0,n[r>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,n[A>>2]=f,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=f-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,f=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|f)?a:f))?i:o))<=0||(n[A>>2]=f-o,n[t>>2]=a-o,n[r>>2]=i-o)}function iA(A,e){A|=0;var t,r,i,o=0,a=0,f=0;((e|=0)+-1|0)>>>0>=6||(f=(0|n[15472+(12*e|0)>>2])+(0|n[A>>2])|0,n[A>>2]=f,i=A+4|0,a=(0|n[15472+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[i>>2]=a,r=A+8|0,e=(0|n[15472+(12*e|0)+8>>2])+(0|n[r>>2])|0,n[r>>2]=e,o=a-f|0,(0|f)<0?(e=e-f|0,n[i>>2]=o,n[r>>2]=e,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,e=e-o|0,n[r>>2]=e,n[i>>2]=0,o=0),t=a-e|0,f=o-e|0,(0|e)<0?(n[A>>2]=t,n[i>>2]=f,n[r>>2]=0,a=t,e=0):f=o,(0|(o=(0|e)<(0|(o=(0|f)<(0|a)?f:a))?e:o))<=0||(n[A>>2]=a-o,n[i>>2]=f-o,n[r>>2]=e-o))}function oA(A){var e,t,r,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=(i=0|n[(t=A+4|0)>>2])+f|0,f=(o=0|n[(r=A+8|0)>>2])+f|0,n[A>>2]=f,n[t>>2]=a,i=o+i|0,n[r>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=f,n[r>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=f-o,n[r>>2]=i-o)}function aA(A){var e,t,r,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],a=0|n[(t=A+4|0)>>2],o=0|n[(r=A+8|0)>>2],f=a+i|0,n[A>>2]=f,a=o+a|0,n[t>>2]=a,i=o+i|0,n[r>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=f,n[r>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=f-o,n[r>>2]=i-o)}function fA(A){switch(0|(A|=0)){case 1:A=5;break;case 5:A=4;break;case 4:A=6;break;case 6:A=2;break;case 2:A=3;break;case 3:A=1}return 0|A}function lA(A){switch(0|(A|=0)){case 1:A=3;break;case 3:A=2;break;case 2:A=6;break;case 6:A=4;break;case 4:A=5;break;case 5:A=1}return 0|A}function uA(A){var e,t,r,i=0,o=0,a=0,f=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],a=0|n[(r=A+8|0)>>2],f=o+(i<<1)|0,n[A>>2]=f,o=a+(o<<1)|0,n[t>>2]=o,i=(a<<1)+i|0,n[r>>2]=i,a=o-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=a,n[r>>2]=i,n[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,f=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=f,n[r>>2]=0,a=e,i=0):f=o,(0|(o=(0|i)<(0|(o=(0|f)<(0|a)?f:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=f-o,n[r>>2]=i-o)}function sA(A){var e,t,r,i=0,o=0,a=0,f=0;f=0|n[(A|=0)>>2],a=((i=0|n[(t=A+4|0)>>2])<<1)+f|0,f=(o=0|n[(r=A+8|0)>>2])+(f<<1)|0,n[A>>2]=f,n[t>>2]=a,i=(o<<1)+i|0,n[r>>2]=i,o=a-f|0,(0|f)<0?(i=i-f|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,n[A>>2]=f,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=f-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,f=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|f)?a:f))?i:o))<=0||(n[A>>2]=f-o,n[t>>2]=a-o,n[r>>2]=i-o)}function cA(A,e){e|=0;var t,r,i,o=0,a=0,f=0;return i=(0|(r=(0|n[(A|=0)>>2])-(0|n[e>>2])|0))<0,t=(0|(a=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?r:0)|0))<0,e=(e=(A=(0|(f=(i?0-r|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+(t?0-a|0:0)|0))<0)?0:f)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:a)-(A?f:0)|0))<(0|(f=(i?0:r)-(t?a:0)-(A?f:0)|0))?o:f))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=f-(a?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function hA(A,e){e|=0;var t;t=0|n[(A|=0)+8>>2],n[e>>2]=(0|n[A>>2])-t,n[e+4>>2]=(0|n[A+4>>2])-t}function gA(A,e){e|=0;var t,r,i,o=0,a=0,f=0;a=0|n[(A|=0)>>2],n[e>>2]=a,A=0|n[A+4>>2],n[(r=e+4|0)>>2]=A,n[(i=e+8|0)>>2]=0,o=A-a|0,(0|a)<0?(A=0-a|0,n[r>>2]=o,n[i>>2]=A,n[e>>2]=0,a=0):(o=A,A=0),(0|o)<0&&(a=a-o|0,n[e>>2]=a,A=A-o|0,n[i>>2]=A,n[r>>2]=0,o=0),t=a-A|0,f=o-A|0,(0|A)<0?(n[e>>2]=t,n[r>>2]=f,n[i>>2]=0,o=f,f=t,A=0):f=a,(0|(a=(0|A)<(0|(a=(0|o)<(0|f)?o:f))?A:a))<=0||(n[e>>2]=f-a,n[r>>2]=o-a,n[i>>2]=A-a)}function dA(A){var e,t,r,i;t=(i=0|n[(e=(A|=0)+8|0)>>2])-(0|n[A>>2])|0,n[A>>2]=t,A=(0|n[(r=A+4|0)>>2])-i|0,n[r>>2]=A,n[e>>2]=0-(A+t)}function pA(A){var e,t,r=0,i=0,o=0,a=0,f=0;r=0-(i=0|n[(A|=0)>>2])|0,n[A>>2]=r,n[(e=A+8|0)>>2]=0,a=(o=0|n[(t=A+4|0)>>2])+i|0,(0|i)>0?(n[t>>2]=a,n[e>>2]=i,n[A>>2]=0,r=0,o=a):i=0,(0|o)<0?(f=r-o|0,n[A>>2]=f,i=i-o|0,n[e>>2]=i,n[t>>2]=0,a=f-i|0,r=0-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=r,n[e>>2]=0,o=r,i=0):(o=0,a=f)):a=r,(0|(r=(0|i)<(0|(r=(0|o)<(0|a)?o:a))?i:r))<=0||(n[A>>2]=a-r,n[t>>2]=o-r,n[e>>2]=i-r)}function wA(A,e,t,r){e|=0,t|=0,r|=0;var o,a=0,f=0,l=0,u=0;if(o=C,C=C+32|0,function(A,e){A|=0,e|=0;var t=0,r=0,n=0;t=+i[A>>3],r=+s(+t),t=+c(+t),i[e+16>>3]=t,t=+i[A+8>>3],n=r*+s(+t),i[e>>3]=n,t=r*+c(+t),i[e+8>>3]=t}(A|=0,f=o),n[t>>2]=0,a=+fe(15888,f),(l=+fe(15912,f))<a&&(n[t>>2]=1,a=l),(l=+fe(15936,f))<a&&(n[t>>2]=2,a=l),(l=+fe(15960,f))<a&&(n[t>>2]=3,a=l),(l=+fe(15984,f))<a&&(n[t>>2]=4,a=l),(l=+fe(16008,f))<a&&(n[t>>2]=5,a=l),(l=+fe(16032,f))<a&&(n[t>>2]=6,a=l),(l=+fe(16056,f))<a&&(n[t>>2]=7,a=l),(l=+fe(16080,f))<a&&(n[t>>2]=8,a=l),(l=+fe(16104,f))<a&&(n[t>>2]=9,a=l),(l=+fe(16128,f))<a&&(n[t>>2]=10,a=l),(l=+fe(16152,f))<a&&(n[t>>2]=11,a=l),(l=+fe(16176,f))<a&&(n[t>>2]=12,a=l),(l=+fe(16200,f))<a&&(n[t>>2]=13,a=l),(l=+fe(16224,f))<a&&(n[t>>2]=14,a=l),(l=+fe(16248,f))<a&&(n[t>>2]=15,a=l),(l=+fe(16272,f))<a&&(n[t>>2]=16,a=l),(l=+fe(16296,f))<a&&(n[t>>2]=17,a=l),(l=+fe(16320,f))<a&&(n[t>>2]=18,a=l),(l=+fe(16344,f))<a&&(n[t>>2]=19,a=l),(l=+g(+(1-.5*a)))<1e-16)return n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,n[r+12>>2]=0,void(C=o);if(t=0|n[t>>2],a=+MA((a=+i[16368+(24*t|0)>>3])-+MA(+function(A,e){A|=0,e|=0;var t=0,r=0,n=0,o=0,a=0;return o=+i[e>>3],r=+s(+o),n=+i[e+8>>3]-+i[A+8>>3],a=r*+c(+n),t=+i[A>>3],+ +w(+a,+(+c(+o)*+s(+t)-+s(+n)*(r*+c(+t))))}(15568+(t<<4)|0,A))),u=0|HA(e)?+MA(a+-.3334731722518321):a,a=+h(+l)/.381966011250105,(0|e)>0){f=0;do{a*=2.6457513110645907,f=f+1|0}while((0|f)!=(0|e))}l=+s(+u)*a,i[r>>3]=l,u=+c(+u)*a,i[r+8>>3]=u,C=o}function bA(A,e,t,r,o){e|=0,t|=0,r|=0,o|=0;var a=0,u=0;if(a=+function(A){A|=0;var e=0,t=0;return t=+i[A>>3],e=+i[A+8>>3],+ +l(+(t*t+e*e))}(A|=0),a<1e-16)return e=15568+(e<<4)|0,n[o>>2]=n[e>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(u=+w(+ +i[A+8>>3],+ +i[A>>3]),(0|t)>0){A=0;do{a/=2.6457513110645907,A=A+1|0}while((0|A)!=(0|t))}r?(a/=3,t=!(0|HA(t)),a=+p(.381966011250105*(t?a:a/2.6457513110645907))):(a=+p(.381966011250105*a),0|HA(t)&&(u=+MA(u+.3334731722518321))),function(A,e,t,r){A|=0,e=+e,t=+t,r|=0;var o=0,a=0,l=0,u=0;if(t<1e-16)return n[r>>2]=n[A>>2],n[r+4>>2]=n[A+4>>2],n[r+8>>2]=n[A+8>>2],void(n[r+12>>2]=n[A+12>>2]);a=e<0?e+6.283185307179586:e,a=e>=6.283185307179586?a+-6.283185307179586:a;do{if(!(a<1e-16)){if(o=+f(+(a+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=t,i[r>>3]=e,o=r;break}if(l=+s(+t),t=+c(+t),e=l*+c(+e)+ +s(+a)*(t*+s(+e)),e=+d(+((e=e>1?1:e)<-1?-1:e)),i[r>>3]=e,+f(+(e+-1.5707963267948966))<1e-16)return i[r>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return i[r>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(u=+s(+e),a=t*+c(+a)/u,t=+i[A>>3],e=(l-+c(+e)*+c(+t))/+s(+t)/u,l=a>1?1:a,e=e>1?1:e,(e=+i[A+8>>3]+ +w(+(l<-1?-1:l),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[r+8>>3]=e)}e=+i[A>>3]+t,i[r>>3]=e,o=r}while(0);if(+f(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(e=+i[A+8>>3],e>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[r+8>>3]=e}(15568+(e<<4)|0,+MA(+i[16368+(24*e|0)>>3]-u),a,o)}function vA(A,e,t){e|=0,t|=0;var r,i;r=C,C=C+16|0,K((A|=0)+4|0,i=r),bA(i,0|n[A>>2],e,0,t),C=r}function yA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var a,f,l,u,s,c,h,g,d,p,w,b,v,y,m,B,E,_,M,Q,x,D,I=0,F=0,S=0,P=0,G=0,T=0;if(D=C,C=C+272|0,P=D+240|0,M=D,Q=D+224|0,x=D+208|0,w=D+176|0,b=D+160|0,v=D+192|0,y=D+144|0,m=D+128|0,B=D+112|0,E=D+96|0,_=D+80|0,n[(I=D+256|0)>>2]=e,n[P>>2]=n[A>>2],n[P+4>>2]=n[A+4>>2],n[P+8>>2]=n[A+8>>2],n[P+12>>2]=n[A+12>>2],mA(P,I,M),n[o>>2]=0,(0|(P=r+t+(5==(0|r)&1)|0))<=(0|t))C=D;else{f=Q+4|0,l=w+4|0,u=t+5|0,s=16848+((a=0|n[I>>2])<<2)|0,c=16928+(a<<2)|0,h=m+8|0,g=B+8|0,d=E+8|0,p=x+4|0,S=t;A:for(;;){F=M+((0|S)%5<<4)|0,n[x>>2]=n[F>>2],n[x+4>>2]=n[F+4>>2],n[x+8>>2]=n[F+8>>2],n[x+12>>2]=n[F+12>>2];do{}while(2==(0|BA(x,a,0,1)));if((0|S)>(0|t)&!!(0|HA(e))){if(n[w>>2]=n[x>>2],n[w+4>>2]=n[x+4>>2],n[w+8>>2]=n[x+8>>2],n[w+12>>2]=n[x+12>>2],K(f,b),r=0|n[w>>2],I=0|n[17008+(80*r|0)+(n[Q>>2]<<2)>>2],n[w>>2]=n[18608+(80*r|0)+(20*I|0)>>2],(0|(F=0|n[18608+(80*r|0)+(20*I|0)+16>>2]))>0){A=0;do{oA(l),A=A+1|0}while((0|A)<(0|F))}switch(F=18608+(80*r|0)+(20*I|0)+4|0,n[v>>2]=n[F>>2],n[v+4>>2]=n[F+4>>2],n[v+8>>2]=n[F+8>>2],$(v,3*(0|n[s>>2])|0),J(l,v,l),X(l),K(l,y),G=+(0|n[c>>2]),i[m>>3]=3*G,i[h>>3]=0,T=-1.5*G,i[B>>3]=T,i[g>>3]=2.598076211353316*G,i[E>>3]=T,i[d>>3]=-2.598076211353316*G,0|n[17008+(80*(0|n[w>>2])|0)+(n[x>>2]<<2)>>2]){case 1:A=B,r=m;break;case 3:A=E,r=B;break;case 2:A=m,r=E;break;default:A=12;break A}oe(b,y,r,A,_),bA(_,0|n[w>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|S)<(0|u)&&(K(p,w),bA(w,0|n[x>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[Q>>2]=n[x>>2],n[Q+4>>2]=n[x+4>>2],n[Q+8>>2]=n[x+8>>2],n[Q+12>>2]=n[x+12>>2],(0|(S=S+1|0))>=(0|P)){A=3;break}}3!=(0|A)?12==(0|A)&&k(22474,22521,581,22531):C=D}}function mA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,a=0,f=0,l=0;r=C,C=C+128|0,o=r,f=20208,l=(a=i=r+64|0)+60|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));f=20272,l=(a=o)+60|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));i=(l=!(0|HA(0|n[e>>2])))?i:o,uA(o=A+4|0),sA(o),0|HA(0|n[e>>2])&&(nA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],J(o,i,e=t+4|0),X(e),n[t+16>>2]=n[A>>2],J(o,i+12|0,e=t+20|0),X(e),n[t+32>>2]=n[A>>2],J(o,i+24|0,e=t+36|0),X(e),n[t+48>>2]=n[A>>2],J(o,i+36|0,e=t+52|0),X(e),n[t+64>>2]=n[A>>2],J(o,i+48|0,t=t+68|0),X(t),C=r}function BA(A,e,t,r){t|=0,r|=0;var i,o,a,f,l,u,s=0,c=0,h=0,g=0,d=0;if(u=C,C=C+32|0,l=u+12|0,o=u,d=(A|=0)+4|0,g=0|n[16928+((e|=0)<<2)>>2],g=(f=!!(0|r))?3*g|0:g,s=0|n[d>>2],i=0|n[(a=A+8|0)>>2],f){if((0|(s=i+s+(r=0|n[(c=A+12|0)>>2])|0))==(0|g))return C=u,0|(d=1);h=c}else s=i+s+(r=0|n[(h=A+12|0)>>2])|0;if((0|s)<=(0|g))return C=u,0|(d=0);do{if((0|r)>0){if(r=0|n[A>>2],(0|i)>0){c=18608+(80*r|0)+60|0,r=A;break}r=18608+(80*r|0)+40|0,t?(Z(l,g,0,0),q(d,l,o),aA(o),J(o,l,d),c=r,r=A):(c=r,r=A)}else c=18608+(80*(0|n[A>>2])|0)+20|0,r=A}while(0);if(n[r>>2]=n[c>>2],(0|n[(s=c+16|0)>>2])>0){r=0;do{oA(d),r=r+1|0}while((0|r)<(0|n[s>>2]))}return A=c+4|0,n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],e=0|n[16848+(e<<2)>>2],$(l,f?3*e|0:e),J(d,l,d),X(d),r=f&&((0|n[a>>2])+(0|n[d>>2])+(0|n[h>>2])|0)==(0|g)?1:2,C=u,0|(d=r)}function EA(A,e){A|=0,e|=0;var t=0;do{t=0|BA(A,e,0,1)}while(2==(0|t));return 0|t}function kA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var a,f,l,u,s,c,h,g,d,p,w,b,v,y,m,B,E,_,M=0,Q=0,x=0,D=0,I=0;if(_=C,C=C+240|0,y=_+208|0,m=_,B=_+192|0,E=_+176|0,d=_+160|0,p=_+144|0,w=_+128|0,b=_+112|0,v=_+96|0,n[(M=_+224|0)>>2]=e,n[y>>2]=n[A>>2],n[y+4>>2]=n[A+4>>2],n[y+8>>2]=n[A+8>>2],n[y+12>>2]=n[A+12>>2],_A(y,M,m),n[o>>2]=0,(0|(g=r+t+(6==(0|r)&1)|0))<=(0|t))C=_;else{f=t+6|0,l=16928+((a=0|n[M>>2])<<2)|0,u=p+8|0,s=w+8|0,c=b+8|0,h=B+4|0,Q=0,x=t,r=-1;A:for(;;){if(A=m+((M=(0|x)%6|0)<<4)|0,n[B>>2]=n[A>>2],n[B+4>>2]=n[A+4>>2],n[B+8>>2]=n[A+8>>2],n[B+12>>2]=n[A+12>>2],A=Q,Q=0|BA(B,a,0,1),(0|x)>(0|t)&!!(0|HA(e))&&(1!=(0|A)&&(0|n[B>>2])!=(0|r))){switch(K(m+((M+5|0)%6<<4)+4|0,E),K(m+(M<<4)+4|0,d),D=+(0|n[l>>2]),i[p>>3]=3*D,i[u>>3]=0,I=-1.5*D,i[w>>3]=I,i[s>>3]=2.598076211353316*D,i[b>>3]=I,i[c>>3]=-2.598076211353316*D,M=0|n[y>>2],0|n[17008+(80*M|0)+(((0|r)==(0|M)?n[B>>2]:r)<<2)>>2]){case 1:A=w,r=p;break;case 3:A=b,r=w;break;case 2:A=p,r=b;break;default:A=8;break A}oe(E,d,r,A,v),0|ae(E,v)||0|ae(d,v)||(bA(v,0|n[y>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|x)<(0|f)&&(K(h,E),bA(E,0|n[B>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(x=x+1|0))>=(0|g)){A=3;break}r=0|n[B>>2]}3!=(0|A)?8==(0|A)&&k(22557,22521,746,22602):C=_}}function _A(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,a=0,f=0,l=0;r=C,C=C+160|0,o=r,f=20336,l=(a=i=r+80|0)+72|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));f=20416,l=(a=o)+72|0;do{n[a>>2]=n[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|l));i=(l=!(0|HA(0|n[e>>2])))?i:o,uA(o=A+4|0),sA(o),0|HA(0|n[e>>2])&&(nA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],J(o,i,e=t+4|0),X(e),n[t+16>>2]=n[A>>2],J(o,i+12|0,e=t+20|0),X(e),n[t+32>>2]=n[A>>2],J(o,i+24|0,e=t+36|0),X(e),n[t+48>>2]=n[A>>2],J(o,i+36|0,e=t+52|0),X(e),n[t+64>>2]=n[A>>2],J(o,i+48|0,e=t+68|0),X(e),n[t+80>>2]=n[A>>2],J(o,i+60|0,t=t+84|0),X(t),C=r}function MA(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function QA(A,e){return e|=0,+f(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+f(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function xA(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+c(.5*(r-t)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+s(+r)*+s(+t)*o),2*+w(+ +l(+o),+ +l(+(1-o)))*6371.007180918475}function DA(A,e,t){A|=0,t|=0;var r,n,o,a,f=0,u=0,g=0,d=0,b=0,v=0;return v=+i[(e|=0)>>3],o=+i[A>>3],b=+c(.5*(v-o)),g=+i[e+8>>3],n=+i[A+8>>3],d=+c(.5*(g-n)),r=+s(+o),a=+s(+v),d=2*+w(+ +l(+(d=b*b+d*(a*r*d))),+ +l(+(1-d))),b=+i[t>>3],v=+c(.5*(b-v)),f=+i[t+8>>3],g=+c(.5*(f-g)),u=+s(+b),g=2*+w(+ +l(+(g=v*v+g*(a*u*g))),+ +l(+(1-g))),b=+c(.5*(o-b)),f=+c(.5*(n-f)),f=2*+w(+ +l(+(f=b*b+f*(r*u*f))),+ +l(+(1-f))),4*+p(+ +l(+ +h(.5*(u=.5*(d+g+f)))*+h(.5*(u-d))*+h(.5*(u-g))*+h(.5*(u-f))))}function CA(A,e){return e=0|ke(0|(A|=0),0|(e|=0),45),E(),127&e}function IA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0;if(!(!0&134217728==(-16777216&(e|=0))))return 0|(e=0);if(o=0|ke(0|(A|=0),0|e,45),E(),(o&=127)>>>0>121)return 0|(e=0);t=0|ke(0|A,0|e,52),E(),t&=15;do{if(0|t){for(n=1,r=0;;){if(i=0|ke(0|A,0|e,3*(15-n|0)|0),E(),!!(0|(i&=7))&(1^r)){if(1==(0|i)&!!(0|T(o))){a=0,r=13;break}r=1}if(7==(0|i)){a=0,r=13;break}if(!(n>>>0<t>>>0)){r=9;break}n=n+1|0}if(9==(0|r)){if(15!=(0|t))break;return 0|(a=1)}if(13==(0|r))return 0|a}}while(0);for(;;){if(a=0|ke(0|A,0|e,3*(14-t|0)|0),E(),!(!0&!(7&~a))){a=0,r=13;break}if(!(t>>>0<14)){a=1,r=13;break}t=t+1|0}return 13==(0|r)?0|a:0}function FA(A,e,t){t|=0;var r=0,n=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|(r&=15))>=(0|t)){if((0|r)!=(0|t))if(t>>>0<=15){if(A|=n=0|_e(0|t,0,52),e=E()|-15728641&e,(0|r)>(0|t))do{n=0|_e(7,0,3*(14-t|0)|0),t=t+1|0,A|=n,e=E()|e}while((0|t)<(0|r))}else e=0,A=0}else e=0,A=0;return B(0|e),0|A}function SA(A,e,t,r){t|=0,r|=0;var i,o=0,a=0,f=0,l=0,u=0,s=0;if(f=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(f&=15))<=(0|t)){if((0|f)==(0|t))return n[(t=r)>>2]=A,void(n[t+4>>2]=e);if(i=(0|(u=0|ee(7,t-f|0)))/7|0,l=0|ke(0|A,0|e,45),E(),0|T(127&l)){A:do{if(f)for(a=1;;){if(o=0|ke(0|A,0|e,3*(15-a|0)|0),E(),0|(o&=7))break A;if(!(a>>>0<f>>>0)){o=0;break}a=a+1|0}else o=0}while(0);a=!(0|o)}else a=0;if(s=0|_e(f+1|0,0,52),o=E()|-15728641&e,SA(e=(s|A)&~(e=0|_e(7,0,0|(l=3*(14-f|0)|0))),f=o&~E(),t,r),o=r+(i<<3)|0,!a)return SA((s=0|_e(1,0,0|l))|e,E()|f,t,o),s=o+(i<<3)|0,SA((u=0|_e(2,0,0|l))|e,E()|f,t,s),s=s+(i<<3)|0,SA((u=0|_e(3,0,0|l))|e,E()|f,t,s),s=s+(i<<3)|0,SA((u=0|_e(4,0,0|l))|e,E()|f,t,s),s=s+(i<<3)|0,SA((u=0|_e(5,0,0|l))|e,E()|f,t,s),void SA((u=0|_e(6,0,0|l))|e,E()|f,t,s+(i<<3)|0);a=o+(i<<3)|0,(0|u)>6&&(De(0|o,0,(s=(a>>>0>(u=o+8|0)>>>0?a:u)+-1+(0-o)|0)+8&-8),o=u+(s>>>3<<3)|0),SA((s=0|_e(2,0,0|l))|e,E()|f,t,o),s=o+(i<<3)|0,SA((u=0|_e(3,0,0|l))|e,E()|f,t,s),s=s+(i<<3)|0,SA((u=0|_e(4,0,0|l))|e,E()|f,t,s),s=s+(i<<3)|0,SA((u=0|_e(5,0,0|l))|e,E()|f,t,s),SA((u=0|_e(6,0,0|l))|e,E()|f,t,s+(i<<3)|0)}}function PA(A,e){var t=0,r=0,n=0;if(n=0|ke(0|(A|=0),0|(e|=0),45),E(),!(0|T(127&n)))return 0|(n=0);n=0|ke(0|A,0|e,52),E(),n&=15;A:do{if(n)for(r=1;;){if(t=0|ke(0|A,0|e,3*(15-r|0)|0),E(),0|(t&=7))break A;if(!(r>>>0<n>>>0)){t=0;break}r=r+1|0}else t=0}while(0);return 0|(n=1&!(0|t))}function GA(A,e){var t=0,r=0,n=0;if(n=0|ke(0|(A|=0),0|(e|=0),52),E(),!(n&=15))return 0|(n=0);for(r=1;;){if(t=0|ke(0|A,0|e,3*(15-r|0)|0),E(),0|(t&=7)){r=5;break}if(!(r>>>0<n>>>0)){t=0,r=5;break}r=r+1|0}return 5==(0|r)?0|t:0}function TA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0,f=0;if(f=0|ke(0|(A|=0),0|(e|=0),52),E(),!(f&=15))return f=A,B(0|(a=e)),0|f;for(a=1,t=0;;){r=0|_e(7,0,0|(i=3*(15-a|0)|0)),n=0|E(),o=0|ke(0|A,0|e,0|i),E(),A=(i=0|_e(0|fA(7&o),0,0|i))|A&~r,e=(o=0|E())|e&~n;A:do{if(!t)if(!(i&r)&!(o&n))t=0;else if(r=0|ke(0|A,0|e,52),E(),r&=15){t=1;e:for(;;){switch(o=0|ke(0|A,0|e,3*(15-t|0)|0),E(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(n=0|ke(0|A,0|e,0|(o=3*(15-t|0)|0)),E(),i=0|_e(7,0,0|o),e&=~E(),A=A&~i|(o=0|_e(0|fA(7&n),0,0|o)),e|=E(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<f>>>0))break;a=a+1|0}return B(0|e),0|A}function UA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),!(r&=15))return r=A,B(0|(t=e)),0|r;for(t=1;o=0|ke(0|A,0|e,0|(i=3*(15-t|0)|0)),E(),n=0|_e(7,0,0|i),e&=~E(),A=(i=0|_e(0|fA(7&o),0,0|i))|A&~n,e=E()|e,t>>>0<r>>>0;)t=t+1|0;return B(0|e),0|A}function RA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0,f=0;if(f=0|ke(0|(A|=0),0|(e|=0),52),E(),!(f&=15))return f=A,B(0|(a=e)),0|f;for(a=1,t=0;;){r=0|_e(7,0,0|(i=3*(15-a|0)|0)),n=0|E(),o=0|ke(0|A,0|e,0|i),E(),A=(i=0|_e(0|lA(7&o),0,0|i))|A&~r,e=(o=0|E())|e&~n;A:do{if(!t)if(!(i&r)&!(o&n))t=0;else if(r=0|ke(0|A,0|e,52),E(),r&=15){t=1;e:for(;;){switch(o=0|ke(0|A,0|e,3*(15-t|0)|0),E(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|_e(7,0,0|(n=3*(15-t|0)|0)),o=e&~E(),e=0|ke(0|A,0|e,0|n),E(),A=A&~i|(e=0|_e(0|lA(7&e),0,0|n)),e=o|E(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<f>>>0))break;a=a+1|0}return B(0|e),0|A}function LA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),!(r&=15))return r=A,B(0|(t=e)),0|r;for(t=1;i=0|_e(7,0,0|(o=3*(15-t|0)|0)),n=e&~E(),e=0|ke(0|A,0|e,0|o),E(),A=(e=0|_e(0|lA(7&e),0,0|o))|A&~i,e=E()|n,t>>>0<r>>>0;)t=t+1|0;return B(0|e),0|A}function HA(A){return(0|(A|=0))%2|0}function YA(A,e){A|=0;var t,r;return r=C,C=C+16|0,t=r,(e|=0)>>>0<=15&&2146435072&~n[A+4>>2]&&2146435072&~n[A+8+4>>2]?(!function(A,e,t){var r,n;r=C,C=C+16|0,wA(A|=0,e|=0,t|=0,n=r),W(n,t+4|0),C=r}(A,e,t),e=0|function(A,e){A|=0;var t,r=0,i=0,o=0,a=0,f=0,l=0,u=0,s=0;if(t=C,C=C+64|0,l=t+40|0,i=t+24|0,o=t+12|0,a=t,_e(0|(e|=0),0,52),r=134225919|E(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(l=0,B(0|(f=0)),C=t,0|l):(_e(0|R(A),0,45),f=E()|r,l=-1,B(0|f),C=t,0|l);if(n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],n[l+12>>2]=n[A+12>>2],f=l+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[f>>2],n[i+4>>2]=n[f+4>>2],n[i+8>>2]=n[f+8>>2],1&e?(eA(f),n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],rA(o)):(tA(f),n[o>>2]=n[f>>2],n[o+4>>2]=n[f+4>>2],n[o+8>>2]=n[f+8>>2],nA(o)),q(i,o,a),X(a),u=0|_e(7,0,0|(s=3*(15-e|0)|0)),r&=~E(),A=(s=0|_e(0|AA(a),0,0|s))|A&~u,r=E()|r,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[f>>2])<=2&&(0|n[l+8>>2])<=2&&(0|n[l+12>>2])<=2){if(e=0|_e(0|(i=0|R(l)),0,45),e|=A,A=E()|-1040385&r,a=0|L(l),!(0|T(i))){if((0|a)<=0)break;for(o=0;;){if(i=0|ke(0|e,0|A,52),E(),i&=15)for(r=1;l=0|ke(0|e,0|A,0|(s=3*(15-r|0)|0)),E(),u=0|_e(7,0,0|s),A&=~E(),e=e&~u|(s=0|_e(0|fA(7&l),0,0|s)),A|=E(),r>>>0<i>>>0;)r=r+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|ke(0|e,0|A,52),E(),o&=15;e:do{if(o){r=1;t:for(;;){switch(s=0|ke(0|e,0|A,3*(15-r|0)|0),E(),7&s){case 1:break t;case 0:break;default:break e}if(!(r>>>0<o>>>0))break e;r=r+1|0}if(0|H(i,0|n[l>>2]))for(r=1;u=0|_e(7,0,0|(l=3*(15-r|0)|0)),s=A&~E(),A=0|ke(0|e,0|A,0|l),E(),e=e&~u|(A=0|_e(0|lA(7&A),0,0|l)),A=s|E(),r>>>0<o>>>0;)r=r+1|0;else for(r=1;l=0|ke(0|e,0|A,0|(s=3*(15-r|0)|0)),E(),u=0|_e(7,0,0|s),A&=~E(),e=e&~u|(s=0|_e(0|fA(7&l),0,0|s)),A|=E(),r>>>0<o>>>0;)r=r+1|0}}while(0);if((0|a)>0){r=0;do{e=0|TA(e,A),A=0|E(),r=r+1|0}while((0|r)!=(0|a))}}else e=0,A=0}while(0);return s=e,B(0|(u=A)),C=t,0|s}(t,e),A=0|E()):(A=0,e=0),B(0|A),C=r,0|e}function zA(A,e,t){var r,i=0,o=0,a=0;if(r=(t|=0)+4|0,o=0|ke(0|(A|=0),0|(e|=0),52),E(),o&=15,a=0|ke(0|A,0|e,45),E(),i=!(0|o),0|T(127&a)){if(i)return 0|(a=1);i=1}else{if(i)return 0|(a=0);i=0|n[r>>2]||0|n[t+8>>2]?1:1&!!(0|n[t+12>>2])}for(t=1;1&t?rA(r):nA(r),a=0|ke(0|A,0|e,3*(15-t|0)|0),E(),iA(r,7&a),t>>>0<o>>>0;)t=t+1|0;return 0|i}function OA(A,e,t){t|=0;var r,i,o=0,a=0,f=0,l=0,u=0,s=0;i=C,C=C+16|0,r=i,s=0|ke(0|(A|=0),0|(e|=0),45),E(),s&=127;A:do{if(0|T(s)&&(f=0|ke(0|A,0|e,52),E(),0|(f&=15))){o=1;e:for(;;){switch(u=0|ke(0|A,0|e,3*(15-o|0)|0),E(),7&u){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<f>>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;l=0|_e(7,0,0|(e=3*(15-a|0)|0)),u=o&~E(),o=0|ke(0|A,0|o,0|e),E(),A=A&~l|(o=0|_e(0|lA(7&o),0,0|e)),o=u|E(),a>>>0<f>>>0;)a=a+1|0}else o=e}while(0);if(u=7728+(28*s|0)|0,n[t>>2]=n[u>>2],n[t+4>>2]=n[u+4>>2],n[t+8>>2]=n[u+8>>2],n[t+12>>2]=n[u+12>>2],0|zA(A,o,t)){if(l=t+4|0,n[r>>2]=n[l>>2],n[r+4>>2]=n[l+4>>2],n[r+8>>2]=n[l+8>>2],f=0|ke(0|A,0|o,52),E(),u=15&f,1&f?(nA(l),f=u+1|0):f=u,0|T(s)){A:do{if(u)for(e=1;;){if(a=0|ke(0|A,0|o,3*(15-e|0)|0),E(),0|(a&=7)){o=a;break A}if(!(e>>>0<u>>>0)){o=0;break}e=e+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|BA(t,f,o,0)){if(0|T(s))do{}while(0|BA(t,f,0,0));(0|f)!=(0|u)&&tA(l)}else(0|f)!=(0|u)&&(n[l>>2]=n[r>>2],n[l+4>>2]=n[r+4>>2],n[l+8>>2]=n[r+8>>2]);C=i}else C=i}function NA(A,e,t){t|=0;var r,n;r=C,C=C+16|0,OA(A|=0,e|=0,n=r),e=0|ke(0|A,0|e,52),E(),vA(n,15&e,t),C=r}function VA(A,e,t){t|=0;var r,n,i=0,o=0;n=C,C=C+16|0,OA(A|=0,e|=0,r=n),i=0|ke(0|A,0|e,45),E(),i=!(0|T(127&i)),o=0|ke(0|A,0|e,52),E(),o&=15;A:do{if(!i){if(0|o)for(i=1;;){if(!(!((0|_e(7,0,3*(15-i|0)|0))&A)&!(E()&e)))break A;if(!(i>>>0<o>>>0))break;i=i+1|0}return yA(r,o,0,5,t),void(C=n)}}while(0);kA(r,o,0,6,t),C=n}function jA(A,e){e|=0;var t,r=0,i=0,o=0,a=0,f=0,l=0;if(_e(0|(A|=0),0,52),t=134225919|E(),(0|A)<1){i=0,r=0;do{0|T(i)&&(_e(0|i,0,45),f=t|E(),n[(A=e+(r<<3)|0)>>2]=-1,n[A+4>>2]=f,r=r+1|0),i=i+1|0}while(122!=(0|i))}else{f=0,r=0;do{if(0|T(f)){for(_e(0|f,0,45),i=1,o=-1,a=t|E();o&=~(l=0|_e(7,0,3*(15-i|0)|0)),a&=~E(),(0|i)!=(0|A);)i=i+1|0;n[(l=e+(r<<3)|0)>>2]=o,n[l+4>>2]=a,r=r+1|0}f=f+1|0}while(122!=(0|f))}}function ZA(A,e,t,r){var i,o=0,a=0,f=0,l=0,u=0;if(i=C,C=C+64|0,f=i,(0|(A|=0))==(0|(t|=0))&(0|(e|=0))==(0|(r|=0))|!1|134217728!=(2013265920&e)|!1|134217728!=(2013265920&r))return C=i,0|(f=0);if(o=0|ke(0|A,0|e,52),E(),o&=15,a=0|ke(0|t,0|r,52),E(),(0|o)!=(15&a))return C=i,0|(f=0);if(a=o+-1|0,o>>>0>1&&(u=0|FA(A,e,a),l=0|E(),(0|u)==(0|(a=0|FA(t,r,a)))&(0|l)==(0|E()))){if(o=0|ke(0|A,0|e,0|(a=3*(15^o)|0)),E(),o&=7,a=0|ke(0|t,0|r,0|a),E(),!(0|o)|!(0|(a&=7)))return C=i,0|(u=1);if((0|n[21136+(o<<2)>>2])==(0|a))return C=i,0|(u=1);if((0|n[21168+(o<<2)>>2])==(0|a))return C=i,0|(u=1)}a=(o=f)+56|0;do{n[o>>2]=0,o=o+4|0}while((0|o)<(0|a));return I(A,e,1,f),o=(0|n[(u=f)>>2])==(0|t)&&(0|n[u+4>>2])==(0|r)||(0|n[(u=f+8|0)>>2])==(0|t)&&(0|n[u+4>>2])==(0|r)||(0|n[(u=f+16|0)>>2])==(0|t)&&(0|n[u+4>>2])==(0|r)||(0|n[(u=f+24|0)>>2])==(0|t)&&(0|n[u+4>>2])==(0|r)||(0|n[(u=f+32|0)>>2])==(0|t)&&(0|n[u+4>>2])==(0|r)||(0|n[(u=f+40|0)>>2])==(0|t)&&(0|n[u+4>>2])==(0|r)?1:1&((0|n[(o=f+48|0)>>2])==(0|t)?(0|n[o+4>>2])==(0|r):0),C=i,0|(u=o)}function WA(A,e,t){t|=0;var r,i,o,a,f=0;if(o=C,C=C+16|0,i=o,f=0|ke(0|(A|=0),0|(e|=0),56),E(),e=0|function(A,e,t){A|=0,e|=0,t|=0;var r=0,i=0;if(r=0|PA(A,e),(t+-1|0)>>>0>5)return 0|(t=-1);if(i=!!(0|r),1==(0|t)&i)return 0|(t=-1);return r=0|function(A,e){A|=0,e|=0;var t=0,r=0,i=0,o=0,a=0,f=0,l=0,u=0;if(u=C,C=C+32|0,i=u+16|0,o=u,OA(A,e,i),a=0|CA(A,e),l=0|GA(A,e),function(A,e){A=7728+(28*(A|=0)|0)|0,n[(e|=0)>>2]=n[A>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(a,o),e=0|function(A,e){A|=0;var t=0,r=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11152+(216*e|0)>>2])!=(0|A))if((0|n[11152+(216*e|0)+8>>2])!=(0|A))if((0|n[11152+(216*e|0)+16>>2])!=(0|A))if((0|n[11152+(216*e|0)+24>>2])!=(0|A))if((0|n[11152+(216*e|0)+32>>2])!=(0|A))if((0|n[11152+(216*e|0)+40>>2])!=(0|A))if((0|n[11152+(216*e|0)+48>>2])!=(0|A))if((0|n[11152+(216*e|0)+56>>2])!=(0|A))if((0|n[11152+(216*e|0)+64>>2])!=(0|A))if((0|n[11152+(216*e|0)+72>>2])!=(0|A))if((0|n[11152+(216*e|0)+80>>2])!=(0|A))if((0|n[11152+(216*e|0)+88>>2])!=(0|A))if((0|n[11152+(216*e|0)+96>>2])!=(0|A))if((0|n[11152+(216*e|0)+104>>2])!=(0|A))if((0|n[11152+(216*e|0)+112>>2])!=(0|A))if((0|n[11152+(216*e|0)+120>>2])!=(0|A))if((0|n[11152+(216*e|0)+128>>2])!=(0|A)){if((0|n[11152+(216*e|0)+136>>2])!=(0|A)){if((0|n[11152+(216*e|0)+144>>2])==(0|A)){A=0,t=2,r=0;break}if((0|n[11152+(216*e|0)+152>>2])==(0|A)){A=0,t=2,r=1;break}if((0|n[11152+(216*e|0)+160>>2])==(0|A)){A=0,t=2,r=2;break}if((0|n[11152+(216*e|0)+168>>2])==(0|A)){A=1,t=2,r=0;break}if((0|n[11152+(216*e|0)+176>>2])==(0|A)){A=1,t=2,r=1;break}if((0|n[11152+(216*e|0)+184>>2])==(0|A)){A=1,t=2,r=2;break}if((0|n[11152+(216*e|0)+192>>2])==(0|A)){A=2,t=2,r=0;break}if((0|n[11152+(216*e|0)+200>>2])==(0|A)){A=2,t=2,r=1;break}if((0|n[11152+(216*e|0)+208>>2])==(0|A)){A=2,t=2,r=2;break}return-1}A=2,t=1,r=2}else A=2,t=1,r=1;else A=2,t=1,r=0;else A=1,t=1,r=2;else A=1,t=1,r=1;else A=1,t=1,r=0;else A=0,t=1,r=2;else A=0,t=1,r=1;else A=0,t=1,r=0;else A=2,t=0,r=2;else A=2,t=0,r=1;else A=2,t=0,r=0;else A=1,t=0,r=2;else A=1,t=0,r=1;else A=1,t=0,r=0;else A=0,t=0,r=2;else A=0,t=0,r=1;else A=0,t=0,r=0}while(0);return 0|n[11152+(216*e|0)+(72*t|0)+(24*A|0)+(r<<3)+4>>2]}(a,0|n[i>>2]),!(0|T(a)))return C=u,0|(l=e);switch(0|a){case 4:A=0,t=14;break;case 14:A=1,t=14;break;case 24:A=2,t=14;break;case 38:A=3,t=14;break;case 49:A=4,t=14;break;case 58:A=5,t=14;break;case 63:A=6,t=14;break;case 72:A=7,t=14;break;case 83:A=8,t=14;break;case 97:A=9,t=14;break;case 107:A=10,t=14;break;case 117:A=11,t=14;break;default:f=0,r=0}14==(0|t)&&(f=0|n[22096+(24*A|0)+8>>2],r=0|n[22096+(24*A|0)+16>>2]);A=0|n[i>>2],(0|A)!=(0|n[o>>2])&&(a=0|U(a))|(0|(A=0|n[i>>2]))==(0|r)&&(e=(e+1|0)%6|0);if(3==(0|l)&(0|A)==(0|r))return C=u,0|(l=(e+5|0)%6|0);if(!(5==(0|l)&(0|A)==(0|f)))return C=u,0|(l=e);return l=(e+1|0)%6|0,C=u,0|l}(A,e),i?0|(t=(5-r+(0|n[22384+(t<<2)>>2])|0)%5|0):0|(t=(6-r+(0|n[22416+(t<<2)>>2])|0)%6|0)}(r=(a=!0&268435456==(2013265920&e))?A:0,A=a?-2130706433&e|134217728:0,7&f),-1==(0|e))return n[t>>2]=0,void(C=o);OA(r,A,i),f=0|ke(0|r,0|A,52),E(),f&=15,0|PA(r,A)?yA(i,f,e,2,t):kA(i,f,e,2,t),C=o}function XA(A){A|=0;var e,t,r=0;return(e=0|ve(1,12))||k(22691,22646,49,22704),0|(r=0|n[(t=A+4|0)>>2])?(n[(r=r+8|0)>>2]=e,n[t>>2]=e,0|e):(0|n[A>>2]&&k(22721,22646,61,22744),n[(r=A)>>2]=e,n[t>>2]=e,0|e)}function KA(A,e){A|=0,e|=0;var t,r;return(r=0|we(24))||k(22758,22646,78,22772),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[r+16>>2]=0,0|(t=0|n[(e=A+4|0)>>2])?(n[t+16>>2]=r,n[e>>2]=r,0|r):(0|n[A>>2]&&k(22787,22646,82,22772),n[A>>2]=r,n[e>>2]=r,0|r)}function JA(A){var e,t,r=0,o=0,a=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,E=0,_=0,M=0,Q=0,x=0,D=0,C=0,I=0,F=0,S=0,P=0,G=0,T=0;if(0|n[(l=(A|=0)+8|0)>>2])return 0|(T=1);if(!(a=0|n[A>>2]))return 0|(T=0);r=a,o=0;do{o=o+1|0,r=0|n[r+8>>2]}while(0|r);if(o>>>0<2)return 0|(T=0);(t=0|we(o<<2))||k(22807,22646,317,22826),(e=0|we(o<<5))||k(22848,22646,321,22826),n[A>>2]=0,n[(x=A+4|0)>>2]=0,n[l>>2]=0,o=0,P=0,Q=0,p=0;A:for(;;){if(d=0|n[a>>2]){u=0,s=d;do{if(h=+i[s+8>>3],r=s,s=0|n[s+16>>2],c=+i[(l=(g=!(0|s))?d:s)+8>>3],+f(+(h-c))>3.141592653589793){T=14;break}u+=(c-h)*(+i[r>>3]+ +i[l>>3])}while(!g);if(14==(0|T)){T=0,u=0,r=d;do{M=+i[r+8>>3],F=0|n[(S=r+16|0)>>2],_=+i[(F=0|F?F:d)+8>>3],u+=(+i[r>>3]+ +i[F>>3])*((_<0?_+6.283185307179586:_)-(M<0?M+6.283185307179586:M)),r=0|n[(0|r?S:a)>>2]}while(0|r)}u>0?(n[t+(P<<2)>>2]=a,P=P+1|0,l=Q,r=p):T=19}else T=19;if(19==(0|T)){T=0;do{if(!o){if(p){l=x,s=p+8|0,r=a,o=A;break}if(0|n[A>>2]){T=27;break A}l=x,s=A,r=a,o=A;break}if(0|n[(r=o+8|0)>>2]){T=21;break A}if(!(o=0|ve(1,12))){T=23;break A}n[r>>2]=o,l=o+4|0,s=o,r=p}while(0);if(n[s>>2]=a,n[l>>2]=a,s=e+(Q<<5)|0,g=0|n[a>>2]){for(i[(d=e+(Q<<5)+8|0)>>3]=17976931348623157e292,i[(p=e+(Q<<5)+24|0)>>3]=17976931348623157e292,i[s>>3]=-17976931348623157e292,i[(w=e+(Q<<5)+16|0)>>3]=-17976931348623157e292,B=17976931348623157e292,E=-17976931348623157e292,l=0,b=g,h=17976931348623157e292,y=17976931348623157e292,m=-17976931348623157e292,c=-17976931348623157e292;u=+i[b>>3],M=+i[b+8>>3],b=0|n[b+16>>2],_=+i[((v=!(0|b))?g:b)+8>>3],u<h&&(i[d>>3]=u,h=u),M<y&&(i[p>>3]=M,y=M),u>m?i[s>>3]=u:u=m,M>c&&(i[w>>3]=M,c=M),B=M>0&M<B?M:B,E=M<0&M>E?M:E,l|=+f(+(M-_))>3.141592653589793,!v;)m=u;l&&(i[w>>3]=E,i[p>>3]=B)}else n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0,n[s+16>>2]=0,n[s+20>>2]=0,n[s+24>>2]=0,n[s+28>>2]=0;l=Q+1|0}if(a=0|n[(S=a+8|0)>>2],n[S>>2]=0,!a){T=45;break}Q=l,p=r}if(21==(0|T))k(22624,22646,35,22658);else if(23==(0|T))k(22678,22646,37,22658);else if(27==(0|T))k(22721,22646,61,22744);else if(45==(0|T)){A:do{if((0|P)>0){for(S=!(0|l),I=l<<2,F=!(0|A),C=0,r=0;;){if(D=0|n[t+(C<<2)>>2],S)T=73;else{if(!(Q=0|we(I))){T=50;break}if(!(x=0|we(I))){T=52;break}e:do{if(F)o=0;else{for(l=0,o=0,s=A;a=e+(l<<5)|0,0|qA(0|n[s>>2],a,0|n[D>>2])?(n[Q+(o<<2)>>2]=s,n[x+(o<<2)>>2]=a,v=o+1|0):v=o,s=0|n[s+8>>2];)l=l+1|0,o=v;if((0|v)>0)if(a=0|n[Q>>2],1==(0|v))o=a;else for(w=0,b=-1,o=a,p=a;;){for(g=0|n[p>>2],a=0,s=0;d=(0|(l=0|n[n[Q+(s<<2)>>2]>>2]))==(0|g)?a:a+(1&qA(l,0|n[x+(s<<2)>>2],0|n[g>>2]))|0,(0|(s=s+1|0))!=(0|v);)a=d;if(o=(l=(0|d)>(0|b))?p:o,(0|(a=w+1|0))==(0|v))break e;w=a,b=l?d:b,p=0|n[Q+(a<<2)>>2]}else o=0}}while(0);if(be(Q),be(x),o){if(a=0|n[(l=o+4|0)>>2])o=a+8|0;else if(0|n[o>>2]){T=70;break}n[o>>2]=D,n[l>>2]=D}else T=73}if(73==(0|T)){if(T=0,0|(r=0|n[D>>2]))do{x=r,r=0|n[r+16>>2],be(x)}while(0|r);be(D),r=2}if((0|(C=C+1|0))>=(0|P)){G=r;break A}}50==(0|T)?k(22863,22646,249,22882):52==(0|T)?k(22901,22646,252,22882):70==(0|T)&&k(22721,22646,61,22744)}else G=0}while(0);return be(t),be(e),0|(T=G)}return 0}function qA(A,e,t){A|=0;var r,o=0,a=0,f=0,l=0,u=0,s=0,c=0;if(!(0|N(e|=0,t|=0)))return 0|(A=0);if(e=0|O(e),r=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0|(A=0);if(e){e=0,t=A;A:for(;;){for(;l=+i[t>>3],s=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],f=+i[(c=0|c?c:A)>>3],a=+i[c+8>>3],l>f?(u=l,l=s):(u=f,f=l,l=a,a=s),r<f|r>u;)if(!(t=0|n[t>>2])){t=22;break A}if(o=(l=l<0?l+6.283185307179586:l)==o|(s=a<0?a+6.283185307179586:a)==o?o+-2220446049250313e-31:o,((s+=(r-f)/(u-f)*(l-s))<0?s+6.283185307179586:s)>o&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,t=A;A:for(;;){for(;l=+i[t>>3],s=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],f=+i[(c=0|c?c:A)>>3],a=+i[c+8>>3],l>f?(u=l,l=s):(u=f,f=l,l=a,a=s),r<f|r>u;)if(!(t=0|n[t>>2])){t=22;break A}if(a+(r-f)/(u-f)*(l-a)>(o=l==o|a==o?o+-2220446049250313e-31:o)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}return 0}function $A(A,e,t,i,o){t|=0,i|=0,o|=0;var a,f,l,u,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0;if(u=C,C=C+32|0,y=u+16|0,l=u,s=0|ke(0|(A|=0),0|(e|=0),52),E(),s&=15,w=0|ke(0|t,0|i,52),E(),(0|s)!=(15&w))return C=u,0|(y=1);if(d=0|ke(0|A,0|e,45),E(),d&=127,p=0|ke(0|t,0|i,45),E(),w=(0|d)!=(0|(p&=127))){if(7==(0|(h=0|z(d,p))))return C=u,0|(y=2);7==(0|(g=0|z(p,d)))?k(22925,22949,151,22959):(b=h,c=g)}else b=0,c=0;a=0|T(d),f=0|T(p),n[y>>2]=0,n[y+4>>2]=0,n[y+8>>2]=0,n[y+12>>2]=0;do{if(b){if(h=(0|(p=0|n[4304+(28*d|0)+(b<<2)>>2]))>0,f)if(h){d=0,g=t,h=i;do{g=0|RA(g,h),h=0|E(),1==(0|(c=0|lA(c)))&&(c=0|lA(1)),d=d+1|0}while((0|d)!=(0|p));p=c,d=g,g=h}else p=c,d=t,g=i;else if(h){d=0,g=t,h=i;do{g=0|LA(g,h),h=0|E(),c=0|lA(c),d=d+1|0}while((0|d)!=(0|p));p=c,d=g,g=h}else p=c,d=t,g=i;if(zA(d,g,y),w||k(22972,22949,181,22959),(h=!!(0|a))&(c=!!(0|f))&&k(22999,22949,182,22959),h){if(c=0|GA(A,e),0|r[22032+(7*c|0)+b|0]){s=3;break}d=g=0|n[21200+(28*c|0)+(b<<2)>>2],v=26}else if(c){if(c=0|GA(d,g),0|r[22032+(7*c|0)+p|0]){s=4;break}d=0,g=0|n[21200+(28*p|0)+(c<<2)>>2],v=26}else c=0;if(26==(0|v))if((0|g)<=-1&&k(23030,22949,212,22959),(0|d)<=-1&&k(23053,22949,213,22959),(0|g)>0){h=y+4|0,c=0;do{aA(h),c=c+1|0}while((0|c)!=(0|g));c=d}else c=d;if(n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,iA(l,b),0|s)for(;0|HA(s)?rA(l):nA(l),(0|s)>1;)s=s+-1|0;if((0|c)>0){s=0;do{aA(l),s=s+1|0}while((0|s)!=(0|c))}J(v=y+4|0,l,v),X(v),v=50}else if(zA(t,i,y),!!(0|a)&!!(0|f))if((0|p)!=(0|d)&&k(23077,22949,243,22959),c=0|GA(A,e),s=0|GA(t,i),0|r[22032+(7*c|0)+s|0])s=5;else if((0|(c=0|n[21200+(28*c|0)+(s<<2)>>2]))>0){h=y+4|0,s=0;do{aA(h),s=s+1|0}while((0|s)!=(0|c));v=50}else v=50;else v=50}while(0);return 50==(0|v)&&(s=y+4|0,n[o>>2]=n[s>>2],n[o+4>>2]=n[s+4>>2],n[o+8>>2]=n[s+8>>2],s=0),C=u,0|(y=s)}function Ae(A,e,t,r){t|=0,r|=0;var i,o,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0;if(o=C,C=C+48|0,l=o+36|0,u=o+24|0,s=o+12|0,c=o,f=0|ke(0|(A|=0),0|(e|=0),52),E(),f&=15,g=0|ke(0|A,0|e,45),E(),i=0|T(g&=127),_e(0|f,0,52),w=134225919|E(),n[(p=r)>>2]=-1,n[p+4>>2]=w,!f)return(0|n[t>>2])>1||(0|n[t+4>>2])>1||(0|n[t+8>>2])>1||127==(0|(a=0|Y(g,0|AA(t))))?(C=o,0|(w=1)):(d=0|_e(0|a,0,45),p=0|E(),p=-1040385&n[(g=r)+4>>2]|p,n[(w=r)>>2]=n[g>>2]|d,n[w+4>>2]=p,C=o,0|(w=0));for(n[l>>2]=n[t>>2],n[l+4>>2]=n[t+4>>2],n[l+8>>2]=n[t+8>>2];n[u>>2]=n[l>>2],n[u+4>>2]=n[l+4>>2],n[u+8>>2]=n[l+8>>2],0|HA(f)?(eA(l),n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],rA(s)):(tA(l),n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],nA(s)),q(u,s,c),X(c),b=0|n[(p=r)>>2],p=0|n[p+4>>2],t=0|_e(7,0,0|(v=3*(15-f|0)|0)),p&=~E(),v=0|_e(0|AA(c),0,0|v),p=E()|p,n[(w=r)>>2]=v|b&~t,n[w+4>>2]=p,(0|f)>1;)f=f+-1|0;A:do{if((0|n[l>>2])<=1&&(0|n[l+4>>2])<=1&&(0|n[l+8>>2])<=1){c=127==(0|(u=0|Y(g,f=0|AA(l))))?0:0|T(u);e:do{if(f){if(i){if(l=21408+(28*(0|GA(A,e))|0)+(f<<2)|0,(0|(l=0|n[l>>2]))>0){t=0;do{f=0|fA(f),t=t+1|0}while((0|t)!=(0|l))}if(1==(0|f)){a=3;break A}127==(0|(t=0|Y(g,f)))&&k(23104,22949,376,23134),0|T(t)?k(23147,22949,377,23134):(d=l,h=f,a=t)}else d=0,h=f,a=u;if((0|(s=0|n[4304+(28*g|0)+(h<<2)>>2]))<=-1&&k(23178,22949,384,23134),!c){if((0|d)<=-1&&k(23030,22949,417,23134),0|d){f=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];do{t=0|UA(t,l),l=0|E(),n[(v=r)>>2]=t,n[v+4>>2]=l,f=f+1|0}while((0|f)<(0|d))}if((0|s)<=0){f=54;break}for(f=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];;)if(t=0|UA(t,l),l=0|E(),n[(v=r)>>2]=t,n[v+4>>2]=l,(0|(f=f+1|0))==(0|s)){f=54;break e}}if(7==(0|(u=0|z(a,g)))&&k(22925,22949,393,23134),t=0|n[(f=r)>>2],f=0|n[f+4>>2],(0|s)>0){l=0;do{t=0|UA(t,f),f=0|E(),n[(v=r)>>2]=t,n[v+4>>2]=f,l=l+1|0}while((0|l)!=(0|s))}if(t=0|GA(t,f),v=0|U(a),(0|(t=0|n[(v?21824:21616)+(28*u|0)+(t<<2)>>2]))<=-1&&k(23030,22949,412,23134),t){f=0,l=0|n[(u=r)>>2],u=0|n[u+4>>2];do{l=0|TA(l,u),u=0|E(),n[(v=r)>>2]=l,n[v+4>>2]=u,f=f+1|0}while((0|f)<(0|t));f=54}else f=54}else if(!!(0|i)&!!(0|c))if(f=21408+(28*(v=0|GA(A,e))|0)+(GA(0|n[(f=r)>>2],0|n[f+4>>2])<<2)|0,(0|(f=0|n[f>>2]))<=-1&&k(23201,22949,433,23134),f){a=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];do{t=0|UA(t,l),l=0|E(),n[(v=r)>>2]=t,n[v+4>>2]=l,a=a+1|0}while((0|a)<(0|f));a=u,f=54}else a=u,f=55;else a=u,f=54}while(0);if(54==(0|f)&&c&&(f=55),55==(0|f)&&1==(0|GA(0|n[(v=r)>>2],0|n[v+4>>2]))){a=4;break}w=0|n[(v=r)>>2],v=-1040385&n[v+4>>2],b=0|_e(0|a,0,45),v|=E(),n[(a=r)>>2]=w|b,n[a+4>>2]=v,a=0}else a=2}while(0);return C=o,0|(v=a)}function ee(A,e){var t=0;if(!(e|=0))return 0|(t=1);t=A|=0,A=1;do{A=0|v(1&e?t:1,A),e>>=1,t=0|v(t,t)}while(0|e);return 0|A}function te(A,e,t){A|=0;var r,o,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0;if(!(0|N(e|=0,t|=0)))return 0|(g=0);if(e=0|O(e),o=+i[t>>3],a=e&(a=+i[t+8>>3])<0?a+6.283185307179586:a,(0|(g=0|n[A>>2]))<=0)return 0|(g=0);if(r=0|n[A+4>>2],e){e=0,t=-1,A=0;A:for(;;){for(h=A;u=+i[r+(h<<4)>>3],c=+i[r+(h<<4)+8>>3],l=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],f=+i[r+(A<<4)+8>>3],u>l?(s=u,u=c):(s=l,l=u,u=f,f=c),o<l|o>s;){if(!((0|(t=h+1|0))<(0|g))){t=22;break A}A=h,h=t,t=A}if(a=(u=u<0?u+6.283185307179586:u)==a|(c=f<0?f+6.283185307179586:f)==a?a+-2220446049250313e-31:a,((c+=(o-l)/(s-l)*(u-c))<0?c+6.283185307179586:c)>a&&(e^=1),(0|(A=h+1|0))>=(0|g)){t=22;break}t=h}if(22==(0|t))return 0|e}else{e=0,t=-1,A=0;A:for(;;){for(h=A;u=+i[r+(h<<4)>>3],c=+i[r+(h<<4)+8>>3],l=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],f=+i[r+(A<<4)+8>>3],u>l?(s=u,u=c):(s=l,l=u,u=f,f=c),o<l|o>s;){if(!((0|(t=h+1|0))<(0|g))){t=22;break A}A=h,h=t,t=A}if(f+(o-l)/(s-l)*(u-f)>(a=u==a|f==a?a+-2220446049250313e-31:a)&&(e^=1),(0|(A=h+1|0))>=(0|g)){t=22;break}t=h}if(22==(0|t))return 0|e}return 0}function re(A,e){e|=0;var t,r,o,a,l,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0;if(!(r=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(a=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(l=e+16|0)>>3]=-17976931348623157e292,!((0|r)<=0)){for(t=0|n[A+4>>2],w=17976931348623157e292,b=-17976931348623157e292,v=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,p=-17976931348623157e292,s=-17976931348623157e292,y=0;u=+i[t+(y<<4)>>3],d=+i[t+(y<<4)+8>>3],c=+i[t+(((0|(A=A+2|0))==(0|r)?0:A)<<4)+8>>3],u<h&&(i[o>>3]=u,h=u),d<g&&(i[a>>3]=d,g=d),u>p?i[e>>3]=u:u=p,d>s&&(i[l>>3]=d,s=d),w=d>0&d<w?d:w,b=d<0&d>b?d:b,v|=+f(+(d-c))>3.141592653589793,(0|(A=y+1|0))!=(0|r);)m=y,p=u,y=A,A=m;v&&(i[l>>3]=b,i[a>>3]=w)}}function ne(A,e){e|=0;var t,r=0,o=0,a=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,E=0,k=0,_=0,M=0;if(b=0|n[(A|=0)>>2]){if(i[(v=e+8|0)>>3]=17976931348623157e292,i[(y=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(m=e+16|0)>>3]=-17976931348623157e292,(0|b)>0){for(a=0|n[A+4>>2],p=17976931348623157e292,w=-17976931348623157e292,o=0,r=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,u=-17976931348623157e292,B=0;l=+i[a+(B<<4)>>3],g=+i[a+(B<<4)+8>>3],s=+i[a+(((0|(_=r+2|0))==(0|b)?0:_)<<4)+8>>3],l<c&&(i[v>>3]=l,c=l),g<h&&(i[y>>3]=g,h=g),l>d?i[e>>3]=l:l=d,g>u&&(i[m>>3]=g,u=g),p=g>0&g<p?g:p,w=g<0&g>w?g:w,o|=+f(+(g-s))>3.141592653589793,(0|(r=B+1|0))!=(0|b);)_=B,d=l,B=r,r=_;o&&(i[m>>3]=w,i[y>>3]=p)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(r=0|n[(_=A+8|0)>>2]))<=0)){t=A+12|0,k=0;do{if(a=0|n[t>>2],o=k,y=e+((k=k+1|0)<<5)|0,m=0|n[a+(o<<3)>>2]){if(i[(B=e+(k<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(k<<5)+24|0)>>3]=17976931348623157e292,i[y>>3]=-17976931348623157e292,i[(E=e+(k<<5)+16|0)>>3]=-17976931348623157e292,(0|m)>0){for(b=0|n[a+(o<<3)+4>>2],p=17976931348623157e292,w=-17976931348623157e292,a=0,o=-1,v=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292;l=+i[b+(v<<4)>>3],d=+i[b+(v<<4)+8>>3],s=+i[b+(((0|(o=o+2|0))==(0|m)?0:o)<<4)+8>>3],l<c&&(i[B>>3]=l,c=l),d<h&&(i[A>>3]=d,h=d),l>g?i[y>>3]=l:l=g,d>u&&(i[E>>3]=d,u=d),p=d>0&d<p?d:p,w=d<0&d>w?d:w,a|=+f(+(d-s))>3.141592653589793,(0|(o=v+1|0))!=(0|m);)M=v,v=o,g=l,o=M;a&&(i[E>>3]=w,i[A>>3]=p)}}else n[y>>2]=0,n[y+4>>2]=0,n[y+8>>2]=0,n[y+12>>2]=0,n[y+16>>2]=0,n[y+20>>2]=0,n[y+24>>2]=0,n[y+28>>2]=0,r=0|n[_>>2]}while((0|k)<(0|r))}}function ie(A,e,t){var r=0,i=0,o=0;if(!(0|te(A|=0,e|=0,t|=0)))return 0|(i=0);if((0|n[(i=A+8|0)>>2])<=0)return 0|(i=1);for(r=A+12|0,A=0;;){if(o=A,A=A+1|0,0|te((0|n[r>>2])+(o<<3)|0,e+(A<<5)|0,t)){A=0,r=6;break}if((0|A)>=(0|n[i>>2])){A=1,r=6;break}}return 6==(0|r)?0|A:0}function oe(A,e,t,r,n){e|=0,t|=0,r|=0,n|=0;var o,a,f,l,u,s,c,h=0;l=+i[(A|=0)>>3],f=+i[e>>3]-l,a=+i[A+8>>3],o=+i[e+8>>3]-a,s=+i[t>>3],h=((h=+i[r>>3]-s)*(a-(c=+i[t+8>>3]))-(l-s)*(u=+i[r+8>>3]-c))/(f*u-o*h),i[n>>3]=l+f*h,i[n+8>>3]=a+o*h}function ae(A,e){return e|=0,+i[(A|=0)>>3]!=+i[e>>3]?0|(e=0):0|(e=+i[A+8>>3]==+i[e+8>>3])}function fe(A,e){e|=0;var t,r,n;return+((n=+i[(A|=0)>>3]-+i[e>>3])*n+(r=+i[A+8>>3]-+i[e+8>>3])*r+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function le(A,e,t){A|=0,t|=0;var r=0;(0|(e|=0))>0?(r=0|ve(e,4),n[A>>2]=r,r||k(23230,23253,40,23267)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=t}function ue(A){var e,t,r,o=0,a=0,l=0,s=0;e=(A|=0)+4|0,t=A+12|0,r=A+8|0;A:for(;;){for(a=0|n[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(l=0|n[A>>2],s=0|n[l+(o<<2)>>2])break;o=o+1|0}o=l+(~~(+f(+ +u(10,+ +(15-(0|n[t>>2])|0))*(+i[s>>3]+ +i[s+8>>3]))%+(0|a))>>>0<<2)|0,a=0|n[o>>2];e:do{if(0|a){if(l=s+32|0,(0|a)==(0|s))n[o>>2]=n[l>>2];else{if(!(o=0|n[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|s);)if(!(o=0|n[(a=o+32|0)>>2]))break e;n[a>>2]=n[l>>2]}be(s),n[r>>2]=(0|n[r>>2])-1}}while(0)}be(0|n[A>>2])}function se(A){var e,t=0,r=0;for(e=0|n[(A|=0)+4>>2],r=0;;){if((0|r)>=(0|e)){t=0,r=4;break}if(t=0|n[(0|n[A>>2])+(r<<2)>>2]){r=4;break}r=r+1|0}return 4==(0|r)?0|t:0}function ce(A,e){e|=0;var t=0,r=0,o=0,a=0;if(t=~~(+f(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,t=(0|n[A>>2])+(t<<2)|0,!(r=0|n[t>>2]))return 0|(a=1);a=e+32|0;do{if((0|r)!=(0|e)){if(!(t=0|n[r+32>>2]))return 0|(a=1);for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|n[o+32>>2])){t=1,o=10;break}r=o,o=t}if(8==(0|o)){n[r+32>>2]=n[a>>2];break}if(10==(0|o))return 0|t}else n[t>>2]=n[a>>2]}while(0);return be(e),n[(a=A+8|0)>>2]=(0|n[a>>2])-1,0|(a=0)}function he(A,e,t){A|=0,e|=0,t|=0;var r,o=0,a=0,l=0;(r=0|we(40))||k(23283,23253,98,23296),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[(a=r+16|0)>>2]=n[t>>2],n[a+4>>2]=n[t+4>>2],n[a+8>>2]=n[t+8>>2],n[a+12>>2]=n[t+12>>2],n[r+32>>2]=0,a=~~(+f(+ +u(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,a=(0|n[A>>2])+(a<<2)|0,o=0|n[a>>2];do{if(o){for(;!(0|QA(o,e)&&0|QA(o+16|0,t));)if(a=0|n[o+32>>2],!(0|n[(o=0|a?a:o)+32>>2])){l=10;break}if(10==(0|l)){n[o+32>>2]=r;break}return be(r),0|(l=o)}n[a>>2]=r}while(0);return n[(l=A+8|0)>>2]=1+(0|n[l>>2]),0|(l=r)}function ge(A,e,t){e|=0,t|=0;var r=0,o=0;if(o=~~(+f(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0|(t=0);if(!t){for(A=o;;){if(0|QA(A,e)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}if(10==(0|r))return 0|A}for(A=o;;){if(0|QA(A,e)&&0|QA(A+16|0,t)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}return 10==(0|r)?0|A:0}function de(A,e){e|=0;var t=0;if(t=~~(+f(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(t<<2)>>2]))return 0|(t=0);for(;;){if(0|QA(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function pe(A){return 0|+function(A){return+ +Ce(+(A=+A))}(A=+A)}function we(A){A|=0;var e,t=0,r=0,i=0,o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0;e=C,C=C+16|0,g=e;do{if(A>>>0<245){if(A=(s=A>>>0<11?16:A+11&-8)>>>3,3&(r=(h=0|n[5829])>>>A))return i=0|n[(r=(A=23356+((t=(1&r^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|n[(o=i+8|0)>>2]))==(0|A)?n[5829]=h&~(1<<t):(n[a+12>>2]=A,n[r>>2]=a),B=t<<3,n[i+4>>2]=3|B,n[(B=i+B+4|0)>>2]=1|n[B>>2],C=e,0|(B=o);if(s>>>0>(c=0|n[5831])>>>0){if(0|r)return t=((t=r<<A&((t=2<<A)|0-t))&0-t)-1|0,a=0|n[(A=(t=23356+((i=((r=(t>>>=l=t>>>12&16)>>>5&8)|l|(a=(t>>>=r)>>>2&4)|(A=(t>>>=a)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(r=0|n[(l=a+8|0)>>2]))==(0|t)?(A=h&~(1<<i),n[5829]=A):(n[r+12>>2]=t,n[A>>2]=r,A=h),f=(B=i<<3)-s|0,n[a+4>>2]=3|s,n[(o=a+s|0)+4>>2]=1|f,n[a+B>>2]=f,0|c&&(i=0|n[5834],r=23356+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[5831]=f,n[5834]=o,C=e,0|(B=l);if(a=0|n[5830]){for(r=(a&0-a)-1|0,r=u=0|n[23620+(((i=(r>>>=o=r>>>12&16)>>>5&8)|o|(f=(r>>>=i)>>>2&4)|(l=(r>>>=f)>>>1&2)|(u=(r>>>=l)>>>1&1))+(r>>>u)<<2)>>2],l=u,u=(-8&n[u+4>>2])-s|0;(A=0|n[r+16>>2])||(A=0|n[r+20>>2]);)r=A,l=(o=(f=(-8&n[A+4>>2])-s|0)>>>0<u>>>0)?A:l,u=o?f:u;if((f=l+s|0)>>>0>l>>>0){o=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){r=0;break}for(;;)if(r=0|n[(i=t+20|0)>>2])t=r,A=i;else{if(!(r=0|n[(i=t+16|0)>>2]))break;t=r,A=i}n[A>>2]=0,r=t}else r=0|n[l+8>>2],n[r+12>>2]=t,n[t+8>>2]=r,r=t}while(0);do{if(0|o){if(t=0|n[l+28>>2],(0|l)==(0|n[(A=23620+(t<<2)|0)>>2])){if(n[A>>2]=r,!r){n[5830]=a&~(1<<t);break}}else if(n[((0|n[(B=o+16|0)>>2])==(0|l)?B:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(t=0|n[l+16>>2])&&(n[r+16>>2]=t,n[t+24>>2]=r),0|(t=0|n[l+20>>2])&&(n[r+20>>2]=t,n[t+24>>2]=r)}}while(0);return u>>>0<16?(B=u+s|0,n[l+4>>2]=3|B,n[(B=l+B+4|0)>>2]=1|n[B>>2]):(n[l+4>>2]=3|s,n[f+4>>2]=1|u,n[f+u>>2]=u,0|c&&(i=0|n[5834],r=23356+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|n[(A=r+8|0)>>2]:(n[5829]=t|h,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[5831]=u,n[5834]=f),C=e,0|(B=l+8|0)}h=s}else h=s}else h=s}else if(A>>>0<=4294967231)if(s=-8&(A=A+11|0),i=0|n[5830]){o=0-s|0,u=(A>>>=8)?s>>>0>16777215?31:s>>>((u=14-((l=((w=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(u=((w<<=l)+245760|0)>>>16&2))+(w<<u>>>15)|0)+7|0)&1|u<<1:0,r=0|n[23620+(u<<2)>>2];A:do{if(r)for(A=0,l=s<<(31==(0|u)?0:25-(u>>>1)),a=0;;){if((f=(-8&n[r+4>>2])-s|0)>>>0<o>>>0){if(!f){A=r,o=0,w=65;break A}A=r,o=f}if(a=!(0|(w=0|n[r+20>>2]))|(0|w)==(0|(r=0|n[r+16+(l>>>31<<2)>>2]))?a:w,!r){r=a,w=61;break}l<<=1}else r=0,A=0,w=61}while(0);if(61==(0|w)){if(!(0|r)&!(0|A)){if(!(A=((A=2<<u)|0-A)&i)){h=s;break}h=(A&0-A)-1|0,A=0,r=0|n[23620+(((a=(h>>>=f=h>>>12&16)>>>5&8)|f|(l=(h>>>=a)>>>2&4)|(u=(h>>>=l)>>>1&2)|(r=(h>>>=u)>>>1&1))+(h>>>r)<<2)>>2]}r?w=65:(l=A,f=o)}if(65==(0|w))for(a=r;;){if(o=(r=(h=(-8&n[a+4>>2])-s|0)>>>0<o>>>0)?h:o,A=r?a:A,(r=0|n[a+16>>2])||(r=0|n[a+20>>2]),!r){l=A,f=o;break}a=r}if(0|l&&f>>>0<((0|n[5831])-s|0)>>>0&&(c=l+s|0)>>>0>l>>>0){a=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){t=0;break}for(;;)if(r=0|n[(o=t+20|0)>>2])t=r,A=o;else{if(!(r=0|n[(o=t+16|0)>>2]))break;t=r,A=o}n[A>>2]=0}else B=0|n[l+8>>2],n[B+12>>2]=t,n[t+8>>2]=B}while(0);do{if(a){if(A=0|n[l+28>>2],(0|l)==(0|n[(r=23620+(A<<2)|0)>>2])){if(n[r>>2]=t,!t){i&=~(1<<A),n[5830]=i;break}}else if(n[((0|n[(B=a+16|0)>>2])==(0|l)?B:a+20)>>2]=t,!t)break;n[t+24>>2]=a,0|(A=0|n[l+16>>2])&&(n[t+16>>2]=A,n[A+24>>2]=t),(A=0|n[l+20>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);A:do{if(f>>>0<16)B=f+s|0,n[l+4>>2]=3|B,n[(B=l+B+4|0)>>2]=1|n[B>>2];else{if(n[l+4>>2]=3|s,n[c+4>>2]=1|f,n[c+f>>2]=f,t=f>>>3,f>>>0<256){r=23356+(t<<1<<2)|0,(A=0|n[5829])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=c,n[t+12>>2]=c,n[c+8>>2]=t,n[c+12>>2]=r;break}if(t=23620+((r=(t=f>>>8)?f>>>0>16777215?31:f>>>((r=14-((y=((B=t<<(m=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|m|(r=((B<<=y)+245760|0)>>>16&2))+(B<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[c+28>>2]=r,n[(A=c+16|0)+4>>2]=0,n[A>>2]=0,!(i&(A=1<<r))){n[5830]=i|A,n[t>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break}t=0|n[t>>2];e:do{if((-8&n[t+4>>2])!=(0|f)){for(i=f<<(31==(0|r)?0:25-(r>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|f)){t=A;break e}i<<=1,t=A}n[r>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);B=0|n[(m=t+8|0)>>2],n[B+12>>2]=c,n[m>>2]=c,n[c+8>>2]=B,n[c+12>>2]=t,n[c+24>>2]=0}}while(0);return C=e,0|(B=l+8|0)}h=s}else h=s;else h=-1}while(0);if((r=0|n[5831])>>>0>=h>>>0)return t=r-h|0,A=0|n[5834],t>>>0>15?(B=A+h|0,n[5834]=B,n[5831]=t,n[B+4>>2]=1|t,n[A+r>>2]=t,n[A+4>>2]=3|h):(n[5831]=0,n[5834]=0,n[A+4>>2]=3|r,n[(B=A+r+4|0)>>2]=1|n[B>>2]),C=e,0|(B=A+8|0);if((f=0|n[5832])>>>0>h>>>0)return y=f-h|0,n[5832]=y,m=(B=0|n[5835])+h|0,n[5835]=m,n[m+4>>2]=1|y,n[B+4>>2]=3|h,C=e,0|(B=B+8|0);if(0|n[5947]?A=0|n[5949]:(n[5949]=4096,n[5948]=4096,n[5950]=-1,n[5951]=-1,n[5952]=0,n[5940]=0,n[5947]=-16&g^1431655768,A=4096),l=h+48|0,(s=(a=A+(u=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return C=e,0|(B=0);if(0|(A=0|n[5939])&&(g=(c=0|n[5937])+s|0)>>>0<=c>>>0|g>>>0>A>>>0)return C=e,0|(B=0);A:do{if(4&n[5940])t=0,w=143;else{r=0|n[5835];e:do{if(r){for(i=23764;!((g=0|n[i>>2])>>>0<=r>>>0&&(g+(0|n[i+4>>2])|0)>>>0>r>>>0);){if(!(A=0|n[i+8>>2])){w=128;break e}i=A}if((t=a-f&o)>>>0<2147483647)if((0|(A=0|Ie(0|t)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){f=t,a=A,w=145;break A}}else i=A,w=136;else t=0}else w=128}while(0);do{if(128==(0|w))if(-1!=(0|(r=0|Ie(0)))&&(t=r,p=(t=((p=(d=0|n[5948])+-1|0)&t?(p+t&0-d)-t|0:0)+s|0)+(d=0|n[5937])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(g=0|n[5939])&&p>>>0<=d>>>0|p>>>0>g>>>0){t=0;break}if((0|(A=0|Ie(0|t)))==(0|r)){f=t,a=r,w=145;break A}i=A,w=136}else t=0}while(0);do{if(136==(0|w)){if(r=0-t|0,!(l>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}f=t,a=i,w=145;break A}if((A=u-t+(A=0|n[5949])&0-A)>>>0>=2147483647){f=t,a=i,w=145;break A}if(-1==(0|Ie(0|A))){Ie(0|r),t=0;break}f=A+t|0,a=i,w=145;break A}}while(0);n[5940]=4|n[5940],w=143}}while(0);if(143==(0|w)&&s>>>0<2147483647&&!(-1==(0|(y=0|Ie(0|s)))|1^(v=(b=(p=0|Ie(0))-y|0)>>>0>(h+40|0)>>>0)|y>>>0<p>>>0&-1!=(0|y)&-1!=(0|p)^1)&&(f=v?b:t,a=y,w=145),145==(0|w)){t=(0|n[5937])+f|0,n[5937]=t,t>>>0>(0|n[5938])>>>0&&(n[5938]=t),u=0|n[5835];A:do{if(u){for(t=23764;;){if((0|a)==((A=0|n[t>>2])+(r=0|n[t+4>>2])|0)){w=154;break}if(!(i=0|n[t+8>>2]))break;t=i}if(!(154!=(0|w)||(m=t+4|0,8&n[t+12>>2]))&&a>>>0>u>>>0&A>>>0<=u>>>0){n[m>>2]=r+f,m=u+(y=7&(y=u+8|0)?0-y&7:0)|0,y=(B=(0|n[5832])+f|0)-y|0,n[5835]=m,n[5832]=y,n[m+4>>2]=1|y,n[u+B+4>>2]=40,n[5836]=n[5951];break}for(a>>>0<(0|n[5833])>>>0&&(n[5833]=a),r=a+f|0,t=23764;;){if((0|n[t>>2])==(0|r)){w=162;break}if(!(A=0|n[t+8>>2]))break;t=A}if(162==(0|w)&&!(8&n[t+12>>2])){n[t>>2]=a,n[(c=t+4|0)>>2]=(0|n[c>>2])+f,s=(c=a+(7&(c=a+8|0)?0-c&7:0)|0)+h|0,l=(t=r+(7&(t=r+8|0)?0-t&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|u)==(0|t))B=(0|n[5832])+l|0,n[5832]=B,n[5835]=s,n[s+4>>2]=1|B;else{if((0|n[5834])==(0|t)){B=(0|n[5831])+l|0,n[5831]=B,n[5834]=s,n[s+4>>2]=1|B,n[s+B>>2]=B;break}if(1==(3&(A=0|n[t+4>>2]))){f=-8&A,i=A>>>3;t:do{if(A>>>0<256){if(A=0|n[t+8>>2],(0|(r=0|n[t+12>>2]))==(0|A)){n[5829]=n[5829]&~(1<<i);break}n[A+12>>2]=r,n[r+8>>2]=A;break}a=0|n[t+24>>2],A=0|n[t+12>>2];do{if((0|A)==(0|t)){if(A=0|n[(i=(r=t+16|0)+4|0)>>2])r=i;else if(!(A=0|n[r>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,r=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,r=o}n[r>>2]=0}else B=0|n[t+8>>2],n[B+12>>2]=A,n[A+8>>2]=B}while(0);if(!a)break;i=23620+((r=0|n[t+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|t)){if(n[i>>2]=A,0|A)break;n[5830]=n[5830]&~(1<<r);break t}if(n[((0|n[(B=a+16|0)>>2])==(0|t)?B:a+20)>>2]=A,!A)break t}while(0);if(n[A+24>>2]=a,0|(i=0|n[(r=t+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(r=0|n[r+4>>2]))break;n[A+20>>2]=r,n[r+24>>2]=A}while(0);t=t+f|0,o=f+l|0}else o=l;if(n[(t=t+4|0)>>2]=-2&n[t>>2],n[s+4>>2]=1|o,n[s+o>>2]=o,t=o>>>3,o>>>0<256){r=23356+(t<<1<<2)|0,(A=0|n[5829])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=s,n[t+12>>2]=s,n[s+8>>2]=t,n[s+12>>2]=r;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((y=((B=t<<(m=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|m|(i=((B<<=y)+245760|0)>>>16&2))+(B<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(t=23620+(i<<2)|0,n[s+28>>2]=i,n[(A=s+16|0)+4>>2]=0,n[A>>2]=0,!((A=0|n[5830])&(r=1<<i))){n[5830]=A|r,n[t>>2]=s,n[s+24>>2]=t,n[s+12>>2]=s,n[s+8>>2]=s;break}t=0|n[t>>2];t:do{if((-8&n[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}n[r>>2]=s,n[s+24>>2]=t,n[s+12>>2]=s,n[s+8>>2]=s;break e}}while(0);B=0|n[(m=t+8|0)>>2],n[B+12>>2]=s,n[m>>2]=s,n[s+8>>2]=B,n[s+12>>2]=t,n[s+24>>2]=0}}while(0);return C=e,0|(B=c+8|0)}for(t=23764;!((A=0|n[t>>2])>>>0<=u>>>0&&(B=A+(0|n[t+4>>2])|0)>>>0>u>>>0);)t=0|n[t+8>>2];t=(A=(A=(o=B+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=u+16|0)>>>0?u:A)+8|0,m=a+(y=7&(y=a+8|0)?0-y&7:0)|0,y=(r=f+-40|0)-y|0,n[5835]=m,n[5832]=y,n[m+4>>2]=1|y,n[a+r+4>>2]=40,n[5836]=n[5951],n[(r=A+4|0)>>2]=27,n[t>>2]=n[5941],n[t+4>>2]=n[5942],n[t+8>>2]=n[5943],n[t+12>>2]=n[5944],n[5941]=a,n[5942]=f,n[5944]=0,n[5943]=t,t=A+24|0;do{m=t,n[(t=t+4|0)>>2]=7}while((m+8|0)>>>0<B>>>0);if((0|A)!=(0|u)){if(a=A-u|0,n[r>>2]=-2&n[r>>2],n[u+4>>2]=1|a,n[A>>2]=a,t=a>>>3,a>>>0<256){r=23356+(t<<1<<2)|0,(A=0|n[5829])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=u,n[t+12>>2]=u,n[u+8>>2]=t,n[u+12>>2]=r;break}if(r=23620+((i=(t=a>>>8)?a>>>0>16777215?31:a>>>((i=14-((y=((B=t<<(m=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|m|(i=((B<<=y)+245760|0)>>>16&2))+(B<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,n[u+28>>2]=i,n[u+20>>2]=0,n[o>>2]=0,!((t=0|n[5830])&(A=1<<i))){n[5830]=t|A,n[r>>2]=u,n[u+24>>2]=r,n[u+12>>2]=u,n[u+8>>2]=u;break}t=0|n[r>>2];e:do{if((-8&n[t+4>>2])!=(0|a)){for(i=a<<(31==(0|i)?0:25-(i>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}n[r>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break A}}while(0);B=0|n[(m=t+8|0)>>2],n[B+12>>2]=u,n[m>>2]=u,n[u+8>>2]=B,n[u+12>>2]=t,n[u+24>>2]=0}}else!(0|(B=0|n[5833]))|a>>>0<B>>>0&&(n[5833]=a),n[5941]=a,n[5942]=f,n[5944]=0,n[5838]=n[5947],n[5837]=-1,n[5842]=23356,n[5841]=23356,n[5844]=23364,n[5843]=23364,n[5846]=23372,n[5845]=23372,n[5848]=23380,n[5847]=23380,n[5850]=23388,n[5849]=23388,n[5852]=23396,n[5851]=23396,n[5854]=23404,n[5853]=23404,n[5856]=23412,n[5855]=23412,n[5858]=23420,n[5857]=23420,n[5860]=23428,n[5859]=23428,n[5862]=23436,n[5861]=23436,n[5864]=23444,n[5863]=23444,n[5866]=23452,n[5865]=23452,n[5868]=23460,n[5867]=23460,n[5870]=23468,n[5869]=23468,n[5872]=23476,n[5871]=23476,n[5874]=23484,n[5873]=23484,n[5876]=23492,n[5875]=23492,n[5878]=23500,n[5877]=23500,n[5880]=23508,n[5879]=23508,n[5882]=23516,n[5881]=23516,n[5884]=23524,n[5883]=23524,n[5886]=23532,n[5885]=23532,n[5888]=23540,n[5887]=23540,n[5890]=23548,n[5889]=23548,n[5892]=23556,n[5891]=23556,n[5894]=23564,n[5893]=23564,n[5896]=23572,n[5895]=23572,n[5898]=23580,n[5897]=23580,n[5900]=23588,n[5899]=23588,n[5902]=23596,n[5901]=23596,n[5904]=23604,n[5903]=23604,m=a+(y=7&(y=a+8|0)?0-y&7:0)|0,y=(B=f+-40|0)-y|0,n[5835]=m,n[5832]=y,n[m+4>>2]=1|y,n[a+B+4>>2]=40,n[5836]=n[5951]}while(0);if((t=0|n[5832])>>>0>h>>>0)return y=t-h|0,n[5832]=y,m=(B=0|n[5835])+h|0,n[5835]=m,n[m+4>>2]=1|y,n[B+4>>2]=3|h,C=e,0|(B=B+8|0)}return n[(B=23312)>>2]=12,C=e,0|(B=0)}function be(A){var e=0,t=0,r=0,i=0,o=0,a=0,f=0,l=0;if(A|=0){t=A+-8|0,i=0|n[5833],l=t+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)f=t,a=t;else{if(r=0|n[t>>2],!(3&A))return;if(o=r+e|0,(a=t+(0-r)|0)>>>0<i>>>0)return;if((0|n[5834])==(0|a)){if(3&~(e=0|n[(A=l+4|0)>>2])){f=a,e=o;break}return n[5831]=o,n[A>>2]=-2&e,n[a+4>>2]=1|o,void(n[a+o>>2]=o)}if(t=r>>>3,r>>>0<256){if(A=0|n[a+8>>2],(0|(e=0|n[a+12>>2]))==(0|A)){n[5829]=n[5829]&~(1<<t),f=a,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,f=a,e=o;break}i=0|n[a+24>>2],A=0|n[a+12>>2];do{if((0|A)==(0|a)){if(A=0|n[(t=(e=a+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0}else f=0|n[a+8>>2],n[f+12>>2]=A,n[A+8>>2]=f}while(0);if(i){if(e=0|n[a+28>>2],(0|n[(t=23620+(e<<2)|0)>>2])==(0|a)){if(n[t>>2]=A,!A){n[5830]=n[5830]&~(1<<e),f=a,e=o;break}}else if(n[((0|n[(f=i+16|0)>>2])==(0|a)?f:i+20)>>2]=A,!A){f=a,e=o;break}n[A+24>>2]=i,0|(t=0|n[(e=a+16|0)>>2])&&(n[A+16>>2]=t,n[t+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,f=a,e=o):(f=a,e=o)}else f=a,e=o}}while(0);if(!(a>>>0>=l>>>0)&&1&(r=0|n[(A=l+4|0)>>2])){if(2&r)n[A>>2]=-2&r,n[f+4>>2]=1|e,n[a+e>>2]=e,i=e;else{if((0|n[5835])==(0|l)){if(l=(0|n[5832])+e|0,n[5832]=l,n[5835]=f,n[f+4>>2]=1|l,(0|f)!=(0|n[5834]))return;return n[5834]=0,void(n[5831]=0)}if((0|n[5834])==(0|l))return l=(0|n[5831])+e|0,n[5831]=l,n[5834]=a,n[f+4>>2]=1|l,void(n[a+l>>2]=l);i=(-8&r)+e|0,t=r>>>3;do{if(r>>>0<256){if(e=0|n[l+8>>2],(0|(A=0|n[l+12>>2]))==(0|e)){n[5829]=n[5829]&~(1<<t);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[l+24>>2],A=0|n[l+12>>2];do{if((0|A)==(0|l)){if(A=0|n[(t=(e=l+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){t=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0,t=A}else t=0|n[l+8>>2],n[t+12>>2]=A,n[A+8>>2]=t,t=A}while(0);if(0|o){if(A=0|n[l+28>>2],(0|n[(e=23620+(A<<2)|0)>>2])==(0|l)){if(n[e>>2]=t,!t){n[5830]=n[5830]&~(1<<A);break}}else if(n[((0|n[(r=o+16|0)>>2])==(0|l)?r:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(e=0|n[(A=l+16|0)>>2])&&(n[t+16>>2]=e,n[e+24>>2]=t),0|(A=0|n[A+4>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);if(n[f+4>>2]=1|i,n[a+i>>2]=i,(0|f)==(0|n[5834]))return void(n[5831]=i)}if(A=i>>>3,i>>>0<256)return t=23356+(A<<1<<2)|0,(e=0|n[5829])&(A=1<<A)?A=0|n[(e=t+8|0)>>2]:(n[5829]=e|A,A=t,e=t+8|0),n[e>>2]=f,n[A+12>>2]=f,n[f+8>>2]=A,void(n[f+12>>2]=t);A=23620+((r=(A=i>>>8)?i>>>0>16777215?31:i>>>((r=14-((o=((l=A<<(a=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(r=((l<<=o)+245760|0)>>>16&2))+(l<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[f+28>>2]=r,n[f+20>>2]=0,n[f+16>>2]=0,e=0|n[5830],t=1<<r;A:do{if(e&t){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(r=i<<(31==(0|r)?0:25-(r>>>1));e=0|n[(t=A+16+(r>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}r<<=1,A=e}n[t>>2]=f,n[f+24>>2]=A,n[f+12>>2]=f,n[f+8>>2]=f;break A}}while(0);l=0|n[(a=A+8|0)>>2],n[l+12>>2]=f,n[a>>2]=f,n[f+8>>2]=l,n[f+12>>2]=A,n[f+24>>2]=0}else n[5830]=e|t,n[A>>2]=f,n[f+24>>2]=A,n[f+12>>2]=f,n[f+8>>2]=f}while(0);if(l=(0|n[5837])-1|0,n[5837]=l,!(0|l)){for(A=23772;A=0|n[A>>2];)A=A+8|0;n[5837]=-1}}}}function ve(A,e){e|=0;var t=0;return(A|=0)?(t=0|v(e,A),(e|A)>>>0>65535&&(t=((t>>>0)/(A>>>0)|0)==(0|e)?t:-1)):t=0,(A=0|we(t))&&3&n[A+-4>>2]?(De(0|A,0,0|t),0|A):0|A}function ye(A,e,t,r){return 0|(B(0|(r=(e|=0)-(r|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function me(A){return 0|((A|=0)?31-(0|m(A^A-1)):32)}function Be(A,e,t,r,i){i|=0;var o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0;if(s=A|=0,a=t|=0,f=h=r|=0,!(u=l=e|=0))return o=!!(0|i),f?o?(n[i>>2]=0|A,n[i+4>>2]=0,i=0,0|(B(0|(h=0)),i)):(i=0,0|(B(0|(h=0)),i)):(o&&(n[i>>2]=(s>>>0)%(a>>>0),n[i+4>>2]=0),i=(s>>>0)/(a>>>0)>>>0,0|(B(0|(h=0)),i));o=!(0|f);do{if(a){if(!o){if((o=(0|m(0|f))-(0|m(0|u))|0)>>>0<=31){a=c=o+1|0,A=s>>>(c>>>0)&(e=o-31>>31)|u<<(f=31-o|0),e&=u>>>(c>>>0),o=0,f=s<<f;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|l,i=0,0|(B(0|(h=0)),i)):(i=0,0|(B(0|(h=0)),i))}if((o=a-1|0)&a){a=f=33+(0|m(0|a))-(0|m(0|u))|0,A=(c=32-f|0)-1>>31&u>>>((g=f-32|0)>>>0)|(u<<c|s>>>(f>>>0))&(e=g>>31),e&=u>>>(f>>>0),o=s<<(d=64-f|0)&(l=c>>31),f=(u<<d|s>>>(g>>>0))&l|s<<c&f-33>>31;break}return 0|i&&(n[i>>2]=o&s,n[i+4>>2]=0),1==(0|a)?(d=0|A,0|(B(0|(g=0|l)),d)):(g=u>>>((d=0|me(0|a))>>>0)|0,d=u<<32-d|s>>>(d>>>0),0|(B(0|g),d))}if(o)return 0|i&&(n[i>>2]=(u>>>0)%(a>>>0),n[i+4>>2]=0),d=(u>>>0)/(a>>>0)>>>0,0|(B(0|(g=0)),d);if(!s)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(u>>>0)%(f>>>0)),d=(u>>>0)/(f>>>0)>>>0,0|(B(0|(g=0)),d);if(!((o=f-1|0)&f))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&u),g=0,d=u>>>((0|me(0|f))>>>0),0|(B(0|g),d);if((o=(0|m(0|f))-(0|m(0|u))|0)>>>0<=30){a=e=o+1|0,A=u<<(f=31-o|0)|s>>>(e>>>0),e=u>>>(e>>>0),o=0,f=s<<f;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|l,d=0,0|(B(0|(g=0)),d)):(d=0,0|(B(0|(g=0)),d))}while(0);if(a){u=0|function(A,e,t,r){return 0|(B((e|=0)+(r|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}(0|(c=0|t),0|(s=0|h),-1,-1),t=0|E(),l=f,f=0;do{r=l,l=o>>>31|l<<1,o=f|o<<1,ye(0|u,0|t,0|(r=A<<1|r>>>31),0|(h=A>>>31|e<<1)),f=1&(g=(d=0|E())>>31|((0|d)<0?-1:0)<<1),A=0|ye(0|r,0|h,g&c,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&s),e=0|E(),a=a-1|0}while(0|a);u=l,l=0}else u=f,l=0,f=0;return a=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),d=o<<1&-2|f,0|(B(0|(g=(0|o)>>>31|(u|a)<<1|l)),d)}function Ee(A,e,t,r){var i,o;return o=C,C=C+16|0,Be(A|=0,e|=0,t|=0,r|=0,i=0|o),C=o,0|(B(0|n[i+4>>2]),n[i>>2])}function ke(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(B(e>>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(B(0),e>>>t-32|0)}function _e(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(B(e<<t|(A&(1<<t)-1<<32-t)>>>32-t),A<<t):(B(A<<t-32),0)}function Me(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+y(+A,+e)}function Qe(A){return(A=+A)>=0?+a(A+.5):+b(A-.5)}function xe(A,e,t){A|=0,e|=0;var i,o,a=0;if((0|(t|=0))>=8192)return Q(0|A,0|e,0|t),0|A;if(o=0|A,i=A+t|0,(3&A)==(3&e)){for(;3&A;){if(!t)return 0|o;r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0,t=t-1|0}for(a=(t=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)r[A|0]=0|r[e|0],r[A+1|0]=0|r[e+1|0],r[A+2|0]=0|r[e+2|0],r[A+3|0]=0|r[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0;return 0|o}function De(A,e,t){e|=0;var i,o=0,a=0,f=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)r[A|0]=e,A=A+1|0;for(f=e|e<<8|e<<16|e<<24,a=(o=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=f,n[A+4>>2]=f,n[A+8>>2]=f,n[A+12>>2]=f,n[A+16>>2]=f,n[A+20>>2]=f,n[A+24>>2]=f,n[A+28>>2]=f,n[A+32>>2]=f,n[A+36>>2]=f,n[A+40>>2]=f,n[A+44>>2]=f,n[A+48>>2]=f,n[A+52>>2]=f,n[A+56>>2]=f,n[A+60>>2]=f,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=f,A=A+4|0}for(;(0|A)<(0|i);)r[A|0]=e,A=A+1|0;return i-t|0}function Ce(A){return(A=+A)>=0?+a(A+.5):+b(A-.5)}function Ie(A){A|=0;var e,t,r;return r=0|M(),(0|A)>0&(0|(e=(t=0|n[o>>2])+A|0))<(0|t)|(0|e)<0?(D(0|e),_(12),-1):(0|e)>(0|r)&&!(0|x(0|e))?(_(12),-1):(n[o>>2]=e,0|t)}return{___uremdi3:Ee,_bitshift64Lshr:ke,_bitshift64Shl:_e,_calloc:ve,_cellAreaKm2:function(A,e){var t,r,i,o=0;if(i=C,C=C+192|0,r=i,NA(A|=0,e|=0,t=i+168|0),VA(A,e,r),(0|(e=0|n[r>>2]))>0){if(o=+DA(r+8|0,r+8+((1!=(0|e)&1)<<4)|0,t)+0,1!=(0|e)){A=1;do{o+=+DA(r+8+(A<<4)|0,r+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e))}}else o=0;return C=i,6371.007180918475*o*6371.007180918475},_cellAreaM2:function(A,e){var t,r,i,o=0;if(i=C,C=C+192|0,r=i,NA(A|=0,e|=0,t=i+168|0),VA(A,e,r),(0|(e=0|n[r>>2]))>0){if(o=+DA(r+8|0,r+8+((1!=(0|e)&1)<<4)|0,t)+0,1!=(0|e)){A=1;do{o+=+DA(r+8+(A<<4)|0,r+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e))}}else o=0;return C=i,6371.007180918475*o*6371.007180918475*1e3*1e3},_cellAreaRads2:function(A,e){var t,r,i,o=0;if(i=C,C=C+192|0,r=i,NA(A|=0,e|=0,t=i+168|0),VA(A,e,r),(0|(e=0|n[r>>2]))<=0)return C=i,+(o=0);if(o=+DA(r+8|0,r+8+((1!=(0|e)&1)<<4)|0,t)+0,1==(0|e))return C=i,+o;A=1;do{o+=+DA(r+8+(A<<4)|0,r+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e));return C=i,+o},_compact:function(A,e,t){e|=0;var r,i=0,o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,k=0,_=0,M=0;if(!(t|=0))return 0|(_=0);if(i=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if((0|t)<=0)return 0|(_=0);if(n[(_=e)>>2]=i,n[_+4>>2]=o,1==(0|t))return 0|(_=0);i=1;do{k=0|n[(B=A+(i<<3)|0)+4>>2],n[(_=e+(i<<3)|0)>>2]=n[B>>2],n[_+4>>2]=k,i=i+1|0}while((0|i)!=(0|t));return 0|(i=0)}if(!(k=0|we(B=t<<3)))return 0|(_=-3);if(xe(0|k,0|A,0|B),!(r=0|ve(t,8)))return be(k),0|(_=-3);i=t;A:for(;;){y=0|ke(0|(c=0|n[(f=k)>>2]),0|(f=0|n[f+4>>2]),52),E(),m=(y&=15)+-1|0,v=(0|i)>0;e:do{if(v){if(b=((0|i)<0)<<31>>31,p=0|_e(0|m,0,52),w=0|E(),m>>>0>15)for(o=0,A=c,t=f;;){if(!(!(0|A)&!(0|t))){if(a=0|ke(0|A,0|t,52),E(),l=(0|(a&=15))<(0|m),a=(0|a)==(0|m),t=0|Ee(0|(s=l?0:a?A:0),0|(A=l?0:a?t:0),0|i,0|b),E(),!(0|(u=0|n[(l=a=r+(t<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2])))t=s;else for(p=0,d=t,g=l,t=s;;){if((0|p)>(0|i)){_=41;break A}if((0|u)==(0|t)&(-117440513&g)==(0|A)){s=0|ke(0|u,0|g,56),E(),h=(s&=7)+1|0,w=0|ke(0|u,0|g,45),E();t:do{if(0|T(127&w)){if(u=0|ke(0|u,0|g,52),E(),!(u&=15)){l=6;break}for(l=1;;){if(!(!((w=0|_e(7,0,3*(15-l|0)|0))&t)&!(E()&A))){l=7;break t}if(!(l>>>0<u>>>0)){l=6;break}l=l+1|0}}else l=7}while(0);if((s+2|0)>>>0>l>>>0){_=51;break A}w=0|_e(0|h,0,56),A=E()|-117440513&A,n[(l=a)>>2]=0,n[l+4>>2]=0,l=d,t|=w}else l=(d+1|0)%(0|i)|0;if(!(0|(u=0|n[(g=a=r+(l<<3)|0)>>2]))&!(0|(g=0|n[g+4>>2])))break;p=p+1|0,d=l}n[(w=a)>>2]=t,n[w+4>>2]=A}if((0|(o=o+1|0))>=(0|i))break e;A=0|n[(t=k+(o<<3)|0)>>2],t=0|n[t+4>>2]}for(o=0,A=c,t=f;;){if(!(!(0|A)&!(0|t))){if(l=0|ke(0|A,0|t,52),E(),(0|(l&=15))>=(0|m)){if((0|l)!=(0|m)&&(A|=p,t=-15728641&t|w,l>>>0>=y>>>0)){a=m;do{d=0|_e(7,0,3*(14-a|0)|0),a=a+1|0,A|=d,t=E()|t}while(a>>>0<l>>>0)}}else A=0,t=0;if(l=0|Ee(0|A,0|t,0|i,0|b),E(),!(!(0|(s=0|n[(u=a=r+(l<<3)|0)>>2]))&!(0|(u=0|n[u+4>>2]))))for(d=0;;){if((0|d)>(0|i)){_=41;break A}if((0|s)==(0|A)&(-117440513&u)==(0|t)){h=0|ke(0|s,0|u,56),E(),g=(h&=7)+1|0,M=0|ke(0|s,0|u,45),E();t:do{if(0|T(127&M)){if(s=0|ke(0|s,0|u,52),E(),!(s&=15)){u=6;break}for(u=1;;){if(!(!((M=0|_e(7,0,3*(15-u|0)|0))&A)&!(E()&t))){u=7;break t}if(!(u>>>0<s>>>0)){u=6;break}u=u+1|0}}else u=7}while(0);if((h+2|0)>>>0>u>>>0){_=51;break A}M=0|_e(0|g,0,56),t=E()|-117440513&t,n[(g=a)>>2]=0,n[g+4>>2]=0,A|=M}else l=(l+1|0)%(0|i)|0;if(!(0|(s=0|n[(u=a=r+(l<<3)|0)>>2]))&!(0|(u=0|n[u+4>>2])))break;d=d+1|0}n[(M=a)>>2]=A,n[M+4>>2]=t}if((0|(o=o+1|0))>=(0|i))break e;A=0|n[(t=k+(o<<3)|0)>>2],t=0|n[t+4>>2]}}}while(0);if((i+5|0)>>>0<11){_=99;break}if(!(w=0|ve((0|i)/6|0,8))){_=58;break}e:do{if(v){d=0,g=0;do{if(!(!(0|(o=0|n[(A=l=r+(d<<3)|0)>>2]))&!(0|(A=0|n[A+4>>2])))){u=0|ke(0|o,0|A,56),E(),t=(u&=7)+1|0,s=-117440513&A,M=0|ke(0|o,0|A,45),E();t:do{if(0|T(127&M)){if(h=0|ke(0|o,0|A,52),E(),0|(h&=15))for(a=1;;){if(!(!(o&(M=0|_e(7,0,3*(15-a|0)|0)))&!(s&E())))break t;if(!(a>>>0<h>>>0))break;a=a+1|0}o|=A=0|_e(0|t,0,56),A=E()|s,n[(t=l)>>2]=o,n[t+4>>2]=A,t=u+2|0}}while(0);7==(0|t)&&(n[(M=w+(g<<3)|0)>>2]=o,n[M+4>>2]=-117440513&A,g=g+1|0)}d=d+1|0}while((0|d)!=(0|i));if(v){if(p=((0|i)<0)<<31>>31,h=0|_e(0|m,0,52),d=0|E(),m>>>0>15)for(A=0,o=0;;){do{if(!(!(0|c)&!(0|f))){for(u=0|ke(0|c,0|f,52),E(),a=(0|(u&=15))<(0|m),u=(0|u)==(0|m),a=0|Ee(0|(l=a?0:u?c:0),0|(u=a?0:u?f:0),0|i,0|p),E(),t=0;;){if((0|t)>(0|i)){_=98;break A}if((-117440513&(s=0|n[(M=r+(a<<3)|0)+4>>2]))==(0|u)&&(0|n[M>>2])==(0|l)){_=70;break}if((0|n[(M=r+((a=(a+1|0)%(0|i)|0)<<3)|0)>>2])==(0|l)&&(0|n[M+4>>2])==(0|u))break;t=t+1|0}if(70==(0|_)&&(_=0,!0&100663296==(117440512&s)))break;n[(M=e+(o<<3)|0)>>2]=c,n[M+4>>2]=f,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|n[(f=k+(A<<3)|0)>>2],f=0|n[f+4>>2]}for(A=0,o=0;;){do{if(!(!(0|c)&!(0|f))){if(u=0|ke(0|c,0|f,52),E(),(0|(u&=15))>=(0|m))if((0|u)!=(0|m))if(t=c|h,a=-15728641&f|d,u>>>0<y>>>0)u=a;else{l=m;do{M=0|_e(7,0,3*(14-l|0)|0),l=l+1|0,t|=M,a=E()|a}while(l>>>0<u>>>0);u=a}else t=c,u=f;else t=0,u=0;for(l=0|Ee(0|t,0|u,0|i,0|p),E(),a=0;;){if((0|a)>(0|i)){_=98;break A}if((-117440513&(s=0|n[(M=r+(l<<3)|0)+4>>2]))==(0|u)&&(0|n[M>>2])==(0|t)){_=93;break}if((0|n[(M=r+((l=(l+1|0)%(0|i)|0)<<3)|0)>>2])==(0|t)&&(0|n[M+4>>2])==(0|u))break;a=a+1|0}if(93==(0|_)&&(_=0,!0&100663296==(117440512&s)))break;n[(M=e+(o<<3)|0)>>2]=c,n[M+4>>2]=f,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|n[(f=k+(A<<3)|0)>>2],f=0|n[f+4>>2]}}else o=0,i=g}else o=0,i=0}while(0);if(De(0|r,0,0|B),xe(0|k,0|w,i<<3),be(w),!i)break;e=e+(o<<3)|0}return 41==(0|_)?(be(k),be(r),0|(M=-1)):51==(0|_)?(be(k),be(r),0|(M=-2)):58==(0|_)?(be(k),be(r),0|(M=-3)):98==(0|_)?(be(w),be(k),be(r),0|(M=-1)):(99==(0|_)&&xe(0|e,0|k,i<<3),be(k),be(r),0|(M=0))},_destroyLinkedPolygon:function(A){var e=0,t=0,r=0,i=0;if(A|=0)for(r=1;;){if(0|(e=0|n[A>>2]))do{if(0|(t=0|n[e>>2]))do{i=t,t=0|n[t+16>>2],be(i)}while(0|t);i=e,e=0|n[e+8>>2],be(i)}while(0|e);if(e=A,A=0|n[A+8>>2],r||be(e),!A)break;r=0}},_edgeLengthKm:function(A){return+ +i[20752+((A|=0)<<3)>>3]},_edgeLengthM:function(A){return+ +i[20880+((A|=0)<<3)>>3]},_emscripten_replace_memory:function(A){return r=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),t=A,!0},_exactEdgeLengthKm:function(A,e){var t,r,o=0,a=0,f=0,u=0,h=0,g=0;if(r=C,C=C+176|0,WA(A|=0,e|=0,t=r),(0|(A=0|n[t>>2]))<=1)return C=r,+(f=0);e=A+-1|0,A=0,o=0,a=+i[t+8>>3],f=+i[t+16>>3];do{h=a,a=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(a-h)),u=f,f=+i[t+8+(A<<4)+8>>3],u=g*g+(u=+c(.5*(f-u)))*(+s(+h)*+s(+a)*u),o+=2*+w(+ +l(+u),+ +l(+(1-u)))}while((0|A)!=(0|e));return C=r,+(g=6371.007180918475*o)},_exactEdgeLengthM:function(A,e){var t,r,o=0,a=0,f=0,u=0,h=0,g=0;if(r=C,C=C+176|0,WA(A|=0,e|=0,t=r),(0|(A=0|n[t>>2]))<=1)return C=r,+(f=0);e=A+-1|0,A=0,o=0,a=+i[t+8>>3],f=+i[t+16>>3];do{h=a,a=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(a-h)),u=f,f=+i[t+8+(A<<4)+8>>3],u=g*g+(u=+c(.5*(f-u)))*(+s(+h)*+s(+a)*u),o+=2*+w(+ +l(+u),+ +l(+(1-u)))}while((0|A)!=(0|e));return C=r,+(g=6371.007180918475*o*1e3)},_exactEdgeLengthRads:function(A,e){var t,r,o=0,a=0,f=0,u=0,h=0,g=0;if(r=C,C=C+176|0,WA(A|=0,e|=0,t=r),(0|(A=0|n[t>>2]))<=1)return C=r,+(f=0);e=A+-1|0,A=0,o=0,a=+i[t+8>>3],f=+i[t+16>>3];do{h=a,a=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(a-h)),u=f,f=+i[t+8+(A<<4)+8>>3],u=g*g+(u=+c(.5*(f-u)))*(+s(+a)*+s(+h)*u),o+=2*+w(+ +l(+u),+ +l(+(1-u)))}while((0|A)<(0|e));return C=r,+o},_experimentalH3ToLocalIj:function(A,e,t,r,n){var i,o;return n|=0,o=C,C=C+16|0,(A=0|$A(A|=0,e|=0,t|=0,r|=0,i=o))||(hA(i,n),A=0),C=o,0|A},_experimentalLocalIjToH3:function(A,e,t,r){var n,i;return A|=0,e|=0,r|=0,n=C,C=C+16|0,gA(t|=0,i=n),r=0|Ae(A,e,i,r),C=n,0|r},_free:be,_geoToH3:YA,_getDestinationH3IndexFromUnidirectionalEdge:function(A,e){A|=0;var t,r,i=0;return t=C,C=C+16|0,i=t,!0&268435456==(2013265920&(e|=0))?(r=0|ke(0|A,0|e,56),E(),n[i>>2]=0,i=0|P(A,-2130706433&e|134217728,7&r,i),e=0|E(),B(0|e),C=t,0|i):(i=0,B(0|(e=0)),C=t,0|i)},_getH3IndexesFromUnidirectionalEdge:function(A,e,t){A|=0;var r,i,o,a,f=0;o=C,C=C+16|0,r=o,a=!0&268435456==(2013265920&(e|=0)),i=-2130706433&e|134217728,n[(f=t|=0)>>2]=a?A:0,n[f+4>>2]=a?i:0,a?(e=0|ke(0|A,0|e,56),E(),n[r>>2]=0,A=0|P(A,i,7&e,r),e=0|E()):(A=0,e=0),n[(f=t+8|0)>>2]=A,n[f+4>>2]=e,C=o},_getH3UnidirectionalEdge:function(A,e,t,r){var i,o,a=0,f=0,l=0,u=0,s=0;if(o=C,C=C+16|0,i=o,!(0|ZA(A|=0,e|=0,t|=0,r|=0)))return u=0,B(0|(l=0)),C=o,0|u;for(l=-2130706433&e,a=(a=!(0|PA(A,e)))?1:2;n[i>>2]=0,f=a+1|0,!((0|(s=0|P(A,e,a,i)))==(0|t)&(0|E())==(0|r));){if(!(f>>>0<7)){a=0,A=0,u=6;break}a=f}return 6==(0|u)?(B(0|a),C=o,0|A):(s=0|_e(0|a,0,56),u=l|E()|268435456,s|=A,B(0|u),C=o,0|s)},_getH3UnidirectionalEdgeBoundary:WA,_getH3UnidirectionalEdgesFromHexagon:function(A,e,t){t|=0;var r,i=0;r=!(0|PA(A|=0,e|=0)),e&=-2130706433,n[(i=t)>>2]=r?A:0,n[i+4>>2]=r?285212672|e:0,n[(i=t+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=t+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=t+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=t+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(t=t+40|0)>>2]=A,n[t+4>>2]=369098752|e},_getOriginH3IndexFromUnidirectionalEdge:function(A,e){var t;return A|=0,B(0|((t=!0&268435456==(2013265920&(e|=0)))?-2130706433&e|134217728:0)),0|(t?A:0)},_getPentagonIndexes:jA,_getRes0Indexes:function(A){A|=0;var e=0,t=0,r=0;e=0;do{_e(0|e,0,45),r=134225919|E(),n[(t=A+(e<<3)|0)>>2]=-1,n[t+4>>2]=r,e=e+1|0}while(122!=(0|e))},_h3Distance:function(A,e,t,r){var n,i,o;return t|=0,r|=0,o=C,C=C+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,n=o+12|0)||0|$A(A,e,t,r,i)?-1:0|cA(n,i),C=o,0|A},_h3GetBaseCell:CA,_h3GetFaces:function A(e,t,r){r|=0;var i,o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0;i=C,C=C+128|0,c=i+112|0,f=i+96|0,h=i,a=0|ke(0|(e|=0),0|(t|=0),52),E(),u=15&a,n[c>>2]=u,l=0|ke(0|e,0|t,45),E(),l&=127;A:do{if(0|T(l)){if(0|u)for(o=1;;){if(!(!((s=0|_e(7,0,3*(15-o|0)|0))&e)&!(E()&t))){a=0;break A}if(!(o>>>0<u>>>0))break;o=o+1|0}if(!(1&a))return s=0|_e(u+1|0,0,52),h=E()|-15728641&t,A((s|e)&~(c=0|_e(7,0,3*(14-u|0)|0)),h&~E(),r),void(C=i);a=1}else a=0}while(0);OA(e,t,f),a?(mA(f,c,h),s=5):(_A(f,c,h),s=6);A:do{if(0|T(l))if(u)for(o=1;;){if(!(!((l=0|_e(7,0,3*(15-o|0)|0))&e)&!(E()&t))){o=8;break A}if(!(o>>>0<u>>>0)){o=20;break}o=o+1|0}else o=20;else o=8}while(0);if(De(0|r,-1,0|o),a){a=0;do{for(EA(f=h+(a<<4)|0,0|n[c>>2]),f=0|n[f>>2],o=0;!(-1==(0|(u=0|n[(l=r+(o<<2)|0)>>2]))|(0|u)==(0|f));)o=o+1|0;n[l>>2]=f,a=a+1|0}while((0|a)!=(0|s))}else{a=0;do{for(BA(f=h+(a<<4)|0,0|n[c>>2],0,1),f=0|n[f>>2],o=0;!(-1==(0|(u=0|n[(l=r+(o<<2)|0)>>2]))|(0|u)==(0|f));)o=o+1|0;n[l>>2]=f,a=a+1|0}while((0|a)!=(0|s))}C=i},_h3GetResolution:function(A,e){return e=0|ke(0|(A|=0),0|(e|=0),52),E(),15&e},_h3IndexesAreNeighbors:ZA,_h3IsPentagon:PA,_h3IsResClassIII:function(A,e){return e=0|ke(0|(A|=0),0|(e|=0),52),E(),1&e},_h3IsValid:IA,_h3Line:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,E=0,k=0;if(o=C,C=C+48|0,l=o+12|0,E=o,!(0|$A(A|=0,e|=0,A,e,a=o+24|0))&&!(0|$A(A,e,t,r,l))){if((0|(B=0|cA(a,l)))<0)return C=o,0|(E=B);for(n[a>>2]=0,n[a+4>>2]=0,n[a+8>>2]=0,n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,$A(A,e,A,e,a),$A(A,e,t,r,l),dA(a),dA(l),B?(p=+(0|B),m=a,t=h=0|n[a>>2],r=g=0|n[(v=a+4|0)>>2],a=d=0|n[(y=a+8|0)>>2],w=+((0|n[l>>2])-h|0)/p,b=+((0|n[l+4>>2])-g|0)/p,p=+((0|n[l+8>>2])-d|0)/p):(v=r=a+4|0,y=d=a+8|0,m=a,t=0|n[a>>2],r=0|n[r>>2],a=0|n[d>>2],w=0,b=0,p=0),n[E>>2]=t,n[(d=E+4|0)>>2]=r,n[(g=E+8|0)>>2]=a,h=0;;){k=w*(s=+(0|h))+ +(0|t),u=b*s+ +(0|n[v>>2]),s=p*s+ +(0|n[y>>2]),r=~~+Qe(+k),l=~~+Qe(+u),t=~~+Qe(+s),k=+f(+(+(0|r)-k)),u=+f(+(+(0|l)-u)),s=+f(+(+(0|t)-s));do{if(!(k>u&k>s)){if(c=0-r|0,u>s){a=c-t|0;break}a=l,t=c-l|0;break}r=0-(l+t)|0,a=l}while(0);if(n[E>>2]=r,n[d>>2]=a,n[g>>2]=t,pA(E),Ae(A,e,E,i+(h<<3)|0),(0|h)==(0|B))break;h=h+1|0,t=0|n[m>>2]}return C=o,0|(E=0)}return C=o,0|(E=-1)},_h3LineSize:function(A,e,t,r){var n,i,o;return t|=0,r|=0,o=C,C=C+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,n=o+12|0)||0|$A(A,e,t,r,i)?-1:0|cA(n,i),C=o,(A>>>31^1)+A|0},_h3SetToLinkedGeo:function(A,e,t){t|=0;var r,i,o,a=0;if(o=C,C=C+32|0,r=o,function(A,e,t){A|=0,t|=0;var r,i,o=0,a=0,f=0,l=0,u=0;if(i=C,C=C+176|0,r=i,(0|(e|=0))<1)return le(t,0,0),void(C=i);l=0|ke(0|n[(l=A)>>2],0|n[l+4>>2],52),E(),le(t,(0|e)>6?e:6,15&l),l=0;do{if(VA(0|n[(o=A+(l<<3)|0)>>2],0|n[o+4>>2],r),(0|(o=0|n[r>>2]))>0){u=0;do{f=r+8+(u<<4)|0,(a=0|ge(t,o=r+8+((0|(u=u+1|0))%(0|o)<<4)|0,f))?ce(t,a):he(t,f,o),o=0|n[r>>2]}while((0|u)<(0|o))}l=l+1|0}while((0|l)!=(0|e));C=i}(A|=0,e|=0,i=o+16|0),n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,!(A=0|se(i)))return JA(t),ue(i),void(C=o);do{e=0|XA(t);do{KA(e,A),a=A+16|0,n[r>>2]=n[a>>2],n[r+4>>2]=n[a+4>>2],n[r+8>>2]=n[a+8>>2],n[r+12>>2]=n[a+12>>2],ce(i,A),A=0|de(i,r)}while(0|A);A=0|se(i)}while(0|A);JA(t),ue(i),C=o},_h3ToCenterChild:function(A,e,t){t|=0;var r=0,n=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(r&=15))<=(0|t)){if((0|r)!=(0|t)&&(A|=n=0|_e(0|t,0,52),e=E()|-15728641&e,(0|r)<(0|t)))do{n=0|_e(7,0,3*(14-r|0)|0),r=r+1|0,A&=~n,e&=~E()}while((0|r)<(0|t))}else e=0,A=0;return B(0|e),0|A},_h3ToChildren:SA,_h3ToGeo:NA,_h3ToGeoBoundary:VA,_h3ToParent:FA,_h3UnidirectionalEdgeIsValid:function(A,e){var t=0;if(!(!0&268435456==(2013265920&(e|=0))))return 0|(t=0);switch(t=0|ke(0|(A|=0),0|e,56),E(),7&t){case 0:case 7:return 0|(t=0)}return!0&16777216==(117440512&e)&!!(0|PA(A,t=-2130706433&e|134217728))?0|(t=0):0|(t=0|IA(A,t))},_hexAreaKm2:function(A){return+ +i[20496+((A|=0)<<3)>>3]},_hexAreaM2:function(A){return+ +i[20624+((A|=0)<<3)>>3]},_hexRing:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,a=0,f=0,l=0,u=0,s=0,c=0;if(i=C,C=C+16|0,c=i,!(t|=0))return n[(c=r)>>2]=A,n[c+4>>2]=e,C=i,0|(c=0);n[c>>2]=0;A:do{if(0|PA(A,e))A=1;else{if(a=(0|t)>0){o=0,s=A;do{if(!(0|(s=0|P(s,e,4,c)))&!(0|(e=0|E()))){A=2;break A}if(o=o+1|0,0|PA(s,e)){A=1;break A}}while((0|o)<(0|t));if(n[(u=r)>>2]=s,n[u+4>>2]=e,u=t+-1|0,a){a=0,f=1,o=s,A=e;do{if(!(0|(o=0|P(o,A,2,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(f<<3)|0)>>2]=o,n[l+4>>2]=A,f=f+1|0,0|PA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|t));l=0,a=f;do{if(!(0|(o=0|P(o,A,3,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(f=r+(a<<3)|0)>>2]=o,n[f+4>>2]=A,a=a+1|0,0|PA(o,A)){A=1;break A}l=l+1|0}while((0|l)<(0|t));f=0;do{if(!(0|(o=0|P(o,A,1,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(a<<3)|0)>>2]=o,n[l+4>>2]=A,a=a+1|0,0|PA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|t));f=0;do{if(!(0|(o=0|P(o,A,5,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(a<<3)|0)>>2]=o,n[l+4>>2]=A,a=a+1|0,0|PA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|t));f=0;do{if(!(0|(o=0|P(o,A,4,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(a<<3)|0)>>2]=o,n[l+4>>2]=A,a=a+1|0,0|PA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|t));for(f=0;;){if(!(0|(o=0|P(o,A,6,c)))&!(0|(A=0|E()))){A=2;break A}if((0|f)!=(0|u)){if(n[(l=r+(a<<3)|0)>>2]=o,n[l+4>>2]=A,0|PA(o,A)){A=1;break A}a=a+1|0}if((0|(f=f+1|0))>=(0|t)){f=s,a=e;break}}}else f=s,o=s,a=e,A=e}else n[(f=r)>>2]=A,n[f+4>>2]=e,f=A,o=A,a=e,A=e;A=1&((0|f)!=(0|o)|(0|a)!=(0|A))}}while(0);return C=i,0|(c=A)},_i64Subtract:ye,_kRing:I,_kRingDistances:function(A,e,t,r,n){var i;if(0|F(A|=0,e|=0,t|=0,r|=0,n|=0)){if(De(0|r,0,(i=1+(0|v(3*t|0,t+1|0))|0)<<3),0|n)return De(0|n,0,i<<2),void S(A,e,t,r,n,i,0);(n=0|ve(i,4))&&(S(A,e,t,r,n,i,0),be(n))}},_llvm_minnum_f64:Me,_llvm_round_f64:Qe,_malloc:we,_maxFaceCount:function(A,e){var t=0,r=0;if(r=0|ke(0|(A|=0),0|(e|=0),45),E(),!(0|T(127&r)))return 0|(r=2);if(r=0|ke(0|A,0|e,52),E(),!(r&=15))return 0|(r=5);for(t=1;;){if(!(!((0|_e(7,0,3*(15-t|0)|0))&A)&!(E()&e))){t=2,A=6;break}if(!(t>>>0<r>>>0)){t=5,A=6;break}t=t+1|0}return 6==(0|A)?0|t:0},_maxH3ToChildrenSize:function(A,e,t){return t|=0,A=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(A&=15))<=(0|t)?0|(t=0|ee(7,t-A|0)):0|(t=0)},_maxKringSize:function(A){return 1+(0|v(3*(A|=0)|0,A+1|0))|0},_maxPolyfillSize:function(A,e){e|=0;var t,r=0,i=0,o=0,a=0,f=0;if(t=C,C=C+48|0,o=t+8|0,i=t,a=0|n[(f=A|=0)+4>>2],n[(r=i)>>2]=n[f>>2],n[r+4>>2]=a,re(i,o),o=0|V(o,e),e=0|n[i>>2],(0|(i=0|n[A+8>>2]))<=0)return C=t,0|(f=(f=(a=(0|o)<(0|(f=e)))?f:o)+12|0);r=0|n[A+12>>2],A=0;do{e=(0|n[r+(A<<3)>>2])+e|0,A=A+1|0}while((0|A)<(0|i));return C=t,0|(f=(f=(f=(0|o)<(0|e))?e:o)+12|0)},_maxUncompactSize:function(A,e,t){A|=0,t|=0;var r=0,i=0,o=0,a=0;if((0|(e|=0))<=0)return 0|(t=0);if((0|t)>=16){for(r=0;;){if(!(!(0|n[(a=A+(r<<3)|0)>>2])&!(0|n[a+4>>2]))){r=-1,i=13;break}if((0|(r=r+1|0))>=(0|e)){r=0,i=13;break}}if(13==(0|i))return 0|r}r=0,a=0;A:for(;;){o=0|n[(i=A+(a<<3)|0)>>2],i=0|n[i+4>>2];do{if(!(!(0|o)&!(0|i))){if(i=0|ke(0|o,0|i,52),E(),(0|(i&=15))>(0|t)){r=-1,i=13;break A}if((0|i)==(0|t)){r=r+1|0;break}r=(0|ee(7,t-i|0))+r|0;break}}while(0);if((0|(a=a+1|0))>=(0|e)){i=13;break}}return 13==(0|i)?0|r:0},_memcpy:xe,_memset:De,_numHexagons:function(A){var e;return A=0|n[(e=21008+((A|=0)<<3)|0)>>2],B(0|n[e+4>>2]),0|A},_pentagonIndexCount:function(){return 12},_pointDistKm:xA,_pointDistM:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+c(.5*(r-t)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+s(+r)*+s(+t)*o),2*+w(+ +l(+o),+ +l(+(1-o)))*6371.007180918475*1e3},_pointDistRads:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+c(.5*(r-t)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+s(+r)*+s(+t)*o),2*+w(+ +l(+o),+ +l(+(1-o)))},_polyfill:function(A,e,t){var r,i=0,o=0,a=0,f=0,l=0;if(r=C,C=C+48|0,i=r+8|0,o=r,0|function(A,e,t){A|=0,e|=0,t|=0;var r=0,i=0,o=0,a=0,f=0,l=0,u=0,s=0,c=0,h=0,g=0,d=0,p=0,w=0,b=0,v=0,y=0,m=0,B=0,_=0,M=0,Q=0,x=0,D=0,I=0,P=0,T=0,U=0,R=0,L=0;L=C,C=C+112|0,P=L+80|0,l=L+72|0,T=L,U=L+56|0,u=A+8|0,R=0|we(32+(n[u>>2]<<5)|0),R||k(22848,22448,800,22456);if(ne(A,R),o=A,r=0|n[o+4>>2],f=l,n[f>>2]=n[o>>2],n[f+4>>2]=r,re(l,P),f=0|V(P,e),r=0|n[l>>2],o=0|n[u>>2],(0|o)>0){a=0|n[A+12>>2],i=0;do{r=(0|n[a+(i<<3)>>2])+r|0,i=i+1|0}while((0|i)!=(0|o))}if(f=(0|f)<(0|r)?r:f,I=f+12|0,i=0|ve(I,8),s=0|ve(I,8),n[P>>2]=0,x=A,D=0|n[x+4>>2],r=l,n[r>>2]=n[x>>2],n[r+4>>2]=D,r=0|G(l,I,e,P,i,s),0|r)return be(i),be(s),be(R),C=L,0|(R=r);A:do{if((0|n[u>>2])>0){for(o=A+12|0,r=0;a=0|G((0|n[o>>2])+(r<<3)|0,I,e,P,i,s),r=r+1|0,!(0|a);)if((0|r)>=(0|n[u>>2]))break A;return be(i),be(s),be(R),C=L,0|(R=a)}}while(0);(0|f)>-12&&De(0|s,0,((0|I)>1?I:1)<<3);A:do{if((0|n[P>>2])>0){D=((0|I)<0)<<31>>31,m=i,B=s,_=i,M=i,Q=s,x=i,r=i,w=i,b=s,v=s,y=s,i=s;e:for(;;){for(p=0|n[P>>2],g=0,d=0,o=0;;){f=(a=T)+56|0;do{n[a>>2]=0,a=a+4|0}while((0|a)<(0|f));if(0|F(l=0|n[(e=m+(g<<3)|0)>>2],e=0|n[e+4>>2],1,T,0)){f=(a=T)+56|0;do{n[a>>2]=0,a=a+4|0}while((0|a)<(0|f));0|(a=0|ve(7,4))&&(S(l,e,1,T,a,7,0),be(a))}h=0;do{s=0|n[(c=T+(h<<3)|0)>>2],c=0|n[c+4>>2];t:do{if(!(!(0|s)&!(0|c))){if(l=0|Ee(0|s,0|c,0|I,0|D),E(),!(!(0|(e=0|n[(f=a=t+(l<<3)|0)>>2]))&!(0|(f=0|n[f+4>>2]))))for(u=0;;){if((0|u)>(0|I))break e;if((0|e)==(0|s)&(0|f)==(0|c))break t;if(!(0|(e=0|n[(f=a=t+((l=(l+1|0)%(0|I)|0)<<3)|0)>>2]))&!(0|(f=0|n[f+4>>2])))break;u=u+1|0}!(0|s)&!(0|c)||(NA(s,c,U),0|ie(A,R,U)&&(n[(u=a)>>2]=s,n[u+4>>2]=c,n[(u=B+(o<<3)|0)>>2]=s,n[u+4>>2]=c,o=o+1|0))}}while(0);h=h+1|0}while(h>>>0<7);if((0|(d=d+1|0))>=(0|p))break;g=g+1|0}if((0|p)>0&&De(0|_,0,p<<3),n[P>>2]=o,!((0|o)>0))break A;s=i,c=y,h=x,g=v,d=b,p=B,i=w,y=r,v=M,b=_,w=s,r=c,x=Q,Q=h,M=g,_=d,B=m,m=p}return be(M),be(Q),be(R),C=L,0|(R=-1)}r=s}while(0);return be(R),be(i),be(r),R=0,C=L,0|R}(A|=0,e|=0,t|=0)){if(a=0|n[(l=A)+4>>2],n[(f=o)>>2]=n[l>>2],n[f+4>>2]=a,re(o,i),f=0|V(i,e),e=0|n[o>>2],(0|(a=0|n[A+8>>2]))>0){o=0|n[A+12>>2],i=0;do{e=(0|n[o+(i<<3)>>2])+e|0,i=i+1|0}while((0|i)!=(0|a))}(0|(e=(0|f)<(0|e)?e:f))<=-12||De(0|t,0,8+(((0|(l=e+11|0))>0?l:0)<<3)|0),C=r}else C=r},_res0IndexCount:function(){return 122},_round:Ce,_sbrk:Ie,_sizeOfCoordIJ:function(){return 8},_sizeOfGeoBoundary:function(){return 168},_sizeOfGeoCoord:function(){return 16},_sizeOfGeoPolygon:function(){return 16},_sizeOfGeofence:function(){return 8},_sizeOfH3Index:function(){return 8},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompact:function(A,e,t,r,i){A|=0,t|=0,r|=0,i|=0;var o=0,a=0,f=0,l=0,u=0,s=0;if((0|(e|=0))<=0)return 0|(i=0);if((0|i)>=16){for(o=0;;){if(!(!(0|n[(s=A+(o<<3)|0)>>2])&!(0|n[s+4>>2]))){o=14;break}if((0|(o=o+1|0))>=(0|e)){a=0,o=16;break}}if(14==(0|o))return 0|((0|r)>0?-2:-1);if(16==(0|o))return 0|a}o=0,s=0;A:for(;;){a=0|n[(f=u=A+(s<<3)|0)>>2],f=0|n[f+4>>2];do{if(!(!(0|a)&!(0|f))){if((0|o)>=(0|r)){a=-1,o=16;break A}if(l=0|ke(0|a,0|f,52),E(),(0|(l&=15))>(0|i)){a=-2,o=16;break A}if((0|l)==(0|i)){n[(u=t+(o<<3)|0)>>2]=a,n[u+4>>2]=f,o=o+1|0;break}if((0|(a=(0|ee(7,i-l|0))+o|0))>(0|r)){a=-1,o=16;break A}SA(0|n[u>>2],0|n[u+4>>2],i,t+(o<<3)|0),o=a}}while(0);if((0|(s=s+1|0))>=(0|e)){a=0,o=16;break}}return 16==(0|o)?0|a:0},establishStackSpace:function(A,e){C=A|=0},stackAlloc:function(A){var e;return e=C,C=(C=C+(A|=0)|0)+15&-16,0|e},stackRestore:function(A){C=A|=0},stackSave:function(){return 0|C}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{a:bA,b:function(A){w=A},c:b,d:function(A,e,t,r){bA("Assertion failed: "+I(A)+", at: "+[e?I(e):"unknown filename",t,r?I(r):"unknown function"])},e:function(A){return t.___errno_location&&(Q[t.___errno_location()>>2]=A),A},f:AA,g:function(A,e,t){_.set(_.subarray(e,e+t),A)},h:function(A){var e=AA(),t=16777216,r=2130706432;if(A>r)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?F(2*n,t):Math.min(F((3*n+2147483648)/4,t),r);return!!eA(n)},i:function(A){bA("OOM")},j:J,k:q,l:eA,m:$,n:function(){var A=$();return t.extraStackTrace&&(A+="\n"+t.extraStackTrace()),q(A)},o:24032,p:24016},E);t.___uremdi3=iA.___uremdi3,t._bitshift64Lshr=iA._bitshift64Lshr,t._bitshift64Shl=iA._bitshift64Shl,t._calloc=iA._calloc,t._cellAreaKm2=iA._cellAreaKm2,t._cellAreaM2=iA._cellAreaM2,t._cellAreaRads2=iA._cellAreaRads2,t._compact=iA._compact,t._destroyLinkedPolygon=iA._destroyLinkedPolygon,t._edgeLengthKm=iA._edgeLengthKm,t._edgeLengthM=iA._edgeLengthM;var oA=t._emscripten_replace_memory=iA._emscripten_replace_memory;t._exactEdgeLengthKm=iA._exactEdgeLengthKm,t._exactEdgeLengthM=iA._exactEdgeLengthM,t._exactEdgeLengthRads=iA._exactEdgeLengthRads,t._experimentalH3ToLocalIj=iA._experimentalH3ToLocalIj,t._experimentalLocalIjToH3=iA._experimentalLocalIjToH3,t._free=iA._free,t._geoToH3=iA._geoToH3,t._getDestinationH3IndexFromUnidirectionalEdge=iA._getDestinationH3IndexFromUnidirectionalEdge,t._getH3IndexesFromUnidirectionalEdge=iA._getH3IndexesFromUnidirectionalEdge,t._getH3UnidirectionalEdge=iA._getH3UnidirectionalEdge,t._getH3UnidirectionalEdgeBoundary=iA._getH3UnidirectionalEdgeBoundary,t._getH3UnidirectionalEdgesFromHexagon=iA._getH3UnidirectionalEdgesFromHexagon,t._getOriginH3IndexFromUnidirectionalEdge=iA._getOriginH3IndexFromUnidirectionalEdge,t._getPentagonIndexes=iA._getPentagonIndexes,t._getRes0Indexes=iA._getRes0Indexes,t._h3Distance=iA._h3Distance,t._h3GetBaseCell=iA._h3GetBaseCell,t._h3GetFaces=iA._h3GetFaces,t._h3GetResolution=iA._h3GetResolution,t._h3IndexesAreNeighbors=iA._h3IndexesAreNeighbors,t._h3IsPentagon=iA._h3IsPentagon,t._h3IsResClassIII=iA._h3IsResClassIII,t._h3IsValid=iA._h3IsValid,t._h3Line=iA._h3Line,t._h3LineSize=iA._h3LineSize,t._h3SetToLinkedGeo=iA._h3SetToLinkedGeo,t._h3ToCenterChild=iA._h3ToCenterChild,t._h3ToChildren=iA._h3ToChildren,t._h3ToGeo=iA._h3ToGeo,t._h3ToGeoBoundary=iA._h3ToGeoBoundary,t._h3ToParent=iA._h3ToParent,t._h3UnidirectionalEdgeIsValid=iA._h3UnidirectionalEdgeIsValid,t._hexAreaKm2=iA._hexAreaKm2,t._hexAreaM2=iA._hexAreaM2,t._hexRing=iA._hexRing,t._i64Subtract=iA._i64Subtract,t._kRing=iA._kRing,t._kRingDistances=iA._kRingDistances,t._llvm_minnum_f64=iA._llvm_minnum_f64,t._llvm_round_f64=iA._llvm_round_f64,t._malloc=iA._malloc,t._maxFaceCount=iA._maxFaceCount,t._maxH3ToChildrenSize=iA._maxH3ToChildrenSize,t._maxKringSize=iA._maxKringSize,t._maxPolyfillSize=iA._maxPolyfillSize,t._maxUncompactSize=iA._maxUncompactSize,t._memcpy=iA._memcpy,t._memset=iA._memset,t._numHexagons=iA._numHexagons,t._pentagonIndexCount=iA._pentagonIndexCount,t._pointDistKm=iA._pointDistKm,t._pointDistM=iA._pointDistM,t._pointDistRads=iA._pointDistRads,t._polyfill=iA._polyfill,t._res0IndexCount=iA._res0IndexCount,t._round=iA._round,t._sbrk=iA._sbrk,t._sizeOfCoordIJ=iA._sizeOfCoordIJ,t._sizeOfGeoBoundary=iA._sizeOfGeoBoundary,t._sizeOfGeoCoord=iA._sizeOfGeoCoord,t._sizeOfGeoPolygon=iA._sizeOfGeoPolygon,t._sizeOfGeofence=iA._sizeOfGeofence,t._sizeOfH3Index=iA._sizeOfH3Index,t._sizeOfLinkedGeoPolygon=iA._sizeOfLinkedGeoPolygon,t._uncompact=iA._uncompact,t.establishStackSpace=iA.establishStackSpace;var aA,fA,lA=t.stackAlloc=iA.stackAlloc,uA=t.stackRestore=iA.stackRestore,sA=t.stackSave=iA.stackSave;if(t.asm=iA,t.cwrap=function(A,e,t,r){var n=(t=t||[]).every((function(A){return"number"===A}));return"string"!==e&&n&&!r?m(A):function(){return B(A,e,t,arguments)}},t.setValue=function(A,e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":k[A|0]=e;break;case"i16":M[A>>1]=e;break;case"i32":Q[A>>2]=e;break;case"i64":Z=[e>>>0,(j=e,+H(j)>=1?j>0?(0|O(+z(j/4294967296),4294967295))>>>0:~~+Y((j-+(~~j>>>0))/4294967296)>>>0:0)],Q[A>>2]=Z[0],Q[A+4>>2]=Z[1];break;case"float":x[A>>2]=e;break;case"double":D[A>>3]=e;break;default:bA("invalid type for setValue: "+t)}},t.getValue=function(A,e,t){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return k[A|0];case"i16":return M[A>>1];case"i32":case"i64":return Q[A>>2];case"float":return x[A>>2];case"double":return D[A>>3];default:bA("invalid type for getValue: "+e)}return null},t.getTempRet0=b,W)if(K(W)||(aA=W,W=t.locateFile?t.locateFile(aA,g):g+aA),o||f){var cA=s(W);_.set(cA,8)}else{N++,t.monitorRunDependencies&&t.monitorRunDependencies(N);var hA=function(A){A.byteLength&&(A=new Uint8Array(A)),_.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(N--,t.monitorRunDependencies&&t.monitorRunDependencies(N),0==N&&V){var A=V;V=null,A()}}()},gA=function(){u(W,hA,(function(){throw"could not load memory initializer "+W}))},dA=nA(W);if(dA)hA(dA.buffer);else if(t.memoryInitializerRequest){var pA=function(){var A=t.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var r=nA(t.memoryInitializerRequestURL);if(!r)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+W),void gA();e=r.buffer}hA(e)};t.memoryInitializerRequest.response?setTimeout(pA,0):t.memoryInitializerRequest.addEventListener("load",pA)}else gA()}function wA(A){function e(){fA||(fA=!0,v||(G(U),G(R),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)A=t.postRun.shift(),L.unshift(A);var A;G(L)}()))}N>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)A=t.preRun.shift(),T.unshift(A);var A;G(T)}(),N>0||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),e()}),1)):e()))}function bA(A){throw t.onAbort&&t.onAbort(A),d(A+=""),p(A),v=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(V=function A(){fA||wA(),fA||(V=A)},t.run=wA,t.abort=bA,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wA(),A}("object"==typeof nA?nA:{}),iA="number",oA={};[["sizeOfH3Index",iA],["sizeOfGeoCoord",iA],["sizeOfGeoBoundary",iA],["sizeOfGeoPolygon",iA],["sizeOfGeofence",iA],["sizeOfLinkedGeoPolygon",iA],["sizeOfCoordIJ",iA],["h3IsValid",iA,[iA,iA]],["geoToH3",iA,[iA,iA,iA]],["h3ToGeo",null,[iA,iA,iA]],["h3ToGeoBoundary",null,[iA,iA,iA]],["maxKringSize",iA,[iA]],["kRing",null,[iA,iA,iA,iA]],["kRingDistances",null,[iA,iA,iA,iA,iA]],["hexRing",null,[iA,iA,iA,iA]],["maxPolyfillSize",iA,[iA,iA]],["polyfill",null,[iA,iA,iA]],["h3SetToLinkedGeo",null,[iA,iA,iA]],["destroyLinkedPolygon",null,[iA]],["compact",iA,[iA,iA,iA]],["uncompact",iA,[iA,iA,iA,iA,iA]],["maxUncompactSize",iA,[iA,iA,iA]],["h3IsPentagon",iA,[iA,iA]],["h3IsResClassIII",iA,[iA,iA]],["h3GetBaseCell",iA,[iA,iA]],["h3GetResolution",iA,[iA,iA]],["maxFaceCount",iA,[iA,iA]],["h3GetFaces",null,[iA,iA,iA]],["h3ToParent",iA,[iA,iA,iA]],["h3ToChildren",null,[iA,iA,iA,iA]],["h3ToCenterChild",iA,[iA,iA,iA]],["maxH3ToChildrenSize",iA,[iA,iA,iA]],["h3IndexesAreNeighbors",iA,[iA,iA,iA,iA]],["getH3UnidirectionalEdge",iA,[iA,iA,iA,iA]],["getOriginH3IndexFromUnidirectionalEdge",iA,[iA,iA]],["getDestinationH3IndexFromUnidirectionalEdge",iA,[iA,iA]],["h3UnidirectionalEdgeIsValid",iA,[iA,iA]],["getH3IndexesFromUnidirectionalEdge",null,[iA,iA,iA]],["getH3UnidirectionalEdgesFromHexagon",null,[iA,iA,iA]],["getH3UnidirectionalEdgeBoundary",null,[iA,iA,iA]],["h3Distance",iA,[iA,iA,iA,iA]],["h3Line",iA,[iA,iA,iA,iA,iA]],["h3LineSize",iA,[iA,iA,iA,iA]],["experimentalH3ToLocalIj",iA,[iA,iA,iA,iA,iA]],["experimentalLocalIjToH3",iA,[iA,iA,iA,iA]],["hexAreaM2",iA,[iA]],["hexAreaKm2",iA,[iA]],["edgeLengthM",iA,[iA]],["edgeLengthKm",iA,[iA]],["pointDistM",iA,[iA,iA]],["pointDistKm",iA,[iA,iA]],["pointDistRads",iA,[iA,iA]],["cellAreaM2",iA,[iA,iA]],["cellAreaKm2",iA,[iA,iA]],["cellAreaRads2",iA,[iA,iA]],["exactEdgeLengthM",iA,[iA,iA]],["exactEdgeLengthKm",iA,[iA,iA]],["exactEdgeLengthRads",iA,[iA,iA]],["numHexagons",iA,[iA]],["getRes0Indexes",null,[iA]],["res0IndexCount",iA],["getPentagonIndexes",null,[iA,iA]],["pentagonIndexCount",iA]].forEach((function(A){oA[A[0]]=nA.cwrap.apply(nA,A)}));var aA=16,fA=oA.sizeOfH3Index(),lA=oA.sizeOfGeoCoord(),uA=oA.sizeOfGeoBoundary(),sA=oA.sizeOfGeoPolygon(),cA=oA.sizeOfGeofence(),hA=oA.sizeOfLinkedGeoPolygon(),gA=oA.sizeOfCoordIJ(),dA={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function pA(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw new Error("Invalid resolution: "+A)}var wA=/[^0-9a-fA-F]/;function bA(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||wA.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),aA);return[parseInt(A.substring(A.length-8),aA),e]}function vA(A){if(A>=0)return A.toString(aA);var e=mA(8,(A&=2147483647).toString(aA));return e=(parseInt(e[0],aA)+8).toString(aA)+e.substring(1)}function yA(A,e){return vA(e)+mA(8,vA(A))}function mA(A,e){for(var t=A-e.length,r="",n=0;n<t;n++)r+="0";return r+=e}function BA(A,e,t){for(var r=A.length,n=nA._calloc(r,lA),i=t?1:0,o=t?0:1,a=0;a<2*r;a+=2)nA.HEAPF64.set([A[a/2][i],A[a/2][o]].map(GA),n/8+a);return nA.HEAPU32.set([r,n],e/4),e}function EA(A){return[A,nA.getTempRet0()]}function kA(A){var e=EA(A),t=e[0],r=e[1];return r?yA(t,r):null}function _A(A,e){void 0===e&&(e=0);var t=nA.getValue(A+4*e*2,"i32"),r=nA.getValue(A+4*(2*e+1),"i32");return r?yA(t,r):null}function MA(A,e,t){nA.HEAPU32.set(bA(A),e/4+2*t)}function QA(A,e){for(var t=[],r=0;r<e;r++){var n=_A(A,r);null!==n&&t.push(n)}return t}function xA(A,e){for(var t=e.length,r=0;r<t;r++)MA(e[r],A,r)}function DA(A,e){var t=nA._calloc(1,lA);return nA.HEAPF64.set([A,e].map(GA),t/8),t}function CA(A){return TA(nA.getValue(A,"double"))}function IA(A){return[CA(A),CA(A+8)]}function FA(A){return[CA(A+8),CA(A)]}function SA(A,e,t){for(var r=nA.getValue(A,"i32"),n=A+8,i=[],o=e?FA:IA,a=0;a<2*r;a+=2)i.push(o(n+8*a));return t&&i.push(i[0]),i}function PA(A){var e=bA(A),t=e[0],r=e[1];return Boolean(oA.h3IsValid(t,r))}function GA(A){return A*Math.PI/180}function TA(A){return 180*A/Math.PI}var UA=Object.freeze({__proto__:null,UNITS:dA,cellArea:function(A,e){var t=bA(A),r=t[0],n=t[1];switch(e){case dA.m2:return oA.cellAreaM2(r,n);case dA.km2:return oA.cellAreaKm2(r,n);case dA.rads2:return oA.cellAreaRads2(r,n);default:throw new Error("Unknown unit: "+e)}},compact:function(A){if(!A||!A.length)return[];var e=A.length,t=nA._calloc(e,fA);xA(t,A);var r=nA._calloc(e,fA);if(0!==oA.compact(t,r,e))throw nA._free(t),nA._free(r),new Error("Failed to compact, malformed input data (duplicate hexagons?)");var n=QA(r,e);return nA._free(t),nA._free(r),n},degsToRads:GA,edgeLength:function(A,e){switch(pA(A),e){case dA.m:return oA.edgeLengthM(A);case dA.km:return oA.edgeLengthKm(A);default:throw new Error("Unknown unit: "+e)}},exactEdgeLength:function(A,e){var t=bA(A),r=t[0],n=t[1];switch(e){case dA.m:return oA.exactEdgeLengthM(r,n);case dA.km:return oA.exactEdgeLengthKm(r,n);case dA.rads:return oA.exactEdgeLengthRads(r,n);default:throw new Error("Unknown unit: "+e)}},experimentalH3ToLocalIj:function(A,e){var t,r=nA._malloc(gA),n=oA.experimentalH3ToLocalIj.apply(oA,bA(A).concat(bA(e),[r])),i=(t=r,{i:nA.getValue(t,"i32"),j:nA.getValue(t+4,"i32")});switch(nA._free(r),n){case 0:return i;case 1:throw new Error("Incompatible origin and index.");case 2:default:throw new Error("Local IJ coordinates undefined for this origin and index pair. The index may be too far from the origin.");case 3:case 4:case 5:throw new Error("Encountered possible pentagon distortion")}},experimentalLocalIjToH3:function(A,e){if(!e||"number"!=typeof e.i||"number"!=typeof e.j)throw new Error("Coordinates must be provided as an {i, j} object");var t,r,n,i,o=nA._malloc(gA),a=nA._malloc(fA);t=o,n=(r=e).i,i=r.j,nA.setValue(t,n,"i32"),nA.setValue(t+4,i,"i32");var f=oA.experimentalLocalIjToH3.apply(oA,bA(A).concat([o],[a])),l=_A(a);if(nA._free(o),nA._free(a),0!==f)throw new Error("Index not defined for this origin and IJ coordinates pair. IJ coordinates may be too far from origin, or a pentagon distortion was encountered.");return l},geoToH3:function(A,e,t){var r=nA._malloc(lA);nA.HEAPF64.set([A,e].map(GA),r/8);var n=kA(oA.geoToH3(r,t));return nA._free(r),n},getDestinationH3IndexFromUnidirectionalEdge:function(A){var e=bA(A),t=e[0],r=e[1];return kA(oA.getDestinationH3IndexFromUnidirectionalEdge(t,r))},getH3IndexesFromUnidirectionalEdge:function(A){var e=bA(A),t=e[0],r=e[1],n=nA._calloc(2,fA);oA.getH3IndexesFromUnidirectionalEdge(t,r,n);var i=QA(n,2);return nA._free(n),i},getH3UnidirectionalEdge:function(A,e){var t=bA(A),r=t[0],n=t[1],i=bA(e),o=i[0],a=i[1];return kA(oA.getH3UnidirectionalEdge(r,n,o,a))},getH3UnidirectionalEdgeBoundary:function(A,e){var t=nA._malloc(uA),r=bA(A),n=r[0],i=r[1];oA.getH3UnidirectionalEdgeBoundary(n,i,t);var o=SA(t,e);return nA._free(t),o},getH3UnidirectionalEdgesFromHexagon:function(A){var e=bA(A),t=e[0],r=e[1],n=nA._calloc(6,fA);oA.getH3UnidirectionalEdgesFromHexagon(t,r,n);var i=QA(n,6);return nA._free(n),i},getOriginH3IndexFromUnidirectionalEdge:function(A){var e=bA(A),t=e[0],r=e[1];return kA(oA.getOriginH3IndexFromUnidirectionalEdge(t,r))},getPentagonIndexes:function(A){pA(A);var e=oA.pentagonIndexCount(),t=nA._malloc(fA*e);oA.getPentagonIndexes(A,t);var r=QA(t,e);return nA._free(t),r},getRes0Indexes:function(){var A=oA.res0IndexCount(),e=nA._malloc(fA*A);oA.getRes0Indexes(e);var t=QA(e,A);return nA._free(e),t},h3Distance:function(A,e){var t=bA(A),r=t[0],n=t[1],i=bA(e),o=i[0],a=i[1];return oA.h3Distance(r,n,o,a)},h3GetBaseCell:function(A){var e=bA(A),t=e[0],r=e[1];return oA.h3GetBaseCell(t,r)},h3GetFaces:function(A){var e=bA(A),t=e[0],r=e[1],n=oA.maxFaceCount(t,r),i=nA._malloc(4*n);oA.h3GetFaces(t,r,i);var o=function(A,e){for(var t=[],r=0;r<e;r++){var n=nA.getValue(A+4*r,"i32");n>=0&&t.push(n)}return t}(i,n);return nA._free(i),o},h3GetResolution:function(A){var e=bA(A),t=e[0],r=e[1];return oA.h3IsValid(t,r)?oA.h3GetResolution(t,r):-1},h3IndexToSplitLong:bA,h3IndexesAreNeighbors:function(A,e){var t=bA(A),r=t[0],n=t[1],i=bA(e),o=i[0],a=i[1];return Boolean(oA.h3IndexesAreNeighbors(r,n,o,a))},h3IsPentagon:function(A){var e=bA(A),t=e[0],r=e[1];return Boolean(oA.h3IsPentagon(t,r))},h3IsResClassIII:function(A){var e=bA(A),t=e[0],r=e[1];return Boolean(oA.h3IsResClassIII(t,r))},h3IsValid:PA,h3Line:function(A,e){var t=bA(A),r=t[0],n=t[1],i=bA(e),o=i[0],a=i[1],f=oA.h3LineSize(r,n,o,a);if(f<0)throw new Error("Line cannot be calculated");var l=nA._calloc(f,fA);oA.h3Line(r,n,o,a,l);var u=QA(l,f);return nA._free(l),u},h3SetToMultiPolygon:function(A,e){if(!A||!A.length)return[];var t=A.length,r=nA._calloc(t,fA);xA(r,A);var n=nA._calloc(hA),i=n;oA.h3SetToLinkedGeo(r,t,n);var o=function(A,e){for(var t,r,n,i,o=[],a=e?FA:IA;A;){for(o.push(t=[]),r=nA.getValue(A,"i8*");r;){for(t.push(n=[]),i=nA.getValue(r,"i8*");i;)n.push(a(i)),i=nA.getValue(i+16,"i8*");e&&n.push(n[0]),r=nA.getValue(r+8,"i8*")}A=nA.getValue(A+8,"i8*")}return o}(n,e);return oA.destroyLinkedPolygon(i),nA._free(i),nA._free(r),o},h3ToCenterChild:function(A,e){var t=bA(A),r=t[0],n=t[1];return kA(oA.h3ToCenterChild(r,n,e))},h3ToChildren:function(A,e){if(!PA(A))return[];var t=bA(A),r=t[0],n=t[1],i=oA.maxH3ToChildrenSize(r,n,e),o=nA._calloc(i,fA);oA.h3ToChildren(r,n,e,o);var a=QA(o,i);return nA._free(o),a},h3ToGeo:function(A){var e=nA._malloc(lA),t=bA(A),r=t[0],n=t[1];oA.h3ToGeo(r,n,e);var i=IA(e);return nA._free(e),i},h3ToGeoBoundary:function(A,e){var t=nA._malloc(uA),r=bA(A),n=r[0],i=r[1];oA.h3ToGeoBoundary(n,i,t);var o=SA(t,e,e);return nA._free(t),o},h3ToParent:function(A,e){var t=bA(A),r=t[0],n=t[1];return kA(oA.h3ToParent(r,n,e))},h3UnidirectionalEdgeIsValid:function(A){var e=bA(A),t=e[0],r=e[1];return Boolean(oA.h3UnidirectionalEdgeIsValid(t,r))},hexArea:function(A,e){switch(pA(A),e){case dA.m2:return oA.hexAreaM2(A);case dA.km2:return oA.hexAreaKm2(A);default:throw new Error("Unknown unit: "+e)}},hexRing:function(A,e){var t=0===e?1:6*e,r=nA._calloc(t,fA);if(0!==oA.hexRing.apply(oA,bA(A).concat([e],[r])))throw nA._free(r),new Error("Failed to get hexRing (encountered a pentagon?)");var n=QA(r,t);return nA._free(r),n},kRing:function(A,e){var t=bA(A),r=t[0],n=t[1],i=oA.maxKringSize(e),o=nA._calloc(i,fA);oA.kRing(r,n,e,o);var a=QA(o,i);return nA._free(o),a},kRingDistances:function(A,e){var t=bA(A),r=t[0],n=t[1],i=oA.maxKringSize(e),o=nA._calloc(i,fA),a=nA._calloc(i,4);oA.kRingDistances(r,n,e,o,a);for(var f=[],l=0;l<e+1;l++)f.push([]);for(var u=0;u<2*i;u+=2){var s=nA.getValue(o+4*u,"i32"),c=nA.getValue(o+4*(u+1),"i32"),h=nA.getValue(a+u/2*4,"i32");0===s&&0===c||f[h].push(yA(s,c))}return nA._free(o),nA._free(a),f},numHexagons:function(A){pA(A);var e=EA(oA.numHexagons(A)),t=e[0],r=e[1];return r?r*Math.pow(2,32)+t:t},pointDist:function(A,e,t){var r,n=DA(A[0],A[1]),i=DA(e[0],e[1]);switch(t){case dA.m:r=oA.pointDistM(n,i);break;case dA.km:r=oA.pointDistKm(n,i);break;case dA.rads:r=oA.pointDistRads(n,i);break;default:r=null}if(nA._free(n),nA._free(i),null===r)throw new Error("Unknown unit: "+t);return r},polyfill:function(A,e,t){if(pA(e),t=Boolean(t),0===A.length||0===A[0].length)return[];"number"==typeof A[0][0]&&(A=[A]);var r=function(A,e){var t,r=A.length-1,n=nA._calloc(sA),i=0+cA,o=i+4;if(BA(A[0],n+0,e),r>0){t=nA._calloc(r,cA);for(var a=0;a<r;a++)BA(A[a+1],t+cA*a,e)}return nA.setValue(n+i,r,"i32"),nA.setValue(n+o,t,"i32"),n}(A,t),n=oA.maxPolyfillSize(r,e),i=nA._calloc(n,fA);oA.polyfill(r,e,i);var o=QA(i,n);return nA._free(i),function(A){var e=0+cA,t=e+4;nA._free(nA.getValue(A+0+4,"i8*"));var r=nA.getValue(A+e,"i32");if(r>0){for(var n=nA.getValue(A+t,"i32"),i=0;i<r;i++)nA._free(nA.getValue(n+cA*i+4,"i8*"));nA._free(n)}nA._free(A)}(r),o},radsToDegs:TA,splitLongToh3Index:yA,uncompact:function(A,e){if(pA(e),!A||!A.length)return[];var t=A.length,r=nA._calloc(t,fA);xA(r,A);var n=oA.maxUncompactSize(r,t,e),i=nA._calloc(n,fA);if(0!==oA.uncompact(r,t,i,n,e))throw nA._free(r),nA._free(i),new Error("Failed to uncompact (bad resolution?)");var o=QA(i,n);return nA._free(r),nA._free(i),o}}),RA=rA(UA),LA="Feature",HA="FeatureCollection",YA="Polygon",zA="MultiPolygon";function OA(A){for(var e=null,t=0;t<A.length;t++)if(null!==e)for(var r=0;r<A[t].length;r++)e.push(A[t][r]);else e=A[t];return Array.from(new Set(e))}function NA(A,e,t){void 0===t&&(t={});var r=A.type,n=A.geometry,i=n&&n.type;if(r===HA)return function(A,e){var t=A.features;if(!t)throw new Error("No features found");return OA(t.map((function(A){return NA(A,e)})))}(A,e);if(r!==LA)throw new Error("Unhandled type: "+r);if(i!==YA&&i!==zA)throw new Error("Unhandled geometry type: "+i);return OA((i===YA?[n.coordinates]:n.coordinates).map((function(A){var r=RA.polyfill(A,e,!0);if(r.length||!t.ensureOutput)return r;var n=function(A){for(var e=0,t=0,r=0,n=A[0],i=0;i<n.length;i++)e+=n[i][0],t+=n[i][1],r++;return[e/r,t/r]}(A),i=n[0],o=n[1];return[RA.geoToH3(o,i,e)]})))}function VA(A,e){void 0===e&&(e={});var t=[RA.h3ToGeoBoundary(A,!0)];return{type:LA,id:A,properties:e,geometry:{type:YA,coordinates:t}}}var jA={featureToH3Set:NA,h3ToFeature:VA,h3SetToFeature:function(A,e){void 0===e&&(e={});var t=RA.h3SetToMultiPolygon(A,!0),r=t.length>1,n=r?zA:YA,i=r?t:t[0]||[];return{type:LA,properties:e,geometry:{type:n,coordinates:i}}},h3SetToMultiPolygonFeature:function(A,e){void 0===e&&(e={});var t=A.map((function(A){return[RA.h3ToGeoBoundary(A,{geoJson:!0})]}));return{type:LA,properties:e,geometry:{type:zA,coordinates:t}}},h3SetToFeatureCollection:function(A,e){for(var t=[],r=0;r<A.length;r++){var n=A[r],i=e?e(n):{};t.push(VA(n,i))}return{type:HA,features:t}}},ZA=jA;var WA=("undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}).performance||{};function XA(A){let e,t,r="";var n;return n=A,!Array.isArray(n)&&"FeatureCollection"==n?.type&&Array.isArray(n?.features)&&n?.features[0]?.hasOwnProperty("type")&&n?.features[0]?.hasOwnProperty("properties")&&n?.features[0]?.hasOwnProperty("geometry")?(r="FeatureCollection",e=A=>KA(A),t=A=>A):!function(A){return!!(Array.isArray(A)&&A.length>0&&A[0]?.hasOwnProperty("type")&&A[0]?.hasOwnProperty("properties")&&A[0]?.hasOwnProperty("geometry"))}(A)?!function(A){return!("object"!=typeof A||Array.isArray(A)||null===A||!A?.hasOwnProperty("type")||!A?.hasOwnProperty("properties")||!A?.hasOwnProperty("geometry"))}(A)?!function(A){return!!(Array.isArray(A)&&A.length>0&&A[0]?.hasOwnProperty("type")&&A[0]?.hasOwnProperty("coordinates"))}(A)?!function(A){return!("object"!=typeof A||Array.isArray(A)||null===A||!A?.hasOwnProperty("type")||!A?.hasOwnProperty("coordinates"))}(A)?(r=void 0,e=A=>KA(A),t=A=>KA(A)):(r="Geometry",e=A=>KA({type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:A}]}),t=A=>1==A.features.length?A.features[0].geometry:A.features.map((A=>A.geometry))):(r="Geometries",e=A=>KA({type:"FeatureCollection",features:A.map((A=>({type:"Feature",properties:{},geometry:A})))}),t=A=>A.features.map((A=>A.geometry))):(r="Feature",e=A=>KA({type:"FeatureCollection",features:[A]}),t=A=>1==A.features.length?A.features[0]:A.features):(r="Features",e=A=>KA({type:"FeatureCollection",features:A}),t=A=>A.features),{type:r,import:e,export:t}}function KA(A){return JSON.parse(JSON.stringify(A))}function JA(A,e){return null==A||null==e?NaN:A<e?-1:A>e?1:A>=e?0:NaN}function qA(A,e){return null==A||null==e?NaN:e<A?-1:e>A?1:e>=A?0:NaN}function $A(A){let e,t,r;function n(A,r,n=0,i=A.length){if(n<i){if(0!==e(r,r))return i;do{const e=n+i>>>1;t(A[e],r)<0?n=e+1:i=e}while(n<i)}return n}return 2!==A.length?(e=JA,t=(e,t)=>JA(A(e),t),r=(e,t)=>A(e)-t):(e=A===JA||A===qA?A:Ae,t=A,r=A),{left:n,center:function(A,e,t=0,i=A.length){const o=n(A,e,t,i-1);return o>t&&r(A[o-1],e)>-r(A[o],e)?o-1:o},right:function(A,r,n=0,i=A.length){if(n<i){if(0!==e(r,r))return i;do{const e=n+i>>>1;t(A[e],r)<=0?n=e+1:i=e}while(n<i)}return n}}}function Ae(){return 0}function ee(A){return null===A?NaN:+A}WA.now||WA.mozNow||WA.msNow||WA.oNow||WA.webkitNow;const te=$A(JA),re=te.right,ne=te.left,ie=$A(ee).center;const oe=fe(se),ae=fe((function(A){const e=se(A);return(A,t,r,n,i)=>{e(A,t,(r<<=2)+0,(n<<=2)+0,i<<=2),e(A,t,r+1,n+1,i),e(A,t,r+2,n+2,i),e(A,t,r+3,n+3,i)}}));function fe(A){return function(e,t,r=t){if(!((t=+t)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:n,width:i,height:o}=e;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((o=Math.floor(void 0!==o?o:n.length/i))>=0))throw new RangeError("invalid height");if(!i||!o||!t&&!r)return e;const a=t&&A(t),f=r&&A(r),l=n.slice();return a&&f?(le(a,l,n,i,o),le(a,n,l,i,o),le(a,l,n,i,o),ue(f,n,l,i,o),ue(f,l,n,i,o),ue(f,n,l,i,o)):a?(le(a,n,l,i,o),le(a,l,n,i,o),le(a,n,l,i,o)):f&&(ue(f,n,l,i,o),ue(f,l,n,i,o),ue(f,n,l,i,o)),e}}function le(A,e,t,r,n){for(let i=0,o=r*n;i<o;)A(e,t,i,i+=r,1)}function ue(A,e,t,r,n){for(let i=0,o=r*n;i<r;++i)A(e,t,i,i+o,r)}function se(A){const e=Math.floor(A);if(e===A)return function(A){const e=2*A+1;return(t,r,n,i,o)=>{if(!((i-=o)>=n))return;let a=A*r[n];const f=o*A;for(let A=n,e=n+f;A<e;A+=o)a+=r[Math.min(i,A)];for(let A=n,l=i;A<=l;A+=o)a+=r[Math.min(i,A+f)],t[A]=a/e,a-=r[Math.max(n,A-f)]}}(A);const t=A-e,r=2*A+1;return(A,n,i,o,a)=>{if(!((o-=a)>=i))return;let f=e*n[i];const l=a*e,u=l+a;for(let A=i,e=i+l;A<e;A+=a)f+=n[Math.min(o,A)];for(let e=i,s=o;e<=s;e+=a)f+=n[Math.min(o,e+l)],A[e]=(f+t*(n[Math.max(i,e-u)]+n[Math.min(o,e+u)]))/r,f-=n[Math.max(i,e-l)]}}function ce(A,e){let t=0;if(void 0===e)for(let e of A)null!=e&&(e=+e)>=e&&++t;else{let r=-1;for(let n of A)null!=(n=e(n,++r,A))&&(n=+n)>=n&&++t}return t}function he(A){return 0|A.length}function ge(A){return!(A>0)}function de(A){return"object"!=typeof A||"length"in A?A:Array.from(A)}function pe(A,e){let t,r=0,n=0,i=0;if(void 0===e)for(let e of A)null!=e&&(e=+e)>=e&&(t=e-n,n+=t/++r,i+=t*(e-n));else{let o=-1;for(let a of A)null!=(a=e(a,++o,A))&&(a=+a)>=a&&(t=a-n,n+=t/++r,i+=t*(a-n))}if(r>1)return i/(r-1)}function we(A,e){const t=pe(A,e);return t?Math.sqrt(t):t}function be(A,e){let t,r;if(void 0===e)for(const e of A)null!=e&&(void 0===t?e>=e&&(t=r=e):(t>e&&(t=e),r<e&&(r=e)));else{let n=-1;for(let i of A)null!=(i=e(i,++n,A))&&(void 0===t?i>=i&&(t=r=i):(t>i&&(t=i),r<i&&(r=i)))}return[t,r]}class ve{constructor(){this._partials=new Float64Array(32),this._n=0}add(A){const e=this._partials;let t=0;for(let r=0;r<this._n&&r<32;r++){const n=e[r],i=A+n,o=Math.abs(A)<Math.abs(n)?A-(i-n):n-(i-A);o&&(e[t++]=o),A=i}return e[t]=A,this._n=t+1,this}valueOf(){const A=this._partials;let e,t,r,n=this._n,i=0;if(n>0){for(i=A[--n];n>0&&(e=i,t=A[--n],i=e+t,r=t-(i-e),!r););n>0&&(r<0&&A[n-1]<0||r>0&&A[n-1]>0)&&(t=2*r,e=i+t,t==e-i&&(i=e))}return i}}class ye extends Map{constructor(A,e=_e){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=A)for(const[e,t]of A)this.set(e,t)}get(A){return super.get(Be(this,A))}has(A){return super.has(Be(this,A))}set(A,e){return super.set(Ee(this,A),e)}delete(A){return super.delete(ke(this,A))}}class me extends Set{constructor(A,e=_e){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=A)for(const e of A)this.add(e)}has(A){return super.has(Be(this,A))}add(A){return super.add(Ee(this,A))}delete(A){return super.delete(ke(this,A))}}function Be({_intern:A,_key:e},t){const r=e(t);return A.has(r)?A.get(r):t}function Ee({_intern:A,_key:e},t){const r=e(t);return A.has(r)?A.get(r):(A.set(r,t),t)}function ke({_intern:A,_key:e},t){const r=e(t);return A.has(r)&&(t=A.get(r),A.delete(r)),t}function _e(A){return null!==A&&"object"==typeof A?A.valueOf():A}function Me(A){return A}function Qe(A,...e){return Se(A,Me,Me,e)}function xe(A,...e){return Se(A,Array.from,Me,e)}function De(A,e){for(let t=1,r=e.length;t<r;++t)A=A.flatMap((A=>A.pop().map((([e,t])=>[...A,e,t]))));return A}function Ce(A,e,...t){return Se(A,Me,e,t)}function Ie(A,e,...t){return Se(A,Array.from,e,t)}function Fe(A){if(1!==A.length)throw new Error("duplicate key");return A[0]}function Se(A,e,t,r){return function A(n,i){if(i>=r.length)return t(n);const o=new ye,a=r[i++];let f=-1;for(const A of n){const e=a(A,++f,n),t=o.get(e);t?t.push(A):o.set(e,[A])}for(const[e,t]of o)o.set(e,A(t,i));return e(o)}(A,0)}function Pe(A,e){return Array.from(e,(e=>A[e]))}function Ge(A,...e){if("function"!=typeof A[Symbol.iterator])throw new TypeError("values is not iterable");A=Array.from(A);let[t]=e;if(t&&2!==t.length||e.length>1){const r=Uint32Array.from(A,((A,e)=>e));return e.length>1?(e=e.map((e=>A.map(e))),r.sort(((A,t)=>{for(const r of e){const e=Ue(r[A],r[t]);if(e)return e}}))):(t=A.map(t),r.sort(((A,e)=>Ue(t[A],t[e])))),Pe(A,r)}return A.sort(Te(t))}function Te(A=JA){if(A===JA)return Ue;if("function"!=typeof A)throw new TypeError("compare is not a function");return(e,t)=>{const r=A(e,t);return r||0===r?r:(0===A(t,t))-(0===A(e,e))}}function Ue(A,e){return(null==A||!(A>=A))-(null==e||!(e>=e))||(A<e?-1:A>e?1:0)}var Re=Array.prototype.slice;function Le(A){return()=>A}const He=Math.sqrt(50),Ye=Math.sqrt(10),ze=Math.sqrt(2);function Oe(A,e,t){const r=(e-A)/Math.max(0,t),n=Math.floor(Math.log10(r)),i=r/Math.pow(10,n),o=i>=He?10:i>=Ye?5:i>=ze?2:1;let a,f,l;return n<0?(l=Math.pow(10,-n)/o,a=Math.round(A*l),f=Math.round(e*l),a/l<A&&++a,f/l>e&&--f,l=-l):(l=Math.pow(10,n)*o,a=Math.round(A/l),f=Math.round(e/l),a*l<A&&++a,f*l>e&&--f),f<a&&.5<=t&&t<2?Oe(A,e,2*t):[a,f,l]}function Ne(A,e,t){if(!((t=+t)>0))return[];if((A=+A)===(e=+e))return[A];const r=e<A,[n,i,o]=r?Oe(e,A,t):Oe(A,e,t);if(!(i>=n))return[];const a=i-n+1,f=new Array(a);if(r)if(o<0)for(let A=0;A<a;++A)f[A]=(i-A)/-o;else for(let A=0;A<a;++A)f[A]=(i-A)*o;else if(o<0)for(let A=0;A<a;++A)f[A]=(n+A)/-o;else for(let A=0;A<a;++A)f[A]=(n+A)*o;return f}function Ve(A,e,t){return Oe(A=+A,e=+e,t=+t)[2]}function je(A,e,t){let r;for(;;){const n=Ve(A,e,t);if(n===r||0===n||!isFinite(n))return[A,e];n>0?(A=Math.floor(A/n)*n,e=Math.ceil(e/n)*n):n<0&&(A=Math.ceil(A*n)/n,e=Math.floor(e*n)/n),r=n}}function Ze(A){return Math.max(1,Math.ceil(Math.log(ce(A))/Math.LN2)+1)}function We(){var A=Me,e=be,t=Ze;function r(r){Array.isArray(r)||(r=Array.from(r));var n,i,o,a=r.length,f=new Array(a);for(n=0;n<a;++n)f[n]=A(r[n],n,r);var l=e(f),u=l[0],s=l[1],c=t(f,u,s);if(!Array.isArray(c)){const A=s,t=+c;if(e===be&&([u,s]=je(u,s,t)),(c=Ne(u,s,t))[0]<=u&&(o=Ve(u,s,t)),c[c.length-1]>=s)if(A>=s&&e===be){const A=Ve(u,s,t);isFinite(A)&&(A>0?s=(Math.floor(s/A)+1)*A:A<0&&(s=(Math.ceil(s*-A)+1)/-A))}else c.pop()}for(var h=c.length,g=0,d=h;c[g]<=u;)++g;for(;c[d-1]>s;)--d;(g||d<h)&&(c=c.slice(g,d),h=d-g);var p,w=new Array(h+1);for(n=0;n<=h;++n)(p=w[n]=[]).x0=n>0?c[n-1]:u,p.x1=n<h?c[n]:s;if(isFinite(o)){if(o>0)for(n=0;n<a;++n)null!=(i=f[n])&&u<=i&&i<=s&&w[Math.min(h,Math.floor((i-u)/o))].push(r[n]);else if(o<0)for(n=0;n<a;++n)if(null!=(i=f[n])&&u<=i&&i<=s){const A=Math.floor((u-i)*o);w[Math.min(h,A+(c[A]<=i))].push(r[n])}}else for(n=0;n<a;++n)null!=(i=f[n])&&u<=i&&i<=s&&w[re(c,i,0,h)].push(r[n]);return w}return r.value=function(e){return arguments.length?(A="function"==typeof e?e:Le(e),r):A},r.domain=function(A){return arguments.length?(e="function"==typeof A?A:Le([A[0],A[1]]),r):e},r.thresholds=function(A){return arguments.length?(t="function"==typeof A?A:Le(Array.isArray(A)?Re.call(A):A),r):t},r}function Xe(A,e){let t;if(void 0===e)for(const e of A)null!=e&&(t<e||void 0===t&&e>=e)&&(t=e);else{let r=-1;for(let n of A)null!=(n=e(n,++r,A))&&(t<n||void 0===t&&n>=n)&&(t=n)}return t}function Ke(A,e){let t,r=-1,n=-1;if(void 0===e)for(const e of A)++n,null!=e&&(t<e||void 0===t&&e>=e)&&(t=e,r=n);else for(let i of A)null!=(i=e(i,++n,A))&&(t<i||void 0===t&&i>=i)&&(t=i,r=n);return r}function Je(A,e){let t;if(void 0===e)for(const e of A)null!=e&&(t>e||void 0===t&&e>=e)&&(t=e);else{let r=-1;for(let n of A)null!=(n=e(n,++r,A))&&(t>n||void 0===t&&n>=n)&&(t=n)}return t}function qe(A,e){let t,r=-1,n=-1;if(void 0===e)for(const e of A)++n,null!=e&&(t>e||void 0===t&&e>=e)&&(t=e,r=n);else for(let i of A)null!=(i=e(i,++n,A))&&(t>i||void 0===t&&i>=i)&&(t=i,r=n);return r}function $e(A,e,t=0,r=1/0,n){if(e=Math.floor(e),t=Math.floor(Math.max(0,t)),r=Math.floor(Math.min(A.length-1,r)),!(t<=e&&e<=r))return A;for(n=void 0===n?Ue:Te(n);r>t;){if(r-t>600){const i=r-t+1,o=e-t+1,a=Math.log(i),f=.5*Math.exp(2*a/3),l=.5*Math.sqrt(a*f*(i-f)/i)*(o-i/2<0?-1:1);$e(A,e,Math.max(t,Math.floor(e-o*f/i+l)),Math.min(r,Math.floor(e+(i-o)*f/i+l)),n)}const i=A[e];let o=t,a=r;for(At(A,t,e),n(A[r],i)>0&&At(A,t,r);o<a;){for(At(A,o,a),++o,--a;n(A[o],i)<0;)++o;for(;n(A[a],i)>0;)--a}0===n(A[t],i)?At(A,t,a):(++a,At(A,a,r)),a<=e&&(t=a+1),e<=a&&(r=a-1)}return A}function At(A,e,t){const r=A[e];A[e]=A[t],A[t]=r}function et(A,e=JA){let t,r=!1;if(1===e.length){let n;for(const i of A){const A=e(i);(r?JA(A,n)>0:0===JA(A,A))&&(t=i,n=A,r=!0)}}else for(const n of A)(r?e(n,t)>0:0===e(n,n))&&(t=n,r=!0);return t}function tt(A,e,t){if(A=Float64Array.from(function*(A,e){if(void 0===e)for(let e of A)null!=e&&(e=+e)>=e&&(yield e);else{let t=-1;for(let r of A)null!=(r=e(r,++t,A))&&(r=+r)>=r&&(yield r)}}(A,t)),(r=A.length)&&!isNaN(e=+e)){if(e<=0||r<2)return Je(A);if(e>=1)return Xe(A);var r,n=(r-1)*e,i=Math.floor(n),o=Xe($e(A,i).subarray(0,i+1));return o+(Je(A.subarray(i+1))-o)*(n-i)}}function rt(A,e,t=ee){if(!isNaN(e=+e)){if(r=Float64Array.from(A,((e,r)=>ee(t(A[r],r,A)))),e<=0)return qe(r);if(e>=1)return Ke(r);var r,n=Uint32Array.from(A,((A,e)=>e)),i=r.length-1,o=Math.floor(i*e);return $e(n,o,0,i,((A,e)=>Ue(r[A],r[e]))),(o=et(n.subarray(0,o+1),(A=>r[A])))>=0?o:-1}}function nt(A,e){let t=0,r=0;if(void 0===e)for(let e of A)null!=e&&(e=+e)>=e&&(++t,r+=e);else{let n=-1;for(let i of A)null!=(i=e(i,++n,A))&&(i=+i)>=i&&(++t,r+=i)}if(t)return r/t}function it(A,e){return tt(A,.5,e)}function ot(A){return Array.from(function*(A){for(const e of A)yield*e}(A))}function at(A,e){const t=new ye;if(void 0===e)for(let e of A)null!=e&&e>=e&&t.set(e,(t.get(e)||0)+1);else{let r=-1;for(let n of A)null!=(n=e(n,++r,A))&&n>=n&&t.set(n,(t.get(n)||0)+1)}let r,n=0;for(const[A,e]of t)e>n&&(n=e,r=A);return r}function ft(A,e){return[A,e]}function lt(A,e=JA){if(1===e.length)return qe(A,e);let t,r=-1,n=-1;for(const i of A)++n,(r<0?0===e(i,i):e(i,t)<0)&&(t=i,r=n);return r}var ut=st(Math.random);function st(A){return function(e,t=0,r=e.length){let n=r-(t=+t);for(;n;){const r=A()*n--|0,i=e[n+t];e[n+t]=e[r+t],e[r+t]=i}return e}}function ct(A,e){let t=0;if(void 0===e)for(let e of A)(e=+e)&&(t+=e);else{let r=-1;for(let n of A)(n=+e(n,++r,A))&&(t+=n)}return t}function ht(A){if(!(n=A.length))return[];for(var e=-1,t=Je(A,gt),r=new Array(t);++e<t;)for(var n,i=-1,o=r[e]=new Array(n);++i<n;)o[i]=A[i][e];return r}function gt(A){return A.length}function dt(A){return A instanceof me?A:new me(A)}function pt(A,e){const t=A[Symbol.iterator](),r=new Set;for(const A of e){const e=wt(A);if(r.has(e))continue;let n,i;for(;({value:n,done:i}=t.next());){if(i)return!1;const A=wt(n);if(r.add(A),Object.is(e,A))break}}return!0}function wt(A){return null!==A&&"object"==typeof A?A.valueOf():A}var bt=Object.freeze({__proto__:null,Adder:ve,InternMap:ye,InternSet:me,ascending:JA,bin:We,bisect:re,bisectCenter:ie,bisectLeft:ne,bisectRight:re,bisector:$A,blur:function(A,e){if(!((e=+e)>=0))throw new RangeError("invalid r");let t=A.length;if(!((t=Math.floor(t))>=0))throw new RangeError("invalid length");if(!t||!e)return A;const r=se(e),n=A.slice();return r(A,n,0,t,1),r(n,A,0,t,1),r(A,n,0,t,1),A},blur2:oe,blurImage:ae,count:ce,cross:function(...A){const e="function"==typeof A[A.length-1]&&function(A){return e=>A(...e)}(A.pop()),t=(A=A.map(de)).map(he),r=A.length-1,n=new Array(r+1).fill(0),i=[];if(r<0||t.some(ge))return i;for(;;){i.push(n.map(((e,t)=>A[t][e])));let o=r;for(;++n[o]===t[o];){if(0===o)return e?i.map(e):i;n[o--]=0}}},cumsum:function(A,e){var t=0,r=0;return Float64Array.from(A,void 0===e?A=>t+=+A||0:n=>t+=+e(n,r++,A)||0)},descending:qA,deviation:we,difference:function(A,...e){A=new me(A);for(const t of e)for(const e of t)A.delete(e);return A},disjoint:function(A,e){const t=e[Symbol.iterator](),r=new me;for(const e of A){if(r.has(e))return!1;let A,n;for(;({value:A,done:n}=t.next())&&!n;){if(Object.is(e,A))return!1;r.add(A)}}return!0},every:function(A,e){if("function"!=typeof e)throw new TypeError("test is not a function");let t=-1;for(const r of A)if(!e(r,++t,A))return!1;return!0},extent:be,fcumsum:function(A,e){const t=new ve;let r=-1;return Float64Array.from(A,void 0===e?A=>t.add(+A||0):n=>t.add(+e(n,++r,A)||0))},filter:function(A,e){if("function"!=typeof e)throw new TypeError("test is not a function");const t=[];let r=-1;for(const n of A)e(n,++r,A)&&t.push(n);return t},flatGroup:function(A,...e){return De(xe(A,...e),e)},flatRollup:function(A,e,...t){return De(Ie(A,e,...t),t)},fsum:function(A,e){const t=new ve;if(void 0===e)for(let e of A)(e=+e)&&t.add(e);else{let r=-1;for(let n of A)(n=+e(n,++r,A))&&t.add(n)}return+t},greatest:et,greatestIndex:function(A,e=JA){if(1===e.length)return Ke(A,e);let t,r=-1,n=-1;for(const i of A)++n,(r<0?0===e(i,i):e(i,t)>0)&&(t=i,r=n);return r},group:Qe,groupSort:function(A,e,t){return(2!==e.length?Ge(Ce(A,e,t),(([A,e],[t,r])=>JA(e,r)||JA(A,t))):Ge(Qe(A,t),(([A,t],[r,n])=>e(t,n)||JA(A,r)))).map((([A])=>A))},groups:xe,histogram:We,index:function(A,...e){return Se(A,Me,Fe,e)},indexes:function(A,...e){return Se(A,Array.from,Fe,e)},intersection:function(A,...e){A=new me(A),e=e.map(dt);A:for(const t of A)for(const r of e)if(!r.has(t)){A.delete(t);continue A}return A},least:function(A,e=JA){let t,r=!1;if(1===e.length){let n;for(const i of A){const A=e(i);(r?JA(A,n)<0:0===JA(A,A))&&(t=i,n=A,r=!0)}}else for(const n of A)(r?e(n,t)<0:0===e(n,n))&&(t=n,r=!0);return t},leastIndex:lt,map:function(A,e){if("function"!=typeof A[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof e)throw new TypeError("mapper is not a function");return Array.from(A,((t,r)=>e(t,r,A)))},max:Xe,maxIndex:Ke,mean:nt,median:it,medianIndex:function(A,e){return rt(A,.5,e)},merge:ot,min:Je,minIndex:qe,mode:at,nice:je,pairs:function(A,e=ft){const t=[];let r,n=!1;for(const i of A)n&&t.push(e(r,i)),r=i,n=!0;return t},permute:Pe,quantile:tt,quantileIndex:rt,quantileSorted:function(A,e,t=ee){if((r=A.length)&&!isNaN(e=+e)){if(e<=0||r<2)return+t(A[0],0,A);if(e>=1)return+t(A[r-1],r-1,A);var r,n=(r-1)*e,i=Math.floor(n),o=+t(A[i],i,A);return o+(+t(A[i+1],i+1,A)-o)*(n-i)}},quickselect:$e,range:function(A,e,t){A=+A,e=+e,t=(n=arguments.length)<2?(e=A,A=0,1):n<3?1:+t;for(var r=-1,n=0|Math.max(0,Math.ceil((e-A)/t)),i=new Array(n);++r<n;)i[r]=A+r*t;return i},rank:function(A,e=JA){if("function"!=typeof A[Symbol.iterator])throw new TypeError("values is not iterable");let t=Array.from(A);const r=new Float64Array(t.length);2!==e.length&&(t=t.map(e),e=JA);const n=(A,r)=>e(t[A],t[r]);let i,o;return(A=Uint32Array.from(t,((A,e)=>e))).sort(e===JA?(A,e)=>Ue(t[A],t[e]):Te(n)),A.forEach(((A,e)=>{const t=n(A,void 0===i?A:i);t>=0?((void 0===i||t>0)&&(i=A,o=e),r[A]=o):r[A]=NaN})),r},reduce:function(A,e,t){if("function"!=typeof e)throw new TypeError("reducer is not a function");const r=A[Symbol.iterator]();let n,i,o=-1;if(arguments.length<3){if(({done:n,value:t}=r.next()),n)return;++o}for(;({done:n,value:i}=r.next()),!n;)t=e(t,i,++o,A);return t},reverse:function(A){if("function"!=typeof A[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(A).reverse()},rollup:Ce,rollups:Ie,scan:function(A,e){const t=lt(A,e);return t<0?void 0:t},shuffle:ut,shuffler:st,some:function(A,e){if("function"!=typeof e)throw new TypeError("test is not a function");let t=-1;for(const r of A)if(e(r,++t,A))return!0;return!1},sort:Ge,subset:function(A,e){return pt(e,A)},sum:ct,superset:pt,thresholdFreedmanDiaconis:function(A,e,t){const r=ce(A),n=tt(A,.75)-tt(A,.25);return r&&n?Math.ceil((t-e)/(2*n*Math.pow(r,-1/3))):1},thresholdScott:function(A,e,t){const r=ce(A),n=we(A);return r&&n?Math.ceil((t-e)*Math.cbrt(r)/(3.49*n)):1},thresholdSturges:Ze,tickIncrement:Ve,tickStep:function(A,e,t){t=+t;const r=(e=+e)<(A=+A),n=r?Ve(e,A,t):Ve(A,e,t);return(r?-1:1)*(n<0?1/-n:n)},ticks:Ne,transpose:ht,union:function(...A){const e=new me;for(const t of A)for(const A of t)e.add(A);return e},variance:pe,zip:function(){return ht(arguments)}}),vt=1e-6,yt=1e-12,mt=Math.PI,Bt=mt/2,Et=mt/4,kt=2*mt,_t=180/mt,Mt=mt/180,Qt=Math.abs,xt=Math.atan,Dt=Math.atan2,Ct=Math.cos,It=Math.hypot,Ft=Math.sin,St=Math.sign||function(A){return A>0?1:A<0?-1:0},Pt=Math.sqrt;function Gt(A){return A>1?0:A<-1?mt:Math.acos(A)}function Tt(A){return A>1?Bt:A<-1?-Bt:Math.asin(A)}function Ut(){}function Rt(A,e){A&&Ht.hasOwnProperty(A.type)&&Ht[A.type](A,e)}var Lt={Feature:function(A,e){Rt(A.geometry,e)},FeatureCollection:function(A,e){for(var t=A.features,r=-1,n=t.length;++r<n;)Rt(t[r].geometry,e)}},Ht={Sphere:function(A,e){e.sphere()},Point:function(A,e){A=A.coordinates,e.point(A[0],A[1],A[2])},MultiPoint:function(A,e){for(var t=A.coordinates,r=-1,n=t.length;++r<n;)A=t[r],e.point(A[0],A[1],A[2])},LineString:function(A,e){Yt(A.coordinates,e,0)},MultiLineString:function(A,e){for(var t=A.coordinates,r=-1,n=t.length;++r<n;)Yt(t[r],e,0)},Polygon:function(A,e){zt(A.coordinates,e)},MultiPolygon:function(A,e){for(var t=A.coordinates,r=-1,n=t.length;++r<n;)zt(t[r],e)},GeometryCollection:function(A,e){for(var t=A.geometries,r=-1,n=t.length;++r<n;)Rt(t[r],e)}};function Yt(A,e,t){var r,n=-1,i=A.length-t;for(e.lineStart();++n<i;)r=A[n],e.point(r[0],r[1],r[2]);e.lineEnd()}function zt(A,e){var t=-1,r=A.length;for(e.polygonStart();++t<r;)Yt(A[t],e,1);e.polygonEnd()}function Ot(A,e){A&&Lt.hasOwnProperty(A.type)?Lt[A.type](A,e):Rt(A,e)}var Nt,Vt,jt,Zt,Wt,Xt,Kt,Jt,qt,$t,Ar,er,tr,rr,nr,ir,or=new ve,ar=new ve,fr={point:Ut,lineStart:Ut,lineEnd:Ut,polygonStart:function(){or=new ve,fr.lineStart=lr,fr.lineEnd=ur},polygonEnd:function(){var A=+or;ar.add(A<0?kt+A:A),this.lineStart=this.lineEnd=this.point=Ut},sphere:function(){ar.add(kt)}};function lr(){fr.point=sr}function ur(){cr(Nt,Vt)}function sr(A,e){fr.point=cr,Nt=A,Vt=e,jt=A*=Mt,Zt=Ct(e=(e*=Mt)/2+Et),Wt=Ft(e)}function cr(A,e){var t=(A*=Mt)-jt,r=t>=0?1:-1,n=r*t,i=Ct(e=(e*=Mt)/2+Et),o=Ft(e),a=Wt*o,f=Zt*i+a*Ct(n),l=a*r*Ft(n);or.add(Dt(l,f)),jt=A,Zt=i,Wt=o}function hr(A){return ar=new ve,Ot(A,fr),2*ar}function gr(A){return[Dt(A[1],A[0]),Tt(A[2])]}function dr(A){var e=A[0],t=A[1],r=Ct(t);return[r*Ct(e),r*Ft(e),Ft(t)]}function pr(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]}function wr(A,e){return[A[1]*e[2]-A[2]*e[1],A[2]*e[0]-A[0]*e[2],A[0]*e[1]-A[1]*e[0]]}function br(A,e){A[0]+=e[0],A[1]+=e[1],A[2]+=e[2]}function vr(A,e){return[A[0]*e,A[1]*e,A[2]*e]}function yr(A){var e=Pt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);A[0]/=e,A[1]/=e,A[2]/=e}var mr,Br,Er,kr,_r,Mr,Qr,xr,Dr,Cr,Ir,Fr,Sr,Pr,Gr,Tr,Ur={point:Rr,lineStart:Hr,lineEnd:Yr,polygonStart:function(){Ur.point=zr,Ur.lineStart=Or,Ur.lineEnd=Nr,rr=new ve,fr.polygonStart()},polygonEnd:function(){fr.polygonEnd(),Ur.point=Rr,Ur.lineStart=Hr,Ur.lineEnd=Yr,or<0?(Xt=-(Jt=180),Kt=-(qt=90)):rr>vt?qt=90:rr<-1e-6&&(Kt=-90),ir[0]=Xt,ir[1]=Jt},sphere:function(){Xt=-(Jt=180),Kt=-(qt=90)}};function Rr(A,e){nr.push(ir=[Xt=A,Jt=A]),e<Kt&&(Kt=e),e>qt&&(qt=e)}function Lr(A,e){var t=dr([A*Mt,e*Mt]);if(tr){var r=wr(tr,t),n=wr([r[1],-r[0],0],r);yr(n),n=gr(n);var i,o=A-$t,a=o>0?1:-1,f=n[0]*_t*a,l=Qt(o)>180;l^(a*$t<f&&f<a*A)?(i=n[1]*_t)>qt&&(qt=i):l^(a*$t<(f=(f+360)%360-180)&&f<a*A)?(i=-n[1]*_t)<Kt&&(Kt=i):(e<Kt&&(Kt=e),e>qt&&(qt=e)),l?A<$t?Vr(Xt,A)>Vr(Xt,Jt)&&(Jt=A):Vr(A,Jt)>Vr(Xt,Jt)&&(Xt=A):Jt>=Xt?(A<Xt&&(Xt=A),A>Jt&&(Jt=A)):A>$t?Vr(Xt,A)>Vr(Xt,Jt)&&(Jt=A):Vr(A,Jt)>Vr(Xt,Jt)&&(Xt=A)}else nr.push(ir=[Xt=A,Jt=A]);e<Kt&&(Kt=e),e>qt&&(qt=e),tr=t,$t=A}function Hr(){Ur.point=Lr}function Yr(){ir[0]=Xt,ir[1]=Jt,Ur.point=Rr,tr=null}function zr(A,e){if(tr){var t=A-$t;rr.add(Qt(t)>180?t+(t>0?360:-360):t)}else Ar=A,er=e;fr.point(A,e),Lr(A,e)}function Or(){fr.lineStart()}function Nr(){zr(Ar,er),fr.lineEnd(),Qt(rr)>vt&&(Xt=-(Jt=180)),ir[0]=Xt,ir[1]=Jt,tr=null}function Vr(A,e){return(e-=A)<0?e+360:e}function jr(A,e){return A[0]-e[0]}function Zr(A,e){return A[0]<=A[1]?A[0]<=e&&e<=A[1]:e<A[0]||A[1]<e}var Wr={sphere:Ut,point:Xr,lineStart:Jr,lineEnd:An,polygonStart:function(){Wr.lineStart=en,Wr.lineEnd=tn},polygonEnd:function(){Wr.lineStart=Jr,Wr.lineEnd=An}};function Xr(A,e){A*=Mt;var t=Ct(e*=Mt);Kr(t*Ct(A),t*Ft(A),Ft(e))}function Kr(A,e,t){++mr,Er+=(A-Er)/mr,kr+=(e-kr)/mr,_r+=(t-_r)/mr}function Jr(){Wr.point=qr}function qr(A,e){A*=Mt;var t=Ct(e*=Mt);Pr=t*Ct(A),Gr=t*Ft(A),Tr=Ft(e),Wr.point=$r,Kr(Pr,Gr,Tr)}function $r(A,e){A*=Mt;var t=Ct(e*=Mt),r=t*Ct(A),n=t*Ft(A),i=Ft(e),o=Dt(Pt((o=Gr*i-Tr*n)*o+(o=Tr*r-Pr*i)*o+(o=Pr*n-Gr*r)*o),Pr*r+Gr*n+Tr*i);Br+=o,Mr+=o*(Pr+(Pr=r)),Qr+=o*(Gr+(Gr=n)),xr+=o*(Tr+(Tr=i)),Kr(Pr,Gr,Tr)}function An(){Wr.point=Xr}function en(){Wr.point=rn}function tn(){nn(Fr,Sr),Wr.point=Xr}function rn(A,e){Fr=A,Sr=e,A*=Mt,e*=Mt,Wr.point=nn;var t=Ct(e);Pr=t*Ct(A),Gr=t*Ft(A),Tr=Ft(e),Kr(Pr,Gr,Tr)}function nn(A,e){A*=Mt;var t=Ct(e*=Mt),r=t*Ct(A),n=t*Ft(A),i=Ft(e),o=Gr*i-Tr*n,a=Tr*r-Pr*i,f=Pr*n-Gr*r,l=It(o,a,f),u=Tt(l),s=l&&-u/l;Dr.add(s*o),Cr.add(s*a),Ir.add(s*f),Br+=u,Mr+=u*(Pr+(Pr=r)),Qr+=u*(Gr+(Gr=n)),xr+=u*(Tr+(Tr=i)),Kr(Pr,Gr,Tr)}function on(A){mr=Br=Er=kr=_r=Mr=Qr=xr=0,Dr=new ve,Cr=new ve,Ir=new ve,Ot(A,Wr);var e=+Dr,t=+Cr,r=+Ir,n=It(e,t,r);return n<yt&&(e=Mr,t=Qr,r=xr,Br<vt&&(e=Er,t=kr,r=_r),(n=It(e,t,r))<yt)?[NaN,NaN]:[Dt(t,e)*_t,Tt(r/n)*_t]}function an(A,e){function t(t,r){return t=A(t,r),e(t[0],t[1])}return A.invert&&e.invert&&(t.invert=function(t,r){return(t=e.invert(t,r))&&A.invert(t[0],t[1])}),t}function fn(A,e){return Qt(A)>mt&&(A-=Math.round(A/kt)*kt),[A,e]}function ln(A){return function(e,t){return Qt(e+=A)>mt&&(e-=Math.round(e/kt)*kt),[e,t]}}function un(A){var e=ln(A);return e.invert=ln(-A),e}function sn(A,e){var t=Ct(A),r=Ft(A),n=Ct(e),i=Ft(e);function o(A,e){var o=Ct(e),a=Ct(A)*o,f=Ft(A)*o,l=Ft(e),u=l*t+a*r;return[Dt(f*n-u*i,a*t-l*r),Tt(u*n+f*i)]}return o.invert=function(A,e){var o=Ct(e),a=Ct(A)*o,f=Ft(A)*o,l=Ft(e),u=l*n-f*i;return[Dt(f*n+l*i,a*t+u*r),Tt(u*t-a*r)]},o}function cn(A,e){(e=dr(e))[0]-=A,yr(e);var t=Gt(-e[1]);return((-e[2]<0?-t:t)+kt-vt)%kt}function hn(){var A,e=[];return{point:function(e,t,r){A.push([e,t,r])},lineStart:function(){e.push(A=[])},lineEnd:Ut,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var t=e;return e=[],A=null,t}}}function gn(A,e){return Qt(A[0]-e[0])<vt&&Qt(A[1]-e[1])<vt}function dn(A,e,t,r){this.x=A,this.z=e,this.o=t,this.e=r,this.v=!1,this.n=this.p=null}function pn(A,e,t,r,n){var i,o,a=[],f=[];if(A.forEach((function(A){if(!((e=A.length-1)<=0)){var e,t,r=A[0],o=A[e];if(gn(r,o)){if(!r[2]&&!o[2]){for(n.lineStart(),i=0;i<e;++i)n.point((r=A[i])[0],r[1]);return void n.lineEnd()}o[0]+=2e-6}a.push(t=new dn(r,A,null,!0)),f.push(t.o=new dn(r,null,t,!1)),a.push(t=new dn(o,A,null,!1)),f.push(t.o=new dn(o,null,t,!0))}})),a.length){for(f.sort(e),wn(a),wn(f),i=0,o=f.length;i<o;++i)f[i].e=t=!t;for(var l,u,s=a[0];;){for(var c=s,h=!0;c.v;)if((c=c.n)===s)return;l=c.z,n.lineStart();do{if(c.v=c.o.v=!0,c.e){if(h)for(i=0,o=l.length;i<o;++i)n.point((u=l[i])[0],u[1]);else r(c.x,c.n.x,1,n);c=c.n}else{if(h)for(l=c.p.z,i=l.length-1;i>=0;--i)n.point((u=l[i])[0],u[1]);else r(c.x,c.p.x,-1,n);c=c.p}l=(c=c.o).z,h=!h}while(!c.v);n.lineEnd()}}}function wn(A){if(e=A.length){for(var e,t,r=0,n=A[0];++r<e;)n.n=t=A[r],t.p=n,n=t;n.n=t=A[0],t.p=n}}function bn(A){return Qt(A[0])<=mt?A[0]:St(A[0])*((Qt(A[0])+mt)%kt-mt)}function vn(A,e){var t=bn(e),r=e[1],n=Ft(r),i=[Ft(t),-Ct(t),0],o=0,a=0,f=new ve;1===n?r=Bt+vt:-1===n&&(r=-Bt-vt);for(var l=0,u=A.length;l<u;++l)if(c=(s=A[l]).length)for(var s,c,h=s[c-1],g=bn(h),d=h[1]/2+Et,p=Ft(d),w=Ct(d),b=0;b<c;++b,g=y,p=B,w=E,h=v){var v=s[b],y=bn(v),m=v[1]/2+Et,B=Ft(m),E=Ct(m),k=y-g,_=k>=0?1:-1,M=_*k,Q=M>mt,x=p*B;if(f.add(Dt(x*_*Ft(M),w*E+x*Ct(M))),o+=Q?k+_*kt:k,Q^g>=t^y>=t){var D=wr(dr(h),dr(v));yr(D);var C=wr(i,D);yr(C);var I=(Q^k>=0?-1:1)*Tt(C[2]);(r>I||r===I&&(D[0]||D[1]))&&(a+=Q^k>=0?1:-1)}}return(o<-1e-6||o<vt&&f<-1e-12)^1&a}function yn(A,e,t,r){return function(n){var i,o,a,f=e(n),l=hn(),u=e(l),s=!1,c={point:h,lineStart:d,lineEnd:p,polygonStart:function(){c.point=w,c.lineStart=b,c.lineEnd=v,o=[],i=[]},polygonEnd:function(){c.point=h,c.lineStart=d,c.lineEnd=p,o=ot(o);var A=vn(i,r);o.length?(s||(n.polygonStart(),s=!0),pn(o,Bn,A,t,n)):A&&(s||(n.polygonStart(),s=!0),n.lineStart(),t(null,null,1,n),n.lineEnd()),s&&(n.polygonEnd(),s=!1),o=i=null},sphere:function(){n.polygonStart(),n.lineStart(),t(null,null,1,n),n.lineEnd(),n.polygonEnd()}};function h(e,t){A(e,t)&&n.point(e,t)}function g(A,e){f.point(A,e)}function d(){c.point=g,f.lineStart()}function p(){c.point=h,f.lineEnd()}function w(A,e){a.push([A,e]),u.point(A,e)}function b(){u.lineStart(),a=[]}function v(){w(a[0][0],a[0][1]),u.lineEnd();var A,e,t,r,f=u.clean(),c=l.result(),h=c.length;if(a.pop(),i.push(a),a=null,h)if(1&f){if((e=(t=c[0]).length-1)>0){for(s||(n.polygonStart(),s=!0),n.lineStart(),A=0;A<e;++A)n.point((r=t[A])[0],r[1]);n.lineEnd()}}else h>1&&2&f&&c.push(c.pop().concat(c.shift())),o.push(c.filter(mn))}return c}}function mn(A){return A.length>1}function Bn(A,e){return((A=A.x)[0]<0?A[1]-Bt-vt:Bt-A[1])-((e=e.x)[0]<0?e[1]-Bt-vt:Bt-e[1])}fn.invert=fn;var En=yn((function(){return!0}),(function(A){var e,t=NaN,r=NaN,n=NaN;return{lineStart:function(){A.lineStart(),e=1},point:function(i,o){var a=i>0?mt:-mt,f=Qt(i-t);Qt(f-mt)<vt?(A.point(t,r=(r+o)/2>0?Bt:-Bt),A.point(n,r),A.lineEnd(),A.lineStart(),A.point(a,r),A.point(i,r),e=0):n!==a&&f>=mt&&(Qt(t-n)<vt&&(t-=n*vt),Qt(i-a)<vt&&(i-=a*vt),r=function(A,e,t,r){var n,i,o=Ft(A-t);return Qt(o)>vt?xt((Ft(e)*(i=Ct(r))*Ft(t)-Ft(r)*(n=Ct(e))*Ft(A))/(n*i*o)):(e+r)/2}(t,r,i,o),A.point(n,r),A.lineEnd(),A.lineStart(),A.point(a,r),e=0),A.point(t=i,r=o),n=a},lineEnd:function(){A.lineEnd(),t=r=NaN},clean:function(){return 2-e}}}),(function(A,e,t,r){var n;if(null==A)n=t*Bt,r.point(-mt,n),r.point(0,n),r.point(mt,n),r.point(mt,0),r.point(mt,-n),r.point(0,-n),r.point(-mt,-n),r.point(-mt,0),r.point(-mt,n);else if(Qt(A[0]-e[0])>vt){var i=A[0]<e[0]?mt:-mt;n=t*i/2,r.point(-i,n),r.point(0,n),r.point(i,n)}else r.point(e[0],e[1])}),[-mt,-Bt]);function kn(A){var e=Ct(A),t=2*Mt,r=e>0,n=Qt(e)>vt;function i(A,t){return Ct(A)*Ct(t)>e}function o(A,t,r){var n=[1,0,0],i=wr(dr(A),dr(t)),o=pr(i,i),a=i[0],f=o-a*a;if(!f)return!r&&A;var l=e*o/f,u=-e*a/f,s=wr(n,i),c=vr(n,l);br(c,vr(i,u));var h=s,g=pr(c,h),d=pr(h,h),p=g*g-d*(pr(c,c)-1);if(!(p<0)){var w=Pt(p),b=vr(h,(-g-w)/d);if(br(b,c),b=gr(b),!r)return b;var v,y=A[0],m=t[0],B=A[1],E=t[1];m<y&&(v=y,y=m,m=v);var k=m-y,_=Qt(k-mt)<vt;if(!_&&E<B&&(v=B,B=E,E=v),_||k<vt?_?B+E>0^b[1]<(Qt(b[0]-y)<vt?B:E):B<=b[1]&&b[1]<=E:k>mt^(y<=b[0]&&b[0]<=m)){var M=vr(h,(-g+w)/d);return br(M,c),[b,gr(M)]}}}function a(e,t){var n=r?A:mt-A,i=0;return e<-n?i|=1:e>n&&(i|=2),t<-n?i|=4:t>n&&(i|=8),i}return yn(i,(function(A){var e,t,f,l,u;return{lineStart:function(){l=f=!1,u=1},point:function(s,c){var h,g=[s,c],d=i(s,c),p=r?d?0:a(s,c):d?a(s+(s<0?mt:-mt),c):0;if(!e&&(l=f=d)&&A.lineStart(),d!==f&&(!(h=o(e,g))||gn(e,h)||gn(g,h))&&(g[2]=1),d!==f)u=0,d?(A.lineStart(),h=o(g,e),A.point(h[0],h[1])):(h=o(e,g),A.point(h[0],h[1],2),A.lineEnd()),e=h;else if(n&&e&&r^d){var w;p&t||!(w=o(g,e,!0))||(u=0,r?(A.lineStart(),A.point(w[0][0],w[0][1]),A.point(w[1][0],w[1][1]),A.lineEnd()):(A.point(w[1][0],w[1][1]),A.lineEnd(),A.lineStart(),A.point(w[0][0],w[0][1],3)))}!d||e&&gn(e,g)||A.point(g[0],g[1]),e=g,f=d,t=p},lineEnd:function(){f&&A.lineEnd(),e=null},clean:function(){return u|(l&&f)<<1}}}),(function(e,r,n,i){!function(A,e,t,r,n,i){if(t){var o=Ct(e),a=Ft(e),f=r*t;null==n?(n=e+r*kt,i=e-f/2):(n=cn(o,n),i=cn(o,i),(r>0?n<i:n>i)&&(n+=r*kt));for(var l,u=n;r>0?u>i:u<i;u-=f)l=gr([o,-a*Ct(u),-a*Ft(u)]),A.point(l[0],l[1])}}(i,A,t,n,e,r)}),r?[0,-A]:[-mt,A-mt])}var _n,Mn,Qn,xn,Dn=1e9,Cn=-Dn;function In(A,e,t,r){function n(n,i){return A<=n&&n<=t&&e<=i&&i<=r}function i(n,i,a,l){var u=0,s=0;if(null==n||(u=o(n,a))!==(s=o(i,a))||f(n,i)<0^a>0)do{l.point(0===u||3===u?A:t,u>1?r:e)}while((u=(u+a+4)%4)!==s);else l.point(i[0],i[1])}function o(r,n){return Qt(r[0]-A)<vt?n>0?0:3:Qt(r[0]-t)<vt?n>0?2:1:Qt(r[1]-e)<vt?n>0?1:0:n>0?3:2}function a(A,e){return f(A.x,e.x)}function f(A,e){var t=o(A,1),r=o(e,1);return t!==r?t-r:0===t?e[1]-A[1]:1===t?A[0]-e[0]:2===t?A[1]-e[1]:e[0]-A[0]}return function(o){var f,l,u,s,c,h,g,d,p,w,b,v=o,y=hn(),m={point:B,lineStart:function(){m.point=E,l&&l.push(u=[]);w=!0,p=!1,g=d=NaN},lineEnd:function(){f&&(E(s,c),h&&p&&y.rejoin(),f.push(y.result()));m.point=B,p&&v.lineEnd()},polygonStart:function(){v=y,f=[],l=[],b=!0},polygonEnd:function(){var e=function(){for(var e=0,t=0,n=l.length;t<n;++t)for(var i,o,a=l[t],f=1,u=a.length,s=a[0],c=s[0],h=s[1];f<u;++f)i=c,o=h,c=(s=a[f])[0],h=s[1],o<=r?h>r&&(c-i)*(r-o)>(h-o)*(A-i)&&++e:h<=r&&(c-i)*(r-o)<(h-o)*(A-i)&&--e;return e}(),t=b&&e,n=(f=ot(f)).length;(t||n)&&(o.polygonStart(),t&&(o.lineStart(),i(null,null,1,o),o.lineEnd()),n&&pn(f,a,e,i,o),o.polygonEnd());v=o,f=l=u=null}};function B(A,e){n(A,e)&&v.point(A,e)}function E(i,o){var a=n(i,o);if(l&&u.push([i,o]),w)s=i,c=o,h=a,w=!1,a&&(v.lineStart(),v.point(i,o));else if(a&&p)v.point(i,o);else{var f=[g=Math.max(Cn,Math.min(Dn,g)),d=Math.max(Cn,Math.min(Dn,d))],y=[i=Math.max(Cn,Math.min(Dn,i)),o=Math.max(Cn,Math.min(Dn,o))];!function(A,e,t,r,n,i){var o,a=A[0],f=A[1],l=0,u=1,s=e[0]-a,c=e[1]-f;if(o=t-a,s||!(o>0)){if(o/=s,s<0){if(o<l)return;o<u&&(u=o)}else if(s>0){if(o>u)return;o>l&&(l=o)}if(o=n-a,s||!(o<0)){if(o/=s,s<0){if(o>u)return;o>l&&(l=o)}else if(s>0){if(o<l)return;o<u&&(u=o)}if(o=r-f,c||!(o>0)){if(o/=c,c<0){if(o<l)return;o<u&&(u=o)}else if(c>0){if(o>u)return;o>l&&(l=o)}if(o=i-f,c||!(o<0)){if(o/=c,c<0){if(o>u)return;o>l&&(l=o)}else if(c>0){if(o<l)return;o<u&&(u=o)}return l>0&&(A[0]=a+l*s,A[1]=f+l*c),u<1&&(e[0]=a+u*s,e[1]=f+u*c),!0}}}}}(f,y,A,e,t,r)?a&&(v.lineStart(),v.point(i,o),b=!1):(p||(v.lineStart(),v.point(f[0],f[1])),v.point(y[0],y[1]),a||v.lineEnd(),b=!1)}g=i,d=o,p=a}return m}}var Fn={sphere:Ut,point:Ut,lineStart:function(){Fn.point=Pn,Fn.lineEnd=Sn},lineEnd:Ut,polygonStart:Ut,polygonEnd:Ut};function Sn(){Fn.point=Fn.lineEnd=Ut}function Pn(A,e){Mn=A*=Mt,Qn=Ft(e*=Mt),xn=Ct(e),Fn.point=Gn}function Gn(A,e){A*=Mt;var t=Ft(e*=Mt),r=Ct(e),n=Qt(A-Mn),i=Ct(n),o=r*Ft(n),a=xn*t-Qn*r*i,f=Qn*t+xn*r*i;_n.add(Dt(Pt(o*o+a*a),f)),Mn=A,Qn=t,xn=r}var Tn=[null,null],Un={type:"LineString",coordinates:Tn};function Rn(A,e){return Tn[0]=A,Tn[1]=e,function(A){return _n=new ve,Ot(A,Fn),+_n}(Un)}var Ln={Feature:function(A,e){return Yn(A.geometry,e)},FeatureCollection:function(A,e){for(var t=A.features,r=-1,n=t.length;++r<n;)if(Yn(t[r].geometry,e))return!0;return!1}},Hn={Sphere:function(){return!0},Point:function(A,e){return zn(A.coordinates,e)},MultiPoint:function(A,e){for(var t=A.coordinates,r=-1,n=t.length;++r<n;)if(zn(t[r],e))return!0;return!1},LineString:function(A,e){return On(A.coordinates,e)},MultiLineString:function(A,e){for(var t=A.coordinates,r=-1,n=t.length;++r<n;)if(On(t[r],e))return!0;return!1},Polygon:function(A,e){return Nn(A.coordinates,e)},MultiPolygon:function(A,e){for(var t=A.coordinates,r=-1,n=t.length;++r<n;)if(Nn(t[r],e))return!0;return!1},GeometryCollection:function(A,e){for(var t=A.geometries,r=-1,n=t.length;++r<n;)if(Yn(t[r],e))return!0;return!1}};function Yn(A,e){return!(!A||!Hn.hasOwnProperty(A.type))&&Hn[A.type](A,e)}function zn(A,e){return 0===Rn(A,e)}function On(A,e){for(var t,r,n,i=0,o=A.length;i<o;i++){if(0===(r=Rn(A[i],e)))return!0;if(i>0&&(n=Rn(A[i],A[i-1]))>0&&t<=n&&r<=n&&(t+r-n)*(1-Math.pow((t-r)/n,2))<yt*n)return!0;t=r}return!1}function Nn(A,e){return!!vn(A.map(Vn),jn(e))}function Vn(A){return(A=A.map(jn)).pop(),A}function jn(A){return[A[0]*Mt,A[1]*Mt]}function Zn(A,e){return(A&&Ln.hasOwnProperty(A.type)?Ln[A.type]:Yn)(A,e)}var Wn,Xn,Kn,Jn,qn=A=>A,$n=new ve,Ai=new ve,ei={point:Ut,lineStart:Ut,lineEnd:Ut,polygonStart:function(){ei.lineStart=ti,ei.lineEnd=ii},polygonEnd:function(){ei.lineStart=ei.lineEnd=ei.point=Ut,$n.add(Qt(Ai)),Ai=new ve},result:function(){var A=$n/2;return $n=new ve,A}};function ti(){ei.point=ri}function ri(A,e){ei.point=ni,Wn=Kn=A,Xn=Jn=e}function ni(A,e){Ai.add(Jn*A-Kn*e),Kn=A,Jn=e}function ii(){ni(Wn,Xn)}var oi=1/0,ai=oi,fi=-oi,li=fi,ui={point:function(A,e){A<oi&&(oi=A);A>fi&&(fi=A);e<ai&&(ai=e);e>li&&(li=e)},lineStart:Ut,lineEnd:Ut,polygonStart:Ut,polygonEnd:Ut,result:function(){var A=[[oi,ai],[fi,li]];return fi=li=-(ai=oi=1/0),A}};var si,ci,hi,gi,di=0,pi=0,wi=0,bi=0,vi=0,yi=0,mi=0,Bi=0,Ei=0,ki={point:_i,lineStart:Mi,lineEnd:Di,polygonStart:function(){ki.lineStart=Ci,ki.lineEnd=Ii},polygonEnd:function(){ki.point=_i,ki.lineStart=Mi,ki.lineEnd=Di},result:function(){var A=Ei?[mi/Ei,Bi/Ei]:yi?[bi/yi,vi/yi]:wi?[di/wi,pi/wi]:[NaN,NaN];return di=pi=wi=bi=vi=yi=mi=Bi=Ei=0,A}};function _i(A,e){di+=A,pi+=e,++wi}function Mi(){ki.point=Qi}function Qi(A,e){ki.point=xi,_i(hi=A,gi=e)}function xi(A,e){var t=A-hi,r=e-gi,n=Pt(t*t+r*r);bi+=n*(hi+A)/2,vi+=n*(gi+e)/2,yi+=n,_i(hi=A,gi=e)}function Di(){ki.point=_i}function Ci(){ki.point=Fi}function Ii(){Si(si,ci)}function Fi(A,e){ki.point=Si,_i(si=hi=A,ci=gi=e)}function Si(A,e){var t=A-hi,r=e-gi,n=Pt(t*t+r*r);bi+=n*(hi+A)/2,vi+=n*(gi+e)/2,yi+=n,mi+=(n=gi*A-hi*e)*(hi+A),Bi+=n*(gi+e),Ei+=3*n,_i(hi=A,gi=e)}function Pi(A){this._context=A}Pi.prototype={_radius:4.5,pointRadius:function(A){return this._radius=A,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(A,e){switch(this._point){case 0:this._context.moveTo(A,e),this._point=1;break;case 1:this._context.lineTo(A,e);break;default:this._context.moveTo(A+this._radius,e),this._context.arc(A,e,this._radius,0,kt)}},result:Ut};var Gi,Ti,Ui,Ri,Li,Hi=new ve,Yi={point:Ut,lineStart:function(){Yi.point=zi},lineEnd:function(){Gi&&Oi(Ti,Ui),Yi.point=Ut},polygonStart:function(){Gi=!0},polygonEnd:function(){Gi=null},result:function(){var A=+Hi;return Hi=new ve,A}};function zi(A,e){Yi.point=Oi,Ti=Ri=A,Ui=Li=e}function Oi(A,e){Ri-=A,Li-=e,Hi.add(Pt(Ri*Ri+Li*Li)),Ri=A,Li=e}let Ni,Vi,ji,Zi;class Wi{constructor(A){this._append=null==A?Xi:function(A){const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);if(e>15)return Xi;if(e!==Ni){const A=10**e;Ni=e,Vi=function(e){let t=1;this._+=e[0];for(const r=e.length;t<r;++t)this._+=Math.round(arguments[t]*A)/A+e[t]}}return Vi}(A),this._radius=4.5,this._=""}pointRadius(A){return this._radius=+A,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(A,e){switch(this._point){case 0:this._append`M${A},${e}`,this._point=1;break;case 1:this._append`L${A},${e}`;break;default:if(this._append`M${A},${e}`,this._radius!==ji||this._append!==Vi){const A=this._radius,e=this._;this._="",this._append`m0,${A}a${A},${A} 0 1,1 0,${-2*A}a${A},${A} 0 1,1 0,${2*A}z`,ji=A,Vi=this._append,Zi=this._,this._=e}this._+=Zi}}result(){const A=this._;return this._="",A.length?A:null}}function Xi(A){let e=1;this._+=A[0];for(const t=A.length;e<t;++e)this._+=arguments[e]+A[e]}function Ki(A,e){let t,r,n=3,i=4.5;function o(A){return A&&("function"==typeof i&&r.pointRadius(+i.apply(this,arguments)),Ot(A,t(r))),r.result()}return o.area=function(A){return Ot(A,t(ei)),ei.result()},o.measure=function(A){return Ot(A,t(Yi)),Yi.result()},o.bounds=function(A){return Ot(A,t(ui)),ui.result()},o.centroid=function(A){return Ot(A,t(ki)),ki.result()},o.projection=function(e){return arguments.length?(t=null==e?(A=null,qn):(A=e).stream,o):A},o.context=function(A){return arguments.length?(r=null==A?(e=null,new Wi(n)):new Pi(e=A),"function"!=typeof i&&r.pointRadius(i),o):e},o.pointRadius=function(A){return arguments.length?(i="function"==typeof A?A:(r.pointRadius(+A),+A),o):i},o.digits=function(A){if(!arguments.length)return n;if(null==A)n=null;else{const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);n=e}return null===e&&(r=new Wi(n)),o},o.projection(A).digits(n).context(e)}function Ji(A){return function(e){var t=new qi;for(var r in A)t[r]=A[r];return t.stream=e,t}}function qi(){}function $i(A,e,t){var r=A.clipExtent&&A.clipExtent();return A.scale(150).translate([0,0]),null!=r&&A.clipExtent(null),Ot(t,A.stream(ui)),e(ui.result()),null!=r&&A.clipExtent(r),A}function Ao(A,e,t){return $i(A,(function(t){var r=e[1][0]-e[0][0],n=e[1][1]-e[0][1],i=Math.min(r/(t[1][0]-t[0][0]),n/(t[1][1]-t[0][1])),o=+e[0][0]+(r-i*(t[1][0]+t[0][0]))/2,a=+e[0][1]+(n-i*(t[1][1]+t[0][1]))/2;A.scale(150*i).translate([o,a])}),t)}function eo(A,e,t){return Ao(A,[[0,0],e],t)}function to(A,e,t){return $i(A,(function(t){var r=+e,n=r/(t[1][0]-t[0][0]),i=(r-n*(t[1][0]+t[0][0]))/2,o=-n*t[0][1];A.scale(150*n).translate([i,o])}),t)}function ro(A,e,t){return $i(A,(function(t){var r=+e,n=r/(t[1][1]-t[0][1]),i=-n*t[0][0],o=(r-n*(t[1][1]+t[0][1]))/2;A.scale(150*n).translate([i,o])}),t)}qi.prototype={constructor:qi,point:function(A,e){this.stream.point(A,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var no=Ct(30*Mt);function io(A,e){return+e?function(A,e){function t(r,n,i,o,a,f,l,u,s,c,h,g,d,p){var w=l-r,b=u-n,v=w*w+b*b;if(v>4*e&&d--){var y=o+c,m=a+h,B=f+g,E=Pt(y*y+m*m+B*B),k=Tt(B/=E),_=Qt(Qt(B)-1)<vt||Qt(i-s)<vt?(i+s)/2:Dt(m,y),M=A(_,k),Q=M[0],x=M[1],D=Q-r,C=x-n,I=b*D-w*C;(I*I/v>e||Qt((w*D+b*C)/v-.5)>.3||o*c+a*h+f*g<no)&&(t(r,n,i,o,a,f,Q,x,_,y/=E,m/=E,B,d,p),p.point(Q,x),t(Q,x,_,y,m,B,l,u,s,c,h,g,d,p))}}return function(e){var r,n,i,o,a,f,l,u,s,c,h,g,d={point:p,lineStart:w,lineEnd:v,polygonStart:function(){e.polygonStart(),d.lineStart=y},polygonEnd:function(){e.polygonEnd(),d.lineStart=w}};function p(t,r){t=A(t,r),e.point(t[0],t[1])}function w(){u=NaN,d.point=b,e.lineStart()}function b(r,n){var i=dr([r,n]),o=A(r,n);t(u,s,l,c,h,g,u=o[0],s=o[1],l=r,c=i[0],h=i[1],g=i[2],16,e),e.point(u,s)}function v(){d.point=p,e.lineEnd()}function y(){w(),d.point=m,d.lineEnd=B}function m(A,e){b(r=A,e),n=u,i=s,o=c,a=h,f=g,d.point=b}function B(){t(u,s,l,c,h,g,n,i,r,o,a,f,16,e),d.lineEnd=v,v()}return d}}(A,e):function(A){return Ji({point:function(e,t){e=A(e,t),this.stream.point(e[0],e[1])}})}(A)}var oo=Ji({point:function(A,e){this.stream.point(A*Mt,e*Mt)}});function ao(A,e,t,r,n,i){if(!i)return function(A,e,t,r,n){function i(i,o){return[e+A*(i*=r),t-A*(o*=n)]}return i.invert=function(i,o){return[(i-e)/A*r,(t-o)/A*n]},i}(A,e,t,r,n);var o=Ct(i),a=Ft(i),f=o*A,l=a*A,u=o/A,s=a/A,c=(a*t-o*e)/A,h=(a*e+o*t)/A;function g(A,i){return[f*(A*=r)-l*(i*=n)+e,t-l*A-f*i]}return g.invert=function(A,e){return[r*(u*A-s*e+c),n*(h-s*A-u*e)]},g}function fo(A){return function(A){var e,t,r,n,i,o,a,f,l,u,s=150,c=480,h=250,g=0,d=0,p=0,w=0,b=0,v=0,y=1,m=1,B=null,E=En,k=null,_=qn,M=.5;function Q(A){return f(A[0]*Mt,A[1]*Mt)}function x(A){return(A=f.invert(A[0],A[1]))&&[A[0]*_t,A[1]*_t]}function D(){var A=ao(s,0,0,y,m,v).apply(null,e(g,d)),r=ao(s,c-A[0],h-A[1],y,m,v);return t=function(A,e,t){return(A%=kt)?e||t?an(un(A),sn(e,t)):un(A):e||t?sn(e,t):fn}(p,w,b),a=an(e,r),f=an(t,a),o=io(a,M),C()}function C(){return l=u=null,Q}return Q.stream=function(A){return l&&u===A?l:l=oo(function(A){return Ji({point:function(e,t){var r=A(e,t);return this.stream.point(r[0],r[1])}})}(t)(E(o(_(u=A)))))},Q.preclip=function(A){return arguments.length?(E=A,B=void 0,C()):E},Q.postclip=function(A){return arguments.length?(_=A,k=r=n=i=null,C()):_},Q.clipAngle=function(A){return arguments.length?(E=+A?kn(B=A*Mt):(B=null,En),C()):B*_t},Q.clipExtent=function(A){return arguments.length?(_=null==A?(k=r=n=i=null,qn):In(k=+A[0][0],r=+A[0][1],n=+A[1][0],i=+A[1][1]),C()):null==k?null:[[k,r],[n,i]]},Q.scale=function(A){return arguments.length?(s=+A,D()):s},Q.translate=function(A){return arguments.length?(c=+A[0],h=+A[1],D()):[c,h]},Q.center=function(A){return arguments.length?(g=A[0]%360*Mt,d=A[1]%360*Mt,D()):[g*_t,d*_t]},Q.rotate=function(A){return arguments.length?(p=A[0]%360*Mt,w=A[1]%360*Mt,b=A.length>2?A[2]%360*Mt:0,D()):[p*_t,w*_t,b*_t]},Q.angle=function(A){return arguments.length?(v=A%360*Mt,D()):v*_t},Q.reflectX=function(A){return arguments.length?(y=A?-1:1,D()):y<0},Q.reflectY=function(A){return arguments.length?(m=A?-1:1,D()):m<0},Q.precision=function(A){return arguments.length?(o=io(a,M=A*A),C()):Pt(M)},Q.fitExtent=function(A,e){return Ao(Q,A,e)},Q.fitSize=function(A,e){return eo(Q,A,e)},Q.fitWidth=function(A,e){return to(Q,A,e)},Q.fitHeight=function(A,e){return ro(Q,A,e)},function(){return e=A.apply(this,arguments),Q.invert=e.invert&&x,D()}}((function(){return A}))()}var lo,uo=(lo=function(A){return(A=Gt(A))&&A/Ft(A)},function(A,e){var t=Ct(A),r=Ct(e),n=lo(t*r);return n===1/0?[2,0]:[n*r*Ft(A),n*Ft(e)]});function so(A,e){return[A,e]}uo.invert=function(A){return function(e,t){var r=Pt(e*e+t*t),n=A(r),i=Ft(n),o=Ct(n);return[Dt(e*i,r*o),Tt(r&&t*i/r)]}}((function(A){return A})),so.invert=so;var co=Object.prototype.hasOwnProperty;function ho(A,e,t,r,n,i){3===arguments.length&&(r=i=Array,n=null);for(var o=new r(A=1<<Math.max(4,Math.ceil(Math.log(A)/Math.LN2))),a=new i(A),f=A-1,l=0;l<A;++l)o[l]=n;return{set:function(r,i){for(var l=e(r)&f,u=o[l],s=0;u!=n;){if(t(u,r))return a[l]=i;if(++s>=A)throw new Error("full hashmap");u=o[l=l+1&f]}return o[l]=r,a[l]=i,i},maybeSet:function(r,i){for(var l=e(r)&f,u=o[l],s=0;u!=n;){if(t(u,r))return a[l];if(++s>=A)throw new Error("full hashmap");u=o[l=l+1&f]}return o[l]=r,a[l]=i,i},get:function(r,i){for(var l=e(r)&f,u=o[l],s=0;u!=n;){if(t(u,r))return a[l];if(++s>=A)break;u=o[l=l+1&f]}return i},keys:function(){for(var A=[],e=0,t=o.length;e<t;++e){var r=o[e];r!=n&&A.push(r)}return A}}}function go(A,e){return A[0]===e[0]&&A[1]===e[1]}var po=new ArrayBuffer(16),wo=new Float64Array(po),bo=new Uint32Array(po);function vo(A){wo[0]=A[0],wo[1]=A[1];var e=bo[0]^bo[1];return 2147483647&(e=e<<5^e>>7^bo[2]^bo[3])}function yo(A){var e,t,r,n,i=A.coordinates,o=A.lines,a=A.rings,f=function(){for(var A=ho(1.4*i.length,m,B,Int32Array,-1,Int32Array),e=new Int32Array(i.length),t=0,r=i.length;t<r;++t)e[t]=A.maybeSet(t,t);return e}(),l=new Int32Array(i.length),u=new Int32Array(i.length),s=new Int32Array(i.length),c=new Int8Array(i.length),h=0;for(e=0,t=i.length;e<t;++e)l[e]=u[e]=s[e]=-1;for(e=0,t=o.length;e<t;++e){var g=o[e],d=g[0],p=g[1];for(r=f[d],n=f[++d],++h,c[r]=1;++d<=p;)y(e,r,r=n,n=f[d]);++h,c[n]=1}for(e=0,t=i.length;e<t;++e)l[e]=-1;for(e=0,t=a.length;e<t;++e){var w=a[e],b=w[0]+1,v=w[1];for(y(e,f[v-1],r=f[b-1],n=f[b]);++b<=v;)y(e,r,r=n,n=f[b])}function y(A,e,t,r){if(l[t]!==A){l[t]=A;var n=u[t];if(n>=0){var i=s[t];n===e&&i===r||n===r&&i===e||(++h,c[t]=1)}else u[t]=e,s[t]=r}}function m(A){return vo(i[A])}function B(A,e){return go(i[A],i[e])}l=u=s=null;var E,k=function(A,e,t,r,n){3===arguments.length&&(r=Array,n=null);for(var i=new r(A=1<<Math.max(4,Math.ceil(Math.log(A)/Math.LN2))),o=A-1,a=0;a<A;++a)i[a]=n;return{add:function(r){for(var a=e(r)&o,f=i[a],l=0;f!=n;){if(t(f,r))return!0;if(++l>=A)throw new Error("full hashset");f=i[a=a+1&o]}return i[a]=r,!0},has:function(r){for(var a=e(r)&o,f=i[a],l=0;f!=n;){if(t(f,r))return!0;if(++l>=A)break;f=i[a=a+1&o]}return!1},values:function(){for(var A=[],e=0,t=i.length;e<t;++e){var r=i[e];r!=n&&A.push(r)}return A}}}(1.4*h,vo,go);for(e=0,t=i.length;e<t;++e)c[E=f[e]]&&k.add(i[E]);return k}function mo(A,e,t,r){Bo(A,e,t),Bo(A,e,e+r),Bo(A,e+r,t)}function Bo(A,e,t){for(var r,n=e+(t---e>>1);e<n;++e,--t)r=A[e],A[e]=A[t],A[t]=r}function Eo(A){var e,t,r={};for(e in A)r[e]=null==(t=A[e])?{type:null}:("FeatureCollection"===t.type?ko:"Feature"===t.type?_o:Mo)(t);return r}function ko(A){var e={type:"GeometryCollection",geometries:A.features.map(_o)};return null!=A.bbox&&(e.bbox=A.bbox),e}function _o(A){var e,t=Mo(A.geometry);for(e in null!=A.id&&(t.id=A.id),null!=A.bbox&&(t.bbox=A.bbox),A.properties){t.properties=A.properties;break}return t}function Mo(A){if(null==A)return{type:null};var e="GeometryCollection"===A.type?{type:"GeometryCollection",geometries:A.geometries.map(Mo)}:"Point"===A.type||"MultiPoint"===A.type?{type:A.type,coordinates:A.coordinates}:{type:A.type,arcs:A.coordinates};return null!=A.bbox&&(e.bbox=A.bbox),e}function Qo(A,e){var t=function(A){var e=1/0,t=1/0,r=-1/0,n=-1/0;function i(A){null!=A&&co.call(o,A.type)&&o[A.type](A)}var o={GeometryCollection:function(A){A.geometries.forEach(i)},Point:function(A){a(A.coordinates)},MultiPoint:function(A){A.coordinates.forEach(a)},LineString:function(A){f(A.arcs)},MultiLineString:function(A){A.arcs.forEach(f)},Polygon:function(A){A.arcs.forEach(f)},MultiPolygon:function(A){A.arcs.forEach(l)}};function a(A){var i=A[0],o=A[1];i<e&&(e=i),i>r&&(r=i),o<t&&(t=o),o>n&&(n=o)}function f(A){A.forEach(a)}function l(A){A.forEach(f)}for(var u in A)i(A[u]);return r>=e&&n>=t?[e,t,r,n]:void 0}(A=Eo(A)),r=e>0&&t&&function(A,e,t){var r=e[0],n=e[1],i=e[2],o=e[3],a=i-r?(t-1)/(i-r):1,f=o-n?(t-1)/(o-n):1;function l(A){return[Math.round((A[0]-r)*a),Math.round((A[1]-n)*f)]}function u(A,e){for(var t,i,o,l,u,s=-1,c=0,h=A.length,g=new Array(h);++s<h;)t=A[s],l=Math.round((t[0]-r)*a),u=Math.round((t[1]-n)*f),l===i&&u===o||(g[c++]=[i=l,o=u]);for(g.length=c;c<e;)c=g.push([g[0][0],g[0][1]]);return g}function s(A){return u(A,2)}function c(A){return u(A,4)}function h(A){return A.map(c)}function g(A){null!=A&&co.call(d,A.type)&&d[A.type](A)}var d={GeometryCollection:function(A){A.geometries.forEach(g)},Point:function(A){A.coordinates=l(A.coordinates)},MultiPoint:function(A){A.coordinates=A.coordinates.map(l)},LineString:function(A){A.arcs=s(A.arcs)},MultiLineString:function(A){A.arcs=A.arcs.map(s)},Polygon:function(A){A.arcs=h(A.arcs)},MultiPolygon:function(A){A.arcs=A.arcs.map(h)}};for(var p in A)g(A[p]);return{scale:[1/a,1/f],translate:[r,n]}}(A,t,e),n=function(A){var e,t,r,n,i=A.coordinates,o=A.lines,a=A.rings,f=o.length+a.length;for(delete A.lines,delete A.rings,r=0,n=o.length;r<n;++r)for(e=o[r];e=e.next;)++f;for(r=0,n=a.length;r<n;++r)for(t=a[r];t=t.next;)++f;var l=ho(2*f*1.4,vo,go),u=A.arcs=[];for(r=0,n=o.length;r<n;++r){e=o[r];do{s(e)}while(e=e.next)}for(r=0,n=a.length;r<n;++r)if((t=a[r]).next)do{s(t)}while(t=t.next);else c(t);function s(A){var e,t,r,n,o,a,f,s;if(r=l.get(e=i[A[0]]))for(f=0,s=r.length;f<s;++f)if(h(n=r[f],A))return A[0]=n[0],void(A[1]=n[1]);if(o=l.get(t=i[A[1]]))for(f=0,s=o.length;f<s;++f)if(g(a=o[f],A))return A[1]=a[0],void(A[0]=a[1]);r?r.push(A):l.set(e,[A]),o?o.push(A):l.set(t,[A]),u.push(A)}function c(A){var e,t,r,n,o;if(t=l.get(i[A[0]]))for(n=0,o=t.length;n<o;++n){if(d(r=t[n],A))return A[0]=r[0],void(A[1]=r[1]);if(p(r,A))return A[0]=r[1],void(A[1]=r[0])}if(t=l.get(e=i[A[0]+w(A)]))for(n=0,o=t.length;n<o;++n){if(d(r=t[n],A))return A[0]=r[0],void(A[1]=r[1]);if(p(r,A))return A[0]=r[1],void(A[1]=r[0])}t?t.push(A):l.set(e,[A]),u.push(A)}function h(A,e){var t=A[0],r=e[0],n=A[1];if(t-n!=r-e[1])return!1;for(;t<=n;++t,++r)if(!go(i[t],i[r]))return!1;return!0}function g(A,e){var t=A[0],r=e[0],n=A[1],o=e[1];if(t-n!=r-o)return!1;for(;t<=n;++t,--o)if(!go(i[t],i[o]))return!1;return!0}function d(A,e){var t=A[0],r=e[0],n=A[1]-t;if(n!==e[1]-r)return!1;for(var o=w(A),a=w(e),f=0;f<n;++f)if(!go(i[t+(f+o)%n],i[r+(f+a)%n]))return!1;return!0}function p(A,e){var t=A[0],r=e[0],n=A[1],o=e[1],a=n-t;if(a!==o-r)return!1;for(var f=w(A),l=a-w(e),u=0;u<a;++u)if(!go(i[t+(u+f)%a],i[o-(u+l)%a]))return!1;return!0}function w(A){for(var e=A[0],t=A[1],r=e,n=r,o=i[r];++r<t;){var a=i[r];(a[0]<o[0]||a[0]===o[0]&&a[1]<o[1])&&(n=r,o=a)}return n-e}return A}(function(A){var e,t,r,n=yo(A),i=A.coordinates,o=A.lines,a=A.rings;for(t=0,r=o.length;t<r;++t)for(var f=o[t],l=f[0],u=f[1];++l<u;)n.has(i[l])&&(e={0:l,1:f[1]},f[1]=l,f=f.next=e);for(t=0,r=a.length;t<r;++t)for(var s=a[t],c=s[0],h=c,g=s[1],d=n.has(i[c]);++h<g;)n.has(i[h])&&(d?(e={0:h,1:s[1]},s[1]=h,s=s.next=e):(mo(i,c,g,g-h),i[g]=i[c],d=!0,h=c));return A}(function(A){var e=-1,t=[],r=[],n=[];function i(A){A&&co.call(o,A.type)&&o[A.type](A)}var o={GeometryCollection:function(A){A.geometries.forEach(i)},LineString:function(A){A.arcs=a(A.arcs)},MultiLineString:function(A){A.arcs=A.arcs.map(a)},Polygon:function(A){A.arcs=A.arcs.map(f)},MultiPolygon:function(A){A.arcs=A.arcs.map(l)}};function a(A){for(var r=0,i=A.length;r<i;++r)n[++e]=A[r];var o={0:e-i+1,1:e};return t.push(o),o}function f(A){for(var t=0,i=A.length;t<i;++t)n[++e]=A[t];var o={0:e-i+1,1:e};return r.push(o),o}function l(A){return A.map(f)}for(var u in A)i(A[u]);return{type:"Topology",coordinates:n,lines:t,rings:r,objects:A}}(A))),i=n.coordinates,o=ho(1.4*n.arcs.length,xo,Do);function a(A){A&&co.call(f,A.type)&&f[A.type](A)}A=n.objects,n.bbox=t,n.arcs=n.arcs.map((function(A,e){return o.set(A,e),i.slice(A[0],A[1]+1)})),delete n.coordinates,i=null;var f={GeometryCollection:function(A){A.geometries.forEach(a)},LineString:function(A){A.arcs=l(A.arcs)},MultiLineString:function(A){A.arcs=A.arcs.map(l)},Polygon:function(A){A.arcs=A.arcs.map(l)},MultiPolygon:function(A){A.arcs=A.arcs.map(u)}};function l(A){var e=[];do{var t=o.get(A);e.push(A[0]<A[1]?t:~t)}while(A=A.next);return e}function u(A){return A.map(l)}for(var s in A)a(A[s]);return r&&(n.transform=r,n.arcs=function(A){for(var e=-1,t=A.length;++e<t;){for(var r,n,i=A[e],o=0,a=1,f=i.length,l=i[0],u=l[0],s=l[1];++o<f;)r=(l=i[o])[0],n=l[1],r===u&&n===s||(i[a++]=[r-u,n-s],u=r,s=n);1===a&&(i[a++]=[0,0]),i.length=a}return A}(n.arcs)),n}function xo(A){var e,t=A[0],r=A[1];return r<t&&(e=t,t=r,r=e),t+31*r}function Do(A,e){var t,r=A[0],n=A[1],i=e[0],o=e[1];return n<r&&(t=r,r=n,n=t),o<i&&(t=i,i=o,o=t),r===i&&n===o}function Co(A){return A}function Io(A){if(null==A)return Co;var e,t,r=A.scale[0],n=A.scale[1],i=A.translate[0],o=A.translate[1];return function(A,a){a||(e=t=0);var f=2,l=A.length,u=new Array(l);for(u[0]=(e+=A[0])*r+i,u[1]=(t+=A[1])*n+o;f<l;)u[f]=A[f],++f;return u}}function Fo(A){var e,t=Io(A.transform),r=1/0,n=r,i=-r,o=-r;function a(A){(A=t(A))[0]<r&&(r=A[0]),A[0]>i&&(i=A[0]),A[1]<n&&(n=A[1]),A[1]>o&&(o=A[1])}function f(A){switch(A.type){case"GeometryCollection":A.geometries.forEach(f);break;case"Point":a(A.coordinates);break;case"MultiPoint":A.coordinates.forEach(a)}}for(e in A.arcs.forEach((function(A){for(var e,a=-1,f=A.length;++a<f;)(e=t(A[a],a))[0]<r&&(r=e[0]),e[0]>i&&(i=e[0]),e[1]<n&&(n=e[1]),e[1]>o&&(o=e[1])})),A.objects)f(A.objects[e]);return[r,n,i,o]}function So(A,e){return"string"==typeof e&&(e=A.objects[e]),"GeometryCollection"===e.type?{type:"FeatureCollection",features:e.geometries.map((function(e){return Po(A,e)}))}:Po(A,e)}function Po(A,e){var t=e.id,r=e.bbox,n=null==e.properties?{}:e.properties,i=Go(A,e);return null==t&&null==r?{type:"Feature",properties:n,geometry:i}:null==r?{type:"Feature",id:t,properties:n,geometry:i}:{type:"Feature",id:t,bbox:r,properties:n,geometry:i}}function Go(A,e){var t=Io(A.transform),r=A.arcs;function n(A,e){e.length&&e.pop();for(var n=r[A<0?~A:A],i=0,o=n.length;i<o;++i)e.push(t(n[i],i));A<0&&function(A,e){for(var t,r=A.length,n=r-e;n<--r;)t=A[n],A[n++]=A[r],A[r]=t}(e,o)}function i(A){return t(A)}function o(A){for(var e=[],t=0,r=A.length;t<r;++t)n(A[t],e);return e.length<2&&e.push(e[0]),e}function a(A){for(var e=o(A);e.length<4;)e.push(e[0]);return e}function f(A){return A.map(a)}return function A(e){var t,r=e.type;switch(r){case"GeometryCollection":return{type:r,geometries:e.geometries.map(A)};case"Point":t=i(e.coordinates);break;case"MultiPoint":t=e.coordinates.map(i);break;case"LineString":t=o(e.arcs);break;case"MultiLineString":t=e.arcs.map(o);break;case"Polygon":t=f(e.arcs);break;case"MultiPolygon":t=e.arcs.map(f);break;default:return null}return{type:r,coordinates:t}}(e)}function To(A,e){var t={},r={},n={},i=[],o=-1;function a(A,e){for(var r in A){var n=A[r];delete e[n.start],delete n.start,delete n.end,n.forEach((function(A){t[A<0?~A:A]=1})),i.push(n)}}return e.forEach((function(t,r){var n,i=A.arcs[t<0?~t:t];i.length<3&&!i[1][0]&&!i[1][1]&&(n=e[++o],e[o]=t,e[r]=n)})),e.forEach((function(e){var t,i,o=function(e){var t,r=A.arcs[e<0?~e:e],n=r[0];A.transform?(t=[0,0],r.forEach((function(A){t[0]+=A[0],t[1]+=A[1]}))):t=r[r.length-1];return e<0?[t,n]:[n,t]}(e),a=o[0],f=o[1];if(t=n[a])if(delete n[t.end],t.push(e),t.end=f,i=r[f]){delete r[i.start];var l=i===t?t:t.concat(i);r[l.start=t.start]=n[l.end=i.end]=l}else r[t.start]=n[t.end]=t;else if(t=r[f])if(delete r[t.start],t.unshift(e),t.start=a,i=n[a]){delete n[i.end];var u=i===t?t:i.concat(t);r[u.start=i.start]=n[u.end=t.end]=u}else r[t.start]=n[t.end]=t;else r[(t=[e]).start=a]=n[t.end=f]=t})),a(n,r),a(r,n),e.forEach((function(A){t[A<0?~A:A]||i.push([A])})),i}function Uo(A,e,t){var r,n,i;if(arguments.length>1)r=function(A,e,t){var r,n=[],i=[];function o(A){var e=A<0?~A:A;(i[e]||(i[e]=[])).push({i:A,g:r})}function a(A){A.forEach(o)}function f(A){A.forEach(a)}function l(A){A.forEach(f)}function u(A){switch(r=A,A.type){case"GeometryCollection":A.geometries.forEach(u);break;case"LineString":a(A.arcs);break;case"MultiLineString":case"Polygon":f(A.arcs);break;case"MultiPolygon":l(A.arcs)}}return u(e),i.forEach(null==t?function(A){n.push(A[0].i)}:function(A){t(A[0].g,A[A.length-1].g)&&n.push(A[0].i)}),n}(0,e,t);else for(n=0,r=new Array(i=A.arcs.length);n<i;++n)r[n]=n;return{type:"MultiLineString",arcs:To(A,r)}}function Ro(A,e){var t={},r=[],n=[];function i(A){A.forEach((function(e){e.forEach((function(e){(t[e=e<0?~e:e]||(t[e]=[])).push(A)}))})),r.push(A)}function o(e){return function(A){for(var e,t=-1,r=A.length,n=A[r-1],i=0;++t<r;)e=n,n=A[t],i+=e[0]*n[1]-e[1]*n[0];return Math.abs(i)}(Go(A,{type:"Polygon",arcs:[e]}).coordinates[0])}return e.forEach((function A(e){switch(e.type){case"GeometryCollection":e.geometries.forEach(A);break;case"Polygon":i(e.arcs);break;case"MultiPolygon":e.arcs.forEach(i)}})),r.forEach((function(A){if(!A._){var e=[],r=[A];for(A._=1,n.push(e);A=r.pop();)e.push(A),A.forEach((function(A){A.forEach((function(A){t[A<0?~A:A].forEach((function(A){A._||(A._=1,r.push(A))}))}))}))}})),r.forEach((function(A){delete A._})),{type:"MultiPolygon",arcs:n.map((function(e){var r,n=[];if(e.forEach((function(A){A.forEach((function(A){A.forEach((function(A){t[A<0?~A:A].length<2&&n.push(A)}))}))})),(r=(n=To(A,n)).length)>1)for(var i,a,f=1,l=o(n[0]);f<r;++f)(i=o(n[f]))>l&&(a=n[0],n[0]=n[f],n[f]=a,l=i);return n})).filter((function(A){return A.length>0}))}}function Lo(A,e){for(var t=0,r=A.length;t<r;){var n=t+r>>>1;A[n]<e?t=n+1:r=n}return t}function Ho(A){for(var e in A){var t,r,n=A[e].trim();if(n)if("true"===n)n=!0;else if("false"===n)n=!1;else if("NaN"===n)n=NaN;else if(isNaN(t=+n)){if(!(r=n.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;Yo&&r[4]&&!r[7]&&(n=n.replace(/-/g,"/").replace(/T/," ")),n=new Date(n)}else n=t;else n=null;A[e]=n}return A}Object.assign({},{topology:Qo,merge:function(A){return Go(A,Ro.apply(this,arguments))}}),Object.assign({},{sum:ct,min:Je,max:Xe,mode:at,median:it,mean:nt,variance:pe,deviation:we});const Yo=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function zo(A){var e=A[0],t=A[1],r=A[2];return Math.abs((e[0]-r[0])*(t[1]-e[1])-(e[0]-t[0])*(r[1]-e[1]))/2}function Oo(A,e){return A[1][2]-e[1][2]}function No(A){return[A[0],A[1],0]}function Vo(A,e){return e-A}Object.assign({},{autoType:Ho}),Object.assign({},{descending:qA,ascending:JA,autoType:Ho}),Object.assign({},{descending:qA,ascending:JA,autoType:Ho}),Object.assign({},{descending:qA,ascending:JA,autoType:Ho}),Object.assign({},{topology:Qo,presimplify:function(A,e){var t=A.transform?Io(A.transform):No,r=function(){var A={},e=[],t=0;function r(A,t){for(;t>0;){var r=(t+1>>1)-1,n=e[r];if(Oo(A,n)>=0)break;e[n._=t]=n,e[A._=t=r]=A}}function n(A,r){for(;;){var n=r+1<<1,i=n-1,o=r,a=e[o];if(i<t&&Oo(e[i],a)<0&&(a=e[o=i]),n<t&&Oo(e[n],a)<0&&(a=e[o=n]),o===r)break;e[a._=r]=a,e[A._=r=o]=A}}return A.push=function(A){return r(e[A._=t]=A,t++),t},A.pop=function(){if(!(t<=0)){var A,r=e[0];return--t>0&&(A=e[t],n(e[A._=0]=A,0)),r}},A.remove=function(A){var i,o=A._;if(e[o]===A)return o!==--t&&(Oo(i=e[t],A)<0?r:n)(e[i._=o]=i,o),o},A}();null==e&&(e=zo);var n=A.arcs.map((function(A){var n,o,a,f=[],l=0;for(o=1,a=(A=A.map(t)).length-1;o<a;++o)(n=[A[o-1],A[o],A[o+1]])[1][2]=e(n),f.push(n),r.push(n);for(A[0][2]=A[a][2]=1/0,o=0,a=f.length;o<a;++o)(n=f[o]).previous=f[o-1],n.next=f[o+1];for(;n=r.pop();){var u=n.previous,s=n.next;n[1][2]<l?n[1][2]=l:l=n[1][2],u&&(u.next=s,u[2]=n[2],i(u)),s&&(s.previous=u,s[0]=n[0],i(s))}return A}));function i(A){r.remove(A),A[1][2]=e(A),r.push(A)}return{type:"Topology",bbox:A.bbox,objects:A.objects,arcs:n}},quantiz:function(A,e){if(A.transform)throw new Error("already quantized");if(e&&e.scale)a=A.bbox;else{if(!((t=Math.floor(e))>=2))throw new Error("n must be ≥2");var t,r=(a=A.bbox||Fo(A))[0],n=a[1],i=a[2],o=a[3];e={scale:[i-r?(i-r)/(t-1):1,o-n?(o-n)/(t-1):1],translate:[r,n]}}var a,f,l=function(A){if(null==A)return Co;var e,t,r=A.scale[0],n=A.scale[1],i=A.translate[0],o=A.translate[1];return function(A,a){a||(e=t=0);var f=2,l=A.length,u=new Array(l),s=Math.round((A[0]-i)/r),c=Math.round((A[1]-o)/n);for(u[0]=s-e,e=s,u[1]=c-t,t=c;f<l;)u[f]=A[f],++f;return u}}(e),u=A.objects,s={};function c(A){return l(A)}function h(A){var e;switch(A.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:A.geometries.map(h)};break;case"Point":e={type:"Point",coordinates:c(A.coordinates)};break;case"MultiPoint":e={type:"MultiPoint",coordinates:A.coordinates.map(c)};break;default:return A}return null!=A.id&&(e.id=A.id),null!=A.bbox&&(e.bbox=A.bbox),null!=A.properties&&(e.properties=A.properties),e}for(f in u)s[f]=h(u[f]);return{type:"Topology",bbox:a,transform:e,objects:s,arcs:A.arcs.map((function(A){var e,t=0,r=1,n=A.length,i=new Array(n);for(i[0]=l(A[0],0);++t<n;)((e=l(A[t],t))[0]||e[1])&&(i[r++]=e);return 1===r&&(i[r++]=[0,0]),i.length=r,i}))}},quantile:function(A,e){var t=[];return A.arcs.forEach((function(A){A.forEach((function(A){isFinite(A[2])&&t.push(A[2])}))})),t.length&&function(A,e){if(!(t=A.length))return;if((e=+e)<=0||t<2)return A[0];if(e>=1)return A[t-1];var t,r=(t-1)*e,n=Math.floor(r),i=A[n],o=A[n+1];return i+(o-i)*(r-n)}(t.sort(Vo),e)},simple:function(A,e){e=null==e?Number.MIN_VALUE:+e;var t=A.arcs.map((function(A){for(var t,r=-1,n=0,i=A.length,o=new Array(i);++r<i;)(t=A[r])[2]>=e&&(o[n++]=[t[0],t[1]]);return o.length=n,o}));return{type:"Topology",transform:A.transform,bbox:A.bbox,objects:A.objects,arcs:t}},feature:So}),Object.assign({},{feature:So}),Object.assign({},{geoEquirectangularRaw:so,geoBounds:function(A){var e,t,r,n,i,o,a;if(qt=Jt=-(Xt=Kt=1/0),nr=[],Ot(A,Ur),t=nr.length){for(nr.sort(jr),e=1,i=[r=nr[0]];e<t;++e)Zr(r,(n=nr[e])[0])||Zr(r,n[1])?(Vr(r[0],n[1])>Vr(r[0],r[1])&&(r[1]=n[1]),Vr(n[0],r[1])>Vr(r[0],r[1])&&(r[0]=n[0])):i.push(r=n);for(o=-1/0,e=0,r=i[t=i.length-1];e<=t;r=n,++e)n=i[e],(a=Vr(r[1],n[0]))>o&&(o=a,Xt=n[0],Jt=r[1])}return nr=ir=null,Xt===1/0||Kt===1/0?[[NaN,NaN],[NaN,NaN]]:[[Xt,Kt],[Jt,qt]]}}),Object.assign({},{topology:Qo,neighbors:function(A){var e={},t=A.map((function(){return[]}));function r(A,t){A.forEach((function(A){A<0&&(A=~A);var r=e[A];r?r.push(t):e[A]=[t]}))}function n(A,e){A.forEach((function(A){r(A,e)}))}var i={LineString:r,MultiLineString:n,Polygon:n,MultiPolygon:function(A,e){A.forEach((function(A){n(A,e)}))}};for(var o in A.forEach((function A(e,t){"GeometryCollection"===e.type?e.geometries.forEach((function(e){A(e,t)})):e.type in i&&i[e.type](e.arcs,t)})),e)for(var a=e[o],f=a.length,l=0;l<f;++l)for(var u=l+1;u<f;++u){var s,c=a[l],h=a[u];(s=t[c])[o=Lo(s,h)]!==h&&s.splice(o,0,h),(s=t[h])[o=Lo(s,c)]!==c&&s.splice(o,0,c)}return t},mesh:function(A){return Go(A,Uo.apply(this,arguments))}}),Object.assign({},bt);var jo={exports:{}};function Zo(A,{simple:e=!0}={}){const t=XA(A);let r=t.import(A),n=r?.stream?geoRewindProjection(r,e):r?.type?Wo(r,e):Array.isArray(r)?Array.from(r,(A=>Zo(A,e))):r;return t.export(n)}!function(){function A(A,e,t){function r(A){return A.map((function(A,r){return r<2?1*A.toFixed(e):1*A.toFixed(t)}))}function n(A){return A.map(r)}function i(A){return A.map(n)}function o(A){if(!A)return{};switch(A.type){case"Point":return A.coordinates=r(A.coordinates),A;case"LineString":case"MultiPoint":return A.coordinates=n(A.coordinates),A;case"Polygon":case"MultiLineString":return A.coordinates=i(A.coordinates),A;case"MultiPolygon":return A.coordinates=A.coordinates.map(i),A;case"GeometryCollection":return A.geometries=A.geometries.map(o),A;default:return{}}}function a(A){return A.geometry=o(A.geometry),A}if(!A)return A;switch(A.type){case"Feature":return a(A);case"GeometryCollection":return(l=A).geometries=l.geometries.map(o),l;case"FeatureCollection":return(f=A).features=f.features.map(a),f;case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiPolygon":case"MultiLineString":return o(A);default:return A}var f,l}jo.exports=A,jo.exports.parse=A}(),Object.assign({},{geoArea:hr,geoCentroid:on,geoIdentity:function(){var A,e,t,r,n,i,o,a=1,f=0,l=0,u=1,s=1,c=0,h=null,g=1,d=1,p=Ji({point:function(A,e){var t=v([A,e]);this.stream.point(t[0],t[1])}}),w=qn;function b(){return g=a*u,d=a*s,i=o=null,v}function v(t){var r=t[0]*g,n=t[1]*d;if(c){var i=n*A-r*e;r=r*A+n*e,n=i}return[r+f,n+l]}return v.invert=function(t){var r=t[0]-f,n=t[1]-l;if(c){var i=n*A+r*e;r=r*A-n*e,n=i}return[r/g,n/d]},v.stream=function(A){return i&&o===A?i:i=p(w(o=A))},v.postclip=function(A){return arguments.length?(w=A,h=t=r=n=null,b()):w},v.clipExtent=function(A){return arguments.length?(w=null==A?(h=t=r=n=null,qn):In(h=+A[0][0],t=+A[0][1],r=+A[1][0],n=+A[1][1]),b()):null==h?null:[[h,t],[r,n]]},v.scale=function(A){return arguments.length?(a=+A,b()):a},v.translate=function(A){return arguments.length?(f=+A[0],l=+A[1],b()):[f,l]},v.angle=function(t){return arguments.length?(e=Ft(c=t%360*Mt),A=Ct(c),b()):c*_t},v.reflectX=function(A){return arguments.length?(u=A?-1:1,b()):u<0},v.reflectY=function(A){return arguments.length?(s=A?-1:1,b()):s<0},v.fitExtent=function(A,e){return Ao(v,A,e)},v.fitSize=function(A,e){return eo(v,A,e)},v.fitWidth=function(A,e){return to(v,A,e)},v.fitHeight=function(A,e){return ro(v,A,e)},v},geoPath:Ki});const Wo=(A,e)=>Xo(A,function(A=!0){let e,t;return r={polygonStart(){this.stream.polygonStart(),t=[]},lineStart(){t?t.push(e=[]):this.stream.lineStart()},lineEnd(){t||this.stream.lineEnd()},point(A,r){t?e.push([A,r]):this.stream.point(A,r)},polygonEnd(){for(let[e,r]of t.entries()){r.push(r[0].slice()),(e?!Zn({type:"Polygon",coordinates:[r]},t[0][0]):t[1]?!Zn({type:"Polygon",coordinates:[r]},t[1][0]):A&&hr({type:"Polygon",coordinates:[r]})>2*Math.PI)&&r.reverse(),this.stream.lineStart(),r.pop();for(const[A,e]of r)this.stream.point(A,e);this.stream.lineEnd()}this.stream.polygonEnd(),t=null}},{stream:Ji(r)};var r}(e));const Xo=function(A,e){const t=e.stream;let r;if(!t)throw new Error("invalid projection");switch(A&&A.type){case"Feature":r=Jo;break;case"FeatureCollection":r=Ko;break;default:r=qo}return r(A,t)};function Ko(A,e){return{...A,features:A.features.map((A=>Jo(A,e)))}}function Jo(A,e){return{...A,geometry:qo(A.geometry,e)}}function qo(A,e){return A?"GeometryCollection"===A.type?function(A,e){return{...A,geometries:A.geometries.map((A=>qo(A,e)))}}(A,e):"Polygon"===A.type||"MultiPolygon"===A.type?function(A,e){let t,r,n=[];Ot(A,e({polygonStart(){n.push(t=[])},polygonEnd(){},lineStart(){t.push(r=[])},lineEnd(){r.push(r[0].slice())},point(A,e){r.push([A,e])}})),"Polygon"===A.type&&(n=n[0]);return{...A,coordinates:n}}(A,e):A:null}function $o(A,e,t=0,r=A.length-1,n=ea){for(;r>t;){if(r-t>600){const i=r-t+1,o=e-t+1,a=Math.log(i),f=.5*Math.exp(2*a/3),l=.5*Math.sqrt(a*f*(i-f)/i)*(o-i/2<0?-1:1);$o(A,e,Math.max(t,Math.floor(e-o*f/i+l)),Math.min(r,Math.floor(e+(i-o)*f/i+l)),n)}const i=A[e];let o=t,a=r;for(Aa(A,t,e),n(A[r],i)>0&&Aa(A,t,r);o<a;){for(Aa(A,o,a),o++,a--;n(A[o],i)<0;)o++;for(;n(A[a],i)>0;)a--}0===n(A[t],i)?Aa(A,t,a):(a++,Aa(A,a,r)),a<=e&&(t=a+1),e<=a&&(r=a-1)}}function Aa(A,e,t){const r=A[e];A[e]=A[t],A[t]=r}function ea(A,e){return A<e?-1:A>e?1:0}Object.assign({},{geoAzimuthalEquidistant:function(){return fo(uo).scale(79.4188).clipAngle(179.999)},geoCentroid:on});class ta{constructor(A=9){this._maxEntries=Math.max(4,A),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(A){let e=this.data;const t=[];if(!ha(A,e))return t;const r=this.toBBox,n=[];for(;e;){for(let i=0;i<e.children.length;i++){const o=e.children[i],a=e.leaf?r(o):o;ha(A,a)&&(e.leaf?t.push(o):ca(A,a)?this._all(o,t):n.push(o))}e=n.pop()}return t}collides(A){let e=this.data;if(!ha(A,e))return!1;const t=[];for(;e;){for(let r=0;r<e.children.length;r++){const n=e.children[r],i=e.leaf?this.toBBox(n):n;if(ha(A,i)){if(e.leaf||ca(A,i))return!0;t.push(n)}}e=t.pop()}return!1}load(A){if(!A||!A.length)return this;if(A.length<this._minEntries){for(let e=0;e<A.length;e++)this.insert(A[e]);return this}let e=this._build(A.slice(),0,A.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){const A=this.data;this.data=e,e=A}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(A){return A&&this._insert(A,this.data.height-1),this}clear(){return this.data=ga([]),this}remove(A,e){if(!A)return this;let t=this.data;const r=this.toBBox(A),n=[],i=[];let o,a,f;for(;t||n.length;){if(t||(t=n.pop(),a=n[n.length-1],o=i.pop(),f=!0),t.leaf){const r=ra(A,t.children,e);if(-1!==r)return t.children.splice(r,1),n.push(t),this._condense(n),this}f||t.leaf||!ca(t,r)?a?(o++,t=a.children[o],f=!1):t=null:(n.push(t),i.push(o),o=0,a=t,t=t.children[0])}return this}toBBox(A){return A}compareMinX(A,e){return A.minX-e.minX}compareMinY(A,e){return A.minY-e.minY}toJSON(){return this.data}fromJSON(A){return this.data=A,this}_all(A,e){const t=[];for(;A;)A.leaf?e.push(...A.children):t.push(...A.children),A=t.pop();return e}_build(A,e,t,r){const n=t-e+1;let i,o=this._maxEntries;if(n<=o)return i=ga(A.slice(e,t+1)),na(i,this.toBBox),i;r||(r=Math.ceil(Math.log(n)/Math.log(o)),o=Math.ceil(n/Math.pow(o,r-1))),i=ga([]),i.leaf=!1,i.height=r;const a=Math.ceil(n/o),f=a*Math.ceil(Math.sqrt(o));da(A,e,t,f,this.compareMinX);for(let n=e;n<=t;n+=f){const e=Math.min(n+f-1,t);da(A,n,e,a,this.compareMinY);for(let t=n;t<=e;t+=a){const n=Math.min(t+a-1,e);i.children.push(this._build(A,t,n,r-1))}}return na(i,this.toBBox),i}_chooseSubtree(A,e,t,r){for(;r.push(e),!e.leaf&&r.length-1!==t;){let t,r=1/0,o=1/0;for(let a=0;a<e.children.length;a++){const f=e.children[a],l=la(f),u=(n=A,i=f,(Math.max(i.maxX,n.maxX)-Math.min(i.minX,n.minX))*(Math.max(i.maxY,n.maxY)-Math.min(i.minY,n.minY))-l);u<o?(o=u,r=l<r?l:r,t=f):u===o&&l<r&&(r=l,t=f)}e=t||e.children[0]}var n,i;return e}_insert(A,e,t){const r=t?A:this.toBBox(A),n=[],i=this._chooseSubtree(r,this.data,e,n);for(i.children.push(A),oa(i,r);e>=0&&n[e].children.length>this._maxEntries;)this._split(n,e),e--;this._adjustParentBBoxes(r,n,e)}_split(A,e){const t=A[e],r=t.children.length,n=this._minEntries;this._chooseSplitAxis(t,n,r);const i=this._chooseSplitIndex(t,n,r),o=ga(t.children.splice(i,t.children.length-i));o.height=t.height,o.leaf=t.leaf,na(t,this.toBBox),na(o,this.toBBox),e?A[e-1].children.push(o):this._splitRoot(t,o)}_splitRoot(A,e){this.data=ga([A,e]),this.data.height=A.height+1,this.data.leaf=!1,na(this.data,this.toBBox)}_chooseSplitIndex(A,e,t){let r,n=1/0,i=1/0;for(let o=e;o<=t-e;o++){const e=ia(A,0,o,this.toBBox),a=ia(A,o,t,this.toBBox),f=sa(e,a),l=la(e)+la(a);f<n?(n=f,r=o,i=l<i?l:i):f===n&&l<i&&(i=l,r=o)}return r||t-e}_chooseSplitAxis(A,e,t){const r=A.leaf?this.compareMinX:aa,n=A.leaf?this.compareMinY:fa;this._allDistMargin(A,e,t,r)<this._allDistMargin(A,e,t,n)&&A.children.sort(r)}_allDistMargin(A,e,t,r){A.children.sort(r);const n=this.toBBox,i=ia(A,0,e,n),o=ia(A,t-e,t,n);let a=ua(i)+ua(o);for(let r=e;r<t-e;r++){const e=A.children[r];oa(i,A.leaf?n(e):e),a+=ua(i)}for(let r=t-e-1;r>=e;r--){const e=A.children[r];oa(o,A.leaf?n(e):e),a+=ua(o)}return a}_adjustParentBBoxes(A,e,t){for(let r=t;r>=0;r--)oa(e[r],A)}_condense(A){for(let e,t=A.length-1;t>=0;t--)0===A[t].children.length?t>0?(e=A[t-1].children,e.splice(e.indexOf(A[t]),1)):this.clear():na(A[t],this.toBBox)}}function ra(A,e,t){if(!t)return e.indexOf(A);for(let r=0;r<e.length;r++)if(t(A,e[r]))return r;return-1}function na(A,e){ia(A,0,A.children.length,e,A)}function ia(A,e,t,r,n){n||(n=ga(null)),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(let i=e;i<t;i++){const e=A.children[i];oa(n,A.leaf?r(e):e)}return n}function oa(A,e){return A.minX=Math.min(A.minX,e.minX),A.minY=Math.min(A.minY,e.minY),A.maxX=Math.max(A.maxX,e.maxX),A.maxY=Math.max(A.maxY,e.maxY),A}function aa(A,e){return A.minX-e.minX}function fa(A,e){return A.minY-e.minY}function la(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function ua(A){return A.maxX-A.minX+(A.maxY-A.minY)}function sa(A,e){const t=Math.max(A.minX,e.minX),r=Math.max(A.minY,e.minY),n=Math.min(A.maxX,e.maxX),i=Math.min(A.maxY,e.maxY);return Math.max(0,n-t)*Math.max(0,i-r)}function ca(A,e){return A.minX<=e.minX&&A.minY<=e.minY&&e.maxX<=A.maxX&&e.maxY<=A.maxY}function ha(A,e){return e.minX<=A.maxX&&e.minY<=A.maxY&&e.maxX>=A.minX&&e.maxY>=A.minY}function ga(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function da(A,e,t,r,n){const i=[e,t];for(;i.length;){if((t=i.pop())-(e=i.pop())<=r)continue;const o=e+Math.ceil((t-e)/r/2)*r;$o(A,o,e,t,n),i.push(e,o,o,t)}}function pa(A,e,t={}){const r={type:"Feature"};return(0===t.id||t.id)&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.properties=e||{},r.geometry=A,r}function wa(A,e={}){const t={type:"FeatureCollection"};return e.id&&(t.id=e.id),e.bbox&&(t.bbox=e.bbox),t.features=A,t}function ba(A,e,t){if(null!==A)for(var r,n,i,o,a,f,l,u,s=0,c=0,h=A.type,g="FeatureCollection"===h,d="Feature"===h,p=g?A.features.length:1,w=0;w<p;w++){a=(u=!!(l=g?A.features[w].geometry:d?A.geometry:A)&&"GeometryCollection"===l.type)?l.geometries.length:1;for(var b=0;b<a;b++){var v=0,y=0;if(null!==(o=u?l.geometries[b]:l)){f=o.coordinates;var m=o.type;switch(s=0,m){case null:break;case"Point":if(!1===e(f,c,w,v,y))return!1;c++,v++;break;case"LineString":case"MultiPoint":for(r=0;r<f.length;r++){if(!1===e(f[r],c,w,v,y))return!1;c++,"MultiPoint"===m&&v++}"LineString"===m&&v++;break;case"Polygon":case"MultiLineString":for(r=0;r<f.length;r++){for(n=0;n<f[r].length-s;n++){if(!1===e(f[r][n],c,w,v,y))return!1;c++}"MultiLineString"===m&&v++,"Polygon"===m&&y++}"Polygon"===m&&v++;break;case"MultiPolygon":for(r=0;r<f.length;r++){for(y=0,n=0;n<f[r].length;n++){for(i=0;i<f[r][n].length-s;i++){if(!1===e(f[r][n][i],c,w,v,y))return!1;c++}y++}v++}break;case"GeometryCollection":for(r=0;r<o.geometries.length;r++)if(!1===ba(o.geometries[r],e))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function va(A,e={}){if(null!=A.bbox&&!0!==e.recompute)return A.bbox;const t=[1/0,1/0,-1/0,-1/0];return ba(A,(A=>{t[0]>A[0]&&(t[0]=A[0]),t[1]>A[1]&&(t[1]=A[1]),t[2]<A[0]&&(t[2]=A[0]),t[3]<A[1]&&(t[3]=A[1])})),t}function ya(A,e){for(var t=0,r=0,n=0,i=0,o=0,a=0,f=0,l=0,u=null,s=null,c=A[0],h=A[1],g=e.length;t<g;t++){r=0;var d=e[t].length-1,p=e[t];if((u=p[0])[0]!==p[d][0]&&u[1]!==p[d][1])throw new Error("First and last coordinates in a ring must be the same");for(o=u[0]-c,a=u[1]-h;r<d;r++)if(l=(s=p[r+1])[1]-h,a<0&&l<0||a>0&&l>0)a=l,o=(u=s)[0]-c;else{if(f=s[0]-A[0],l>0&&a<=0){if((i=o*l-f*a)>0)n+=1;else if(0===i)return 0}else if(a>0&&l<=0){if((i=o*l-f*a)<0)n+=1;else if(0===i)return 0}else if(0===l&&a<0){if(0===(i=o*l-f*a))return 0}else if(0===a&&l<0){if(0===(i=o*l-f*a))return 0}else if(0===a&&0===l){if(f<=0&&o>=0)return 0;if(o<=0&&f>=0)return 0}u=s,a=l,o=f}}return n%2!=0}var ma=function(A,e,t={}){if(!A)throw new Error("point is required");if(!e)throw new Error("polygon is required");const r=function(A){if(!A)throw new Error("coord is required");if(!Array.isArray(A)){if("Feature"===A.type&&null!==A.geometry&&"Point"===A.geometry.type)return[...A.geometry.coordinates];if("Point"===A.type)return[...A.coordinates]}if(Array.isArray(A)&&A.length>=2&&!Array.isArray(A[0])&&!Array.isArray(A[1]))return[...A];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(A),n="Feature"===(i=e).type?i.geometry:i;var i;const o=n.type,a=e.bbox;let f=n.coordinates;if(a&&!1===function(A,e){return e[0]<=A[0]&&e[1]<=A[1]&&e[2]>=A[0]&&e[3]>=A[1]}(r,a))return!1;"Polygon"===o&&(f=[f]);let l=!1;for(var u=0;u<f.length;++u){const A=ya(r,f[u]);if(0===A)return!t.ignoreBoundary;A&&(l=!0)}return l};
2
2
  /**
3
3
  * splaytree v3.1.2
4
4
  * Fast Splay tree for Node and browser
@@ -21,4 +21,4 @@
21
21
  See the Apache Version 2.0 License for specific language governing permissions
22
22
  and limitations under the License.
23
23
  ***************************************************************************** */
24
- function se(A,e){var r,t,n,i,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,t&&(n=2&i[0]?t.return:i[0]?t.throw||((n=t.return)&&n.call(t),0):t.next)&&!(n=n.call(t,i[1])).done)return n;switch(t=0,n&&(i=[2&i[0],n.value]),i[0]){case 0:case 1:n=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,t=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(n=o.trys,(n=n.length>0&&n[n.length-1])||6!==i[0]&&2!==i[0])){o=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){o.label=i[1];break}if(6===i[0]&&o.label<n[1]){o.label=n[1],n=i;break}if(n&&o.label<n[2]){o.label=n[2],o.ops.push(i);break}n[2]&&o.ops.pop(),o.trys.pop();continue}i=e.call(A,o)}catch(A){i=[6,A],t=0}finally{r=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}var ue=function(A,e){this.next=null,this.key=A,this.data=e,this.left=null,this.right=null};function ce(A,e){return A>e?1:A<e?-1:0}function he(A,e,r){for(var t=new ue(null,null),n=t,i=t;;){var o=r(A,e.key);if(o<0){if(null===e.left)break;if(r(A,e.left.key)<0){var a=e.left;if(e.left=a.right,a.right=e,null===(e=a).left)break}i.left=e,i=e,e=e.left}else{if(!(o>0))break;if(null===e.right)break;if(r(A,e.right.key)>0){a=e.right;if(e.right=a.left,a.left=e,null===(e=a).right)break}n.right=e,n=e,e=e.right}}return n.right=e.left,i.left=e.right,e.left=t.right,e.right=t.left,e}function ge(A,e,r,t){var n=new ue(A,e);if(null===r)return n.left=n.right=null,n;var i=t(A,(r=he(A,r,t)).key);return i<0?(n.left=r.left,n.right=r,r.left=null):i>=0&&(n.right=r.right,n.left=r,r.right=null),n}function de(A,e,r){var t=null,n=null;if(e){var i=r((e=he(A,e,r)).key,A);0===i?(t=e.left,n=e.right):i<0?(n=e.right,e.right=null,t=e):(t=e.left,e.left=null,n=e)}return{left:t,right:n}}function we(A,e,r,t,n){if(A){t(e+(r?"└── ":"├── ")+n(A)+"\n");var i=e+(r?" ":"│ ");A.left&&we(A.left,i,!1,t,n),A.right&&we(A.right,i,!0,t,n)}}var be=function(){function A(A){void 0===A&&(A=ce),this._root=null,this._size=0,this._comparator=A}return A.prototype.insert=function(A,e){return this._size++,this._root=ge(A,e,this._root,this._comparator)},A.prototype.add=function(A,e){var r=new ue(A,e);null===this._root&&(r.left=r.right=null,this._size++,this._root=r);var t=this._comparator,n=he(A,this._root,t),i=t(A,n.key);return 0===i?this._root=n:(i<0?(r.left=n.left,r.right=n,n.left=null):i>0&&(r.right=n.right,r.left=n,n.right=null),this._size++,this._root=r),this._root},A.prototype.remove=function(A){this._root=this._remove(A,this._root,this._comparator)},A.prototype._remove=function(A,e,r){var t;return null===e?null:0===r(A,(e=he(A,e,r)).key)?(null===e.left?t=e.right:(t=he(A,e.left,r)).right=e.right,this._size--,t):e},A.prototype.pop=function(){var A=this._root;if(A){for(;A.left;)A=A.left;return this._root=he(A.key,this._root,this._comparator),this._root=this._remove(A.key,this._root,this._comparator),{key:A.key,data:A.data}}return null},A.prototype.findStatic=function(A){for(var e=this._root,r=this._comparator;e;){var t=r(A,e.key);if(0===t)return e;e=t<0?e.left:e.right}return null},A.prototype.find=function(A){return this._root&&(this._root=he(A,this._root,this._comparator),0!==this._comparator(A,this._root.key))?null:this._root},A.prototype.contains=function(A){for(var e=this._root,r=this._comparator;e;){var t=r(A,e.key);if(0===t)return!0;e=t<0?e.left:e.right}return!1},A.prototype.forEach=function(A,e){for(var r=this._root,t=[],n=!1;!n;)null!==r?(t.push(r),r=r.left):0!==t.length?(r=t.pop(),A.call(e,r),r=r.right):n=!0;return this},A.prototype.range=function(A,e,r,t){for(var n=[],i=this._comparator,o=this._root;0!==n.length||o;)if(o)n.push(o),o=o.left;else{if(i((o=n.pop()).key,e)>0)break;if(i(o.key,A)>=0&&r.call(t,o))return this;o=o.right}return this},A.prototype.keys=function(){var A=[];return this.forEach((function(e){var r=e.key;return A.push(r)})),A},A.prototype.values=function(){var A=[];return this.forEach((function(e){var r=e.data;return A.push(r)})),A},A.prototype.min=function(){return this._root?this.minNode(this._root).key:null},A.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},A.prototype.minNode=function(A){if(void 0===A&&(A=this._root),A)for(;A.left;)A=A.left;return A},A.prototype.maxNode=function(A){if(void 0===A&&(A=this._root),A)for(;A.right;)A=A.right;return A},A.prototype.at=function(A){for(var e=this._root,r=!1,t=0,n=[];!r;)if(e)n.push(e),e=e.left;else if(n.length>0){if(e=n.pop(),t===A)return e;t++,e=e.right}else r=!0;return null},A.prototype.next=function(A){var e=this._root,r=null;if(A.right){for(r=A.right;r.left;)r=r.left;return r}for(var t=this._comparator;e;){var n=t(A.key,e.key);if(0===n)break;n<0?(r=e,e=e.left):e=e.right}return r},A.prototype.prev=function(A){var e=this._root,r=null;if(null!==A.left){for(r=A.left;r.right;)r=r.right;return r}for(var t=this._comparator;e;){var n=t(A.key,e.key);if(0===n)break;n<0?e=e.left:(r=e,e=e.right)}return r},A.prototype.clear=function(){return this._root=null,this._size=0,this},A.prototype.toList=function(){return function(A){var e=A,r=[],t=!1,n=new ue(null,null),i=n;for(;!t;)e?(r.push(e),e=e.left):r.length>0?e=(e=i=i.next=r.pop()).right:t=!0;return i.next=null,n.next}(this._root)},A.prototype.load=function(A,e,r){void 0===e&&(e=[]),void 0===r&&(r=!1);var t=A.length,n=this._comparator;if(r&&ke(A,e,0,t-1,n),null===this._root)this._root=Be(A,e,0,t),this._size=t;else{var i=function(A,e,r){var t=new ue(null,null),n=t,i=A,o=e;for(;null!==i&&null!==o;)r(i.key,o.key)<0?(n.next=i,i=i.next):(n.next=o,o=o.next),n=n.next;null!==i?n.next=i:null!==o&&(n.next=o);return t.next}(this.toList(),function(A,e){for(var r=new ue(null,null),t=r,n=0;n<A.length;n++)t=t.next=new ue(A[n],e[n]);return t.next=null,r.next}(A,e),n);t=this._size+t,this._root=pe({head:i},0,t)}return this},A.prototype.isEmpty=function(){return null===this._root},Object.defineProperty(A.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(A.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),A.prototype.toString=function(A){void 0===A&&(A=function(A){return String(A.key)});var e=[];return we(this._root,"",!0,(function(A){return e.push(A)}),A),e.join("")},A.prototype.update=function(A,e,r){var t=this._comparator,n=de(A,this._root,t),i=n.left,o=n.right;t(A,e)<0?o=ge(e,r,o,t):i=ge(e,r,i,t),this._root=function(A,e,r){return null===e?A:(null===A||((e=he(A.key,e,r)).left=A),e)}(i,o,t)},A.prototype.split=function(A){return de(A,this._root,this._comparator)},A.prototype[Symbol.iterator]=function(){var A,e,r;return se(this,(function(t){switch(t.label){case 0:A=this._root,e=[],r=!1,t.label=1;case 1:return r?[3,6]:null===A?[3,2]:(e.push(A),A=A.left,[3,5]);case 2:return 0===e.length?[3,4]:[4,A=e.pop()];case 3:return t.sent(),A=A.right,[3,5];case 4:r=!0,t.label=5;case 5:return[3,1];case 6:return[2]}}))},A}();function Be(A,e,r,t){var n=t-r;if(n>0){var i=r+Math.floor(n/2),o=A[i],a=e[i],f=new ue(o,a);return f.left=Be(A,e,r,i),f.right=Be(A,e,i+1,t),f}return null}function pe(A,e,r){var t=r-e;if(t>0){var n=e+Math.floor(t/2),i=pe(A,e,n),o=A.head;return o.left=i,A.head=A.head.next,o.right=pe(A,n+1,r),o}return null}function ke(A,e,r,t,n){if(!(r>=t)){for(var i=A[r+t>>1],o=r-1,a=t+1;;){do{o++}while(n(A[o],i)<0);do{a--}while(n(A[a],i)>0);if(o>=a)break;var f=A[o];A[o]=A[a],A[a]=f,f=e[o],e[o]=e[a],e[a]=f}ke(A,e,r,a,n),ke(A,e,a+1,t,n)}}const ve=(A,e)=>A.ll.x<=e.x&&e.x<=A.ur.x&&A.ll.y<=e.y&&e.y<=A.ur.y,Ee=(A,e)=>{if(e.ur.x<A.ll.x||A.ur.x<e.ll.x||e.ur.y<A.ll.y||A.ur.y<e.ll.y)return null;const r=A.ll.x<e.ll.x?e.ll.x:A.ll.x,t=A.ur.x<e.ur.x?A.ur.x:e.ur.x;return{ll:{x:r,y:A.ll.y<e.ll.y?e.ll.y:A.ll.y},ur:{x:t,y:A.ur.y<e.ur.y?A.ur.y:e.ur.y}}};let ye=Number.EPSILON;void 0===ye&&(ye=Math.pow(2,-52));const _e=ye*ye,me=(A,e)=>{if(-ye<A&&A<ye&&-ye<e&&e<ye)return 0;const r=A-e;return r*r<_e*A*e?0:A<e?-1:1};class Qe{constructor(){this.tree=new be,this.round(0)}round(A){const e=this.tree.add(A),r=this.tree.prev(e);if(null!==r&&0===me(e.key,r.key))return this.tree.remove(A),r.key;const t=this.tree.next(e);return null!==t&&0===me(e.key,t.key)?(this.tree.remove(A),t.key):A}}const De=new class{constructor(){this.reset()}reset(){this.xRounder=new Qe,this.yRounder=new Qe}round(A,e){return{x:this.xRounder.round(A),y:this.yRounder.round(e)}}},Me=(A,e)=>A.x*e.y-A.y*e.x,Ce=(A,e)=>A.x*e.x+A.y*e.y,xe=(A,e,r)=>{const t=p(A.x,A.y,e.x,e.y,r.x,r.y);return t>0?-1:t<0?1:0},Ie=A=>Math.sqrt(Ce(A,A)),Fe=(A,e,r)=>{const t={x:e.x-A.x,y:e.y-A.y},n={x:r.x-A.x,y:r.y-A.y};return Me(n,t)/Ie(n)/Ie(t)},Pe=(A,e,r)=>{const t={x:e.x-A.x,y:e.y-A.y},n={x:r.x-A.x,y:r.y-A.y};return Ce(n,t)/Ie(n)/Ie(t)},Ge=(A,e,r)=>0===e.y?null:{x:A.x+e.x/e.y*(r-A.y),y:r},Se=(A,e,r)=>0===e.x?null:{x:r,y:A.y+e.y/e.x*(r-A.x)};class Ue{static compare(A,e){const r=Ue.comparePoints(A.point,e.point);return 0!==r?r:(A.point!==e.point&&A.link(e),A.isLeft!==e.isLeft?A.isLeft?1:-1:Re.compare(A.segment,e.segment))}static comparePoints(A,e){return A.x<e.x?-1:A.x>e.x?1:A.y<e.y?-1:A.y>e.y?1:0}constructor(A,e){void 0===A.events?A.events=[this]:A.events.push(this),this.point=A,this.isLeft=e}link(A){if(A.point===this.point)throw new Error("Tried to link already linked events");const e=A.point.events;for(let A=0,r=e.length;A<r;A++){const r=e[A];this.point.events.push(r),r.point=this.point}this.checkForConsuming()}checkForConsuming(){const A=this.point.events.length;for(let e=0;e<A;e++){const r=this.point.events[e];if(void 0===r.segment.consumedBy)for(let t=e+1;t<A;t++){const A=this.point.events[t];void 0===A.consumedBy&&(r.otherSE.point.events===A.otherSE.point.events&&r.segment.consume(A.segment))}}}getAvailableLinkedEvents(){const A=[];for(let e=0,r=this.point.events.length;e<r;e++){const r=this.point.events[e];r!==this&&!r.segment.ringOut&&r.segment.isInResult()&&A.push(r)}return A}getLeftmostComparator(A){const e=new Map,r=r=>{const t=r.otherSE;e.set(r,{sine:Fe(this.point,A.point,t.point),cosine:Pe(this.point,A.point,t.point)})};return(A,t)=>{e.has(A)||r(A),e.has(t)||r(t);const{sine:n,cosine:i}=e.get(A),{sine:o,cosine:a}=e.get(t);return n>=0&&o>=0?i<a?1:i>a?-1:0:n<0&&o<0?i<a?-1:i>a?1:0:o<n?-1:o>n?1:0}}}let Te=0;class Re{static compare(A,e){const r=A.leftSE.point.x,t=e.leftSE.point.x,n=A.rightSE.point.x,i=e.rightSE.point.x;if(i<r)return 1;if(n<t)return-1;const o=A.leftSE.point.y,a=e.leftSE.point.y,f=A.rightSE.point.y,l=e.rightSE.point.y;if(r<t){if(a<o&&a<f)return 1;if(a>o&&a>f)return-1;const r=A.comparePoint(e.leftSE.point);if(r<0)return 1;if(r>0)return-1;const t=e.comparePoint(A.rightSE.point);return 0!==t?t:-1}if(r>t){if(o<a&&o<l)return-1;if(o>a&&o>l)return 1;const r=e.comparePoint(A.leftSE.point);if(0!==r)return r;const t=A.comparePoint(e.rightSE.point);return t<0?1:t>0?-1:1}if(o<a)return-1;if(o>a)return 1;if(n<i){const r=e.comparePoint(A.rightSE.point);if(0!==r)return r}if(n>i){const r=A.comparePoint(e.rightSE.point);if(r<0)return 1;if(r>0)return-1}if(n!==i){const A=f-o,e=n-r,s=l-a,u=i-t;if(A>e&&s<u)return 1;if(A<e&&s>u)return-1}return n>i?1:n<i||f<l?-1:f>l?1:A.id<e.id?-1:A.id>e.id?1:0}constructor(A,e,r,t){this.id=++Te,this.leftSE=A,A.segment=this,A.otherSE=e,this.rightSE=e,e.segment=this,e.otherSE=A,this.rings=r,this.windings=t}static fromRing(A,e,r){let t,n,i;const o=Ue.comparePoints(A,e);if(o<0)t=A,n=e,i=1;else{if(!(o>0))throw new Error(`Tried to create degenerate segment at [${A.x}, ${A.y}]`);t=e,n=A,i=-1}const a=new Ue(t,!0),f=new Ue(n,!1);return new Re(a,f,[r],[i])}replaceRightSE(A){this.rightSE=A,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const A=this.leftSE.point.y,e=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:A<e?A:e},ur:{x:this.rightSE.point.x,y:A>e?A:e}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(A){return A.x===this.leftSE.point.x&&A.y===this.leftSE.point.y||A.x===this.rightSE.point.x&&A.y===this.rightSE.point.y}comparePoint(A){if(this.isAnEndpoint(A))return 0;const e=this.leftSE.point,r=this.rightSE.point,t=this.vector();if(e.x===r.x)return A.x===e.x?0:A.x<e.x?1:-1;const n=(A.y-e.y)/t.y,i=e.x+n*t.x;if(A.x===i)return 0;const o=(A.x-e.x)/t.x,a=e.y+o*t.y;return A.y===a?0:A.y<a?-1:1}getIntersection(A){const e=this.bbox(),r=A.bbox(),t=Ee(e,r);if(null===t)return null;const n=this.leftSE.point,i=this.rightSE.point,o=A.leftSE.point,a=A.rightSE.point,f=ve(e,o)&&0===this.comparePoint(o),l=ve(r,n)&&0===A.comparePoint(n),s=ve(e,a)&&0===this.comparePoint(a),u=ve(r,i)&&0===A.comparePoint(i);if(l&&f)return u&&!s?i:!u&&s?a:null;if(l)return s&&n.x===a.x&&n.y===a.y?null:n;if(f)return u&&i.x===o.x&&i.y===o.y?null:o;if(u&&s)return null;if(u)return i;if(s)return a;const c=((A,e,r,t)=>{if(0===e.x)return Se(r,t,A.x);if(0===t.x)return Se(A,e,r.x);if(0===e.y)return Ge(r,t,A.y);if(0===t.y)return Ge(A,e,r.y);const n=Me(e,t);if(0==n)return null;const i={x:r.x-A.x,y:r.y-A.y},o=Me(i,e)/n,a=Me(i,t)/n;return{x:(A.x+a*e.x+(r.x+o*t.x))/2,y:(A.y+a*e.y+(r.y+o*t.y))/2}})(n,this.vector(),o,A.vector());return null===c?null:ve(t,c)?De.round(c.x,c.y):null}split(A){const e=[],r=void 0!==A.events,t=new Ue(A,!0),n=new Ue(A,!1),i=this.rightSE;this.replaceRightSE(n),e.push(n),e.push(t);const o=new Re(t,i,this.rings.slice(),this.windings.slice());return Ue.comparePoints(o.leftSE.point,o.rightSE.point)>0&&o.swapEvents(),Ue.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),r&&(t.checkForConsuming(),n.checkForConsuming()),e}swapEvents(){const A=this.rightSE;this.rightSE=this.leftSE,this.leftSE=A,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let A=0,e=this.windings.length;A<e;A++)this.windings[A]*=-1}consume(A){let e=this,r=A;for(;e.consumedBy;)e=e.consumedBy;for(;r.consumedBy;)r=r.consumedBy;const t=Re.compare(e,r);if(0!==t){if(t>0){const A=e;e=r,r=A}if(e.prev===r){const A=e;e=r,r=A}for(let A=0,t=r.rings.length;A<t;A++){const t=r.rings[A],n=r.windings[A],i=e.rings.indexOf(t);-1===i?(e.rings.push(t),e.windings.push(n)):e.windings[i]+=n}r.rings=null,r.windings=null,r.consumedBy=e,r.leftSE.consumedBy=e.leftSE,r.rightSE.consumedBy=e.rightSE}}prevInResult(){return void 0!==this._prevInResult||(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null),this._prevInResult}beforeState(){if(void 0!==this._beforeState)return this._beforeState;if(this.prev){const A=this.prev.consumedBy||this.prev;this._beforeState=A.afterState()}else this._beforeState={rings:[],windings:[],multiPolys:[]};return this._beforeState}afterState(){if(void 0!==this._afterState)return this._afterState;const A=this.beforeState();this._afterState={rings:A.rings.slice(0),windings:A.windings.slice(0),multiPolys:[]};const e=this._afterState.rings,r=this._afterState.windings,t=this._afterState.multiPolys;for(let A=0,t=this.rings.length;A<t;A++){const t=this.rings[A],n=this.windings[A],i=e.indexOf(t);-1===i?(e.push(t),r.push(n)):r[i]+=n}const n=[],i=[];for(let A=0,t=e.length;A<t;A++){if(0===r[A])continue;const t=e[A],o=t.poly;if(-1===i.indexOf(o))if(t.isExterior)n.push(o);else{-1===i.indexOf(o)&&i.push(o);const A=n.indexOf(t.poly);-1!==A&&n.splice(A,1)}}for(let A=0,e=n.length;A<e;A++){const e=n[A].multiPoly;-1===t.indexOf(e)&&t.push(e)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(void 0!==this._isInResult)return this._isInResult;const A=this.beforeState().multiPolys,e=this.afterState().multiPolys;switch(Ke.type){case"union":{const r=0===A.length,t=0===e.length;this._isInResult=r!==t;break}case"intersection":{let r,t;A.length<e.length?(r=A.length,t=e.length):(r=e.length,t=A.length),this._isInResult=t===Ke.numMultiPolys&&r<t;break}case"xor":{const r=Math.abs(A.length-e.length);this._isInResult=r%2==1;break}case"difference":{const r=A=>1===A.length&&A[0].isSubject;this._isInResult=r(A)!==r(e);break}default:throw new Error(`Unrecognized operation type found ${Ke.type}`)}return this._isInResult}}class Le{constructor(A,e,r){if(!Array.isArray(A)||0===A.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=e,this.isExterior=r,this.segments=[],"number"!=typeof A[0][0]||"number"!=typeof A[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const t=De.round(A[0][0],A[0][1]);this.bbox={ll:{x:t.x,y:t.y},ur:{x:t.x,y:t.y}};let n=t;for(let e=1,r=A.length;e<r;e++){if("number"!=typeof A[e][0]||"number"!=typeof A[e][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let r=De.round(A[e][0],A[e][1]);r.x===n.x&&r.y===n.y||(this.segments.push(Re.fromRing(n,r,this)),r.x<this.bbox.ll.x&&(this.bbox.ll.x=r.x),r.y<this.bbox.ll.y&&(this.bbox.ll.y=r.y),r.x>this.bbox.ur.x&&(this.bbox.ur.x=r.x),r.y>this.bbox.ur.y&&(this.bbox.ur.y=r.y),n=r)}t.x===n.x&&t.y===n.y||this.segments.push(Re.fromRing(n,t,this))}getSweepEvents(){const A=[];for(let e=0,r=this.segments.length;e<r;e++){const r=this.segments[e];A.push(r.leftSE),A.push(r.rightSE)}return A}}class He{constructor(A,e){if(!Array.isArray(A))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new Le(A[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(let e=1,r=A.length;e<r;e++){const r=new Le(A[e],this,!1);r.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=r.bbox.ll.x),r.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=r.bbox.ll.y),r.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=r.bbox.ur.x),r.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=r.bbox.ur.y),this.interiorRings.push(r)}this.multiPoly=e}getSweepEvents(){const A=this.exteriorRing.getSweepEvents();for(let e=0,r=this.interiorRings.length;e<r;e++){const r=this.interiorRings[e].getSweepEvents();for(let e=0,t=r.length;e<t;e++)A.push(r[e])}return A}}class ze{constructor(A,e){if(!Array.isArray(A))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{"number"==typeof A[0][0][0]&&(A=[A])}catch(A){}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(let e=0,r=A.length;e<r;e++){const r=new He(A[e],this);r.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=r.bbox.ll.x),r.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=r.bbox.ll.y),r.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=r.bbox.ur.x),r.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=r.bbox.ur.y),this.polys.push(r)}this.isSubject=e}getSweepEvents(){const A=[];for(let e=0,r=this.polys.length;e<r;e++){const r=this.polys[e].getSweepEvents();for(let e=0,t=r.length;e<t;e++)A.push(r[e])}return A}}class Oe{static factory(A){const e=[];for(let r=0,t=A.length;r<t;r++){const t=A[r];if(!t.isInResult()||t.ringOut)continue;let n=null,i=t.leftSE,o=t.rightSE;const a=[i],f=i.point,l=[];for(;n=i,i=o,a.push(i),i.point!==f;)for(;;){const A=i.getAvailableLinkedEvents();if(0===A.length){const A=a[0].point,e=a[a.length-1].point;throw new Error(`Unable to complete output ring starting at [${A.x}, ${A.y}]. Last matching segment found ends at [${e.x}, ${e.y}].`)}if(1===A.length){o=A[0].otherSE;break}let r=null;for(let A=0,e=l.length;A<e;A++)if(l[A].point===i.point){r=A;break}if(null!==r){const A=l.splice(r)[0],t=a.splice(A.index);t.unshift(t[0].otherSE),e.push(new Oe(t.reverse()));continue}l.push({index:a.length,point:i.point});const t=i.getLeftmostComparator(n);o=A.sort(t)[0].otherSE;break}e.push(new Oe(a))}return e}constructor(A){this.events=A;for(let e=0,r=A.length;e<r;e++)A[e].segment.ringOut=this;this.poly=null}getGeom(){let A=this.events[0].point;const e=[A];for(let r=1,t=this.events.length-1;r<t;r++){const t=this.events[r].point,n=this.events[r+1].point;0!==xe(t,A,n)&&(e.push(t),A=t)}if(1===e.length)return null;const r=e[0],t=e[1];0===xe(r,A,t)&&e.shift(),e.push(e[0]);const n=this.isExteriorRing()?1:-1,i=this.isExteriorRing()?0:e.length-1,o=this.isExteriorRing()?e.length:-1,a=[];for(let A=i;A!=o;A+=n)a.push([e[A].x,e[A].y]);return a}isExteriorRing(){if(void 0===this._isExteriorRing){const A=this.enclosingRing();this._isExteriorRing=!A||!A.isExteriorRing()}return this._isExteriorRing}enclosingRing(){return void 0===this._enclosingRing&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}_calcEnclosingRing(){let A=this.events[0];for(let e=1,r=this.events.length;e<r;e++){const r=this.events[e];Ue.compare(A,r)>0&&(A=r)}let e=A.segment.prevInResult(),r=e?e.prevInResult():null;for(;;){if(!e)return null;if(!r)return e.ringOut;if(r.ringOut!==e.ringOut)return r.ringOut.enclosingRing()!==e.ringOut?e.ringOut:e.ringOut.enclosingRing();e=r.prevInResult(),r=e?e.prevInResult():null}}}class Ve{constructor(A){this.exteriorRing=A,A.poly=this,this.interiorRings=[]}addInterior(A){this.interiorRings.push(A),A.poly=this}getGeom(){const A=[this.exteriorRing.getGeom()];if(null===A[0])return null;for(let e=0,r=this.interiorRings.length;e<r;e++){const r=this.interiorRings[e].getGeom();null!==r&&A.push(r)}return A}}class Ye{constructor(A){this.rings=A,this.polys=this._composePolys(A)}getGeom(){const A=[];for(let e=0,r=this.polys.length;e<r;e++){const r=this.polys[e].getGeom();null!==r&&A.push(r)}return A}_composePolys(A){const e=[];for(let r=0,t=A.length;r<t;r++){const t=A[r];if(!t.poly)if(t.isExteriorRing())e.push(new Ve(t));else{const A=t.enclosingRing();A.poly||e.push(new Ve(A)),A.poly.addInterior(t)}}return e}}class Ne{constructor(A){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Re.compare;this.queue=A,this.tree=new be(e),this.segments=[]}process(A){const e=A.segment,r=[];if(A.consumedBy)return A.isLeft?this.queue.remove(A.otherSE):this.tree.remove(e),r;const t=A.isLeft?this.tree.add(e):this.tree.find(e);if(!t)throw new Error(`Unable to find segment #${e.id} [${e.leftSE.point.x}, ${e.leftSE.point.y}] -> [${e.rightSE.point.x}, ${e.rightSE.point.y}] in SweepLine tree.`);let n,i,o=t,a=t;for(;void 0===n;)o=this.tree.prev(o),null===o?n=null:void 0===o.key.consumedBy&&(n=o.key);for(;void 0===i;)a=this.tree.next(a),null===a?i=null:void 0===a.key.consumedBy&&(i=a.key);if(A.isLeft){let t=null;if(n){const A=n.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(t=A),!n.isAnEndpoint(A))){const e=this._splitSafely(n,A);for(let A=0,t=e.length;A<t;A++)r.push(e[A])}}let o=null;if(i){const A=i.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(o=A),!i.isAnEndpoint(A))){const e=this._splitSafely(i,A);for(let A=0,t=e.length;A<t;A++)r.push(e[A])}}if(null!==t||null!==o){let A=null;if(null===t)A=o;else if(null===o)A=t;else{A=Ue.comparePoints(t,o)<=0?t:o}this.queue.remove(e.rightSE),r.push(e.rightSE);const n=e.split(A);for(let A=0,e=n.length;A<e;A++)r.push(n[A])}r.length>0?(this.tree.remove(e),r.push(A)):(this.segments.push(e),e.prev=n)}else{if(n&&i){const A=n.getIntersection(i);if(null!==A){if(!n.isAnEndpoint(A)){const e=this._splitSafely(n,A);for(let A=0,t=e.length;A<t;A++)r.push(e[A])}if(!i.isAnEndpoint(A)){const e=this._splitSafely(i,A);for(let A=0,t=e.length;A<t;A++)r.push(e[A])}}}this.tree.remove(e)}return r}_splitSafely(A,e){this.tree.remove(A);const r=A.rightSE;this.queue.remove(r);const t=A.split(e);return t.push(r),void 0===A.consumedBy&&this.tree.add(A),t}}const Ze="undefined"!=typeof process&&process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,We="undefined"!=typeof process&&process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6;const Ke=new class{run(A,e,r){Ke.type=A,De.reset();const t=[new ze(e,!0)];for(let A=0,e=r.length;A<e;A++)t.push(new ze(r[A],!1));if(Ke.numMultiPolys=t.length,"difference"===Ke.type){const A=t[0];let e=1;for(;e<t.length;)null!==Ee(t[e].bbox,A.bbox)?e++:t.splice(e,1)}if("intersection"===Ke.type)for(let A=0,e=t.length;A<e;A++){const e=t[A];for(let r=A+1,n=t.length;r<n;r++)if(null===Ee(e.bbox,t[r].bbox))return[]}const n=new be(Ue.compare);for(let A=0,e=t.length;A<e;A++){const e=t[A].getSweepEvents();for(let A=0,r=e.length;A<r;A++)if(n.insert(e[A]),n.size>Ze)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const i=new Ne(n);let o=n.size,a=n.pop();for(;a;){const A=a.key;if(n.size===o){const e=A.segment;throw new Error(`Unable to pop() ${A.isLeft?"left":"right"} SweepEvent [${A.point.x}, ${A.point.y}] from segment #${e.id} [${e.leftSE.point.x}, ${e.leftSE.point.y}] -> [${e.rightSE.point.x}, ${e.rightSE.point.y}] from queue.`)}if(n.size>Ze)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(i.segments.length>We)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const e=i.process(A);for(let A=0,r=e.length;A<r;A++){const r=e[A];void 0===r.consumedBy&&n.insert(r)}o=n.size,a=n.pop()}De.reset();const f=Oe.factory(i.segments);return new Ye(f).getGeom()}};var je=function(A){for(var e=arguments.length,r=new Array(e>1?e-1:0),t=1;t<e;t++)r[t-1]=arguments[t];return Ke.run("intersection",A,r)};function Je(A,e={}){const r=[];if(function(A,e){var r,t,n,i,o,a,f,l,s,u,c=0,h="FeatureCollection"===A.type,g="Feature"===A.type,d=h?A.features.length:1;for(r=0;r<d;r++){for(a=h?A.features[r].geometry:g?A.geometry:A,l=h?A.features[r].properties:g?A.properties:{},s=h?A.features[r].bbox:g?A.bbox:void 0,u=h?A.features[r].id:g?A.id:void 0,o=(f=!!a&&"GeometryCollection"===a.type)?a.geometries.length:1,n=0;n<o;n++)if(null!==(i=f?a.geometries[n]:a))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===e(i,c,l,s,u))return!1;break;case"GeometryCollection":for(t=0;t<i.geometries.length;t++)if(!1===e(i.geometries[t],c,l,s,u))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===e(null,c,l,s,u))return!1;c++}}(A,(A=>{r.push(A.coordinates)})),r.length<2)throw new Error("Must specify at least 2 geometries");const t=je(r[0],...r.slice(1));return 0===t.length?null:1===t.length?function(A,e,r={}){for(const e of A){if(e.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(e[e.length-1].length!==e[0].length)throw new Error("First and last Position are not equivalent.");for(let A=0;A<e[e.length-1].length;A++)if(e[e.length-1][A]!==e[0][A])throw new Error("First and last Position are not equivalent.")}return fe({type:"Polygon",coordinates:A},e,r)}(t[0],e.properties):function(A,e,r={}){return fe({type:"MultiPolygon",coordinates:A},e,r)}(t,e.properties)}var Xe=2*Math.PI,qe=Math.abs,$e=Math.sqrt;function Ar(){}function er(A,e){A&&tr.hasOwnProperty(A.type)&&tr[A.type](A,e)}var rr={Feature:function(A,e){er(A.geometry,e)},FeatureCollection:function(A,e){for(var r=A.features,t=-1,n=r.length;++t<n;)er(r[t].geometry,e)}},tr={Sphere:function(A,e){e.sphere()},Point:function(A,e){A=A.coordinates,e.point(A[0],A[1],A[2])},MultiPoint:function(A,e){for(var r=A.coordinates,t=-1,n=r.length;++t<n;)A=r[t],e.point(A[0],A[1],A[2])},LineString:function(A,e){nr(A.coordinates,e,0)},MultiLineString:function(A,e){for(var r=A.coordinates,t=-1,n=r.length;++t<n;)nr(r[t],e,0)},Polygon:function(A,e){ir(A.coordinates,e)},MultiPolygon:function(A,e){for(var r=A.coordinates,t=-1,n=r.length;++t<n;)ir(r[t],e)},GeometryCollection:function(A,e){for(var r=A.geometries,t=-1,n=r.length;++t<n;)er(r[t],e)}};function nr(A,e,r){var t,n=-1,i=A.length-r;for(e.lineStart();++n<i;)t=A[n],e.point(t[0],t[1],t[2]);e.lineEnd()}function ir(A,e){var r=-1,t=A.length;for(e.polygonStart();++r<t;)nr(A[r],e,1);e.polygonEnd()}function or(A,e){A&&rr.hasOwnProperty(A.type)?rr[A.type](A,e):er(A,e)}var ar,fr,lr,sr,ur=A=>A,cr=new e,hr=new e,gr={point:Ar,lineStart:Ar,lineEnd:Ar,polygonStart:function(){gr.lineStart=dr,gr.lineEnd=Br},polygonEnd:function(){gr.lineStart=gr.lineEnd=gr.point=Ar,cr.add(qe(hr)),hr=new e},result:function(){var A=cr/2;return cr=new e,A}};function dr(){gr.point=wr}function wr(A,e){gr.point=br,ar=lr=A,fr=sr=e}function br(A,e){hr.add(sr*A-lr*e),lr=A,sr=e}function Br(){br(ar,fr)}var pr=1/0,kr=pr,vr=-pr,Er=vr,yr={point:function(A,e){A<pr&&(pr=A);A>vr&&(vr=A);e<kr&&(kr=e);e>Er&&(Er=e)},lineStart:Ar,lineEnd:Ar,polygonStart:Ar,polygonEnd:Ar,result:function(){var A=[[pr,kr],[vr,Er]];return vr=Er=-(kr=pr=1/0),A}};var _r,mr,Qr,Dr,Mr=0,Cr=0,xr=0,Ir=0,Fr=0,Pr=0,Gr=0,Sr=0,Ur=0,Tr={point:Rr,lineStart:Lr,lineEnd:Or,polygonStart:function(){Tr.lineStart=Vr,Tr.lineEnd=Yr},polygonEnd:function(){Tr.point=Rr,Tr.lineStart=Lr,Tr.lineEnd=Or},result:function(){var A=Ur?[Gr/Ur,Sr/Ur]:Pr?[Ir/Pr,Fr/Pr]:xr?[Mr/xr,Cr/xr]:[NaN,NaN];return Mr=Cr=xr=Ir=Fr=Pr=Gr=Sr=Ur=0,A}};function Rr(A,e){Mr+=A,Cr+=e,++xr}function Lr(){Tr.point=Hr}function Hr(A,e){Tr.point=zr,Rr(Qr=A,Dr=e)}function zr(A,e){var r=A-Qr,t=e-Dr,n=$e(r*r+t*t);Ir+=n*(Qr+A)/2,Fr+=n*(Dr+e)/2,Pr+=n,Rr(Qr=A,Dr=e)}function Or(){Tr.point=Rr}function Vr(){Tr.point=Nr}function Yr(){Zr(_r,mr)}function Nr(A,e){Tr.point=Zr,Rr(_r=Qr=A,mr=Dr=e)}function Zr(A,e){var r=A-Qr,t=e-Dr,n=$e(r*r+t*t);Ir+=n*(Qr+A)/2,Fr+=n*(Dr+e)/2,Pr+=n,Gr+=(n=Dr*A-Qr*e)*(Qr+A),Sr+=n*(Dr+e),Ur+=3*n,Rr(Qr=A,Dr=e)}function Wr(A){this._context=A}Wr.prototype={_radius:4.5,pointRadius:function(A){return this._radius=A,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(A,e){switch(this._point){case 0:this._context.moveTo(A,e),this._point=1;break;case 1:this._context.lineTo(A,e);break;default:this._context.moveTo(A+this._radius,e),this._context.arc(A,e,this._radius,0,Xe)}},result:Ar};var Kr,jr,Jr,Xr,qr,$r=new e,At={point:Ar,lineStart:function(){At.point=et},lineEnd:function(){Kr&&rt(jr,Jr),At.point=Ar},polygonStart:function(){Kr=!0},polygonEnd:function(){Kr=null},result:function(){var A=+$r;return $r=new e,A}};function et(A,e){At.point=rt,jr=Xr=A,Jr=qr=e}function rt(A,e){Xr-=A,qr-=e,$r.add($e(Xr*Xr+qr*qr)),Xr=A,qr=e}let tt,nt,it,ot;class at{constructor(A){this._append=null==A?ft:function(A){const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);if(e>15)return ft;if(e!==tt){const A=10**e;tt=e,nt=function(e){let r=1;this._+=e[0];for(const t=e.length;r<t;++r)this._+=Math.round(arguments[r]*A)/A+e[r]}}return nt}(A),this._radius=4.5,this._=""}pointRadius(A){return this._radius=+A,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(A,e){switch(this._point){case 0:this._append`M${A},${e}`,this._point=1;break;case 1:this._append`L${A},${e}`;break;default:if(this._append`M${A},${e}`,this._radius!==it||this._append!==nt){const A=this._radius,e=this._;this._="",this._append`m0,${A}a${A},${A} 0 1,1 0,${-2*A}a${A},${A} 0 1,1 0,${2*A}z`,it=A,nt=this._append,ot=this._,this._=e}this._+=ot}}result(){const A=this._;return this._="",A.length?A:null}}function ft(A){let e=1;this._+=A[0];for(const r=A.length;e<r;++e)this._+=arguments[e]+A[e]}const lt=Object.assign({},{geoPath:function(A,e){let r,t,n=3,i=4.5;function o(A){return A&&("function"==typeof i&&t.pointRadius(+i.apply(this,arguments)),or(A,r(t))),t.result()}return o.area=function(A){return or(A,r(gr)),gr.result()},o.measure=function(A){return or(A,r(At)),At.result()},o.bounds=function(A){return or(A,r(yr)),yr.result()},o.centroid=function(A){return or(A,r(Tr)),Tr.result()},o.projection=function(e){return arguments.length?(r=null==e?(A=null,ur):(A=e).stream,o):A},o.context=function(A){return arguments.length?(t=null==A?(e=null,new at(n)):new Wr(e=A),"function"!=typeof i&&t.pointRadius(i),o):e},o.pointRadius=function(A){return arguments.length?(i="function"==typeof A?A:(t.pointRadius(+A),+A),o):i},o.digits=function(A){if(!arguments.length)return n;if(null==A)n=null;else{const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);n=e}return null===e&&(t=new at(n)),o},o.projection(A).digits(n).context(e)},groups:function(A,...e){return function(A,e,t,n){return function A(i,o){if(o>=n.length)return t(i);const a=new r,f=n[o++];let l=-1;for(const A of i){const e=f(A,++l,i),r=a.get(e);r?r.push(A):a.set(e,[A])}for(const[e,r]of a)a.set(e,A(r,o));return e(a)}(A,0)}(A,Array.from,i,e)}});let st={square:function({step:A=50,width:e=1e3,height:r=500}={}){let t=f.range(0+A/2,r,A).reverse(),n=f.range(0+A/2,e,A).map((A=>t.map((e=>[A,e])))).flat(),i=A/2;return{type:"FeatureCollection",grid:"square",geo:!1,features:n.map(((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[[[A[0]-i,A[1]+i],[A[0]+i,A[1]+i],[A[0]+i,A[1]-i],[A[0]-i,A[1]-i],[A[0]-i,A[1]+i]]]},properties:{index:e}})))}},triangle:function({step:A=50,width:e=1e3,height:r=500}={}){let t=(A,e)=>{let r=Math.sqrt(3)/2*e,t=[A[0]+e/2,A[1]];return[t,[A[0],A[1]-r],[A[0]-e/2,A[1]],t]},n=(A,e)=>{let r=Math.sqrt(3)/2*e,t=[A[0]+e/2,A[1]];return[t,[A[0],A[1]+r],[A[0]-e/2,A[1]],t]},i=A/Math.sqrt(3),o=Math.sqrt(3)/2*A,a=l.range(0,r+i,o).reverse();a.length%2&&a.unshift(l.max(a)+o);let f=l.range(0,e+i,A).map(((A,e)=>a.map((e=>[A,e])))).flat();f=f.map(((e,r)=>r%2==1?[e[0]+A/2,e[1]]:e));let s=f.length;return f=f.concat(f),{type:"FeatureCollection",grid:"triangle",geo:!1,features:f.map(((e,r)=>({type:"Feature",geometry:{type:"Polygon",coordinates:r<s?[t(e,A)]:[n(e,A)]},properties:{index:r}})))}},dot:function({step:A=30,width:e=1e3,height:r=500}={}){let t=s.range(0+A/2,r,A).reverse();return{type:"FeatureCollection",grid:"dot",geo:!1,features:s.range(0+A/2,e,A).map((A=>t.map((e=>[A,e])))).flat().map(((A,e)=>({type:"Feature",geometry:{type:"Point",coordinates:A},properties:{index:e}})))}},diamond:function({step:A=50,width:e=1e3,height:r=500}={}){let t=A*Math.sqrt(2),n=O.range(0,e+t,t),i=O.range(0,r+t,t/2).reverse(),o=n.map((A=>i.map(((e,r)=>[A,e,r%2])))).flat();o=o.map((A=>1==A[2]?[A[0]+t/2,A[1]]:[A[0],A[1]]));let a=t/2;return{type:"FeatureCollection",grid:"diamond",geo:!1,features:o.map(((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[[[A[0]-a,A[1]],[A[0],A[1]+a],[A[0]+a,A[1]],[A[0],A[1]-a],[A[0]-a,A[1]]]]},properties:{index:e}})))}},random:function({step:A=50,width:e=1e3,height:r=500}={}){let t=[],n=Math.round(e/A*(r/A));for(let A=0;A<n;A++)t.push([Math.random()*e,Math.random()*r]);let i=z.Delaunay.from(t,(A=>A[0]),(A=>A[1])).voronoi([0,0,e,r]);return{type:"FeatureCollection",grid:"random",geo:!1,features:t.map(((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[i.cellPolygon(e)]},properties:{index:e}})))}},hexbin:function({step:A=50,width:e=1e3,height:r=500}={}){let t=A,n=t/Math.sqrt(3),i=2*n*(3/4),o=V.range(0,r+n,i).reverse();o.length%2&&o.unshift(V.max(o)+i);let a=V.range(0,e+n,t).map((A=>o.map((e=>[A,e])))).flat();return a=a.map(((A,e)=>e%2==1?[A[0]+t/2,A[1]]:A)),{type:"FeatureCollection",grid:"hexbin",geo:!1,features:a.map(((A,e)=>{let r=[];for(let e=0;e<6;e++){let t=Math.PI/180*(60*e-30);r.push([A[0]+n*Math.cos(t),A[1]+n*Math.sin(t)])}return{type:"Feature",geometry:{type:"Polygon",coordinates:[[r[0],r[1],r[2],r[3],r[4],r[5],r[0]]]},properties:{index:e}}}))}},h3:function({level:A=0,domain:e,rewind:r}={}){let t;if(e){r=void 0===r||r;const n=ne.featureToH3Set(e,A);t=ne.h3SetToFeatureCollection(n,(A=>({value:A})))}else r=void 0!==r&&r,t={type:"FeatureCollection",grid:"h3",level:A,geo:!0,features:gA().map((e=>hA(e,A))).flat().map((A=>{return{type:"Feature",properties:{id:A,pentagon:(e=A,r=nA(e),t=r[0],n=r[1],Boolean(X.isPentagon(t,n)))},geometry:{type:"Polygon",coordinates:[cA(A).reverse()]}};var e,r,t,n}))};return r?function(A,e={}){A=JSON.parse(JSON.stringify(A));let r=!1!==e.outer,t=!0==(!1!==e.mutate)?A:JSON.parse(JSON.stringify(x));for(let A=0;A<t.features.length;A++)if("Polygon"===t.features[A].geometry.type)ie(t.features[A].geometry.coordinates,r);else if("MultiPolygon"===t.features[A].geometry.type)for(let e=0;e<t.features[A].geometry.coordinates.length;e++)ie(t.features[A].geometry.coordinates[e],r);return t}(t):t}},ut={pointstogrid:function(A={points:void 0,grid:void 0,var:void 0}){let e=A.grid.features,r=A.dots.features,t=new Array(e.length).fill(0),n=r.length,i=new Array(n).fill(!0);return e.forEach(((e,n)=>{r.forEach(((r,o)=>{i[o]&&le(r,e)&&(null==A.var?t[n]=t[n]+1:t[n]=t[n]+parseFloat(r.properties[A.var]),i[o]=!1)}))})),{type:"FeatureCollection",features:e.map(((A,e)=>({type:A.type,geometry:A.geometry,properties:{...A.properties,count:t[e]}}))).filter((A=>0!==A.properties.count))}},polygonstogrid:function(A={grid:void 0,polygons:void 0,var:void 0}){let e,r=A.grid.features,t=A.polygons.features,n=new Map(r.map(((A,e)=>[e,A]))),i=[];function o(A){let r=0;return A[1].forEach((A=>{r+=e.get(A[0])*A[2]})),0==r?void 0:r}return t.forEach(((A,e)=>{const t=lt.geoPath().area(A);r.forEach(((r,n)=>{const o=Je(function(A,e={}){const r={type:"FeatureCollection"};return e.id&&(r.id=e.id),e.bbox&&(r.bbox=e.bbox),r.features=A,r}([A,r]));if(null!==o){let A=lt.geoPath().area(o);i.push([e,n,A/t])}}))})),e=A.var?new Map(t.map(((e,r)=>[r,parseFloat(e.properties[A.var])||0]))):new Map(t.map(((A,e)=>[e,1]))),{type:"FeatureCollection",features:lt.groups(i,(A=>A[1])).map((A=>{let e=n.get(A[0]);return{type:e.type,properties:{...e.properties,sum:o(A)},geometry:e.geometry}}))}}};A.make=st,A.op=ut}));
24
+ function Ba(A,e){var t,r,n,i,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;o;)try{if(t=1,r&&(n=2&i[0]?r.return:i[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,i[1])).done)return n;switch(r=0,n&&(i=[2&i[0],n.value]),i[0]){case 0:case 1:n=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,r=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(n=o.trys,(n=n.length>0&&n[n.length-1])||6!==i[0]&&2!==i[0])){o=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){o.label=i[1];break}if(6===i[0]&&o.label<n[1]){o.label=n[1],n=i;break}if(n&&o.label<n[2]){o.label=n[2],o.ops.push(i);break}n[2]&&o.ops.pop(),o.trys.pop();continue}i=e.call(A,o)}catch(A){i=[6,A],r=0}finally{t=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}Object.assign({},{geoPath:Ki,groups:xe});var Ea=function(A,e){this.next=null,this.key=A,this.data=e,this.left=null,this.right=null};function ka(A,e){return A>e?1:A<e?-1:0}function _a(A,e,t){for(var r=new Ea(null,null),n=r,i=r;;){var o=t(A,e.key);if(o<0){if(null===e.left)break;if(t(A,e.left.key)<0){var a=e.left;if(e.left=a.right,a.right=e,null===(e=a).left)break}i.left=e,i=e,e=e.left}else{if(!(o>0))break;if(null===e.right)break;if(t(A,e.right.key)>0){a=e.right;if(e.right=a.left,a.left=e,null===(e=a).right)break}n.right=e,n=e,e=e.right}}return n.right=e.left,i.left=e.right,e.left=r.right,e.right=r.left,e}function Ma(A,e,t,r){var n=new Ea(A,e);if(null===t)return n.left=n.right=null,n;var i=r(A,(t=_a(A,t,r)).key);return i<0?(n.left=t.left,n.right=t,t.left=null):i>=0&&(n.right=t.right,n.left=t,t.right=null),n}function Qa(A,e,t){var r=null,n=null;if(e){var i=t((e=_a(A,e,t)).key,A);0===i?(r=e.left,n=e.right):i<0?(n=e.right,e.right=null,r=e):(r=e.left,e.left=null,n=e)}return{left:r,right:n}}function xa(A,e,t,r,n){if(A){r(e+(t?"└── ":"├── ")+n(A)+"\n");var i=e+(t?" ":"│ ");A.left&&xa(A.left,i,!1,r,n),A.right&&xa(A.right,i,!0,r,n)}}var Da=function(){function A(A){void 0===A&&(A=ka),this._root=null,this._size=0,this._comparator=A}return A.prototype.insert=function(A,e){return this._size++,this._root=Ma(A,e,this._root,this._comparator)},A.prototype.add=function(A,e){var t=new Ea(A,e);null===this._root&&(t.left=t.right=null,this._size++,this._root=t);var r=this._comparator,n=_a(A,this._root,r),i=r(A,n.key);return 0===i?this._root=n:(i<0?(t.left=n.left,t.right=n,n.left=null):i>0&&(t.right=n.right,t.left=n,n.right=null),this._size++,this._root=t),this._root},A.prototype.remove=function(A){this._root=this._remove(A,this._root,this._comparator)},A.prototype._remove=function(A,e,t){var r;return null===e?null:0===t(A,(e=_a(A,e,t)).key)?(null===e.left?r=e.right:(r=_a(A,e.left,t)).right=e.right,this._size--,r):e},A.prototype.pop=function(){var A=this._root;if(A){for(;A.left;)A=A.left;return this._root=_a(A.key,this._root,this._comparator),this._root=this._remove(A.key,this._root,this._comparator),{key:A.key,data:A.data}}return null},A.prototype.findStatic=function(A){for(var e=this._root,t=this._comparator;e;){var r=t(A,e.key);if(0===r)return e;e=r<0?e.left:e.right}return null},A.prototype.find=function(A){return this._root&&(this._root=_a(A,this._root,this._comparator),0!==this._comparator(A,this._root.key))?null:this._root},A.prototype.contains=function(A){for(var e=this._root,t=this._comparator;e;){var r=t(A,e.key);if(0===r)return!0;e=r<0?e.left:e.right}return!1},A.prototype.forEach=function(A,e){for(var t=this._root,r=[],n=!1;!n;)null!==t?(r.push(t),t=t.left):0!==r.length?(t=r.pop(),A.call(e,t),t=t.right):n=!0;return this},A.prototype.range=function(A,e,t,r){for(var n=[],i=this._comparator,o=this._root;0!==n.length||o;)if(o)n.push(o),o=o.left;else{if(i((o=n.pop()).key,e)>0)break;if(i(o.key,A)>=0&&t.call(r,o))return this;o=o.right}return this},A.prototype.keys=function(){var A=[];return this.forEach((function(e){var t=e.key;return A.push(t)})),A},A.prototype.values=function(){var A=[];return this.forEach((function(e){var t=e.data;return A.push(t)})),A},A.prototype.min=function(){return this._root?this.minNode(this._root).key:null},A.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},A.prototype.minNode=function(A){if(void 0===A&&(A=this._root),A)for(;A.left;)A=A.left;return A},A.prototype.maxNode=function(A){if(void 0===A&&(A=this._root),A)for(;A.right;)A=A.right;return A},A.prototype.at=function(A){for(var e=this._root,t=!1,r=0,n=[];!t;)if(e)n.push(e),e=e.left;else if(n.length>0){if(e=n.pop(),r===A)return e;r++,e=e.right}else t=!0;return null},A.prototype.next=function(A){var e=this._root,t=null;if(A.right){for(t=A.right;t.left;)t=t.left;return t}for(var r=this._comparator;e;){var n=r(A.key,e.key);if(0===n)break;n<0?(t=e,e=e.left):e=e.right}return t},A.prototype.prev=function(A){var e=this._root,t=null;if(null!==A.left){for(t=A.left;t.right;)t=t.right;return t}for(var r=this._comparator;e;){var n=r(A.key,e.key);if(0===n)break;n<0?e=e.left:(t=e,e=e.right)}return t},A.prototype.clear=function(){return this._root=null,this._size=0,this},A.prototype.toList=function(){return function(A){var e=A,t=[],r=!1,n=new Ea(null,null),i=n;for(;!r;)e?(t.push(e),e=e.left):t.length>0?e=(e=i=i.next=t.pop()).right:r=!0;return i.next=null,n.next}(this._root)},A.prototype.load=function(A,e,t){void 0===e&&(e=[]),void 0===t&&(t=!1);var r=A.length,n=this._comparator;if(t&&Fa(A,e,0,r-1,n),null===this._root)this._root=Ca(A,e,0,r),this._size=r;else{var i=function(A,e,t){var r=new Ea(null,null),n=r,i=A,o=e;for(;null!==i&&null!==o;)t(i.key,o.key)<0?(n.next=i,i=i.next):(n.next=o,o=o.next),n=n.next;null!==i?n.next=i:null!==o&&(n.next=o);return r.next}(this.toList(),function(A,e){for(var t=new Ea(null,null),r=t,n=0;n<A.length;n++)r=r.next=new Ea(A[n],e[n]);return r.next=null,t.next}(A,e),n);r=this._size+r,this._root=Ia({head:i},0,r)}return this},A.prototype.isEmpty=function(){return null===this._root},Object.defineProperty(A.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(A.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),A.prototype.toString=function(A){void 0===A&&(A=function(A){return String(A.key)});var e=[];return xa(this._root,"",!0,(function(A){return e.push(A)}),A),e.join("")},A.prototype.update=function(A,e,t){var r=this._comparator,n=Qa(A,this._root,r),i=n.left,o=n.right;r(A,e)<0?o=Ma(e,t,o,r):i=Ma(e,t,i,r),this._root=function(A,e,t){return null===e?A:(null===A||((e=_a(A.key,e,t)).left=A),e)}(i,o,r)},A.prototype.split=function(A){return Qa(A,this._root,this._comparator)},A.prototype[Symbol.iterator]=function(){var A,e,t;return Ba(this,(function(r){switch(r.label){case 0:A=this._root,e=[],t=!1,r.label=1;case 1:return t?[3,6]:null===A?[3,2]:(e.push(A),A=A.left,[3,5]);case 2:return 0===e.length?[3,4]:[4,A=e.pop()];case 3:return r.sent(),A=A.right,[3,5];case 4:t=!0,r.label=5;case 5:return[3,1];case 6:return[2]}}))},A}();function Ca(A,e,t,r){var n=r-t;if(n>0){var i=t+Math.floor(n/2),o=A[i],a=e[i],f=new Ea(o,a);return f.left=Ca(A,e,t,i),f.right=Ca(A,e,i+1,r),f}return null}function Ia(A,e,t){var r=t-e;if(r>0){var n=e+Math.floor(r/2),i=Ia(A,e,n),o=A.head;return o.left=i,A.head=A.head.next,o.right=Ia(A,n+1,t),o}return null}function Fa(A,e,t,r,n){if(!(t>=r)){for(var i=A[t+r>>1],o=t-1,a=r+1;;){do{o++}while(n(A[o],i)<0);do{a--}while(n(A[a],i)>0);if(o>=a)break;var f=A[o];A[o]=A[a],A[a]=f,f=e[o],e[o]=e[a],e[a]=f}Fa(A,e,t,a,n),Fa(A,e,a+1,r,n)}}const Sa=(A,e)=>A.ll.x<=e.x&&e.x<=A.ur.x&&A.ll.y<=e.y&&e.y<=A.ur.y,Pa=(A,e)=>{if(e.ur.x<A.ll.x||A.ur.x<e.ll.x||e.ur.y<A.ll.y||A.ur.y<e.ll.y)return null;const t=A.ll.x<e.ll.x?e.ll.x:A.ll.x,r=A.ur.x<e.ur.x?A.ur.x:e.ur.x;return{ll:{x:t,y:A.ll.y<e.ll.y?e.ll.y:A.ll.y},ur:{x:r,y:A.ur.y<e.ur.y?A.ur.y:e.ur.y}}};let Ga=Number.EPSILON;void 0===Ga&&(Ga=Math.pow(2,-52));const Ta=Ga*Ga,Ua=(A,e)=>{if(-Ga<A&&A<Ga&&-Ga<e&&e<Ga)return 0;const t=A-e;return t*t<Ta*A*e?0:A<e?-1:1};class Ra{constructor(){this.tree=new Da,this.round(0)}round(A){const e=this.tree.add(A),t=this.tree.prev(e);if(null!==t&&0===Ua(e.key,t.key))return this.tree.remove(A),t.key;const r=this.tree.next(e);return null!==r&&0===Ua(e.key,r.key)?(this.tree.remove(A),r.key):A}}const La=new class{constructor(){this.reset()}reset(){this.xRounder=new Ra,this.yRounder=new Ra}round(A,e){return{x:this.xRounder.round(A),y:this.yRounder.round(e)}}},Ha=(A,e)=>A.x*e.y-A.y*e.x,Ya=(A,e)=>A.x*e.x+A.y*e.y,za=(A,e,t)=>{const r=u(A.x,A.y,e.x,e.y,t.x,t.y);return r>0?-1:r<0?1:0},Oa=A=>Math.sqrt(Ya(A,A)),Na=(A,e,t)=>{const r={x:e.x-A.x,y:e.y-A.y},n={x:t.x-A.x,y:t.y-A.y};return Ha(n,r)/Oa(n)/Oa(r)},Va=(A,e,t)=>{const r={x:e.x-A.x,y:e.y-A.y},n={x:t.x-A.x,y:t.y-A.y};return Ya(n,r)/Oa(n)/Oa(r)},ja=(A,e,t)=>0===e.y?null:{x:A.x+e.x/e.y*(t-A.y),y:t},Za=(A,e,t)=>0===e.x?null:{x:t,y:A.y+e.y/e.x*(t-A.x)};class Wa{static compare(A,e){const t=Wa.comparePoints(A.point,e.point);return 0!==t?t:(A.point!==e.point&&A.link(e),A.isLeft!==e.isLeft?A.isLeft?1:-1:Ka.compare(A.segment,e.segment))}static comparePoints(A,e){return A.x<e.x?-1:A.x>e.x?1:A.y<e.y?-1:A.y>e.y?1:0}constructor(A,e){void 0===A.events?A.events=[this]:A.events.push(this),this.point=A,this.isLeft=e}link(A){if(A.point===this.point)throw new Error("Tried to link already linked events");const e=A.point.events;for(let A=0,t=e.length;A<t;A++){const t=e[A];this.point.events.push(t),t.point=this.point}this.checkForConsuming()}checkForConsuming(){const A=this.point.events.length;for(let e=0;e<A;e++){const t=this.point.events[e];if(void 0===t.segment.consumedBy)for(let r=e+1;r<A;r++){const A=this.point.events[r];void 0===A.consumedBy&&(t.otherSE.point.events===A.otherSE.point.events&&t.segment.consume(A.segment))}}}getAvailableLinkedEvents(){const A=[];for(let e=0,t=this.point.events.length;e<t;e++){const t=this.point.events[e];t!==this&&!t.segment.ringOut&&t.segment.isInResult()&&A.push(t)}return A}getLeftmostComparator(A){const e=new Map,t=t=>{const r=t.otherSE;e.set(t,{sine:Na(this.point,A.point,r.point),cosine:Va(this.point,A.point,r.point)})};return(A,r)=>{e.has(A)||t(A),e.has(r)||t(r);const{sine:n,cosine:i}=e.get(A),{sine:o,cosine:a}=e.get(r);return n>=0&&o>=0?i<a?1:i>a?-1:0:n<0&&o<0?i<a?-1:i>a?1:0:o<n?-1:o>n?1:0}}}let Xa=0;class Ka{static compare(A,e){const t=A.leftSE.point.x,r=e.leftSE.point.x,n=A.rightSE.point.x,i=e.rightSE.point.x;if(i<t)return 1;if(n<r)return-1;const o=A.leftSE.point.y,a=e.leftSE.point.y,f=A.rightSE.point.y,l=e.rightSE.point.y;if(t<r){if(a<o&&a<f)return 1;if(a>o&&a>f)return-1;const t=A.comparePoint(e.leftSE.point);if(t<0)return 1;if(t>0)return-1;const r=e.comparePoint(A.rightSE.point);return 0!==r?r:-1}if(t>r){if(o<a&&o<l)return-1;if(o>a&&o>l)return 1;const t=e.comparePoint(A.leftSE.point);if(0!==t)return t;const r=A.comparePoint(e.rightSE.point);return r<0?1:r>0?-1:1}if(o<a)return-1;if(o>a)return 1;if(n<i){const t=e.comparePoint(A.rightSE.point);if(0!==t)return t}if(n>i){const t=A.comparePoint(e.rightSE.point);if(t<0)return 1;if(t>0)return-1}if(n!==i){const A=f-o,e=n-t,u=l-a,s=i-r;if(A>e&&u<s)return 1;if(A<e&&u>s)return-1}return n>i?1:n<i||f<l?-1:f>l?1:A.id<e.id?-1:A.id>e.id?1:0}constructor(A,e,t,r){this.id=++Xa,this.leftSE=A,A.segment=this,A.otherSE=e,this.rightSE=e,e.segment=this,e.otherSE=A,this.rings=t,this.windings=r}static fromRing(A,e,t){let r,n,i;const o=Wa.comparePoints(A,e);if(o<0)r=A,n=e,i=1;else{if(!(o>0))throw new Error(`Tried to create degenerate segment at [${A.x}, ${A.y}]`);r=e,n=A,i=-1}const a=new Wa(r,!0),f=new Wa(n,!1);return new Ka(a,f,[t],[i])}replaceRightSE(A){this.rightSE=A,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const A=this.leftSE.point.y,e=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:A<e?A:e},ur:{x:this.rightSE.point.x,y:A>e?A:e}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(A){return A.x===this.leftSE.point.x&&A.y===this.leftSE.point.y||A.x===this.rightSE.point.x&&A.y===this.rightSE.point.y}comparePoint(A){if(this.isAnEndpoint(A))return 0;const e=this.leftSE.point,t=this.rightSE.point,r=this.vector();if(e.x===t.x)return A.x===e.x?0:A.x<e.x?1:-1;const n=(A.y-e.y)/r.y,i=e.x+n*r.x;if(A.x===i)return 0;const o=(A.x-e.x)/r.x,a=e.y+o*r.y;return A.y===a?0:A.y<a?-1:1}getIntersection(A){const e=this.bbox(),t=A.bbox(),r=Pa(e,t);if(null===r)return null;const n=this.leftSE.point,i=this.rightSE.point,o=A.leftSE.point,a=A.rightSE.point,f=Sa(e,o)&&0===this.comparePoint(o),l=Sa(t,n)&&0===A.comparePoint(n),u=Sa(e,a)&&0===this.comparePoint(a),s=Sa(t,i)&&0===A.comparePoint(i);if(l&&f)return s&&!u?i:!s&&u?a:null;if(l)return u&&n.x===a.x&&n.y===a.y?null:n;if(f)return s&&i.x===o.x&&i.y===o.y?null:o;if(s&&u)return null;if(s)return i;if(u)return a;const c=((A,e,t,r)=>{if(0===e.x)return Za(t,r,A.x);if(0===r.x)return Za(A,e,t.x);if(0===e.y)return ja(t,r,A.y);if(0===r.y)return ja(A,e,t.y);const n=Ha(e,r);if(0==n)return null;const i={x:t.x-A.x,y:t.y-A.y},o=Ha(i,e)/n,a=Ha(i,r)/n;return{x:(A.x+a*e.x+(t.x+o*r.x))/2,y:(A.y+a*e.y+(t.y+o*r.y))/2}})(n,this.vector(),o,A.vector());return null===c?null:Sa(r,c)?La.round(c.x,c.y):null}split(A){const e=[],t=void 0!==A.events,r=new Wa(A,!0),n=new Wa(A,!1),i=this.rightSE;this.replaceRightSE(n),e.push(n),e.push(r);const o=new Ka(r,i,this.rings.slice(),this.windings.slice());return Wa.comparePoints(o.leftSE.point,o.rightSE.point)>0&&o.swapEvents(),Wa.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),t&&(r.checkForConsuming(),n.checkForConsuming()),e}swapEvents(){const A=this.rightSE;this.rightSE=this.leftSE,this.leftSE=A,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let A=0,e=this.windings.length;A<e;A++)this.windings[A]*=-1}consume(A){let e=this,t=A;for(;e.consumedBy;)e=e.consumedBy;for(;t.consumedBy;)t=t.consumedBy;const r=Ka.compare(e,t);if(0!==r){if(r>0){const A=e;e=t,t=A}if(e.prev===t){const A=e;e=t,t=A}for(let A=0,r=t.rings.length;A<r;A++){const r=t.rings[A],n=t.windings[A],i=e.rings.indexOf(r);-1===i?(e.rings.push(r),e.windings.push(n)):e.windings[i]+=n}t.rings=null,t.windings=null,t.consumedBy=e,t.leftSE.consumedBy=e.leftSE,t.rightSE.consumedBy=e.rightSE}}prevInResult(){return void 0!==this._prevInResult||(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null),this._prevInResult}beforeState(){if(void 0!==this._beforeState)return this._beforeState;if(this.prev){const A=this.prev.consumedBy||this.prev;this._beforeState=A.afterState()}else this._beforeState={rings:[],windings:[],multiPolys:[]};return this._beforeState}afterState(){if(void 0!==this._afterState)return this._afterState;const A=this.beforeState();this._afterState={rings:A.rings.slice(0),windings:A.windings.slice(0),multiPolys:[]};const e=this._afterState.rings,t=this._afterState.windings,r=this._afterState.multiPolys;for(let A=0,r=this.rings.length;A<r;A++){const r=this.rings[A],n=this.windings[A],i=e.indexOf(r);-1===i?(e.push(r),t.push(n)):t[i]+=n}const n=[],i=[];for(let A=0,r=e.length;A<r;A++){if(0===t[A])continue;const r=e[A],o=r.poly;if(-1===i.indexOf(o))if(r.isExterior)n.push(o);else{-1===i.indexOf(o)&&i.push(o);const A=n.indexOf(r.poly);-1!==A&&n.splice(A,1)}}for(let A=0,e=n.length;A<e;A++){const e=n[A].multiPoly;-1===r.indexOf(e)&&r.push(e)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(void 0!==this._isInResult)return this._isInResult;const A=this.beforeState().multiPolys,e=this.afterState().multiPolys;switch(af.type){case"union":{const t=0===A.length,r=0===e.length;this._isInResult=t!==r;break}case"intersection":{let t,r;A.length<e.length?(t=A.length,r=e.length):(t=e.length,r=A.length),this._isInResult=r===af.numMultiPolys&&t<r;break}case"xor":{const t=Math.abs(A.length-e.length);this._isInResult=t%2==1;break}case"difference":{const t=A=>1===A.length&&A[0].isSubject;this._isInResult=t(A)!==t(e);break}default:throw new Error(`Unrecognized operation type found ${af.type}`)}return this._isInResult}}class Ja{constructor(A,e,t){if(!Array.isArray(A)||0===A.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=e,this.isExterior=t,this.segments=[],"number"!=typeof A[0][0]||"number"!=typeof A[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const r=La.round(A[0][0],A[0][1]);this.bbox={ll:{x:r.x,y:r.y},ur:{x:r.x,y:r.y}};let n=r;for(let e=1,t=A.length;e<t;e++){if("number"!=typeof A[e][0]||"number"!=typeof A[e][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let t=La.round(A[e][0],A[e][1]);t.x===n.x&&t.y===n.y||(this.segments.push(Ka.fromRing(n,t,this)),t.x<this.bbox.ll.x&&(this.bbox.ll.x=t.x),t.y<this.bbox.ll.y&&(this.bbox.ll.y=t.y),t.x>this.bbox.ur.x&&(this.bbox.ur.x=t.x),t.y>this.bbox.ur.y&&(this.bbox.ur.y=t.y),n=t)}r.x===n.x&&r.y===n.y||this.segments.push(Ka.fromRing(n,r,this))}getSweepEvents(){const A=[];for(let e=0,t=this.segments.length;e<t;e++){const t=this.segments[e];A.push(t.leftSE),A.push(t.rightSE)}return A}}class qa{constructor(A,e){if(!Array.isArray(A))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new Ja(A[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(let e=1,t=A.length;e<t;e++){const t=new Ja(A[e],this,!1);t.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=t.bbox.ll.x),t.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=t.bbox.ll.y),t.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=t.bbox.ur.x),t.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=t.bbox.ur.y),this.interiorRings.push(t)}this.multiPoly=e}getSweepEvents(){const A=this.exteriorRing.getSweepEvents();for(let e=0,t=this.interiorRings.length;e<t;e++){const t=this.interiorRings[e].getSweepEvents();for(let e=0,r=t.length;e<r;e++)A.push(t[e])}return A}}class $a{constructor(A,e){if(!Array.isArray(A))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{"number"==typeof A[0][0][0]&&(A=[A])}catch(A){}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(let e=0,t=A.length;e<t;e++){const t=new qa(A[e],this);t.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=t.bbox.ll.x),t.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=t.bbox.ll.y),t.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=t.bbox.ur.x),t.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=t.bbox.ur.y),this.polys.push(t)}this.isSubject=e}getSweepEvents(){const A=[];for(let e=0,t=this.polys.length;e<t;e++){const t=this.polys[e].getSweepEvents();for(let e=0,r=t.length;e<r;e++)A.push(t[e])}return A}}class Af{static factory(A){const e=[];for(let t=0,r=A.length;t<r;t++){const r=A[t];if(!r.isInResult()||r.ringOut)continue;let n=null,i=r.leftSE,o=r.rightSE;const a=[i],f=i.point,l=[];for(;n=i,i=o,a.push(i),i.point!==f;)for(;;){const A=i.getAvailableLinkedEvents();if(0===A.length){const A=a[0].point,e=a[a.length-1].point;throw new Error(`Unable to complete output ring starting at [${A.x}, ${A.y}]. Last matching segment found ends at [${e.x}, ${e.y}].`)}if(1===A.length){o=A[0].otherSE;break}let t=null;for(let A=0,e=l.length;A<e;A++)if(l[A].point===i.point){t=A;break}if(null!==t){const A=l.splice(t)[0],r=a.splice(A.index);r.unshift(r[0].otherSE),e.push(new Af(r.reverse()));continue}l.push({index:a.length,point:i.point});const r=i.getLeftmostComparator(n);o=A.sort(r)[0].otherSE;break}e.push(new Af(a))}return e}constructor(A){this.events=A;for(let e=0,t=A.length;e<t;e++)A[e].segment.ringOut=this;this.poly=null}getGeom(){let A=this.events[0].point;const e=[A];for(let t=1,r=this.events.length-1;t<r;t++){const r=this.events[t].point,n=this.events[t+1].point;0!==za(r,A,n)&&(e.push(r),A=r)}if(1===e.length)return null;const t=e[0],r=e[1];0===za(t,A,r)&&e.shift(),e.push(e[0]);const n=this.isExteriorRing()?1:-1,i=this.isExteriorRing()?0:e.length-1,o=this.isExteriorRing()?e.length:-1,a=[];for(let A=i;A!=o;A+=n)a.push([e[A].x,e[A].y]);return a}isExteriorRing(){if(void 0===this._isExteriorRing){const A=this.enclosingRing();this._isExteriorRing=!A||!A.isExteriorRing()}return this._isExteriorRing}enclosingRing(){return void 0===this._enclosingRing&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}_calcEnclosingRing(){let A=this.events[0];for(let e=1,t=this.events.length;e<t;e++){const t=this.events[e];Wa.compare(A,t)>0&&(A=t)}let e=A.segment.prevInResult(),t=e?e.prevInResult():null;for(;;){if(!e)return null;if(!t)return e.ringOut;if(t.ringOut!==e.ringOut)return t.ringOut.enclosingRing()!==e.ringOut?e.ringOut:e.ringOut.enclosingRing();e=t.prevInResult(),t=e?e.prevInResult():null}}}class ef{constructor(A){this.exteriorRing=A,A.poly=this,this.interiorRings=[]}addInterior(A){this.interiorRings.push(A),A.poly=this}getGeom(){const A=[this.exteriorRing.getGeom()];if(null===A[0])return null;for(let e=0,t=this.interiorRings.length;e<t;e++){const t=this.interiorRings[e].getGeom();null!==t&&A.push(t)}return A}}class tf{constructor(A){this.rings=A,this.polys=this._composePolys(A)}getGeom(){const A=[];for(let e=0,t=this.polys.length;e<t;e++){const t=this.polys[e].getGeom();null!==t&&A.push(t)}return A}_composePolys(A){const e=[];for(let t=0,r=A.length;t<r;t++){const r=A[t];if(!r.poly)if(r.isExteriorRing())e.push(new ef(r));else{const A=r.enclosingRing();A.poly||e.push(new ef(A)),A.poly.addInterior(r)}}return e}}class rf{constructor(A){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ka.compare;this.queue=A,this.tree=new Da(e),this.segments=[]}process(A){const e=A.segment,t=[];if(A.consumedBy)return A.isLeft?this.queue.remove(A.otherSE):this.tree.remove(e),t;const r=A.isLeft?this.tree.add(e):this.tree.find(e);if(!r)throw new Error(`Unable to find segment #${e.id} [${e.leftSE.point.x}, ${e.leftSE.point.y}] -> [${e.rightSE.point.x}, ${e.rightSE.point.y}] in SweepLine tree.`);let n,i,o=r,a=r;for(;void 0===n;)o=this.tree.prev(o),null===o?n=null:void 0===o.key.consumedBy&&(n=o.key);for(;void 0===i;)a=this.tree.next(a),null===a?i=null:void 0===a.key.consumedBy&&(i=a.key);if(A.isLeft){let r=null;if(n){const A=n.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(r=A),!n.isAnEndpoint(A))){const e=this._splitSafely(n,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}}let o=null;if(i){const A=i.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(o=A),!i.isAnEndpoint(A))){const e=this._splitSafely(i,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}}if(null!==r||null!==o){let A=null;if(null===r)A=o;else if(null===o)A=r;else{A=Wa.comparePoints(r,o)<=0?r:o}this.queue.remove(e.rightSE),t.push(e.rightSE);const n=e.split(A);for(let A=0,e=n.length;A<e;A++)t.push(n[A])}t.length>0?(this.tree.remove(e),t.push(A)):(this.segments.push(e),e.prev=n)}else{if(n&&i){const A=n.getIntersection(i);if(null!==A){if(!n.isAnEndpoint(A)){const e=this._splitSafely(n,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}if(!i.isAnEndpoint(A)){const e=this._splitSafely(i,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}}}this.tree.remove(e)}return t}_splitSafely(A,e){this.tree.remove(A);const t=A.rightSE;this.queue.remove(t);const r=A.split(e);return r.push(t),void 0===A.consumedBy&&this.tree.add(A),r}}const nf="undefined"!=typeof process&&process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,of="undefined"!=typeof process&&process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6;const af=new class{run(A,e,t){af.type=A,La.reset();const r=[new $a(e,!0)];for(let A=0,e=t.length;A<e;A++)r.push(new $a(t[A],!1));if(af.numMultiPolys=r.length,"difference"===af.type){const A=r[0];let e=1;for(;e<r.length;)null!==Pa(r[e].bbox,A.bbox)?e++:r.splice(e,1)}if("intersection"===af.type)for(let A=0,e=r.length;A<e;A++){const e=r[A];for(let t=A+1,n=r.length;t<n;t++)if(null===Pa(e.bbox,r[t].bbox))return[]}const n=new Da(Wa.compare);for(let A=0,e=r.length;A<e;A++){const e=r[A].getSweepEvents();for(let A=0,t=e.length;A<t;A++)if(n.insert(e[A]),n.size>nf)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const i=new rf(n);let o=n.size,a=n.pop();for(;a;){const A=a.key;if(n.size===o){const e=A.segment;throw new Error(`Unable to pop() ${A.isLeft?"left":"right"} SweepEvent [${A.point.x}, ${A.point.y}] from segment #${e.id} [${e.leftSE.point.x}, ${e.leftSE.point.y}] -> [${e.rightSE.point.x}, ${e.rightSE.point.y}] from queue.`)}if(n.size>nf)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(i.segments.length>of)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const e=i.process(A);for(let A=0,t=e.length;A<t;A++){const t=e[A];void 0===t.consumedBy&&n.insert(t)}o=n.size,a=n.pop()}La.reset();const f=Af.factory(i.segments);return new tf(f).getGeom()}};var ff=function(A){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r<e;r++)t[r-1]=arguments[r];return af.run("intersection",A,t)};function lf(A,e={}){const t=[];if(function(A,e){var t,r,n,i,o,a,f,l,u,s,c=0,h="FeatureCollection"===A.type,g="Feature"===A.type,d=h?A.features.length:1;for(t=0;t<d;t++){for(a=h?A.features[t].geometry:g?A.geometry:A,l=h?A.features[t].properties:g?A.properties:{},u=h?A.features[t].bbox:g?A.bbox:void 0,s=h?A.features[t].id:g?A.id:void 0,o=(f=!!a&&"GeometryCollection"===a.type)?a.geometries.length:1,n=0;n<o;n++)if(null!==(i=f?a.geometries[n]:a))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===e(i,c,l,u,s))return!1;break;case"GeometryCollection":for(r=0;r<i.geometries.length;r++)if(!1===e(i.geometries[r],c,l,u,s))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===e(null,c,l,u,s))return!1;c++}}(A,(A=>{t.push(A.coordinates)})),t.length<2)throw new Error("Must specify at least 2 geometries");const r=ff(t[0],...t.slice(1));return 0===r.length?null:1===r.length?function(A,e,t={}){for(const e of A){if(e.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(e[e.length-1].length!==e[0].length)throw new Error("First and last Position are not equivalent.");for(let A=0;A<e[e.length-1].length;A++)if(e[e.length-1][A]!==e[0][A])throw new Error("First and last Position are not equivalent.")}return pa({type:"Polygon",coordinates:A},e,t)}(r[0],e.properties):function(A,e,t={}){return pa({type:"MultiPolygon",coordinates:A},e,t)}(r,e.properties)}const uf=Object.assign({},{geoPath:Ki,groups:xe});A.diamond=function({start:A=[0,0],width:t=1e3,height:r=500,step:n=50,overflow:i=!0}={}){let o=n*Math.sqrt(2),a=i?A[0]:A[0]+o/2,f=i?A[1]:A[1]+o/2,l=A[0]+t+o/2,u=A[1]+r+o/2,s=e(a,l,o),c=e(f,u,o/2,!1),h=s.map((A=>c.map(((e,t)=>[A,e,t%2])))).flat();h=h.map((A=>1===A[2]?[A[0]+o/2,A[1]]:[A[0],A[1]])),h=i?h.filter((e=>e[0]<=A[0]+t+o/2)):h.filter((e=>e[0]<=A[0]+t-o/2)),h=i?h.filter((e=>e[1]<=A[1]+r+o/2)):h.filter((e=>e[1]<=A[1]+r-o/2));let g=o/2;return{type:"FeatureCollection",grid:"diamond",geo:!1,features:h.map(((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[[[A[0]-g,A[1]],[A[0],A[1]+g],[A[0]+g,A[1]],[A[0],A[1]-g],[A[0]-g,A[1]]]]},properties:{index:e}})))}},A.dot=function({step:A=30,start:t=[0,0],width:r=1e3,height:n=500,overflow:i=!0}={}){let o=i?t[0]-A/2:t[0],a=i?t[1]-A/2:t[1],f=i?t[0]+r+A:t[0]+r,l=i?t[1]+n+A:t[1]+n,u=e(o,f,A),s=e(a,l,A,!0);return{type:"FeatureCollection",grid:"dot",geo:!1,features:u.map((A=>s.map((e=>[A,e])))).flat().map(((A,e)=>({type:"Feature",geometry:{type:"Point",coordinates:A},properties:{index:e}})))}},A.h3=function({level:A=0,domain:e,rewind:t}={}){let r;if(e){t=void 0===t||t;const n=ZA.featureToH3Set(e,A);r=ZA.h3SetToFeatureCollection(n,(A=>({value:A})))}else t=void 0!==t&&t,r={type:"FeatureCollection",grid:"h3",level:A,geo:!0,features:tA().map((e=>eA(e,A))).flat().map((A=>{return{type:"Feature",properties:{id:A,pentagon:(e=A,t=j(e),r=t[0],n=t[1],Boolean(L.isPentagon(r,n)))},geometry:{type:"Polygon",coordinates:[AA(A).reverse()]}};var e,t,r,n}))};return t?Zo(r):r},A.hexbin=function({step:A=50,width:t=1e3,height:r=500,start:n=[0,0],overflow:i=!0}={}){const o=A,a=o/Math.sqrt(3),f=1.5*a,l=i?n[0]-o/2:n[0],u=i?n[1]-a:n[1],s=e(u+a,i?r+u+2*a:r+u-a,f),c=[];s.forEach(((A,r)=>{const n=e(l+r%2*(o/2)+o/2,i?t+l:t+l-o-o/2,o);n.forEach((e=>{e<=t+l&&c.push([e,A])})),n[n.length-1]<t+l&&c.push([n[n.length-1]+o,A])}));const h=c.map((([A,e],t)=>{const r=[];for(let t=0;t<6;t++){const n=Math.PI/180*(60*t-30);r.push([A+a*Math.cos(n),e+a*Math.sin(n)])}return r.push(r[0]),{type:"Feature",geometry:{type:"Polygon",coordinates:[r]},properties:{index:t}}}));return{type:"FeatureCollection",grid:"hexbin",geo:!1,features:h}},A.pointstogrid=function(A={points:void 0,grid:void 0,var:void 0}){const e=performance.now(),t=A.grid.features,r=A.points.features,n=new Array(t.length).fill(0),i=new ta,o=t.map(((A,e)=>{const[t,r,n,i]=va(A);return{minX:t,minY:r,maxX:n,maxY:i,i:e}}));i.load(o),r.forEach((e=>{const[r,o]=e.geometry.coordinates,a=i.search({minX:r,minY:o,maxX:r,maxY:o});for(const r of a){const i=t[r.i];if(ma(e,i)){const t=void 0===A.var?1:parseFloat(e.properties[A.var])||0;n[r.i]+=t;break}}}));const a=t.map(((A,e)=>({type:A.type,geometry:A.geometry,properties:{...A.properties,count:n[e]}}))).filter((A=>0!==A.properties.count)),f=performance.now();return console.log(`Temps d'exécution: ${(f-e).toFixed(2)} ms`),{type:"FeatureCollection",features:a}},A.polygonstogrid=function(A={grid:void 0,polygons:void 0,var:void 0}){const e=performance.now(),t=A.grid.features,r=A.polygons.features,n=new Map(t.map(((A,e)=>[e,A]))),i=new ta,o=t.map(((A,e)=>{const[t,r,n,i]=va(A);return{minX:t,minY:r,maxX:n,maxY:i,i:e}}));i.load(o);const a=[],f=uf.geoPath();r.forEach(((A,e)=>{const t=f.area(A),[r,o,l,u]=va(A),s=i.search({minX:r,minY:o,maxX:l,maxY:u});for(const r of s){const i=lf(wa([A,n.get(r.i)]));if(i){const A=f.area(i);a.push([e,r.i,A/t])}}}));const l=new Map(r.map(((e,t)=>[t,A.var?parseFloat(e.properties[A.var])||0:1])));function u(A){let e=0;return A[1].forEach((A=>{e+=l.get(A[0])*A[2]})),0===e?void 0:e}const s={type:"FeatureCollection",features:uf.groups(a,(A=>A[1])).map((([A,e])=>{const t=n.get(A);return{type:t.type,properties:{...t.properties,sum:u([A,e])},geometry:t.geometry}}))},c=performance.now();return console.log(`Temps d'exécution: ${(c-e).toFixed(2)} ms`),s},A.random=function({start:A=[0,0],width:e=1e3,height:t=500,step:r=50,overflow:n=!1}={}){let i=n?A[0]-r:A[0],o=n?A[1]-r:A[1],a=n?A[0]+e+r:i+e,f=n?A[1]+t+r:o+t,l=n?e+2*r:e,u=n?t+2*r:t,s=[],c=Math.round(e/r*(t/r));for(let A=0;A<c;A++)s.push([Math.random()*l+i,Math.random()*u+o]);let h=I.Delaunay.from(s,(A=>A[0]),(A=>A[1])).voronoi([i,o,a,f]);return{type:"FeatureCollection",grid:"random",geo:!1,features:s.map(((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[h.cellPolygon(e)]},properties:{index:e}})))}},A.square=function({start:A=[0,0],width:t=1e3,height:r=500,step:n=50,overflow:i=!0}={}){let o=i?A[0]:A[0]+n/2,a=e(i?A[1]:A[1]+n/2,A[1]+r-n/2,n,!0),f=e(o,A[0]+t-n/2,n);i&&(a[0]+n/2<A[1]+r&&a.unshift(a[0]+n),f.at(-1)+n/2<A[0]+t&&f.push(f.at(-1)+n));let l=f.map((A=>a.map((e=>[A,e])))).flat(),u=n/2;return{type:"FeatureCollection",grid:"square",geo:!1,features:l.map(((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[[[A[0]-u,A[1]+u],[A[0]+u,A[1]+u],[A[0]+u,A[1]-u],[A[0]-u,A[1]-u],[A[0]-u,A[1]+u]]]},properties:{index:e}})))}},A.triangle=function({start:A=[0,0],width:t=1e3,height:r=500,step:n=50,overflow:i=!0}={}){let o=(A,e)=>{let t=Math.sqrt(3)/2*e,r=[A[0]+e/2,A[1]];return[r,[A[0],A[1]-t],[A[0]-e/2,A[1]],r]},a=(A,e)=>{let t=Math.sqrt(3)/2*e,r=[A[0]+e/2,A[1]];return[r,[A[0],A[1]+t],[A[0]-e/2,A[1]],r]},f=Math.sqrt(3)/2*n,l=i?A[0]-n/2:A[0],u=i?A[1]-f/2:A[1],s=A[0]+t+f,c=l+r+f,h=e(l,s,n),g=e(u,c,f,!0);g.length%2&&g.unshift(g[0]+f);let d=h.map(((A,e)=>g.map((e=>[A,e])))).flat();d=d.map(((A,e)=>e%2==1?[A[0]+n/2,A[1]]:A));let p=d.length;d=d.concat(d);let w=[];return d.forEach(((e,s)=>{i?s<p?e[0]<=l+t+n&&e[0]>l&&e[1]>=u+n/2&&e[1]<=A[1]+r+f&&w.push(o(e,n)):e[0]<=l+t+n&&e[0]>l&&e[1]<=A[1]+r&&w.push(a(e,n)):s<p?e[0]<=l+t-n/2&&e[0]>l&&e[1]<=u+r&&e[1]>u&&w.push(o(e,n)):e[0]<=l+t-n/2&&e[0]>l&&e[1]<=u+r-f&&w.push(a(e,n))})),{type:"FeatureCollection",grid:"triangle",geo:!1,features:w.map(((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[A]},properties:{index:e,coords:A}})))}}}));