geogrid 1.2.4 → 1.2.5
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.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function A(A,e,t){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const r=[];for(let n=A;n<=e;n+=t)r.push(n);return n?r.reverse():r}function e(){let{start:e=[0,0],width:t=1e3,height:n=500,step:r=50,overflow:i=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=i?e[0]:e[0]+r/2,a=A(i?e[1]:e[1]+r/2,e[1]+n-r/2,r,!0),s=A(o,e[0]+t-r/2,r);i&&(a[0]+r/2<e[1]+n&&a.unshift(a[0]+r),s.at(-1)+r/2<e[0]+t&&s.push(s.at(-1)+r));let u=s.map(A=>a.map(e=>[A,e])).flat(),f=r/2;return{type:"FeatureCollection",grid:"square",geo:!1,features:u.map((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[[[A[0]-f,A[1]+f],[A[0]+f,A[1]+f],[A[0]+f,A[1]-f],[A[0]-f,A[1]-f],[A[0]-f,A[1]+f]]]},properties:{index:e}}))}}function t(){let{start:e=[0,0],width:t=1e3,height:n=500,step:r=50,overflow:i=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=(A,e)=>{let t=Math.sqrt(3)/2*e,n=[A[0]+e/2,A[1]];return[n,[A[0],A[1]-t],[A[0]-e/2,A[1]],n]},a=(A,e)=>{let t=Math.sqrt(3)/2*e,n=[A[0]+e/2,A[1]];return[n,[A[0],A[1]+t],[A[0]-e/2,A[1]],n]},s=Math.sqrt(3)/2*r,u=i?e[0]-r/2:e[0],f=i?e[1]-s/2:e[1],l=e[0]+t+s,c=u+n+s,h=A(u,l,r),g=A(f,c,s,!0);g.length%2&&g.unshift(g[0]+s);let d=h.map((A,e)=>g.map(e=>[A,e])).flat();d=d.map((A,e)=>e%2==1?[A[0]+r/2,A[1]]:A);let p=d.length;d=d.concat(d);let w=[];return d.forEach((A,l)=>{i?l<p?A[0]<=u+t+r&&A[0]>u&&A[1]>=f+r/2&&A[1]<=e[1]+n+s&&w.push(o(A,r)):A[0]<=u+t+r&&A[0]>u&&A[1]<=e[1]+n&&w.push(a(A,r)):l<p?A[0]<=u+t-r/2&&A[0]>u&&A[1]<=f+n&&A[1]>f&&w.push(o(A,r)):A[0]<=u+t-r/2&&A[0]>u&&A[1]<=f+n-s&&w.push(a(A,r))}),{type:"FeatureCollection",grid:"triangle",geo:!1,features:w.map((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[A]},properties:{index:e,coords:A}}))}}function n(){let{step:e=30,start:t=[0,0],width:n=1e3,height:r=500,overflow:i=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=i?t[0]-e/2:t[0],a=i?t[1]-e/2:t[1],s=i?t[0]+n+e:t[0]+n,u=i?t[1]+r+e:t[1]+r,f=A(o,s,e),l=A(a,u,e,!0);return{type:"FeatureCollection",grid:"dot",geo:!1,features:f.map(A=>l.map(e=>[A,e])).flat().map((A,e)=>({type:"Feature",geometry:{type:"Point",coordinates:A},properties:{index:e}}))}}const r=134217729;function i(A,e,t,n,r){let i,o,a,s,u=e[0],f=n[0],l=0,c=0;f>u==f>-u?(i=u,u=e[++l]):(i=f,f=n[++c]);let h=0;if(l<A&&c<t)for(f>u==f>-u?(o=u+i,a=i-(o-u),u=e[++l]):(o=f+i,a=i-(o-f),f=n[++c]),i=o,0!==a&&(r[h++]=a);l<A&&c<t;)f>u==f>-u?(o=i+u,s=o-i,a=i-(o-s)+(u-s),u=e[++l]):(o=i+f,s=o-i,a=i-(o-s)+(f-s),f=n[++c]),i=o,0!==a&&(r[h++]=a);for(;l<A;)o=i+u,s=o-i,a=i-(o-s)+(u-s),u=e[++l],i=o,0!==a&&(r[h++]=a);for(;c<t;)o=i+f,s=o-i,a=i-(o-s)+(f-s),f=n[++c],i=o,0!==a&&(r[h++]=a);return 0===i&&0!==h||(r[h++]=i),h}function o(A){return new Float64Array(A)}const a=o(4),s=o(8),u=o(12),f=o(16),l=o(4);function c(A,e,t,n,o,c){const h=(e-c)*(t-o),g=(A-o)*(n-c),d=h-g,p=Math.abs(h+g);return Math.abs(d)>=33306690738754716e-32*p?d:-function(A,e,t,n,o,c,h){let g,d,p,w,v,m,b,y,B,E,M,k,_,x,Q,D,C,S;const I=A-o,P=t-o,F=e-c,T=n-c;x=I*T,m=r*I,b=m-(m-I),y=I-b,m=r*T,B=m-(m-T),E=T-B,Q=y*E-(x-b*B-y*B-b*E),D=F*P,m=r*F,b=m-(m-F),y=F-b,m=r*P,B=m-(m-P),E=P-B,C=y*E-(D-b*B-y*B-b*E),M=Q-C,v=Q-M,a[0]=Q-(M+v)+(v-C),k=x+M,v=k-x,_=x-(k-v)+(M-v),M=_-D,v=_-M,a[1]=_-(M+v)+(v-D),S=k+M,v=S-k,a[2]=k-(S-v)+(M-v),a[3]=S;let L=function(A,e){let t=e[0];for(let n=1;n<A;n++)t+=e[n];return t}(4,a),G=22204460492503146e-32*h;if(L>=G||-L>=G)return L;if(v=A-I,g=A-(I+v)+(v-o),v=t-P,p=t-(P+v)+(v-o),v=e-F,d=e-(F+v)+(v-c),v=n-T,w=n-(T+v)+(v-c),0===g&&0===d&&0===p&&0===w)return L;if(G=11093356479670487e-47*h+33306690738754706e-32*Math.abs(L),L+=I*w+T*g-(F*p+P*d),L>=G||-L>=G)return L;x=g*T,m=r*g,b=m-(m-g),y=g-b,m=r*T,B=m-(m-T),E=T-B,Q=y*E-(x-b*B-y*B-b*E),D=d*P,m=r*d,b=m-(m-d),y=d-b,m=r*P,B=m-(m-P),E=P-B,C=y*E-(D-b*B-y*B-b*E),M=Q-C,v=Q-M,l[0]=Q-(M+v)+(v-C),k=x+M,v=k-x,_=x-(k-v)+(M-v),M=_-D,v=_-M,l[1]=_-(M+v)+(v-D),S=k+M,v=S-k,l[2]=k-(S-v)+(M-v),l[3]=S;const R=i(4,a,4,l,s);x=I*w,m=r*I,b=m-(m-I),y=I-b,m=r*w,B=m-(m-w),E=w-B,Q=y*E-(x-b*B-y*B-b*E),D=F*p,m=r*F,b=m-(m-F),y=F-b,m=r*p,B=m-(m-p),E=p-B,C=y*E-(D-b*B-y*B-b*E),M=Q-C,v=Q-M,l[0]=Q-(M+v)+(v-C),k=x+M,v=k-x,_=x-(k-v)+(M-v),M=_-D,v=_-M,l[1]=_-(M+v)+(v-D),S=k+M,v=S-k,l[2]=k-(S-v)+(M-v),l[3]=S;const U=i(R,s,4,l,u);x=g*w,m=r*g,b=m-(m-g),y=g-b,m=r*w,B=m-(m-w),E=w-B,Q=y*E-(x-b*B-y*B-b*E),D=d*p,m=r*d,b=m-(m-d),y=d-b,m=r*p,B=m-(m-p),E=p-B,C=y*E-(D-b*B-y*B-b*E),M=Q-C,v=Q-M,l[0]=Q-(M+v)+(v-C),k=x+M,v=k-x,_=x-(k-v)+(M-v),M=_-D,v=_-M,l[1]=_-(M+v)+(v-D),S=k+M,v=S-k,l[2]=k-(S-v)+(M-v),l[3]=S;const O=i(U,u,4,l,f);return f[O-1]}(A,e,t,n,o,c,p)}const h=Math.pow(2,-52),g=new Uint32Array(512);class d{static from(A,e=y,t=B){const n=A.length,r=new Float64Array(2*n);for(let i=0;i<n;i++){const n=A[i];r[2*i]=e(n),r[2*i+1]=t(n)}return new d(r)}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:n,_hullHash:r}=this,i=A.length>>1;let o=1/0,a=1/0,s=-1/0,u=-1/0;for(let e=0;e<i;e++){const t=A[2*e],n=A[2*e+1];t<o&&(o=t),n<a&&(a=n),t>s&&(s=t),n>u&&(u=n),this._ids[e]=e}const f=(o+s)/2,l=(a+u)/2;let g,d,w;for(let e=0,t=1/0;e<i;e++){const n=p(f,l,A[2*e],A[2*e+1]);n<t&&(g=e,t=n)}const b=A[2*g],y=A[2*g+1];for(let e=0,t=1/0;e<i;e++){if(e===g)continue;const n=p(b,y,A[2*e],A[2*e+1]);n<t&&n>0&&(d=e,t=n)}let B=A[2*d],E=A[2*d+1],M=1/0;for(let e=0;e<i;e++){if(e===g||e===d)continue;const t=v(b,y,B,E,A[2*e],A[2*e+1]);t<M&&(w=e,M=t)}let k=A[2*w],_=A[2*w+1];if(M===1/0){for(let e=0;e<i;e++)this._dists[e]=A[2*e]-A[0]||A[2*e+1]-A[1];m(this._ids,this._dists,0,i-1);const e=new Uint32Array(i);let t=0;for(let A=0,n=-1/0;A<i;A++){const r=this._ids[A],i=this._dists[r];i>n&&(e[t++]=r,n=i)}return this.hull=e.subarray(0,t),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(c(b,y,B,E,k,_)<0){const A=d,e=B,t=E;d=w,B=k,E=_,w=A,k=e,_=t}const x=function(A,e,t,n,r,i){const o=t-A,a=n-e,s=r-A,u=i-e,f=o*o+a*a,l=s*s+u*u,c=.5/(o*u-a*s);return{x:A+(u*f-a*l)*c,y:e+(o*l-s*f)*c}}(b,y,B,E,k,_);this._cx=x.x,this._cy=x.y;for(let e=0;e<i;e++)this._dists[e]=p(A[2*e],A[2*e+1],x.x,x.y);m(this._ids,this._dists,0,i-1),this._hullStart=g;let Q=3;t[g]=e[w]=d,t[d]=e[g]=w,t[w]=e[d]=g,n[g]=0,n[d]=1,n[w]=2,r.fill(-1),r[this._hashKey(b,y)]=g,r[this._hashKey(B,E)]=d,r[this._hashKey(k,_)]=w,this.trianglesLen=0,this._addTriangle(g,d,w,-1,-1,-1);for(let i,o,a=0;a<this._ids.length;a++){const s=this._ids[a],u=A[2*s],f=A[2*s+1];if(a>0&&Math.abs(u-i)<=h&&Math.abs(f-o)<=h)continue;if(i=u,o=f,s===g||s===d||s===w)continue;let l=0;for(let A=0,e=this._hashKey(u,f);A<this._hashSize&&(l=r[(e+A)%this._hashSize],-1===l||l===t[l]);A++);l=e[l];let p,v=l;for(;p=t[v],c(u,f,A[2*v],A[2*v+1],A[2*p],A[2*p+1])>=0;)if(v=p,v===l){v=-1;break}if(-1===v)continue;let m=this._addTriangle(v,s,t[v],-1,-1,n[v]);n[s]=this._legalize(m+2),n[v]=m,Q++;let b=t[v];for(;p=t[b],c(u,f,A[2*b],A[2*b+1],A[2*p],A[2*p+1])<0;)m=this._addTriangle(b,s,p,n[s],-1,n[b]),n[s]=this._legalize(m+2),t[b]=b,Q--,b=p;if(v===l)for(;p=e[v],c(u,f,A[2*p],A[2*p+1],A[2*v],A[2*v+1])<0;)m=this._addTriangle(p,s,v,-1,n[v],n[p]),this._legalize(m+2),n[p]=m,t[v]=v,Q--,v=p;this._hullStart=e[s]=v,t[v]=e[b]=s,t[s]=b,r[this._hashKey(u,f)]=s,r[this._hashKey(A[2*v],A[2*v+1])]=v}this.hull=new Uint32Array(Q);for(let A=0,e=this._hullStart;A<Q;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:n}=this;let r=0,i=0;for(;;){const o=t[A],a=A-A%3;if(i=a+(A+2)%3,-1===o){if(0===r)break;A=g[--r];continue}const s=o-o%3,u=a+(A+1)%3,f=s+(o+2)%3,l=e[i],c=e[A],h=e[u],d=e[f];if(w(n[2*l],n[2*l+1],n[2*c],n[2*c+1],n[2*h],n[2*h+1],n[2*d],n[2*d+1])){e[A]=d,e[o]=l;const n=t[f];if(-1===n){let e=this._hullStart;do{if(this._hullTri[e]===f){this._hullTri[e]=A;break}e=this._hullPrev[e]}while(e!==this._hullStart)}this._link(A,n),this._link(o,t[i]),this._link(i,f);const a=s+(o+1)%3;r<g.length&&(g[r++]=a)}else{if(0===r)break;A=g[--r]}}return i}_link(A,e){this._halfedges[A]=e,-1!==e&&(this._halfedges[e]=A)}_addTriangle(A,e,t,n,r,i){const o=this.trianglesLen;return this._triangles[o]=A,this._triangles[o+1]=e,this._triangles[o+2]=t,this._link(o,n),this._link(o+1,r),this._link(o+2,i),this.trianglesLen+=3,o}}function p(A,e,t,n){const r=A-t,i=e-n;return r*r+i*i}function w(A,e,t,n,r,i,o,a){const s=A-o,u=e-a,f=t-o,l=n-a,c=r-o,h=i-a,g=f*f+l*l,d=c*c+h*h;return s*(l*d-g*h)-u*(f*d-g*c)+(s*s+u*u)*(f*h-l*c)<0}function v(A,e,t,n,r,i){const o=t-A,a=n-e,s=r-A,u=i-e,f=o*o+a*a,l=s*s+u*u,c=.5/(o*u-a*s),h=(u*f-a*l)*c,g=(o*l-s*f)*c;return h*h+g*g}function m(A,e,t,n){if(n-t<=20)for(let r=t+1;r<=n;r++){const n=A[r],i=e[n];let o=r-1;for(;o>=t&&e[A[o]]>i;)A[o+1]=A[o--];A[o+1]=n}else{let r=t+1,i=n;b(A,t+n>>1,r),e[A[t]]>e[A[n]]&&b(A,t,n),e[A[r]]>e[A[n]]&&b(A,r,n),e[A[t]]>e[A[r]]&&b(A,t,r);const o=A[r],a=e[o];for(;;){do{r++}while(e[A[r]]<a);do{i--}while(e[A[i]]>a);if(i<r)break;b(A,r,i)}A[t+1]=A[i],A[i]=o,n-r+1>=i-t?(m(A,e,r,n),m(A,e,t,i-1)):(m(A,e,t,i-1),m(A,e,r,n))}}function b(A,e,t){const n=A[e];A[e]=A[t],A[t]=n}function y(A){return A[0]}function B(A){return A[1]}const E=1e-6;class M{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 n=(A=+A)+(t=+t),r=e=+e;if(t<0)throw new Error("negative radius");null===this._x1?this._+=`M${n},${r}`:(Math.abs(this._x1-n)>E||Math.abs(this._y1-r)>E)&&(this._+="L"+n+","+r),t&&(this._+=`A${t},${t},0,1,1,${A-t},${e}A${t},${t},0,1,1,${this._x1=n},${this._y1=r}`)}rect(A,e,t,n){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+e}h${+t}v${+n}h${-t}Z`}value(){return this._||null}}class k{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 _{constructor(A,[e,t,n,r]=[0,0,960,500]){if(!((n=+n)>=(e=+e)&&(r=+r)>=(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=n,this.xmin=e,this.ymax=r,this.ymin=t,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:A,hull:e,triangles:t},vectors:n}=this;let r,i;const o=this.circumcenters=this._circumcenters.subarray(0,t.length/3*2);for(let n,a,s=0,u=0,f=t.length;s<f;s+=3,u+=2){const f=2*t[s],l=2*t[s+1],c=2*t[s+2],h=A[f],g=A[f+1],d=A[l],p=A[l+1],w=A[c],v=A[c+1],m=d-h,b=p-g,y=w-h,B=v-g,E=2*(m*B-b*y);if(Math.abs(E)<1e-9){if(void 0===r){r=i=0;for(const t of e)r+=A[2*t],i+=A[2*t+1];r/=e.length,i/=e.length}const t=1e9*Math.sign((r-h)*B-(i-g)*y);n=(h+w)/2-t*B,a=(g+v)/2+t*y}else{const A=1/E,e=m*m+b*b,t=y*y+B*B;n=h+(B*e-b*t)*A,a=g+(m*t-y*e)*A}o[u]=n,o[u+1]=a}let a,s,u,f=e[e.length-1],l=4*f,c=A[2*f],h=A[2*f+1];n.fill(0);for(let t=0;t<e.length;++t)f=e[t],a=l,s=c,u=h,l=4*f,c=A[2*f],h=A[2*f+1],n[a+2]=n[l]=u-h,n[a+3]=n[l+1]=c-s}render(A){const e=null==A?A=new M:void 0,{delaunay:{halfedges:t,inedges:n,hull:r},circumcenters:i,vectors:o}=this;if(r.length<=1)return null;for(let e=0,n=t.length;e<n;++e){const n=t[e];if(n<e)continue;const r=2*Math.floor(e/3),o=2*Math.floor(n/3),a=i[r],s=i[r+1],u=i[o],f=i[o+1];this._renderSegment(a,s,u,f,A)}let a,s=r[r.length-1];for(let e=0;e<r.length;++e){a=s,s=r[e];const t=2*Math.floor(n[s]/3),u=i[t],f=i[t+1],l=4*a,c=this._project(u,f,o[l+2],o[l+3]);c&&this._renderSegment(u,f,c[0],c[1],A)}return e&&e.value()}renderBounds(A){const e=null==A?A=new M: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 M:void 0,n=this._clip(A);if(null===n||!n.length)return;e.moveTo(n[0],n[1]);let r=n.length;for(;n[0]===n[r-2]&&n[1]===n[r-1]&&r>1;)r-=2;for(let A=2;A<r;A+=2)n[A]===n[A-2]&&n[A+1]===n[A-1]||e.lineTo(n[A],n[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 k;return this.renderCell(A,e),e.value()}_renderSegment(A,e,t,n,r){let i;const o=this._regioncode(A,e),a=this._regioncode(t,n);0===o&&0===a?(r.moveTo(A,e),r.lineTo(t,n)):(i=this._clipSegment(A,e,t,n,o,a))&&(r.moveTo(i[0],i[1]),r.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 n=0,r=e.length;n<r;n+=2)for(let i=0,o=A.length;i<o;i+=2)if(e[n]===A[i]&&e[n+1]===A[i+1]&&e[(n+2)%r]===A[(i+o-2)%o]&&e[(n+3)%r]===A[(i+o-1)%o]){yield t;break A}}}_cell(A){const{circumcenters:e,delaunay:{inedges:t,halfedges:n,triangles:r}}=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,r[a]!==A)break;a=n[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,n=4*A;return this._simplify(t[n]||t[n+1]?this._clipInfinite(A,e,t[n],t[n+1],t[n+2],t[n+3]):this._clipFinite(A,e))}_clipFinite(A,e){const t=e.length;let n,r,i,o,a=null,s=e[t-2],u=e[t-1],f=this._regioncode(s,u),l=0;for(let c=0;c<t;c+=2)if(n=s,r=u,s=e[c],u=e[c+1],i=f,f=this._regioncode(s,u),0===i&&0===f)o=l,l=0,a?a.push(s,u):a=[s,u];else{let e,t,c,h,g;if(0===i){if(null===(e=this._clipSegment(n,r,s,u,i,f)))continue;[t,c,h,g]=e}else{if(null===(e=this._clipSegment(s,u,n,r,f,i)))continue;[h,g,t,c]=e,o=l,l=this._edgecode(t,c),o&&l&&this._edge(A,o,l,a,a.length),a?a.push(t,c):a=[t,c]}o=l,l=this._edgecode(h,g),o&&l&&this._edge(A,o,l,a,a.length),a?a.push(h,g):a=[h,g]}if(a)o=l,l=this._edgecode(a[0],a[1]),o&&l&&this._edge(A,o,l,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,n,r,i){const o=r<i;for(o&&([A,e,t,n,r,i]=[t,n,A,e,i,r]);;){if(0===r&&0===i)return o?[t,n,A,e]:[A,e,t,n];if(r&i)return null;let a,s,u=r||i;8&u?(a=A+(t-A)*(this.ymax-e)/(n-e),s=this.ymax):4&u?(a=A+(t-A)*(this.ymin-e)/(n-e),s=this.ymin):2&u?(s=e+(n-e)*(this.xmax-A)/(t-A),a=this.xmax):(s=e+(n-e)*(this.xmin-A)/(t-A),a=this.xmin),r?(A=a,e=s,r=this._regioncode(A,e)):(t=a,n=s,i=this._regioncode(t,n))}}_clipInfinite(A,e,t,n,r,i){let o,a=Array.from(e);if((o=this._project(a[0],a[1],t,n))&&a.unshift(o[0],o[1]),(o=this._project(a[a.length-2],a[a.length-1],r,i))&&a.push(o[0],o[1]),a=this._clipFinite(A,a))for(let e,t=0,n=a.length,r=this._edgecode(a[n-2],a[n-1]);t<n;t+=2)e=r,r=this._edgecode(a[t],a[t+1]),e&&r&&(t=this._edge(A,e,r,a,t),n=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,n,r){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}n[r]===t&&n[r+1]===i||!this.contains(A,t,i)||(n.splice(r,0,t,i),r+=2)}return r}_project(A,e,t,n){let r,i,o,a=1/0;if(n<0){if(e<=this.ymin)return null;(r=(this.ymin-e)/n)<a&&(o=this.ymin,i=A+(a=r)*t)}else if(n>0){if(e>=this.ymax)return null;(r=(this.ymax-e)/n)<a&&(o=this.ymax,i=A+(a=r)*t)}if(t>0){if(A>=this.xmax)return null;(r=(this.xmax-A)/t)<a&&(i=this.xmax,o=e+(a=r)*n)}else if(t<0){if(A<=this.xmin)return null;(r=(this.xmin-A)/t)<a&&(i=this.xmin,o=e+(a=r)*n)}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,n=(e+4)%A.length;(A[e]===A[t]&&A[t]===A[n]||A[e+1]===A[t+1]&&A[t+1]===A[n+1])&&(A.splice(t,2),e-=2)}A.length||(A=null)}return A}}const x=2*Math.PI,Q=Math.pow;function D(A){return A[0]}function C(A){return A[1]}function S(A,e,t){return[A+Math.sin(A+e)*t,e+Math.cos(A-e)*t]}class I{static from(A,e=D,t=C,n){return new I("length"in A?function(A,e,t,n){const r=A.length,i=new Float64Array(2*r);for(let o=0;o<r;++o){const r=A[o];i[2*o]=e.call(n,r,o,A),i[2*o+1]=t.call(n,r,o,A)}return i}(A,e,t,n):Float64Array.from(function*(A,e,t,n){let r=0;for(const i of A)yield e.call(n,i,r,A),yield t.call(n,i,r,A),++r}(A,e,t,n)))}constructor(A){this._delaunator=new d(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 n=2*e[A],r=2*e[A+1],i=2*e[A+2];if((t[i]-t[n])*(t[r+1]-t[n+1])-(t[r]-t[n])*(t[i+1]-t[n+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],n=[e[2*A],e[2*A+1],e[2*t],e[2*t+1]],r=1e-8*Math.hypot(n[3]-n[1],n[2]-n[0]);for(let A=0,t=e.length/2;A<t;++A){const t=S(e[2*A],e[2*A+1],r);e[2*A]=t[0],e[2*A+1]=t[1]}this._delaunator=new d(e)}else delete this.collinear;const t=this.halfedges=this._delaunator.halfedges,n=this.hull=this._delaunator.hull,r=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=r[A%3==2?A-2:A+1];-1!==t[A]&&-1!==i[e]||(i[e]=A)}for(let A=0,e=n.length;A<e;++A)o[n[A]]=A;n.length<=2&&n.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=n[0],i[n[0]]=1,2===n.length&&(i[n[1]]=0,this.triangles[1]=n[1],this.triangles[2]=n[1]))}voronoi(A){return new _(this,A)}*neighbors(A){const{inedges:e,hull:t,_hullIndex:n,halfedges:r,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 s=a,u=-1;do{if(yield u=i[s],s=s%3==2?s-2:s+1,i[s]!==A)return;if(s=r[s],-1===s){const e=t[(n[A]+1)%t.length];return void(e!==u&&(yield e))}}while(s!==a)}find(A,e,t=0){if((A=+A)!=A||(e=+e)!=e)return-1;const n=t;let r;for(;(r=this._step(t,A,e))>=0&&r!==t&&r!==n;)t=r;return r}_step(A,e,t){const{inedges:n,hull:r,_hullIndex:i,halfedges:o,triangles:a,points:s}=this;if(-1===n[A]||!s.length)return(A+1)%(s.length>>1);let u=A,f=Q(e-s[2*A],2)+Q(t-s[2*A+1],2);const l=n[A];let c=l;do{let n=a[c];const l=Q(e-s[2*n],2)+Q(t-s[2*n+1],2);if(l<f&&(f=l,u=n),c=c%3==2?c-2:c+1,a[c]!==A)break;if(c=o[c],-1===c){if(c=r[(i[A]+1)%r.length],c!==n&&Q(e-s[2*c],2)+Q(t-s[2*c+1],2)<f)return c;break}}while(c!==l);return u}render(A){const e=null==A?A=new M:void 0,{points:t,halfedges:n,triangles:r}=this;for(let e=0,i=n.length;e<i;++e){const i=n[e];if(i<e)continue;const o=2*r[e],a=2*r[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 M:void 0,{points:n}=this;for(let t=0,r=n.length;t<r;t+=2){const r=n[t],i=n[t+1];A.moveTo(r+e,i),A.arc(r,i,e,0,x)}return t&&t.value()}renderHull(A){const e=null==A?A=new M:void 0,{hull:t,points:n}=this,r=2*t[0],i=t.length;A.moveTo(n[r],n[r+1]);for(let e=1;e<i;++e){const r=2*t[e];A.lineTo(n[r],n[r+1])}return A.closePath(),e&&e.value()}hullPolygon(){const A=new k;return this.renderHull(A),A.value()}renderTriangle(A,e){const t=null==e?e=new M:void 0,{points:n,triangles:r}=this,i=2*r[A*=3],o=2*r[A+1],a=2*r[A+2];return e.moveTo(n[i],n[i+1]),e.lineTo(n[o],n[o+1]),e.lineTo(n[a],n[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 k;return this.renderTriangle(A,e),e.value()}}const P=Object.assign({},{Delaunay:I});function F(){let{start:A=[0,0],width:e=1e3,height:t=500,step:n=50,overflow:r=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=r?A[0]-n:A[0],o=r?A[1]-n:A[1],a=r?A[0]+e+n:i+e,s=r?A[1]+t+n:o+t,u=r?e+2*n:e,f=r?t+2*n:t,l=[],c=Math.round(e/n*(t/n));for(let A=0;A<c;A++)l.push([Math.random()*u+i,Math.random()*f+o]);let h=P.Delaunay.from(l,A=>A[0],A=>A[1]).voronoi([i,o,a,s]);return{type:"FeatureCollection",grid:"random",geo:!1,features:l.map((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[h.cellPolygon(e)]},properties:{index:e}}))}}function T(){let{start:e=[0,0],width:t=1e3,height:n=500,step:r=50,overflow:i=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=r*Math.sqrt(2),a=i?e[0]:e[0]+o/2,s=i?e[1]:e[1]+o/2,u=e[0]+t+o/2,f=e[1]+n+o/2,l=A(a,u,o),c=A(s,f,o/2,!1),h=l.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(A=>A[0]<=e[0]+t+o/2):h.filter(A=>A[0]<=e[0]+t-o/2),h=i?h.filter(A=>A[1]<=e[1]+n+o/2):h.filter(A=>A[1]<=e[1]+n-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}}))}}function L(){let{step:e=50,width:t=1e3,height:n=500,start:r=[0,0],overflow:i=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=e,a=o/Math.sqrt(3),s=1.5*a,u=i?r[0]-o/2:r[0],f=i?r[1]-a:r[1],l=A(f+a,i?n+f+2*a:n+f-a,s),c=[];l.forEach((e,n)=>{const r=A(u+n%2*(o/2)+o/2,i?t+u:t+u-o-o/2,o);r.forEach(A=>{A<=t+u&&c.push([A,e])}),r[r.length-1]<t+u&&c.push([r[r.length-1]+o,e])});const h=c.map((A,e)=>{let[t,n]=A;const r=[];for(let A=0;A<6;A++){const e=Math.PI/180*(60*A-30);r.push([t+a*Math.cos(e),n+a*Math.sin(e)])}return r.push(r[0]),{type:"Feature",geometry:{type:"Polygon",coordinates:[r]},properties:{index:e}}});return{type:"FeatureCollection",grid:"hexbin",geo:!1,features:h}}function G(A,e){var t,n,r,i,o,a,s,u,f,l=0,h=A[0],g=A[1],d=e.length;for(t=0;t<d;t++){n=0;var p=e[t],w=p.length-1;if((u=p[0])[0]!==p[w][0]&&u[1]!==p[w][1])throw new Error("First and last coordinates in a ring must be the same");for(i=u[0]-h,o=u[1]-g;n<w;n++){if(a=(f=p[n+1])[0]-h,s=f[1]-g,0===o&&0===s){if(a<=0&&i>=0||i<=0&&a>=0)return 0}else if(s>=0&&o<=0||s<=0&&o>=0){if(0===(r=c(i,a,o,s,0,0)))return 0;(r>0&&s>0&&o<=0||r<0&&s<=0&&o>0)&&l++}u=f,o=s,i=a}}return l%2!=0}var R=6371008.8,U={centimeters:637100880,centimetres:637100880,degrees:360/(2*Math.PI),feet:20902260.511392,inches:39.37*R,kilometers:6371.0088,kilometres:6371.0088,meters:R,metres:R,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:R/1852,radians:1,yards:6967335.223679999};function O(A,e,t={}){const n={type:"Feature"};return(0===t.id||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=e||{},n.geometry=A,n}function z(A,e,t={}){if(!A)throw new Error("coordinates is required");if(!Array.isArray(A))throw new Error("coordinates must be an Array");if(A.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!X(A[0])||!X(A[1]))throw new Error("coordinates must contain numbers");return O({type:"Point",coordinates:A},e,t)}function Y(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 O({type:"Polygon",coordinates:A},e,t)}function N(A,e,t={}){if(A.length<2)throw new Error("coordinates must be an array of two or more positions");return O({type:"LineString",coordinates:A},e,t)}function H(A,e={}){const t={type:"FeatureCollection"};return e.id&&(t.id=e.id),e.bbox&&(t.bbox=e.bbox),t.features=A,t}function V(A){return 180*(A%(2*Math.PI))/Math.PI}function j(A){return A%360*Math.PI/180}function X(A){return!isNaN(A)&&null!==A&&!Array.isArray(A)}function W(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")}function Z(A){if(Array.isArray(A))return A;if("Feature"===A.type){if(null!==A.geometry)return A.geometry.coordinates}else if(A.coordinates)return A.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function J(A){return"Feature"===A.type?A.geometry:A}function K(A,e){return"FeatureCollection"===A.type?"FeatureCollection":"GeometryCollection"===A.type?"GeometryCollection":"Feature"===A.type&&null!==A.geometry?A.geometry.type:A.type}function q(A,e,t={}){if(!A)throw new Error("point is required");if(!e)throw new Error("polygon is required");const n=W(A),r=J(e),i=r.type,o=e.bbox;let a=r.coordinates;if(o&&!1===function(A,e){return e[0]<=A[0]&&e[1]<=A[1]&&e[2]>=A[0]&&e[3]>=A[1]}(n,o))return!1;"Polygon"===i&&(a=[a]);let s=!1;for(var u=0;u<a.length;++u){const A=G(n,a[u]);if(0===A)return!t.ignoreBoundary;A&&(s=!0)}return s}var $=q;class AA{constructor(A=[],e=eA){if(this.data=A,this.length=this.data.length,this.compare=e,this.length>0)for(let A=(this.length>>1)-1;A>=0;A--)this._down(A)}push(A){this.data.push(A),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const A=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),A}peek(){return this.data[0]}_up(A){const{data:e,compare:t}=this,n=e[A];for(;A>0;){const r=A-1>>1,i=e[r];if(t(n,i)>=0)break;e[A]=i,A=r}e[A]=n}_down(A){const{data:e,compare:t}=this,n=this.length>>1,r=e[A];for(;A<n;){let n=1+(A<<1),i=e[n];const o=n+1;if(o<this.length&&t(e[o],i)<0&&(n=o,i=e[o]),t(i,r)>=0)break;e[A]=i,A=n}e[A]=r}}function eA(A,e){return A<e?-1:A>e?1:0}function tA(A,e){return A.p.x>e.p.x?1:A.p.x<e.p.x?-1:A.p.y!==e.p.y?A.p.y>e.p.y?1:-1:1}function nA(A,e){return A.rightSweepEvent.p.x>e.rightSweepEvent.p.x?1:A.rightSweepEvent.p.x<e.rightSweepEvent.p.x?-1:A.rightSweepEvent.p.y!==e.rightSweepEvent.p.y?A.rightSweepEvent.p.y<e.rightSweepEvent.p.y?1:-1:1}class rA{constructor(A,e,t,n){this.p={x:A[0],y:A[1]},this.featureId=e,this.ringId=t,this.eventId=n,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(A){return this.p.x===A.p.x&&this.p.y===A.p.y}}let iA=0,oA=0,aA=0;function sA(A,e){const t="Feature"===A.type?A.geometry:A;let n=t.coordinates;"Polygon"!==t.type&&"MultiLineString"!==t.type||(n=[n]),"LineString"===t.type&&(n=[[n]]);for(let A=0;A<n.length;A++)for(let t=0;t<n[A].length;t++){let r=n[A][t][0],i=null;oA+=1;for(let o=0;o<n[A][t].length-1;o++){i=n[A][t][o+1];const a=new rA(r,iA,oA,aA),s=new rA(i,iA,oA,aA+1);a.otherEvent=s,s.otherEvent=a,tA(a,s)>0?(s.isLeftEndpoint=!0,a.isLeftEndpoint=!1):(a.isLeftEndpoint=!0,s.isLeftEndpoint=!1),e.push(a),e.push(s),r=i,aA+=1}}iA+=1}let uA=class{constructor(A){this.leftSweepEvent=A,this.rightSweepEvent=A.otherEvent}};function fA(A,e){if(null===A||null===e)return!1;if(A.leftSweepEvent.ringId===e.leftSweepEvent.ringId&&(A.rightSweepEvent.isSamePoint(e.leftSweepEvent)||A.rightSweepEvent.isSamePoint(e.leftSweepEvent)||A.rightSweepEvent.isSamePoint(e.rightSweepEvent)||A.leftSweepEvent.isSamePoint(e.leftSweepEvent)||A.leftSweepEvent.isSamePoint(e.rightSweepEvent)))return!1;const t=A.leftSweepEvent.p.x,n=A.leftSweepEvent.p.y,r=A.rightSweepEvent.p.x,i=A.rightSweepEvent.p.y,o=e.leftSweepEvent.p.x,a=e.leftSweepEvent.p.y,s=e.rightSweepEvent.p.x,u=e.rightSweepEvent.p.y,f=(u-a)*(r-t)-(s-o)*(i-n),l=(s-o)*(n-a)-(u-a)*(t-o),c=(r-t)*(n-a)-(i-n)*(t-o);if(0===f)return!1;const h=l/f,g=c/f;if(h>=0&&h<=1&&g>=0&&g<=1){return[t+h*(r-t),n+h*(i-n)]}return!1}var lA=function(A,e){const t=new AA([],tA);return function(A,e){if("FeatureCollection"===A.type){const t=A.features;for(let A=0;A<t.length;A++)sA(t[A],e)}else sA(A,e)}(A,t),function(A,e){e=e||!1;const t=[],n=new AA([],nA);for(;A.length;){const r=A.pop();if(r.isLeftEndpoint){const A=new uA(r);for(let i=0;i<n.data.length;i++){const o=n.data[i];if(e&&o.leftSweepEvent.featureId===r.featureId)continue;const a=fA(A,o);!1!==a&&t.push(a)}n.push(A)}else!1===r.isLeftEndpoint&&n.pop()}return t}(t,e)};function cA(A,e,t={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:r=!0}=t;let i=[];"FeatureCollection"===A.type?i=i.concat(A.features):"Feature"===A.type?i.push(A):"LineString"!==A.type&&"Polygon"!==A.type&&"MultiLineString"!==A.type&&"MultiPolygon"!==A.type||i.push(O(A)),"FeatureCollection"===e.type?i=i.concat(e.features):"Feature"===e.type?i.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||i.push(O(e));const o=lA(H(i),r);let a=[];if(n){const A={};o.forEach(e=>{const t=e.join(",");A[t]||(A[t]=!0,a.push(e))})}else a=o;return H(a.map(A=>z(A)))}function hA(A,e,t){if(null!==A)for(var n,r,i,o,a,s,u,f,l=0,c=0,h=A.type,g="FeatureCollection"===h,d="Feature"===h,p=g?A.features.length:1,w=0;w<p;w++){a=(f=!!(u=g?A.features[w].geometry:d?A.geometry:A)&&"GeometryCollection"===u.type)?u.geometries.length:1;for(var v=0;v<a;v++){var m=0,b=0;if(null!==(o=f?u.geometries[v]:u)){s=o.coordinates;var y=o.type;switch(l=0,y){case null:break;case"Point":if(!1===e(s,c,w,m,b))return!1;c++,m++;break;case"LineString":case"MultiPoint":for(n=0;n<s.length;n++){if(!1===e(s[n],c,w,m,b))return!1;c++,"MultiPoint"===y&&m++}"LineString"===y&&m++;break;case"Polygon":case"MultiLineString":for(n=0;n<s.length;n++){for(r=0;r<s[n].length-l;r++){if(!1===e(s[n][r],c,w,m,b))return!1;c++}"MultiLineString"===y&&m++,"Polygon"===y&&b++}"Polygon"===y&&m++;break;case"MultiPolygon":for(n=0;n<s.length;n++){for(b=0,r=0;r<s[n].length;r++){for(i=0;i<s[n][r].length-l;i++){if(!1===e(s[n][r][i],c,w,m,b))return!1;c++}b++}m++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(!1===hA(o.geometries[n],e))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function gA(A,e){if("Feature"===A.type)e(A,0);else if("FeatureCollection"===A.type)for(var t=0;t<A.features.length&&!1!==e(A.features[t],t);t++);}function dA(A,e){var t,n,r,i,o,a,s,u,f,l,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,u=h?A.features[t].properties:g?A.properties:{},f=h?A.features[t].bbox:g?A.bbox:void 0,l=h?A.features[t].id:g?A.id:void 0,o=(s=!!a&&"GeometryCollection"===a.type)?a.geometries.length:1,r=0;r<o;r++)if(null!==(i=s?a.geometries[r]:a))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===e(i,c,u,f,l))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===e(i.geometries[n],c,u,f,l))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===e(null,c,u,f,l))return!1;c++}}function pA(A,e){dA(A,function(A,t,n,r,i){var o,a=null===A?null:A.type;switch(a){case null:case"Point":case"LineString":case"Polygon":return!1!==e(O(A,n,{bbox:r,id:i}),t,0)&&void 0}switch(a){case"MultiPoint":o="Point";break;case"MultiLineString":o="LineString";break;case"MultiPolygon":o="Polygon"}for(var s=0;s<A.coordinates.length;s++){var u=A.coordinates[s];if(!1===e(O({type:o,coordinates:u},n),t,s))return!1}})}function wA(A,e,t){var n=t,r=!1;return function(A,e){pA(A,function(A,t,n){var r=0;if(A.geometry){var i=A.geometry.type;if("Point"!==i&&"MultiPoint"!==i){var o,a=0,s=0,u=0;return!1!==hA(A,function(i,f,l,c,h){if(void 0===o||t>a||c>s||h>u)return o=i,a=t,s=c,u=h,void(r=0);var g=N([o,i],A.properties);if(!1===e(g,t,n,h,r))return!1;r++,o=i})&&void 0}}})}(A,function(A,i,o,a,s){n=!1===r&&void 0===t?A:e(n,A,i,o,a,s),r=!0}),n}function vA(A,e={}){const t=J(A);switch(e.properties||"Feature"!==A.type||(e.properties=A.properties),t.type){case"Polygon":return function(A,e={}){const t=J(A),n=t.coordinates,r=e.properties?e.properties:"Feature"===A.type?A.properties:{};return mA(n,r)}(t,e);case"MultiPolygon":return function(A,e={}){const t=J(A),n=t.coordinates,r=e.properties?e.properties:"Feature"===A.type?A.properties:{},i=[];return n.forEach(A=>{i.push(mA(A,r))}),H(i)}(t,e);default:throw new Error("invalid poly")}}function mA(A,e){return A.length>1?function(A,e,t={}){return O({type:"MultiLineString",coordinates:A},e,t)}(A,e):N(A[0],e)}function bA(A,e,{ignoreSelfIntersections:t=!0}={ignoreSelfIntersections:!0}){let n=!0;return pA(A,A=>{pA(e,e=>{if(!1===n)return!1;n=function(A,e,t){switch(A.type){case"Point":switch(e.type){case"Point":return n=A.coordinates,r=e.coordinates,!(n[0]===r[0]&&n[1]===r[1]);case"LineString":return!yA(e,A);case"Polygon":return!q(A,e)}break;case"LineString":switch(e.type){case"Point":return!yA(A,e);case"LineString":return!function(A,e,t){const n=cA(A,e,{ignoreSelfIntersections:t});if(n.features.length>0)return!0;return!1}(A,e,t);case"Polygon":return!BA(e,A,t)}break;case"Polygon":switch(e.type){case"Point":return!q(e,A);case"LineString":return!BA(A,e,t);case"Polygon":return!function(A,e,t){for(const t of A.coordinates[0])if(q(t,e))return!0;for(const t of e.coordinates[0])if(q(t,A))return!0;const n=cA(vA(A),vA(e),{ignoreSelfIntersections:t});if(n.features.length>0)return!0;return!1}(e,A,t)}}var n,r;return!1}(A.geometry,e.geometry,t)})}),n}function yA(A,e){for(let t=0;t<A.coordinates.length-1;t++)if(EA(A.coordinates[t],A.coordinates[t+1],e.coordinates))return!0;return!1}function BA(A,e,t){for(const t of e.coordinates)if(q(t,A))return!0;return cA(e,vA(A),{ignoreSelfIntersections:t}).features.length>0}function EA(A,e,t){const n=t[0]-A[0],r=t[1]-A[1],i=e[0]-A[0],o=e[1]-A[1];return 0===n*o-r*i&&(Math.abs(i)>=Math.abs(o)?i>0?A[0]<=t[0]&&t[0]<=e[0]:e[0]<=t[0]&&t[0]<=A[0]:o>0?A[1]<=t[1]&&t[1]<=e[1]:e[1]<=t[1]&&t[1]<=A[1])}var MA=function(A,e,{ignoreSelfIntersections:t=!0}={}){let n=!1;return pA(A,A=>{pA(e,e=>{if(!0===n)return!0;n=!bA(A.geometry,e.geometry,{ignoreSelfIntersections:t})})}),n};function kA(){let{step:A=1,domain:e=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=180,n=-90;if(A<=0)throw new Error("step must be > 0");const r=[];let i=0,o=-180;for(;o<t-1e-12;){let e=o+A;e>t&&(e=t);const a=Math.max(o,-179.99),s=Math.min(e,179.99);let u=90;for(;u>n+1e-12;){let e=u-A;e<n&&(e=n);const t=Math.min(u,89.99),o=Math.max(e,-89.99);s-a>1e-12&&t-o>1e-12&&r.push({type:"Feature",geometry:{type:"Polygon",coordinates:[[[a,t],[s,t],[s,o],[a,o],[a,t]]]},properties:{index:i++}}),u=e}o=e}return{type:"FeatureCollection",grid:"square_sph",geo:!0,features:e?r.filter(A=>{try{return MA(A,e)}catch{return!1}}):r}}var _A=function(A){var e,t=void 0!==(A=A||{})?A:{},n={};for(e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);var r,i,o,a,s;r="object"==typeof window,i="function"==typeof importScripts,a="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=a&&!r&&!i,s=!r&&!o&&!i;var u,f,l,c,h,g="";o?(g=__dirname+"/",u=function(A,e){var t;return(t=eA(A))||(c||(c=require("fs")),h||(h=require("path")),A=h.normalize(A),t=c.readFileSync(A)),e?t:t.toString()},l=function(A){var e=u(A,!0);return e.buffer||(e=new Uint8Array(e)),m(e.buffer),e},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),t.inspect=function(){return"[Emscripten Module object]"}):s?("undefined"!=typeof read&&(u=function(A){var e=eA(A);return e?$(e):read(A)}),l=function(A){var e;return(e=eA(A))?e:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(m("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)):(r||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):"",u=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var t=eA(A);if(t)return $(t);throw e}},i&&(l=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=eA(A);if(t)return t;throw e}}),f=function(A,e,t){var n=new XMLHttpRequest;n.open("GET",A,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status||0==n.status&&n.response)e(n.response);else{var r=eA(A);r?e(r.buffer):t()}},n.onerror=t,n.send(null)});var d=t.print||console.log.bind(console),p=t.printErr||console.warn.bind(console);for(e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);n=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram;var w=0;var v=!1;function m(A,e){A||dA("Assertion failed: "+e)}function b(A){var e=t["_"+A];return m(e,"Cannot call unknown function "+A+", make sure it is exported"),e}function y(A,e,t,n,r){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,n){if(!(n>0))return 0;for(var r=t,i=t+n-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,M,e,t)})(A,e=oA(t),t)}return e},array:function(A){var e=oA(A.length);return function(A,e){E.set(A,e)}(A,e),e}};var o=b(A),a=[],s=0;if(n)for(var u=0;u<n.length;u++){var f=i[t[u]];f?(0===s&&(s=sA()),a[u]=f(n[u])):a[u]=n[u]}var l=o.apply(null,a);return l=function(A){return"string"===e?C(A):"boolean"===e?Boolean(A):A}(l),0!==s&&aA(s),l}var B,E,M,k,_,x,Q,D="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function C(A,e){return A?function(A,e,t){for(var n=e+t,r=e;A[r]&&!(r>=n);)++r;if(r-e>16&&A.subarray&&D)return D.decode(A.subarray(e,r));for(var i="";e<r;){var o=A[e++];if(128&o){var a=63&A[e++];if(192!=(224&o)){var s=63&A[e++];if((o=224==(240&o)?(15&o)<<12|a<<6|s:(7&o)<<18|a<<12|s<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var u=o-65536;i+=String.fromCharCode(55296|u>>10,56320|1023&u)}}else i+=String.fromCharCode((31&o)<<6|a)}else i+=String.fromCharCode(o)}return i}(M,A,e):""}function S(A,e){return A%e>0&&(A+=e-A%e),A}function I(A){B=A,t.HEAP8=E=new Int8Array(A),t.HEAP16=k=new Int16Array(A),t.HEAP32=_=new Int32Array(A),t.HEAPU8=M=new Uint8Array(A),t.HEAPU16=new Uint16Array(A),t.HEAPU32=new Uint32Array(A),t.HEAPF32=x=new Float32Array(A),t.HEAPF64=Q=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var P=t.TOTAL_MEMORY||33554432;function F(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var n=e.func;"number"==typeof n?void 0===e.arg?t.dynCall_v(n):t.dynCall_vi(n,e.arg):n(void 0===e.arg?null:e.arg)}else e()}}P=(B=t.buffer?t.buffer:new ArrayBuffer(P)).byteLength,I(B),_[7156]=5271536;var T=[],L=[],G=[],R=[];function U(A){T.unshift(A)}function O(A){R.unshift(A)}var z=Math.abs,Y=Math.ceil,N=Math.floor,H=Math.min,V=0,j=null;t.preloadedImages={},t.preloadedAudios={};var X,W,Z=null,J="data:application/octet-stream;base64,";function K(A){return String.prototype.startsWith?A.startsWith(J):0===A.indexOf(J)}Z="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAABgAAAAoAAAALAAAAAAAAAAEAAAAFAAAAAwAAAA0AAAABAAAABwAAAAQAAAAMAAAAAAAAAAQAAAB/AAAADwAAAAgAAAADAAAAAAAAAAwAAAAFAAAAAgAAABIAAAAKAAAACAAAAAAAAAAQAAAABgAAAA4AAAALAAAAEQAAAAEAAAAJAAAAAgAAAAcAAAAVAAAACQAAABMAAAADAAAADQAAAAEAAAAIAAAABQAAABYAAAAQAAAABAAAAAAAAAAPAAAACQAAABMAAAAOAAAAFAAAAAEAAAAHAAAABgAAAAoAAAALAAAAGAAAABcAAAAFAAAAAgAAABIAAAALAAAAEQAAABcAAAAZAAAAAgAAAAYAAAAKAAAADAAAABwAAAANAAAAGgAAAAQAAAAPAAAAAwAAAA0AAAAaAAAAFQAAAB0AAAADAAAADAAAAAcAAAAOAAAAfwAAABEAAAAbAAAACQAAABQAAAAGAAAADwAAABYAAAAcAAAAHwAAAAQAAAAIAAAADAAAABAAAAASAAAAIQAAAB4AAAAIAAAABQAAABYAAAARAAAACwAAAA4AAAAGAAAAIwAAABkAAAAbAAAAEgAAABgAAAAeAAAAIAAAAAUAAAAKAAAAEAAAABMAAAAiAAAAFAAAACQAAAAHAAAAFQAAAAkAAAAUAAAADgAAABMAAAAJAAAAKAAAABsAAAAkAAAAFQAAACYAAAATAAAAIgAAAA0AAAAdAAAABwAAABYAAAAQAAAAKQAAACEAAAAPAAAACAAAAB8AAAAXAAAAGAAAAAsAAAAKAAAAJwAAACUAAAAZAAAAGAAAAH8AAAAgAAAAJQAAAAoAAAAXAAAAEgAAABkAAAAXAAAAEQAAAAsAAAAtAAAAJwAAACMAAAAaAAAAKgAAAB0AAAArAAAADAAAABwAAAANAAAAGwAAACgAAAAjAAAALgAAAA4AAAAUAAAAEQAAABwAAAAfAAAAKgAAACwAAAAMAAAADwAAABoAAAAdAAAAKwAAACYAAAAvAAAADQAAABoAAAAVAAAAHgAAACAAAAAwAAAAMgAAABAAAAASAAAAIQAAAB8AAAApAAAALAAAADUAAAAPAAAAFgAAABwAAAAgAAAAHgAAABgAAAASAAAANAAAADIAAAAlAAAAIQAAAB4AAAAxAAAAMAAAABYAAAAQAAAAKQAAACIAAAATAAAAJgAAABUAAAA2AAAAJAAAADMAAAAjAAAALgAAAC0AAAA4AAAAEQAAABsAAAAZAAAAJAAAABQAAAAiAAAAEwAAADcAAAAoAAAANgAAACUAAAAnAAAANAAAADkAAAAYAAAAFwAAACAAAAAmAAAAfwAAACIAAAAzAAAAHQAAAC8AAAAVAAAAJwAAACUAAAAZAAAAFwAAADsAAAA5AAAALQAAACgAAAAbAAAAJAAAABQAAAA8AAAALgAAADcAAAApAAAAMQAAADUAAAA9AAAAFgAAACEAAAAfAAAAKgAAADoAAAArAAAAPgAAABwAAAAsAAAAGgAAACsAAAA+AAAALwAAAEAAAAAaAAAAKgAAAB0AAAAsAAAANQAAADoAAABBAAAAHAAAAB8AAAAqAAAALQAAACcAAAAjAAAAGQAAAD8AAAA7AAAAOAAAAC4AAAA8AAAAOAAAAEQAAAAbAAAAKAAAACMAAAAvAAAAJgAAACsAAAAdAAAARQAAADMAAABAAAAAMAAAADEAAAAeAAAAIQAAAEMAAABCAAAAMgAAADEAAAB/AAAAPQAAAEIAAAAhAAAAMAAAACkAAAAyAAAAMAAAACAAAAAeAAAARgAAAEMAAAA0AAAAMwAAAEUAAAA2AAAARwAAACYAAAAvAAAAIgAAADQAAAA5AAAARgAAAEoAAAAgAAAAJQAAADIAAAA1AAAAPQAAAEEAAABLAAAAHwAAACkAAAAsAAAANgAAAEcAAAA3AAAASQAAACIAAAAzAAAAJAAAADcAAAAoAAAANgAAACQAAABIAAAAPAAAAEkAAAA4AAAARAAAAD8AAABNAAAAIwAAAC4AAAAtAAAAOQAAADsAAABKAAAATgAAACUAAAAnAAAANAAAADoAAAB/AAAAPgAAAEwAAAAsAAAAQQAAACoAAAA7AAAAPwAAAE4AAABPAAAAJwAAAC0AAAA5AAAAPAAAAEgAAABEAAAAUAAAACgAAAA3AAAALgAAAD0AAAA1AAAAMQAAACkAAABRAAAASwAAAEIAAAA+AAAAKwAAADoAAAAqAAAAUgAAAEAAAABMAAAAPwAAAH8AAAA4AAAALQAAAE8AAAA7AAAATQAAAEAAAAAvAAAAPgAAACsAAABUAAAARQAAAFIAAABBAAAAOgAAADUAAAAsAAAAVgAAAEwAAABLAAAAQgAAAEMAAABRAAAAVQAAADEAAAAwAAAAPQAAAEMAAABCAAAAMgAAADAAAABXAAAAVQAAAEYAAABEAAAAOAAAADwAAAAuAAAAWgAAAE0AAABQAAAARQAAADMAAABAAAAALwAAAFkAAABHAAAAVAAAAEYAAABDAAAANAAAADIAAABTAAAAVwAAAEoAAABHAAAAWQAAAEkAAABbAAAAMwAAAEUAAAA2AAAASAAAAH8AAABJAAAANwAAAFAAAAA8AAAAWAAAAEkAAABbAAAASAAAAFgAAAA2AAAARwAAADcAAABKAAAATgAAAFMAAABcAAAANAAAADkAAABGAAAASwAAAEEAAAA9AAAANQAAAF4AAABWAAAAUQAAAEwAAABWAAAAUgAAAGAAAAA6AAAAQQAAAD4AAABNAAAAPwAAAEQAAAA4AAAAXQAAAE8AAABaAAAATgAAAEoAAAA7AAAAOQAAAF8AAABcAAAATwAAAE8AAABOAAAAPwAAADsAAABdAAAAXwAAAE0AAABQAAAARAAAAEgAAAA8AAAAYwAAAFoAAABYAAAAUQAAAFUAAABeAAAAZQAAAD0AAABCAAAASwAAAFIAAABgAAAAVAAAAGIAAAA+AAAATAAAAEAAAABTAAAAfwAAAEoAAABGAAAAZAAAAFcAAABcAAAAVAAAAEUAAABSAAAAQAAAAGEAAABZAAAAYgAAAFUAAABXAAAAZQAAAGYAAABCAAAAQwAAAFEAAABWAAAATAAAAEsAAABBAAAAaAAAAGAAAABeAAAAVwAAAFMAAABmAAAAZAAAAEMAAABGAAAAVQAAAFgAAABIAAAAWwAAAEkAAABjAAAAUAAAAGkAAABZAAAAYQAAAFsAAABnAAAARQAAAFQAAABHAAAAWgAAAE0AAABQAAAARAAAAGoAAABdAAAAYwAAAFsAAABJAAAAWQAAAEcAAABpAAAAWAAAAGcAAABcAAAAUwAAAE4AAABKAAAAbAAAAGQAAABfAAAAXQAAAE8AAABaAAAATQAAAG0AAABfAAAAagAAAF4AAABWAAAAUQAAAEsAAABrAAAAaAAAAGUAAABfAAAAXAAAAE8AAABOAAAAbQAAAGwAAABdAAAAYAAAAGgAAABiAAAAbgAAAEwAAABWAAAAUgAAAGEAAAB/AAAAYgAAAFQAAABnAAAAWQAAAG8AAABiAAAAbgAAAGEAAABvAAAAUgAAAGAAAABUAAAAYwAAAFAAAABpAAAAWAAAAGoAAABaAAAAcQAAAGQAAABmAAAAUwAAAFcAAABsAAAAcgAAAFwAAABlAAAAZgAAAGsAAABwAAAAUQAAAFUAAABeAAAAZgAAAGUAAABXAAAAVQAAAHIAAABwAAAAZAAAAGcAAABbAAAAYQAAAFkAAAB0AAAAaQAAAG8AAABoAAAAawAAAG4AAABzAAAAVgAAAF4AAABgAAAAaQAAAFgAAABnAAAAWwAAAHEAAABjAAAAdAAAAGoAAABdAAAAYwAAAFoAAAB1AAAAbQAAAHEAAABrAAAAfwAAAGUAAABeAAAAcwAAAGgAAABwAAAAbAAAAGQAAABfAAAAXAAAAHYAAAByAAAAbQAAAG0AAABsAAAAXQAAAF8AAAB1AAAAdgAAAGoAAABuAAAAYgAAAGgAAABgAAAAdwAAAG8AAABzAAAAbwAAAGEAAABuAAAAYgAAAHQAAABnAAAAdwAAAHAAAABrAAAAZgAAAGUAAAB4AAAAcwAAAHIAAABxAAAAYwAAAHQAAABpAAAAdQAAAGoAAAB5AAAAcgAAAHAAAABkAAAAZgAAAHYAAAB4AAAAbAAAAHMAAABuAAAAawAAAGgAAAB4AAAAdwAAAHAAAAB0AAAAZwAAAHcAAABvAAAAcQAAAGkAAAB5AAAAdQAAAH8AAABtAAAAdgAAAHEAAAB5AAAAagAAAHYAAAB4AAAAbAAAAHIAAAB1AAAAeQAAAG0AAAB3AAAAbwAAAHMAAABuAAAAeQAAAHQAAAB4AAAAeAAAAHMAAAByAAAAcAAAAHkAAAB3AAAAdgAAAHkAAAB0AAAAeAAAAHcAAAB1AAAAcQAAAHYAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAACAAAABQAAAAEAAAAAAAAA/////wEAAAAAAAAAAwAAAAQAAAACAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////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//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAA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ZV0gPT0gS0kAZmFjZWlqay5jAF9mYWNlSWprUGVudFRvQ2VsbEJvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9DZWxsQm91bmRhcnkAaDNJbmRleC5jAGNvbXBhY3RDZWxscwBsYXRMbmdUb0NlbGwAY2VsbFRvQ2hpbGRQb3MAdmFsaWRhdGVDaGlsZFBvcwBsYXRMbmcuYwBjZWxsQXJlYVJhZHMyAHBvbHlnb24tPm5leHQgPT0gTlVMTABsaW5rZWRHZW8uYwBhZGROZXdMaW5rZWRQb2x5Z29uAG5leHQgIT0gTlVMTABsb29wICE9IE5VTEwAYWRkTmV3TGlua2VkTG9vcABwb2x5Z29uLT5maXJzdCA9PSBOVUxMAGFkZExpbmtlZExvb3AAY29vcmQgIT0gTlVMTABhZGRMaW5rZWRDb29yZABsb29wLT5maXJzdCA9PSBOVUxMAGlubmVyTG9vcHMgIT0gTlVMTABub3JtYWxpemVNdWx0aVBvbHlnb24AYmJveGVzICE9IE5VTEwAY2FuZGlkYXRlcyAhPSBOVUxMAGZpbmRQb2x5Z29uRm9ySG9sZQBjYW5kaWRhdGVCQm94ZXMgIT0gTlVMTAByZXZEaXIgIT0gSU5WQUxJRF9ESUdJVABsb2NhbGlqLmMAY2VsbFRvTG9jYWxJamsAYmFzZUNlbGwgIT0gb3JpZ2luQmFzZUNlbGwAIShvcmlnaW5PblBlbnQgJiYgaW5kZXhPblBlbnQpAGJhc2VDZWxsID09IG9yaWdpbkJhc2VDZWxsAGJhc2VDZWxsICE9IElOVkFMSURfQkFTRV9DRUxMAGxvY2FsSWprVG9DZWxsACFfaXNCYXNlQ2VsbFBlbnRhZ29uKGJhc2VDZWxsKQBiYXNlQ2VsbFJvdGF0aW9ucyA+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAdmVydGV4Um90YXRpb25zAGNlbGxUb1ZlcnRleABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl";function q(){return E.length}function $(A){for(var e=[],t=0;t<A.length;t++){var n=A[t];n>255&&(n&=255),e.push(String.fromCharCode(n))}return e.join("")}var AA="function"==typeof atob?atob:function(A){var e,t,n,r,i,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s="",u=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=a.indexOf(A.charAt(u++))<<2|(r=a.indexOf(A.charAt(u++)))>>4,t=(15&r)<<4|(i=a.indexOf(A.charAt(u++)))>>2,n=(3&i)<<6|(o=a.indexOf(A.charAt(u++))),s+=String.fromCharCode(e),64!==i&&(s+=String.fromCharCode(t)),64!==o&&(s+=String.fromCharCode(n))}while(u<A.length);return s};function eA(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=AA(A),n=new Uint8Array(t.length),r=0;r<t.length;++r)n[r]=t.charCodeAt(r);return n}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(J.length))}var tA=function(A,e,t){var n=new A.Int8Array(t),r=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,s=A.Math.floor,u=A.Math.abs,f=A.Math.sqrt,l=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,v=A.Math.atan2,m=A.Math.ceil,b=A.Math.imul,y=A.Math.min,B=A.Math.max,E=A.Math.clz32,M=e.b,k=e.c,_=e.d,x=e.e,Q=e.f,D=e.g,C=e.h,S=e.i,I=28656;function P(A,e,t,n){return 0|F(A|=0,e|=0,t|=0,n|=0,0)}function F(A,e,t,n,i){var o,a=0,s=0,u=0,f=0;if(o=I,I=I+16|0,s=o,!(0|T(A|=0,e|=0,t|=0,n|=0,i|=0)))return I=o,0|(n=0);do{if((0|t)>=0){if((0|t)>13780509){if(0|(a=0|de(15,s)))break;s=0|r[(u=s)>>2],u=0|r[u+4>>2]}else f=0|ot(0|t,0|(a=((0|t)<0)<<31>>31),3,0),u=0|k(),a=0|et(0|t,0|a,1,0),a=0|et(0|(a=0|ot(0|f,0|u,0|a,0|k())),0|k(),1,0),u=0|k(),r[s>>2]=a,r[s+4>>2]=u,s=a;if(wt(0|n,0,s<<3),0|i){wt(0|i,0,s<<2),a=0|L(A,e,t,n,i,s,u,0);break}(a=0|At(s,4))?(f=0|L(A,e,t,n,a,s,u,0),$e(a),a=f):a=13}else a=2}while(0);return I=o,0|(f=a)}function T(A,e,t,n,i){A|=0,e|=0,t|=0,n|=0,i|=0;var o,a,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0;if(a=I,I=I+16|0,p=a+8|0,r[(d=o=a)>>2]=A,r[d+4>>2]=e,(0|t)<0)return I=a,0|(p=2);if(r[(s=n)>>2]=A,r[s+4>>2]=e,(s=!!(0|i))&&(r[i>>2]=0),0|jA(A,e))return I=a,0|(p=9);r[p>>2]=0;A:do{if((0|t)>=1)if(s)for(h=1,c=0,g=0,d=1,s=A;;){if(!(c|g)){if(0|(s=0|G(s,e,4,p,o)))break A;if(0|jA(s=0|r[(e=o)>>2],e=0|r[e+4>>2])){s=9;break A}}if(0|(s=0|G(s,e,0|r[26800+(g<<2)>>2],p,o)))break A;if(s=0|r[(e=o)>>2],e=0|r[e+4>>2],r[(A=n+(h<<3)|0)>>2]=s,r[A+4>>2]=e,r[i+(h<<2)>>2]=d,u=(0|(A=c+1|0))==(0|d),l=6==(0|(f=g+1|0)),0|jA(s,e)){s=9;break A}if((0|(d=d+(l&u&1)|0))>(0|t)){s=0;break}h=h+1|0,c=u?0:A,g=u?l?0:f:g}else for(h=1,c=0,g=0,d=1,s=A;;){if(!(c|g)){if(0|(s=0|G(s,e,4,p,o)))break A;if(0|jA(s=0|r[(e=o)>>2],e=0|r[e+4>>2])){s=9;break A}}if(0|(s=0|G(s,e,0|r[26800+(g<<2)>>2],p,o)))break A;if(s=0|r[(e=o)>>2],e=0|r[e+4>>2],r[(A=n+(h<<3)|0)>>2]=s,r[A+4>>2]=e,u=(0|(A=c+1|0))==(0|d),l=6==(0|(f=g+1|0)),0|jA(s,e)){s=9;break A}if((0|(d=d+(l&u&1)|0))>(0|t)){s=0;break}h=h+1|0,c=u?0:A,g=u?l?0:f:g}else s=0}while(0);return I=a,0|(p=s)}function L(A,e,t,n,i,o,a,s){t|=0,n|=0,i|=0,s|=0;var u,f,l,c=0,h=0,g=0,d=0,p=0,w=0,v=0;if(l=I,I=I+16|0,u=l+8|0,f=l,c=0|st(0|(A|=0),0|(e|=0),0|(o|=0),0|(a|=0)),g=0|k(),!(!(0|(v=0|r[(w=d=n+(c<<3)|0)>>2]))&!(0|(w=0|r[w+4>>2]))|(h=(0|v)==(0|A)&(0|w)==(0|e))))do{c=0|at(0|(c=0|et(0|c,0|g,1,0)),0|k(),0|o,0|a),g=0|k(),h=(0|(w=0|r[(v=d=n+(c<<3)|0)>>2]))==(0|A)&(0|(v=0|r[v+4>>2]))==(0|e)}while(!(!(0|w)&!(0|v)|h));if(c=i+(c<<2)|0,h&&(0|r[c>>2])<=(0|s))return I=l,0|(v=0);if(r[(v=d)>>2]=A,r[v+4>>2]=e,r[c>>2]=s,(0|s)>=(0|t))return I=l,0|(v=0);switch(h=s+1|0,r[u>>2]=0,0|(c=0|G(A,e,2,u,f))){case 9:p=9;break;case 0:(c=0|L(0|r[(c=f)>>2],0|r[c+4>>2],t,n,i,o,a,h))||(p=9)}A:do{if(9==(0|p)){switch(r[u>>2]=0,0|(c=0|G(A,e,3,u,f))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=f)>>2],0|r[c+4>>2],t,n,i,o,a,h)))break A;break;default:break A}switch(r[u>>2]=0,0|(c=0|G(A,e,1,u,f))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=f)>>2],0|r[c+4>>2],t,n,i,o,a,h)))break A;break;default:break A}switch(r[u>>2]=0,0|(c=0|G(A,e,5,u,f))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=f)>>2],0|r[c+4>>2],t,n,i,o,a,h)))break A;break;default:break A}switch(r[u>>2]=0,0|(c=0|G(A,e,4,u,f))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=f)>>2],0|r[c+4>>2],t,n,i,o,a,h)))break A;break;default:break A}switch(r[u>>2]=0,0|(c=0|G(A,e,6,u,f))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=f)>>2],0|r[c+4>>2],t,n,i,o,a,h)))break A;break;default:break A}return I=l,0|(v=0)}}while(0);return I=l,0|(v=c)}function G(A,e,t,n,i){A|=0,e|=0,i|=0;var o,a,s=0,u=0,f=0,l=0,c=0,h=0,g=0;if((t|=0)>>>0>6)return 0|(i=1);if(c=(0|r[(n|=0)>>2])%6|0,r[n>>2]=c,(0|c)>0){s=0;do{t=0|yA(t),s=s+1|0}while((0|s)<(0|r[n>>2]))}if(c=0|ft(0|A,0|e,45),k(),(a=127&c)>>>0>121)return 0|(i=5);o=0|ZA(A,e),s=0|ft(0|A,0|e,52),k(),s&=15;A:do{if(s){for(;;){if(f=0|ft(0|A,0|e,0|(u=3*(15-s|0)|0)),k(),7==(0|(f&=7))){e=5;break}if(g=!(0|Ae(s)),s=s+-1|0,h=0|lt(7,0,0|u),e&=~k(),A=0|lt(0|r[(g?432:16)+(28*f|0)+(t<<2)>>2],0,0|u)|A&~h,e|=u=0|k(),!(t=0|r[(g?640:224)+(28*f|0)+(t<<2)>>2])){t=0;break A}if(!s){l=8;break A}}return 0|e}l=8}while(0);8==(0|l)&&(A|=0|lt(0|(g=0|r[848+(28*a|0)+(t<<2)>>2]),0,45),e=k()|-1040385&e,t=0|r[4272+(28*a|0)+(t<<2)>>2],127&~g||(g=0|lt(0|r[848+(28*a|0)+20>>2],0,45),e=k()|-1040385&e,t=0|r[4272+(28*a|0)+20>>2],A=0|KA(g|A,e),e=0|k(),r[n>>2]=1+(0|r[n>>2]))),f=0|ft(0|A,0|e,45),k(),f&=127;A:do{if(0|Y(f)){e:do{if(1==(0|ZA(A,e))){if((0|a)!=(0|f)){if(0|j(f,0|r[7696+(28*a|0)>>2])){A=0|$A(A,e),u=1,e=0|k();break}_(27795,26864,533,26872)}switch(0|o){case 3:A=0|KA(A,e),e=0|k(),r[n>>2]=1+(0|r[n>>2]),u=0;break e;case 5:A=0|$A(A,e),e=0|k(),r[n>>2]=5+(0|r[n>>2]),u=0;break e;case 0:return 0|(g=9);default:return 0|(g=1)}}else u=0}while(0);if((0|t)>0){s=0;do{A=0|JA(A,e),e=0|k(),s=s+1|0}while((0|s)!=(0|t))}if((0|a)!=(0|f)){if(!(0|N(f))){if(!!(0|u)|5!=(0|ZA(A,e)))break;r[n>>2]=1+(0|r[n>>2]);break}switch(127&c){case 8:case 118:break A}3!=(0|ZA(A,e))&&(r[n>>2]=1+(0|r[n>>2]))}}else if((0|t)>0){s=0;do{A=0|KA(A,e),e=0|k(),s=s+1|0}while((0|s)!=(0|t))}}while(0);return r[n>>2]=((0|r[n>>2])+t|0)%6|0,r[(g=i)>>2]=A,r[g+4>>2]=e,0|(g=0)}function R(A,e,t,n){A|=0,e|=0,t|=0,n|=0;var i,o,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0;if(o=I,I=I+16|0,d=o+8|0,r[(g=i=o)>>2]=A,r[g+4>>2]=e,(0|t)<0)return I=o,0|(d=2);if(!t)return r[(d=n)>>2]=A,r[d+4>>2]=e,I=o,0|(d=0);r[d>>2]=0;A:do{if(0|jA(A,e))A=9;else{a=0,g=A;do{if(0|(A=0|G(g,e,4,d,i)))break A;if(a=a+1|0,0|jA(g=0|r[(e=i)>>2],e=0|r[e+4>>2])){A=9;break A}}while((0|a)<(0|t));r[(h=n)>>2]=g,r[h+4>>2]=e,h=t+-1|0,c=0,A=1;do{if(a=26800+(c<<2)|0,5==(0|c))for(u=0|r[a>>2],s=0,a=A;;){if(0|(A=0|G(0|r[(A=i)>>2],0|r[A+4>>2],u,d,i)))break A;if((0|s)!=(0|h)){if(f=0|r[(l=i)>>2],l=0|r[l+4>>2],r[(A=n+(a<<3)|0)>>2]=f,r[A+4>>2]=l,0|jA(f,l)){A=9;break A}A=a+1|0}else A=a;if((0|(s=s+1|0))>=(0|t))break;a=A}else for(u=i,l=0|r[a>>2],f=0,a=A,s=0|r[u>>2],u=0|r[u+4>>2];;){if(0|(A=0|G(s,u,l,d,i)))break A;if(s=0|r[(u=i)>>2],u=0|r[u+4>>2],r[(A=n+(a<<3)|0)>>2]=s,r[A+4>>2]=u,A=a+1|0,0|jA(s,u)){A=9;break A}if((0|(f=f+1|0))>=(0|t))break;a=A}c=c+1|0}while(c>>>0<6);A=(0|g)==(0|r[(A=i)>>2])&&(0|e)==(0|r[A+4>>2])?0:9}}while(0);return I=o,0|(d=A)}function U(A,e,t,n){A|=0,e|=0,n|=0;var i,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0;if(i=I,I=I+16|0,s=i,!(t|=0))return r[n>>2]=A,r[n+4>>2]=e,I=i,0|(n=0);do{if((0|t)>=0){if((0|t)>13780509){if(0|(o=0|de(15,s)))break;o=0|r[(a=s)>>2],a=0|r[a+4>>2]}else c=0|ot(0|t,0|(o=((0|t)<0)<<31>>31),3,0),a=0|k(),o=0|et(0|t,0|o,1,0),o=0|et(0|(o=0|ot(0|c,0|a,0|o,0|k())),0|k(),1,0),a=0|k(),r[(c=s)>>2]=o,r[c+4>>2]=a;if(l=0|At(o,8)){if(!(c=0|At(o,4))){$e(l),o=13;break}if(0|(o=0|L(A,e,t,l,c,o,a,0))){$e(l),$e(c);break}if(e=0|r[s>>2],(0|(s=0|r[s+4>>2]))>0|!(0|s)&e>>>0>0){o=0,u=0,f=0;do{!(0|(a=0|r[(A=l+(u<<3)|0)>>2]))&!(0|(A=0|r[A+4>>2]))||(0|r[c+(u<<2)>>2])!=(0|t)||(r[(h=n+(o<<3)|0)>>2]=a,r[h+4>>2]=A,o=o+1|0),u=0|et(0|u,0|f,1,0),f=0|k()}while((0|f)<(0|s)|(0|f)==(0|s)&u>>>0<e>>>0)}$e(l),$e(c),o=0}else o=13}else o=2}while(0);return I=i,0|(h=o)}function O(A,e,t,n){t|=0,n|=0;var i,o,a,s=0,u=0;for(a=I,I=I+16|0,i=a,o=a+8|0,s=(s=!(0|jA(A|=0,e|=0)))?1:2;;){if(r[o>>2]=0,!(0|G(A,e,s,o,i))&((0|r[(u=i)>>2])==(0|t)?(0|r[u+4>>2])==(0|n):0)){A=4;break}if((s=s+1|0)>>>0>=7){s=7,A=4;break}}return 4==(0|A)?(I=a,0|s):0}function z(A,e,t,n,o,a,s){e|=0,t|=0,n|=0,o|=0,a|=0,s|=0;var u,f,l,c,h,g,d,p,w,v,m=0,b=0,y=0,B=0,E=0,M=0,_=0,x=0,Q=0,D=0,C=0,S=0,P=0,F=0,T=0,L=0,G=0,R=0,U=0;if(v=I,I=I+64|0,d=v+48|0,p=v+32|0,w=v+24|0,u=v+8|0,f=v,(0|(b=0|r[(A|=0)>>2]))<=0)return I=v,0|(T=0);for(l=A+4|0,c=d+8|0,h=p+8|0,g=u+8|0,m=0,P=0;;){S=(y=0|r[l>>2])+(P<<4)|0,r[d>>2]=r[S>>2],r[d+4>>2]=r[S+4>>2],r[d+8>>2]=r[S+8>>2],r[d+12>>2]=r[S+12>>2],(0|P)==(b+-1|0)?(r[p>>2]=r[y>>2],r[p+4>>2]=r[y+4>>2],r[p+8>>2]=r[y+8>>2],r[p+12>>2]=r[y+12>>2]):(S=y+(P+1<<4)|0,r[p>>2]=r[S>>2],r[p+4>>2]=r[S+4>>2],r[p+8>>2]=r[S+8>>2],r[p+12>>2]=r[S+12>>2]),b=0|nA(d,p,n,w);A:do{if(b)y=0,m=b;else if(y=0|r[(b=w)>>2],(0|(b=0|r[b+4>>2]))>0|!(0|b)&y>>>0>0){C=0,S=0;e:for(;;){if(G=1/(+(y>>>0)+4294967296*+(0|b)),U=+i[d>>3],R=+((b=0|tt(0|y,0|b,0|C,0|S))>>>0)+4294967296*+(0|k()),L=+(C>>>0)+4294967296*+(0|S),i[u>>3]=G*(U*R)+G*(+i[p>>3]*L),i[g>>3]=G*(+i[c>>3]*R)+G*(+i[h>>3]*L),0|(b=0|ee(u,n,f))){m=b;break}M=0|st(0|(Q=0|r[(D=f)>>2]),0|(D=0|r[D+4>>2]),0|e,0|t),B=0|k(),y=0|r[(E=b=s+(M<<3)|0)>>2],E=0|r[E+4>>2];t:do{if(!(0|y)&!(0|E))F=b,T=16;else for(_=0,x=0;;){if((0|_)>(0|t)|(0|_)==(0|t)&x>>>0>e>>>0){m=1;break e}if((0|y)==(0|Q)&(0|E)==(0|D))break t;if(M=0|at(0|(b=0|et(0|M,0|B,1,0)),0|k(),0|e,0|t),B=0|k(),x=0|et(0|x,0|_,1,0),_=0|k(),!(0|(y=0|r[(E=b=s+(M<<3)|0)>>2]))&!(0|(E=0|r[E+4>>2]))){F=b,T=16;break}}}while(0);if(16!=(0|T)||(T=0,!(0|Q)&!(0|D))||(r[(x=F)>>2]=Q,r[x+4>>2]=D,x=a+(r[o>>2]<<3)|0,r[x>>2]=Q,r[x+4>>2]=D,x=0|et(0|r[(x=o)>>2],0|r[x+4>>2],1,0),Q=0|k(),r[(D=o)>>2]=x,r[D+4>>2]=Q),C=0|et(0|C,0|S,1,0),S=0|k(),y=0|r[(b=w)>>2],!((0|(b=0|r[b+4>>2]))>(0|S)|(0|b)==(0|S)&y>>>0>C>>>0)){y=1;break A}}y=0}else y=1}while(0);if(P=P+1|0,!y){T=21;break}if((0|P)>=(0|(b=0|r[A>>2]))){m=0,T=21;break}}return 21==(0|T)?(I=v,0|m):0}function Y(A){return(A|=0)>>>0>121?0|(A=0):0|(A=0|r[7696+(28*A|0)+16>>2])}function N(A){return 4==(0|(A|=0))|117==(0|A)|0}function H(A){return 0|r[11120+(216*(0|r[(A|=0)>>2])|0)+(72*(0|r[A+4>>2])|0)+(24*(0|r[A+8>>2])|0)+(r[A+12>>2]<<3)>>2]}function V(A){return 0|r[11120+(216*(0|r[(A|=0)>>2])|0)+(72*(0|r[A+4>>2])|0)+(24*(0|r[A+8>>2])|0)+(r[A+12>>2]<<3)+4>>2]}function j(A,e){return e|=0,(0|r[7696+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|r[7696+(28*A|0)+24>>2])==(0|e))}function X(A,e){return 0|r[848+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function W(A,e){return e|=0,(0|r[848+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|r[848+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|r[848+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|r[848+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|r[848+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|r[848+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|r[848+(28*A|0)+24>>2])==(0|e)?6:7)}function Z(A){var e,t,n;return e=(n=+i[(A|=0)+16>>3])-(t=+i[A+24>>3]),+(n<t?e+6.283185307179586:e)}function J(A){return+i[(A|=0)+16>>3]<+i[A+24>>3]|0}function K(A){return+(+i[(A|=0)>>3]-+i[A+8>>3])}function q(A,e){A|=0;var t,n,r=0;return(r=+i[(e|=0)>>3])>=+i[A+8>>3]&&r<=+i[A>>3]?(t=+i[A+16>>3],r=+i[A+24>>3],e=(n=+i[e+8>>3])>=r,A=n<=t&1,t<r?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function $(A,e){e|=0;var t,n,r,o,a,s=0,u=0,f=0,l=0;return+i[(A|=0)>>3]<+i[e+8>>3]||+i[A+8>>3]>+i[e>>3]?0|(s=0):(r=(u=+i[A+16>>3])<(l=+i[(t=A+24|0)>>3]),f=(a=+i[(s=e+16|0)>>3])<(o=+i[(n=e+24|0)>>3]),e=l-a<o-u,A=r?f|e?1:2:0,e=f?r?1:e?2:1:0,(u=+ce(u,A))<+ce(+i[n>>3],e)||(l=+ce(+i[t>>3],A))>+ce(+i[s>>3],e)?0|(f=0):0|(f=1))}function AA(A,e){e|=0;var t,n,r,o,a,s=0,u=0,f=0,l=0;return+i[(A|=0)>>3]<+i[e>>3]||+i[A+8>>3]>+i[e+8>>3]?0|(s=0):(r=(o=+i[(s=A+16|0)>>3])<(u=+i[A+24>>3]),f=(l=+i[(t=e+16|0)>>3])<(a=+i[(n=e+24|0)>>3]),e=u-l<a-o,A=r?f|e?1:2:0,e=f?r?1:e?2:1:0,(u=+ce(u,A))<=+ce(+i[n>>3],e)?0|(f=(l=+ce(+i[s>>3],A))>=+ce(+i[t>>3],e)):0|(f=0))}function eA(A,e){A|=0,e|=0;var t,n,o,a,s,u=0;o=I,I=I+176|0,r[(n=o)>>2]=4,u=+i[e>>3],i[n+8>>3]=u,a=+i[e+16>>3],i[n+16>>3]=a,i[n+24>>3]=u,u=+i[e+24>>3],i[n+32>>3]=u,s=+i[e+8>>3],i[n+40>>3]=s,i[n+48>>3]=u,i[n+56>>3]=s,i[n+64>>3]=a,t=(e=n+72|0)+96|0;do{r[e>>2]=0,e=e+4|0}while((0|e)<(0|t));pt(0|A,0|n,168),I=o}function tA(A,e,t){A|=0,e|=0,t|=0;var n,a,f,l,c,h,g,d=0,p=0,w=0,v=0,b=0,B=0,E=0;h=I,I=I+288|0,c=h+264|0,v=h+96|0,p=(d=w=h)+96|0;do{r[d>>2]=0,d=d+4|0}while((0|d)<(0|p));return 0|(e=0|oe(e,w))?(I=h,0|(B=e)):(re(w=0|r[(p=w)>>2],p=0|r[p+4>>2],c),ie(w,p,v),l=+he(c,v+8|0),i[c>>3]=+i[A>>3],i[(p=c+8|0)>>3]=+i[A+16>>3],i[v>>3]=+i[A+8>>3],i[(w=v+8|0)>>3]=+i[A+24>>3],a=+he(c,v),E=+i[p>>3]-+i[w>>3],f=+u(+E),g=+i[c>>3]-+i[v>>3],n=+u(+g),!(0==E|0==g)&&(E=+ht(+f,+n),E=+m(+a*a/+gt(+E/+gt(+f,+n),3)/(l*(2.59807621135*l)*.8)),i[o>>3]=E,b=~~E>>>0,B=+u(E)>=1?E>0?~~+y(+s(E/4294967296),4294967295)>>>0:~~+m((E-+(~~E>>>0))/4294967296)>>>0:0,2146435072&~r[o+4>>2])?(v=!(0|b)&!(0|B),r[(e=t)>>2]=v?1:b,r[e+4>>2]=v?0:B,e=0):e=1,I=h,0|(B=e))}function nA(A,e,t,n){A|=0,e|=0,t|=0,n|=0;var a,f,l,c,h=0,g=0,d=0;c=I,I=I+288|0,f=c+264|0,l=c+96|0,a=(h=g=c)+96|0;do{r[h>>2]=0,h=h+4|0}while((0|h)<(0|a));return 0|(t=0|oe(t,g))?(I=c,0|(n=t)):(re(h=0|r[(t=g)>>2],t=0|r[t+4>>2],f),ie(h,t,l),d=+he(f,l+8|0),d=+m(+ +he(A,e)/(2*d)),i[o>>3]=d,t=~~d>>>0,h=+u(d)>=1?d>0?~~+y(+s(d/4294967296),4294967295)>>>0:~~+m((d-+(~~d>>>0))/4294967296)>>>0:0,2146435072&~r[o+4>>2]?(g=!(0|t)&!(0|h),r[n>>2]=g?1:t,r[n+4>>2]=g?0:h,I=c,0|(n=0)):(I=c,0|(n=1)))}function rA(A,e,t,n){e|=0,t|=0,n|=0,r[(A|=0)>>2]=e,r[A+4>>2]=t,r[A+8>>2]=n}function iA(A,e){A|=0;var t,n,o,a,s=0,f=0,l=0,c=0,h=0,g=0,d=0;r[(a=(e|=0)+8|0)>>2]=0,n=+i[A>>3],c=+u(+n),o=+i[A+8>>3],c+=.5*(h=1.1547005383792515*+u(+o)),c-=+(0|(s=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(r[e>>2]=s,h<.5*(c+1)){r[e+4>>2]=A;break}A=A+1|0,r[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,r[e+4>>2]=A,d<=h&h<2*c){s=s+1|0,r[e>>2]=s;break}r[e>>2]=s;break}if(!(c<.6666666666666666)){if(s=s+1|0,r[e>>2]=s,h<.5*c){r[e+4>>2]=A;break}A=A+1|0,r[e+4>>2]=A;break}if(h<1-c){if(r[e+4>>2]=A,2*c-1<h){r[e>>2]=s;break}}else A=A+1|0,r[e+4>>2]=A;s=s+1|0,r[e>>2]=s}while(0);do{if(n<0){if(1&A){s=~~(+(0|s)-(2*(+((g=0|tt(0|s,((0|s)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|k()))+1)),r[e>>2]=s;break}s=~~(+(0|s)-2*(+((g=0|tt(0|s,((0|s)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|k()))),r[e>>2]=s;break}}while(0);g=e+4|0,o<0&&(s=s-((1|A<<1)/2|0)|0,r[e>>2]=s,A=0-A|0,r[g>>2]=A),f=A-s|0,(0|s)<0?(l=0-s|0,r[g>>2]=f,r[a>>2]=l,r[e>>2]=0,A=f,s=0):l=0,(0|A)<0&&(s=s-A|0,r[e>>2]=s,l=l-A|0,r[a>>2]=l,r[g>>2]=0,A=0),t=s-l|0,f=A-l|0,(0|l)<0&&(r[e>>2]=t,r[g>>2]=f,r[a>>2]=0,A=f,s=t,l=0),(0|(f=(0|l)<(0|(f=(0|A)<(0|s)?A:s))?l:f))<=0||(r[e>>2]=s-f,r[g>>2]=A-f,r[a>>2]=l-f)}function oA(A){var e,t=0,n=0,i=0,o=0,a=0;t=0|r[(A|=0)>>2],n=0|r[(e=A+4|0)>>2],(0|t)<0&&(n=n-t|0,r[e>>2]=n,r[(a=A+8|0)>>2]=(0|r[a>>2])-t,r[A>>2]=0,t=0),(0|n)<0?(t=t-n|0,r[A>>2]=t,o=(0|r[(a=A+8|0)>>2])-n|0,r[a>>2]=o,r[e>>2]=0,n=0):(a=o=A+8|0,o=0|r[o>>2]),(0|o)<0&&(t=t-o|0,r[A>>2]=t,n=n-o|0,r[e>>2]=n,r[a>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|n)<(0|t)?n:t))?o:i))<=0||(r[A>>2]=t-i,r[e>>2]=n-i,r[a>>2]=o-i)}function aA(A,e){e|=0;var t,n;n=0|r[(A|=0)+8>>2],t=+((0|r[A+4>>2])-n|0),i[e>>3]=+((0|r[A>>2])-n|0)-.5*t,i[e+8>>3]=.8660254037844386*t}function sA(A,e,t){A|=0,e|=0,r[(t|=0)>>2]=(0|r[e>>2])+(0|r[A>>2]),r[t+4>>2]=(0|r[e+4>>2])+(0|r[A+4>>2]),r[t+8>>2]=(0|r[e+8>>2])+(0|r[A+8>>2])}function uA(A,e,t){A|=0,e|=0,r[(t|=0)>>2]=(0|r[A>>2])-(0|r[e>>2]),r[t+4>>2]=(0|r[A+4>>2])-(0|r[e+4>>2]),r[t+8>>2]=(0|r[A+8>>2])-(0|r[e+8>>2])}function fA(A,e){e|=0;var t,n=0;n=0|b(0|r[(A|=0)>>2],e),r[A>>2]=n,t=0|b(0|r[(n=A+4|0)>>2],e),r[n>>2]=t,e=0|b(0|r[(A=A+8|0)>>2],e),r[A>>2]=e}function lA(A){var e,t,n=0,i=0,o=0,a=0,s=0;s=(0|(t=0|r[(A|=0)>>2]))<0,A=(A=(i=(0|(a=((e=(0|(o=(0|r[A+4>>2])-(s?t:0)|0))<0)?0-o|0:0)+((0|r[A+8>>2])-(s?t:0))|0))<0)?0:a)-((o=(0|(i=(0|A)<(0|(i=(0|(n=(e?0:o)-(i?a:0)|0))<(0|(a=(s?0:t)-(e?o:0)-(i?a:0)|0))?n:a))?A:i))>0)?i:0)|0,n=n-(o?i:0)|0;A:do{switch(a-(o?i:0)|0){case 0:switch(0|n){case 0:return 0|(s=0|A?1==(0|A)?1:7:0);case 1:return 0|(s=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|n){case 0:return 0|(s=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|(s=7)}function cA(A){var e,t,n=0,i=0,o=0,a=0,s=0,u=0,f=0;if(u=0|r[(t=(A|=0)+8|0)>>2],(e=(0|r[A>>2])-u|0)>>>0>715827881|(u=(0|r[(f=A+4|0)>>2])-u|0)>>>0>715827881){if(a=2147483647-e|0,s=-2147483648-e|0,(o=(0|e)>0)?(0|a)<(0|e):(0|s)>(0|e))return 0|(f=1);if(i=e<<1,o?(2147483647-i|0)<(0|e):(-2147483648-i|0)>(0|e))return 0|(f=1);if((0|u)>0?(2147483647-u|0)<(0|u):(-2147483648-u|0)>(0|u))return 0|(f=1);if(n=3*e|0,i=u<<1,(o?(0|a)<(0|i):(0|s)>(0|i))||((0|e)>-1?(-2147483648|n)>=(0|u):(-2147483648^n)<(0|u)))return 0|(f=1)}else i=u<<1,n=3*e|0;return o=0|Ke(.14285714285714285*+(n-u|0)),r[A>>2]=o,a=0|Ke(.14285714285714285*+(i+e|0)),r[f>>2]=a,r[t>>2]=0,n=(i=(0|a)<(0|o))?o:a,(0|(i=i?a:o))<0&&((-2147483648==(0|i)||((0|n)>0?(2147483647-n|0)<(0|i):(-2147483648-n|0)>(0|i)))&&_(27795,26892,354,26903),((0|n)>-1?(-2147483648|n)>=(0|i):(-2147483648^n)<(0|i))&&_(27795,26892,354,26903)),n=a-o|0,(0|o)<0?(i=0-o|0,r[f>>2]=n,r[t>>2]=i,r[A>>2]=0,o=0):(n=a,i=0),(0|n)<0&&(o=o-n|0,r[A>>2]=o,i=i-n|0,r[t>>2]=i,r[f>>2]=0,n=0),s=o-i|0,a=n-i|0,(0|i)<0?(r[A>>2]=s,r[f>>2]=a,r[t>>2]=0,n=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|a)?n:a))?i:o))<=0||(r[A>>2]=a-o,r[f>>2]=n-o,r[t>>2]=i-o),0|(f=0)}function hA(A){var e,t=0,n=0,i=0,o=0,a=0,s=0,u=0;if(o=0|r[(e=(A|=0)+8|0)>>2],(a=(0|r[A>>2])-o|0)>>>0>715827881|(o=(0|r[(s=A+4|0)>>2])-o|0)>>>0>715827881){if((n=(0|a)>0)?(2147483647-a|0)<(0|a):(-2147483648-a|0)>(0|a))return 0|(s=1);if(t=a<<1,(i=(0|o)>0)?(2147483647-o|0)<(0|o):(-2147483648-o|0)>(0|o))return 0|(s=1);if(u=o<<1,i?(2147483647-u|0)<(0|o):(-2147483648-u|0)>(0|o))return 0|(u=1);if(n?(2147483647-t|0)<(0|o):(-2147483648-t|0)>(0|o))return 0|(u=1);if(n=3*o|0,(0|o)>-1?(-2147483648|n)>=(0|a):(-2147483648^n)<(0|a))return 0|(u=1)}else n=3*o|0,t=a<<1;return i=0|Ke(.14285714285714285*+(t+o|0)),r[A>>2]=i,o=0|Ke(.14285714285714285*+(n-a|0)),r[s>>2]=o,r[e>>2]=0,t=(n=(0|o)<(0|i))?i:o,(0|(n=n?o:i))<0&&((-2147483648==(0|n)||((0|t)>0?(2147483647-t|0)<(0|n):(-2147483648-t|0)>(0|n)))&&_(27795,26892,402,26917),((0|t)>-1?(-2147483648|t)>=(0|n):(-2147483648^t)<(0|n))&&_(27795,26892,402,26917)),t=o-i|0,(0|i)<0?(n=0-i|0,r[s>>2]=t,r[e>>2]=n,r[A>>2]=0,i=0):(t=o,n=0),(0|t)<0&&(i=i-t|0,r[A>>2]=i,n=n-t|0,r[e>>2]=n,r[s>>2]=0,t=0),a=i-n|0,o=t-n|0,(0|n)<0?(r[A>>2]=a,r[s>>2]=o,r[e>>2]=0,t=o,o=a,n=0):o=i,(0|(i=(0|n)<(0|(i=(0|t)<(0|o)?t:o))?n:i))<=0||(r[A>>2]=o-i,r[s>>2]=t-i,r[e>>2]=n-i),0|(u=0)}function gA(A){var e,t,n=0,i=0,o=0,a=0,s=0;i=0|r[(e=(A|=0)+8|0)>>2],o=0|Ke(.14285714285714285*+((3*(n=(0|r[A>>2])-i|0)|0)-(i=(0|r[(t=A+4|0)>>2])-i|0)|0)),r[A>>2]=o,n=0|Ke(.14285714285714285*+((i<<1)+n|0)),r[t>>2]=n,r[e>>2]=0,i=n-o|0,(0|o)<0?(s=0-o|0,r[t>>2]=i,r[e>>2]=s,r[A>>2]=0,n=i,o=0,i=s):i=0,(0|n)<0&&(o=o-n|0,r[A>>2]=o,i=i-n|0,r[e>>2]=i,r[t>>2]=0,n=0),s=o-i|0,a=n-i|0,(0|i)<0?(r[A>>2]=s,r[t>>2]=a,r[e>>2]=0,n=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|a)?n:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=n-o,r[e>>2]=i-o)}function dA(A){var e,t,n=0,i=0,o=0,a=0,s=0;i=0|r[(e=(A|=0)+8|0)>>2],o=0|Ke(.14285714285714285*+(((n=(0|r[A>>2])-i|0)<<1)+(i=(0|r[(t=A+4|0)>>2])-i|0)|0)),r[A>>2]=o,n=0|Ke(.14285714285714285*+((3*i|0)-n|0)),r[t>>2]=n,r[e>>2]=0,i=n-o|0,(0|o)<0?(s=0-o|0,r[t>>2]=i,r[e>>2]=s,r[A>>2]=0,n=i,o=0,i=s):i=0,(0|n)<0&&(o=o-n|0,r[A>>2]=o,i=i-n|0,r[e>>2]=i,r[t>>2]=0,n=0),s=o-i|0,a=n-i|0,(0|i)<0?(r[A>>2]=s,r[t>>2]=a,r[e>>2]=0,n=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|a)?n:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=n-o,r[e>>2]=i-o)}function pA(A){var e,t,n,i=0,o=0,a=0,s=0;i=0|r[(A|=0)>>2],o=0|r[(t=A+4|0)>>2],a=0|r[(n=A+8|0)>>2],s=o+(3*i|0)|0,r[A>>2]=s,o=a+(3*o|0)|0,r[t>>2]=o,i=(3*a|0)+i|0,r[n>>2]=i,a=o-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=a,r[n>>2]=i,r[A>>2]=0,o=a,a=0):a=s,(0|o)<0&&(a=a-o|0,r[A>>2]=a,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=s,r[n>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=s-o,r[n>>2]=i-o)}function wA(A){var e,t,n,i=0,o=0,a=0,s=0;s=0|r[(A|=0)>>2],a=(3*(i=0|r[(t=A+4|0)>>2])|0)+s|0,s=(o=0|r[(n=A+8|0)>>2])+(3*s|0)|0,r[A>>2]=s,r[t>>2]=a,i=(3*o|0)+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=o,r[n>>2]=i,r[A>>2]=0,s=0):o=a,(0|o)<0&&(s=s-o|0,r[A>>2]=s,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=a,r[n>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(r[A>>2]=s-o,r[t>>2]=a-o,r[n>>2]=i-o)}function vA(A,e){A|=0;var t,n,i,o=0,a=0,s=0;((e|=0)+-1|0)>>>0>=6||(s=(0|r[15440+(12*e|0)>>2])+(0|r[A>>2])|0,r[A>>2]=s,i=A+4|0,a=(0|r[15440+(12*e|0)+4>>2])+(0|r[i>>2])|0,r[i>>2]=a,n=A+8|0,e=(0|r[15440+(12*e|0)+8>>2])+(0|r[n>>2])|0,r[n>>2]=e,o=a-s|0,(0|s)<0?(e=e-s|0,r[i>>2]=o,r[n>>2]=e,r[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(a=a-o|0,r[A>>2]=a,e=e-o|0,r[n>>2]=e,r[i>>2]=0,o=0),t=a-e|0,s=o-e|0,(0|e)<0?(r[A>>2]=t,r[i>>2]=s,r[n>>2]=0,a=t,e=0):s=o,(0|(o=(0|e)<(0|(o=(0|s)<(0|a)?s:a))?e:o))<=0||(r[A>>2]=a-o,r[i>>2]=s-o,r[n>>2]=e-o))}function mA(A){var e,t,n,i=0,o=0,a=0,s=0;s=0|r[(A|=0)>>2],a=(i=0|r[(t=A+4|0)>>2])+s|0,s=(o=0|r[(n=A+8|0)>>2])+s|0,r[A>>2]=s,r[t>>2]=a,i=o+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=o,r[n>>2]=i,r[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(a=a-o|0,r[A>>2]=a,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=s,r[n>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=s-o,r[n>>2]=i-o)}function bA(A){var e,t,n,i=0,o=0,a=0,s=0;i=0|r[(A|=0)>>2],a=0|r[(t=A+4|0)>>2],o=0|r[(n=A+8|0)>>2],s=a+i|0,r[A>>2]=s,a=o+a|0,r[t>>2]=a,i=o+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=o,r[n>>2]=i,r[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(a=a-o|0,r[A>>2]=a,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=s,r[n>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=s-o,r[n>>2]=i-o)}function yA(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 BA(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 EA(A){var e,t,n,i=0,o=0,a=0,s=0;i=0|r[(A|=0)>>2],o=0|r[(t=A+4|0)>>2],a=0|r[(n=A+8|0)>>2],s=o+(i<<1)|0,r[A>>2]=s,o=a+(o<<1)|0,r[t>>2]=o,i=(a<<1)+i|0,r[n>>2]=i,a=o-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=a,r[n>>2]=i,r[A>>2]=0,o=a,a=0):a=s,(0|o)<0&&(a=a-o|0,r[A>>2]=a,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=s,r[n>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=s-o,r[n>>2]=i-o)}function MA(A){var e,t,n,i=0,o=0,a=0,s=0;s=0|r[(A|=0)>>2],a=((i=0|r[(t=A+4|0)>>2])<<1)+s|0,s=(o=0|r[(n=A+8|0)>>2])+(s<<1)|0,r[A>>2]=s,r[t>>2]=a,i=(o<<1)+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=o,r[n>>2]=i,r[A>>2]=0,s=0):o=a,(0|o)<0&&(s=s-o|0,r[A>>2]=s,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=a,r[n>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(r[A>>2]=s-o,r[t>>2]=a-o,r[n>>2]=i-o)}function kA(A,e){e|=0;var t,n,i,o=0,a=0,s=0;return i=(0|(n=(0|r[(A|=0)>>2])-(0|r[e>>2])|0))<0,t=(0|(a=(0|r[A+4>>2])-(0|r[e+4>>2])-(i?n:0)|0))<0,e=(e=(A=(0|(s=(i?0-n|0:0)+(0|r[A+8>>2])-(0|r[e+8>>2])+(t?0-a|0:0)|0))<0)?0:s)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:a)-(A?s:0)|0))<(0|(s=(i?0:n)-(t?a:0)-(A?s:0)|0))?o:s))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=s-(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 _A(A,e){e|=0;var t;t=0|r[(A|=0)+8>>2],r[e>>2]=(0|r[A>>2])-t,r[e+4>>2]=(0|r[A+4>>2])-t}function xA(A,e){e|=0;var t,n,i,o=0,a=0,s=0;if(a=0|r[(A|=0)>>2],r[e>>2]=a,s=0|r[A+4>>2],r[(n=e+4|0)>>2]=s,r[(i=e+8|0)>>2]=0,A=(o=(0|s)<(0|a))?a:s,(0|(o=o?s:a))<0){if(-2147483648==(0|o)||((0|A)>0?(2147483647-A|0)<(0|o):(-2147483648-A|0)>(0|o)))return 0|(e=1);if((0|A)>-1?(-2147483648|A)>=(0|o):(-2147483648^A)<(0|o))return 0|(e=1)}return A=s-a|0,(0|a)<0?(o=0-a|0,r[n>>2]=A,r[i>>2]=o,r[e>>2]=0,a=0):(A=s,o=0),(0|A)<0&&(a=a-A|0,r[e>>2]=a,o=o-A|0,r[i>>2]=o,r[n>>2]=0,A=0),t=a-o|0,s=A-o|0,(0|o)<0?(r[e>>2]=t,r[n>>2]=s,r[i>>2]=0,A=s,s=t,o=0):s=a,(0|(a=(0|o)<(0|(a=(0|A)<(0|s)?A:s))?o:a))<=0||(r[e>>2]=s-a,r[n>>2]=A-a,r[i>>2]=o-a),0|(e=0)}function QA(A){var e,t,n,i;t=(i=0|r[(e=(A|=0)+8|0)>>2])-(0|r[A>>2])|0,r[A>>2]=t,A=(0|r[(n=A+4|0)>>2])-i|0,r[n>>2]=A,r[e>>2]=0-(A+t)}function DA(A){var e,t,n=0,i=0,o=0,a=0,s=0;n=0-(i=0|r[(A|=0)>>2])|0,r[A>>2]=n,r[(e=A+8|0)>>2]=0,a=(o=0|r[(t=A+4|0)>>2])+i|0,(0|i)>0?(r[t>>2]=a,r[e>>2]=i,r[A>>2]=0,n=0,o=a):i=0,(0|o)<0?(s=n-o|0,r[A>>2]=s,i=i-o|0,r[e>>2]=i,r[t>>2]=0,a=s-i|0,n=0-i|0,(0|i)<0?(r[A>>2]=a,r[t>>2]=n,r[e>>2]=0,o=n,i=0):(o=0,a=s)):a=n,(0|(n=(0|i)<(0|(n=(0|o)<(0|a)?o:a))?i:n))<=0||(r[A>>2]=a-n,r[t>>2]=o-n,r[e>>2]=i-n)}function CA(A,e){var t=0;switch(t=0|ft(0|(A|=0),0|(e|=0),56),k(),7&t){case 0:case 7:return 0|(t=0)}return t=-2130706433&e|134217728,!0&268435456==(2013265920&e)?!0&16777216==(117440512&e)&!!(0|jA(A,t))?0|(t=0):0|(t=0|YA(A,t)):0|(t=0)}function SA(A,e,t){t|=0;var n,i,o=0,a=0;return i=I,I=I+16|0,n=i,a=-2130706433&(e|=0)|134217728,!0&268435456==(2013265920&e)?(o=0|ft(0|(A|=0),0|e,56),k(),o=0|function(A,e,t){A|=0,e|=0,t|=0;var n=0,i=0,o=0;if(o=I,I=I+16|0,i=o,n=0|jA(A,e),(t+-1|0)>>>0>5)return I=o,0|(i=-1);if(n=!!(0|n),1==(0|t)&n)return I=o,0|(i=-1);do{if(!(0|ze(A,e,i))){if(n){n=(5+(0|r[26352+(t<<2)>>2])-(0|r[i>>2])|0)%5|0;break}n=(6+(0|r[26384+(t<<2)>>2])-(0|r[i>>2])|0)%6|0;break}n=-1}while(0);return i=n,I=o,0|i}(A,a,7&o),-1==(0|o)?(r[t>>2]=0,I=i,0|(a=6)):(0|ne(A,a,n)&&_(27795,26932,282,26947),e=0|ft(0|A,0|e,52),k(),e&=15,0|jA(A,a)?TA(n,e,o,2,t):UA(n,e,o,2,t),I=i,0|(a=0))):(I=i,0|(a=6))}function IA(A,e,t,n){e|=0,n|=0;var o,a=0,s=0,u=0,f=0;if(o=I,I=I+16|0,function(A,e,t){A|=0,e|=0,t|=0;var n=0,o=0,a=0;a=I,I=I+32|0,o=a,function(A,e){A|=0,e|=0;var t=0,n=0,r=0;t=+i[A>>3],n=+c(+t),t=+h(+t),i[e+16>>3]=t,t=+i[A+8>>3],r=n*+c(+t),i[e>>3]=r,t=n*+h(+t),i[e+8>>3]=t}(A,o),r[e>>2]=0,i[t>>3]=5,n=+Oe(16400,o),n<+i[t>>3]&&(r[e>>2]=0,i[t>>3]=n);n=+Oe(16424,o),n<+i[t>>3]&&(r[e>>2]=1,i[t>>3]=n);n=+Oe(16448,o),n<+i[t>>3]&&(r[e>>2]=2,i[t>>3]=n);n=+Oe(16472,o),n<+i[t>>3]&&(r[e>>2]=3,i[t>>3]=n);n=+Oe(16496,o),n<+i[t>>3]&&(r[e>>2]=4,i[t>>3]=n);n=+Oe(16520,o),n<+i[t>>3]&&(r[e>>2]=5,i[t>>3]=n);n=+Oe(16544,o),n<+i[t>>3]&&(r[e>>2]=6,i[t>>3]=n);n=+Oe(16568,o),n<+i[t>>3]&&(r[e>>2]=7,i[t>>3]=n);n=+Oe(16592,o),n<+i[t>>3]&&(r[e>>2]=8,i[t>>3]=n);n=+Oe(16616,o),n<+i[t>>3]&&(r[e>>2]=9,i[t>>3]=n);n=+Oe(16640,o),n<+i[t>>3]&&(r[e>>2]=10,i[t>>3]=n);n=+Oe(16664,o),n<+i[t>>3]&&(r[e>>2]=11,i[t>>3]=n);n=+Oe(16688,o),n<+i[t>>3]&&(r[e>>2]=12,i[t>>3]=n);n=+Oe(16712,o),n<+i[t>>3]&&(r[e>>2]=13,i[t>>3]=n);n=+Oe(16736,o),n<+i[t>>3]&&(r[e>>2]=14,i[t>>3]=n);n=+Oe(16760,o),n<+i[t>>3]&&(r[e>>2]=15,i[t>>3]=n);n=+Oe(16784,o),n<+i[t>>3]&&(r[e>>2]=16,i[t>>3]=n);n=+Oe(16808,o),n<+i[t>>3]&&(r[e>>2]=17,i[t>>3]=n);n=+Oe(16832,o),n<+i[t>>3]&&(r[e>>2]=18,i[t>>3]=n);if(n=+Oe(16856,o),!(n<+i[t>>3]))return void(I=a);r[e>>2]=19,i[t>>3]=n,I=a}(A|=0,t|=0,f=o),(s=+d(+(1-.5*+i[f>>3])))<1e-16)return r[n>>2]=0,r[n+4>>2]=0,r[n+8>>2]=0,r[n+12>>2]=0,void(I=o);if(f=0|r[t>>2],a=+fe((a=+i[15920+(24*f|0)>>3])-+fe(+function(A,e){A|=0,e|=0;var t=0,n=0,r=0,o=0,a=0;return o=+i[e>>3],n=+c(+o),r=+i[e+8>>3]-+i[A+8>>3],a=n*+h(+r),t=+i[A>>3],+ +v(+a,+(+h(+o)*+c(+t)-+c(+r)*(n*+h(+t))))}(15600+(f<<4)|0,A))),u=0|Ae(e)?+fe(a+-.3334731722518321):a,a=2.618033988749896*+g(+s),(0|e)>0){A=0;do{a*=2.6457513110645907,A=A+1|0}while((0|A)!=(0|e))}s=+c(+u)*a,i[n>>3]=s,u=+h(+u)*a,i[n+8>>3]=u,I=o}function PA(A,e,t,n,o){e|=0,t|=0,n|=0,o|=0;var a,s=0,l=0;if(s=+function(A){A|=0;var e=0,t=0;return t=+i[A>>3],e=+i[A+8>>3],+ +f(+(t*t+e*e))}(A|=0),s<1e-16)return e=15600+(e<<4)|0,r[o>>2]=r[e>>2],r[o+4>>2]=r[e+4>>2],r[o+8>>2]=r[e+8>>2],void(r[o+12>>2]=r[e+12>>2]);if(l=+v(+ +i[A+8>>3],+ +i[A>>3]),(0|t)>0){A=0;do{s*=.37796447300922725,A=A+1|0}while((0|A)!=(0|t))}a=.3333333333333333*s,n?(t=!(0|Ae(t)),s=+w(.381966011250105*(t?a:.37796447300922725*a))):(s=+w(.381966011250105*s),0|Ae(t)&&(l=+fe(l+.3334731722518321))),function(A,e,t,n){A|=0,e=+e,t=+t,n|=0;var o=0,a=0,s=0,f=0;if(t<1e-16)return r[n>>2]=r[A>>2],r[n+4>>2]=r[A+4>>2],r[n+8>>2]=r[A+8>>2],void(r[n+12>>2]=r[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=+u(+(a+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=t,i[n>>3]=e,o=n;break}if(s=+c(+t),t=+h(+t),e=s*+h(+e)+ +c(+a)*(t*+c(+e)),e=+p(+((e=e>1?1:e)<-1?-1:e)),i[n>>3]=e,+u(+(e+-1.5707963267948966))<1e-16)return i[n>>3]=1.5707963267948966,void(i[n+8>>3]=0);if(+u(+(e+1.5707963267948966))<1e-16)return i[n>>3]=-1.5707963267948966,void(i[n+8>>3]=0);if(f=1/+c(+e),a=t*+h(+a)*f,t=+i[A>>3],e=f*((s-+h(+e)*+h(+t))/+c(+t)),s=a>1?1:a,e=e>1?1:e,(e=+i[A+8>>3]+ +v(+(s<-1?-1:s),+(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[n+8>>3]=e)}e=+i[A>>3]+t,i[n>>3]=e,o=n}while(0);if(+u(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[n+8>>3]=0);if(+u(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[n+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[n+8>>3]=e}(15600+(e<<4)|0,+fe(+i[15920+(24*e|0)>>3]-l),s,o)}function FA(A,e,t){e|=0,t|=0;var n,i;n=I,I=I+16|0,aA((A|=0)+4|0,i=n),PA(i,0|r[A>>2],e,0,t),I=n}function TA(A,e,t,n,o){A|=0,e|=0,t|=0,n|=0,o|=0;var a,s,u,f,l,c,h,g,d,p,w,v,m,b,y,B,E,M,k,x,Q,D,C=0,S=0,P=0,F=0,T=0,L=0;if(D=I,I=I+272|0,F=D+240|0,k=D,x=D+224|0,Q=D+208|0,w=D+176|0,v=D+160|0,m=D+192|0,b=D+144|0,y=D+128|0,B=D+112|0,E=D+96|0,M=D+80|0,r[(C=D+256|0)>>2]=e,r[F>>2]=r[A>>2],r[F+4>>2]=r[A+4>>2],r[F+8>>2]=r[A+8>>2],r[F+12>>2]=r[A+12>>2],LA(F,C,k),r[o>>2]=0,(0|(F=n+t+(5==(0|n)&1)|0))<=(0|t))I=D;else{s=x+4|0,u=w+4|0,f=t+5|0,l=16880+((a=0|r[C>>2])<<2)|0,c=16960+(a<<2)|0,h=y+8|0,g=B+8|0,d=E+8|0,p=Q+4|0,P=t;A:for(;;){S=k+((0|P)%5<<4)|0,r[Q>>2]=r[S>>2],r[Q+4>>2]=r[S+4>>2],r[Q+8>>2]=r[S+8>>2],r[Q+12>>2]=r[S+12>>2];do{}while(2==(0|GA(Q,a,0,1)));if((0|P)>(0|t)&!!(0|Ae(e))){if(r[w>>2]=r[Q>>2],r[w+4>>2]=r[Q+4>>2],r[w+8>>2]=r[Q+8>>2],r[w+12>>2]=r[Q+12>>2],aA(s,v),n=0|r[w>>2],C=0|r[17040+(80*n|0)+(r[x>>2]<<2)>>2],r[w>>2]=r[18640+(80*n|0)+(20*C|0)>>2],(0|(S=0|r[18640+(80*n|0)+(20*C|0)+16>>2]))>0){A=0;do{mA(u),A=A+1|0}while((0|A)<(0|S))}switch(S=18640+(80*n|0)+(20*C|0)+4|0,r[m>>2]=r[S>>2],r[m+4>>2]=r[S+4>>2],r[m+8>>2]=r[S+8>>2],fA(m,3*(0|r[l>>2])|0),sA(u,m,u),oA(u),aA(u,b),T=+(0|r[c>>2]),i[y>>3]=3*T,i[h>>3]=0,L=-1.5*T,i[B>>3]=L,i[g>>3]=2.598076211353316*T,i[E>>3]=L,i[d>>3]=-2.598076211353316*T,0|r[17040+(80*(0|r[w>>2])|0)+(r[Q>>2]<<2)>>2]){case 1:A=B,n=y;break;case 3:A=E,n=B;break;case 2:A=y,n=E;break;default:A=12;break A}Re(v,b,n,A,M),PA(M,0|r[w>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])}if((0|P)<(0|f)&&(aA(p,w),PA(w,0|r[Q>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])),r[x>>2]=r[Q>>2],r[x+4>>2]=r[Q+4>>2],r[x+8>>2]=r[Q+8>>2],r[x+12>>2]=r[Q+12>>2],(0|(P=P+1|0))>=(0|F)){A=3;break}}3!=(0|A)?12==(0|A)&&_(26970,27017,572,27027):I=D}}function LA(A,e,t){A|=0,e|=0,t|=0;var n,i=0,o=0,a=0,s=0,u=0;n=I,I=I+128|0,o=n,s=20240,u=(a=i=n+64|0)+60|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|u));s=20304,u=(a=o)+60|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|u));i=(u=!(0|Ae(0|r[e>>2])))?i:o,EA(o=A+4|0),MA(o),0|Ae(0|r[e>>2])&&(wA(o),r[e>>2]=1+(0|r[e>>2])),r[t>>2]=r[A>>2],sA(o,i,e=t+4|0),oA(e),r[t+16>>2]=r[A>>2],sA(o,i+12|0,e=t+20|0),oA(e),r[t+32>>2]=r[A>>2],sA(o,i+24|0,e=t+36|0),oA(e),r[t+48>>2]=r[A>>2],sA(o,i+36|0,e=t+52|0),oA(e),r[t+64>>2]=r[A>>2],sA(o,i+48|0,t=t+68|0),oA(t),I=n}function GA(A,e,t,n){t|=0,n|=0;var i,o,a,s,u,f,l=0,c=0,h=0,g=0,d=0;if(f=I,I=I+32|0,u=f+12|0,o=f,d=(A|=0)+4|0,g=0|r[16960+((e|=0)<<2)>>2],g=(s=!!(0|n))?3*g|0:g,l=0|r[d>>2],i=0|r[(a=A+8|0)>>2],s){if((0|(l=i+l+(n=0|r[(c=A+12|0)>>2])|0))==(0|g))return I=f,0|(d=1);h=c}else l=i+l+(n=0|r[(h=A+12|0)>>2])|0;if((0|l)<=(0|g))return I=f,0|(d=0);do{if((0|n)>0){if(n=0|r[A>>2],(0|i)>0){c=18640+(80*n|0)+60|0,n=A;break}n=18640+(80*n|0)+40|0,t?(rA(u,g,0,0),uA(d,u,o),bA(o),sA(o,u,d),c=n,n=A):(c=n,n=A)}else c=18640+(80*(0|r[A>>2])|0)+20|0,n=A}while(0);if(r[n>>2]=r[c>>2],(0|r[(l=c+16|0)>>2])>0){n=0;do{mA(d),n=n+1|0}while((0|n)<(0|r[l>>2]))}return A=c+4|0,r[u>>2]=r[A>>2],r[u+4>>2]=r[A+4>>2],r[u+8>>2]=r[A+8>>2],e=0|r[16880+(e<<2)>>2],fA(u,s?3*e|0:e),sA(d,u,d),oA(d),n=s&&((0|r[a>>2])+(0|r[d>>2])+(0|r[h>>2])|0)==(0|g)?1:2,I=f,0|(d=n)}function RA(A,e){A|=0,e|=0;var t=0;do{t=0|GA(A,e,0,1)}while(2==(0|t));return 0|t}function UA(A,e,t,n,o){A|=0,e|=0,t|=0,n|=0,o|=0;var a,s,u,f,l,c,h,g,d,p,w,v,m,b,y,B,E,M,k=0,x=0,Q=0,D=0,C=0;if(M=I,I=I+240|0,b=M+208|0,y=M,B=M+192|0,E=M+176|0,d=M+160|0,p=M+144|0,w=M+128|0,v=M+112|0,m=M+96|0,r[(k=M+224|0)>>2]=e,r[b>>2]=r[A>>2],r[b+4>>2]=r[A+4>>2],r[b+8>>2]=r[A+8>>2],r[b+12>>2]=r[A+12>>2],OA(b,k,y),r[o>>2]=0,(0|(g=n+t+(6==(0|n)&1)|0))<=(0|t))I=M;else{s=t+6|0,u=16960+((a=0|r[k>>2])<<2)|0,f=p+8|0,l=w+8|0,c=v+8|0,h=B+4|0,x=0,Q=t,n=-1;A:for(;;){if(A=y+((k=(0|Q)%6|0)<<4)|0,r[B>>2]=r[A>>2],r[B+4>>2]=r[A+4>>2],r[B+8>>2]=r[A+8>>2],r[B+12>>2]=r[A+12>>2],A=x,x=0|GA(B,a,0,1),(0|Q)>(0|t)&!!(0|Ae(e))&&(1!=(0|A)&&(0|r[B>>2])!=(0|n))){switch(aA(y+((k+5|0)%6<<4)+4|0,E),aA(y+(k<<4)+4|0,d),D=+(0|r[u>>2]),i[p>>3]=3*D,i[f>>3]=0,C=-1.5*D,i[w>>3]=C,i[l>>3]=2.598076211353316*D,i[v>>3]=C,i[c>>3]=-2.598076211353316*D,k=0|r[b>>2],0|r[17040+(80*k|0)+(((0|n)==(0|k)?r[B>>2]:n)<<2)>>2]){case 1:A=w,n=p;break;case 3:A=v,n=w;break;case 2:A=p,n=v;break;default:A=8;break A}Re(E,d,n,A,m),0|Ue(E,m)||0|Ue(d,m)||(PA(m,0|r[b>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2]))}if((0|Q)<(0|s)&&(aA(h,E),PA(E,0|r[B>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])),(0|(Q=Q+1|0))>=(0|g)){A=3;break}n=0|r[B>>2]}3!=(0|A)?8==(0|A)&&_(27054,27017,737,27099):I=M}}function OA(A,e,t){A|=0,e|=0,t|=0;var n,i=0,o=0,a=0,s=0,u=0;n=I,I=I+160|0,o=n,s=20368,u=(a=i=n+80|0)+72|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|u));s=20448,u=(a=o)+72|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|u));i=(u=!(0|Ae(0|r[e>>2])))?i:o,EA(o=A+4|0),MA(o),0|Ae(0|r[e>>2])&&(wA(o),r[e>>2]=1+(0|r[e>>2])),r[t>>2]=r[A>>2],sA(o,i,e=t+4|0),oA(e),r[t+16>>2]=r[A>>2],sA(o,i+12|0,e=t+20|0),oA(e),r[t+32>>2]=r[A>>2],sA(o,i+24|0,e=t+36|0),oA(e),r[t+48>>2]=r[A>>2],sA(o,i+36|0,e=t+52|0),oA(e),r[t+64>>2]=r[A>>2],sA(o,i+48|0,e=t+68|0),oA(e),r[t+80>>2]=r[A>>2],sA(o,i+60|0,t=t+84|0),oA(t),I=n}function zA(A,e){return e=0|ft(0|(A|=0),0|(e|=0),45),k(),127&e}function YA(A,e){A|=0;var t=0,r=0,i=0,o=0;return!0&134217728==(-16777216&(e|=0))?(r=0|ft(0|A,0|e,52),k(),r&=15,t=0|ft(0|A,0|e,45),k(),(t&=127)>>>0>121?0|(A=0):!(613566756&(o=0|lt(0|(i=0|ft(0|A,0|e,0|(o=3*(15^r)|0))),0|k(),0|o))&(0|tt(-1227133514,-1171,0|o,0|(i=0|k()))))&!(4681&i&k())&&15==(0|r)|!(0|(o=0|ft(0|(0|lt(0|~A,0|~e,0|(o=19+(3*r|0)|0))),0|k(),0|o)))&!(0|k())?0|n[20528+t|0]?!(0|A)&!(0|(e&=8191))?0|(o=1):(o=0|ct(0|A,0|e),k(),0|!!((63-o|0)%3|0)):0|(o=1):0|(o=0)):0|(A=0)}function NA(A,e,t,n){A|=0,t|=0,n|=0;var i=0,o=0,a=0,s=0;if(i=0|lt(0|(e|=0),0,52),o=0|k(),t=0|lt(0|t,0,45),t=0|o|k()|134225919,(0|e)<1)return o=-1,n=t,r[(e=A)>>2]=o,void(r[(A=A+4|0)>>2]=n);for(o=1,i=-1;s=0|lt(7,0,0|(a=3*(15-o|0)|0)),t&=~k(),i=i&~s|(a=0|lt(0|n,0,0|a)),t=0|t|k(),(0|o)!=(0|e);)o=o+1|0;r[(a=s=A)>>2]=i,r[(s=s+4|0)>>2]=t}function HA(A,e,t,n){t|=0,n|=0;var i=0,o=0;if(o=0|ft(0|(A|=0),0|(e|=0),52),k(),t>>>0>15)return 0|(n=4);if((0|(o&=15))<(0|t))return 0|(n=12);if((0|o)==(0|t))return r[n>>2]=A,r[n+4>>2]=e,0|(n=0);if(i=0|lt(0|t,0,52),i|=A,A=k()|-15728641&e,(0|o)>(0|t))do{e=0|lt(7,0,3*(14-t|0)|0),t=t+1|0,i|=e,A=0|k()|A}while((0|t)<(0|o));return r[n>>2]=i,r[n+4>>2]=A,0|(n=0)}function VA(A,e,t,n){t|=0,n|=0;var i=0,o=0,a=0;if(o=0|ft(0|(A|=0),0|(e|=0),52),k(),!((0|t)<16&(0|(o&=15))<=(0|t)))return 0|(n=4);i=t-o|0,t=0|ft(0|A,0|e,45),k();A:do{if(0|Y(127&t)){e:do{if(0|o){for(t=1;!((a=0|lt(7,0,3*(15-t|0)|0))&A|0)&!((0|k())&e);){if(!(t>>>0<o>>>0))break e;t=t+1|0}t=0|ke(7,0,i,((0|i)<0)<<31>>31),i=0|k();break A}}while(0);t=0|et(0|(t=0|ot(0|(t=0|ke(7,0,i,((0|i)<0)<<31>>31)),0|k(),5,0)),0|k(),-5,-1),t=0|et(0|(t=0|it(0|t,0|k(),6,0)),0|k(),1,0),i=0|k()}else t=0|ke(7,0,i,((0|i)<0)<<31>>31),i=0|k()}while(0);return r[(a=n)>>2]=t,r[a+4>>2]=i,0|(a=0)}function jA(A,e){var t=0,n=0,r=0;if(r=0|ft(0|(A|=0),0|(e|=0),45),k(),!(0|Y(127&r)))return 0|(r=0);r=0|ft(0|A,0|e,52),k(),r&=15;A:do{if(r)for(n=1;;){if(t=0|ft(0|A,0|e,3*(15-n|0)|0),k(),0|(t&=7))break A;if(!(n>>>0<r>>>0)){t=0;break}n=n+1|0}else t=0}while(0);return 0|(r=1&!(0|t))}function XA(A,e,t,n){return A|=0,e|=0,(0|(n|=0))<(0|(t|=0))?(n=A,M(0|(t=e)),0|n):(t=0|lt(-1,-1,3+(3*(n-t|0)|0)|0),n=0|lt(0|~t,0|~k(),3*(15-n|0)|0),t=~k()&e,n=~n&A,M(0|t),0|n)}function WA(A,e,t,n){t|=0,n|=0;var i=0;return i=0|ft(0|(A|=0),0|(e|=0),52),k(),(0|t)<16&(0|(i&=15))<=(0|t)?((0|i)<(0|t)&&(i=0|lt(-1,-1,3+(3*(t+-1-i|0)|0)|0),i=0|lt(0|~i,0|~k(),3*(15-t|0)|0),e=~k()&e,A&=~i),i=0|lt(0|t,0,52),t=-15728641&e|k(),r[n>>2]=A|i,r[n+4>>2]=t,0|(n=0)):0|(n=4)}function ZA(A,e){var t=0,n=0,r=0;if(r=0|ft(0|(A|=0),0|(e|=0),52),k(),!(r&=15))return 0|(r=0);for(n=1;;){if(t=0|ft(0|A,0|e,3*(15-n|0)|0),k(),0|(t&=7)){n=5;break}if(!(n>>>0<r>>>0)){t=0,n=5;break}n=n+1|0}return 5==(0|n)?0|t:0}function JA(A,e){var t=0,n=0,r=0,i=0,o=0,a=0,s=0;if(s=0|ft(0|(A|=0),0|(e|=0),52),k(),!(s&=15))return s=A,M(0|(a=e)),0|s;for(a=1,t=0;;){n=0|lt(7,0,0|(i=3*(15-a|0)|0)),r=0|k(),o=0|ft(0|A,0|e,0|i),k(),A=(i=0|lt(0|yA(7&o),0,0|i))|A&~n,e=(o=0|k())|e&~r;A:do{if(!t)if(!(i&n|0)&!(o&r|0))t=0;else if(n=0|ft(0|A,0|e,52),k(),n&=15){t=1;e:for(;;){switch(o=0|ft(0|A,0|e,3*(15-t|0)|0),k(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<n>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(r=0|ft(0|A,0|e,0|(o=3*(15-t|0)|0)),k(),i=0|lt(7,0,0|o),e&=~k(),A=A&~i|(o=0|lt(0|yA(7&r),0,0|o)),e=0|e|k(),!(t>>>0<n>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return M(0|e),0|A}function KA(A,e){var t=0,n=0,r=0,i=0,o=0;if(n=0|ft(0|(A|=0),0|(e|=0),52),k(),!(n&=15))return n=A,M(0|(t=e)),0|n;for(t=1;o=0|ft(0|A,0|e,0|(i=3*(15-t|0)|0)),k(),r=0|lt(7,0,0|i),e&=~k(),A=(i=0|lt(0|yA(7&o),0,0|i))|A&~r,e=0|k()|e,t>>>0<n>>>0;)t=t+1|0;return M(0|e),0|A}function qA(A,e){var t=0,n=0,r=0,i=0,o=0,a=0,s=0;if(s=0|ft(0|(A|=0),0|(e|=0),52),k(),!(s&=15))return s=A,M(0|(a=e)),0|s;for(a=1,t=0;;){n=0|lt(7,0,0|(i=3*(15-a|0)|0)),r=0|k(),o=0|ft(0|A,0|e,0|i),k(),A=(i=0|lt(0|BA(7&o),0,0|i))|A&~n,e=(o=0|k())|e&~r;A:do{if(!t)if(!(i&n|0)&!(o&r|0))t=0;else if(n=0|ft(0|A,0|e,52),k(),n&=15){t=1;e:for(;;){switch(o=0|ft(0|A,0|e,3*(15-t|0)|0),k(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<n>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|lt(7,0,0|(r=3*(15-t|0)|0)),o=e&~k(),e=0|ft(0|A,0|e,0|r),k(),A=A&~i|(e=0|lt(0|BA(7&e),0,0|r)),e=0|o|k(),!(t>>>0<n>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return M(0|e),0|A}function $A(A,e){var t=0,n=0,r=0,i=0,o=0;if(n=0|ft(0|(A|=0),0|(e|=0),52),k(),!(n&=15))return n=A,M(0|(t=e)),0|n;for(t=1;i=0|lt(7,0,0|(o=3*(15-t|0)|0)),r=e&~k(),e=0|ft(0|A,0|e,0|o),k(),A=(e=0|lt(0|BA(7&e),0,0|o))|A&~i,e=0|k()|r,t>>>0<n>>>0;)t=t+1|0;return M(0|e),0|A}function Ae(A){return(0|(A|=0))%2|0}function ee(A,e,t){t|=0;var n,i=0;return n=I,I=I+16|0,i=n,(e|=0)>>>0>15?(I=n,0|(i=4)):2146435072&~r[(A|=0)+4>>2]&&2146435072&~r[A+8+4>>2]?(function(A,e,t){var n,r;n=I,I=I+16|0,IA(A|=0,e|=0,t|=0,r=n),iA(r,t+4|0),I=n}(A,e,i),e=0|function(A,e){A|=0;var t,n=0,i=0,o=0,a=0,s=0,u=0,f=0,l=0;if(t=I,I=I+64|0,u=t+40|0,i=t+24|0,o=t+12|0,a=t,lt(0|(e|=0),0,52),n=134225919|k(),!e)return(0|r[A+4>>2])>2||(0|r[A+8>>2])>2||(0|r[A+12>>2])>2?(u=0,M(0|(s=0)),I=t,0|u):(lt(0|H(A),0,45),s=0|k()|n,u=-1,M(0|s),I=t,0|u);if(r[u>>2]=r[A>>2],r[u+4>>2]=r[A+4>>2],r[u+8>>2]=r[A+8>>2],r[u+12>>2]=r[A+12>>2],s=u+4|0,(0|e)>0)for(A=-1;r[i>>2]=r[s>>2],r[i+4>>2]=r[s+4>>2],r[i+8>>2]=r[s+8>>2],1&e?(gA(s),r[o>>2]=r[s>>2],r[o+4>>2]=r[s+4>>2],r[o+8>>2]=r[s+8>>2],pA(o)):(dA(s),r[o>>2]=r[s>>2],r[o+4>>2]=r[s+4>>2],r[o+8>>2]=r[s+8>>2],wA(o)),uA(i,o,a),oA(a),f=0|lt(7,0,0|(l=3*(15-e|0)|0)),n&=~k(),A=(l=0|lt(0|lA(a),0,0|l))|A&~f,n=0|k()|n,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|r[s>>2])<=2&&(0|r[u+8>>2])<=2&&(0|r[u+12>>2])<=2){if(e=0|lt(0|(i=0|H(u)),0,45),e|=A,A=k()|-1040385&n,a=0|V(u),!(0|Y(i))){if((0|a)<=0)break;for(o=0;;){if(i=0|ft(0|e,0|A,52),k(),i&=15)for(n=1;u=0|ft(0|e,0|A,0|(l=3*(15-n|0)|0)),k(),f=0|lt(7,0,0|l),A&=~k(),e=e&~f|(l=0|lt(0|yA(7&u),0,0|l)),A=0|A|k(),n>>>0<i>>>0;)n=n+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|ft(0|e,0|A,52),k(),o&=15;e:do{if(o){n=1;t:for(;;){switch(l=0|ft(0|e,0|A,3*(15-n|0)|0),k(),7&l){case 1:break t;case 0:break;default:break e}if(!(n>>>0<o>>>0))break e;n=n+1|0}if(0|j(i,0|r[u>>2]))for(n=1;f=0|lt(7,0,0|(u=3*(15-n|0)|0)),l=A&~k(),A=0|ft(0|e,0|A,0|u),k(),e=e&~f|(A=0|lt(0|BA(7&A),0,0|u)),A=0|l|k(),n>>>0<o>>>0;)n=n+1|0;else for(n=1;u=0|ft(0|e,0|A,0|(l=3*(15-n|0)|0)),k(),f=0|lt(7,0,0|l),A&=~k(),e=e&~f|(l=0|lt(0|yA(7&u),0,0|l)),A=0|A|k(),n>>>0<o>>>0;)n=n+1|0}}while(0);if((0|a)>0){n=0;do{e=0|JA(e,A),A=0|k(),n=n+1|0}while((0|n)!=(0|a))}}else e=0,A=0}while(0);return l=e,M(0|(f=A)),I=t,0|l}(i,e),i=0|k(),r[t>>2]=e,r[t+4>>2]=i,!(0|e)&!(0|i)&&_(27795,27122,1050,27145),I=n,0|(i=0)):(I=n,0|(i=3))}function te(A,e,t){var n,i=0,o=0,a=0;if(n=(t|=0)+4|0,o=0|ft(0|(A|=0),0|(e|=0),52),k(),o&=15,a=0|ft(0|A,0|e,45),k(),i=!(0|o),0|Y(127&a)){if(i)return 0|(a=1);i=1}else{if(i)return 0|(a=0);i=0|r[n>>2]||0|r[t+8>>2]?1:1&!!(0|r[t+12>>2])}for(t=1;1&t?pA(n):wA(n),a=0|ft(0|A,0|e,3*(15-t|0)|0),k(),vA(n,7&a),t>>>0<o>>>0;)t=t+1|0;return 0|i}function ne(A,e,t){t|=0;var n,i,o=0,a=0,s=0,u=0,f=0,l=0;if(i=I,I=I+16|0,n=i,l=0|ft(0|(A|=0),0|(e|=0),45),k(),(l&=127)>>>0>121)return r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,r[t+12>>2]=0,I=i,0|(l=5);A:do{if(0|Y(l)&&(s=0|ft(0|A,0|e,52),k(),0|(s&=15))){o=1;e:for(;;){switch(f=0|ft(0|A,0|e,3*(15-o|0)|0),k(),7&f){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<s>>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;u=0|lt(7,0,0|(e=3*(15-a|0)|0)),f=o&~k(),o=0|ft(0|A,0|o,0|e),k(),A=A&~u|(o=0|lt(0|BA(7&o),0,0|e)),o=0|f|k(),a>>>0<s>>>0;)a=a+1|0}else o=e}while(0);if(f=7696+(28*l|0)|0,r[t>>2]=r[f>>2],r[t+4>>2]=r[f+4>>2],r[t+8>>2]=r[f+8>>2],r[t+12>>2]=r[f+12>>2],!(0|te(A,o,t)))return I=i,0|(l=0);if(u=t+4|0,r[n>>2]=r[u>>2],r[n+4>>2]=r[u+4>>2],r[n+8>>2]=r[u+8>>2],s=0|ft(0|A,0|o,52),k(),f=15&s,1&s?(wA(u),s=f+1|0):s=f,0|Y(l)){A:do{if(f)for(e=1;;){if(a=0|ft(0|A,0|o,3*(15-e|0)|0),k(),0|(a&=7)){o=a;break A}if(!(e>>>0<f>>>0)){o=0;break}e=e+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|GA(t,s,o,0)){if(0|Y(l))do{}while(0|GA(t,s,0,0));(0|s)!=(0|f)&&dA(u)}else(0|s)!=(0|f)&&(r[u>>2]=r[n>>2],r[u+4>>2]=r[n+4>>2],r[u+8>>2]=r[n+8>>2]);return I=i,0|(l=0)}function re(A,e,t){t|=0;var n,r,i=0;return r=I,I=I+16|0,0|(i=0|ne(A|=0,e|=0,n=r))?(I=r,0|i):(i=0|ft(0|A,0|e,52),k(),FA(n,15&i,t),I=r,0|(i=0))}function ie(A,e,t){t|=0;var n,r=0,i=0,o=0;if(n=I,I=I+16|0,0|(r=0|ne(A|=0,e|=0,o=n)))return I=n,0|(o=r);r=0|ft(0|A,0|e,45),k(),r=!(0|Y(127&r)),i=0|ft(0|A,0|e,52),k(),i&=15;A:do{if(!r){if(0|i)for(r=1;;){if(!(!((0|lt(7,0,3*(15-r|0)|0))&A|0)&!((0|k())&e)))break A;if(!(r>>>0<i>>>0))break;r=r+1|0}return TA(o,i,0,5,t),I=n,0|0}}while(0);return UA(o,i,0,6,t),I=n,0|0}function oe(A,e){e|=0;var t=0,n=0,i=0,o=0,a=0,s=0,u=0;if((A|=0)>>>0>15)return 0|(s=4);if(lt(0|A,0,52),s=134225919|k(),!A){t=0,n=0;do{0|Y(n)&&(lt(0|n,0,45),a=0|s|k(),r[(A=e+(t<<3)|0)>>2]=-1,r[A+4>>2]=a,t=t+1|0),n=n+1|0}while(122!=(0|n));return 0|(t=0)}t=0,a=0;do{if(0|Y(a)){for(lt(0|a,0,45),n=1,i=-1,o=0|s|k();i&=~(u=0|lt(7,0,3*(15-n|0)|0)),o&=~k(),(0|n)!=(0|A);)n=n+1|0;r[(u=e+(t<<3)|0)>>2]=i,r[u+4>>2]=o,t=t+1|0}a=a+1|0}while(122!=(0|a));return 0|(t=0)}function ae(A,e,t,n){A|=0,n|=0;var i=0,o=0,a=0;i=0|ft(0|(e|=0),0|(t|=0),52),k(),!(0|e)&!(0|t)|(0|n)>15|(0|(i&=15))>(0|n)?(o=-1,e=-1,t=0,i=0):(e=0|XA(e,t,i+1|0,n),a=-15728641&k(),t=0|lt(0|n,0,52),o=i,e=(e=!(0|jA(t|=e,a=0|a|k())))?-1:n,i=a),r[(a=A)>>2]=t,r[a+4>>2]=i,r[A+8>>2]=o,r[A+12>>2]=e}function se(A,e,t,n){t|=0,n|=0;var i=0,o=0;return i=0|ft(0|(A|=0),0|(e|=0),52),k(),i&=15,r[(o=n+8|0)>>2]=i,!(0|A)&!(0|e)|(0|t)>15|(0|i)>(0|t)?(r[(t=n)>>2]=0,r[t+4>>2]=0,r[o>>2]=-1,void(r[n+12>>2]=-1)):(A=0|XA(A,e,i+1|0,t),o=-15728641&k(),i=0|lt(0|t,0,52),i|=A,o=0|o|k(),r[(A=n)>>2]=i,r[A+4>>2]=o,A=n+12|0,0|jA(i,o)?void(r[A>>2]=t):void(r[A>>2]=-1))}function ue(A){var e,t=0,n=0,i=0,o=0,a=0,s=0,u=0,f=0;if(!(!(0|(t=0|r[(n=A|=0)>>2]))&!(0|(n=0|r[n+4>>2]))||(i=0|ft(0|t,0|n,52),k(),t=0|et(0|(u=0|lt(1,0,3*(15^(i&=15))|0)),0|k(),0|t,0|n),n=0|k(),r[(u=A)>>2]=t,r[u+4>>2]=n,(0|i)<(0|(s=0|r[(u=A+8|0)>>2]))))){for(e=A+12|0,a=i;;){if((0|a)==(0|s)){i=5;break}if(f=(0|a)==(0|r[e>>2]),i=0|ft(0|t,0|n,0|(o=3*(15-a|0)|0)),k(),f&1==(0|(i&=7))&!0){i=7;break}if(!(7==(0|i)&!0)){i=10;break}if(t=0|et(0|t,0|n,0|(f=0|lt(1,0,0|o)),0|k()),n=0|k(),r[(f=A)>>2]=t,r[f+4>>2]=n,!((0|a)>(0|s))){i=10;break}a=a+-1|0}if(5==(0|i))return r[(f=A)>>2]=0,r[f+4>>2]=0,r[u>>2]=-1,void(r[e>>2]=-1);if(7==(0|i))return s=0|et(0|t,0|n,0|(s=0|lt(1,0,0|o)),0|k()),u=0|k(),r[(f=A)>>2]=s,r[f+4>>2]=u,void(r[e>>2]=a+-1)}}function fe(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function le(A,e){return e|=0,+u(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+u(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function ce(A,e){switch(A=+A,0|(e|=0)){case 1:A=A<0?A+6.283185307179586:A;break;case 2:A=A>0?A+-6.283185307179586:A}return+A}function he(A,e){A|=0;var t,n,r,o=0;return n=+i[(e|=0)>>3],t=+i[A>>3],o=(r=+h(.5*(n-t)))*r+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+n)*+c(+t)*o),2*+v(+ +f(+o),+ +f(+(1-o)))*6371.007180918475}function ge(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20656+(A<<3)>>3],0|(e=0))}function de(A,e){e|=0;var t=0;return(A|=0)>>>0>15?0|(e=4):(t=0|ot(0|(t=0|ke(7,0,A,((0|A)<0)<<31>>31)),0|k(),120,0),A=0|k(),r[e>>2]=2|t,r[e+4>>2]=A,0|(e=0))}function pe(A,e,t){A|=0,t|=0;var n,r,o,a,s=0,u=0,l=0,d=0,p=0,m=0;return m=+i[(e|=0)>>3],o=+i[A>>3],p=+h(.5*(m-o)),l=+i[e+8>>3],r=+i[A+8>>3],d=+h(.5*(l-r)),n=+c(+o),a=+c(+m),d=2*+v(+ +f(+(d=p*p+d*(a*n*d))),+ +f(+(1-d))),p=+i[t>>3],m=+h(.5*(p-m)),s=+i[t+8>>3],l=+h(.5*(s-l)),u=+c(+p),l=2*+v(+ +f(+(l=m*m+l*(a*u*l))),+ +f(+(1-l))),p=+h(.5*(o-p)),s=+h(.5*(r-s)),s=2*+v(+ +f(+(s=p*p+s*(n*u*s))),+ +f(+(1-s))),4*+w(+ +f(+ +g(.5*(u=.5*(d+l+s)))*+g(.5*(u-d))*+g(.5*(u-l))*+g(.5*(u-s))))}function we(A,e,t){t|=0;var n,o,a,s=0,u=0;if(a=I,I=I+192|0,o=a,0|(u=0|re(A|=0,e|=0,n=a+168|0)))return I=a,0|(t=u);if(0|ie(A,e,o)&&_(27795,27190,415,27199),(0|(e=0|r[o>>2]))>0){if(s=+pe(o+8|0,o+8+((1!=(0|e)&1)<<4)|0,n)+0,1!=(0|e)){A=1;do{s+=+pe(o+8+((u=A)<<4)|0,o+8+((0|(A=A+1|0))%(0|e)<<4)|0,n)}while((0|A)<(0|e))}}else s=0;return i[t>>3]=s,I=a,0|(t=0)}function ve(A){A|=0;var e,t,n=0;return(e=0|At(1,12))||_(27280,27235,49,27293),0|(n=0|r[(t=A+4|0)>>2])?(r[(n=n+8|0)>>2]=e,r[t>>2]=e,0|e):(0|r[A>>2]&&_(27310,27235,61,27333),r[(n=A)>>2]=e,r[t>>2]=e,0|e)}function me(A,e){A|=0,e|=0;var t,n;return(n=0|qe(24))||_(27347,27235,78,27361),r[n>>2]=r[e>>2],r[n+4>>2]=r[e+4>>2],r[n+8>>2]=r[e+8>>2],r[n+12>>2]=r[e+12>>2],r[n+16>>2]=0,0|(t=0|r[(e=A+4|0)>>2])?(r[t+16>>2]=n,r[e>>2]=n,0|n):(0|r[A>>2]&&_(27376,27235,82,27361),r[A>>2]=n,r[e>>2]=n,0|n)}function be(A){var e=0,t=0,n=0,i=0;if(A|=0)for(n=1;;){if(0|(e=0|r[A>>2]))do{if(0|(t=0|r[e>>2]))do{i=t,t=0|r[t+16>>2],$e(i)}while(0|t);i=e,e=0|r[e+8>>2],$e(i)}while(0|e);if(e=A,A=0|r[A+8>>2],n||$e(e),!A)break;n=0}}function ye(A){var e,t,n=0,o=0,a=0,s=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,E=0,M=0,k=0,x=0,Q=0,D=0,C=0,S=0,I=0,P=0,F=0,T=0,L=0;if(0|r[(s=(A|=0)+8|0)>>2])return 0|(L=1);if(!(a=0|r[A>>2]))return 0|(L=0);n=a,o=0;do{o=o+1|0,n=0|r[n+8>>2]}while(0|n);if(o>>>0<2)return 0|(L=0);(t=0|qe(o<<2))||_(27396,27235,317,27415),(e=0|qe(o<<5))||_(27437,27235,321,27415),r[A>>2]=0,r[(Q=A+4|0)>>2]=0,r[s>>2]=0,o=0,F=0,x=0,p=0;A:for(;;){if(d=0|r[a>>2]){f=0,l=d;do{if(h=+i[l+8>>3],n=l,l=0|r[l+16>>2],c=+i[(s=(g=!(0|l))?d:l)+8>>3],+u(+(h-c))>3.141592653589793){L=14;break}f+=(c-h)*(+i[n>>3]+ +i[s>>3])}while(!g);if(14==(0|L)){L=0,f=0,n=d;do{k=+i[n+8>>3],I=0|r[(P=n+16|0)>>2],M=+i[(I=0|I?I:d)+8>>3],f+=(+i[n>>3]+ +i[I>>3])*((M<0?M+6.283185307179586:M)-(k<0?k+6.283185307179586:k)),n=0|r[(0|n?P:a)>>2]}while(0|n)}f>0?(r[t+(F<<2)>>2]=a,F=F+1|0,s=x,n=p):L=19}else L=19;if(19==(0|L)){L=0;do{if(!o){if(p){s=Q,l=p+8|0,n=a,o=A;break}if(0|r[A>>2]){L=27;break A}s=Q,l=A,n=a,o=A;break}if(0|r[(n=o+8|0)>>2]){L=21;break A}if(!(o=0|At(1,12))){L=23;break A}r[n>>2]=o,s=o+4|0,l=o,n=p}while(0);if(r[l>>2]=a,r[s>>2]=a,l=e+(x<<5)|0,g=0|r[a>>2]){for(i[(d=e+(x<<5)+8|0)>>3]=17976931348623157e292,i[(p=e+(x<<5)+24|0)>>3]=17976931348623157e292,i[l>>3]=-17976931348623157e292,i[(w=e+(x<<5)+16|0)>>3]=-17976931348623157e292,B=17976931348623157e292,E=-17976931348623157e292,s=0,v=g,h=17976931348623157e292,b=17976931348623157e292,y=-17976931348623157e292,c=-17976931348623157e292;f=+i[v>>3],k=+i[v+8>>3],v=0|r[v+16>>2],M=+i[((m=!(0|v))?g:v)+8>>3],f<h&&(i[d>>3]=f,h=f),k<b&&(i[p>>3]=k,b=k),f>y?i[l>>3]=f:f=y,k>c&&(i[w>>3]=k,c=k),B=k>0&k<B?k:B,E=k<0&k>E?k:E,s|=+u(+(k-M))>3.141592653589793,!m;)y=f;s&&(i[w>>3]=E,i[p>>3]=B)}else r[l>>2]=0,r[l+4>>2]=0,r[l+8>>2]=0,r[l+12>>2]=0,r[l+16>>2]=0,r[l+20>>2]=0,r[l+24>>2]=0,r[l+28>>2]=0;s=x+1|0}if(a=0|r[(P=a+8|0)>>2],r[P>>2]=0,!a){L=45;break}x=s,p=n}if(21==(0|L))_(27213,27235,35,27247);else if(23==(0|L))_(27267,27235,37,27247);else if(27==(0|L))_(27310,27235,61,27333);else if(45==(0|L)){A:do{if((0|F)>0){for(P=!(0|s),S=s<<2,I=!(0|A),C=0,n=0;;){if(D=0|r[t+(C<<2)>>2],P)L=73;else{if(!(x=0|qe(S))){L=50;break}if(!(Q=0|qe(S))){L=52;break}e:do{if(I)o=0;else{for(s=0,o=0,l=A;a=e+(s<<5)|0,0|Be(0|r[l>>2],a,0|r[D>>2])?(r[x+(o<<2)>>2]=l,r[Q+(o<<2)>>2]=a,m=o+1|0):m=o,l=0|r[l+8>>2];)s=s+1|0,o=m;if((0|m)>0)if(a=0|r[x>>2],1==(0|m))o=a;else for(w=0,v=-1,o=a,p=a;;){for(g=0|r[p>>2],a=0,l=0;d=(0|(s=0|r[r[x+(l<<2)>>2]>>2]))==(0|g)?a:a+(1&Be(s,0|r[Q+(l<<2)>>2],0|r[g>>2]))|0,(0|(l=l+1|0))!=(0|m);)a=d;if(o=(s=(0|d)>(0|v))?p:o,(0|(a=w+1|0))==(0|m))break e;w=a,v=s?d:v,p=0|r[x+(a<<2)>>2]}else o=0}}while(0);if($e(x),$e(Q),o){if(a=0|r[(s=o+4|0)>>2])o=a+8|0;else if(0|r[o>>2]){L=70;break}r[o>>2]=D,r[s>>2]=D}else L=73}if(73==(0|L)){if(L=0,0|(n=0|r[D>>2]))do{Q=n,n=0|r[n+16>>2],$e(Q)}while(0|n);$e(D),n=1}if((0|(C=C+1|0))>=(0|F)){T=n;break A}}50==(0|L)?_(27452,27235,249,27471):52==(0|L)?_(27490,27235,252,27471):70==(0|L)&&_(27310,27235,61,27333)}else T=0}while(0);return $e(t),$e(e),0|(L=T)}return 0}function Be(A,e,t){A|=0;var n=0,o=0,a=0,s=0,u=0,f=0,l=0,c=0;if(!(0|q(e|=0,t|=0)))return 0|(A=0);if(e=0|J(e),n=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|r[A>>2]))return 0|(A=0);if(e){e=0,l=o,t=A;A:for(;;){for(;s=+i[t>>3],o=+i[t+8>>3],c=0|r[(t=t+16|0)>>2],a=+i[(c=0|c?c:A)>>3],u=+i[c+8>>3],s>a?(f=s,s=u):(f=a,a=s,s=o,o=u),(n=n==a|n==f?n+2220446049250313e-31:n)<a|n>f;)if(!(t=0|r[t>>2])){t=22;break A}if(((f=(u=s<0?s+6.283185307179586:s)+(n-a)/(f-a)*((s=o<0?o+6.283185307179586:o)-u))<0?f+6.283185307179586:f)>(l=u==l|s==l?l+-2220446049250313e-31:l)&&(e^=1),!(t=0|r[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,l=o,t=A;A:for(;;){for(;s=+i[t>>3],o=+i[t+8>>3],c=0|r[(t=t+16|0)>>2],a=+i[(c=0|c?c:A)>>3],u=+i[c+8>>3],s>a?(f=s,s=u):(f=a,a=s,s=o,o=u),(n=n==a|n==f?n+2220446049250313e-31:n)<a|n>f;)if(!(t=0|r[t>>2])){t=22;break A}if(s+(n-a)/(f-a)*(o-s)>(l=s==l|o==l?l+-2220446049250313e-31:l)&&(e^=1),!(t=0|r[t>>2])){t=22;break}}if(22==(0|t))return 0|e}return 0}function Ee(A,e,t,i,o){t|=0,i|=0,o|=0;var a,s,u,f,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0;if(f=I,I=I+32|0,b=f+16|0,u=f,l=0|ft(0|(A|=0),0|(e|=0),52),k(),l&=15,w=0|ft(0|t,0|i,52),k(),(0|l)!=(15&w))return I=f,0|(b=12);if(d=0|ft(0|A,0|e,45),k(),d&=127,p=0|ft(0|t,0|i,45),k(),d>>>0>121|(p&=127)>>>0>121)return I=f,0|(b=5);if(w=(0|d)!=(0|p)){if(7==(0|(h=0|W(d,p))))return I=f,0|(b=1);7==(0|(g=0|W(p,d)))?_(27514,27538,161,27548):(v=h,c=g)}else v=0,c=0;a=0|Y(d),s=0|Y(p),r[b>>2]=0,r[b+4>>2]=0,r[b+8>>2]=0,r[b+12>>2]=0;do{if(v){if(h=(0|(p=0|r[4272+(28*d|0)+(v<<2)>>2]))>0,s)if(h){d=0,g=t,h=i;do{g=0|qA(g,h),h=0|k(),1==(0|(c=0|BA(c)))&&(c=0|BA(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|$A(g,h),h=0|k(),c=0|BA(c),d=d+1|0}while((0|d)!=(0|p));p=c,d=g,g=h}else p=c,d=t,g=i;if(te(d,g,b),w||_(27563,27538,191,27548),(h=!!(0|a))&(c=!!(0|s))&&_(27590,27538,192,27548),h){if(7==(0|(c=0|ZA(A,e)))){l=5;break}if(0|n[22e3+(7*c|0)+v|0]){l=1;break}d=g=0|r[21168+(28*c|0)+(v<<2)>>2]}else if(c){if(7==(0|(c=0|ZA(d,g)))){l=5;break}if(0|n[22e3+(7*c|0)+p|0]){l=1;break}d=0,g=0|r[21168+(28*p|0)+(c<<2)>>2]}else d=0,g=0;if((d|g|0)<0)l=5;else{if((0|g)>0){h=b+4|0,c=0;do{bA(h),c=c+1|0}while((0|c)!=(0|g))}if(r[u>>2]=0,r[u+4>>2]=0,r[u+8>>2]=0,vA(u,v),0|l)for(;0|Ae(l)?pA(u):wA(u),(0|l)>1;)l=l+-1|0;if((0|d)>0){l=0;do{bA(u),l=l+1|0}while((0|l)!=(0|d))}sA(m=b+4|0,u,m),oA(m),m=51}}else if(te(t,i,b),!!(0|a)&!!(0|s))if((0|p)!=(0|d)&&_(27621,27538,261,27548),7==(0|(c=0|ZA(A,e)))|7==(0|(l=0|ZA(t,i))))l=5;else if(0|n[22e3+(7*c|0)+l|0])l=1;else if((0|(c=0|r[21168+(28*c|0)+(l<<2)>>2]))>0){h=b+4|0,l=0;do{bA(h),l=l+1|0}while((0|l)!=(0|c));m=51}else m=51;else m=51}while(0);return 51==(0|m)&&(l=b+4|0,r[o>>2]=r[l>>2],r[o+4>>2]=r[l+4>>2],r[o+8>>2]=r[l+8>>2],l=0),I=f,0|(b=l)}function Me(A,e,t,n){t|=0,n|=0;var i,o,a,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0;if(a=I,I=I+48|0,i=a+36|0,f=a+24|0,l=a+12|0,c=a,s=0|ft(0|(A|=0),0|(e|=0),52),k(),s&=15,g=0|ft(0|A,0|e,45),k(),(g&=127)>>>0>121)return I=a,0|(n=5);if(o=0|Y(g),lt(0|s,0,52),w=134225919|k(),r[(u=n)>>2]=-1,r[u+4>>2]=w,!s)return 7==(0|(s=0|lA(t)))||127==(0|(s=0|X(g,s)))?(I=a,0|(w=1)):(d=0|lt(0|s,0,45),p=0|k(),p=-1040385&r[(g=n)+4>>2]|p,r[(w=n)>>2]=r[g>>2]|d,r[w+4>>2]=p,I=a,0|(w=0));for(r[i>>2]=r[t>>2],r[i+4>>2]=r[t+4>>2],r[i+8>>2]=r[t+8>>2],t=s;;){if(u=t,t=t+-1|0,r[f>>2]=r[i>>2],r[f+4>>2]=r[i+4>>2],r[f+8>>2]=r[i+8>>2],0|Ae(u)){if(0|(s=0|cA(i))){t=13;break}r[l>>2]=r[i>>2],r[l+4>>2]=r[i+4>>2],r[l+8>>2]=r[i+8>>2],pA(l)}else{if(0|(s=0|hA(i))){t=13;break}r[l>>2]=r[i>>2],r[l+4>>2]=r[i+4>>2],r[l+8>>2]=r[i+8>>2],wA(l)}if(uA(f,l,c),oA(c),m=0|r[(s=n)>>2],s=0|r[s+4>>2],v=0|lt(7,0,0|(b=3*(15-u|0)|0)),s&=~k(),b=0|lt(0|lA(c),0,0|b),s=0|k()|s,r[(w=n)>>2]=b|m&~v,r[w+4>>2]=s,(0|u)<=1){t=14;break}}A:do{if(13!=(0|t)&&14==(0|t))if((0|r[i>>2])<=1&&(0|r[i+4>>2])<=1&&(0|r[i+8>>2])<=1){c=127==(0|(s=0|X(g,t=0|lA(i))))?0:0|Y(s);e:do{if(t){if(o){if(7==(0|(s=0|ZA(A,e)))){s=5;break A}if((0|(u=0|r[21376+(28*s|0)+(t<<2)>>2]))>0){s=t,t=0;do{s=0|yA(s),t=t+1|0}while((0|t)!=(0|u))}else s=t;if(1==(0|s)){s=9;break A}127==(0|(t=0|X(g,s)))&&_(27648,27538,411,27678),0|Y(t)?_(27693,27538,412,27678):(p=t,d=u,h=s)}else p=s,d=0,h=t;if((0|(l=0|r[4272+(28*g|0)+(h<<2)>>2]))<=-1&&_(27724,27538,419,27678),!c){if((0|d)<0){s=5;break A}if(0|d){s=0,t=0|r[(u=n)>>2],u=0|r[u+4>>2];do{t=0|KA(t,u),u=0|k(),r[(b=n)>>2]=t,r[b+4>>2]=u,s=s+1|0}while((0|s)<(0|d))}if((0|l)<=0){s=p,t=58;break}for(s=0,t=0|r[(u=n)>>2],u=0|r[u+4>>2];;)if(t=0|KA(t,u),u=0|k(),r[(b=n)>>2]=t,r[b+4>>2]=u,(0|(s=s+1|0))==(0|l)){s=p,t=58;break e}}if(7==(0|(f=0|W(p,g)))&&_(27514,27538,428,27678),t=0|r[(s=n)>>2],s=0|r[s+4>>2],(0|l)>0){u=0;do{t=0|KA(t,s),s=0|k(),r[(b=n)>>2]=t,r[b+4>>2]=s,u=u+1|0}while((0|u)!=(0|l))}if(7==(0|(s=0|ZA(t,s)))&&_(27795,27538,440,27678),t=0|N(p),(0|(t=0|r[(t?21792:21584)+(28*f|0)+(s<<2)>>2]))<0&&_(27795,27538,454,27678),t){s=0,u=0|r[(f=n)>>2],f=0|r[f+4>>2];do{u=0|JA(u,f),f=0|k(),r[(b=n)>>2]=u,r[b+4>>2]=f,s=s+1|0}while((0|s)<(0|t));s=p,t=58}else s=p,t=58}else if(!!(0|o)&!!(0|c)){if(7==(0|(t=0|ZA(A,e)))|7==(0|(u=0|ZA(0|r[(u=n)>>2],0|r[u+4>>2])))){s=5;break A}if((0|(u=0|r[21376+(28*t|0)+(u<<2)>>2]))<0){s=5;break A}if(u){t=0,f=0|r[(l=n)>>2],l=0|r[l+4>>2];do{f=0|KA(f,l),l=0|k(),r[(b=n)>>2]=f,r[b+4>>2]=l,t=t+1|0}while((0|t)<(0|u));t=58}else t=59}else t=58}while(0);if(58==(0|t)&&c&&(t=59),59==(0|t)&&1==(0|ZA(0|r[(b=n)>>2],0|r[b+4>>2]))){s=9;break}v=0|r[(b=n)>>2],b=-1040385&r[b+4>>2],m=0|lt(0|s,0,45),b=0|b|k(),r[(s=n)>>2]=v|m,r[s+4>>2]=b,s=0}else s=1}while(0);return I=a,0|(b=s)}function ke(A,e,t,n){A|=0,e|=0;var r=0,i=0,o=0;if(!(0|(t|=0))&!(0|(n|=0)))return i=1,M(0|(r=0)),0|i;i=A,r=e,A=1,e=0;do{A=0|ot(0|((o=!0&!(1&t))?1:i),0|(o?0:r),0|A,0|e),e=0|k(),t=0|ut(0|t,0|n,1),n=0|k(),i=0|ot(0|i,0|r,0|i,0|r),r=0|k()}while(!(!(0|t)&!(0|n)));return M(0|e),0|A}function _e(A,e,t,n){t|=0,n|=0;var o,a=0,s=0,u=0,f=0,l=0,h=0;o=I,I=I+16|0,s=o,u=0|ft(0|(A|=0),0|(e|=0),52),k(),u&=15;do{if(u){if(!(a=0|re(A,e,s))){l=+i[s>>3],f=1/+c(+l),h=+i[25968+(u<<3)>>3],i[t>>3]=l+h,i[t+8>>3]=l-h,l=+i[s+8>>3],f*=h,i[t+16>>3]=f+l,i[t+24>>3]=l-f;break}return I=o,0|(u=a)}if(a=0|ft(0|A,0|e,45),k(),(a&=127)>>>0>121)return I=o,0|(u=5);s=22064+(a<<5)|0,r[t>>2]=r[s>>2],r[t+4>>2]=r[s+4>>2],r[t+8>>2]=r[s+8>>2],r[t+12>>2]=r[s+12>>2],r[t+16>>2]=r[s+16>>2],r[t+20>>2]=r[s+20>>2],r[t+24>>2]=r[s+24>>2],r[t+28>>2]=r[s+28>>2];break}while(0);return function(A,e){e=+e;var t,n,r,o,a,s,u,f=0,l=0;f=(o=+i[(r=16+(A|=0)|0)>>3])-(n=+i[(t=A+24|0)>>3]),f=o<n?f+6.283185307179586:f,l=+i[A>>3],f=.5*(f*e-f),l+=e=.5*((u=l-(s=+i[(a=A+8|0)>>3]))*e-u),i[A>>3]=l>1.5707963267948966?1.5707963267948966:l,e=s-e,i[a>>3]=e<-1.5707963267948966?-1.5707963267948966:e,e=(e=o+f)>3.141592653589793?e+-6.283185307179586:e,i[r>>3]=e<-3.141592653589793?e+6.283185307179586:e,e=(e=n-f)>3.141592653589793?e+-6.283185307179586:e,i[t>>3]=e<-3.141592653589793?e+6.283185307179586:e}(t,n?1.4:1.1),(0|r[(n=26096+(u<<3)|0)>>2])==(0|A)&&(0|r[n+4>>2])==(0|e)&&(i[t>>3]=1.5707963267948966),(0|r[(u=26224+(u<<3)|0)>>2])==(0|A)&&(0|r[u+4>>2])==(0|e)&&(i[t+8>>3]=-1.5707963267948966),1.5707963267948966!=+i[t>>3]&&-1.5707963267948966!=+i[t+8>>3]?(I=o,0|(u=0)):(i[t+16>>3]=3.141592653589793,i[t+24>>3]=-3.141592653589793,I=o,0|(u=0))}function xe(A,e,t,i){A|=0,e|=0,t|=0,i|=0;var o,a,s,u=0,f=0,l=0,c=0;s=I,I=I+48|0,o=s+40|0,a=s,NA(f=s+32|0,0,0,0),l=0|r[f>>2],f=0|r[f+4>>2];do{if(t>>>0<=15){if(0|(u=0|Ie(i))){r[(i=a)>>2]=0,r[i+4>>2]=0,r[a+8>>2]=u,r[a+12>>2]=-1,l=a+29|0,r[(i=a+16|0)>>2]=0,r[i+4>>2]=0,r[i+8>>2]=0,n[i+12|0]=0,n[l|0]=0|n[o|0],n[l+1|0]=0|n[o+1|0],n[l+2|0]=0|n[o+2|0];break}if(u=0|At(1+(0|r[e+8>>2])|0,32)){Pe(e,u),r[(c=a)>>2]=l,r[c+4>>2]=f,r[a+8>>2]=0,r[a+12>>2]=t,r[a+16>>2]=i,r[a+20>>2]=e,r[a+24>>2]=u,n[a+28|0]=0,n[(l=a+29|0)|0]=0|n[o|0],n[l+1|0]=0|n[o+1|0],n[l+2|0]=0|n[o+2|0];break}r[(i=a)>>2]=0,r[i+4>>2]=0,r[a+8>>2]=13,r[a+12>>2]=-1,l=a+29|0,r[(i=a+16|0)>>2]=0,r[i+4>>2]=0,r[i+8>>2]=0,n[i+12|0]=0,n[l|0]=0|n[o|0],n[l+1|0]=0|n[o+1|0],n[l+2|0]=0|n[o+2|0];break}r[(l=a)>>2]=0,r[l+4>>2]=0,r[a+8>>2]=4,r[a+12>>2]=-1,c=a+29|0,r[(l=a+16|0)>>2]=0,r[l+4>>2]=0,r[l+8>>2]=0,n[l+12|0]=0,n[c|0]=0|n[o|0],n[c+1|0]=0|n[o+1|0],n[c+2|0]=0|n[o+2|0]}while(0);Qe(a),r[A>>2]=r[a>>2],r[A+4>>2]=r[a+4>>2],r[A+8>>2]=r[a+8>>2],r[A+12>>2]=r[a+12>>2],r[A+16>>2]=r[a+16>>2],r[A+20>>2]=r[a+20>>2],r[A+24>>2]=r[a+24>>2],r[A+28>>2]=r[a+28>>2],I=s}function Qe(A){var e,t,i,o,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0;if(o=I,I=I+336|0,e=o+168|0,t=o,!(0|(s=0|r[(u=A|=0)>>2]))&!(0|(u=0|r[u+4>>2])))I=o;else{if(0|n[(a=A+28|0)|0]?(s=0|De(s,u),u=0|k()):n[a|0]=1,!(0|r[r[(i=A+20|0)>>2]>>2]))return 0|(s=0|r[(a=A+24|0)>>2])&&$e(s),r[(B=A)>>2]=0,r[B+4>>2]=0,r[A+8>>2]=0,r[i>>2]=0,r[A+12>>2]=-1,r[A+16>>2]=0,r[a>>2]=0,void(I=o);f=15&(a=0|r[(B=A+16|0)>>2]);A:do{if(!(0|s)&!(0|u))y=A+24|0;else{m=A+12|0,w=3==(0|f),p=255&a,g=3==(1|f),v=A+24|0,d=(f+-1|0)>>>0<3,c=3==(2|f),h=t+8|0;e:for(;;){if(l=0|ft(0|s,0|u,52),k(),(0|(l&=15))==(0|r[m>>2])){switch(15&p){case 0:case 2:case 3:if(0|(f=0|re(s,u,e))){b=15;break e}if(0|Fe(0|r[i>>2],0|r[v>>2],e)){b=19;break e}}if(g&&(f=0|r[4+(0|r[i>>2])>>2],r[e>>2]=r[f>>2],r[e+4>>2]=r[f+4>>2],r[e+8>>2]=r[f+8>>2],r[e+12>>2]=r[f+12>>2],0|q(26832,e))){if(0|ee(0|r[4+(0|r[i>>2])>>2],l,t)){b=25;break}if((0|r[(f=t)>>2])==(0|s)&&(0|r[f+4>>2])==(0|u)){b=29;break}}if(d){if(0|(f=0|ie(s,u,e))){b=32;break}if(0|_e(s,u,t,0)){b=36;break}if(c&&0|Te(0|r[i>>2],0|r[v>>2],e,t)){b=42;break}if(g&&0|Ge(0|r[i>>2],0|r[v>>2],e,t)){b=42;break}}if(w){if(a=0|_e(s,u,e,1),f=0|r[v>>2],0|a){b=45;break}if(0|$(f,e)){if(eA(t,e),0|AA(e,0|r[v>>2])){b=53;break}if(0|Fe(0|r[i>>2],0|r[v>>2],h)){b=53;break}if(0|Ge(0|r[i>>2],0|r[v>>2],t,e)){b=53;break}}}}do{if((0|l)<(0|r[m>>2])){if(a=0|_e(s,u,e,1),f=0|r[v>>2],0|a){b=58;break e}if(!(0|$(f,e))){b=73;break}if(0|AA(0|r[v>>2],e)&&(eA(t,e),0|Te(0|r[i>>2],0|r[v>>2],t,e))){b=65;break e}if(0|(s=0|WA(s,u,l+1|0,t))){b=67;break e}s=0|r[(u=t)>>2],u=0|r[u+4>>2]}else b=73}while(0);if(73==(0|b)&&(b=0,s=0|De(s,u),u=0|k()),!(0|s)&!(0|u)){y=v;break A}}switch(0|b){case 15:0|(a=0|r[v>>2])&&$e(a),r[(b=A)>>2]=0,r[b+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[B>>2]=0,r[v>>2]=0,r[A+8>>2]=f,b=20;break;case 19:r[A>>2]=s,r[A+4>>2]=u,b=20;break;case 25:_(27795,27761,470,27772);break;case 29:case 42:return r[A>>2]=s,r[A+4>>2]=u,void(I=o);case 32:return 0|(a=0|r[v>>2])&&$e(a),r[(y=A)>>2]=0,r[y+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[B>>2]=0,r[v>>2]=0,r[A+8>>2]=f,void(I=o);case 36:_(27795,27761,493,27772);break;case 45:0|f&&$e(f),r[(b=A)>>2]=0,r[b+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[B>>2]=0,r[v>>2]=0,r[A+8>>2]=a,b=55;break;case 53:r[A>>2]=s,r[A+4>>2]=u,b=55;break;case 58:0|f&&$e(f),r[(b=A)>>2]=0,r[b+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[B>>2]=0,r[v>>2]=0,r[A+8>>2]=a,b=71;break;case 65:r[A>>2]=s,r[A+4>>2]=u,b=71;break;case 67:return 0|(a=0|r[v>>2])&&$e(a),r[(y=A)>>2]=0,r[y+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[B>>2]=0,r[v>>2]=0,r[A+8>>2]=s,void(I=o)}if(20==(0|b))return void(I=o);if(55==(0|b))return void(I=o);if(71==(0|b))return void(I=o)}}while(0);0|(a=0|r[y>>2])&&$e(a),r[(b=A)>>2]=0,r[b+4>>2]=0,r[A+8>>2]=0,r[i>>2]=0,r[A+12>>2]=-1,r[B>>2]=0,r[y>>2]=0,I=o}}function De(A,e){var t,n=0,i=0,o=0,a=0,s=0,u=0,f=0,l=0,c=0;t=I,I=I+16|0,c=t,i=0|ft(0|(A|=0),0|(e|=0),52),k(),i&=15,n=0|ft(0|A,0|e,45),k();do{if(i){for(;n=0|lt(i+4095|0,0,52),o=k()|-15728641&e,n=n|A|(s=0|lt(7,0,0|(a=3*(15-i|0)|0))),o|=u=0|k(),f=0|ft(0|A,0|e,0|a),k(),i=i+-1|0,!((f&=7)>>>0<6);){if(!i){l=4;break}e=o,A=n}if(4==(0|l)){n=0|ft(0|n,0|o,45),k();break}return c=0|lt(((c=!(0|f)&!!(0|jA(n,o)))?2:1)+f|0,0,0|a),l=0|k()|e&~u,c|=A&~s,M(0|l),I=t,0|c}}while(0);return(n&=127)>>>0>120?(c=0,M(0|(l=0)),I=t,0|c):(NA(c,0,n+1|0,0),l=0|r[c+4>>2],c=0|r[c>>2],M(0|l),I=t,0|c)}function Ce(A,e,t){A|=0;var n,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0;if(!(0|q(e|=0,t|=0)))return 0|(g=0);if(e=0|J(e),o=+i[t>>3],a=e&(a=+i[t+8>>3])<0?a+6.283185307179586:a,(0|(g=0|r[A>>2]))<=0)return 0|(g=0);if(n=0|r[A+4>>2],e){e=0,h=a,t=-1,A=0;A:for(;;){for(c=A;u=+i[n+(c<<4)>>3],a=+i[n+(c<<4)+8>>3],s=+i[n+((A=(t+2|0)%(0|g)|0)<<4)>>3],f=+i[n+(A<<4)+8>>3],u>s?(l=u,u=f):(l=s,s=u,u=a,a=f),(o=o==s|o==l?o+2220446049250313e-31:o)<s|o>l;){if((0|(t=c+1|0))>=(0|g)){t=22;break A}A=c,c=t,t=A}if(((l=(f=u<0?u+6.283185307179586:u)+(o-s)/(l-s)*((u=a<0?a+6.283185307179586:a)-f))<0?l+6.283185307179586:l)>(h=f==h|u==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;u=+i[n+(c<<4)>>3],a=+i[n+(c<<4)+8>>3],s=+i[n+((A=(t+2|0)%(0|g)|0)<<4)>>3],f=+i[n+(A<<4)+8>>3],u>s?(l=u,u=f):(l=s,s=u,u=a,a=f),(o=o==s|o==l?o+2220446049250313e-31:o)<s|o>l;){if((0|(t=c+1|0))>=(0|g)){t=22;break A}A=c,c=t,t=A}if(u+(o-s)/(l-s)*(a-u)>(h=u==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 Se(A,e){e|=0;var t,n,o,a,s,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0;if(!(n=0|r[(A|=0)>>2]))return r[e>>2]=0,r[e+4>>2]=0,r[e+8>>2]=0,r[e+12>>2]=0,r[e+16>>2]=0,r[e+20>>2]=0,r[e+24>>2]=0,void(r[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(a=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(s=e+16|0)>>3]=-17976931348623157e292,!((0|n)<=0)){for(t=0|r[A+4>>2],w=17976931348623157e292,v=-17976931348623157e292,m=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,p=-17976931348623157e292,l=-17976931348623157e292,b=0;f=+i[t+(b<<4)>>3],d=+i[t+(b<<4)+8>>3],c=+i[t+(((0|(A=A+2|0))==(0|n)?0:A)<<4)+8>>3],f<h&&(i[o>>3]=f,h=f),d<g&&(i[a>>3]=d,g=d),f>p?i[e>>3]=f:f=p,d>l&&(i[s>>3]=d,l=d),w=d>0&d<w?d:w,v=d<0&d>v?d:v,m|=+u(+(d-c))>3.141592653589793,(0|(A=b+1|0))!=(0|n);)y=b,p=f,b=A,A=y;m&&(i[s>>3]=v,i[a>>3]=w)}}function Ie(A){return 0|((A|=0)>>>0<4?0:15)}function Pe(A,e){e|=0;var t,n=0,o=0,a=0,s=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,E=0,M=0,k=0,_=0;if(v=0|r[(A|=0)>>2]){if(i[(m=e+8|0)>>3]=17976931348623157e292,i[(b=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(y=e+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(a=0|r[A+4>>2],p=17976931348623157e292,w=-17976931348623157e292,o=0,n=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,f=-17976931348623157e292,B=0;s=+i[a+(B<<4)>>3],g=+i[a+(B<<4)+8>>3],l=+i[a+(((0|(k=n+2|0))==(0|v)?0:k)<<4)+8>>3],s<c&&(i[m>>3]=s,c=s),g<h&&(i[b>>3]=g,h=g),s>d?i[e>>3]=s:s=d,g>f&&(i[y>>3]=g,f=g),p=g>0&g<p?g:p,w=g<0&g>w?g:w,o|=+u(+(g-l))>3.141592653589793,(0|(n=B+1|0))!=(0|v);)k=B,d=s,B=n,n=k;o&&(i[y>>3]=w,i[b>>3]=p)}}else r[e>>2]=0,r[e+4>>2]=0,r[e+8>>2]=0,r[e+12>>2]=0,r[e+16>>2]=0,r[e+20>>2]=0,r[e+24>>2]=0,r[e+28>>2]=0;if(!((0|(n=0|r[(k=A+8|0)>>2]))<=0)){t=A+12|0,M=0;do{if(a=0|r[t>>2],o=M,b=e+((M=M+1|0)<<5)|0,y=0|r[a+(o<<3)>>2]){if(i[(B=e+(M<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(M<<5)+24|0)>>3]=17976931348623157e292,i[b>>3]=-17976931348623157e292,i[(E=e+(M<<5)+16|0)>>3]=-17976931348623157e292,(0|y)>0){for(v=0|r[a+(o<<3)+4>>2],p=17976931348623157e292,w=-17976931348623157e292,a=0,o=-1,m=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,f=-17976931348623157e292;s=+i[v+(m<<4)>>3],d=+i[v+(m<<4)+8>>3],l=+i[v+(((0|(o=o+2|0))==(0|y)?0:o)<<4)+8>>3],s<c&&(i[B>>3]=s,c=s),d<h&&(i[A>>3]=d,h=d),s>g?i[b>>3]=s:s=g,d>f&&(i[E>>3]=d,f=d),p=d>0&d<p?d:p,w=d<0&d>w?d:w,a|=+u(+(d-l))>3.141592653589793,(0|(o=m+1|0))!=(0|y);)_=m,m=o,g=s,o=_;a&&(i[E>>3]=w,i[A>>3]=p)}}else r[b>>2]=0,r[b+4>>2]=0,r[b+8>>2]=0,r[b+12>>2]=0,r[b+16>>2]=0,r[b+20>>2]=0,r[b+24>>2]=0,r[b+28>>2]=0,n=0|r[k>>2]}while((0|M)<(0|n))}}function Fe(A,e,t){var n=0,i=0,o=0;if(!(0|Ce(A|=0,e|=0,t|=0)))return 0|(i=0);if((0|r[(i=A+8|0)>>2])<=0)return 0|(i=1);for(n=A+12|0,A=0;;){if(o=A,A=A+1|0,0|Ce((0|r[n>>2])+(o<<3)|0,e+(A<<5)|0,t)){A=0,n=6;break}if((0|A)>=(0|r[i>>2])){A=1,n=6;break}}return 6==(0|n)?0|A:0}function Te(A,e,t,n){n|=0;var i,o,a=0,s=0,u=0,f=0,l=0;if(o=I,I=I+16|0,i=o,!(0|Ce(A|=0,e|=0,u=(t|=0)+8|0)))return I=o,0|(f=0);f=A+8|0;A:do{if((0|r[f>>2])>0){for(s=A+12|0,a=0;;){if(l=a,a=a+1|0,0|Ce((0|r[s>>2])+(l<<3)|0,e+(a<<5)|0,u)){a=0;break}if((0|a)>=(0|r[f>>2]))break A}return I=o,0|a}}while(0);if(0|Le(A,e,t,n))return I=o,0|(l=0);r[i>>2]=r[t>>2],r[i+4>>2]=u,a=0|r[f>>2];A:do{if((0|a)>0)for(A=A+12|0,u=0,s=a;;){if(a=0|r[A>>2],(0|r[a+(u<<3)>>2])>0){if(0|Ce(i,n,0|r[a+(u<<3)+4>>2])){a=0;break A}if(a=u+1|0,0|Le((0|r[A>>2])+(u<<3)|0,e+(a<<5)|0,t,n)){a=0;break A}s=0|r[f>>2]}else a=u+1|0;if(!((0|a)<(0|s))){a=1;break}u=a}else a=1}while(0);return I=o,0|(l=a)}function Le(A,e,t,n){A|=0,t|=0;var o,a,s,u,f,l,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,E=0,M=0,k=0,_=0;if(l=I,I=I+176|0,u=l+172|0,c=l+168|0,f=l,!(0|$(e|=0,n|=0)))return I=l,0|(A=0);if(function(A,e,t,n){var o,a,s,u,f;e|=0,t|=0,n|=0,A=(a=+i[16+(A|=0)>>3])<(f=+i[A+24>>3]),o=(u=+i[e+16>>3])<(s=+i[e+24>>3]),e=f-u<s-a,r[t>>2]=A?o|e?1:2:0,r[n>>2]=o?A?1:e?2:1:0}(e,n,u,c),pt(0|f,0|t,168),(0|r[t>>2])>0){e=0;do{B=+ce(+i[(k=f+8+(e<<4)+8|0)>>3],0|r[c>>2]),i[k>>3]=B,e=e+1|0}while((0|e)<(0|r[t>>2]))}a=+i[n>>3],s=+i[n+8>>3],B=+ce(+i[n+16>>3],0|r[c>>2]),o=+ce(+i[n+24>>3],0|r[c>>2]);A:do{if((0|r[A>>2])>0){if(n=A+4|0,(0|(c=0|r[f>>2]))<=0)for(e=0;;)if((0|(e=e+1|0))>=(0|r[A>>2])){e=0;break A}for(t=0;;){if(e=0|r[n>>2],b=+i[e+(t<<4)>>3],y=+ce(+i[e+(t<<4)+8>>3],0|r[u>>2]),e=0|r[n>>2],k=(0|(t=t+1|0))%(0|r[A>>2])|0,h=+i[e+(k<<4)>>3],g=+ce(+i[e+(k<<4)+8>>3],0|r[u>>2]),!(b>=a)|!(h>=a)&&!(b<=s)|!(h<=s)&&!(y<=o)|!(g<=o)&&!(y>=B)|!(g>=B)){m=h-b,w=g-y,e=0;do{if(_=e,k=(0|(e=e+1|0))==(0|c)?0:e,h=+i[f+8+(_<<4)+8>>3],g=+i[f+8+(k<<4)+8>>3]-h,d=+i[f+8+(_<<4)>>3],!(0==(v=m*g-w*(p=+i[f+8+(k<<4)>>3]-d))||(E=y-h,M=b-d,p=(E*p-g*M)/v,p<0|p>1))&&(v=(m*E-w*M)/v)>=0&v<=1){e=1;break A}}while((0|e)<(0|c))}if((0|t)>=(0|r[A>>2])){e=0;break}}}else e=0}while(0);return I=l,0|(_=e)}function Ge(A,e,t,n){var i=0,o=0,a=0;if(0|Le(A|=0,e|=0,t|=0,n|=0))return 0|(o=1);if((0|r[(o=A+8|0)>>2])<=0)return 0|(o=0);for(i=A+12|0,A=0;;){if(a=A,A=A+1|0,0|Le((0|r[i>>2])+(a<<3)|0,e+(A<<5)|0,t,n)){A=1,i=6;break}if((0|A)>=(0|r[o>>2])){A=0,i=6;break}}return 6==(0|i)?0|A:0}function Re(A,e,t,n,r){e|=0,t|=0,n|=0,r|=0;var o,a,s,u,f,l,c,h=0;u=+i[(A|=0)>>3],s=+i[e>>3]-u,a=+i[A+8>>3],o=+i[e+8>>3]-a,l=+i[t>>3],h=((h=+i[n>>3]-l)*(a-(c=+i[t+8>>3]))-(u-l)*(f=+i[n+8>>3]-c))/(s*f-o*h),i[r>>3]=u+s*h,i[r+8>>3]=a+o*h}function Ue(A,e){return e|=0,+u(+(+i[(A|=0)>>3]-+i[e>>3]))<1.1920928955078125e-7?0|(e=+u(+(+i[A+8>>3]-+i[e+8>>3]))<1.1920928955078125e-7):0|(e=0)}function Oe(A,e){e|=0;var t,n,r;return+((r=+i[(A|=0)>>3]-+i[e>>3])*r+(n=+i[A+8>>3]-+i[e+8>>3])*n+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function ze(A,e,t){t|=0;var n,i,o,a,s=0,u=0,f=0,l=0;if(a=I,I=I+32|0,l=a,0|(s=0|ne(A|=0,e|=0,i=a+16|0)))return I=a,0|(t=s);n=0|zA(A,e),o=0|ZA(A,e),function(A,e){A=7696+(28*(A|=0)|0)|0,r[(e|=0)>>2]=r[A>>2],r[e+4>>2]=r[A+4>>2],r[e+8>>2]=r[A+8>>2],r[e+12>>2]=r[A+12>>2]}(n,l),s=0|function(A,e){A|=0;var t=0,n=0;if((e|=0)>>>0>20)return-1;do{if((0|r[11120+(216*e|0)>>2])!=(0|A))if((0|r[11120+(216*e|0)+8>>2])!=(0|A))if((0|r[11120+(216*e|0)+16>>2])!=(0|A))if((0|r[11120+(216*e|0)+24>>2])!=(0|A))if((0|r[11120+(216*e|0)+32>>2])!=(0|A))if((0|r[11120+(216*e|0)+40>>2])!=(0|A))if((0|r[11120+(216*e|0)+48>>2])!=(0|A))if((0|r[11120+(216*e|0)+56>>2])!=(0|A))if((0|r[11120+(216*e|0)+64>>2])!=(0|A))if((0|r[11120+(216*e|0)+72>>2])!=(0|A))if((0|r[11120+(216*e|0)+80>>2])!=(0|A))if((0|r[11120+(216*e|0)+88>>2])!=(0|A))if((0|r[11120+(216*e|0)+96>>2])!=(0|A))if((0|r[11120+(216*e|0)+104>>2])!=(0|A))if((0|r[11120+(216*e|0)+112>>2])!=(0|A))if((0|r[11120+(216*e|0)+120>>2])!=(0|A))if((0|r[11120+(216*e|0)+128>>2])!=(0|A)){if((0|r[11120+(216*e|0)+136>>2])!=(0|A)){if((0|r[11120+(216*e|0)+144>>2])==(0|A)){A=0,t=2,n=0;break}if((0|r[11120+(216*e|0)+152>>2])==(0|A)){A=0,t=2,n=1;break}if((0|r[11120+(216*e|0)+160>>2])==(0|A)){A=0,t=2,n=2;break}if((0|r[11120+(216*e|0)+168>>2])==(0|A)){A=1,t=2,n=0;break}if((0|r[11120+(216*e|0)+176>>2])==(0|A)){A=1,t=2,n=1;break}if((0|r[11120+(216*e|0)+184>>2])==(0|A)){A=1,t=2,n=2;break}if((0|r[11120+(216*e|0)+192>>2])==(0|A)){A=2,t=2,n=0;break}if((0|r[11120+(216*e|0)+200>>2])==(0|A)){A=2,t=2,n=1;break}if((0|r[11120+(216*e|0)+208>>2])==(0|A)){A=2,t=2,n=2;break}return-1}A=2,t=1,n=2}else A=2,t=1,n=1;else A=2,t=1,n=0;else A=1,t=1,n=2;else A=1,t=1,n=1;else A=1,t=1,n=0;else A=0,t=1,n=2;else A=0,t=1,n=1;else A=0,t=1,n=0;else A=2,t=0,n=2;else A=2,t=0,n=1;else A=2,t=0,n=0;else A=1,t=0,n=2;else A=1,t=0,n=1;else A=1,t=0,n=0;else A=0,t=0,n=2;else A=0,t=0,n=1;else A=0,t=0,n=0}while(0);return 0|r[11120+(216*e|0)+(72*t|0)+(24*A|0)+(n<<3)+4>>2]}(n,0|r[i>>2]);do{if(0|Y(n)){switch(0|n){case 4:u=0;break;case 14:u=1;break;case 24:u=2;break;case 38:u=3;break;case 49:u=4;break;case 58:u=5;break;case 63:u=6;break;case 72:u=7;break;case 83:u=8;break;case 97:u=9;break;case 107:u=10;break;case 117:u=11;break;default:_(27795,27797,75,27806)}if(f=0|r[26416+(24*u|0)+8>>2],e=0|r[26416+(24*u|0)+16>>2],(0|(A=0|r[i>>2]))!=(0|r[l>>2])&&(l=0|N(n))|(0|(A=0|r[i>>2]))==(0|e)&&(s=(s+1|0)%6|0),3==(0|o)&(0|A)==(0|e)){s=(s+5|0)%6|0;break}5==(0|o)&(0|A)==(0|f)&&(s=(s+1|0)%6|0)}}while(0);return r[t>>2]=s,I=a,0|(t=0)}function Ye(A,e,t,n){t|=0,n|=0;var i,o,a,s,u,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0;if(u=I,I=I+32|0,b=u+24|0,s=u+20|0,a=u+8|0,o=u+16|0,i=u,g=(g=!(0|jA(A|=0,e|=0)))?6:5,p=0|ft(0|A,0|e,52),k(),g>>>0<=t>>>0)return I=u,0|(n=2);!(w=!(0|(p&=15)))&&!((v=0|lt(7,0,3*(15^p)|0))&A|0)&!((0|k())&e)?f=t:l=4;A:do{if(4==(0|l)){if((0|((f=!!(0|jA(A,e)))?4:5))<(0|t))return I=u,0|(n=1);if(0|ze(A,e,b))return I=u,0|(n=1);if(l=(0|r[b>>2])+t|0,7==(0|(v=0|r[(f=f?26704+((0|l)%5<<2)|0:26736+((0|l)%6<<2)|0)>>2])))return I=u,0|(n=1);r[s>>2]=0,f=0|G(A,e,v,s,a);do{if(!f){if(d=0|r[(h=a)>>2],l=(c=(h=0|r[h+4>>2])>>>0<e>>>0|(0|h)==(0|e)&d>>>0<A>>>0)?d:A,c=c?h:e,!w&&!(d&(w=0|lt(7,0,3*(15^p)|0))|0)&!(h&(0|k())))f=t;else{if(h=(t+-1+g|0)%(0|g)|0,f=0|jA(A,e),(0|h)<0&&_(27795,27797,248,27822),(0|((g=!!(0|f))?4:5))<(0|h)&&_(27795,27797,248,27822),0|ze(A,e,b)&&_(27795,27797,248,27822),f=(0|r[b>>2])+h|0,7==(0|(h=0|r[(f=g?26704+((0|f)%5<<2)|0:26736+((0|f)%6<<2)|0)>>2]))&&_(27795,27797,248,27822),r[o>>2]=0,0|(f=0|G(A,e,h,o,i)))break;g=0|r[(d=i)>>2],d=0|r[d+4>>2];do{if(d>>>0<c>>>0|(0|d)==(0|c)&g>>>0<l>>>0){if(l=0|jA(g,d)?0|O(g,d,A,e):0|r[26800+(((0|r[o>>2])+(0|r[26768+(h<<2)>>2])|0)%6<<2)>>2],f=0|jA(g,d),(l+-1|0)>>>0>5){f=-1,l=g,c=d;break}if(1==(0|l)&(f=!!(0|f))){f=-1,l=g,c=d;break}do{if(!(0|ze(g,d,b))){if(f){f=(5+(0|r[26352+(l<<2)>>2])-(0|r[b>>2])|0)%5|0;break}f=(6+(0|r[26384+(l<<2)>>2])-(0|r[b>>2])|0)%6|0;break}f=-1}while(0);l=g,c=d}else f=t}while(0);d=0|r[(h=a)>>2],h=0|r[h+4>>2]}if((0|l)==(0|d)&(0|c)==(0|h)){if(A=(g=!!(0|jA(d,h)))?0|O(d,h,A,e):0|r[26800+(((0|r[s>>2])+(0|r[26768+(v<<2)>>2])|0)%6<<2)>>2],f=0|jA(d,h),(A+-1|0)>>>0<=5&&!(1==(0|A)&(m=!!(0|f))))do{if(!(0|ze(d,h,b))){if(m){f=(5+(0|r[26352+(A<<2)>>2])-(0|r[b>>2])|0)%5|0;break}f=(6+(0|r[26384+(A<<2)>>2])-(0|r[b>>2])|0)%6|0;break}f=-1}while(0);else f=-1;f=6==(0|(f=f+1|0))|g&5==(0|f)?0:f}e=c,A=l;break A}}while(0);return I=u,0|(n=f)}}while(0);return m=0|lt(0|f,0,56),b=k()|-2130706433&e|536870912,r[n>>2]=m|A,r[n+4>>2]=b,I=u,0|(n=0)}function Ne(A,e){A|=0;var t,n,i=0,o=0;return n=I,I=I+16|0,t=n,!0&536870912==(2013265920&(e|=0))&&0|YA(A,i=-2130706433&e|134217728)?(o=0|ft(0|A,0|e,56),k(),i=(o=!(0|Ye(A,i,7&o,t)))&((0|r[(i=t)>>2])==(0|A)?(0|r[i+4>>2])==(0|e):0)&1,I=n,0|i):(I=n,0|(i=0))}function He(A,e,t){A|=0,t|=0;var n=0;(0|(e|=0))>0?(n=0|At(e,4),r[A>>2]=n,n||_(27835,27858,40,27872)):r[A>>2]=0,r[A+4>>2]=e,r[A+8>>2]=0,r[A+12>>2]=t}function Ve(A){var e,t,n,o=0,a=0,s=0,f=0;e=(A|=0)+4|0,t=A+12|0,n=A+8|0;A:for(;;){for(a=0|r[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(s=0|r[A>>2],f=0|r[s+(o<<2)>>2])break;o=o+1|0}o=s+(~~(+u(+ +l(10,+ +(15-(0|r[t>>2])|0))*(+i[f>>3]+ +i[f+8>>3]))%+(0|a))>>>0<<2)|0,a=0|r[o>>2];e:do{if(0|a){if(s=f+32|0,(0|a)==(0|f))r[o>>2]=r[s>>2];else{if(!(o=0|r[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|f);)if(!(o=0|r[(a=o+32|0)>>2]))break e;r[a>>2]=r[s>>2]}$e(f),r[n>>2]=(0|r[n>>2])-1}}while(0)}$e(0|r[A>>2])}function je(A){var e,t=0,n=0;for(e=0|r[(A|=0)+4>>2],n=0;;){if((0|n)>=(0|e)){t=0,n=4;break}if(t=0|r[(0|r[A>>2])+(n<<2)>>2]){n=4;break}n=n+1|0}return 4==(0|n)?0|t:0}function Xe(A,e){e|=0;var t=0,n=0,o=0,a=0;if(t=~~(+u(+ +l(10,+ +(15-(0|r[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|r[A+4>>2]))>>>0,t=(0|r[A>>2])+(t<<2)|0,!(n=0|r[t>>2]))return 0|(a=1);a=e+32|0;do{if((0|n)!=(0|e)){if(!(t=0|r[n+32>>2]))return 0|(a=1);for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|r[o+32>>2])){t=1,o=10;break}n=o,o=t}if(8==(0|o)){r[n+32>>2]=r[a>>2];break}if(10==(0|o))return 0|t}else r[t>>2]=r[a>>2]}while(0);return $e(e),r[(a=A+8|0)>>2]=(0|r[a>>2])-1,0|(a=0)}function We(A,e,t){A|=0,e|=0,t|=0;var n,o=0,a=0,s=0;(n=0|qe(40))||_(27888,27858,98,27901),r[n>>2]=r[e>>2],r[n+4>>2]=r[e+4>>2],r[n+8>>2]=r[e+8>>2],r[n+12>>2]=r[e+12>>2],r[(a=n+16|0)>>2]=r[t>>2],r[a+4>>2]=r[t+4>>2],r[a+8>>2]=r[t+8>>2],r[a+12>>2]=r[t+12>>2],r[n+32>>2]=0,a=~~(+u(+ +l(10,+ +(15-(0|r[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|r[A+4>>2]))>>>0,a=(0|r[A>>2])+(a<<2)|0,o=0|r[a>>2];do{if(o){for(;!(0|le(o,e)&&0|le(o+16|0,t));)if(a=0|r[o+32>>2],!(0|r[(o=0|a?a:o)+32>>2])){s=10;break}if(10==(0|s)){r[o+32>>2]=n;break}return $e(n),0|(s=o)}r[a>>2]=n}while(0);return r[(s=A+8|0)>>2]=1+(0|r[s>>2]),0|(s=n)}function Ze(A,e,t){e|=0,t|=0;var n=0,o=0;if(o=~~(+u(+ +l(10,+ +(15-(0|r[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|r[A+4>>2]))>>>0,!(o=0|r[(0|r[A>>2])+(o<<2)>>2]))return 0|(t=0);if(!t){for(A=o;;){if(0|le(A,e)){n=10;break}if(!(A=0|r[A+32>>2])){A=0,n=10;break}}if(10==(0|n))return 0|A}for(A=o;;){if(0|le(A,e)&&0|le(A+16|0,t)){n=10;break}if(!(A=0|r[A+32>>2])){A=0,n=10;break}}return 10==(0|n)?0|A:0}function Je(A,e){e|=0;var t=0;if(t=~~(+u(+ +l(10,+ +(15-(0|r[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|r[A+4>>2]))>>>0,!(A=0|r[(0|r[A>>2])+(t<<2)>>2]))return 0|(t=0);for(;;){if(0|le(A,e)){e=5;break}if(!(A=0|r[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function Ke(A){return 0|+vt(+(A=+A))}function qe(A){A|=0;var e,t=0,n=0,i=0,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0;e=I,I=I+16|0,g=e;do{if(A>>>0<245){if(A=(l=A>>>0<11?16:A+11&-8)>>>3,3&(n=(h=0|r[6981])>>>A))return i=0|r[(n=(A=27964+((t=(1&n^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|r[(o=i+8|0)>>2]))==(0|A)?r[6981]=h&~(1<<t):(r[a+12>>2]=A,r[n>>2]=a),B=t<<3,r[i+4>>2]=3|B,r[(B=i+B+4|0)>>2]=1|r[B>>2],I=e,0|(B=o);if(l>>>0>(c=0|r[6983])>>>0){if(0|n)return t=((t=n<<A&((t=2<<A)|0-t))&0-t)-1|0,a=0|r[(A=(t=27964+((i=((n=(t>>>=u=t>>>12&16)>>>5&8)|u|(a=(t>>>=n)>>>2&4)|(A=(t>>>=a)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(n=0|r[(u=a+8|0)>>2]))==(0|t)?(A=h&~(1<<i),r[6981]=A):(r[n+12>>2]=t,r[A>>2]=n,A=h),s=(B=i<<3)-l|0,r[a+4>>2]=3|l,r[(o=a+l|0)+4>>2]=1|s,r[a+B>>2]=s,0|c&&(i=0|r[6986],n=27964+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|r[(A=n+8|0)>>2]:(r[6981]=A|t,t=n,A=n+8|0),r[A>>2]=i,r[t+12>>2]=i,r[i+8>>2]=t,r[i+12>>2]=n),r[6983]=s,r[6986]=o,I=e,0|(B=u);if(a=0|r[6982]){for(n=(a&0-a)-1|0,n=f=0|r[28228+(((i=(n>>>=o=n>>>12&16)>>>5&8)|o|(s=(n>>>=i)>>>2&4)|(u=(n>>>=s)>>>1&2)|(f=(n>>>=u)>>>1&1))+(n>>>f)<<2)>>2],u=f,f=(-8&r[f+4>>2])-l|0;(A=0|r[n+16>>2])||(A=0|r[n+20>>2]);)n=A,u=(o=(s=(-8&r[A+4>>2])-l|0)>>>0<f>>>0)?A:u,f=o?s:f;if((s=u+l|0)>>>0>u>>>0){o=0|r[u+24>>2],t=0|r[u+12>>2];do{if((0|t)==(0|u)){if(!(t=0|r[(A=u+20|0)>>2])&&!(t=0|r[(A=u+16|0)>>2])){n=0;break}for(;;)if(n=0|r[(i=t+20|0)>>2])t=n,A=i;else{if(!(n=0|r[(i=t+16|0)>>2]))break;t=n,A=i}r[A>>2]=0,n=t}else n=0|r[u+8>>2],r[n+12>>2]=t,r[t+8>>2]=n,n=t}while(0);do{if(0|o){if(t=0|r[u+28>>2],(0|u)==(0|r[(A=28228+(t<<2)|0)>>2])){if(r[A>>2]=n,!n){r[6982]=a&~(1<<t);break}}else if(r[((0|r[(B=o+16|0)>>2])==(0|u)?B:o+20)>>2]=n,!n)break;r[n+24>>2]=o,0|(t=0|r[u+16>>2])&&(r[n+16>>2]=t,r[t+24>>2]=n),0|(t=0|r[u+20>>2])&&(r[n+20>>2]=t,r[t+24>>2]=n)}}while(0);return f>>>0<16?(B=f+l|0,r[u+4>>2]=3|B,r[(B=u+B+4|0)>>2]=1|r[B>>2]):(r[u+4>>2]=3|l,r[s+4>>2]=1|f,r[s+f>>2]=f,0|c&&(i=0|r[6986],n=27964+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|r[(A=n+8|0)>>2]:(r[6981]=t|h,t=n,A=n+8|0),r[A>>2]=i,r[t+12>>2]=i,r[i+8>>2]=t,r[i+12>>2]=n),r[6983]=f,r[6986]=s),I=e,0|(B=u+8|0)}h=l}else h=l}else h=l}else if(A>>>0<=4294967231)if(l=-8&(A=A+11|0),i=0|r[6982]){o=0-l|0,f=(A>>>=8)?l>>>0>16777215?31:l>>>((f=14-((u=((w=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(f=((w<<=u)+245760|0)>>>16&2))+(w<<f>>>15)|0)+7|0)&1|f<<1:0,n=0|r[28228+(f<<2)>>2];A:do{if(n)for(A=0,u=l<<(31==(0|f)?0:25-(f>>>1)|0),a=0;;){if((s=(-8&r[n+4>>2])-l|0)>>>0<o>>>0){if(!s){A=n,o=0,w=65;break A}A=n,o=s}if(a=!(0|(w=0|r[n+20>>2]))|(0|w)==(0|(n=0|r[n+16+(u>>>31<<2)>>2]))?a:w,!n){n=a,w=61;break}u<<=1}else n=0,A=0,w=61}while(0);if(61==(0|w)){if(!(0|n)&!(0|A)){if(!(A=((A=2<<f)|0-A)&i)){h=l;break}h=(A&0-A)-1|0,A=0,n=0|r[28228+(((a=(h>>>=s=h>>>12&16)>>>5&8)|s|(u=(h>>>=a)>>>2&4)|(f=(h>>>=u)>>>1&2)|(n=(h>>>=f)>>>1&1))+(h>>>n)<<2)>>2]}n?w=65:(u=A,s=o)}if(65==(0|w))for(a=n;;){if(o=(n=(h=(-8&r[a+4>>2])-l|0)>>>0<o>>>0)?h:o,A=n?a:A,(n=0|r[a+16>>2])||(n=0|r[a+20>>2]),!n){u=A,s=o;break}a=n}if(0|u&&s>>>0<((0|r[6983])-l|0)>>>0&&(c=u+l|0)>>>0>u>>>0){a=0|r[u+24>>2],t=0|r[u+12>>2];do{if((0|t)==(0|u)){if(!(t=0|r[(A=u+20|0)>>2])&&!(t=0|r[(A=u+16|0)>>2])){t=0;break}for(;;)if(n=0|r[(o=t+20|0)>>2])t=n,A=o;else{if(!(n=0|r[(o=t+16|0)>>2]))break;t=n,A=o}r[A>>2]=0}else B=0|r[u+8>>2],r[B+12>>2]=t,r[t+8>>2]=B}while(0);do{if(a){if(A=0|r[u+28>>2],(0|u)==(0|r[(n=28228+(A<<2)|0)>>2])){if(r[n>>2]=t,!t){i&=~(1<<A),r[6982]=i;break}}else if(r[((0|r[(B=a+16|0)>>2])==(0|u)?B:a+20)>>2]=t,!t)break;r[t+24>>2]=a,0|(A=0|r[u+16>>2])&&(r[t+16>>2]=A,r[A+24>>2]=t),(A=0|r[u+20>>2])&&(r[t+20>>2]=A,r[A+24>>2]=t)}}while(0);A:do{if(s>>>0<16)B=s+l|0,r[u+4>>2]=3|B,r[(B=u+B+4|0)>>2]=1|r[B>>2];else{if(r[u+4>>2]=3|l,r[c+4>>2]=1|s,r[c+s>>2]=s,t=s>>>3,s>>>0<256){n=27964+(t<<1<<2)|0,(A=0|r[6981])&(t=1<<t)?t=0|r[(A=n+8|0)>>2]:(r[6981]=A|t,t=n,A=n+8|0),r[A>>2]=c,r[t+12>>2]=c,r[c+8>>2]=t,r[c+12>>2]=n;break}if(t=28228+((n=(t=s>>>8)?s>>>0>16777215?31:s>>>((n=14-((b=((B=t<<(y=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|y|(n=((B<<=b)+245760|0)>>>16&2))+(B<<n>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,r[c+28>>2]=n,r[(A=c+16|0)+4>>2]=0,r[A>>2]=0,!(i&(A=1<<n))){r[6982]=i|A,r[t>>2]=c,r[c+24>>2]=t,r[c+12>>2]=c,r[c+8>>2]=c;break}t=0|r[t>>2];e:do{if((-8&r[t+4>>2])!=(0|s)){for(i=s<<(31==(0|n)?0:25-(n>>>1)|0);A=0|r[(n=t+16+(i>>>31<<2)|0)>>2];){if((-8&r[A+4>>2])==(0|s)){t=A;break e}i<<=1,t=A}r[n>>2]=c,r[c+24>>2]=t,r[c+12>>2]=c,r[c+8>>2]=c;break A}}while(0);B=0|r[(y=t+8|0)>>2],r[B+12>>2]=c,r[y>>2]=c,r[c+8>>2]=B,r[c+12>>2]=t,r[c+24>>2]=0}}while(0);return I=e,0|(B=u+8|0)}h=l}else h=l;else h=-1}while(0);if((n=0|r[6983])>>>0>=h>>>0)return t=n-h|0,A=0|r[6986],t>>>0>15?(B=A+h|0,r[6986]=B,r[6983]=t,r[B+4>>2]=1|t,r[A+n>>2]=t,r[A+4>>2]=3|h):(r[6983]=0,r[6986]=0,r[A+4>>2]=3|n,r[(B=A+n+4|0)>>2]=1|r[B>>2]),I=e,0|(B=A+8|0);if((s=0|r[6984])>>>0>h>>>0)return b=s-h|0,r[6984]=b,y=(B=0|r[6987])+h|0,r[6987]=y,r[y+4>>2]=1|b,r[B+4>>2]=3|h,I=e,0|(B=B+8|0);if(0|r[7099]?A=0|r[7101]:(r[7101]=4096,r[7100]=4096,r[7102]=-1,r[7103]=-1,r[7104]=0,r[7092]=0,r[7099]=-16&g^1431655768,A=4096),u=h+48|0,(l=(a=A+(f=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return I=e,0|(B=0);if(0|(A=0|r[7091])&&(g=(c=0|r[7089])+l|0)>>>0<=c>>>0|g>>>0>A>>>0)return I=e,0|(B=0);A:do{if(4&r[7092])t=0,w=143;else{n=0|r[6987];e:do{if(n){for(i=28372;!((g=0|r[i>>2])>>>0<=n>>>0&&(g+(0|r[i+4>>2])|0)>>>0>n>>>0);){if(!(A=0|r[i+8>>2])){w=128;break e}i=A}if((t=a-s&o)>>>0<2147483647)if((0|(A=0|mt(0|t)))==((0|r[i>>2])+(0|r[i+4>>2])|0)){if(-1!=(0|A)){s=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|(n=0|mt(0)))&&(t=n,p=(t=((p=(d=0|r[7100])+-1|0)&t|0?(p+t&0-d)-t|0:0)+l|0)+(d=0|r[7089])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(g=0|r[7091])&&p>>>0<=d>>>0|p>>>0>g>>>0){t=0;break}if((0|(A=0|mt(0|t)))==(0|n)){s=t,a=n,w=145;break A}i=A,w=136}else t=0}while(0);do{if(136==(0|w)){if(n=0-t|0,!(u>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}s=t,a=i,w=145;break A}if((A=f-t+(A=0|r[7101])&0-A)>>>0>=2147483647){s=t,a=i,w=145;break A}if(-1==(0|mt(0|A))){mt(0|n),t=0;break}s=A+t|0,a=i,w=145;break A}}while(0);r[7092]=4|r[7092],w=143}}while(0);if(143==(0|w)&&l>>>0<2147483647&&!(-1==(0|(b=0|mt(0|l)))|1^(m=(v=(p=0|mt(0))-b|0)>>>0>(h+40|0)>>>0)|b>>>0<p>>>0&-1!=(0|b)&-1!=(0|p)^1)&&(s=m?v:t,a=b,w=145),145==(0|w)){t=(0|r[7089])+s|0,r[7089]=t,t>>>0>(0|r[7090])>>>0&&(r[7090]=t),f=0|r[6987];A:do{if(f){for(t=28372;;){if((0|a)==((A=0|r[t>>2])+(n=0|r[t+4>>2])|0)){w=154;break}if(!(i=0|r[t+8>>2]))break;t=i}if(!(154!=(0|w)||(y=t+4|0,8&r[t+12>>2]))&&a>>>0>f>>>0&A>>>0<=f>>>0){r[y>>2]=n+s,y=f+(b=7&(b=f+8|0)?0-b&7:0)|0,b=(B=(0|r[6984])+s|0)-b|0,r[6987]=y,r[6984]=b,r[y+4>>2]=1|b,r[f+B+4>>2]=40,r[6988]=r[7103];break}for(a>>>0<(0|r[6985])>>>0&&(r[6985]=a),n=a+s|0,t=28372;;){if((0|r[t>>2])==(0|n)){w=162;break}if(!(A=0|r[t+8>>2]))break;t=A}if(162==(0|w)&&!(8&r[t+12>>2])){r[t>>2]=a,r[(c=t+4|0)>>2]=(0|r[c>>2])+s,l=(c=a+(7&(c=a+8|0)?0-c&7:0)|0)+h|0,u=(t=n+(7&(t=n+8|0)?0-t&7:0)|0)-c-h|0,r[c+4>>2]=3|h;e:do{if((0|f)==(0|t))B=(0|r[6984])+u|0,r[6984]=B,r[6987]=l,r[l+4>>2]=1|B;else{if((0|r[6986])==(0|t)){B=(0|r[6983])+u|0,r[6983]=B,r[6986]=l,r[l+4>>2]=1|B,r[l+B>>2]=B;break}if(1==(3&(A=0|r[t+4>>2]))){s=-8&A,i=A>>>3;t:do{if(A>>>0<256){if(A=0|r[t+8>>2],(0|(n=0|r[t+12>>2]))==(0|A)){r[6981]=r[6981]&~(1<<i);break}r[A+12>>2]=n,r[n+8>>2]=A;break}a=0|r[t+24>>2],A=0|r[t+12>>2];do{if((0|A)==(0|t)){if(A=0|r[(i=(n=t+16|0)+4|0)>>2])n=i;else if(!(A=0|r[n>>2])){A=0;break}for(;;)if(i=0|r[(o=A+20|0)>>2])A=i,n=o;else{if(!(i=0|r[(o=A+16|0)>>2]))break;A=i,n=o}r[n>>2]=0}else B=0|r[t+8>>2],r[B+12>>2]=A,r[A+8>>2]=B}while(0);if(!a)break;i=28228+((n=0|r[t+28>>2])<<2)|0;do{if((0|r[i>>2])==(0|t)){if(r[i>>2]=A,0|A)break;r[6982]=r[6982]&~(1<<n);break t}if(r[((0|r[(B=a+16|0)>>2])==(0|t)?B:a+20)>>2]=A,!A)break t}while(0);if(r[A+24>>2]=a,0|(i=0|r[(n=t+16|0)>>2])&&(r[A+16>>2]=i,r[i+24>>2]=A),!(n=0|r[n+4>>2]))break;r[A+20>>2]=n,r[n+24>>2]=A}while(0);t=t+s|0,o=s+u|0}else o=u;if(r[(t=t+4|0)>>2]=-2&r[t>>2],r[l+4>>2]=1|o,r[l+o>>2]=o,t=o>>>3,o>>>0<256){n=27964+(t<<1<<2)|0,(A=0|r[6981])&(t=1<<t)?t=0|r[(A=n+8|0)>>2]:(r[6981]=A|t,t=n,A=n+8|0),r[A>>2]=l,r[t+12>>2]=l,r[l+8>>2]=t,r[l+12>>2]=n;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((b=((B=t<<(y=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|y|(i=((B<<=b)+245760|0)>>>16&2))+(B<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(t=28228+(i<<2)|0,r[l+28>>2]=i,r[(A=l+16|0)+4>>2]=0,r[A>>2]=0,!((A=0|r[6982])&(n=1<<i))){r[6982]=A|n,r[t>>2]=l,r[l+24>>2]=t,r[l+12>>2]=l,r[l+8>>2]=l;break}t=0|r[t>>2];t:do{if((-8&r[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);A=0|r[(n=t+16+(i>>>31<<2)|0)>>2];){if((-8&r[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}r[n>>2]=l,r[l+24>>2]=t,r[l+12>>2]=l,r[l+8>>2]=l;break e}}while(0);B=0|r[(y=t+8|0)>>2],r[B+12>>2]=l,r[y>>2]=l,r[l+8>>2]=B,r[l+12>>2]=t,r[l+24>>2]=0}}while(0);return I=e,0|(B=c+8|0)}for(t=28372;!((A=0|r[t>>2])>>>0<=f>>>0&&(B=A+(0|r[t+4>>2])|0)>>>0>f>>>0);)t=0|r[t+8>>2];t=(A=(A=(o=B+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=f+16|0)>>>0?f:A)+8|0,y=a+(b=7&(b=a+8|0)?0-b&7:0)|0,b=(n=s+-40|0)-b|0,r[6987]=y,r[6984]=b,r[y+4>>2]=1|b,r[a+n+4>>2]=40,r[6988]=r[7103],r[(n=A+4|0)>>2]=27,r[t>>2]=r[7093],r[t+4>>2]=r[7094],r[t+8>>2]=r[7095],r[t+12>>2]=r[7096],r[7093]=a,r[7094]=s,r[7096]=0,r[7095]=t,t=A+24|0;do{y=t,r[(t=t+4|0)>>2]=7}while((y+8|0)>>>0<B>>>0);if((0|A)!=(0|f)){if(a=A-f|0,r[n>>2]=-2&r[n>>2],r[f+4>>2]=1|a,r[A>>2]=a,t=a>>>3,a>>>0<256){n=27964+(t<<1<<2)|0,(A=0|r[6981])&(t=1<<t)?t=0|r[(A=n+8|0)>>2]:(r[6981]=A|t,t=n,A=n+8|0),r[A>>2]=f,r[t+12>>2]=f,r[f+8>>2]=t,r[f+12>>2]=n;break}if(n=28228+((i=(t=a>>>8)?a>>>0>16777215?31:a>>>((i=14-((b=((B=t<<(y=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|y|(i=((B<<=b)+245760|0)>>>16&2))+(B<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,r[f+28>>2]=i,r[f+20>>2]=0,r[o>>2]=0,!((t=0|r[6982])&(A=1<<i))){r[6982]=t|A,r[n>>2]=f,r[f+24>>2]=n,r[f+12>>2]=f,r[f+8>>2]=f;break}t=0|r[n>>2];e:do{if((-8&r[t+4>>2])!=(0|a)){for(i=a<<(31==(0|i)?0:25-(i>>>1)|0);A=0|r[(n=t+16+(i>>>31<<2)|0)>>2];){if((-8&r[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}r[n>>2]=f,r[f+24>>2]=t,r[f+12>>2]=f,r[f+8>>2]=f;break A}}while(0);B=0|r[(y=t+8|0)>>2],r[B+12>>2]=f,r[y>>2]=f,r[f+8>>2]=B,r[f+12>>2]=t,r[f+24>>2]=0}}else!(0|(B=0|r[6985]))|a>>>0<B>>>0&&(r[6985]=a),r[7093]=a,r[7094]=s,r[7096]=0,r[6990]=r[7099],r[6989]=-1,r[6994]=27964,r[6993]=27964,r[6996]=27972,r[6995]=27972,r[6998]=27980,r[6997]=27980,r[7e3]=27988,r[6999]=27988,r[7002]=27996,r[7001]=27996,r[7004]=28004,r[7003]=28004,r[7006]=28012,r[7005]=28012,r[7008]=28020,r[7007]=28020,r[7010]=28028,r[7009]=28028,r[7012]=28036,r[7011]=28036,r[7014]=28044,r[7013]=28044,r[7016]=28052,r[7015]=28052,r[7018]=28060,r[7017]=28060,r[7020]=28068,r[7019]=28068,r[7022]=28076,r[7021]=28076,r[7024]=28084,r[7023]=28084,r[7026]=28092,r[7025]=28092,r[7028]=28100,r[7027]=28100,r[7030]=28108,r[7029]=28108,r[7032]=28116,r[7031]=28116,r[7034]=28124,r[7033]=28124,r[7036]=28132,r[7035]=28132,r[7038]=28140,r[7037]=28140,r[7040]=28148,r[7039]=28148,r[7042]=28156,r[7041]=28156,r[7044]=28164,r[7043]=28164,r[7046]=28172,r[7045]=28172,r[7048]=28180,r[7047]=28180,r[7050]=28188,r[7049]=28188,r[7052]=28196,r[7051]=28196,r[7054]=28204,r[7053]=28204,r[7056]=28212,r[7055]=28212,y=a+(b=7&(b=a+8|0)?0-b&7:0)|0,b=(B=s+-40|0)-b|0,r[6987]=y,r[6984]=b,r[y+4>>2]=1|b,r[a+B+4>>2]=40,r[6988]=r[7103]}while(0);if((t=0|r[6984])>>>0>h>>>0)return b=t-h|0,r[6984]=b,y=(B=0|r[6987])+h|0,r[6987]=y,r[y+4>>2]=1|b,r[B+4>>2]=3|h,I=e,0|(B=B+8|0)}return r[(B=27920)>>2]=12,I=e,0|(B=0)}function $e(A){var e=0,t=0,n=0,i=0,o=0,a=0,s=0,u=0;if(A|=0){t=A+-8|0,i=0|r[6985],u=t+(e=-8&(A=0|r[A+-4>>2]))|0;do{if(1&A)s=t,a=t;else{if(n=0|r[t>>2],!(3&A))return;if(o=n+e|0,(a=t+(0-n)|0)>>>0<i>>>0)return;if((0|r[6986])==(0|a)){if(3&~(e=0|r[(A=u+4|0)>>2])){s=a,e=o;break}return r[6983]=o,r[A>>2]=-2&e,r[a+4>>2]=1|o,void(r[a+o>>2]=o)}if(t=n>>>3,n>>>0<256){if(A=0|r[a+8>>2],(0|(e=0|r[a+12>>2]))==(0|A)){r[6981]=r[6981]&~(1<<t),s=a,e=o;break}r[A+12>>2]=e,r[e+8>>2]=A,s=a,e=o;break}i=0|r[a+24>>2],A=0|r[a+12>>2];do{if((0|A)==(0|a)){if(A=0|r[(t=(e=a+16|0)+4|0)>>2])e=t;else if(!(A=0|r[e>>2])){A=0;break}for(;;)if(t=0|r[(n=A+20|0)>>2])A=t,e=n;else{if(!(t=0|r[(n=A+16|0)>>2]))break;A=t,e=n}r[e>>2]=0}else s=0|r[a+8>>2],r[s+12>>2]=A,r[A+8>>2]=s}while(0);if(i){if(e=0|r[a+28>>2],(0|r[(t=28228+(e<<2)|0)>>2])==(0|a)){if(r[t>>2]=A,!A){r[6982]=r[6982]&~(1<<e),s=a,e=o;break}}else if(r[((0|r[(s=i+16|0)>>2])==(0|a)?s:i+20)>>2]=A,!A){s=a,e=o;break}r[A+24>>2]=i,0|(t=0|r[(e=a+16|0)>>2])&&(r[A+16>>2]=t,r[t+24>>2]=A),(e=0|r[e+4>>2])?(r[A+20>>2]=e,r[e+24>>2]=A,s=a,e=o):(s=a,e=o)}else s=a,e=o}}while(0);if(!(a>>>0>=u>>>0)&&1&(n=0|r[(A=u+4|0)>>2])){if(2&n)r[A>>2]=-2&n,r[s+4>>2]=1|e,r[a+e>>2]=e,i=e;else{if((0|r[6987])==(0|u)){if(u=(0|r[6984])+e|0,r[6984]=u,r[6987]=s,r[s+4>>2]=1|u,(0|s)!=(0|r[6986]))return;return r[6986]=0,void(r[6983]=0)}if((0|r[6986])==(0|u))return u=(0|r[6983])+e|0,r[6983]=u,r[6986]=a,r[s+4>>2]=1|u,void(r[a+u>>2]=u);i=(-8&n)+e|0,t=n>>>3;do{if(n>>>0<256){if(e=0|r[u+8>>2],(0|(A=0|r[u+12>>2]))==(0|e)){r[6981]=r[6981]&~(1<<t);break}r[e+12>>2]=A,r[A+8>>2]=e;break}o=0|r[u+24>>2],A=0|r[u+12>>2];do{if((0|A)==(0|u)){if(A=0|r[(t=(e=u+16|0)+4|0)>>2])e=t;else if(!(A=0|r[e>>2])){t=0;break}for(;;)if(t=0|r[(n=A+20|0)>>2])A=t,e=n;else{if(!(t=0|r[(n=A+16|0)>>2]))break;A=t,e=n}r[e>>2]=0,t=A}else t=0|r[u+8>>2],r[t+12>>2]=A,r[A+8>>2]=t,t=A}while(0);if(0|o){if(A=0|r[u+28>>2],(0|r[(e=28228+(A<<2)|0)>>2])==(0|u)){if(r[e>>2]=t,!t){r[6982]=r[6982]&~(1<<A);break}}else if(r[((0|r[(n=o+16|0)>>2])==(0|u)?n:o+20)>>2]=t,!t)break;r[t+24>>2]=o,0|(e=0|r[(A=u+16|0)>>2])&&(r[t+16>>2]=e,r[e+24>>2]=t),0|(A=0|r[A+4>>2])&&(r[t+20>>2]=A,r[A+24>>2]=t)}}while(0);if(r[s+4>>2]=1|i,r[a+i>>2]=i,(0|s)==(0|r[6986]))return void(r[6983]=i)}if(A=i>>>3,i>>>0<256)return t=27964+(A<<1<<2)|0,(e=0|r[6981])&(A=1<<A)?A=0|r[(e=t+8|0)>>2]:(r[6981]=e|A,A=t,e=t+8|0),r[e>>2]=s,r[A+12>>2]=s,r[s+8>>2]=A,void(r[s+12>>2]=t);A=28228+((n=(A=i>>>8)?i>>>0>16777215?31:i>>>((n=14-((o=((u=A<<(a=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(n=((u<<=o)+245760|0)>>>16&2))+(u<<n>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,r[s+28>>2]=n,r[s+20>>2]=0,r[s+16>>2]=0,e=0|r[6982],t=1<<n;A:do{if(e&t){A=0|r[A>>2];e:do{if((-8&r[A+4>>2])!=(0|i)){for(n=i<<(31==(0|n)?0:25-(n>>>1)|0);e=0|r[(t=A+16+(n>>>31<<2)|0)>>2];){if((-8&r[e+4>>2])==(0|i)){A=e;break e}n<<=1,A=e}r[t>>2]=s,r[s+24>>2]=A,r[s+12>>2]=s,r[s+8>>2]=s;break A}}while(0);u=0|r[(a=A+8|0)>>2],r[u+12>>2]=s,r[a>>2]=s,r[s+8>>2]=u,r[s+12>>2]=A,r[s+24>>2]=0}else r[6982]=e|t,r[A>>2]=s,r[s+24>>2]=A,r[s+12>>2]=s,r[s+8>>2]=s}while(0);if(u=(0|r[6989])-1|0,r[6989]=u,!(0|u)){for(A=28380;A=0|r[A>>2];)A=A+8|0;r[6989]=-1}}}}function At(A,e){e|=0;var t=0;return(A|=0)?(t=0|b(e,A),(e|A)>>>0>65535&&(t=((t>>>0)/(A>>>0)|0)==(0|e)?t:-1)):t=0,(A=0|qe(t))&&3&r[A+-4>>2]?(wt(0|A,0,0|t),0|A):0|A}function et(A,e,t,n){return 0|(M((e|=0)+(n|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}function tt(A,e,t,n){return 0|(M(0|(n=(e|=0)-(n|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function nt(A){return 0|((A|=0)?31-(0|E(A^A-1)):32)}function rt(A,e,t,n,i){i|=0;var o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0;if(l=A|=0,a=t|=0,s=h=n|=0,!(f=u=e|=0))return o=!!(0|i),s?o?(r[i>>2]=0|A,r[i+4>>2]=0&e,i=0,0|(M(0|(h=0)),i)):(i=0,0|(M(0|(h=0)),i)):(o&&(r[i>>2]=(l>>>0)%(a>>>0),r[i+4>>2]=0),i=(l>>>0)/(a>>>0)>>>0,0|(M(0|(h=0)),i));o=!(0|s);do{if(a){if(!o){if((o=(0|E(0|s))-(0|E(0|f))|0)>>>0<=31){a=c=o+1|0,A=l>>>(c>>>0)&(e=o-31>>31)|f<<(s=31-o|0),e&=f>>>(c>>>0),o=0,s=l<<s;break}return i?(r[i>>2]=0|A,r[i+4>>2]=u|0&e,i=0,0|(M(0|(h=0)),i)):(i=0,0|(M(0|(h=0)),i))}if((o=a-1|0)&a|0){a=s=33+(0|E(0|a))-(0|E(0|f))|0,A=(c=32-s|0)-1>>31&f>>>((g=s-32|0)>>>0)|(f<<c|l>>>(s>>>0))&(e=g>>31),e&=f>>>(s>>>0),o=l<<(d=64-s|0)&(u=c>>31),s=(f<<d|l>>>(g>>>0))&u|l<<c&s-33>>31;break}return 0|i&&(r[i>>2]=o&l,r[i+4>>2]=0),1==(0|a)?(d=0|A,0|(M(0|(g=u|0&e)),d)):(g=f>>>((d=0|nt(0|a))>>>0)|0,d=f<<32-d|l>>>(d>>>0),0|(M(0|g),d))}if(o)return 0|i&&(r[i>>2]=(f>>>0)%(a>>>0),r[i+4>>2]=0),d=(f>>>0)/(a>>>0)>>>0,0|(M(0|(g=0)),d);if(!l)return 0|i&&(r[i>>2]=0,r[i+4>>2]=(f>>>0)%(s>>>0)),d=(f>>>0)/(s>>>0)>>>0,0|(M(0|(g=0)),d);if(!((o=s-1|0)&s))return 0|i&&(r[i>>2]=0|A,r[i+4>>2]=o&f|0&e),g=0,d=f>>>((0|nt(0|s))>>>0),0|(M(0|g),d);if((o=(0|E(0|s))-(0|E(0|f))|0)>>>0<=30){a=e=o+1|0,A=f<<(s=31-o|0)|l>>>(e>>>0),e=f>>>(e>>>0),o=0,s=l<<s;break}return i?(r[i>>2]=0|A,r[i+4>>2]=u|0&e,d=0,0|(M(0|(g=0)),d)):(d=0,0|(M(0|(g=0)),d))}while(0);if(a){f=0|et(0|(c=0|t),0|(l=h|0&n),-1,-1),t=0|k(),u=s,s=0;do{n=u,u=o>>>31|u<<1,o=s|o<<1,tt(0|f,0|t,0|(n=A<<1|n>>>31),0|(h=A>>>31|e<<1)),s=1&(g=(d=0|k())>>31|((0|d)<0?-1:0)<<1),A=0|tt(0|n,0|h,g&c|0,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&l),e=0|k(),a=a-1|0}while(0|a);f=u,u=0}else f=s,u=0,s=0;return a=0,0|i&&(r[i>>2]=A,r[i+4>>2]=e),d=o<<1&-2|s,0|(M(0|(g=(0|o)>>>31|(f|a)<<1|u)),d)}function it(A,e,t,n){t|=0;var r,i,o,a,s;return i=(n|=0)>>31|((0|n)<0?-1:0)<<1,r=((0|n)<0?-1:0)>>31|((0|n)<0?-1:0)<<1,o=0|tt((s=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0)|0,(a=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e|0,0|s,0|a),A=i^s,e=r^a,0|tt((0|rt(o,0|k(),0|tt(i^t|0,r^n|0,0|i,0|r),0|k(),0))^A,(0|k())^e,0|A,0|e)}function ot(A,e,t,n){e|=0,n|=0;var r,i;return t=0|function(A,e){var t,n,r,i=0;return A=((t=0|b(i=65535&(e|=0),r=65535&(A|=0)))>>>16)+(0|b(i,n=A>>>16))|0,e=0|b(i=e>>>16,r),0|(M((A>>>16)+(0|b(i,n))+(((65535&A)+e|0)>>>16)|0),A+e<<16|65535&t)}(r=A|=0,i=t|=0),A=0|k(),0|(M((0|b(e,i))+(0|b(n,r))+A|0&A),t)}function at(A,e,t,n){t|=0;var i,o,a,s,u,f;return i=I,I=I+16|0,s=0|i,f=(n|=0)>>31|((0|n)<0?-1:0)<<1,u=((0|n)<0?-1:0)>>31|((0|n)<0?-1:0)<<1,rt(A=0|tt((a=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0)|0,(o=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e|0,0|a,0|o),e=0|k(),0|tt(f^t|0,u^n|0,0|f,0|u),0|k(),s),n=0|tt(r[s>>2]^a|0,r[s+4>>2]^o|0,0|a,0|o),t=0|k(),I=i,0|(M(0|t),n)}function st(A,e,t,n){var i,o;return o=I,I=I+16|0,rt(A|=0,e|=0,t|=0,n|=0,i=0|o),I=o,0|(M(0|r[i+4>>2]),r[i>>2])}function ut(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(M(e>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(M(0|((0|e)<0?-1:0)),e>>t-32)}function ft(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(M(e>>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(M(0),e>>>t-32|0)}function lt(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(M(e<<t|(A&(1<<t)-1<<32-t)>>>32-t),A<<t):(M(A<<t-32),0)}function ct(A,e,t){return A|=0,32==(0|(e=0|E(e|=0)))&&(e=e+(0|E(A))|0),M(0),0|e}function ht(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+B(+A,+e)}function gt(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+y(+A,+e)}function dt(A){return(A=+A)>=0?+s(A+.5):+m(A-.5)}function pt(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;n[A|0]=0|n[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);)r[A>>2]=r[e>>2],r[A+4>>2]=r[e+4>>2],r[A+8>>2]=r[e+8>>2],r[A+12>>2]=r[e+12>>2],r[A+16>>2]=r[e+16>>2],r[A+20>>2]=r[e+20>>2],r[A+24>>2]=r[e+24>>2],r[A+28>>2]=r[e+28>>2],r[A+32>>2]=r[e+32>>2],r[A+36>>2]=r[e+36>>2],r[A+40>>2]=r[e+40>>2],r[A+44>>2]=r[e+44>>2],r[A+48>>2]=r[e+48>>2],r[A+52>>2]=r[e+52>>2],r[A+56>>2]=r[e+56>>2],r[A+60>>2]=r[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)r[A>>2]=r[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)n[A|0]=0|n[e|0],n[A+1|0]=0|n[e+1|0],n[A+2|0]=0|n[e+2|0],n[A+3|0]=0|n[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)n[A|0]=0|n[e|0],A=A+1|0,e=e+1|0;return 0|o}function wt(A,e,t){e|=0;var i,o=0,a=0,s=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)n[A|0]=e,A=A+1|0;for(s=e|e<<8|e<<16|e<<24,a=(o=-4&i)-64|0;(0|A)<=(0|a);)r[A>>2]=s,r[A+4>>2]=s,r[A+8>>2]=s,r[A+12>>2]=s,r[A+16>>2]=s,r[A+20>>2]=s,r[A+24>>2]=s,r[A+28>>2]=s,r[A+32>>2]=s,r[A+36>>2]=s,r[A+40>>2]=s,r[A+44>>2]=s,r[A+48>>2]=s,r[A+52>>2]=s,r[A+56>>2]=s,r[A+60>>2]=s,A=A+64|0;for(;(0|A)<(0|o);)r[A>>2]=s,A=A+4|0}for(;(0|A)<(0|i);)n[A|0]=e,A=A+1|0;return i-t|0}function vt(A){return(A=+A)>=0?+s(A+.5):+m(A-.5)}function mt(A){A|=0;var e,t,n;return n=0|Q(),(0|A)>0&(0|(e=(t=0|r[a>>2])+A|0))<(0|t)|(0|e)<0?(S(0|e),x(12),-1):(0|e)>(0|n)&&!(0|C(0|e))?(x(12),-1):(r[a>>2]=e,0|t)}return{___divdi3:it,___muldi3:ot,___remdi3:at,___uremdi3:st,_areNeighborCells:function(A,e,t,n,i){i|=0;var o,a,s,u=0,f=0,l=0,c=0;if(s=I,I=I+64|0,a=s,o=s+56|0,!(!0&134217728==(2013265920&(e|=0))&!0&134217728==(2013265920&(n|=0))))return I=s,0|(i=5);if((0|(A|=0))==(0|(t|=0))&(0|e)==(0|n))return r[i>>2]=0,I=s,0|(i=0);if(f=0|ft(0|A,0|e,52),k(),f&=15,c=0|ft(0|t,0|n,52),k(),(0|f)!=(15&c))return I=s,0|(i=12);if(u=f+-1|0,f>>>0>1){HA(A,e,u,a),HA(t,n,u,o),l=0|r[(c=a)>>2],c=0|r[c+4>>2];A:do{if((0|l)==(0|r[o>>2])&&(0|c)==(0|r[o+4>>2])){u=0|ft(0|A,0|e,0|(f=3*(15^f)|0)),k(),u&=7,f=0|ft(0|t,0|n,0|f),k(),f&=7;do{if(!(0|u)|!(0|f))r[i>>2]=1,u=0;else if(7==(0|u))u=5;else{if(1==(0|u)|1==(0|f)&&0|jA(l,c)){u=5;break}if((0|r[15536+(u<<2)>>2])!=(0|f)&&(0|r[15568+(u<<2)>>2])!=(0|f))break A;r[i>>2]=1,u=0}}while(0);return I=s,0|(i=u)}}while(0)}f=(u=a)+56|0;do{r[u>>2]=0,u=u+4|0}while((0|u)<(0|f));return P(A,e,1,a),u=(0|r[(e=a)>>2])==(0|t)&&(0|r[e+4>>2])==(0|n)||(0|r[(e=a+8|0)>>2])==(0|t)&&(0|r[e+4>>2])==(0|n)||(0|r[(e=a+16|0)>>2])==(0|t)&&(0|r[e+4>>2])==(0|n)||(0|r[(e=a+24|0)>>2])==(0|t)&&(0|r[e+4>>2])==(0|n)||(0|r[(e=a+32|0)>>2])==(0|t)&&(0|r[e+4>>2])==(0|n)||(0|r[(e=a+40|0)>>2])==(0|t)&&(0|r[e+4>>2])==(0|n)?1:1&((0|r[(u=a+48|0)>>2])==(0|t)?(0|r[u+4>>2])==(0|n):0),r[i>>2]=u,I=s,0|(i=0)},_bitshift64Ashr:ut,_bitshift64Lshr:ft,_bitshift64Shl:lt,_calloc:At,_cellAreaKm2:function(A,e,t){return 0|(A=0|we(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|we(A|=0,e|=0,t|=0))||(i[t>>3]=6371.007180918475*+i[t>>3]*6371.007180918475*1e3*1e3),0|A},_cellAreaRads2:we,_cellToBoundary:ie,_cellToCenterChild:WA,_cellToChildPos:function(A,e,t,n){t|=0,n|=0;var i,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0;if(i=I,I=I+16|0,v=i,m=0|ft(0|(A|=0),0|(e|=0),52),k(),m&=15,t>>>0>15)return I=i,0|(m=4);if((0|m)<(0|t))return I=i,0|(m=12);if((0|m)!=(0|t))if(a=0|lt(0|t,0,52),a|=A,u=k()|-15728641&e,(0|m)>(0|t)){f=t;do{w=0|lt(7,0,3*(14-f|0)|0),f=f+1|0,a|=w,u=0|k()|u}while((0|f)<(0|m));w=a}else w=a;else w=A,u=e;p=0|ft(0|w,0|u,45),k();A:do{if(0|Y(127&p)){if(f=0|ft(0|w,0|u,52),k(),0|(f&=15))for(a=1;;){if(!(!((p=0|lt(7,0,3*(15-a|0)|0))&w|0)&!((0|k())&u))){l=33;break A}if(!(a>>>0<f>>>0))break;a=a+1|0}if(r[(p=n)>>2]=0,r[p+4>>2]=0,(0|m)>(0|t)){for(p=-15728641&e,d=m;;){if(g=d,(d=d+-1|0)>>>0>15|(0|m)<(0|d)){l=19;break}if((0|m)!=(0|d))if(a=0|lt(0|d,0,52),a|=A,f=0|k()|p,(0|m)<(0|g))h=a;else{l=d;do{h=0|lt(7,0,3*(14-l|0)|0),l=l+1|0,a|=h,f=0|k()|f}while((0|l)<(0|m));h=a}else h=A,f=e;if(c=0|ft(0|h,0|f,45),k(),0|Y(127&c)){c=0|ft(0|h,0|f,52),k(),c&=15;e:do{if(c)for(l=1;;){if(a=0|ft(0|h,0|f,3*(15-l|0)|0),k(),0|(a&=7))break e;if(!(l>>>0<c>>>0)){a=0;break}l=l+1|0}else a=0}while(0);a=1&!(0|a)}else a=0;if(f=0|ft(0|A,0|e,3*(15-g|0)|0),k(),7==(0|(f&=7))){o=5,l=42;break}if(1==(0|f)&(a=!!(0|a))){o=5,l=42;break}if(0|(h=f+((!!(0|f)&a)<<31>>31)|0)&&(l=0|ke(7,0,l=m-g|0,((0|l)<0)<<31>>31),c=0|k(),a?(a=0|et(0|(a=0|ot(0|l,0|c,5,0)),0|k(),-5,-1),a=0|et(0|(a=0|it(0|a,0|k(),6,0)),0|k(),1,0),f=0|k()):(a=l,f=c),g=0|et(0|a,0|f,0|(g=0|ot(0|l,0|c,0|(g=h+-1|0),((0|g)<0)<<31>>31)),0|k()),c=0|et(0|g,0|(h=0|k()),0|r[(c=n)>>2],0|r[c+4>>2]),h=0|k(),r[(g=n)>>2]=c,r[g+4>>2]=h),(0|d)<=(0|t)){l=37;break}}if(19==(0|l))_(27795,27122,1367,27158);else{if(37==(0|l)){o=0|r[(s=n)+4>>2],s=0|r[s>>2];break}if(42==(0|l))return I=i,0|o}}else o=0,s=0}else l=33}while(0);A:do{if(33==(0|l)){if(r[(p=n)>>2]=0,r[p+4>>2]=0,(0|m)>(0|t)){for(a=m;;){if(o=0|ft(0|A,0|e,3*(15-a|0)|0),k(),7==(0|(o&=7))){o=5;break}if(o=0|ot(0|(s=0|ke(7,0,s=m-a|0,((0|s)<0)<<31>>31)),0|k(),0|o,0),s=0|k(),s=0|et(0|r[(p=n)>>2],0|r[p+4>>2],0|o,0|s),o=0|k(),r[(p=n)>>2]=s,r[p+4>>2]=o,(0|(a=a+-1|0))<=(0|t))break A}return I=i,0|o}o=0,s=0}}while(0);return 0|VA(w,u,m,v)&&_(27795,27122,1327,27173),((0|o)>-1|-1==(0|o)&s>>>0>4294967295)&((0|(v=0|r[(m=v)+4>>2]))>(0|o)|((0|v)==(0|o)?(0|r[m>>2])>>>0>s>>>0:0))?(I=i,0|(m=0)):(_(27795,27122,1407,27158),0)},_cellToChildren:function(A,e,t,n){n|=0;var i,o,a=0,s=0;if(o=I,I=I+16|0,ae(i=o,A|=0,e|=0,t|=0),!(0|(A=0|r[(e=i)>>2]))&!(0|(e=0|r[e+4>>2])))return I=o,0;a=0,t=0;do{r[(s=n+(a<<3)|0)>>2]=A,r[s+4>>2]=e,a=0|et(0|a,0|t,1,0),t=0|k(),ue(i),A=0|r[(s=i)>>2],e=0|r[s+4>>2]}while(!(!(0|A)&!(0|e)));return I=o,0},_cellToChildrenSize:VA,_cellToLatLng:re,_cellToLocalIj:function(A,e,t,n,r,i){var o,a;return A|=0,e|=0,t|=0,n|=0,i|=0,a=I,I=I+16|0,o=a,(r|=0)?A=15:(A=0|Ee(A,e,t,n,o))||(_A(o,i),A=0),I=a,0|A},_cellToParent:HA,_cellToVertex:Ye,_cellToVertexes:function(A,e,t){t|=0;var n,i=0,o=0;return o=!(0|jA(A|=0,e|=0)),n=!(0|(i=0|Ye(A,e,0,t))),o?n?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):n?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):(r[(o=t+40|0)>>2]=0,r[o+4>>2]=0,0|(o=0)):0|(o=i)},_cellsToDirectedEdge:function(A,e,t,n,i){return i|=0,7==(0|(t=0|O(A|=0,e|=0,t|=0,n|=0)))?0|(i=11):(n=0|lt(0|t,0,56),e=-2130706433&e|k()|268435456,r[i>>2]=A|n,r[i+4>>2]=e,0|(i=0))},_cellsToLinkedMultiPolygon:function(A,e,t){t|=0;var n,i,o,a=0;if(o=I,I=I+32|0,n=o,A=0|function(A,e,t){A|=0,t|=0;var n,i,o=0,a=0,s=0,u=0,f=0,l=0;if(i=I,I=I+176|0,n=i,(0|(e|=0))<1)return He(t,0,0),I=i,0;for(f=0|ft(0|r[(f=A)>>2],0|r[f+4>>2],52),k(),He(t,(0|e)>6?e:6,15&f),f=0;!(0|(o=0|ie(0|r[(o=A+(f<<3)|0)>>2],0|r[o+4>>2],n)));){if((0|(o=0|r[n>>2]))>0){u=0;do{s=n+8+(u<<4)|0,(a=0|Ze(t,o=n+8+((0|(u=u+1|0))%(0|o)<<4)|0,s))?Xe(t,a):We(t,s,o),o=0|r[n>>2]}while((0|u)<(0|o))}if((0|(f=f+1|0))>=(0|e)){o=0,l=13;break}}return 13==(0|l)?(I=i,0|o):(Ve(t),I=i,0|(l=o))}(A|=0,e|=0,i=o+16|0),0|A)return I=o,0|(t=A);if(r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,0|(A=0|je(i)))do{e=0|ve(t);do{me(e,A),a=A+16|0,r[n>>2]=r[a>>2],r[n+4>>2]=r[a+4>>2],r[n+8>>2]=r[a+8>>2],r[n+12>>2]=r[a+12>>2],Xe(i,A),A=0|Je(i,n)}while(0|A);A=0|je(i)}while(0|A);return Ve(i),(A=0|ye(t))?(be(t),I=o,0|(a=A)):(I=o,0|(a=0))},_childPosToCell:function(A,e,t,n,i,o){A|=0,e|=0,o|=0;var a,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0;if(a=I,I=I+16|0,s=a,(i|=0)>>>0>15)return I=a,0|(o=4);if(u=0|ft(0|(t|=0),0|(n|=0),52),k(),(0|(u&=15))>(0|i))return I=a,0|(o=12);if(0|VA(t,n,i,s)&&_(27795,27122,1327,27173),!(((0|e)>-1|-1==(0|e)&A>>>0>4294967295)&((0|(l=0|r[(c=s)+4>>2]))>(0|e)|((0|l)==(0|e)?(0|r[c>>2])>>>0>A>>>0:0))))return I=a,0|(o=2);c=i-u|0,i=0|lt(0|i,0,52),f=k()|-15728641&n,r[(l=o)>>2]=i|t,r[l+4>>2]=f,l=0|ft(0|t,0|n,45),k();A:do{if(0|Y(127&l)){if(0|u)for(s=1;;){if(!(!((l=0|lt(7,0,3*(15-s|0)|0))&t|0)&!((0|k())&n)))break A;if(!(s>>>0<u>>>0))break;s=s+1|0}if((0|c)<1)return I=a,0|(o=0);for(l=15^u,n=-1,f=1,s=1;;){u=0|ke(7,0,u=c-f|0,((0|u)<0)<<31>>31),t=0|k();do{if(s){if(s=0|it(0|(s=0|et(0|(s=0|ot(0|u,0|t,5,0)),0|k(),-5,-1)),0|k(),6,0),(0|e)>(0|(i=0|k()))|(0|e)==(0|i)&A>>>0>s>>>0){e=0|tt(0|(e=0|et(0|A,0|e,-1,-1)),0|k(),0|s,0|i),s=0|k(),d=0|r[(h=o)>>2],h=0|r[h+4>>2],g=0|lt(7,0,0|(p=3*(l+n|0)|0)),h&=~k(),p=0|lt(0|(i=0|et(0|(n=0|it(0|e,0|s,0|u,0|t)),0|(A=0|k()),2,0)),0|k(),0|p),h=0|k()|h,r[(i=o)>>2]=p|d&~g,r[i+4>>2]=h,A=0|tt(0|e,0|s,0|(A=0|ot(0|n,0|A,0|u,0|t)),0|k()),s=0,e=0|k();break}g=0|r[(p=o)>>2],p=0|r[p+4>>2],d=0|lt(7,0,3*(l+n|0)|0),p&=~k(),r[(s=o)>>2]=g&~d,r[s+4>>2]=p,s=1;break}i=0|r[(g=o)>>2],g=0|r[g+4>>2],h=0|lt(7,0,0|(n=3*(l+n|0)|0)),g&=~k(),n=0|lt(0|(p=0|it(0|A,0|e,0|u,0|t)),0|(s=0|k()),0|n),g=0|k()|g,r[(d=o)>>2]=n|i&~h,r[d+4>>2]=g,A=0|tt(0|A,0|e,0|(s=0|ot(0|p,0|s,0|u,0|t)),0|k()),s=0,e=0|k()}while(0);if(!((0|c)>(0|f))){e=0;break}n=~f,f=f+1|0}return I=a,0|e}}while(0);if((0|c)<1)return I=a,0|(p=0);for(i=15^u,s=1;;){if(d=0|ke(7,0,d=c-s|0,((0|d)<0)<<31>>31),p=0|k(),t=0|r[(f=o)>>2],f=0|r[f+4>>2],n=0|lt(7,0,0|(u=3*(i-s|0)|0)),f&=~k(),u=0|lt(0|(h=0|it(0|A,0|e,0|d,0|p)),0|(g=0|k()),0|u),f=0|k()|f,r[(l=o)>>2]=u|t&~n,r[l+4>>2]=f,A=0|tt(0|A,0|e,0|(p=0|ot(0|h,0|g,0|d,0|p)),0|k()),e=0|k(),(0|c)<=(0|s)){e=0;break}s=s+1|0}return I=a,0|e},_compactCells:function(A,e,t,n){e|=0;var i,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,E=0,M=0,x=0,Q=0,D=0,C=0,S=0,I=0;if(!(0|(t|=0))&!(0|(n|=0)))return 0|(I=0);if(a=0|r[(o=A|=0)>>2],!0&!(15728640&(o=0|r[o+4>>2]))){if(!((0|n)>0|!(0|n)&t>>>0>0))return 0|(I=0);if(r[(I=e)>>2]=a,r[I+4>>2]=o,1==(0|t)&!(0|n))return 0|(I=0);o=1,a=0;do{S=0|r[(C=A+(o<<3)|0)+4>>2],r[(I=e+(o<<3)|0)>>2]=r[C>>2],r[I+4>>2]=S,o=0|et(0|o,0|a,1,0),a=0|k()}while((0|a)<(0|n)|(0|a)==(0|n)&o>>>0<t>>>0);return 0|(o=0)}if(!(S=0|qe(i=t<<3)))return 0|(I=13);if(pt(0|S,0|A,0|i),!(C=0|At(t,8)))return $e(S),0|(I=13);A:for(;;){Q=0|ft(0|(l=0|r[(o=S)>>2]),0|(o=0|r[o+4>>2]),52),k(),D=(Q&=15)+-1|0,x=!!(0|Q),M=(0|n)>0|!(0|n)&t>>>0>0;e:do{if(x&M){if(b=0|lt(0|D,0,52),y=0|k(),D>>>0>15){if(!(!(0|l)&!(0|o))){I=16;break A}for(a=0,A=0;;){if(a=0|et(0|a,0|A,1,0),!((0|(A=0|k()))<(0|n)|(0|A)==(0|n)&a>>>0<t>>>0))break e;if(!(!(0|(E=0|r[(s=S+(a<<3)|0)>>2]))&!(0|(s=0|r[s+4>>2])))){o=s,I=16;break A}}}for(u=l,A=o,a=0,s=0;;){if(!(!(0|u)&!(0|A))){if(!(!0&!(117440512&A))){I=21;break A}if(c=0|ft(0|u,0|A,52),k(),(0|(c&=15))<(0|D)){o=12,I=27;break A}if((0|c)!=(0|D)&&(u|=b,A=-15728641&A|y,c>>>0>=Q>>>0)){f=D;do{E=0|lt(7,0,3*(14-f|0)|0),f=f+1|0,u|=E,A=0|k()|A}while(f>>>0<c>>>0)}if(g=0|st(0|u,0|A,0|t,0|n),d=0|k(),!(!(0|(h=0|r[(c=f=C+(g<<3)|0)>>2]))&!(0|(c=0|r[c+4>>2])))){v=0,m=0;do{if((0|v)>(0|n)|(0|v)==(0|n)&m>>>0>t>>>0){I=31;break A}if((0|h)==(0|u)&(-117440513&c)==(0|A)){p=0|ft(0|h,0|c,56),k(),w=(p&=7)+1|0,E=0|ft(0|h,0|c,45),k();t:do{if(0|Y(127&E)){if(h=0|ft(0|h,0|c,52),k(),!(h&=15)){c=6;break}for(c=1;;){if(!(!((E=0|lt(7,0,3*(15-c|0)|0))&u|0)&!((0|k())&A))){c=7;break t}if(!(c>>>0<h>>>0)){c=6;break}c=c+1|0}}else c=7}while(0);if((p+2|0)>>>0>c>>>0){I=41;break A}E=0|lt(0|w,0,56),A=k()|-117440513&A,r[(B=f)>>2]=0,r[B+4>>2]=0,u|=E}else g=0|at(0|(g=0|et(0|g,0|d,1,0)),0|k(),0|t,0|n),d=0|k();m=0|et(0|m,0|v,1,0),v=0|k(),h=0|r[(c=f=C+(g<<3)|0)>>2],c=0|r[c+4>>2]}while(!(!(0|h)&!(0|c)))}r[(E=f)>>2]=u,r[E+4>>2]=A}if(a=0|et(0|a,0|s,1,0),!((0|(s=0|k()))<(0|n)|(0|s)==(0|n)&a>>>0<t>>>0))break e;u=0|r[(A=S+(a<<3)|0)>>2],A=0|r[A+4>>2]}}}while(0);if(E=0|et(0|t,0|n,5,0),(B=0|k())>>>0<0|!(0|B)&E>>>0<11){I=85;break}if(E=0|it(0|t,0|n,6,0),k(),!(E=0|At(E,8))){I=48;break}do{if(M){for(w=0,A=0,p=0,v=0;;){if(!(0|(a=0|r[(s=c=C+(w<<3)|0)>>2]))&!(0|(s=0|r[s+4>>2])))B=p;else{h=0|ft(0|a,0|s,56),k(),u=(h&=7)+1|0,g=-117440513&s,B=0|ft(0|a,0|s,45),k();e:do{if(0|Y(127&B)){if(d=0|ft(0|a,0|s,52),k(),0|(d&=15))for(f=1;;){if(!(!(a&(B=0|lt(7,0,3*(15-f|0)|0))|0)&!(g&(0|k()))))break e;if(!(f>>>0<d>>>0))break;f=f+1|0}a|=s=0|lt(0|u,0,56),s=0|k()|g,r[(u=c)>>2]=a,r[u+4>>2]=s,u=h+2|0}}while(0);7==(0|u)?(r[(B=E+(A<<3)|0)>>2]=a,r[B+4>>2]=-117440513&s,A=0|et(0|A,0|p,1,0),B=0|k()):B=p}if(w=0|et(0|w,0|v,1,0),!((0|(v=0|k()))<(0|n)|(0|v)==(0|n)&w>>>0<t>>>0))break;p=B}if(M){if(m=D>>>0>15,b=0|lt(0|D,0,52),y=0|k(),!x){for(a=0,f=0,u=0,s=0;!(0|l)&!(0|o)||(r[(D=e+(a<<3)|0)>>2]=l,r[D+4>>2]=o,a=0|et(0|a,0|f,1,0),f=0|k()),u=0|et(0|u,0|s,1,0),(0|(s=0|k()))<(0|n)|(0|s)==(0|n)&u>>>0<t>>>0;)l=0|r[(o=S+(u<<3)|0)>>2],o=0|r[o+4>>2];o=B;break}for(a=0,f=0,s=0,u=0;;){do{if(!(!(0|l)&!(0|o))){if(d=0|ft(0|l,0|o,52),k(),m|(0|(d&=15))<(0|D)){I=80;break A}if((0|d)!=(0|D)){if(c=l|b,h=-15728641&o|y,d>>>0>=Q>>>0){g=D;do{x=0|lt(7,0,3*(14-g|0)|0),g=g+1|0,c|=x,h=0|k()|h}while(g>>>0<d>>>0)}}else c=l,h=o;p=0|st(0|c,0|h,0|t,0|n),g=0,d=0,v=0|k();do{if((0|g)>(0|n)|(0|g)==(0|n)&d>>>0>t>>>0){I=81;break A}if((-117440513&(w=0|r[(x=C+(p<<3)|0)+4>>2]))==(0|h)&&(0|r[x>>2])==(0|c)){I=65;break}p=0|at(0|(x=0|et(0|p,0|v,1,0)),0|k(),0|t,0|n),v=0|k(),d=0|et(0|d,0|g,1,0),g=0|k(),x=C+(p<<3)|0}while((0|r[x>>2])!=(0|c)||(0|r[x+4>>2])!=(0|h));if(65==(0|I)&&(I=0,!0&100663296==(117440512&w)))break;r[(x=e+(a<<3)|0)>>2]=l,r[x+4>>2]=o,a=0|et(0|a,0|f,1,0),f=0|k()}}while(0);if(s=0|et(0|s,0|u,1,0),!((0|(u=0|k()))<(0|n)|(0|u)==(0|n)&s>>>0<t>>>0))break;l=0|r[(o=S+(s<<3)|0)>>2],o=0|r[o+4>>2]}o=B}else a=0,o=B}else a=0,A=0,o=0}while(0);if(wt(0|C,0,0|i),pt(0|S,0|E,A<<3),$e(E),!(0|A)&!(0|o)){I=89;break}e=e+(a<<3)|0,n=o,t=A}if(16==(0|I))!0&!(117440512&o)?(o=4,I=27):I=21;else if(31==(0|I))_(27795,27122,620,27132);else{if(41==(0|I))return $e(S),$e(C),0|(I=10);if(48==(0|I))return $e(S),$e(C),0|(I=13);80==(0|I)?_(27795,27122,711,27132):81==(0|I)?_(27795,27122,723,27132):85==(0|I)&&(pt(0|e,0|S,t<<3),I=89)}return 21==(0|I)?($e(S),$e(C),0|(I=5)):27==(0|I)?($e(S),$e(C),0|(I=o)):89==(0|I)?($e(S),$e(C),0|(I=0)):0},_constructCell:function(A,e,t,i){t|=0,i|=0;var o=0,a=0,s=0,u=0,f=0,l=0;if((A|=0)>>>0>15)return 0|(i=4);if((e|=0)>>>0>121)return 0|(i=17);s=0|lt(0|A,0,52),o=0|k(),u=0|lt(0|e,0,45),o=0|o|k()|134225919;A:do{if((0|A)>=1){for(u=1,s=!!(0|n[20528+e|0]),a=-1;;){if((e=0|r[t+(u+-1<<2)>>2])>>>0>6){o=18,e=10;break}if(!(!(0|e)|1^s)){if(1==(0|e)){o=19,e=10;break}s=0}if(f=0|lt(7,0,0|(l=3*(15-u|0)|0)),o&=~k(),a=(e=0|lt(0|e,((0|e)<0)<<31>>31,0|l))|a&~f,o=0|k()|o,!((0|u)<(0|A)))break A;u=u+1|0}if(10==(0|e))return 0|o}else a=-1}while(0);return r[(l=i)>>2]=a,r[l+4>>2]=o,0|(l=0)},_destroyLinkedMultiPolygon:be,_directedEdgeToBoundary:SA,_directedEdgeToCells:function(A,e,t){A|=0;var n,i,o,a=0;return n=I,I=I+16|0,a=n,!0&268435456==(2013265920&(e|=0))?(i=-2130706433&e|134217728,r[(o=t|=0)>>2]=A,r[o+4>>2]=i,r[a>>2]=0,e=0|ft(0|A,0|e,56),k(),a=0|G(A,i,7&e,a,t+8|0),I=n,0|a):(I=n,0|(a=6))},_edgeLengthKm:function(A,e,t){t|=0;var n,o=0,a=0,s=0,u=0,l=0,g=0,d=0;if(n=I,I=I+176|0,0|(A=0|SA(A|=0,e|=0,u=n)))return u=A,s=+i[t>>3],s*=6371.007180918475,i[t>>3]=s,I=n,0|u;if(i[t>>3]=0,(0|(A=0|r[u>>2]))<=1)return u=0,s=0,s*=6371.007180918475,i[t>>3]=s,I=n,0|u;e=A+-1|0,A=0,o=+i[u+8>>3],a=+i[u+16>>3],s=0;do{g=o,o=+i[u+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),l=a,a=+i[u+8+(A<<4)+8>>3],l=d*d+(l=+h(.5*(a-l)))*(+c(+g)*+c(+o)*l),s+=2*+v(+ +f(+l),+ +f(+(1-l)))}while((0|A)!=(0|e));return i[t>>3]=s,u=0,d=s,d*=6371.007180918475,i[t>>3]=d,I=n,0|u},_edgeLengthM:function(A,e,t){t|=0;var n,o=0,a=0,s=0,u=0,l=0,g=0,d=0;if(n=I,I=I+176|0,0|(A=0|SA(A|=0,e|=0,u=n)))return u=A,s=+i[t>>3],s*=6371.007180918475,s*=1e3,i[t>>3]=s,I=n,0|u;if(i[t>>3]=0,(0|(A=0|r[u>>2]))<=1)return u=0,s=0,s*=6371.007180918475,s*=1e3,i[t>>3]=s,I=n,0|u;e=A+-1|0,A=0,o=+i[u+8>>3],a=+i[u+16>>3],s=0;do{g=o,o=+i[u+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),l=a,a=+i[u+8+(A<<4)+8>>3],l=d*d+(l=+h(.5*(a-l)))*(+c(+g)*+c(+o)*l),s+=2*+v(+ +f(+l),+ +f(+(1-l)))}while((0|A)!=(0|e));return i[t>>3]=s,u=0,d=s,d*=6371.007180918475,d*=1e3,i[t>>3]=d,I=n,0|u},_edgeLengthRads:function(A,e,t){t|=0;var n,o=0,a=0,s=0,u=0,l=0,g=0,d=0;if(n=I,I=I+176|0,0|(A=0|SA(A|=0,e|=0,u=n)))return I=n,0|(u=A);if(i[t>>3]=0,(0|(A=0|r[u>>2]))<=1)return I=n,0|(u=0);e=A+-1|0,A=0,o=+i[u+8>>3],a=+i[u+16>>3],s=0;do{g=o,o=+i[u+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),l=a,a=+i[u+8+(A<<4)+8>>3],l=d*d+(l=+h(.5*(a-l)))*(+c(+o)*+c(+g)*l),s+=2*+v(+ +f(+l),+ +f(+(1-l)))}while((0|A)<(0|e));return i[t>>3]=s,I=n,0|(u=0)},_emscripten_replace_memory:function(A){return n=new Int8Array(A),r=new Int32Array(A),i=new Float64Array(A),t=A,!0},_free:$e,_getBaseCellNumber:zA,_getDirectedEdgeDestination:function(A,e,t){A|=0,e|=0,t|=0;var n,i,o=0;return n=I,I=I+16|0,r[(o=n)>>2]=0,!0&268435456==(2013265920&e)?(i=0|ft(0|A,0|e,56),k(),o=0|G(A,-2130706433&e|134217728,7&i,o,t),I=n,0|o):(I=n,0|(o=6))},_getDirectedEdgeOrigin:function(A,e,t){return A|=0,t|=0,!0&268435456==(2013265920&(e|=0))?(r[t>>2]=A,r[t+4>>2]=-2130706433&e|134217728,0|(t=0)):0|(t=6)},_getHexagonAreaAvgKm2:ge,_getHexagonAreaAvgM2:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20784+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgKm:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20912+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgM:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[21040+(A<<3)>>3],0|(e=0))},_getIcosahedronFaces:function A(e,t,n){n|=0;var i,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0;i=I,I=I+128|0,c=i+112|0,s=i+96|0,h=i,a=0|ft(0|(e|=0),0|(t|=0),52),k(),f=15&a,r[c>>2]=f,u=0|ft(0|e,0|t,45),k(),u&=127;A:do{if(0|Y(u)){if(0|f)for(o=1;;){if(!(!((l=0|lt(7,0,3*(15-o|0)|0))&e|0)&!((0|k())&t))){a=0;break A}if(!(o>>>0<f>>>0))break;o=o+1|0}if(!(1&a))return l=0|lt(f+1|0,0,52),h=k()|-15728641&t,h=0|A((l|e)&~(c=0|lt(7,0,3*(14-f|0)|0)),h&~k(),n),I=i,0|h;a=1}else a=0}while(0);if(!(o=0|ne(e,t,s))){a?(LA(s,c,h),l=5):(OA(s,c,h),l=6);A:do{if(0|Y(u))if(f)for(o=1;;){if(!(!((u=0|lt(7,0,3*(15-o|0)|0))&e|0)&!((0|k())&t))){e=2;break A}if(!(o>>>0<f>>>0)){e=5;break}o=o+1|0}else e=5;else e=2}while(0);wt(0|n,-1,e<<2);A:do{if(a)for(s=0;;){if(RA(u=h+(s<<4)|0,0|r[c>>2]),u=0|r[u>>2],-1==(0|(f=0|r[n>>2]))|(0|f)==(0|u))o=n;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}f=0|r[(o=n+(a<<2)|0)>>2]}while(!(-1==(0|f)|(0|f)==(0|u)))}if(r[o>>2]=u,(s=s+1|0)>>>0>=l>>>0){o=0;break}}else for(s=0;;){if(GA(u=h+(s<<4)|0,0|r[c>>2],0,1),u=0|r[u>>2],-1==(0|(f=0|r[n>>2]))|(0|f)==(0|u))o=n;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}f=0|r[(o=n+(a<<2)|0)>>2]}while(!(-1==(0|f)|(0|f)==(0|u)))}if(r[o>>2]=u,(s=s+1|0)>>>0>=l>>>0){o=0;break}}}while(0)}return I=i,0|(h=o)},_getIndexDigit:function(A,e,t,n){return n|=0,((t|=0)+-1|0)>>>0>14?0|(n=4):(t=0|ft(0|(A|=0),0|(e|=0),3*(15-t|0)|0),k(),r[n>>2]=7&t,0|(n=0))},_getNumCells:de,_getPentagons:oe,_getRes0Cells:function(A){A|=0;var e=0,t=0,n=0;e=0;do{lt(0|e,0,45),n=134225919|k(),r[(t=A+(e<<3)|0)>>2]=-1,r[t+4>>2]=n,e=e+1|0}while(122!=(0|e));return 0},_getResolution:function(A,e){return e=0|ft(0|(A|=0),0|(e|=0),52),k(),15&e},_greatCircleDistanceKm:he,_greatCircleDistanceM:function(A,e){A|=0;var t,n,r,o=0;return n=+i[(e|=0)>>3],t=+i[A>>3],o=(r=+h(.5*(n-t)))*r+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+n)*+c(+t)*o),2*+v(+ +f(+o),+ +f(+(1-o)))*6371.007180918475*1e3},_greatCircleDistanceRads:function(A,e){A|=0;var t,n,r,o=0;return n=+i[(e|=0)>>3],t=+i[A>>3],o=(r=+h(.5*(n-t)))*r+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+n)*+c(+t)*o),2*+v(+ +f(+o),+ +f(+(1-o)))},_gridDisk:P,_gridDiskDistances:F,_gridDistance:function(A,e,t,n,i){t|=0,n|=0,i|=0;var o,a,s=0,u=0;return a=I,I=I+32|0,u=a,0|(o=0|Ee(A|=0,e|=0,A,e,s=a+12|0))?(I=a,0|(u=o)):0|(A=0|Ee(A,e,t,n,u))?(I=a,0|(u=A)):(s=0|kA(s,u),r[(u=i)>>2]=s,r[u+4>>2]=((0|s)<0)<<31>>31,I=a,0|(u=0))},_gridPathCells:function(A,e,t,n,i){t|=0,n|=0,i|=0;var o,a,s=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,E=0,M=0,x=0,Q=0;if(a=I,I=I+48|0,f=a+12|0,x=a,!(s=0|Ee(A|=0,e|=0,A,e,o=a+24|0))&&!(s=0|Ee(A,e,t,n,f))){M=((0|(E=0|kA(o,f)))<0)<<31>>31,r[o>>2]=0,r[o+4>>2]=0,r[o+8>>2]=0,r[f>>2]=0,r[f+4>>2]=0,r[f+8>>2]=0,0|Ee(A,e,A,e,o)&&_(27795,27538,692,27747),0|Ee(A,e,t,n,f)&&_(27795,27538,697,27747),QA(o),QA(f),g=0|E?1/+(0|E):0,t=0|r[o>>2],m=g*+((0|r[f>>2])-t|0),n=0|r[(b=o+4|0)>>2],y=g*+((0|r[f+4>>2])-n|0),s=0|r[(B=o+8|0)>>2],g*=+((0|r[f+8>>2])-s|0),r[x>>2]=t,r[(d=x+4|0)>>2]=n,r[(p=x+8|0)>>2]=s;A:do{if((0|E)<0)s=0;else for(w=0,v=0;;){Q=m*(c=+(v>>>0)+4294967296*+(0|w))+ +(0|t),l=y*c+ +(0|n),c=g*c+ +(0|s),t=~~+dt(+Q),f=~~+dt(+l),s=~~+dt(+c),Q=+u(+(+(0|t)-Q)),l=+u(+(+(0|f)-l)),c=+u(+(+(0|s)-c));do{if(!(Q>l&Q>c)){if(h=0-t|0,l>c){n=h-s|0;break}n=f,s=h-f|0;break}t=0-(f+s)|0,n=f}while(0);if(r[x>>2]=t,r[d>>2]=n,r[p>>2]=s,DA(x),0|(s=0|Me(A,e,x,i+(v<<3)|0)))break A;if(!((0|w)<(0|M)|(0|w)==(0|M)&v>>>0<E>>>0)){s=0;break A}t=0|et(0|v,0|w,1,0),w=n=0|k(),v=t,t=0|r[o>>2],n=0|r[b>>2],s=0|r[B>>2]}}while(0);return I=a,0|(x=s)}return I=a,0|(x=s)},_gridPathCellsSize:function(A,e,t,n,i){t|=0,n|=0,i|=0;var o,a=0,s=0,u=0;return o=I,I=I+32|0,u=o,(a=0|Ee(A|=0,e|=0,A,e,s=o+12|0))||(a=0|Ee(A,e,t,n,u))?(I=o,0|(u=a)):(n=0|et(0|(n=0|kA(s,u)),((0|n)<0)<<31>>31,1,0),s=0|k(),r[(u=i)>>2]=n,r[u+4>>2]=s,I=o,0|(u=0))},_gridRing:function(A,e,t,n){return 0|R(A|=0,e|=0,t|=0,n|=0)?(wt(0|n,0,48*t|0),0|(n=0|U(A,e,t,n))):0|(n=0)},_gridRingUnsafe:R,_i64Add:et,_i64Subtract:tt,_isPentagon:jA,_isResClassIII:function(A,e){return e=0|ft(0|(A|=0),0|(e|=0),52),k(),1&e},_isValidCell:YA,_isValidDirectedEdge:CA,_isValidIndex:function(A,e){A|=0;var t=0,r=0,i=0,o=0;if(!0&134217728==(-16777216&(e|=0))&&(r=0|ft(0|A,0|e,52),k(),r&=15,t=0|ft(0|A,0|e,45),k(),(t&=127)>>>0<=121)&&!(613566756&(o=0|lt(0|(i=0|ft(0|A,0|e,0|(o=3*(15^r)|0))),0|k(),0|o))&(0|tt(-1227133514,-1171,0|o,0|(i=0|k()))))&!(4681&i&k())&&15==(0|r)|!(0|(o=0|ft(0|(0|lt(0|~A,0|~e,0|(o=19+(3*r|0)|0))),0|k(),0|o)))&!(0|k())){if(!(0|n[20528+t|0]))return 0|(o=1);if(!(0|A)&!(0|(t=8191&e)))return 0|(o=1);if(o=0|ct(0|A,0|t),k(),(63-o|0)%3|0)return 0|(o=1)}return 0|CA(A,e)?0|(o=1):0|(o=1&!!(0|Ne(A,e)))},_isValidVertex:Ne,_latLngToCell:ee,_llvm_ctlz_i64:ct,_llvm_maxnum_f64:ht,_llvm_minnum_f64:gt,_llvm_round_f64:dt,_localIjToCell:function(A,e,t,n,r){var i,o;return A|=0,e|=0,t|=0,r|=0,o=I,I=I+16|0,i=o,(n|=0)?t=15:(t=0|xA(t,i))||(t=0|Me(A,e,i,r)),I=o,0|t},_malloc:qe,_maxFaceCount:function(A,e,t){t|=0;var n=0,i=0;if(i=0|ft(0|(A|=0),0|(e|=0),45),k(),!(0|Y(127&i)))return i=2,r[t>>2]=i,0;if(i=0|ft(0|A,0|e,52),k(),!(i&=15))return i=5,r[t>>2]=i,0;for(n=1;;){if(!(!((0|lt(7,0,3*(15-n|0)|0))&A|0)&!((0|k())&e))){n=2,A=6;break}if(!(n>>>0<i>>>0)){n=5,A=6;break}n=n+1|0}return 6==(0|A)?(r[t>>2]=n,0):0},_maxGridDiskSize:function(A,e){e|=0;var t=0,n=0,i=0;return(0|(A|=0))<0?0|(e=2):(0|A)>13780509?0|(e=0|de(15,e)):(i=0|ot(0|A,0|(t=((0|A)<0)<<31>>31),3,0),n=0|k(),t=0|et(0|A,0|t,1,0),t=0|et(0|(t=0|ot(0|i,0|n,0|t,0|k())),0|k(),1,0),A=0|k(),r[e>>2]=t,r[e+4>>2]=A,0|(e=0))},_maxPolygonToCellsSize:function(A,e,t,n){A|=0,e|=0,n|=0;var i,o=0,a=0,s=0,u=0,f=0;if(i=I,I=I+48|0,o=i+16|0,a=i+8|0,s=i,0|(t=0|Ie(t|=0)))return I=i,0|(s=t);if(u=0|r[(f=A)+4>>2],r[(t=a)>>2]=r[f>>2],r[t+4>>2]=u,Se(a,o),!(t=0|tA(o,e,s))){if(e=0|r[a>>2],(0|(a=0|r[A+8>>2]))>0){o=0|r[A+12>>2],t=0;do{e=(0|r[o+(t<<3)>>2])+e|0,t=t+1|0}while((0|t)<(0|a))}o=0|r[(t=s)>>2],(0|(t=0|r[t+4>>2]))<(0|(a=((0|e)<0)<<31>>31))|(0|t)==(0|a)&o>>>0<e>>>0?(r[(t=s)>>2]=e,r[t+4>>2]=a,t=a):e=o,u=0|et(0|e,0|t,12,0),f=0|k(),r[(t=s)>>2]=u,r[t+4>>2]=f,r[(t=n)>>2]=u,r[t+4>>2]=f,t=0}return I=i,0|(f=t)},_maxPolygonToCellsSizeExperimental:function(A,e,t,o){e|=0,t|=0,o|=0;var a,s,f=0,l=0,h=0,g=0,d=0,p=0,w=0,v=0;if(s=I,I=I+48|0,d=s+32|0,g=s+40|0,a=s,!(0|r[(A|=0)>>2]))return r[(p=o)>>2]=0,r[p+4>>2]=0,I=s,0|(p=0);NA(d,0,0,0),f=0|r[(h=d)>>2],h=0|r[h+4>>2];do{if(e>>>0>15)r[(p=a)>>2]=0,r[p+4>>2]=0,r[a+8>>2]=4,r[a+12>>2]=-1,t=a+29|0,r[(p=a+16|0)>>2]=0,r[p+4>>2]=0,r[p+8>>2]=0,n[p+12|0]=0,n[t|0]=0|n[g|0],n[t+1|0]=0|n[g+1|0],n[t+2|0]=0|n[g+2|0],t=4,p=9;else{if(0|(t=0|Ie(t))){r[(d=a)>>2]=0,r[d+4>>2]=0,r[a+8>>2]=t,r[a+12>>2]=-1,p=a+29|0,r[(d=a+16|0)>>2]=0,r[d+4>>2]=0,r[d+8>>2]=0,n[d+12|0]=0,n[p|0]=0|n[g|0],n[p+1|0]=0|n[g+1|0],n[p+2|0]=0|n[g+2|0],p=9;break}if(!(t=0|At(1+(0|r[A+8>>2])|0,32))){r[(p=a)>>2]=0,r[p+4>>2]=0,r[a+8>>2]=13,r[a+12>>2]=-1,t=a+29|0,r[(p=a+16|0)>>2]=0,r[p+4>>2]=0,r[p+8>>2]=0,n[p+12|0]=0,n[t|0]=0|n[g|0],n[t+1|0]=0|n[g+1|0],n[t+2|0]=0|n[g+2|0],t=13,p=9;break}Pe(A,t),r[(v=a)>>2]=f,r[v+4>>2]=h,r[(h=a+8|0)>>2]=0,r[a+12>>2]=e,r[a+20>>2]=A,r[a+24>>2]=t,n[a+28|0]=0,n[(f=a+29|0)|0]=0|n[g|0],n[f+1|0]=0|n[g+1|0],n[f+2|0]=0|n[g+2|0],r[a+16>>2]=3,w=+K(t),w*=+Z(t),l=+u(+ +i[t>>3]),l=w/+c(+ +gt(+l,+ +u(+ +i[t+8>>3])))*6371.007180918475*6371.007180918475,t=0|r[(f=a+12|0)>>2];A:do{if((0|t)>0)do{if(ge(t+-1|0,d),!(l/+i[d>>3]>10))break A;t=(v=0|r[f>>2])+-1|0,r[f>>2]=t}while((0|v)>1)}while(0);if(Qe(a),r[(f=o)>>2]=0,r[f+4>>2]=0,!(!(0|(t=0|r[(f=a)>>2]))&!(0|(f=0|r[f+4>>2]))))do{VA(t,f,e,d),g=d,g=0|et(0|r[(A=o)>>2],0|r[A+4>>2],0|r[g>>2],0|r[g+4>>2]),A=0|k(),r[(v=o)>>2]=g,r[v+4>>2]=A,Qe(a),t=0|r[(v=a)>>2],f=0|r[v+4>>2]}while(!(!(0|t)&!(0|f)));t=0|r[h>>2]}}while(0);return I=s,0|(v=t)},_memcpy:pt,_memset:wt,_originToDirectedEdges:function(A,e,t){t|=0;var n,i=0;return n=!(0|jA(A|=0,e|=0)),e&=-2130706433,r[(i=t)>>2]=n?A:0,r[i+4>>2]=n?285212672|e:0,r[(i=t+8|0)>>2]=A,r[i+4>>2]=301989888|e,r[(i=t+16|0)>>2]=A,r[i+4>>2]=318767104|e,r[(i=t+24|0)>>2]=A,r[i+4>>2]=335544320|e,r[(i=t+32|0)>>2]=A,r[i+4>>2]=352321536|e,r[(t=t+40|0)>>2]=A,r[t+4>>2]=369098752|e,0},_pentagonCount:function(){return 12},_polygonToCells:function(A,e,t,n){A|=0,e|=0,n|=0;var i,o,a,s,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,E=0,M=0,_=0,x=0,Q=0,D=0,C=0,S=0,P=0,F=0,G=0,R=0,U=0;if(s=I,I=I+112|0,i=s+80|0,h=s+72|0,o=s,a=s+56|0,0|(u=0|Ie(t|=0)))return I=s,0|(U=u);if(!(U=0|qe(32+(r[(g=A+8|0)>>2]<<5)|0)))return I=s,0|(U=13);if(Pe(A,U),!(u=0|Ie(t))){if(R=0|r[(G=A)+4>>2],r[(u=h)>>2]=r[G>>2],r[u+4>>2]=R,Se(h,i),u=0|tA(i,e,o))G=0,R=0;else{if(u=0|r[h>>2],(0|(f=0|r[g>>2]))>0){l=0|r[A+12>>2],t=0;do{u=(0|r[l+(t<<3)>>2])+u|0,t=t+1|0}while((0|t)!=(0|f));t=u}else t=u;f=0|r[(u=o)>>2],(0|(u=0|r[u+4>>2]))<(0|(l=((0|t)<0)<<31>>31))|(0|u)==(0|l)&f>>>0<t>>>0?(r[(u=o)>>2]=t,r[u+4>>2]=l,u=l):t=f,G=0|et(0|t,0|u,12,0),R=0|k(),r[(u=o)>>2]=G,r[u+4>>2]=R,u=0}if(!u){if(!(t=0|At(G,8)))return $e(U),I=s,0|(U=13);if(!(c=0|At(G,8)))return $e(U),$e(t),I=s,0|(U=13);r[(P=i)>>2]=0,r[P+4>>2]=0,F=0|r[(P=A)+4>>2],r[(u=h)>>2]=r[P>>2],r[u+4>>2]=F,u=0|z(h,G,R,e,i,t,c);A:do{if(u)$e(t),$e(c),$e(U);else{e:do{if((0|r[g>>2])>0){for(l=A+12|0,f=0;u=0|z((0|r[l>>2])+(f<<3)|0,G,R,e,i,t,c),f=f+1|0,!(0|u);)if((0|f)>=(0|r[g>>2]))break e;$e(t),$e(c),$e(U);break A}}while(0);(0|R)>0|!(0|R)&G>>>0>0&&wt(0|c,0,G<<3),P=0|r[(F=i)+4>>2];e:do{if((0|P)>0|!(0|P)&(0|r[F>>2])>>>0>0){D=t,C=c,S=t,P=c,F=t,u=t,_=t,x=c,Q=c,t=c;t:for(;;){for(y=0,B=0,E=0,M=0,f=0,l=0;;){h=(c=o)+56|0;do{r[c>>2]=0,c=c+4|0}while((0|c)<(0|h));if(0|T(g=0|r[(e=D+(y<<3)|0)>>2],e=0|r[e+4>>2],1,o,0)){h=(c=o)+56|0;do{r[c>>2]=0,c=c+4|0}while((0|c)<(0|h));0|(c=0|At(7,4))&&(L(g,e,1,o,c,7,0,0),$e(c))}for(b=0;;){v=0|r[(m=o+(b<<3)|0)>>2],m=0|r[m+4>>2];n:do{if(!(0|v)&!(0|m))c=f,h=l;else{if(d=0|st(0|v,0|m,0|G,0|R),g=0|k(),!(!(0|(h=0|r[(e=c=n+(d<<3)|0)>>2]))&!(0|(e=0|r[e+4>>2])))){p=0,w=0;do{if((0|p)>(0|R)|(0|p)==(0|R)&w>>>0>G>>>0)break t;if((0|h)==(0|v)&(0|e)==(0|m)){c=f,h=l;break n}d=0|at(0|(c=0|et(0|d,0|g,1,0)),0|k(),0|G,0|R),g=0|k(),w=0|et(0|w,0|p,1,0),p=0|k(),h=0|r[(e=c=n+(d<<3)|0)>>2],e=0|r[e+4>>2]}while(!(!(0|h)&!(0|e)))}if(!(0|v)&!(0|m)){c=f,h=l;break}re(v,m,a),0|Fe(A,U,a)&&(w=0|et(0|f,0|l,1,0),l=0|k(),r[(p=c)>>2]=v,r[p+4>>2]=m,r[(f=C+(f<<3)|0)>>2]=v,r[f+4>>2]=m,f=w),c=f,h=l}}while(0);if((b=b+1|0)>>>0>=7)break;f=c,l=h}if(y=0|et(0|y,0|B,1,0),B=0|k(),E=0|et(0|E,0|M,1,0),M=0|k(),f=0|r[(l=i)>>2],!((0|M)<(0|(l=0|r[l+4>>2]))|(0|M)==(0|l)&E>>>0<f>>>0))break;f=c,l=h}if((0|l)>0|!(0|l)&f>>>0>0){f=0,l=0;do{r[(M=D+(f<<3)|0)>>2]=0,r[M+4>>2]=0,f=0|et(0|f,0|l,1,0),l=0|k(),E=0|r[(M=i)+4>>2]}while((0|l)<(0|E)|((0|l)==(0|E)?f>>>0<(0|r[M>>2])>>>0:0))}if(r[(M=i)>>2]=c,r[M+4>>2]=h,!((0|h)>0|!(0|h)&c>>>0>0))break e;b=t,y=Q,B=F,E=x,M=C,t=_,Q=u,x=S,_=b,u=y,F=P,P=B,S=E,C=D,D=M}$e(S),$e(P),$e(U),u=1;break A}u=c}while(0);$e(U),$e(t),$e(u),u=0}}while(0);return I=s,0|(U=u)}}return $e(U),I=s,0|(U=u)},_polygonToCellsExperimental:function(A,e,t,n,i,o){n|=0,i|=0,o|=0;var a,s,u,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0;u=I,I=I+160|0,l=u+64|0,g=u+112|0,w=u,xe(h=u+80|0,A|=0,e|=0,t|=0),ae(l,0|r[(c=h)>>2],0|r[c+4>>2],e),a=0|r[(c=l)>>2],c=0|r[c+4>>2],f=0|r[h+8>>2],r[(d=g+4|0)>>2]=r[h>>2],r[d+4>>2]=r[h+4>>2],r[d+8>>2]=r[h+8>>2],r[d+12>>2]=r[h+12>>2],r[d+16>>2]=r[h+16>>2],r[d+20>>2]=r[h+20>>2],r[d+24>>2]=r[h+24>>2],r[d+28>>2]=r[h+28>>2],r[(d=w)>>2]=a,r[d+4>>2]=c,r[(d=w+8|0)>>2]=f,e=g,t=(A=w+12|0)+36|0;do{r[A>>2]=r[e>>2],A=A+4|0,e=e+4|0}while((0|A)<(0|t));if(r[(g=w+48|0)>>2]=r[l>>2],r[g+4>>2]=r[l+4>>2],r[g+8>>2]=r[l+8>>2],r[g+12>>2]=r[l+12>>2],!(0|a)&!(0|c))return I=u,0|(w=f);t=w+16|0,s=w+24|0,h=w+28|0,f=0,l=0,e=a,A=c;do{if(!((0|f)<(0|i)|(0|f)==(0|i)&l>>>0<n>>>0)){p=4;break}if(c=l,l=0|et(0|l,0|f,1,0),f=0|k(),r[(c=o+(c<<3)|0)>>2]=e,r[c+4>>2]=A,ue(g),!(0|(e=0|r[(A=g)>>2]))&!(0|(A=0|r[A+4>>2]))){if(Qe(t),!(0|(A=0|r[(e=t)>>2]))&!(0|(e=0|r[e+4>>2]))){p=10;break}se(A,e,0|r[h>>2],g),e=0|r[(A=g)>>2],A=0|r[A+4>>2]}r[(c=w)>>2]=e,r[c+4>>2]=A}while(!(!(0|e)&!(0|A)));return 4==(0|p)?(0|(e=0|r[(A=w+40|0)>>2])&&$e(e),r[(p=w+16|0)>>2]=0,r[p+4>>2]=0,r[s>>2]=0,r[w+36>>2]=0,r[h>>2]=-1,r[w+32>>2]=0,r[A>>2]=0,se(0,0,0,g),r[w>>2]=0,r[w+4>>2]=0,r[d>>2]=0,I=u,0|(w=14)):(10==(0|p)&&(r[w>>2]=0,r[w+4>>2]=0,r[d>>2]=r[s>>2]),w=0|r[d>>2],I=u,0|w)},_readInt64AsDoubleFromPointer:function(A){return+(+((0|r[(A|=0)>>2])>>>0)+4294967296*+(0|r[A+4>>2]))},_res0CellCount:function(){return 122},_round:vt,_sbrk:mt,_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,n,i,o,a){A|=0,n|=0,i|=0,o|=0;var s,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0;if(s=I,I=I+16|0,p=s,!((0|(t|=0))>0|!(0|t)&(e|=0)>>>0>0))return I=s,0|(p=0);if((0|(a|=0))>=16)return I=s,0|(p=12);g=0,d=0,h=0,u=0;A:for(;;){if(c=0|ft(0|(f=0|r[(l=A+(g<<3)|0)>>2]),0|(l=0|r[l+4>>2]),52),k(),(15&c)>(0|a)){u=12,f=11;break}if(ae(p,f,l,a),!(0|(l=0|r[(c=p)>>2]))&!(0|(c=0|r[c+4>>2])))f=h;else{f=h;do{if(!((0|u)<(0|o)|(0|u)==(0|o)&f>>>0<i>>>0)){f=10;break A}r[(h=n+(f<<3)|0)>>2]=l,r[h+4>>2]=c,f=0|et(0|f,0|u,1,0),u=0|k(),ue(p),l=0|r[(h=p)>>2],c=0|r[h+4>>2]}while(!(!(0|l)&!(0|c)))}if(g=0|et(0|g,0|d,1,0),!((0|(d=0|k()))<(0|t)|(0|d)==(0|t)&g>>>0<e>>>0)){u=0,f=11;break}h=f}return 10==(0|f)?(I=s,0|(p=14)):11==(0|f)?(I=s,0|u):0},_uncompactCellsSize:function(A,e,t,n,i){A|=0,e|=0,t|=0,n|=0,i|=0;var o,a,s=0,u=0,f=0,l=0,c=0,h=0;a=I,I=I+16|0,o=a;A:do{if((0|t)>0|!(0|t)&e>>>0>0){for(c=0,u=0,s=0,h=0;;){if(!(!(0|(f=0|r[(l=A+(c<<3)|0)>>2]))&!(0|(l=0|r[l+4>>2]))||(l=!(0|VA(f,l,n,o)),u=0|et(0|r[(f=o)>>2],0|r[f+4>>2],0|u,0|s),s=0|k(),l))){s=12;break}if(c=0|et(0|c,0|h,1,0),!((0|(h=0|k()))<(0|t)|(0|h)==(0|t)&c>>>0<e>>>0))break A}return I=a,0|s}u=0,s=0}while(0);return r[i>>2]=u,r[i+4>>2]=s,I=a,0|(i=0)},_vertexToLatLng:function(A,e,t){t|=0;var n,i,o,a,s=0,u=0;return a=I,I=I+192|0,i=a,o=a+168|0,s=0|ft(0|(A|=0),0|(e|=0),56),k(),s&=7,0|(n=0|ne(A,u=-2130706433&e|134217728,o))?(I=a,0|(u=n)):(e=0|ft(0|A,0|e,52),k(),e&=15,0|jA(A,u)?TA(o,e,s,1,i):UA(o,e,s,1,i),u=i+8|0,r[t>>2]=r[u>>2],r[t+4>>2]=r[u+4>>2],r[t+8>>2]=r[u+8>>2],r[t+12>>2]=r[u+12>>2],I=a,0|(u=0))},establishStackSpace:function(A,e){I=A|=0},stackAlloc:function(A){var e;return e=I,I=(I=I+(A|=0)|0)+15&-16,0|e},stackRestore:function(A){I=A|=0},stackSave:function(){return 0|I}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{b:function(A){w=A},c:function(){return w},d:function(A,e,t,n){dA("Assertion failed: "+C(A)+", at: "+[e?C(e):"unknown filename",t,n?C(n):"unknown function"])},e:function(A){return t.___errno_location&&(_[t.___errno_location()>>2]=A),A},f:q,g:function(A,e,t){M.set(M.subarray(e,e+t),A)},h:function(A){var e=q(),t=16777216,n=2130706432;if(A>n)return!1;for(var r=Math.max(e,16777216);r<A;)r=r<=536870912?S(2*r,t):Math.min(S((3*r+2147483648)/4,t),n);return!!function(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(E),nA(e),I(e),1}catch(A){}}(r)},i:function(A){dA("OOM")},o:28640,p:28624},B);t.___divdi3=tA.___divdi3,t.___muldi3=tA.___muldi3,t.___remdi3=tA.___remdi3,t.___uremdi3=tA.___uremdi3,t._areNeighborCells=tA._areNeighborCells,t._bitshift64Ashr=tA._bitshift64Ashr,t._bitshift64Lshr=tA._bitshift64Lshr,t._bitshift64Shl=tA._bitshift64Shl,t._calloc=tA._calloc,t._cellAreaKm2=tA._cellAreaKm2,t._cellAreaM2=tA._cellAreaM2,t._cellAreaRads2=tA._cellAreaRads2,t._cellToBoundary=tA._cellToBoundary,t._cellToCenterChild=tA._cellToCenterChild,t._cellToChildPos=tA._cellToChildPos,t._cellToChildren=tA._cellToChildren,t._cellToChildrenSize=tA._cellToChildrenSize,t._cellToLatLng=tA._cellToLatLng,t._cellToLocalIj=tA._cellToLocalIj,t._cellToParent=tA._cellToParent,t._cellToVertex=tA._cellToVertex,t._cellToVertexes=tA._cellToVertexes,t._cellsToDirectedEdge=tA._cellsToDirectedEdge,t._cellsToLinkedMultiPolygon=tA._cellsToLinkedMultiPolygon,t._childPosToCell=tA._childPosToCell,t._compactCells=tA._compactCells,t._constructCell=tA._constructCell,t._destroyLinkedMultiPolygon=tA._destroyLinkedMultiPolygon,t._directedEdgeToBoundary=tA._directedEdgeToBoundary,t._directedEdgeToCells=tA._directedEdgeToCells,t._edgeLengthKm=tA._edgeLengthKm,t._edgeLengthM=tA._edgeLengthM,t._edgeLengthRads=tA._edgeLengthRads;var nA=t._emscripten_replace_memory=tA._emscripten_replace_memory;t._free=tA._free,t._getBaseCellNumber=tA._getBaseCellNumber,t._getDirectedEdgeDestination=tA._getDirectedEdgeDestination,t._getDirectedEdgeOrigin=tA._getDirectedEdgeOrigin,t._getHexagonAreaAvgKm2=tA._getHexagonAreaAvgKm2,t._getHexagonAreaAvgM2=tA._getHexagonAreaAvgM2,t._getHexagonEdgeLengthAvgKm=tA._getHexagonEdgeLengthAvgKm,t._getHexagonEdgeLengthAvgM=tA._getHexagonEdgeLengthAvgM,t._getIcosahedronFaces=tA._getIcosahedronFaces,t._getIndexDigit=tA._getIndexDigit,t._getNumCells=tA._getNumCells,t._getPentagons=tA._getPentagons,t._getRes0Cells=tA._getRes0Cells,t._getResolution=tA._getResolution,t._greatCircleDistanceKm=tA._greatCircleDistanceKm,t._greatCircleDistanceM=tA._greatCircleDistanceM,t._greatCircleDistanceRads=tA._greatCircleDistanceRads,t._gridDisk=tA._gridDisk,t._gridDiskDistances=tA._gridDiskDistances,t._gridDistance=tA._gridDistance,t._gridPathCells=tA._gridPathCells,t._gridPathCellsSize=tA._gridPathCellsSize,t._gridRing=tA._gridRing,t._gridRingUnsafe=tA._gridRingUnsafe,t._i64Add=tA._i64Add,t._i64Subtract=tA._i64Subtract,t._isPentagon=tA._isPentagon,t._isResClassIII=tA._isResClassIII,t._isValidCell=tA._isValidCell,t._isValidDirectedEdge=tA._isValidDirectedEdge,t._isValidIndex=tA._isValidIndex,t._isValidVertex=tA._isValidVertex,t._latLngToCell=tA._latLngToCell,t._llvm_ctlz_i64=tA._llvm_ctlz_i64,t._llvm_maxnum_f64=tA._llvm_maxnum_f64,t._llvm_minnum_f64=tA._llvm_minnum_f64,t._llvm_round_f64=tA._llvm_round_f64,t._localIjToCell=tA._localIjToCell,t._malloc=tA._malloc,t._maxFaceCount=tA._maxFaceCount,t._maxGridDiskSize=tA._maxGridDiskSize,t._maxPolygonToCellsSize=tA._maxPolygonToCellsSize,t._maxPolygonToCellsSizeExperimental=tA._maxPolygonToCellsSizeExperimental,t._memcpy=tA._memcpy,t._memset=tA._memset,t._originToDirectedEdges=tA._originToDirectedEdges,t._pentagonCount=tA._pentagonCount,t._polygonToCells=tA._polygonToCells,t._polygonToCellsExperimental=tA._polygonToCellsExperimental,t._readInt64AsDoubleFromPointer=tA._readInt64AsDoubleFromPointer,t._res0CellCount=tA._res0CellCount,t._round=tA._round,t._sbrk=tA._sbrk,t._sizeOfCellBoundary=tA._sizeOfCellBoundary,t._sizeOfCoordIJ=tA._sizeOfCoordIJ,t._sizeOfGeoLoop=tA._sizeOfGeoLoop,t._sizeOfGeoPolygon=tA._sizeOfGeoPolygon,t._sizeOfH3Index=tA._sizeOfH3Index,t._sizeOfLatLng=tA._sizeOfLatLng,t._sizeOfLinkedGeoPolygon=tA._sizeOfLinkedGeoPolygon,t._uncompactCells=tA._uncompactCells,t._uncompactCellsSize=tA._uncompactCellsSize,t._vertexToLatLng=tA._vertexToLatLng,t.establishStackSpace=tA.establishStackSpace;var rA,iA,oA=t.stackAlloc=tA.stackAlloc,aA=t.stackRestore=tA.stackRestore,sA=t.stackSave=tA.stackSave;if(t.asm=tA,t.cwrap=function(A,e,t,n){var r=(t=t||[]).every(function(A){return"number"===A});return"string"!==e&&r&&!n?b(A):function(){return y(A,e,t,arguments)}},t.setValue=function(A,e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":E[A|0]=e;break;case"i16":k[A>>1]=e;break;case"i32":_[A>>2]=e;break;case"i64":W=[e>>>0,(X=e,+z(X)>=1?X>0?(0|H(+N(X/4294967296),4294967295))>>>0:~~+Y((X-+(~~X>>>0))/4294967296)>>>0:0)],_[A>>2]=W[0],_[A+4>>2]=W[1];break;case"float":x[A>>2]=e;break;case"double":Q[A>>3]=e;break;default:dA("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 k[A>>1];case"i32":case"i64":return _[A>>2];case"float":return x[A>>2];case"double":return Q[A>>3];default:dA("invalid type for getValue: "+e)}return null},Z)if(K(Z)||(rA=Z,Z=t.locateFile?t.locateFile(rA,g):g+rA),o||s){var uA=l(Z);M.set(uA,8)}else{V++,t.monitorRunDependencies&&t.monitorRunDependencies(V);var fA=function(A){A.byteLength&&(A=new Uint8Array(A)),M.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(V--,t.monitorRunDependencies&&t.monitorRunDependencies(V),0==V&&j){var A=j;j=null,A()}}()},lA=function(){f(Z,fA,function(){throw"could not load memory initializer "+Z})},cA=eA(Z);if(cA)fA(cA.buffer);else if(t.memoryInitializerRequest){var hA=function(){var A=t.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var n=eA(t.memoryInitializerRequestURL);if(!n)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+Z),void lA();e=n.buffer}fA(e)};t.memoryInitializerRequest.response?setTimeout(hA,0):t.memoryInitializerRequest.addEventListener("load",hA)}else lA()}function gA(A){function e(){iA||(iA=!0,v||(F(L),F(G),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)O(t.postRun.shift());F(R)}()))}V>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)U(t.preRun.shift());F(T)}(),V>0||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e()))}function dA(A){throw t.onAbort&&t.onAbort(A),d(A+=""),p(A),v=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(j=function A(){iA||gA(),iA||(j=A)},t.run=gA,t.abort=dA,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return gA(),A}("object"==typeof _A?_A:{}),xA="number",QA={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",16:"Index argument was not valid",17:"Base cell number was outside of acceptable range",18:"Child indexing digits invalid",19:"Child indexing digits refer to a deleted subsequence"},DA={1e3:"Unknown unit",1001:"Array length out of bounds",1002:"Got unexpected null value for H3 index"};function CA(A,e,t){var n=t&&"value"in t,r=new Error((A[e]||"Unknown error")+" (code: "+e+(n?", value: "+t.value:"")+")");return r.code=e,r}function SA(A,e){return CA(QA,A,2===arguments.length?{value:e}:{})}function IA(A){if(0!==A)throw SA(A)}var PA={};[["sizeOfH3Index",xA],["sizeOfLatLng",xA],["sizeOfCellBoundary",xA],["sizeOfGeoLoop",xA],["sizeOfGeoPolygon",xA],["sizeOfLinkedGeoPolygon",xA],["sizeOfCoordIJ",xA],["readInt64AsDoubleFromPointer",xA],["isValidCell",xA,[xA,xA]],["isValidIndex",xA,[xA,xA]],["latLngToCell",xA,[xA,xA,xA,xA]],["cellToLatLng",xA,[xA,xA,xA]],["cellToBoundary",xA,[xA,xA,xA]],["maxGridDiskSize",xA,[xA,xA]],["gridDisk",xA,[xA,xA,xA,xA]],["gridDiskDistances",xA,[xA,xA,xA,xA,xA]],["gridRing",xA,[xA,xA,xA,xA]],["gridRingUnsafe",xA,[xA,xA,xA,xA]],["maxPolygonToCellsSize",xA,[xA,xA,xA,xA]],["polygonToCells",xA,[xA,xA,xA,xA]],["maxPolygonToCellsSizeExperimental",xA,[xA,xA,xA,xA]],["polygonToCellsExperimental",xA,[xA,xA,xA,xA,xA,xA]],["cellsToLinkedMultiPolygon",xA,[xA,xA,xA]],["destroyLinkedMultiPolygon",null,[xA]],["compactCells",xA,[xA,xA,xA,xA]],["uncompactCells",xA,[xA,xA,xA,xA,xA,xA]],["uncompactCellsSize",xA,[xA,xA,xA,xA,xA]],["isPentagon",xA,[xA,xA]],["isResClassIII",xA,[xA,xA]],["getBaseCellNumber",xA,[xA,xA]],["getResolution",xA,[xA,xA]],["getIndexDigit",xA,[xA,xA,xA]],["constructCell",xA,[xA,xA,xA,xA]],["maxFaceCount",xA,[xA,xA,xA]],["getIcosahedronFaces",xA,[xA,xA,xA]],["cellToParent",xA,[xA,xA,xA,xA]],["cellToChildren",xA,[xA,xA,xA,xA]],["cellToCenterChild",xA,[xA,xA,xA,xA]],["cellToChildrenSize",xA,[xA,xA,xA,xA]],["cellToChildPos",xA,[xA,xA,xA,xA]],["childPosToCell",xA,[xA,xA,xA,xA,xA,xA]],["areNeighborCells",xA,[xA,xA,xA,xA,xA]],["cellsToDirectedEdge",xA,[xA,xA,xA,xA,xA]],["getDirectedEdgeOrigin",xA,[xA,xA,xA]],["getDirectedEdgeDestination",xA,[xA,xA,xA]],["isValidDirectedEdge",xA,[xA,xA]],["directedEdgeToCells",xA,[xA,xA,xA]],["originToDirectedEdges",xA,[xA,xA,xA]],["directedEdgeToBoundary",xA,[xA,xA,xA]],["gridDistance",xA,[xA,xA,xA,xA,xA]],["gridPathCells",xA,[xA,xA,xA,xA,xA]],["gridPathCellsSize",xA,[xA,xA,xA,xA,xA]],["cellToLocalIj",xA,[xA,xA,xA,xA,xA,xA]],["localIjToCell",xA,[xA,xA,xA,xA,xA]],["getHexagonAreaAvgM2",xA,[xA,xA]],["getHexagonAreaAvgKm2",xA,[xA,xA]],["getHexagonEdgeLengthAvgM",xA,[xA,xA]],["getHexagonEdgeLengthAvgKm",xA,[xA,xA]],["greatCircleDistanceM",xA,[xA,xA]],["greatCircleDistanceKm",xA,[xA,xA]],["greatCircleDistanceRads",xA,[xA,xA]],["cellAreaM2",xA,[xA,xA,xA]],["cellAreaKm2",xA,[xA,xA,xA]],["cellAreaRads2",xA,[xA,xA,xA]],["edgeLengthM",xA,[xA,xA,xA]],["edgeLengthKm",xA,[xA,xA,xA]],["edgeLengthRads",xA,[xA,xA,xA]],["getNumCells",xA,[xA,xA]],["getRes0Cells",xA,[xA]],["res0CellCount",xA],["getPentagons",xA,[xA,xA]],["pentagonCount",xA],["cellToVertex",xA,[xA,xA,xA,xA]],["cellToVertexes",xA,[xA,xA,xA]],["vertexToLatLng",xA,[xA,xA,xA]],["isValidVertex",xA,[xA,xA]]].forEach(function(A){PA[A[0]]=_A.cwrap.apply(_A,A)});var FA=16,TA=PA.sizeOfH3Index();PA.sizeOfLatLng();var LA=PA.sizeOfCellBoundary();PA.sizeOfGeoPolygon(),PA.sizeOfGeoLoop(),PA.sizeOfLinkedGeoPolygon(),PA.sizeOfCoordIJ();var GA=Math.pow(2,32)-1;function RA(A){if(A>GA)throw function(A,e){return CA(DA,A,2===arguments.length?{value:e}:{})}(1001,A);return A}var UA=/[^0-9a-fA-F]/;function OA(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||UA.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),FA);return[parseInt(A.substring(A.length-8),FA),e]}function zA(A){if(A>=0)return A.toString(FA);var e=YA(8,(A&=2147483647).toString(FA));return e=(parseInt(e[0],FA)+8).toString(FA)+e.substring(1)}function YA(A,e){for(var t=A-e.length,n="",r=0;r<t;r++)n+="0";return n+=e}function NA(A,e){void 0===e&&(e=0);var t=_A.getValue(A+TA*e,"i32"),n=_A.getValue(A+TA*e+4,"i32");return n?function(A,e){return zA(e)+YA(8,zA(A))}(t,n):null}function HA(A,e){for(var t=[],n=0;n<e;n++){var r=NA(A,n);null!==r&&t.push(r)}return t}function VA(A){return 180*_A.getValue(A,"double")/Math.PI}function jA(A){return[VA(A+8),VA(A)]}function XA(A){var e=OA(A),t=e[0],n=e[1];return Boolean(PA.isValidCell(t,n))}function WA(A,e){var t=_A._malloc(LA),n=OA(A),r=n[0],i=n[1];try{return IA(PA.cellToBoundary(r,i,t)),function(A){for(var e=_A.getValue(A,"i32"),t=A+8,n=[],r=jA,i=0;i<2*e;i+=2)n.push(r(t+8*i));return n.push(n[0]),n}(t)}finally{_A._free(t)}}function ZA(A,e){if(!XA(A))return[];var t=OA(A),n=t[0],r=t[1],i=RA(function(A,e){if(!XA(A))throw SA(5);var t=OA(A),n=t[0],r=t[1],i=_A._malloc(8);try{return IA(PA.cellToChildrenSize(n,r,e,i)),o=i,PA.readInt64AsDoubleFromPointer(o)}finally{_A._free(i)}var o}(A,e)),o=_A._calloc(i,TA);try{return IA(PA.cellToChildren(n,r,e,o)),HA(o,i)}finally{_A._free(o)}}function JA(){var A=PA.res0CellCount(),e=_A._malloc(TA*A);try{return IA(PA.getRes0Cells(e)),HA(e,A)}finally{_A._free(e)}}function KA(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 n=Object.getOwnPropertyDescriptor(A,e);Object.defineProperty(t,e,n.get?n:{enumerable:!0,get:function(){return A[e]}})}),t}var qA=function(A){var e,t=void 0!==(A=A||{})?A:{},n={};for(e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);var r,i,o,a,s;r="object"==typeof window,i="function"==typeof importScripts,a="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=a&&!r&&!i,s=!r&&!o&&!i;var u,f,l,c,h,g="";o?(g=__dirname+"/",u=function(A,e){var t;return(t=tA(A))||(c||(c=require("fs")),h||(h=require("path")),A=h.normalize(A),t=c.readFileSync(A)),e?t:t.toString()},l=function(A){var e=u(A,!0);return e.buffer||(e=new Uint8Array(e)),b(e.buffer),e},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),t.inspect=function(){return"[Emscripten Module object]"}):s?("undefined"!=typeof read&&(u=function(A){var e=tA(A);return e?AA(e):read(A)}),l=function(A){var e;return(e=tA(A))?e:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(b("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)):(r||i)&&(i?g=self.location.href:document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",u=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var t=tA(A);if(t)return AA(t);throw e}},i&&(l=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=tA(A);if(t)return t;throw e}}),f=function(A,e,t){var n=new XMLHttpRequest;n.open("GET",A,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status||0==n.status&&n.response)e(n.response);else{var r=tA(A);r?e(r.buffer):t()}},n.onerror=t,n.send(null)});var d=t.print||console.log.bind(console),p=t.printErr||console.warn.bind(console);for(e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);n=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram;var w=0,v=function(){return w};var m=!1;function b(A,e){A||pA("Assertion failed: "+e)}function y(A){var e=t["_"+A];return b(e,"Cannot call unknown function "+A+", make sure it is exported"),e}function B(A,e,t,n,r){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,n){if(!(n>0))return 0;for(var r=t,i=t+n-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=aA(t),t)}return e},array:function(A){var e=aA(A.length);return function(A,e){M.set(A,e)}(A,e),e}};var o=y(A),a=[],s=0;if(n)for(var u=0;u<n.length;u++){var f=i[t[u]];f?(0===s&&(s=uA()),a[u]=f(n[u])):a[u]=n[u]}var l=o.apply(null,a);return l=function(A){return"string"===e?S(A):"boolean"===e?Boolean(A):A}(l),0!==s&&sA(s),l}var E,M,k,_,x,Q,D,C="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(A,e){return A?function(A,e,t){for(var n=e+t,r=e;A[r]&&!(r>=n);)++r;if(r-e>16&&A.subarray&&C)return C.decode(A.subarray(e,r));for(var i="";e<r;){var o=A[e++];if(128&o){var a=63&A[e++];if(192!=(224&o)){var s=63&A[e++];if((o=224==(240&o)?(15&o)<<12|a<<6|s:(7&o)<<18|a<<12|s<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var u=o-65536;i+=String.fromCharCode(55296|u>>10,56320|1023&u)}}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 P(A){E=A,t.HEAP8=M=new Int8Array(A),t.HEAP16=_=new Int16Array(A),t.HEAP32=x=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=D=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var F=t.TOTAL_MEMORY||33554432;function T(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var n=e.func;"number"==typeof n?void 0===e.arg?t.dynCall_v(n):t.dynCall_vi(n,e.arg):n(void 0===e.arg?null:e.arg)}else e()}}F=(E=t.buffer?t.buffer:new ArrayBuffer(F)).byteLength,P(E),x[6004]=5266928;var L=[],G=[],R=[],U=[];function O(A){L.unshift(A)}function z(A){U.unshift(A)}var Y=Math.abs,N=Math.ceil,H=Math.floor,V=Math.min,j=0,X=null;t.preloadedImages={},t.preloadedAudios={};var W,Z,J=null,K="data:application/octet-stream;base64,";function q(A){return String.prototype.startsWith?A.startsWith(K):0===A.indexOf(K)}function $(){return M.length}function AA(A){for(var e=[],t=0;t<A.length;t++){var n=A[t];n>255&&(n&=255),e.push(String.fromCharCode(n))}return e.join("")}J="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";var eA="function"==typeof atob?atob:function(A){var e,t,n,r,i,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s="",u=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=a.indexOf(A.charAt(u++))<<2|(r=a.indexOf(A.charAt(u++)))>>4,t=(15&r)<<4|(i=a.indexOf(A.charAt(u++)))>>2,n=(3&i)<<6|(o=a.indexOf(A.charAt(u++))),s+=String.fromCharCode(e),64!==i&&(s+=String.fromCharCode(t)),64!==o&&(s+=String.fromCharCode(n))}while(u<A.length);return s};function tA(A){if(q(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=eA(A),n=new Uint8Array(t.length),r=0;r<t.length;++r)n[r]=t.charCodeAt(r);return n}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(K.length))}var nA=function(A,e,t){var n=new A.Int8Array(t),r=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,s=A.Math.abs,u=A.Math.sqrt,f=A.Math.pow,l=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,v=A.Math.ceil,m=A.Math.imul,b=A.Math.min,y=A.Math.clz32,B=e.b,E=e.c,M=e.d,k=e.e,_=e.f,x=e.g,Q=e.h,D=e.i,C=24048;function S(A,e,t,n){var r,i;0|I(A|=0,e|=0,t|=0,n|=0,0)&&(De(0|n,0,(i=1+(0|m(3*t|0,t+1|0))|0)<<3),(r=0|me(i,4))&&(P(A,e,t,n,r,i,0),ve(r)))}function I(A,e,t,n,i){A|=0,e|=0,t|=0,i|=0;var o,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0;if(o=C,C=C+16|0,g=o,r[(a=n|=0)>>2]=A,r[a+4>>2]=e,(a=!!(0|i))&&(r[i>>2]=0),0|FA(A,e))return C=o,0|(g=1);r[g>>2]=0;A:do{if((0|t)>=1)if(a)for(l=0,c=1,h=1,s=0,a=A;;){if(!(s|l)){if(!(0|(a=0|F(a,e,4,g)))&!(0|(e=0|E()))){a=2;break A}if(0|FA(a,e)){a=1;break A}}if(!(0|(a=0|F(a,e,0|r[16+(l<<2)>>2],g)))&!(0|(e=0|E()))){a=2;break A}if(r[(A=n+(h<<3)|0)>>2]=a,r[A+4>>2]=e,r[i+(h<<2)>>2]=c,A=(0|(s=s+1|0))==(0|c),f=6==(0|(u=l+1|0)),0|FA(a,e)){a=1;break A}if((0|(c=c+(f&A&1)|0))>(0|t)){a=0;break}l=A?f?0:u:l,h=h+1|0,s=A?0:s}else for(l=0,c=1,h=1,s=0,a=A;;){if(!(s|l)){if(!(0|(a=0|F(a,e,4,g)))&!(0|(e=0|E()))){a=2;break A}if(0|FA(a,e)){a=1;break A}}if(!(0|(a=0|F(a,e,0|r[16+(l<<2)>>2],g)))&!(0|(e=0|E()))){a=2;break A}if(r[(A=n+(h<<3)|0)>>2]=a,r[A+4>>2]=e,A=(0|(s=s+1|0))==(0|c),f=6==(0|(u=l+1|0)),0|FA(a,e)){a=1;break A}if((0|(c=c+(f&A&1)|0))>(0|t)){a=0;break}l=A?f?0:u:l,h=h+1|0,s=A?0:s}else a=0}while(0);return C=o,0|(g=a)}function P(A,e,t,n,i,o,a){t|=0,n|=0,i|=0,o|=0,a|=0;var s,u,f=0,l=0,c=0,h=0,g=0;if(u=C,C=C+16|0,s=u,!(0|(A|=0))&!(0|(e|=0)))C=u;else{if(f=0|Ee(0|A,0|e,0|o,((0|o)<0)<<31>>31),E(),!(!(0|(g=0|r[(h=l=n+(f<<3)|0)>>2]))&!(0|(h=0|r[h+4>>2]))|(c=(0|g)==(0|A)&(0|h)==(0|e))))do{c=(0|(h=0|r[(g=l=n+((f=(f+1|0)%(0|o)|0)<<3)|0)>>2]))==(0|A)&(0|(g=0|r[g+4>>2]))==(0|e)}while(!(!(0|h)&!(0|g)|c));f=i+(f<<2)|0,c&&(0|r[f>>2])<=(0|a)||(r[(g=l)>>2]=A,r[g+4>>2]=e,r[f>>2]=a,(0|a)>=(0|t)||(g=a+1|0,r[s>>2]=0,P(h=0|F(A,e,2,s),0|E(),t,n,i,o,g),r[s>>2]=0,P(h=0|F(A,e,3,s),0|E(),t,n,i,o,g),r[s>>2]=0,P(h=0|F(A,e,1,s),0|E(),t,n,i,o,g),r[s>>2]=0,P(h=0|F(A,e,5,s),0|E(),t,n,i,o,g),r[s>>2]=0,P(h=0|F(A,e,4,s),0|E(),t,n,i,o,g),r[s>>2]=0,P(h=0|F(A,e,6,s),0|E(),t,n,i,o,g))),C=u}}function F(A,e,t,n){A|=0,e|=0,t|=0;var i,o,a=0,s=0,u=0,f=0,l=0,c=0,h=0;if((0|r[(n|=0)>>2])>0){a=0;do{t=0|sA(t),a=a+1|0}while((0|a)<(0|r[n>>2]))}i=0|Me(0|A,0|e,45),E(),o=127&i,s=0|TA(A,e),a=0|Me(0|A,0|e,52),E(),a&=15;A:do{if(a)for(;;){if(c=0|Me(0|A,0|e,0|(l=3*(15-a|0)|0)),E(),c&=7,h=!(0|OA(a)),a=a+-1|0,f=0|ke(7,0,0|l),e&=~E(),A=(l=0|ke(0|r[(h?464:48)+(28*c|0)+(t<<2)>>2],0,0|l))|A&~f,e|=0|E(),!(t=0|r[(h?672:256)+(28*c|0)+(t<<2)>>2])){t=0;break A}if(!a){u=6;break}}else u=6}while(0);6==(0|u)&&(A|=c=0|ke(0|(h=0|r[880+(28*o|0)+(t<<2)>>2]),0,45),e=E()|-1040385&e,t=0|r[4304+(28*o|0)+(t<<2)>>2],127&~h||(h=0|ke(0|r[880+(28*o|0)+20>>2],0,45),e=E()|-1040385&e,t=0|r[4304+(28*o|0)+20>>2],A=0|GA(h|A,e),e=0|E(),r[n>>2]=1+(0|r[n>>2]))),u=0|Me(0|A,0|e,45),E(),u&=127;A:do{if(0|L(u)){e:do{if(1==(0|TA(A,e))){if((0|o)!=(0|u)){if(0|O(u,0|r[7728+(28*o|0)>>2])){A=0|UA(A,e),s=1,e=0|E();break}A=0|GA(A,e),s=1,e=0|E();break}switch(0|s){case 5:A=0|UA(A,e),e=0|E(),r[n>>2]=5+(0|r[n>>2]),s=0;break e;case 3:A=0|GA(A,e),e=0|E(),r[n>>2]=1+(0|r[n>>2]),s=0;break e;default:return h=0,B(0|(c=0)),0|h}}else s=0}while(0);if((0|t)>0){a=0;do{A=0|LA(A,e),e=0|E(),a=a+1|0}while((0|a)!=(0|t))}if((0|o)!=(0|u)){if(!(0|G(u))){if(!!(0|s)|5!=(0|TA(A,e)))break;r[n>>2]=1+(0|r[n>>2]);break}switch(127&i){case 8:case 118:break A}3!=(0|TA(A,e))&&(r[n>>2]=1+(0|r[n>>2]))}}else if((0|t)>0){a=0;do{A=0|GA(A,e),e=0|E(),a=a+1|0}while((0|a)!=(0|t))}}while(0);return r[n>>2]=((0|r[n>>2])+t|0)%6|0,h=A,B(0|(c=e)),0|h}function T(A,e,t,n,o,a){e|=0,t|=0,n|=0,o|=0,a|=0;var s,u,f,l,c,h,g,d,p,w=0,v=0,m=0,b=0,y=0,B=0,M=0,k=0,_=0,x=0,Q=0,D=0,S=0,I=0;if(p=C,C=C+48|0,h=p+32|0,g=p+16|0,d=p,(0|(w=0|r[(A|=0)>>2]))<=0)return C=p,0|(D=0);s=A+4|0,u=h+8|0,f=g+8|0,l=d+8|0,c=((0|e)<0)<<31>>31,Q=0;A:for(;;){_=(v=0|r[s>>2])+(Q<<4)|0,r[h>>2]=r[_>>2],r[h+4>>2]=r[_+4>>2],r[h+8>>2]=r[_+8>>2],r[h+12>>2]=r[_+12>>2],(0|Q)==(w+-1|0)?(r[g>>2]=r[v>>2],r[g+4>>2]=r[v+4>>2],r[g+8>>2]=r[v+8>>2],r[g+12>>2]=r[v+12>>2]):(_=v+(Q+1<<4)|0,r[g>>2]=r[_>>2],r[g+4>>2]=r[_+4>>2],r[g+8>>2]=r[_+8>>2],r[g+12>>2]=r[_+12>>2]),_=0|j(h,g,t);e:do{if((0|_)>0){x=+(0|_),k=0;t:for(;;){I=+(_-k|0),S=+(0|k),i[d>>3]=+i[h>>3]*I/x+ +i[g>>3]*S/x,i[l>>3]=+i[u>>3]*I/x+ +i[f>>3]*S/x,v=0|Ee(0|(B=0|zA(d,t)),0|(M=0|E()),0|e,0|c),E(),b=0|r[(m=w=a+(v<<3)|0)>>2],m=0|r[m+4>>2];n:do{if(!(0|b)&!(0|m))D=14;else for(y=0;;){if((0|y)>(0|e)){w=1;break n}if((0|b)==(0|B)&(0|m)==(0|M)){w=7;break n}if(!(0|(b=0|r[(m=w=a+((v=(v+1|0)%(0|e)|0)<<3)|0)>>2]))&!(0|(m=0|r[m+4>>2]))){D=14;break}y=y+1|0}}while(0);switch(14==(0|D)&&(D=0,!(0|B)&!(0|M)?w=7:(r[w>>2]=B,r[w+4>>2]=M,w=0|r[n>>2],r[(y=o+(w<<3)|0)>>2]=B,r[y+4>>2]=M,r[n>>2]=w+1,w=0)),7&w){case 7:case 0:break;default:break t}if((0|_)<=(0|(k=k+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|(Q=Q+1|0))>=(0|(w=0|r[A>>2]))){w=0,D=20;break}}return 20==(0|D)?(C=p,0|w):0}function L(A){return 0|r[7728+(28*(A|=0)|0)+16>>2]}function G(A){return 4==(0|(A|=0))|117==(0|A)|0}function R(A){return 0|r[11152+(216*(0|r[(A|=0)>>2])|0)+(72*(0|r[A+4>>2])|0)+(24*(0|r[A+8>>2])|0)+(r[A+12>>2]<<3)>>2]}function U(A){return 0|r[11152+(216*(0|r[(A|=0)>>2])|0)+(72*(0|r[A+4>>2])|0)+(24*(0|r[A+8>>2])|0)+(r[A+12>>2]<<3)+4>>2]}function O(A,e){return e|=0,(0|r[7728+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|r[7728+(28*A|0)+24>>2])==(0|e))}function z(A,e){return 0|r[880+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function Y(A,e){return e|=0,(0|r[880+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|r[880+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|r[880+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|r[880+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|r[880+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|r[880+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|r[880+(28*A|0)+24>>2])==(0|e)?6:7)}function N(A){return+i[(A|=0)+16>>3]<+i[A+24>>3]|0}function H(A,e){A|=0;var t,n,r=0;return(r=+i[(e|=0)>>3])>=+i[A+8>>3]&&r<=+i[A>>3]?(t=+i[A+16>>3],r=+i[A+24>>3],e=(n=+i[e+8>>3])>=r,A=n<=t&1,t<r?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function V(A,e){A|=0,e|=0;var t,n,o,a,u,f,l=0,c=0;a=C,C=C+288|0,t=a+264|0,n=a+96|0,c=(l=o=a)+96|0;do{r[l>>2]=0,l=l+4|0}while((0|l)<(0|c));return jA(e,o),HA(c=0|r[(l=o)>>2],l=0|r[l+4>>2],t),VA(c,l,n),u=+QA(t,n+8|0),i[t>>3]=+i[A>>3],i[(l=t+8|0)>>3]=+i[A+16>>3],i[n>>3]=+i[A+8>>3],i[(c=n+8|0)>>3]=+i[A+24>>3],f=+QA(t,n),c=~~+v(+f*f/+_e(+ +s(+(+i[l>>3]-+i[c>>3])/(+i[t>>3]-+i[n>>3])),3)/(u*(2.59807621135*u)*.8)),C=a,0|(0|c?c:1)}function j(A,e,t){A|=0,e|=0,t|=0;var n,i,o,a,s,u=0,f=0;a=C,C=C+288|0,n=a+264|0,i=a+96|0,f=(u=o=a)+96|0;do{r[u>>2]=0,u=u+4|0}while((0|u)<(0|f));return jA(t,o),HA(u=0|r[(f=o)>>2],f=0|r[f+4>>2],n),VA(u,f,i),s=+QA(n,i+8|0),f=~~+v(+ +QA(A,e)/(2*s)),C=a,0|(0|f?f:1)}function X(A,e,t,n){e|=0,t|=0,n|=0,r[(A|=0)>>2]=e,r[A+4>>2]=t,r[A+8>>2]=n}function W(A,e){A|=0;var t,n,o,a,u=0,f=0,l=0,c=0,h=0,g=0,d=0;r[(a=(e|=0)+8|0)>>2]=0,n=+i[A>>3],c=+s(+n),o=+i[A+8>>3],c+=.5*(h=+s(+o)/.8660254037844386),c-=+(0|(u=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(r[e>>2]=u,h<.5*(c+1)){r[e+4>>2]=A;break}A=A+1|0,r[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,r[e+4>>2]=A,d<=h&h<2*c){u=u+1|0,r[e>>2]=u;break}r[e>>2]=u;break}if(!(c<.6666666666666666)){if(u=u+1|0,r[e>>2]=u,h<.5*c){r[e+4>>2]=A;break}A=A+1|0,r[e+4>>2]=A;break}if(h<1-c){if(r[e+4>>2]=A,2*c-1<h){r[e>>2]=u;break}}else A=A+1|0,r[e+4>>2]=A;u=u+1|0,r[e>>2]=u}while(0);do{if(n<0){if(1&A){u=~~(+(0|u)-(2*(+((g=0|be(0|u,((0|u)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|E()))+1)),r[e>>2]=u;break}u=~~(+(0|u)-2*(+((g=0|be(0|u,((0|u)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|E()))),r[e>>2]=u;break}}while(0);g=e+4|0,o<0&&(u=u-((1|A<<1)/2|0)|0,r[e>>2]=u,A=0-A|0,r[g>>2]=A),f=A-u|0,(0|u)<0?(l=0-u|0,r[g>>2]=f,r[a>>2]=l,r[e>>2]=0,A=f,u=0):l=0,(0|A)<0&&(u=u-A|0,r[e>>2]=u,l=l-A|0,r[a>>2]=l,r[g>>2]=0,A=0),t=u-l|0,f=A-l|0,(0|l)<0&&(r[e>>2]=t,r[g>>2]=f,r[a>>2]=0,A=f,u=t,l=0),(0|(f=(0|l)<(0|(f=(0|A)<(0|u)?A:u))?l:f))<=0||(r[e>>2]=u-f,r[g>>2]=A-f,r[a>>2]=l-f)}function Z(A){var e,t=0,n=0,i=0,o=0,a=0;t=0|r[(A|=0)>>2],n=0|r[(e=A+4|0)>>2],(0|t)<0&&(n=n-t|0,r[e>>2]=n,r[(a=A+8|0)>>2]=(0|r[a>>2])-t,r[A>>2]=0,t=0),(0|n)<0?(t=t-n|0,r[A>>2]=t,o=(0|r[(a=A+8|0)>>2])-n|0,r[a>>2]=o,r[e>>2]=0,n=0):(a=o=A+8|0,o=0|r[o>>2]),(0|o)<0&&(t=t-o|0,r[A>>2]=t,n=n-o|0,r[e>>2]=n,r[a>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|n)<(0|t)?n:t))?o:i))<=0||(r[A>>2]=t-i,r[e>>2]=n-i,r[a>>2]=o-i)}function J(A,e){e|=0;var t,n;n=0|r[(A|=0)+8>>2],t=+((0|r[A+4>>2])-n|0),i[e>>3]=+((0|r[A>>2])-n|0)-.5*t,i[e+8>>3]=.8660254037844386*t}function K(A,e,t){A|=0,e|=0,r[(t|=0)>>2]=(0|r[e>>2])+(0|r[A>>2]),r[t+4>>2]=(0|r[e+4>>2])+(0|r[A+4>>2]),r[t+8>>2]=(0|r[e+8>>2])+(0|r[A+8>>2])}function q(A,e,t){A|=0,e|=0,r[(t|=0)>>2]=(0|r[A>>2])-(0|r[e>>2]),r[t+4>>2]=(0|r[A+4>>2])-(0|r[e+4>>2]),r[t+8>>2]=(0|r[A+8>>2])-(0|r[e+8>>2])}function $(A,e){e|=0;var t,n=0;n=0|m(0|r[(A|=0)>>2],e),r[A>>2]=n,t=0|m(0|r[(n=A+4|0)>>2],e),r[n>>2]=t,e=0|m(0|r[(A=A+8|0)>>2],e),r[A>>2]=e}function AA(A){var e,t,n=0,i=0,o=0,a=0,s=0;s=(0|(t=0|r[(A|=0)>>2]))<0,A=(A=(i=(0|(a=((e=(0|(o=(0|r[A+4>>2])-(s?t:0)|0))<0)?0-o|0:0)+((0|r[A+8>>2])-(s?t:0))|0))<0)?0:a)-((o=(0|(i=(0|A)<(0|(i=(0|(n=(e?0:o)-(i?a:0)|0))<(0|(a=(s?0:t)-(e?o:0)-(i?a:0)|0))?n:a))?A:i))>0)?i:0)|0,n=n-(o?i:0)|0;A:do{switch(a-(o?i:0)|0){case 0:switch(0|n){case 0:return 0|(s=0|A?1==(0|A)?1:7:0);case 1:return 0|(s=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|n){case 0:return 0|(s=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|(s=7)}function eA(A){var e,t,n=0,i=0,o=0,a=0,s=0;i=0|r[(e=(A|=0)+8|0)>>2],o=0|pe(+((3*(n=(0|r[A>>2])-i|0)|0)-(i=(0|r[(t=A+4|0)>>2])-i|0)|0)/7),r[A>>2]=o,n=0|pe(+((i<<1)+n|0)/7),r[t>>2]=n,r[e>>2]=0,i=n-o|0,(0|o)<0?(s=0-o|0,r[t>>2]=i,r[e>>2]=s,r[A>>2]=0,n=i,o=0,i=s):i=0,(0|n)<0&&(o=o-n|0,r[A>>2]=o,i=i-n|0,r[e>>2]=i,r[t>>2]=0,n=0),s=o-i|0,a=n-i|0,(0|i)<0?(r[A>>2]=s,r[t>>2]=a,r[e>>2]=0,n=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|a)?n:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=n-o,r[e>>2]=i-o)}function tA(A){var e,t,n=0,i=0,o=0,a=0,s=0;i=0|r[(e=(A|=0)+8|0)>>2],o=0|pe(+(((n=(0|r[A>>2])-i|0)<<1)+(i=(0|r[(t=A+4|0)>>2])-i|0)|0)/7),r[A>>2]=o,n=0|pe(+((3*i|0)-n|0)/7),r[t>>2]=n,r[e>>2]=0,i=n-o|0,(0|o)<0?(s=0-o|0,r[t>>2]=i,r[e>>2]=s,r[A>>2]=0,n=i,o=0,i=s):i=0,(0|n)<0&&(o=o-n|0,r[A>>2]=o,i=i-n|0,r[e>>2]=i,r[t>>2]=0,n=0),s=o-i|0,a=n-i|0,(0|i)<0?(r[A>>2]=s,r[t>>2]=a,r[e>>2]=0,n=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|a)?n:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=n-o,r[e>>2]=i-o)}function nA(A){var e,t,n,i=0,o=0,a=0,s=0;i=0|r[(A|=0)>>2],o=0|r[(t=A+4|0)>>2],a=0|r[(n=A+8|0)>>2],s=o+(3*i|0)|0,r[A>>2]=s,o=a+(3*o|0)|0,r[t>>2]=o,i=(3*a|0)+i|0,r[n>>2]=i,a=o-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=a,r[n>>2]=i,r[A>>2]=0,o=a,a=0):a=s,(0|o)<0&&(a=a-o|0,r[A>>2]=a,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=s,r[n>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=s-o,r[n>>2]=i-o)}function rA(A){var e,t,n,i=0,o=0,a=0,s=0;s=0|r[(A|=0)>>2],a=(3*(i=0|r[(t=A+4|0)>>2])|0)+s|0,s=(o=0|r[(n=A+8|0)>>2])+(3*s|0)|0,r[A>>2]=s,r[t>>2]=a,i=(3*o|0)+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=o,r[n>>2]=i,r[A>>2]=0,s=0):o=a,(0|o)<0&&(s=s-o|0,r[A>>2]=s,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=a,r[n>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(r[A>>2]=s-o,r[t>>2]=a-o,r[n>>2]=i-o)}function iA(A,e){A|=0;var t,n,i,o=0,a=0,s=0;((e|=0)+-1|0)>>>0>=6||(s=(0|r[15472+(12*e|0)>>2])+(0|r[A>>2])|0,r[A>>2]=s,i=A+4|0,a=(0|r[15472+(12*e|0)+4>>2])+(0|r[i>>2])|0,r[i>>2]=a,n=A+8|0,e=(0|r[15472+(12*e|0)+8>>2])+(0|r[n>>2])|0,r[n>>2]=e,o=a-s|0,(0|s)<0?(e=e-s|0,r[i>>2]=o,r[n>>2]=e,r[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(a=a-o|0,r[A>>2]=a,e=e-o|0,r[n>>2]=e,r[i>>2]=0,o=0),t=a-e|0,s=o-e|0,(0|e)<0?(r[A>>2]=t,r[i>>2]=s,r[n>>2]=0,a=t,e=0):s=o,(0|(o=(0|e)<(0|(o=(0|s)<(0|a)?s:a))?e:o))<=0||(r[A>>2]=a-o,r[i>>2]=s-o,r[n>>2]=e-o))}function oA(A){var e,t,n,i=0,o=0,a=0,s=0;s=0|r[(A|=0)>>2],a=(i=0|r[(t=A+4|0)>>2])+s|0,s=(o=0|r[(n=A+8|0)>>2])+s|0,r[A>>2]=s,r[t>>2]=a,i=o+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=o,r[n>>2]=i,r[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(a=a-o|0,r[A>>2]=a,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=s,r[n>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=s-o,r[n>>2]=i-o)}function aA(A){var e,t,n,i=0,o=0,a=0,s=0;i=0|r[(A|=0)>>2],a=0|r[(t=A+4|0)>>2],o=0|r[(n=A+8|0)>>2],s=a+i|0,r[A>>2]=s,a=o+a|0,r[t>>2]=a,i=o+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=o,r[n>>2]=i,r[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(a=a-o|0,r[A>>2]=a,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=s,r[n>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=s-o,r[n>>2]=i-o)}function sA(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 uA(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 fA(A){var e,t,n,i=0,o=0,a=0,s=0;i=0|r[(A|=0)>>2],o=0|r[(t=A+4|0)>>2],a=0|r[(n=A+8|0)>>2],s=o+(i<<1)|0,r[A>>2]=s,o=a+(o<<1)|0,r[t>>2]=o,i=(a<<1)+i|0,r[n>>2]=i,a=o-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=a,r[n>>2]=i,r[A>>2]=0,o=a,a=0):a=s,(0|o)<0&&(a=a-o|0,r[A>>2]=a,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=s,r[n>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[A>>2]=a-o,r[t>>2]=s-o,r[n>>2]=i-o)}function lA(A){var e,t,n,i=0,o=0,a=0,s=0;s=0|r[(A|=0)>>2],a=((i=0|r[(t=A+4|0)>>2])<<1)+s|0,s=(o=0|r[(n=A+8|0)>>2])+(s<<1)|0,r[A>>2]=s,r[t>>2]=a,i=(o<<1)+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[t>>2]=o,r[n>>2]=i,r[A>>2]=0,s=0):o=a,(0|o)<0&&(s=s-o|0,r[A>>2]=s,i=i-o|0,r[n>>2]=i,r[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(r[A>>2]=e,r[t>>2]=a,r[n>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(r[A>>2]=s-o,r[t>>2]=a-o,r[n>>2]=i-o)}function cA(A,e){e|=0;var t,n,i,o=0,a=0,s=0;return i=(0|(n=(0|r[(A|=0)>>2])-(0|r[e>>2])|0))<0,t=(0|(a=(0|r[A+4>>2])-(0|r[e+4>>2])-(i?n:0)|0))<0,e=(e=(A=(0|(s=(i?0-n|0:0)+(0|r[A+8>>2])-(0|r[e+8>>2])+(t?0-a|0:0)|0))<0)?0:s)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:a)-(A?s:0)|0))<(0|(s=(i?0:n)-(t?a:0)-(A?s:0)|0))?o:s))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=s-(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|r[(A|=0)+8>>2],r[e>>2]=(0|r[A>>2])-t,r[e+4>>2]=(0|r[A+4>>2])-t}function gA(A,e){e|=0;var t,n,i,o=0,a=0,s=0;a=0|r[(A|=0)>>2],r[e>>2]=a,A=0|r[A+4>>2],r[(n=e+4|0)>>2]=A,r[(i=e+8|0)>>2]=0,o=A-a|0,(0|a)<0?(A=0-a|0,r[n>>2]=o,r[i>>2]=A,r[e>>2]=0,a=0):(o=A,A=0),(0|o)<0&&(a=a-o|0,r[e>>2]=a,A=A-o|0,r[i>>2]=A,r[n>>2]=0,o=0),t=a-A|0,s=o-A|0,(0|A)<0?(r[e>>2]=t,r[n>>2]=s,r[i>>2]=0,o=s,s=t,A=0):s=a,(0|(a=(0|A)<(0|(a=(0|o)<(0|s)?o:s))?A:a))<=0||(r[e>>2]=s-a,r[n>>2]=o-a,r[i>>2]=A-a)}function dA(A){var e,t,n,i;t=(i=0|r[(e=(A|=0)+8|0)>>2])-(0|r[A>>2])|0,r[A>>2]=t,A=(0|r[(n=A+4|0)>>2])-i|0,r[n>>2]=A,r[e>>2]=0-(A+t)}function pA(A){var e,t,n=0,i=0,o=0,a=0,s=0;n=0-(i=0|r[(A|=0)>>2])|0,r[A>>2]=n,r[(e=A+8|0)>>2]=0,a=(o=0|r[(t=A+4|0)>>2])+i|0,(0|i)>0?(r[t>>2]=a,r[e>>2]=i,r[A>>2]=0,n=0,o=a):i=0,(0|o)<0?(s=n-o|0,r[A>>2]=s,i=i-o|0,r[e>>2]=i,r[t>>2]=0,a=s-i|0,n=0-i|0,(0|i)<0?(r[A>>2]=a,r[t>>2]=n,r[e>>2]=0,o=n,i=0):(o=0,a=s)):a=n,(0|(n=(0|i)<(0|(n=(0|o)<(0|a)?o:a))?i:n))<=0||(r[A>>2]=a-n,r[t>>2]=o-n,r[e>>2]=i-n)}function wA(A,e,t,n){e|=0,t|=0,n|=0;var o,a=0,s=0,u=0,f=0;if(o=C,C=C+32|0,function(A,e){A|=0,e|=0;var t=0,n=0,r=0;t=+i[A>>3],n=+l(+t),t=+c(+t),i[e+16>>3]=t,t=+i[A+8>>3],r=n*+l(+t),i[e>>3]=r,t=n*+c(+t),i[e+8>>3]=t}(A|=0,s=o),r[t>>2]=0,a=+se(15888,s),(u=+se(15912,s))<a&&(r[t>>2]=1,a=u),(u=+se(15936,s))<a&&(r[t>>2]=2,a=u),(u=+se(15960,s))<a&&(r[t>>2]=3,a=u),(u=+se(15984,s))<a&&(r[t>>2]=4,a=u),(u=+se(16008,s))<a&&(r[t>>2]=5,a=u),(u=+se(16032,s))<a&&(r[t>>2]=6,a=u),(u=+se(16056,s))<a&&(r[t>>2]=7,a=u),(u=+se(16080,s))<a&&(r[t>>2]=8,a=u),(u=+se(16104,s))<a&&(r[t>>2]=9,a=u),(u=+se(16128,s))<a&&(r[t>>2]=10,a=u),(u=+se(16152,s))<a&&(r[t>>2]=11,a=u),(u=+se(16176,s))<a&&(r[t>>2]=12,a=u),(u=+se(16200,s))<a&&(r[t>>2]=13,a=u),(u=+se(16224,s))<a&&(r[t>>2]=14,a=u),(u=+se(16248,s))<a&&(r[t>>2]=15,a=u),(u=+se(16272,s))<a&&(r[t>>2]=16,a=u),(u=+se(16296,s))<a&&(r[t>>2]=17,a=u),(u=+se(16320,s))<a&&(r[t>>2]=18,a=u),(u=+se(16344,s))<a&&(r[t>>2]=19,a=u),(u=+g(+(1-.5*a)))<1e-16)return r[n>>2]=0,r[n+4>>2]=0,r[n+8>>2]=0,r[n+12>>2]=0,void(C=o);if(t=0|r[t>>2],a=+_A((a=+i[16368+(24*t|0)>>3])-+_A(+function(A,e){A|=0,e|=0;var t=0,n=0,r=0,o=0,a=0;return o=+i[e>>3],n=+l(+o),r=+i[e+8>>3]-+i[A+8>>3],a=n*+c(+r),t=+i[A>>3],+ +w(+a,+(+c(+o)*+l(+t)-+l(+r)*(n*+c(+t))))}(15568+(t<<4)|0,A))),f=0|OA(e)?+_A(a+-.3334731722518321):a,a=+h(+u)/.381966011250105,(0|e)>0){s=0;do{a*=2.6457513110645907,s=s+1|0}while((0|s)!=(0|e))}u=+l(+f)*a,i[n>>3]=u,f=+c(+f)*a,i[n+8>>3]=f,C=o}function vA(A,e,t,n,o){e|=0,t|=0,n|=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=15568+(e<<4)|0,r[o>>2]=r[e>>2],r[o+4>>2]=r[e+4>>2],r[o+8>>2]=r[e+8>>2],void(r[o+12>>2]=r[e+12>>2]);if(f=+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))}n?(a/=3,t=!(0|OA(t)),a=+p(.381966011250105*(t?a:a/2.6457513110645907))):(a=+p(.381966011250105*a),0|OA(t)&&(f=+_A(f+.3334731722518321))),function(A,e,t,n){A|=0,e=+e,t=+t,n|=0;var o=0,a=0,u=0,f=0;if(t<1e-16)return r[n>>2]=r[A>>2],r[n+4>>2]=r[A+4>>2],r[n+8>>2]=r[A+8>>2],void(r[n+12>>2]=r[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=+s(+(a+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=t,i[n>>3]=e,o=n;break}if(u=+l(+t),t=+c(+t),e=u*+c(+e)+ +l(+a)*(t*+l(+e)),e=+d(+((e=e>1?1:e)<-1?-1:e)),i[n>>3]=e,+s(+(e+-1.5707963267948966))<1e-16)return i[n>>3]=1.5707963267948966,void(i[n+8>>3]=0);if(+s(+(e+1.5707963267948966))<1e-16)return i[n>>3]=-1.5707963267948966,void(i[n+8>>3]=0);if(f=+l(+e),a=t*+c(+a)/f,t=+i[A>>3],e=(u-+c(+e)*+c(+t))/+l(+t)/f,u=a>1?1:a,e=e>1?1:e,(e=+i[A+8>>3]+ +w(+(u<-1?-1:u),+(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[n+8>>3]=e)}e=+i[A>>3]+t,i[n>>3]=e,o=n}while(0);if(+s(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[n+8>>3]=0);if(+s(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[n+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[n+8>>3]=e}(15568+(e<<4)|0,+_A(+i[16368+(24*e|0)>>3]-f),a,o)}function mA(A,e,t){e|=0,t|=0;var n,i;n=C,C=C+16|0,J((A|=0)+4|0,i=n),vA(i,0|r[A>>2],e,0,t),C=n}function bA(A,e,t,n,o){A|=0,e|=0,t|=0,n|=0,o|=0;var a,s,u,f,l,c,h,g,d,p,w,v,m,b,y,B,E,k,_,x,Q,D,S=0,I=0,P=0,F=0,T=0,L=0;if(D=C,C=C+272|0,F=D+240|0,_=D,x=D+224|0,Q=D+208|0,w=D+176|0,v=D+160|0,m=D+192|0,b=D+144|0,y=D+128|0,B=D+112|0,E=D+96|0,k=D+80|0,r[(S=D+256|0)>>2]=e,r[F>>2]=r[A>>2],r[F+4>>2]=r[A+4>>2],r[F+8>>2]=r[A+8>>2],r[F+12>>2]=r[A+12>>2],yA(F,S,_),r[o>>2]=0,(0|(F=n+t+(5==(0|n)&1)|0))<=(0|t))C=D;else{s=x+4|0,u=w+4|0,f=t+5|0,l=16848+((a=0|r[S>>2])<<2)|0,c=16928+(a<<2)|0,h=y+8|0,g=B+8|0,d=E+8|0,p=Q+4|0,P=t;A:for(;;){I=_+((0|P)%5<<4)|0,r[Q>>2]=r[I>>2],r[Q+4>>2]=r[I+4>>2],r[Q+8>>2]=r[I+8>>2],r[Q+12>>2]=r[I+12>>2];do{}while(2==(0|BA(Q,a,0,1)));if((0|P)>(0|t)&!!(0|OA(e))){if(r[w>>2]=r[Q>>2],r[w+4>>2]=r[Q+4>>2],r[w+8>>2]=r[Q+8>>2],r[w+12>>2]=r[Q+12>>2],J(s,v),n=0|r[w>>2],S=0|r[17008+(80*n|0)+(r[x>>2]<<2)>>2],r[w>>2]=r[18608+(80*n|0)+(20*S|0)>>2],(0|(I=0|r[18608+(80*n|0)+(20*S|0)+16>>2]))>0){A=0;do{oA(u),A=A+1|0}while((0|A)<(0|I))}switch(I=18608+(80*n|0)+(20*S|0)+4|0,r[m>>2]=r[I>>2],r[m+4>>2]=r[I+4>>2],r[m+8>>2]=r[I+8>>2],$(m,3*(0|r[l>>2])|0),K(u,m,u),Z(u),J(u,b),T=+(0|r[c>>2]),i[y>>3]=3*T,i[h>>3]=0,L=-1.5*T,i[B>>3]=L,i[g>>3]=2.598076211353316*T,i[E>>3]=L,i[d>>3]=-2.598076211353316*T,0|r[17008+(80*(0|r[w>>2])|0)+(r[Q>>2]<<2)>>2]){case 1:A=B,n=y;break;case 3:A=E,n=B;break;case 2:A=y,n=E;break;default:A=12;break A}oe(v,b,n,A,k),vA(k,0|r[w>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])}if((0|P)<(0|f)&&(J(p,w),vA(w,0|r[Q>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])),r[x>>2]=r[Q>>2],r[x+4>>2]=r[Q+4>>2],r[x+8>>2]=r[Q+8>>2],r[x+12>>2]=r[Q+12>>2],(0|(P=P+1|0))>=(0|F)){A=3;break}}3!=(0|A)?12==(0|A)&&M(22474,22521,581,22531):C=D}}function yA(A,e,t){A|=0,e|=0,t|=0;var n,i=0,o=0,a=0,s=0,u=0;n=C,C=C+128|0,o=n,s=20208,u=(a=i=n+64|0)+60|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|u));s=20272,u=(a=o)+60|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|u));i=(u=!(0|OA(0|r[e>>2])))?i:o,fA(o=A+4|0),lA(o),0|OA(0|r[e>>2])&&(rA(o),r[e>>2]=1+(0|r[e>>2])),r[t>>2]=r[A>>2],K(o,i,e=t+4|0),Z(e),r[t+16>>2]=r[A>>2],K(o,i+12|0,e=t+20|0),Z(e),r[t+32>>2]=r[A>>2],K(o,i+24|0,e=t+36|0),Z(e),r[t+48>>2]=r[A>>2],K(o,i+36|0,e=t+52|0),Z(e),r[t+64>>2]=r[A>>2],K(o,i+48|0,t=t+68|0),Z(t),C=n}function BA(A,e,t,n){t|=0,n|=0;var i,o,a,s,u,f,l=0,c=0,h=0,g=0,d=0;if(f=C,C=C+32|0,u=f+12|0,o=f,d=(A|=0)+4|0,g=0|r[16928+((e|=0)<<2)>>2],g=(s=!!(0|n))?3*g|0:g,l=0|r[d>>2],i=0|r[(a=A+8|0)>>2],s){if((0|(l=i+l+(n=0|r[(c=A+12|0)>>2])|0))==(0|g))return C=f,0|(d=1);h=c}else l=i+l+(n=0|r[(h=A+12|0)>>2])|0;if((0|l)<=(0|g))return C=f,0|(d=0);do{if((0|n)>0){if(n=0|r[A>>2],(0|i)>0){c=18608+(80*n|0)+60|0,n=A;break}n=18608+(80*n|0)+40|0,t?(X(u,g,0,0),q(d,u,o),aA(o),K(o,u,d),c=n,n=A):(c=n,n=A)}else c=18608+(80*(0|r[A>>2])|0)+20|0,n=A}while(0);if(r[n>>2]=r[c>>2],(0|r[(l=c+16|0)>>2])>0){n=0;do{oA(d),n=n+1|0}while((0|n)<(0|r[l>>2]))}return A=c+4|0,r[u>>2]=r[A>>2],r[u+4>>2]=r[A+4>>2],r[u+8>>2]=r[A+8>>2],e=0|r[16848+(e<<2)>>2],$(u,s?3*e|0:e),K(d,u,d),Z(d),n=s&&((0|r[a>>2])+(0|r[d>>2])+(0|r[h>>2])|0)==(0|g)?1:2,C=f,0|(d=n)}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 MA(A,e,t,n,o){A|=0,e|=0,t|=0,n|=0,o|=0;var a,s,u,f,l,c,h,g,d,p,w,v,m,b,y,B,E,k,_=0,x=0,Q=0,D=0,S=0;if(k=C,C=C+240|0,b=k+208|0,y=k,B=k+192|0,E=k+176|0,d=k+160|0,p=k+144|0,w=k+128|0,v=k+112|0,m=k+96|0,r[(_=k+224|0)>>2]=e,r[b>>2]=r[A>>2],r[b+4>>2]=r[A+4>>2],r[b+8>>2]=r[A+8>>2],r[b+12>>2]=r[A+12>>2],kA(b,_,y),r[o>>2]=0,(0|(g=n+t+(6==(0|n)&1)|0))<=(0|t))C=k;else{s=t+6|0,u=16928+((a=0|r[_>>2])<<2)|0,f=p+8|0,l=w+8|0,c=v+8|0,h=B+4|0,x=0,Q=t,n=-1;A:for(;;){if(A=y+((_=(0|Q)%6|0)<<4)|0,r[B>>2]=r[A>>2],r[B+4>>2]=r[A+4>>2],r[B+8>>2]=r[A+8>>2],r[B+12>>2]=r[A+12>>2],A=x,x=0|BA(B,a,0,1),(0|Q)>(0|t)&!!(0|OA(e))&&(1!=(0|A)&&(0|r[B>>2])!=(0|n))){switch(J(y+((_+5|0)%6<<4)+4|0,E),J(y+(_<<4)+4|0,d),D=+(0|r[u>>2]),i[p>>3]=3*D,i[f>>3]=0,S=-1.5*D,i[w>>3]=S,i[l>>3]=2.598076211353316*D,i[v>>3]=S,i[c>>3]=-2.598076211353316*D,_=0|r[b>>2],0|r[17008+(80*_|0)+(((0|n)==(0|_)?r[B>>2]:n)<<2)>>2]){case 1:A=w,n=p;break;case 3:A=v,n=w;break;case 2:A=p,n=v;break;default:A=8;break A}oe(E,d,n,A,m),0|ae(E,m)||0|ae(d,m)||(vA(m,0|r[b>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2]))}if((0|Q)<(0|s)&&(J(h,E),vA(E,0|r[B>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])),(0|(Q=Q+1|0))>=(0|g)){A=3;break}n=0|r[B>>2]}3!=(0|A)?8==(0|A)&&M(22557,22521,746,22602):C=k}}function kA(A,e,t){A|=0,e|=0,t|=0;var n,i=0,o=0,a=0,s=0,u=0;n=C,C=C+160|0,o=n,s=20336,u=(a=i=n+80|0)+72|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|u));s=20416,u=(a=o)+72|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|u));i=(u=!(0|OA(0|r[e>>2])))?i:o,fA(o=A+4|0),lA(o),0|OA(0|r[e>>2])&&(rA(o),r[e>>2]=1+(0|r[e>>2])),r[t>>2]=r[A>>2],K(o,i,e=t+4|0),Z(e),r[t+16>>2]=r[A>>2],K(o,i+12|0,e=t+20|0),Z(e),r[t+32>>2]=r[A>>2],K(o,i+24|0,e=t+36|0),Z(e),r[t+48>>2]=r[A>>2],K(o,i+36|0,e=t+52|0),Z(e),r[t+64>>2]=r[A>>2],K(o,i+48|0,e=t+68|0),Z(e),r[t+80>>2]=r[A>>2],K(o,i+60|0,t=t+84|0),Z(t),C=n}function _A(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function xA(A,e){return e|=0,+s(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+s(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function QA(A,e){A|=0;var t,n,r,o=0;return n=+i[(e|=0)>>3],t=+i[A>>3],o=(r=+c(.5*(n-t)))*r+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+l(+n)*+l(+t)*o),2*+w(+ +u(+o),+ +u(+(1-o)))*6371.007180918475}function DA(A,e,t){A|=0,t|=0;var n,r,o,a,s=0,f=0,g=0,d=0,v=0,m=0;return m=+i[(e|=0)>>3],o=+i[A>>3],v=+c(.5*(m-o)),g=+i[e+8>>3],r=+i[A+8>>3],d=+c(.5*(g-r)),n=+l(+o),a=+l(+m),d=2*+w(+ +u(+(d=v*v+d*(a*n*d))),+ +u(+(1-d))),v=+i[t>>3],m=+c(.5*(v-m)),s=+i[t+8>>3],g=+c(.5*(s-g)),f=+l(+v),g=2*+w(+ +u(+(g=m*m+g*(a*f*g))),+ +u(+(1-g))),v=+c(.5*(o-v)),s=+c(.5*(r-s)),s=2*+w(+ +u(+(s=v*v+s*(n*f*s))),+ +u(+(1-s))),4*+p(+ +u(+ +h(.5*(f=.5*(d+g+s)))*+h(.5*(f-d))*+h(.5*(f-g))*+h(.5*(f-s))))}function CA(A,e){return e=0|Me(0|(A|=0),0|(e|=0),45),E(),127&e}function SA(A,e){var t=0,n=0,r=0,i=0,o=0,a=0;if(!(!0&134217728==(-16777216&(e|=0))))return 0|(e=0);if(o=0|Me(0|(A|=0),0|e,45),E(),(o&=127)>>>0>121)return 0|(e=0);t=0|Me(0|A,0|e,52),E(),t&=15;do{if(0|t){for(r=1,n=0;;){if(i=0|Me(0|A,0|e,3*(15-r|0)|0),E(),!!(0|(i&=7))&(1^n)){if(1==(0|i)&!!(0|L(o))){a=0,n=13;break}n=1}if(7==(0|i)){a=0,n=13;break}if(!(r>>>0<t>>>0)){n=9;break}r=r+1|0}if(9==(0|n)){if(15!=(0|t))break;return 0|(a=1)}if(13==(0|n))return 0|a}}while(0);for(;;){if(a=0|Me(0|A,0|e,3*(14-t|0)|0),E(),!(!0&!(7&~a))){a=0,n=13;break}if(!(t>>>0<14)){a=1,n=13;break}t=t+1|0}return 13==(0|n)?0|a:0}function IA(A,e,t){t|=0;var n=0,r=0;if(n=0|Me(0|(A|=0),0|(e|=0),52),E(),(0|(n&=15))>=(0|t)){if((0|n)!=(0|t))if(t>>>0<=15){if(A|=r=0|ke(0|t,0,52),e=E()|-15728641&e,(0|n)>(0|t))do{r=0|ke(7,0,3*(14-t|0)|0),t=t+1|0,A|=r,e=0|E()|e}while((0|t)<(0|n))}else e=0,A=0}else e=0,A=0;return B(0|e),0|A}function PA(A,e,t,n){t|=0,n|=0;var i,o=0,a=0,s=0,u=0,f=0,l=0;if(s=0|Me(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(s&=15))<=(0|t)){if((0|s)==(0|t))return r[(t=n)>>2]=A,void(r[t+4>>2]=e);if(i=(0|(f=0|ee(7,t-s|0)))/7|0,u=0|Me(0|A,0|e,45),E(),0|L(127&u)){A:do{if(s)for(a=1;;){if(o=0|Me(0|A,0|e,3*(15-a|0)|0),E(),0|(o&=7))break A;if(!(a>>>0<s>>>0)){o=0;break}a=a+1|0}else o=0}while(0);a=!(0|o)}else a=0;if(l=0|ke(s+1|0,0,52),o=E()|-15728641&e,PA(e=(l|A)&~(e=0|ke(7,0,0|(u=3*(14-s|0)|0))),s=o&~E(),t,n),o=n+(i<<3)|0,!a)return PA((l=0|ke(1,0,0|u))|e,0|E()|s,t,o),l=o+(i<<3)|0,PA((f=0|ke(2,0,0|u))|e,0|E()|s,t,l),l=l+(i<<3)|0,PA((f=0|ke(3,0,0|u))|e,0|E()|s,t,l),l=l+(i<<3)|0,PA((f=0|ke(4,0,0|u))|e,0|E()|s,t,l),l=l+(i<<3)|0,PA((f=0|ke(5,0,0|u))|e,0|E()|s,t,l),void PA((f=0|ke(6,0,0|u))|e,0|E()|s,t,l+(i<<3)|0);a=o+(i<<3)|0,(0|f)>6&&(De(0|o,0,(l=(a>>>0>(f=o+8|0)>>>0?a:f)+-1+(0-o)|0)+8&-8),o=f+(l>>>3<<3)|0),PA((l=0|ke(2,0,0|u))|e,0|E()|s,t,o),l=o+(i<<3)|0,PA((f=0|ke(3,0,0|u))|e,0|E()|s,t,l),l=l+(i<<3)|0,PA((f=0|ke(4,0,0|u))|e,0|E()|s,t,l),l=l+(i<<3)|0,PA((f=0|ke(5,0,0|u))|e,0|E()|s,t,l),PA((f=0|ke(6,0,0|u))|e,0|E()|s,t,l+(i<<3)|0)}}function FA(A,e){var t=0,n=0,r=0;if(r=0|Me(0|(A|=0),0|(e|=0),45),E(),!(0|L(127&r)))return 0|(r=0);r=0|Me(0|A,0|e,52),E(),r&=15;A:do{if(r)for(n=1;;){if(t=0|Me(0|A,0|e,3*(15-n|0)|0),E(),0|(t&=7))break A;if(!(n>>>0<r>>>0)){t=0;break}n=n+1|0}else t=0}while(0);return 0|(r=1&!(0|t))}function TA(A,e){var t=0,n=0,r=0;if(r=0|Me(0|(A|=0),0|(e|=0),52),E(),!(r&=15))return 0|(r=0);for(n=1;;){if(t=0|Me(0|A,0|e,3*(15-n|0)|0),E(),0|(t&=7)){n=5;break}if(!(n>>>0<r>>>0)){t=0,n=5;break}n=n+1|0}return 5==(0|n)?0|t:0}function LA(A,e){var t=0,n=0,r=0,i=0,o=0,a=0,s=0;if(s=0|Me(0|(A|=0),0|(e|=0),52),E(),!(s&=15))return s=A,B(0|(a=e)),0|s;for(a=1,t=0;;){n=0|ke(7,0,0|(i=3*(15-a|0)|0)),r=0|E(),o=0|Me(0|A,0|e,0|i),E(),A=(i=0|ke(0|sA(7&o),0,0|i))|A&~n,e=(o=0|E())|e&~r;A:do{if(!t)if(!(i&n|0)&!(o&r|0))t=0;else if(n=0|Me(0|A,0|e,52),E(),n&=15){t=1;e:for(;;){switch(o=0|Me(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<n>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(r=0|Me(0|A,0|e,0|(o=3*(15-t|0)|0)),E(),i=0|ke(7,0,0|o),e&=~E(),A=A&~i|(o=0|ke(0|sA(7&r),0,0|o)),e=0|e|E(),!(t>>>0<n>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return B(0|e),0|A}function GA(A,e){var t=0,n=0,r=0,i=0,o=0;if(n=0|Me(0|(A|=0),0|(e|=0),52),E(),!(n&=15))return n=A,B(0|(t=e)),0|n;for(t=1;o=0|Me(0|A,0|e,0|(i=3*(15-t|0)|0)),E(),r=0|ke(7,0,0|i),e&=~E(),A=(i=0|ke(0|sA(7&o),0,0|i))|A&~r,e=0|E()|e,t>>>0<n>>>0;)t=t+1|0;return B(0|e),0|A}function RA(A,e){var t=0,n=0,r=0,i=0,o=0,a=0,s=0;if(s=0|Me(0|(A|=0),0|(e|=0),52),E(),!(s&=15))return s=A,B(0|(a=e)),0|s;for(a=1,t=0;;){n=0|ke(7,0,0|(i=3*(15-a|0)|0)),r=0|E(),o=0|Me(0|A,0|e,0|i),E(),A=(i=0|ke(0|uA(7&o),0,0|i))|A&~n,e=(o=0|E())|e&~r;A:do{if(!t)if(!(i&n|0)&!(o&r|0))t=0;else if(n=0|Me(0|A,0|e,52),E(),n&=15){t=1;e:for(;;){switch(o=0|Me(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<n>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|ke(7,0,0|(r=3*(15-t|0)|0)),o=e&~E(),e=0|Me(0|A,0|e,0|r),E(),A=A&~i|(e=0|ke(0|uA(7&e),0,0|r)),e=0|o|E(),!(t>>>0<n>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return B(0|e),0|A}function UA(A,e){var t=0,n=0,r=0,i=0,o=0;if(n=0|Me(0|(A|=0),0|(e|=0),52),E(),!(n&=15))return n=A,B(0|(t=e)),0|n;for(t=1;i=0|ke(7,0,0|(o=3*(15-t|0)|0)),r=e&~E(),e=0|Me(0|A,0|e,0|o),E(),A=(e=0|ke(0|uA(7&e),0,0|o))|A&~i,e=0|E()|r,t>>>0<n>>>0;)t=t+1|0;return B(0|e),0|A}function OA(A){return(0|(A|=0))%2|0}function zA(A,e){A|=0;var t,n;return n=C,C=C+16|0,t=n,(e|=0)>>>0<=15&&2146435072&~r[A+4>>2]&&2146435072&~r[A+8+4>>2]?(!function(A,e,t){var n,r;n=C,C=C+16|0,wA(A|=0,e|=0,t|=0,r=n),W(r,t+4|0),C=n}(A,e,t),e=0|function(A,e){A|=0;var t,n=0,i=0,o=0,a=0,s=0,u=0,f=0,l=0;if(t=C,C=C+64|0,u=t+40|0,i=t+24|0,o=t+12|0,a=t,ke(0|(e|=0),0,52),n=134225919|E(),!e)return(0|r[A+4>>2])>2||(0|r[A+8>>2])>2||(0|r[A+12>>2])>2?(u=0,B(0|(s=0)),C=t,0|u):(ke(0|R(A),0,45),s=0|E()|n,u=-1,B(0|s),C=t,0|u);if(r[u>>2]=r[A>>2],r[u+4>>2]=r[A+4>>2],r[u+8>>2]=r[A+8>>2],r[u+12>>2]=r[A+12>>2],s=u+4|0,(0|e)>0)for(A=-1;r[i>>2]=r[s>>2],r[i+4>>2]=r[s+4>>2],r[i+8>>2]=r[s+8>>2],1&e?(eA(s),r[o>>2]=r[s>>2],r[o+4>>2]=r[s+4>>2],r[o+8>>2]=r[s+8>>2],nA(o)):(tA(s),r[o>>2]=r[s>>2],r[o+4>>2]=r[s+4>>2],r[o+8>>2]=r[s+8>>2],rA(o)),q(i,o,a),Z(a),f=0|ke(7,0,0|(l=3*(15-e|0)|0)),n&=~E(),A=(l=0|ke(0|AA(a),0,0|l))|A&~f,n=0|E()|n,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|r[s>>2])<=2&&(0|r[u+8>>2])<=2&&(0|r[u+12>>2])<=2){if(e=0|ke(0|(i=0|R(u)),0,45),e|=A,A=E()|-1040385&n,a=0|U(u),!(0|L(i))){if((0|a)<=0)break;for(o=0;;){if(i=0|Me(0|e,0|A,52),E(),i&=15)for(n=1;u=0|Me(0|e,0|A,0|(l=3*(15-n|0)|0)),E(),f=0|ke(7,0,0|l),A&=~E(),e=e&~f|(l=0|ke(0|sA(7&u),0,0|l)),A=0|A|E(),n>>>0<i>>>0;)n=n+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|Me(0|e,0|A,52),E(),o&=15;e:do{if(o){n=1;t:for(;;){switch(l=0|Me(0|e,0|A,3*(15-n|0)|0),E(),7&l){case 1:break t;case 0:break;default:break e}if(!(n>>>0<o>>>0))break e;n=n+1|0}if(0|O(i,0|r[u>>2]))for(n=1;f=0|ke(7,0,0|(u=3*(15-n|0)|0)),l=A&~E(),A=0|Me(0|e,0|A,0|u),E(),e=e&~f|(A=0|ke(0|uA(7&A),0,0|u)),A=0|l|E(),n>>>0<o>>>0;)n=n+1|0;else for(n=1;u=0|Me(0|e,0|A,0|(l=3*(15-n|0)|0)),E(),f=0|ke(7,0,0|l),A&=~E(),e=e&~f|(l=0|ke(0|sA(7&u),0,0|l)),A=0|A|E(),n>>>0<o>>>0;)n=n+1|0}}while(0);if((0|a)>0){n=0;do{e=0|LA(e,A),A=0|E(),n=n+1|0}while((0|n)!=(0|a))}}else e=0,A=0}while(0);return l=e,B(0|(f=A)),C=t,0|l}(t,e),A=0|E()):(A=0,e=0),B(0|A),C=n,0|e}function YA(A,e,t){var n,i=0,o=0,a=0;if(n=(t|=0)+4|0,o=0|Me(0|(A|=0),0|(e|=0),52),E(),o&=15,a=0|Me(0|A,0|e,45),E(),i=!(0|o),0|L(127&a)){if(i)return 0|(a=1);i=1}else{if(i)return 0|(a=0);i=0|r[n>>2]||0|r[t+8>>2]?1:1&!!(0|r[t+12>>2])}for(t=1;1&t?nA(n):rA(n),a=0|Me(0|A,0|e,3*(15-t|0)|0),E(),iA(n,7&a),t>>>0<o>>>0;)t=t+1|0;return 0|i}function NA(A,e,t){t|=0;var n,i,o=0,a=0,s=0,u=0,f=0,l=0;i=C,C=C+16|0,n=i,l=0|Me(0|(A|=0),0|(e|=0),45),E(),l&=127;A:do{if(0|L(l)&&(s=0|Me(0|A,0|e,52),E(),0|(s&=15))){o=1;e:for(;;){switch(f=0|Me(0|A,0|e,3*(15-o|0)|0),E(),7&f){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<s>>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;u=0|ke(7,0,0|(e=3*(15-a|0)|0)),f=o&~E(),o=0|Me(0|A,0|o,0|e),E(),A=A&~u|(o=0|ke(0|uA(7&o),0,0|e)),o=0|f|E(),a>>>0<s>>>0;)a=a+1|0}else o=e}while(0);if(f=7728+(28*l|0)|0,r[t>>2]=r[f>>2],r[t+4>>2]=r[f+4>>2],r[t+8>>2]=r[f+8>>2],r[t+12>>2]=r[f+12>>2],0|YA(A,o,t)){if(u=t+4|0,r[n>>2]=r[u>>2],r[n+4>>2]=r[u+4>>2],r[n+8>>2]=r[u+8>>2],s=0|Me(0|A,0|o,52),E(),f=15&s,1&s?(rA(u),s=f+1|0):s=f,0|L(l)){A:do{if(f)for(e=1;;){if(a=0|Me(0|A,0|o,3*(15-e|0)|0),E(),0|(a&=7)){o=a;break A}if(!(e>>>0<f>>>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,s,o,0)){if(0|L(l))do{}while(0|BA(t,s,0,0));(0|s)!=(0|f)&&tA(u)}else(0|s)!=(0|f)&&(r[u>>2]=r[n>>2],r[u+4>>2]=r[n+4>>2],r[u+8>>2]=r[n+8>>2]);C=i}else C=i}function HA(A,e,t){t|=0;var n,r;n=C,C=C+16|0,NA(A|=0,e|=0,r=n),e=0|Me(0|A,0|e,52),E(),mA(r,15&e,t),C=n}function VA(A,e,t){t|=0;var n,r,i=0,o=0;r=C,C=C+16|0,NA(A|=0,e|=0,n=r),i=0|Me(0|A,0|e,45),E(),i=!(0|L(127&i)),o=0|Me(0|A,0|e,52),E(),o&=15;A:do{if(!i){if(0|o)for(i=1;;){if(!(!((0|ke(7,0,3*(15-i|0)|0))&A|0)&!((0|E())&e)))break A;if(!(i>>>0<o>>>0))break;i=i+1|0}return bA(n,o,0,5,t),void(C=r)}}while(0);MA(n,o,0,6,t),C=r}function jA(A,e){e|=0;var t,n=0,i=0,o=0,a=0,s=0,u=0;if(ke(0|(A|=0),0,52),t=134225919|E(),(0|A)<1){i=0,n=0;do{0|L(i)&&(ke(0|i,0,45),s=0|t|E(),r[(A=e+(n<<3)|0)>>2]=-1,r[A+4>>2]=s,n=n+1|0),i=i+1|0}while(122!=(0|i))}else{s=0,n=0;do{if(0|L(s)){for(ke(0|s,0,45),i=1,o=-1,a=0|t|E();o&=~(u=0|ke(7,0,3*(15-i|0)|0)),a&=~E(),(0|i)!=(0|A);)i=i+1|0;r[(u=e+(n<<3)|0)>>2]=o,r[u+4>>2]=a,n=n+1|0}s=s+1|0}while(122!=(0|s))}}function XA(A,e,t,n){var i,o=0,a=0,s=0,u=0,f=0;if(i=C,C=C+64|0,s=i,(0|(A|=0))==(0|(t|=0))&(0|(e|=0))==(0|(n|=0))|!1|134217728!=(2013265920&e)|!1|134217728!=(2013265920&n))return C=i,0|(s=0);if(o=0|Me(0|A,0|e,52),E(),o&=15,a=0|Me(0|t,0|n,52),E(),(0|o)!=(15&a))return C=i,0|(s=0);if(a=o+-1|0,o>>>0>1&&(f=0|IA(A,e,a),u=0|E(),(0|f)==(0|(a=0|IA(t,n,a)))&(0|u)==(0|E()))){if(o=0|Me(0|A,0|e,0|(a=3*(15^o)|0)),E(),o&=7,a=0|Me(0|t,0|n,0|a),E(),!(0|o)|!(0|(a&=7)))return C=i,0|(f=1);if((0|r[21136+(o<<2)>>2])==(0|a))return C=i,0|(f=1);if((0|r[21168+(o<<2)>>2])==(0|a))return C=i,0|(f=1)}a=(o=s)+56|0;do{r[o>>2]=0,o=o+4|0}while((0|o)<(0|a));return S(A,e,1,s),o=(0|r[(f=s)>>2])==(0|t)&&(0|r[f+4>>2])==(0|n)||(0|r[(f=s+8|0)>>2])==(0|t)&&(0|r[f+4>>2])==(0|n)||(0|r[(f=s+16|0)>>2])==(0|t)&&(0|r[f+4>>2])==(0|n)||(0|r[(f=s+24|0)>>2])==(0|t)&&(0|r[f+4>>2])==(0|n)||(0|r[(f=s+32|0)>>2])==(0|t)&&(0|r[f+4>>2])==(0|n)||(0|r[(f=s+40|0)>>2])==(0|t)&&(0|r[f+4>>2])==(0|n)?1:1&((0|r[(o=s+48|0)>>2])==(0|t)?(0|r[o+4>>2])==(0|n):0),C=i,0|(f=o)}function WA(A,e,t){t|=0;var n,i,o,a,s=0;if(o=C,C=C+16|0,i=o,s=0|Me(0|(A|=0),0|(e|=0),56),E(),e=0|function(A,e,t){A|=0,e|=0,t|=0;var n=0,i=0;if(n=0|FA(A,e),(t+-1|0)>>>0>5)return 0|(t=-1);if(i=!!(0|n),1==(0|t)&i)return 0|(t=-1);return n=0|function(A,e){A|=0,e|=0;var t=0,n=0,i=0,o=0,a=0,s=0,u=0,f=0;if(f=C,C=C+32|0,i=f+16|0,o=f,NA(A,e,i),a=0|CA(A,e),u=0|TA(A,e),function(A,e){A=7728+(28*(A|=0)|0)|0,r[(e|=0)>>2]=r[A>>2],r[e+4>>2]=r[A+4>>2],r[e+8>>2]=r[A+8>>2],r[e+12>>2]=r[A+12>>2]}(a,o),e=0|function(A,e){A|=0;var t=0,n=0;if((e|=0)>>>0>20)return-1;do{if((0|r[11152+(216*e|0)>>2])!=(0|A))if((0|r[11152+(216*e|0)+8>>2])!=(0|A))if((0|r[11152+(216*e|0)+16>>2])!=(0|A))if((0|r[11152+(216*e|0)+24>>2])!=(0|A))if((0|r[11152+(216*e|0)+32>>2])!=(0|A))if((0|r[11152+(216*e|0)+40>>2])!=(0|A))if((0|r[11152+(216*e|0)+48>>2])!=(0|A))if((0|r[11152+(216*e|0)+56>>2])!=(0|A))if((0|r[11152+(216*e|0)+64>>2])!=(0|A))if((0|r[11152+(216*e|0)+72>>2])!=(0|A))if((0|r[11152+(216*e|0)+80>>2])!=(0|A))if((0|r[11152+(216*e|0)+88>>2])!=(0|A))if((0|r[11152+(216*e|0)+96>>2])!=(0|A))if((0|r[11152+(216*e|0)+104>>2])!=(0|A))if((0|r[11152+(216*e|0)+112>>2])!=(0|A))if((0|r[11152+(216*e|0)+120>>2])!=(0|A))if((0|r[11152+(216*e|0)+128>>2])!=(0|A)){if((0|r[11152+(216*e|0)+136>>2])!=(0|A)){if((0|r[11152+(216*e|0)+144>>2])==(0|A)){A=0,t=2,n=0;break}if((0|r[11152+(216*e|0)+152>>2])==(0|A)){A=0,t=2,n=1;break}if((0|r[11152+(216*e|0)+160>>2])==(0|A)){A=0,t=2,n=2;break}if((0|r[11152+(216*e|0)+168>>2])==(0|A)){A=1,t=2,n=0;break}if((0|r[11152+(216*e|0)+176>>2])==(0|A)){A=1,t=2,n=1;break}if((0|r[11152+(216*e|0)+184>>2])==(0|A)){A=1,t=2,n=2;break}if((0|r[11152+(216*e|0)+192>>2])==(0|A)){A=2,t=2,n=0;break}if((0|r[11152+(216*e|0)+200>>2])==(0|A)){A=2,t=2,n=1;break}if((0|r[11152+(216*e|0)+208>>2])==(0|A)){A=2,t=2,n=2;break}return-1}A=2,t=1,n=2}else A=2,t=1,n=1;else A=2,t=1,n=0;else A=1,t=1,n=2;else A=1,t=1,n=1;else A=1,t=1,n=0;else A=0,t=1,n=2;else A=0,t=1,n=1;else A=0,t=1,n=0;else A=2,t=0,n=2;else A=2,t=0,n=1;else A=2,t=0,n=0;else A=1,t=0,n=2;else A=1,t=0,n=1;else A=1,t=0,n=0;else A=0,t=0,n=2;else A=0,t=0,n=1;else A=0,t=0,n=0}while(0);return 0|r[11152+(216*e|0)+(72*t|0)+(24*A|0)+(n<<3)+4>>2]}(a,0|r[i>>2]),!(0|L(a)))return C=f,0|(u=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:s=0,n=0}14==(0|t)&&(s=0|r[22096+(24*A|0)+8>>2],n=0|r[22096+(24*A|0)+16>>2]);A=0|r[i>>2],(0|A)!=(0|r[o>>2])&&(a=0|G(a))|(0|(A=0|r[i>>2]))==(0|n)&&(e=(e+1|0)%6|0);if(3==(0|u)&(0|A)==(0|n))return C=f,0|(u=(e+5|0)%6|0);if(!(5==(0|u)&(0|A)==(0|s)))return C=f,0|(u=e);return u=(e+1|0)%6|0,C=f,0|u}(A,e),i?0|(t=(5-n+(0|r[22384+(t<<2)>>2])|0)%5|0):0|(t=(6-n+(0|r[22416+(t<<2)>>2])|0)%6|0)}(n=(a=!0&268435456==(2013265920&e))?A:0,A=a?-2130706433&e|134217728:0,7&s),-1==(0|e))return r[t>>2]=0,void(C=o);NA(n,A,i),s=0|Me(0|n,0|A,52),E(),s&=15,0|FA(n,A)?bA(i,s,e,2,t):MA(i,s,e,2,t),C=o}function ZA(A){A|=0;var e,t,n=0;return(e=0|me(1,12))||M(22691,22646,49,22704),0|(n=0|r[(t=A+4|0)>>2])?(r[(n=n+8|0)>>2]=e,r[t>>2]=e,0|e):(0|r[A>>2]&&M(22721,22646,61,22744),r[(n=A)>>2]=e,r[t>>2]=e,0|e)}function JA(A,e){A|=0,e|=0;var t,n;return(n=0|we(24))||M(22758,22646,78,22772),r[n>>2]=r[e>>2],r[n+4>>2]=r[e+4>>2],r[n+8>>2]=r[e+8>>2],r[n+12>>2]=r[e+12>>2],r[n+16>>2]=0,0|(t=0|r[(e=A+4|0)>>2])?(r[t+16>>2]=n,r[e>>2]=n,0|n):(0|r[A>>2]&&M(22787,22646,82,22772),r[A>>2]=n,r[e>>2]=n,0|n)}function KA(A){var e,t,n=0,o=0,a=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,E=0,k=0,_=0,x=0,Q=0,D=0,C=0,S=0,I=0,P=0,F=0,T=0,L=0;if(0|r[(u=(A|=0)+8|0)>>2])return 0|(L=1);if(!(a=0|r[A>>2]))return 0|(L=0);n=a,o=0;do{o=o+1|0,n=0|r[n+8>>2]}while(0|n);if(o>>>0<2)return 0|(L=0);(t=0|we(o<<2))||M(22807,22646,317,22826),(e=0|we(o<<5))||M(22848,22646,321,22826),r[A>>2]=0,r[(Q=A+4|0)>>2]=0,r[u>>2]=0,o=0,F=0,x=0,p=0;A:for(;;){if(d=0|r[a>>2]){f=0,l=d;do{if(h=+i[l+8>>3],n=l,l=0|r[l+16>>2],c=+i[(u=(g=!(0|l))?d:l)+8>>3],+s(+(h-c))>3.141592653589793){L=14;break}f+=(c-h)*(+i[n>>3]+ +i[u>>3])}while(!g);if(14==(0|L)){L=0,f=0,n=d;do{_=+i[n+8>>3],I=0|r[(P=n+16|0)>>2],k=+i[(I=0|I?I:d)+8>>3],f+=(+i[n>>3]+ +i[I>>3])*((k<0?k+6.283185307179586:k)-(_<0?_+6.283185307179586:_)),n=0|r[(0|n?P:a)>>2]}while(0|n)}f>0?(r[t+(F<<2)>>2]=a,F=F+1|0,u=x,n=p):L=19}else L=19;if(19==(0|L)){L=0;do{if(!o){if(p){u=Q,l=p+8|0,n=a,o=A;break}if(0|r[A>>2]){L=27;break A}u=Q,l=A,n=a,o=A;break}if(0|r[(n=o+8|0)>>2]){L=21;break A}if(!(o=0|me(1,12))){L=23;break A}r[n>>2]=o,u=o+4|0,l=o,n=p}while(0);if(r[l>>2]=a,r[u>>2]=a,l=e+(x<<5)|0,g=0|r[a>>2]){for(i[(d=e+(x<<5)+8|0)>>3]=17976931348623157e292,i[(p=e+(x<<5)+24|0)>>3]=17976931348623157e292,i[l>>3]=-17976931348623157e292,i[(w=e+(x<<5)+16|0)>>3]=-17976931348623157e292,B=17976931348623157e292,E=-17976931348623157e292,u=0,v=g,h=17976931348623157e292,b=17976931348623157e292,y=-17976931348623157e292,c=-17976931348623157e292;f=+i[v>>3],_=+i[v+8>>3],v=0|r[v+16>>2],k=+i[((m=!(0|v))?g:v)+8>>3],f<h&&(i[d>>3]=f,h=f),_<b&&(i[p>>3]=_,b=_),f>y?i[l>>3]=f:f=y,_>c&&(i[w>>3]=_,c=_),B=_>0&_<B?_:B,E=_<0&_>E?_:E,u|=+s(+(_-k))>3.141592653589793,!m;)y=f;u&&(i[w>>3]=E,i[p>>3]=B)}else r[l>>2]=0,r[l+4>>2]=0,r[l+8>>2]=0,r[l+12>>2]=0,r[l+16>>2]=0,r[l+20>>2]=0,r[l+24>>2]=0,r[l+28>>2]=0;u=x+1|0}if(a=0|r[(P=a+8|0)>>2],r[P>>2]=0,!a){L=45;break}x=u,p=n}if(21==(0|L))M(22624,22646,35,22658);else if(23==(0|L))M(22678,22646,37,22658);else if(27==(0|L))M(22721,22646,61,22744);else if(45==(0|L)){A:do{if((0|F)>0){for(P=!(0|u),S=u<<2,I=!(0|A),C=0,n=0;;){if(D=0|r[t+(C<<2)>>2],P)L=73;else{if(!(x=0|we(S))){L=50;break}if(!(Q=0|we(S))){L=52;break}e:do{if(I)o=0;else{for(u=0,o=0,l=A;a=e+(u<<5)|0,0|qA(0|r[l>>2],a,0|r[D>>2])?(r[x+(o<<2)>>2]=l,r[Q+(o<<2)>>2]=a,m=o+1|0):m=o,l=0|r[l+8>>2];)u=u+1|0,o=m;if((0|m)>0)if(a=0|r[x>>2],1==(0|m))o=a;else for(w=0,v=-1,o=a,p=a;;){for(g=0|r[p>>2],a=0,l=0;d=(0|(u=0|r[r[x+(l<<2)>>2]>>2]))==(0|g)?a:a+(1&qA(u,0|r[Q+(l<<2)>>2],0|r[g>>2]))|0,(0|(l=l+1|0))!=(0|m);)a=d;if(o=(u=(0|d)>(0|v))?p:o,(0|(a=w+1|0))==(0|m))break e;w=a,v=u?d:v,p=0|r[x+(a<<2)>>2]}else o=0}}while(0);if(ve(x),ve(Q),o){if(a=0|r[(u=o+4|0)>>2])o=a+8|0;else if(0|r[o>>2]){L=70;break}r[o>>2]=D,r[u>>2]=D}else L=73}if(73==(0|L)){if(L=0,0|(n=0|r[D>>2]))do{Q=n,n=0|r[n+16>>2],ve(Q)}while(0|n);ve(D),n=2}if((0|(C=C+1|0))>=(0|F)){T=n;break A}}50==(0|L)?M(22863,22646,249,22882):52==(0|L)?M(22901,22646,252,22882):70==(0|L)&&M(22721,22646,61,22744)}else T=0}while(0);return ve(t),ve(e),0|(L=T)}return 0}function qA(A,e,t){A|=0;var n,o=0,a=0,s=0,u=0,f=0,l=0,c=0;if(!(0|H(e|=0,t|=0)))return 0|(A=0);if(e=0|N(e),n=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|r[A>>2]))return 0|(A=0);if(e){e=0,t=A;A:for(;;){for(;u=+i[t>>3],l=+i[t+8>>3],c=0|r[(t=t+16|0)>>2],s=+i[(c=0|c?c:A)>>3],a=+i[c+8>>3],u>s?(f=u,u=l):(f=s,s=u,u=a,a=l),n<s|n>f;)if(!(t=0|r[t>>2])){t=22;break A}if(o=(u=u<0?u+6.283185307179586:u)==o|(l=a<0?a+6.283185307179586:a)==o?o+-2220446049250313e-31:o,((l+=(n-s)/(f-s)*(u-l))<0?l+6.283185307179586:l)>o&&(e^=1),!(t=0|r[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,t=A;A:for(;;){for(;u=+i[t>>3],l=+i[t+8>>3],c=0|r[(t=t+16|0)>>2],s=+i[(c=0|c?c:A)>>3],a=+i[c+8>>3],u>s?(f=u,u=l):(f=s,s=u,u=a,a=l),n<s|n>f;)if(!(t=0|r[t>>2])){t=22;break A}if(a+(n-s)/(f-s)*(u-a)>(o=u==o|a==o?o+-2220446049250313e-31:o)&&(e^=1),!(t=0|r[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,s,u,f,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0;if(f=C,C=C+32|0,b=f+16|0,u=f,l=0|Me(0|(A|=0),0|(e|=0),52),E(),l&=15,w=0|Me(0|t,0|i,52),E(),(0|l)!=(15&w))return C=f,0|(b=1);if(d=0|Me(0|A,0|e,45),E(),d&=127,p=0|Me(0|t,0|i,45),E(),w=(0|d)!=(0|(p&=127))){if(7==(0|(h=0|Y(d,p))))return C=f,0|(b=2);7==(0|(g=0|Y(p,d)))?M(22925,22949,151,22959):(v=h,c=g)}else v=0,c=0;a=0|L(d),s=0|L(p),r[b>>2]=0,r[b+4>>2]=0,r[b+8>>2]=0,r[b+12>>2]=0;do{if(v){if(h=(0|(p=0|r[4304+(28*d|0)+(v<<2)>>2]))>0,s)if(h){d=0,g=t,h=i;do{g=0|RA(g,h),h=0|E(),1==(0|(c=0|uA(c)))&&(c=0|uA(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|UA(g,h),h=0|E(),c=0|uA(c),d=d+1|0}while((0|d)!=(0|p));p=c,d=g,g=h}else p=c,d=t,g=i;if(YA(d,g,b),w||M(22972,22949,181,22959),(h=!!(0|a))&(c=!!(0|s))&&M(22999,22949,182,22959),h){if(c=0|TA(A,e),0|n[22032+(7*c|0)+v|0]){l=3;break}d=g=0|r[21200+(28*c|0)+(v<<2)>>2],m=26}else if(c){if(c=0|TA(d,g),0|n[22032+(7*c|0)+p|0]){l=4;break}d=0,g=0|r[21200+(28*p|0)+(c<<2)>>2],m=26}else c=0;if(26==(0|m))if((0|g)<=-1&&M(23030,22949,212,22959),(0|d)<=-1&&M(23053,22949,213,22959),(0|g)>0){h=b+4|0,c=0;do{aA(h),c=c+1|0}while((0|c)!=(0|g));c=d}else c=d;if(r[u>>2]=0,r[u+4>>2]=0,r[u+8>>2]=0,iA(u,v),0|l)for(;0|OA(l)?nA(u):rA(u),(0|l)>1;)l=l+-1|0;if((0|c)>0){l=0;do{aA(u),l=l+1|0}while((0|l)!=(0|c))}K(m=b+4|0,u,m),Z(m),m=50}else if(YA(t,i,b),!!(0|a)&!!(0|s))if((0|p)!=(0|d)&&M(23077,22949,243,22959),c=0|TA(A,e),l=0|TA(t,i),0|n[22032+(7*c|0)+l|0])l=5;else if((0|(c=0|r[21200+(28*c|0)+(l<<2)>>2]))>0){h=b+4|0,l=0;do{aA(h),l=l+1|0}while((0|l)!=(0|c));m=50}else m=50;else m=50}while(0);return 50==(0|m)&&(l=b+4|0,r[o>>2]=r[l>>2],r[o+4>>2]=r[l+4>>2],r[o+8>>2]=r[l+8>>2],l=0),C=f,0|(b=l)}function Ae(A,e,t,n){t|=0,n|=0;var i,o,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0;if(o=C,C=C+48|0,u=o+36|0,f=o+24|0,l=o+12|0,c=o,s=0|Me(0|(A|=0),0|(e|=0),52),E(),s&=15,g=0|Me(0|A,0|e,45),E(),i=0|L(g&=127),ke(0|s,0,52),w=134225919|E(),r[(p=n)>>2]=-1,r[p+4>>2]=w,!s)return(0|r[t>>2])>1||(0|r[t+4>>2])>1||(0|r[t+8>>2])>1||127==(0|(a=0|z(g,0|AA(t))))?(C=o,0|(w=1)):(d=0|ke(0|a,0,45),p=0|E(),p=-1040385&r[(g=n)+4>>2]|p,r[(w=n)>>2]=r[g>>2]|d,r[w+4>>2]=p,C=o,0|(w=0));for(r[u>>2]=r[t>>2],r[u+4>>2]=r[t+4>>2],r[u+8>>2]=r[t+8>>2];r[f>>2]=r[u>>2],r[f+4>>2]=r[u+4>>2],r[f+8>>2]=r[u+8>>2],0|OA(s)?(eA(u),r[l>>2]=r[u>>2],r[l+4>>2]=r[u+4>>2],r[l+8>>2]=r[u+8>>2],nA(l)):(tA(u),r[l>>2]=r[u>>2],r[l+4>>2]=r[u+4>>2],r[l+8>>2]=r[u+8>>2],rA(l)),q(f,l,c),Z(c),v=0|r[(p=n)>>2],p=0|r[p+4>>2],t=0|ke(7,0,0|(m=3*(15-s|0)|0)),p&=~E(),m=0|ke(0|AA(c),0,0|m),p=0|E()|p,r[(w=n)>>2]=m|v&~t,r[w+4>>2]=p,(0|s)>1;)s=s+-1|0;A:do{if((0|r[u>>2])<=1&&(0|r[u+4>>2])<=1&&(0|r[u+8>>2])<=1){c=127==(0|(f=0|z(g,s=0|AA(u))))?0:0|L(f);e:do{if(s){if(i){if(u=21408+(28*(0|TA(A,e))|0)+(s<<2)|0,(0|(u=0|r[u>>2]))>0){t=0;do{s=0|sA(s),t=t+1|0}while((0|t)!=(0|u))}if(1==(0|s)){a=3;break A}127==(0|(t=0|z(g,s)))&&M(23104,22949,376,23134),0|L(t)?M(23147,22949,377,23134):(d=u,h=s,a=t)}else d=0,h=s,a=f;if((0|(l=0|r[4304+(28*g|0)+(h<<2)>>2]))<=-1&&M(23178,22949,384,23134),!c){if((0|d)<=-1&&M(23030,22949,417,23134),0|d){s=0,t=0|r[(u=n)>>2],u=0|r[u+4>>2];do{t=0|GA(t,u),u=0|E(),r[(m=n)>>2]=t,r[m+4>>2]=u,s=s+1|0}while((0|s)<(0|d))}if((0|l)<=0){s=54;break}for(s=0,t=0|r[(u=n)>>2],u=0|r[u+4>>2];;)if(t=0|GA(t,u),u=0|E(),r[(m=n)>>2]=t,r[m+4>>2]=u,(0|(s=s+1|0))==(0|l)){s=54;break e}}if(7==(0|(f=0|Y(a,g)))&&M(22925,22949,393,23134),t=0|r[(s=n)>>2],s=0|r[s+4>>2],(0|l)>0){u=0;do{t=0|GA(t,s),s=0|E(),r[(m=n)>>2]=t,r[m+4>>2]=s,u=u+1|0}while((0|u)!=(0|l))}if(t=0|TA(t,s),m=0|G(a),(0|(t=0|r[(m?21824:21616)+(28*f|0)+(t<<2)>>2]))<=-1&&M(23030,22949,412,23134),t){s=0,u=0|r[(f=n)>>2],f=0|r[f+4>>2];do{u=0|LA(u,f),f=0|E(),r[(m=n)>>2]=u,r[m+4>>2]=f,s=s+1|0}while((0|s)<(0|t));s=54}else s=54}else if(!!(0|i)&!!(0|c))if(s=21408+(28*(m=0|TA(A,e))|0)+(TA(0|r[(s=n)>>2],0|r[s+4>>2])<<2)|0,(0|(s=0|r[s>>2]))<=-1&&M(23201,22949,433,23134),s){a=0,t=0|r[(u=n)>>2],u=0|r[u+4>>2];do{t=0|GA(t,u),u=0|E(),r[(m=n)>>2]=t,r[m+4>>2]=u,a=a+1|0}while((0|a)<(0|s));a=f,s=54}else a=f,s=55;else a=f,s=54}while(0);if(54==(0|s)&&c&&(s=55),55==(0|s)&&1==(0|TA(0|r[(m=n)>>2],0|r[m+4>>2]))){a=4;break}w=0|r[(m=n)>>2],m=-1040385&r[m+4>>2],v=0|ke(0|a,0,45),m=0|m|E(),r[(a=n)>>2]=w|v,r[a+4>>2]=m,a=0}else a=2}while(0);return C=o,0|(m=a)}function ee(A,e){var t=0;if(!(e|=0))return 0|(t=1);t=A|=0,A=1;do{A=0|m(1&e?t:1,A),e>>=1,t=0|m(t,t)}while(0|e);return 0|A}function te(A,e,t){A|=0;var n,o,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0;if(!(0|H(e|=0,t|=0)))return 0|(g=0);if(e=0|N(e),o=+i[t>>3],a=e&(a=+i[t+8>>3])<0?a+6.283185307179586:a,(0|(g=0|r[A>>2]))<=0)return 0|(g=0);if(n=0|r[A+4>>2],e){e=0,t=-1,A=0;A:for(;;){for(h=A;f=+i[n+(h<<4)>>3],c=+i[n+(h<<4)+8>>3],u=+i[n+((A=(t+2|0)%(0|g)|0)<<4)>>3],s=+i[n+(A<<4)+8>>3],f>u?(l=f,f=c):(l=u,u=f,f=s,s=c),o<u|o>l;){if(!((0|(t=h+1|0))<(0|g))){t=22;break A}A=h,h=t,t=A}if(a=(f=f<0?f+6.283185307179586:f)==a|(c=s<0?s+6.283185307179586:s)==a?a+-2220446049250313e-31:a,((c+=(o-u)/(l-u)*(f-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;f=+i[n+(h<<4)>>3],c=+i[n+(h<<4)+8>>3],u=+i[n+((A=(t+2|0)%(0|g)|0)<<4)>>3],s=+i[n+(A<<4)+8>>3],f>u?(l=f,f=c):(l=u,u=f,f=s,s=c),o<u|o>l;){if(!((0|(t=h+1|0))<(0|g))){t=22;break A}A=h,h=t,t=A}if(s+(o-u)/(l-u)*(f-s)>(a=f==a|s==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 ne(A,e){e|=0;var t,n,o,a,u,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0;if(!(n=0|r[(A|=0)>>2]))return r[e>>2]=0,r[e+4>>2]=0,r[e+8>>2]=0,r[e+12>>2]=0,r[e+16>>2]=0,r[e+20>>2]=0,r[e+24>>2]=0,void(r[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(a=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(u=e+16|0)>>3]=-17976931348623157e292,!((0|n)<=0)){for(t=0|r[A+4>>2],w=17976931348623157e292,v=-17976931348623157e292,m=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,p=-17976931348623157e292,l=-17976931348623157e292,b=0;f=+i[t+(b<<4)>>3],d=+i[t+(b<<4)+8>>3],c=+i[t+(((0|(A=A+2|0))==(0|n)?0:A)<<4)+8>>3],f<h&&(i[o>>3]=f,h=f),d<g&&(i[a>>3]=d,g=d),f>p?i[e>>3]=f:f=p,d>l&&(i[u>>3]=d,l=d),w=d>0&d<w?d:w,v=d<0&d>v?d:v,m|=+s(+(d-c))>3.141592653589793,(0|(A=b+1|0))!=(0|n);)y=b,p=f,b=A,A=y;m&&(i[u>>3]=v,i[a>>3]=w)}}function re(A,e){e|=0;var t,n=0,o=0,a=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,E=0,M=0,k=0,_=0;if(v=0|r[(A|=0)>>2]){if(i[(m=e+8|0)>>3]=17976931348623157e292,i[(b=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(y=e+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(a=0|r[A+4>>2],p=17976931348623157e292,w=-17976931348623157e292,o=0,n=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,f=-17976931348623157e292,B=0;u=+i[a+(B<<4)>>3],g=+i[a+(B<<4)+8>>3],l=+i[a+(((0|(k=n+2|0))==(0|v)?0:k)<<4)+8>>3],u<c&&(i[m>>3]=u,c=u),g<h&&(i[b>>3]=g,h=g),u>d?i[e>>3]=u:u=d,g>f&&(i[y>>3]=g,f=g),p=g>0&g<p?g:p,w=g<0&g>w?g:w,o|=+s(+(g-l))>3.141592653589793,(0|(n=B+1|0))!=(0|v);)k=B,d=u,B=n,n=k;o&&(i[y>>3]=w,i[b>>3]=p)}}else r[e>>2]=0,r[e+4>>2]=0,r[e+8>>2]=0,r[e+12>>2]=0,r[e+16>>2]=0,r[e+20>>2]=0,r[e+24>>2]=0,r[e+28>>2]=0;if(!((0|(n=0|r[(k=A+8|0)>>2]))<=0)){t=A+12|0,M=0;do{if(a=0|r[t>>2],o=M,b=e+((M=M+1|0)<<5)|0,y=0|r[a+(o<<3)>>2]){if(i[(B=e+(M<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(M<<5)+24|0)>>3]=17976931348623157e292,i[b>>3]=-17976931348623157e292,i[(E=e+(M<<5)+16|0)>>3]=-17976931348623157e292,(0|y)>0){for(v=0|r[a+(o<<3)+4>>2],p=17976931348623157e292,w=-17976931348623157e292,a=0,o=-1,m=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,f=-17976931348623157e292;u=+i[v+(m<<4)>>3],d=+i[v+(m<<4)+8>>3],l=+i[v+(((0|(o=o+2|0))==(0|y)?0:o)<<4)+8>>3],u<c&&(i[B>>3]=u,c=u),d<h&&(i[A>>3]=d,h=d),u>g?i[b>>3]=u:u=g,d>f&&(i[E>>3]=d,f=d),p=d>0&d<p?d:p,w=d<0&d>w?d:w,a|=+s(+(d-l))>3.141592653589793,(0|(o=m+1|0))!=(0|y);)_=m,m=o,g=u,o=_;a&&(i[E>>3]=w,i[A>>3]=p)}}else r[b>>2]=0,r[b+4>>2]=0,r[b+8>>2]=0,r[b+12>>2]=0,r[b+16>>2]=0,r[b+20>>2]=0,r[b+24>>2]=0,r[b+28>>2]=0,n=0|r[k>>2]}while((0|M)<(0|n))}}function ie(A,e,t){var n=0,i=0,o=0;if(!(0|te(A|=0,e|=0,t|=0)))return 0|(i=0);if((0|r[(i=A+8|0)>>2])<=0)return 0|(i=1);for(n=A+12|0,A=0;;){if(o=A,A=A+1|0,0|te((0|r[n>>2])+(o<<3)|0,e+(A<<5)|0,t)){A=0,n=6;break}if((0|A)>=(0|r[i>>2])){A=1,n=6;break}}return 6==(0|n)?0|A:0}function oe(A,e,t,n,r){e|=0,t|=0,n|=0,r|=0;var o,a,s,u,f,l,c,h=0;u=+i[(A|=0)>>3],s=+i[e>>3]-u,a=+i[A+8>>3],o=+i[e+8>>3]-a,l=+i[t>>3],h=((h=+i[n>>3]-l)*(a-(c=+i[t+8>>3]))-(u-l)*(f=+i[n+8>>3]-c))/(s*f-o*h),i[r>>3]=u+s*h,i[r+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 se(A,e){e|=0;var t,n,r;return+((r=+i[(A|=0)>>3]-+i[e>>3])*r+(n=+i[A+8>>3]-+i[e+8>>3])*n+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function ue(A,e,t){A|=0,t|=0;var n=0;(0|(e|=0))>0?(n=0|me(e,4),r[A>>2]=n,n||M(23230,23253,40,23267)):r[A>>2]=0,r[A+4>>2]=e,r[A+8>>2]=0,r[A+12>>2]=t}function fe(A){var e,t,n,o=0,a=0,u=0,l=0;e=(A|=0)+4|0,t=A+12|0,n=A+8|0;A:for(;;){for(a=0|r[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(u=0|r[A>>2],l=0|r[u+(o<<2)>>2])break;o=o+1|0}o=u+(~~(+s(+ +f(10,+ +(15-(0|r[t>>2])|0))*(+i[l>>3]+ +i[l+8>>3]))%+(0|a))>>>0<<2)|0,a=0|r[o>>2];e:do{if(0|a){if(u=l+32|0,(0|a)==(0|l))r[o>>2]=r[u>>2];else{if(!(o=0|r[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|l);)if(!(o=0|r[(a=o+32|0)>>2]))break e;r[a>>2]=r[u>>2]}ve(l),r[n>>2]=(0|r[n>>2])-1}}while(0)}ve(0|r[A>>2])}function le(A){var e,t=0,n=0;for(e=0|r[(A|=0)+4>>2],n=0;;){if((0|n)>=(0|e)){t=0,n=4;break}if(t=0|r[(0|r[A>>2])+(n<<2)>>2]){n=4;break}n=n+1|0}return 4==(0|n)?0|t:0}function ce(A,e){e|=0;var t=0,n=0,o=0,a=0;if(t=~~(+s(+ +f(10,+ +(15-(0|r[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|r[A+4>>2]))>>>0,t=(0|r[A>>2])+(t<<2)|0,!(n=0|r[t>>2]))return 0|(a=1);a=e+32|0;do{if((0|n)!=(0|e)){if(!(t=0|r[n+32>>2]))return 0|(a=1);for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|r[o+32>>2])){t=1,o=10;break}n=o,o=t}if(8==(0|o)){r[n+32>>2]=r[a>>2];break}if(10==(0|o))return 0|t}else r[t>>2]=r[a>>2]}while(0);return ve(e),r[(a=A+8|0)>>2]=(0|r[a>>2])-1,0|(a=0)}function he(A,e,t){A|=0,e|=0,t|=0;var n,o=0,a=0,u=0;(n=0|we(40))||M(23283,23253,98,23296),r[n>>2]=r[e>>2],r[n+4>>2]=r[e+4>>2],r[n+8>>2]=r[e+8>>2],r[n+12>>2]=r[e+12>>2],r[(a=n+16|0)>>2]=r[t>>2],r[a+4>>2]=r[t+4>>2],r[a+8>>2]=r[t+8>>2],r[a+12>>2]=r[t+12>>2],r[n+32>>2]=0,a=~~(+s(+ +f(10,+ +(15-(0|r[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|r[A+4>>2]))>>>0,a=(0|r[A>>2])+(a<<2)|0,o=0|r[a>>2];do{if(o){for(;!(0|xA(o,e)&&0|xA(o+16|0,t));)if(a=0|r[o+32>>2],!(0|r[(o=0|a?a:o)+32>>2])){u=10;break}if(10==(0|u)){r[o+32>>2]=n;break}return ve(n),0|(u=o)}r[a>>2]=n}while(0);return r[(u=A+8|0)>>2]=1+(0|r[u>>2]),0|(u=n)}function ge(A,e,t){e|=0,t|=0;var n=0,o=0;if(o=~~(+s(+ +f(10,+ +(15-(0|r[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|r[A+4>>2]))>>>0,!(o=0|r[(0|r[A>>2])+(o<<2)>>2]))return 0|(t=0);if(!t){for(A=o;;){if(0|xA(A,e)){n=10;break}if(!(A=0|r[A+32>>2])){A=0,n=10;break}}if(10==(0|n))return 0|A}for(A=o;;){if(0|xA(A,e)&&0|xA(A+16|0,t)){n=10;break}if(!(A=0|r[A+32>>2])){A=0,n=10;break}}return 10==(0|n)?0|A:0}function de(A,e){e|=0;var t=0;if(t=~~(+s(+ +f(10,+ +(15-(0|r[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|r[A+4>>2]))>>>0,!(A=0|r[(0|r[A>>2])+(t<<2)>>2]))return 0|(t=0);for(;;){if(0|xA(A,e)){e=5;break}if(!(A=0|r[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,n=0,i=0,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0;e=C,C=C+16|0,g=e;do{if(A>>>0<245){if(A=(l=A>>>0<11?16:A+11&-8)>>>3,3&(n=(h=0|r[5829])>>>A))return i=0|r[(n=(A=23356+((t=(1&n^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|r[(o=i+8|0)>>2]))==(0|A)?r[5829]=h&~(1<<t):(r[a+12>>2]=A,r[n>>2]=a),B=t<<3,r[i+4>>2]=3|B,r[(B=i+B+4|0)>>2]=1|r[B>>2],C=e,0|(B=o);if(l>>>0>(c=0|r[5831])>>>0){if(0|n)return t=((t=n<<A&((t=2<<A)|0-t))&0-t)-1|0,a=0|r[(A=(t=23356+((i=((n=(t>>>=u=t>>>12&16)>>>5&8)|u|(a=(t>>>=n)>>>2&4)|(A=(t>>>=a)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(n=0|r[(u=a+8|0)>>2]))==(0|t)?(A=h&~(1<<i),r[5829]=A):(r[n+12>>2]=t,r[A>>2]=n,A=h),s=(B=i<<3)-l|0,r[a+4>>2]=3|l,r[(o=a+l|0)+4>>2]=1|s,r[a+B>>2]=s,0|c&&(i=0|r[5834],n=23356+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|r[(A=n+8|0)>>2]:(r[5829]=A|t,t=n,A=n+8|0),r[A>>2]=i,r[t+12>>2]=i,r[i+8>>2]=t,r[i+12>>2]=n),r[5831]=s,r[5834]=o,C=e,0|(B=u);if(a=0|r[5830]){for(n=(a&0-a)-1|0,n=f=0|r[23620+(((i=(n>>>=o=n>>>12&16)>>>5&8)|o|(s=(n>>>=i)>>>2&4)|(u=(n>>>=s)>>>1&2)|(f=(n>>>=u)>>>1&1))+(n>>>f)<<2)>>2],u=f,f=(-8&r[f+4>>2])-l|0;(A=0|r[n+16>>2])||(A=0|r[n+20>>2]);)n=A,u=(o=(s=(-8&r[A+4>>2])-l|0)>>>0<f>>>0)?A:u,f=o?s:f;if((s=u+l|0)>>>0>u>>>0){o=0|r[u+24>>2],t=0|r[u+12>>2];do{if((0|t)==(0|u)){if(!(t=0|r[(A=u+20|0)>>2])&&!(t=0|r[(A=u+16|0)>>2])){n=0;break}for(;;)if(n=0|r[(i=t+20|0)>>2])t=n,A=i;else{if(!(n=0|r[(i=t+16|0)>>2]))break;t=n,A=i}r[A>>2]=0,n=t}else n=0|r[u+8>>2],r[n+12>>2]=t,r[t+8>>2]=n,n=t}while(0);do{if(0|o){if(t=0|r[u+28>>2],(0|u)==(0|r[(A=23620+(t<<2)|0)>>2])){if(r[A>>2]=n,!n){r[5830]=a&~(1<<t);break}}else if(r[((0|r[(B=o+16|0)>>2])==(0|u)?B:o+20)>>2]=n,!n)break;r[n+24>>2]=o,0|(t=0|r[u+16>>2])&&(r[n+16>>2]=t,r[t+24>>2]=n),0|(t=0|r[u+20>>2])&&(r[n+20>>2]=t,r[t+24>>2]=n)}}while(0);return f>>>0<16?(B=f+l|0,r[u+4>>2]=3|B,r[(B=u+B+4|0)>>2]=1|r[B>>2]):(r[u+4>>2]=3|l,r[s+4>>2]=1|f,r[s+f>>2]=f,0|c&&(i=0|r[5834],n=23356+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|r[(A=n+8|0)>>2]:(r[5829]=t|h,t=n,A=n+8|0),r[A>>2]=i,r[t+12>>2]=i,r[i+8>>2]=t,r[i+12>>2]=n),r[5831]=f,r[5834]=s),C=e,0|(B=u+8|0)}h=l}else h=l}else h=l}else if(A>>>0<=4294967231)if(l=-8&(A=A+11|0),i=0|r[5830]){o=0-l|0,f=(A>>>=8)?l>>>0>16777215?31:l>>>((f=14-((u=((w=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(f=((w<<=u)+245760|0)>>>16&2))+(w<<f>>>15)|0)+7|0)&1|f<<1:0,n=0|r[23620+(f<<2)>>2];A:do{if(n)for(A=0,u=l<<(31==(0|f)?0:25-(f>>>1)|0),a=0;;){if((s=(-8&r[n+4>>2])-l|0)>>>0<o>>>0){if(!s){A=n,o=0,w=65;break A}A=n,o=s}if(a=!(0|(w=0|r[n+20>>2]))|(0|w)==(0|(n=0|r[n+16+(u>>>31<<2)>>2]))?a:w,!n){n=a,w=61;break}u<<=1}else n=0,A=0,w=61}while(0);if(61==(0|w)){if(!(0|n)&!(0|A)){if(!(A=((A=2<<f)|0-A)&i)){h=l;break}h=(A&0-A)-1|0,A=0,n=0|r[23620+(((a=(h>>>=s=h>>>12&16)>>>5&8)|s|(u=(h>>>=a)>>>2&4)|(f=(h>>>=u)>>>1&2)|(n=(h>>>=f)>>>1&1))+(h>>>n)<<2)>>2]}n?w=65:(u=A,s=o)}if(65==(0|w))for(a=n;;){if(o=(n=(h=(-8&r[a+4>>2])-l|0)>>>0<o>>>0)?h:o,A=n?a:A,(n=0|r[a+16>>2])||(n=0|r[a+20>>2]),!n){u=A,s=o;break}a=n}if(0|u&&s>>>0<((0|r[5831])-l|0)>>>0&&(c=u+l|0)>>>0>u>>>0){a=0|r[u+24>>2],t=0|r[u+12>>2];do{if((0|t)==(0|u)){if(!(t=0|r[(A=u+20|0)>>2])&&!(t=0|r[(A=u+16|0)>>2])){t=0;break}for(;;)if(n=0|r[(o=t+20|0)>>2])t=n,A=o;else{if(!(n=0|r[(o=t+16|0)>>2]))break;t=n,A=o}r[A>>2]=0}else B=0|r[u+8>>2],r[B+12>>2]=t,r[t+8>>2]=B}while(0);do{if(a){if(A=0|r[u+28>>2],(0|u)==(0|r[(n=23620+(A<<2)|0)>>2])){if(r[n>>2]=t,!t){i&=~(1<<A),r[5830]=i;break}}else if(r[((0|r[(B=a+16|0)>>2])==(0|u)?B:a+20)>>2]=t,!t)break;r[t+24>>2]=a,0|(A=0|r[u+16>>2])&&(r[t+16>>2]=A,r[A+24>>2]=t),(A=0|r[u+20>>2])&&(r[t+20>>2]=A,r[A+24>>2]=t)}}while(0);A:do{if(s>>>0<16)B=s+l|0,r[u+4>>2]=3|B,r[(B=u+B+4|0)>>2]=1|r[B>>2];else{if(r[u+4>>2]=3|l,r[c+4>>2]=1|s,r[c+s>>2]=s,t=s>>>3,s>>>0<256){n=23356+(t<<1<<2)|0,(A=0|r[5829])&(t=1<<t)?t=0|r[(A=n+8|0)>>2]:(r[5829]=A|t,t=n,A=n+8|0),r[A>>2]=c,r[t+12>>2]=c,r[c+8>>2]=t,r[c+12>>2]=n;break}if(t=23620+((n=(t=s>>>8)?s>>>0>16777215?31:s>>>((n=14-((b=((B=t<<(y=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|y|(n=((B<<=b)+245760|0)>>>16&2))+(B<<n>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,r[c+28>>2]=n,r[(A=c+16|0)+4>>2]=0,r[A>>2]=0,!(i&(A=1<<n))){r[5830]=i|A,r[t>>2]=c,r[c+24>>2]=t,r[c+12>>2]=c,r[c+8>>2]=c;break}t=0|r[t>>2];e:do{if((-8&r[t+4>>2])!=(0|s)){for(i=s<<(31==(0|n)?0:25-(n>>>1)|0);A=0|r[(n=t+16+(i>>>31<<2)|0)>>2];){if((-8&r[A+4>>2])==(0|s)){t=A;break e}i<<=1,t=A}r[n>>2]=c,r[c+24>>2]=t,r[c+12>>2]=c,r[c+8>>2]=c;break A}}while(0);B=0|r[(y=t+8|0)>>2],r[B+12>>2]=c,r[y>>2]=c,r[c+8>>2]=B,r[c+12>>2]=t,r[c+24>>2]=0}}while(0);return C=e,0|(B=u+8|0)}h=l}else h=l;else h=-1}while(0);if((n=0|r[5831])>>>0>=h>>>0)return t=n-h|0,A=0|r[5834],t>>>0>15?(B=A+h|0,r[5834]=B,r[5831]=t,r[B+4>>2]=1|t,r[A+n>>2]=t,r[A+4>>2]=3|h):(r[5831]=0,r[5834]=0,r[A+4>>2]=3|n,r[(B=A+n+4|0)>>2]=1|r[B>>2]),C=e,0|(B=A+8|0);if((s=0|r[5832])>>>0>h>>>0)return b=s-h|0,r[5832]=b,y=(B=0|r[5835])+h|0,r[5835]=y,r[y+4>>2]=1|b,r[B+4>>2]=3|h,C=e,0|(B=B+8|0);if(0|r[5947]?A=0|r[5949]:(r[5949]=4096,r[5948]=4096,r[5950]=-1,r[5951]=-1,r[5952]=0,r[5940]=0,r[5947]=-16&g^1431655768,A=4096),u=h+48|0,(l=(a=A+(f=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return C=e,0|(B=0);if(0|(A=0|r[5939])&&(g=(c=0|r[5937])+l|0)>>>0<=c>>>0|g>>>0>A>>>0)return C=e,0|(B=0);A:do{if(4&r[5940])t=0,w=143;else{n=0|r[5835];e:do{if(n){for(i=23764;!((g=0|r[i>>2])>>>0<=n>>>0&&(g+(0|r[i+4>>2])|0)>>>0>n>>>0);){if(!(A=0|r[i+8>>2])){w=128;break e}i=A}if((t=a-s&o)>>>0<2147483647)if((0|(A=0|Se(0|t)))==((0|r[i>>2])+(0|r[i+4>>2])|0)){if(-1!=(0|A)){s=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|(n=0|Se(0)))&&(t=n,p=(t=((p=(d=0|r[5948])+-1|0)&t|0?(p+t&0-d)-t|0:0)+l|0)+(d=0|r[5937])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(g=0|r[5939])&&p>>>0<=d>>>0|p>>>0>g>>>0){t=0;break}if((0|(A=0|Se(0|t)))==(0|n)){s=t,a=n,w=145;break A}i=A,w=136}else t=0}while(0);do{if(136==(0|w)){if(n=0-t|0,!(u>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}s=t,a=i,w=145;break A}if((A=f-t+(A=0|r[5949])&0-A)>>>0>=2147483647){s=t,a=i,w=145;break A}if(-1==(0|Se(0|A))){Se(0|n),t=0;break}s=A+t|0,a=i,w=145;break A}}while(0);r[5940]=4|r[5940],w=143}}while(0);if(143==(0|w)&&l>>>0<2147483647&&!(-1==(0|(b=0|Se(0|l)))|1^(m=(v=(p=0|Se(0))-b|0)>>>0>(h+40|0)>>>0)|b>>>0<p>>>0&-1!=(0|b)&-1!=(0|p)^1)&&(s=m?v:t,a=b,w=145),145==(0|w)){t=(0|r[5937])+s|0,r[5937]=t,t>>>0>(0|r[5938])>>>0&&(r[5938]=t),f=0|r[5835];A:do{if(f){for(t=23764;;){if((0|a)==((A=0|r[t>>2])+(n=0|r[t+4>>2])|0)){w=154;break}if(!(i=0|r[t+8>>2]))break;t=i}if(!(154!=(0|w)||(y=t+4|0,8&r[t+12>>2]))&&a>>>0>f>>>0&A>>>0<=f>>>0){r[y>>2]=n+s,y=f+(b=7&(b=f+8|0)?0-b&7:0)|0,b=(B=(0|r[5832])+s|0)-b|0,r[5835]=y,r[5832]=b,r[y+4>>2]=1|b,r[f+B+4>>2]=40,r[5836]=r[5951];break}for(a>>>0<(0|r[5833])>>>0&&(r[5833]=a),n=a+s|0,t=23764;;){if((0|r[t>>2])==(0|n)){w=162;break}if(!(A=0|r[t+8>>2]))break;t=A}if(162==(0|w)&&!(8&r[t+12>>2])){r[t>>2]=a,r[(c=t+4|0)>>2]=(0|r[c>>2])+s,l=(c=a+(7&(c=a+8|0)?0-c&7:0)|0)+h|0,u=(t=n+(7&(t=n+8|0)?0-t&7:0)|0)-c-h|0,r[c+4>>2]=3|h;e:do{if((0|f)==(0|t))B=(0|r[5832])+u|0,r[5832]=B,r[5835]=l,r[l+4>>2]=1|B;else{if((0|r[5834])==(0|t)){B=(0|r[5831])+u|0,r[5831]=B,r[5834]=l,r[l+4>>2]=1|B,r[l+B>>2]=B;break}if(1==(3&(A=0|r[t+4>>2]))){s=-8&A,i=A>>>3;t:do{if(A>>>0<256){if(A=0|r[t+8>>2],(0|(n=0|r[t+12>>2]))==(0|A)){r[5829]=r[5829]&~(1<<i);break}r[A+12>>2]=n,r[n+8>>2]=A;break}a=0|r[t+24>>2],A=0|r[t+12>>2];do{if((0|A)==(0|t)){if(A=0|r[(i=(n=t+16|0)+4|0)>>2])n=i;else if(!(A=0|r[n>>2])){A=0;break}for(;;)if(i=0|r[(o=A+20|0)>>2])A=i,n=o;else{if(!(i=0|r[(o=A+16|0)>>2]))break;A=i,n=o}r[n>>2]=0}else B=0|r[t+8>>2],r[B+12>>2]=A,r[A+8>>2]=B}while(0);if(!a)break;i=23620+((n=0|r[t+28>>2])<<2)|0;do{if((0|r[i>>2])==(0|t)){if(r[i>>2]=A,0|A)break;r[5830]=r[5830]&~(1<<n);break t}if(r[((0|r[(B=a+16|0)>>2])==(0|t)?B:a+20)>>2]=A,!A)break t}while(0);if(r[A+24>>2]=a,0|(i=0|r[(n=t+16|0)>>2])&&(r[A+16>>2]=i,r[i+24>>2]=A),!(n=0|r[n+4>>2]))break;r[A+20>>2]=n,r[n+24>>2]=A}while(0);t=t+s|0,o=s+u|0}else o=u;if(r[(t=t+4|0)>>2]=-2&r[t>>2],r[l+4>>2]=1|o,r[l+o>>2]=o,t=o>>>3,o>>>0<256){n=23356+(t<<1<<2)|0,(A=0|r[5829])&(t=1<<t)?t=0|r[(A=n+8|0)>>2]:(r[5829]=A|t,t=n,A=n+8|0),r[A>>2]=l,r[t+12>>2]=l,r[l+8>>2]=t,r[l+12>>2]=n;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((b=((B=t<<(y=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|y|(i=((B<<=b)+245760|0)>>>16&2))+(B<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(t=23620+(i<<2)|0,r[l+28>>2]=i,r[(A=l+16|0)+4>>2]=0,r[A>>2]=0,!((A=0|r[5830])&(n=1<<i))){r[5830]=A|n,r[t>>2]=l,r[l+24>>2]=t,r[l+12>>2]=l,r[l+8>>2]=l;break}t=0|r[t>>2];t:do{if((-8&r[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);A=0|r[(n=t+16+(i>>>31<<2)|0)>>2];){if((-8&r[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}r[n>>2]=l,r[l+24>>2]=t,r[l+12>>2]=l,r[l+8>>2]=l;break e}}while(0);B=0|r[(y=t+8|0)>>2],r[B+12>>2]=l,r[y>>2]=l,r[l+8>>2]=B,r[l+12>>2]=t,r[l+24>>2]=0}}while(0);return C=e,0|(B=c+8|0)}for(t=23764;!((A=0|r[t>>2])>>>0<=f>>>0&&(B=A+(0|r[t+4>>2])|0)>>>0>f>>>0);)t=0|r[t+8>>2];t=(A=(A=(o=B+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=f+16|0)>>>0?f:A)+8|0,y=a+(b=7&(b=a+8|0)?0-b&7:0)|0,b=(n=s+-40|0)-b|0,r[5835]=y,r[5832]=b,r[y+4>>2]=1|b,r[a+n+4>>2]=40,r[5836]=r[5951],r[(n=A+4|0)>>2]=27,r[t>>2]=r[5941],r[t+4>>2]=r[5942],r[t+8>>2]=r[5943],r[t+12>>2]=r[5944],r[5941]=a,r[5942]=s,r[5944]=0,r[5943]=t,t=A+24|0;do{y=t,r[(t=t+4|0)>>2]=7}while((y+8|0)>>>0<B>>>0);if((0|A)!=(0|f)){if(a=A-f|0,r[n>>2]=-2&r[n>>2],r[f+4>>2]=1|a,r[A>>2]=a,t=a>>>3,a>>>0<256){n=23356+(t<<1<<2)|0,(A=0|r[5829])&(t=1<<t)?t=0|r[(A=n+8|0)>>2]:(r[5829]=A|t,t=n,A=n+8|0),r[A>>2]=f,r[t+12>>2]=f,r[f+8>>2]=t,r[f+12>>2]=n;break}if(n=23620+((i=(t=a>>>8)?a>>>0>16777215?31:a>>>((i=14-((b=((B=t<<(y=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|y|(i=((B<<=b)+245760|0)>>>16&2))+(B<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,r[f+28>>2]=i,r[f+20>>2]=0,r[o>>2]=0,!((t=0|r[5830])&(A=1<<i))){r[5830]=t|A,r[n>>2]=f,r[f+24>>2]=n,r[f+12>>2]=f,r[f+8>>2]=f;break}t=0|r[n>>2];e:do{if((-8&r[t+4>>2])!=(0|a)){for(i=a<<(31==(0|i)?0:25-(i>>>1)|0);A=0|r[(n=t+16+(i>>>31<<2)|0)>>2];){if((-8&r[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}r[n>>2]=f,r[f+24>>2]=t,r[f+12>>2]=f,r[f+8>>2]=f;break A}}while(0);B=0|r[(y=t+8|0)>>2],r[B+12>>2]=f,r[y>>2]=f,r[f+8>>2]=B,r[f+12>>2]=t,r[f+24>>2]=0}}else!(0|(B=0|r[5833]))|a>>>0<B>>>0&&(r[5833]=a),r[5941]=a,r[5942]=s,r[5944]=0,r[5838]=r[5947],r[5837]=-1,r[5842]=23356,r[5841]=23356,r[5844]=23364,r[5843]=23364,r[5846]=23372,r[5845]=23372,r[5848]=23380,r[5847]=23380,r[5850]=23388,r[5849]=23388,r[5852]=23396,r[5851]=23396,r[5854]=23404,r[5853]=23404,r[5856]=23412,r[5855]=23412,r[5858]=23420,r[5857]=23420,r[5860]=23428,r[5859]=23428,r[5862]=23436,r[5861]=23436,r[5864]=23444,r[5863]=23444,r[5866]=23452,r[5865]=23452,r[5868]=23460,r[5867]=23460,r[5870]=23468,r[5869]=23468,r[5872]=23476,r[5871]=23476,r[5874]=23484,r[5873]=23484,r[5876]=23492,r[5875]=23492,r[5878]=23500,r[5877]=23500,r[5880]=23508,r[5879]=23508,r[5882]=23516,r[5881]=23516,r[5884]=23524,r[5883]=23524,r[5886]=23532,r[5885]=23532,r[5888]=23540,r[5887]=23540,r[5890]=23548,r[5889]=23548,r[5892]=23556,r[5891]=23556,r[5894]=23564,r[5893]=23564,r[5896]=23572,r[5895]=23572,r[5898]=23580,r[5897]=23580,r[5900]=23588,r[5899]=23588,r[5902]=23596,r[5901]=23596,r[5904]=23604,r[5903]=23604,y=a+(b=7&(b=a+8|0)?0-b&7:0)|0,b=(B=s+-40|0)-b|0,r[5835]=y,r[5832]=b,r[y+4>>2]=1|b,r[a+B+4>>2]=40,r[5836]=r[5951]}while(0);if((t=0|r[5832])>>>0>h>>>0)return b=t-h|0,r[5832]=b,y=(B=0|r[5835])+h|0,r[5835]=y,r[y+4>>2]=1|b,r[B+4>>2]=3|h,C=e,0|(B=B+8|0)}return r[(B=23312)>>2]=12,C=e,0|(B=0)}function ve(A){var e=0,t=0,n=0,i=0,o=0,a=0,s=0,u=0;if(A|=0){t=A+-8|0,i=0|r[5833],u=t+(e=-8&(A=0|r[A+-4>>2]))|0;do{if(1&A)s=t,a=t;else{if(n=0|r[t>>2],!(3&A))return;if(o=n+e|0,(a=t+(0-n)|0)>>>0<i>>>0)return;if((0|r[5834])==(0|a)){if(3&~(e=0|r[(A=u+4|0)>>2])){s=a,e=o;break}return r[5831]=o,r[A>>2]=-2&e,r[a+4>>2]=1|o,void(r[a+o>>2]=o)}if(t=n>>>3,n>>>0<256){if(A=0|r[a+8>>2],(0|(e=0|r[a+12>>2]))==(0|A)){r[5829]=r[5829]&~(1<<t),s=a,e=o;break}r[A+12>>2]=e,r[e+8>>2]=A,s=a,e=o;break}i=0|r[a+24>>2],A=0|r[a+12>>2];do{if((0|A)==(0|a)){if(A=0|r[(t=(e=a+16|0)+4|0)>>2])e=t;else if(!(A=0|r[e>>2])){A=0;break}for(;;)if(t=0|r[(n=A+20|0)>>2])A=t,e=n;else{if(!(t=0|r[(n=A+16|0)>>2]))break;A=t,e=n}r[e>>2]=0}else s=0|r[a+8>>2],r[s+12>>2]=A,r[A+8>>2]=s}while(0);if(i){if(e=0|r[a+28>>2],(0|r[(t=23620+(e<<2)|0)>>2])==(0|a)){if(r[t>>2]=A,!A){r[5830]=r[5830]&~(1<<e),s=a,e=o;break}}else if(r[((0|r[(s=i+16|0)>>2])==(0|a)?s:i+20)>>2]=A,!A){s=a,e=o;break}r[A+24>>2]=i,0|(t=0|r[(e=a+16|0)>>2])&&(r[A+16>>2]=t,r[t+24>>2]=A),(e=0|r[e+4>>2])?(r[A+20>>2]=e,r[e+24>>2]=A,s=a,e=o):(s=a,e=o)}else s=a,e=o}}while(0);if(!(a>>>0>=u>>>0)&&1&(n=0|r[(A=u+4|0)>>2])){if(2&n)r[A>>2]=-2&n,r[s+4>>2]=1|e,r[a+e>>2]=e,i=e;else{if((0|r[5835])==(0|u)){if(u=(0|r[5832])+e|0,r[5832]=u,r[5835]=s,r[s+4>>2]=1|u,(0|s)!=(0|r[5834]))return;return r[5834]=0,void(r[5831]=0)}if((0|r[5834])==(0|u))return u=(0|r[5831])+e|0,r[5831]=u,r[5834]=a,r[s+4>>2]=1|u,void(r[a+u>>2]=u);i=(-8&n)+e|0,t=n>>>3;do{if(n>>>0<256){if(e=0|r[u+8>>2],(0|(A=0|r[u+12>>2]))==(0|e)){r[5829]=r[5829]&~(1<<t);break}r[e+12>>2]=A,r[A+8>>2]=e;break}o=0|r[u+24>>2],A=0|r[u+12>>2];do{if((0|A)==(0|u)){if(A=0|r[(t=(e=u+16|0)+4|0)>>2])e=t;else if(!(A=0|r[e>>2])){t=0;break}for(;;)if(t=0|r[(n=A+20|0)>>2])A=t,e=n;else{if(!(t=0|r[(n=A+16|0)>>2]))break;A=t,e=n}r[e>>2]=0,t=A}else t=0|r[u+8>>2],r[t+12>>2]=A,r[A+8>>2]=t,t=A}while(0);if(0|o){if(A=0|r[u+28>>2],(0|r[(e=23620+(A<<2)|0)>>2])==(0|u)){if(r[e>>2]=t,!t){r[5830]=r[5830]&~(1<<A);break}}else if(r[((0|r[(n=o+16|0)>>2])==(0|u)?n:o+20)>>2]=t,!t)break;r[t+24>>2]=o,0|(e=0|r[(A=u+16|0)>>2])&&(r[t+16>>2]=e,r[e+24>>2]=t),0|(A=0|r[A+4>>2])&&(r[t+20>>2]=A,r[A+24>>2]=t)}}while(0);if(r[s+4>>2]=1|i,r[a+i>>2]=i,(0|s)==(0|r[5834]))return void(r[5831]=i)}if(A=i>>>3,i>>>0<256)return t=23356+(A<<1<<2)|0,(e=0|r[5829])&(A=1<<A)?A=0|r[(e=t+8|0)>>2]:(r[5829]=e|A,A=t,e=t+8|0),r[e>>2]=s,r[A+12>>2]=s,r[s+8>>2]=A,void(r[s+12>>2]=t);A=23620+((n=(A=i>>>8)?i>>>0>16777215?31:i>>>((n=14-((o=((u=A<<(a=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(n=((u<<=o)+245760|0)>>>16&2))+(u<<n>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,r[s+28>>2]=n,r[s+20>>2]=0,r[s+16>>2]=0,e=0|r[5830],t=1<<n;A:do{if(e&t){A=0|r[A>>2];e:do{if((-8&r[A+4>>2])!=(0|i)){for(n=i<<(31==(0|n)?0:25-(n>>>1)|0);e=0|r[(t=A+16+(n>>>31<<2)|0)>>2];){if((-8&r[e+4>>2])==(0|i)){A=e;break e}n<<=1,A=e}r[t>>2]=s,r[s+24>>2]=A,r[s+12>>2]=s,r[s+8>>2]=s;break A}}while(0);u=0|r[(a=A+8|0)>>2],r[u+12>>2]=s,r[a>>2]=s,r[s+8>>2]=u,r[s+12>>2]=A,r[s+24>>2]=0}else r[5830]=e|t,r[A>>2]=s,r[s+24>>2]=A,r[s+12>>2]=s,r[s+8>>2]=s}while(0);if(u=(0|r[5837])-1|0,r[5837]=u,!(0|u)){for(A=23772;A=0|r[A>>2];)A=A+8|0;r[5837]=-1}}}}function me(A,e){e|=0;var t=0;return(A|=0)?(t=0|m(e,A),(e|A)>>>0>65535&&(t=((t>>>0)/(A>>>0)|0)==(0|e)?t:-1)):t=0,(A=0|we(t))&&3&r[A+-4>>2]?(De(0|A,0,0|t),0|A):0|A}function be(A,e,t,n){return 0|(B(0|(n=(e|=0)-(n|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function ye(A){return 0|((A|=0)?31-(0|y(A^A-1)):32)}function Be(A,e,t,n,i){i|=0;var o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0;if(l=A|=0,a=t|=0,s=h=n|=0,!(f=u=e|=0))return o=!!(0|i),s?o?(r[i>>2]=0|A,r[i+4>>2]=0&e,i=0,0|(B(0|(h=0)),i)):(i=0,0|(B(0|(h=0)),i)):(o&&(r[i>>2]=(l>>>0)%(a>>>0),r[i+4>>2]=0),i=(l>>>0)/(a>>>0)>>>0,0|(B(0|(h=0)),i));o=!(0|s);do{if(a){if(!o){if((o=(0|y(0|s))-(0|y(0|f))|0)>>>0<=31){a=c=o+1|0,A=l>>>(c>>>0)&(e=o-31>>31)|f<<(s=31-o|0),e&=f>>>(c>>>0),o=0,s=l<<s;break}return i?(r[i>>2]=0|A,r[i+4>>2]=u|0&e,i=0,0|(B(0|(h=0)),i)):(i=0,0|(B(0|(h=0)),i))}if((o=a-1|0)&a|0){a=s=33+(0|y(0|a))-(0|y(0|f))|0,A=(c=32-s|0)-1>>31&f>>>((g=s-32|0)>>>0)|(f<<c|l>>>(s>>>0))&(e=g>>31),e&=f>>>(s>>>0),o=l<<(d=64-s|0)&(u=c>>31),s=(f<<d|l>>>(g>>>0))&u|l<<c&s-33>>31;break}return 0|i&&(r[i>>2]=o&l,r[i+4>>2]=0),1==(0|a)?(d=0|A,0|(B(0|(g=u|0&e)),d)):(g=f>>>((d=0|ye(0|a))>>>0)|0,d=f<<32-d|l>>>(d>>>0),0|(B(0|g),d))}if(o)return 0|i&&(r[i>>2]=(f>>>0)%(a>>>0),r[i+4>>2]=0),d=(f>>>0)/(a>>>0)>>>0,0|(B(0|(g=0)),d);if(!l)return 0|i&&(r[i>>2]=0,r[i+4>>2]=(f>>>0)%(s>>>0)),d=(f>>>0)/(s>>>0)>>>0,0|(B(0|(g=0)),d);if(!((o=s-1|0)&s))return 0|i&&(r[i>>2]=0|A,r[i+4>>2]=o&f|0&e),g=0,d=f>>>((0|ye(0|s))>>>0),0|(B(0|g),d);if((o=(0|y(0|s))-(0|y(0|f))|0)>>>0<=30){a=e=o+1|0,A=f<<(s=31-o|0)|l>>>(e>>>0),e=f>>>(e>>>0),o=0,s=l<<s;break}return i?(r[i>>2]=0|A,r[i+4>>2]=u|0&e,d=0,0|(B(0|(g=0)),d)):(d=0,0|(B(0|(g=0)),d))}while(0);if(a){f=0|function(A,e,t,n){return 0|(B((e|=0)+(n|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}(0|(c=0|t),0|(l=h|0&n),-1,-1),t=0|E(),u=s,s=0;do{n=u,u=o>>>31|u<<1,o=s|o<<1,be(0|f,0|t,0|(n=A<<1|n>>>31),0|(h=A>>>31|e<<1)),s=1&(g=(d=0|E())>>31|((0|d)<0?-1:0)<<1),A=0|be(0|n,0|h,g&c|0,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&l),e=0|E(),a=a-1|0}while(0|a);f=u,u=0}else f=s,u=0,s=0;return a=0,0|i&&(r[i>>2]=A,r[i+4>>2]=e),d=o<<1&-2|s,0|(B(0|(g=(0|o)>>>31|(f|a)<<1|u)),d)}function Ee(A,e,t,n){var i,o;return o=C,C=C+16|0,Be(A|=0,e|=0,t|=0,n|=0,i=0|o),C=o,0|(B(0|r[i+4>>2]),r[i>>2])}function Me(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 ke(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 _e(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+b(+A,+e)}function xe(A){return(A=+A)>=0?+a(A+.5):+v(A-.5)}function Qe(A,e,t){A|=0,e|=0;var i,o,a=0;if((0|(t|=0))>=8192)return x(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;n[A|0]=0|n[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);)r[A>>2]=r[e>>2],r[A+4>>2]=r[e+4>>2],r[A+8>>2]=r[e+8>>2],r[A+12>>2]=r[e+12>>2],r[A+16>>2]=r[e+16>>2],r[A+20>>2]=r[e+20>>2],r[A+24>>2]=r[e+24>>2],r[A+28>>2]=r[e+28>>2],r[A+32>>2]=r[e+32>>2],r[A+36>>2]=r[e+36>>2],r[A+40>>2]=r[e+40>>2],r[A+44>>2]=r[e+44>>2],r[A+48>>2]=r[e+48>>2],r[A+52>>2]=r[e+52>>2],r[A+56>>2]=r[e+56>>2],r[A+60>>2]=r[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)r[A>>2]=r[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)n[A|0]=0|n[e|0],n[A+1|0]=0|n[e+1|0],n[A+2|0]=0|n[e+2|0],n[A+3|0]=0|n[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)n[A|0]=0|n[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,s=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)n[A|0]=e,A=A+1|0;for(s=e|e<<8|e<<16|e<<24,a=(o=-4&i)-64|0;(0|A)<=(0|a);)r[A>>2]=s,r[A+4>>2]=s,r[A+8>>2]=s,r[A+12>>2]=s,r[A+16>>2]=s,r[A+20>>2]=s,r[A+24>>2]=s,r[A+28>>2]=s,r[A+32>>2]=s,r[A+36>>2]=s,r[A+40>>2]=s,r[A+44>>2]=s,r[A+48>>2]=s,r[A+52>>2]=s,r[A+56>>2]=s,r[A+60>>2]=s,A=A+64|0;for(;(0|A)<(0|o);)r[A>>2]=s,A=A+4|0}for(;(0|A)<(0|i);)n[A|0]=e,A=A+1|0;return i-t|0}function Ce(A){return(A=+A)>=0?+a(A+.5):+v(A-.5)}function Se(A){A|=0;var e,t,n;return n=0|_(),(0|A)>0&(0|(e=(t=0|r[o>>2])+A|0))<(0|t)|(0|e)<0?(D(0|e),k(12),-1):(0|e)>(0|n)&&!(0|Q(0|e))?(k(12),-1):(r[o>>2]=e,0|t)}return{___uremdi3:Ee,_bitshift64Lshr:Me,_bitshift64Shl:ke,_calloc:me,_cellAreaKm2:function(A,e){var t,n,i,o=0;if(i=C,C=C+192|0,n=i,HA(A|=0,e|=0,t=i+168|0),VA(A,e,n),(0|(e=0|r[n>>2]))>0){if(o=+DA(n+8|0,n+8+((1!=(0|e)&1)<<4)|0,t)+0,1!=(0|e)){A=1;do{o+=+DA(n+8+(A<<4)|0,n+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,n,i,o=0;if(i=C,C=C+192|0,n=i,HA(A|=0,e|=0,t=i+168|0),VA(A,e,n),(0|(e=0|r[n>>2]))>0){if(o=+DA(n+8|0,n+8+((1!=(0|e)&1)<<4)|0,t)+0,1!=(0|e)){A=1;do{o+=+DA(n+8+(A<<4)|0,n+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,n,i,o=0;if(i=C,C=C+192|0,n=i,HA(A|=0,e|=0,t=i+168|0),VA(A,e,n),(0|(e=0|r[n>>2]))<=0)return C=i,+(o=0);if(o=+DA(n+8|0,n+8+((1!=(0|e)&1)<<4)|0,t)+0,1==(0|e))return C=i,+o;A=1;do{o+=+DA(n+8+(A<<4)|0,n+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 n,i=0,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,M=0,k=0,_=0;if(!(t|=0))return 0|(k=0);if(i=0|r[(o=A|=0)>>2],!0&!(15728640&(o=0|r[o+4>>2]))){if((0|t)<=0)return 0|(k=0);if(r[(k=e)>>2]=i,r[k+4>>2]=o,1==(0|t))return 0|(k=0);i=1;do{M=0|r[(B=A+(i<<3)|0)+4>>2],r[(k=e+(i<<3)|0)>>2]=r[B>>2],r[k+4>>2]=M,i=i+1|0}while((0|i)!=(0|t));return 0|(i=0)}if(!(M=0|we(B=t<<3)))return 0|(k=-3);if(Qe(0|M,0|A,0|B),!(n=0|me(t,8)))return ve(M),0|(k=-3);i=t;A:for(;;){b=0|Me(0|(c=0|r[(s=M)>>2]),0|(s=0|r[s+4>>2]),52),E(),y=(b&=15)+-1|0,m=(0|i)>0;e:do{if(m){if(v=((0|i)<0)<<31>>31,p=0|ke(0|y,0,52),w=0|E(),y>>>0>15)for(o=0,A=c,t=s;;){if(!(!(0|A)&!(0|t))){if(a=0|Me(0|A,0|t,52),E(),u=(0|(a&=15))<(0|y),a=(0|a)==(0|y),t=0|Ee(0|(l=u?0:a?A:0),0|(A=u?0:a?t:0),0|i,0|v),E(),!(0|(f=0|r[(u=a=n+(t<<3)|0)>>2]))&!(0|(u=0|r[u+4>>2])))t=l;else for(p=0,d=t,g=u,t=l;;){if((0|p)>(0|i)){k=41;break A}if((0|f)==(0|t)&(-117440513&g)==(0|A)){l=0|Me(0|f,0|g,56),E(),h=(l&=7)+1|0,w=0|Me(0|f,0|g,45),E();t:do{if(0|L(127&w)){if(f=0|Me(0|f,0|g,52),E(),!(f&=15)){u=6;break}for(u=1;;){if(!(!((w=0|ke(7,0,3*(15-u|0)|0))&t|0)&!((0|E())&A))){u=7;break t}if(!(u>>>0<f>>>0)){u=6;break}u=u+1|0}}else u=7}while(0);if((l+2|0)>>>0>u>>>0){k=51;break A}w=0|ke(0|h,0,56),A=E()|-117440513&A,r[(u=a)>>2]=0,r[u+4>>2]=0,u=d,t|=w}else u=(d+1|0)%(0|i)|0;if(!(0|(f=0|r[(g=a=n+(u<<3)|0)>>2]))&!(0|(g=0|r[g+4>>2])))break;p=p+1|0,d=u}r[(w=a)>>2]=t,r[w+4>>2]=A}if((0|(o=o+1|0))>=(0|i))break e;A=0|r[(t=M+(o<<3)|0)>>2],t=0|r[t+4>>2]}for(o=0,A=c,t=s;;){if(!(!(0|A)&!(0|t))){if(u=0|Me(0|A,0|t,52),E(),(0|(u&=15))>=(0|y)){if((0|u)!=(0|y)&&(A|=p,t=-15728641&t|w,u>>>0>=b>>>0)){a=y;do{d=0|ke(7,0,3*(14-a|0)|0),a=a+1|0,A|=d,t=0|E()|t}while(a>>>0<u>>>0)}}else A=0,t=0;if(u=0|Ee(0|A,0|t,0|i,0|v),E(),!(!(0|(l=0|r[(f=a=n+(u<<3)|0)>>2]))&!(0|(f=0|r[f+4>>2]))))for(d=0;;){if((0|d)>(0|i)){k=41;break A}if((0|l)==(0|A)&(-117440513&f)==(0|t)){h=0|Me(0|l,0|f,56),E(),g=(h&=7)+1|0,_=0|Me(0|l,0|f,45),E();t:do{if(0|L(127&_)){if(l=0|Me(0|l,0|f,52),E(),!(l&=15)){f=6;break}for(f=1;;){if(!(!((_=0|ke(7,0,3*(15-f|0)|0))&A|0)&!((0|E())&t))){f=7;break t}if(!(f>>>0<l>>>0)){f=6;break}f=f+1|0}}else f=7}while(0);if((h+2|0)>>>0>f>>>0){k=51;break A}_=0|ke(0|g,0,56),t=E()|-117440513&t,r[(g=a)>>2]=0,r[g+4>>2]=0,A|=_}else u=(u+1|0)%(0|i)|0;if(!(0|(l=0|r[(f=a=n+(u<<3)|0)>>2]))&!(0|(f=0|r[f+4>>2])))break;d=d+1|0}r[(_=a)>>2]=A,r[_+4>>2]=t}if((0|(o=o+1|0))>=(0|i))break e;A=0|r[(t=M+(o<<3)|0)>>2],t=0|r[t+4>>2]}}}while(0);if((i+5|0)>>>0<11){k=99;break}if(!(w=0|me((0|i)/6|0,8))){k=58;break}e:do{if(m){d=0,g=0;do{if(!(!(0|(o=0|r[(A=u=n+(d<<3)|0)>>2]))&!(0|(A=0|r[A+4>>2])))){f=0|Me(0|o,0|A,56),E(),t=(f&=7)+1|0,l=-117440513&A,_=0|Me(0|o,0|A,45),E();t:do{if(0|L(127&_)){if(h=0|Me(0|o,0|A,52),E(),0|(h&=15))for(a=1;;){if(!(!(o&(_=0|ke(7,0,3*(15-a|0)|0))|0)&!(l&(0|E()))))break t;if(!(a>>>0<h>>>0))break;a=a+1|0}o|=A=0|ke(0|t,0,56),A=0|E()|l,r[(t=u)>>2]=o,r[t+4>>2]=A,t=f+2|0}}while(0);7==(0|t)&&(r[(_=w+(g<<3)|0)>>2]=o,r[_+4>>2]=-117440513&A,g=g+1|0)}d=d+1|0}while((0|d)!=(0|i));if(m){if(p=((0|i)<0)<<31>>31,h=0|ke(0|y,0,52),d=0|E(),y>>>0>15)for(A=0,o=0;;){do{if(!(!(0|c)&!(0|s))){for(f=0|Me(0|c,0|s,52),E(),a=(0|(f&=15))<(0|y),f=(0|f)==(0|y),a=0|Ee(0|(u=a?0:f?c:0),0|(f=a?0:f?s:0),0|i,0|p),E(),t=0;;){if((0|t)>(0|i)){k=98;break A}if((-117440513&(l=0|r[(_=n+(a<<3)|0)+4>>2]))==(0|f)&&(0|r[_>>2])==(0|u)){k=70;break}if((0|r[(_=n+((a=(a+1|0)%(0|i)|0)<<3)|0)>>2])==(0|u)&&(0|r[_+4>>2])==(0|f))break;t=t+1|0}if(70==(0|k)&&(k=0,!0&100663296==(117440512&l)))break;r[(_=e+(o<<3)|0)>>2]=c,r[_+4>>2]=s,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|r[(s=M+(A<<3)|0)>>2],s=0|r[s+4>>2]}for(A=0,o=0;;){do{if(!(!(0|c)&!(0|s))){if(f=0|Me(0|c,0|s,52),E(),(0|(f&=15))>=(0|y))if((0|f)!=(0|y))if(t=c|h,a=-15728641&s|d,f>>>0<b>>>0)f=a;else{u=y;do{_=0|ke(7,0,3*(14-u|0)|0),u=u+1|0,t|=_,a=0|E()|a}while(u>>>0<f>>>0);f=a}else t=c,f=s;else t=0,f=0;for(u=0|Ee(0|t,0|f,0|i,0|p),E(),a=0;;){if((0|a)>(0|i)){k=98;break A}if((-117440513&(l=0|r[(_=n+(u<<3)|0)+4>>2]))==(0|f)&&(0|r[_>>2])==(0|t)){k=93;break}if((0|r[(_=n+((u=(u+1|0)%(0|i)|0)<<3)|0)>>2])==(0|t)&&(0|r[_+4>>2])==(0|f))break;a=a+1|0}if(93==(0|k)&&(k=0,!0&100663296==(117440512&l)))break;r[(_=e+(o<<3)|0)>>2]=c,r[_+4>>2]=s,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|r[(s=M+(A<<3)|0)>>2],s=0|r[s+4>>2]}}else o=0,i=g}else o=0,i=0}while(0);if(De(0|n,0,0|B),Qe(0|M,0|w,i<<3),ve(w),!i)break;e=e+(o<<3)|0}return 41==(0|k)?(ve(M),ve(n),0|(_=-1)):51==(0|k)?(ve(M),ve(n),0|(_=-2)):58==(0|k)?(ve(M),ve(n),0|(_=-3)):98==(0|k)?(ve(w),ve(M),ve(n),0|(_=-1)):(99==(0|k)&&Qe(0|e,0|M,i<<3),ve(M),ve(n),0|(_=0))},_destroyLinkedPolygon:function(A){var e=0,t=0,n=0,i=0;if(A|=0)for(n=1;;){if(0|(e=0|r[A>>2]))do{if(0|(t=0|r[e>>2]))do{i=t,t=0|r[t+16>>2],ve(i)}while(0|t);i=e,e=0|r[e+8>>2],ve(i)}while(0|e);if(e=A,A=0|r[A+8>>2],n||ve(e),!A)break;n=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 n=new Int8Array(A),r=new Int32Array(A),i=new Float64Array(A),t=A,!0},_exactEdgeLengthKm:function(A,e){var t,n,o=0,a=0,s=0,f=0,h=0,g=0;if(n=C,C=C+176|0,WA(A|=0,e|=0,t=n),(0|(A=0|r[t>>2]))<=1)return C=n,+(s=0);e=A+-1|0,A=0,o=0,a=+i[t+8>>3],s=+i[t+16>>3];do{h=a,a=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(a-h)),f=s,s=+i[t+8+(A<<4)+8>>3],f=g*g+(f=+c(.5*(s-f)))*(+l(+h)*+l(+a)*f),o+=2*+w(+ +u(+f),+ +u(+(1-f)))}while((0|A)!=(0|e));return C=n,+(g=6371.007180918475*o)},_exactEdgeLengthM:function(A,e){var t,n,o=0,a=0,s=0,f=0,h=0,g=0;if(n=C,C=C+176|0,WA(A|=0,e|=0,t=n),(0|(A=0|r[t>>2]))<=1)return C=n,+(s=0);e=A+-1|0,A=0,o=0,a=+i[t+8>>3],s=+i[t+16>>3];do{h=a,a=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(a-h)),f=s,s=+i[t+8+(A<<4)+8>>3],f=g*g+(f=+c(.5*(s-f)))*(+l(+h)*+l(+a)*f),o+=2*+w(+ +u(+f),+ +u(+(1-f)))}while((0|A)!=(0|e));return C=n,+(g=6371.007180918475*o*1e3)},_exactEdgeLengthRads:function(A,e){var t,n,o=0,a=0,s=0,f=0,h=0,g=0;if(n=C,C=C+176|0,WA(A|=0,e|=0,t=n),(0|(A=0|r[t>>2]))<=1)return C=n,+(s=0);e=A+-1|0,A=0,o=0,a=+i[t+8>>3],s=+i[t+16>>3];do{h=a,a=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(a-h)),f=s,s=+i[t+8+(A<<4)+8>>3],f=g*g+(f=+c(.5*(s-f)))*(+l(+a)*+l(+h)*f),o+=2*+w(+ +u(+f),+ +u(+(1-f)))}while((0|A)<(0|e));return C=n,+o},_experimentalH3ToLocalIj:function(A,e,t,n,r){var i,o;return r|=0,o=C,C=C+16|0,(A=0|$A(A|=0,e|=0,t|=0,n|=0,i=o))||(hA(i,r),A=0),C=o,0|A},_experimentalLocalIjToH3:function(A,e,t,n){var r,i;return A|=0,e|=0,n|=0,r=C,C=C+16|0,gA(t|=0,i=r),n=0|Ae(A,e,i,n),C=r,0|n},_free:ve,_geoToH3:zA,_getDestinationH3IndexFromUnidirectionalEdge:function(A,e){A|=0;var t,n,i=0;return t=C,C=C+16|0,i=t,!0&268435456==(2013265920&(e|=0))?(n=0|Me(0|A,0|e,56),E(),r[i>>2]=0,i=0|F(A,-2130706433&e|134217728,7&n,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 n,i,o,a,s=0;o=C,C=C+16|0,n=o,a=!0&268435456==(2013265920&(e|=0)),i=-2130706433&e|134217728,r[(s=t|=0)>>2]=a?A:0,r[s+4>>2]=a?i:0,a?(e=0|Me(0|A,0|e,56),E(),r[n>>2]=0,A=0|F(A,i,7&e,n),e=0|E()):(A=0,e=0),r[(s=t+8|0)>>2]=A,r[s+4>>2]=e,C=o},_getH3UnidirectionalEdge:function(A,e,t,n){var i,o,a=0,s=0,u=0,f=0,l=0;if(o=C,C=C+16|0,i=o,!(0|XA(A|=0,e|=0,t|=0,n|=0)))return f=0,B(0|(u=0)),C=o,0|f;for(u=-2130706433&e,a=(a=!(0|FA(A,e)))?1:2;r[i>>2]=0,s=a+1|0,!((0|(l=0|F(A,e,a,i)))==(0|t)&(0|E())==(0|n));){if(!(s>>>0<7)){a=0,A=0,f=6;break}a=s}return 6==(0|f)?(B(0|a),C=o,0|A):(l=0|ke(0|a,0,56),f=0|u|E()|268435456,l|=A,B(0|f),C=o,0|l)},_getH3UnidirectionalEdgeBoundary:WA,_getH3UnidirectionalEdgesFromHexagon:function(A,e,t){t|=0;var n,i=0;n=!(0|FA(A|=0,e|=0)),e&=-2130706433,r[(i=t)>>2]=n?A:0,r[i+4>>2]=n?285212672|e:0,r[(i=t+8|0)>>2]=A,r[i+4>>2]=301989888|e,r[(i=t+16|0)>>2]=A,r[i+4>>2]=318767104|e,r[(i=t+24|0)>>2]=A,r[i+4>>2]=335544320|e,r[(i=t+32|0)>>2]=A,r[i+4>>2]=352321536|e,r[(t=t+40|0)>>2]=A,r[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,n=0;e=0;do{ke(0|e,0,45),n=134225919|E(),r[(t=A+(e<<3)|0)>>2]=-1,r[t+4>>2]=n,e=e+1|0}while(122!=(0|e))},_h3Distance:function(A,e,t,n){var r,i,o;return t|=0,n|=0,o=C,C=C+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,r=o+12|0)||0|$A(A,e,t,n,i)?-1:0|cA(r,i),C=o,0|A},_h3GetBaseCell:CA,_h3GetFaces:function A(e,t,n){n|=0;var i,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0;i=C,C=C+128|0,c=i+112|0,s=i+96|0,h=i,a=0|Me(0|(e|=0),0|(t|=0),52),E(),f=15&a,r[c>>2]=f,u=0|Me(0|e,0|t,45),E(),u&=127;A:do{if(0|L(u)){if(0|f)for(o=1;;){if(!(!((l=0|ke(7,0,3*(15-o|0)|0))&e|0)&!((0|E())&t))){a=0;break A}if(!(o>>>0<f>>>0))break;o=o+1|0}if(!(1&a))return l=0|ke(f+1|0,0,52),h=E()|-15728641&t,A((l|e)&~(c=0|ke(7,0,3*(14-f|0)|0)),h&~E(),n),void(C=i);a=1}else a=0}while(0);NA(e,t,s),a?(yA(s,c,h),l=5):(kA(s,c,h),l=6);A:do{if(0|L(u))if(f)for(o=1;;){if(!(!((u=0|ke(7,0,3*(15-o|0)|0))&e|0)&!((0|E())&t))){o=8;break A}if(!(o>>>0<f>>>0)){o=20;break}o=o+1|0}else o=20;else o=8}while(0);if(De(0|n,-1,0|o),a){a=0;do{for(EA(s=h+(a<<4)|0,0|r[c>>2]),s=0|r[s>>2],o=0;!(-1==(0|(f=0|r[(u=n+(o<<2)|0)>>2]))|(0|f)==(0|s));)o=o+1|0;r[u>>2]=s,a=a+1|0}while((0|a)!=(0|l))}else{a=0;do{for(BA(s=h+(a<<4)|0,0|r[c>>2],0,1),s=0|r[s>>2],o=0;!(-1==(0|(f=0|r[(u=n+(o<<2)|0)>>2]))|(0|f)==(0|s));)o=o+1|0;r[u>>2]=s,a=a+1|0}while((0|a)!=(0|l))}C=i},_h3GetResolution:function(A,e){return e=0|Me(0|(A|=0),0|(e|=0),52),E(),15&e},_h3IndexesAreNeighbors:XA,_h3IsPentagon:FA,_h3IsResClassIII:function(A,e){return e=0|Me(0|(A|=0),0|(e|=0),52),E(),1&e},_h3IsValid:SA,_h3Line:function(A,e,t,n,i){t|=0,n|=0,i|=0;var o,a=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,E=0,M=0;if(o=C,C=C+48|0,u=o+12|0,E=o,!(0|$A(A|=0,e|=0,A,e,a=o+24|0))&&!(0|$A(A,e,t,n,u))){if((0|(B=0|cA(a,u)))<0)return C=o,0|(E=B);for(r[a>>2]=0,r[a+4>>2]=0,r[a+8>>2]=0,r[u>>2]=0,r[u+4>>2]=0,r[u+8>>2]=0,$A(A,e,A,e,a),$A(A,e,t,n,u),dA(a),dA(u),B?(p=+(0|B),y=a,t=h=0|r[a>>2],n=g=0|r[(m=a+4|0)>>2],a=d=0|r[(b=a+8|0)>>2],w=+((0|r[u>>2])-h|0)/p,v=+((0|r[u+4>>2])-g|0)/p,p=+((0|r[u+8>>2])-d|0)/p):(m=n=a+4|0,b=d=a+8|0,y=a,t=0|r[a>>2],n=0|r[n>>2],a=0|r[d>>2],w=0,v=0,p=0),r[E>>2]=t,r[(d=E+4|0)>>2]=n,r[(g=E+8|0)>>2]=a,h=0;;){M=w*(l=+(0|h))+ +(0|t),f=v*l+ +(0|r[m>>2]),l=p*l+ +(0|r[b>>2]),n=~~+xe(+M),u=~~+xe(+f),t=~~+xe(+l),M=+s(+(+(0|n)-M)),f=+s(+(+(0|u)-f)),l=+s(+(+(0|t)-l));do{if(!(M>f&M>l)){if(c=0-n|0,f>l){a=c-t|0;break}a=u,t=c-u|0;break}n=0-(u+t)|0,a=u}while(0);if(r[E>>2]=n,r[d>>2]=a,r[g>>2]=t,pA(E),Ae(A,e,E,i+(h<<3)|0),(0|h)==(0|B))break;h=h+1|0,t=0|r[y>>2]}return C=o,0|(E=0)}return C=o,0|(E=-1)},_h3LineSize:function(A,e,t,n){var r,i,o;return t|=0,n|=0,o=C,C=C+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,r=o+12|0)||0|$A(A,e,t,n,i)?-1:0|cA(r,i),C=o,(A>>>31^1)+A|0},_h3SetToLinkedGeo:function(A,e,t){t|=0;var n,i,o,a=0;if(o=C,C=C+32|0,n=o,function(A,e,t){A|=0,t|=0;var n,i,o=0,a=0,s=0,u=0,f=0;if(i=C,C=C+176|0,n=i,(0|(e|=0))<1)return ue(t,0,0),void(C=i);u=0|Me(0|r[(u=A)>>2],0|r[u+4>>2],52),E(),ue(t,(0|e)>6?e:6,15&u),u=0;do{if(VA(0|r[(o=A+(u<<3)|0)>>2],0|r[o+4>>2],n),(0|(o=0|r[n>>2]))>0){f=0;do{s=n+8+(f<<4)|0,(a=0|ge(t,o=n+8+((0|(f=f+1|0))%(0|o)<<4)|0,s))?ce(t,a):he(t,s,o),o=0|r[n>>2]}while((0|f)<(0|o))}u=u+1|0}while((0|u)!=(0|e));C=i}(A|=0,e|=0,i=o+16|0),r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,!(A=0|le(i)))return KA(t),fe(i),void(C=o);do{e=0|ZA(t);do{JA(e,A),a=A+16|0,r[n>>2]=r[a>>2],r[n+4>>2]=r[a+4>>2],r[n+8>>2]=r[a+8>>2],r[n+12>>2]=r[a+12>>2],ce(i,A),A=0|de(i,n)}while(0|A);A=0|le(i)}while(0|A);KA(t),fe(i),C=o},_h3ToCenterChild:function(A,e,t){t|=0;var n=0,r=0;if(n=0|Me(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(n&=15))<=(0|t)){if((0|n)!=(0|t)&&(A|=r=0|ke(0|t,0,52),e=E()|-15728641&e,(0|n)<(0|t)))do{r=0|ke(7,0,3*(14-n|0)|0),n=n+1|0,A&=~r,e&=~E()}while((0|n)<(0|t))}else e=0,A=0;return B(0|e),0|A},_h3ToChildren:PA,_h3ToGeo:HA,_h3ToGeoBoundary:VA,_h3ToParent:IA,_h3UnidirectionalEdgeIsValid:function(A,e){var t=0;if(!(!0&268435456==(2013265920&(e|=0))))return 0|(t=0);switch(t=0|Me(0|(A|=0),0|e,56),E(),7&t){case 0:case 7:return 0|(t=0)}return!0&16777216==(117440512&e)&!!(0|FA(A,t=-2130706433&e|134217728))?0|(t=0):0|(t=0|SA(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,n){A|=0,e|=0,n|=0;var i,o=0,a=0,s=0,u=0,f=0,l=0,c=0;if(i=C,C=C+16|0,c=i,!(t|=0))return r[(c=n)>>2]=A,r[c+4>>2]=e,C=i,0|(c=0);r[c>>2]=0;A:do{if(0|FA(A,e))A=1;else{if(a=(0|t)>0){o=0,l=A;do{if(!(0|(l=0|F(l,e,4,c)))&!(0|(e=0|E()))){A=2;break A}if(o=o+1|0,0|FA(l,e)){A=1;break A}}while((0|o)<(0|t));if(r[(f=n)>>2]=l,r[f+4>>2]=e,f=t+-1|0,a){a=0,s=1,o=l,A=e;do{if(!(0|(o=0|F(o,A,2,c)))&!(0|(A=0|E()))){A=2;break A}if(r[(u=n+(s<<3)|0)>>2]=o,r[u+4>>2]=A,s=s+1|0,0|FA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|t));u=0,a=s;do{if(!(0|(o=0|F(o,A,3,c)))&!(0|(A=0|E()))){A=2;break A}if(r[(s=n+(a<<3)|0)>>2]=o,r[s+4>>2]=A,a=a+1|0,0|FA(o,A)){A=1;break A}u=u+1|0}while((0|u)<(0|t));s=0;do{if(!(0|(o=0|F(o,A,1,c)))&!(0|(A=0|E()))){A=2;break A}if(r[(u=n+(a<<3)|0)>>2]=o,r[u+4>>2]=A,a=a+1|0,0|FA(o,A)){A=1;break A}s=s+1|0}while((0|s)<(0|t));s=0;do{if(!(0|(o=0|F(o,A,5,c)))&!(0|(A=0|E()))){A=2;break A}if(r[(u=n+(a<<3)|0)>>2]=o,r[u+4>>2]=A,a=a+1|0,0|FA(o,A)){A=1;break A}s=s+1|0}while((0|s)<(0|t));s=0;do{if(!(0|(o=0|F(o,A,4,c)))&!(0|(A=0|E()))){A=2;break A}if(r[(u=n+(a<<3)|0)>>2]=o,r[u+4>>2]=A,a=a+1|0,0|FA(o,A)){A=1;break A}s=s+1|0}while((0|s)<(0|t));for(s=0;;){if(!(0|(o=0|F(o,A,6,c)))&!(0|(A=0|E()))){A=2;break A}if((0|s)!=(0|f)){if(r[(u=n+(a<<3)|0)>>2]=o,r[u+4>>2]=A,0|FA(o,A)){A=1;break A}a=a+1|0}if((0|(s=s+1|0))>=(0|t)){s=l,a=e;break}}}else s=l,o=l,a=e,A=e}else r[(s=n)>>2]=A,r[s+4>>2]=e,s=A,o=A,a=e,A=e;A=1&((0|s)!=(0|o)|(0|a)!=(0|A))}}while(0);return C=i,0|(c=A)},_i64Subtract:be,_kRing:S,_kRingDistances:function(A,e,t,n,r){var i;if(0|I(A|=0,e|=0,t|=0,n|=0,r|=0)){if(De(0|n,0,(i=1+(0|m(3*t|0,t+1|0))|0)<<3),0|r)return De(0|r,0,i<<2),void P(A,e,t,n,r,i,0);(r=0|me(i,4))&&(P(A,e,t,n,r,i,0),ve(r))}},_llvm_minnum_f64:_e,_llvm_round_f64:xe,_malloc:we,_maxFaceCount:function(A,e){var t=0,n=0;if(n=0|Me(0|(A|=0),0|(e|=0),45),E(),!(0|L(127&n)))return 0|(n=2);if(n=0|Me(0|A,0|e,52),E(),!(n&=15))return 0|(n=5);for(t=1;;){if(!(!((0|ke(7,0,3*(15-t|0)|0))&A|0)&!((0|E())&e))){t=2,A=6;break}if(!(t>>>0<n>>>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|Me(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|m(3*(A|=0)|0,A+1|0))|0},_maxPolyfillSize:function(A,e){e|=0;var t,n=0,i=0,o=0,a=0,s=0;if(t=C,C=C+48|0,o=t+8|0,i=t,a=0|r[(s=A|=0)+4>>2],r[(n=i)>>2]=r[s>>2],r[n+4>>2]=a,ne(i,o),o=0|V(o,e),e=0|r[i>>2],(0|(i=0|r[A+8>>2]))<=0)return C=t,0|(s=(s=(a=(0|o)<(0|(s=e)))?s:o)+12|0);n=0|r[A+12>>2],A=0;do{e=(0|r[n+(A<<3)>>2])+e|0,A=A+1|0}while((0|A)<(0|i));return C=t,0|(s=(s=(s=(0|o)<(0|e))?e:o)+12|0)},_maxUncompactSize:function(A,e,t){A|=0,t|=0;var n=0,i=0,o=0,a=0;if((0|(e|=0))<=0)return 0|(t=0);if((0|t)>=16){for(n=0;;){if(!(!(0|r[(a=A+(n<<3)|0)>>2])&!(0|r[a+4>>2]))){n=-1,i=13;break}if((0|(n=n+1|0))>=(0|e)){n=0,i=13;break}}if(13==(0|i))return 0|n}n=0,a=0;A:for(;;){o=0|r[(i=A+(a<<3)|0)>>2],i=0|r[i+4>>2];do{if(!(!(0|o)&!(0|i))){if(i=0|Me(0|o,0|i,52),E(),(0|(i&=15))>(0|t)){n=-1,i=13;break A}if((0|i)==(0|t)){n=n+1|0;break}n=(0|ee(7,t-i|0))+n|0;break}}while(0);if((0|(a=a+1|0))>=(0|e)){i=13;break}}return 13==(0|i)?0|n:0},_memcpy:Qe,_memset:De,_numHexagons:function(A){var e;return A=0|r[(e=21008+((A|=0)<<3)|0)>>2],B(0|r[e+4>>2]),0|A},_pentagonIndexCount:function(){return 12},_pointDistKm:QA,_pointDistM:function(A,e){A|=0;var t,n,r,o=0;return n=+i[(e|=0)>>3],t=+i[A>>3],o=(r=+c(.5*(n-t)))*r+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+l(+n)*+l(+t)*o),2*+w(+ +u(+o),+ +u(+(1-o)))*6371.007180918475*1e3},_pointDistRads:function(A,e){A|=0;var t,n,r,o=0;return n=+i[(e|=0)>>3],t=+i[A>>3],o=(r=+c(.5*(n-t)))*r+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+l(+n)*+l(+t)*o),2*+w(+ +u(+o),+ +u(+(1-o)))},_polyfill:function(A,e,t){var n,i=0,o=0,a=0,s=0,u=0;if(n=C,C=C+48|0,i=n+8|0,o=n,0|function(A,e,t){A|=0,e|=0,t|=0;var n=0,i=0,o=0,a=0,s=0,u=0,f=0,l=0,c=0,h=0,g=0,d=0,p=0,w=0,v=0,m=0,b=0,y=0,B=0,k=0,_=0,x=0,Q=0,D=0,S=0,F=0,L=0,G=0,R=0,U=0;U=C,C=C+112|0,F=U+80|0,u=U+72|0,L=U,G=U+56|0,f=A+8|0,R=0|we(32+(r[f>>2]<<5)|0),R||M(22848,22448,800,22456);if(re(A,R),o=A,n=0|r[o+4>>2],s=u,r[s>>2]=r[o>>2],r[s+4>>2]=n,ne(u,F),s=0|V(F,e),n=0|r[u>>2],o=0|r[f>>2],(0|o)>0){a=0|r[A+12>>2],i=0;do{n=(0|r[a+(i<<3)>>2])+n|0,i=i+1|0}while((0|i)!=(0|o))}if(s=(0|s)<(0|n)?n:s,S=s+12|0,i=0|me(S,8),l=0|me(S,8),r[F>>2]=0,Q=A,D=0|r[Q+4>>2],n=u,r[n>>2]=r[Q>>2],r[n+4>>2]=D,n=0|T(u,S,e,F,i,l),0|n)return ve(i),ve(l),ve(R),C=U,0|(R=n);A:do{if((0|r[f>>2])>0){for(o=A+12|0,n=0;a=0|T((0|r[o>>2])+(n<<3)|0,S,e,F,i,l),n=n+1|0,!(0|a);)if((0|n)>=(0|r[f>>2]))break A;return ve(i),ve(l),ve(R),C=U,0|(R=a)}}while(0);(0|s)>-12&&De(0|l,0,((0|S)>1?S:1)<<3);A:do{if((0|r[F>>2])>0){D=((0|S)<0)<<31>>31,y=i,B=l,k=i,_=i,x=l,Q=i,n=i,w=i,v=l,m=l,b=l,i=l;e:for(;;){for(p=0|r[F>>2],g=0,d=0,o=0;;){s=(a=L)+56|0;do{r[a>>2]=0,a=a+4|0}while((0|a)<(0|s));if(0|I(u=0|r[(e=y+(g<<3)|0)>>2],e=0|r[e+4>>2],1,L,0)){s=(a=L)+56|0;do{r[a>>2]=0,a=a+4|0}while((0|a)<(0|s));0|(a=0|me(7,4))&&(P(u,e,1,L,a,7,0),ve(a))}h=0;do{l=0|r[(c=L+(h<<3)|0)>>2],c=0|r[c+4>>2];t:do{if(!(!(0|l)&!(0|c))){if(u=0|Ee(0|l,0|c,0|S,0|D),E(),!(!(0|(e=0|r[(s=a=t+(u<<3)|0)>>2]))&!(0|(s=0|r[s+4>>2]))))for(f=0;;){if((0|f)>(0|S))break e;if((0|e)==(0|l)&(0|s)==(0|c))break t;if(!(0|(e=0|r[(s=a=t+((u=(u+1|0)%(0|S)|0)<<3)|0)>>2]))&!(0|(s=0|r[s+4>>2])))break;f=f+1|0}!(0|l)&!(0|c)||(HA(l,c,G),0|ie(A,R,G)&&(r[(f=a)>>2]=l,r[f+4>>2]=c,r[(f=B+(o<<3)|0)>>2]=l,r[f+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|k,0,p<<3),r[F>>2]=o,!((0|o)>0))break A;l=i,c=b,h=Q,g=m,d=v,p=B,i=w,b=n,m=_,v=k,w=l,n=c,Q=x,x=h,_=g,k=d,B=y,y=p}return ve(_),ve(x),ve(R),C=U,0|(R=-1)}n=l}while(0);return ve(R),ve(i),ve(n),R=0,C=U,0|R}(A|=0,e|=0,t|=0)){if(a=0|r[(u=A)+4>>2],r[(s=o)>>2]=r[u>>2],r[s+4>>2]=a,ne(o,i),s=0|V(i,e),e=0|r[o>>2],(0|(a=0|r[A+8>>2]))>0){o=0|r[A+12>>2],i=0;do{e=(0|r[o+(i<<3)>>2])+e|0,i=i+1|0}while((0|i)!=(0|a))}(0|(e=(0|s)<(0|e)?e:s))<=-12||De(0|t,0,8+(((0|(u=e+11|0))>0?u:0)<<3)|0),C=n}else C=n},_res0IndexCount:function(){return 122},_round:Ce,_sbrk:Se,_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,n,i){A|=0,t|=0,n|=0,i|=0;var o=0,a=0,s=0,u=0,f=0,l=0;if((0|(e|=0))<=0)return 0|(i=0);if((0|i)>=16){for(o=0;;){if(!(!(0|r[(l=A+(o<<3)|0)>>2])&!(0|r[l+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|n)>0?-2:-1);if(16==(0|o))return 0|a}o=0,l=0;A:for(;;){a=0|r[(s=f=A+(l<<3)|0)>>2],s=0|r[s+4>>2];do{if(!(!(0|a)&!(0|s))){if((0|o)>=(0|n)){a=-1,o=16;break A}if(u=0|Me(0|a,0|s,52),E(),(0|(u&=15))>(0|i)){a=-2,o=16;break A}if((0|u)==(0|i)){r[(f=t+(o<<3)|0)>>2]=a,r[f+4>>2]=s,o=o+1|0;break}if((0|(a=(0|ee(7,i-u|0))+o|0))>(0|n)){a=-1,o=16;break A}PA(0|r[f>>2],0|r[f+4>>2],i,t+(o<<3)|0),o=a}}while(0);if((0|(l=l+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},{b:function(A){w=A},c:v,d:function(A,e,t,n){pA("Assertion failed: "+S(A)+", at: "+[e?S(e):"unknown filename",t,n?S(n):"unknown function"])},e:function(A){return t.___errno_location&&(x[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,n=2130706432;if(A>n)return!1;for(var r=Math.max(e,16777216);r<A;)r=r<=536870912?I(2*r,t):Math.min(I((3*r+2147483648)/4,t),n);return!!function(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(M),rA(e),P(e),1}catch(A){}}(r)},i:function(A){pA("OOM")},p:24016},E);t.___uremdi3=nA.___uremdi3,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._compact=nA._compact,t._destroyLinkedPolygon=nA._destroyLinkedPolygon,t._edgeLengthKm=nA._edgeLengthKm,t._edgeLengthM=nA._edgeLengthM;var rA=t._emscripten_replace_memory=nA._emscripten_replace_memory;t._exactEdgeLengthKm=nA._exactEdgeLengthKm,t._exactEdgeLengthM=nA._exactEdgeLengthM,t._exactEdgeLengthRads=nA._exactEdgeLengthRads,t._experimentalH3ToLocalIj=nA._experimentalH3ToLocalIj,t._experimentalLocalIjToH3=nA._experimentalLocalIjToH3,t._free=nA._free,t._geoToH3=nA._geoToH3,t._getDestinationH3IndexFromUnidirectionalEdge=nA._getDestinationH3IndexFromUnidirectionalEdge,t._getH3IndexesFromUnidirectionalEdge=nA._getH3IndexesFromUnidirectionalEdge,t._getH3UnidirectionalEdge=nA._getH3UnidirectionalEdge,t._getH3UnidirectionalEdgeBoundary=nA._getH3UnidirectionalEdgeBoundary,t._getH3UnidirectionalEdgesFromHexagon=nA._getH3UnidirectionalEdgesFromHexagon,t._getOriginH3IndexFromUnidirectionalEdge=nA._getOriginH3IndexFromUnidirectionalEdge,t._getPentagonIndexes=nA._getPentagonIndexes,t._getRes0Indexes=nA._getRes0Indexes,t._h3Distance=nA._h3Distance,t._h3GetBaseCell=nA._h3GetBaseCell,t._h3GetFaces=nA._h3GetFaces,t._h3GetResolution=nA._h3GetResolution,t._h3IndexesAreNeighbors=nA._h3IndexesAreNeighbors,t._h3IsPentagon=nA._h3IsPentagon,t._h3IsResClassIII=nA._h3IsResClassIII,t._h3IsValid=nA._h3IsValid,t._h3Line=nA._h3Line,t._h3LineSize=nA._h3LineSize,t._h3SetToLinkedGeo=nA._h3SetToLinkedGeo,t._h3ToCenterChild=nA._h3ToCenterChild,t._h3ToChildren=nA._h3ToChildren,t._h3ToGeo=nA._h3ToGeo,t._h3ToGeoBoundary=nA._h3ToGeoBoundary,t._h3ToParent=nA._h3ToParent,t._h3UnidirectionalEdgeIsValid=nA._h3UnidirectionalEdgeIsValid,t._hexAreaKm2=nA._hexAreaKm2,t._hexAreaM2=nA._hexAreaM2,t._hexRing=nA._hexRing,t._i64Subtract=nA._i64Subtract,t._kRing=nA._kRing,t._kRingDistances=nA._kRingDistances,t._llvm_minnum_f64=nA._llvm_minnum_f64,t._llvm_round_f64=nA._llvm_round_f64,t._malloc=nA._malloc,t._maxFaceCount=nA._maxFaceCount,t._maxH3ToChildrenSize=nA._maxH3ToChildrenSize,t._maxKringSize=nA._maxKringSize,t._maxPolyfillSize=nA._maxPolyfillSize,t._maxUncompactSize=nA._maxUncompactSize,t._memcpy=nA._memcpy,t._memset=nA._memset,t._numHexagons=nA._numHexagons,t._pentagonIndexCount=nA._pentagonIndexCount,t._pointDistKm=nA._pointDistKm,t._pointDistM=nA._pointDistM,t._pointDistRads=nA._pointDistRads,t._polyfill=nA._polyfill,t._res0IndexCount=nA._res0IndexCount,t._round=nA._round,t._sbrk=nA._sbrk,t._sizeOfCoordIJ=nA._sizeOfCoordIJ,t._sizeOfGeoBoundary=nA._sizeOfGeoBoundary,t._sizeOfGeoCoord=nA._sizeOfGeoCoord,t._sizeOfGeoPolygon=nA._sizeOfGeoPolygon,t._sizeOfGeofence=nA._sizeOfGeofence,t._sizeOfH3Index=nA._sizeOfH3Index,t._sizeOfLinkedGeoPolygon=nA._sizeOfLinkedGeoPolygon,t._uncompact=nA._uncompact,t.establishStackSpace=nA.establishStackSpace;var iA,oA,aA=t.stackAlloc=nA.stackAlloc,sA=t.stackRestore=nA.stackRestore,uA=t.stackSave=nA.stackSave;if(t.asm=nA,t.cwrap=function(A,e,t,n){var r=(t=t||[]).every(function(A){return"number"===A});return"string"!==e&&r&&!n?y(A):function(){return B(A,e,t,arguments)}},t.setValue=function(A,e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":M[A|0]=e;break;case"i16":_[A>>1]=e;break;case"i32":x[A>>2]=e;break;case"i64":Z=[e>>>0,(W=e,+Y(W)>=1?W>0?(0|V(+H(W/4294967296),4294967295))>>>0:~~+N((W-+(~~W>>>0))/4294967296)>>>0:0)],x[A>>2]=Z[0],x[A+4>>2]=Z[1];break;case"float":Q[A>>2]=e;break;case"double":D[A>>3]=e;break;default:pA("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 M[A|0];case"i16":return _[A>>1];case"i32":case"i64":return x[A>>2];case"float":return Q[A>>2];case"double":return D[A>>3];default:pA("invalid type for getValue: "+e)}return null},t.getTempRet0=v,J)if(q(J)||(iA=J,J=t.locateFile?t.locateFile(iA,g):g+iA),o||s){var fA=l(J);k.set(fA,8)}else{j++,t.monitorRunDependencies&&t.monitorRunDependencies(j);var lA=function(A){A.byteLength&&(A=new Uint8Array(A)),k.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(j--,t.monitorRunDependencies&&t.monitorRunDependencies(j),0==j&&X){var A=X;X=null,A()}}()},cA=function(){f(J,lA,function(){throw"could not load memory initializer "+J})},hA=tA(J);if(hA)lA(hA.buffer);else if(t.memoryInitializerRequest){var gA=function(){var A=t.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var n=tA(t.memoryInitializerRequestURL);if(!n)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+J),void cA();e=n.buffer}lA(e)};t.memoryInitializerRequest.response?setTimeout(gA,0):t.memoryInitializerRequest.addEventListener("load",gA)}else cA()}function dA(A){function e(){oA||(oA=!0,m||(T(G),T(R),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)z(t.postRun.shift());T(U)}()))}j>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)O(t.preRun.shift());T(L)}(),j>0||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e()))}function pA(A){throw t.onAbort&&t.onAbort(A),d(A+=""),p(A),m=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(X=function A(){oA||dA(),oA||(X=A)},t.run=dA,t.abort=pA,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return dA(),A}("object"==typeof qA?qA:{}),$A="number",Ae={};[["sizeOfH3Index",$A],["sizeOfGeoCoord",$A],["sizeOfGeoBoundary",$A],["sizeOfGeoPolygon",$A],["sizeOfGeofence",$A],["sizeOfLinkedGeoPolygon",$A],["sizeOfCoordIJ",$A],["h3IsValid",$A,[$A,$A]],["geoToH3",$A,[$A,$A,$A]],["h3ToGeo",null,[$A,$A,$A]],["h3ToGeoBoundary",null,[$A,$A,$A]],["maxKringSize",$A,[$A]],["kRing",null,[$A,$A,$A,$A]],["kRingDistances",null,[$A,$A,$A,$A,$A]],["hexRing",null,[$A,$A,$A,$A]],["maxPolyfillSize",$A,[$A,$A]],["polyfill",null,[$A,$A,$A]],["h3SetToLinkedGeo",null,[$A,$A,$A]],["destroyLinkedPolygon",null,[$A]],["compact",$A,[$A,$A,$A]],["uncompact",$A,[$A,$A,$A,$A,$A]],["maxUncompactSize",$A,[$A,$A,$A]],["h3IsPentagon",$A,[$A,$A]],["h3IsResClassIII",$A,[$A,$A]],["h3GetBaseCell",$A,[$A,$A]],["h3GetResolution",$A,[$A,$A]],["maxFaceCount",$A,[$A,$A]],["h3GetFaces",null,[$A,$A,$A]],["h3ToParent",$A,[$A,$A,$A]],["h3ToChildren",null,[$A,$A,$A,$A]],["h3ToCenterChild",$A,[$A,$A,$A]],["maxH3ToChildrenSize",$A,[$A,$A,$A]],["h3IndexesAreNeighbors",$A,[$A,$A,$A,$A]],["getH3UnidirectionalEdge",$A,[$A,$A,$A,$A]],["getOriginH3IndexFromUnidirectionalEdge",$A,[$A,$A]],["getDestinationH3IndexFromUnidirectionalEdge",$A,[$A,$A]],["h3UnidirectionalEdgeIsValid",$A,[$A,$A]],["getH3IndexesFromUnidirectionalEdge",null,[$A,$A,$A]],["getH3UnidirectionalEdgesFromHexagon",null,[$A,$A,$A]],["getH3UnidirectionalEdgeBoundary",null,[$A,$A,$A]],["h3Distance",$A,[$A,$A,$A,$A]],["h3Line",$A,[$A,$A,$A,$A,$A]],["h3LineSize",$A,[$A,$A,$A,$A]],["experimentalH3ToLocalIj",$A,[$A,$A,$A,$A,$A]],["experimentalLocalIjToH3",$A,[$A,$A,$A,$A]],["hexAreaM2",$A,[$A]],["hexAreaKm2",$A,[$A]],["edgeLengthM",$A,[$A]],["edgeLengthKm",$A,[$A]],["pointDistM",$A,[$A,$A]],["pointDistKm",$A,[$A,$A]],["pointDistRads",$A,[$A,$A]],["cellAreaM2",$A,[$A,$A]],["cellAreaKm2",$A,[$A,$A]],["cellAreaRads2",$A,[$A,$A]],["exactEdgeLengthM",$A,[$A,$A]],["exactEdgeLengthKm",$A,[$A,$A]],["exactEdgeLengthRads",$A,[$A,$A]],["numHexagons",$A,[$A]],["getRes0Indexes",null,[$A]],["res0IndexCount",$A],["getPentagonIndexes",null,[$A,$A]],["pentagonIndexCount",$A]].forEach(function(A){Ae[A[0]]=qA.cwrap.apply(qA,A)});var ee=16,te=Ae.sizeOfH3Index(),ne=Ae.sizeOfGeoCoord(),re=Ae.sizeOfGeoBoundary(),ie=Ae.sizeOfGeoPolygon(),oe=Ae.sizeOfGeofence(),ae=Ae.sizeOfLinkedGeoPolygon(),se=Ae.sizeOfCoordIJ(),ue={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function fe(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw new Error("Invalid resolution: "+A)}var le=/[^0-9a-fA-F]/;function ce(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||le.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),ee);return[parseInt(A.substring(A.length-8),ee),e]}function he(A){if(A>=0)return A.toString(ee);var e=de(8,(A&=2147483647).toString(ee));return e=(parseInt(e[0],ee)+8).toString(ee)+e.substring(1)}function ge(A,e){return he(e)+de(8,he(A))}function de(A,e){for(var t=A-e.length,n="",r=0;r<t;r++)n+="0";return n+=e}function pe(A,e,t){for(var n=A.length,r=qA._calloc(n,ne),i=t?1:0,o=t?0:1,a=0;a<2*n;a+=2)qA.HEAPF64.set([A[a/2][i],A[a/2][o]].map(De),r/8+a);return qA.HEAPU32.set([n,r],e/4),e}function we(A){return[A,qA.getTempRet0()]}function ve(A){var e=we(A),t=e[0],n=e[1];return n?ge(t,n):null}function me(A,e){void 0===e&&(e=0);var t=qA.getValue(A+4*e*2,"i32"),n=qA.getValue(A+4*(2*e+1),"i32");return n?ge(t,n):null}function be(A,e,t){qA.HEAPU32.set(ce(A),e/4+2*t)}function ye(A,e){for(var t=[],n=0;n<e;n++){var r=me(A,n);null!==r&&t.push(r)}return t}function Be(A,e){for(var t=e.length,n=0;n<t;n++)be(e[n],A,n)}function Ee(A,e){var t=qA._calloc(1,ne);return qA.HEAPF64.set([A,e].map(De),t/8),t}function Me(A){return Ce(qA.getValue(A,"double"))}function ke(A){return[Me(A),Me(A+8)]}function _e(A){return[Me(A+8),Me(A)]}function xe(A,e,t){for(var n=qA.getValue(A,"i32"),r=A+8,i=[],o=e?_e:ke,a=0;a<2*n;a+=2)i.push(o(r+8*a));return t&&i.push(i[0]),i}function Qe(A){var e=ce(A),t=e[0],n=e[1];return Boolean(Ae.h3IsValid(t,n))}function De(A){return A*Math.PI/180}function Ce(A){return 180*A/Math.PI}var Se=Object.freeze({__proto__:null,UNITS:ue,cellArea:function(A,e){var t=ce(A),n=t[0],r=t[1];switch(e){case ue.m2:return Ae.cellAreaM2(n,r);case ue.km2:return Ae.cellAreaKm2(n,r);case ue.rads2:return Ae.cellAreaRads2(n,r);default:throw new Error("Unknown unit: "+e)}},compact:function(A){if(!A||!A.length)return[];var e=A.length,t=qA._calloc(e,te);Be(t,A);var n=qA._calloc(e,te);if(0!==Ae.compact(t,n,e))throw qA._free(t),qA._free(n),new Error("Failed to compact, malformed input data (duplicate hexagons?)");var r=ye(n,e);return qA._free(t),qA._free(n),r},degsToRads:De,edgeLength:function(A,e){switch(fe(A),e){case ue.m:return Ae.edgeLengthM(A);case ue.km:return Ae.edgeLengthKm(A);default:throw new Error("Unknown unit: "+e)}},exactEdgeLength:function(A,e){var t=ce(A),n=t[0],r=t[1];switch(e){case ue.m:return Ae.exactEdgeLengthM(n,r);case ue.km:return Ae.exactEdgeLengthKm(n,r);case ue.rads:return Ae.exactEdgeLengthRads(n,r);default:throw new Error("Unknown unit: "+e)}},experimentalH3ToLocalIj:function(A,e){var t,n=qA._malloc(se),r=Ae.experimentalH3ToLocalIj.apply(Ae,ce(A).concat(ce(e),[n])),i=(t=n,{i:qA.getValue(t,"i32"),j:qA.getValue(t+4,"i32")});switch(qA._free(n),r){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,n,r,i,o=qA._malloc(se),a=qA._malloc(te);t=o,r=(n=e).i,i=n.j,qA.setValue(t,r,"i32"),qA.setValue(t+4,i,"i32");var s=Ae.experimentalLocalIjToH3.apply(Ae,ce(A).concat([o],[a])),u=me(a);if(qA._free(o),qA._free(a),0!==s)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 u},geoToH3:function(A,e,t){var n=qA._malloc(ne);qA.HEAPF64.set([A,e].map(De),n/8);var r=ve(Ae.geoToH3(n,t));return qA._free(n),r},getDestinationH3IndexFromUnidirectionalEdge:function(A){var e=ce(A),t=e[0],n=e[1];return ve(Ae.getDestinationH3IndexFromUnidirectionalEdge(t,n))},getH3IndexesFromUnidirectionalEdge:function(A){var e=ce(A),t=e[0],n=e[1],r=qA._calloc(2,te);Ae.getH3IndexesFromUnidirectionalEdge(t,n,r);var i=ye(r,2);return qA._free(r),i},getH3UnidirectionalEdge:function(A,e){var t=ce(A),n=t[0],r=t[1],i=ce(e),o=i[0],a=i[1];return ve(Ae.getH3UnidirectionalEdge(n,r,o,a))},getH3UnidirectionalEdgeBoundary:function(A,e){var t=qA._malloc(re),n=ce(A),r=n[0],i=n[1];Ae.getH3UnidirectionalEdgeBoundary(r,i,t);var o=xe(t,e);return qA._free(t),o},getH3UnidirectionalEdgesFromHexagon:function(A){var e=ce(A),t=e[0],n=e[1],r=qA._calloc(6,te);Ae.getH3UnidirectionalEdgesFromHexagon(t,n,r);var i=ye(r,6);return qA._free(r),i},getOriginH3IndexFromUnidirectionalEdge:function(A){var e=ce(A),t=e[0],n=e[1];return ve(Ae.getOriginH3IndexFromUnidirectionalEdge(t,n))},getPentagonIndexes:function(A){fe(A);var e=Ae.pentagonIndexCount(),t=qA._malloc(te*e);Ae.getPentagonIndexes(A,t);var n=ye(t,e);return qA._free(t),n},getRes0Indexes:function(){var A=Ae.res0IndexCount(),e=qA._malloc(te*A);Ae.getRes0Indexes(e);var t=ye(e,A);return qA._free(e),t},h3Distance:function(A,e){var t=ce(A),n=t[0],r=t[1],i=ce(e),o=i[0],a=i[1];return Ae.h3Distance(n,r,o,a)},h3GetBaseCell:function(A){var e=ce(A),t=e[0],n=e[1];return Ae.h3GetBaseCell(t,n)},h3GetFaces:function(A){var e=ce(A),t=e[0],n=e[1],r=Ae.maxFaceCount(t,n),i=qA._malloc(4*r);Ae.h3GetFaces(t,n,i);var o=function(A,e){for(var t=[],n=0;n<e;n++){var r=qA.getValue(A+4*n,"i32");r>=0&&t.push(r)}return t}(i,r);return qA._free(i),o},h3GetResolution:function(A){var e=ce(A),t=e[0],n=e[1];return Ae.h3IsValid(t,n)?Ae.h3GetResolution(t,n):-1},h3IndexToSplitLong:ce,h3IndexesAreNeighbors:function(A,e){var t=ce(A),n=t[0],r=t[1],i=ce(e),o=i[0],a=i[1];return Boolean(Ae.h3IndexesAreNeighbors(n,r,o,a))},h3IsPentagon:function(A){var e=ce(A),t=e[0],n=e[1];return Boolean(Ae.h3IsPentagon(t,n))},h3IsResClassIII:function(A){var e=ce(A),t=e[0],n=e[1];return Boolean(Ae.h3IsResClassIII(t,n))},h3IsValid:Qe,h3Line:function(A,e){var t=ce(A),n=t[0],r=t[1],i=ce(e),o=i[0],a=i[1],s=Ae.h3LineSize(n,r,o,a);if(s<0)throw new Error("Line cannot be calculated");var u=qA._calloc(s,te);Ae.h3Line(n,r,o,a,u);var f=ye(u,s);return qA._free(u),f},h3SetToMultiPolygon:function(A,e){if(!A||!A.length)return[];var t=A.length,n=qA._calloc(t,te);Be(n,A);var r=qA._calloc(ae),i=r;Ae.h3SetToLinkedGeo(n,t,r);var o=function(A,e){for(var t,n,r,i,o=[],a=e?_e:ke;A;){for(o.push(t=[]),n=qA.getValue(A,"i8*");n;){for(t.push(r=[]),i=qA.getValue(n,"i8*");i;)r.push(a(i)),i=qA.getValue(i+16,"i8*");e&&r.push(r[0]),n=qA.getValue(n+8,"i8*")}A=qA.getValue(A+8,"i8*")}return o}(r,e);return Ae.destroyLinkedPolygon(i),qA._free(i),qA._free(n),o},h3ToCenterChild:function(A,e){var t=ce(A),n=t[0],r=t[1];return ve(Ae.h3ToCenterChild(n,r,e))},h3ToChildren:function(A,e){if(!Qe(A))return[];var t=ce(A),n=t[0],r=t[1],i=Ae.maxH3ToChildrenSize(n,r,e),o=qA._calloc(i,te);Ae.h3ToChildren(n,r,e,o);var a=ye(o,i);return qA._free(o),a},h3ToGeo:function(A){var e=qA._malloc(ne),t=ce(A),n=t[0],r=t[1];Ae.h3ToGeo(n,r,e);var i=ke(e);return qA._free(e),i},h3ToGeoBoundary:function(A,e){var t=qA._malloc(re),n=ce(A),r=n[0],i=n[1];Ae.h3ToGeoBoundary(r,i,t);var o=xe(t,e,e);return qA._free(t),o},h3ToParent:function(A,e){var t=ce(A),n=t[0],r=t[1];return ve(Ae.h3ToParent(n,r,e))},h3UnidirectionalEdgeIsValid:function(A){var e=ce(A),t=e[0],n=e[1];return Boolean(Ae.h3UnidirectionalEdgeIsValid(t,n))},hexArea:function(A,e){switch(fe(A),e){case ue.m2:return Ae.hexAreaM2(A);case ue.km2:return Ae.hexAreaKm2(A);default:throw new Error("Unknown unit: "+e)}},hexRing:function(A,e){var t=0===e?1:6*e,n=qA._calloc(t,te);if(0!==Ae.hexRing.apply(Ae,ce(A).concat([e],[n])))throw qA._free(n),new Error("Failed to get hexRing (encountered a pentagon?)");var r=ye(n,t);return qA._free(n),r},kRing:function(A,e){var t=ce(A),n=t[0],r=t[1],i=Ae.maxKringSize(e),o=qA._calloc(i,te);Ae.kRing(n,r,e,o);var a=ye(o,i);return qA._free(o),a},kRingDistances:function(A,e){var t=ce(A),n=t[0],r=t[1],i=Ae.maxKringSize(e),o=qA._calloc(i,te),a=qA._calloc(i,4);Ae.kRingDistances(n,r,e,o,a);for(var s=[],u=0;u<e+1;u++)s.push([]);for(var f=0;f<2*i;f+=2){var l=qA.getValue(o+4*f,"i32"),c=qA.getValue(o+4*(f+1),"i32"),h=qA.getValue(a+f/2*4,"i32");0===l&&0===c||s[h].push(ge(l,c))}return qA._free(o),qA._free(a),s},numHexagons:function(A){fe(A);var e=we(Ae.numHexagons(A)),t=e[0],n=e[1];return n?n*Math.pow(2,32)+t:t},pointDist:function(A,e,t){var n,r=Ee(A[0],A[1]),i=Ee(e[0],e[1]);switch(t){case ue.m:n=Ae.pointDistM(r,i);break;case ue.km:n=Ae.pointDistKm(r,i);break;case ue.rads:n=Ae.pointDistRads(r,i);break;default:n=null}if(qA._free(r),qA._free(i),null===n)throw new Error("Unknown unit: "+t);return n},polyfill:function(A,e,t){if(fe(e),t=Boolean(t),0===A.length||0===A[0].length)return[];"number"==typeof A[0][0]&&(A=[A]);var n=function(A,e){var t,n=A.length-1,r=qA._calloc(ie),i=0+oe,o=i+4;if(pe(A[0],r+0,e),n>0){t=qA._calloc(n,oe);for(var a=0;a<n;a++)pe(A[a+1],t+oe*a,e)}return qA.setValue(r+i,n,"i32"),qA.setValue(r+o,t,"i32"),r}(A,t),r=Ae.maxPolyfillSize(n,e),i=qA._calloc(r,te);Ae.polyfill(n,e,i);var o=ye(i,r);return qA._free(i),function(A){var e=0+oe,t=e+4;qA._free(qA.getValue(A+0+4,"i8*"));var n=qA.getValue(A+e,"i32");if(n>0){for(var r=qA.getValue(A+t,"i32"),i=0;i<n;i++)qA._free(qA.getValue(r+oe*i+4,"i8*"));qA._free(r)}qA._free(A)}(n),o},radsToDegs:Ce,splitLongToh3Index:ge,uncompact:function(A,e){if(fe(e),!A||!A.length)return[];var t=A.length,n=qA._calloc(t,te);Be(n,A);var r=Ae.maxUncompactSize(n,t,e),i=qA._calloc(r,te);if(0!==Ae.uncompact(n,t,i,r,e))throw qA._free(n),qA._free(i),new Error("Failed to uncompact (bad resolution?)");var o=ye(i,r);return qA._free(n),qA._free(i),o}}),Ie=KA(Se),Pe="Feature",Fe="FeatureCollection",Te="Polygon";function Le(A){for(var e=null,t=0;t<A.length;t++)if(null!==e)for(var n=0;n<A[t].length;n++)e.push(A[t][n]);else e=A[t];return Array.from(new Set(e))}function Ge(A,e,t){void 0===t&&(t={});var n=A.type,r=A.geometry,i=r&&r.type;if(n===Fe)return function(A,e){var t=A.features;if(!t)throw new Error("No features found");return Le(t.map(function(A){return Ge(A,e)}))}(A,e);if(n!==Pe)throw new Error("Unhandled type: "+n);if(i!==Te&&"MultiPolygon"!==i)throw new Error("Unhandled geometry type: "+i);return Le((i===Te?[r.coordinates]:r.coordinates).map(function(A){var n=Ie.polyfill(A,e,!0);if(n.length||!t.ensureOutput)return n;var r=function(A){for(var e=0,t=0,n=0,r=A[0],i=0;i<r.length;i++)e+=r[i][0],t+=r[i][1],n++;return[e/n,t/n]}(A),i=r[0],o=r[1];return[Ie.geoToH3(o,i,e)]}))}function Re(A,e){void 0===e&&(e={});var t=[Ie.h3ToGeoBoundary(A,!0)];return{type:Pe,id:A,properties:e,geometry:{type:Te,coordinates:t}}}var Ue={featureToH3Set:Ge,h3SetToFeatureCollection:function(A,e){for(var t=[],n=0;n<A.length;n++){var r=A[n],i=e?e(r):{};t.push(Re(r,i))}return{type:Fe,features:t}}};var Oe=("undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}).performance||{};function ze(A){let e,t,n="";return function(A){return!!(!Array.isArray(A)&&"FeatureCollection"==A?.type&&Array.isArray(A?.features)&&A?.features[0]?.hasOwnProperty("type")&&A?.features[0]?.hasOwnProperty("properties")&&A?.features[0]?.hasOwnProperty("geometry"))}(A)?(n="FeatureCollection",e=A=>Ye(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)?(n="Features",e=A=>Ye({type:"FeatureCollection",features:A}),t=A=>A.features):function(A){return!("object"!=typeof A||Array.isArray(A)||null===A||!A?.hasOwnProperty("type")||!A?.hasOwnProperty("properties")||!A?.hasOwnProperty("geometry"))}(A)?(n="Feature",e=A=>Ye({type:"FeatureCollection",features:[A]}),t=A=>1==A.features.length?A.features[0]:A.features):function(A){return!!(Array.isArray(A)&&A.length>0&&A[0]?.hasOwnProperty("type")&&A[0]?.hasOwnProperty("coordinates"))}(A)?(n="Geometries",e=A=>Ye({type:"FeatureCollection",features:A.map(A=>({type:"Feature",properties:{},geometry:A}))}),t=A=>A.features.map(A=>A.geometry)):function(A){return!("object"!=typeof A||Array.isArray(A)||null===A||!A?.hasOwnProperty("type")||!A?.hasOwnProperty("coordinates"))}(A)?(n="Geometry",e=A=>Ye({type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:A}]}),t=A=>1==A.features.length?A.features[0].geometry:A.features.map(A=>A.geometry)):(n=void 0,e=A=>Ye(A),t=A=>Ye(A)),{type:n,import:e,export:t}}function Ye(A){return JSON.parse(JSON.stringify(A))}function Ne(A,e){return null==A||null==e?NaN:A<e?-1:A>e?1:A>=e?0:NaN}function He(A,e){return null==A||null==e?NaN:e<A?-1:e>A?1:e>=A?0:NaN}function Ve(A){let e,t,n;function r(A,n,r=0,i=A.length){if(r<i){if(0!==e(n,n))return i;do{const e=r+i>>>1;t(A[e],n)<0?r=e+1:i=e}while(r<i)}return r}return 2!==A.length?(e=Ne,t=(e,t)=>Ne(A(e),t),n=(e,t)=>A(e)-t):(e=A===Ne||A===He?A:je,t=A,n=A),{left:r,center:function(A,e,t=0,i=A.length){const o=r(A,e,t,i-1);return o>t&&n(A[o-1],e)>-n(A[o],e)?o-1:o},right:function(A,n,r=0,i=A.length){if(r<i){if(0!==e(n,n))return i;do{const e=r+i>>>1;t(A[e],n)<=0?r=e+1:i=e}while(r<i)}return r}}}function je(){return 0}function Xe(A){return null===A?NaN:+A}Oe.now||Oe.mozNow||Oe.msNow||Oe.oNow||Oe.webkitNow;const We=Ve(Ne),Ze=We.right,Je=We.left,Ke=Ve(Xe).center;var qe=Ze;const $e=et(rt),At=et(function(A){const e=rt(A);return(A,t,n,r,i)=>{e(A,t,0+(n<<=2),0+(r<<=2),i<<=2),e(A,t,n+1,r+1,i),e(A,t,n+2,r+2,i),e(A,t,n+3,r+3,i)}});function et(A){return function(e,t,n=t){if(!((t=+t)>=0))throw new RangeError("invalid rx");if(!((n=+n)>=0))throw new RangeError("invalid ry");let{data:r,width:i,height:o}=e;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((o=Math.floor(void 0!==o?o:r.length/i))>=0))throw new RangeError("invalid height");if(!i||!o||!t&&!n)return e;const a=t&&A(t),s=n&&A(n),u=r.slice();return a&&s?(tt(a,u,r,i,o),tt(a,r,u,i,o),tt(a,u,r,i,o),nt(s,r,u,i,o),nt(s,u,r,i,o),nt(s,r,u,i,o)):a?(tt(a,r,u,i,o),tt(a,u,r,i,o),tt(a,r,u,i,o)):s&&(nt(s,r,u,i,o),nt(s,u,r,i,o),nt(s,r,u,i,o)),e}}function tt(A,e,t,n,r){for(let i=0,o=n*r;i<o;)A(e,t,i,i+=n,1)}function nt(A,e,t,n,r){for(let i=0,o=n*r;i<n;++i)A(e,t,i,i+o,n)}function rt(A){const e=Math.floor(A);if(e===A)return function(A){const e=2*A+1;return(t,n,r,i,o)=>{if(!((i-=o)>=r))return;let a=A*n[r];const s=o*A;for(let A=r,e=r+s;A<e;A+=o)a+=n[Math.min(i,A)];for(let A=r,u=i;A<=u;A+=o)a+=n[Math.min(i,A+s)],t[A]=a/e,a-=n[Math.max(r,A-s)]}}(A);const t=A-e,n=2*A+1;return(A,r,i,o,a)=>{if(!((o-=a)>=i))return;let s=e*r[i];const u=a*e,f=u+a;for(let A=i,e=i+u;A<e;A+=a)s+=r[Math.min(o,A)];for(let e=i,l=o;e<=l;e+=a)s+=r[Math.min(o,e+u)],A[e]=(s+t*(r[Math.max(i,e-f)]+r[Math.min(o,e+f)]))/n,s-=r[Math.max(i,e-u)]}}function it(A,e){let t=0;if(void 0===e)for(let e of A)null!=e&&(e=+e)>=e&&++t;else{let n=-1;for(let r of A)null!=(r=e(r,++n,A))&&(r=+r)>=r&&++t}return t}function ot(A){return 0|A.length}function at(A){return!(A>0)}function st(A){return"object"!=typeof A||"length"in A?A:Array.from(A)}function ut(A,e){let t,n=0,r=0,i=0;if(void 0===e)for(let e of A)null!=e&&(e=+e)>=e&&(t=e-r,r+=t/++n,i+=t*(e-r));else{let o=-1;for(let a of A)null!=(a=e(a,++o,A))&&(a=+a)>=a&&(t=a-r,r+=t/++n,i+=t*(a-r))}if(n>1)return i/(n-1)}function ft(A,e){const t=ut(A,e);return t?Math.sqrt(t):t}function lt(A,e){let t,n;if(void 0===e)for(const e of A)null!=e&&(void 0===t?e>=e&&(t=n=e):(t>e&&(t=e),n<e&&(n=e)));else{let r=-1;for(let i of A)null!=(i=e(i,++r,A))&&(void 0===t?i>=i&&(t=n=i):(t>i&&(t=i),n<i&&(n=i)))}return[t,n]}let ct=class{constructor(){this._partials=new Float64Array(32),this._n=0}add(A){const e=this._partials;let t=0;for(let n=0;n<this._n&&n<32;n++){const r=e[n],i=A+r,o=Math.abs(A)<Math.abs(r)?A-(i-r):r-(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,n,r=this._n,i=0;if(r>0){for(i=A[--r];r>0&&(e=i,t=A[--r],i=e+t,n=t-(i-e),!n););r>0&&(n<0&&A[r-1]<0||n>0&&A[r-1]>0)&&(t=2*n,e=i+t,t==e-i&&(i=e))}return i}};class ht extends Map{constructor(A,e=vt){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(dt(this,A))}has(A){return super.has(dt(this,A))}set(A,e){return super.set(pt(this,A),e)}delete(A){return super.delete(wt(this,A))}}class gt extends Set{constructor(A,e=vt){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(dt(this,A))}add(A){return super.add(pt(this,A))}delete(A){return super.delete(wt(this,A))}}function dt({_intern:A,_key:e},t){const n=e(t);return A.has(n)?A.get(n):t}function pt({_intern:A,_key:e},t){const n=e(t);return A.has(n)?A.get(n):(A.set(n,t),t)}function wt({_intern:A,_key:e},t){const n=e(t);return A.has(n)&&(t=A.get(n),A.delete(n)),t}function vt(A){return null!==A&&"object"==typeof A?A.valueOf():A}function mt(A){return A}function bt(A,...e){return _t(A,mt,mt,e)}function yt(A,...e){return _t(A,Array.from,mt,e)}function Bt(A,e){for(let t=1,n=e.length;t<n;++t)A=A.flatMap(A=>A.pop().map(([e,t])=>[...A,e,t]));return A}function Et(A,e,...t){return _t(A,mt,e,t)}function Mt(A,e,...t){return _t(A,Array.from,e,t)}function kt(A){if(1!==A.length)throw new Error("duplicate key");return A[0]}function _t(A,e,t,n){return function A(r,i){if(i>=n.length)return t(r);const o=new ht,a=n[i++];let s=-1;for(const A of r){const e=a(A,++s,r),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 xt(A,e){return Array.from(e,e=>A[e])}function Qt(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 n=Uint32Array.from(A,(A,e)=>e);return e.length>1?(e=e.map(e=>A.map(e)),n.sort((A,t)=>{for(const n of e){const e=Ct(n[A],n[t]);if(e)return e}})):(t=A.map(t),n.sort((A,e)=>Ct(t[A],t[e]))),xt(A,n)}return A.sort(Dt(t))}function Dt(A=Ne){if(A===Ne)return Ct;if("function"!=typeof A)throw new TypeError("compare is not a function");return(e,t)=>{const n=A(e,t);return n||0===n?n:(0===A(t,t))-(0===A(e,e))}}function Ct(A,e){return(null==A||!(A>=A))-(null==e||!(e>=e))||(A<e?-1:A>e?1:0)}var St=Array.prototype.slice;function It(A){return()=>A}const Pt=Math.sqrt(50),Ft=Math.sqrt(10),Tt=Math.sqrt(2);function Lt(A,e,t){const n=(e-A)/Math.max(0,t),r=Math.floor(Math.log10(n)),i=n/Math.pow(10,r),o=i>=Pt?10:i>=Ft?5:i>=Tt?2:1;let a,s,u;return r<0?(u=Math.pow(10,-r)/o,a=Math.round(A*u),s=Math.round(e*u),a/u<A&&++a,s/u>e&&--s,u=-u):(u=Math.pow(10,r)*o,a=Math.round(A/u),s=Math.round(e/u),a*u<A&&++a,s*u>e&&--s),s<a&&.5<=t&&t<2?Lt(A,e,2*t):[a,s,u]}function Gt(A,e,t){if(!((t=+t)>0))return[];if((A=+A)===(e=+e))return[A];const n=e<A,[r,i,o]=n?Lt(e,A,t):Lt(A,e,t);if(!(i>=r))return[];const a=i-r+1,s=new Array(a);if(n)if(o<0)for(let A=0;A<a;++A)s[A]=(i-A)/-o;else for(let A=0;A<a;++A)s[A]=(i-A)*o;else if(o<0)for(let A=0;A<a;++A)s[A]=(r+A)/-o;else for(let A=0;A<a;++A)s[A]=(r+A)*o;return s}function Rt(A,e,t){return Lt(A=+A,e=+e,t=+t)[2]}function Ut(A,e,t){let n;for(;;){const r=Rt(A,e,t);if(r===n||0===r||!isFinite(r))return[A,e];r>0?(A=Math.floor(A/r)*r,e=Math.ceil(e/r)*r):r<0&&(A=Math.ceil(A*r)/r,e=Math.floor(e*r)/r),n=r}}function Ot(A){return Math.max(1,Math.ceil(Math.log(it(A))/Math.LN2)+1)}function zt(){var A=mt,e=lt,t=Ot;function n(n){Array.isArray(n)||(n=Array.from(n));var r,i,o,a=n.length,s=new Array(a);for(r=0;r<a;++r)s[r]=A(n[r],r,n);var u=e(s),f=u[0],l=u[1],c=t(s,f,l);if(!Array.isArray(c)){const A=l,t=+c;if(e===lt&&([f,l]=Ut(f,l,t)),(c=Gt(f,l,t))[0]<=f&&(o=Rt(f,l,t)),c[c.length-1]>=l)if(A>=l&&e===lt){const A=Rt(f,l,t);isFinite(A)&&(A>0?l=(Math.floor(l/A)+1)*A:A<0&&(l=(Math.ceil(l*-A)+1)/-A))}else c.pop()}for(var h=c.length,g=0,d=h;c[g]<=f;)++g;for(;c[d-1]>l;)--d;(g||d<h)&&(c=c.slice(g,d),h=d-g);var p,w=new Array(h+1);for(r=0;r<=h;++r)(p=w[r]=[]).x0=r>0?c[r-1]:f,p.x1=r<h?c[r]:l;if(isFinite(o)){if(o>0)for(r=0;r<a;++r)null!=(i=s[r])&&f<=i&&i<=l&&w[Math.min(h,Math.floor((i-f)/o))].push(n[r]);else if(o<0)for(r=0;r<a;++r)if(null!=(i=s[r])&&f<=i&&i<=l){const A=Math.floor((f-i)*o);w[Math.min(h,A+(c[A]<=i))].push(n[r])}}else for(r=0;r<a;++r)null!=(i=s[r])&&f<=i&&i<=l&&w[qe(c,i,0,h)].push(n[r]);return w}return n.value=function(e){return arguments.length?(A="function"==typeof e?e:It(e),n):A},n.domain=function(A){return arguments.length?(e="function"==typeof A?A:It([A[0],A[1]]),n):e},n.thresholds=function(A){return arguments.length?(t="function"==typeof A?A:It(Array.isArray(A)?St.call(A):A),n):t},n}function Yt(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 n=-1;for(let r of A)null!=(r=e(r,++n,A))&&(t<r||void 0===t&&r>=r)&&(t=r)}return t}function Nt(A,e){let t,n=-1,r=-1;if(void 0===e)for(const e of A)++r,null!=e&&(t<e||void 0===t&&e>=e)&&(t=e,n=r);else for(let i of A)null!=(i=e(i,++r,A))&&(t<i||void 0===t&&i>=i)&&(t=i,n=r);return n}function Ht(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 n=-1;for(let r of A)null!=(r=e(r,++n,A))&&(t>r||void 0===t&&r>=r)&&(t=r)}return t}function Vt(A,e){let t,n=-1,r=-1;if(void 0===e)for(const e of A)++r,null!=e&&(t>e||void 0===t&&e>=e)&&(t=e,n=r);else for(let i of A)null!=(i=e(i,++r,A))&&(t>i||void 0===t&&i>=i)&&(t=i,n=r);return n}function jt(A,e,t=0,n=1/0,r){if(e=Math.floor(e),t=Math.floor(Math.max(0,t)),n=Math.floor(Math.min(A.length-1,n)),!(t<=e&&e<=n))return A;for(r=void 0===r?Ct:Dt(r);n>t;){if(n-t>600){const i=n-t+1,o=e-t+1,a=Math.log(i),s=.5*Math.exp(2*a/3),u=.5*Math.sqrt(a*s*(i-s)/i)*(o-i/2<0?-1:1);jt(A,e,Math.max(t,Math.floor(e-o*s/i+u)),Math.min(n,Math.floor(e+(i-o)*s/i+u)),r)}const i=A[e];let o=t,a=n;for(Xt(A,t,e),r(A[n],i)>0&&Xt(A,t,n);o<a;){for(Xt(A,o,a),++o,--a;r(A[o],i)<0;)++o;for(;r(A[a],i)>0;)--a}0===r(A[t],i)?Xt(A,t,a):(++a,Xt(A,a,n)),a<=e&&(t=a+1),e<=a&&(n=a-1)}return A}function Xt(A,e,t){const n=A[e];A[e]=A[t],A[t]=n}function Wt(A,e=Ne){let t,n=!1;if(1===e.length){let r;for(const i of A){const A=e(i);(n?Ne(A,r)>0:0===Ne(A,A))&&(t=i,r=A,n=!0)}}else for(const r of A)(n?e(r,t)>0:0===e(r,r))&&(t=r,n=!0);return t}function Zt(A,e,t){if((n=(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 n of A)null!=(n=e(n,++t,A))&&(n=+n)>=n&&(yield n)}}(A,t))).length)&&!isNaN(e=+e)){if(e<=0||n<2)return Ht(A);if(e>=1)return Yt(A);var n,r=(n-1)*e,i=Math.floor(r),o=Yt(jt(A,i).subarray(0,i+1));return o+(Ht(A.subarray(i+1))-o)*(r-i)}}function Jt(A,e,t=Xe){if(!isNaN(e=+e)){if(n=Float64Array.from(A,(e,n)=>Xe(t(A[n],n,A))),e<=0)return Vt(n);if(e>=1)return Nt(n);var n,r=Uint32Array.from(A,(A,e)=>e),i=n.length-1,o=Math.floor(i*e);return jt(r,o,0,i,(A,e)=>Ct(n[A],n[e])),(o=Wt(r.subarray(0,o+1),A=>n[A]))>=0?o:-1}}function Kt(A,e){let t=0,n=0;if(void 0===e)for(let e of A)null!=e&&(e=+e)>=e&&(++t,n+=e);else{let r=-1;for(let i of A)null!=(i=e(i,++r,A))&&(i=+i)>=i&&(++t,n+=i)}if(t)return n/t}function qt(A,e){return Zt(A,.5,e)}function $t(A){return Array.from(function*(A){for(const e of A)yield*e}(A))}function An(A,e){const t=new ht;if(void 0===e)for(let e of A)null!=e&&e>=e&&t.set(e,(t.get(e)||0)+1);else{let n=-1;for(let r of A)null!=(r=e(r,++n,A))&&r>=r&&t.set(r,(t.get(r)||0)+1)}let n,r=0;for(const[A,e]of t)e>r&&(r=e,n=A);return n}function en(A,e){return[A,e]}function tn(A,e=Ne){if(1===e.length)return Vt(A,e);let t,n=-1,r=-1;for(const i of A)++r,(n<0?0===e(i,i):e(i,t)<0)&&(t=i,n=r);return n}var nn=rn(Math.random);function rn(A){return function(e,t=0,n=e.length){let r=n-(t=+t);for(;r;){const n=A()*r--|0,i=e[r+t];e[r+t]=e[n+t],e[n+t]=i}return e}}function on(A,e){let t=0;if(void 0===e)for(let e of A)(e=+e)&&(t+=e);else{let n=-1;for(let r of A)(r=+e(r,++n,A))&&(t+=r)}return t}function an(A){if(!(r=A.length))return[];for(var e=-1,t=Ht(A,sn),n=new Array(t);++e<t;)for(var r,i=-1,o=n[e]=new Array(r);++i<r;)o[i]=A[i][e];return n}function sn(A){return A.length}function un(A){return A instanceof gt?A:new gt(A)}function fn(A,e){const t=A[Symbol.iterator](),n=new Set;for(const A of e){const e=ln(A);if(n.has(e))continue;let r,i;for(;({value:r,done:i}=t.next());){if(i)return!1;const A=ln(r);if(n.add(A),Object.is(e,A))break}}return!0}function ln(A){return null!==A&&"object"==typeof A?A.valueOf():A}var cn=Object.freeze({__proto__:null,bisect:qe,bisectRight:Ze,bisectLeft:Je,bisectCenter:Ke,ascending:Ne,bisector:Ve,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 n=rt(e),r=A.slice();return n(A,r,0,t,1),n(r,A,0,t,1),n(A,r,0,t,1),A},blur2:$e,blurImage:At,count:it,cross:function(...A){const e="function"==typeof A[A.length-1]&&function(A){return e=>A(...e)}(A.pop()),t=(A=A.map(st)).map(ot),n=A.length-1,r=new Array(n+1).fill(0),i=[];if(n<0||t.some(at))return i;for(;;){i.push(r.map((e,t)=>A[t][e]));let o=n;for(;++r[o]===t[o];){if(0===o)return e?i.map(e):i;r[o--]=0}}},cumsum:function(A,e){var t=0,n=0;return Float64Array.from(A,void 0===e?A=>t+=+A||0:r=>t+=+e(r,n++,A)||0)},descending:He,deviation:ft,extent:lt,Adder:ct,fsum:function(A,e){const t=new ct;if(void 0===e)for(let e of A)(e=+e)&&t.add(e);else{let n=-1;for(let r of A)(r=+e(r,++n,A))&&t.add(r)}return+t},fcumsum:function(A,e){const t=new ct;let n=-1;return Float64Array.from(A,void 0===e?A=>t.add(+A||0):r=>t.add(+e(r,++n,A)||0))},group:bt,flatGroup:function(A,...e){return Bt(yt(A,...e),e)},flatRollup:function(A,e,...t){return Bt(Mt(A,e,...t),t)},groups:yt,index:function(A,...e){return _t(A,mt,kt,e)},indexes:function(A,...e){return _t(A,Array.from,kt,e)},rollup:Et,rollups:Mt,groupSort:function(A,e,t){return(2!==e.length?Qt(Et(A,e,t),([A,e],[t,n])=>Ne(e,n)||Ne(A,t)):Qt(bt(A,t),([A,t],[n,r])=>e(t,r)||Ne(A,n))).map(([A])=>A)},bin:zt,histogram:zt,thresholdFreedmanDiaconis:function(A,e,t){const n=it(A),r=Zt(A,.75)-Zt(A,.25);return n&&r?Math.ceil((t-e)/(2*r*Math.pow(n,-1/3))):1},thresholdScott:function(A,e,t){const n=it(A),r=ft(A);return n&&r?Math.ceil((t-e)*Math.cbrt(n)/(3.49*r)):1},thresholdSturges:Ot,max:Yt,maxIndex:Nt,mean:Kt,median:qt,medianIndex:function(A,e){return Jt(A,.5,e)},merge:$t,min:Ht,minIndex:Vt,mode:An,nice:Ut,pairs:function(A,e=en){const t=[];let n,r=!1;for(const i of A)r&&t.push(e(n,i)),n=i,r=!0;return t},permute:xt,quantile:Zt,quantileIndex:Jt,quantileSorted:function(A,e,t=Xe){if((n=A.length)&&!isNaN(e=+e)){if(e<=0||n<2)return+t(A[0],0,A);if(e>=1)return+t(A[n-1],n-1,A);var n,r=(n-1)*e,i=Math.floor(r),o=+t(A[i],i,A);return o+(+t(A[i+1],i+1,A)-o)*(r-i)}},quickselect:jt,range:function(A,e,t){A=+A,e=+e,t=(r=arguments.length)<2?(e=A,A=0,1):r<3?1:+t;for(var n=-1,r=0|Math.max(0,Math.ceil((e-A)/t)),i=new Array(r);++n<r;)i[n]=A+n*t;return i},rank:function(A,e=Ne){if("function"!=typeof A[Symbol.iterator])throw new TypeError("values is not iterable");let t=Array.from(A);const n=new Float64Array(t.length);2!==e.length&&(t=t.map(e),e=Ne);const r=(A,n)=>e(t[A],t[n]);let i,o;return A=Uint32Array.from(t,(A,e)=>e),A.sort(e===Ne?(A,e)=>Ct(t[A],t[e]):Dt(r)),A.forEach((A,e)=>{const t=r(A,void 0===i?A:i);t>=0?((void 0===i||t>0)&&(i=A,o=e),n[A]=o):n[A]=NaN}),n},least:function(A,e=Ne){let t,n=!1;if(1===e.length){let r;for(const i of A){const A=e(i);(n?Ne(A,r)<0:0===Ne(A,A))&&(t=i,r=A,n=!0)}}else for(const r of A)(n?e(r,t)<0:0===e(r,r))&&(t=r,n=!0);return t},leastIndex:tn,greatest:Wt,greatestIndex:function(A,e=Ne){if(1===e.length)return Nt(A,e);let t,n=-1,r=-1;for(const i of A)++r,(n<0?0===e(i,i):e(i,t)>0)&&(t=i,n=r);return n},scan:function(A,e){const t=tn(A,e);return t<0?void 0:t},shuffle:nn,shuffler:rn,sum:on,ticks:Gt,tickIncrement:Rt,tickStep:function(A,e,t){t=+t;const n=(e=+e)<(A=+A),r=n?Rt(e,A,t):Rt(A,e,t);return(n?-1:1)*(r<0?1/-r:r)},transpose:an,variance:ut,zip:function(){return an(arguments)},every:function(A,e){if("function"!=typeof e)throw new TypeError("test is not a function");let t=-1;for(const n of A)if(!e(n,++t,A))return!1;return!0},some:function(A,e){if("function"!=typeof e)throw new TypeError("test is not a function");let t=-1;for(const n of A)if(e(n,++t,A))return!0;return!1},filter:function(A,e){if("function"!=typeof e)throw new TypeError("test is not a function");const t=[];let n=-1;for(const r of A)e(r,++n,A)&&t.push(r);return t},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,n)=>e(t,n,A))},reduce:function(A,e,t){if("function"!=typeof e)throw new TypeError("reducer is not a function");const n=A[Symbol.iterator]();let r,i,o=-1;if(arguments.length<3){if(({done:r,value:t}=n.next()),r)return;++o}for(;({done:r,value:i}=n.next()),!r;)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()},sort:Qt,difference:function(A,...e){A=new gt(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](),n=new gt;for(const e of A){if(n.has(e))return!1;let A,r;for(;({value:A,done:r}=t.next())&&!r;){if(Object.is(e,A))return!1;n.add(A)}}return!0},intersection:function(A,...e){A=new gt(A),e=e.map(un);A:for(const t of A)for(const n of e)if(!n.has(t)){A.delete(t);continue A}return A},subset:function(A,e){return fn(e,A)},superset:fn,union:function(...A){const e=new gt;for(const t of A)for(const A of t)e.add(A);return e},InternMap:ht,InternSet:gt}),hn=1e-6,gn=1e-12,dn=Math.PI,pn=dn/2,wn=dn/4,vn=2*dn,mn=180/dn,bn=dn/180,yn=Math.abs,Bn=Math.atan,En=Math.atan2,Mn=Math.cos,kn=Math.hypot,_n=Math.sin,xn=Math.sign||function(A){return A>0?1:A<0?-1:0},Qn=Math.sqrt;function Dn(A){return A>1?0:A<-1?dn:Math.acos(A)}function Cn(A){return A>1?pn:A<-1?-pn:Math.asin(A)}function Sn(){}function In(A,e){A&&Fn.hasOwnProperty(A.type)&&Fn[A.type](A,e)}var Pn={Feature:function(A,e){In(A.geometry,e)},FeatureCollection:function(A,e){for(var t=A.features,n=-1,r=t.length;++n<r;)In(t[n].geometry,e)}},Fn={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,n=-1,r=t.length;++n<r;)A=t[n],e.point(A[0],A[1],A[2])},LineString:function(A,e){Tn(A.coordinates,e,0)},MultiLineString:function(A,e){for(var t=A.coordinates,n=-1,r=t.length;++n<r;)Tn(t[n],e,0)},Polygon:function(A,e){Ln(A.coordinates,e)},MultiPolygon:function(A,e){for(var t=A.coordinates,n=-1,r=t.length;++n<r;)Ln(t[n],e)},GeometryCollection:function(A,e){for(var t=A.geometries,n=-1,r=t.length;++n<r;)In(t[n],e)}};function Tn(A,e,t){var n,r=-1,i=A.length-t;for(e.lineStart();++r<i;)n=A[r],e.point(n[0],n[1],n[2]);e.lineEnd()}function Ln(A,e){var t=-1,n=A.length;for(e.polygonStart();++t<n;)Tn(A[t],e,1);e.polygonEnd()}function Gn(A,e){A&&Pn.hasOwnProperty(A.type)?Pn[A.type](A,e):In(A,e)}var Rn,Un,On,zn,Yn,Nn,Hn,Vn,jn,Xn,Wn,Zn,Jn,Kn,qn,$n,Ar=new ct,er=new ct,tr={point:Sn,lineStart:Sn,lineEnd:Sn,polygonStart:function(){Ar=new ct,tr.lineStart=nr,tr.lineEnd=rr},polygonEnd:function(){var A=+Ar;er.add(A<0?vn+A:A),this.lineStart=this.lineEnd=this.point=Sn},sphere:function(){er.add(vn)}};function nr(){tr.point=ir}function rr(){or(Rn,Un)}function ir(A,e){tr.point=or,Rn=A,Un=e,On=A*=bn,zn=Mn(e=(e*=bn)/2+wn),Yn=_n(e)}function or(A,e){var t=(A*=bn)-On,n=t>=0?1:-1,r=n*t,i=Mn(e=(e*=bn)/2+wn),o=_n(e),a=Yn*o,s=zn*i+a*Mn(r),u=a*n*_n(r);Ar.add(En(u,s)),On=A,zn=i,Yn=o}function ar(A){return er=new ct,Gn(A,tr),2*er}function sr(A){return[En(A[1],A[0]),Cn(A[2])]}function ur(A){var e=A[0],t=A[1],n=Mn(t);return[n*Mn(e),n*_n(e),_n(t)]}function fr(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]}function lr(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 cr(A,e){A[0]+=e[0],A[1]+=e[1],A[2]+=e[2]}function hr(A,e){return[A[0]*e,A[1]*e,A[2]*e]}function gr(A){var e=Qn(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);A[0]/=e,A[1]/=e,A[2]/=e}var dr,pr,wr,vr,mr,br,yr,Br,Er,Mr,kr,_r,xr,Qr,Dr,Cr,Sr={point:Ir,lineStart:Fr,lineEnd:Tr,polygonStart:function(){Sr.point=Lr,Sr.lineStart=Gr,Sr.lineEnd=Rr,Kn=new ct,tr.polygonStart()},polygonEnd:function(){tr.polygonEnd(),Sr.point=Ir,Sr.lineStart=Fr,Sr.lineEnd=Tr,Ar<0?(Nn=-(Vn=180),Hn=-(jn=90)):Kn>hn?jn=90:Kn<-1e-6&&(Hn=-90),$n[0]=Nn,$n[1]=Vn},sphere:function(){Nn=-(Vn=180),Hn=-(jn=90)}};function Ir(A,e){qn.push($n=[Nn=A,Vn=A]),e<Hn&&(Hn=e),e>jn&&(jn=e)}function Pr(A,e){var t=ur([A*bn,e*bn]);if(Jn){var n=lr(Jn,t),r=lr([n[1],-n[0],0],n);gr(r),r=sr(r);var i,o=A-Xn,a=o>0?1:-1,s=r[0]*mn*a,u=yn(o)>180;u^(a*Xn<s&&s<a*A)?(i=r[1]*mn)>jn&&(jn=i):u^(a*Xn<(s=(s+360)%360-180)&&s<a*A)?(i=-r[1]*mn)<Hn&&(Hn=i):(e<Hn&&(Hn=e),e>jn&&(jn=e)),u?A<Xn?Ur(Nn,A)>Ur(Nn,Vn)&&(Vn=A):Ur(A,Vn)>Ur(Nn,Vn)&&(Nn=A):Vn>=Nn?(A<Nn&&(Nn=A),A>Vn&&(Vn=A)):A>Xn?Ur(Nn,A)>Ur(Nn,Vn)&&(Vn=A):Ur(A,Vn)>Ur(Nn,Vn)&&(Nn=A)}else qn.push($n=[Nn=A,Vn=A]);e<Hn&&(Hn=e),e>jn&&(jn=e),Jn=t,Xn=A}function Fr(){Sr.point=Pr}function Tr(){$n[0]=Nn,$n[1]=Vn,Sr.point=Ir,Jn=null}function Lr(A,e){if(Jn){var t=A-Xn;Kn.add(yn(t)>180?t+(t>0?360:-360):t)}else Wn=A,Zn=e;tr.point(A,e),Pr(A,e)}function Gr(){tr.lineStart()}function Rr(){Lr(Wn,Zn),tr.lineEnd(),yn(Kn)>hn&&(Nn=-(Vn=180)),$n[0]=Nn,$n[1]=Vn,Jn=null}function Ur(A,e){return(e-=A)<0?e+360:e}function Or(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 Yr={sphere:Sn,point:Nr,lineStart:Vr,lineEnd:Wr,polygonStart:function(){Yr.lineStart=Zr,Yr.lineEnd=Jr},polygonEnd:function(){Yr.lineStart=Vr,Yr.lineEnd=Wr}};function Nr(A,e){A*=bn;var t=Mn(e*=bn);Hr(t*Mn(A),t*_n(A),_n(e))}function Hr(A,e,t){++dr,wr+=(A-wr)/dr,vr+=(e-vr)/dr,mr+=(t-mr)/dr}function Vr(){Yr.point=jr}function jr(A,e){A*=bn;var t=Mn(e*=bn);Qr=t*Mn(A),Dr=t*_n(A),Cr=_n(e),Yr.point=Xr,Hr(Qr,Dr,Cr)}function Xr(A,e){A*=bn;var t=Mn(e*=bn),n=t*Mn(A),r=t*_n(A),i=_n(e),o=En(Qn((o=Dr*i-Cr*r)*o+(o=Cr*n-Qr*i)*o+(o=Qr*r-Dr*n)*o),Qr*n+Dr*r+Cr*i);pr+=o,br+=o*(Qr+(Qr=n)),yr+=o*(Dr+(Dr=r)),Br+=o*(Cr+(Cr=i)),Hr(Qr,Dr,Cr)}function Wr(){Yr.point=Nr}function Zr(){Yr.point=Kr}function Jr(){qr(_r,xr),Yr.point=Nr}function Kr(A,e){_r=A,xr=e,A*=bn,e*=bn,Yr.point=qr;var t=Mn(e);Qr=t*Mn(A),Dr=t*_n(A),Cr=_n(e),Hr(Qr,Dr,Cr)}function qr(A,e){A*=bn;var t=Mn(e*=bn),n=t*Mn(A),r=t*_n(A),i=_n(e),o=Dr*i-Cr*r,a=Cr*n-Qr*i,s=Qr*r-Dr*n,u=kn(o,a,s),f=Cn(u),l=u&&-f/u;Er.add(l*o),Mr.add(l*a),kr.add(l*s),pr+=f,br+=f*(Qr+(Qr=n)),yr+=f*(Dr+(Dr=r)),Br+=f*(Cr+(Cr=i)),Hr(Qr,Dr,Cr)}function $r(A){dr=pr=wr=vr=mr=br=yr=Br=0,Er=new ct,Mr=new ct,kr=new ct,Gn(A,Yr);var e=+Er,t=+Mr,n=+kr,r=kn(e,t,n);return r<gn&&(e=br,t=yr,n=Br,pr<hn&&(e=wr,t=vr,n=mr),(r=kn(e,t,n))<gn)?[NaN,NaN]:[En(t,e)*mn,Cn(n/r)*mn]}function Ai(A,e){function t(t,n){return t=A(t,n),e(t[0],t[1])}return A.invert&&e.invert&&(t.invert=function(t,n){return(t=e.invert(t,n))&&A.invert(t[0],t[1])}),t}function ei(A,e){return yn(A)>dn&&(A-=Math.round(A/vn)*vn),[A,e]}function ti(A){return function(e,t){return yn(e+=A)>dn&&(e-=Math.round(e/vn)*vn),[e,t]}}function ni(A){var e=ti(A);return e.invert=ti(-A),e}function ri(A,e){var t=Mn(A),n=_n(A),r=Mn(e),i=_n(e);function o(A,e){var o=Mn(e),a=Mn(A)*o,s=_n(A)*o,u=_n(e),f=u*t+a*n;return[En(s*r-f*i,a*t-u*n),Cn(f*r+s*i)]}return o.invert=function(A,e){var o=Mn(e),a=Mn(A)*o,s=_n(A)*o,u=_n(e),f=u*r-s*i;return[En(s*r+u*i,a*t+f*n),Cn(f*t-a*n)]},o}function ii(A,e){(e=ur(e))[0]-=A,gr(e);var t=Dn(-e[1]);return((-e[2]<0?-t:t)+vn-hn)%vn}function oi(){var A,e=[];return{point:function(e,t,n){A.push([e,t,n])},lineStart:function(){e.push(A=[])},lineEnd:Sn,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var t=e;return e=[],A=null,t}}}function ai(A,e){return yn(A[0]-e[0])<hn&&yn(A[1]-e[1])<hn}function si(A,e,t,n){this.x=A,this.z=e,this.o=t,this.e=n,this.v=!1,this.n=this.p=null}function ui(A,e,t,n,r){var i,o,a=[],s=[];if(A.forEach(function(A){if(!((e=A.length-1)<=0)){var e,t,n=A[0],o=A[e];if(ai(n,o)){if(!n[2]&&!o[2]){for(r.lineStart(),i=0;i<e;++i)r.point((n=A[i])[0],n[1]);return void r.lineEnd()}o[0]+=2e-6}a.push(t=new si(n,A,null,!0)),s.push(t.o=new si(n,null,t,!1)),a.push(t=new si(o,A,null,!1)),s.push(t.o=new si(o,null,t,!0))}}),a.length){for(s.sort(e),fi(a),fi(s),i=0,o=s.length;i<o;++i)s[i].e=t=!t;for(var u,f,l=a[0];;){for(var c=l,h=!0;c.v;)if((c=c.n)===l)return;u=c.z,r.lineStart();do{if(c.v=c.o.v=!0,c.e){if(h)for(i=0,o=u.length;i<o;++i)r.point((f=u[i])[0],f[1]);else n(c.x,c.n.x,1,r);c=c.n}else{if(h)for(u=c.p.z,i=u.length-1;i>=0;--i)r.point((f=u[i])[0],f[1]);else n(c.x,c.p.x,-1,r);c=c.p}u=(c=c.o).z,h=!h}while(!c.v);r.lineEnd()}}}function fi(A){if(e=A.length){for(var e,t,n=0,r=A[0];++n<e;)r.n=t=A[n],t.p=r,r=t;r.n=t=A[0],t.p=r}}function li(A){return yn(A[0])<=dn?A[0]:xn(A[0])*((yn(A[0])+dn)%vn-dn)}function ci(A,e){var t=li(e),n=e[1],r=_n(n),i=[_n(t),-Mn(t),0],o=0,a=0,s=new ct;1===r?n=pn+hn:-1===r&&(n=-pn-hn);for(var u=0,f=A.length;u<f;++u)if(c=(l=A[u]).length)for(var l,c,h=l[c-1],g=li(h),d=h[1]/2+wn,p=_n(d),w=Mn(d),v=0;v<c;++v,g=b,p=B,w=E,h=m){var m=l[v],b=li(m),y=m[1]/2+wn,B=_n(y),E=Mn(y),M=b-g,k=M>=0?1:-1,_=k*M,x=_>dn,Q=p*B;if(s.add(En(Q*k*_n(_),w*E+Q*Mn(_))),o+=x?M+k*vn:M,x^g>=t^b>=t){var D=lr(ur(h),ur(m));gr(D);var C=lr(i,D);gr(C);var S=(x^M>=0?-1:1)*Cn(C[2]);(n>S||n===S&&(D[0]||D[1]))&&(a+=x^M>=0?1:-1)}}return(o<-1e-6||o<hn&&s<-1e-12)^1&a}function hi(A,e,t,n){return function(r){var i,o,a,s=e(r),u=oi(),f=e(u),l=!1,c={point:h,lineStart:d,lineEnd:p,polygonStart:function(){c.point=w,c.lineStart=v,c.lineEnd=m,o=[],i=[]},polygonEnd:function(){c.point=h,c.lineStart=d,c.lineEnd=p,o=$t(o);var A=ci(i,n);o.length?(l||(r.polygonStart(),l=!0),ui(o,di,A,t,r)):A&&(l||(r.polygonStart(),l=!0),r.lineStart(),t(null,null,1,r),r.lineEnd()),l&&(r.polygonEnd(),l=!1),o=i=null},sphere:function(){r.polygonStart(),r.lineStart(),t(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function h(e,t){A(e,t)&&r.point(e,t)}function g(A,e){s.point(A,e)}function d(){c.point=g,s.lineStart()}function p(){c.point=h,s.lineEnd()}function w(A,e){a.push([A,e]),f.point(A,e)}function v(){f.lineStart(),a=[]}function m(){w(a[0][0],a[0][1]),f.lineEnd();var A,e,t,n,s=f.clean(),c=u.result(),h=c.length;if(a.pop(),i.push(a),a=null,h)if(1&s){if((e=(t=c[0]).length-1)>0){for(l||(r.polygonStart(),l=!0),r.lineStart(),A=0;A<e;++A)r.point((n=t[A])[0],n[1]);r.lineEnd()}}else h>1&&2&s&&c.push(c.pop().concat(c.shift())),o.push(c.filter(gi))}return c}}function gi(A){return A.length>1}function di(A,e){return((A=A.x)[0]<0?A[1]-pn-hn:pn-A[1])-((e=e.x)[0]<0?e[1]-pn-hn:pn-e[1])}ei.invert=ei;var pi=hi(function(){return!0},function(A){var e,t=NaN,n=NaN,r=NaN;return{lineStart:function(){A.lineStart(),e=1},point:function(i,o){var a=i>0?dn:-dn,s=yn(i-t);yn(s-dn)<hn?(A.point(t,n=(n+o)/2>0?pn:-pn),A.point(r,n),A.lineEnd(),A.lineStart(),A.point(a,n),A.point(i,n),e=0):r!==a&&s>=dn&&(yn(t-r)<hn&&(t-=r*hn),yn(i-a)<hn&&(i-=a*hn),n=function(A,e,t,n){var r,i,o=_n(A-t);return yn(o)>hn?Bn((_n(e)*(i=Mn(n))*_n(t)-_n(n)*(r=Mn(e))*_n(A))/(r*i*o)):(e+n)/2}(t,n,i,o),A.point(r,n),A.lineEnd(),A.lineStart(),A.point(a,n),e=0),A.point(t=i,n=o),r=a},lineEnd:function(){A.lineEnd(),t=n=NaN},clean:function(){return 2-e}}},function(A,e,t,n){var r;if(null==A)r=t*pn,n.point(-dn,r),n.point(0,r),n.point(dn,r),n.point(dn,0),n.point(dn,-r),n.point(0,-r),n.point(-dn,-r),n.point(-dn,0),n.point(-dn,r);else if(yn(A[0]-e[0])>hn){var i=A[0]<e[0]?dn:-dn;r=t*i/2,n.point(-i,r),n.point(0,r),n.point(i,r)}else n.point(e[0],e[1])},[-dn,-pn]);function wi(A){var e=Mn(A),t=2*bn,n=e>0,r=yn(e)>hn;function i(A,t){return Mn(A)*Mn(t)>e}function o(A,t,n){var r=[1,0,0],i=lr(ur(A),ur(t)),o=fr(i,i),a=i[0],s=o-a*a;if(!s)return!n&&A;var u=e*o/s,f=-e*a/s,l=lr(r,i),c=hr(r,u);cr(c,hr(i,f));var h=l,g=fr(c,h),d=fr(h,h),p=g*g-d*(fr(c,c)-1);if(!(p<0)){var w=Qn(p),v=hr(h,(-g-w)/d);if(cr(v,c),v=sr(v),!n)return v;var m,b=A[0],y=t[0],B=A[1],E=t[1];y<b&&(m=b,b=y,y=m);var M=y-b,k=yn(M-dn)<hn;if(!k&&E<B&&(m=B,B=E,E=m),k||M<hn?k?B+E>0^v[1]<(yn(v[0]-b)<hn?B:E):B<=v[1]&&v[1]<=E:M>dn^(b<=v[0]&&v[0]<=y)){var _=hr(h,(-g+w)/d);return cr(_,c),[v,sr(_)]}}}function a(e,t){var r=n?A:dn-A,i=0;return e<-r?i|=1:e>r&&(i|=2),t<-r?i|=4:t>r&&(i|=8),i}return hi(i,function(A){var e,t,s,u,f;return{lineStart:function(){u=s=!1,f=1},point:function(l,c){var h,g=[l,c],d=i(l,c),p=n?d?0:a(l,c):d?a(l+(l<0?dn:-dn),c):0;if(!e&&(u=s=d)&&A.lineStart(),d!==s&&(!(h=o(e,g))||ai(e,h)||ai(g,h))&&(g[2]=1),d!==s)f=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(r&&e&&n^d){var w;p&t||!(w=o(g,e,!0))||(f=0,n?(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&&ai(e,g)||A.point(g[0],g[1]),e=g,s=d,t=p},lineEnd:function(){s&&A.lineEnd(),e=null},clean:function(){return f|(u&&s)<<1}}},function(e,n,r,i){!function(A,e,t,n,r,i){if(t){var o=Mn(e),a=_n(e),s=n*t;null==r?(r=e+n*vn,i=e-s/2):(r=ii(o,r),i=ii(o,i),(n>0?r<i:r>i)&&(r+=n*vn));for(var u,f=r;n>0?f>i:f<i;f-=s)u=sr([o,-a*Mn(f),-a*_n(f)]),A.point(u[0],u[1])}}(i,A,t,r,e,n)},n?[0,-A]:[-dn,A-dn])}var vi,mi,bi,yi,Bi=1e9,Ei=-Bi;function Mi(A,e,t,n){function r(r,i){return A<=r&&r<=t&&e<=i&&i<=n}function i(r,i,a,u){var f=0,l=0;if(null==r||(f=o(r,a))!==(l=o(i,a))||s(r,i)<0^a>0)do{u.point(0===f||3===f?A:t,f>1?n:e)}while((f=(f+a+4)%4)!==l);else u.point(i[0],i[1])}function o(n,r){return yn(n[0]-A)<hn?r>0?0:3:yn(n[0]-t)<hn?r>0?2:1:yn(n[1]-e)<hn?r>0?1:0:r>0?3:2}function a(A,e){return s(A.x,e.x)}function s(A,e){var t=o(A,1),n=o(e,1);return t!==n?t-n: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 s,u,f,l,c,h,g,d,p,w,v,m=o,b=oi(),y={point:B,lineStart:function(){y.point=E,u&&u.push(f=[]),w=!0,p=!1,g=d=NaN},lineEnd:function(){s&&(E(l,c),h&&p&&b.rejoin(),s.push(b.result())),y.point=B,p&&m.lineEnd()},polygonStart:function(){m=b,s=[],u=[],v=!0},polygonEnd:function(){var e=function(){for(var e=0,t=0,r=u.length;t<r;++t)for(var i,o,a=u[t],s=1,f=a.length,l=a[0],c=l[0],h=l[1];s<f;++s)i=c,o=h,c=(l=a[s])[0],h=l[1],o<=n?h>n&&(c-i)*(n-o)>(h-o)*(A-i)&&++e:h<=n&&(c-i)*(n-o)<(h-o)*(A-i)&&--e;return e}(),t=v&&e,r=(s=$t(s)).length;(t||r)&&(o.polygonStart(),t&&(o.lineStart(),i(null,null,1,o),o.lineEnd()),r&&ui(s,a,e,i,o),o.polygonEnd()),m=o,s=u=f=null}};function B(A,e){r(A,e)&&m.point(A,e)}function E(i,o){var a=r(i,o);if(u&&f.push([i,o]),w)l=i,c=o,h=a,w=!1,a&&(m.lineStart(),m.point(i,o));else if(a&&p)m.point(i,o);else{var s=[g=Math.max(Ei,Math.min(Bi,g)),d=Math.max(Ei,Math.min(Bi,d))],b=[i=Math.max(Ei,Math.min(Bi,i)),o=Math.max(Ei,Math.min(Bi,o))];!function(A,e,t,n,r,i){var o,a=A[0],s=A[1],u=0,f=1,l=e[0]-a,c=e[1]-s;if(o=t-a,l||!(o>0)){if(o/=l,l<0){if(o<u)return;o<f&&(f=o)}else if(l>0){if(o>f)return;o>u&&(u=o)}if(o=r-a,l||!(o<0)){if(o/=l,l<0){if(o>f)return;o>u&&(u=o)}else if(l>0){if(o<u)return;o<f&&(f=o)}if(o=n-s,c||!(o>0)){if(o/=c,c<0){if(o<u)return;o<f&&(f=o)}else if(c>0){if(o>f)return;o>u&&(u=o)}if(o=i-s,c||!(o<0)){if(o/=c,c<0){if(o>f)return;o>u&&(u=o)}else if(c>0){if(o<u)return;o<f&&(f=o)}return u>0&&(A[0]=a+u*l,A[1]=s+u*c),f<1&&(e[0]=a+f*l,e[1]=s+f*c),!0}}}}}(s,b,A,e,t,n)?a&&(m.lineStart(),m.point(i,o),v=!1):(p||(m.lineStart(),m.point(s[0],s[1])),m.point(b[0],b[1]),a||m.lineEnd(),v=!1)}g=i,d=o,p=a}return y}}var ki={sphere:Sn,point:Sn,lineStart:function(){ki.point=xi,ki.lineEnd=_i},lineEnd:Sn,polygonStart:Sn,polygonEnd:Sn};function _i(){ki.point=ki.lineEnd=Sn}function xi(A,e){mi=A*=bn,bi=_n(e*=bn),yi=Mn(e),ki.point=Qi}function Qi(A,e){A*=bn;var t=_n(e*=bn),n=Mn(e),r=yn(A-mi),i=Mn(r),o=n*_n(r),a=yi*t-bi*n*i,s=bi*t+yi*n*i;vi.add(En(Qn(o*o+a*a),s)),mi=A,bi=t,yi=n}var Di=[null,null],Ci={type:"LineString",coordinates:Di};function Si(A,e){return Di[0]=A,Di[1]=e,function(A){return vi=new ct,Gn(A,ki),+vi}(Ci)}var Ii={Feature:function(A,e){return Fi(A.geometry,e)},FeatureCollection:function(A,e){for(var t=A.features,n=-1,r=t.length;++n<r;)if(Fi(t[n].geometry,e))return!0;return!1}},Pi={Sphere:function(){return!0},Point:function(A,e){return Ti(A.coordinates,e)},MultiPoint:function(A,e){for(var t=A.coordinates,n=-1,r=t.length;++n<r;)if(Ti(t[n],e))return!0;return!1},LineString:function(A,e){return Li(A.coordinates,e)},MultiLineString:function(A,e){for(var t=A.coordinates,n=-1,r=t.length;++n<r;)if(Li(t[n],e))return!0;return!1},Polygon:function(A,e){return Gi(A.coordinates,e)},MultiPolygon:function(A,e){for(var t=A.coordinates,n=-1,r=t.length;++n<r;)if(Gi(t[n],e))return!0;return!1},GeometryCollection:function(A,e){for(var t=A.geometries,n=-1,r=t.length;++n<r;)if(Fi(t[n],e))return!0;return!1}};function Fi(A,e){return!(!A||!Pi.hasOwnProperty(A.type))&&Pi[A.type](A,e)}function Ti(A,e){return 0===Si(A,e)}function Li(A,e){for(var t,n,r,i=0,o=A.length;i<o;i++){if(0===(n=Si(A[i],e)))return!0;if(i>0&&(r=Si(A[i],A[i-1]))>0&&t<=r&&n<=r&&(t+n-r)*(1-Math.pow((t-n)/r,2))<gn*r)return!0;t=n}return!1}function Gi(A,e){return!!ci(A.map(Ri),Ui(e))}function Ri(A){return(A=A.map(Ui)).pop(),A}function Ui(A){return[A[0]*bn,A[1]*bn]}function Oi(A,e){return(A&&Ii.hasOwnProperty(A.type)?Ii[A.type]:Fi)(A,e)}var zi,Yi,Ni,Hi,Vi=A=>A,ji=new ct,Xi=new ct,Wi={point:Sn,lineStart:Sn,lineEnd:Sn,polygonStart:function(){Wi.lineStart=Zi,Wi.lineEnd=qi},polygonEnd:function(){Wi.lineStart=Wi.lineEnd=Wi.point=Sn,ji.add(yn(Xi)),Xi=new ct},result:function(){var A=ji/2;return ji=new ct,A}};function Zi(){Wi.point=Ji}function Ji(A,e){Wi.point=Ki,zi=Ni=A,Yi=Hi=e}function Ki(A,e){Xi.add(Hi*A-Ni*e),Ni=A,Hi=e}function qi(){Ki(zi,Yi)}var $i=Wi,Ao=1/0,eo=Ao,to=-Ao,no=to,ro={point:function(A,e){A<Ao&&(Ao=A),A>to&&(to=A),e<eo&&(eo=e),e>no&&(no=e)},lineStart:Sn,lineEnd:Sn,polygonStart:Sn,polygonEnd:Sn,result:function(){var A=[[Ao,eo],[to,no]];return to=no=-(eo=Ao=1/0),A}};var io,oo,ao,so,uo=ro,fo=0,lo=0,co=0,ho=0,go=0,po=0,wo=0,vo=0,mo=0,bo={point:yo,lineStart:Bo,lineEnd:ko,polygonStart:function(){bo.lineStart=_o,bo.lineEnd=xo},polygonEnd:function(){bo.point=yo,bo.lineStart=Bo,bo.lineEnd=ko},result:function(){var A=mo?[wo/mo,vo/mo]:po?[ho/po,go/po]:co?[fo/co,lo/co]:[NaN,NaN];return fo=lo=co=ho=go=po=wo=vo=mo=0,A}};function yo(A,e){fo+=A,lo+=e,++co}function Bo(){bo.point=Eo}function Eo(A,e){bo.point=Mo,yo(ao=A,so=e)}function Mo(A,e){var t=A-ao,n=e-so,r=Qn(t*t+n*n);ho+=r*(ao+A)/2,go+=r*(so+e)/2,po+=r,yo(ao=A,so=e)}function ko(){bo.point=yo}function _o(){bo.point=Qo}function xo(){Do(io,oo)}function Qo(A,e){bo.point=Do,yo(io=ao=A,oo=so=e)}function Do(A,e){var t=A-ao,n=e-so,r=Qn(t*t+n*n);ho+=r*(ao+A)/2,go+=r*(so+e)/2,po+=r,wo+=(r=so*A-ao*e)*(ao+A),vo+=r*(so+e),mo+=3*r,yo(ao=A,so=e)}var Co=bo;function So(A){this._context=A}So.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,vn)}},result:Sn};var Io,Po,Fo,To,Lo,Go=new ct,Ro={point:Sn,lineStart:function(){Ro.point=Uo},lineEnd:function(){Io&&Oo(Po,Fo),Ro.point=Sn},polygonStart:function(){Io=!0},polygonEnd:function(){Io=null},result:function(){var A=+Go;return Go=new ct,A}};function Uo(A,e){Ro.point=Oo,Po=To=A,Fo=Lo=e}function Oo(A,e){To-=A,Lo-=e,Go.add(Qn(To*To+Lo*Lo)),To=A,Lo=e}var zo=Ro;let Yo,No,Ho,Vo,jo=class{constructor(A){this._append=null==A?Xo:function(A){const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);if(e>15)return Xo;if(e!==Yo){const A=10**e;Yo=e,No=function(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=Math.round(arguments[t]*A)/A+e[t]}}return No}(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!==Ho||this._append!==No){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`,Ho=A,No=this._append,Vo=this._,this._=e}this._+=Vo}}result(){const A=this._;return this._="",A.length?A:null}};function Xo(A){let e=1;this._+=A[0];for(const t=A.length;e<t;++e)this._+=arguments[e]+A[e]}function Wo(A){return function(e){var t=new Zo;for(var n in A)t[n]=A[n];return t.stream=e,t}}function Zo(){}function Jo(A,e,t){var n=A.clipExtent&&A.clipExtent();return A.scale(150).translate([0,0]),null!=n&&A.clipExtent(null),Gn(t,A.stream(uo)),e(uo.result()),null!=n&&A.clipExtent(n),A}function Ko(A,e,t){return Jo(A,function(t){var n=e[1][0]-e[0][0],r=e[1][1]-e[0][1],i=Math.min(n/(t[1][0]-t[0][0]),r/(t[1][1]-t[0][1])),o=+e[0][0]+(n-i*(t[1][0]+t[0][0]))/2,a=+e[0][1]+(r-i*(t[1][1]+t[0][1]))/2;A.scale(150*i).translate([o,a])},t)}function qo(A,e,t){return Ko(A,[[0,0],e],t)}function $o(A,e,t){return Jo(A,function(t){var n=+e,r=n/(t[1][0]-t[0][0]),i=(n-r*(t[1][0]+t[0][0]))/2,o=-r*t[0][1];A.scale(150*r).translate([i,o])},t)}function Aa(A,e,t){return Jo(A,function(t){var n=+e,r=n/(t[1][1]-t[0][1]),i=-r*t[0][0],o=(n-r*(t[1][1]+t[0][1]))/2;A.scale(150*r).translate([i,o])},t)}Zo.prototype={constructor:Zo,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 ea=Mn(30*bn);function ta(A,e){return+e?function(A,e){function t(n,r,i,o,a,s,u,f,l,c,h,g,d,p){var w=u-n,v=f-r,m=w*w+v*v;if(m>4*e&&d--){var b=o+c,y=a+h,B=s+g,E=Qn(b*b+y*y+B*B),M=Cn(B/=E),k=yn(yn(B)-1)<hn||yn(i-l)<hn?(i+l)/2:En(y,b),_=A(k,M),x=_[0],Q=_[1],D=x-n,C=Q-r,S=v*D-w*C;(S*S/m>e||yn((w*D+v*C)/m-.5)>.3||o*c+a*h+s*g<ea)&&(t(n,r,i,o,a,s,x,Q,k,b/=E,y/=E,B,d,p),p.point(x,Q),t(x,Q,k,b,y,B,u,f,l,c,h,g,d,p))}}return function(e){var n,r,i,o,a,s,u,f,l,c,h,g,d={point:p,lineStart:w,lineEnd:m,polygonStart:function(){e.polygonStart(),d.lineStart=b},polygonEnd:function(){e.polygonEnd(),d.lineStart=w}};function p(t,n){t=A(t,n),e.point(t[0],t[1])}function w(){f=NaN,d.point=v,e.lineStart()}function v(n,r){var i=ur([n,r]),o=A(n,r);t(f,l,u,c,h,g,f=o[0],l=o[1],u=n,c=i[0],h=i[1],g=i[2],16,e),e.point(f,l)}function m(){d.point=p,e.lineEnd()}function b(){w(),d.point=y,d.lineEnd=B}function y(A,e){v(n=A,e),r=f,i=l,o=c,a=h,s=g,d.point=v}function B(){t(f,l,u,c,h,g,r,i,n,o,a,s,16,e),d.lineEnd=m,m()}return d}}(A,e):function(A){return Wo({point:function(e,t){e=A(e,t),this.stream.point(e[0],e[1])}})}(A)}var na=Wo({point:function(A,e){this.stream.point(A*bn,e*bn)}});function ra(A,e,t,n,r,i){if(!i)return function(A,e,t,n,r){function i(i,o){return[e+A*(i*=n),t-A*(o*=r)]}return i.invert=function(i,o){return[(i-e)/A*n,(t-o)/A*r]},i}(A,e,t,n,r);var o=Mn(i),a=_n(i),s=o*A,u=a*A,f=o/A,l=a/A,c=(a*t-o*e)/A,h=(a*e+o*t)/A;function g(A,i){return[s*(A*=n)-u*(i*=r)+e,t-u*A-s*i]}return g.invert=function(A,e){return[n*(f*A-l*e+c),r*(h-l*A-f*e)]},g}function ia(A){return function(A){var e,t,n,r,i,o,a,s,u,f,l=150,c=480,h=250,g=0,d=0,p=0,w=0,v=0,m=0,b=1,y=1,B=null,E=pi,M=null,k=Vi,_=.5;function x(A){return s(A[0]*bn,A[1]*bn)}function Q(A){return(A=s.invert(A[0],A[1]))&&[A[0]*mn,A[1]*mn]}function D(){var A=ra(l,0,0,b,y,m).apply(null,e(g,d)),n=ra(l,c-A[0],h-A[1],b,y,m);return t=function(A,e,t){return(A%=vn)?e||t?Ai(ni(A),ri(e,t)):ni(A):e||t?ri(e,t):ei}(p,w,v),a=Ai(e,n),s=Ai(t,a),o=ta(a,_),C()}function C(){return u=f=null,x}return x.stream=function(A){return u&&f===A?u:u=na(function(A){return Wo({point:function(e,t){var n=A(e,t);return this.stream.point(n[0],n[1])}})}(t)(E(o(k(f=A)))))},x.preclip=function(A){return arguments.length?(E=A,B=void 0,C()):E},x.postclip=function(A){return arguments.length?(k=A,M=n=r=i=null,C()):k},x.clipAngle=function(A){return arguments.length?(E=+A?wi(B=A*bn):(B=null,pi),C()):B*mn},x.clipExtent=function(A){return arguments.length?(k=null==A?(M=n=r=i=null,Vi):Mi(M=+A[0][0],n=+A[0][1],r=+A[1][0],i=+A[1][1]),C()):null==M?null:[[M,n],[r,i]]},x.scale=function(A){return arguments.length?(l=+A,D()):l},x.translate=function(A){return arguments.length?(c=+A[0],h=+A[1],D()):[c,h]},x.center=function(A){return arguments.length?(g=A[0]%360*bn,d=A[1]%360*bn,D()):[g*mn,d*mn]},x.rotate=function(A){return arguments.length?(p=A[0]%360*bn,w=A[1]%360*bn,v=A.length>2?A[2]%360*bn:0,D()):[p*mn,w*mn,v*mn]},x.angle=function(A){return arguments.length?(m=A%360*bn,D()):m*mn},x.reflectX=function(A){return arguments.length?(b=A?-1:1,D()):b<0},x.reflectY=function(A){return arguments.length?(y=A?-1:1,D()):y<0},x.precision=function(A){return arguments.length?(o=ta(a,_=A*A),C()):Qn(_)},x.fitExtent=function(A,e){return Ko(x,A,e)},x.fitSize=function(A,e){return qo(x,A,e)},x.fitWidth=function(A,e){return $o(x,A,e)},x.fitHeight=function(A,e){return Aa(x,A,e)},function(){return e=A.apply(this,arguments),x.invert=e.invert&&Q,D()}}(function(){return A})()}var oa,aa=(oa=function(A){return(A=Dn(A))&&A/_n(A)},function(A,e){var t=Mn(A),n=Mn(e),r=oa(t*n);return r===1/0?[2,0]:[r*n*_n(A),r*_n(e)]});function sa(A,e){return[A,e]}aa.invert=function(A){return function(e,t){var n=Qn(e*e+t*t),r=A(n),i=_n(r),o=Mn(r);return[En(e*i,n*o),Cn(n&&t*i/n)]}}(function(A){return A}),sa.invert=sa;var ua=Object.prototype.hasOwnProperty;function fa(A,e,t,n,r,i){3===arguments.length&&(n=i=Array,r=null);for(var o=new n(A=1<<Math.max(4,Math.ceil(Math.log(A)/Math.LN2))),a=new i(A),s=A-1,u=0;u<A;++u)o[u]=r;return{set:function(n,i){for(var u=e(n)&s,f=o[u],l=0;f!=r;){if(t(f,n))return a[u]=i;if(++l>=A)throw new Error("full hashmap");f=o[u=u+1&s]}return o[u]=n,a[u]=i,i},maybeSet:function(n,i){for(var u=e(n)&s,f=o[u],l=0;f!=r;){if(t(f,n))return a[u];if(++l>=A)throw new Error("full hashmap");f=o[u=u+1&s]}return o[u]=n,a[u]=i,i},get:function(n,i){for(var u=e(n)&s,f=o[u],l=0;f!=r;){if(t(f,n))return a[u];if(++l>=A)break;f=o[u=u+1&s]}return i},keys:function(){for(var A=[],e=0,t=o.length;e<t;++e){var n=o[e];n!=r&&A.push(n)}return A}}}function la(A,e){return A[0]===e[0]&&A[1]===e[1]}var ca=new ArrayBuffer(16),ha=new Float64Array(ca),ga=new Uint32Array(ca);function da(A){ha[0]=A[0],ha[1]=A[1];var e=ga[0]^ga[1];return 2147483647&(e<<5^e>>7^ga[2]^ga[3])}function pa(A){var e,t,n,r,i=A.coordinates,o=A.lines,a=A.rings,s=function(){for(var A=fa(1.4*i.length,y,B,Int32Array,-1,Int32Array),e=new Int32Array(i.length),t=0,n=i.length;t<n;++t)e[t]=A.maybeSet(t,t);return e}(),u=new Int32Array(i.length),f=new Int32Array(i.length),l=new Int32Array(i.length),c=new Int8Array(i.length),h=0;for(e=0,t=i.length;e<t;++e)u[e]=f[e]=l[e]=-1;for(e=0,t=o.length;e<t;++e){var g=o[e],d=g[0],p=g[1];for(n=s[d],r=s[++d],++h,c[n]=1;++d<=p;)b(e,n,n=r,r=s[d]);++h,c[r]=1}for(e=0,t=i.length;e<t;++e)u[e]=-1;for(e=0,t=a.length;e<t;++e){var w=a[e],v=w[0]+1,m=w[1];for(b(e,s[m-1],n=s[v-1],r=s[v]);++v<=m;)b(e,n,n=r,r=s[v])}function b(A,e,t,n){if(u[t]!==A){u[t]=A;var r=f[t];if(r>=0){var i=l[t];r===e&&i===n||r===n&&i===e||(++h,c[t]=1)}else f[t]=e,l[t]=n}}function y(A){return da(i[A])}function B(A,e){return la(i[A],i[e])}u=f=l=null;var E,M=function(A,e,t,n,r){3===arguments.length&&(n=Array,r=null);for(var i=new n(A=1<<Math.max(4,Math.ceil(Math.log(A)/Math.LN2))),o=A-1,a=0;a<A;++a)i[a]=r;return{add:function(n){for(var a=e(n)&o,s=i[a],u=0;s!=r;){if(t(s,n))return!0;if(++u>=A)throw new Error("full hashset");s=i[a=a+1&o]}return i[a]=n,!0},has:function(n){for(var a=e(n)&o,s=i[a],u=0;s!=r;){if(t(s,n))return!0;if(++u>=A)break;s=i[a=a+1&o]}return!1},values:function(){for(var A=[],e=0,t=i.length;e<t;++e){var n=i[e];n!=r&&A.push(n)}return A}}}(1.4*h,da,la);for(e=0,t=i.length;e<t;++e)c[E=s[e]]&&M.add(i[E]);return M}function wa(A,e,t,n){va(A,e,t),va(A,e,e+n),va(A,e+n,t)}function va(A,e,t){for(var n,r=e+(t---e>>1);e<r;++e,--t)n=A[e],A[e]=A[t],A[t]=n}function ma(A){return null==A?{type:null}:("FeatureCollection"===A.type?ba:"Feature"===A.type?ya:Ba)(A)}function ba(A){var e={type:"GeometryCollection",geometries:A.features.map(ya)};return null!=A.bbox&&(e.bbox=A.bbox),e}function ya(A){var e,t=Ba(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 Ba(A){if(null==A)return{type:null};var e="GeometryCollection"===A.type?{type:"GeometryCollection",geometries:A.geometries.map(Ba)}:"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 Ea(A,e){var t=function(A){var e=1/0,t=1/0,n=-1/0,r=-1/0;function i(A){null!=A&&ua.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){s(A.arcs)},MultiLineString:function(A){A.arcs.forEach(s)},Polygon:function(A){A.arcs.forEach(s)},MultiPolygon:function(A){A.arcs.forEach(u)}};function a(A){var i=A[0],o=A[1];i<e&&(e=i),i>n&&(n=i),o<t&&(t=o),o>r&&(r=o)}function s(A){A.forEach(a)}function u(A){A.forEach(s)}for(var f in A)i(A[f]);return n>=e&&r>=t?[e,t,n,r]:void 0}(A=function(A){var e,t={};for(e in A)t[e]=ma(A[e]);return t}(A)),n=e>0&&t&&function(A,e,t){var n=e[0],r=e[1],i=e[2],o=e[3],a=i-n?(t-1)/(i-n):1,s=o-r?(t-1)/(o-r):1;function u(A){return[Math.round((A[0]-n)*a),Math.round((A[1]-r)*s)]}function f(A,e){for(var t,i,o,u,f,l=-1,c=0,h=A.length,g=new Array(h);++l<h;)t=A[l],u=Math.round((t[0]-n)*a),f=Math.round((t[1]-r)*s),u===i&&f===o||(g[c++]=[i=u,o=f]);for(g.length=c;c<e;)c=g.push([g[0][0],g[0][1]]);return g}function l(A){return f(A,2)}function c(A){return f(A,4)}function h(A){return A.map(c)}function g(A){null!=A&&ua.call(d,A.type)&&d[A.type](A)}var d={GeometryCollection:function(A){A.geometries.forEach(g)},Point:function(A){A.coordinates=u(A.coordinates)},MultiPoint:function(A){A.coordinates=A.coordinates.map(u)},LineString:function(A){A.arcs=l(A.arcs)},MultiLineString:function(A){A.arcs=A.arcs.map(l)},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/s],translate:[n,r]}}(A,t,e),r=function(A){var e,t,n,r,i=A.coordinates,o=A.lines,a=A.rings,s=o.length+a.length;for(delete A.lines,delete A.rings,n=0,r=o.length;n<r;++n)for(e=o[n];e=e.next;)++s;for(n=0,r=a.length;n<r;++n)for(t=a[n];t=t.next;)++s;var u=fa(2*s*1.4,da,la),f=A.arcs=[];for(n=0,r=o.length;n<r;++n){e=o[n];do{l(e)}while(e=e.next)}for(n=0,r=a.length;n<r;++n)if((t=a[n]).next)do{l(t)}while(t=t.next);else c(t);function l(A){var e,t,n,r,o,a,s,l;if(n=u.get(e=i[A[0]]))for(s=0,l=n.length;s<l;++s)if(h(r=n[s],A))return A[0]=r[0],void(A[1]=r[1]);if(o=u.get(t=i[A[1]]))for(s=0,l=o.length;s<l;++s)if(g(a=o[s],A))return A[1]=a[0],void(A[0]=a[1]);n?n.push(A):u.set(e,[A]),o?o.push(A):u.set(t,[A]),f.push(A)}function c(A){var e,t,n,r,o;if(t=u.get(i[A[0]]))for(r=0,o=t.length;r<o;++r){if(d(n=t[r],A))return A[0]=n[0],void(A[1]=n[1]);if(p(n,A))return A[0]=n[1],void(A[1]=n[0])}if(t=u.get(e=i[A[0]+w(A)]))for(r=0,o=t.length;r<o;++r){if(d(n=t[r],A))return A[0]=n[0],void(A[1]=n[1]);if(p(n,A))return A[0]=n[1],void(A[1]=n[0])}t?t.push(A):u.set(e,[A]),f.push(A)}function h(A,e){var t=A[0],n=e[0],r=A[1];if(t-r!==n-e[1])return!1;for(;t<=r;++t,++n)if(!la(i[t],i[n]))return!1;return!0}function g(A,e){var t=A[0],n=e[0],r=A[1],o=e[1];if(t-r!==n-o)return!1;for(;t<=r;++t,--o)if(!la(i[t],i[o]))return!1;return!0}function d(A,e){var t=A[0],n=e[0],r=A[1]-t;if(r!==e[1]-n)return!1;for(var o=w(A),a=w(e),s=0;s<r;++s)if(!la(i[t+(s+o)%r],i[n+(s+a)%r]))return!1;return!0}function p(A,e){var t=A[0],n=e[0],r=A[1],o=e[1],a=r-t;if(a!==o-n)return!1;for(var s=w(A),u=a-w(e),f=0;f<a;++f)if(!la(i[t+(f+s)%a],i[o-(f+u)%a]))return!1;return!0}function w(A){for(var e=A[0],t=A[1],n=e,r=n,o=i[n];++n<t;){var a=i[n];(a[0]<o[0]||a[0]===o[0]&&a[1]<o[1])&&(r=n,o=a)}return r-e}return A}(function(A){var e,t,n,r=pa(A),i=A.coordinates,o=A.lines,a=A.rings;for(t=0,n=o.length;t<n;++t)for(var s=o[t],u=s[0],f=s[1];++u<f;)r.has(i[u])&&(e={0:u,1:s[1]},s[1]=u,s=s.next=e);for(t=0,n=a.length;t<n;++t)for(var l=a[t],c=l[0],h=c,g=l[1],d=r.has(i[c]);++h<g;)r.has(i[h])&&(d?(e={0:h,1:l[1]},l[1]=h,l=l.next=e):(wa(i,c,g,g-h),i[g]=i[c],d=!0,h=c));return A}(function(A){var e=-1,t=[],n=[],r=[];function i(A){A&&ua.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(s)},MultiPolygon:function(A){A.arcs=A.arcs.map(u)}};function a(A){for(var n=0,i=A.length;n<i;++n)r[++e]=A[n];var o={0:e-i+1,1:e};return t.push(o),o}function s(A){for(var t=0,i=A.length;t<i;++t)r[++e]=A[t];var o={0:e-i+1,1:e};return n.push(o),o}function u(A){return A.map(s)}for(var f in A)i(A[f]);return{type:"Topology",coordinates:r,lines:t,rings:n,objects:A}}(A))),i=r.coordinates,o=fa(1.4*r.arcs.length,Ma,ka);function a(A){A&&ua.call(s,A.type)&&s[A.type](A)}A=r.objects,r.bbox=t,r.arcs=r.arcs.map(function(A,e){return o.set(A,e),i.slice(A[0],A[1]+1)}),delete r.coordinates,i=null;var s={GeometryCollection:function(A){A.geometries.forEach(a)},LineString:function(A){A.arcs=u(A.arcs)},MultiLineString:function(A){A.arcs=A.arcs.map(u)},Polygon:function(A){A.arcs=A.arcs.map(u)},MultiPolygon:function(A){A.arcs=A.arcs.map(f)}};function u(A){var e=[];do{var t=o.get(A);e.push(A[0]<A[1]?t:~t)}while(A=A.next);return e}function f(A){return A.map(u)}for(var l in A)a(A[l]);return n&&(r.transform=n,r.arcs=function(A){for(var e=-1,t=A.length;++e<t;){for(var n,r,i=A[e],o=0,a=1,s=i.length,u=i[0],f=u[0],l=u[1];++o<s;)n=(u=i[o])[0],r=u[1],n===f&&r===l||(i[a++]=[n-f,r-l],f=n,l=r);1===a&&(i[a++]=[0,0]),i.length=a}return A}(r.arcs)),r}function Ma(A){var e,t=A[0],n=A[1];return n<t&&(e=t,t=n,n=e),t+31*n}function ka(A,e){var t,n=A[0],r=A[1],i=e[0],o=e[1];return r<n&&(t=n,n=r,r=t),o<i&&(t=i,i=o,o=t),n===i&&r===o}function _a(A){return A}function xa(A){if(null==A)return _a;var e,t,n=A.scale[0],r=A.scale[1],i=A.translate[0],o=A.translate[1];return function(A,a){a||(e=t=0);var s=2,u=A.length,f=new Array(u);for(f[0]=(e+=A[0])*n+i,f[1]=(t+=A[1])*r+o;s<u;)f[s]=A[s],++s;return f}}function Qa(A,e){return"string"==typeof e&&(e=A.objects[e]),"GeometryCollection"===e.type?{type:"FeatureCollection",features:e.geometries.map(function(e){return Da(A,e)})}:Da(A,e)}function Da(A,e){var t=e.id,n=e.bbox,r=null==e.properties?{}:e.properties,i=Ca(A,e);return null==t&&null==n?{type:"Feature",properties:r,geometry:i}:null==n?{type:"Feature",id:t,properties:r,geometry:i}:{type:"Feature",id:t,bbox:n,properties:r,geometry:i}}function Ca(A,e){var t=xa(A.transform),n=A.arcs;function r(A,e){e.length&&e.pop();for(var r=n[A<0?~A:A],i=0,o=r.length;i<o;++i)e.push(t(r[i],i));A<0&&function(A,e){for(var t,n=A.length,r=n-e;r<--n;)t=A[r],A[r++]=A[n],A[n]=t}(e,o)}function i(A){return t(A)}function o(A){for(var e=[],t=0,n=A.length;t<n;++t)r(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 s(A){return A.map(a)}return function A(e){var t,n=e.type;switch(n){case"GeometryCollection":return{type:n,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=s(e.arcs);break;case"MultiPolygon":t=e.arcs.map(s);break;default:return null}return{type:n,coordinates:t}}(e)}function Sa(A,e){var t={},n={},r={},i=[],o=-1;function a(A,e){for(var n in A){var r=A[n];delete e[r.start],delete r.start,delete r.end,r.forEach(function(A){t[A<0?~A:A]=1}),i.push(r)}}return e.forEach(function(t,n){var r,i=A.arcs[t<0?~t:t];i.length<3&&!i[1][0]&&!i[1][1]&&(r=e[++o],e[o]=t,e[n]=r)}),e.forEach(function(e){var t,i,o=function(e){var t,n=A.arcs[e<0?~e:e],r=n[0];return A.transform?(t=[0,0],n.forEach(function(A){t[0]+=A[0],t[1]+=A[1]})):t=n[n.length-1],e<0?[t,r]:[r,t]}(e),a=o[0],s=o[1];if(t=r[a])if(delete r[t.end],t.push(e),t.end=s,i=n[s]){delete n[i.start];var u=i===t?t:t.concat(i);n[u.start=t.start]=r[u.end=i.end]=u}else n[t.start]=r[t.end]=t;else if(t=n[s])if(delete n[t.start],t.unshift(e),t.start=a,i=r[a]){delete r[i.end];var f=i===t?t:i.concat(t);n[f.start=i.start]=r[f.end=t.end]=f}else n[t.start]=r[t.end]=t;else n[(t=[e]).start=a]=r[t.end=s]=t}),a(r,n),a(n,r),e.forEach(function(A){t[A<0?~A:A]||i.push([A])}),i}function Ia(A,e,t){var n,r,i;if(arguments.length>1)n=function(A,e,t){var n,r=[],i=[];function o(A){var e=A<0?~A:A;(i[e]||(i[e]=[])).push({i:A,g:n})}function a(A){A.forEach(o)}function s(A){A.forEach(a)}return function A(e){switch(n=e,e.type){case"GeometryCollection":e.geometries.forEach(A);break;case"LineString":a(e.arcs);break;case"MultiLineString":case"Polygon":s(e.arcs);break;case"MultiPolygon":!function(A){A.forEach(s)}(e.arcs)}}(e),i.forEach(null==t?function(A){r.push(A[0].i)}:function(A){t(A[0].g,A[A.length-1].g)&&r.push(A[0].i)}),r}(0,e,t);else for(r=0,n=new Array(i=A.arcs.length);r<i;++r)n[r]=r;return{type:"MultiLineString",arcs:Sa(A,n)}}function Pa(A,e){var t={},n=[],r=[];function i(A){A.forEach(function(e){e.forEach(function(e){(t[e=e<0?~e:e]||(t[e]=[])).push(A)})}),n.push(A)}function o(e){return function(A){for(var e,t=-1,n=A.length,r=A[n-1],i=0;++t<n;)e=r,r=A[t],i+=e[0]*r[1]-e[1]*r[0];return Math.abs(i)}(Ca(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)}}),n.forEach(function(A){if(!A._){var e=[],n=[A];for(A._=1,r.push(e);A=n.pop();)e.push(A),A.forEach(function(A){A.forEach(function(A){t[A<0?~A:A].forEach(function(A){A._||(A._=1,n.push(A))})})})}}),n.forEach(function(A){delete A._}),{type:"MultiPolygon",arcs:r.map(function(e){var n,r=[];if(e.forEach(function(A){A.forEach(function(A){A.forEach(function(A){t[A<0?~A:A].length<2&&r.push(A)})})}),(n=(r=Sa(A,r)).length)>1)for(var i,a,s=1,u=o(r[0]);s<n;++s)(i=o(r[s]))>u&&(a=r[0],r[0]=r[s],r[s]=a,u=i);return r}).filter(function(A){return A.length>0})}}function Fa(A,e){for(var t=0,n=A.length;t<n;){var r=t+n>>>1;A[r]<e?t=r+1:n=r}return t}function Ta(A){for(var e in A){var t,n,r=A[e].trim();if(r)if("true"===r)r=!0;else if("false"===r)r=!1;else if("NaN"===r)r=NaN;else if(isNaN(t=+r)){if(!(n=r.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;La&&n[4]&&!n[7]&&(r=r.replace(/-/g,"/").replace(/T/," ")),r=new Date(r)}else r=t;else r=null;A[e]=r}return A}Object.assign({},{topology:Ea,merge:function(A){return Ca(A,Pa.apply(this,arguments))}}),Object.assign({},{sum:on,min:Ht,max:Yt,mode:An,median:qt,mean:Kt,variance:ut,deviation:ft});const La=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function Ga(A){var e=A[0],t=A[1],n=A[2];return Math.abs((e[0]-n[0])*(t[1]-e[1])-(e[0]-t[0])*(n[1]-e[1]))/2}function Ra(A,e){return A[1][2]-e[1][2]}function Ua(A){return[A[0],A[1],0]}function Oa(A,e){return e-A}Object.assign({},{autoType:Ta}),Object.assign({},{descending:He,ascending:Ne,autoType:Ta}),Object.assign({},{descending:He,ascending:Ne,autoType:Ta}),Object.assign({},{descending:He,ascending:Ne,autoType:Ta}),Object.assign({},{topology:Ea,presimplify:function(A,e){var t=A.transform?xa(A.transform):Ua,n=function(){var A={},e=[],t=0;function n(A,t){for(;t>0;){var n=(t+1>>1)-1,r=e[n];if(Ra(A,r)>=0)break;e[r._=t]=r,e[A._=t=n]=A}}function r(A,n){for(;;){var r=n+1<<1,i=r-1,o=n,a=e[o];if(i<t&&Ra(e[i],a)<0&&(a=e[o=i]),r<t&&Ra(e[r],a)<0&&(a=e[o=r]),o===n)break;e[a._=n]=a,e[A._=n=o]=A}}return A.push=function(A){return n(e[A._=t]=A,t++),t},A.pop=function(){if(!(t<=0)){var A,n=e[0];return--t>0&&(A=e[t],r(e[A._=0]=A,0)),n}},A.remove=function(A){var i,o=A._;if(e[o]===A)return o!==--t&&(Ra(i=e[t],A)<0?n:r)(e[i._=o]=i,o),o},A}();null==e&&(e=Ga);var r=A.arcs.map(function(A){var r,o,a,s=[],u=0;for(o=1,a=(A=A.map(t)).length-1;o<a;++o)(r=[A[o-1],A[o],A[o+1]])[1][2]=e(r),s.push(r),n.push(r);for(A[0][2]=A[a][2]=1/0,o=0,a=s.length;o<a;++o)(r=s[o]).previous=s[o-1],r.next=s[o+1];for(;r=n.pop();){var f=r.previous,l=r.next;r[1][2]<u?r[1][2]=u:u=r[1][2],f&&(f.next=l,f[2]=r[2],i(f)),l&&(l.previous=f,l[0]=r[0],i(l))}return A});function i(A){n.remove(A),A[1][2]=e(A),n.push(A)}return{type:"Topology",bbox:A.bbox,objects:A.objects,arcs:r}},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,n=(a=A.bbox||function(A){var e,t=xa(A.transform),n=1/0,r=n,i=-n,o=-n;function a(A){(A=t(A))[0]<n&&(n=A[0]),A[0]>i&&(i=A[0]),A[1]<r&&(r=A[1]),A[1]>o&&(o=A[1])}function s(A){switch(A.type){case"GeometryCollection":A.geometries.forEach(s);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,s=A.length;++a<s;)(e=t(A[a],a))[0]<n&&(n=e[0]),e[0]>i&&(i=e[0]),e[1]<r&&(r=e[1]),e[1]>o&&(o=e[1])}),A.objects)s(A.objects[e]);return[n,r,i,o]}(A))[0],r=a[1],i=a[2],o=a[3];e={scale:[i-n?(i-n)/(t-1):1,o-r?(o-r)/(t-1):1],translate:[n,r]}}var a,s,u=function(A){if(null==A)return _a;var e,t,n=A.scale[0],r=A.scale[1],i=A.translate[0],o=A.translate[1];return function(A,a){a||(e=t=0);var s=2,u=A.length,f=new Array(u),l=Math.round((A[0]-i)/n),c=Math.round((A[1]-o)/r);for(f[0]=l-e,e=l,f[1]=c-t,t=c;s<u;)f[s]=A[s],++s;return f}}(e),f=A.objects,l={};function c(A){return u(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(s in f)l[s]=h(f[s]);return{type:"Topology",bbox:a,transform:e,objects:l,arcs:A.arcs.map(function(A){var e,t=0,n=1,r=A.length,i=new Array(r);for(i[0]=u(A[0],0);++t<r;)((e=u(A[t],t))[0]||e[1])&&(i[n++]=e);return 1===n&&(i[n++]=[0,0]),i.length=n,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){if((e=+e)<=0||t<2)return A[0];if(e>=1)return A[t-1];var t,n=(t-1)*e,r=Math.floor(n),i=A[r];return i+(A[r+1]-i)*(n-r)}}(t.sort(Oa),e)},simple:function(A,e){e=null==e?Number.MIN_VALUE:+e;var t=A.arcs.map(function(A){for(var t,n=-1,r=0,i=A.length,o=new Array(i);++n<i;)(t=A[n])[2]>=e&&(o[r++]=[t[0],t[1]]);return o.length=r,o});return{type:"Topology",transform:A.transform,bbox:A.bbox,objects:A.objects,arcs:t}},feature:Qa}),Object.assign({},{feature:Qa}),Object.assign({},{geoEquirectangularRaw:sa,geoBounds:function(A){var e,t,n,r,i,o,a;if(jn=Vn=-(Nn=Hn=1/0),qn=[],Gn(A,Sr),t=qn.length){for(qn.sort(Or),e=1,i=[n=qn[0]];e<t;++e)zr(n,(r=qn[e])[0])||zr(n,r[1])?(Ur(n[0],r[1])>Ur(n[0],n[1])&&(n[1]=r[1]),Ur(r[0],n[1])>Ur(n[0],n[1])&&(n[0]=r[0])):i.push(n=r);for(o=-1/0,e=0,n=i[t=i.length-1];e<=t;n=r,++e)r=i[e],(a=Ur(n[1],r[0]))>o&&(o=a,Nn=r[0],Vn=n[1])}return qn=$n=null,Nn===1/0||Hn===1/0?[[NaN,NaN],[NaN,NaN]]:[[Nn,Hn],[Vn,jn]]}}),Object.assign({},{topology:Ea,neighbors:function(A){var e={},t=A.map(function(){return[]});function n(A,t){A.forEach(function(A){A<0&&(A=~A);var n=e[A];n?n.push(t):e[A]=[t]})}function r(A,e){A.forEach(function(A){n(A,e)})}var i={LineString:n,MultiLineString:r,Polygon:r,MultiPolygon:function(A,e){A.forEach(function(A){r(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],s=a.length,u=0;u<s;++u)for(var f=u+1;f<s;++f){var l,c=a[u],h=a[f];(l=t[c])[o=Fa(l,h)]!==h&&l.splice(o,0,h),(l=t[h])[o=Fa(l,c)]!==c&&l.splice(o,0,c)}return t},mesh:function(A){return Ca(A,Ia.apply(this,arguments))}}),Object.assign({},cn);var za={exports:{}};function Ya(A){let{simple:e=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t=ze(A);let n=t.import(A),r=n?.stream?geoRewindProjection(n,e):n?.type?Na(n,e):Array.isArray(n)?Array.from(n,A=>Ya(A,e)):n;return t.export(r)}!function(){function A(A,e,t){function n(A){return A.map(function(A,n){return n<2?1*A.toFixed(e):1*A.toFixed(t)})}function r(A){return A.map(n)}function i(A){return A.map(r)}function o(A){if(!A)return{};switch(A.type){case"Point":return A.coordinates=n(A.coordinates),A;case"LineString":case"MultiPoint":return A.coordinates=r(A.coordinates),A;case"Polygon":case"MultiLineString":return A.coordinates=i(A.coordinates),A;case"MultiPolygon":return A.coordinates=function(A){return A.map(i)}(A.coordinates),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 function(A){return A.geometries=A.geometries.map(o),A}(A);case"FeatureCollection":return function(A){return A.features=A.features.map(a),A}(A);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiPolygon":case"MultiLineString":return o(A);default:return A}}za.exports=A,za.exports.parse=A}(),Object.assign({},{geoArea:ar,geoCentroid:$r,geoIdentity:function(){var A,e,t,n,r,i,o,a=1,s=0,u=0,f=1,l=1,c=0,h=null,g=1,d=1,p=Wo({point:function(A,e){var t=m([A,e]);this.stream.point(t[0],t[1])}}),w=Vi;function v(){return g=a*f,d=a*l,i=o=null,m}function m(t){var n=t[0]*g,r=t[1]*d;if(c){var i=r*A-n*e;n=n*A+r*e,r=i}return[n+s,r+u]}return m.invert=function(t){var n=t[0]-s,r=t[1]-u;if(c){var i=r*A+n*e;n=n*A-r*e,r=i}return[n/g,r/d]},m.stream=function(A){return i&&o===A?i:i=p(w(o=A))},m.postclip=function(A){return arguments.length?(w=A,h=t=n=r=null,v()):w},m.clipExtent=function(A){return arguments.length?(w=null==A?(h=t=n=r=null,Vi):Mi(h=+A[0][0],t=+A[0][1],n=+A[1][0],r=+A[1][1]),v()):null==h?null:[[h,t],[n,r]]},m.scale=function(A){return arguments.length?(a=+A,v()):a},m.translate=function(A){return arguments.length?(s=+A[0],u=+A[1],v()):[s,u]},m.angle=function(t){return arguments.length?(e=_n(c=t%360*bn),A=Mn(c),v()):c*mn},m.reflectX=function(A){return arguments.length?(f=A?-1:1,v()):f<0},m.reflectY=function(A){return arguments.length?(l=A?-1:1,v()):l<0},m.fitExtent=function(A,e){return Ko(m,A,e)},m.fitSize=function(A,e){return qo(m,A,e)},m.fitWidth=function(A,e){return $o(m,A,e)},m.fitHeight=function(A,e){return Aa(m,A,e)},m},geoPath:function(A,e){let t,n,r=3,i=4.5;function o(A){return A&&("function"==typeof i&&n.pointRadius(+i.apply(this,arguments)),Gn(A,t(n))),n.result()}return o.area=function(A){return Gn(A,t($i)),$i.result()},o.measure=function(A){return Gn(A,t(zo)),zo.result()},o.bounds=function(A){return Gn(A,t(uo)),uo.result()},o.centroid=function(A){return Gn(A,t(Co)),Co.result()},o.projection=function(e){return arguments.length?(t=null==e?(A=null,Vi):(A=e).stream,o):A},o.context=function(A){return arguments.length?(n=null==A?(e=null,new jo(r)):new So(e=A),"function"!=typeof i&&n.pointRadius(i),o):e},o.pointRadius=function(A){return arguments.length?(i="function"==typeof A?A:(n.pointRadius(+A),+A),o):i},o.digits=function(A){if(!arguments.length)return r;if(null==A)r=null;else{const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);r=e}return null===e&&(n=new jo(r)),o},o.projection(A).digits(r).context(e)}});const Na=(A,e)=>Ha(A,function(){let A,e,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function(A){return{stream:Wo(A)}}({polygonStart(){this.stream.polygonStart(),e=[]},lineStart(){e?e.push(A=[]):this.stream.lineStart()},lineEnd(){e||this.stream.lineEnd()},point(t,n){e?A.push([t,n]):this.stream.point(t,n)},polygonEnd(){for(let[A,n]of e.entries()){n.push(n[0].slice()),(A?!Oi({type:"Polygon",coordinates:[n]},e[0][0]):e[1]?!Oi({type:"Polygon",coordinates:[n]},e[1][0]):t&&ar({type:"Polygon",coordinates:[n]})>2*Math.PI)&&n.reverse(),this.stream.lineStart(),n.pop();for(const[A,e]of n)this.stream.point(A,e);this.stream.lineEnd()}this.stream.polygonEnd(),e=null}})}(e));const Ha=function(A,e){const t=e.stream;let n;if(!t)throw new Error("invalid projection");switch(A&&A.type){case"Feature":n=ja;break;case"FeatureCollection":n=Va;break;default:n=Xa}return n(A,t)};function Va(A,e){return{...A,features:A.features.map(A=>ja(A,e))}}function ja(A,e){return{...A,geometry:Xa(A.geometry,e)}}function Xa(A,e){return A?"GeometryCollection"===A.type?function(A,e){return{...A,geometries:A.geometries.map(A=>Xa(A,e))}}(A,e):"Polygon"===A.type||"MultiPolygon"===A.type?function(A,e){let t,n,r=[];return Gn(A,e({polygonStart(){r.push(t=[])},polygonEnd(){},lineStart(){t.push(n=[])},lineEnd(){n.push(n[0].slice())},point(A,e){n.push([A,e])}})),"Polygon"===A.type&&(r=r[0]),{...A,coordinates:r}}(A,e):A:null}function Wa(){let A,{level:e=0,domain:t,rewind:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(t){n=void 0===n||n;const r=Ue.featureToH3Set(t,e);A=Ue.h3SetToFeatureCollection(r,A=>({value:A}))}else n=void 0!==n&&n,A={type:"FeatureCollection",grid:"h3",level:e,geo:!0,features:JA().map(A=>ZA(A,e)).flat().map(A=>{return{type:"Feature",properties:{id:A,pentagon:(e=A,t=OA(e),n=t[0],r=t[1],Boolean(PA.isPentagon(n,r)))},geometry:{type:"Polygon",coordinates:[WA(A).reverse()]}};var e,t,n,r})};return n?Ya(A):A}function Za(A,e,t=0,n=A.length-1,r=Ka){for(;n>t;){if(n-t>600){const i=n-t+1,o=e-t+1,a=Math.log(i),s=.5*Math.exp(2*a/3),u=.5*Math.sqrt(a*s*(i-s)/i)*(o-i/2<0?-1:1);Za(A,e,Math.max(t,Math.floor(e-o*s/i+u)),Math.min(n,Math.floor(e+(i-o)*s/i+u)),r)}const i=A[e];let o=t,a=n;for(Ja(A,t,e),r(A[n],i)>0&&Ja(A,t,n);o<a;){for(Ja(A,o,a),o++,a--;r(A[o],i)<0;)o++;for(;r(A[a],i)>0;)a--}0===r(A[t],i)?Ja(A,t,a):(a++,Ja(A,a,n)),a<=e&&(t=a+1),e<=a&&(n=a-1)}}function Ja(A,e,t){const n=A[e];A[e]=A[t],A[t]=n}function Ka(A,e){return A<e?-1:A>e?1:0}Object.assign({},{geoAzimuthalEquidistant:function(){return ia(aa).scale(79.4188).clipAngle(179.999)},geoCentroid:$r});let qa=class{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(!fs(A,e))return t;const n=this.toBBox,r=[];for(;e;){for(let i=0;i<e.children.length;i++){const o=e.children[i],a=e.leaf?n(o):o;fs(A,a)&&(e.leaf?t.push(o):us(A,a)?this._all(o,t):r.push(o))}e=r.pop()}return t}collides(A){let e=this.data;if(!fs(A,e))return!1;const t=[];for(;e;){for(let n=0;n<e.children.length;n++){const r=e.children[n],i=e.leaf?this.toBBox(r):r;if(fs(A,i)){if(e.leaf||us(A,i))return!0;t.push(r)}}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=ls([]),this}remove(A,e){if(!A)return this;let t=this.data;const n=this.toBBox(A),r=[],i=[];let o,a,s;for(;t||r.length;){if(t||(t=r.pop(),a=r[r.length-1],o=i.pop(),s=!0),t.leaf){const n=$a(A,t.children,e);if(-1!==n)return t.children.splice(n,1),r.push(t),this._condense(r),this}s||t.leaf||!us(t,n)?a?(o++,t=a.children[o],s=!1):t=null:(r.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,n){const r=t-e+1;let i,o=this._maxEntries;if(r<=o)return i=ls(A.slice(e,t+1)),As(i,this.toBBox),i;n||(n=Math.ceil(Math.log(r)/Math.log(o)),o=Math.ceil(r/Math.pow(o,n-1))),i=ls([]),i.leaf=!1,i.height=n;const a=Math.ceil(r/o),s=a*Math.ceil(Math.sqrt(o));cs(A,e,t,s,this.compareMinX);for(let r=e;r<=t;r+=s){const e=Math.min(r+s-1,t);cs(A,r,e,a,this.compareMinY);for(let t=r;t<=e;t+=a){const r=Math.min(t+a-1,e);i.children.push(this._build(A,t,r,n-1))}}return As(i,this.toBBox),i}_chooseSubtree(A,e,t,n){for(;n.push(e),!e.leaf&&n.length-1!==t;){let t,n=1/0,r=1/0;for(let i=0;i<e.children.length;i++){const o=e.children[i],a=is(o),s=as(A,o)-a;s<r?(r=s,n=a<n?a:n,t=o):s===r&&a<n&&(n=a,t=o)}e=t||e.children[0]}return e}_insert(A,e,t){const n=t?A:this.toBBox(A),r=[],i=this._chooseSubtree(n,this.data,e,r);for(i.children.push(A),ts(i,n);e>=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)}_split(A,e){const t=A[e],n=t.children.length,r=this._minEntries;this._chooseSplitAxis(t,r,n);const i=this._chooseSplitIndex(t,r,n),o=ls(t.children.splice(i,t.children.length-i));o.height=t.height,o.leaf=t.leaf,As(t,this.toBBox),As(o,this.toBBox),e?A[e-1].children.push(o):this._splitRoot(t,o)}_splitRoot(A,e){this.data=ls([A,e]),this.data.height=A.height+1,this.data.leaf=!1,As(this.data,this.toBBox)}_chooseSplitIndex(A,e,t){let n,r=1/0,i=1/0;for(let o=e;o<=t-e;o++){const e=es(A,0,o,this.toBBox),a=es(A,o,t,this.toBBox),s=ss(e,a),u=is(e)+is(a);s<r?(r=s,n=o,i=u<i?u:i):s===r&&u<i&&(i=u,n=o)}return n||t-e}_chooseSplitAxis(A,e,t){const n=A.leaf?this.compareMinX:ns,r=A.leaf?this.compareMinY:rs;this._allDistMargin(A,e,t,n)<this._allDistMargin(A,e,t,r)&&A.children.sort(n)}_allDistMargin(A,e,t,n){A.children.sort(n);const r=this.toBBox,i=es(A,0,e,r),o=es(A,t-e,t,r);let a=os(i)+os(o);for(let n=e;n<t-e;n++){const e=A.children[n];ts(i,A.leaf?r(e):e),a+=os(i)}for(let n=t-e-1;n>=e;n--){const e=A.children[n];ts(o,A.leaf?r(e):e),a+=os(o)}return a}_adjustParentBBoxes(A,e,t){for(let n=t;n>=0;n--)ts(e[n],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():As(A[t],this.toBBox)}};function $a(A,e,t){if(!t)return e.indexOf(A);for(let n=0;n<e.length;n++)if(t(A,e[n]))return n;return-1}function As(A,e){es(A,0,A.children.length,e,A)}function es(A,e,t,n,r){r||(r=ls(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(let i=e;i<t;i++){const e=A.children[i];ts(r,A.leaf?n(e):e)}return r}function ts(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 ns(A,e){return A.minX-e.minX}function rs(A,e){return A.minY-e.minY}function is(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function os(A){return A.maxX-A.minX+(A.maxY-A.minY)}function as(A,e){return(Math.max(e.maxX,A.maxX)-Math.min(e.minX,A.minX))*(Math.max(e.maxY,A.maxY)-Math.min(e.minY,A.minY))}function ss(A,e){const t=Math.max(A.minX,e.minX),n=Math.max(A.minY,e.minY),r=Math.min(A.maxX,e.maxX),i=Math.min(A.maxY,e.maxY);return Math.max(0,r-t)*Math.max(0,i-n)}function us(A,e){return A.minX<=e.minX&&A.minY<=e.minY&&e.maxX<=A.maxX&&e.maxY<=A.maxY}function fs(A,e){return e.minX<=A.maxX&&e.minY<=A.maxY&&e.maxX>=A.minX&&e.maxY>=A.minY}function ls(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function cs(A,e,t,n,r){const i=[e,t];for(;i.length;){if((t=i.pop())-(e=i.pop())<=n)continue;const o=e+Math.ceil((t-e)/n/2)*n;Za(A,o,e,t,r),i.push(e,o,o,t)}}function hs(A,e={}){if(null!=A.bbox&&!0!==e.recompute)return A.bbox;const t=[1/0,1/0,-1/0,-1/0];return hA(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 gs(A){function e(A,e){if(null==e)return A;for(;A-e>180;)A-=360;for(;e-A>180;)A+=360;return A}function t(A){const e=[];for(let t=0;t<A.length;t++){const n=A[t],r=e.length?e[e.length-1]:null;(!r||Math.abs(r[0]-n[0])>1e-12||Math.abs(r[1]-n[1])>1e-12)&&e.push(n)}return e}function n(A){if(!A.length)return A;const e=A[0],t=A[A.length-1];return(Math.abs(e[0]-t[0])>1e-12||Math.abs(e[1]-t[1])>1e-12)&&A.push([e[0],e[1]]),A}const r={...A,features:(A.features||[]).map(A=>{if(!A||!A.geometry)return A;const r=A.geometry;if("MultiPolygon"===r.type)try{const i=function(A){const r=[],i=[];for(let e=0;e<A.length;e++){const t=A[e];if(t&&t.length){r.push(t[0].slice());for(let A=1;A<t.length;A++)i.push(t[A].slice())}}const o=[];let a=null;for(let A=0;A<r.length;A++){const n=r[A],i=[];for(let A=0;A<n.length;A++){let[t,r]=n[A];t=e(t,a),i.push([t,r]),a=t}const s=t(i);o.push(s)}let s=[];for(let A=0;A<o.length;A++){const e=o[A].slice();if(e.length>1){const A=e[0],t=e[e.length-1];Math.abs(A[0]-t[0])<1e-12&&Math.abs(A[1]-t[1])<1e-12&&e.pop()}s=s.concat(e)}s=t(s),s=n(s);const u=i.map(A=>{const e=[];for(let t=0;t<A.length;t++){const n=s.length?s[0][0]:null;let r=A[t][0];if(null!==n){for(;r-n>180;)r-=360;for(;n-r>180;)r+=360}e.push([r,A[t][1]])}return n(t(e))});return{type:"Polygon",coordinates:[s].concat(u)}}(r.coordinates);return{...A,geometry:i}}catch(e){return console.warn("Error stitching a MultiPolygon:",e),A}return A})};return r}class ds{constructor(){this._partials=new Float64Array(32),this._n=0}add(A){const e=this._partials;let t=0;for(let n=0;n<this._n&&n<32;n++){const r=e[n],i=A+r,o=Math.abs(A)<Math.abs(r)?A-(i-r):r-(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,n,r=this._n,i=0;if(r>0){for(i=A[--r];r>0&&(e=i,t=A[--r],i=e+t,n=t-(i-e),!n););r>0&&(n<0&&A[r-1]<0||n>0&&A[r-1]>0)&&(t=2*n,e=i+t,t==e-i&&(i=e))}return i}}function ps(A){return Array.from(function*(A){for(const e of A)yield*e}(A))}var ws=1e-6,vs=Math.PI,ms=vs/2,bs=vs/4,ys=2*vs,Bs=180/vs,Es=vs/180,Ms=Math.abs,ks=Math.atan,_s=Math.atan2,xs=Math.cos,Qs=Math.sin,Ds=Math.sign||function(A){return A>0?1:A<0?-1:0},Cs=Math.sqrt;function Ss(A){return A>1?ms:A<-1?-ms:Math.asin(A)}function Is(){}function Ps(A,e){A&&Ts.hasOwnProperty(A.type)&&Ts[A.type](A,e)}var Fs={Feature:function(A,e){Ps(A.geometry,e)},FeatureCollection:function(A,e){for(var t=A.features,n=-1,r=t.length;++n<r;)Ps(t[n].geometry,e)}},Ts={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,n=-1,r=t.length;++n<r;)A=t[n],e.point(A[0],A[1],A[2])},LineString:function(A,e){Ls(A.coordinates,e,0)},MultiLineString:function(A,e){for(var t=A.coordinates,n=-1,r=t.length;++n<r;)Ls(t[n],e,0)},Polygon:function(A,e){Gs(A.coordinates,e)},MultiPolygon:function(A,e){for(var t=A.coordinates,n=-1,r=t.length;++n<r;)Gs(t[n],e)},GeometryCollection:function(A,e){for(var t=A.geometries,n=-1,r=t.length;++n<r;)Ps(t[n],e)}};function Ls(A,e,t){var n,r=-1,i=A.length-t;for(e.lineStart();++r<i;)n=A[r],e.point(n[0],n[1],n[2]);e.lineEnd()}function Gs(A,e){var t=-1,n=A.length;for(e.polygonStart();++t<n;)Ls(A[t],e,1);e.polygonEnd()}function Rs(A,e){A&&Fs.hasOwnProperty(A.type)?Fs[A.type](A,e):Ps(A,e)}function Us(A){return[_s(A[1],A[0]),Ss(A[2])]}function Os(A){var e=A[0],t=A[1],n=xs(t);return[n*xs(e),n*Qs(e),Qs(t)]}function zs(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]}function Ys(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 Ns(A,e){A[0]+=e[0],A[1]+=e[1],A[2]+=e[2]}function Hs(A,e){return[A[0]*e,A[1]*e,A[2]*e]}function Vs(A){var e=Cs(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);A[0]/=e,A[1]/=e,A[2]/=e}function js(A,e){function t(t,n){return t=A(t,n),e(t[0],t[1])}return A.invert&&e.invert&&(t.invert=function(t,n){return(t=e.invert(t,n))&&A.invert(t[0],t[1])}),t}function Xs(A,e){return Ms(A)>vs&&(A-=Math.round(A/ys)*ys),[A,e]}function Ws(A){return function(e,t){return Ms(e+=A)>vs&&(e-=Math.round(e/ys)*ys),[e,t]}}function Zs(A){var e=Ws(A);return e.invert=Ws(-A),e}function Js(A,e){var t=xs(A),n=Qs(A),r=xs(e),i=Qs(e);function o(A,e){var o=xs(e),a=xs(A)*o,s=Qs(A)*o,u=Qs(e),f=u*t+a*n;return[_s(s*r-f*i,a*t-u*n),Ss(f*r+s*i)]}return o.invert=function(A,e){var o=xs(e),a=xs(A)*o,s=Qs(A)*o,u=Qs(e),f=u*r-s*i;return[_s(s*r+u*i,a*t+f*n),Ss(f*t-a*n)]},o}function Ks(A,e){(e=Os(e))[0]-=A,Vs(e);var t,n=(t=-e[1])>1?0:t<-1?vs:Math.acos(t);return((-e[2]<0?-n:n)+ys-ws)%ys}function qs(){var A,e=[];return{point:function(e,t,n){A.push([e,t,n])},lineStart:function(){e.push(A=[])},lineEnd:Is,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var t=e;return e=[],A=null,t}}}function $s(A,e){return Ms(A[0]-e[0])<ws&&Ms(A[1]-e[1])<ws}function Au(A,e,t,n){this.x=A,this.z=e,this.o=t,this.e=n,this.v=!1,this.n=this.p=null}function eu(A,e,t,n,r){var i,o,a=[],s=[];if(A.forEach(function(A){if(!((e=A.length-1)<=0)){var e,t,n=A[0],o=A[e];if($s(n,o)){if(!n[2]&&!o[2]){for(r.lineStart(),i=0;i<e;++i)r.point((n=A[i])[0],n[1]);return void r.lineEnd()}o[0]+=2e-6}a.push(t=new Au(n,A,null,!0)),s.push(t.o=new Au(n,null,t,!1)),a.push(t=new Au(o,A,null,!1)),s.push(t.o=new Au(o,null,t,!0))}}),a.length){for(s.sort(e),tu(a),tu(s),i=0,o=s.length;i<o;++i)s[i].e=t=!t;for(var u,f,l=a[0];;){for(var c=l,h=!0;c.v;)if((c=c.n)===l)return;u=c.z,r.lineStart();do{if(c.v=c.o.v=!0,c.e){if(h)for(i=0,o=u.length;i<o;++i)r.point((f=u[i])[0],f[1]);else n(c.x,c.n.x,1,r);c=c.n}else{if(h)for(u=c.p.z,i=u.length-1;i>=0;--i)r.point((f=u[i])[0],f[1]);else n(c.x,c.p.x,-1,r);c=c.p}u=(c=c.o).z,h=!h}while(!c.v);r.lineEnd()}}}function tu(A){if(e=A.length){for(var e,t,n=0,r=A[0];++n<e;)r.n=t=A[n],t.p=r,r=t;r.n=t=A[0],t.p=r}}function nu(A){return Ms(A[0])<=vs?A[0]:Ds(A[0])*((Ms(A[0])+vs)%ys-vs)}function ru(A,e,t,n){return function(r){var i,o,a,s=e(r),u=qs(),f=e(u),l=!1,c={point:h,lineStart:d,lineEnd:p,polygonStart:function(){c.point=w,c.lineStart=v,c.lineEnd=m,o=[],i=[]},polygonEnd:function(){c.point=h,c.lineStart=d,c.lineEnd=p,o=ps(o);var A=function(A,e){var t=nu(e),n=e[1],r=Qs(n),i=[Qs(t),-xs(t),0],o=0,a=0,s=new ds;1===r?n=ms+ws:-1===r&&(n=-ms-ws);for(var u=0,f=A.length;u<f;++u)if(c=(l=A[u]).length)for(var l,c,h=l[c-1],g=nu(h),d=h[1]/2+bs,p=Qs(d),w=xs(d),v=0;v<c;++v,g=b,p=B,w=E,h=m){var m=l[v],b=nu(m),y=m[1]/2+bs,B=Qs(y),E=xs(y),M=b-g,k=M>=0?1:-1,_=k*M,x=_>vs,Q=p*B;if(s.add(_s(Q*k*Qs(_),w*E+Q*xs(_))),o+=x?M+k*ys:M,x^g>=t^b>=t){var D=Ys(Os(h),Os(m));Vs(D);var C=Ys(i,D);Vs(C);var S=(x^M>=0?-1:1)*Ss(C[2]);(n>S||n===S&&(D[0]||D[1]))&&(a+=x^M>=0?1:-1)}}return(o<-ws||o<ws&&s<-1e-12)^1&a}(i,n);o.length?(l||(r.polygonStart(),l=!0),eu(o,ou,A,t,r)):A&&(l||(r.polygonStart(),l=!0),r.lineStart(),t(null,null,1,r),r.lineEnd()),l&&(r.polygonEnd(),l=!1),o=i=null},sphere:function(){r.polygonStart(),r.lineStart(),t(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function h(e,t){A(e,t)&&r.point(e,t)}function g(A,e){s.point(A,e)}function d(){c.point=g,s.lineStart()}function p(){c.point=h,s.lineEnd()}function w(A,e){a.push([A,e]),f.point(A,e)}function v(){f.lineStart(),a=[]}function m(){w(a[0][0],a[0][1]),f.lineEnd();var A,e,t,n,s=f.clean(),c=u.result(),h=c.length;if(a.pop(),i.push(a),a=null,h)if(1&s){if((e=(t=c[0]).length-1)>0){for(l||(r.polygonStart(),l=!0),r.lineStart(),A=0;A<e;++A)r.point((n=t[A])[0],n[1]);r.lineEnd()}}else h>1&&2&s&&c.push(c.pop().concat(c.shift())),o.push(c.filter(iu))}return c}}function iu(A){return A.length>1}function ou(A,e){return((A=A.x)[0]<0?A[1]-ms-ws:ms-A[1])-((e=e.x)[0]<0?e[1]-ms-ws:ms-e[1])}Xs.invert=Xs;var au=ru(function(){return!0},function(A){var e,t=NaN,n=NaN,r=NaN;return{lineStart:function(){A.lineStart(),e=1},point:function(i,o){var a=i>0?vs:-vs,s=Ms(i-t);Ms(s-vs)<ws?(A.point(t,n=(n+o)/2>0?ms:-ms),A.point(r,n),A.lineEnd(),A.lineStart(),A.point(a,n),A.point(i,n),e=0):r!==a&&s>=vs&&(Ms(t-r)<ws&&(t-=r*ws),Ms(i-a)<ws&&(i-=a*ws),n=function(A,e,t,n){var r,i,o=Qs(A-t);return Ms(o)>ws?ks((Qs(e)*(i=xs(n))*Qs(t)-Qs(n)*(r=xs(e))*Qs(A))/(r*i*o)):(e+n)/2}(t,n,i,o),A.point(r,n),A.lineEnd(),A.lineStart(),A.point(a,n),e=0),A.point(t=i,n=o),r=a},lineEnd:function(){A.lineEnd(),t=n=NaN},clean:function(){return 2-e}}},function(A,e,t,n){var r;if(null==A)r=t*ms,n.point(-vs,r),n.point(0,r),n.point(vs,r),n.point(vs,0),n.point(vs,-r),n.point(0,-r),n.point(-vs,-r),n.point(-vs,0),n.point(-vs,r);else if(Ms(A[0]-e[0])>ws){var i=A[0]<e[0]?vs:-vs;r=t*i/2,n.point(-i,r),n.point(0,r),n.point(i,r)}else n.point(e[0],e[1])},[-vs,-ms]);function su(A){var e=xs(A),t=2*Es,n=e>0,r=Ms(e)>ws;function i(A,t){return xs(A)*xs(t)>e}function o(A,t,n){var r=[1,0,0],i=Ys(Os(A),Os(t)),o=zs(i,i),a=i[0],s=o-a*a;if(!s)return!n&&A;var u=e*o/s,f=-e*a/s,l=Ys(r,i),c=Hs(r,u);Ns(c,Hs(i,f));var h=l,g=zs(c,h),d=zs(h,h),p=g*g-d*(zs(c,c)-1);if(!(p<0)){var w=Cs(p),v=Hs(h,(-g-w)/d);if(Ns(v,c),v=Us(v),!n)return v;var m,b=A[0],y=t[0],B=A[1],E=t[1];y<b&&(m=b,b=y,y=m);var M=y-b,k=Ms(M-vs)<ws;if(!k&&E<B&&(m=B,B=E,E=m),k||M<ws?k?B+E>0^v[1]<(Ms(v[0]-b)<ws?B:E):B<=v[1]&&v[1]<=E:M>vs^(b<=v[0]&&v[0]<=y)){var _=Hs(h,(-g+w)/d);return Ns(_,c),[v,Us(_)]}}}function a(e,t){var r=n?A:vs-A,i=0;return e<-r?i|=1:e>r&&(i|=2),t<-r?i|=4:t>r&&(i|=8),i}return ru(i,function(A){var e,t,s,u,f;return{lineStart:function(){u=s=!1,f=1},point:function(l,c){var h,g=[l,c],d=i(l,c),p=n?d?0:a(l,c):d?a(l+(l<0?vs:-vs),c):0;if(!e&&(u=s=d)&&A.lineStart(),d!==s&&(!(h=o(e,g))||$s(e,h)||$s(g,h))&&(g[2]=1),d!==s)f=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(r&&e&&n^d){var w;p&t||!(w=o(g,e,!0))||(f=0,n?(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&&$s(e,g)||A.point(g[0],g[1]),e=g,s=d,t=p},lineEnd:function(){s&&A.lineEnd(),e=null},clean:function(){return f|(u&&s)<<1}}},function(e,n,r,i){!function(A,e,t,n,r,i){if(t){var o=xs(e),a=Qs(e),s=n*t;null==r?(r=e+n*ys,i=e-s/2):(r=Ks(o,r),i=Ks(o,i),(n>0?r<i:r>i)&&(r+=n*ys));for(var u,f=r;n>0?f>i:f<i;f-=s)u=Us([o,-a*xs(f),-a*Qs(f)]),A.point(u[0],u[1])}}(i,A,t,r,e,n)},n?[0,-A]:[-vs,A-vs])}var uu=1e9,fu=-uu;function lu(A,e,t,n){function r(r,i){return A<=r&&r<=t&&e<=i&&i<=n}function i(r,i,a,u){var f=0,l=0;if(null==r||(f=o(r,a))!==(l=o(i,a))||s(r,i)<0^a>0)do{u.point(0===f||3===f?A:t,f>1?n:e)}while((f=(f+a+4)%4)!==l);else u.point(i[0],i[1])}function o(n,r){return Ms(n[0]-A)<ws?r>0?0:3:Ms(n[0]-t)<ws?r>0?2:1:Ms(n[1]-e)<ws?r>0?1:0:r>0?3:2}function a(A,e){return s(A.x,e.x)}function s(A,e){var t=o(A,1),n=o(e,1);return t!==n?t-n: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 s,u,f,l,c,h,g,d,p,w,v,m=o,b=qs(),y={point:B,lineStart:function(){y.point=E,u&&u.push(f=[]);w=!0,p=!1,g=d=NaN},lineEnd:function(){s&&(E(l,c),h&&p&&b.rejoin(),s.push(b.result()));y.point=B,p&&m.lineEnd()},polygonStart:function(){m=b,s=[],u=[],v=!0},polygonEnd:function(){var e=function(){for(var e=0,t=0,r=u.length;t<r;++t)for(var i,o,a=u[t],s=1,f=a.length,l=a[0],c=l[0],h=l[1];s<f;++s)i=c,o=h,c=(l=a[s])[0],h=l[1],o<=n?h>n&&(c-i)*(n-o)>(h-o)*(A-i)&&++e:h<=n&&(c-i)*(n-o)<(h-o)*(A-i)&&--e;return e}(),t=v&&e,r=(s=ps(s)).length;(t||r)&&(o.polygonStart(),t&&(o.lineStart(),i(null,null,1,o),o.lineEnd()),r&&eu(s,a,e,i,o),o.polygonEnd());m=o,s=u=f=null}};function B(A,e){r(A,e)&&m.point(A,e)}function E(i,o){var a=r(i,o);if(u&&f.push([i,o]),w)l=i,c=o,h=a,w=!1,a&&(m.lineStart(),m.point(i,o));else if(a&&p)m.point(i,o);else{var s=[g=Math.max(fu,Math.min(uu,g)),d=Math.max(fu,Math.min(uu,d))],b=[i=Math.max(fu,Math.min(uu,i)),o=Math.max(fu,Math.min(uu,o))];!function(A,e,t,n,r,i){var o,a=A[0],s=A[1],u=0,f=1,l=e[0]-a,c=e[1]-s;if(o=t-a,l||!(o>0)){if(o/=l,l<0){if(o<u)return;o<f&&(f=o)}else if(l>0){if(o>f)return;o>u&&(u=o)}if(o=r-a,l||!(o<0)){if(o/=l,l<0){if(o>f)return;o>u&&(u=o)}else if(l>0){if(o<u)return;o<f&&(f=o)}if(o=n-s,c||!(o>0)){if(o/=c,c<0){if(o<u)return;o<f&&(f=o)}else if(c>0){if(o>f)return;o>u&&(u=o)}if(o=i-s,c||!(o<0)){if(o/=c,c<0){if(o>f)return;o>u&&(u=o)}else if(c>0){if(o<u)return;o<f&&(f=o)}return u>0&&(A[0]=a+u*l,A[1]=s+u*c),f<1&&(e[0]=a+f*l,e[1]=s+f*c),!0}}}}}(s,b,A,e,t,n)?a&&(m.lineStart(),m.point(i,o),v=!1):(p||(m.lineStart(),m.point(s[0],s[1])),m.point(b[0],b[1]),a||m.lineEnd(),v=!1)}g=i,d=o,p=a}return y}}var cu,hu,gu,du,pu=A=>A,wu=new ds,vu=new ds,mu={point:Is,lineStart:Is,lineEnd:Is,polygonStart:function(){mu.lineStart=bu,mu.lineEnd=Eu},polygonEnd:function(){mu.lineStart=mu.lineEnd=mu.point=Is,wu.add(Ms(vu)),vu=new ds},result:function(){var A=wu/2;return wu=new ds,A}};function bu(){mu.point=yu}function yu(A,e){mu.point=Bu,cu=gu=A,hu=du=e}function Bu(A,e){vu.add(du*A-gu*e),gu=A,du=e}function Eu(){Bu(cu,hu)}var Mu=1/0,ku=Mu,_u=-Mu,xu=_u,Qu={point:function(A,e){A<Mu&&(Mu=A);A>_u&&(_u=A);e<ku&&(ku=e);e>xu&&(xu=e)},lineStart:Is,lineEnd:Is,polygonStart:Is,polygonEnd:Is,result:function(){var A=[[Mu,ku],[_u,xu]];return _u=xu=-(ku=Mu=1/0),A}};var Du,Cu,Su,Iu,Pu=0,Fu=0,Tu=0,Lu=0,Gu=0,Ru=0,Uu=0,Ou=0,zu=0,Yu={point:Nu,lineStart:Hu,lineEnd:Xu,polygonStart:function(){Yu.lineStart=Wu,Yu.lineEnd=Zu},polygonEnd:function(){Yu.point=Nu,Yu.lineStart=Hu,Yu.lineEnd=Xu},result:function(){var A=zu?[Uu/zu,Ou/zu]:Ru?[Lu/Ru,Gu/Ru]:Tu?[Pu/Tu,Fu/Tu]:[NaN,NaN];return Pu=Fu=Tu=Lu=Gu=Ru=Uu=Ou=zu=0,A}};function Nu(A,e){Pu+=A,Fu+=e,++Tu}function Hu(){Yu.point=Vu}function Vu(A,e){Yu.point=ju,Nu(Su=A,Iu=e)}function ju(A,e){var t=A-Su,n=e-Iu,r=Cs(t*t+n*n);Lu+=r*(Su+A)/2,Gu+=r*(Iu+e)/2,Ru+=r,Nu(Su=A,Iu=e)}function Xu(){Yu.point=Nu}function Wu(){Yu.point=Ju}function Zu(){Ku(Du,Cu)}function Ju(A,e){Yu.point=Ku,Nu(Du=Su=A,Cu=Iu=e)}function Ku(A,e){var t=A-Su,n=e-Iu,r=Cs(t*t+n*n);Lu+=r*(Su+A)/2,Gu+=r*(Iu+e)/2,Ru+=r,Uu+=(r=Iu*A-Su*e)*(Su+A),Ou+=r*(Iu+e),zu+=3*r,Nu(Su=A,Iu=e)}function qu(A){this._context=A}qu.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,ys)}},result:Is};var $u,Af,ef,tf,nf,rf=new ds,of={point:Is,lineStart:function(){of.point=af},lineEnd:function(){$u&&sf(Af,ef),of.point=Is},polygonStart:function(){$u=!0},polygonEnd:function(){$u=null},result:function(){var A=+rf;return rf=new ds,A}};function af(A,e){of.point=sf,Af=tf=A,ef=nf=e}function sf(A,e){tf-=A,nf-=e,rf.add(Cs(tf*tf+nf*nf)),tf=A,nf=e}let uf,ff,lf,cf;class hf{constructor(A){this._append=null==A?gf:function(A){const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);if(e>15)return gf;if(e!==uf){const A=10**e;uf=e,ff=function(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=Math.round(arguments[t]*A)/A+e[t]}}return ff}(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!==lf||this._append!==ff){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`,lf=A,ff=this._append,cf=this._,this._=e}this._+=cf}}result(){const A=this._;return this._="",A.length?A:null}}function gf(A){let e=1;this._+=A[0];for(const t=A.length;e<t;++e)this._+=arguments[e]+A[e]}function df(A){return function(e){var t=new pf;for(var n in A)t[n]=A[n];return t.stream=e,t}}function pf(){}function wf(A,e,t){var n=A.clipExtent&&A.clipExtent();return A.scale(150).translate([0,0]),null!=n&&A.clipExtent(null),Rs(t,A.stream(Qu)),e(Qu.result()),null!=n&&A.clipExtent(n),A}function vf(A,e,t){return wf(A,function(t){var n=e[1][0]-e[0][0],r=e[1][1]-e[0][1],i=Math.min(n/(t[1][0]-t[0][0]),r/(t[1][1]-t[0][1])),o=+e[0][0]+(n-i*(t[1][0]+t[0][0]))/2,a=+e[0][1]+(r-i*(t[1][1]+t[0][1]))/2;A.scale(150*i).translate([o,a])},t)}pf.prototype={constructor:pf,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 mf=xs(30*Es);function bf(A,e){return+e?function(A,e){function t(n,r,i,o,a,s,u,f,l,c,h,g,d,p){var w=u-n,v=f-r,m=w*w+v*v;if(m>4*e&&d--){var b=o+c,y=a+h,B=s+g,E=Cs(b*b+y*y+B*B),M=Ss(B/=E),k=Ms(Ms(B)-1)<ws||Ms(i-l)<ws?(i+l)/2:_s(y,b),_=A(k,M),x=_[0],Q=_[1],D=x-n,C=Q-r,S=v*D-w*C;(S*S/m>e||Ms((w*D+v*C)/m-.5)>.3||o*c+a*h+s*g<mf)&&(t(n,r,i,o,a,s,x,Q,k,b/=E,y/=E,B,d,p),p.point(x,Q),t(x,Q,k,b,y,B,u,f,l,c,h,g,d,p))}}return function(e){var n,r,i,o,a,s,u,f,l,c,h,g,d={point:p,lineStart:w,lineEnd:m,polygonStart:function(){e.polygonStart(),d.lineStart=b},polygonEnd:function(){e.polygonEnd(),d.lineStart=w}};function p(t,n){t=A(t,n),e.point(t[0],t[1])}function w(){f=NaN,d.point=v,e.lineStart()}function v(n,r){var i=Os([n,r]),o=A(n,r);t(f,l,u,c,h,g,f=o[0],l=o[1],u=n,c=i[0],h=i[1],g=i[2],16,e),e.point(f,l)}function m(){d.point=p,e.lineEnd()}function b(){w(),d.point=y,d.lineEnd=B}function y(A,e){v(n=A,e),r=f,i=l,o=c,a=h,s=g,d.point=v}function B(){t(f,l,u,c,h,g,r,i,n,o,a,s,16,e),d.lineEnd=m,m()}return d}}(A,e):function(A){return df({point:function(e,t){e=A(e,t),this.stream.point(e[0],e[1])}})}(A)}var yf=df({point:function(A,e){this.stream.point(A*Es,e*Es)}});function Bf(A,e,t,n,r,i){if(!i)return function(A,e,t,n,r){function i(i,o){return[e+A*(i*=n),t-A*(o*=r)]}return i.invert=function(i,o){return[(i-e)/A*n,(t-o)/A*r]},i}(A,e,t,n,r);var o=xs(i),a=Qs(i),s=o*A,u=a*A,f=o/A,l=a/A,c=(a*t-o*e)/A,h=(a*e+o*t)/A;function g(A,i){return[s*(A*=n)-u*(i*=r)+e,t-u*A-s*i]}return g.invert=function(A,e){return[n*(f*A-l*e+c),r*(h-l*A-f*e)]},g}function Ef(A){return function(A){var e,t,n,r,i,o,a,s,u,f,l=150,c=480,h=250,g=0,d=0,p=0,w=0,v=0,m=0,b=1,y=1,B=null,E=au,M=null,k=pu,_=.5;function x(A){return s(A[0]*Es,A[1]*Es)}function Q(A){return(A=s.invert(A[0],A[1]))&&[A[0]*Bs,A[1]*Bs]}function D(){var A=Bf(l,0,0,b,y,m).apply(null,e(g,d)),n=Bf(l,c-A[0],h-A[1],b,y,m);return t=function(A,e,t){return(A%=ys)?e||t?js(Zs(A),Js(e,t)):Zs(A):e||t?Js(e,t):Xs}(p,w,v),a=js(e,n),s=js(t,a),o=bf(a,_),C()}function C(){return u=f=null,x}return x.stream=function(A){return u&&f===A?u:u=yf(function(A){return df({point:function(e,t){var n=A(e,t);return this.stream.point(n[0],n[1])}})}(t)(E(o(k(f=A)))))},x.preclip=function(A){return arguments.length?(E=A,B=void 0,C()):E},x.postclip=function(A){return arguments.length?(k=A,M=n=r=i=null,C()):k},x.clipAngle=function(A){return arguments.length?(E=+A?su(B=A*Es):(B=null,au),C()):B*Bs},x.clipExtent=function(A){return arguments.length?(k=null==A?(M=n=r=i=null,pu):lu(M=+A[0][0],n=+A[0][1],r=+A[1][0],i=+A[1][1]),C()):null==M?null:[[M,n],[r,i]]},x.scale=function(A){return arguments.length?(l=+A,D()):l},x.translate=function(A){return arguments.length?(c=+A[0],h=+A[1],D()):[c,h]},x.center=function(A){return arguments.length?(g=A[0]%360*Es,d=A[1]%360*Es,D()):[g*Bs,d*Bs]},x.rotate=function(A){return arguments.length?(p=A[0]%360*Es,w=A[1]%360*Es,v=A.length>2?A[2]%360*Es:0,D()):[p*Bs,w*Bs,v*Bs]},x.angle=function(A){return arguments.length?(m=A%360*Es,D()):m*Bs},x.reflectX=function(A){return arguments.length?(b=A?-1:1,D()):b<0},x.reflectY=function(A){return arguments.length?(y=A?-1:1,D()):y<0},x.precision=function(A){return arguments.length?(o=bf(a,_=A*A),C()):Cs(_)},x.fitExtent=function(A,e){return vf(x,A,e)},x.fitSize=function(A,e){return function(A,e,t){return vf(A,[[0,0],e],t)}(x,A,e)},x.fitWidth=function(A,e){return function(A,e,t){return wf(A,function(t){var n=+e,r=n/(t[1][0]-t[0][0]),i=(n-r*(t[1][0]+t[0][0]))/2,o=-r*t[0][1];A.scale(150*r).translate([i,o])},t)}(x,A,e)},x.fitHeight=function(A,e){return function(A,e,t){return wf(A,function(t){var n=+e,r=n/(t[1][1]-t[0][1]),i=-r*t[0][0],o=(n-r*(t[1][1]+t[0][1]))/2;A.scale(150*r).translate([i,o])},t)}(x,A,e)},function(){return e=A.apply(this,arguments),x.invert=e.invert&&Q,D()}}(function(){return A})()}function Mf(A,e){return[A,e]}Mf.invert=Mf;var kf=()=>{};function _f(A,e){return{type:"FeatureCollection",features:A.features.map(function(A){return xf(A,e)})}}function xf(A,e){return{type:"Feature",id:A.id,properties:A.properties,geometry:Qf(A.geometry,e)}}function Qf(A,e){if(!A)return null;if("GeometryCollection"===A.type)return function(A,e){return{type:"GeometryCollection",geometries:A.geometries.map(function(A){return Qf(A,e)})}}(A,e);var t;switch(A.type){case"Point":case"MultiPoint":t=Sf;break;case"LineString":case"MultiLineString":t=If;break;case"Polygon":case"MultiPolygon":case"Sphere":t=Pf;break;default:return null}return Rs(A,e(t)),t.result()}var Df=[],Cf=[],Sf={point:function(A,e){Df.push([A,e])},result:function(){var A=Df.length?Df.length<2?{type:"Point",coordinates:Df[0]}:{type:"MultiPoint",coordinates:Df}:null;return Df=[],A}},If={lineStart:kf,point:function(A,e){Df.push([A,e])},lineEnd:function(){Df.length&&(Cf.push(Df),Df=[])},result:function(){var A=Cf.length?Cf.length<2?{type:"LineString",coordinates:Cf[0]}:{type:"MultiLineString",coordinates:Cf}:null;return Cf=[],A}},Pf={polygonStart:kf,lineStart:kf,point:function(A,e){Df.push([A,e])},lineEnd:function(){var A=Df.length;if(A){do{Df.push(Df[0].slice())}while(++A<4);Cf.push(Df),Df=[]}},polygonEnd:kf,result:function(){if(!Cf.length)return null;var A=[],e=[];return Cf.forEach(function(t){!function(A){if((e=A.length)<4)return!1;for(var e,t=0,n=A[e-1][1]*A[0][0]-A[e-1][0]*A[0][1];++t<e;)n+=A[t-1][1]*A[t][0]-A[t-1][0]*A[t][1];return n<=0}(t)?e.push(t):A.push([t])}),e.forEach(function(e){var t=e[0];A.some(function(A){if(function(A,e){for(var t=e[0],n=e[1],r=!1,i=0,o=A.length,a=o-1;i<o;a=i++){var s=A[i],u=s[0],f=s[1],l=A[a],c=l[0],h=l[1];f>n^h>n&&t<(c-u)*(n-f)/(h-f)+u&&(r=!r)}return r}(A[0],t))return A.push(e),!0})||A.push([e])}),Cf=[],A.length?A.length>1?{type:"MultiPolygon",coordinates:A}:{type:"Polygon",coordinates:A[0]}:null}};function Ff(A){A=function(A,e){var t,n=e.stream;if(!n)throw new Error("invalid projection");switch(A&&A.type){case"Feature":t=xf;break;case"FeatureCollection":t=_f;break;default:t=Qf}return t(A,n)}(A=JSON.parse(JSON.stringify(A)),Ef(Mf).scale(152.63).scale(180/Math.PI).translate([0,0]));for(const e of A.features)"Polygon"===e.geometry.type?e.geometry.coordinates.forEach(A=>A.forEach(A=>A[1]*=-1)):"MultiPolygon"===e.geometry.type&&e.geometry.coordinates.forEach(A=>A.forEach(A=>A.forEach(A=>A[1]*=-1)));return Ya(A,{simple:!0})}function Tf(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{points:e,grid:t,var:n,values:r=!1,spherical:i=!1}=A;const o=performance.now();i&&(t=Ff(t));const a=t.features,s=e.features,u=n?Array.isArray(n)?n:[n]:[],f=new Map(a.map((A,e)=>[e,A])),l=new qa,c=a.map((A,e)=>{const[t,n,r,i]=hs(A);return{minX:t,minY:n,maxX:r,maxY:i,i:e}});l.load(c);const h=new Map;a.forEach((A,e)=>{h.set(e,{countSet:new Set,valuesList:[],numericLists:{}}),u.forEach(A=>h.get(e).numericLists[A]=[])}),s.forEach((A,e)=>{const t=A.geometry.coordinates[0],n=A.geometry.coordinates[1],i=l.search({minX:t,minY:n,maxX:t,maxY:n});for(const t of i){const n=f.get(t.i);if(!$(A,n))continue;const i=h.get(t.i);i.countSet.add(e),u.forEach(e=>{const t=parseFloat(A.properties[e]);isNaN(t)||i.numericLists[e].push(t)}),r&&i.valuesList.push({...A.properties});break}});const g={type:"FeatureCollection",features:a.map((A,e)=>{const t=h.get(e),n=t.countSet.size;if(0===n)return null;const i={count:n};return u.forEach(A=>{const e=t.numericLists[A];i[A]=e.length>0?e.reduce((A,e)=>A+e,0):0}),r&&(i.values=t.valuesList),{type:A.type,properties:{...A.properties,...i},geometry:A.geometry}}).filter(A=>null!==A)},d=performance.now();return console.log(`Execution time: ${(d-o).toFixed(2)} ms`),i?gs(g):g}var Lf=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,Gf=Math.ceil,Rf=Math.floor,Uf="[BigNumber Error] ",Of=Uf+"Number primitive has more than 15 significant digits: ",zf=1e14,Yf=14,Nf=9007199254740991,Hf=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],Vf=1e7,jf=1e9;function Xf(A){var e=0|A;return A>0||A===e?e:e-1}function Wf(A){for(var e,t,n=1,r=A.length,i=A[0]+"";n<r;){for(e=A[n++]+"",t=Yf-e.length;t--;e="0"+e);i+=e}for(r=i.length;48===i.charCodeAt(--r););return i.slice(0,r+1||1)}function Zf(A,e){var t,n,r=A.c,i=e.c,o=A.s,a=e.s,s=A.e,u=e.e;if(!o||!a)return null;if(t=r&&!r[0],n=i&&!i[0],t||n)return t?n?0:-a:o;if(o!=a)return o;if(t=o<0,n=s==u,!r||!i)return n?0:!r^t?1:-1;if(!n)return s>u^t?1:-1;for(a=(s=r.length)<(u=i.length)?s:u,o=0;o<a;o++)if(r[o]!=i[o])return r[o]>i[o]^t?1:-1;return s==u?0:s>u^t?1:-1}function Jf(A,e,t,n){if(A<e||A>t||A!==Rf(A))throw Error(Uf+(n||"Argument")+("number"==typeof A?A<e||A>t?" out of range: ":" not an integer: ":" not a primitive number: ")+String(A))}function Kf(A){var e=A.c.length-1;return Xf(A.e/Yf)==e&&A.c[e]%2!=0}function qf(A,e){return(A.length>1?A.charAt(0)+"."+A.slice(1):A)+(e<0?"e":"e+")+e}function $f(A,e,t){var n,r;if(e<0){for(r=t+".";++e;r+=t);A=r+A}else if(++e>(n=A.length)){for(r=t,e-=n;--e;r+=t);A+=r}else e<n&&(A=A.slice(0,e)+"."+A.slice(e));return A}var Al=function A(e){var t,n,r,i,o,a,s,u,f,l,c=_.prototype={constructor:_,toString:null,valueOf:null},h=new _(1),g=20,d=4,p=-7,w=21,v=-1e7,m=1e7,b=!1,y=1,B=0,E={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},M="0123456789abcdefghijklmnopqrstuvwxyz",k=!0;function _(A,e){var t,i,o,a,s,u,f,l,c=this;if(!(c instanceof _))return new _(A,e);if(null==e){if(A&&!0===A._isBigNumber)return c.s=A.s,void(!A.c||A.e>m?c.c=c.e=null:A.e<v?c.c=[c.e=0]:(c.e=A.e,c.c=A.c.slice()));if((u="number"==typeof A)&&0*A==0){if(c.s=1/A<0?(A=-A,-1):1,A===~~A){for(a=0,s=A;s>=10;s/=10,a++);return void(a>m?c.c=c.e=null:(c.e=a,c.c=[A]))}l=String(A)}else{if(!Lf.test(l=String(A)))return r(c,l,u);c.s=45==l.charCodeAt(0)?(l=l.slice(1),-1):1}(a=l.indexOf("."))>-1&&(l=l.replace(".","")),(s=l.search(/e/i))>0?(a<0&&(a=s),a+=+l.slice(s+1),l=l.substring(0,s)):a<0&&(a=l.length)}else{if(Jf(e,2,M.length,"Base"),10==e&&k)return C(c=new _(A),g+c.e+1,d);if(l=String(A),u="number"==typeof A){if(0*A!=0)return r(c,l,u,e);if(c.s=1/A<0?(l=l.slice(1),-1):1,_.DEBUG&&l.replace(/^0\.0*|\./,"").length>15)throw Error(Of+A)}else c.s=45===l.charCodeAt(0)?(l=l.slice(1),-1):1;for(t=M.slice(0,e),a=s=0,f=l.length;s<f;s++)if(t.indexOf(i=l.charAt(s))<0){if("."==i){if(s>a){a=f;continue}}else if(!o&&(l==l.toUpperCase()&&(l=l.toLowerCase())||l==l.toLowerCase()&&(l=l.toUpperCase()))){o=!0,s=-1,a=0;continue}return r(c,String(A),u,e)}u=!1,(a=(l=n(l,e,10,c.s)).indexOf("."))>-1?l=l.replace(".",""):a=l.length}for(s=0;48===l.charCodeAt(s);s++);for(f=l.length;48===l.charCodeAt(--f););if(l=l.slice(s,++f)){if(f-=s,u&&_.DEBUG&&f>15&&(A>Nf||A!==Rf(A)))throw Error(Of+c.s*A);if((a=a-s-1)>m)c.c=c.e=null;else if(a<v)c.c=[c.e=0];else{if(c.e=a,c.c=[],s=(a+1)%Yf,a<0&&(s+=Yf),s<f){for(s&&c.c.push(+l.slice(0,s)),f-=Yf;s<f;)c.c.push(+l.slice(s,s+=Yf));s=Yf-(l=l.slice(s)).length}else s-=f;for(;s--;l+="0");c.c.push(+l)}}else c.c=[c.e=0]}function x(A,e,t,n){var r,i,o,a,s;if(null==t?t=d:Jf(t,0,8),!A.c)return A.toString();if(r=A.c[0],o=A.e,null==e)s=Wf(A.c),s=1==n||2==n&&(o<=p||o>=w)?qf(s,o):$f(s,o,"0");else if(i=(A=C(new _(A),e,t)).e,a=(s=Wf(A.c)).length,1==n||2==n&&(e<=i||i<=p)){for(;a<e;s+="0",a++);s=qf(s,i)}else if(e-=o+(2===n&&i>o),s=$f(s,i,"0"),i+1>a){if(--e>0)for(s+=".";e--;s+="0");}else if((e+=i-a)>0)for(i+1==a&&(s+=".");e--;s+="0");return A.s<0&&r?"-"+s:s}function Q(A,e){for(var t,n,r=1,i=new _(A[0]);r<A.length;r++)(!(n=new _(A[r])).s||(t=Zf(i,n))===e||0===t&&i.s===e)&&(i=n);return i}function D(A,e,t){for(var n=1,r=e.length;!e[--r];e.pop());for(r=e[0];r>=10;r/=10,n++);return(t=n+t*Yf-1)>m?A.c=A.e=null:t<v?A.c=[A.e=0]:(A.e=t,A.c=e),A}function C(A,e,t,n){var r,i,o,a,s,u,f,l=A.c,c=Hf;if(l){A:{for(r=1,a=l[0];a>=10;a/=10,r++);if((i=e-r)<0)i+=Yf,o=e,s=l[u=0],f=Rf(s/c[r-o-1]%10);else if((u=Gf((i+1)/Yf))>=l.length){if(!n)break A;for(;l.length<=u;l.push(0));s=f=0,r=1,o=(i%=Yf)-Yf+1}else{for(s=a=l[u],r=1;a>=10;a/=10,r++);f=(o=(i%=Yf)-Yf+r)<0?0:Rf(s/c[r-o-1]%10)}if(n=n||e<0||null!=l[u+1]||(o<0?s:s%c[r-o-1]),n=t<4?(f||n)&&(0==t||t==(A.s<0?3:2)):f>5||5==f&&(4==t||n||6==t&&(i>0?o>0?s/c[r-o]:0:l[u-1])%10&1||t==(A.s<0?8:7)),e<1||!l[0])return l.length=0,n?(e-=A.e+1,l[0]=c[(Yf-e%Yf)%Yf],A.e=-e||0):l[0]=A.e=0,A;if(0==i?(l.length=u,a=1,u--):(l.length=u+1,a=c[Yf-i],l[u]=o>0?Rf(s/c[r-o]%c[o])*a:0),n)for(;;){if(0==u){for(i=1,o=l[0];o>=10;o/=10,i++);for(o=l[0]+=a,a=1;o>=10;o/=10,a++);i!=a&&(A.e++,l[0]==zf&&(l[0]=1));break}if(l[u]+=a,l[u]!=zf)break;l[u--]=0,a=1}for(i=l.length;0===l[--i];l.pop());}A.e>m?A.c=A.e=null:A.e<v&&(A.c=[A.e=0])}return A}function S(A){var e,t=A.e;return null===t?A.toString():(e=Wf(A.c),e=t<=p||t>=w?qf(e,t):$f(e,t,"0"),A.s<0?"-"+e:e)}return _.clone=A,_.ROUND_UP=0,_.ROUND_DOWN=1,_.ROUND_CEIL=2,_.ROUND_FLOOR=3,_.ROUND_HALF_UP=4,_.ROUND_HALF_DOWN=5,_.ROUND_HALF_EVEN=6,_.ROUND_HALF_CEIL=7,_.ROUND_HALF_FLOOR=8,_.EUCLID=9,_.config=_.set=function(A){var e,t;if(null!=A){if("object"!=typeof A)throw Error(Uf+"Object expected: "+A);if(A.hasOwnProperty(e="DECIMAL_PLACES")&&(Jf(t=A[e],0,jf,e),g=t),A.hasOwnProperty(e="ROUNDING_MODE")&&(Jf(t=A[e],0,8,e),d=t),A.hasOwnProperty(e="EXPONENTIAL_AT")&&((t=A[e])&&t.pop?(Jf(t[0],-jf,0,e),Jf(t[1],0,jf,e),p=t[0],w=t[1]):(Jf(t,-jf,jf,e),p=-(w=t<0?-t:t))),A.hasOwnProperty(e="RANGE"))if((t=A[e])&&t.pop)Jf(t[0],-jf,-1,e),Jf(t[1],1,jf,e),v=t[0],m=t[1];else{if(Jf(t,-jf,jf,e),!t)throw Error(Uf+e+" cannot be zero: "+t);v=-(m=t<0?-t:t)}if(A.hasOwnProperty(e="CRYPTO")){if((t=A[e])!==!!t)throw Error(Uf+e+" not true or false: "+t);if(t){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw b=!t,Error(Uf+"crypto unavailable");b=t}else b=t}if(A.hasOwnProperty(e="MODULO_MODE")&&(Jf(t=A[e],0,9,e),y=t),A.hasOwnProperty(e="POW_PRECISION")&&(Jf(t=A[e],0,jf,e),B=t),A.hasOwnProperty(e="FORMAT")){if("object"!=typeof(t=A[e]))throw Error(Uf+e+" not an object: "+t);E=t}if(A.hasOwnProperty(e="ALPHABET")){if("string"!=typeof(t=A[e])||/^.?$|[+\-.\s]|(.).*\1/.test(t))throw Error(Uf+e+" invalid: "+t);k="0123456789"==t.slice(0,10),M=t}}return{DECIMAL_PLACES:g,ROUNDING_MODE:d,EXPONENTIAL_AT:[p,w],RANGE:[v,m],CRYPTO:b,MODULO_MODE:y,POW_PRECISION:B,FORMAT:E,ALPHABET:M}},_.isBigNumber=function(A){if(!A||!0!==A._isBigNumber)return!1;if(!_.DEBUG)return!0;var e,t,n=A.c,r=A.e,i=A.s;A:if("[object Array]"=={}.toString.call(n)){if((1===i||-1===i)&&r>=-jf&&r<=jf&&r===Rf(r)){if(0===n[0]){if(0===r&&1===n.length)return!0;break A}if((e=(r+1)%Yf)<1&&(e+=Yf),String(n[0]).length==e){for(e=0;e<n.length;e++)if((t=n[e])<0||t>=zf||t!==Rf(t))break A;if(0!==t)return!0}}}else if(null===n&&null===r&&(null===i||1===i||-1===i))return!0;throw Error(Uf+"Invalid BigNumber: "+A)},_.maximum=_.max=function(){return Q(arguments,-1)},_.minimum=_.min=function(){return Q(arguments,1)},_.random=(i=9007199254740992,o=Math.random()*i&2097151?function(){return Rf(Math.random()*i)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(A){var e,t,n,r,i,a=0,s=[],u=new _(h);if(null==A?A=g:Jf(A,0,jf),r=Gf(A/Yf),b)if(crypto.getRandomValues){for(e=crypto.getRandomValues(new Uint32Array(r*=2));a<r;)(i=131072*e[a]+(e[a+1]>>>11))>=9e15?(t=crypto.getRandomValues(new Uint32Array(2)),e[a]=t[0],e[a+1]=t[1]):(s.push(i%1e14),a+=2);a=r/2}else{if(!crypto.randomBytes)throw b=!1,Error(Uf+"crypto unavailable");for(e=crypto.randomBytes(r*=7);a<r;)(i=281474976710656*(31&e[a])+1099511627776*e[a+1]+4294967296*e[a+2]+16777216*e[a+3]+(e[a+4]<<16)+(e[a+5]<<8)+e[a+6])>=9e15?crypto.randomBytes(7).copy(e,a):(s.push(i%1e14),a+=7);a=r/7}if(!b)for(;a<r;)(i=o())<9e15&&(s[a++]=i%1e14);for(r=s[--a],A%=Yf,r&&A&&(i=Hf[Yf-A],s[a]=Rf(r/i)*i);0===s[a];s.pop(),a--);if(a<0)s=[n=0];else{for(n=-1;0===s[0];s.splice(0,1),n-=Yf);for(a=1,i=s[0];i>=10;i/=10,a++);a<Yf&&(n-=Yf-a)}return u.e=n,u.c=s,u}),_.sum=function(){for(var A=1,e=arguments,t=new _(e[0]);A<e.length;)t=t.plus(e[A++]);return t},n=function(){var A="0123456789";function e(A,e,t,n){for(var r,i,o=[0],a=0,s=A.length;a<s;){for(i=o.length;i--;o[i]*=e);for(o[0]+=n.indexOf(A.charAt(a++)),r=0;r<o.length;r++)o[r]>t-1&&(null==o[r+1]&&(o[r+1]=0),o[r+1]+=o[r]/t|0,o[r]%=t)}return o.reverse()}return function(n,r,i,o,a){var s,u,f,l,c,h,p,w,v=n.indexOf("."),m=g,b=d;for(v>=0&&(l=B,B=0,n=n.replace(".",""),h=(w=new _(r)).pow(n.length-v),B=l,w.c=e($f(Wf(h.c),h.e,"0"),10,i,A),w.e=w.c.length),f=l=(p=e(n,r,i,a?(s=M,A):(s=A,M))).length;0==p[--l];p.pop());if(!p[0])return s.charAt(0);if(v<0?--f:(h.c=p,h.e=f,h.s=o,p=(h=t(h,w,m,b,i)).c,c=h.r,f=h.e),v=p[u=f+m+1],l=i/2,c=c||u<0||null!=p[u+1],c=b<4?(null!=v||c)&&(0==b||b==(h.s<0?3:2)):v>l||v==l&&(4==b||c||6==b&&1&p[u-1]||b==(h.s<0?8:7)),u<1||!p[0])n=c?$f(s.charAt(1),-m,s.charAt(0)):s.charAt(0);else{if(p.length=u,c)for(--i;++p[--u]>i;)p[u]=0,u||(++f,p=[1].concat(p));for(l=p.length;!p[--l];);for(v=0,n="";v<=l;n+=s.charAt(p[v++]));n=$f(n,f,s.charAt(0))}return n}}(),t=function(){function A(A,e,t){var n,r,i,o,a=0,s=A.length,u=e%Vf,f=e/Vf|0;for(A=A.slice();s--;)a=((r=u*(i=A[s]%Vf)+(n=f*i+(o=A[s]/Vf|0)*u)%Vf*Vf+a)/t|0)+(n/Vf|0)+f*o,A[s]=r%t;return a&&(A=[a].concat(A)),A}function e(A,e,t,n){var r,i;if(t!=n)i=t>n?1:-1;else for(r=i=0;r<t;r++)if(A[r]!=e[r]){i=A[r]>e[r]?1:-1;break}return i}function t(A,e,t,n){for(var r=0;t--;)A[t]-=r,r=A[t]<e[t]?1:0,A[t]=r*n+A[t]-e[t];for(;!A[0]&&A.length>1;A.splice(0,1));}return function(n,r,i,o,a){var s,u,f,l,c,h,g,d,p,w,v,m,b,y,B,E,M,k=n.s==r.s?1:-1,x=n.c,Q=r.c;if(!(x&&x[0]&&Q&&Q[0]))return new _(n.s&&r.s&&(x?!Q||x[0]!=Q[0]:Q)?x&&0==x[0]||!Q?0*k:k/0:NaN);for(p=(d=new _(k)).c=[],k=i+(u=n.e-r.e)+1,a||(a=zf,u=Xf(n.e/Yf)-Xf(r.e/Yf),k=k/Yf|0),f=0;Q[f]==(x[f]||0);f++);if(Q[f]>(x[f]||0)&&u--,k<0)p.push(1),l=!0;else{for(y=x.length,E=Q.length,f=0,k+=2,(c=Rf(a/(Q[0]+1)))>1&&(Q=A(Q,c,a),x=A(x,c,a),E=Q.length,y=x.length),b=E,v=(w=x.slice(0,E)).length;v<E;w[v++]=0);M=Q.slice(),M=[0].concat(M),B=Q[0],Q[1]>=a/2&&B++;do{if(c=0,(s=e(Q,w,E,v))<0){if(m=w[0],E!=v&&(m=m*a+(w[1]||0)),(c=Rf(m/B))>1)for(c>=a&&(c=a-1),g=(h=A(Q,c,a)).length,v=w.length;1==e(h,w,g,v);)c--,t(h,E<g?M:Q,g,a),g=h.length,s=1;else 0==c&&(s=c=1),g=(h=Q.slice()).length;if(g<v&&(h=[0].concat(h)),t(w,h,v,a),v=w.length,-1==s)for(;e(Q,w,E,v)<1;)c++,t(w,E<v?M:Q,v,a),v=w.length}else 0===s&&(c++,w=[0]);p[f++]=c,w[0]?w[v++]=x[b]||0:(w=[x[b]],v=1)}while((b++<y||null!=w[0])&&k--);l=null!=w[0],p[0]||p.splice(0,1)}if(a==zf){for(f=1,k=p[0];k>=10;k/=10,f++);C(d,i+(d.e=f+u*Yf-1)+1,o,l)}else d.e=u,d.r=+l;return d}}(),a=/^(-?)0([xbo])(?=\w[\w.]*$)/i,s=/^([^.]+)\.$/,u=/^\.([^.]+)$/,f=/^-?(Infinity|NaN)$/,l=/^\s*\+(?=[\w.])|^\s+|\s+$/g,r=function(A,e,t,n){var r,i=t?e:e.replace(l,"");if(f.test(i))A.s=isNaN(i)?null:i<0?-1:1;else{if(!t&&(i=i.replace(a,function(A,e,t){return r="x"==(t=t.toLowerCase())?16:"b"==t?2:8,n&&n!=r?A:e}),n&&(r=n,i=i.replace(s,"$1").replace(u,"0.$1")),e!=i))return new _(i,r);if(_.DEBUG)throw Error(Uf+"Not a"+(n?" base "+n:"")+" number: "+e);A.s=null}A.c=A.e=null},c.absoluteValue=c.abs=function(){var A=new _(this);return A.s<0&&(A.s=1),A},c.comparedTo=function(A,e){return Zf(this,new _(A,e))},c.decimalPlaces=c.dp=function(A,e){var t,n,r,i=this;if(null!=A)return Jf(A,0,jf),null==e?e=d:Jf(e,0,8),C(new _(i),A+i.e+1,e);if(!(t=i.c))return null;if(n=((r=t.length-1)-Xf(this.e/Yf))*Yf,r=t[r])for(;r%10==0;r/=10,n--);return n<0&&(n=0),n},c.dividedBy=c.div=function(A,e){return t(this,new _(A,e),g,d)},c.dividedToIntegerBy=c.idiv=function(A,e){return t(this,new _(A,e),0,1)},c.exponentiatedBy=c.pow=function(A,e){var t,n,r,i,o,a,s,u,f=this;if((A=new _(A)).c&&!A.isInteger())throw Error(Uf+"Exponent not an integer: "+S(A));if(null!=e&&(e=new _(e)),o=A.e>14,!f.c||!f.c[0]||1==f.c[0]&&!f.e&&1==f.c.length||!A.c||!A.c[0])return u=new _(Math.pow(+S(f),o?A.s*(2-Kf(A)):+S(A))),e?u.mod(e):u;if(a=A.s<0,e){if(e.c?!e.c[0]:!e.s)return new _(NaN);(n=!a&&f.isInteger()&&e.isInteger())&&(f=f.mod(e))}else{if(A.e>9&&(f.e>0||f.e<-1||(0==f.e?f.c[0]>1||o&&f.c[1]>=24e7:f.c[0]<8e13||o&&f.c[0]<=9999975e7)))return i=f.s<0&&Kf(A)?-0:0,f.e>-1&&(i=1/i),new _(a?1/i:i);B&&(i=Gf(B/Yf+2))}for(o?(t=new _(.5),a&&(A.s=1),s=Kf(A)):s=(r=Math.abs(+S(A)))%2,u=new _(h);;){if(s){if(!(u=u.times(f)).c)break;i?u.c.length>i&&(u.c.length=i):n&&(u=u.mod(e))}if(r){if(0===(r=Rf(r/2)))break;s=r%2}else if(C(A=A.times(t),A.e+1,1),A.e>14)s=Kf(A);else{if(0===(r=+S(A)))break;s=r%2}f=f.times(f),i?f.c&&f.c.length>i&&(f.c.length=i):n&&(f=f.mod(e))}return n?u:(a&&(u=h.div(u)),e?u.mod(e):i?C(u,B,d,void 0):u)},c.integerValue=function(A){var e=new _(this);return null==A?A=d:Jf(A,0,8),C(e,e.e+1,A)},c.isEqualTo=c.eq=function(A,e){return 0===Zf(this,new _(A,e))},c.isFinite=function(){return!!this.c},c.isGreaterThan=c.gt=function(A,e){return Zf(this,new _(A,e))>0},c.isGreaterThanOrEqualTo=c.gte=function(A,e){return 1===(e=Zf(this,new _(A,e)))||0===e},c.isInteger=function(){return!!this.c&&Xf(this.e/Yf)>this.c.length-2},c.isLessThan=c.lt=function(A,e){return Zf(this,new _(A,e))<0},c.isLessThanOrEqualTo=c.lte=function(A,e){return-1===(e=Zf(this,new _(A,e)))||0===e},c.isNaN=function(){return!this.s},c.isNegative=function(){return this.s<0},c.isPositive=function(){return this.s>0},c.isZero=function(){return!!this.c&&0==this.c[0]},c.minus=function(A,e){var t,n,r,i,o=this,a=o.s;if(e=(A=new _(A,e)).s,!a||!e)return new _(NaN);if(a!=e)return A.s=-e,o.plus(A);var s=o.e/Yf,u=A.e/Yf,f=o.c,l=A.c;if(!s||!u){if(!f||!l)return f?(A.s=-e,A):new _(l?o:NaN);if(!f[0]||!l[0])return l[0]?(A.s=-e,A):new _(f[0]?o:3==d?-0:0)}if(s=Xf(s),u=Xf(u),f=f.slice(),a=s-u){for((i=a<0)?(a=-a,r=f):(u=s,r=l),r.reverse(),e=a;e--;r.push(0));r.reverse()}else for(n=(i=(a=f.length)<(e=l.length))?a:e,a=e=0;e<n;e++)if(f[e]!=l[e]){i=f[e]<l[e];break}if(i&&(r=f,f=l,l=r,A.s=-A.s),(e=(n=l.length)-(t=f.length))>0)for(;e--;f[t++]=0);for(e=zf-1;n>a;){if(f[--n]<l[n]){for(t=n;t&&!f[--t];f[t]=e);--f[t],f[n]+=zf}f[n]-=l[n]}for(;0==f[0];f.splice(0,1),--u);return f[0]?D(A,f,u):(A.s=3==d?-1:1,A.c=[A.e=0],A)},c.modulo=c.mod=function(A,e){var n,r,i=this;return A=new _(A,e),!i.c||!A.s||A.c&&!A.c[0]?new _(NaN):!A.c||i.c&&!i.c[0]?new _(i):(9==y?(r=A.s,A.s=1,n=t(i,A,0,3),A.s=r,n.s*=r):n=t(i,A,0,y),(A=i.minus(n.times(A))).c[0]||1!=y||(A.s=i.s),A)},c.multipliedBy=c.times=function(A,e){var t,n,r,i,o,a,s,u,f,l,c,h,g,d,p,w=this,v=w.c,m=(A=new _(A,e)).c;if(!(v&&m&&v[0]&&m[0]))return!w.s||!A.s||v&&!v[0]&&!m||m&&!m[0]&&!v?A.c=A.e=A.s=null:(A.s*=w.s,v&&m?(A.c=[0],A.e=0):A.c=A.e=null),A;for(n=Xf(w.e/Yf)+Xf(A.e/Yf),A.s*=w.s,(s=v.length)<(l=m.length)&&(g=v,v=m,m=g,r=s,s=l,l=r),r=s+l,g=[];r--;g.push(0));for(d=zf,p=Vf,r=l;--r>=0;){for(t=0,c=m[r]%p,h=m[r]/p|0,i=r+(o=s);i>r;)t=((u=c*(u=v[--o]%p)+(a=h*u+(f=v[o]/p|0)*c)%p*p+g[i]+t)/d|0)+(a/p|0)+h*f,g[i--]=u%d;g[i]=t}return t?++n:g.splice(0,1),D(A,g,n)},c.negated=function(){var A=new _(this);return A.s=-A.s||null,A},c.plus=function(A,e){var t,n=this,r=n.s;if(e=(A=new _(A,e)).s,!r||!e)return new _(NaN);if(r!=e)return A.s=-e,n.minus(A);var i=n.e/Yf,o=A.e/Yf,a=n.c,s=A.c;if(!i||!o){if(!a||!s)return new _(r/0);if(!a[0]||!s[0])return s[0]?A:new _(a[0]?n:0*r)}if(i=Xf(i),o=Xf(o),a=a.slice(),r=i-o){for(r>0?(o=i,t=s):(r=-r,t=a),t.reverse();r--;t.push(0));t.reverse()}for((r=a.length)-(e=s.length)<0&&(t=s,s=a,a=t,e=r),r=0;e;)r=(a[--e]=a[e]+s[e]+r)/zf|0,a[e]=zf===a[e]?0:a[e]%zf;return r&&(a=[r].concat(a),++o),D(A,a,o)},c.precision=c.sd=function(A,e){var t,n,r,i=this;if(null!=A&&A!==!!A)return Jf(A,1,jf),null==e?e=d:Jf(e,0,8),C(new _(i),A,e);if(!(t=i.c))return null;if(n=(r=t.length-1)*Yf+1,r=t[r]){for(;r%10==0;r/=10,n--);for(r=t[0];r>=10;r/=10,n++);}return A&&i.e+1>n&&(n=i.e+1),n},c.shiftedBy=function(A){return Jf(A,-9007199254740991,Nf),this.times("1e"+A)},c.squareRoot=c.sqrt=function(){var A,e,n,r,i,o=this,a=o.c,s=o.s,u=o.e,f=g+4,l=new _("0.5");if(1!==s||!a||!a[0])return new _(!s||s<0&&(!a||a[0])?NaN:a?o:1/0);if(0==(s=Math.sqrt(+S(o)))||s==1/0?(((e=Wf(a)).length+u)%2==0&&(e+="0"),s=Math.sqrt(+e),u=Xf((u+1)/2)-(u<0||u%2),n=new _(e=s==1/0?"5e"+u:(e=s.toExponential()).slice(0,e.indexOf("e")+1)+u)):n=new _(s+""),n.c[0])for((s=(u=n.e)+f)<3&&(s=0);;)if(i=n,n=l.times(i.plus(t(o,i,f,1))),Wf(i.c).slice(0,s)===(e=Wf(n.c)).slice(0,s)){if(n.e<u&&--s,"9999"!=(e=e.slice(s-3,s+1))&&(r||"4999"!=e)){+e&&(+e.slice(1)||"5"!=e.charAt(0))||(C(n,n.e+g+2,1),A=!n.times(n).eq(o));break}if(!r&&(C(i,i.e+g+2,0),i.times(i).eq(o))){n=i;break}f+=4,s+=4,r=1}return C(n,n.e+g+1,d,A)},c.toExponential=function(A,e){return null!=A&&(Jf(A,0,jf),A++),x(this,A,e,1)},c.toFixed=function(A,e){return null!=A&&(Jf(A,0,jf),A=A+this.e+1),x(this,A,e)},c.toFormat=function(A,e,t){var n,r=this;if(null==t)null!=A&&e&&"object"==typeof e?(t=e,e=null):A&&"object"==typeof A?(t=A,A=e=null):t=E;else if("object"!=typeof t)throw Error(Uf+"Argument not an object: "+t);if(n=r.toFixed(A,e),r.c){var i,o=n.split("."),a=+t.groupSize,s=+t.secondaryGroupSize,u=t.groupSeparator||"",f=o[0],l=o[1],c=r.s<0,h=c?f.slice(1):f,g=h.length;if(s&&(i=a,a=s,s=i,g-=i),a>0&&g>0){for(i=g%a||a,f=h.substr(0,i);i<g;i+=a)f+=u+h.substr(i,a);s>0&&(f+=u+h.slice(i)),c&&(f="-"+f)}n=l?f+(t.decimalSeparator||"")+((s=+t.fractionGroupSize)?l.replace(new RegExp("\\d{"+s+"}\\B","g"),"$&"+(t.fractionGroupSeparator||"")):l):f}return(t.prefix||"")+n+(t.suffix||"")},c.toFraction=function(A){var e,n,r,i,o,a,s,u,f,l,c,g,p=this,w=p.c;if(null!=A&&(!(s=new _(A)).isInteger()&&(s.c||1!==s.s)||s.lt(h)))throw Error(Uf+"Argument "+(s.isInteger()?"out of range: ":"not an integer: ")+S(s));if(!w)return new _(p);for(e=new _(h),f=n=new _(h),r=u=new _(h),g=Wf(w),o=e.e=g.length-p.e-1,e.c[0]=Hf[(a=o%Yf)<0?Yf+a:a],A=!A||s.comparedTo(e)>0?o>0?e:f:s,a=m,m=1/0,s=new _(g),u.c[0]=0;l=t(s,e,0,1),1!=(i=n.plus(l.times(r))).comparedTo(A);)n=r,r=i,f=u.plus(l.times(i=f)),u=i,e=s.minus(l.times(i=e)),s=i;return i=t(A.minus(n),r,0,1),u=u.plus(i.times(f)),n=n.plus(i.times(r)),u.s=f.s=p.s,c=t(f,r,o*=2,d).minus(p).abs().comparedTo(t(u,n,o,d).minus(p).abs())<1?[f,r]:[u,n],m=a,c},c.toNumber=function(){return+S(this)},c.toPrecision=function(A,e){return null!=A&&Jf(A,1,jf),x(this,A,e,2)},c.toString=function(A){var e,t=this,r=t.s,i=t.e;return null===i?r?(e="Infinity",r<0&&(e="-"+e)):e="NaN":(null==A?e=i<=p||i>=w?qf(Wf(t.c),i):$f(Wf(t.c),i,"0"):10===A&&k?e=$f(Wf((t=C(new _(t),g+i+1,d)).c),t.e,"0"):(Jf(A,2,M.length,"Base"),e=n($f(Wf(t.c),i,"0"),10,A,r,!0)),r<0&&t.c[0]&&(e="-"+e)),e},c.valueOf=c.toJSON=function(){return S(this)},c._isBigNumber=!0,c[Symbol.toStringTag]="BigNumber",c[Symbol.for("nodejs.util.inspect.custom")]=c.valueOf,null!=e&&_.set(e),_}(),el=class{key;left=null;right=null;constructor(A){this.key=A}},tl=class extends el{constructor(A){super(A)}},nl=class{size=0;modificationCount=0;splayCount=0;splay(A){const e=this.root;if(null==e)return this.compare(A,A),-1;let t=null,n=null,r=null,i=null,o=e;const a=this.compare;let s;for(;;)if(s=a(o.key,A),s>0){let e=o.left;if(null==e)break;if(s=a(e.key,A),s>0&&(o.left=e.right,e.right=o,o=e,e=o.left,null==e))break;null==t?n=o:t.left=o,t=o,o=e}else{if(!(s<0))break;{let e=o.right;if(null==e)break;if(s=a(e.key,A),s<0&&(o.right=e.left,e.left=o,o=e,e=o.right,null==e))break;null==r?i=o:r.right=o,r=o,o=e}}return null!=r&&(r.right=o.left,o.left=i),null!=t&&(t.left=o.right,o.right=n),this.root!==o&&(this.root=o,this.splayCount++),s}splayMin(A){let e=A,t=e.left;for(;null!=t;){const A=t;e.left=A.right,A.right=e,e=A,t=e.left}return e}splayMax(A){let e=A,t=e.right;for(;null!=t;){const A=t;e.right=A.left,A.left=e,e=A,t=e.right}return e}_delete(A){if(null==this.root)return null;if(0!=this.splay(A))return null;let e=this.root;const t=e,n=e.left;if(this.size--,null==n)this.root=e.right;else{const A=e.right;e=this.splayMax(n),e.right=A,this.root=e}return this.modificationCount++,t}addNewRoot(A,e){this.size++,this.modificationCount++;const t=this.root;null!=t?(e<0?(A.left=t,A.right=t.right,t.right=null):(A.right=t,A.left=t.left,t.left=null),this.root=A):this.root=A}_first(){const A=this.root;return null==A?null:(this.root=this.splayMin(A),this.root)}_last(){const A=this.root;return null==A?null:(this.root=this.splayMax(A),this.root)}clear(){this.root=null,this.size=0,this.modificationCount++}has(A){return this.validKey(A)&&0==this.splay(A)}defaultCompare(){return(A,e)=>A<e?-1:A>e?1:0}wrap(){return{getRoot:()=>this.root,setRoot:A=>{this.root=A},getSize:()=>this.size,getModificationCount:()=>this.modificationCount,getSplayCount:()=>this.splayCount,setSplayCount:A=>{this.splayCount=A},splay:A=>this.splay(A),has:A=>this.has(A)}}},rl=class A extends nl{root=null;compare;validKey;constructor(A,e){super(),this.compare=A??this.defaultCompare(),this.validKey=e??(A=>null!=A&&null!=A)}delete(A){return!!this.validKey(A)&&null!=this._delete(A)}deleteAll(A){for(const e of A)this.delete(e)}forEach(A){const e=this[Symbol.iterator]();let t;for(;t=e.next(),!t.done;)A(t.value,t.value,this)}add(A){const e=this.splay(A);return 0!=e&&this.addNewRoot(new tl(A),e),this}addAndReturn(A){const e=this.splay(A);return 0!=e&&this.addNewRoot(new tl(A),e),this.root.key}addAll(A){for(const e of A)this.add(e)}isEmpty(){return null==this.root}isNotEmpty(){return null!=this.root}single(){if(0==this.size)throw"Bad state: No element";if(this.size>1)throw"Bad state: Too many element";return this.root.key}first(){if(0==this.size)throw"Bad state: No element";return this._first().key}last(){if(0==this.size)throw"Bad state: No element";return this._last().key}lastBefore(A){if(null==A)throw"Invalid arguments(s)";if(null==this.root)return null;if(this.splay(A)<0)return this.root.key;let e=this.root.left;if(null==e)return null;let t=e.right;for(;null!=t;)e=t,t=e.right;return e.key}firstAfter(A){if(null==A)throw"Invalid arguments(s)";if(null==this.root)return null;if(this.splay(A)>0)return this.root.key;let e=this.root.right;if(null==e)return null;let t=e.left;for(;null!=t;)e=t,t=e.left;return e.key}retainAll(e){const t=new A(this.compare,this.validKey),n=this.modificationCount;for(const A of e){if(n!=this.modificationCount)throw"Concurrent modification during iteration.";this.validKey(A)&&0==this.splay(A)&&t.add(this.root.key)}t.size!=this.size&&(this.root=t.root,this.size=t.size,this.modificationCount++)}lookup(A){if(!this.validKey(A))return null;return 0!=this.splay(A)?null:this.root.key}intersection(e){const t=new A(this.compare,this.validKey);for(const A of this)e.has(A)&&t.add(A);return t}difference(e){const t=new A(this.compare,this.validKey);for(const A of this)e.has(A)||t.add(A);return t}union(A){const e=this.clone();return e.addAll(A),e}clone(){const e=new A(this.compare,this.validKey);return e.size=this.size,e.root=this.copyNode(this.root),e}copyNode(A){if(null==A)return null;const e=new tl(A.key);return function A(e,t){let n,r;do{if(n=e.left,r=e.right,null!=n){const e=new tl(n.key);t.left=e,A(n,e)}if(null!=r){const A=new tl(r.key);t.right=A,e=r,t=A}}while(null!=r)}(A,e),e}toSet(){return this.clone()}entries(){return new al(this.wrap())}keys(){return this[Symbol.iterator]()}values(){return this[Symbol.iterator]()}[Symbol.iterator](){return new ol(this.wrap())}[Symbol.toStringTag]="[object Set]"},il=class{tree;path=new Array;modificationCount=null;splayCount;constructor(A){this.tree=A,this.splayCount=A.getSplayCount()}[Symbol.iterator](){return this}next(){return this.moveNext()?{done:!1,value:this.current()}:{done:!0,value:null}}current(){if(!this.path.length)return null;const A=this.path[this.path.length-1];return this.getValue(A)}rebuildPath(A){this.path.splice(0,this.path.length),this.tree.splay(A),this.path.push(this.tree.getRoot()),this.splayCount=this.tree.getSplayCount()}findLeftMostDescendent(A){for(;null!=A;)this.path.push(A),A=A.left}moveNext(){if(this.modificationCount!=this.tree.getModificationCount()){if(null==this.modificationCount){this.modificationCount=this.tree.getModificationCount();let A=this.tree.getRoot();for(;null!=A;)this.path.push(A),A=A.left;return this.path.length>0}throw"Concurrent modification during iteration."}if(!this.path.length)return!1;this.splayCount!=this.tree.getSplayCount()&&this.rebuildPath(this.path[this.path.length-1].key);let A=this.path[this.path.length-1],e=A.right;if(null!=e){for(;null!=e;)this.path.push(e),e=e.left;return!0}for(this.path.pop();this.path.length&&this.path[this.path.length-1].right===A;)A=this.path.pop();return this.path.length>0}},ol=class extends il{getValue(A){return A.key}},al=class extends il{getValue(A){return[A.key,A.key]}},sl=A=>()=>A,ul=A=>{const e=A?(e,t)=>t.minus(e).abs().isLessThanOrEqualTo(A):sl(!1);return(A,t)=>e(A,t)?0:A.comparedTo(t)};function fl(A){const e=A?(e,t,n,r,i)=>e.exponentiatedBy(2).isLessThanOrEqualTo(r.minus(t).exponentiatedBy(2).plus(i.minus(n).exponentiatedBy(2)).times(A)):sl(!1);return(A,t,n)=>{const r=A.x,i=A.y,o=n.x,a=n.y,s=i.minus(a).times(t.x.minus(o)).minus(r.minus(o).times(t.y.minus(a)));return e(s,r,i,o,a)?0:s.comparedTo(0)}}var ll=A=>A,cl=A=>{if(A){const e=new rl(ul(A)),t=new rl(ul(A)),n=(A,e)=>e.addAndReturn(A),r=A=>({x:n(A.x,e),y:n(A.y,t)});return r({x:new Al(0),y:new Al(0)}),r}return ll},hl=A=>({set:A=>{gl=hl(A)},reset:()=>hl(A),compare:ul(A),snap:cl(A),orient:fl(A)}),gl=hl(),dl=(A,e)=>A.ll.x.isLessThanOrEqualTo(e.x)&&e.x.isLessThanOrEqualTo(A.ur.x)&&A.ll.y.isLessThanOrEqualTo(e.y)&&e.y.isLessThanOrEqualTo(A.ur.y),pl=(A,e)=>{if(e.ur.x.isLessThan(A.ll.x)||A.ur.x.isLessThan(e.ll.x)||e.ur.y.isLessThan(A.ll.y)||A.ur.y.isLessThan(e.ll.y))return null;const t=A.ll.x.isLessThan(e.ll.x)?e.ll.x:A.ll.x,n=A.ur.x.isLessThan(e.ur.x)?A.ur.x:e.ur.x;return{ll:{x:t,y:A.ll.y.isLessThan(e.ll.y)?e.ll.y:A.ll.y},ur:{x:n,y:A.ur.y.isLessThan(e.ur.y)?A.ur.y:e.ur.y}}},wl=(A,e)=>A.x.times(e.y).minus(A.y.times(e.x)),vl=(A,e)=>A.x.times(e.x).plus(A.y.times(e.y)),ml=A=>vl(A,A).sqrt(),bl=(A,e,t)=>{const n={x:e.x.minus(A.x),y:e.y.minus(A.y)},r={x:t.x.minus(A.x),y:t.y.minus(A.y)};return wl(r,n).div(ml(r)).div(ml(n))},yl=(A,e,t)=>{const n={x:e.x.minus(A.x),y:e.y.minus(A.y)},r={x:t.x.minus(A.x),y:t.y.minus(A.y)};return vl(r,n).div(ml(r)).div(ml(n))},Bl=(A,e,t)=>e.y.isZero()?null:{x:A.x.plus(e.x.div(e.y).times(t.minus(A.y))),y:t},El=(A,e,t)=>e.x.isZero()?null:{x:t,y:A.y.plus(e.y.div(e.x).times(t.minus(A.x)))},Ml=class A{point;isLeft;segment;otherSE;consumedBy;static compare(e,t){const n=A.comparePoints(e.point,t.point);return 0!==n?n:(e.point!==t.point&&e.link(t),e.isLeft!==t.isLeft?e.isLeft?1:-1:Il.compare(e.segment,t.segment))}static comparePoints(A,e){return A.x.isLessThan(e.x)?-1:A.x.isGreaterThan(e.x)?1:A.y.isLessThan(e.y)?-1:A.y.isGreaterThan(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 n=e+1;n<A;n++){const A=this.point.events[n];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 n=t.otherSE;e.set(t,{sine:bl(this.point,A.point,n.point),cosine:yl(this.point,A.point,n.point)})};return(A,n)=>{e.has(A)||t(A),e.has(n)||t(n);const{sine:r,cosine:i}=e.get(A),{sine:o,cosine:a}=e.get(n);return r.isGreaterThanOrEqualTo(0)&&o.isGreaterThanOrEqualTo(0)?i.isLessThan(a)?1:i.isGreaterThan(a)?-1:0:r.isLessThan(0)&&o.isLessThan(0)?i.isLessThan(a)?-1:i.isGreaterThan(a)?1:0:o.isLessThan(r)?-1:o.isGreaterThan(r)?1:0}}},kl=class A{events;poly;_isExteriorRing;_enclosingRing;static factory(e){const t=[];for(let n=0,r=e.length;n<r;n++){const r=e[n];if(!r.isInResult()||r.ringOut)continue;let i=null,o=r.leftSE,a=r.rightSE;const s=[o],u=o.point,f=[];for(;i=o,o=a,s.push(o),o.point!==u;)for(;;){const e=o.getAvailableLinkedEvents();if(0===e.length){const A=s[0].point,e=s[s.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===e.length){a=e[0].otherSE;break}let n=null;for(let A=0,e=f.length;A<e;A++)if(f[A].point===o.point){n=A;break}if(null!==n){const e=f.splice(n)[0],r=s.splice(e.index);r.unshift(r[0].otherSE),t.push(new A(r.reverse()));continue}f.push({index:s.length,point:o.point});const r=o.getLeftmostComparator(i);a=e.sort(r)[0].otherSE;break}t.push(new A(s))}return t}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,n=this.events.length-1;t<n;t++){const n=this.events[t].point,r=this.events[t+1].point;0!==gl.orient(n,A,r)&&(e.push(n),A=n)}if(1===e.length)return null;const t=e[0],n=e[1];0===gl.orient(t,A,n)&&e.shift(),e.push(e[0]);const r=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+=r)a.push([e[A].x.toNumber(),e[A].y.toNumber()]);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];Ml.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}}},_l=class{exteriorRing;interiorRings;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)return null;const e=[A];for(let A=0,t=this.interiorRings.length;A<t;A++){const t=this.interiorRings[A].getGeom();null!==t&&e.push(t)}return e}},xl=class{rings;polys;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,n=A.length;t<n;t++){const n=A[t];if(!n.poly)if(n.isExteriorRing())e.push(new _l(n));else{const A=n.enclosingRing();A?.poly||e.push(new _l(A)),A?.poly?.addInterior(n)}}return e}},Ql=class{queue;tree;segments;constructor(A,e=Il.compare){this.queue=A,this.tree=new rl(e),this.segments=[]}process(A){const e=A.segment,t=[];if(A.consumedBy)return A.isLeft?this.queue.delete(A.otherSE):this.tree.delete(e),t;A.isLeft&&this.tree.add(e);let n=e,r=e;do{n=this.tree.lastBefore(n)}while(null!=n&&null!=n.consumedBy);do{r=this.tree.firstAfter(r)}while(null!=r&&null!=r.consumedBy);if(A.isLeft){let i=null;if(n){const A=n.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(i=A),!n.isAnEndpoint(A))){const e=this._splitSafely(n,A);for(let A=0,n=e.length;A<n;A++)t.push(e[A])}}let o=null;if(r){const A=r.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(o=A),!r.isAnEndpoint(A))){const e=this._splitSafely(r,A);for(let A=0,n=e.length;A<n;A++)t.push(e[A])}}if(null!==i||null!==o){let A=null;if(null===i)A=o;else if(null===o)A=i;else{A=Ml.comparePoints(i,o)<=0?i:o}this.queue.delete(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.delete(e),t.push(A)):(this.segments.push(e),e.prev=n)}else{if(n&&r){const A=n.getIntersection(r);if(null!==A){if(!n.isAnEndpoint(A)){const e=this._splitSafely(n,A);for(let A=0,n=e.length;A<n;A++)t.push(e[A])}if(!r.isAnEndpoint(A)){const e=this._splitSafely(r,A);for(let A=0,n=e.length;A<n;A++)t.push(e[A])}}}this.tree.delete(e)}return t}_splitSafely(A,e){this.tree.delete(A);const t=A.rightSE;this.queue.delete(t);const n=A.split(e);return n.push(t),void 0===A.consumedBy&&this.tree.add(A),n}},Dl=new class{type;numMultiPolys;run(A,e,t){Dl.type=A;const n=[new Tl(e,!0)];for(let A=0,e=t.length;A<e;A++)n.push(new Tl(t[A],!1));if(Dl.numMultiPolys=n.length,"difference"===Dl.type){const A=n[0];let e=1;for(;e<n.length;)null!==pl(n[e].bbox,A.bbox)?e++:n.splice(e,1)}if("intersection"===Dl.type)for(let A=0,e=n.length;A<e;A++){const e=n[A];for(let t=A+1,r=n.length;t<r;t++)if(null===pl(e.bbox,n[t].bbox))return[]}const r=new rl(Ml.compare);for(let A=0,e=n.length;A<e;A++){const e=n[A].getSweepEvents();for(let A=0,t=e.length;A<t;A++)r.add(e[A])}const i=new Ql(r);let o=null;for(0!=r.size&&(o=r.first(),r.delete(o));o;){const A=i.process(o);for(let e=0,t=A.length;e<t;e++){const t=A[e];void 0===t.consumedBy&&r.add(t)}0!=r.size?(o=r.first(),r.delete(o)):o=null}gl.reset();const a=kl.factory(i.segments);return new xl(a).getGeom()}},Cl=Dl,Sl=0,Il=class A{id;leftSE;rightSE;rings;windings;ringOut;consumedBy;prev;_prevInResult;_beforeState;_afterState;_isInResult;static compare(A,e){const t=A.leftSE.point.x,n=e.leftSE.point.x,r=A.rightSE.point.x,i=e.rightSE.point.x;if(i.isLessThan(t))return 1;if(r.isLessThan(n))return-1;const o=A.leftSE.point.y,a=e.leftSE.point.y,s=A.rightSE.point.y,u=e.rightSE.point.y;if(t.isLessThan(n)){if(a.isLessThan(o)&&a.isLessThan(s))return 1;if(a.isGreaterThan(o)&&a.isGreaterThan(s))return-1;const t=A.comparePoint(e.leftSE.point);if(t<0)return 1;if(t>0)return-1;const n=e.comparePoint(A.rightSE.point);return 0!==n?n:-1}if(t.isGreaterThan(n)){if(o.isLessThan(a)&&o.isLessThan(u))return-1;if(o.isGreaterThan(a)&&o.isGreaterThan(u))return 1;const t=e.comparePoint(A.leftSE.point);if(0!==t)return t;const n=A.comparePoint(e.rightSE.point);return n<0?1:n>0?-1:1}if(o.isLessThan(a))return-1;if(o.isGreaterThan(a))return 1;if(r.isLessThan(i)){const t=e.comparePoint(A.rightSE.point);if(0!==t)return t}if(r.isGreaterThan(i)){const t=A.comparePoint(e.rightSE.point);if(t<0)return 1;if(t>0)return-1}if(!r.eq(i)){const A=s.minus(o),e=r.minus(t),f=u.minus(a),l=i.minus(n);if(A.isGreaterThan(e)&&f.isLessThan(l))return 1;if(A.isLessThan(e)&&f.isGreaterThan(l))return-1}return r.isGreaterThan(i)?1:r.isLessThan(i)||s.isLessThan(u)?-1:s.isGreaterThan(u)?1:A.id<e.id?-1:A.id>e.id?1:0}constructor(A,e,t,n){this.id=++Sl,this.leftSE=A,A.segment=this,A.otherSE=e,this.rightSE=e,e.segment=this,e.otherSE=A,this.rings=t,this.windings=n}static fromRing(e,t,n){let r,i,o;const a=Ml.comparePoints(e,t);if(a<0)r=e,i=t,o=1;else{if(!(a>0))throw new Error(`Tried to create degenerate segment at [${e.x}, ${e.y}]`);r=t,i=e,o=-1}const s=new Ml(r,!0),u=new Ml(i,!1);return new A(s,u,[n],[o])}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.isLessThan(e)?A:e},ur:{x:this.rightSE.point.x,y:A.isGreaterThan(e)?A:e}}}vector(){return{x:this.rightSE.point.x.minus(this.leftSE.point.x),y:this.rightSE.point.y.minus(this.leftSE.point.y)}}isAnEndpoint(A){return A.x.eq(this.leftSE.point.x)&&A.y.eq(this.leftSE.point.y)||A.x.eq(this.rightSE.point.x)&&A.y.eq(this.rightSE.point.y)}comparePoint(A){return gl.orient(this.leftSE.point,A,this.rightSE.point)}getIntersection(A){const e=this.bbox(),t=A.bbox(),n=pl(e,t);if(null===n)return null;const r=this.leftSE.point,i=this.rightSE.point,o=A.leftSE.point,a=A.rightSE.point,s=dl(e,o)&&0===this.comparePoint(o),u=dl(t,r)&&0===A.comparePoint(r),f=dl(e,a)&&0===this.comparePoint(a),l=dl(t,i)&&0===A.comparePoint(i);if(u&&s)return l&&!f?i:!l&&f?a:null;if(u)return f&&r.x.eq(a.x)&&r.y.eq(a.y)?null:r;if(s)return l&&i.x.eq(o.x)&&i.y.eq(o.y)?null:o;if(l&&f)return null;if(l)return i;if(f)return a;const c=((A,e,t,n)=>{if(e.x.isZero())return El(t,n,A.x);if(n.x.isZero())return El(A,e,t.x);if(e.y.isZero())return Bl(t,n,A.y);if(n.y.isZero())return Bl(A,e,t.y);const r=wl(e,n);if(r.isZero())return null;const i={x:t.x.minus(A.x),y:t.y.minus(A.y)},o=wl(i,e).div(r),a=wl(i,n).div(r),s=A.x.plus(a.times(e.x)),u=t.x.plus(o.times(n.x)),f=A.y.plus(a.times(e.y)),l=t.y.plus(o.times(n.y));return{x:s.plus(u).div(2),y:f.plus(l).div(2)}})(r,this.vector(),o,A.vector());return null===c?null:dl(n,c)?gl.snap(c):null}split(e){const t=[],n=void 0!==e.events,r=new Ml(e,!0),i=new Ml(e,!1),o=this.rightSE;this.replaceRightSE(i),t.push(i),t.push(r);const a=new A(r,o,this.rings.slice(),this.windings.slice());return Ml.comparePoints(a.leftSE.point,a.rightSE.point)>0&&a.swapEvents(),Ml.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(r.checkForConsuming(),i.checkForConsuming()),t}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(e){let t=this,n=e;for(;t.consumedBy;)t=t.consumedBy;for(;n.consumedBy;)n=n.consumedBy;const r=A.compare(t,n);if(0!==r){if(r>0){const A=t;t=n,n=A}if(t.prev===n){const A=t;t=n,n=A}for(let A=0,e=n.rings.length;A<e;A++){const e=n.rings[A],r=n.windings[A],i=t.rings.indexOf(e);-1===i?(t.rings.push(e),t.windings.push(r)):t.windings[i]+=r}n.rings=null,n.windings=null,n.consumedBy=t,n.leftSE.consumedBy=t.leftSE,n.rightSE.consumedBy=t.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,n=this._afterState.multiPolys;for(let A=0,n=this.rings.length;A<n;A++){const n=this.rings[A],r=this.windings[A],i=e.indexOf(n);-1===i?(e.push(n),t.push(r)):t[i]+=r}const r=[],i=[];for(let A=0,n=e.length;A<n;A++){if(0===t[A])continue;const n=e[A],o=n.poly;if(-1===i.indexOf(o))if(n.isExterior)r.push(o);else{-1===i.indexOf(o)&&i.push(o);const A=r.indexOf(n.poly);-1!==A&&r.splice(A,1)}}for(let A=0,e=r.length;A<e;A++){const e=r[A].multiPoly;-1===n.indexOf(e)&&n.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(Cl.type){case"union":{const t=0===A.length,n=0===e.length;this._isInResult=t!==n;break}case"intersection":{let t,n;A.length<e.length?(t=A.length,n=e.length):(t=e.length,n=A.length),this._isInResult=n===Cl.numMultiPolys&&t<n;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}}return this._isInResult}},Pl=class{poly;isExterior;segments;bbox;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 n=gl.snap({x:new Al(A[0][0]),y:new Al(A[0][1])});this.bbox={ll:{x:n.x,y:n.y},ur:{x:n.x,y:n.y}};let r=n;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");const t=gl.snap({x:new Al(A[e][0]),y:new Al(A[e][1])});t.x.eq(r.x)&&t.y.eq(r.y)||(this.segments.push(Il.fromRing(r,t,this)),t.x.isLessThan(this.bbox.ll.x)&&(this.bbox.ll.x=t.x),t.y.isLessThan(this.bbox.ll.y)&&(this.bbox.ll.y=t.y),t.x.isGreaterThan(this.bbox.ur.x)&&(this.bbox.ur.x=t.x),t.y.isGreaterThan(this.bbox.ur.y)&&(this.bbox.ur.y=t.y),r=t)}n.x.eq(r.x)&&n.y.eq(r.y)||this.segments.push(Il.fromRing(r,n,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}},Fl=class{multiPoly;exteriorRing;interiorRings;bbox;constructor(A,e){if(!Array.isArray(A))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new Pl(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 Pl(A[e],this,!1);t.bbox.ll.x.isLessThan(this.bbox.ll.x)&&(this.bbox.ll.x=t.bbox.ll.x),t.bbox.ll.y.isLessThan(this.bbox.ll.y)&&(this.bbox.ll.y=t.bbox.ll.y),t.bbox.ur.x.isGreaterThan(this.bbox.ur.x)&&(this.bbox.ur.x=t.bbox.ur.x),t.bbox.ur.y.isGreaterThan(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,n=t.length;e<n;e++)A.push(t[e])}return A}},Tl=class{isSubject;polys;bbox;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:new Al(Number.POSITIVE_INFINITY),y:new Al(Number.POSITIVE_INFINITY)},ur:{x:new Al(Number.NEGATIVE_INFINITY),y:new Al(Number.NEGATIVE_INFINITY)}};for(let e=0,t=A.length;e<t;e++){const t=new Fl(A[e],this);t.bbox.ll.x.isLessThan(this.bbox.ll.x)&&(this.bbox.ll.x=t.bbox.ll.x),t.bbox.ll.y.isLessThan(this.bbox.ll.y)&&(this.bbox.ll.y=t.bbox.ll.y),t.bbox.ur.x.isGreaterThan(this.bbox.ur.x)&&(this.bbox.ur.x=t.bbox.ur.x),t.bbox.ur.y.isGreaterThan(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,n=t.length;e<n;e++)A.push(t[e])}return A}};function Ll(A,e={}){const t=[];if(dA(A,A=>{t.push(A.coordinates)}),t.length<2)throw new Error("Must specify at least 2 geometries");const n=((A,...e)=>Cl.run("intersection",A,e))(t[0],...t.slice(1));return 0===n.length?null:1===n.length?Y(n[0],e.properties):function(A,e,t={}){return O({type:"MultiPolygon",coordinates:A},e,t)}(n,e.properties)}function Gl(A){return function(A,e,t){var n=t;return dA(A,function(A,t,r,i,o){n=e(n,A,t,r,i,o)}),n}(A,(A,e)=>A+function(A){let e,t=0;switch(A.type){case"Polygon":return Rl(A.coordinates);case"MultiPolygon":for(e=0;e<A.coordinates.length;e++)t+=Rl(A.coordinates[e]);return t;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}(e),0)}function Rl(A){let e=0;if(A&&A.length>0){e+=Math.abs(zl(A[0]));for(let t=1;t<A.length;t++)e-=Math.abs(zl(A[t]))}return e}gl.set;var Ul=20294876564838.72,Ol=Math.PI/180;function zl(A){const e=A.length-1;if(e<=2)return 0;let t=0,n=0;for(;n<e;){const r=A[n],i=A[n+1===e?0:n+1],o=A[n+2>=e?(n+2)%e:n+2],a=r[0]*Ol,s=i[1]*Ol;t+=(o[0]*Ol-a)*Math.sin(s),n++}return t*Ul}function Yl(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{grid:e,polygons:t,var:n,values:r=!1,spherical:i=!1}=A;const o=performance.now(),a=function(A,e){let t,n,r=3,i=4.5;function o(A){return A&&("function"==typeof i&&n.pointRadius(+i.apply(this,arguments)),Rs(A,t(n))),n.result()}return o.area=function(A){return Rs(A,t(mu)),mu.result()},o.measure=function(A){return Rs(A,t(of)),of.result()},o.bounds=function(A){return Rs(A,t(Qu)),Qu.result()},o.centroid=function(A){return Rs(A,t(Yu)),Yu.result()},o.projection=function(e){return arguments.length?(t=null==e?(A=null,pu):(A=e).stream,o):A},o.context=function(A){return arguments.length?(n=null==A?(e=null,new hf(r)):new qu(e=A),"function"!=typeof i&&n.pointRadius(i),o):e},o.pointRadius=function(A){return arguments.length?(i="function"==typeof A?A:(n.pointRadius(+A),+A),o):i},o.digits=function(A){if(!arguments.length)return r;if(null==A)r=null;else{const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);r=e}return null===e&&(n=new hf(r)),o},o.projection(A).digits(r).context(e)}();i&&(e=Ff(e));const s=n?Array.isArray(n)?n:[n]:[];for(const A of t.features)i?A.properties.area_spherical=Gl(A):A.properties.area_plan=a.area(A);for(const A of e.features){i?A.properties.area_spherical=Gl(A):A.properties.area_plan=a.area(A),A.properties.count=0;for(const e of s)A.properties[e]=0;r&&(A.properties.values=[])}const u=new qa,f=e.features.map(A=>{const[e,t,n,r]=hs(A);return{minX:e,minY:t,maxX:n,maxY:r,cell:A}});u.load(f);for(const A of t.features){const[e,t,n,o]=hs(A),f=u.search({minX:e,minY:t,maxX:n,maxY:o});for(const e of f){const t=e.cell;if(!A||!t)continue;const n=Ll({type:"FeatureCollection",features:[A,t]});if(!n)continue;const o=(i?Gl(n):a.area(n))/(i?A.properties.area_spherical:A.properties.area_plan);t.properties.count+=1;for(const e of s){const n=parseFloat(A.properties[e]);t.properties[e]+=isNaN(n)?0:n*o}r&&t.properties.values.push({...A.properties})}}const l={...e,features:e.features.filter(A=>A.properties.count>0)},c=performance.now();return console.log(`Intersection completed for ${l.features.length} cells — ${(c-o).toFixed(2)} ms`),i?gs(l):l}function Nl(A,e,t,n,r){Hl(A,e,t||0,n||A.length-1,r||jl)}function Hl(A,e,t,n,r){for(;n>t;){if(n-t>600){var i=n-t+1,o=e-t+1,a=Math.log(i),s=.5*Math.exp(2*a/3),u=.5*Math.sqrt(a*s*(i-s)/i)*(o-i/2<0?-1:1);Hl(A,e,Math.max(t,Math.floor(e-o*s/i+u)),Math.min(n,Math.floor(e+(i-o)*s/i+u)),r)}var f=A[e],l=t,c=n;for(Vl(A,t,e),r(A[n],f)>0&&Vl(A,t,n);l<c;){for(Vl(A,l,c),l++,c--;r(A[l],f)<0;)l++;for(;r(A[c],f)>0;)c--}0===r(A[t],f)?Vl(A,t,c):Vl(A,++c,n),c<=e&&(t=c+1),e<=c&&(n=c-1)}}function Vl(A,e,t){var n=A[e];A[e]=A[t],A[t]=n}function jl(A,e){return A<e?-1:A>e?1:0}let Xl=class{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(!ic(A,e))return t;const n=this.toBBox,r=[];for(;e;){for(let i=0;i<e.children.length;i++){const o=e.children[i],a=e.leaf?n(o):o;ic(A,a)&&(e.leaf?t.push(o):rc(A,a)?this._all(o,t):r.push(o))}e=r.pop()}return t}collides(A){let e=this.data;if(!ic(A,e))return!1;const t=[];for(;e;){for(let n=0;n<e.children.length;n++){const r=e.children[n],i=e.leaf?this.toBBox(r):r;if(ic(A,i)){if(e.leaf||rc(A,i))return!0;t.push(r)}}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=oc([]),this}remove(A,e){if(!A)return this;let t=this.data;const n=this.toBBox(A),r=[],i=[];let o,a,s;for(;t||r.length;){if(t||(t=r.pop(),a=r[r.length-1],o=i.pop(),s=!0),t.leaf){const n=Wl(A,t.children,e);if(-1!==n)return t.children.splice(n,1),r.push(t),this._condense(r),this}s||t.leaf||!rc(t,n)?a?(o++,t=a.children[o],s=!1):t=null:(r.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,n){const r=t-e+1;let i,o=this._maxEntries;if(r<=o)return i=oc(A.slice(e,t+1)),Zl(i,this.toBBox),i;n||(n=Math.ceil(Math.log(r)/Math.log(o)),o=Math.ceil(r/Math.pow(o,n-1))),i=oc([]),i.leaf=!1,i.height=n;const a=Math.ceil(r/o),s=a*Math.ceil(Math.sqrt(o));ac(A,e,t,s,this.compareMinX);for(let r=e;r<=t;r+=s){const e=Math.min(r+s-1,t);ac(A,r,e,a,this.compareMinY);for(let t=r;t<=e;t+=a){const r=Math.min(t+a-1,e);i.children.push(this._build(A,t,r,n-1))}}return Zl(i,this.toBBox),i}_chooseSubtree(A,e,t,n){for(;n.push(e),!e.leaf&&n.length-1!==t;){let t,n=1/0,r=1/0;for(let i=0;i<e.children.length;i++){const o=e.children[i],a=Ac(o),s=tc(A,o)-a;s<r?(r=s,n=a<n?a:n,t=o):s===r&&a<n&&(n=a,t=o)}e=t||e.children[0]}return e}_insert(A,e,t){const n=t?A:this.toBBox(A),r=[],i=this._chooseSubtree(n,this.data,e,r);for(i.children.push(A),Kl(i,n);e>=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)}_split(A,e){const t=A[e],n=t.children.length,r=this._minEntries;this._chooseSplitAxis(t,r,n);const i=this._chooseSplitIndex(t,r,n),o=oc(t.children.splice(i,t.children.length-i));o.height=t.height,o.leaf=t.leaf,Zl(t,this.toBBox),Zl(o,this.toBBox),e?A[e-1].children.push(o):this._splitRoot(t,o)}_splitRoot(A,e){this.data=oc([A,e]),this.data.height=A.height+1,this.data.leaf=!1,Zl(this.data,this.toBBox)}_chooseSplitIndex(A,e,t){let n,r=1/0,i=1/0;for(let o=e;o<=t-e;o++){const e=Jl(A,0,o,this.toBBox),a=Jl(A,o,t,this.toBBox),s=nc(e,a),u=Ac(e)+Ac(a);s<r?(r=s,n=o,i=u<i?u:i):s===r&&u<i&&(i=u,n=o)}return n||t-e}_chooseSplitAxis(A,e,t){const n=A.leaf?this.compareMinX:ql,r=A.leaf?this.compareMinY:$l;this._allDistMargin(A,e,t,n)<this._allDistMargin(A,e,t,r)&&A.children.sort(n)}_allDistMargin(A,e,t,n){A.children.sort(n);const r=this.toBBox,i=Jl(A,0,e,r),o=Jl(A,t-e,t,r);let a=ec(i)+ec(o);for(let n=e;n<t-e;n++){const e=A.children[n];Kl(i,A.leaf?r(e):e),a+=ec(i)}for(let n=t-e-1;n>=e;n--){const e=A.children[n];Kl(o,A.leaf?r(e):e),a+=ec(o)}return a}_adjustParentBBoxes(A,e,t){for(let n=t;n>=0;n--)Kl(e[n],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():Zl(A[t],this.toBBox)}};function Wl(A,e,t){if(!t)return e.indexOf(A);for(let n=0;n<e.length;n++)if(t(A,e[n]))return n;return-1}function Zl(A,e){Jl(A,0,A.children.length,e,A)}function Jl(A,e,t,n,r){r||(r=oc(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(let i=e;i<t;i++){const e=A.children[i];Kl(r,A.leaf?n(e):e)}return r}function Kl(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 ql(A,e){return A.minX-e.minX}function $l(A,e){return A.minY-e.minY}function Ac(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function ec(A){return A.maxX-A.minX+(A.maxY-A.minY)}function tc(A,e){return(Math.max(e.maxX,A.maxX)-Math.min(e.minX,A.minX))*(Math.max(e.maxY,A.maxY)-Math.min(e.minY,A.minY))}function nc(A,e){const t=Math.max(A.minX,e.minX),n=Math.max(A.minY,e.minY),r=Math.min(A.maxX,e.maxX),i=Math.min(A.maxY,e.maxY);return Math.max(0,r-t)*Math.max(0,i-n)}function rc(A,e){return A.minX<=e.minX&&A.minY<=e.minY&&e.maxX<=A.maxX&&e.maxY<=A.maxY}function ic(A,e){return e.minX<=A.maxX&&e.minY<=A.maxY&&e.maxX>=A.minX&&e.maxY>=A.minY}function oc(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function ac(A,e,t,n,r){const i=[e,t];for(;i.length;){if((t=i.pop())-(e=i.pop())<=n)continue;const o=e+Math.ceil((t-e)/n/2)*n;Nl(A,o,e,t,r),i.push(e,o,o,t)}}function sc(A){var e;if(A.bbox)e=A.bbox;else if(Array.isArray(A)&&4===A.length)e=A;else if(Array.isArray(A)&&6===A.length)e=[A[0],A[1],A[3],A[4]];else if("Feature"===A.type)e=hs(A);else{if("FeatureCollection"!==A.type)throw new Error("invalid geojson");e=hs(A)}return{minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}}var uc=class{constructor(A=9){this.tree=new Xl(A),this.tree.toBBox=sc}insert(A){if("Feature"!==A.type)throw new Error("invalid feature");return A.bbox=A.bbox?A.bbox:hs(A),this.tree.insert(A),this}load(A){var e=[];return Array.isArray(A)?A.forEach(function(A){if("Feature"!==A.type)throw new Error("invalid features");A.bbox=A.bbox?A.bbox:hs(A),e.push(A)}):gA(A,function(A){if("Feature"!==A.type)throw new Error("invalid features");A.bbox=A.bbox?A.bbox:hs(A),e.push(A)}),this.tree.load(e),this}remove(A,e){if("Feature"!==A.type)throw new Error("invalid feature");return A.bbox=A.bbox?A.bbox:hs(A),this.tree.remove(A,e),this}clear(){return this.tree.clear(),this}search(A){return H(this.tree.search(sc(A)))}collides(A){return this.tree.collides(sc(A))}all(){return H(this.tree.all())}toJSON(){return this.tree.toJSON()}fromJSON(A){return this.tree.fromJSON(A),this}};function fc(A){return new uc(A)}function lc(A,e){if(null===(t=e=null!=e?e:{})||"object"!=typeof t||Array.isArray(t))throw new Error("options is invalid");var t,n=e.precision,r=e.coordinates,i=e.mutate;if(n=null==n||isNaN(n)?6:n,r=null==r||isNaN(r)?3:r,!A)throw new Error("<geojson> is required");if("number"!=typeof n)throw new Error("<precision> must be a number");if("number"!=typeof r)throw new Error("<coordinates> must be a number");!1!==i&&void 0!==i||(A=JSON.parse(JSON.stringify(A)));var o=Math.pow(10,n);return hA(A,function(A){!function(A,e,t){A.length>t&&A.splice(t,A.length);for(var n=0;n<A.length;n++)A[n]=Math.round(A[n]*e)/e}(A,o,r)}),A}function cc(A){if(!A)throw new Error("geojson is required");const e=[];return pA(A,A=>{!function(A,e){let t=[];const n=A.geometry;if(null!==n){switch(n.type){case"Polygon":t=Z(n);break;case"LineString":t=[Z(n)]}t.forEach(t=>{const n=function(A,e){const t=[];return A.reduce((A,n)=>{const r=N([A,n],e);return r.bbox=function(A,e){const t=A[0],n=A[1],r=e[0],i=e[1],o=t<r?t:r,a=n<i?n:i,s=t>r?t:r,u=n>i?n:i;return[o,a,s,u]}(A,n),t.push(r),n}),t}(t,A.properties);n.forEach(A=>{A.id=e.length,e.push(A)})})}}(A,e)}),H(e)}function hc(A,e,t={}){var n=W(A),r=W(e),i=j(r[1]-n[1]),o=j(r[0]-n[0]),a=j(n[1]),s=j(r[1]),u=Math.pow(Math.sin(i/2),2)+Math.pow(Math.sin(o/2),2)*Math.cos(a)*Math.cos(s);return function(A,e="kilometers"){const t=U[e];if(!t)throw new Error(e+" units is invalid");return A*t}(2*Math.atan2(Math.sqrt(u),Math.sqrt(1-u)),t.units)}var gc=Object.defineProperty,dc=Object.defineProperties,pc=Object.getOwnPropertyDescriptors,wc=Object.getOwnPropertySymbols,vc=Object.prototype.hasOwnProperty,mc=Object.prototype.propertyIsEnumerable,bc=(A,e,t)=>e in A?gc(A,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):A[e]=t,yc=(A,e)=>{for(var t in e||(e={}))vc.call(e,t)&&bc(A,t,e[t]);if(wc)for(var t of wc(e))mc.call(e,t)&&bc(A,t,e[t]);return A},Bc=(A,e)=>dc(A,pc(e));function Ec(A,e,t={}){if(!A||!e)throw new Error("lines and inputPoint are required arguments");const n=W(e);let r=z([1/0,1/0],{lineStringIndex:-1,segmentIndex:-1,totalDistance:-1,lineDistance:-1,segmentDistance:-1,pointDistance:1/0,multiFeatureIndex:-1,index:-1,location:-1,dist:1/0}),i=0,o=0,a=-1;return pA(A,function(A,s,u){a!==u&&(a=u,o=0);const f=Z(A);for(let A=0;A<f.length-1;A++){const a=z(f[A]),s=W(a),l=z(f[A+1]),c=W(l),h=hc(a,l,t);let g,d;c[0]===n[0]&&c[1]===n[1]?[g,d]=[c,!0]:s[0]===n[0]&&s[1]===n[1]?[g,d]=[s,!1]:[g,d]=Dc(s,c,n);const p=hc(e,g,t);if(p<r.properties.pointDistance){const e=hc(a,g,t);r=z(g,{lineStringIndex:u,segmentIndex:d?A+1:A,totalDistance:i+e,lineDistance:o+e,segmentDistance:e,pointDistance:p,multiFeatureIndex:-1,index:-1,location:-1,dist:1/0}),r.properties=Bc(yc({},r.properties),{multiFeatureIndex:r.properties.lineStringIndex,index:r.properties.segmentIndex,location:r.properties.totalDistance,dist:r.properties.pointDistance})}i+=h,o+=h}}),r}function Mc(A,e){const[t,n,r]=A,[i,o,a]=e;return t*i+n*o+r*a}function kc(A,e){const[t,n,r]=A,[i,o,a]=e;return[n*a-r*o,r*i-t*a,t*o-n*i]}function _c(A){const e=function(A){return Math.sqrt(Math.pow(A[0],2)+Math.pow(A[1],2)+Math.pow(A[2],2))}(A);return[A[0]/e,A[1]/e,A[2]/e]}function xc(A){const e=j(A[1]),t=j(A[0]);return[Math.cos(e)*Math.cos(t),Math.cos(e)*Math.sin(t),Math.sin(e)]}function Qc(A){const[e,t,n]=A,r=Math.min(Math.max(n,-1),1),i=V(Math.asin(r));return[V(Math.atan2(t,e)),i]}function Dc(A,e,t){const n=xc(A),r=xc(e),i=xc(t),o=kc(n,r);if(0===o[0]&&0===o[1]&&0===o[2])return Mc(n,r)>0?[[...e],!0]:[[...t],!1];const a=kc(o,i);if(0===a[0]&&0===a[1]&&0===a[2])return[[...e],!0];const s=_c(kc(a,o)),u=[-s[0],-s[1],-s[2]],f=Mc(i,s)>Mc(i,u)?s:u,l=_c(o),c=Mc(kc(n,f),l),h=Mc(kc(f,r),l);return c>=0&&h>=0?[Qc(f),!1]:Mc(n,i)>Mc(r,i)?[[...A],!1]:[[...e],!0]}function Cc(A,e){if(!A)throw new Error("line is required");if(!e)throw new Error("splitter is required");const t=K(A),n=K(e);if("LineString"!==t)throw new Error("line must be LineString");if("FeatureCollection"===n)throw new Error("splitter cannot be a FeatureCollection");if("GeometryCollection"===n)throw new Error("splitter cannot be a GeometryCollection");var r=lc(e,{precision:7});switch("Feature"!==A.type&&(A=O(A)),n){case"Point":return Ic(A,r);case"MultiPoint":return Sc(A,r);case"LineString":case"MultiLineString":case"Polygon":case"MultiPolygon":return Sc(A,cA(A,r,{ignoreSelfIntersections:!0}))}}function Sc(A,e){var t=[],n=fc();return pA(e,function(e){if(t.forEach(function(A,e){A.id=e}),t.length){var r=n.search(e);if(r.features.length){var i=Pc(e,r);t=t.filter(function(A){return A.id!==i.id}),n.remove(i),gA(Ic(i,e),function(A){t.push(A),n.insert(A)})}}else t=Ic(A,e).features,n.load(H(t))}),H(t)}function Ic(A,e){var t=[],n=Z(A)[0],r=Z(A)[A.geometry.coordinates.length-1];if(Fc(n,W(e))||Fc(r,W(e)))return H([A]);var i=fc(),o=cc(A);i.load(o);var a=i.search(e);if(!a.features.length)return H([A]);var s=Pc(e,a),u=function(A,e,t){var n=t;return gA(A,function(A,r){n=0===r&&void 0===t?A:e(n,A,r)}),n}(o,function(A,n,r){var i=Z(n)[1],o=W(e);return r===s.id?(A.push(o),t.push(N(A)),Fc(o,i)?[o]:[o,i]):(A.push(i),A)},[n]);return u.length>1&&t.push(N(u)),H(t)}function Pc(A,e){if(!e.features.length)throw new Error("lines must contain features");if(1===e.features.length)return e.features[0];var t,n=1/0;return gA(e,function(e){var r=Ec(e,A).properties.dist;r<n&&(t=e,n=r)}),t}function Fc(A,e){return A[0]===e[0]&&A[1]===e[1]}function Tc(A,e={}){return wA(A,(A,t)=>{const n=t.geometry.coordinates;return A+hc(n[0],n[1],e)},0)}function Lc(A,e,t={}){const n=W(A),r=Z(e);for(let A=0;A<r.length-1;A++){let e=!1;if(t.ignoreEndVertices&&(0===A&&(e="start"),A===r.length-2&&(e="end"),0===A&&A+1===r.length-1&&(e="both")),Gc(r[A],r[A+1],n,e,void 0===t.epsilon?null:t.epsilon))return!0}return!1}function Gc(A,e,t,n,r){const i=t[0],o=t[1],a=A[0],s=A[1],u=e[0],f=e[1],l=u-a,c=f-s,h=(t[0]-a)*c-(t[1]-s)*l;if(null!==r){if(Math.abs(h)>r)return!1}else if(0!==h)return!1;return Math.abs(l)===Math.abs(c)&&0===Math.abs(l)?!n&&(t[0]===A[0]&&t[1]===A[1]):n?"start"===n?Math.abs(l)>=Math.abs(c)?l>0?a<i&&i<=u:u<=i&&i<a:c>0?s<o&&o<=f:f<=o&&o<s:"end"===n?Math.abs(l)>=Math.abs(c)?l>0?a<=i&&i<u:u<i&&i<=a:c>0?s<=o&&o<f:f<o&&o<=s:"both"===n&&(Math.abs(l)>=Math.abs(c)?l>0?a<i&&i<u:u<i&&i<a:c>0?s<o&&o<f:f<o&&o<s):Math.abs(l)>=Math.abs(c)?l>0?a<=i&&i<=u:u<=i&&i<=a:c>0?s<=o&&o<=f:f<=o&&o<=s}function Rc(A,e){var t=J(A),n=J(e),r=t.type,i=n.type;switch(r){case"Point":switch(i){case"MultiPoint":return function(A,e){var t,n=!1;for(t=0;t<e.coordinates.length;t++)if(Oc(e.coordinates[t],A.coordinates)){n=!0;break}return n}(t,n);case"LineString":return Lc(t,n,{ignoreEndVertices:!0});case"Polygon":case"MultiPolygon":return q(t,n,{ignoreBoundary:!0});default:throw new Error("feature2 "+i+" geometry not supported")}case"MultiPoint":switch(i){case"MultiPoint":return function(A,e){for(var t=0;t<A.coordinates.length;t++){for(var n=!1,r=0;r<e.coordinates.length;r++)Oc(A.coordinates[t],e.coordinates[r])&&(n=!0);if(!n)return!1}return!0}(t,n);case"LineString":return function(A,e){for(var t=!1,n=0;n<A.coordinates.length;n++){if(!Lc(A.coordinates[n],e))return!1;t||(t=Lc(A.coordinates[n],e,{ignoreEndVertices:!0}))}return t}(t,n);case"Polygon":case"MultiPolygon":return function(A,e){for(var t=!0,n=!1,r=0;r<A.coordinates.length;r++){if(!(n=q(A.coordinates[r],e))){t=!1;break}n=q(A.coordinates[r],e,{ignoreBoundary:!0})}return t&&n}(t,n);default:throw new Error("feature2 "+i+" geometry not supported")}case"LineString":switch(i){case"LineString":return function(A,e){for(var t=0;t<A.coordinates.length;t++)if(!Lc(A.coordinates[t],e))return!1;return!0}(t,n);case"Polygon":case"MultiPolygon":return function(A,e){const t=hs(e),n=hs(A);if(!Uc(t,n))return!1;for(const t of A.coordinates)if(!q(t,e))return!1;let r=!1;const i=function(A,e){const t=A.coordinates,n=[];for(let A=0;A<t.length-1;A++){const r=N([t[A],t[A+1]]),i=Cc(r,O(e));0===i.features.length?n.push(r):n.push(...i.features)}return H(n)}(A,e);for(const A of i.features){const t=zc(A.geometry.coordinates[0],A.geometry.coordinates[1]);if(!q(t,e))return!1;!r&&q(t,e,{ignoreBoundary:!0})&&(r=!0)}return r}(t,n);default:throw new Error("feature2 "+i+" geometry not supported")}case"Polygon":switch(i){case"Polygon":case"MultiPolygon":return function(A,e){var t=hs(A);if(!Uc(hs(e),t))return!1;for(var n=0;n<A.coordinates[0].length;n++)if(!q(A.coordinates[0][n],e))return!1;return!0}(t,n);default:throw new Error("feature2 "+i+" geometry not supported")}default:throw new Error("feature1 "+r+" geometry not supported")}}function Uc(A,e){return!(A[0]>e[0])&&(!(A[2]<e[2])&&(!(A[1]>e[1])&&!(A[3]<e[3])))}function Oc(A,e){return A[0]===e[0]&&A[1]===e[1]}function zc(A,e){return[(A[0]+e[0])/2,(A[1]+e[1])/2]}function Yc(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{grid:e,lines:t,var:n,values:r=!1,spherical:i=!1,debug:o=!1}=A;const a=performance.now();i&&(e=Ff(e));const s=n?Array.isArray(n)?n:[n]:[];e.features.forEach((A,e)=>A._id=e);for(const A of t.features)if("LineString"===A.geometry.type)A.properties.length_total=Tc(A,{units:"meters"});else if("MultiLineString"===A.geometry.type){let e=0;for(const t of A.geometry.coordinates){e+=Tc({type:"Feature",geometry:{type:"LineString",coordinates:t}},{units:"meters"})}A.properties.length_total=e}else A.properties.length_total=0;for(const A of e.features){A.properties.count=0;for(const e of s)A.properties[e]=0;r&&(A.properties.values=[])}const u=new qa,f=e.features.map(A=>{const[e,t,n,r]=hs(A);return{minX:e,minY:t,maxX:n,maxY:r,cell:A}});u.load(f);const l=new Set;for(const A of t.features){const e=A.properties.length_total||0;if(0===e)continue;const[t,n,i,o]=hs(A),a=u.search({minX:t,minY:n,maxX:i,maxY:o}),f=new Set;let c=0;for(const t of a){const n=t.cell;let i=0;if("LineString"===A.geometry.type)i=Nc(A,n);else if("MultiLineString"===A.geometry.type)for(const e of A.geometry.coordinates){i+=Nc({type:"Feature",geometry:{type:"LineString",coordinates:e}},n)}if(0!==i){c+=i,f.has(n._id)||(n.properties.count+=1,f.add(n._id));for(const t of s){const r=parseFloat(A.properties[t]);n.properties[t]+=isNaN(r)?0:r*(i/e)}r&&n.properties.values.push({...A.properties})}}c>0&&l.add(A.properties.id||A.id||A)}const c={...e,features:e.features.filter(A=>A.properties.count>0)},h=performance.now();if(console.log(`Line aggregation completed for ${c.features.length} cells — ${(h-a).toFixed(2)} ms`),o){const A=t.features.length,e=A-l.size;console.log(`Counted ${l.size}/${A} line features (${e} missing)`)}return i?gs(c):c}function Nc(A,e){try{if(Rc(A,e))return Tc(A,{units:"meters"});const t=Cc(A,e);let n=0;for(const A of t.features){const e=Tc(A,{units:"meters"});e>.001&&(n+=e)}return n}catch(A){return 0}}function Hc(A){let{projection:e=null}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return A;function t(A){return"number"==typeof A[0]?e(A):A.map(t)}const n=A.features.map(A=>({...A,geometry:{...A.geometry,coordinates:t(A.geometry.coordinates)}}));return{...A,features:n}}function Vc(A){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5;const t=[];for(let n=-180;n<=180;n+=e){const e=A([n,90]);e&&t.push(e)}for(let n=90;n>=-90;n-=e){const e=A([180,n]);e&&t.push(e)}for(let n=180;n>=-180;n-=e){const e=A([n,-90]);e&&t.push(e)}for(let n=-90;n<=90;n+=e){const e=A([-180,n]);e&&t.push(e)}return H([Y([t])])}export{T as diamond,n as dot,Wa as h3,L as hexbin,Yc as linestogrid,Tf as pointstogrid,Yl as polygonstogrid,Hc as project,F as random,Vc as sphere,e as square,kA as square_sph,t as triangle,Ff as unstitch};
|
|
1
|
+
function A(A,t,e){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const r=[];for(let n=A;n<=t;n+=e)r.push(n);return n?r.reverse():r}function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.start,n=void 0===e?[0,0]:e,r=t.width,i=void 0===r?1e3:r,o=t.height,l=void 0===o?500:o,s=t.step,a=void 0===s?50:s,u=t.overflow,f=void 0===u||u,c=f?n[0]:n[0]+a/2,h=A(f?n[1]:n[1]+a/2,n[1]+l-a/2,a,!0),g=A(c,n[0]+i-a/2,a);f&&(h[0]+a/2<n[1]+l&&h.unshift(h[0]+a),g.at(-1)+a/2<n[0]+i&&g.push(g.at(-1)+a));let p=g.map(A=>h.map(t=>[A,t])).flat(),d=a/2;return{type:"FeatureCollection",grid:"square",geo:!1,features:p.map((A,t)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[[[A[0]-d,A[1]+d],[A[0]+d,A[1]+d],[A[0]+d,A[1]-d],[A[0]-d,A[1]-d],[A[0]-d,A[1]+d]]]},properties:{index:t}}))}}function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.start,n=void 0===e?[0,0]:e,r=t.width,i=void 0===r?1e3:r,o=t.height,l=void 0===o?500:o,s=t.step,a=void 0===s?50:s,u=t.overflow,f=void 0===u||u,c=(A,t)=>{let e=Math.sqrt(3)/2*t,n=[A[0]+t/2,A[1]];return[n,[A[0],A[1]-e],[A[0]-t/2,A[1]],n]},h=(A,t)=>{let e=Math.sqrt(3)/2*t,n=[A[0]+t/2,A[1]];return[n,[A[0],A[1]+e],[A[0]-t/2,A[1]],n]},g=Math.sqrt(3)/2*a,p=f?n[0]-a/2:n[0],d=f?n[1]-g/2:n[1],y=n[0]+i+g,v=p+l+g,m=A(p,y,a),w=A(d,v,g,!0);w.length%2&&w.unshift(w[0]+g);let b=m.map((A,t)=>w.map(t=>[A,t])).flat();b=b.map((A,t)=>t%2==1?[A[0]+a/2,A[1]]:A);let E=b.length;b=b.concat(b);let _=[];return b.forEach((A,t)=>{f?t<E?A[0]<=p+i+a&&A[0]>p&&A[1]>=d+a/2&&A[1]<=n[1]+l+g&&_.push(c(A,a)):A[0]<=p+i+a&&A[0]>p&&A[1]<=n[1]+l&&_.push(h(A,a)):t<E?A[0]<=p+i-a/2&&A[0]>p&&A[1]<=d+l&&A[1]>d&&_.push(c(A,a)):A[0]<=p+i-a/2&&A[0]>p&&A[1]<=d+l-g&&_.push(h(A,a))}),{type:"FeatureCollection",grid:"triangle",geo:!1,features:_.map((A,t)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[A]},properties:{index:t,coords:A}}))}}function n(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.step,n=void 0===e?30:e,r=t.start,i=void 0===r?[0,0]:r,o=t.width,l=void 0===o?1e3:o,s=t.height,a=void 0===s?500:s,u=t.overflow,f=void 0===u||u,c=f?i[0]-n/2:i[0],h=f?i[1]-n/2:i[1],g=f?i[0]+l+n:i[0]+l,p=f?i[1]+a+n:i[1]+a,d=A(c,g,n),y=A(h,p,n,!0);return{type:"FeatureCollection",grid:"dot",geo:!1,features:d.map(A=>y.map(t=>[A,t])).flat().map((A,t)=>({type:"Feature",geometry:{type:"Point",coordinates:A},properties:{index:t}}))}}const r=134217729;function i(A,t,e,n,r){let i,o,l,s,a=t[0],u=n[0],f=0,c=0;u>a==u>-a?(i=a,a=t[++f]):(i=u,u=n[++c]);let h=0;if(f<A&&c<e)for(u>a==u>-a?(o=a+i,l=i-(o-a),a=t[++f]):(o=u+i,l=i-(o-u),u=n[++c]),i=o,0!==l&&(r[h++]=l);f<A&&c<e;)u>a==u>-a?(o=i+a,s=o-i,l=i-(o-s)+(a-s),a=t[++f]):(o=i+u,s=o-i,l=i-(o-s)+(u-s),u=n[++c]),i=o,0!==l&&(r[h++]=l);for(;f<A;)o=i+a,s=o-i,l=i-(o-s)+(a-s),a=t[++f],i=o,0!==l&&(r[h++]=l);for(;c<e;)o=i+u,s=o-i,l=i-(o-s)+(u-s),u=n[++c],i=o,0!==l&&(r[h++]=l);return 0===i&&0!==h||(r[h++]=i),h}function o(A){return new Float64Array(A)}const l=o(4),s=o(8),a=o(12),u=o(16),f=o(4);function c(A,t,e,n,o,c){const h=(t-c)*(e-o),g=(A-o)*(n-c),p=h-g,d=Math.abs(h+g);return Math.abs(p)>=33306690738754716e-32*d?p:-function(A,t,e,n,o,c,h){let g,p,d,y,v,m,w,b,E,_,x,B,M,k,S,C,P,D;const Q=A-o,I=e-o,T=t-c,F=n-c;k=Q*F,m=r*Q,w=m-(m-Q),b=Q-w,m=r*F,E=m-(m-F),_=F-E,S=b*_-(k-w*E-b*E-w*_),C=T*I,m=r*T,w=m-(m-T),b=T-w,m=r*I,E=m-(m-I),_=I-E,P=b*_-(C-w*E-b*E-w*_),x=S-P,v=S-x,l[0]=S-(x+v)+(v-P),B=k+x,v=B-k,M=k-(B-v)+(x-v),x=M-C,v=M-x,l[1]=M-(x+v)+(v-C),D=B+x,v=D-B,l[2]=B-(D-v)+(x-v),l[3]=D;let L=function(A,t){let e=t[0];for(let n=1;n<A;n++)e+=t[n];return e}(4,l),O=22204460492503146e-32*h;if(L>=O||-L>=O)return L;if(v=A-Q,g=A-(Q+v)+(v-o),v=e-I,d=e-(I+v)+(v-o),v=t-T,p=t-(T+v)+(v-c),v=n-F,y=n-(F+v)+(v-c),0===g&&0===p&&0===d&&0===y)return L;if(O=11093356479670487e-47*h+33306690738754706e-32*Math.abs(L),L+=Q*y+F*g-(T*d+I*p),L>=O||-L>=O)return L;k=g*F,m=r*g,w=m-(m-g),b=g-w,m=r*F,E=m-(m-F),_=F-E,S=b*_-(k-w*E-b*E-w*_),C=p*I,m=r*p,w=m-(m-p),b=p-w,m=r*I,E=m-(m-I),_=I-E,P=b*_-(C-w*E-b*E-w*_),x=S-P,v=S-x,f[0]=S-(x+v)+(v-P),B=k+x,v=B-k,M=k-(B-v)+(x-v),x=M-C,v=M-x,f[1]=M-(x+v)+(v-C),D=B+x,v=D-B,f[2]=B-(D-v)+(x-v),f[3]=D;const R=i(4,l,4,f,s);k=Q*y,m=r*Q,w=m-(m-Q),b=Q-w,m=r*y,E=m-(m-y),_=y-E,S=b*_-(k-w*E-b*E-w*_),C=T*d,m=r*T,w=m-(m-T),b=T-w,m=r*d,E=m-(m-d),_=d-E,P=b*_-(C-w*E-b*E-w*_),x=S-P,v=S-x,f[0]=S-(x+v)+(v-P),B=k+x,v=B-k,M=k-(B-v)+(x-v),x=M-C,v=M-x,f[1]=M-(x+v)+(v-C),D=B+x,v=D-B,f[2]=B-(D-v)+(x-v),f[3]=D;const N=i(R,s,4,f,a);k=g*y,m=r*g,w=m-(m-g),b=g-w,m=r*y,E=m-(m-y),_=y-E,S=b*_-(k-w*E-b*E-w*_),C=p*d,m=r*p,w=m-(m-p),b=p-w,m=r*d,E=m-(m-d),_=d-E,P=b*_-(C-w*E-b*E-w*_),x=S-P,v=S-x,f[0]=S-(x+v)+(v-P),B=k+x,v=B-k,M=k-(B-v)+(x-v),x=M-C,v=M-x,f[1]=M-(x+v)+(v-C),D=B+x,v=D-B,f[2]=B-(D-v)+(x-v),f[3]=D;const G=i(N,a,4,f,u);return u[G-1]}(A,t,e,n,o,c,d)}const h=Math.pow(2,-52),g=new Uint32Array(512);class p{static from(A,t=b,e=E){const n=A.length,r=new Float64Array(2*n);for(let i=0;i<n;i++){const n=A[i];r[2*i]=t(n),r[2*i+1]=e(n)}return new p(r)}constructor(A){const t=A.length>>1;if(t>0&&"number"!=typeof A[0])throw new Error("Expected coords to contain numbers.");this.coords=A;const e=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*e),this._halfedges=new Int32Array(3*e),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.trianglesLen=0,this._cx=0,this._cy=0,this._hullStart=0,this.hull=this._triangles,this.triangles=this._triangles,this.halfedges=this._halfedges,this.update()}update(){const{coords:A,_hullPrev:t,_hullNext:e,_hullTri:n,_hullHash:r}=this,i=A.length>>1;let o=1/0,l=1/0,s=-1/0,a=-1/0;for(let t=0;t<i;t++){const e=A[2*t],n=A[2*t+1];e<o&&(o=e),n<l&&(l=n),e>s&&(s=e),n>a&&(a=n),this._ids[t]=t}const u=(o+s)/2,f=(l+a)/2;let g=0,p=0,y=0;for(let t=0,e=1/0;t<i;t++){const n=d(u,f,A[2*t],A[2*t+1]);n<e&&(g=t,e=n)}const w=A[2*g],b=A[2*g+1];for(let t=0,e=1/0;t<i;t++){if(t===g)continue;const n=d(w,b,A[2*t],A[2*t+1]);n<e&&n>0&&(p=t,e=n)}let E=A[2*p],_=A[2*p+1],x=1/0;for(let t=0;t<i;t++){if(t===g||t===p)continue;const e=v(w,b,E,_,A[2*t],A[2*t+1]);e<x&&(y=t,x=e)}let B=A[2*y],M=A[2*y+1];if(x===1/0){for(let t=0;t<i;t++)this._dists[t]=A[2*t]-A[0]||A[2*t+1]-A[1];m(this._ids,this._dists,0,i-1);const t=new Uint32Array(i);let e=0;for(let A=0,n=-1/0;A<i;A++){const r=this._ids[A],i=this._dists[r];i>n&&(t[e++]=r,n=i)}return this.hull=t.subarray(0,e),this.triangles=new Uint32Array(0),void(this.halfedges=new Int32Array(0))}if(c(w,b,E,_,B,M)<0){const A=p,t=E,e=_;p=y,E=B,_=M,y=A,B=t,M=e}const k=function(A,t,e,n,r,i){const o=e-A,l=n-t,s=r-A,a=i-t,u=o*o+l*l,f=s*s+a*a,c=.5/(o*a-l*s);return{x:A+(a*u-l*f)*c,y:t+(o*f-s*u)*c}}(w,b,E,_,B,M);this._cx=k.x,this._cy=k.y;for(let t=0;t<i;t++)this._dists[t]=d(A[2*t],A[2*t+1],k.x,k.y);m(this._ids,this._dists,0,i-1),this._hullStart=g;let S=3;e[g]=t[y]=p,e[p]=t[g]=y,e[y]=t[p]=g,n[g]=0,n[p]=1,n[y]=2,r.fill(-1),r[this._hashKey(w,b)]=g,r[this._hashKey(E,_)]=p,r[this._hashKey(B,M)]=y,this.trianglesLen=0,this._addTriangle(g,p,y,-1,-1,-1);for(let i=0,o=0,l=0;i<this._ids.length;i++){const s=this._ids[i],a=A[2*s],u=A[2*s+1];if(i>0&&Math.abs(a-o)<=h&&Math.abs(u-l)<=h)continue;if(o=a,l=u,s===g||s===p||s===y)continue;let f=0;for(let A=0,t=this._hashKey(a,u);A<this._hashSize&&(f=r[(t+A)%this._hashSize],-1===f||f===e[f]);A++);f=t[f];let d,v=f;for(;d=e[v],c(a,u,A[2*v],A[2*v+1],A[2*d],A[2*d+1])>=0;)if(v=d,v===f){v=-1;break}if(-1===v)continue;let m=this._addTriangle(v,s,e[v],-1,-1,n[v]);n[s]=this._legalize(m+2),n[v]=m,S++;let w=e[v];for(;d=e[w],c(a,u,A[2*w],A[2*w+1],A[2*d],A[2*d+1])<0;)m=this._addTriangle(w,s,d,n[s],-1,n[w]),n[s]=this._legalize(m+2),e[w]=w,S--,w=d;if(v===f)for(;d=t[v],c(a,u,A[2*d],A[2*d+1],A[2*v],A[2*v+1])<0;)m=this._addTriangle(d,s,v,-1,n[v],n[d]),this._legalize(m+2),n[d]=m,e[v]=v,S--,v=d;this._hullStart=t[s]=v,e[v]=t[w]=s,e[s]=w,r[this._hashKey(a,u)]=s,r[this._hashKey(A[2*v],A[2*v+1])]=v}this.hull=new Uint32Array(S);for(let A=0,t=this._hullStart;A<S;A++)this.hull[A]=t,t=e[t];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(A,t){return Math.floor(function(A,t){const e=A/(Math.abs(A)+Math.abs(t));return(t>0?3-e:1+e)/4}(A-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(A){const{_triangles:t,_halfedges:e,coords:n}=this;let r=0,i=0;for(;;){const o=e[A],l=A-A%3;if(i=l+(A+2)%3,-1===o){if(0===r)break;A=g[--r];continue}const s=o-o%3,a=l+(A+1)%3,u=s+(o+2)%3,f=t[i],c=t[A],h=t[a],p=t[u];if(y(n[2*f],n[2*f+1],n[2*c],n[2*c+1],n[2*h],n[2*h+1],n[2*p],n[2*p+1])){t[A]=p,t[o]=f;const n=e[u];if(-1===n){let t=this._hullStart;do{if(this._hullTri[t]===u){this._hullTri[t]=A;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(A,n),this._link(o,e[i]),this._link(i,u);const l=s+(o+1)%3;r<g.length&&(g[r++]=l)}else{if(0===r)break;A=g[--r]}}return i}_link(A,t){this._halfedges[A]=t,-1!==t&&(this._halfedges[t]=A)}_addTriangle(A,t,e,n,r,i){const o=this.trianglesLen;return this._triangles[o]=A,this._triangles[o+1]=t,this._triangles[o+2]=e,this._link(o,n),this._link(o+1,r),this._link(o+2,i),this.trianglesLen+=3,o}}function d(A,t,e,n){const r=A-e,i=t-n;return r*r+i*i}function y(A,t,e,n,r,i,o,l){const s=A-o,a=t-l,u=e-o,f=n-l,c=r-o,h=i-l,g=u*u+f*f,p=c*c+h*h;return s*(f*p-g*h)-a*(u*p-g*c)+(s*s+a*a)*(u*h-f*c)<0}function v(A,t,e,n,r,i){const o=e-A,l=n-t,s=r-A,a=i-t,u=o*o+l*l,f=s*s+a*a,c=.5/(o*a-l*s),h=(a*u-l*f)*c,g=(o*f-s*u)*c;return h*h+g*g}function m(A,t,e,n){if(n-e<=20)for(let r=e+1;r<=n;r++){const n=A[r],i=t[n];let o=r-1;for(;o>=e&&t[A[o]]>i;)A[o+1]=A[o--];A[o+1]=n}else{let r=e+1,i=n;w(A,e+n>>1,r),t[A[e]]>t[A[n]]&&w(A,e,n),t[A[r]]>t[A[n]]&&w(A,r,n),t[A[e]]>t[A[r]]&&w(A,e,r);const o=A[r],l=t[o];for(;;){do{r++}while(t[A[r]]<l);do{i--}while(t[A[i]]>l);if(i<r)break;w(A,r,i)}A[e+1]=A[i],A[i]=o,n-r+1>=i-e?(m(A,t,r,n),m(A,t,e,i-1)):(m(A,t,e,i-1),m(A,t,r,n))}}function w(A,t,e){const n=A[t];A[t]=A[e],A[e]=n}function b(A){return A[0]}function E(A){return A[1]}const _=1e-6;class x{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(A,t){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(A,t){this._+=`L${this._x1=+A},${this._y1=+t}`}arc(A,t,e){const n=(A=+A)+(e=+e),r=t=+t;if(e<0)throw new Error("negative radius");null===this._x1?this._+=`M${n},${r}`:(Math.abs(this._x1-n)>_||Math.abs(this._y1-r)>_)&&(this._+="L"+n+","+r),e&&(this._+=`A${e},${e},0,1,1,${A-e},${t}A${e},${e},0,1,1,${this._x1=n},${this._y1=r}`)}rect(A,t,e,n){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+t}h${+e}v${+n}h${-e}Z`}value(){return this._||null}}class B{constructor(){this._=[]}moveTo(A,t){this._.push([A,t])}closePath(){this._.push(this._[0].slice())}lineTo(A,t){this._.push([A,t])}value(){return this._.length?this._:null}}class M{constructor(A,[t,e,n,r]=[0,0,960,500]){if(!((n=+n)>=(t=+t)&&(r=+r)>=(e=+e)))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=n,this.xmin=t,this.ymax=r,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:A,hull:t,triangles:e},vectors:n}=this;let r,i;const o=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let n,l,s=0,a=0,u=e.length;s<u;s+=3,a+=2){const u=2*e[s],f=2*e[s+1],c=2*e[s+2],h=A[u],g=A[u+1],p=A[f],d=A[f+1],y=A[c],v=A[c+1],m=p-h,w=d-g,b=y-h,E=v-g,_=2*(m*E-w*b);if(Math.abs(_)<1e-9){if(void 0===r){r=i=0;for(const e of t)r+=A[2*e],i+=A[2*e+1];r/=t.length,i/=t.length}const e=1e9*Math.sign((r-h)*E-(i-g)*b);n=(h+y)/2-e*E,l=(g+v)/2+e*b}else{const A=1/_,t=m*m+w*w,e=b*b+E*E;n=h+(E*t-w*e)*A,l=g+(m*e-b*t)*A}o[a]=n,o[a+1]=l}let l,s,a,u=t[t.length-1],f=4*u,c=A[2*u],h=A[2*u+1];n.fill(0);for(let e=0;e<t.length;++e)u=t[e],l=f,s=c,a=h,f=4*u,c=A[2*u],h=A[2*u+1],n[l+2]=n[f]=a-h,n[l+3]=n[f+1]=c-s}render(A){const t=null==A?A=new x:void 0,{delaunay:{halfedges:e,inedges:n,hull:r},circumcenters:i,vectors:o}=this;if(r.length<=1)return null;for(let t=0,n=e.length;t<n;++t){const n=e[t];if(n<t)continue;const r=2*Math.floor(t/3),o=2*Math.floor(n/3),l=i[r],s=i[r+1],a=i[o],u=i[o+1];this._renderSegment(l,s,a,u,A)}let l,s=r[r.length-1];for(let t=0;t<r.length;++t){l=s,s=r[t];const e=2*Math.floor(n[s]/3),a=i[e],u=i[e+1],f=4*l,c=this._project(a,u,o[f+2],o[f+3]);c&&this._renderSegment(a,u,c[0],c[1],A)}return t&&t.value()}renderBounds(A){const t=null==A?A=new x:void 0;return A.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(A,t){const e=null==t?t=new x:void 0,n=this._clip(A);if(null===n||!n.length)return;t.moveTo(n[0],n[1]);let r=n.length;for(;n[0]===n[r-2]&&n[1]===n[r-1]&&r>1;)r-=2;for(let A=2;A<r;A+=2)n[A]===n[A-2]&&n[A+1]===n[A-1]||t.lineTo(n[A],n[A+1]);return t.closePath(),e&&e.value()}*cellPolygons(){const{delaunay:{points:A}}=this;for(let t=0,e=A.length/2;t<e;++t){const A=this.cellPolygon(t);A&&(A.index=t,yield A)}}cellPolygon(A){const t=new B;return this.renderCell(A,t),t.value()}_renderSegment(A,t,e,n,r){let i;const o=this._regioncode(A,t),l=this._regioncode(e,n);0===o&&0===l?(r.moveTo(A,t),r.lineTo(e,n)):(i=this._clipSegment(A,t,e,n,o,l))&&(r.moveTo(i[0],i[1]),r.lineTo(i[2],i[3]))}contains(A,t,e){return(t=+t)==t&&(e=+e)==e&&this.delaunay._step(A,t,e)===A}*neighbors(A){const t=this._clip(A);if(t)for(const e of this.delaunay.neighbors(A)){const A=this._clip(e);if(A)A:for(let n=0,r=t.length;n<r;n+=2)for(let i=0,o=A.length;i<o;i+=2)if(t[n]===A[i]&&t[n+1]===A[i+1]&&t[(n+2)%r]===A[(i+o-2)%o]&&t[(n+3)%r]===A[(i+o-1)%o]){yield e;break A}}}_cell(A){const{circumcenters:t,delaunay:{inedges:e,halfedges:n,triangles:r}}=this,i=e[A];if(-1===i)return null;const o=[];let l=i;do{const e=Math.floor(l/3);if(o.push(t[2*e],t[2*e+1]),l=l%3==2?l-2:l+1,r[l]!==A)break;l=n[l]}while(l!==i&&-1!==l);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 t=this._cell(A);if(null===t)return null;const{vectors:e}=this,n=4*A;return this._simplify(e[n]||e[n+1]?this._clipInfinite(A,t,e[n],e[n+1],e[n+2],e[n+3]):this._clipFinite(A,t))}_clipFinite(A,t){const e=t.length;let n,r,i,o,l=null,s=t[e-2],a=t[e-1],u=this._regioncode(s,a),f=0;for(let c=0;c<e;c+=2)if(n=s,r=a,s=t[c],a=t[c+1],i=u,u=this._regioncode(s,a),0===i&&0===u)o=f,f=0,l?l.push(s,a):l=[s,a];else{let t,e,c,h,g;if(0===i){if(null===(t=this._clipSegment(n,r,s,a,i,u)))continue;[e,c,h,g]=t}else{if(null===(t=this._clipSegment(s,a,n,r,u,i)))continue;[h,g,e,c]=t,o=f,f=this._edgecode(e,c),o&&f&&this._edge(A,o,f,l,l.length),l?l.push(e,c):l=[e,c]}o=f,f=this._edgecode(h,g),o&&f&&this._edge(A,o,f,l,l.length),l?l.push(h,g):l=[h,g]}if(l)o=f,f=this._edgecode(l[0],l[1]),o&&f&&this._edge(A,o,f,l,l.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 l}_clipSegment(A,t,e,n,r,i){const o=r<i;for(o&&([A,t,e,n,r,i]=[e,n,A,t,i,r]);;){if(0===r&&0===i)return o?[e,n,A,t]:[A,t,e,n];if(r&i)return null;let l,s,a=r||i;8&a?(l=A+(e-A)*(this.ymax-t)/(n-t),s=this.ymax):4&a?(l=A+(e-A)*(this.ymin-t)/(n-t),s=this.ymin):2&a?(s=t+(n-t)*(this.xmax-A)/(e-A),l=this.xmax):(s=t+(n-t)*(this.xmin-A)/(e-A),l=this.xmin),r?(A=l,t=s,r=this._regioncode(A,t)):(e=l,n=s,i=this._regioncode(e,n))}}_clipInfinite(A,t,e,n,r,i){let o,l=Array.from(t);if((o=this._project(l[0],l[1],e,n))&&l.unshift(o[0],o[1]),(o=this._project(l[l.length-2],l[l.length-1],r,i))&&l.push(o[0],o[1]),l=this._clipFinite(A,l))for(let t,e=0,n=l.length,r=this._edgecode(l[n-2],l[n-1]);e<n;e+=2)t=r,r=this._edgecode(l[e],l[e+1]),t&&r&&(e=this._edge(A,t,r,l,e),n=l.length);else this.contains(A,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(l=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return l}_edge(A,t,e,n,r){for(;t!==e;){let e,i;switch(t){case 5:t=4;continue;case 4:t=6,e=this.xmax,i=this.ymin;break;case 6:t=2;continue;case 2:t=10,e=this.xmax,i=this.ymax;break;case 10:t=8;continue;case 8:t=9,e=this.xmin,i=this.ymax;break;case 9:t=1;continue;case 1:t=5,e=this.xmin,i=this.ymin}n[r]===e&&n[r+1]===i||!this.contains(A,e,i)||(n.splice(r,0,e,i),r+=2)}return r}_project(A,t,e,n){let r,i,o,l=1/0;if(n<0){if(t<=this.ymin)return null;(r=(this.ymin-t)/n)<l&&(o=this.ymin,i=A+(l=r)*e)}else if(n>0){if(t>=this.ymax)return null;(r=(this.ymax-t)/n)<l&&(o=this.ymax,i=A+(l=r)*e)}if(e>0){if(A>=this.xmax)return null;(r=(this.xmax-A)/e)<l&&(i=this.xmax,o=t+(l=r)*n)}else if(e<0){if(A<=this.xmin)return null;(r=(this.xmin-A)/e)<l&&(i=this.xmin,o=t+(l=r)*n)}return[i,o]}_edgecode(A,t){return(A===this.xmin?1:A===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(A,t){return(A<this.xmin?1:A>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(A){if(A&&A.length>4){for(let t=0;t<A.length;t+=2){const e=(t+2)%A.length,n=(t+4)%A.length;(A[t]===A[e]&&A[e]===A[n]||A[t+1]===A[e+1]&&A[e+1]===A[n+1])&&(A.splice(e,2),t-=2)}A.length||(A=null)}return A}}const k=2*Math.PI,S=Math.pow;function C(A){return A[0]}function P(A){return A[1]}function D(A,t,e){return[A+Math.sin(A+t)*e,t+Math.cos(A-t)*e]}class Q{static from(A,t=C,e=P,n){return new Q("length"in A?function(A,t,e,n){const r=A.length,i=new Float64Array(2*r);for(let o=0;o<r;++o){const r=A[o];i[2*o]=t.call(n,r,o,A),i[2*o+1]=e.call(n,r,o,A)}return i}(A,t,e,n):Float64Array.from(function*(A,t,e,n){let r=0;for(const i of A)yield t.call(n,i,r,A),yield e.call(n,i,r,A),++r}(A,t,e,n)))}constructor(A){this._delaunator=new p(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,t=this.points;if(A.hull&&A.hull.length>2&&function(A){const{triangles:t,coords:e}=A;for(let A=0;A<t.length;A+=3){const n=2*t[A],r=2*t[A+1],i=2*t[A+2];if((e[i]-e[n])*(e[r+1]-e[n+1])-(e[r]-e[n])*(e[i+1]-e[n+1])>1e-10)return!1}return!0}(A)){this.collinear=Int32Array.from({length:t.length/2},(A,t)=>t).sort((A,e)=>t[2*A]-t[2*e]||t[2*A+1]-t[2*e+1]);const A=this.collinear[0],e=this.collinear[this.collinear.length-1],n=[t[2*A],t[2*A+1],t[2*e],t[2*e+1]],r=1e-8*Math.hypot(n[3]-n[1],n[2]-n[0]);for(let A=0,e=t.length/2;A<e;++A){const e=D(t[2*A],t[2*A+1],r);t[2*A]=e[0],t[2*A+1]=e[1]}this._delaunator=new p(t)}else delete this.collinear;const e=this.halfedges=this._delaunator.halfedges,n=this.hull=this._delaunator.hull,r=this.triangles=this._delaunator.triangles,i=this.inedges.fill(-1),o=this._hullIndex.fill(-1);for(let A=0,t=e.length;A<t;++A){const t=r[A%3==2?A-2:A+1];-1!==e[A]&&-1!==i[t]||(i[t]=A)}for(let A=0,t=n.length;A<t;++A)o[n[A]]=A;n.length<=2&&n.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=n[0],i[n[0]]=1,2===n.length&&(i[n[1]]=0,this.triangles[1]=n[1],this.triangles[2]=n[1]))}voronoi(A){return new M(this,A)}*neighbors(A){const{inedges:t,hull:e,_hullIndex:n,halfedges:r,triangles:i,collinear:o}=this;if(o){const t=o.indexOf(A);return t>0&&(yield o[t-1]),void(t<o.length-1&&(yield o[t+1]))}const l=t[A];if(-1===l)return;let s=l,a=-1;do{if(yield a=i[s],s=s%3==2?s-2:s+1,i[s]!==A)return;if(s=r[s],-1===s){const t=e[(n[A]+1)%e.length];return void(t!==a&&(yield t))}}while(s!==l)}find(A,t,e=0){if((A=+A)!=A||(t=+t)!=t)return-1;const n=e;let r;for(;(r=this._step(e,A,t))>=0&&r!==e&&r!==n;)e=r;return r}_step(A,t,e){const{inedges:n,hull:r,_hullIndex:i,halfedges:o,triangles:l,points:s}=this;if(-1===n[A]||!s.length)return(A+1)%(s.length>>1);let a=A,u=S(t-s[2*A],2)+S(e-s[2*A+1],2);const f=n[A];let c=f;do{let n=l[c];const f=S(t-s[2*n],2)+S(e-s[2*n+1],2);if(f<u&&(u=f,a=n),c=c%3==2?c-2:c+1,l[c]!==A)break;if(c=o[c],-1===c){if(c=r[(i[A]+1)%r.length],c!==n&&S(t-s[2*c],2)+S(e-s[2*c+1],2)<u)return c;break}}while(c!==f);return a}render(A){const t=null==A?A=new x:void 0,{points:e,halfedges:n,triangles:r}=this;for(let t=0,i=n.length;t<i;++t){const i=n[t];if(i<t)continue;const o=2*r[t],l=2*r[i];A.moveTo(e[o],e[o+1]),A.lineTo(e[l],e[l+1])}return this.renderHull(A),t&&t.value()}renderPoints(A,t){void 0!==t||A&&"function"==typeof A.moveTo||(t=A,A=null),t=null==t?2:+t;const e=null==A?A=new x:void 0,{points:n}=this;for(let e=0,r=n.length;e<r;e+=2){const r=n[e],i=n[e+1];A.moveTo(r+t,i),A.arc(r,i,t,0,k)}return e&&e.value()}renderHull(A){const t=null==A?A=new x:void 0,{hull:e,points:n}=this,r=2*e[0],i=e.length;A.moveTo(n[r],n[r+1]);for(let t=1;t<i;++t){const r=2*e[t];A.lineTo(n[r],n[r+1])}return A.closePath(),t&&t.value()}hullPolygon(){const A=new B;return this.renderHull(A),A.value()}renderTriangle(A,t){const e=null==t?t=new x:void 0,{points:n,triangles:r}=this,i=2*r[A*=3],o=2*r[A+1],l=2*r[A+2];return t.moveTo(n[i],n[i+1]),t.lineTo(n[o],n[o+1]),t.lineTo(n[l],n[l+1]),t.closePath(),e&&e.value()}*trianglePolygons(){const{triangles:A}=this;for(let t=0,e=A.length/3;t<e;++t)yield this.trianglePolygon(t)}trianglePolygon(A){const t=new B;return this.renderTriangle(A,t),t.value()}}const I=Object.assign({},{Delaunay:Q});function T(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=A.start,e=void 0===t?[0,0]:t,n=A.width,r=void 0===n?1e3:n,i=A.height,o=void 0===i?500:i,l=A.step,s=void 0===l?50:l,a=A.overflow,u=void 0!==a&&a,f=u?e[0]-s:e[0],c=u?e[1]-s:e[1],h=u?e[0]+r+s:f+r,g=u?e[1]+o+s:c+o,p=u?r+2*s:r,d=u?o+2*s:o,y=[],v=Math.round(r/s*(o/s));for(let A=0;A<v;A++)y.push([Math.random()*p+f,Math.random()*d+c]);let m=I.Delaunay.from(y,A=>A[0],A=>A[1]).voronoi([f,c,h,g]);return{type:"FeatureCollection",grid:"random",geo:!1,features:y.map((A,t)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[m.cellPolygon(t)]},properties:{index:t}}))}}function F(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.start,n=void 0===e?[0,0]:e,r=t.width,i=void 0===r?1e3:r,o=t.height,l=void 0===o?500:o,s=t.step,a=void 0===s?50:s,u=t.overflow,f=void 0===u||u,c=a*Math.sqrt(2),h=f?n[0]:n[0]+c/2,g=f?n[1]:n[1]+c/2,p=n[0]+i+c/2,d=n[1]+l+c/2,y=A(h,p,c),v=A(g,d,c/2,!1),m=y.map(A=>v.map((t,e)=>[A,t,e%2])).flat();m=m.map(A=>1===A[2]?[A[0]+c/2,A[1]]:[A[0],A[1]]),m=f?m.filter(A=>A[0]<=n[0]+i+c/2):m.filter(A=>A[0]<=n[0]+i-c/2),m=f?m.filter(A=>A[1]<=n[1]+l+c/2):m.filter(A=>A[1]<=n[1]+l-c/2);let w=c/2;return{type:"FeatureCollection",grid:"diamond",geo:!1,features:m.map((A,t)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[[[A[0]-w,A[1]],[A[0],A[1]+w],[A[0]+w,A[1]],[A[0],A[1]-w],[A[0]-w,A[1]]]]},properties:{index:t}}))}}function L(A,t){(null==t||t>A.length)&&(t=A.length);for(var e=0,n=Array(t);e<t;e++)n[e]=A[e];return n}function O(A,t,e){return(t=function(A){var t=function(A,t){if("object"!=typeof A||!A)return A;var e=A[Symbol.toPrimitive];if(void 0!==e){var n=e.call(A,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(A)}(A,"string");return"symbol"==typeof t?t:t+""}(t))in A?Object.defineProperty(A,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):A[t]=e,A}function R(A,t){var e=Object.keys(A);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(A);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(A,t).enumerable})),e.push.apply(e,n)}return e}function N(A){for(var t=1;t<arguments.length;t++){var e=null!=arguments[t]?arguments[t]:{};t%2?R(Object(e),!0).forEach(function(t){O(A,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(e)):R(Object(e)).forEach(function(t){Object.defineProperty(A,t,Object.getOwnPropertyDescriptor(e,t))})}return A}function G(A,t){return function(A){if(Array.isArray(A))return A}(A)||function(A,t){var e=null==A?null:"undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(null!=e){var n,r,i,o,l=[],s=!0,a=!1;try{if(i=(e=e.call(A)).next,0===t){if(Object(e)!==e)return;s=!1}else for(;!(s=(n=i.call(e)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(A){a=!0,r=A}finally{try{if(!s&&null!=e.return&&(o=e.return(),Object(o)!==o))return}finally{if(a)throw r}}return l}}(A,t)||function(A,t){if(A){if("string"==typeof A)return L(A,t);var e={}.toString.call(A).slice(8,-1);return"Object"===e&&A.constructor&&(e=A.constructor.name),"Map"===e||"Set"===e?Array.from(A):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?L(A,t):void 0}}(A,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Y(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.step,n=void 0===e?50:e,r=t.width,i=void 0===r?1e3:r,o=t.height,l=void 0===o?500:o,s=t.start,a=void 0===s?[0,0]:s,u=t.overflow,f=void 0===u||u;const c=n,h=c/Math.sqrt(3),g=1.5*h,p=f?a[0]-c/2:a[0],d=f?a[1]-h:a[1],y=A(d+h,f?l+d+2*h:l+d-h,g),v=[];y.forEach((t,e)=>{const n=A(p+e%2*(c/2)+c/2,f?i+p:i+p-c-c/2,c);n.forEach(A=>{A<=i+p&&v.push([A,t])}),n[n.length-1]<i+p&&v.push([n[n.length-1]+c,t])});const m=v.map((A,t)=>{let e=G(A,2),n=e[0],r=e[1];const i=[];for(let A=0;A<6;A++){const t=Math.PI/180*(60*A-30);i.push([n+h*Math.cos(t),r+h*Math.sin(t)])}return i.push(i[0]),{type:"Feature",geometry:{type:"Polygon",coordinates:[i]},properties:{index:t}}});return{type:"FeatureCollection",grid:"hexbin",geo:!1,features:m}}function z(A,t){var e,n,r,i,o,l,s,a,u,f=0,h=A[0],g=A[1],p=t.length;for(e=0;e<p;e++){n=0;var d=t[e],y=d.length-1;if((a=d[0])[0]!==d[y][0]&&a[1]!==d[y][1])throw new Error("First and last coordinates in a ring must be the same");for(i=a[0]-h,o=a[1]-g;n<y;n++){if(l=(u=d[n+1])[0]-h,s=u[1]-g,0===o&&0===s){if(l<=0&&i>=0||i<=0&&l>=0)return 0}else if(s>=0&&o<=0||s<=0&&o>=0){if(0===(r=c(i,l,o,s,0,0)))return 0;(r>0&&s>0&&o<=0||r<0&&s<=0&&o>0)&&f++}a=u,o=s,i=l}}return f%2!=0}var U=6371008.8,j={centimeters:637100880,centimetres:637100880,degrees:360/(2*Math.PI),feet:20902260.511392,inches:39.37*U,kilometers:6371.0088,kilometres:6371.0088,meters:U,metres:U,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:U/1852,radians:1,yards:6967335.223679999};function X(A,t,e={}){const n={type:"Feature"};return(0===e.id||e.id)&&(n.id=e.id),e.bbox&&(n.bbox=e.bbox),n.properties=t||{},n.geometry=A,n}function V(A,t,e={}){if(!A)throw new Error("coordinates is required");if(!Array.isArray(A))throw new Error("coordinates must be an Array");if(A.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!K(A[0])||!K(A[1]))throw new Error("coordinates must contain numbers");return X({type:"Point",coordinates:A},t,e)}function H(A,t,e={}){for(const t of A){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let A=0;A<t[t.length-1].length;A++)if(t[t.length-1][A]!==t[0][A])throw new Error("First and last Position are not equivalent.")}return X({type:"Polygon",coordinates:A},t,e)}function q(A,t,e={}){if(A.length<2)throw new Error("coordinates must be an array of two or more positions");return X({type:"LineString",coordinates:A},t,e)}function W(A,t={}){const e={type:"FeatureCollection"};return t.id&&(e.id=t.id),t.bbox&&(e.bbox=t.bbox),e.features=A,e}function Z(A){return 180*(A%(2*Math.PI))/Math.PI}function J(A){return A%360*Math.PI/180}function K(A){return!isNaN(A)&&null!==A&&!Array.isArray(A)}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")}function AA(A){if(Array.isArray(A))return A;if("Feature"===A.type){if(null!==A.geometry)return A.geometry.coordinates}else if(A.coordinates)return A.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function tA(A){return"Feature"===A.type?A.geometry:A}function eA(A,t){return"FeatureCollection"===A.type?"FeatureCollection":"GeometryCollection"===A.type?"GeometryCollection":"Feature"===A.type&&null!==A.geometry?A.geometry.type:A.type}function nA(A,t,e={}){if(!A)throw new Error("point is required");if(!t)throw new Error("polygon is required");const n=$(A),r=tA(t),i=r.type,o=t.bbox;let l=r.coordinates;if(o&&!1===function(A,t){return t[0]<=A[0]&&t[1]<=A[1]&&t[2]>=A[0]&&t[3]>=A[1]}(n,o))return!1;"Polygon"===i&&(l=[l]);let s=!1;for(var a=0;a<l.length;++a){const A=z(n,l[a]);if(0===A)return!e.ignoreBoundary;A&&(s=!0)}return s}var rA=nA;class iA{constructor(A=[],t=oA){if(this.data=A,this.length=this.data.length,this.compare=t,this.length>0)for(let A=(this.length>>1)-1;A>=0;A--)this._down(A)}push(A){this.data.push(A),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const A=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),A}peek(){return this.data[0]}_up(A){const{data:t,compare:e}=this,n=t[A];for(;A>0;){const r=A-1>>1,i=t[r];if(e(n,i)>=0)break;t[A]=i,A=r}t[A]=n}_down(A){const{data:t,compare:e}=this,n=this.length>>1,r=t[A];for(;A<n;){let n=1+(A<<1),i=t[n];const o=n+1;if(o<this.length&&e(t[o],i)<0&&(n=o,i=t[o]),e(i,r)>=0)break;t[A]=i,A=n}t[A]=r}}function oA(A,t){return A<t?-1:A>t?1:0}function lA(A,t){return A.p.x>t.p.x?1:A.p.x<t.p.x?-1:A.p.y!==t.p.y?A.p.y>t.p.y?1:-1:1}function sA(A,t){return A.rightSweepEvent.p.x>t.rightSweepEvent.p.x?1:A.rightSweepEvent.p.x<t.rightSweepEvent.p.x?-1:A.rightSweepEvent.p.y!==t.rightSweepEvent.p.y?A.rightSweepEvent.p.y<t.rightSweepEvent.p.y?1:-1:1}class aA{constructor(A,t,e,n){this.p={x:A[0],y:A[1]},this.featureId=t,this.ringId=e,this.eventId=n,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(A){return this.p.x===A.p.x&&this.p.y===A.p.y}}let uA=0,fA=0,cA=0;function hA(A,t){const e="Feature"===A.type?A.geometry:A;let n=e.coordinates;"Polygon"!==e.type&&"MultiLineString"!==e.type||(n=[n]),"LineString"===e.type&&(n=[[n]]);for(let A=0;A<n.length;A++)for(let e=0;e<n[A].length;e++){let r=n[A][e][0],i=null;fA+=1;for(let o=0;o<n[A][e].length-1;o++){i=n[A][e][o+1];const l=new aA(r,uA,fA,cA),s=new aA(i,uA,fA,cA+1);l.otherEvent=s,s.otherEvent=l,lA(l,s)>0?(s.isLeftEndpoint=!0,l.isLeftEndpoint=!1):(l.isLeftEndpoint=!0,s.isLeftEndpoint=!1),t.push(l),t.push(s),r=i,cA+=1}}uA+=1}let gA=class{constructor(A){this.leftSweepEvent=A,this.rightSweepEvent=A.otherEvent}};function pA(A,t){if(null===A||null===t)return!1;if(A.leftSweepEvent.ringId===t.leftSweepEvent.ringId&&(A.rightSweepEvent.isSamePoint(t.leftSweepEvent)||A.rightSweepEvent.isSamePoint(t.leftSweepEvent)||A.rightSweepEvent.isSamePoint(t.rightSweepEvent)||A.leftSweepEvent.isSamePoint(t.leftSweepEvent)||A.leftSweepEvent.isSamePoint(t.rightSweepEvent)))return!1;const e=A.leftSweepEvent.p.x,n=A.leftSweepEvent.p.y,r=A.rightSweepEvent.p.x,i=A.rightSweepEvent.p.y,o=t.leftSweepEvent.p.x,l=t.leftSweepEvent.p.y,s=t.rightSweepEvent.p.x,a=t.rightSweepEvent.p.y,u=(a-l)*(r-e)-(s-o)*(i-n),f=(s-o)*(n-l)-(a-l)*(e-o),c=(r-e)*(n-l)-(i-n)*(e-o);if(0===u)return!1;const h=f/u,g=c/u;if(h>=0&&h<=1&&g>=0&&g<=1){return[e+h*(r-e),n+h*(i-n)]}return!1}var dA=function(A,t){const e=new iA([],lA);return function(A,t){if("FeatureCollection"===A.type){const e=A.features;for(let A=0;A<e.length;A++)hA(e[A],t)}else hA(A,t)}(A,e),function(A,t){t=t||!1;const e=[],n=new iA([],sA);for(;A.length;){const r=A.pop();if(r.isLeftEndpoint){const A=new gA(r);for(let i=0;i<n.data.length;i++){const o=n.data[i];if(t&&o.leftSweepEvent.featureId===r.featureId)continue;const l=pA(A,o);!1!==l&&e.push(l)}n.push(A)}else!1===r.isLeftEndpoint&&n.pop()}return e}(e,t)};function yA(A,t,e={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:r=!0}=e;let i=[];"FeatureCollection"===A.type?i=i.concat(A.features):"Feature"===A.type?i.push(A):"LineString"!==A.type&&"Polygon"!==A.type&&"MultiLineString"!==A.type&&"MultiPolygon"!==A.type||i.push(X(A)),"FeatureCollection"===t.type?i=i.concat(t.features):"Feature"===t.type?i.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||i.push(X(t));const o=dA(W(i),r);let l=[];if(n){const A={};o.forEach(t=>{const e=t.join(",");A[e]||(A[e]=!0,l.push(t))})}else l=o;return W(l.map(A=>V(A)))}function vA(A,t,e){if(null!==A)for(var n,r,i,o,l,s,a,u,f=0,c=0,h=A.type,g="FeatureCollection"===h,p="Feature"===h,d=g?A.features.length:1,y=0;y<d;y++){l=(u=!!(a=g?A.features[y].geometry:p?A.geometry:A)&&"GeometryCollection"===a.type)?a.geometries.length:1;for(var v=0;v<l;v++){var m=0,w=0;if(null!==(o=u?a.geometries[v]:a)){s=o.coordinates;var b=o.type;switch(f=0,b){case null:break;case"Point":if(!1===t(s,c,y,m,w))return!1;c++,m++;break;case"LineString":case"MultiPoint":for(n=0;n<s.length;n++){if(!1===t(s[n],c,y,m,w))return!1;c++,"MultiPoint"===b&&m++}"LineString"===b&&m++;break;case"Polygon":case"MultiLineString":for(n=0;n<s.length;n++){for(r=0;r<s[n].length-f;r++){if(!1===t(s[n][r],c,y,m,w))return!1;c++}"MultiLineString"===b&&m++,"Polygon"===b&&w++}"Polygon"===b&&m++;break;case"MultiPolygon":for(n=0;n<s.length;n++){for(w=0,r=0;r<s[n].length;r++){for(i=0;i<s[n][r].length-f;i++){if(!1===t(s[n][r][i],c,y,m,w))return!1;c++}w++}m++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(!1===vA(o.geometries[n],t))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function mA(A,t){if("Feature"===A.type)t(A,0);else if("FeatureCollection"===A.type)for(var e=0;e<A.features.length&&!1!==t(A.features[e],e);e++);}function wA(A,t){var e,n,r,i,o,l,s,a,u,f,c=0,h="FeatureCollection"===A.type,g="Feature"===A.type,p=h?A.features.length:1;for(e=0;e<p;e++){for(l=h?A.features[e].geometry:g?A.geometry:A,a=h?A.features[e].properties:g?A.properties:{},u=h?A.features[e].bbox:g?A.bbox:void 0,f=h?A.features[e].id:g?A.id:void 0,o=(s=!!l&&"GeometryCollection"===l.type)?l.geometries.length:1,r=0;r<o;r++)if(null!==(i=s?l.geometries[r]:l))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,c,a,u,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],c,a,u,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,c,a,u,f))return!1;c++}}function bA(A,t){wA(A,function(A,e,n,r,i){var o,l=null===A?null:A.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(X(A,n,{bbox:r,id:i}),e,0)&&void 0}switch(l){case"MultiPoint":o="Point";break;case"MultiLineString":o="LineString";break;case"MultiPolygon":o="Polygon"}for(var s=0;s<A.coordinates.length;s++){var a=A.coordinates[s];if(!1===t(X({type:o,coordinates:a},n),e,s))return!1}})}function EA(A,t,e){var n=e,r=!1;return function(A,t){bA(A,function(A,e,n){var r=0;if(A.geometry){var i=A.geometry.type;if("Point"!==i&&"MultiPoint"!==i){var o,l=0,s=0,a=0;return!1!==vA(A,function(i,u,f,c,h){if(void 0===o||e>l||c>s||h>a)return o=i,l=e,s=c,a=h,void(r=0);var g=q([o,i],A.properties);if(!1===t(g,e,n,h,r))return!1;r++,o=i})&&void 0}}})}(A,function(A,i,o,l,s){n=!1===r&&void 0===e?A:t(n,A,i,o,l,s),r=!0}),n}function _A(A,t={}){const e=tA(A);switch(t.properties||"Feature"!==A.type||(t.properties=A.properties),e.type){case"Polygon":return function(A,t={}){const e=tA(A),n=e.coordinates,r=t.properties?t.properties:"Feature"===A.type?A.properties:{};return xA(n,r)}(e,t);case"MultiPolygon":return function(A,t={}){const e=tA(A),n=e.coordinates,r=t.properties?t.properties:"Feature"===A.type?A.properties:{},i=[];return n.forEach(A=>{i.push(xA(A,r))}),W(i)}(e,t);default:throw new Error("invalid poly")}}function xA(A,t){return A.length>1?function(A,t,e={}){return X({type:"MultiLineString",coordinates:A},t,e)}(A,t):q(A[0],t)}function BA(A,t,{ignoreSelfIntersections:e=!0}={ignoreSelfIntersections:!0}){let n=!0;return bA(A,A=>{bA(t,t=>{if(!1===n)return!1;n=function(A,t,e){switch(A.type){case"Point":switch(t.type){case"Point":return n=A.coordinates,r=t.coordinates,!(n[0]===r[0]&&n[1]===r[1]);case"LineString":return!MA(t,A);case"Polygon":return!nA(A,t)}break;case"LineString":switch(t.type){case"Point":return!MA(A,t);case"LineString":return!function(A,t,e){const n=yA(A,t,{ignoreSelfIntersections:e});if(n.features.length>0)return!0;return!1}(A,t,e);case"Polygon":return!kA(t,A,e)}break;case"Polygon":switch(t.type){case"Point":return!nA(t,A);case"LineString":return!kA(A,t,e);case"Polygon":return!function(A,t,e){for(const e of A.coordinates[0])if(nA(e,t))return!0;for(const e of t.coordinates[0])if(nA(e,A))return!0;const n=yA(_A(A),_A(t),{ignoreSelfIntersections:e});if(n.features.length>0)return!0;return!1}(t,A,e)}}var n,r;return!1}(A.geometry,t.geometry,e)})}),n}function MA(A,t){for(let e=0;e<A.coordinates.length-1;e++)if(SA(A.coordinates[e],A.coordinates[e+1],t.coordinates))return!0;return!1}function kA(A,t,e){for(const e of t.coordinates)if(nA(e,A))return!0;return yA(t,_A(A),{ignoreSelfIntersections:e}).features.length>0}function SA(A,t,e){const n=e[0]-A[0],r=e[1]-A[1],i=t[0]-A[0],o=t[1]-A[1];return 0===n*o-r*i&&(Math.abs(i)>=Math.abs(o)?i>0?A[0]<=e[0]&&e[0]<=t[0]:t[0]<=e[0]&&e[0]<=A[0]:o>0?A[1]<=e[1]&&e[1]<=t[1]:t[1]<=e[1]&&e[1]<=A[1])}var CA=function(A,t,{ignoreSelfIntersections:e=!0}={}){let n=!1;return bA(A,A=>{bA(t,t=>{if(!0===n)return!0;n=!BA(A.geometry,t.geometry,{ignoreSelfIntersections:e})})}),n};function PA(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=A.step,e=void 0===t?1:t,n=A.domain,r=void 0===n?null:n;const i=180,o=-90;if(e<=0)throw new Error("step must be > 0");const l=[];let s=0,a=-180;for(;a<i-1e-12;){let A=a+e;A>i&&(A=i);const t=Math.max(a,-179.99),n=Math.min(A,179.99);let r=90;for(;r>o+1e-12;){let A=r-e;A<o&&(A=o);const i=Math.min(r,89.99),a=Math.max(A,-89.99);n-t>1e-12&&i-a>1e-12&&l.push({type:"Feature",geometry:{type:"Polygon",coordinates:[[[t,i],[n,i],[n,a],[t,a],[t,i]]]},properties:{index:s++}}),r=A}a=A}return{type:"FeatureCollection",grid:"square_sph",geo:!0,features:r?l.filter(A=>{try{return CA(A,r)}catch(A){return!1}}):l}}var DA=function(A){var t,e=void 0!==(A=A||{})?A:{},n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);var r,i,o,l,s;r="object"==typeof window,i="function"==typeof importScripts,l="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=l&&!r&&!i,s=!r&&!o&&!i;var a,u,f,c,h,g="";o?(g=__dirname+"/",a=function(A,t){var e;return(e=tA(A))||(c||(c=require("fs")),h||(h=require("path")),A=h.normalize(A),e=c.readFileSync(A)),t?e:e.toString()},f=function(A){var t=a(A,!0);return t.buffer||(t=new Uint8Array(t)),m(t.buffer),t},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),e.inspect=function(){return"[Emscripten Module object]"}):s?("undefined"!=typeof read&&(a=function(A){var t=tA(A);return t?$(t):read(A)}),f=function(A){var t;return(t=tA(A))?t:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(m("object"==typeof(t=read(A,"binary"))),t)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(r||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):"",a=function(A){try{var t=new XMLHttpRequest;return t.open("GET",A,!1),t.send(null),t.responseText}catch(t){var e=tA(A);if(e)return $(e);throw t}},i&&(f=function(A){try{var t=new XMLHttpRequest;return t.open("GET",A,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}catch(t){var e=tA(A);if(e)return e;throw t}}),u=function(A,t,e){var n=new XMLHttpRequest;n.open("GET",A,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status||0==n.status&&n.response)t(n.response);else{var r=tA(A);r?t(r.buffer):e()}},n.onerror=e,n.send(null)});var p=e.print||console.log.bind(console),d=e.printErr||console.warn.bind(console);for(t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);n=null,e.arguments&&e.arguments,e.thisProgram&&e.thisProgram;var y=0;var v=!1;function m(A,t){A||pA("Assertion failed: "+t)}function w(A){var t=e["_"+A];return m(t,"Cannot call unknown function "+A+", make sure it is exported"),t}function b(A,t,e,n,r){var i={string:function(A){var t=0;if(null!=A&&0!==A){var e=1+(A.length<<2);(function(A,t,e){(function(A,t,e,n){if(!(n>0))return 0;for(var r=e,i=e+n-1,o=0;o<A.length;++o){var l=A.charCodeAt(o);if(l>=55296&&l<=57343)l=65536+((1023&l)<<10)|1023&A.charCodeAt(++o);if(l<=127){if(e>=i)break;t[e++]=l}else if(l<=2047){if(e+1>=i)break;t[e++]=192|l>>6,t[e++]=128|63&l}else if(l<=65535){if(e+2>=i)break;t[e++]=224|l>>12,t[e++]=128|l>>6&63,t[e++]=128|63&l}else{if(e+3>=i)break;t[e++]=240|l>>18,t[e++]=128|l>>12&63,t[e++]=128|l>>6&63,t[e++]=128|63&l}}t[e]=0})(A,x,t,e)})(A,t=oA(e),e)}return t},array:function(A){var t=oA(A.length);return function(A,t){_.set(A,t)}(A,t),t}};var o=w(A),l=[],s=0;if(n)for(var a=0;a<n.length;a++){var u=i[e[a]];u?(0===s&&(s=sA()),l[a]=u(n[a])):l[a]=n[a]}var f=o.apply(null,l);return f=function(A){return"string"===t?P(A):"boolean"===t?Boolean(A):A}(f),0!==s&&lA(s),f}var E,_,x,B,M,k,S,C="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function P(A,t){return A?function(A,t,e){for(var n=t+e,r=t;A[r]&&!(r>=n);)++r;if(r-t>16&&A.subarray&&C)return C.decode(A.subarray(t,r));for(var i="";t<r;){var o=A[t++];if(128&o){var l=63&A[t++];if(192!=(224&o)){var s=63&A[t++];if((o=224==(240&o)?(15&o)<<12|l<<6|s:(7&o)<<18|l<<12|s<<6|63&A[t++])<65536)i+=String.fromCharCode(o);else{var a=o-65536;i+=String.fromCharCode(55296|a>>10,56320|1023&a)}}else i+=String.fromCharCode((31&o)<<6|l)}else i+=String.fromCharCode(o)}return i}(x,A,t):""}function D(A,t){return A%t>0&&(A+=t-A%t),A}function Q(A){E=A,e.HEAP8=_=new Int8Array(A),e.HEAP16=B=new Int16Array(A),e.HEAP32=M=new Int32Array(A),e.HEAPU8=x=new Uint8Array(A),e.HEAPU16=new Uint16Array(A),e.HEAPU32=new Uint32Array(A),e.HEAPF32=k=new Float32Array(A),e.HEAPF64=S=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var I=e.TOTAL_MEMORY||33554432;function T(A){for(;A.length>0;){var t=A.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?e.dynCall_v(n):e.dynCall_vi(n,t.arg):n(void 0===t.arg?null:t.arg)}else t()}}I=(E=e.buffer?e.buffer:new ArrayBuffer(I)).byteLength,Q(E),M[7156]=5271536;var F=[],L=[],O=[],R=[];function N(A){F.unshift(A)}function G(A){R.unshift(A)}var Y=Math.abs,z=Math.ceil,U=Math.floor,j=Math.min,X=0,V=null;e.preloadedImages={},e.preloadedAudios={};var H,q,W=null,Z="data:application/octet-stream;base64,";function J(A){return String.prototype.startsWith?A.startsWith(Z):0===A.indexOf(Z)}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//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAA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ZV0gPT0gS0kAZmFjZWlqay5jAF9mYWNlSWprUGVudFRvQ2VsbEJvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9DZWxsQm91bmRhcnkAaDNJbmRleC5jAGNvbXBhY3RDZWxscwBsYXRMbmdUb0NlbGwAY2VsbFRvQ2hpbGRQb3MAdmFsaWRhdGVDaGlsZFBvcwBsYXRMbmcuYwBjZWxsQXJlYVJhZHMyAHBvbHlnb24tPm5leHQgPT0gTlVMTABsaW5rZWRHZW8uYwBhZGROZXdMaW5rZWRQb2x5Z29uAG5leHQgIT0gTlVMTABsb29wICE9IE5VTEwAYWRkTmV3TGlua2VkTG9vcABwb2x5Z29uLT5maXJzdCA9PSBOVUxMAGFkZExpbmtlZExvb3AAY29vcmQgIT0gTlVMTABhZGRMaW5rZWRDb29yZABsb29wLT5maXJzdCA9PSBOVUxMAGlubmVyTG9vcHMgIT0gTlVMTABub3JtYWxpemVNdWx0aVBvbHlnb24AYmJveGVzICE9IE5VTEwAY2FuZGlkYXRlcyAhPSBOVUxMAGZpbmRQb2x5Z29uRm9ySG9sZQBjYW5kaWRhdGVCQm94ZXMgIT0gTlVMTAByZXZEaXIgIT0gSU5WQUxJRF9ESUdJVABsb2NhbGlqLmMAY2VsbFRvTG9jYWxJamsAYmFzZUNlbGwgIT0gb3JpZ2luQmFzZUNlbGwAIShvcmlnaW5PblBlbnQgJiYgaW5kZXhPblBlbnQpAGJhc2VDZWxsID09IG9yaWdpbkJhc2VDZWxsAGJhc2VDZWxsICE9IElOVkFMSURfQkFTRV9DRUxMAGxvY2FsSWprVG9DZWxsACFfaXNCYXNlQ2VsbFBlbnRhZ29uKGJhc2VDZWxsKQBiYXNlQ2VsbFJvdGF0aW9ucyA+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAdmVydGV4Um90YXRpb25zAGNlbGxUb1ZlcnRleABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl";function K(){return _.length}function $(A){for(var t=[],e=0;e<A.length;e++){var n=A[e];n>255&&(n&=255),t.push(String.fromCharCode(n))}return t.join("")}var AA="function"==typeof atob?atob:function(A){var t,e,n,r,i,o,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s="",a=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{t=l.indexOf(A.charAt(a++))<<2|(r=l.indexOf(A.charAt(a++)))>>4,e=(15&r)<<4|(i=l.indexOf(A.charAt(a++)))>>2,n=(3&i)<<6|(o=l.indexOf(A.charAt(a++))),s+=String.fromCharCode(t),64!==i&&(s+=String.fromCharCode(e)),64!==o&&(s+=String.fromCharCode(n))}while(a<A.length);return s};function tA(A){if(J(A))return function(A){if("boolean"==typeof o&&o){var t;try{t=Buffer.from(A,"base64")}catch(e){t=new Buffer(A,"base64")}return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}try{for(var e=AA(A),n=new Uint8Array(e.length),r=0;r<e.length;++r)n[r]=e.charCodeAt(r);return n}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(Z.length))}var eA=function(A,t,e){var n=new A.Int8Array(e),r=new A.Int32Array(e);new A.Uint8Array(e),new A.Float32Array(e);var i=new A.Float64Array(e),o=0|t.o,l=0|t.p,s=A.Math.floor,a=A.Math.abs,u=A.Math.sqrt,f=A.Math.pow,c=A.Math.cos,h=A.Math.sin,g=A.Math.tan,p=A.Math.acos,d=A.Math.asin,y=A.Math.atan,v=A.Math.atan2,m=A.Math.ceil,w=A.Math.imul,b=A.Math.min,E=A.Math.max,_=A.Math.clz32,x=t.b,B=t.c,M=t.d,k=t.e,S=t.f,C=t.g,P=t.h,D=t.i,Q=28656;function I(A,t,e,n){return 0|T(A|=0,t|=0,e|=0,n|=0,0)}function T(A,t,e,n,i){var o,l=0,s=0,a=0,u=0;if(o=Q,Q=Q+16|0,s=o,!(0|F(A|=0,t|=0,e|=0,n|=0,i|=0)))return Q=o,0|(n=0);do{if((0|e)>=0){if((0|e)>13780509){if(0|(l=0|pt(15,s)))break;s=0|r[(a=s)>>2],a=0|r[a+4>>2]}else u=0|oe(0|e,0|(l=((0|e)<0)<<31>>31),3,0),a=0|B(),l=0|te(0|e,0|l,1,0),l=0|te(0|(l=0|oe(0|u,0|a,0|l,0|B())),0|B(),1,0),a=0|B(),r[s>>2]=l,r[s+4>>2]=a,s=l;if(ye(0|n,0,s<<3),0|i){ye(0|i,0,s<<2),l=0|L(A,t,e,n,i,s,a,0);break}(l=0|Ae(s,4))?(u=0|L(A,t,e,n,l,s,a,0),$t(l),l=u):l=13}else l=2}while(0);return Q=o,0|(u=l)}function F(A,t,e,n,i){A|=0,t|=0,e|=0,n|=0,i|=0;var o,l,s=0,a=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0;if(l=Q,Q=Q+16|0,d=l+8|0,r[(p=o=l)>>2]=A,r[p+4>>2]=t,(0|e)<0)return Q=l,0|(d=2);if(r[(s=n)>>2]=A,r[s+4>>2]=t,(s=!!(0|i))&&(r[i>>2]=0),0|VA(A,t))return Q=l,0|(d=9);r[d>>2]=0;A:do{if((0|e)>=1)if(s)for(h=1,c=0,g=0,p=1,s=A;;){if(!(c|g)){if(0|(s=0|O(s,t,4,d,o)))break A;if(0|VA(s=0|r[(t=o)>>2],t=0|r[t+4>>2])){s=9;break A}}if(0|(s=0|O(s,t,0|r[26800+(g<<2)>>2],d,o)))break A;if(s=0|r[(t=o)>>2],t=0|r[t+4>>2],r[(A=n+(h<<3)|0)>>2]=s,r[A+4>>2]=t,r[i+(h<<2)>>2]=p,a=(0|(A=c+1|0))==(0|p),f=6==(0|(u=g+1|0)),0|VA(s,t)){s=9;break A}if((0|(p=p+(f&a&1)|0))>(0|e)){s=0;break}h=h+1|0,c=a?0:A,g=a?f?0:u:g}else for(h=1,c=0,g=0,p=1,s=A;;){if(!(c|g)){if(0|(s=0|O(s,t,4,d,o)))break A;if(0|VA(s=0|r[(t=o)>>2],t=0|r[t+4>>2])){s=9;break A}}if(0|(s=0|O(s,t,0|r[26800+(g<<2)>>2],d,o)))break A;if(s=0|r[(t=o)>>2],t=0|r[t+4>>2],r[(A=n+(h<<3)|0)>>2]=s,r[A+4>>2]=t,a=(0|(A=c+1|0))==(0|p),f=6==(0|(u=g+1|0)),0|VA(s,t)){s=9;break A}if((0|(p=p+(f&a&1)|0))>(0|e)){s=0;break}h=h+1|0,c=a?0:A,g=a?f?0:u:g}else s=0}while(0);return Q=l,0|(d=s)}function L(A,t,e,n,i,o,l,s){e|=0,n|=0,i|=0,s|=0;var a,u,f,c=0,h=0,g=0,p=0,d=0,y=0,v=0;if(f=Q,Q=Q+16|0,a=f+8|0,u=f,c=0|se(0|(A|=0),0|(t|=0),0|(o|=0),0|(l|=0)),g=0|B(),!(!(0|(v=0|r[(y=p=n+(c<<3)|0)>>2]))&!(0|(y=0|r[y+4>>2]))|(h=(0|v)==(0|A)&(0|y)==(0|t))))do{c=0|le(0|(c=0|te(0|c,0|g,1,0)),0|B(),0|o,0|l),g=0|B(),h=(0|(y=0|r[(v=p=n+(c<<3)|0)>>2]))==(0|A)&(0|(v=0|r[v+4>>2]))==(0|t)}while(!(!(0|y)&!(0|v)|h));if(c=i+(c<<2)|0,h&&(0|r[c>>2])<=(0|s))return Q=f,0|(v=0);if(r[(v=p)>>2]=A,r[v+4>>2]=t,r[c>>2]=s,(0|s)>=(0|e))return Q=f,0|(v=0);switch(h=s+1|0,r[a>>2]=0,0|(c=0|O(A,t,2,a,u))){case 9:d=9;break;case 0:(c=0|L(0|r[(c=u)>>2],0|r[c+4>>2],e,n,i,o,l,h))||(d=9)}A:do{if(9==(0|d)){switch(r[a>>2]=0,0|(c=0|O(A,t,3,a,u))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=u)>>2],0|r[c+4>>2],e,n,i,o,l,h)))break A;break;default:break A}switch(r[a>>2]=0,0|(c=0|O(A,t,1,a,u))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=u)>>2],0|r[c+4>>2],e,n,i,o,l,h)))break A;break;default:break A}switch(r[a>>2]=0,0|(c=0|O(A,t,5,a,u))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=u)>>2],0|r[c+4>>2],e,n,i,o,l,h)))break A;break;default:break A}switch(r[a>>2]=0,0|(c=0|O(A,t,4,a,u))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=u)>>2],0|r[c+4>>2],e,n,i,o,l,h)))break A;break;default:break A}switch(r[a>>2]=0,0|(c=0|O(A,t,6,a,u))){case 9:break;case 0:if(0|(c=0|L(0|r[(c=u)>>2],0|r[c+4>>2],e,n,i,o,l,h)))break A;break;default:break A}return Q=f,0|(v=0)}}while(0);return Q=f,0|(v=c)}function O(A,t,e,n,i){A|=0,t|=0,i|=0;var o,l,s=0,a=0,u=0,f=0,c=0,h=0,g=0;if((e|=0)>>>0>6)return 0|(i=1);if(c=(0|r[(n|=0)>>2])%6|0,r[n>>2]=c,(0|c)>0){s=0;do{e=0|bA(e),s=s+1|0}while((0|s)<(0|r[n>>2]))}if(c=0|ue(0|A,0|t,45),B(),(l=127&c)>>>0>121)return 0|(i=5);o=0|WA(A,t),s=0|ue(0|A,0|t,52),B(),s&=15;A:do{if(s){for(;;){if(u=0|ue(0|A,0|t,0|(a=3*(15-s|0)|0)),B(),7==(0|(u&=7))){t=5;break}if(g=!(0|At(s)),s=s+-1|0,h=0|fe(7,0,0|a),t&=~B(),A=0|fe(0|r[(g?432:16)+(28*u|0)+(e<<2)>>2],0,0|a)|A&~h,t|=a=0|B(),!(e=0|r[(g?640:224)+(28*u|0)+(e<<2)>>2])){e=0;break A}if(!s){f=8;break A}}return 0|t}f=8}while(0);8==(0|f)&&(A|=0|fe(0|(g=0|r[848+(28*l|0)+(e<<2)>>2]),0,45),t=B()|-1040385&t,e=0|r[4272+(28*l|0)+(e<<2)>>2],127&~g||(g=0|fe(0|r[848+(28*l|0)+20>>2],0,45),t=B()|-1040385&t,e=0|r[4272+(28*l|0)+20>>2],A=0|JA(g|A,t),t=0|B(),r[n>>2]=1+(0|r[n>>2]))),u=0|ue(0|A,0|t,45),B(),u&=127;A:do{if(0|z(u)){t:do{if(1==(0|WA(A,t))){if((0|l)!=(0|u)){if(0|V(u,0|r[7696+(28*l|0)>>2])){A=0|$A(A,t),a=1,t=0|B();break}M(27795,26864,533,26872)}switch(0|o){case 3:A=0|JA(A,t),t=0|B(),r[n>>2]=1+(0|r[n>>2]),a=0;break t;case 5:A=0|$A(A,t),t=0|B(),r[n>>2]=5+(0|r[n>>2]),a=0;break t;case 0:return 0|(g=9);default:return 0|(g=1)}}else a=0}while(0);if((0|e)>0){s=0;do{A=0|ZA(A,t),t=0|B(),s=s+1|0}while((0|s)!=(0|e))}if((0|l)!=(0|u)){if(!(0|U(u))){if(!!(0|a)|5!=(0|WA(A,t)))break;r[n>>2]=1+(0|r[n>>2]);break}switch(127&c){case 8:case 118:break A}3!=(0|WA(A,t))&&(r[n>>2]=1+(0|r[n>>2]))}}else if((0|e)>0){s=0;do{A=0|JA(A,t),t=0|B(),s=s+1|0}while((0|s)!=(0|e))}}while(0);return r[n>>2]=((0|r[n>>2])+e|0)%6|0,r[(g=i)>>2]=A,r[g+4>>2]=t,0|(g=0)}function R(A,t,e,n){A|=0,t|=0,e|=0,n|=0;var i,o,l=0,s=0,a=0,u=0,f=0,c=0,h=0,g=0,p=0;if(o=Q,Q=Q+16|0,p=o+8|0,r[(g=i=o)>>2]=A,r[g+4>>2]=t,(0|e)<0)return Q=o,0|(p=2);if(!e)return r[(p=n)>>2]=A,r[p+4>>2]=t,Q=o,0|(p=0);r[p>>2]=0;A:do{if(0|VA(A,t))A=9;else{l=0,g=A;do{if(0|(A=0|O(g,t,4,p,i)))break A;if(l=l+1|0,0|VA(g=0|r[(t=i)>>2],t=0|r[t+4>>2])){A=9;break A}}while((0|l)<(0|e));r[(h=n)>>2]=g,r[h+4>>2]=t,h=e+-1|0,c=0,A=1;do{if(l=26800+(c<<2)|0,5==(0|c))for(a=0|r[l>>2],s=0,l=A;;){if(0|(A=0|O(0|r[(A=i)>>2],0|r[A+4>>2],a,p,i)))break A;if((0|s)!=(0|h)){if(u=0|r[(f=i)>>2],f=0|r[f+4>>2],r[(A=n+(l<<3)|0)>>2]=u,r[A+4>>2]=f,0|VA(u,f)){A=9;break A}A=l+1|0}else A=l;if((0|(s=s+1|0))>=(0|e))break;l=A}else for(a=i,f=0|r[l>>2],u=0,l=A,s=0|r[a>>2],a=0|r[a+4>>2];;){if(0|(A=0|O(s,a,f,p,i)))break A;if(s=0|r[(a=i)>>2],a=0|r[a+4>>2],r[(A=n+(l<<3)|0)>>2]=s,r[A+4>>2]=a,A=l+1|0,0|VA(s,a)){A=9;break A}if((0|(u=u+1|0))>=(0|e))break;l=A}c=c+1|0}while(c>>>0<6);A=(0|g)==(0|r[(A=i)>>2])&&(0|t)==(0|r[A+4>>2])?0:9}}while(0);return Q=o,0|(p=A)}function N(A,t,e,n){A|=0,t|=0,n|=0;var i,o=0,l=0,s=0,a=0,u=0,f=0,c=0,h=0;if(i=Q,Q=Q+16|0,s=i,!(e|=0))return r[n>>2]=A,r[n+4>>2]=t,Q=i,0|(n=0);do{if((0|e)>=0){if((0|e)>13780509){if(0|(o=0|pt(15,s)))break;o=0|r[(l=s)>>2],l=0|r[l+4>>2]}else c=0|oe(0|e,0|(o=((0|e)<0)<<31>>31),3,0),l=0|B(),o=0|te(0|e,0|o,1,0),o=0|te(0|(o=0|oe(0|c,0|l,0|o,0|B())),0|B(),1,0),l=0|B(),r[(c=s)>>2]=o,r[c+4>>2]=l;if(f=0|Ae(o,8)){if(!(c=0|Ae(o,4))){$t(f),o=13;break}if(0|(o=0|L(A,t,e,f,c,o,l,0))){$t(f),$t(c);break}if(t=0|r[s>>2],(0|(s=0|r[s+4>>2]))>0|!(0|s)&t>>>0>0){o=0,a=0,u=0;do{!(0|(l=0|r[(A=f+(a<<3)|0)>>2]))&!(0|(A=0|r[A+4>>2]))||(0|r[c+(a<<2)>>2])!=(0|e)||(r[(h=n+(o<<3)|0)>>2]=l,r[h+4>>2]=A,o=o+1|0),a=0|te(0|a,0|u,1,0),u=0|B()}while((0|u)<(0|s)|(0|u)==(0|s)&a>>>0<t>>>0)}$t(f),$t(c),o=0}else o=13}else o=2}while(0);return Q=i,0|(h=o)}function G(A,t,e,n){e|=0,n|=0;var i,o,l,s=0,a=0;for(l=Q,Q=Q+16|0,i=l,o=l+8|0,s=(s=!(0|VA(A|=0,t|=0)))?1:2;;){if(r[o>>2]=0,!(0|O(A,t,s,o,i))&((0|r[(a=i)>>2])==(0|e)?(0|r[a+4>>2])==(0|n):0)){A=4;break}if((s=s+1|0)>>>0>=7){s=7,A=4;break}}return 4==(0|A)?(Q=l,0|s):0}function Y(A,t,e,n,o,l,s){t|=0,e|=0,n|=0,o|=0,l|=0,s|=0;var a,u,f,c,h,g,p,d,y,v,m=0,w=0,b=0,E=0,_=0,x=0,M=0,k=0,S=0,C=0,P=0,D=0,I=0,T=0,F=0,L=0,O=0,R=0,N=0;if(v=Q,Q=Q+64|0,p=v+48|0,d=v+32|0,y=v+24|0,a=v+8|0,u=v,(0|(w=0|r[(A|=0)>>2]))<=0)return Q=v,0|(F=0);for(f=A+4|0,c=p+8|0,h=d+8|0,g=a+8|0,m=0,I=0;;){D=(b=0|r[f>>2])+(I<<4)|0,r[p>>2]=r[D>>2],r[p+4>>2]=r[D+4>>2],r[p+8>>2]=r[D+8>>2],r[p+12>>2]=r[D+12>>2],(0|I)==(w+-1|0)?(r[d>>2]=r[b>>2],r[d+4>>2]=r[b+4>>2],r[d+8>>2]=r[b+8>>2],r[d+12>>2]=r[b+12>>2]):(D=b+(I+1<<4)|0,r[d>>2]=r[D>>2],r[d+4>>2]=r[D+4>>2],r[d+8>>2]=r[D+8>>2],r[d+12>>2]=r[D+12>>2]),w=0|nA(p,d,n,y);A:do{if(w)b=0,m=w;else if(b=0|r[(w=y)>>2],(0|(w=0|r[w+4>>2]))>0|!(0|w)&b>>>0>0){P=0,D=0;t:for(;;){if(O=1/(+(b>>>0)+4294967296*+(0|w)),N=+i[p>>3],R=+((w=0|ee(0|b,0|w,0|P,0|D))>>>0)+4294967296*+(0|B()),L=+(P>>>0)+4294967296*+(0|D),i[a>>3]=O*(N*R)+O*(+i[d>>3]*L),i[g>>3]=O*(+i[c>>3]*R)+O*(+i[h>>3]*L),0|(w=0|tt(a,n,u))){m=w;break}x=0|se(0|(S=0|r[(C=u)>>2]),0|(C=0|r[C+4>>2]),0|t,0|e),E=0|B(),b=0|r[(_=w=s+(x<<3)|0)>>2],_=0|r[_+4>>2];e:do{if(!(0|b)&!(0|_))T=w,F=16;else for(M=0,k=0;;){if((0|M)>(0|e)|(0|M)==(0|e)&k>>>0>t>>>0){m=1;break t}if((0|b)==(0|S)&(0|_)==(0|C))break e;if(x=0|le(0|(w=0|te(0|x,0|E,1,0)),0|B(),0|t,0|e),E=0|B(),k=0|te(0|k,0|M,1,0),M=0|B(),!(0|(b=0|r[(_=w=s+(x<<3)|0)>>2]))&!(0|(_=0|r[_+4>>2]))){T=w,F=16;break}}}while(0);if(16!=(0|F)||(F=0,!(0|S)&!(0|C))||(r[(k=T)>>2]=S,r[k+4>>2]=C,k=l+(r[o>>2]<<3)|0,r[k>>2]=S,r[k+4>>2]=C,k=0|te(0|r[(k=o)>>2],0|r[k+4>>2],1,0),S=0|B(),r[(C=o)>>2]=k,r[C+4>>2]=S),P=0|te(0|P,0|D,1,0),D=0|B(),b=0|r[(w=y)>>2],!((0|(w=0|r[w+4>>2]))>(0|D)|(0|w)==(0|D)&b>>>0>P>>>0)){b=1;break A}}b=0}else b=1}while(0);if(I=I+1|0,!b){F=21;break}if((0|I)>=(0|(w=0|r[A>>2]))){m=0,F=21;break}}return 21==(0|F)?(Q=v,0|m):0}function z(A){return(A|=0)>>>0>121?0|(A=0):0|(A=0|r[7696+(28*A|0)+16>>2])}function U(A){return 4==(0|(A|=0))|117==(0|A)|0}function j(A){return 0|r[11120+(216*(0|r[(A|=0)>>2])|0)+(72*(0|r[A+4>>2])|0)+(24*(0|r[A+8>>2])|0)+(r[A+12>>2]<<3)>>2]}function X(A){return 0|r[11120+(216*(0|r[(A|=0)>>2])|0)+(72*(0|r[A+4>>2])|0)+(24*(0|r[A+8>>2])|0)+(r[A+12>>2]<<3)+4>>2]}function V(A,t){return t|=0,(0|r[7696+(28*(A|=0)|0)+20>>2])==(0|t)?0|(t=1):0|(t=(0|r[7696+(28*A|0)+24>>2])==(0|t))}function H(A,t){return 0|r[848+(28*(A|=0)|0)+((t|=0)<<2)>>2]}function q(A,t){return t|=0,(0|r[848+(28*(A|=0)|0)>>2])==(0|t)?0|(t=0):(0|r[848+(28*A|0)+4>>2])==(0|t)?0|(t=1):(0|r[848+(28*A|0)+8>>2])==(0|t)?0|(t=2):(0|r[848+(28*A|0)+12>>2])==(0|t)?0|(t=3):(0|r[848+(28*A|0)+16>>2])==(0|t)?0|(t=4):(0|r[848+(28*A|0)+20>>2])==(0|t)?0|(t=5):0|((0|r[848+(28*A|0)+24>>2])==(0|t)?6:7)}function W(A){var t,e,n;return t=(n=+i[(A|=0)+16>>3])-(e=+i[A+24>>3]),+(n<e?t+6.283185307179586:t)}function Z(A){return+i[(A|=0)+16>>3]<+i[A+24>>3]|0}function J(A){return+(+i[(A|=0)>>3]-+i[A+8>>3])}function K(A,t){A|=0;var e,n,r=0;return(r=+i[(t|=0)>>3])>=+i[A+8>>3]&&r<=+i[A>>3]?(e=+i[A+16>>3],r=+i[A+24>>3],t=(n=+i[t+8>>3])>=r,A=n<=e&1,e<r?t&&(A=1):t||(A=0),0|(t=!!(0|A))):0|(t=0)}function $(A,t){t|=0;var e,n,r,o,l,s=0,a=0,u=0,f=0;return+i[(A|=0)>>3]<+i[t+8>>3]||+i[A+8>>3]>+i[t>>3]?0|(s=0):(r=(a=+i[A+16>>3])<(f=+i[(e=A+24|0)>>3]),u=(l=+i[(s=t+16|0)>>3])<(o=+i[(n=t+24|0)>>3]),t=f-l<o-a,A=r?u|t?1:2:0,t=u?r?1:t?2:1:0,(a=+ct(a,A))<+ct(+i[n>>3],t)||(f=+ct(+i[e>>3],A))>+ct(+i[s>>3],t)?0|(u=0):0|(u=1))}function AA(A,t){t|=0;var e,n,r,o,l,s=0,a=0,u=0,f=0;return+i[(A|=0)>>3]<+i[t>>3]||+i[A+8>>3]>+i[t+8>>3]?0|(s=0):(r=(o=+i[(s=A+16|0)>>3])<(a=+i[A+24>>3]),u=(f=+i[(e=t+16|0)>>3])<(l=+i[(n=t+24|0)>>3]),t=a-f<l-o,A=r?u|t?1:2:0,t=u?r?1:t?2:1:0,(a=+ct(a,A))<=+ct(+i[n>>3],t)?0|(u=(f=+ct(+i[s>>3],A))>=+ct(+i[e>>3],t)):0|(u=0))}function tA(A,t){A|=0,t|=0;var e,n,o,l,s,a=0;o=Q,Q=Q+176|0,r[(n=o)>>2]=4,a=+i[t>>3],i[n+8>>3]=a,l=+i[t+16>>3],i[n+16>>3]=l,i[n+24>>3]=a,a=+i[t+24>>3],i[n+32>>3]=a,s=+i[t+8>>3],i[n+40>>3]=s,i[n+48>>3]=a,i[n+56>>3]=s,i[n+64>>3]=l,e=(t=n+72|0)+96|0;do{r[t>>2]=0,t=t+4|0}while((0|t)<(0|e));de(0|A,0|n,168),Q=o}function eA(A,t,e){A|=0,t|=0,e|=0;var n,l,u,f,c,h,g,p=0,d=0,y=0,v=0,w=0,E=0,_=0;h=Q,Q=Q+288|0,c=h+264|0,v=h+96|0,d=(p=y=h)+96|0;do{r[p>>2]=0,p=p+4|0}while((0|p)<(0|d));return 0|(t=0|ot(t,y))?(Q=h,0|(E=t)):(rt(y=0|r[(d=y)>>2],d=0|r[d+4>>2],c),it(y,d,v),f=+ht(c,v+8|0),i[c>>3]=+i[A>>3],i[(d=c+8|0)>>3]=+i[A+16>>3],i[v>>3]=+i[A+8>>3],i[(y=v+8|0)>>3]=+i[A+24>>3],l=+ht(c,v),_=+i[d>>3]-+i[y>>3],u=+a(+_),g=+i[c>>3]-+i[v>>3],n=+a(+g),!(0==_|0==g)&&(_=+he(+u,+n),_=+m(+l*l/+ge(+_/+ge(+u,+n),3)/(f*(2.59807621135*f)*.8)),i[o>>3]=_,w=~~_>>>0,E=+a(_)>=1?_>0?~~+b(+s(_/4294967296),4294967295)>>>0:~~+m((_-+(~~_>>>0))/4294967296)>>>0:0,2146435072&~r[o+4>>2])?(v=!(0|w)&!(0|E),r[(t=e)>>2]=v?1:w,r[t+4>>2]=v?0:E,t=0):t=1,Q=h,0|(E=t))}function nA(A,t,e,n){A|=0,t|=0,e|=0,n|=0;var l,u,f,c,h=0,g=0,p=0;c=Q,Q=Q+288|0,u=c+264|0,f=c+96|0,l=(h=g=c)+96|0;do{r[h>>2]=0,h=h+4|0}while((0|h)<(0|l));return 0|(e=0|ot(e,g))?(Q=c,0|(n=e)):(rt(h=0|r[(e=g)>>2],e=0|r[e+4>>2],u),it(h,e,f),p=+ht(u,f+8|0),p=+m(+ +ht(A,t)/(2*p)),i[o>>3]=p,e=~~p>>>0,h=+a(p)>=1?p>0?~~+b(+s(p/4294967296),4294967295)>>>0:~~+m((p-+(~~p>>>0))/4294967296)>>>0:0,2146435072&~r[o+4>>2]?(g=!(0|e)&!(0|h),r[n>>2]=g?1:e,r[n+4>>2]=g?0:h,Q=c,0|(n=0)):(Q=c,0|(n=1)))}function rA(A,t,e,n){t|=0,e|=0,n|=0,r[(A|=0)>>2]=t,r[A+4>>2]=e,r[A+8>>2]=n}function iA(A,t){A|=0;var e,n,o,l,s=0,u=0,f=0,c=0,h=0,g=0,p=0;r[(l=(t|=0)+8|0)>>2]=0,n=+i[A>>3],c=+a(+n),o=+i[A+8>>3],c+=.5*(h=1.1547005383792515*+a(+o)),c-=+(0|(s=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(r[t>>2]=s,h<.5*(c+1)){r[t+4>>2]=A;break}A=A+1|0,r[t+4>>2]=A;break}if(A=(1&!(h<(p=1-c)))+A|0,r[t+4>>2]=A,p<=h&h<2*c){s=s+1|0,r[t>>2]=s;break}r[t>>2]=s;break}if(!(c<.6666666666666666)){if(s=s+1|0,r[t>>2]=s,h<.5*c){r[t+4>>2]=A;break}A=A+1|0,r[t+4>>2]=A;break}if(h<1-c){if(r[t+4>>2]=A,2*c-1<h){r[t>>2]=s;break}}else A=A+1|0,r[t+4>>2]=A;s=s+1|0,r[t>>2]=s}while(0);do{if(n<0){if(1&A){s=~~(+(0|s)-(2*(+((g=0|ee(0|s,((0|s)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|B()))+1)),r[t>>2]=s;break}s=~~(+(0|s)-2*(+((g=0|ee(0|s,((0|s)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|B()))),r[t>>2]=s;break}}while(0);g=t+4|0,o<0&&(s=s-((1|A<<1)/2|0)|0,r[t>>2]=s,A=0-A|0,r[g>>2]=A),u=A-s|0,(0|s)<0?(f=0-s|0,r[g>>2]=u,r[l>>2]=f,r[t>>2]=0,A=u,s=0):f=0,(0|A)<0&&(s=s-A|0,r[t>>2]=s,f=f-A|0,r[l>>2]=f,r[g>>2]=0,A=0),e=s-f|0,u=A-f|0,(0|f)<0&&(r[t>>2]=e,r[g>>2]=u,r[l>>2]=0,A=u,s=e,f=0),(0|(u=(0|f)<(0|(u=(0|A)<(0|s)?A:s))?f:u))<=0||(r[t>>2]=s-u,r[g>>2]=A-u,r[l>>2]=f-u)}function oA(A){var t,e=0,n=0,i=0,o=0,l=0;e=0|r[(A|=0)>>2],n=0|r[(t=A+4|0)>>2],(0|e)<0&&(n=n-e|0,r[t>>2]=n,r[(l=A+8|0)>>2]=(0|r[l>>2])-e,r[A>>2]=0,e=0),(0|n)<0?(e=e-n|0,r[A>>2]=e,o=(0|r[(l=A+8|0)>>2])-n|0,r[l>>2]=o,r[t>>2]=0,n=0):(l=o=A+8|0,o=0|r[o>>2]),(0|o)<0&&(e=e-o|0,r[A>>2]=e,n=n-o|0,r[t>>2]=n,r[l>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|n)<(0|e)?n:e))?o:i))<=0||(r[A>>2]=e-i,r[t>>2]=n-i,r[l>>2]=o-i)}function lA(A,t){t|=0;var e,n;n=0|r[(A|=0)+8>>2],e=+((0|r[A+4>>2])-n|0),i[t>>3]=+((0|r[A>>2])-n|0)-.5*e,i[t+8>>3]=.8660254037844386*e}function sA(A,t,e){A|=0,t|=0,r[(e|=0)>>2]=(0|r[t>>2])+(0|r[A>>2]),r[e+4>>2]=(0|r[t+4>>2])+(0|r[A+4>>2]),r[e+8>>2]=(0|r[t+8>>2])+(0|r[A+8>>2])}function aA(A,t,e){A|=0,t|=0,r[(e|=0)>>2]=(0|r[A>>2])-(0|r[t>>2]),r[e+4>>2]=(0|r[A+4>>2])-(0|r[t+4>>2]),r[e+8>>2]=(0|r[A+8>>2])-(0|r[t+8>>2])}function uA(A,t){t|=0;var e,n=0;n=0|w(0|r[(A|=0)>>2],t),r[A>>2]=n,e=0|w(0|r[(n=A+4|0)>>2],t),r[n>>2]=e,t=0|w(0|r[(A=A+8|0)>>2],t),r[A>>2]=t}function fA(A){var t,e,n=0,i=0,o=0,l=0,s=0;s=(0|(e=0|r[(A|=0)>>2]))<0,A=(A=(i=(0|(l=((t=(0|(o=(0|r[A+4>>2])-(s?e:0)|0))<0)?0-o|0:0)+((0|r[A+8>>2])-(s?e:0))|0))<0)?0:l)-((o=(0|(i=(0|A)<(0|(i=(0|(n=(t?0:o)-(i?l:0)|0))<(0|(l=(s?0:e)-(t?o:0)-(i?l:0)|0))?n:l))?A:i))>0)?i:0)|0,n=n-(o?i:0)|0;A:do{switch(l-(o?i:0)|0){case 0:switch(0|n){case 0:return 0|(s=0|A?1==(0|A)?1:7:0);case 1:return 0|(s=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|n){case 0:return 0|(s=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|(s=7)}function cA(A){var t,e,n=0,i=0,o=0,l=0,s=0,a=0,u=0;if(a=0|r[(e=(A|=0)+8|0)>>2],(t=(0|r[A>>2])-a|0)>>>0>715827881|(a=(0|r[(u=A+4|0)>>2])-a|0)>>>0>715827881){if(l=2147483647-t|0,s=-2147483648-t|0,(o=(0|t)>0)?(0|l)<(0|t):(0|s)>(0|t))return 0|(u=1);if(i=t<<1,o?(2147483647-i|0)<(0|t):(-2147483648-i|0)>(0|t))return 0|(u=1);if((0|a)>0?(2147483647-a|0)<(0|a):(-2147483648-a|0)>(0|a))return 0|(u=1);if(n=3*t|0,i=a<<1,(o?(0|l)<(0|i):(0|s)>(0|i))||((0|t)>-1?(-2147483648|n)>=(0|a):(-2147483648^n)<(0|a)))return 0|(u=1)}else i=a<<1,n=3*t|0;return o=0|Jt(.14285714285714285*+(n-a|0)),r[A>>2]=o,l=0|Jt(.14285714285714285*+(i+t|0)),r[u>>2]=l,r[e>>2]=0,n=(i=(0|l)<(0|o))?o:l,(0|(i=i?l:o))<0&&((-2147483648==(0|i)||((0|n)>0?(2147483647-n|0)<(0|i):(-2147483648-n|0)>(0|i)))&&M(27795,26892,354,26903),((0|n)>-1?(-2147483648|n)>=(0|i):(-2147483648^n)<(0|i))&&M(27795,26892,354,26903)),n=l-o|0,(0|o)<0?(i=0-o|0,r[u>>2]=n,r[e>>2]=i,r[A>>2]=0,o=0):(n=l,i=0),(0|n)<0&&(o=o-n|0,r[A>>2]=o,i=i-n|0,r[e>>2]=i,r[u>>2]=0,n=0),s=o-i|0,l=n-i|0,(0|i)<0?(r[A>>2]=s,r[u>>2]=l,r[e>>2]=0,n=l,l=s,i=0):l=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|l)?n:l))?i:o))<=0||(r[A>>2]=l-o,r[u>>2]=n-o,r[e>>2]=i-o),0|(u=0)}function hA(A){var t,e=0,n=0,i=0,o=0,l=0,s=0,a=0;if(o=0|r[(t=(A|=0)+8|0)>>2],(l=(0|r[A>>2])-o|0)>>>0>715827881|(o=(0|r[(s=A+4|0)>>2])-o|0)>>>0>715827881){if((n=(0|l)>0)?(2147483647-l|0)<(0|l):(-2147483648-l|0)>(0|l))return 0|(s=1);if(e=l<<1,(i=(0|o)>0)?(2147483647-o|0)<(0|o):(-2147483648-o|0)>(0|o))return 0|(s=1);if(a=o<<1,i?(2147483647-a|0)<(0|o):(-2147483648-a|0)>(0|o))return 0|(a=1);if(n?(2147483647-e|0)<(0|o):(-2147483648-e|0)>(0|o))return 0|(a=1);if(n=3*o|0,(0|o)>-1?(-2147483648|n)>=(0|l):(-2147483648^n)<(0|l))return 0|(a=1)}else n=3*o|0,e=l<<1;return i=0|Jt(.14285714285714285*+(e+o|0)),r[A>>2]=i,o=0|Jt(.14285714285714285*+(n-l|0)),r[s>>2]=o,r[t>>2]=0,e=(n=(0|o)<(0|i))?i:o,(0|(n=n?o:i))<0&&((-2147483648==(0|n)||((0|e)>0?(2147483647-e|0)<(0|n):(-2147483648-e|0)>(0|n)))&&M(27795,26892,402,26917),((0|e)>-1?(-2147483648|e)>=(0|n):(-2147483648^e)<(0|n))&&M(27795,26892,402,26917)),e=o-i|0,(0|i)<0?(n=0-i|0,r[s>>2]=e,r[t>>2]=n,r[A>>2]=0,i=0):(e=o,n=0),(0|e)<0&&(i=i-e|0,r[A>>2]=i,n=n-e|0,r[t>>2]=n,r[s>>2]=0,e=0),l=i-n|0,o=e-n|0,(0|n)<0?(r[A>>2]=l,r[s>>2]=o,r[t>>2]=0,e=o,o=l,n=0):o=i,(0|(i=(0|n)<(0|(i=(0|e)<(0|o)?e:o))?n:i))<=0||(r[A>>2]=o-i,r[s>>2]=e-i,r[t>>2]=n-i),0|(a=0)}function gA(A){var t,e,n=0,i=0,o=0,l=0,s=0;i=0|r[(t=(A|=0)+8|0)>>2],o=0|Jt(.14285714285714285*+((3*(n=(0|r[A>>2])-i|0)|0)-(i=(0|r[(e=A+4|0)>>2])-i|0)|0)),r[A>>2]=o,n=0|Jt(.14285714285714285*+((i<<1)+n|0)),r[e>>2]=n,r[t>>2]=0,i=n-o|0,(0|o)<0?(s=0-o|0,r[e>>2]=i,r[t>>2]=s,r[A>>2]=0,n=i,o=0,i=s):i=0,(0|n)<0&&(o=o-n|0,r[A>>2]=o,i=i-n|0,r[t>>2]=i,r[e>>2]=0,n=0),s=o-i|0,l=n-i|0,(0|i)<0?(r[A>>2]=s,r[e>>2]=l,r[t>>2]=0,n=l,l=s,i=0):l=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|l)?n:l))?i:o))<=0||(r[A>>2]=l-o,r[e>>2]=n-o,r[t>>2]=i-o)}function pA(A){var t,e,n=0,i=0,o=0,l=0,s=0;i=0|r[(t=(A|=0)+8|0)>>2],o=0|Jt(.14285714285714285*+(((n=(0|r[A>>2])-i|0)<<1)+(i=(0|r[(e=A+4|0)>>2])-i|0)|0)),r[A>>2]=o,n=0|Jt(.14285714285714285*+((3*i|0)-n|0)),r[e>>2]=n,r[t>>2]=0,i=n-o|0,(0|o)<0?(s=0-o|0,r[e>>2]=i,r[t>>2]=s,r[A>>2]=0,n=i,o=0,i=s):i=0,(0|n)<0&&(o=o-n|0,r[A>>2]=o,i=i-n|0,r[t>>2]=i,r[e>>2]=0,n=0),s=o-i|0,l=n-i|0,(0|i)<0?(r[A>>2]=s,r[e>>2]=l,r[t>>2]=0,n=l,l=s,i=0):l=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|l)?n:l))?i:o))<=0||(r[A>>2]=l-o,r[e>>2]=n-o,r[t>>2]=i-o)}function dA(A){var t,e,n,i=0,o=0,l=0,s=0;i=0|r[(A|=0)>>2],o=0|r[(e=A+4|0)>>2],l=0|r[(n=A+8|0)>>2],s=o+(3*i|0)|0,r[A>>2]=s,o=l+(3*o|0)|0,r[e>>2]=o,i=(3*l|0)+i|0,r[n>>2]=i,l=o-s|0,(0|s)<0?(i=i-s|0,r[e>>2]=l,r[n>>2]=i,r[A>>2]=0,o=l,l=0):l=s,(0|o)<0&&(l=l-o|0,r[A>>2]=l,i=i-o|0,r[n>>2]=i,r[e>>2]=0,o=0),t=l-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=t,r[e>>2]=s,r[n>>2]=0,l=t,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|l)?s:l))?i:o))<=0||(r[A>>2]=l-o,r[e>>2]=s-o,r[n>>2]=i-o)}function yA(A){var t,e,n,i=0,o=0,l=0,s=0;s=0|r[(A|=0)>>2],l=(3*(i=0|r[(e=A+4|0)>>2])|0)+s|0,s=(o=0|r[(n=A+8|0)>>2])+(3*s|0)|0,r[A>>2]=s,r[e>>2]=l,i=(3*o|0)+i|0,r[n>>2]=i,o=l-s|0,(0|s)<0?(i=i-s|0,r[e>>2]=o,r[n>>2]=i,r[A>>2]=0,s=0):o=l,(0|o)<0&&(s=s-o|0,r[A>>2]=s,i=i-o|0,r[n>>2]=i,r[e>>2]=0,o=0),t=s-i|0,l=o-i|0,(0|i)<0?(r[A>>2]=t,r[e>>2]=l,r[n>>2]=0,s=t,i=0):l=o,(0|(o=(0|i)<(0|(o=(0|l)<(0|s)?l:s))?i:o))<=0||(r[A>>2]=s-o,r[e>>2]=l-o,r[n>>2]=i-o)}function vA(A,t){A|=0;var e,n,i,o=0,l=0,s=0;((t|=0)+-1|0)>>>0>=6||(s=(0|r[15440+(12*t|0)>>2])+(0|r[A>>2])|0,r[A>>2]=s,i=A+4|0,l=(0|r[15440+(12*t|0)+4>>2])+(0|r[i>>2])|0,r[i>>2]=l,n=A+8|0,t=(0|r[15440+(12*t|0)+8>>2])+(0|r[n>>2])|0,r[n>>2]=t,o=l-s|0,(0|s)<0?(t=t-s|0,r[i>>2]=o,r[n>>2]=t,r[A>>2]=0,l=0):(o=l,l=s),(0|o)<0&&(l=l-o|0,r[A>>2]=l,t=t-o|0,r[n>>2]=t,r[i>>2]=0,o=0),e=l-t|0,s=o-t|0,(0|t)<0?(r[A>>2]=e,r[i>>2]=s,r[n>>2]=0,l=e,t=0):s=o,(0|(o=(0|t)<(0|(o=(0|s)<(0|l)?s:l))?t:o))<=0||(r[A>>2]=l-o,r[i>>2]=s-o,r[n>>2]=t-o))}function mA(A){var t,e,n,i=0,o=0,l=0,s=0;s=0|r[(A|=0)>>2],l=(i=0|r[(e=A+4|0)>>2])+s|0,s=(o=0|r[(n=A+8|0)>>2])+s|0,r[A>>2]=s,r[e>>2]=l,i=o+i|0,r[n>>2]=i,o=l-s|0,(0|s)<0?(i=i-s|0,r[e>>2]=o,r[n>>2]=i,r[A>>2]=0,l=0):(o=l,l=s),(0|o)<0&&(l=l-o|0,r[A>>2]=l,i=i-o|0,r[n>>2]=i,r[e>>2]=0,o=0),t=l-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=t,r[e>>2]=s,r[n>>2]=0,l=t,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|l)?s:l))?i:o))<=0||(r[A>>2]=l-o,r[e>>2]=s-o,r[n>>2]=i-o)}function wA(A){var t,e,n,i=0,o=0,l=0,s=0;i=0|r[(A|=0)>>2],l=0|r[(e=A+4|0)>>2],o=0|r[(n=A+8|0)>>2],s=l+i|0,r[A>>2]=s,l=o+l|0,r[e>>2]=l,i=o+i|0,r[n>>2]=i,o=l-s|0,(0|s)<0?(i=i-s|0,r[e>>2]=o,r[n>>2]=i,r[A>>2]=0,l=0):(o=l,l=s),(0|o)<0&&(l=l-o|0,r[A>>2]=l,i=i-o|0,r[n>>2]=i,r[e>>2]=0,o=0),t=l-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=t,r[e>>2]=s,r[n>>2]=0,l=t,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|l)?s:l))?i:o))<=0||(r[A>>2]=l-o,r[e>>2]=s-o,r[n>>2]=i-o)}function bA(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 EA(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 _A(A){var t,e,n,i=0,o=0,l=0,s=0;i=0|r[(A|=0)>>2],o=0|r[(e=A+4|0)>>2],l=0|r[(n=A+8|0)>>2],s=o+(i<<1)|0,r[A>>2]=s,o=l+(o<<1)|0,r[e>>2]=o,i=(l<<1)+i|0,r[n>>2]=i,l=o-s|0,(0|s)<0?(i=i-s|0,r[e>>2]=l,r[n>>2]=i,r[A>>2]=0,o=l,l=0):l=s,(0|o)<0&&(l=l-o|0,r[A>>2]=l,i=i-o|0,r[n>>2]=i,r[e>>2]=0,o=0),t=l-i|0,s=o-i|0,(0|i)<0?(r[A>>2]=t,r[e>>2]=s,r[n>>2]=0,l=t,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|l)?s:l))?i:o))<=0||(r[A>>2]=l-o,r[e>>2]=s-o,r[n>>2]=i-o)}function xA(A){var t,e,n,i=0,o=0,l=0,s=0;s=0|r[(A|=0)>>2],l=((i=0|r[(e=A+4|0)>>2])<<1)+s|0,s=(o=0|r[(n=A+8|0)>>2])+(s<<1)|0,r[A>>2]=s,r[e>>2]=l,i=(o<<1)+i|0,r[n>>2]=i,o=l-s|0,(0|s)<0?(i=i-s|0,r[e>>2]=o,r[n>>2]=i,r[A>>2]=0,s=0):o=l,(0|o)<0&&(s=s-o|0,r[A>>2]=s,i=i-o|0,r[n>>2]=i,r[e>>2]=0,o=0),t=s-i|0,l=o-i|0,(0|i)<0?(r[A>>2]=t,r[e>>2]=l,r[n>>2]=0,s=t,i=0):l=o,(0|(o=(0|i)<(0|(o=(0|l)<(0|s)?l:s))?i:o))<=0||(r[A>>2]=s-o,r[e>>2]=l-o,r[n>>2]=i-o)}function BA(A,t){t|=0;var e,n,i,o=0,l=0,s=0;return i=(0|(n=(0|r[(A|=0)>>2])-(0|r[t>>2])|0))<0,e=(0|(l=(0|r[A+4>>2])-(0|r[t+4>>2])-(i?n:0)|0))<0,t=(t=(A=(0|(s=(i?0-n|0:0)+(0|r[A+8>>2])-(0|r[t+8>>2])+(e?0-l|0:0)|0))<0)?0:s)-((l=(0|(A=(0|t)<(0|(A=(0|(o=(e?0:l)-(A?s:0)|0))<(0|(s=(i?0:n)-(e?l:0)-(A?s:0)|0))?o:s))?t:A))>0)?A:0)|0,o=o-(l?A:0)|0,0|((0|(A=(0|(A=s-(l?A:0)|0))>-1?A:0-A|0))>(0|(t=(0|(o=(0|o)>-1?o:0-o|0))>(0|(t=(0|t)>-1?t:0-t|0))?o:t))?A:t)}function MA(A,t){t|=0;var e;e=0|r[(A|=0)+8>>2],r[t>>2]=(0|r[A>>2])-e,r[t+4>>2]=(0|r[A+4>>2])-e}function kA(A,t){t|=0;var e,n,i,o=0,l=0,s=0;if(l=0|r[(A|=0)>>2],r[t>>2]=l,s=0|r[A+4>>2],r[(n=t+4|0)>>2]=s,r[(i=t+8|0)>>2]=0,A=(o=(0|s)<(0|l))?l:s,(0|(o=o?s:l))<0){if(-2147483648==(0|o)||((0|A)>0?(2147483647-A|0)<(0|o):(-2147483648-A|0)>(0|o)))return 0|(t=1);if((0|A)>-1?(-2147483648|A)>=(0|o):(-2147483648^A)<(0|o))return 0|(t=1)}return A=s-l|0,(0|l)<0?(o=0-l|0,r[n>>2]=A,r[i>>2]=o,r[t>>2]=0,l=0):(A=s,o=0),(0|A)<0&&(l=l-A|0,r[t>>2]=l,o=o-A|0,r[i>>2]=o,r[n>>2]=0,A=0),e=l-o|0,s=A-o|0,(0|o)<0?(r[t>>2]=e,r[n>>2]=s,r[i>>2]=0,A=s,s=e,o=0):s=l,(0|(l=(0|o)<(0|(l=(0|A)<(0|s)?A:s))?o:l))<=0||(r[t>>2]=s-l,r[n>>2]=A-l,r[i>>2]=o-l),0|(t=0)}function SA(A){var t,e,n,i;e=(i=0|r[(t=(A|=0)+8|0)>>2])-(0|r[A>>2])|0,r[A>>2]=e,A=(0|r[(n=A+4|0)>>2])-i|0,r[n>>2]=A,r[t>>2]=0-(A+e)}function CA(A){var t,e,n=0,i=0,o=0,l=0,s=0;n=0-(i=0|r[(A|=0)>>2])|0,r[A>>2]=n,r[(t=A+8|0)>>2]=0,l=(o=0|r[(e=A+4|0)>>2])+i|0,(0|i)>0?(r[e>>2]=l,r[t>>2]=i,r[A>>2]=0,n=0,o=l):i=0,(0|o)<0?(s=n-o|0,r[A>>2]=s,i=i-o|0,r[t>>2]=i,r[e>>2]=0,l=s-i|0,n=0-i|0,(0|i)<0?(r[A>>2]=l,r[e>>2]=n,r[t>>2]=0,o=n,i=0):(o=0,l=s)):l=n,(0|(n=(0|i)<(0|(n=(0|o)<(0|l)?o:l))?i:n))<=0||(r[A>>2]=l-n,r[e>>2]=o-n,r[t>>2]=i-n)}function PA(A,t){var e=0;switch(e=0|ue(0|(A|=0),0|(t|=0),56),B(),7&e){case 0:case 7:return 0|(e=0)}return e=-2130706433&t|134217728,!0&268435456==(2013265920&t)?!0&16777216==(117440512&t)&!!(0|VA(A,e))?0|(e=0):0|(e=0|zA(A,e)):0|(e=0)}function DA(A,t,e){e|=0;var n,i,o=0,l=0;return i=Q,Q=Q+16|0,n=i,l=-2130706433&(t|=0)|134217728,!0&268435456==(2013265920&t)?(o=0|ue(0|(A|=0),0|t,56),B(),o=0|function(A,t,e){A|=0,t|=0,e|=0;var n=0,i=0,o=0;if(o=Q,Q=Q+16|0,i=o,n=0|VA(A,t),(e+-1|0)>>>0>5)return Q=o,0|(i=-1);if(n=!!(0|n),1==(0|e)&n)return Q=o,0|(i=-1);do{if(!(0|Yt(A,t,i))){if(n){n=(5+(0|r[26352+(e<<2)>>2])-(0|r[i>>2])|0)%5|0;break}n=(6+(0|r[26384+(e<<2)>>2])-(0|r[i>>2])|0)%6|0;break}n=-1}while(0);return i=n,Q=o,0|i}(A,l,7&o),-1==(0|o)?(r[e>>2]=0,Q=i,0|(l=6)):(0|nt(A,l,n)&&M(27795,26932,282,26947),t=0|ue(0|A,0|t,52),B(),t&=15,0|VA(A,l)?FA(n,t,o,2,e):NA(n,t,o,2,e),Q=i,0|(l=0))):(Q=i,0|(l=6))}function QA(A,t,e,n){t|=0,n|=0;var o,l=0,s=0,a=0,u=0;if(o=Q,Q=Q+16|0,function(A,t,e){A|=0,t|=0,e|=0;var n=0,o=0,l=0;l=Q,Q=Q+32|0,o=l,function(A,t){A|=0,t|=0;var e=0,n=0,r=0;e=+i[A>>3],n=+c(+e),e=+h(+e),i[t+16>>3]=e,e=+i[A+8>>3],r=n*+c(+e),i[t>>3]=r,e=n*+h(+e),i[t+8>>3]=e}(A,o),r[t>>2]=0,i[e>>3]=5,n=+Gt(16400,o),n<+i[e>>3]&&(r[t>>2]=0,i[e>>3]=n);n=+Gt(16424,o),n<+i[e>>3]&&(r[t>>2]=1,i[e>>3]=n);n=+Gt(16448,o),n<+i[e>>3]&&(r[t>>2]=2,i[e>>3]=n);n=+Gt(16472,o),n<+i[e>>3]&&(r[t>>2]=3,i[e>>3]=n);n=+Gt(16496,o),n<+i[e>>3]&&(r[t>>2]=4,i[e>>3]=n);n=+Gt(16520,o),n<+i[e>>3]&&(r[t>>2]=5,i[e>>3]=n);n=+Gt(16544,o),n<+i[e>>3]&&(r[t>>2]=6,i[e>>3]=n);n=+Gt(16568,o),n<+i[e>>3]&&(r[t>>2]=7,i[e>>3]=n);n=+Gt(16592,o),n<+i[e>>3]&&(r[t>>2]=8,i[e>>3]=n);n=+Gt(16616,o),n<+i[e>>3]&&(r[t>>2]=9,i[e>>3]=n);n=+Gt(16640,o),n<+i[e>>3]&&(r[t>>2]=10,i[e>>3]=n);n=+Gt(16664,o),n<+i[e>>3]&&(r[t>>2]=11,i[e>>3]=n);n=+Gt(16688,o),n<+i[e>>3]&&(r[t>>2]=12,i[e>>3]=n);n=+Gt(16712,o),n<+i[e>>3]&&(r[t>>2]=13,i[e>>3]=n);n=+Gt(16736,o),n<+i[e>>3]&&(r[t>>2]=14,i[e>>3]=n);n=+Gt(16760,o),n<+i[e>>3]&&(r[t>>2]=15,i[e>>3]=n);n=+Gt(16784,o),n<+i[e>>3]&&(r[t>>2]=16,i[e>>3]=n);n=+Gt(16808,o),n<+i[e>>3]&&(r[t>>2]=17,i[e>>3]=n);n=+Gt(16832,o),n<+i[e>>3]&&(r[t>>2]=18,i[e>>3]=n);if(n=+Gt(16856,o),!(n<+i[e>>3]))return void(Q=l);r[t>>2]=19,i[e>>3]=n,Q=l}(A|=0,e|=0,u=o),(s=+p(+(1-.5*+i[u>>3])))<1e-16)return r[n>>2]=0,r[n+4>>2]=0,r[n+8>>2]=0,r[n+12>>2]=0,void(Q=o);if(u=0|r[e>>2],l=+ut((l=+i[15920+(24*u|0)>>3])-+ut(+function(A,t){A|=0,t|=0;var e=0,n=0,r=0,o=0,l=0;return o=+i[t>>3],n=+c(+o),r=+i[t+8>>3]-+i[A+8>>3],l=n*+h(+r),e=+i[A>>3],+ +v(+l,+(+h(+o)*+c(+e)-+c(+r)*(n*+h(+e))))}(15600+(u<<4)|0,A))),a=0|At(t)?+ut(l+-.3334731722518321):l,l=2.618033988749896*+g(+s),(0|t)>0){A=0;do{l*=2.6457513110645907,A=A+1|0}while((0|A)!=(0|t))}s=+c(+a)*l,i[n>>3]=s,a=+h(+a)*l,i[n+8>>3]=a,Q=o}function IA(A,t,e,n,o){t|=0,e|=0,n|=0,o|=0;var l,s=0,f=0;if(s=+function(A){A|=0;var t=0,e=0;return e=+i[A>>3],t=+i[A+8>>3],+ +u(+(e*e+t*t))}(A|=0),s<1e-16)return t=15600+(t<<4)|0,r[o>>2]=r[t>>2],r[o+4>>2]=r[t+4>>2],r[o+8>>2]=r[t+8>>2],void(r[o+12>>2]=r[t+12>>2]);if(f=+v(+ +i[A+8>>3],+ +i[A>>3]),(0|e)>0){A=0;do{s*=.37796447300922725,A=A+1|0}while((0|A)!=(0|e))}l=.3333333333333333*s,n?(e=!(0|At(e)),s=+y(.381966011250105*(e?l:.37796447300922725*l))):(s=+y(.381966011250105*s),0|At(e)&&(f=+ut(f+.3334731722518321))),function(A,t,e,n){A|=0,t=+t,e=+e,n|=0;var o=0,l=0,s=0,u=0;if(e<1e-16)return r[n>>2]=r[A>>2],r[n+4>>2]=r[A+4>>2],r[n+8>>2]=r[A+8>>2],void(r[n+12>>2]=r[A+12>>2]);l=t<0?t+6.283185307179586:t,l=t>=6.283185307179586?l+-6.283185307179586:l;do{if(!(l<1e-16)){if(o=+a(+(l+-3.141592653589793))<1e-16,t=+i[A>>3],o){t-=e,i[n>>3]=t,o=n;break}if(s=+c(+e),e=+h(+e),t=s*+h(+t)+ +c(+l)*(e*+c(+t)),t=+d(+((t=t>1?1:t)<-1?-1:t)),i[n>>3]=t,+a(+(t+-1.5707963267948966))<1e-16)return i[n>>3]=1.5707963267948966,void(i[n+8>>3]=0);if(+a(+(t+1.5707963267948966))<1e-16)return i[n>>3]=-1.5707963267948966,void(i[n+8>>3]=0);if(u=1/+c(+t),l=e*+h(+l)*u,e=+i[A>>3],t=u*((s-+h(+t)*+h(+e))/+c(+e)),s=l>1?1:l,t=t>1?1:t,(t=+i[A+8>>3]+ +v(+(s<-1?-1:s),+(t<-1?-1:t)))>3.141592653589793)do{t+=-6.283185307179586}while(t>3.141592653589793);if(t<-3.141592653589793)do{t+=6.283185307179586}while(t<-3.141592653589793);return void(i[n+8>>3]=t)}t=+i[A>>3]+e,i[n>>3]=t,o=n}while(0);if(+a(+(t+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[n+8>>3]=0);if(+a(+(t+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[n+8>>3]=0);if(t=+i[A+8>>3],t>3.141592653589793)do{t+=-6.283185307179586}while(t>3.141592653589793);if(t<-3.141592653589793)do{t+=6.283185307179586}while(t<-3.141592653589793);i[n+8>>3]=t}(15600+(t<<4)|0,+ut(+i[15920+(24*t|0)>>3]-f),s,o)}function TA(A,t,e){t|=0,e|=0;var n,i;n=Q,Q=Q+16|0,lA((A|=0)+4|0,i=n),IA(i,0|r[A>>2],t,0,e),Q=n}function FA(A,t,e,n,o){A|=0,t|=0,e|=0,n|=0,o|=0;var l,s,a,u,f,c,h,g,p,d,y,v,m,w,b,E,_,x,B,k,S,C,P=0,D=0,I=0,T=0,F=0,L=0;if(C=Q,Q=Q+272|0,T=C+240|0,B=C,k=C+224|0,S=C+208|0,y=C+176|0,v=C+160|0,m=C+192|0,w=C+144|0,b=C+128|0,E=C+112|0,_=C+96|0,x=C+80|0,r[(P=C+256|0)>>2]=t,r[T>>2]=r[A>>2],r[T+4>>2]=r[A+4>>2],r[T+8>>2]=r[A+8>>2],r[T+12>>2]=r[A+12>>2],LA(T,P,B),r[o>>2]=0,(0|(T=n+e+(5==(0|n)&1)|0))<=(0|e))Q=C;else{s=k+4|0,a=y+4|0,u=e+5|0,f=16880+((l=0|r[P>>2])<<2)|0,c=16960+(l<<2)|0,h=b+8|0,g=E+8|0,p=_+8|0,d=S+4|0,I=e;A:for(;;){D=B+((0|I)%5<<4)|0,r[S>>2]=r[D>>2],r[S+4>>2]=r[D+4>>2],r[S+8>>2]=r[D+8>>2],r[S+12>>2]=r[D+12>>2];do{}while(2==(0|OA(S,l,0,1)));if((0|I)>(0|e)&!!(0|At(t))){if(r[y>>2]=r[S>>2],r[y+4>>2]=r[S+4>>2],r[y+8>>2]=r[S+8>>2],r[y+12>>2]=r[S+12>>2],lA(s,v),n=0|r[y>>2],P=0|r[17040+(80*n|0)+(r[k>>2]<<2)>>2],r[y>>2]=r[18640+(80*n|0)+(20*P|0)>>2],(0|(D=0|r[18640+(80*n|0)+(20*P|0)+16>>2]))>0){A=0;do{mA(a),A=A+1|0}while((0|A)<(0|D))}switch(D=18640+(80*n|0)+(20*P|0)+4|0,r[m>>2]=r[D>>2],r[m+4>>2]=r[D+4>>2],r[m+8>>2]=r[D+8>>2],uA(m,3*(0|r[f>>2])|0),sA(a,m,a),oA(a),lA(a,w),F=+(0|r[c>>2]),i[b>>3]=3*F,i[h>>3]=0,L=-1.5*F,i[E>>3]=L,i[g>>3]=2.598076211353316*F,i[_>>3]=L,i[p>>3]=-2.598076211353316*F,0|r[17040+(80*(0|r[y>>2])|0)+(r[S>>2]<<2)>>2]){case 1:A=E,n=b;break;case 3:A=_,n=E;break;case 2:A=b,n=_;break;default:A=12;break A}Rt(v,w,n,A,x),IA(x,0|r[y>>2],l,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])}if((0|I)<(0|u)&&(lA(d,y),IA(y,0|r[S>>2],l,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])),r[k>>2]=r[S>>2],r[k+4>>2]=r[S+4>>2],r[k+8>>2]=r[S+8>>2],r[k+12>>2]=r[S+12>>2],(0|(I=I+1|0))>=(0|T)){A=3;break}}3!=(0|A)?12==(0|A)&&M(26970,27017,572,27027):Q=C}}function LA(A,t,e){A|=0,t|=0,e|=0;var n,i=0,o=0,l=0,s=0,a=0;n=Q,Q=Q+128|0,o=n,s=20240,a=(l=i=n+64|0)+60|0;do{r[l>>2]=r[s>>2],l=l+4|0,s=s+4|0}while((0|l)<(0|a));s=20304,a=(l=o)+60|0;do{r[l>>2]=r[s>>2],l=l+4|0,s=s+4|0}while((0|l)<(0|a));i=(a=!(0|At(0|r[t>>2])))?i:o,_A(o=A+4|0),xA(o),0|At(0|r[t>>2])&&(yA(o),r[t>>2]=1+(0|r[t>>2])),r[e>>2]=r[A>>2],sA(o,i,t=e+4|0),oA(t),r[e+16>>2]=r[A>>2],sA(o,i+12|0,t=e+20|0),oA(t),r[e+32>>2]=r[A>>2],sA(o,i+24|0,t=e+36|0),oA(t),r[e+48>>2]=r[A>>2],sA(o,i+36|0,t=e+52|0),oA(t),r[e+64>>2]=r[A>>2],sA(o,i+48|0,e=e+68|0),oA(e),Q=n}function OA(A,t,e,n){e|=0,n|=0;var i,o,l,s,a,u,f=0,c=0,h=0,g=0,p=0;if(u=Q,Q=Q+32|0,a=u+12|0,o=u,p=(A|=0)+4|0,g=0|r[16960+((t|=0)<<2)>>2],g=(s=!!(0|n))?3*g|0:g,f=0|r[p>>2],i=0|r[(l=A+8|0)>>2],s){if((0|(f=i+f+(n=0|r[(c=A+12|0)>>2])|0))==(0|g))return Q=u,0|(p=1);h=c}else f=i+f+(n=0|r[(h=A+12|0)>>2])|0;if((0|f)<=(0|g))return Q=u,0|(p=0);do{if((0|n)>0){if(n=0|r[A>>2],(0|i)>0){c=18640+(80*n|0)+60|0,n=A;break}n=18640+(80*n|0)+40|0,e?(rA(a,g,0,0),aA(p,a,o),wA(o),sA(o,a,p),c=n,n=A):(c=n,n=A)}else c=18640+(80*(0|r[A>>2])|0)+20|0,n=A}while(0);if(r[n>>2]=r[c>>2],(0|r[(f=c+16|0)>>2])>0){n=0;do{mA(p),n=n+1|0}while((0|n)<(0|r[f>>2]))}return A=c+4|0,r[a>>2]=r[A>>2],r[a+4>>2]=r[A+4>>2],r[a+8>>2]=r[A+8>>2],t=0|r[16880+(t<<2)>>2],uA(a,s?3*t|0:t),sA(p,a,p),oA(p),n=s&&((0|r[l>>2])+(0|r[p>>2])+(0|r[h>>2])|0)==(0|g)?1:2,Q=u,0|(p=n)}function RA(A,t){A|=0,t|=0;var e=0;do{e=0|OA(A,t,0,1)}while(2==(0|e));return 0|e}function NA(A,t,e,n,o){A|=0,t|=0,e|=0,n|=0,o|=0;var l,s,a,u,f,c,h,g,p,d,y,v,m,w,b,E,_,x,B=0,k=0,S=0,C=0,P=0;if(x=Q,Q=Q+240|0,w=x+208|0,b=x,E=x+192|0,_=x+176|0,p=x+160|0,d=x+144|0,y=x+128|0,v=x+112|0,m=x+96|0,r[(B=x+224|0)>>2]=t,r[w>>2]=r[A>>2],r[w+4>>2]=r[A+4>>2],r[w+8>>2]=r[A+8>>2],r[w+12>>2]=r[A+12>>2],GA(w,B,b),r[o>>2]=0,(0|(g=n+e+(6==(0|n)&1)|0))<=(0|e))Q=x;else{s=e+6|0,a=16960+((l=0|r[B>>2])<<2)|0,u=d+8|0,f=y+8|0,c=v+8|0,h=E+4|0,k=0,S=e,n=-1;A:for(;;){if(A=b+((B=(0|S)%6|0)<<4)|0,r[E>>2]=r[A>>2],r[E+4>>2]=r[A+4>>2],r[E+8>>2]=r[A+8>>2],r[E+12>>2]=r[A+12>>2],A=k,k=0|OA(E,l,0,1),(0|S)>(0|e)&!!(0|At(t))&&(1!=(0|A)&&(0|r[E>>2])!=(0|n))){switch(lA(b+((B+5|0)%6<<4)+4|0,_),lA(b+(B<<4)+4|0,p),C=+(0|r[a>>2]),i[d>>3]=3*C,i[u>>3]=0,P=-1.5*C,i[y>>3]=P,i[f>>3]=2.598076211353316*C,i[v>>3]=P,i[c>>3]=-2.598076211353316*C,B=0|r[w>>2],0|r[17040+(80*B|0)+(((0|n)==(0|B)?r[E>>2]:n)<<2)>>2]){case 1:A=y,n=d;break;case 3:A=v,n=y;break;case 2:A=d,n=v;break;default:A=8;break A}Rt(_,p,n,A,m),0|Nt(_,m)||0|Nt(p,m)||(IA(m,0|r[w>>2],l,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2]))}if((0|S)<(0|s)&&(lA(h,_),IA(_,0|r[E>>2],l,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])),(0|(S=S+1|0))>=(0|g)){A=3;break}n=0|r[E>>2]}3!=(0|A)?8==(0|A)&&M(27054,27017,737,27099):Q=x}}function GA(A,t,e){A|=0,t|=0,e|=0;var n,i=0,o=0,l=0,s=0,a=0;n=Q,Q=Q+160|0,o=n,s=20368,a=(l=i=n+80|0)+72|0;do{r[l>>2]=r[s>>2],l=l+4|0,s=s+4|0}while((0|l)<(0|a));s=20448,a=(l=o)+72|0;do{r[l>>2]=r[s>>2],l=l+4|0,s=s+4|0}while((0|l)<(0|a));i=(a=!(0|At(0|r[t>>2])))?i:o,_A(o=A+4|0),xA(o),0|At(0|r[t>>2])&&(yA(o),r[t>>2]=1+(0|r[t>>2])),r[e>>2]=r[A>>2],sA(o,i,t=e+4|0),oA(t),r[e+16>>2]=r[A>>2],sA(o,i+12|0,t=e+20|0),oA(t),r[e+32>>2]=r[A>>2],sA(o,i+24|0,t=e+36|0),oA(t),r[e+48>>2]=r[A>>2],sA(o,i+36|0,t=e+52|0),oA(t),r[e+64>>2]=r[A>>2],sA(o,i+48|0,t=e+68|0),oA(t),r[e+80>>2]=r[A>>2],sA(o,i+60|0,e=e+84|0),oA(e),Q=n}function YA(A,t){return t=0|ue(0|(A|=0),0|(t|=0),45),B(),127&t}function zA(A,t){A|=0;var e=0,r=0,i=0,o=0;return!0&134217728==(-16777216&(t|=0))?(r=0|ue(0|A,0|t,52),B(),r&=15,e=0|ue(0|A,0|t,45),B(),(e&=127)>>>0>121?0|(A=0):!(613566756&(o=0|fe(0|(i=0|ue(0|A,0|t,0|(o=3*(15^r)|0))),0|B(),0|o))&(0|ee(-1227133514,-1171,0|o,0|(i=0|B()))))&!(4681&i&B())&&15==(0|r)|!(0|(o=0|ue(0|(0|fe(0|~A,0|~t,0|(o=19+(3*r|0)|0))),0|B(),0|o)))&!(0|B())?0|n[20528+e|0]?!(0|A)&!(0|(t&=8191))?0|(o=1):(o=0|ce(0|A,0|t),B(),0|!!((63-o|0)%3|0)):0|(o=1):0|(o=0)):0|(A=0)}function UA(A,t,e,n){A|=0,e|=0,n|=0;var i=0,o=0,l=0,s=0;if(i=0|fe(0|(t|=0),0,52),o=0|B(),e=0|fe(0|e,0,45),e=0|o|B()|134225919,(0|t)<1)return o=-1,n=e,r[(t=A)>>2]=o,void(r[(A=A+4|0)>>2]=n);for(o=1,i=-1;s=0|fe(7,0,0|(l=3*(15-o|0)|0)),e&=~B(),i=i&~s|(l=0|fe(0|n,0,0|l)),e=0|e|B(),(0|o)!=(0|t);)o=o+1|0;r[(l=s=A)>>2]=i,r[(s=s+4|0)>>2]=e}function jA(A,t,e,n){e|=0,n|=0;var i=0,o=0;if(o=0|ue(0|(A|=0),0|(t|=0),52),B(),e>>>0>15)return 0|(n=4);if((0|(o&=15))<(0|e))return 0|(n=12);if((0|o)==(0|e))return r[n>>2]=A,r[n+4>>2]=t,0|(n=0);if(i=0|fe(0|e,0,52),i|=A,A=B()|-15728641&t,(0|o)>(0|e))do{t=0|fe(7,0,3*(14-e|0)|0),e=e+1|0,i|=t,A=0|B()|A}while((0|e)<(0|o));return r[n>>2]=i,r[n+4>>2]=A,0|(n=0)}function XA(A,t,e,n){e|=0,n|=0;var i=0,o=0,l=0;if(o=0|ue(0|(A|=0),0|(t|=0),52),B(),!((0|e)<16&(0|(o&=15))<=(0|e)))return 0|(n=4);i=e-o|0,e=0|ue(0|A,0|t,45),B();A:do{if(0|z(127&e)){t:do{if(0|o){for(e=1;!((l=0|fe(7,0,3*(15-e|0)|0))&A|0)&!((0|B())&t);){if(!(e>>>0<o>>>0))break t;e=e+1|0}e=0|Bt(7,0,i,((0|i)<0)<<31>>31),i=0|B();break A}}while(0);e=0|te(0|(e=0|oe(0|(e=0|Bt(7,0,i,((0|i)<0)<<31>>31)),0|B(),5,0)),0|B(),-5,-1),e=0|te(0|(e=0|ie(0|e,0|B(),6,0)),0|B(),1,0),i=0|B()}else e=0|Bt(7,0,i,((0|i)<0)<<31>>31),i=0|B()}while(0);return r[(l=n)>>2]=e,r[l+4>>2]=i,0|(l=0)}function VA(A,t){var e=0,n=0,r=0;if(r=0|ue(0|(A|=0),0|(t|=0),45),B(),!(0|z(127&r)))return 0|(r=0);r=0|ue(0|A,0|t,52),B(),r&=15;A:do{if(r)for(n=1;;){if(e=0|ue(0|A,0|t,3*(15-n|0)|0),B(),0|(e&=7))break A;if(!(n>>>0<r>>>0)){e=0;break}n=n+1|0}else e=0}while(0);return 0|(r=1&!(0|e))}function HA(A,t,e,n){return A|=0,t|=0,(0|(n|=0))<(0|(e|=0))?(n=A,x(0|(e=t)),0|n):(e=0|fe(-1,-1,3+(3*(n-e|0)|0)|0),n=0|fe(0|~e,0|~B(),3*(15-n|0)|0),e=~B()&t,n=~n&A,x(0|e),0|n)}function qA(A,t,e,n){e|=0,n|=0;var i=0;return i=0|ue(0|(A|=0),0|(t|=0),52),B(),(0|e)<16&(0|(i&=15))<=(0|e)?((0|i)<(0|e)&&(i=0|fe(-1,-1,3+(3*(e+-1-i|0)|0)|0),i=0|fe(0|~i,0|~B(),3*(15-e|0)|0),t=~B()&t,A&=~i),i=0|fe(0|e,0,52),e=-15728641&t|B(),r[n>>2]=A|i,r[n+4>>2]=e,0|(n=0)):0|(n=4)}function WA(A,t){var e=0,n=0,r=0;if(r=0|ue(0|(A|=0),0|(t|=0),52),B(),!(r&=15))return 0|(r=0);for(n=1;;){if(e=0|ue(0|A,0|t,3*(15-n|0)|0),B(),0|(e&=7)){n=5;break}if(!(n>>>0<r>>>0)){e=0,n=5;break}n=n+1|0}return 5==(0|n)?0|e:0}function ZA(A,t){var e=0,n=0,r=0,i=0,o=0,l=0,s=0;if(s=0|ue(0|(A|=0),0|(t|=0),52),B(),!(s&=15))return s=A,x(0|(l=t)),0|s;for(l=1,e=0;;){n=0|fe(7,0,0|(i=3*(15-l|0)|0)),r=0|B(),o=0|ue(0|A,0|t,0|i),B(),A=(i=0|fe(0|bA(7&o),0,0|i))|A&~n,t=(o=0|B())|t&~r;A:do{if(!e)if(!(i&n|0)&!(o&r|0))e=0;else if(n=0|ue(0|A,0|t,52),B(),n&=15){e=1;t:for(;;){switch(o=0|ue(0|A,0|t,3*(15-e|0)|0),B(),7&o){case 1:break t;case 0:break;default:e=1;break A}if(!(e>>>0<n>>>0)){e=1;break A}e=e+1|0}for(e=1;;){if(r=0|ue(0|A,0|t,0|(o=3*(15-e|0)|0)),B(),i=0|fe(7,0,0|o),t&=~B(),A=A&~i|(o=0|fe(0|bA(7&r),0,0|o)),t=0|t|B(),!(e>>>0<n>>>0)){e=1;break}e=e+1|0}}else e=1}while(0);if(!(l>>>0<s>>>0))break;l=l+1|0}return x(0|t),0|A}function JA(A,t){var e=0,n=0,r=0,i=0,o=0;if(n=0|ue(0|(A|=0),0|(t|=0),52),B(),!(n&=15))return n=A,x(0|(e=t)),0|n;for(e=1;o=0|ue(0|A,0|t,0|(i=3*(15-e|0)|0)),B(),r=0|fe(7,0,0|i),t&=~B(),A=(i=0|fe(0|bA(7&o),0,0|i))|A&~r,t=0|B()|t,e>>>0<n>>>0;)e=e+1|0;return x(0|t),0|A}function KA(A,t){var e=0,n=0,r=0,i=0,o=0,l=0,s=0;if(s=0|ue(0|(A|=0),0|(t|=0),52),B(),!(s&=15))return s=A,x(0|(l=t)),0|s;for(l=1,e=0;;){n=0|fe(7,0,0|(i=3*(15-l|0)|0)),r=0|B(),o=0|ue(0|A,0|t,0|i),B(),A=(i=0|fe(0|EA(7&o),0,0|i))|A&~n,t=(o=0|B())|t&~r;A:do{if(!e)if(!(i&n|0)&!(o&r|0))e=0;else if(n=0|ue(0|A,0|t,52),B(),n&=15){e=1;t:for(;;){switch(o=0|ue(0|A,0|t,3*(15-e|0)|0),B(),7&o){case 1:break t;case 0:break;default:e=1;break A}if(!(e>>>0<n>>>0)){e=1;break A}e=e+1|0}for(e=1;;){if(i=0|fe(7,0,0|(r=3*(15-e|0)|0)),o=t&~B(),t=0|ue(0|A,0|t,0|r),B(),A=A&~i|(t=0|fe(0|EA(7&t),0,0|r)),t=0|o|B(),!(e>>>0<n>>>0)){e=1;break}e=e+1|0}}else e=1}while(0);if(!(l>>>0<s>>>0))break;l=l+1|0}return x(0|t),0|A}function $A(A,t){var e=0,n=0,r=0,i=0,o=0;if(n=0|ue(0|(A|=0),0|(t|=0),52),B(),!(n&=15))return n=A,x(0|(e=t)),0|n;for(e=1;i=0|fe(7,0,0|(o=3*(15-e|0)|0)),r=t&~B(),t=0|ue(0|A,0|t,0|o),B(),A=(t=0|fe(0|EA(7&t),0,0|o))|A&~i,t=0|B()|r,e>>>0<n>>>0;)e=e+1|0;return x(0|t),0|A}function At(A){return(0|(A|=0))%2|0}function tt(A,t,e){e|=0;var n,i=0;return n=Q,Q=Q+16|0,i=n,(t|=0)>>>0>15?(Q=n,0|(i=4)):2146435072&~r[(A|=0)+4>>2]&&2146435072&~r[A+8+4>>2]?(function(A,t,e){var n,r;n=Q,Q=Q+16|0,QA(A|=0,t|=0,e|=0,r=n),iA(r,e+4|0),Q=n}(A,t,i),t=0|function(A,t){A|=0;var e,n=0,i=0,o=0,l=0,s=0,a=0,u=0,f=0;if(e=Q,Q=Q+64|0,a=e+40|0,i=e+24|0,o=e+12|0,l=e,fe(0|(t|=0),0,52),n=134225919|B(),!t)return(0|r[A+4>>2])>2||(0|r[A+8>>2])>2||(0|r[A+12>>2])>2?(a=0,x(0|(s=0)),Q=e,0|a):(fe(0|j(A),0,45),s=0|B()|n,a=-1,x(0|s),Q=e,0|a);if(r[a>>2]=r[A>>2],r[a+4>>2]=r[A+4>>2],r[a+8>>2]=r[A+8>>2],r[a+12>>2]=r[A+12>>2],s=a+4|0,(0|t)>0)for(A=-1;r[i>>2]=r[s>>2],r[i+4>>2]=r[s+4>>2],r[i+8>>2]=r[s+8>>2],1&t?(gA(s),r[o>>2]=r[s>>2],r[o+4>>2]=r[s+4>>2],r[o+8>>2]=r[s+8>>2],dA(o)):(pA(s),r[o>>2]=r[s>>2],r[o+4>>2]=r[s+4>>2],r[o+8>>2]=r[s+8>>2],yA(o)),aA(i,o,l),oA(l),u=0|fe(7,0,0|(f=3*(15-t|0)|0)),n&=~B(),A=(f=0|fe(0|fA(l),0,0|f))|A&~u,n=0|B()|n,(0|t)>1;)t=t+-1|0;else A=-1;A:do{if((0|r[s>>2])<=2&&(0|r[a+8>>2])<=2&&(0|r[a+12>>2])<=2){if(t=0|fe(0|(i=0|j(a)),0,45),t|=A,A=B()|-1040385&n,l=0|X(a),!(0|z(i))){if((0|l)<=0)break;for(o=0;;){if(i=0|ue(0|t,0|A,52),B(),i&=15)for(n=1;a=0|ue(0|t,0|A,0|(f=3*(15-n|0)|0)),B(),u=0|fe(7,0,0|f),A&=~B(),t=t&~u|(f=0|fe(0|bA(7&a),0,0|f)),A=0|A|B(),n>>>0<i>>>0;)n=n+1|0;if((0|(o=o+1|0))==(0|l))break A}}o=0|ue(0|t,0|A,52),B(),o&=15;t:do{if(o){n=1;e:for(;;){switch(f=0|ue(0|t,0|A,3*(15-n|0)|0),B(),7&f){case 1:break e;case 0:break;default:break t}if(!(n>>>0<o>>>0))break t;n=n+1|0}if(0|V(i,0|r[a>>2]))for(n=1;u=0|fe(7,0,0|(a=3*(15-n|0)|0)),f=A&~B(),A=0|ue(0|t,0|A,0|a),B(),t=t&~u|(A=0|fe(0|EA(7&A),0,0|a)),A=0|f|B(),n>>>0<o>>>0;)n=n+1|0;else for(n=1;a=0|ue(0|t,0|A,0|(f=3*(15-n|0)|0)),B(),u=0|fe(7,0,0|f),A&=~B(),t=t&~u|(f=0|fe(0|bA(7&a),0,0|f)),A=0|A|B(),n>>>0<o>>>0;)n=n+1|0}}while(0);if((0|l)>0){n=0;do{t=0|ZA(t,A),A=0|B(),n=n+1|0}while((0|n)!=(0|l))}}else t=0,A=0}while(0);return f=t,x(0|(u=A)),Q=e,0|f}(i,t),i=0|B(),r[e>>2]=t,r[e+4>>2]=i,!(0|t)&!(0|i)&&M(27795,27122,1050,27145),Q=n,0|(i=0)):(Q=n,0|(i=3))}function et(A,t,e){var n,i=0,o=0,l=0;if(n=(e|=0)+4|0,o=0|ue(0|(A|=0),0|(t|=0),52),B(),o&=15,l=0|ue(0|A,0|t,45),B(),i=!(0|o),0|z(127&l)){if(i)return 0|(l=1);i=1}else{if(i)return 0|(l=0);i=0|r[n>>2]||0|r[e+8>>2]?1:1&!!(0|r[e+12>>2])}for(e=1;1&e?dA(n):yA(n),l=0|ue(0|A,0|t,3*(15-e|0)|0),B(),vA(n,7&l),e>>>0<o>>>0;)e=e+1|0;return 0|i}function nt(A,t,e){e|=0;var n,i,o=0,l=0,s=0,a=0,u=0,f=0;if(i=Q,Q=Q+16|0,n=i,f=0|ue(0|(A|=0),0|(t|=0),45),B(),(f&=127)>>>0>121)return r[e>>2]=0,r[e+4>>2]=0,r[e+8>>2]=0,r[e+12>>2]=0,Q=i,0|(f=5);A:do{if(0|z(f)&&(s=0|ue(0|A,0|t,52),B(),0|(s&=15))){o=1;t:for(;;){switch(u=0|ue(0|A,0|t,3*(15-o|0)|0),B(),7&u){case 5:break t;case 0:break;default:o=t;break A}if(!(o>>>0<s>>>0)){o=t;break A}o=o+1|0}for(l=1,o=t;a=0|fe(7,0,0|(t=3*(15-l|0)|0)),u=o&~B(),o=0|ue(0|A,0|o,0|t),B(),A=A&~a|(o=0|fe(0|EA(7&o),0,0|t)),o=0|u|B(),l>>>0<s>>>0;)l=l+1|0}else o=t}while(0);if(u=7696+(28*f|0)|0,r[e>>2]=r[u>>2],r[e+4>>2]=r[u+4>>2],r[e+8>>2]=r[u+8>>2],r[e+12>>2]=r[u+12>>2],!(0|et(A,o,e)))return Q=i,0|(f=0);if(a=e+4|0,r[n>>2]=r[a>>2],r[n+4>>2]=r[a+4>>2],r[n+8>>2]=r[a+8>>2],s=0|ue(0|A,0|o,52),B(),u=15&s,1&s?(yA(a),s=u+1|0):s=u,0|z(f)){A:do{if(u)for(t=1;;){if(l=0|ue(0|A,0|o,3*(15-t|0)|0),B(),0|(l&=7)){o=l;break A}if(!(t>>>0<u>>>0)){o=0;break}t=t+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|OA(e,s,o,0)){if(0|z(f))do{}while(0|OA(e,s,0,0));(0|s)!=(0|u)&&pA(a)}else(0|s)!=(0|u)&&(r[a>>2]=r[n>>2],r[a+4>>2]=r[n+4>>2],r[a+8>>2]=r[n+8>>2]);return Q=i,0|(f=0)}function rt(A,t,e){e|=0;var n,r,i=0;return r=Q,Q=Q+16|0,0|(i=0|nt(A|=0,t|=0,n=r))?(Q=r,0|i):(i=0|ue(0|A,0|t,52),B(),TA(n,15&i,e),Q=r,0|(i=0))}function it(A,t,e){e|=0;var n,r=0,i=0,o=0;if(n=Q,Q=Q+16|0,0|(r=0|nt(A|=0,t|=0,o=n)))return Q=n,0|(o=r);r=0|ue(0|A,0|t,45),B(),r=!(0|z(127&r)),i=0|ue(0|A,0|t,52),B(),i&=15;A:do{if(!r){if(0|i)for(r=1;;){if(!(!((0|fe(7,0,3*(15-r|0)|0))&A|0)&!((0|B())&t)))break A;if(!(r>>>0<i>>>0))break;r=r+1|0}return FA(o,i,0,5,e),Q=n,0|0}}while(0);return NA(o,i,0,6,e),Q=n,0|0}function ot(A,t){t|=0;var e=0,n=0,i=0,o=0,l=0,s=0,a=0;if((A|=0)>>>0>15)return 0|(s=4);if(fe(0|A,0,52),s=134225919|B(),!A){e=0,n=0;do{0|z(n)&&(fe(0|n,0,45),l=0|s|B(),r[(A=t+(e<<3)|0)>>2]=-1,r[A+4>>2]=l,e=e+1|0),n=n+1|0}while(122!=(0|n));return 0|(e=0)}e=0,l=0;do{if(0|z(l)){for(fe(0|l,0,45),n=1,i=-1,o=0|s|B();i&=~(a=0|fe(7,0,3*(15-n|0)|0)),o&=~B(),(0|n)!=(0|A);)n=n+1|0;r[(a=t+(e<<3)|0)>>2]=i,r[a+4>>2]=o,e=e+1|0}l=l+1|0}while(122!=(0|l));return 0|(e=0)}function lt(A,t,e,n){A|=0,n|=0;var i=0,o=0,l=0;i=0|ue(0|(t|=0),0|(e|=0),52),B(),!(0|t)&!(0|e)|(0|n)>15|(0|(i&=15))>(0|n)?(o=-1,t=-1,e=0,i=0):(t=0|HA(t,e,i+1|0,n),l=-15728641&B(),e=0|fe(0|n,0,52),o=i,t=(t=!(0|VA(e|=t,l=0|l|B())))?-1:n,i=l),r[(l=A)>>2]=e,r[l+4>>2]=i,r[A+8>>2]=o,r[A+12>>2]=t}function st(A,t,e,n){e|=0,n|=0;var i=0,o=0;return i=0|ue(0|(A|=0),0|(t|=0),52),B(),i&=15,r[(o=n+8|0)>>2]=i,!(0|A)&!(0|t)|(0|e)>15|(0|i)>(0|e)?(r[(e=n)>>2]=0,r[e+4>>2]=0,r[o>>2]=-1,void(r[n+12>>2]=-1)):(A=0|HA(A,t,i+1|0,e),o=-15728641&B(),i=0|fe(0|e,0,52),i|=A,o=0|o|B(),r[(A=n)>>2]=i,r[A+4>>2]=o,A=n+12|0,0|VA(i,o)?void(r[A>>2]=e):void(r[A>>2]=-1))}function at(A){var t,e=0,n=0,i=0,o=0,l=0,s=0,a=0,u=0;if(!(!(0|(e=0|r[(n=A|=0)>>2]))&!(0|(n=0|r[n+4>>2]))||(i=0|ue(0|e,0|n,52),B(),e=0|te(0|(a=0|fe(1,0,3*(15^(i&=15))|0)),0|B(),0|e,0|n),n=0|B(),r[(a=A)>>2]=e,r[a+4>>2]=n,(0|i)<(0|(s=0|r[(a=A+8|0)>>2]))))){for(t=A+12|0,l=i;;){if((0|l)==(0|s)){i=5;break}if(u=(0|l)==(0|r[t>>2]),i=0|ue(0|e,0|n,0|(o=3*(15-l|0)|0)),B(),u&1==(0|(i&=7))&!0){i=7;break}if(!(7==(0|i)&!0)){i=10;break}if(e=0|te(0|e,0|n,0|(u=0|fe(1,0,0|o)),0|B()),n=0|B(),r[(u=A)>>2]=e,r[u+4>>2]=n,!((0|l)>(0|s))){i=10;break}l=l+-1|0}if(5==(0|i))return r[(u=A)>>2]=0,r[u+4>>2]=0,r[a>>2]=-1,void(r[t>>2]=-1);if(7==(0|i))return s=0|te(0|e,0|n,0|(s=0|fe(1,0,0|o)),0|B()),a=0|B(),r[(u=A)>>2]=s,r[u+4>>2]=a,void(r[t>>2]=l+-1)}}function ut(A){var t;return t=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?t+-6.283185307179586:t)}function ft(A,t){return t|=0,+a(+(+i[(A|=0)>>3]-+i[t>>3]))<17453292519943298e-27?0|(t=+a(+(+i[A+8>>3]-+i[t+8>>3]))<17453292519943298e-27):0|(t=0)}function ct(A,t){switch(A=+A,0|(t|=0)){case 1:A=A<0?A+6.283185307179586:A;break;case 2:A=A>0?A+-6.283185307179586:A}return+A}function ht(A,t){A|=0;var e,n,r,o=0;return n=+i[(t|=0)>>3],e=+i[A>>3],o=(r=+h(.5*(n-e)))*r+(o=+h(.5*(+i[t+8>>3]-+i[A+8>>3])))*(+c(+n)*+c(+e)*o),2*+v(+ +u(+o),+ +u(+(1-o)))*6371.007180918475}function gt(A,t){return t|=0,(A|=0)>>>0>15?0|(t=4):(i[t>>3]=+i[20656+(A<<3)>>3],0|(t=0))}function pt(A,t){t|=0;var e=0;return(A|=0)>>>0>15?0|(t=4):(e=0|oe(0|(e=0|Bt(7,0,A,((0|A)<0)<<31>>31)),0|B(),120,0),A=0|B(),r[t>>2]=2|e,r[t+4>>2]=A,0|(t=0))}function dt(A,t,e){A|=0,e|=0;var n,r,o,l,s=0,a=0,f=0,p=0,d=0,m=0;return m=+i[(t|=0)>>3],o=+i[A>>3],d=+h(.5*(m-o)),f=+i[t+8>>3],r=+i[A+8>>3],p=+h(.5*(f-r)),n=+c(+o),l=+c(+m),p=2*+v(+ +u(+(p=d*d+p*(l*n*p))),+ +u(+(1-p))),d=+i[e>>3],m=+h(.5*(d-m)),s=+i[e+8>>3],f=+h(.5*(s-f)),a=+c(+d),f=2*+v(+ +u(+(f=m*m+f*(l*a*f))),+ +u(+(1-f))),d=+h(.5*(o-d)),s=+h(.5*(r-s)),s=2*+v(+ +u(+(s=d*d+s*(n*a*s))),+ +u(+(1-s))),4*+y(+ +u(+ +g(.5*(a=.5*(p+f+s)))*+g(.5*(a-p))*+g(.5*(a-f))*+g(.5*(a-s))))}function yt(A,t,e){e|=0;var n,o,l,s=0,a=0;if(l=Q,Q=Q+192|0,o=l,0|(a=0|rt(A|=0,t|=0,n=l+168|0)))return Q=l,0|(e=a);if(0|it(A,t,o)&&M(27795,27190,415,27199),(0|(t=0|r[o>>2]))>0){if(s=+dt(o+8|0,o+8+((1!=(0|t)&1)<<4)|0,n)+0,1!=(0|t)){A=1;do{s+=+dt(o+8+((a=A)<<4)|0,o+8+((0|(A=A+1|0))%(0|t)<<4)|0,n)}while((0|A)<(0|t))}}else s=0;return i[e>>3]=s,Q=l,0|(e=0)}function vt(A){A|=0;var t,e,n=0;return(t=0|Ae(1,12))||M(27280,27235,49,27293),0|(n=0|r[(e=A+4|0)>>2])?(r[(n=n+8|0)>>2]=t,r[e>>2]=t,0|t):(0|r[A>>2]&&M(27310,27235,61,27333),r[(n=A)>>2]=t,r[e>>2]=t,0|t)}function mt(A,t){A|=0,t|=0;var e,n;return(n=0|Kt(24))||M(27347,27235,78,27361),r[n>>2]=r[t>>2],r[n+4>>2]=r[t+4>>2],r[n+8>>2]=r[t+8>>2],r[n+12>>2]=r[t+12>>2],r[n+16>>2]=0,0|(e=0|r[(t=A+4|0)>>2])?(r[e+16>>2]=n,r[t>>2]=n,0|n):(0|r[A>>2]&&M(27376,27235,82,27361),r[A>>2]=n,r[t>>2]=n,0|n)}function wt(A){var t=0,e=0,n=0,i=0;if(A|=0)for(n=1;;){if(0|(t=0|r[A>>2]))do{if(0|(e=0|r[t>>2]))do{i=e,e=0|r[e+16>>2],$t(i)}while(0|e);i=t,t=0|r[t+8>>2],$t(i)}while(0|t);if(t=A,A=0|r[A+8>>2],n||$t(t),!A)break;n=0}}function bt(A){var t,e,n=0,o=0,l=0,s=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0,b=0,E=0,_=0,x=0,B=0,k=0,S=0,C=0,P=0,D=0,Q=0,I=0,T=0,F=0,L=0;if(0|r[(s=(A|=0)+8|0)>>2])return 0|(L=1);if(!(l=0|r[A>>2]))return 0|(L=0);n=l,o=0;do{o=o+1|0,n=0|r[n+8>>2]}while(0|n);if(o>>>0<2)return 0|(L=0);(e=0|Kt(o<<2))||M(27396,27235,317,27415),(t=0|Kt(o<<5))||M(27437,27235,321,27415),r[A>>2]=0,r[(S=A+4|0)>>2]=0,r[s>>2]=0,o=0,T=0,k=0,d=0;A:for(;;){if(p=0|r[l>>2]){u=0,f=p;do{if(h=+i[f+8>>3],n=f,f=0|r[f+16>>2],c=+i[(s=(g=!(0|f))?p:f)+8>>3],+a(+(h-c))>3.141592653589793){L=14;break}u+=(c-h)*(+i[n>>3]+ +i[s>>3])}while(!g);if(14==(0|L)){L=0,u=0,n=p;do{B=+i[n+8>>3],Q=0|r[(I=n+16|0)>>2],x=+i[(Q=0|Q?Q:p)+8>>3],u+=(+i[n>>3]+ +i[Q>>3])*((x<0?x+6.283185307179586:x)-(B<0?B+6.283185307179586:B)),n=0|r[(0|n?I:l)>>2]}while(0|n)}u>0?(r[e+(T<<2)>>2]=l,T=T+1|0,s=k,n=d):L=19}else L=19;if(19==(0|L)){L=0;do{if(!o){if(d){s=S,f=d+8|0,n=l,o=A;break}if(0|r[A>>2]){L=27;break A}s=S,f=A,n=l,o=A;break}if(0|r[(n=o+8|0)>>2]){L=21;break A}if(!(o=0|Ae(1,12))){L=23;break A}r[n>>2]=o,s=o+4|0,f=o,n=d}while(0);if(r[f>>2]=l,r[s>>2]=l,f=t+(k<<5)|0,g=0|r[l>>2]){for(i[(p=t+(k<<5)+8|0)>>3]=17976931348623157e292,i[(d=t+(k<<5)+24|0)>>3]=17976931348623157e292,i[f>>3]=-17976931348623157e292,i[(y=t+(k<<5)+16|0)>>3]=-17976931348623157e292,E=17976931348623157e292,_=-17976931348623157e292,s=0,v=g,h=17976931348623157e292,w=17976931348623157e292,b=-17976931348623157e292,c=-17976931348623157e292;u=+i[v>>3],B=+i[v+8>>3],v=0|r[v+16>>2],x=+i[((m=!(0|v))?g:v)+8>>3],u<h&&(i[p>>3]=u,h=u),B<w&&(i[d>>3]=B,w=B),u>b?i[f>>3]=u:u=b,B>c&&(i[y>>3]=B,c=B),E=B>0&B<E?B:E,_=B<0&B>_?B:_,s|=+a(+(B-x))>3.141592653589793,!m;)b=u;s&&(i[y>>3]=_,i[d>>3]=E)}else r[f>>2]=0,r[f+4>>2]=0,r[f+8>>2]=0,r[f+12>>2]=0,r[f+16>>2]=0,r[f+20>>2]=0,r[f+24>>2]=0,r[f+28>>2]=0;s=k+1|0}if(l=0|r[(I=l+8|0)>>2],r[I>>2]=0,!l){L=45;break}k=s,d=n}if(21==(0|L))M(27213,27235,35,27247);else if(23==(0|L))M(27267,27235,37,27247);else if(27==(0|L))M(27310,27235,61,27333);else if(45==(0|L)){A:do{if((0|T)>0){for(I=!(0|s),D=s<<2,Q=!(0|A),P=0,n=0;;){if(C=0|r[e+(P<<2)>>2],I)L=73;else{if(!(k=0|Kt(D))){L=50;break}if(!(S=0|Kt(D))){L=52;break}t:do{if(Q)o=0;else{for(s=0,o=0,f=A;l=t+(s<<5)|0,0|Et(0|r[f>>2],l,0|r[C>>2])?(r[k+(o<<2)>>2]=f,r[S+(o<<2)>>2]=l,m=o+1|0):m=o,f=0|r[f+8>>2];)s=s+1|0,o=m;if((0|m)>0)if(l=0|r[k>>2],1==(0|m))o=l;else for(y=0,v=-1,o=l,d=l;;){for(g=0|r[d>>2],l=0,f=0;p=(0|(s=0|r[r[k+(f<<2)>>2]>>2]))==(0|g)?l:l+(1&Et(s,0|r[S+(f<<2)>>2],0|r[g>>2]))|0,(0|(f=f+1|0))!=(0|m);)l=p;if(o=(s=(0|p)>(0|v))?d:o,(0|(l=y+1|0))==(0|m))break t;y=l,v=s?p:v,d=0|r[k+(l<<2)>>2]}else o=0}}while(0);if($t(k),$t(S),o){if(l=0|r[(s=o+4|0)>>2])o=l+8|0;else if(0|r[o>>2]){L=70;break}r[o>>2]=C,r[s>>2]=C}else L=73}if(73==(0|L)){if(L=0,0|(n=0|r[C>>2]))do{S=n,n=0|r[n+16>>2],$t(S)}while(0|n);$t(C),n=1}if((0|(P=P+1|0))>=(0|T)){F=n;break A}}50==(0|L)?M(27452,27235,249,27471):52==(0|L)?M(27490,27235,252,27471):70==(0|L)&&M(27310,27235,61,27333)}else F=0}while(0);return $t(e),$t(t),0|(L=F)}return 0}function Et(A,t,e){A|=0;var n=0,o=0,l=0,s=0,a=0,u=0,f=0,c=0;if(!(0|K(t|=0,e|=0)))return 0|(A=0);if(t=0|Z(t),n=+i[e>>3],o=t&(o=+i[e+8>>3])<0?o+6.283185307179586:o,!(A=0|r[A>>2]))return 0|(A=0);if(t){t=0,f=o,e=A;A:for(;;){for(;s=+i[e>>3],o=+i[e+8>>3],c=0|r[(e=e+16|0)>>2],l=+i[(c=0|c?c:A)>>3],a=+i[c+8>>3],s>l?(u=s,s=a):(u=l,l=s,s=o,o=a),(n=n==l|n==u?n+2220446049250313e-31:n)<l|n>u;)if(!(e=0|r[e>>2])){e=22;break A}if(((u=(a=s<0?s+6.283185307179586:s)+(n-l)/(u-l)*((s=o<0?o+6.283185307179586:o)-a))<0?u+6.283185307179586:u)>(f=a==f|s==f?f+-2220446049250313e-31:f)&&(t^=1),!(e=0|r[e>>2])){e=22;break}}if(22==(0|e))return 0|t}else{t=0,f=o,e=A;A:for(;;){for(;s=+i[e>>3],o=+i[e+8>>3],c=0|r[(e=e+16|0)>>2],l=+i[(c=0|c?c:A)>>3],a=+i[c+8>>3],s>l?(u=s,s=a):(u=l,l=s,s=o,o=a),(n=n==l|n==u?n+2220446049250313e-31:n)<l|n>u;)if(!(e=0|r[e>>2])){e=22;break A}if(s+(n-l)/(u-l)*(o-s)>(f=s==f|o==f?f+-2220446049250313e-31:f)&&(t^=1),!(e=0|r[e>>2])){e=22;break}}if(22==(0|e))return 0|t}return 0}function _t(A,t,e,i,o){e|=0,i|=0,o|=0;var l,s,a,u,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0;if(u=Q,Q=Q+32|0,w=u+16|0,a=u,f=0|ue(0|(A|=0),0|(t|=0),52),B(),f&=15,y=0|ue(0|e,0|i,52),B(),(0|f)!=(15&y))return Q=u,0|(w=12);if(p=0|ue(0|A,0|t,45),B(),p&=127,d=0|ue(0|e,0|i,45),B(),p>>>0>121|(d&=127)>>>0>121)return Q=u,0|(w=5);if(y=(0|p)!=(0|d)){if(7==(0|(h=0|q(p,d))))return Q=u,0|(w=1);7==(0|(g=0|q(d,p)))?M(27514,27538,161,27548):(v=h,c=g)}else v=0,c=0;l=0|z(p),s=0|z(d),r[w>>2]=0,r[w+4>>2]=0,r[w+8>>2]=0,r[w+12>>2]=0;do{if(v){if(h=(0|(d=0|r[4272+(28*p|0)+(v<<2)>>2]))>0,s)if(h){p=0,g=e,h=i;do{g=0|KA(g,h),h=0|B(),1==(0|(c=0|EA(c)))&&(c=0|EA(1)),p=p+1|0}while((0|p)!=(0|d));d=c,p=g,g=h}else d=c,p=e,g=i;else if(h){p=0,g=e,h=i;do{g=0|$A(g,h),h=0|B(),c=0|EA(c),p=p+1|0}while((0|p)!=(0|d));d=c,p=g,g=h}else d=c,p=e,g=i;if(et(p,g,w),y||M(27563,27538,191,27548),(h=!!(0|l))&(c=!!(0|s))&&M(27590,27538,192,27548),h){if(7==(0|(c=0|WA(A,t)))){f=5;break}if(0|n[22e3+(7*c|0)+v|0]){f=1;break}p=g=0|r[21168+(28*c|0)+(v<<2)>>2]}else if(c){if(7==(0|(c=0|WA(p,g)))){f=5;break}if(0|n[22e3+(7*c|0)+d|0]){f=1;break}p=0,g=0|r[21168+(28*d|0)+(c<<2)>>2]}else p=0,g=0;if((p|g|0)<0)f=5;else{if((0|g)>0){h=w+4|0,c=0;do{wA(h),c=c+1|0}while((0|c)!=(0|g))}if(r[a>>2]=0,r[a+4>>2]=0,r[a+8>>2]=0,vA(a,v),0|f)for(;0|At(f)?dA(a):yA(a),(0|f)>1;)f=f+-1|0;if((0|p)>0){f=0;do{wA(a),f=f+1|0}while((0|f)!=(0|p))}sA(m=w+4|0,a,m),oA(m),m=51}}else if(et(e,i,w),!!(0|l)&!!(0|s))if((0|d)!=(0|p)&&M(27621,27538,261,27548),7==(0|(c=0|WA(A,t)))|7==(0|(f=0|WA(e,i))))f=5;else if(0|n[22e3+(7*c|0)+f|0])f=1;else if((0|(c=0|r[21168+(28*c|0)+(f<<2)>>2]))>0){h=w+4|0,f=0;do{wA(h),f=f+1|0}while((0|f)!=(0|c));m=51}else m=51;else m=51}while(0);return 51==(0|m)&&(f=w+4|0,r[o>>2]=r[f>>2],r[o+4>>2]=r[f+4>>2],r[o+8>>2]=r[f+8>>2],f=0),Q=u,0|(w=f)}function xt(A,t,e,n){e|=0,n|=0;var i,o,l,s=0,a=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0;if(l=Q,Q=Q+48|0,i=l+36|0,u=l+24|0,f=l+12|0,c=l,s=0|ue(0|(A|=0),0|(t|=0),52),B(),s&=15,g=0|ue(0|A,0|t,45),B(),(g&=127)>>>0>121)return Q=l,0|(n=5);if(o=0|z(g),fe(0|s,0,52),y=134225919|B(),r[(a=n)>>2]=-1,r[a+4>>2]=y,!s)return 7==(0|(s=0|fA(e)))||127==(0|(s=0|H(g,s)))?(Q=l,0|(y=1)):(p=0|fe(0|s,0,45),d=0|B(),d=-1040385&r[(g=n)+4>>2]|d,r[(y=n)>>2]=r[g>>2]|p,r[y+4>>2]=d,Q=l,0|(y=0));for(r[i>>2]=r[e>>2],r[i+4>>2]=r[e+4>>2],r[i+8>>2]=r[e+8>>2],e=s;;){if(a=e,e=e+-1|0,r[u>>2]=r[i>>2],r[u+4>>2]=r[i+4>>2],r[u+8>>2]=r[i+8>>2],0|At(a)){if(0|(s=0|cA(i))){e=13;break}r[f>>2]=r[i>>2],r[f+4>>2]=r[i+4>>2],r[f+8>>2]=r[i+8>>2],dA(f)}else{if(0|(s=0|hA(i))){e=13;break}r[f>>2]=r[i>>2],r[f+4>>2]=r[i+4>>2],r[f+8>>2]=r[i+8>>2],yA(f)}if(aA(u,f,c),oA(c),m=0|r[(s=n)>>2],s=0|r[s+4>>2],v=0|fe(7,0,0|(w=3*(15-a|0)|0)),s&=~B(),w=0|fe(0|fA(c),0,0|w),s=0|B()|s,r[(y=n)>>2]=w|m&~v,r[y+4>>2]=s,(0|a)<=1){e=14;break}}A:do{if(13!=(0|e)&&14==(0|e))if((0|r[i>>2])<=1&&(0|r[i+4>>2])<=1&&(0|r[i+8>>2])<=1){c=127==(0|(s=0|H(g,e=0|fA(i))))?0:0|z(s);t:do{if(e){if(o){if(7==(0|(s=0|WA(A,t)))){s=5;break A}if((0|(a=0|r[21376+(28*s|0)+(e<<2)>>2]))>0){s=e,e=0;do{s=0|bA(s),e=e+1|0}while((0|e)!=(0|a))}else s=e;if(1==(0|s)){s=9;break A}127==(0|(e=0|H(g,s)))&&M(27648,27538,411,27678),0|z(e)?M(27693,27538,412,27678):(d=e,p=a,h=s)}else d=s,p=0,h=e;if((0|(f=0|r[4272+(28*g|0)+(h<<2)>>2]))<=-1&&M(27724,27538,419,27678),!c){if((0|p)<0){s=5;break A}if(0|p){s=0,e=0|r[(a=n)>>2],a=0|r[a+4>>2];do{e=0|JA(e,a),a=0|B(),r[(w=n)>>2]=e,r[w+4>>2]=a,s=s+1|0}while((0|s)<(0|p))}if((0|f)<=0){s=d,e=58;break}for(s=0,e=0|r[(a=n)>>2],a=0|r[a+4>>2];;)if(e=0|JA(e,a),a=0|B(),r[(w=n)>>2]=e,r[w+4>>2]=a,(0|(s=s+1|0))==(0|f)){s=d,e=58;break t}}if(7==(0|(u=0|q(d,g)))&&M(27514,27538,428,27678),e=0|r[(s=n)>>2],s=0|r[s+4>>2],(0|f)>0){a=0;do{e=0|JA(e,s),s=0|B(),r[(w=n)>>2]=e,r[w+4>>2]=s,a=a+1|0}while((0|a)!=(0|f))}if(7==(0|(s=0|WA(e,s)))&&M(27795,27538,440,27678),e=0|U(d),(0|(e=0|r[(e?21792:21584)+(28*u|0)+(s<<2)>>2]))<0&&M(27795,27538,454,27678),e){s=0,a=0|r[(u=n)>>2],u=0|r[u+4>>2];do{a=0|ZA(a,u),u=0|B(),r[(w=n)>>2]=a,r[w+4>>2]=u,s=s+1|0}while((0|s)<(0|e));s=d,e=58}else s=d,e=58}else if(!!(0|o)&!!(0|c)){if(7==(0|(e=0|WA(A,t)))|7==(0|(a=0|WA(0|r[(a=n)>>2],0|r[a+4>>2])))){s=5;break A}if((0|(a=0|r[21376+(28*e|0)+(a<<2)>>2]))<0){s=5;break A}if(a){e=0,u=0|r[(f=n)>>2],f=0|r[f+4>>2];do{u=0|JA(u,f),f=0|B(),r[(w=n)>>2]=u,r[w+4>>2]=f,e=e+1|0}while((0|e)<(0|a));e=58}else e=59}else e=58}while(0);if(58==(0|e)&&c&&(e=59),59==(0|e)&&1==(0|WA(0|r[(w=n)>>2],0|r[w+4>>2]))){s=9;break}v=0|r[(w=n)>>2],w=-1040385&r[w+4>>2],m=0|fe(0|s,0,45),w=0|w|B(),r[(s=n)>>2]=v|m,r[s+4>>2]=w,s=0}else s=1}while(0);return Q=l,0|(w=s)}function Bt(A,t,e,n){A|=0,t|=0;var r=0,i=0,o=0;if(!(0|(e|=0))&!(0|(n|=0)))return i=1,x(0|(r=0)),0|i;i=A,r=t,A=1,t=0;do{A=0|oe(0|((o=!0&!(1&e))?1:i),0|(o?0:r),0|A,0|t),t=0|B(),e=0|ae(0|e,0|n,1),n=0|B(),i=0|oe(0|i,0|r,0|i,0|r),r=0|B()}while(!(!(0|e)&!(0|n)));return x(0|t),0|A}function Mt(A,t,e,n){e|=0,n|=0;var o,l=0,s=0,a=0,u=0,f=0,h=0;o=Q,Q=Q+16|0,s=o,a=0|ue(0|(A|=0),0|(t|=0),52),B(),a&=15;do{if(a){if(!(l=0|rt(A,t,s))){f=+i[s>>3],u=1/+c(+f),h=+i[25968+(a<<3)>>3],i[e>>3]=f+h,i[e+8>>3]=f-h,f=+i[s+8>>3],u*=h,i[e+16>>3]=u+f,i[e+24>>3]=f-u;break}return Q=o,0|(a=l)}if(l=0|ue(0|A,0|t,45),B(),(l&=127)>>>0>121)return Q=o,0|(a=5);s=22064+(l<<5)|0,r[e>>2]=r[s>>2],r[e+4>>2]=r[s+4>>2],r[e+8>>2]=r[s+8>>2],r[e+12>>2]=r[s+12>>2],r[e+16>>2]=r[s+16>>2],r[e+20>>2]=r[s+20>>2],r[e+24>>2]=r[s+24>>2],r[e+28>>2]=r[s+28>>2];break}while(0);return function(A,t){t=+t;var e,n,r,o,l,s,a,u=0,f=0;u=(o=+i[(r=16+(A|=0)|0)>>3])-(n=+i[(e=A+24|0)>>3]),u=o<n?u+6.283185307179586:u,f=+i[A>>3],u=.5*(u*t-u),f+=t=.5*((a=f-(s=+i[(l=A+8|0)>>3]))*t-a),i[A>>3]=f>1.5707963267948966?1.5707963267948966:f,t=s-t,i[l>>3]=t<-1.5707963267948966?-1.5707963267948966:t,t=(t=o+u)>3.141592653589793?t+-6.283185307179586:t,i[r>>3]=t<-3.141592653589793?t+6.283185307179586:t,t=(t=n-u)>3.141592653589793?t+-6.283185307179586:t,i[e>>3]=t<-3.141592653589793?t+6.283185307179586:t}(e,n?1.4:1.1),(0|r[(n=26096+(a<<3)|0)>>2])==(0|A)&&(0|r[n+4>>2])==(0|t)&&(i[e>>3]=1.5707963267948966),(0|r[(a=26224+(a<<3)|0)>>2])==(0|A)&&(0|r[a+4>>2])==(0|t)&&(i[e+8>>3]=-1.5707963267948966),1.5707963267948966!=+i[e>>3]&&-1.5707963267948966!=+i[e+8>>3]?(Q=o,0|(a=0)):(i[e+16>>3]=3.141592653589793,i[e+24>>3]=-3.141592653589793,Q=o,0|(a=0))}function kt(A,t,e,i){A|=0,t|=0,e|=0,i|=0;var o,l,s,a=0,u=0,f=0,c=0;s=Q,Q=Q+48|0,o=s+40|0,l=s,UA(u=s+32|0,0,0,0),f=0|r[u>>2],u=0|r[u+4>>2];do{if(e>>>0<=15){if(0|(a=0|Qt(i))){r[(i=l)>>2]=0,r[i+4>>2]=0,r[l+8>>2]=a,r[l+12>>2]=-1,f=l+29|0,r[(i=l+16|0)>>2]=0,r[i+4>>2]=0,r[i+8>>2]=0,n[i+12|0]=0,n[f|0]=0|n[o|0],n[f+1|0]=0|n[o+1|0],n[f+2|0]=0|n[o+2|0];break}if(a=0|Ae(1+(0|r[t+8>>2])|0,32)){It(t,a),r[(c=l)>>2]=f,r[c+4>>2]=u,r[l+8>>2]=0,r[l+12>>2]=e,r[l+16>>2]=i,r[l+20>>2]=t,r[l+24>>2]=a,n[l+28|0]=0,n[(f=l+29|0)|0]=0|n[o|0],n[f+1|0]=0|n[o+1|0],n[f+2|0]=0|n[o+2|0];break}r[(i=l)>>2]=0,r[i+4>>2]=0,r[l+8>>2]=13,r[l+12>>2]=-1,f=l+29|0,r[(i=l+16|0)>>2]=0,r[i+4>>2]=0,r[i+8>>2]=0,n[i+12|0]=0,n[f|0]=0|n[o|0],n[f+1|0]=0|n[o+1|0],n[f+2|0]=0|n[o+2|0];break}r[(f=l)>>2]=0,r[f+4>>2]=0,r[l+8>>2]=4,r[l+12>>2]=-1,c=l+29|0,r[(f=l+16|0)>>2]=0,r[f+4>>2]=0,r[f+8>>2]=0,n[f+12|0]=0,n[c|0]=0|n[o|0],n[c+1|0]=0|n[o+1|0],n[c+2|0]=0|n[o+2|0]}while(0);St(l),r[A>>2]=r[l>>2],r[A+4>>2]=r[l+4>>2],r[A+8>>2]=r[l+8>>2],r[A+12>>2]=r[l+12>>2],r[A+16>>2]=r[l+16>>2],r[A+20>>2]=r[l+20>>2],r[A+24>>2]=r[l+24>>2],r[A+28>>2]=r[l+28>>2],Q=s}function St(A){var t,e,i,o,l=0,s=0,a=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0,b=0,E=0;if(o=Q,Q=Q+336|0,t=o+168|0,e=o,!(0|(s=0|r[(a=A|=0)>>2]))&!(0|(a=0|r[a+4>>2])))Q=o;else{if(0|n[(l=A+28|0)|0]?(s=0|Ct(s,a),a=0|B()):n[l|0]=1,!(0|r[r[(i=A+20|0)>>2]>>2]))return 0|(s=0|r[(l=A+24|0)>>2])&&$t(s),r[(E=A)>>2]=0,r[E+4>>2]=0,r[A+8>>2]=0,r[i>>2]=0,r[A+12>>2]=-1,r[A+16>>2]=0,r[l>>2]=0,void(Q=o);u=15&(l=0|r[(E=A+16|0)>>2]);A:do{if(!(0|s)&!(0|a))b=A+24|0;else{m=A+12|0,y=3==(0|u),d=255&l,g=3==(1|u),v=A+24|0,p=(u+-1|0)>>>0<3,c=3==(2|u),h=e+8|0;t:for(;;){if(f=0|ue(0|s,0|a,52),B(),(0|(f&=15))==(0|r[m>>2])){switch(15&d){case 0:case 2:case 3:if(0|(u=0|rt(s,a,t))){w=15;break t}if(0|Tt(0|r[i>>2],0|r[v>>2],t)){w=19;break t}}if(g&&(u=0|r[4+(0|r[i>>2])>>2],r[t>>2]=r[u>>2],r[t+4>>2]=r[u+4>>2],r[t+8>>2]=r[u+8>>2],r[t+12>>2]=r[u+12>>2],0|K(26832,t))){if(0|tt(0|r[4+(0|r[i>>2])>>2],f,e)){w=25;break}if((0|r[(u=e)>>2])==(0|s)&&(0|r[u+4>>2])==(0|a)){w=29;break}}if(p){if(0|(u=0|it(s,a,t))){w=32;break}if(0|Mt(s,a,e,0)){w=36;break}if(c&&0|Ft(0|r[i>>2],0|r[v>>2],t,e)){w=42;break}if(g&&0|Ot(0|r[i>>2],0|r[v>>2],t,e)){w=42;break}}if(y){if(l=0|Mt(s,a,t,1),u=0|r[v>>2],0|l){w=45;break}if(0|$(u,t)){if(tA(e,t),0|AA(t,0|r[v>>2])){w=53;break}if(0|Tt(0|r[i>>2],0|r[v>>2],h)){w=53;break}if(0|Ot(0|r[i>>2],0|r[v>>2],e,t)){w=53;break}}}}do{if((0|f)<(0|r[m>>2])){if(l=0|Mt(s,a,t,1),u=0|r[v>>2],0|l){w=58;break t}if(!(0|$(u,t))){w=73;break}if(0|AA(0|r[v>>2],t)&&(tA(e,t),0|Ft(0|r[i>>2],0|r[v>>2],e,t))){w=65;break t}if(0|(s=0|qA(s,a,f+1|0,e))){w=67;break t}s=0|r[(a=e)>>2],a=0|r[a+4>>2]}else w=73}while(0);if(73==(0|w)&&(w=0,s=0|Ct(s,a),a=0|B()),!(0|s)&!(0|a)){b=v;break A}}switch(0|w){case 15:0|(l=0|r[v>>2])&&$t(l),r[(w=A)>>2]=0,r[w+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[E>>2]=0,r[v>>2]=0,r[A+8>>2]=u,w=20;break;case 19:r[A>>2]=s,r[A+4>>2]=a,w=20;break;case 25:M(27795,27761,470,27772);break;case 29:case 42:return r[A>>2]=s,r[A+4>>2]=a,void(Q=o);case 32:return 0|(l=0|r[v>>2])&&$t(l),r[(b=A)>>2]=0,r[b+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[E>>2]=0,r[v>>2]=0,r[A+8>>2]=u,void(Q=o);case 36:M(27795,27761,493,27772);break;case 45:0|u&&$t(u),r[(w=A)>>2]=0,r[w+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[E>>2]=0,r[v>>2]=0,r[A+8>>2]=l,w=55;break;case 53:r[A>>2]=s,r[A+4>>2]=a,w=55;break;case 58:0|u&&$t(u),r[(w=A)>>2]=0,r[w+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[E>>2]=0,r[v>>2]=0,r[A+8>>2]=l,w=71;break;case 65:r[A>>2]=s,r[A+4>>2]=a,w=71;break;case 67:return 0|(l=0|r[v>>2])&&$t(l),r[(b=A)>>2]=0,r[b+4>>2]=0,r[i>>2]=0,r[m>>2]=-1,r[E>>2]=0,r[v>>2]=0,r[A+8>>2]=s,void(Q=o)}if(20==(0|w))return void(Q=o);if(55==(0|w))return void(Q=o);if(71==(0|w))return void(Q=o)}}while(0);0|(l=0|r[b>>2])&&$t(l),r[(w=A)>>2]=0,r[w+4>>2]=0,r[A+8>>2]=0,r[i>>2]=0,r[A+12>>2]=-1,r[E>>2]=0,r[b>>2]=0,Q=o}}function Ct(A,t){var e,n=0,i=0,o=0,l=0,s=0,a=0,u=0,f=0,c=0;e=Q,Q=Q+16|0,c=e,i=0|ue(0|(A|=0),0|(t|=0),52),B(),i&=15,n=0|ue(0|A,0|t,45),B();do{if(i){for(;n=0|fe(i+4095|0,0,52),o=B()|-15728641&t,n=n|A|(s=0|fe(7,0,0|(l=3*(15-i|0)|0))),o|=a=0|B(),u=0|ue(0|A,0|t,0|l),B(),i=i+-1|0,!((u&=7)>>>0<6);){if(!i){f=4;break}t=o,A=n}if(4==(0|f)){n=0|ue(0|n,0|o,45),B();break}return c=0|fe(((c=!(0|u)&!!(0|VA(n,o)))?2:1)+u|0,0,0|l),f=0|B()|t&~a,c|=A&~s,x(0|f),Q=e,0|c}}while(0);return(n&=127)>>>0>120?(c=0,x(0|(f=0)),Q=e,0|c):(UA(c,0,n+1|0,0),f=0|r[c+4>>2],c=0|r[c>>2],x(0|f),Q=e,0|c)}function Pt(A,t,e){A|=0;var n,o=0,l=0,s=0,a=0,u=0,f=0,c=0,h=0,g=0;if(!(0|K(t|=0,e|=0)))return 0|(g=0);if(t=0|Z(t),o=+i[e>>3],l=t&(l=+i[e+8>>3])<0?l+6.283185307179586:l,(0|(g=0|r[A>>2]))<=0)return 0|(g=0);if(n=0|r[A+4>>2],t){t=0,h=l,e=-1,A=0;A:for(;;){for(c=A;a=+i[n+(c<<4)>>3],l=+i[n+(c<<4)+8>>3],s=+i[n+((A=(e+2|0)%(0|g)|0)<<4)>>3],u=+i[n+(A<<4)+8>>3],a>s?(f=a,a=u):(f=s,s=a,a=l,l=u),(o=o==s|o==f?o+2220446049250313e-31:o)<s|o>f;){if((0|(e=c+1|0))>=(0|g)){e=22;break A}A=c,c=e,e=A}if(((f=(u=a<0?a+6.283185307179586:a)+(o-s)/(f-s)*((a=l<0?l+6.283185307179586:l)-u))<0?f+6.283185307179586:f)>(h=u==h|a==h?h+-2220446049250313e-31:h)&&(t^=1),(0|(A=c+1|0))>=(0|g)){e=22;break}e=c}if(22==(0|e))return 0|t}else{t=0,h=l,e=-1,A=0;A:for(;;){for(c=A;a=+i[n+(c<<4)>>3],l=+i[n+(c<<4)+8>>3],s=+i[n+((A=(e+2|0)%(0|g)|0)<<4)>>3],u=+i[n+(A<<4)+8>>3],a>s?(f=a,a=u):(f=s,s=a,a=l,l=u),(o=o==s|o==f?o+2220446049250313e-31:o)<s|o>f;){if((0|(e=c+1|0))>=(0|g)){e=22;break A}A=c,c=e,e=A}if(a+(o-s)/(f-s)*(l-a)>(h=a==h|l==h?h+-2220446049250313e-31:h)&&(t^=1),(0|(A=c+1|0))>=(0|g)){e=22;break}e=c}if(22==(0|e))return 0|t}return 0}function Dt(A,t){t|=0;var e,n,o,l,s,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0,b=0;if(!(n=0|r[(A|=0)>>2]))return r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,r[t+12>>2]=0,r[t+16>>2]=0,r[t+20>>2]=0,r[t+24>>2]=0,void(r[t+28>>2]=0);if(i[(o=t+8|0)>>3]=17976931348623157e292,i[(l=t+24|0)>>3]=17976931348623157e292,i[t>>3]=-17976931348623157e292,i[(s=t+16|0)>>3]=-17976931348623157e292,!((0|n)<=0)){for(e=0|r[A+4>>2],y=17976931348623157e292,v=-17976931348623157e292,m=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,d=-17976931348623157e292,f=-17976931348623157e292,w=0;u=+i[e+(w<<4)>>3],p=+i[e+(w<<4)+8>>3],c=+i[e+(((0|(A=A+2|0))==(0|n)?0:A)<<4)+8>>3],u<h&&(i[o>>3]=u,h=u),p<g&&(i[l>>3]=p,g=p),u>d?i[t>>3]=u:u=d,p>f&&(i[s>>3]=p,f=p),y=p>0&p<y?p:y,v=p<0&p>v?p:v,m|=+a(+(p-c))>3.141592653589793,(0|(A=w+1|0))!=(0|n);)b=w,d=u,w=A,A=b;m&&(i[s>>3]=v,i[l>>3]=y)}}function Qt(A){return 0|((A|=0)>>>0<4?0:15)}function It(A,t){t|=0;var e,n=0,o=0,l=0,s=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0,b=0,E=0,_=0,x=0,B=0,M=0;if(v=0|r[(A|=0)>>2]){if(i[(m=t+8|0)>>3]=17976931348623157e292,i[(w=t+24|0)>>3]=17976931348623157e292,i[t>>3]=-17976931348623157e292,i[(b=t+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(l=0|r[A+4>>2],d=17976931348623157e292,y=-17976931348623157e292,o=0,n=-1,c=17976931348623157e292,h=17976931348623157e292,p=-17976931348623157e292,u=-17976931348623157e292,E=0;s=+i[l+(E<<4)>>3],g=+i[l+(E<<4)+8>>3],f=+i[l+(((0|(B=n+2|0))==(0|v)?0:B)<<4)+8>>3],s<c&&(i[m>>3]=s,c=s),g<h&&(i[w>>3]=g,h=g),s>p?i[t>>3]=s:s=p,g>u&&(i[b>>3]=g,u=g),d=g>0&g<d?g:d,y=g<0&g>y?g:y,o|=+a(+(g-f))>3.141592653589793,(0|(n=E+1|0))!=(0|v);)B=E,p=s,E=n,n=B;o&&(i[b>>3]=y,i[w>>3]=d)}}else r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,r[t+12>>2]=0,r[t+16>>2]=0,r[t+20>>2]=0,r[t+24>>2]=0,r[t+28>>2]=0;if(!((0|(n=0|r[(B=A+8|0)>>2]))<=0)){e=A+12|0,x=0;do{if(l=0|r[e>>2],o=x,w=t+((x=x+1|0)<<5)|0,b=0|r[l+(o<<3)>>2]){if(i[(E=t+(x<<5)+8|0)>>3]=17976931348623157e292,i[(A=t+(x<<5)+24|0)>>3]=17976931348623157e292,i[w>>3]=-17976931348623157e292,i[(_=t+(x<<5)+16|0)>>3]=-17976931348623157e292,(0|b)>0){for(v=0|r[l+(o<<3)+4>>2],d=17976931348623157e292,y=-17976931348623157e292,l=0,o=-1,m=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292;s=+i[v+(m<<4)>>3],p=+i[v+(m<<4)+8>>3],f=+i[v+(((0|(o=o+2|0))==(0|b)?0:o)<<4)+8>>3],s<c&&(i[E>>3]=s,c=s),p<h&&(i[A>>3]=p,h=p),s>g?i[w>>3]=s:s=g,p>u&&(i[_>>3]=p,u=p),d=p>0&p<d?p:d,y=p<0&p>y?p:y,l|=+a(+(p-f))>3.141592653589793,(0|(o=m+1|0))!=(0|b);)M=m,m=o,g=s,o=M;l&&(i[_>>3]=y,i[A>>3]=d)}}else r[w>>2]=0,r[w+4>>2]=0,r[w+8>>2]=0,r[w+12>>2]=0,r[w+16>>2]=0,r[w+20>>2]=0,r[w+24>>2]=0,r[w+28>>2]=0,n=0|r[B>>2]}while((0|x)<(0|n))}}function Tt(A,t,e){var n=0,i=0,o=0;if(!(0|Pt(A|=0,t|=0,e|=0)))return 0|(i=0);if((0|r[(i=A+8|0)>>2])<=0)return 0|(i=1);for(n=A+12|0,A=0;;){if(o=A,A=A+1|0,0|Pt((0|r[n>>2])+(o<<3)|0,t+(A<<5)|0,e)){A=0,n=6;break}if((0|A)>=(0|r[i>>2])){A=1,n=6;break}}return 6==(0|n)?0|A:0}function Ft(A,t,e,n){n|=0;var i,o,l=0,s=0,a=0,u=0,f=0;if(o=Q,Q=Q+16|0,i=o,!(0|Pt(A|=0,t|=0,a=(e|=0)+8|0)))return Q=o,0|(u=0);u=A+8|0;A:do{if((0|r[u>>2])>0){for(s=A+12|0,l=0;;){if(f=l,l=l+1|0,0|Pt((0|r[s>>2])+(f<<3)|0,t+(l<<5)|0,a)){l=0;break}if((0|l)>=(0|r[u>>2]))break A}return Q=o,0|l}}while(0);if(0|Lt(A,t,e,n))return Q=o,0|(f=0);r[i>>2]=r[e>>2],r[i+4>>2]=a,l=0|r[u>>2];A:do{if((0|l)>0)for(A=A+12|0,a=0,s=l;;){if(l=0|r[A>>2],(0|r[l+(a<<3)>>2])>0){if(0|Pt(i,n,0|r[l+(a<<3)+4>>2])){l=0;break A}if(l=a+1|0,0|Lt((0|r[A>>2])+(a<<3)|0,t+(l<<5)|0,e,n)){l=0;break A}s=0|r[u>>2]}else l=a+1|0;if(!((0|l)<(0|s))){l=1;break}a=l}else l=1}while(0);return Q=o,0|(f=l)}function Lt(A,t,e,n){A|=0,e|=0;var o,l,s,a,u,f,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0,b=0,E=0,_=0,x=0,B=0,M=0;if(f=Q,Q=Q+176|0,a=f+172|0,c=f+168|0,u=f,!(0|$(t|=0,n|=0)))return Q=f,0|(A=0);if(function(A,t,e,n){var o,l,s,a,u;t|=0,e|=0,n|=0,A=(l=+i[16+(A|=0)>>3])<(u=+i[A+24>>3]),o=(a=+i[t+16>>3])<(s=+i[t+24>>3]),t=u-a<s-l,r[e>>2]=A?o|t?1:2:0,r[n>>2]=o?A?1:t?2:1:0}(t,n,a,c),de(0|u,0|e,168),(0|r[e>>2])>0){t=0;do{E=+ct(+i[(B=u+8+(t<<4)+8|0)>>3],0|r[c>>2]),i[B>>3]=E,t=t+1|0}while((0|t)<(0|r[e>>2]))}l=+i[n>>3],s=+i[n+8>>3],E=+ct(+i[n+16>>3],0|r[c>>2]),o=+ct(+i[n+24>>3],0|r[c>>2]);A:do{if((0|r[A>>2])>0){if(n=A+4|0,(0|(c=0|r[u>>2]))<=0)for(t=0;;)if((0|(t=t+1|0))>=(0|r[A>>2])){t=0;break A}for(e=0;;){if(t=0|r[n>>2],w=+i[t+(e<<4)>>3],b=+ct(+i[t+(e<<4)+8>>3],0|r[a>>2]),t=0|r[n>>2],B=(0|(e=e+1|0))%(0|r[A>>2])|0,h=+i[t+(B<<4)>>3],g=+ct(+i[t+(B<<4)+8>>3],0|r[a>>2]),!(w>=l)|!(h>=l)&&!(w<=s)|!(h<=s)&&!(b<=o)|!(g<=o)&&!(b>=E)|!(g>=E)){m=h-w,y=g-b,t=0;do{if(M=t,B=(0|(t=t+1|0))==(0|c)?0:t,h=+i[u+8+(M<<4)+8>>3],g=+i[u+8+(B<<4)+8>>3]-h,p=+i[u+8+(M<<4)>>3],!(0==(v=m*g-y*(d=+i[u+8+(B<<4)>>3]-p))||(_=b-h,x=w-p,d=(_*d-g*x)/v,d<0|d>1))&&(v=(m*_-y*x)/v)>=0&v<=1){t=1;break A}}while((0|t)<(0|c))}if((0|e)>=(0|r[A>>2])){t=0;break}}}else t=0}while(0);return Q=f,0|(M=t)}function Ot(A,t,e,n){var i=0,o=0,l=0;if(0|Lt(A|=0,t|=0,e|=0,n|=0))return 0|(o=1);if((0|r[(o=A+8|0)>>2])<=0)return 0|(o=0);for(i=A+12|0,A=0;;){if(l=A,A=A+1|0,0|Lt((0|r[i>>2])+(l<<3)|0,t+(A<<5)|0,e,n)){A=1,i=6;break}if((0|A)>=(0|r[o>>2])){A=0,i=6;break}}return 6==(0|i)?0|A:0}function Rt(A,t,e,n,r){t|=0,e|=0,n|=0,r|=0;var o,l,s,a,u,f,c,h=0;a=+i[(A|=0)>>3],s=+i[t>>3]-a,l=+i[A+8>>3],o=+i[t+8>>3]-l,f=+i[e>>3],h=((h=+i[n>>3]-f)*(l-(c=+i[e+8>>3]))-(a-f)*(u=+i[n+8>>3]-c))/(s*u-o*h),i[r>>3]=a+s*h,i[r+8>>3]=l+o*h}function Nt(A,t){return t|=0,+a(+(+i[(A|=0)>>3]-+i[t>>3]))<1.1920928955078125e-7?0|(t=+a(+(+i[A+8>>3]-+i[t+8>>3]))<1.1920928955078125e-7):0|(t=0)}function Gt(A,t){t|=0;var e,n,r;return+((r=+i[(A|=0)>>3]-+i[t>>3])*r+(n=+i[A+8>>3]-+i[t+8>>3])*n+(e=+i[A+16>>3]-+i[t+16>>3])*e)}function Yt(A,t,e){e|=0;var n,i,o,l,s=0,a=0,u=0,f=0;if(l=Q,Q=Q+32|0,f=l,0|(s=0|nt(A|=0,t|=0,i=l+16|0)))return Q=l,0|(e=s);n=0|YA(A,t),o=0|WA(A,t),function(A,t){A=7696+(28*(A|=0)|0)|0,r[(t|=0)>>2]=r[A>>2],r[t+4>>2]=r[A+4>>2],r[t+8>>2]=r[A+8>>2],r[t+12>>2]=r[A+12>>2]}(n,f),s=0|function(A,t){A|=0;var e=0,n=0;if((t|=0)>>>0>20)return-1;do{if((0|r[11120+(216*t|0)>>2])!=(0|A))if((0|r[11120+(216*t|0)+8>>2])!=(0|A))if((0|r[11120+(216*t|0)+16>>2])!=(0|A))if((0|r[11120+(216*t|0)+24>>2])!=(0|A))if((0|r[11120+(216*t|0)+32>>2])!=(0|A))if((0|r[11120+(216*t|0)+40>>2])!=(0|A))if((0|r[11120+(216*t|0)+48>>2])!=(0|A))if((0|r[11120+(216*t|0)+56>>2])!=(0|A))if((0|r[11120+(216*t|0)+64>>2])!=(0|A))if((0|r[11120+(216*t|0)+72>>2])!=(0|A))if((0|r[11120+(216*t|0)+80>>2])!=(0|A))if((0|r[11120+(216*t|0)+88>>2])!=(0|A))if((0|r[11120+(216*t|0)+96>>2])!=(0|A))if((0|r[11120+(216*t|0)+104>>2])!=(0|A))if((0|r[11120+(216*t|0)+112>>2])!=(0|A))if((0|r[11120+(216*t|0)+120>>2])!=(0|A))if((0|r[11120+(216*t|0)+128>>2])!=(0|A)){if((0|r[11120+(216*t|0)+136>>2])!=(0|A)){if((0|r[11120+(216*t|0)+144>>2])==(0|A)){A=0,e=2,n=0;break}if((0|r[11120+(216*t|0)+152>>2])==(0|A)){A=0,e=2,n=1;break}if((0|r[11120+(216*t|0)+160>>2])==(0|A)){A=0,e=2,n=2;break}if((0|r[11120+(216*t|0)+168>>2])==(0|A)){A=1,e=2,n=0;break}if((0|r[11120+(216*t|0)+176>>2])==(0|A)){A=1,e=2,n=1;break}if((0|r[11120+(216*t|0)+184>>2])==(0|A)){A=1,e=2,n=2;break}if((0|r[11120+(216*t|0)+192>>2])==(0|A)){A=2,e=2,n=0;break}if((0|r[11120+(216*t|0)+200>>2])==(0|A)){A=2,e=2,n=1;break}if((0|r[11120+(216*t|0)+208>>2])==(0|A)){A=2,e=2,n=2;break}return-1}A=2,e=1,n=2}else A=2,e=1,n=1;else A=2,e=1,n=0;else A=1,e=1,n=2;else A=1,e=1,n=1;else A=1,e=1,n=0;else A=0,e=1,n=2;else A=0,e=1,n=1;else A=0,e=1,n=0;else A=2,e=0,n=2;else A=2,e=0,n=1;else A=2,e=0,n=0;else A=1,e=0,n=2;else A=1,e=0,n=1;else A=1,e=0,n=0;else A=0,e=0,n=2;else A=0,e=0,n=1;else A=0,e=0,n=0}while(0);return 0|r[11120+(216*t|0)+(72*e|0)+(24*A|0)+(n<<3)+4>>2]}(n,0|r[i>>2]);do{if(0|z(n)){switch(0|n){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:M(27795,27797,75,27806)}if(u=0|r[26416+(24*a|0)+8>>2],t=0|r[26416+(24*a|0)+16>>2],(0|(A=0|r[i>>2]))!=(0|r[f>>2])&&(f=0|U(n))|(0|(A=0|r[i>>2]))==(0|t)&&(s=(s+1|0)%6|0),3==(0|o)&(0|A)==(0|t)){s=(s+5|0)%6|0;break}5==(0|o)&(0|A)==(0|u)&&(s=(s+1|0)%6|0)}}while(0);return r[e>>2]=s,Q=l,0|(e=0)}function zt(A,t,e,n){e|=0,n|=0;var i,o,l,s,a,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0;if(a=Q,Q=Q+32|0,w=a+24|0,s=a+20|0,l=a+8|0,o=a+16|0,i=a,g=(g=!(0|VA(A|=0,t|=0)))?6:5,d=0|ue(0|A,0|t,52),B(),g>>>0<=e>>>0)return Q=a,0|(n=2);!(y=!(0|(d&=15)))&&!((v=0|fe(7,0,3*(15^d)|0))&A|0)&!((0|B())&t)?u=e:f=4;A:do{if(4==(0|f)){if((0|((u=!!(0|VA(A,t)))?4:5))<(0|e))return Q=a,0|(n=1);if(0|Yt(A,t,w))return Q=a,0|(n=1);if(f=(0|r[w>>2])+e|0,7==(0|(v=0|r[(u=u?26704+((0|f)%5<<2)|0:26736+((0|f)%6<<2)|0)>>2])))return Q=a,0|(n=1);r[s>>2]=0,u=0|O(A,t,v,s,l);do{if(!u){if(p=0|r[(h=l)>>2],f=(c=(h=0|r[h+4>>2])>>>0<t>>>0|(0|h)==(0|t)&p>>>0<A>>>0)?p:A,c=c?h:t,!y&&!(p&(y=0|fe(7,0,3*(15^d)|0))|0)&!(h&(0|B())))u=e;else{if(h=(e+-1+g|0)%(0|g)|0,u=0|VA(A,t),(0|h)<0&&M(27795,27797,248,27822),(0|((g=!!(0|u))?4:5))<(0|h)&&M(27795,27797,248,27822),0|Yt(A,t,w)&&M(27795,27797,248,27822),u=(0|r[w>>2])+h|0,7==(0|(h=0|r[(u=g?26704+((0|u)%5<<2)|0:26736+((0|u)%6<<2)|0)>>2]))&&M(27795,27797,248,27822),r[o>>2]=0,0|(u=0|O(A,t,h,o,i)))break;g=0|r[(p=i)>>2],p=0|r[p+4>>2];do{if(p>>>0<c>>>0|(0|p)==(0|c)&g>>>0<f>>>0){if(f=0|VA(g,p)?0|G(g,p,A,t):0|r[26800+(((0|r[o>>2])+(0|r[26768+(h<<2)>>2])|0)%6<<2)>>2],u=0|VA(g,p),(f+-1|0)>>>0>5){u=-1,f=g,c=p;break}if(1==(0|f)&(u=!!(0|u))){u=-1,f=g,c=p;break}do{if(!(0|Yt(g,p,w))){if(u){u=(5+(0|r[26352+(f<<2)>>2])-(0|r[w>>2])|0)%5|0;break}u=(6+(0|r[26384+(f<<2)>>2])-(0|r[w>>2])|0)%6|0;break}u=-1}while(0);f=g,c=p}else u=e}while(0);p=0|r[(h=l)>>2],h=0|r[h+4>>2]}if((0|f)==(0|p)&(0|c)==(0|h)){if(A=(g=!!(0|VA(p,h)))?0|G(p,h,A,t):0|r[26800+(((0|r[s>>2])+(0|r[26768+(v<<2)>>2])|0)%6<<2)>>2],u=0|VA(p,h),(A+-1|0)>>>0<=5&&!(1==(0|A)&(m=!!(0|u))))do{if(!(0|Yt(p,h,w))){if(m){u=(5+(0|r[26352+(A<<2)>>2])-(0|r[w>>2])|0)%5|0;break}u=(6+(0|r[26384+(A<<2)>>2])-(0|r[w>>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}t=c,A=f;break A}}while(0);return Q=a,0|(n=u)}}while(0);return m=0|fe(0|u,0,56),w=B()|-2130706433&t|536870912,r[n>>2]=m|A,r[n+4>>2]=w,Q=a,0|(n=0)}function Ut(A,t){A|=0;var e,n,i=0,o=0;return n=Q,Q=Q+16|0,e=n,!0&536870912==(2013265920&(t|=0))&&0|zA(A,i=-2130706433&t|134217728)?(o=0|ue(0|A,0|t,56),B(),i=(o=!(0|zt(A,i,7&o,e)))&((0|r[(i=e)>>2])==(0|A)?(0|r[i+4>>2])==(0|t):0)&1,Q=n,0|i):(Q=n,0|(i=0))}function jt(A,t,e){A|=0,e|=0;var n=0;(0|(t|=0))>0?(n=0|Ae(t,4),r[A>>2]=n,n||M(27835,27858,40,27872)):r[A>>2]=0,r[A+4>>2]=t,r[A+8>>2]=0,r[A+12>>2]=e}function Xt(A){var t,e,n,o=0,l=0,s=0,u=0;t=(A|=0)+4|0,e=A+12|0,n=A+8|0;A:for(;;){for(l=0|r[t>>2],o=0;;){if((0|o)>=(0|l))break A;if(s=0|r[A>>2],u=0|r[s+(o<<2)>>2])break;o=o+1|0}o=s+(~~(+a(+ +f(10,+ +(15-(0|r[e>>2])|0))*(+i[u>>3]+ +i[u+8>>3]))%+(0|l))>>>0<<2)|0,l=0|r[o>>2];t:do{if(0|l){if(s=u+32|0,(0|l)==(0|u))r[o>>2]=r[s>>2];else{if(!(o=0|r[(l=l+32|0)>>2]))break;for(;(0|o)!=(0|u);)if(!(o=0|r[(l=o+32|0)>>2]))break t;r[l>>2]=r[s>>2]}$t(u),r[n>>2]=(0|r[n>>2])-1}}while(0)}$t(0|r[A>>2])}function Vt(A){var t,e=0,n=0;for(t=0|r[(A|=0)+4>>2],n=0;;){if((0|n)>=(0|t)){e=0,n=4;break}if(e=0|r[(0|r[A>>2])+(n<<2)>>2]){n=4;break}n=n+1|0}return 4==(0|n)?0|e:0}function Ht(A,t){t|=0;var e=0,n=0,o=0,l=0;if(e=~~(+a(+ +f(10,+ +(15-(0|r[(A|=0)+12>>2])|0))*(+i[t>>3]+ +i[t+8>>3]))%+(0|r[A+4>>2]))>>>0,e=(0|r[A>>2])+(e<<2)|0,!(n=0|r[e>>2]))return 0|(l=1);l=t+32|0;do{if((0|n)!=(0|t)){if(!(e=0|r[n+32>>2]))return 0|(l=1);for(o=e;;){if((0|o)==(0|t)){o=8;break}if(!(e=0|r[o+32>>2])){e=1,o=10;break}n=o,o=e}if(8==(0|o)){r[n+32>>2]=r[l>>2];break}if(10==(0|o))return 0|e}else r[e>>2]=r[l>>2]}while(0);return $t(t),r[(l=A+8|0)>>2]=(0|r[l>>2])-1,0|(l=0)}function qt(A,t,e){A|=0,t|=0,e|=0;var n,o=0,l=0,s=0;(n=0|Kt(40))||M(27888,27858,98,27901),r[n>>2]=r[t>>2],r[n+4>>2]=r[t+4>>2],r[n+8>>2]=r[t+8>>2],r[n+12>>2]=r[t+12>>2],r[(l=n+16|0)>>2]=r[e>>2],r[l+4>>2]=r[e+4>>2],r[l+8>>2]=r[e+8>>2],r[l+12>>2]=r[e+12>>2],r[n+32>>2]=0,l=~~(+a(+ +f(10,+ +(15-(0|r[A+12>>2])|0))*(+i[t>>3]+ +i[t+8>>3]))%+(0|r[A+4>>2]))>>>0,l=(0|r[A>>2])+(l<<2)|0,o=0|r[l>>2];do{if(o){for(;!(0|ft(o,t)&&0|ft(o+16|0,e));)if(l=0|r[o+32>>2],!(0|r[(o=0|l?l:o)+32>>2])){s=10;break}if(10==(0|s)){r[o+32>>2]=n;break}return $t(n),0|(s=o)}r[l>>2]=n}while(0);return r[(s=A+8|0)>>2]=1+(0|r[s>>2]),0|(s=n)}function Wt(A,t,e){t|=0,e|=0;var n=0,o=0;if(o=~~(+a(+ +f(10,+ +(15-(0|r[(A|=0)+12>>2])|0))*(+i[t>>3]+ +i[t+8>>3]))%+(0|r[A+4>>2]))>>>0,!(o=0|r[(0|r[A>>2])+(o<<2)>>2]))return 0|(e=0);if(!e){for(A=o;;){if(0|ft(A,t)){n=10;break}if(!(A=0|r[A+32>>2])){A=0,n=10;break}}if(10==(0|n))return 0|A}for(A=o;;){if(0|ft(A,t)&&0|ft(A+16|0,e)){n=10;break}if(!(A=0|r[A+32>>2])){A=0,n=10;break}}return 10==(0|n)?0|A:0}function Zt(A,t){t|=0;var e=0;if(e=~~(+a(+ +f(10,+ +(15-(0|r[(A|=0)+12>>2])|0))*(+i[t>>3]+ +i[t+8>>3]))%+(0|r[A+4>>2]))>>>0,!(A=0|r[(0|r[A>>2])+(e<<2)>>2]))return 0|(e=0);for(;;){if(0|ft(A,t)){t=5;break}if(!(A=0|r[A+32>>2])){A=0,t=5;break}}return 5==(0|t)?0|A:0}function Jt(A){return 0|+ve(+(A=+A))}function Kt(A){A|=0;var t,e=0,n=0,i=0,o=0,l=0,s=0,a=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0,b=0,E=0;t=Q,Q=Q+16|0,g=t;do{if(A>>>0<245){if(A=(f=A>>>0<11?16:A+11&-8)>>>3,3&(n=(h=0|r[6981])>>>A))return i=0|r[(n=(A=27964+((e=(1&n^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(l=0|r[(o=i+8|0)>>2]))==(0|A)?r[6981]=h&~(1<<e):(r[l+12>>2]=A,r[n>>2]=l),E=e<<3,r[i+4>>2]=3|E,r[(E=i+E+4|0)>>2]=1|r[E>>2],Q=t,0|(E=o);if(f>>>0>(c=0|r[6983])>>>0){if(0|n)return e=((e=n<<A&((e=2<<A)|0-e))&0-e)-1|0,l=0|r[(A=(e=27964+((i=((n=(e>>>=a=e>>>12&16)>>>5&8)|a|(l=(e>>>=n)>>>2&4)|(A=(e>>>=l)>>>1&2)|(i=(e>>>=A)>>>1&1))+(e>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(n=0|r[(a=l+8|0)>>2]))==(0|e)?(A=h&~(1<<i),r[6981]=A):(r[n+12>>2]=e,r[A>>2]=n,A=h),s=(E=i<<3)-f|0,r[l+4>>2]=3|f,r[(o=l+f|0)+4>>2]=1|s,r[l+E>>2]=s,0|c&&(i=0|r[6986],n=27964+((e=c>>>3)<<1<<2)|0,A&(e=1<<e)?e=0|r[(A=n+8|0)>>2]:(r[6981]=A|e,e=n,A=n+8|0),r[A>>2]=i,r[e+12>>2]=i,r[i+8>>2]=e,r[i+12>>2]=n),r[6983]=s,r[6986]=o,Q=t,0|(E=a);if(l=0|r[6982]){for(n=(l&0-l)-1|0,n=u=0|r[28228+(((i=(n>>>=o=n>>>12&16)>>>5&8)|o|(s=(n>>>=i)>>>2&4)|(a=(n>>>=s)>>>1&2)|(u=(n>>>=a)>>>1&1))+(n>>>u)<<2)>>2],a=u,u=(-8&r[u+4>>2])-f|0;(A=0|r[n+16>>2])||(A=0|r[n+20>>2]);)n=A,a=(o=(s=(-8&r[A+4>>2])-f|0)>>>0<u>>>0)?A:a,u=o?s:u;if((s=a+f|0)>>>0>a>>>0){o=0|r[a+24>>2],e=0|r[a+12>>2];do{if((0|e)==(0|a)){if(!(e=0|r[(A=a+20|0)>>2])&&!(e=0|r[(A=a+16|0)>>2])){n=0;break}for(;;)if(n=0|r[(i=e+20|0)>>2])e=n,A=i;else{if(!(n=0|r[(i=e+16|0)>>2]))break;e=n,A=i}r[A>>2]=0,n=e}else n=0|r[a+8>>2],r[n+12>>2]=e,r[e+8>>2]=n,n=e}while(0);do{if(0|o){if(e=0|r[a+28>>2],(0|a)==(0|r[(A=28228+(e<<2)|0)>>2])){if(r[A>>2]=n,!n){r[6982]=l&~(1<<e);break}}else if(r[((0|r[(E=o+16|0)>>2])==(0|a)?E:o+20)>>2]=n,!n)break;r[n+24>>2]=o,0|(e=0|r[a+16>>2])&&(r[n+16>>2]=e,r[e+24>>2]=n),0|(e=0|r[a+20>>2])&&(r[n+20>>2]=e,r[e+24>>2]=n)}}while(0);return u>>>0<16?(E=u+f|0,r[a+4>>2]=3|E,r[(E=a+E+4|0)>>2]=1|r[E>>2]):(r[a+4>>2]=3|f,r[s+4>>2]=1|u,r[s+u>>2]=u,0|c&&(i=0|r[6986],n=27964+((e=c>>>3)<<1<<2)|0,(e=1<<e)&h?e=0|r[(A=n+8|0)>>2]:(r[6981]=e|h,e=n,A=n+8|0),r[A>>2]=i,r[e+12>>2]=i,r[i+8>>2]=e,r[i+12>>2]=n),r[6983]=u,r[6986]=s),Q=t,0|(E=a+8|0)}h=f}else h=f}else h=f}else if(A>>>0<=4294967231)if(f=-8&(A=A+11|0),i=0|r[6982]){o=0-f|0,u=(A>>>=8)?f>>>0>16777215?31:f>>>((u=14-((a=((y=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(u=((y<<=a)+245760|0)>>>16&2))+(y<<u>>>15)|0)+7|0)&1|u<<1:0,n=0|r[28228+(u<<2)>>2];A:do{if(n)for(A=0,a=f<<(31==(0|u)?0:25-(u>>>1)|0),l=0;;){if((s=(-8&r[n+4>>2])-f|0)>>>0<o>>>0){if(!s){A=n,o=0,y=65;break A}A=n,o=s}if(l=!(0|(y=0|r[n+20>>2]))|(0|y)==(0|(n=0|r[n+16+(a>>>31<<2)>>2]))?l:y,!n){n=l,y=61;break}a<<=1}else n=0,A=0,y=61}while(0);if(61==(0|y)){if(!(0|n)&!(0|A)){if(!(A=((A=2<<u)|0-A)&i)){h=f;break}h=(A&0-A)-1|0,A=0,n=0|r[28228+(((l=(h>>>=s=h>>>12&16)>>>5&8)|s|(a=(h>>>=l)>>>2&4)|(u=(h>>>=a)>>>1&2)|(n=(h>>>=u)>>>1&1))+(h>>>n)<<2)>>2]}n?y=65:(a=A,s=o)}if(65==(0|y))for(l=n;;){if(o=(n=(h=(-8&r[l+4>>2])-f|0)>>>0<o>>>0)?h:o,A=n?l:A,(n=0|r[l+16>>2])||(n=0|r[l+20>>2]),!n){a=A,s=o;break}l=n}if(0|a&&s>>>0<((0|r[6983])-f|0)>>>0&&(c=a+f|0)>>>0>a>>>0){l=0|r[a+24>>2],e=0|r[a+12>>2];do{if((0|e)==(0|a)){if(!(e=0|r[(A=a+20|0)>>2])&&!(e=0|r[(A=a+16|0)>>2])){e=0;break}for(;;)if(n=0|r[(o=e+20|0)>>2])e=n,A=o;else{if(!(n=0|r[(o=e+16|0)>>2]))break;e=n,A=o}r[A>>2]=0}else E=0|r[a+8>>2],r[E+12>>2]=e,r[e+8>>2]=E}while(0);do{if(l){if(A=0|r[a+28>>2],(0|a)==(0|r[(n=28228+(A<<2)|0)>>2])){if(r[n>>2]=e,!e){i&=~(1<<A),r[6982]=i;break}}else if(r[((0|r[(E=l+16|0)>>2])==(0|a)?E:l+20)>>2]=e,!e)break;r[e+24>>2]=l,0|(A=0|r[a+16>>2])&&(r[e+16>>2]=A,r[A+24>>2]=e),(A=0|r[a+20>>2])&&(r[e+20>>2]=A,r[A+24>>2]=e)}}while(0);A:do{if(s>>>0<16)E=s+f|0,r[a+4>>2]=3|E,r[(E=a+E+4|0)>>2]=1|r[E>>2];else{if(r[a+4>>2]=3|f,r[c+4>>2]=1|s,r[c+s>>2]=s,e=s>>>3,s>>>0<256){n=27964+(e<<1<<2)|0,(A=0|r[6981])&(e=1<<e)?e=0|r[(A=n+8|0)>>2]:(r[6981]=A|e,e=n,A=n+8|0),r[A>>2]=c,r[e+12>>2]=c,r[c+8>>2]=e,r[c+12>>2]=n;break}if(e=28228+((n=(e=s>>>8)?s>>>0>16777215?31:s>>>((n=14-((w=((E=e<<(b=(e+1048320|0)>>>16&8))+520192|0)>>>16&4)|b|(n=((E<<=w)+245760|0)>>>16&2))+(E<<n>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,r[c+28>>2]=n,r[(A=c+16|0)+4>>2]=0,r[A>>2]=0,!(i&(A=1<<n))){r[6982]=i|A,r[e>>2]=c,r[c+24>>2]=e,r[c+12>>2]=c,r[c+8>>2]=c;break}e=0|r[e>>2];t:do{if((-8&r[e+4>>2])!=(0|s)){for(i=s<<(31==(0|n)?0:25-(n>>>1)|0);A=0|r[(n=e+16+(i>>>31<<2)|0)>>2];){if((-8&r[A+4>>2])==(0|s)){e=A;break t}i<<=1,e=A}r[n>>2]=c,r[c+24>>2]=e,r[c+12>>2]=c,r[c+8>>2]=c;break A}}while(0);E=0|r[(b=e+8|0)>>2],r[E+12>>2]=c,r[b>>2]=c,r[c+8>>2]=E,r[c+12>>2]=e,r[c+24>>2]=0}}while(0);return Q=t,0|(E=a+8|0)}h=f}else h=f;else h=-1}while(0);if((n=0|r[6983])>>>0>=h>>>0)return e=n-h|0,A=0|r[6986],e>>>0>15?(E=A+h|0,r[6986]=E,r[6983]=e,r[E+4>>2]=1|e,r[A+n>>2]=e,r[A+4>>2]=3|h):(r[6983]=0,r[6986]=0,r[A+4>>2]=3|n,r[(E=A+n+4|0)>>2]=1|r[E>>2]),Q=t,0|(E=A+8|0);if((s=0|r[6984])>>>0>h>>>0)return w=s-h|0,r[6984]=w,b=(E=0|r[6987])+h|0,r[6987]=b,r[b+4>>2]=1|w,r[E+4>>2]=3|h,Q=t,0|(E=E+8|0);if(0|r[7099]?A=0|r[7101]:(r[7101]=4096,r[7100]=4096,r[7102]=-1,r[7103]=-1,r[7104]=0,r[7092]=0,r[7099]=-16&g^1431655768,A=4096),a=h+48|0,(f=(l=A+(u=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return Q=t,0|(E=0);if(0|(A=0|r[7091])&&(g=(c=0|r[7089])+f|0)>>>0<=c>>>0|g>>>0>A>>>0)return Q=t,0|(E=0);A:do{if(4&r[7092])e=0,y=143;else{n=0|r[6987];t:do{if(n){for(i=28372;!((g=0|r[i>>2])>>>0<=n>>>0&&(g+(0|r[i+4>>2])|0)>>>0>n>>>0);){if(!(A=0|r[i+8>>2])){y=128;break t}i=A}if((e=l-s&o)>>>0<2147483647)if((0|(A=0|me(0|e)))==((0|r[i>>2])+(0|r[i+4>>2])|0)){if(-1!=(0|A)){s=e,l=A,y=145;break A}}else i=A,y=136;else e=0}else y=128}while(0);do{if(128==(0|y))if(-1!=(0|(n=0|me(0)))&&(e=n,d=(e=((d=(p=0|r[7100])+-1|0)&e|0?(d+e&0-p)-e|0:0)+f|0)+(p=0|r[7089])|0,e>>>0>h>>>0&e>>>0<2147483647)){if(0|(g=0|r[7091])&&d>>>0<=p>>>0|d>>>0>g>>>0){e=0;break}if((0|(A=0|me(0|e)))==(0|n)){s=e,l=n,y=145;break A}i=A,y=136}else e=0}while(0);do{if(136==(0|y)){if(n=0-e|0,!(a>>>0>e>>>0&e>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){e=0;break}s=e,l=i,y=145;break A}if((A=u-e+(A=0|r[7101])&0-A)>>>0>=2147483647){s=e,l=i,y=145;break A}if(-1==(0|me(0|A))){me(0|n),e=0;break}s=A+e|0,l=i,y=145;break A}}while(0);r[7092]=4|r[7092],y=143}}while(0);if(143==(0|y)&&f>>>0<2147483647&&!(-1==(0|(w=0|me(0|f)))|1^(m=(v=(d=0|me(0))-w|0)>>>0>(h+40|0)>>>0)|w>>>0<d>>>0&-1!=(0|w)&-1!=(0|d)^1)&&(s=m?v:e,l=w,y=145),145==(0|y)){e=(0|r[7089])+s|0,r[7089]=e,e>>>0>(0|r[7090])>>>0&&(r[7090]=e),u=0|r[6987];A:do{if(u){for(e=28372;;){if((0|l)==((A=0|r[e>>2])+(n=0|r[e+4>>2])|0)){y=154;break}if(!(i=0|r[e+8>>2]))break;e=i}if(!(154!=(0|y)||(b=e+4|0,8&r[e+12>>2]))&&l>>>0>u>>>0&A>>>0<=u>>>0){r[b>>2]=n+s,b=u+(w=7&(w=u+8|0)?0-w&7:0)|0,w=(E=(0|r[6984])+s|0)-w|0,r[6987]=b,r[6984]=w,r[b+4>>2]=1|w,r[u+E+4>>2]=40,r[6988]=r[7103];break}for(l>>>0<(0|r[6985])>>>0&&(r[6985]=l),n=l+s|0,e=28372;;){if((0|r[e>>2])==(0|n)){y=162;break}if(!(A=0|r[e+8>>2]))break;e=A}if(162==(0|y)&&!(8&r[e+12>>2])){r[e>>2]=l,r[(c=e+4|0)>>2]=(0|r[c>>2])+s,f=(c=l+(7&(c=l+8|0)?0-c&7:0)|0)+h|0,a=(e=n+(7&(e=n+8|0)?0-e&7:0)|0)-c-h|0,r[c+4>>2]=3|h;t:do{if((0|u)==(0|e))E=(0|r[6984])+a|0,r[6984]=E,r[6987]=f,r[f+4>>2]=1|E;else{if((0|r[6986])==(0|e)){E=(0|r[6983])+a|0,r[6983]=E,r[6986]=f,r[f+4>>2]=1|E,r[f+E>>2]=E;break}if(1==(3&(A=0|r[e+4>>2]))){s=-8&A,i=A>>>3;e:do{if(A>>>0<256){if(A=0|r[e+8>>2],(0|(n=0|r[e+12>>2]))==(0|A)){r[6981]=r[6981]&~(1<<i);break}r[A+12>>2]=n,r[n+8>>2]=A;break}l=0|r[e+24>>2],A=0|r[e+12>>2];do{if((0|A)==(0|e)){if(A=0|r[(i=(n=e+16|0)+4|0)>>2])n=i;else if(!(A=0|r[n>>2])){A=0;break}for(;;)if(i=0|r[(o=A+20|0)>>2])A=i,n=o;else{if(!(i=0|r[(o=A+16|0)>>2]))break;A=i,n=o}r[n>>2]=0}else E=0|r[e+8>>2],r[E+12>>2]=A,r[A+8>>2]=E}while(0);if(!l)break;i=28228+((n=0|r[e+28>>2])<<2)|0;do{if((0|r[i>>2])==(0|e)){if(r[i>>2]=A,0|A)break;r[6982]=r[6982]&~(1<<n);break e}if(r[((0|r[(E=l+16|0)>>2])==(0|e)?E:l+20)>>2]=A,!A)break e}while(0);if(r[A+24>>2]=l,0|(i=0|r[(n=e+16|0)>>2])&&(r[A+16>>2]=i,r[i+24>>2]=A),!(n=0|r[n+4>>2]))break;r[A+20>>2]=n,r[n+24>>2]=A}while(0);e=e+s|0,o=s+a|0}else o=a;if(r[(e=e+4|0)>>2]=-2&r[e>>2],r[f+4>>2]=1|o,r[f+o>>2]=o,e=o>>>3,o>>>0<256){n=27964+(e<<1<<2)|0,(A=0|r[6981])&(e=1<<e)?e=0|r[(A=n+8|0)>>2]:(r[6981]=A|e,e=n,A=n+8|0),r[A>>2]=f,r[e+12>>2]=f,r[f+8>>2]=e,r[f+12>>2]=n;break}e=o>>>8;do{if(e){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((w=((E=e<<(b=(e+1048320|0)>>>16&8))+520192|0)>>>16&4)|b|(i=((E<<=w)+245760|0)>>>16&2))+(E<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(e=28228+(i<<2)|0,r[f+28>>2]=i,r[(A=f+16|0)+4>>2]=0,r[A>>2]=0,!((A=0|r[6982])&(n=1<<i))){r[6982]=A|n,r[e>>2]=f,r[f+24>>2]=e,r[f+12>>2]=f,r[f+8>>2]=f;break}e=0|r[e>>2];e:do{if((-8&r[e+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);A=0|r[(n=e+16+(i>>>31<<2)|0)>>2];){if((-8&r[A+4>>2])==(0|o)){e=A;break e}i<<=1,e=A}r[n>>2]=f,r[f+24>>2]=e,r[f+12>>2]=f,r[f+8>>2]=f;break t}}while(0);E=0|r[(b=e+8|0)>>2],r[E+12>>2]=f,r[b>>2]=f,r[f+8>>2]=E,r[f+12>>2]=e,r[f+24>>2]=0}}while(0);return Q=t,0|(E=c+8|0)}for(e=28372;!((A=0|r[e>>2])>>>0<=u>>>0&&(E=A+(0|r[e+4>>2])|0)>>>0>u>>>0);)e=0|r[e+8>>2];e=(A=(A=(o=E+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=u+16|0)>>>0?u:A)+8|0,b=l+(w=7&(w=l+8|0)?0-w&7:0)|0,w=(n=s+-40|0)-w|0,r[6987]=b,r[6984]=w,r[b+4>>2]=1|w,r[l+n+4>>2]=40,r[6988]=r[7103],r[(n=A+4|0)>>2]=27,r[e>>2]=r[7093],r[e+4>>2]=r[7094],r[e+8>>2]=r[7095],r[e+12>>2]=r[7096],r[7093]=l,r[7094]=s,r[7096]=0,r[7095]=e,e=A+24|0;do{b=e,r[(e=e+4|0)>>2]=7}while((b+8|0)>>>0<E>>>0);if((0|A)!=(0|u)){if(l=A-u|0,r[n>>2]=-2&r[n>>2],r[u+4>>2]=1|l,r[A>>2]=l,e=l>>>3,l>>>0<256){n=27964+(e<<1<<2)|0,(A=0|r[6981])&(e=1<<e)?e=0|r[(A=n+8|0)>>2]:(r[6981]=A|e,e=n,A=n+8|0),r[A>>2]=u,r[e+12>>2]=u,r[u+8>>2]=e,r[u+12>>2]=n;break}if(n=28228+((i=(e=l>>>8)?l>>>0>16777215?31:l>>>((i=14-((w=((E=e<<(b=(e+1048320|0)>>>16&8))+520192|0)>>>16&4)|b|(i=((E<<=w)+245760|0)>>>16&2))+(E<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,r[u+28>>2]=i,r[u+20>>2]=0,r[o>>2]=0,!((e=0|r[6982])&(A=1<<i))){r[6982]=e|A,r[n>>2]=u,r[u+24>>2]=n,r[u+12>>2]=u,r[u+8>>2]=u;break}e=0|r[n>>2];t:do{if((-8&r[e+4>>2])!=(0|l)){for(i=l<<(31==(0|i)?0:25-(i>>>1)|0);A=0|r[(n=e+16+(i>>>31<<2)|0)>>2];){if((-8&r[A+4>>2])==(0|l)){e=A;break t}i<<=1,e=A}r[n>>2]=u,r[u+24>>2]=e,r[u+12>>2]=u,r[u+8>>2]=u;break A}}while(0);E=0|r[(b=e+8|0)>>2],r[E+12>>2]=u,r[b>>2]=u,r[u+8>>2]=E,r[u+12>>2]=e,r[u+24>>2]=0}}else!(0|(E=0|r[6985]))|l>>>0<E>>>0&&(r[6985]=l),r[7093]=l,r[7094]=s,r[7096]=0,r[6990]=r[7099],r[6989]=-1,r[6994]=27964,r[6993]=27964,r[6996]=27972,r[6995]=27972,r[6998]=27980,r[6997]=27980,r[7e3]=27988,r[6999]=27988,r[7002]=27996,r[7001]=27996,r[7004]=28004,r[7003]=28004,r[7006]=28012,r[7005]=28012,r[7008]=28020,r[7007]=28020,r[7010]=28028,r[7009]=28028,r[7012]=28036,r[7011]=28036,r[7014]=28044,r[7013]=28044,r[7016]=28052,r[7015]=28052,r[7018]=28060,r[7017]=28060,r[7020]=28068,r[7019]=28068,r[7022]=28076,r[7021]=28076,r[7024]=28084,r[7023]=28084,r[7026]=28092,r[7025]=28092,r[7028]=28100,r[7027]=28100,r[7030]=28108,r[7029]=28108,r[7032]=28116,r[7031]=28116,r[7034]=28124,r[7033]=28124,r[7036]=28132,r[7035]=28132,r[7038]=28140,r[7037]=28140,r[7040]=28148,r[7039]=28148,r[7042]=28156,r[7041]=28156,r[7044]=28164,r[7043]=28164,r[7046]=28172,r[7045]=28172,r[7048]=28180,r[7047]=28180,r[7050]=28188,r[7049]=28188,r[7052]=28196,r[7051]=28196,r[7054]=28204,r[7053]=28204,r[7056]=28212,r[7055]=28212,b=l+(w=7&(w=l+8|0)?0-w&7:0)|0,w=(E=s+-40|0)-w|0,r[6987]=b,r[6984]=w,r[b+4>>2]=1|w,r[l+E+4>>2]=40,r[6988]=r[7103]}while(0);if((e=0|r[6984])>>>0>h>>>0)return w=e-h|0,r[6984]=w,b=(E=0|r[6987])+h|0,r[6987]=b,r[b+4>>2]=1|w,r[E+4>>2]=3|h,Q=t,0|(E=E+8|0)}return r[(E=27920)>>2]=12,Q=t,0|(E=0)}function $t(A){var t=0,e=0,n=0,i=0,o=0,l=0,s=0,a=0;if(A|=0){e=A+-8|0,i=0|r[6985],a=e+(t=-8&(A=0|r[A+-4>>2]))|0;do{if(1&A)s=e,l=e;else{if(n=0|r[e>>2],!(3&A))return;if(o=n+t|0,(l=e+(0-n)|0)>>>0<i>>>0)return;if((0|r[6986])==(0|l)){if(3&~(t=0|r[(A=a+4|0)>>2])){s=l,t=o;break}return r[6983]=o,r[A>>2]=-2&t,r[l+4>>2]=1|o,void(r[l+o>>2]=o)}if(e=n>>>3,n>>>0<256){if(A=0|r[l+8>>2],(0|(t=0|r[l+12>>2]))==(0|A)){r[6981]=r[6981]&~(1<<e),s=l,t=o;break}r[A+12>>2]=t,r[t+8>>2]=A,s=l,t=o;break}i=0|r[l+24>>2],A=0|r[l+12>>2];do{if((0|A)==(0|l)){if(A=0|r[(e=(t=l+16|0)+4|0)>>2])t=e;else if(!(A=0|r[t>>2])){A=0;break}for(;;)if(e=0|r[(n=A+20|0)>>2])A=e,t=n;else{if(!(e=0|r[(n=A+16|0)>>2]))break;A=e,t=n}r[t>>2]=0}else s=0|r[l+8>>2],r[s+12>>2]=A,r[A+8>>2]=s}while(0);if(i){if(t=0|r[l+28>>2],(0|r[(e=28228+(t<<2)|0)>>2])==(0|l)){if(r[e>>2]=A,!A){r[6982]=r[6982]&~(1<<t),s=l,t=o;break}}else if(r[((0|r[(s=i+16|0)>>2])==(0|l)?s:i+20)>>2]=A,!A){s=l,t=o;break}r[A+24>>2]=i,0|(e=0|r[(t=l+16|0)>>2])&&(r[A+16>>2]=e,r[e+24>>2]=A),(t=0|r[t+4>>2])?(r[A+20>>2]=t,r[t+24>>2]=A,s=l,t=o):(s=l,t=o)}else s=l,t=o}}while(0);if(!(l>>>0>=a>>>0)&&1&(n=0|r[(A=a+4|0)>>2])){if(2&n)r[A>>2]=-2&n,r[s+4>>2]=1|t,r[l+t>>2]=t,i=t;else{if((0|r[6987])==(0|a)){if(a=(0|r[6984])+t|0,r[6984]=a,r[6987]=s,r[s+4>>2]=1|a,(0|s)!=(0|r[6986]))return;return r[6986]=0,void(r[6983]=0)}if((0|r[6986])==(0|a))return a=(0|r[6983])+t|0,r[6983]=a,r[6986]=l,r[s+4>>2]=1|a,void(r[l+a>>2]=a);i=(-8&n)+t|0,e=n>>>3;do{if(n>>>0<256){if(t=0|r[a+8>>2],(0|(A=0|r[a+12>>2]))==(0|t)){r[6981]=r[6981]&~(1<<e);break}r[t+12>>2]=A,r[A+8>>2]=t;break}o=0|r[a+24>>2],A=0|r[a+12>>2];do{if((0|A)==(0|a)){if(A=0|r[(e=(t=a+16|0)+4|0)>>2])t=e;else if(!(A=0|r[t>>2])){e=0;break}for(;;)if(e=0|r[(n=A+20|0)>>2])A=e,t=n;else{if(!(e=0|r[(n=A+16|0)>>2]))break;A=e,t=n}r[t>>2]=0,e=A}else e=0|r[a+8>>2],r[e+12>>2]=A,r[A+8>>2]=e,e=A}while(0);if(0|o){if(A=0|r[a+28>>2],(0|r[(t=28228+(A<<2)|0)>>2])==(0|a)){if(r[t>>2]=e,!e){r[6982]=r[6982]&~(1<<A);break}}else if(r[((0|r[(n=o+16|0)>>2])==(0|a)?n:o+20)>>2]=e,!e)break;r[e+24>>2]=o,0|(t=0|r[(A=a+16|0)>>2])&&(r[e+16>>2]=t,r[t+24>>2]=e),0|(A=0|r[A+4>>2])&&(r[e+20>>2]=A,r[A+24>>2]=e)}}while(0);if(r[s+4>>2]=1|i,r[l+i>>2]=i,(0|s)==(0|r[6986]))return void(r[6983]=i)}if(A=i>>>3,i>>>0<256)return e=27964+(A<<1<<2)|0,(t=0|r[6981])&(A=1<<A)?A=0|r[(t=e+8|0)>>2]:(r[6981]=t|A,A=e,t=e+8|0),r[t>>2]=s,r[A+12>>2]=s,r[s+8>>2]=A,void(r[s+12>>2]=e);A=28228+((n=(A=i>>>8)?i>>>0>16777215?31:i>>>((n=14-((o=((a=A<<(l=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|l|(n=((a<<=o)+245760|0)>>>16&2))+(a<<n>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,r[s+28>>2]=n,r[s+20>>2]=0,r[s+16>>2]=0,t=0|r[6982],e=1<<n;A:do{if(t&e){A=0|r[A>>2];t:do{if((-8&r[A+4>>2])!=(0|i)){for(n=i<<(31==(0|n)?0:25-(n>>>1)|0);t=0|r[(e=A+16+(n>>>31<<2)|0)>>2];){if((-8&r[t+4>>2])==(0|i)){A=t;break t}n<<=1,A=t}r[e>>2]=s,r[s+24>>2]=A,r[s+12>>2]=s,r[s+8>>2]=s;break A}}while(0);a=0|r[(l=A+8|0)>>2],r[a+12>>2]=s,r[l>>2]=s,r[s+8>>2]=a,r[s+12>>2]=A,r[s+24>>2]=0}else r[6982]=t|e,r[A>>2]=s,r[s+24>>2]=A,r[s+12>>2]=s,r[s+8>>2]=s}while(0);if(a=(0|r[6989])-1|0,r[6989]=a,!(0|a)){for(A=28380;A=0|r[A>>2];)A=A+8|0;r[6989]=-1}}}}function Ae(A,t){t|=0;var e=0;return(A|=0)?(e=0|w(t,A),(t|A)>>>0>65535&&(e=((e>>>0)/(A>>>0)|0)==(0|t)?e:-1)):e=0,(A=0|Kt(e))&&3&r[A+-4>>2]?(ye(0|A,0,0|e),0|A):0|A}function te(A,t,e,n){return 0|(x((t|=0)+(n|=0)+((e=(A|=0)+(e|=0)>>>0)>>>0<A>>>0|0)>>>0|0),e)}function ee(A,t,e,n){return 0|(x(0|(n=(t|=0)-(n|=0)-((e|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-e>>>0)}function ne(A){return 0|((A|=0)?31-(0|_(A^A-1)):32)}function re(A,t,e,n,i){i|=0;var o=0,l=0,s=0,a=0,u=0,f=0,c=0,h=0,g=0,p=0;if(f=A|=0,l=e|=0,s=h=n|=0,!(u=a=t|=0))return o=!!(0|i),s?o?(r[i>>2]=0|A,r[i+4>>2]=0&t,i=0,0|(x(0|(h=0)),i)):(i=0,0|(x(0|(h=0)),i)):(o&&(r[i>>2]=(f>>>0)%(l>>>0),r[i+4>>2]=0),i=(f>>>0)/(l>>>0)>>>0,0|(x(0|(h=0)),i));o=!(0|s);do{if(l){if(!o){if((o=(0|_(0|s))-(0|_(0|u))|0)>>>0<=31){l=c=o+1|0,A=f>>>(c>>>0)&(t=o-31>>31)|u<<(s=31-o|0),t&=u>>>(c>>>0),o=0,s=f<<s;break}return i?(r[i>>2]=0|A,r[i+4>>2]=a|0&t,i=0,0|(x(0|(h=0)),i)):(i=0,0|(x(0|(h=0)),i))}if((o=l-1|0)&l|0){l=s=33+(0|_(0|l))-(0|_(0|u))|0,A=(c=32-s|0)-1>>31&u>>>((g=s-32|0)>>>0)|(u<<c|f>>>(s>>>0))&(t=g>>31),t&=u>>>(s>>>0),o=f<<(p=64-s|0)&(a=c>>31),s=(u<<p|f>>>(g>>>0))&a|f<<c&s-33>>31;break}return 0|i&&(r[i>>2]=o&f,r[i+4>>2]=0),1==(0|l)?(p=0|A,0|(x(0|(g=a|0&t)),p)):(g=u>>>((p=0|ne(0|l))>>>0)|0,p=u<<32-p|f>>>(p>>>0),0|(x(0|g),p))}if(o)return 0|i&&(r[i>>2]=(u>>>0)%(l>>>0),r[i+4>>2]=0),p=(u>>>0)/(l>>>0)>>>0,0|(x(0|(g=0)),p);if(!f)return 0|i&&(r[i>>2]=0,r[i+4>>2]=(u>>>0)%(s>>>0)),p=(u>>>0)/(s>>>0)>>>0,0|(x(0|(g=0)),p);if(!((o=s-1|0)&s))return 0|i&&(r[i>>2]=0|A,r[i+4>>2]=o&u|0&t),g=0,p=u>>>((0|ne(0|s))>>>0),0|(x(0|g),p);if((o=(0|_(0|s))-(0|_(0|u))|0)>>>0<=30){l=t=o+1|0,A=u<<(s=31-o|0)|f>>>(t>>>0),t=u>>>(t>>>0),o=0,s=f<<s;break}return i?(r[i>>2]=0|A,r[i+4>>2]=a|0&t,p=0,0|(x(0|(g=0)),p)):(p=0,0|(x(0|(g=0)),p))}while(0);if(l){u=0|te(0|(c=0|e),0|(f=h|0&n),-1,-1),e=0|B(),a=s,s=0;do{n=a,a=o>>>31|a<<1,o=s|o<<1,ee(0|u,0|e,0|(n=A<<1|n>>>31),0|(h=A>>>31|t<<1)),s=1&(g=(p=0|B())>>31|((0|p)<0?-1:0)<<1),A=0|ee(0|n,0|h,g&c|0,(((0|p)<0?-1:0)>>31|((0|p)<0?-1:0)<<1)&f),t=0|B(),l=l-1|0}while(0|l);u=a,a=0}else u=s,a=0,s=0;return l=0,0|i&&(r[i>>2]=A,r[i+4>>2]=t),p=o<<1&-2|s,0|(x(0|(g=(0|o)>>>31|(u|l)<<1|a)),p)}function ie(A,t,e,n){e|=0;var r,i,o,l,s;return i=(n|=0)>>31|((0|n)<0?-1:0)<<1,r=((0|n)<0?-1:0)>>31|((0|n)<0?-1:0)<<1,o=0|ee((s=(t|=0)>>31|((0|t)<0?-1:0)<<1)^(A|=0)|0,(l=((0|t)<0?-1:0)>>31|((0|t)<0?-1:0)<<1)^t|0,0|s,0|l),A=i^s,t=r^l,0|ee((0|re(o,0|B(),0|ee(i^e|0,r^n|0,0|i,0|r),0|B(),0))^A,(0|B())^t,0|A,0|t)}function oe(A,t,e,n){t|=0,n|=0;var r,i;return e=0|function(A,t){var e,n,r,i=0;return A=((e=0|w(i=65535&(t|=0),r=65535&(A|=0)))>>>16)+(0|w(i,n=A>>>16))|0,t=0|w(i=t>>>16,r),0|(x((A>>>16)+(0|w(i,n))+(((65535&A)+t|0)>>>16)|0),A+t<<16|65535&e)}(r=A|=0,i=e|=0),A=0|B(),0|(x((0|w(t,i))+(0|w(n,r))+A|0&A),e)}function le(A,t,e,n){e|=0;var i,o,l,s,a,u;return i=Q,Q=Q+16|0,s=0|i,u=(n|=0)>>31|((0|n)<0?-1:0)<<1,a=((0|n)<0?-1:0)>>31|((0|n)<0?-1:0)<<1,re(A=0|ee((l=(t|=0)>>31|((0|t)<0?-1:0)<<1)^(A|=0)|0,(o=((0|t)<0?-1:0)>>31|((0|t)<0?-1:0)<<1)^t|0,0|l,0|o),t=0|B(),0|ee(u^e|0,a^n|0,0|u,0|a),0|B(),s),n=0|ee(r[s>>2]^l|0,r[s+4>>2]^o|0,0|l,0|o),e=0|B(),Q=i,0|(x(0|e),n)}function se(A,t,e,n){var i,o;return o=Q,Q=Q+16|0,re(A|=0,t|=0,e|=0,n|=0,i=0|o),Q=o,0|(x(0|r[i+4>>2]),r[i>>2])}function ae(A,t,e){return A|=0,t|=0,(0|(e|=0))<32?(x(t>>e|0),A>>>e|(t&(1<<e)-1)<<32-e):(x(0|((0|t)<0?-1:0)),t>>e-32)}function ue(A,t,e){return A|=0,t|=0,(0|(e|=0))<32?(x(t>>>e|0),A>>>e|(t&(1<<e)-1)<<32-e):(x(0),t>>>e-32|0)}function fe(A,t,e){return A|=0,t|=0,(0|(e|=0))<32?(x(t<<e|(A&(1<<e)-1<<32-e)>>>32-e),A<<e):(x(A<<e-32),0)}function ce(A,t,e){return A|=0,32==(0|(t=0|_(t|=0)))&&(t=t+(0|_(A))|0),x(0),0|t}function he(A,t){return t=+t,(A=+A)!=A?+t:t!=t?+A:+E(+A,+t)}function ge(A,t){return t=+t,(A=+A)!=A?+t:t!=t?+A:+b(+A,+t)}function pe(A){return(A=+A)>=0?+s(A+.5):+m(A-.5)}function de(A,t,e){A|=0,t|=0;var i,o,l=0;if((0|(e|=0))>=8192)return C(0|A,0|t,0|e),0|A;if(o=0|A,i=A+e|0,(3&A)==(3&t)){for(;3&A;){if(!e)return 0|o;n[A|0]=0|n[t|0],A=A+1|0,t=t+1|0,e=e-1|0}for(l=(e=-4&i)-64|0;(0|A)<=(0|l);)r[A>>2]=r[t>>2],r[A+4>>2]=r[t+4>>2],r[A+8>>2]=r[t+8>>2],r[A+12>>2]=r[t+12>>2],r[A+16>>2]=r[t+16>>2],r[A+20>>2]=r[t+20>>2],r[A+24>>2]=r[t+24>>2],r[A+28>>2]=r[t+28>>2],r[A+32>>2]=r[t+32>>2],r[A+36>>2]=r[t+36>>2],r[A+40>>2]=r[t+40>>2],r[A+44>>2]=r[t+44>>2],r[A+48>>2]=r[t+48>>2],r[A+52>>2]=r[t+52>>2],r[A+56>>2]=r[t+56>>2],r[A+60>>2]=r[t+60>>2],A=A+64|0,t=t+64|0;for(;(0|A)<(0|e);)r[A>>2]=r[t>>2],A=A+4|0,t=t+4|0}else for(e=i-4|0;(0|A)<(0|e);)n[A|0]=0|n[t|0],n[A+1|0]=0|n[t+1|0],n[A+2|0]=0|n[t+2|0],n[A+3|0]=0|n[t+3|0],A=A+4|0,t=t+4|0;for(;(0|A)<(0|i);)n[A|0]=0|n[t|0],A=A+1|0,t=t+1|0;return 0|o}function ye(A,t,e){t|=0;var i,o=0,l=0,s=0;if(i=(A|=0)+(e|=0)|0,t&=255,(0|e)>=67){for(;3&A;)n[A|0]=t,A=A+1|0;for(s=t|t<<8|t<<16|t<<24,l=(o=-4&i)-64|0;(0|A)<=(0|l);)r[A>>2]=s,r[A+4>>2]=s,r[A+8>>2]=s,r[A+12>>2]=s,r[A+16>>2]=s,r[A+20>>2]=s,r[A+24>>2]=s,r[A+28>>2]=s,r[A+32>>2]=s,r[A+36>>2]=s,r[A+40>>2]=s,r[A+44>>2]=s,r[A+48>>2]=s,r[A+52>>2]=s,r[A+56>>2]=s,r[A+60>>2]=s,A=A+64|0;for(;(0|A)<(0|o);)r[A>>2]=s,A=A+4|0}for(;(0|A)<(0|i);)n[A|0]=t,A=A+1|0;return i-e|0}function ve(A){return(A=+A)>=0?+s(A+.5):+m(A-.5)}function me(A){A|=0;var t,e,n;return n=0|S(),(0|A)>0&(0|(t=(e=0|r[l>>2])+A|0))<(0|e)|(0|t)<0?(D(0|t),k(12),-1):(0|t)>(0|n)&&!(0|P(0|t))?(k(12),-1):(r[l>>2]=t,0|e)}return{___divdi3:ie,___muldi3:oe,___remdi3:le,___uremdi3:se,_areNeighborCells:function(A,t,e,n,i){i|=0;var o,l,s,a=0,u=0,f=0,c=0;if(s=Q,Q=Q+64|0,l=s,o=s+56|0,!(!0&134217728==(2013265920&(t|=0))&!0&134217728==(2013265920&(n|=0))))return Q=s,0|(i=5);if((0|(A|=0))==(0|(e|=0))&(0|t)==(0|n))return r[i>>2]=0,Q=s,0|(i=0);if(u=0|ue(0|A,0|t,52),B(),u&=15,c=0|ue(0|e,0|n,52),B(),(0|u)!=(15&c))return Q=s,0|(i=12);if(a=u+-1|0,u>>>0>1){jA(A,t,a,l),jA(e,n,a,o),f=0|r[(c=l)>>2],c=0|r[c+4>>2];A:do{if((0|f)==(0|r[o>>2])&&(0|c)==(0|r[o+4>>2])){a=0|ue(0|A,0|t,0|(u=3*(15^u)|0)),B(),a&=7,u=0|ue(0|e,0|n,0|u),B(),u&=7;do{if(!(0|a)|!(0|u))r[i>>2]=1,a=0;else if(7==(0|a))a=5;else{if(1==(0|a)|1==(0|u)&&0|VA(f,c)){a=5;break}if((0|r[15536+(a<<2)>>2])!=(0|u)&&(0|r[15568+(a<<2)>>2])!=(0|u))break A;r[i>>2]=1,a=0}}while(0);return Q=s,0|(i=a)}}while(0)}u=(a=l)+56|0;do{r[a>>2]=0,a=a+4|0}while((0|a)<(0|u));return I(A,t,1,l),a=(0|r[(t=l)>>2])==(0|e)&&(0|r[t+4>>2])==(0|n)||(0|r[(t=l+8|0)>>2])==(0|e)&&(0|r[t+4>>2])==(0|n)||(0|r[(t=l+16|0)>>2])==(0|e)&&(0|r[t+4>>2])==(0|n)||(0|r[(t=l+24|0)>>2])==(0|e)&&(0|r[t+4>>2])==(0|n)||(0|r[(t=l+32|0)>>2])==(0|e)&&(0|r[t+4>>2])==(0|n)||(0|r[(t=l+40|0)>>2])==(0|e)&&(0|r[t+4>>2])==(0|n)?1:1&((0|r[(a=l+48|0)>>2])==(0|e)?(0|r[a+4>>2])==(0|n):0),r[i>>2]=a,Q=s,0|(i=0)},_bitshift64Ashr:ae,_bitshift64Lshr:ue,_bitshift64Shl:fe,_calloc:Ae,_cellAreaKm2:function(A,t,e){return 0|(A=0|yt(A|=0,t|=0,e|=0))||(i[e>>3]=6371.007180918475*+i[e>>3]*6371.007180918475),0|A},_cellAreaM2:function(A,t,e){return 0|(A=0|yt(A|=0,t|=0,e|=0))||(i[e>>3]=6371.007180918475*+i[e>>3]*6371.007180918475*1e3*1e3),0|A},_cellAreaRads2:yt,_cellToBoundary:it,_cellToCenterChild:qA,_cellToChildPos:function(A,t,e,n){e|=0,n|=0;var i,o=0,l=0,s=0,a=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0;if(i=Q,Q=Q+16|0,v=i,m=0|ue(0|(A|=0),0|(t|=0),52),B(),m&=15,e>>>0>15)return Q=i,0|(m=4);if((0|m)<(0|e))return Q=i,0|(m=12);if((0|m)!=(0|e))if(l=0|fe(0|e,0,52),l|=A,a=B()|-15728641&t,(0|m)>(0|e)){u=e;do{y=0|fe(7,0,3*(14-u|0)|0),u=u+1|0,l|=y,a=0|B()|a}while((0|u)<(0|m));y=l}else y=l;else y=A,a=t;d=0|ue(0|y,0|a,45),B();A:do{if(0|z(127&d)){if(u=0|ue(0|y,0|a,52),B(),0|(u&=15))for(l=1;;){if(!(!((d=0|fe(7,0,3*(15-l|0)|0))&y|0)&!((0|B())&a))){f=33;break A}if(!(l>>>0<u>>>0))break;l=l+1|0}if(r[(d=n)>>2]=0,r[d+4>>2]=0,(0|m)>(0|e)){for(d=-15728641&t,p=m;;){if(g=p,(p=p+-1|0)>>>0>15|(0|m)<(0|p)){f=19;break}if((0|m)!=(0|p))if(l=0|fe(0|p,0,52),l|=A,u=0|B()|d,(0|m)<(0|g))h=l;else{f=p;do{h=0|fe(7,0,3*(14-f|0)|0),f=f+1|0,l|=h,u=0|B()|u}while((0|f)<(0|m));h=l}else h=A,u=t;if(c=0|ue(0|h,0|u,45),B(),0|z(127&c)){c=0|ue(0|h,0|u,52),B(),c&=15;t:do{if(c)for(f=1;;){if(l=0|ue(0|h,0|u,3*(15-f|0)|0),B(),0|(l&=7))break t;if(!(f>>>0<c>>>0)){l=0;break}f=f+1|0}else l=0}while(0);l=1&!(0|l)}else l=0;if(u=0|ue(0|A,0|t,3*(15-g|0)|0),B(),7==(0|(u&=7))){o=5,f=42;break}if(1==(0|u)&(l=!!(0|l))){o=5,f=42;break}if(0|(h=u+((!!(0|u)&l)<<31>>31)|0)&&(f=0|Bt(7,0,f=m-g|0,((0|f)<0)<<31>>31),c=0|B(),l?(l=0|te(0|(l=0|oe(0|f,0|c,5,0)),0|B(),-5,-1),l=0|te(0|(l=0|ie(0|l,0|B(),6,0)),0|B(),1,0),u=0|B()):(l=f,u=c),g=0|te(0|l,0|u,0|(g=0|oe(0|f,0|c,0|(g=h+-1|0),((0|g)<0)<<31>>31)),0|B()),c=0|te(0|g,0|(h=0|B()),0|r[(c=n)>>2],0|r[c+4>>2]),h=0|B(),r[(g=n)>>2]=c,r[g+4>>2]=h),(0|p)<=(0|e)){f=37;break}}if(19==(0|f))M(27795,27122,1367,27158);else{if(37==(0|f)){o=0|r[(s=n)+4>>2],s=0|r[s>>2];break}if(42==(0|f))return Q=i,0|o}}else o=0,s=0}else f=33}while(0);A:do{if(33==(0|f)){if(r[(d=n)>>2]=0,r[d+4>>2]=0,(0|m)>(0|e)){for(l=m;;){if(o=0|ue(0|A,0|t,3*(15-l|0)|0),B(),7==(0|(o&=7))){o=5;break}if(o=0|oe(0|(s=0|Bt(7,0,s=m-l|0,((0|s)<0)<<31>>31)),0|B(),0|o,0),s=0|B(),s=0|te(0|r[(d=n)>>2],0|r[d+4>>2],0|o,0|s),o=0|B(),r[(d=n)>>2]=s,r[d+4>>2]=o,(0|(l=l+-1|0))<=(0|e))break A}return Q=i,0|o}o=0,s=0}}while(0);return 0|XA(y,a,m,v)&&M(27795,27122,1327,27173),((0|o)>-1|-1==(0|o)&s>>>0>4294967295)&((0|(v=0|r[(m=v)+4>>2]))>(0|o)|((0|v)==(0|o)?(0|r[m>>2])>>>0>s>>>0:0))?(Q=i,0|(m=0)):(M(27795,27122,1407,27158),0)},_cellToChildren:function(A,t,e,n){n|=0;var i,o,l=0,s=0;if(o=Q,Q=Q+16|0,lt(i=o,A|=0,t|=0,e|=0),!(0|(A=0|r[(t=i)>>2]))&!(0|(t=0|r[t+4>>2])))return Q=o,0;l=0,e=0;do{r[(s=n+(l<<3)|0)>>2]=A,r[s+4>>2]=t,l=0|te(0|l,0|e,1,0),e=0|B(),at(i),A=0|r[(s=i)>>2],t=0|r[s+4>>2]}while(!(!(0|A)&!(0|t)));return Q=o,0},_cellToChildrenSize:XA,_cellToLatLng:rt,_cellToLocalIj:function(A,t,e,n,r,i){var o,l;return A|=0,t|=0,e|=0,n|=0,i|=0,l=Q,Q=Q+16|0,o=l,(r|=0)?A=15:(A=0|_t(A,t,e,n,o))||(MA(o,i),A=0),Q=l,0|A},_cellToParent:jA,_cellToVertex:zt,_cellToVertexes:function(A,t,e){e|=0;var n,i=0,o=0;return o=!(0|VA(A|=0,t|=0)),n=!(0|(i=0|zt(A,t,0,e))),o?n?0|(i=0|zt(A,t,1,e+8|0))||0|(i=0|zt(A,t,2,e+16|0))||0|(i=0|zt(A,t,3,e+24|0))||(i=0|zt(A,t,4,e+32|0))?0|(o=i):0|zt(A,t,5,e+40|0):0|(o=i):n?0|(i=0|zt(A,t,1,e+8|0))||0|(i=0|zt(A,t,2,e+16|0))||0|(i=0|zt(A,t,3,e+24|0))||0|(i=0|zt(A,t,4,e+32|0))?0|(o=i):(r[(o=e+40|0)>>2]=0,r[o+4>>2]=0,0|(o=0)):0|(o=i)},_cellsToDirectedEdge:function(A,t,e,n,i){return i|=0,7==(0|(e=0|G(A|=0,t|=0,e|=0,n|=0)))?0|(i=11):(n=0|fe(0|e,0,56),t=-2130706433&t|B()|268435456,r[i>>2]=A|n,r[i+4>>2]=t,0|(i=0))},_cellsToLinkedMultiPolygon:function(A,t,e){e|=0;var n,i,o,l=0;if(o=Q,Q=Q+32|0,n=o,A=0|function(A,t,e){A|=0,e|=0;var n,i,o=0,l=0,s=0,a=0,u=0,f=0;if(i=Q,Q=Q+176|0,n=i,(0|(t|=0))<1)return jt(e,0,0),Q=i,0;for(u=0|ue(0|r[(u=A)>>2],0|r[u+4>>2],52),B(),jt(e,(0|t)>6?t:6,15&u),u=0;!(0|(o=0|it(0|r[(o=A+(u<<3)|0)>>2],0|r[o+4>>2],n)));){if((0|(o=0|r[n>>2]))>0){a=0;do{s=n+8+(a<<4)|0,(l=0|Wt(e,o=n+8+((0|(a=a+1|0))%(0|o)<<4)|0,s))?Ht(e,l):qt(e,s,o),o=0|r[n>>2]}while((0|a)<(0|o))}if((0|(u=u+1|0))>=(0|t)){o=0,f=13;break}}return 13==(0|f)?(Q=i,0|o):(Xt(e),Q=i,0|(f=o))}(A|=0,t|=0,i=o+16|0),0|A)return Q=o,0|(e=A);if(r[e>>2]=0,r[e+4>>2]=0,r[e+8>>2]=0,0|(A=0|Vt(i)))do{t=0|vt(e);do{mt(t,A),l=A+16|0,r[n>>2]=r[l>>2],r[n+4>>2]=r[l+4>>2],r[n+8>>2]=r[l+8>>2],r[n+12>>2]=r[l+12>>2],Ht(i,A),A=0|Zt(i,n)}while(0|A);A=0|Vt(i)}while(0|A);return Xt(i),(A=0|bt(e))?(wt(e),Q=o,0|(l=A)):(Q=o,0|(l=0))},_childPosToCell:function(A,t,e,n,i,o){A|=0,t|=0,o|=0;var l,s=0,a=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0;if(l=Q,Q=Q+16|0,s=l,(i|=0)>>>0>15)return Q=l,0|(o=4);if(a=0|ue(0|(e|=0),0|(n|=0),52),B(),(0|(a&=15))>(0|i))return Q=l,0|(o=12);if(0|XA(e,n,i,s)&&M(27795,27122,1327,27173),!(((0|t)>-1|-1==(0|t)&A>>>0>4294967295)&((0|(f=0|r[(c=s)+4>>2]))>(0|t)|((0|f)==(0|t)?(0|r[c>>2])>>>0>A>>>0:0))))return Q=l,0|(o=2);c=i-a|0,i=0|fe(0|i,0,52),u=B()|-15728641&n,r[(f=o)>>2]=i|e,r[f+4>>2]=u,f=0|ue(0|e,0|n,45),B();A:do{if(0|z(127&f)){if(0|a)for(s=1;;){if(!(!((f=0|fe(7,0,3*(15-s|0)|0))&e|0)&!((0|B())&n)))break A;if(!(s>>>0<a>>>0))break;s=s+1|0}if((0|c)<1)return Q=l,0|(o=0);for(f=15^a,n=-1,u=1,s=1;;){a=0|Bt(7,0,a=c-u|0,((0|a)<0)<<31>>31),e=0|B();do{if(s){if(s=0|ie(0|(s=0|te(0|(s=0|oe(0|a,0|e,5,0)),0|B(),-5,-1)),0|B(),6,0),(0|t)>(0|(i=0|B()))|(0|t)==(0|i)&A>>>0>s>>>0){t=0|ee(0|(t=0|te(0|A,0|t,-1,-1)),0|B(),0|s,0|i),s=0|B(),p=0|r[(h=o)>>2],h=0|r[h+4>>2],g=0|fe(7,0,0|(d=3*(f+n|0)|0)),h&=~B(),d=0|fe(0|(i=0|te(0|(n=0|ie(0|t,0|s,0|a,0|e)),0|(A=0|B()),2,0)),0|B(),0|d),h=0|B()|h,r[(i=o)>>2]=d|p&~g,r[i+4>>2]=h,A=0|ee(0|t,0|s,0|(A=0|oe(0|n,0|A,0|a,0|e)),0|B()),s=0,t=0|B();break}g=0|r[(d=o)>>2],d=0|r[d+4>>2],p=0|fe(7,0,3*(f+n|0)|0),d&=~B(),r[(s=o)>>2]=g&~p,r[s+4>>2]=d,s=1;break}i=0|r[(g=o)>>2],g=0|r[g+4>>2],h=0|fe(7,0,0|(n=3*(f+n|0)|0)),g&=~B(),n=0|fe(0|(d=0|ie(0|A,0|t,0|a,0|e)),0|(s=0|B()),0|n),g=0|B()|g,r[(p=o)>>2]=n|i&~h,r[p+4>>2]=g,A=0|ee(0|A,0|t,0|(s=0|oe(0|d,0|s,0|a,0|e)),0|B()),s=0,t=0|B()}while(0);if(!((0|c)>(0|u))){t=0;break}n=~u,u=u+1|0}return Q=l,0|t}}while(0);if((0|c)<1)return Q=l,0|(d=0);for(i=15^a,s=1;;){if(p=0|Bt(7,0,p=c-s|0,((0|p)<0)<<31>>31),d=0|B(),e=0|r[(u=o)>>2],u=0|r[u+4>>2],n=0|fe(7,0,0|(a=3*(i-s|0)|0)),u&=~B(),a=0|fe(0|(h=0|ie(0|A,0|t,0|p,0|d)),0|(g=0|B()),0|a),u=0|B()|u,r[(f=o)>>2]=a|e&~n,r[f+4>>2]=u,A=0|ee(0|A,0|t,0|(d=0|oe(0|h,0|g,0|p,0|d)),0|B()),t=0|B(),(0|c)<=(0|s)){t=0;break}s=s+1|0}return Q=l,0|t},_compactCells:function(A,t,e,n){t|=0;var i,o=0,l=0,s=0,a=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0,b=0,E=0,_=0,x=0,k=0,S=0,C=0,P=0,D=0,Q=0;if(!(0|(e|=0))&!(0|(n|=0)))return 0|(Q=0);if(l=0|r[(o=A|=0)>>2],!0&!(15728640&(o=0|r[o+4>>2]))){if(!((0|n)>0|!(0|n)&e>>>0>0))return 0|(Q=0);if(r[(Q=t)>>2]=l,r[Q+4>>2]=o,1==(0|e)&!(0|n))return 0|(Q=0);o=1,l=0;do{D=0|r[(P=A+(o<<3)|0)+4>>2],r[(Q=t+(o<<3)|0)>>2]=r[P>>2],r[Q+4>>2]=D,o=0|te(0|o,0|l,1,0),l=0|B()}while((0|l)<(0|n)|(0|l)==(0|n)&o>>>0<e>>>0);return 0|(o=0)}if(!(D=0|Kt(i=e<<3)))return 0|(Q=13);if(de(0|D,0|A,0|i),!(P=0|Ae(e,8)))return $t(D),0|(Q=13);A:for(;;){S=0|ue(0|(f=0|r[(o=D)>>2]),0|(o=0|r[o+4>>2]),52),B(),C=(S&=15)+-1|0,k=!!(0|S),x=(0|n)>0|!(0|n)&e>>>0>0;t:do{if(k&x){if(w=0|fe(0|C,0,52),b=0|B(),C>>>0>15){if(!(!(0|f)&!(0|o))){Q=16;break A}for(l=0,A=0;;){if(l=0|te(0|l,0|A,1,0),!((0|(A=0|B()))<(0|n)|(0|A)==(0|n)&l>>>0<e>>>0))break t;if(!(!(0|(_=0|r[(s=D+(l<<3)|0)>>2]))&!(0|(s=0|r[s+4>>2])))){o=s,Q=16;break A}}}for(a=f,A=o,l=0,s=0;;){if(!(!(0|a)&!(0|A))){if(!(!0&!(117440512&A))){Q=21;break A}if(c=0|ue(0|a,0|A,52),B(),(0|(c&=15))<(0|C)){o=12,Q=27;break A}if((0|c)!=(0|C)&&(a|=w,A=-15728641&A|b,c>>>0>=S>>>0)){u=C;do{_=0|fe(7,0,3*(14-u|0)|0),u=u+1|0,a|=_,A=0|B()|A}while(u>>>0<c>>>0)}if(g=0|se(0|a,0|A,0|e,0|n),p=0|B(),!(!(0|(h=0|r[(c=u=P+(g<<3)|0)>>2]))&!(0|(c=0|r[c+4>>2])))){v=0,m=0;do{if((0|v)>(0|n)|(0|v)==(0|n)&m>>>0>e>>>0){Q=31;break A}if((0|h)==(0|a)&(-117440513&c)==(0|A)){d=0|ue(0|h,0|c,56),B(),y=(d&=7)+1|0,_=0|ue(0|h,0|c,45),B();e:do{if(0|z(127&_)){if(h=0|ue(0|h,0|c,52),B(),!(h&=15)){c=6;break}for(c=1;;){if(!(!((_=0|fe(7,0,3*(15-c|0)|0))&a|0)&!((0|B())&A))){c=7;break e}if(!(c>>>0<h>>>0)){c=6;break}c=c+1|0}}else c=7}while(0);if((d+2|0)>>>0>c>>>0){Q=41;break A}_=0|fe(0|y,0,56),A=B()|-117440513&A,r[(E=u)>>2]=0,r[E+4>>2]=0,a|=_}else g=0|le(0|(g=0|te(0|g,0|p,1,0)),0|B(),0|e,0|n),p=0|B();m=0|te(0|m,0|v,1,0),v=0|B(),h=0|r[(c=u=P+(g<<3)|0)>>2],c=0|r[c+4>>2]}while(!(!(0|h)&!(0|c)))}r[(_=u)>>2]=a,r[_+4>>2]=A}if(l=0|te(0|l,0|s,1,0),!((0|(s=0|B()))<(0|n)|(0|s)==(0|n)&l>>>0<e>>>0))break t;a=0|r[(A=D+(l<<3)|0)>>2],A=0|r[A+4>>2]}}}while(0);if(_=0|te(0|e,0|n,5,0),(E=0|B())>>>0<0|!(0|E)&_>>>0<11){Q=85;break}if(_=0|ie(0|e,0|n,6,0),B(),!(_=0|Ae(_,8))){Q=48;break}do{if(x){for(y=0,A=0,d=0,v=0;;){if(!(0|(l=0|r[(s=c=P+(y<<3)|0)>>2]))&!(0|(s=0|r[s+4>>2])))E=d;else{h=0|ue(0|l,0|s,56),B(),a=(h&=7)+1|0,g=-117440513&s,E=0|ue(0|l,0|s,45),B();t:do{if(0|z(127&E)){if(p=0|ue(0|l,0|s,52),B(),0|(p&=15))for(u=1;;){if(!(!(l&(E=0|fe(7,0,3*(15-u|0)|0))|0)&!(g&(0|B()))))break t;if(!(u>>>0<p>>>0))break;u=u+1|0}l|=s=0|fe(0|a,0,56),s=0|B()|g,r[(a=c)>>2]=l,r[a+4>>2]=s,a=h+2|0}}while(0);7==(0|a)?(r[(E=_+(A<<3)|0)>>2]=l,r[E+4>>2]=-117440513&s,A=0|te(0|A,0|d,1,0),E=0|B()):E=d}if(y=0|te(0|y,0|v,1,0),!((0|(v=0|B()))<(0|n)|(0|v)==(0|n)&y>>>0<e>>>0))break;d=E}if(x){if(m=C>>>0>15,w=0|fe(0|C,0,52),b=0|B(),!k){for(l=0,u=0,a=0,s=0;!(0|f)&!(0|o)||(r[(C=t+(l<<3)|0)>>2]=f,r[C+4>>2]=o,l=0|te(0|l,0|u,1,0),u=0|B()),a=0|te(0|a,0|s,1,0),(0|(s=0|B()))<(0|n)|(0|s)==(0|n)&a>>>0<e>>>0;)f=0|r[(o=D+(a<<3)|0)>>2],o=0|r[o+4>>2];o=E;break}for(l=0,u=0,s=0,a=0;;){do{if(!(!(0|f)&!(0|o))){if(p=0|ue(0|f,0|o,52),B(),m|(0|(p&=15))<(0|C)){Q=80;break A}if((0|p)!=(0|C)){if(c=f|w,h=-15728641&o|b,p>>>0>=S>>>0){g=C;do{k=0|fe(7,0,3*(14-g|0)|0),g=g+1|0,c|=k,h=0|B()|h}while(g>>>0<p>>>0)}}else c=f,h=o;d=0|se(0|c,0|h,0|e,0|n),g=0,p=0,v=0|B();do{if((0|g)>(0|n)|(0|g)==(0|n)&p>>>0>e>>>0){Q=81;break A}if((-117440513&(y=0|r[(k=P+(d<<3)|0)+4>>2]))==(0|h)&&(0|r[k>>2])==(0|c)){Q=65;break}d=0|le(0|(k=0|te(0|d,0|v,1,0)),0|B(),0|e,0|n),v=0|B(),p=0|te(0|p,0|g,1,0),g=0|B(),k=P+(d<<3)|0}while((0|r[k>>2])!=(0|c)||(0|r[k+4>>2])!=(0|h));if(65==(0|Q)&&(Q=0,!0&100663296==(117440512&y)))break;r[(k=t+(l<<3)|0)>>2]=f,r[k+4>>2]=o,l=0|te(0|l,0|u,1,0),u=0|B()}}while(0);if(s=0|te(0|s,0|a,1,0),!((0|(a=0|B()))<(0|n)|(0|a)==(0|n)&s>>>0<e>>>0))break;f=0|r[(o=D+(s<<3)|0)>>2],o=0|r[o+4>>2]}o=E}else l=0,o=E}else l=0,A=0,o=0}while(0);if(ye(0|P,0,0|i),de(0|D,0|_,A<<3),$t(_),!(0|A)&!(0|o)){Q=89;break}t=t+(l<<3)|0,n=o,e=A}if(16==(0|Q))!0&!(117440512&o)?(o=4,Q=27):Q=21;else if(31==(0|Q))M(27795,27122,620,27132);else{if(41==(0|Q))return $t(D),$t(P),0|(Q=10);if(48==(0|Q))return $t(D),$t(P),0|(Q=13);80==(0|Q)?M(27795,27122,711,27132):81==(0|Q)?M(27795,27122,723,27132):85==(0|Q)&&(de(0|t,0|D,e<<3),Q=89)}return 21==(0|Q)?($t(D),$t(P),0|(Q=5)):27==(0|Q)?($t(D),$t(P),0|(Q=o)):89==(0|Q)?($t(D),$t(P),0|(Q=0)):0},_constructCell:function(A,t,e,i){e|=0,i|=0;var o=0,l=0,s=0,a=0,u=0,f=0;if((A|=0)>>>0>15)return 0|(i=4);if((t|=0)>>>0>121)return 0|(i=17);s=0|fe(0|A,0,52),o=0|B(),a=0|fe(0|t,0,45),o=0|o|B()|134225919;A:do{if((0|A)>=1){for(a=1,s=!!(0|n[20528+t|0]),l=-1;;){if((t=0|r[e+(a+-1<<2)>>2])>>>0>6){o=18,t=10;break}if(!(!(0|t)|1^s)){if(1==(0|t)){o=19,t=10;break}s=0}if(u=0|fe(7,0,0|(f=3*(15-a|0)|0)),o&=~B(),l=(t=0|fe(0|t,((0|t)<0)<<31>>31,0|f))|l&~u,o=0|B()|o,!((0|a)<(0|A)))break A;a=a+1|0}if(10==(0|t))return 0|o}else l=-1}while(0);return r[(f=i)>>2]=l,r[f+4>>2]=o,0|(f=0)},_destroyLinkedMultiPolygon:wt,_directedEdgeToBoundary:DA,_directedEdgeToCells:function(A,t,e){A|=0;var n,i,o,l=0;return n=Q,Q=Q+16|0,l=n,!0&268435456==(2013265920&(t|=0))?(i=-2130706433&t|134217728,r[(o=e|=0)>>2]=A,r[o+4>>2]=i,r[l>>2]=0,t=0|ue(0|A,0|t,56),B(),l=0|O(A,i,7&t,l,e+8|0),Q=n,0|l):(Q=n,0|(l=6))},_edgeLengthKm:function(A,t,e){e|=0;var n,o=0,l=0,s=0,a=0,f=0,g=0,p=0;if(n=Q,Q=Q+176|0,0|(A=0|DA(A|=0,t|=0,a=n)))return a=A,s=+i[e>>3],s*=6371.007180918475,i[e>>3]=s,Q=n,0|a;if(i[e>>3]=0,(0|(A=0|r[a>>2]))<=1)return a=0,s=0,s*=6371.007180918475,i[e>>3]=s,Q=n,0|a;t=A+-1|0,A=0,o=+i[a+8>>3],l=+i[a+16>>3],s=0;do{g=o,o=+i[a+8+((A=A+1|0)<<4)>>3],p=+h(.5*(o-g)),f=l,l=+i[a+8+(A<<4)+8>>3],f=p*p+(f=+h(.5*(l-f)))*(+c(+g)*+c(+o)*f),s+=2*+v(+ +u(+f),+ +u(+(1-f)))}while((0|A)!=(0|t));return i[e>>3]=s,a=0,p=s,p*=6371.007180918475,i[e>>3]=p,Q=n,0|a},_edgeLengthM:function(A,t,e){e|=0;var n,o=0,l=0,s=0,a=0,f=0,g=0,p=0;if(n=Q,Q=Q+176|0,0|(A=0|DA(A|=0,t|=0,a=n)))return a=A,s=+i[e>>3],s*=6371.007180918475,s*=1e3,i[e>>3]=s,Q=n,0|a;if(i[e>>3]=0,(0|(A=0|r[a>>2]))<=1)return a=0,s=0,s*=6371.007180918475,s*=1e3,i[e>>3]=s,Q=n,0|a;t=A+-1|0,A=0,o=+i[a+8>>3],l=+i[a+16>>3],s=0;do{g=o,o=+i[a+8+((A=A+1|0)<<4)>>3],p=+h(.5*(o-g)),f=l,l=+i[a+8+(A<<4)+8>>3],f=p*p+(f=+h(.5*(l-f)))*(+c(+g)*+c(+o)*f),s+=2*+v(+ +u(+f),+ +u(+(1-f)))}while((0|A)!=(0|t));return i[e>>3]=s,a=0,p=s,p*=6371.007180918475,p*=1e3,i[e>>3]=p,Q=n,0|a},_edgeLengthRads:function(A,t,e){e|=0;var n,o=0,l=0,s=0,a=0,f=0,g=0,p=0;if(n=Q,Q=Q+176|0,0|(A=0|DA(A|=0,t|=0,a=n)))return Q=n,0|(a=A);if(i[e>>3]=0,(0|(A=0|r[a>>2]))<=1)return Q=n,0|(a=0);t=A+-1|0,A=0,o=+i[a+8>>3],l=+i[a+16>>3],s=0;do{g=o,o=+i[a+8+((A=A+1|0)<<4)>>3],p=+h(.5*(o-g)),f=l,l=+i[a+8+(A<<4)+8>>3],f=p*p+(f=+h(.5*(l-f)))*(+c(+o)*+c(+g)*f),s+=2*+v(+ +u(+f),+ +u(+(1-f)))}while((0|A)<(0|t));return i[e>>3]=s,Q=n,0|(a=0)},_emscripten_replace_memory:function(A){return n=new Int8Array(A),r=new Int32Array(A),i=new Float64Array(A),e=A,!0},_free:$t,_getBaseCellNumber:YA,_getDirectedEdgeDestination:function(A,t,e){A|=0,t|=0,e|=0;var n,i,o=0;return n=Q,Q=Q+16|0,r[(o=n)>>2]=0,!0&268435456==(2013265920&t)?(i=0|ue(0|A,0|t,56),B(),o=0|O(A,-2130706433&t|134217728,7&i,o,e),Q=n,0|o):(Q=n,0|(o=6))},_getDirectedEdgeOrigin:function(A,t,e){return A|=0,e|=0,!0&268435456==(2013265920&(t|=0))?(r[e>>2]=A,r[e+4>>2]=-2130706433&t|134217728,0|(e=0)):0|(e=6)},_getHexagonAreaAvgKm2:gt,_getHexagonAreaAvgM2:function(A,t){return t|=0,(A|=0)>>>0>15?0|(t=4):(i[t>>3]=+i[20784+(A<<3)>>3],0|(t=0))},_getHexagonEdgeLengthAvgKm:function(A,t){return t|=0,(A|=0)>>>0>15?0|(t=4):(i[t>>3]=+i[20912+(A<<3)>>3],0|(t=0))},_getHexagonEdgeLengthAvgM:function(A,t){return t|=0,(A|=0)>>>0>15?0|(t=4):(i[t>>3]=+i[21040+(A<<3)>>3],0|(t=0))},_getIcosahedronFaces:function A(t,e,n){n|=0;var i,o=0,l=0,s=0,a=0,u=0,f=0,c=0,h=0;i=Q,Q=Q+128|0,c=i+112|0,s=i+96|0,h=i,l=0|ue(0|(t|=0),0|(e|=0),52),B(),u=15&l,r[c>>2]=u,a=0|ue(0|t,0|e,45),B(),a&=127;A:do{if(0|z(a)){if(0|u)for(o=1;;){if(!(!((f=0|fe(7,0,3*(15-o|0)|0))&t|0)&!((0|B())&e))){l=0;break A}if(!(o>>>0<u>>>0))break;o=o+1|0}if(!(1&l))return f=0|fe(u+1|0,0,52),h=B()|-15728641&e,h=0|A((f|t)&~(c=0|fe(7,0,3*(14-u|0)|0)),h&~B(),n),Q=i,0|h;l=1}else l=0}while(0);if(!(o=0|nt(t,e,s))){l?(LA(s,c,h),f=5):(GA(s,c,h),f=6);A:do{if(0|z(a))if(u)for(o=1;;){if(!(!((a=0|fe(7,0,3*(15-o|0)|0))&t|0)&!((0|B())&e))){t=2;break A}if(!(o>>>0<u>>>0)){t=5;break}o=o+1|0}else t=5;else t=2}while(0);ye(0|n,-1,t<<2);A:do{if(l)for(s=0;;){if(RA(a=h+(s<<4)|0,0|r[c>>2]),a=0|r[a>>2],-1==(0|(u=0|r[n>>2]))|(0|u)==(0|a))o=n;else{l=0;do{if((l=l+1|0)>>>0>=t>>>0){o=1;break A}u=0|r[(o=n+(l<<2)|0)>>2]}while(!(-1==(0|u)|(0|u)==(0|a)))}if(r[o>>2]=a,(s=s+1|0)>>>0>=f>>>0){o=0;break}}else for(s=0;;){if(OA(a=h+(s<<4)|0,0|r[c>>2],0,1),a=0|r[a>>2],-1==(0|(u=0|r[n>>2]))|(0|u)==(0|a))o=n;else{l=0;do{if((l=l+1|0)>>>0>=t>>>0){o=1;break A}u=0|r[(o=n+(l<<2)|0)>>2]}while(!(-1==(0|u)|(0|u)==(0|a)))}if(r[o>>2]=a,(s=s+1|0)>>>0>=f>>>0){o=0;break}}}while(0)}return Q=i,0|(h=o)},_getIndexDigit:function(A,t,e,n){return n|=0,((e|=0)+-1|0)>>>0>14?0|(n=4):(e=0|ue(0|(A|=0),0|(t|=0),3*(15-e|0)|0),B(),r[n>>2]=7&e,0|(n=0))},_getNumCells:pt,_getPentagons:ot,_getRes0Cells:function(A){A|=0;var t=0,e=0,n=0;t=0;do{fe(0|t,0,45),n=134225919|B(),r[(e=A+(t<<3)|0)>>2]=-1,r[e+4>>2]=n,t=t+1|0}while(122!=(0|t));return 0},_getResolution:function(A,t){return t=0|ue(0|(A|=0),0|(t|=0),52),B(),15&t},_greatCircleDistanceKm:ht,_greatCircleDistanceM:function(A,t){A|=0;var e,n,r,o=0;return n=+i[(t|=0)>>3],e=+i[A>>3],o=(r=+h(.5*(n-e)))*r+(o=+h(.5*(+i[t+8>>3]-+i[A+8>>3])))*(+c(+n)*+c(+e)*o),2*+v(+ +u(+o),+ +u(+(1-o)))*6371.007180918475*1e3},_greatCircleDistanceRads:function(A,t){A|=0;var e,n,r,o=0;return n=+i[(t|=0)>>3],e=+i[A>>3],o=(r=+h(.5*(n-e)))*r+(o=+h(.5*(+i[t+8>>3]-+i[A+8>>3])))*(+c(+n)*+c(+e)*o),2*+v(+ +u(+o),+ +u(+(1-o)))},_gridDisk:I,_gridDiskDistances:T,_gridDistance:function(A,t,e,n,i){e|=0,n|=0,i|=0;var o,l,s=0,a=0;return l=Q,Q=Q+32|0,a=l,0|(o=0|_t(A|=0,t|=0,A,t,s=l+12|0))?(Q=l,0|(a=o)):0|(A=0|_t(A,t,e,n,a))?(Q=l,0|(a=A)):(s=0|BA(s,a),r[(a=i)>>2]=s,r[a+4>>2]=((0|s)<0)<<31>>31,Q=l,0|(a=0))},_gridPathCells:function(A,t,e,n,i){e|=0,n|=0,i|=0;var o,l,s=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0,b=0,E=0,_=0,x=0,k=0,S=0;if(l=Q,Q=Q+48|0,u=l+12|0,k=l,!(s=0|_t(A|=0,t|=0,A,t,o=l+24|0))&&!(s=0|_t(A,t,e,n,u))){x=((0|(_=0|BA(o,u)))<0)<<31>>31,r[o>>2]=0,r[o+4>>2]=0,r[o+8>>2]=0,r[u>>2]=0,r[u+4>>2]=0,r[u+8>>2]=0,0|_t(A,t,A,t,o)&&M(27795,27538,692,27747),0|_t(A,t,e,n,u)&&M(27795,27538,697,27747),SA(o),SA(u),g=0|_?1/+(0|_):0,e=0|r[o>>2],m=g*+((0|r[u>>2])-e|0),n=0|r[(w=o+4|0)>>2],b=g*+((0|r[u+4>>2])-n|0),s=0|r[(E=o+8|0)>>2],g*=+((0|r[u+8>>2])-s|0),r[k>>2]=e,r[(p=k+4|0)>>2]=n,r[(d=k+8|0)>>2]=s;A:do{if((0|_)<0)s=0;else for(y=0,v=0;;){S=m*(c=+(v>>>0)+4294967296*+(0|y))+ +(0|e),f=b*c+ +(0|n),c=g*c+ +(0|s),e=~~+pe(+S),u=~~+pe(+f),s=~~+pe(+c),S=+a(+(+(0|e)-S)),f=+a(+(+(0|u)-f)),c=+a(+(+(0|s)-c));do{if(!(S>f&S>c)){if(h=0-e|0,f>c){n=h-s|0;break}n=u,s=h-u|0;break}e=0-(u+s)|0,n=u}while(0);if(r[k>>2]=e,r[p>>2]=n,r[d>>2]=s,CA(k),0|(s=0|xt(A,t,k,i+(v<<3)|0)))break A;if(!((0|y)<(0|x)|(0|y)==(0|x)&v>>>0<_>>>0)){s=0;break A}e=0|te(0|v,0|y,1,0),y=n=0|B(),v=e,e=0|r[o>>2],n=0|r[w>>2],s=0|r[E>>2]}}while(0);return Q=l,0|(k=s)}return Q=l,0|(k=s)},_gridPathCellsSize:function(A,t,e,n,i){e|=0,n|=0,i|=0;var o,l=0,s=0,a=0;return o=Q,Q=Q+32|0,a=o,(l=0|_t(A|=0,t|=0,A,t,s=o+12|0))||(l=0|_t(A,t,e,n,a))?(Q=o,0|(a=l)):(n=0|te(0|(n=0|BA(s,a)),((0|n)<0)<<31>>31,1,0),s=0|B(),r[(a=i)>>2]=n,r[a+4>>2]=s,Q=o,0|(a=0))},_gridRing:function(A,t,e,n){return 0|R(A|=0,t|=0,e|=0,n|=0)?(ye(0|n,0,48*e|0),0|(n=0|N(A,t,e,n))):0|(n=0)},_gridRingUnsafe:R,_i64Add:te,_i64Subtract:ee,_isPentagon:VA,_isResClassIII:function(A,t){return t=0|ue(0|(A|=0),0|(t|=0),52),B(),1&t},_isValidCell:zA,_isValidDirectedEdge:PA,_isValidIndex:function(A,t){A|=0;var e=0,r=0,i=0,o=0;if(!0&134217728==(-16777216&(t|=0))&&(r=0|ue(0|A,0|t,52),B(),r&=15,e=0|ue(0|A,0|t,45),B(),(e&=127)>>>0<=121)&&!(613566756&(o=0|fe(0|(i=0|ue(0|A,0|t,0|(o=3*(15^r)|0))),0|B(),0|o))&(0|ee(-1227133514,-1171,0|o,0|(i=0|B()))))&!(4681&i&B())&&15==(0|r)|!(0|(o=0|ue(0|(0|fe(0|~A,0|~t,0|(o=19+(3*r|0)|0))),0|B(),0|o)))&!(0|B())){if(!(0|n[20528+e|0]))return 0|(o=1);if(!(0|A)&!(0|(e=8191&t)))return 0|(o=1);if(o=0|ce(0|A,0|e),B(),(63-o|0)%3|0)return 0|(o=1)}return 0|PA(A,t)?0|(o=1):0|(o=1&!!(0|Ut(A,t)))},_isValidVertex:Ut,_latLngToCell:tt,_llvm_ctlz_i64:ce,_llvm_maxnum_f64:he,_llvm_minnum_f64:ge,_llvm_round_f64:pe,_localIjToCell:function(A,t,e,n,r){var i,o;return A|=0,t|=0,e|=0,r|=0,o=Q,Q=Q+16|0,i=o,(n|=0)?e=15:(e=0|kA(e,i))||(e=0|xt(A,t,i,r)),Q=o,0|e},_malloc:Kt,_maxFaceCount:function(A,t,e){e|=0;var n=0,i=0;if(i=0|ue(0|(A|=0),0|(t|=0),45),B(),!(0|z(127&i)))return i=2,r[e>>2]=i,0;if(i=0|ue(0|A,0|t,52),B(),!(i&=15))return i=5,r[e>>2]=i,0;for(n=1;;){if(!(!((0|fe(7,0,3*(15-n|0)|0))&A|0)&!((0|B())&t))){n=2,A=6;break}if(!(n>>>0<i>>>0)){n=5,A=6;break}n=n+1|0}return 6==(0|A)?(r[e>>2]=n,0):0},_maxGridDiskSize:function(A,t){t|=0;var e=0,n=0,i=0;return(0|(A|=0))<0?0|(t=2):(0|A)>13780509?0|(t=0|pt(15,t)):(i=0|oe(0|A,0|(e=((0|A)<0)<<31>>31),3,0),n=0|B(),e=0|te(0|A,0|e,1,0),e=0|te(0|(e=0|oe(0|i,0|n,0|e,0|B())),0|B(),1,0),A=0|B(),r[t>>2]=e,r[t+4>>2]=A,0|(t=0))},_maxPolygonToCellsSize:function(A,t,e,n){A|=0,t|=0,n|=0;var i,o=0,l=0,s=0,a=0,u=0;if(i=Q,Q=Q+48|0,o=i+16|0,l=i+8|0,s=i,0|(e=0|Qt(e|=0)))return Q=i,0|(s=e);if(a=0|r[(u=A)+4>>2],r[(e=l)>>2]=r[u>>2],r[e+4>>2]=a,Dt(l,o),!(e=0|eA(o,t,s))){if(t=0|r[l>>2],(0|(l=0|r[A+8>>2]))>0){o=0|r[A+12>>2],e=0;do{t=(0|r[o+(e<<3)>>2])+t|0,e=e+1|0}while((0|e)<(0|l))}o=0|r[(e=s)>>2],(0|(e=0|r[e+4>>2]))<(0|(l=((0|t)<0)<<31>>31))|(0|e)==(0|l)&o>>>0<t>>>0?(r[(e=s)>>2]=t,r[e+4>>2]=l,e=l):t=o,a=0|te(0|t,0|e,12,0),u=0|B(),r[(e=s)>>2]=a,r[e+4>>2]=u,r[(e=n)>>2]=a,r[e+4>>2]=u,e=0}return Q=i,0|(u=e)},_maxPolygonToCellsSizeExperimental:function(A,t,e,o){t|=0,e|=0,o|=0;var l,s,u=0,f=0,h=0,g=0,p=0,d=0,y=0,v=0;if(s=Q,Q=Q+48|0,p=s+32|0,g=s+40|0,l=s,!(0|r[(A|=0)>>2]))return r[(d=o)>>2]=0,r[d+4>>2]=0,Q=s,0|(d=0);UA(p,0,0,0),u=0|r[(h=p)>>2],h=0|r[h+4>>2];do{if(t>>>0>15)r[(d=l)>>2]=0,r[d+4>>2]=0,r[l+8>>2]=4,r[l+12>>2]=-1,e=l+29|0,r[(d=l+16|0)>>2]=0,r[d+4>>2]=0,r[d+8>>2]=0,n[d+12|0]=0,n[e|0]=0|n[g|0],n[e+1|0]=0|n[g+1|0],n[e+2|0]=0|n[g+2|0],e=4,d=9;else{if(0|(e=0|Qt(e))){r[(p=l)>>2]=0,r[p+4>>2]=0,r[l+8>>2]=e,r[l+12>>2]=-1,d=l+29|0,r[(p=l+16|0)>>2]=0,r[p+4>>2]=0,r[p+8>>2]=0,n[p+12|0]=0,n[d|0]=0|n[g|0],n[d+1|0]=0|n[g+1|0],n[d+2|0]=0|n[g+2|0],d=9;break}if(!(e=0|Ae(1+(0|r[A+8>>2])|0,32))){r[(d=l)>>2]=0,r[d+4>>2]=0,r[l+8>>2]=13,r[l+12>>2]=-1,e=l+29|0,r[(d=l+16|0)>>2]=0,r[d+4>>2]=0,r[d+8>>2]=0,n[d+12|0]=0,n[e|0]=0|n[g|0],n[e+1|0]=0|n[g+1|0],n[e+2|0]=0|n[g+2|0],e=13,d=9;break}It(A,e),r[(v=l)>>2]=u,r[v+4>>2]=h,r[(h=l+8|0)>>2]=0,r[l+12>>2]=t,r[l+20>>2]=A,r[l+24>>2]=e,n[l+28|0]=0,n[(u=l+29|0)|0]=0|n[g|0],n[u+1|0]=0|n[g+1|0],n[u+2|0]=0|n[g+2|0],r[l+16>>2]=3,y=+J(e),y*=+W(e),f=+a(+ +i[e>>3]),f=y/+c(+ +ge(+f,+ +a(+ +i[e+8>>3])))*6371.007180918475*6371.007180918475,e=0|r[(u=l+12|0)>>2];A:do{if((0|e)>0)do{if(gt(e+-1|0,p),!(f/+i[p>>3]>10))break A;e=(v=0|r[u>>2])+-1|0,r[u>>2]=e}while((0|v)>1)}while(0);if(St(l),r[(u=o)>>2]=0,r[u+4>>2]=0,!(!(0|(e=0|r[(u=l)>>2]))&!(0|(u=0|r[u+4>>2]))))do{XA(e,u,t,p),g=p,g=0|te(0|r[(A=o)>>2],0|r[A+4>>2],0|r[g>>2],0|r[g+4>>2]),A=0|B(),r[(v=o)>>2]=g,r[v+4>>2]=A,St(l),e=0|r[(v=l)>>2],u=0|r[v+4>>2]}while(!(!(0|e)&!(0|u)));e=0|r[h>>2]}}while(0);return Q=s,0|(v=e)},_memcpy:de,_memset:ye,_originToDirectedEdges:function(A,t,e){e|=0;var n,i=0;return n=!(0|VA(A|=0,t|=0)),t&=-2130706433,r[(i=e)>>2]=n?A:0,r[i+4>>2]=n?285212672|t:0,r[(i=e+8|0)>>2]=A,r[i+4>>2]=301989888|t,r[(i=e+16|0)>>2]=A,r[i+4>>2]=318767104|t,r[(i=e+24|0)>>2]=A,r[i+4>>2]=335544320|t,r[(i=e+32|0)>>2]=A,r[i+4>>2]=352321536|t,r[(e=e+40|0)>>2]=A,r[e+4>>2]=369098752|t,0},_pentagonCount:function(){return 12},_polygonToCells:function(A,t,e,n){A|=0,t|=0,n|=0;var i,o,l,s,a=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0,v=0,m=0,w=0,b=0,E=0,_=0,x=0,M=0,k=0,S=0,C=0,P=0,D=0,I=0,T=0,O=0,R=0,N=0;if(s=Q,Q=Q+112|0,i=s+80|0,h=s+72|0,o=s,l=s+56|0,0|(a=0|Qt(e|=0)))return Q=s,0|(N=a);if(!(N=0|Kt(32+(r[(g=A+8|0)>>2]<<5)|0)))return Q=s,0|(N=13);if(It(A,N),!(a=0|Qt(e))){if(R=0|r[(O=A)+4>>2],r[(a=h)>>2]=r[O>>2],r[a+4>>2]=R,Dt(h,i),a=0|eA(i,t,o))O=0,R=0;else{if(a=0|r[h>>2],(0|(u=0|r[g>>2]))>0){f=0|r[A+12>>2],e=0;do{a=(0|r[f+(e<<3)>>2])+a|0,e=e+1|0}while((0|e)!=(0|u));e=a}else e=a;u=0|r[(a=o)>>2],(0|(a=0|r[a+4>>2]))<(0|(f=((0|e)<0)<<31>>31))|(0|a)==(0|f)&u>>>0<e>>>0?(r[(a=o)>>2]=e,r[a+4>>2]=f,a=f):e=u,O=0|te(0|e,0|a,12,0),R=0|B(),r[(a=o)>>2]=O,r[a+4>>2]=R,a=0}if(!a){if(!(e=0|Ae(O,8)))return $t(N),Q=s,0|(N=13);if(!(c=0|Ae(O,8)))return $t(N),$t(e),Q=s,0|(N=13);r[(I=i)>>2]=0,r[I+4>>2]=0,T=0|r[(I=A)+4>>2],r[(a=h)>>2]=r[I>>2],r[a+4>>2]=T,a=0|Y(h,O,R,t,i,e,c);A:do{if(a)$t(e),$t(c),$t(N);else{t:do{if((0|r[g>>2])>0){for(f=A+12|0,u=0;a=0|Y((0|r[f>>2])+(u<<3)|0,O,R,t,i,e,c),u=u+1|0,!(0|a);)if((0|u)>=(0|r[g>>2]))break t;$t(e),$t(c),$t(N);break A}}while(0);(0|R)>0|!(0|R)&O>>>0>0&&ye(0|c,0,O<<3),I=0|r[(T=i)+4>>2];t:do{if((0|I)>0|!(0|I)&(0|r[T>>2])>>>0>0){C=e,P=c,D=e,I=c,T=e,a=e,M=e,k=c,S=c,e=c;e:for(;;){for(b=0,E=0,_=0,x=0,u=0,f=0;;){h=(c=o)+56|0;do{r[c>>2]=0,c=c+4|0}while((0|c)<(0|h));if(0|F(g=0|r[(t=C+(b<<3)|0)>>2],t=0|r[t+4>>2],1,o,0)){h=(c=o)+56|0;do{r[c>>2]=0,c=c+4|0}while((0|c)<(0|h));0|(c=0|Ae(7,4))&&(L(g,t,1,o,c,7,0,0),$t(c))}for(w=0;;){v=0|r[(m=o+(w<<3)|0)>>2],m=0|r[m+4>>2];n:do{if(!(0|v)&!(0|m))c=u,h=f;else{if(p=0|se(0|v,0|m,0|O,0|R),g=0|B(),!(!(0|(h=0|r[(t=c=n+(p<<3)|0)>>2]))&!(0|(t=0|r[t+4>>2])))){d=0,y=0;do{if((0|d)>(0|R)|(0|d)==(0|R)&y>>>0>O>>>0)break e;if((0|h)==(0|v)&(0|t)==(0|m)){c=u,h=f;break n}p=0|le(0|(c=0|te(0|p,0|g,1,0)),0|B(),0|O,0|R),g=0|B(),y=0|te(0|y,0|d,1,0),d=0|B(),h=0|r[(t=c=n+(p<<3)|0)>>2],t=0|r[t+4>>2]}while(!(!(0|h)&!(0|t)))}if(!(0|v)&!(0|m)){c=u,h=f;break}rt(v,m,l),0|Tt(A,N,l)&&(y=0|te(0|u,0|f,1,0),f=0|B(),r[(d=c)>>2]=v,r[d+4>>2]=m,r[(u=P+(u<<3)|0)>>2]=v,r[u+4>>2]=m,u=y),c=u,h=f}}while(0);if((w=w+1|0)>>>0>=7)break;u=c,f=h}if(b=0|te(0|b,0|E,1,0),E=0|B(),_=0|te(0|_,0|x,1,0),x=0|B(),u=0|r[(f=i)>>2],!((0|x)<(0|(f=0|r[f+4>>2]))|(0|x)==(0|f)&_>>>0<u>>>0))break;u=c,f=h}if((0|f)>0|!(0|f)&u>>>0>0){u=0,f=0;do{r[(x=C+(u<<3)|0)>>2]=0,r[x+4>>2]=0,u=0|te(0|u,0|f,1,0),f=0|B(),_=0|r[(x=i)+4>>2]}while((0|f)<(0|_)|((0|f)==(0|_)?u>>>0<(0|r[x>>2])>>>0:0))}if(r[(x=i)>>2]=c,r[x+4>>2]=h,!((0|h)>0|!(0|h)&c>>>0>0))break t;w=e,b=S,E=T,_=k,x=P,e=M,S=a,k=D,M=w,a=b,T=I,I=E,D=_,P=C,C=x}$t(D),$t(I),$t(N),a=1;break A}a=c}while(0);$t(N),$t(e),$t(a),a=0}}while(0);return Q=s,0|(N=a)}}return $t(N),Q=s,0|(N=a)},_polygonToCellsExperimental:function(A,t,e,n,i,o){n|=0,i|=0,o|=0;var l,s,a,u=0,f=0,c=0,h=0,g=0,p=0,d=0,y=0;a=Q,Q=Q+160|0,f=a+64|0,g=a+112|0,y=a,kt(h=a+80|0,A|=0,t|=0,e|=0),lt(f,0|r[(c=h)>>2],0|r[c+4>>2],t),l=0|r[(c=f)>>2],c=0|r[c+4>>2],u=0|r[h+8>>2],r[(p=g+4|0)>>2]=r[h>>2],r[p+4>>2]=r[h+4>>2],r[p+8>>2]=r[h+8>>2],r[p+12>>2]=r[h+12>>2],r[p+16>>2]=r[h+16>>2],r[p+20>>2]=r[h+20>>2],r[p+24>>2]=r[h+24>>2],r[p+28>>2]=r[h+28>>2],r[(p=y)>>2]=l,r[p+4>>2]=c,r[(p=y+8|0)>>2]=u,t=g,e=(A=y+12|0)+36|0;do{r[A>>2]=r[t>>2],A=A+4|0,t=t+4|0}while((0|A)<(0|e));if(r[(g=y+48|0)>>2]=r[f>>2],r[g+4>>2]=r[f+4>>2],r[g+8>>2]=r[f+8>>2],r[g+12>>2]=r[f+12>>2],!(0|l)&!(0|c))return Q=a,0|(y=u);e=y+16|0,s=y+24|0,h=y+28|0,u=0,f=0,t=l,A=c;do{if(!((0|u)<(0|i)|(0|u)==(0|i)&f>>>0<n>>>0)){d=4;break}if(c=f,f=0|te(0|f,0|u,1,0),u=0|B(),r[(c=o+(c<<3)|0)>>2]=t,r[c+4>>2]=A,at(g),!(0|(t=0|r[(A=g)>>2]))&!(0|(A=0|r[A+4>>2]))){if(St(e),!(0|(A=0|r[(t=e)>>2]))&!(0|(t=0|r[t+4>>2]))){d=10;break}st(A,t,0|r[h>>2],g),t=0|r[(A=g)>>2],A=0|r[A+4>>2]}r[(c=y)>>2]=t,r[c+4>>2]=A}while(!(!(0|t)&!(0|A)));return 4==(0|d)?(0|(t=0|r[(A=y+40|0)>>2])&&$t(t),r[(d=y+16|0)>>2]=0,r[d+4>>2]=0,r[s>>2]=0,r[y+36>>2]=0,r[h>>2]=-1,r[y+32>>2]=0,r[A>>2]=0,st(0,0,0,g),r[y>>2]=0,r[y+4>>2]=0,r[p>>2]=0,Q=a,0|(y=14)):(10==(0|d)&&(r[y>>2]=0,r[y+4>>2]=0,r[p>>2]=r[s>>2]),y=0|r[p>>2],Q=a,0|y)},_readInt64AsDoubleFromPointer:function(A){return+(+((0|r[(A|=0)>>2])>>>0)+4294967296*+(0|r[A+4>>2]))},_res0CellCount:function(){return 122},_round:ve,_sbrk:me,_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,t,e,n,i,o,l){A|=0,n|=0,i|=0,o|=0;var s,a=0,u=0,f=0,c=0,h=0,g=0,p=0,d=0;if(s=Q,Q=Q+16|0,d=s,!((0|(e|=0))>0|!(0|e)&(t|=0)>>>0>0))return Q=s,0|(d=0);if((0|(l|=0))>=16)return Q=s,0|(d=12);g=0,p=0,h=0,a=0;A:for(;;){if(c=0|ue(0|(u=0|r[(f=A+(g<<3)|0)>>2]),0|(f=0|r[f+4>>2]),52),B(),(15&c)>(0|l)){a=12,u=11;break}if(lt(d,u,f,l),!(0|(f=0|r[(c=d)>>2]))&!(0|(c=0|r[c+4>>2])))u=h;else{u=h;do{if(!((0|a)<(0|o)|(0|a)==(0|o)&u>>>0<i>>>0)){u=10;break A}r[(h=n+(u<<3)|0)>>2]=f,r[h+4>>2]=c,u=0|te(0|u,0|a,1,0),a=0|B(),at(d),f=0|r[(h=d)>>2],c=0|r[h+4>>2]}while(!(!(0|f)&!(0|c)))}if(g=0|te(0|g,0|p,1,0),!((0|(p=0|B()))<(0|e)|(0|p)==(0|e)&g>>>0<t>>>0)){a=0,u=11;break}h=u}return 10==(0|u)?(Q=s,0|(d=14)):11==(0|u)?(Q=s,0|a):0},_uncompactCellsSize:function(A,t,e,n,i){A|=0,t|=0,e|=0,n|=0,i|=0;var o,l,s=0,a=0,u=0,f=0,c=0,h=0;l=Q,Q=Q+16|0,o=l;A:do{if((0|e)>0|!(0|e)&t>>>0>0){for(c=0,a=0,s=0,h=0;;){if(!(!(0|(u=0|r[(f=A+(c<<3)|0)>>2]))&!(0|(f=0|r[f+4>>2]))||(f=!(0|XA(u,f,n,o)),a=0|te(0|r[(u=o)>>2],0|r[u+4>>2],0|a,0|s),s=0|B(),f))){s=12;break}if(c=0|te(0|c,0|h,1,0),!((0|(h=0|B()))<(0|e)|(0|h)==(0|e)&c>>>0<t>>>0))break A}return Q=l,0|s}a=0,s=0}while(0);return r[i>>2]=a,r[i+4>>2]=s,Q=l,0|(i=0)},_vertexToLatLng:function(A,t,e){e|=0;var n,i,o,l,s=0,a=0;return l=Q,Q=Q+192|0,i=l,o=l+168|0,s=0|ue(0|(A|=0),0|(t|=0),56),B(),s&=7,0|(n=0|nt(A,a=-2130706433&t|134217728,o))?(Q=l,0|(a=n)):(t=0|ue(0|A,0|t,52),B(),t&=15,0|VA(A,a)?FA(o,t,s,1,i):NA(o,t,s,1,i),a=i+8|0,r[e>>2]=r[a>>2],r[e+4>>2]=r[a+4>>2],r[e+8>>2]=r[a+8>>2],r[e+12>>2]=r[a+12>>2],Q=l,0|(a=0))},establishStackSpace:function(A,t){Q=A|=0},stackAlloc:function(A){var t;return t=Q,Q=(Q=Q+(A|=0)|0)+15&-16,0|t},stackRestore:function(A){Q=A|=0},stackSave:function(){return 0|Q}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{b:function(A){y=A},c:function(){return y},d:function(A,t,e,n){pA("Assertion failed: "+P(A)+", at: "+[t?P(t):"unknown filename",e,n?P(n):"unknown function"])},e:function(A){return e.___errno_location&&(M[e.___errno_location()>>2]=A),A},f:K,g:function(A,t,e){x.set(x.subarray(t,t+e),A)},h:function(A){var t=K(),e=16777216,n=2130706432;if(A>n)return!1;for(var r=Math.max(t,16777216);r<A;)r=r<=536870912?D(2*r,e):Math.min(D((3*r+2147483648)/4,e),n);return!!function(A){try{var t=new ArrayBuffer(A);if(t.byteLength!=A)return;return new Int8Array(t).set(_),nA(t),Q(t),1}catch(A){}}(r)},i:function(A){pA("OOM")},o:28640,p:28624},E);e.___divdi3=eA.___divdi3,e.___muldi3=eA.___muldi3,e.___remdi3=eA.___remdi3,e.___uremdi3=eA.___uremdi3,e._areNeighborCells=eA._areNeighborCells,e._bitshift64Ashr=eA._bitshift64Ashr,e._bitshift64Lshr=eA._bitshift64Lshr,e._bitshift64Shl=eA._bitshift64Shl,e._calloc=eA._calloc,e._cellAreaKm2=eA._cellAreaKm2,e._cellAreaM2=eA._cellAreaM2,e._cellAreaRads2=eA._cellAreaRads2,e._cellToBoundary=eA._cellToBoundary,e._cellToCenterChild=eA._cellToCenterChild,e._cellToChildPos=eA._cellToChildPos,e._cellToChildren=eA._cellToChildren,e._cellToChildrenSize=eA._cellToChildrenSize,e._cellToLatLng=eA._cellToLatLng,e._cellToLocalIj=eA._cellToLocalIj,e._cellToParent=eA._cellToParent,e._cellToVertex=eA._cellToVertex,e._cellToVertexes=eA._cellToVertexes,e._cellsToDirectedEdge=eA._cellsToDirectedEdge,e._cellsToLinkedMultiPolygon=eA._cellsToLinkedMultiPolygon,e._childPosToCell=eA._childPosToCell,e._compactCells=eA._compactCells,e._constructCell=eA._constructCell,e._destroyLinkedMultiPolygon=eA._destroyLinkedMultiPolygon,e._directedEdgeToBoundary=eA._directedEdgeToBoundary,e._directedEdgeToCells=eA._directedEdgeToCells,e._edgeLengthKm=eA._edgeLengthKm,e._edgeLengthM=eA._edgeLengthM,e._edgeLengthRads=eA._edgeLengthRads;var nA=e._emscripten_replace_memory=eA._emscripten_replace_memory;e._free=eA._free,e._getBaseCellNumber=eA._getBaseCellNumber,e._getDirectedEdgeDestination=eA._getDirectedEdgeDestination,e._getDirectedEdgeOrigin=eA._getDirectedEdgeOrigin,e._getHexagonAreaAvgKm2=eA._getHexagonAreaAvgKm2,e._getHexagonAreaAvgM2=eA._getHexagonAreaAvgM2,e._getHexagonEdgeLengthAvgKm=eA._getHexagonEdgeLengthAvgKm,e._getHexagonEdgeLengthAvgM=eA._getHexagonEdgeLengthAvgM,e._getIcosahedronFaces=eA._getIcosahedronFaces,e._getIndexDigit=eA._getIndexDigit,e._getNumCells=eA._getNumCells,e._getPentagons=eA._getPentagons,e._getRes0Cells=eA._getRes0Cells,e._getResolution=eA._getResolution,e._greatCircleDistanceKm=eA._greatCircleDistanceKm,e._greatCircleDistanceM=eA._greatCircleDistanceM,e._greatCircleDistanceRads=eA._greatCircleDistanceRads,e._gridDisk=eA._gridDisk,e._gridDiskDistances=eA._gridDiskDistances,e._gridDistance=eA._gridDistance,e._gridPathCells=eA._gridPathCells,e._gridPathCellsSize=eA._gridPathCellsSize,e._gridRing=eA._gridRing,e._gridRingUnsafe=eA._gridRingUnsafe,e._i64Add=eA._i64Add,e._i64Subtract=eA._i64Subtract,e._isPentagon=eA._isPentagon,e._isResClassIII=eA._isResClassIII,e._isValidCell=eA._isValidCell,e._isValidDirectedEdge=eA._isValidDirectedEdge,e._isValidIndex=eA._isValidIndex,e._isValidVertex=eA._isValidVertex,e._latLngToCell=eA._latLngToCell,e._llvm_ctlz_i64=eA._llvm_ctlz_i64,e._llvm_maxnum_f64=eA._llvm_maxnum_f64,e._llvm_minnum_f64=eA._llvm_minnum_f64,e._llvm_round_f64=eA._llvm_round_f64,e._localIjToCell=eA._localIjToCell,e._malloc=eA._malloc,e._maxFaceCount=eA._maxFaceCount,e._maxGridDiskSize=eA._maxGridDiskSize,e._maxPolygonToCellsSize=eA._maxPolygonToCellsSize,e._maxPolygonToCellsSizeExperimental=eA._maxPolygonToCellsSizeExperimental,e._memcpy=eA._memcpy,e._memset=eA._memset,e._originToDirectedEdges=eA._originToDirectedEdges,e._pentagonCount=eA._pentagonCount,e._polygonToCells=eA._polygonToCells,e._polygonToCellsExperimental=eA._polygonToCellsExperimental,e._readInt64AsDoubleFromPointer=eA._readInt64AsDoubleFromPointer,e._res0CellCount=eA._res0CellCount,e._round=eA._round,e._sbrk=eA._sbrk,e._sizeOfCellBoundary=eA._sizeOfCellBoundary,e._sizeOfCoordIJ=eA._sizeOfCoordIJ,e._sizeOfGeoLoop=eA._sizeOfGeoLoop,e._sizeOfGeoPolygon=eA._sizeOfGeoPolygon,e._sizeOfH3Index=eA._sizeOfH3Index,e._sizeOfLatLng=eA._sizeOfLatLng,e._sizeOfLinkedGeoPolygon=eA._sizeOfLinkedGeoPolygon,e._uncompactCells=eA._uncompactCells,e._uncompactCellsSize=eA._uncompactCellsSize,e._vertexToLatLng=eA._vertexToLatLng,e.establishStackSpace=eA.establishStackSpace;var rA,iA,oA=e.stackAlloc=eA.stackAlloc,lA=e.stackRestore=eA.stackRestore,sA=e.stackSave=eA.stackSave;if(e.asm=eA,e.cwrap=function(A,t,e,n){var r=(e=e||[]).every(function(A){return"number"===A});return"string"!==t&&r&&!n?w(A):function(){return b(A,t,e,arguments)}},e.setValue=function(A,t,e,n){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":_[A|0]=t;break;case"i16":B[A>>1]=t;break;case"i32":M[A>>2]=t;break;case"i64":q=[t>>>0,(H=t,+Y(H)>=1?H>0?(0|j(+U(H/4294967296),4294967295))>>>0:~~+z((H-+(~~H>>>0))/4294967296)>>>0:0)],M[A>>2]=q[0],M[A+4>>2]=q[1];break;case"float":k[A>>2]=t;break;case"double":S[A>>3]=t;break;default:pA("invalid type for setValue: "+e)}},e.getValue=function(A,t,e){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return _[A|0];case"i16":return B[A>>1];case"i32":case"i64":return M[A>>2];case"float":return k[A>>2];case"double":return S[A>>3];default:pA("invalid type for getValue: "+t)}return null},W)if(J(W)||(rA=W,W=e.locateFile?e.locateFile(rA,g):g+rA),o||s){var aA=f(W);x.set(aA,8)}else{X++,e.monitorRunDependencies&&e.monitorRunDependencies(X);var uA=function(A){A.byteLength&&(A=new Uint8Array(A)),x.set(A,8),e.memoryInitializerRequest&&delete e.memoryInitializerRequest.response,function(){if(X--,e.monitorRunDependencies&&e.monitorRunDependencies(X),0==X&&V){var A=V;V=null,A()}}()},fA=function(){u(W,uA,function(){throw"could not load memory initializer "+W})},cA=tA(W);if(cA)uA(cA.buffer);else if(e.memoryInitializerRequest){var hA=function(){var A=e.memoryInitializerRequest,t=A.response;if(200!==A.status&&0!==A.status){var n=tA(e.memoryInitializerRequestURL);if(!n)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+W),void fA();t=n.buffer}uA(t)};e.memoryInitializerRequest.response?setTimeout(hA,0):e.memoryInitializerRequest.addEventListener("load",hA)}else fA()}function gA(A){function t(){iA||(iA=!0,v||(T(L),T(O),e.onRuntimeInitialized&&e.onRuntimeInitialized(),function(){if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;)G(e.postRun.shift());T(R)}()))}X>0||(!function(){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)N(e.preRun.shift());T(F)}(),X>0||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),t()},1)):t()))}function pA(A){throw e.onAbort&&e.onAbort(A),p(A+=""),d(A),v=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(V=function A(){iA||gA(),iA||(V=A)},e.run=gA,e.abort=pA,e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return gA(),A}("object"==typeof DA?DA:{}),QA="number",IA={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",16:"Index argument was not valid",17:"Base cell number was outside of acceptable range",18:"Child indexing digits invalid",19:"Child indexing digits refer to a deleted subsequence"},TA=1e3,FA={1e3:"Unknown unit",1001:"Array length out of bounds",1002:"Got unexpected null value for H3 index"};function LA(A,t,e){var n=e&&"value"in e,r=new Error((A[t]||"Unknown error")+" (code: "+t+(n?", value: "+e.value:"")+")");return r.code=t,r}function OA(A,t){return LA(IA,A,2===arguments.length?{value:t}:{})}function RA(A,t){return LA(FA,A,2===arguments.length?{value:t}:{})}function NA(A){if(0!==A)throw OA(A)}var GA={};[["sizeOfH3Index",QA],["sizeOfLatLng",QA],["sizeOfCellBoundary",QA],["sizeOfGeoLoop",QA],["sizeOfGeoPolygon",QA],["sizeOfLinkedGeoPolygon",QA],["sizeOfCoordIJ",QA],["readInt64AsDoubleFromPointer",QA],["isValidCell",QA,[QA,QA]],["isValidIndex",QA,[QA,QA]],["latLngToCell",QA,[QA,QA,QA,QA]],["cellToLatLng",QA,[QA,QA,QA]],["cellToBoundary",QA,[QA,QA,QA]],["maxGridDiskSize",QA,[QA,QA]],["gridDisk",QA,[QA,QA,QA,QA]],["gridDiskDistances",QA,[QA,QA,QA,QA,QA]],["gridRing",QA,[QA,QA,QA,QA]],["gridRingUnsafe",QA,[QA,QA,QA,QA]],["maxPolygonToCellsSize",QA,[QA,QA,QA,QA]],["polygonToCells",QA,[QA,QA,QA,QA]],["maxPolygonToCellsSizeExperimental",QA,[QA,QA,QA,QA]],["polygonToCellsExperimental",QA,[QA,QA,QA,QA,QA,QA]],["cellsToLinkedMultiPolygon",QA,[QA,QA,QA]],["destroyLinkedMultiPolygon",null,[QA]],["compactCells",QA,[QA,QA,QA,QA]],["uncompactCells",QA,[QA,QA,QA,QA,QA,QA]],["uncompactCellsSize",QA,[QA,QA,QA,QA,QA]],["isPentagon",QA,[QA,QA]],["isResClassIII",QA,[QA,QA]],["getBaseCellNumber",QA,[QA,QA]],["getResolution",QA,[QA,QA]],["getIndexDigit",QA,[QA,QA,QA]],["constructCell",QA,[QA,QA,QA,QA]],["maxFaceCount",QA,[QA,QA,QA]],["getIcosahedronFaces",QA,[QA,QA,QA]],["cellToParent",QA,[QA,QA,QA,QA]],["cellToChildren",QA,[QA,QA,QA,QA]],["cellToCenterChild",QA,[QA,QA,QA,QA]],["cellToChildrenSize",QA,[QA,QA,QA,QA]],["cellToChildPos",QA,[QA,QA,QA,QA]],["childPosToCell",QA,[QA,QA,QA,QA,QA,QA]],["areNeighborCells",QA,[QA,QA,QA,QA,QA]],["cellsToDirectedEdge",QA,[QA,QA,QA,QA,QA]],["getDirectedEdgeOrigin",QA,[QA,QA,QA]],["getDirectedEdgeDestination",QA,[QA,QA,QA]],["isValidDirectedEdge",QA,[QA,QA]],["directedEdgeToCells",QA,[QA,QA,QA]],["originToDirectedEdges",QA,[QA,QA,QA]],["directedEdgeToBoundary",QA,[QA,QA,QA]],["gridDistance",QA,[QA,QA,QA,QA,QA]],["gridPathCells",QA,[QA,QA,QA,QA,QA]],["gridPathCellsSize",QA,[QA,QA,QA,QA,QA]],["cellToLocalIj",QA,[QA,QA,QA,QA,QA,QA]],["localIjToCell",QA,[QA,QA,QA,QA,QA]],["getHexagonAreaAvgM2",QA,[QA,QA]],["getHexagonAreaAvgKm2",QA,[QA,QA]],["getHexagonEdgeLengthAvgM",QA,[QA,QA]],["getHexagonEdgeLengthAvgKm",QA,[QA,QA]],["greatCircleDistanceM",QA,[QA,QA]],["greatCircleDistanceKm",QA,[QA,QA]],["greatCircleDistanceRads",QA,[QA,QA]],["cellAreaM2",QA,[QA,QA,QA]],["cellAreaKm2",QA,[QA,QA,QA]],["cellAreaRads2",QA,[QA,QA,QA]],["edgeLengthM",QA,[QA,QA,QA]],["edgeLengthKm",QA,[QA,QA,QA]],["edgeLengthRads",QA,[QA,QA,QA]],["getNumCells",QA,[QA,QA]],["getRes0Cells",QA,[QA]],["res0CellCount",QA],["getPentagons",QA,[QA,QA]],["pentagonCount",QA],["cellToVertex",QA,[QA,QA,QA,QA]],["cellToVertexes",QA,[QA,QA,QA]],["vertexToLatLng",QA,[QA,QA,QA]],["isValidVertex",QA,[QA,QA]]].forEach(function(A){GA[A[0]]=DA.cwrap.apply(DA,A)});var YA=16,zA=GA.sizeOfH3Index(),UA=GA.sizeOfLatLng(),jA=GA.sizeOfCellBoundary(),XA=GA.sizeOfGeoPolygon(),VA=GA.sizeOfGeoLoop(),HA=GA.sizeOfLinkedGeoPolygon(),qA=GA.sizeOfCoordIJ(),WA={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"},ZA={containmentCenter:"containmentCenter",containmentFull:"containmentFull",containmentOverlapping:"containmentOverlapping",containmentOverlappingBbox:"containmentOverlappingBbox"};function JA(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw OA(4,A);return A}function KA(A){if(!A)throw RA(1002);return A}var $A=Math.pow(2,32)-1;function At(A){if(A>$A)throw RA(1001,A);return A}var tt=/[^0-9a-fA-F]/;function et(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||tt.test(A))return[0,0];var t=parseInt(A.substring(0,A.length-8),YA);return[parseInt(A.substring(A.length-8),YA),t]}function nt(A){if(A>=0)return A.toString(YA);var t=it(8,(A&=2147483647).toString(YA));return t=(parseInt(t[0],YA)+8).toString(YA)+t.substring(1)}function rt(A,t){return nt(t)+it(8,nt(A))}function it(A,t){for(var e=A-t.length,n="",r=0;r<e;r++)n+="0";return n+=t}var ot=Math.pow(2,32);function lt(A,t,e){for(var n=A.length,r=DA._calloc(n,UA),i=e?1:0,o=e?0:1,l=0;l<2*n;l+=2)DA.HEAPF64.set([A[l/2][i],A[l/2][o]].map(kt),r/8+l);return DA.HEAPU32.set([n,r],t/4),t}function st(A,t){var e,n=A.length-1,r=DA._calloc(XA),i=0+VA,o=i+4;if(lt(A[0],r+0,t),n>0){e=DA._calloc(n,VA);for(var l=0;l<n;l++)lt(A[l+1],e+VA*l,t)}return DA.setValue(r+i,n,"i32"),DA.setValue(r+o,e,"i32"),r}function at(A){var t=0+VA,e=t+4;DA._free(DA.getValue(A+0+4,"i8*"));var n=DA.getValue(A+t,"i32");if(n>0){for(var r=DA.getValue(A+e,"i32"),i=0;i<n;i++)DA._free(DA.getValue(r+VA*i+4,"i8*"));DA._free(r)}DA._free(A)}function ut(A,t){void 0===t&&(t=0);var e=DA.getValue(A+zA*t,"i32"),n=DA.getValue(A+zA*t+4,"i32");return n?rt(e,n):null}function ft(A,t){return void 0===t&&(t=0),DA.getValue(A+8*t,"double")}function ct(A){return GA.readInt64AsDoubleFromPointer(A)}function ht(A,t,e){DA.HEAPU32.set(et(A),t/4+2*e)}function gt(A,t){for(var e=[],n=0;n<t;n++){var r=ut(A,n);null!==r&&e.push(r)}return e}function pt(A,t){for(var e=t.length,n=0;n<e;n++)ht(t[n],A,n)}function dt(A,t){var e=DA._calloc(1,UA);return DA.HEAPF64.set([A,t].map(kt),e/8),e}function yt(A){return St(DA.getValue(A,"double"))}function vt(A){return[yt(A),yt(A+8)]}function mt(A){return[yt(A+8),yt(A)]}function wt(A,t,e){for(var n=DA.getValue(A,"i32"),r=A+8,i=[],o=t?mt:vt,l=0;l<2*n;l+=2)i.push(o(r+8*l));return e&&i.push(i[0]),i}function bt(A){var t=et(A),e=t[0],n=t[1];return Boolean(GA.isValidCell(e,n))}function Et(A){var t=et(A),e=t[0],n=t[1];return Boolean(GA.isPentagon(e,n))}function _t(A,t){var e=DA._malloc(jA),n=et(A),r=n[0],i=n[1];try{return NA(GA.cellToBoundary(r,i,e)),wt(e,t,t)}finally{DA._free(e)}}function xt(A,t){if(!bt(A))return[];var e=et(A),n=e[0],r=e[1],i=At(Bt(A,t)),o=DA._calloc(i,zA);try{return NA(GA.cellToChildren(n,r,t,o)),gt(o,i)}finally{DA._free(o)}}function Bt(A,t){if(!bt(A))throw OA(5);var e=et(A),n=e[0],r=e[1],i=DA._malloc(8);try{return NA(GA.cellToChildrenSize(n,r,t,i)),ct(i)}finally{DA._free(i)}}function Mt(){var A=GA.res0CellCount(),t=DA._malloc(zA*A);try{return NA(GA.getRes0Cells(t)),gt(t,A)}finally{DA._free(t)}}function kt(A){return A*Math.PI/180}function St(A){return 180*A/Math.PI}var Ct=Object.freeze({__proto__:null,POLYGON_TO_CELLS_FLAGS:ZA,UNITS:WA,areNeighborCells:function(A,t){var e=et(A),n=e[0],r=e[1],i=et(t),o=i[0],l=i[1],s=DA._malloc(4);try{return NA(GA.areNeighborCells(n,r,o,l,s)),function(A,t){void 0===t&&(t=0);var e=DA.getValue(A+4*t,"i32");return Boolean(e)}(s)}finally{DA._free(s)}},cellArea:function(A,t){var e=et(A),n=e[0],r=e[1],i=DA._malloc(8);try{switch(t){case WA.m2:NA(GA.cellAreaM2(n,r,i));break;case WA.km2:NA(GA.cellAreaKm2(n,r,i));break;case WA.rads2:NA(GA.cellAreaRads2(n,r,i));break;default:throw RA(TA,t)}return ft(i)}finally{DA._free(i)}},cellToBoundary:_t,cellToCenterChild:function(A,t){var e=et(A),n=e[0],r=e[1],i=DA._malloc(zA);try{return NA(GA.cellToCenterChild(n,r,t,i)),KA(ut(i))}finally{DA._free(i)}},cellToChildPos:function(A,t){var e=et(A),n=e[0],r=e[1],i=DA._malloc(8);try{return NA(GA.cellToChildPos(n,r,t,i)),ct(i)}finally{DA._free(i)}},cellToChildren:xt,cellToChildrenSize:Bt,cellToLatLng:function(A){var t=DA._malloc(UA),e=et(A),n=e[0],r=e[1];try{return NA(GA.cellToLatLng(n,r,t)),vt(t)}finally{DA._free(t)}},cellToLocalIj:function(A,t){var e,n=DA._malloc(qA);try{return NA(GA.cellToLocalIj.apply(GA,et(A).concat(et(t),[0],[n]))),e=n,{i:DA.getValue(e,"i32"),j:DA.getValue(e+4,"i32")}}finally{DA._free(n)}},cellToParent:function(A,t){var e=et(A),n=e[0],r=e[1],i=DA._malloc(zA);try{return NA(GA.cellToParent(n,r,t,i)),KA(ut(i))}finally{DA._free(i)}},cellToVertex:function(A,t){var e=et(A),n=e[0],r=e[1],i=DA._malloc(zA);try{return NA(GA.cellToVertex(n,r,t,i)),KA(ut(i))}finally{DA._free(i)}},cellToVertexes:function(A){var t=et(A),e=t[0],n=t[1],r=DA._calloc(6,zA);try{return NA(GA.cellToVertexes(e,n,r)),gt(r,6)}finally{DA._free(r)}},cellsToDirectedEdge:function(A,t){var e=et(A),n=e[0],r=e[1],i=et(t),o=i[0],l=i[1],s=DA._malloc(zA);try{return NA(GA.cellsToDirectedEdge(n,r,o,l,s)),KA(ut(s))}finally{DA._free(s)}},cellsToMultiPolygon:function(A,t){if(!A||!A.length)return[];var e=A.length,n=DA._calloc(e,zA);pt(n,A);var r=DA._calloc(HA);try{return NA(GA.cellsToLinkedMultiPolygon(n,e,r)),function(A,t){for(var e,n,r,i,o=[],l=t?mt:vt;A;){for(o.push(e=[]),n=DA.getValue(A,"i8*");n;){for(e.push(r=[]),i=DA.getValue(n,"i8*");i;)r.push(l(i)),i=DA.getValue(i+16,"i8*");t&&r.push(r[0]),n=DA.getValue(n+8,"i8*")}A=DA.getValue(A+8,"i8*")}return o}(r,t)}finally{GA.destroyLinkedMultiPolygon(r),DA._free(r),DA._free(n)}},childPosToCell:function(A,t,e){var n,r="number"!=typeof(n=A)?[0,0]:[0|n,n/ot|0],i=r[0],o=r[1],l=et(t),s=l[0],a=l[1],u=DA._malloc(zA);try{return NA(GA.childPosToCell(i,o,s,a,e,u)),KA(ut(u))}finally{DA._free(u)}},compactCells:function(A){if(!A||!A.length)return[];var t=A.length,e=DA._calloc(t,zA);pt(e,A);var n=DA._calloc(t,zA);try{return NA(GA.compactCells(e,n,t,0)),gt(n,t)}finally{DA._free(e),DA._free(n)}},constructCell:function(A,t,e){if(void 0===e&&(e=t.length),t.length!==e)throw OA(18,t.length);if(t.length>15)throw OA(18,t.length);var n=DA._malloc(4*t.length),r=DA._malloc(zA);try{return t.forEach(function(A,t){DA.setValue(n+4*t,A,"i32")}),NA(GA.constructCell(e,A,n,r)),KA(ut(r))}finally{DA._free(r),DA._free(n)}},degsToRads:kt,directedEdgeToBoundary:function(A,t){var e=DA._malloc(jA),n=et(A),r=n[0],i=n[1];try{return NA(GA.directedEdgeToBoundary(r,i,e)),wt(e,t)}finally{DA._free(e)}},directedEdgeToCells:function(A){var t=et(A),e=t[0],n=t[1],r=DA._calloc(2,zA);try{return NA(GA.directedEdgeToCells(e,n,r)),gt(r,2)}finally{DA._free(r)}},edgeLength:function(A,t){var e=et(A),n=e[0],r=e[1],i=DA._malloc(8);try{switch(t){case WA.m:NA(GA.edgeLengthM(n,r,i));break;case WA.km:NA(GA.edgeLengthKm(n,r,i));break;case WA.rads:NA(GA.edgeLengthRads(n,r,i));break;default:throw RA(TA,t)}return ft(i)}finally{DA._free(i)}},getBaseCellNumber:function(A){var t=et(A),e=t[0],n=t[1];return GA.getBaseCellNumber(e,n)},getDirectedEdgeDestination:function(A){var t=et(A),e=t[0],n=t[1],r=DA._malloc(zA);try{return NA(GA.getDirectedEdgeDestination(e,n,r)),KA(ut(r))}finally{DA._free(r)}},getDirectedEdgeOrigin:function(A){var t=et(A),e=t[0],n=t[1],r=DA._malloc(zA);try{return NA(GA.getDirectedEdgeOrigin(e,n,r)),KA(ut(r))}finally{DA._free(r)}},getHexagonAreaAvg:function(A,t){JA(A);var e=DA._malloc(8);try{switch(t){case WA.m2:NA(GA.getHexagonAreaAvgM2(A,e));break;case WA.km2:NA(GA.getHexagonAreaAvgKm2(A,e));break;default:throw RA(TA,t)}return ft(e)}finally{DA._free(e)}},getHexagonEdgeLengthAvg:function(A,t){JA(A);var e=DA._malloc(8);try{switch(t){case WA.m:NA(GA.getHexagonEdgeLengthAvgM(A,e));break;case WA.km:NA(GA.getHexagonEdgeLengthAvgKm(A,e));break;default:throw RA(TA,t)}return ft(e)}finally{DA._free(e)}},getIcosahedronFaces:function(A){var t=et(A),e=t[0],n=t[1],r=DA._malloc(4);try{NA(GA.maxFaceCount(e,n,r));var i=DA.getValue(r,"i32"),o=DA._malloc(4*i);try{return NA(GA.getIcosahedronFaces(e,n,o)),function(A,t){for(var e=[],n=0;n<t;n++){var r=DA.getValue(A+4*n,"i32");r>=0&&e.push(r)}return e}(o,i)}finally{DA._free(o)}}finally{DA._free(r)}},getIndexDigit:function(A,t){var e=DA._malloc(4),n=et(A),r=n[0],i=n[1];try{return NA(GA.getIndexDigit(r,i,t,e)),DA.getValue(e,"i32")}finally{DA._free(e)}},getNumCells:function(A){JA(A);var t=DA._malloc(8);try{return NA(GA.getNumCells(A,t)),ct(t)}finally{DA._free(t)}},getPentagons:function(A){JA(A);var t=GA.pentagonCount(),e=DA._malloc(zA*t);try{return NA(GA.getPentagons(A,e)),gt(e,t)}finally{DA._free(e)}},getRes0Cells:Mt,getResolution:function(A){var t=et(A),e=t[0],n=t[1];return GA.isValidCell(e,n)?GA.getResolution(e,n):-1},greatCircleDistance:function(A,t,e){var n,r=dt(A[0],A[1]),i=dt(t[0],t[1]);switch(e){case WA.m:n=GA.greatCircleDistanceM(r,i);break;case WA.km:n=GA.greatCircleDistanceKm(r,i);break;case WA.rads:n=GA.greatCircleDistanceRads(r,i);break;default:n=null}if(DA._free(r),DA._free(i),null===n)throw RA(TA,e);return n},gridDisk:function(A,t){var e=et(A),n=e[0],r=e[1],i=DA._malloc(8);try{NA(GA.maxGridDiskSize(t,i));var o=At(ct(i)),l=DA._calloc(o,zA);try{return NA(GA.gridDisk(n,r,t,l)),gt(l,o)}finally{DA._free(l)}}finally{DA._free(i)}},gridDiskDistances:function(A,t){var e=et(A),n=e[0],r=e[1],i=DA._malloc(8);try{NA(GA.maxGridDiskSize(t,i));var o=At(ct(i)),l=DA._calloc(o,zA),s=DA._calloc(o,4);try{NA(GA.gridDiskDistances(n,r,t,l,s));for(var a=[],u=0;u<t+1;u++)a.push([]);for(var f=0;f<o;f++){var c=ut(l,f),h=DA.getValue(s+4*f,"i32");null!==c&&a[h].push(c)}return a}finally{DA._free(l),DA._free(s)}}finally{DA._free(i)}},gridDistance:function(A,t){var e=et(A),n=e[0],r=e[1],i=et(t),o=i[0],l=i[1],s=DA._malloc(8);try{return NA(GA.gridDistance(n,r,o,l,s)),ct(s)}finally{DA._free(s)}},gridPathCells:function(A,t){var e=et(A),n=e[0],r=e[1],i=et(t),o=i[0],l=i[1],s=DA._malloc(8);try{NA(GA.gridPathCellsSize(n,r,o,l,s));var a=At(ct(s)),u=DA._calloc(a,zA);try{return GA.gridPathCells(n,r,o,l,u),gt(u,a)}finally{DA._free(u)}}finally{DA._free(s)}},gridRing:function(A,t){var e=0===t?1:6*t,n=DA._calloc(e,zA);try{return NA(GA.gridRing.apply(GA,et(A).concat([t],[n]))),gt(n,e)}finally{DA._free(n)}},gridRingUnsafe:function(A,t){var e=0===t?1:6*t,n=DA._calloc(e,zA);try{return NA(GA.gridRingUnsafe.apply(GA,et(A).concat([t],[n]))),gt(n,e)}finally{DA._free(n)}},h3IndexToSplitLong:et,isPentagon:Et,isResClassIII:function(A){var t=et(A),e=t[0],n=t[1];return Boolean(GA.isResClassIII(e,n))},isValidCell:bt,isValidDirectedEdge:function(A){var t=et(A),e=t[0],n=t[1];return Boolean(GA.isValidDirectedEdge(e,n))},isValidIndex:function(A){var t=et(A),e=t[0],n=t[1];return Boolean(GA.isValidIndex(e,n))},isValidVertex:function(A){var t=et(A),e=t[0],n=t[1];return Boolean(GA.isValidVertex(e,n))},latLngToCell:function(A,t,e){var n=DA._malloc(UA);DA.HEAPF64.set([A,t].map(kt),n/8);var r=DA._malloc(zA);try{return NA(GA.latLngToCell(n,e,r)),KA(ut(r))}finally{DA._free(r),DA._free(n)}},localIjToCell:function(A,t){if(!t||"number"!=typeof t.i||"number"!=typeof t.j)throw new Error("Coordinates must be provided as an {i, j} object");var e,n,r,i,o=DA._malloc(qA),l=DA._malloc(zA);e=o,r=(n=t).i,i=n.j,DA.setValue(e,r,"i32"),DA.setValue(e+4,i,"i32");try{return NA(GA.localIjToCell.apply(GA,et(A).concat([o],[0],[l]))),KA(ut(l))}finally{DA._free(o),DA._free(l)}},originToDirectedEdges:function(A){var t=et(A),e=t[0],n=t[1],r=DA._calloc(6,zA);try{return NA(GA.originToDirectedEdges(e,n,r)),gt(r,6)}finally{DA._free(r)}},polygonToCells:function(A,t,e){if(JA(t),e=Boolean(e),0===A.length||0===A[0].length)return[];var n=st("number"==typeof A[0][0]?[A]:A,e),r=DA._malloc(8);try{NA(GA.maxPolygonToCellsSize(n,t,0,r));var i=At(ct(r)),o=DA._calloc(i,zA);try{return NA(GA.polygonToCells(n,t,0,o)),gt(o,i)}finally{DA._free(o)}}finally{DA._free(r),at(n)}},polygonToCellsExperimental:function(A,t,e,n){JA(t),n=Boolean(n);var r=function(A){switch(A){case ZA.containmentCenter:return 0;case ZA.containmentFull:return 1;case ZA.containmentOverlapping:return 2;case ZA.containmentOverlappingBbox:return 3;default:throw RA(15,A)}}(e);if(0===A.length||0===A[0].length)return[];var i=st("number"==typeof A[0][0]?[A]:A,n),o=DA._malloc(8);try{NA(GA.maxPolygonToCellsSizeExperimental(i,t,r,o));var l=At(ct(o)),s=DA._calloc(l,zA);try{return NA(GA.polygonToCellsExperimental(i,t,r,l,0,s)),gt(s,l)}finally{DA._free(s)}}finally{DA._free(o),at(i)}},radsToDegs:St,splitLongToH3Index:rt,uncompactCells:function(A,t){if(JA(t),!A||!A.length)return[];var e=A.length,n=DA._calloc(e,zA);pt(n,A);var r=DA._malloc(8);try{NA(GA.uncompactCellsSize(n,e,0,t,r));var i=At(ct(r)),o=DA._calloc(i,zA);try{return NA(GA.uncompactCells(n,e,0,o,i,0,t)),gt(o,i)}finally{DA._free(n),DA._free(o)}}finally{DA._free(r)}},vertexToLatLng:function(A){var t=DA._malloc(UA),e=et(A),n=e[0],r=e[1];try{return NA(GA.vertexToLatLng(n,r,t)),vt(t)}finally{DA._free(t)}}});function Pt(A){if(A.__esModule)return A;var t=A.default;if("function"==typeof t){var e=function A(){return this instanceof A?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};e.prototype=t.prototype}else e={};return Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(A).forEach(function(t){var n=Object.getOwnPropertyDescriptor(A,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:function(){return A[t]}})}),e}var Dt=Pt(Ct),Qt="Feature",It="FeatureCollection",Tt="Polygon";function Ft(A){for(var t=null,e=0;e<A.length;e++)if(null!==t)for(var n=0;n<A[e].length;n++)t.push(A[e][n]);else t=A[e];return Array.from(new Set(t))}function Lt(A,t,e){void 0===e&&(e={});var n=A.type,r=A.geometry,i=r&&r.type;if(n===It)return function(A,t){var e=A.features;if(!e)throw new Error("No features found");return Ft(e.map(function(A){return Lt(A,t)}))}(A,t);if(n!==Qt)throw new Error("Unhandled type: "+n);if("Point"===i)return[Dt.latLngToCell(r.coordinates[1],r.coordinates[0],t)];if("MultiPoint"===i)return Ft(r.coordinates.map(function(A){return[Dt.latLngToCell(A[1],A[0],t)]}));if(i!==Tt&&"MultiPolygon"!==i)throw new Error("Unhandled geometry type: "+i);return Ft((i===Tt?[r.coordinates]:r.coordinates).map(function(A){var n=Dt.polygonToCells(A,t,!0);if(n.length||!e.ensureOutput)return n;var r=function(A){for(var t=0,e=0,n=0,r=A[0],i=0;i<r.length;i++)t+=r[i][0],e+=r[i][1],n++;return[t/n,e/n]}(A),i=r[0],o=r[1];return[Dt.latLngToCell(o,i,t)]}))}function Ot(A,t){void 0===t&&(t={});var e=[Dt.cellToBoundary(A,!0)];return{type:Qt,id:A,properties:t,geometry:{type:Tt,coordinates:e}}}var Rt={featureToH3Set:Lt,h3SetToFeatureCollection:function(A,t){for(var e=[],n=0;n<A.length;n++){var r=A[n],i=t?t(r):{};e.push(Ot(r,i))}return{type:It,features:e}}};var Nt=("undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}).performance||{};function Gt(A){let t,e,n="";return function(A){return!!(!Array.isArray(A)&&"FeatureCollection"==A?.type&&Array.isArray(A?.features)&&A?.features[0]?.hasOwnProperty("type")&&A?.features[0]?.hasOwnProperty("properties")&&A?.features[0]?.hasOwnProperty("geometry"))}(A)?(n="FeatureCollection",t=A=>Yt(A),e=A=>A):function(A){return!!(Array.isArray(A)&&A.length>0&&A[0]?.hasOwnProperty("type")&&A[0]?.hasOwnProperty("properties")&&A[0]?.hasOwnProperty("geometry"))}(A)?(n="Features",t=A=>Yt({type:"FeatureCollection",features:A}),e=A=>A.features):function(A){return!("object"!=typeof A||Array.isArray(A)||null===A||!A?.hasOwnProperty("type")||!A?.hasOwnProperty("properties")||!A?.hasOwnProperty("geometry"))}(A)?(n="Feature",t=A=>Yt({type:"FeatureCollection",features:[A]}),e=A=>1==A.features.length?A.features[0]:A.features):function(A){return!!(Array.isArray(A)&&A.length>0&&A[0]?.hasOwnProperty("type")&&A[0]?.hasOwnProperty("coordinates"))}(A)?(n="Geometries",t=A=>Yt({type:"FeatureCollection",features:A.map(A=>({type:"Feature",properties:{},geometry:A}))}),e=A=>A.features.map(A=>A.geometry)):function(A){return!("object"!=typeof A||Array.isArray(A)||null===A||!A?.hasOwnProperty("type")||!A?.hasOwnProperty("coordinates"))}(A)?(n="Geometry",t=A=>Yt({type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:A}]}),e=A=>1==A.features.length?A.features[0].geometry:A.features.map(A=>A.geometry)):(n=void 0,t=A=>Yt(A),e=A=>Yt(A)),{type:n,import:t,export:e}}function Yt(A){return JSON.parse(JSON.stringify(A))}function zt(A,t){return null==A||null==t?NaN:A<t?-1:A>t?1:A>=t?0:NaN}function Ut(A,t){return null==A||null==t?NaN:t<A?-1:t>A?1:t>=A?0:NaN}function jt(A){let t,e,n;function r(A,n,r=0,i=A.length){if(r<i){if(0!==t(n,n))return i;do{const t=r+i>>>1;e(A[t],n)<0?r=t+1:i=t}while(r<i)}return r}return 2!==A.length?(t=zt,e=(t,e)=>zt(A(t),e),n=(t,e)=>A(t)-e):(t=A===zt||A===Ut?A:Xt,e=A,n=A),{left:r,center:function(A,t,e=0,i=A.length){const o=r(A,t,e,i-1);return o>e&&n(A[o-1],t)>-n(A[o],t)?o-1:o},right:function(A,n,r=0,i=A.length){if(r<i){if(0!==t(n,n))return i;do{const t=r+i>>>1;e(A[t],n)<=0?r=t+1:i=t}while(r<i)}return r}}}function Xt(){return 0}function Vt(A){return null===A?NaN:+A}Nt.now||Nt.mozNow||Nt.msNow||Nt.oNow||Nt.webkitNow;const Ht=jt(zt),qt=Ht.right,Wt=Ht.left,Zt=jt(Vt).center;var Jt=qt;const Kt=Ae(ne),$t=Ae(function(A){const t=ne(A);return(A,e,n,r,i)=>{t(A,e,0+(n<<=2),0+(r<<=2),i<<=2),t(A,e,n+1,r+1,i),t(A,e,n+2,r+2,i),t(A,e,n+3,r+3,i)}});function Ae(A){return function(t,e,n=e){if(!((e=+e)>=0))throw new RangeError("invalid rx");if(!((n=+n)>=0))throw new RangeError("invalid ry");let{data:r,width:i,height:o}=t;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((o=Math.floor(void 0!==o?o:r.length/i))>=0))throw new RangeError("invalid height");if(!i||!o||!e&&!n)return t;const l=e&&A(e),s=n&&A(n),a=r.slice();return l&&s?(te(l,a,r,i,o),te(l,r,a,i,o),te(l,a,r,i,o),ee(s,r,a,i,o),ee(s,a,r,i,o),ee(s,r,a,i,o)):l?(te(l,r,a,i,o),te(l,a,r,i,o),te(l,r,a,i,o)):s&&(ee(s,r,a,i,o),ee(s,a,r,i,o),ee(s,r,a,i,o)),t}}function te(A,t,e,n,r){for(let i=0,o=n*r;i<o;)A(t,e,i,i+=n,1)}function ee(A,t,e,n,r){for(let i=0,o=n*r;i<n;++i)A(t,e,i,i+o,n)}function ne(A){const t=Math.floor(A);if(t===A)return function(A){const t=2*A+1;return(e,n,r,i,o)=>{if(!((i-=o)>=r))return;let l=A*n[r];const s=o*A;for(let A=r,t=r+s;A<t;A+=o)l+=n[Math.min(i,A)];for(let A=r,a=i;A<=a;A+=o)l+=n[Math.min(i,A+s)],e[A]=l/t,l-=n[Math.max(r,A-s)]}}(A);const e=A-t,n=2*A+1;return(A,r,i,o,l)=>{if(!((o-=l)>=i))return;let s=t*r[i];const a=l*t,u=a+l;for(let A=i,t=i+a;A<t;A+=l)s+=r[Math.min(o,A)];for(let t=i,f=o;t<=f;t+=l)s+=r[Math.min(o,t+a)],A[t]=(s+e*(r[Math.max(i,t-u)]+r[Math.min(o,t+u)]))/n,s-=r[Math.max(i,t-a)]}}function re(A,t){let e=0;if(void 0===t)for(let t of A)null!=t&&(t=+t)>=t&&++e;else{let n=-1;for(let r of A)null!=(r=t(r,++n,A))&&(r=+r)>=r&&++e}return e}function ie(A){return 0|A.length}function oe(A){return!(A>0)}function le(A){return"object"!=typeof A||"length"in A?A:Array.from(A)}function se(A,t){let e,n=0,r=0,i=0;if(void 0===t)for(let t of A)null!=t&&(t=+t)>=t&&(e=t-r,r+=e/++n,i+=e*(t-r));else{let o=-1;for(let l of A)null!=(l=t(l,++o,A))&&(l=+l)>=l&&(e=l-r,r+=e/++n,i+=e*(l-r))}if(n>1)return i/(n-1)}function ae(A,t){const e=se(A,t);return e?Math.sqrt(e):e}function ue(A,t){let e,n;if(void 0===t)for(const t of A)null!=t&&(void 0===e?t>=t&&(e=n=t):(e>t&&(e=t),n<t&&(n=t)));else{let r=-1;for(let i of A)null!=(i=t(i,++r,A))&&(void 0===e?i>=i&&(e=n=i):(e>i&&(e=i),n<i&&(n=i)))}return[e,n]}let fe=class{constructor(){this._partials=new Float64Array(32),this._n=0}add(A){const t=this._partials;let e=0;for(let n=0;n<this._n&&n<32;n++){const r=t[n],i=A+r,o=Math.abs(A)<Math.abs(r)?A-(i-r):r-(i-A);o&&(t[e++]=o),A=i}return t[e]=A,this._n=e+1,this}valueOf(){const A=this._partials;let t,e,n,r=this._n,i=0;if(r>0){for(i=A[--r];r>0&&(t=i,e=A[--r],i=t+e,n=e-(i-t),!n););r>0&&(n<0&&A[r-1]<0||n>0&&A[r-1]>0)&&(e=2*n,t=i+e,e==t-i&&(i=t))}return i}};class ce extends Map{constructor(A,t=ye){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=A)for(const[t,e]of A)this.set(t,e)}get(A){return super.get(ge(this,A))}has(A){return super.has(ge(this,A))}set(A,t){return super.set(pe(this,A),t)}delete(A){return super.delete(de(this,A))}}class he extends Set{constructor(A,t=ye){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=A)for(const t of A)this.add(t)}has(A){return super.has(ge(this,A))}add(A){return super.add(pe(this,A))}delete(A){return super.delete(de(this,A))}}function ge({_intern:A,_key:t},e){const n=t(e);return A.has(n)?A.get(n):e}function pe({_intern:A,_key:t},e){const n=t(e);return A.has(n)?A.get(n):(A.set(n,e),e)}function de({_intern:A,_key:t},e){const n=t(e);return A.has(n)&&(e=A.get(n),A.delete(n)),e}function ye(A){return null!==A&&"object"==typeof A?A.valueOf():A}function ve(A){return A}function me(A,...t){return Be(A,ve,ve,t)}function we(A,...t){return Be(A,Array.from,ve,t)}function be(A,t){for(let e=1,n=t.length;e<n;++e)A=A.flatMap(A=>A.pop().map(([t,e])=>[...A,t,e]));return A}function Ee(A,t,...e){return Be(A,ve,t,e)}function _e(A,t,...e){return Be(A,Array.from,t,e)}function xe(A){if(1!==A.length)throw new Error("duplicate key");return A[0]}function Be(A,t,e,n){return function A(r,i){if(i>=n.length)return e(r);const o=new ce,l=n[i++];let s=-1;for(const A of r){const t=l(A,++s,r),e=o.get(t);e?e.push(A):o.set(t,[A])}for(const[t,e]of o)o.set(t,A(e,i));return t(o)}(A,0)}function Me(A,t){return Array.from(t,t=>A[t])}function ke(A,...t){if("function"!=typeof A[Symbol.iterator])throw new TypeError("values is not iterable");A=Array.from(A);let[e]=t;if(e&&2!==e.length||t.length>1){const n=Uint32Array.from(A,(A,t)=>t);return t.length>1?(t=t.map(t=>A.map(t)),n.sort((A,e)=>{for(const n of t){const t=Ce(n[A],n[e]);if(t)return t}})):(e=A.map(e),n.sort((A,t)=>Ce(e[A],e[t]))),Me(A,n)}return A.sort(Se(e))}function Se(A=zt){if(A===zt)return Ce;if("function"!=typeof A)throw new TypeError("compare is not a function");return(t,e)=>{const n=A(t,e);return n||0===n?n:(0===A(e,e))-(0===A(t,t))}}function Ce(A,t){return(null==A||!(A>=A))-(null==t||!(t>=t))||(A<t?-1:A>t?1:0)}var Pe=Array.prototype.slice;function De(A){return()=>A}const Qe=Math.sqrt(50),Ie=Math.sqrt(10),Te=Math.sqrt(2);function Fe(A,t,e){const n=(t-A)/Math.max(0,e),r=Math.floor(Math.log10(n)),i=n/Math.pow(10,r),o=i>=Qe?10:i>=Ie?5:i>=Te?2:1;let l,s,a;return r<0?(a=Math.pow(10,-r)/o,l=Math.round(A*a),s=Math.round(t*a),l/a<A&&++l,s/a>t&&--s,a=-a):(a=Math.pow(10,r)*o,l=Math.round(A/a),s=Math.round(t/a),l*a<A&&++l,s*a>t&&--s),s<l&&.5<=e&&e<2?Fe(A,t,2*e):[l,s,a]}function Le(A,t,e){if(!((e=+e)>0))return[];if((A=+A)===(t=+t))return[A];const n=t<A,[r,i,o]=n?Fe(t,A,e):Fe(A,t,e);if(!(i>=r))return[];const l=i-r+1,s=new Array(l);if(n)if(o<0)for(let A=0;A<l;++A)s[A]=(i-A)/-o;else for(let A=0;A<l;++A)s[A]=(i-A)*o;else if(o<0)for(let A=0;A<l;++A)s[A]=(r+A)/-o;else for(let A=0;A<l;++A)s[A]=(r+A)*o;return s}function Oe(A,t,e){return Fe(A=+A,t=+t,e=+e)[2]}function Re(A,t,e){let n;for(;;){const r=Oe(A,t,e);if(r===n||0===r||!isFinite(r))return[A,t];r>0?(A=Math.floor(A/r)*r,t=Math.ceil(t/r)*r):r<0&&(A=Math.ceil(A*r)/r,t=Math.floor(t*r)/r),n=r}}function Ne(A){return Math.max(1,Math.ceil(Math.log(re(A))/Math.LN2)+1)}function Ge(){var A=ve,t=ue,e=Ne;function n(n){Array.isArray(n)||(n=Array.from(n));var r,i,o,l=n.length,s=new Array(l);for(r=0;r<l;++r)s[r]=A(n[r],r,n);var a=t(s),u=a[0],f=a[1],c=e(s,u,f);if(!Array.isArray(c)){const A=f,e=+c;if(t===ue&&([u,f]=Re(u,f,e)),(c=Le(u,f,e))[0]<=u&&(o=Oe(u,f,e)),c[c.length-1]>=f)if(A>=f&&t===ue){const A=Oe(u,f,e);isFinite(A)&&(A>0?f=(Math.floor(f/A)+1)*A:A<0&&(f=(Math.ceil(f*-A)+1)/-A))}else c.pop()}for(var h=c.length,g=0,p=h;c[g]<=u;)++g;for(;c[p-1]>f;)--p;(g||p<h)&&(c=c.slice(g,p),h=p-g);var d,y=new Array(h+1);for(r=0;r<=h;++r)(d=y[r]=[]).x0=r>0?c[r-1]:u,d.x1=r<h?c[r]:f;if(isFinite(o)){if(o>0)for(r=0;r<l;++r)null!=(i=s[r])&&u<=i&&i<=f&&y[Math.min(h,Math.floor((i-u)/o))].push(n[r]);else if(o<0)for(r=0;r<l;++r)if(null!=(i=s[r])&&u<=i&&i<=f){const A=Math.floor((u-i)*o);y[Math.min(h,A+(c[A]<=i))].push(n[r])}}else for(r=0;r<l;++r)null!=(i=s[r])&&u<=i&&i<=f&&y[Jt(c,i,0,h)].push(n[r]);return y}return n.value=function(t){return arguments.length?(A="function"==typeof t?t:De(t),n):A},n.domain=function(A){return arguments.length?(t="function"==typeof A?A:De([A[0],A[1]]),n):t},n.thresholds=function(A){return arguments.length?(e="function"==typeof A?A:De(Array.isArray(A)?Pe.call(A):A),n):e},n}function Ye(A,t){let e;if(void 0===t)for(const t of A)null!=t&&(e<t||void 0===e&&t>=t)&&(e=t);else{let n=-1;for(let r of A)null!=(r=t(r,++n,A))&&(e<r||void 0===e&&r>=r)&&(e=r)}return e}function ze(A,t){let e,n=-1,r=-1;if(void 0===t)for(const t of A)++r,null!=t&&(e<t||void 0===e&&t>=t)&&(e=t,n=r);else for(let i of A)null!=(i=t(i,++r,A))&&(e<i||void 0===e&&i>=i)&&(e=i,n=r);return n}function Ue(A,t){let e;if(void 0===t)for(const t of A)null!=t&&(e>t||void 0===e&&t>=t)&&(e=t);else{let n=-1;for(let r of A)null!=(r=t(r,++n,A))&&(e>r||void 0===e&&r>=r)&&(e=r)}return e}function je(A,t){let e,n=-1,r=-1;if(void 0===t)for(const t of A)++r,null!=t&&(e>t||void 0===e&&t>=t)&&(e=t,n=r);else for(let i of A)null!=(i=t(i,++r,A))&&(e>i||void 0===e&&i>=i)&&(e=i,n=r);return n}function Xe(A,t,e=0,n=1/0,r){if(t=Math.floor(t),e=Math.floor(Math.max(0,e)),n=Math.floor(Math.min(A.length-1,n)),!(e<=t&&t<=n))return A;for(r=void 0===r?Ce:Se(r);n>e;){if(n-e>600){const i=n-e+1,o=t-e+1,l=Math.log(i),s=.5*Math.exp(2*l/3),a=.5*Math.sqrt(l*s*(i-s)/i)*(o-i/2<0?-1:1);Xe(A,t,Math.max(e,Math.floor(t-o*s/i+a)),Math.min(n,Math.floor(t+(i-o)*s/i+a)),r)}const i=A[t];let o=e,l=n;for(Ve(A,e,t),r(A[n],i)>0&&Ve(A,e,n);o<l;){for(Ve(A,o,l),++o,--l;r(A[o],i)<0;)++o;for(;r(A[l],i)>0;)--l}0===r(A[e],i)?Ve(A,e,l):(++l,Ve(A,l,n)),l<=t&&(e=l+1),t<=l&&(n=l-1)}return A}function Ve(A,t,e){const n=A[t];A[t]=A[e],A[e]=n}function He(A,t=zt){let e,n=!1;if(1===t.length){let r;for(const i of A){const A=t(i);(n?zt(A,r)>0:0===zt(A,A))&&(e=i,r=A,n=!0)}}else for(const r of A)(n?t(r,e)>0:0===t(r,r))&&(e=r,n=!0);return e}function qe(A,t,e){if((n=(A=Float64Array.from(function*(A,t){if(void 0===t)for(let t of A)null!=t&&(t=+t)>=t&&(yield t);else{let e=-1;for(let n of A)null!=(n=t(n,++e,A))&&(n=+n)>=n&&(yield n)}}(A,e))).length)&&!isNaN(t=+t)){if(t<=0||n<2)return Ue(A);if(t>=1)return Ye(A);var n,r=(n-1)*t,i=Math.floor(r),o=Ye(Xe(A,i).subarray(0,i+1));return o+(Ue(A.subarray(i+1))-o)*(r-i)}}function We(A,t,e=Vt){if(!isNaN(t=+t)){if(n=Float64Array.from(A,(t,n)=>Vt(e(A[n],n,A))),t<=0)return je(n);if(t>=1)return ze(n);var n,r=Uint32Array.from(A,(A,t)=>t),i=n.length-1,o=Math.floor(i*t);return Xe(r,o,0,i,(A,t)=>Ce(n[A],n[t])),(o=He(r.subarray(0,o+1),A=>n[A]))>=0?o:-1}}function Ze(A,t){let e=0,n=0;if(void 0===t)for(let t of A)null!=t&&(t=+t)>=t&&(++e,n+=t);else{let r=-1;for(let i of A)null!=(i=t(i,++r,A))&&(i=+i)>=i&&(++e,n+=i)}if(e)return n/e}function Je(A,t){return qe(A,.5,t)}function Ke(A){return Array.from(function*(A){for(const t of A)yield*t}(A))}function $e(A,t){const e=new ce;if(void 0===t)for(let t of A)null!=t&&t>=t&&e.set(t,(e.get(t)||0)+1);else{let n=-1;for(let r of A)null!=(r=t(r,++n,A))&&r>=r&&e.set(r,(e.get(r)||0)+1)}let n,r=0;for(const[A,t]of e)t>r&&(r=t,n=A);return n}function An(A,t){return[A,t]}function tn(A,t=zt){if(1===t.length)return je(A,t);let e,n=-1,r=-1;for(const i of A)++r,(n<0?0===t(i,i):t(i,e)<0)&&(e=i,n=r);return n}var en=nn(Math.random);function nn(A){return function(t,e=0,n=t.length){let r=n-(e=+e);for(;r;){const n=A()*r--|0,i=t[r+e];t[r+e]=t[n+e],t[n+e]=i}return t}}function rn(A,t){let e=0;if(void 0===t)for(let t of A)(t=+t)&&(e+=t);else{let n=-1;for(let r of A)(r=+t(r,++n,A))&&(e+=r)}return e}function on(A){if(!(r=A.length))return[];for(var t=-1,e=Ue(A,ln),n=new Array(e);++t<e;)for(var r,i=-1,o=n[t]=new Array(r);++i<r;)o[i]=A[i][t];return n}function ln(A){return A.length}function sn(A){return A instanceof he?A:new he(A)}function an(A,t){const e=A[Symbol.iterator](),n=new Set;for(const A of t){const t=un(A);if(n.has(t))continue;let r,i;for(;({value:r,done:i}=e.next());){if(i)return!1;const A=un(r);if(n.add(A),Object.is(t,A))break}}return!0}function un(A){return null!==A&&"object"==typeof A?A.valueOf():A}var fn=Object.freeze({__proto__:null,bisect:Jt,bisectRight:qt,bisectLeft:Wt,bisectCenter:Zt,ascending:zt,bisector:jt,blur:function(A,t){if(!((t=+t)>=0))throw new RangeError("invalid r");let e=A.length;if(!((e=Math.floor(e))>=0))throw new RangeError("invalid length");if(!e||!t)return A;const n=ne(t),r=A.slice();return n(A,r,0,e,1),n(r,A,0,e,1),n(A,r,0,e,1),A},blur2:Kt,blurImage:$t,count:re,cross:function(...A){const t="function"==typeof A[A.length-1]&&function(A){return t=>A(...t)}(A.pop()),e=(A=A.map(le)).map(ie),n=A.length-1,r=new Array(n+1).fill(0),i=[];if(n<0||e.some(oe))return i;for(;;){i.push(r.map((t,e)=>A[e][t]));let o=n;for(;++r[o]===e[o];){if(0===o)return t?i.map(t):i;r[o--]=0}}},cumsum:function(A,t){var e=0,n=0;return Float64Array.from(A,void 0===t?A=>e+=+A||0:r=>e+=+t(r,n++,A)||0)},descending:Ut,deviation:ae,extent:ue,Adder:fe,fsum:function(A,t){const e=new fe;if(void 0===t)for(let t of A)(t=+t)&&e.add(t);else{let n=-1;for(let r of A)(r=+t(r,++n,A))&&e.add(r)}return+e},fcumsum:function(A,t){const e=new fe;let n=-1;return Float64Array.from(A,void 0===t?A=>e.add(+A||0):r=>e.add(+t(r,++n,A)||0))},group:me,flatGroup:function(A,...t){return be(we(A,...t),t)},flatRollup:function(A,t,...e){return be(_e(A,t,...e),e)},groups:we,index:function(A,...t){return Be(A,ve,xe,t)},indexes:function(A,...t){return Be(A,Array.from,xe,t)},rollup:Ee,rollups:_e,groupSort:function(A,t,e){return(2!==t.length?ke(Ee(A,t,e),([A,t],[e,n])=>zt(t,n)||zt(A,e)):ke(me(A,e),([A,e],[n,r])=>t(e,r)||zt(A,n))).map(([A])=>A)},bin:Ge,histogram:Ge,thresholdFreedmanDiaconis:function(A,t,e){const n=re(A),r=qe(A,.75)-qe(A,.25);return n&&r?Math.ceil((e-t)/(2*r*Math.pow(n,-1/3))):1},thresholdScott:function(A,t,e){const n=re(A),r=ae(A);return n&&r?Math.ceil((e-t)*Math.cbrt(n)/(3.49*r)):1},thresholdSturges:Ne,max:Ye,maxIndex:ze,mean:Ze,median:Je,medianIndex:function(A,t){return We(A,.5,t)},merge:Ke,min:Ue,minIndex:je,mode:$e,nice:Re,pairs:function(A,t=An){const e=[];let n,r=!1;for(const i of A)r&&e.push(t(n,i)),n=i,r=!0;return e},permute:Me,quantile:qe,quantileIndex:We,quantileSorted:function(A,t,e=Vt){if((n=A.length)&&!isNaN(t=+t)){if(t<=0||n<2)return+e(A[0],0,A);if(t>=1)return+e(A[n-1],n-1,A);var n,r=(n-1)*t,i=Math.floor(r),o=+e(A[i],i,A);return o+(+e(A[i+1],i+1,A)-o)*(r-i)}},quickselect:Xe,range:function(A,t,e){A=+A,t=+t,e=(r=arguments.length)<2?(t=A,A=0,1):r<3?1:+e;for(var n=-1,r=0|Math.max(0,Math.ceil((t-A)/e)),i=new Array(r);++n<r;)i[n]=A+n*e;return i},rank:function(A,t=zt){if("function"!=typeof A[Symbol.iterator])throw new TypeError("values is not iterable");let e=Array.from(A);const n=new Float64Array(e.length);2!==t.length&&(e=e.map(t),t=zt);const r=(A,n)=>t(e[A],e[n]);let i,o;return A=Uint32Array.from(e,(A,t)=>t),A.sort(t===zt?(A,t)=>Ce(e[A],e[t]):Se(r)),A.forEach((A,t)=>{const e=r(A,void 0===i?A:i);e>=0?((void 0===i||e>0)&&(i=A,o=t),n[A]=o):n[A]=NaN}),n},least:function(A,t=zt){let e,n=!1;if(1===t.length){let r;for(const i of A){const A=t(i);(n?zt(A,r)<0:0===zt(A,A))&&(e=i,r=A,n=!0)}}else for(const r of A)(n?t(r,e)<0:0===t(r,r))&&(e=r,n=!0);return e},leastIndex:tn,greatest:He,greatestIndex:function(A,t=zt){if(1===t.length)return ze(A,t);let e,n=-1,r=-1;for(const i of A)++r,(n<0?0===t(i,i):t(i,e)>0)&&(e=i,n=r);return n},scan:function(A,t){const e=tn(A,t);return e<0?void 0:e},shuffle:en,shuffler:nn,sum:rn,ticks:Le,tickIncrement:Oe,tickStep:function(A,t,e){e=+e;const n=(t=+t)<(A=+A),r=n?Oe(t,A,e):Oe(A,t,e);return(n?-1:1)*(r<0?1/-r:r)},transpose:on,variance:se,zip:function(){return on(arguments)},every:function(A,t){if("function"!=typeof t)throw new TypeError("test is not a function");let e=-1;for(const n of A)if(!t(n,++e,A))return!1;return!0},some:function(A,t){if("function"!=typeof t)throw new TypeError("test is not a function");let e=-1;for(const n of A)if(t(n,++e,A))return!0;return!1},filter:function(A,t){if("function"!=typeof t)throw new TypeError("test is not a function");const e=[];let n=-1;for(const r of A)t(r,++n,A)&&e.push(r);return e},map:function(A,t){if("function"!=typeof A[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof t)throw new TypeError("mapper is not a function");return Array.from(A,(e,n)=>t(e,n,A))},reduce:function(A,t,e){if("function"!=typeof t)throw new TypeError("reducer is not a function");const n=A[Symbol.iterator]();let r,i,o=-1;if(arguments.length<3){if(({done:r,value:e}=n.next()),r)return;++o}for(;({done:r,value:i}=n.next()),!r;)e=t(e,i,++o,A);return e},reverse:function(A){if("function"!=typeof A[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(A).reverse()},sort:ke,difference:function(A,...t){A=new he(A);for(const e of t)for(const t of e)A.delete(t);return A},disjoint:function(A,t){const e=t[Symbol.iterator](),n=new he;for(const t of A){if(n.has(t))return!1;let A,r;for(;({value:A,done:r}=e.next())&&!r;){if(Object.is(t,A))return!1;n.add(A)}}return!0},intersection:function(A,...t){A=new he(A),t=t.map(sn);A:for(const e of A)for(const n of t)if(!n.has(e)){A.delete(e);continue A}return A},subset:function(A,t){return an(t,A)},superset:an,union:function(...A){const t=new he;for(const e of A)for(const A of e)t.add(A);return t},InternMap:ce,InternSet:he}),cn=1e-6,hn=1e-12,gn=Math.PI,pn=gn/2,dn=gn/4,yn=2*gn,vn=180/gn,mn=gn/180,wn=Math.abs,bn=Math.atan,En=Math.atan2,_n=Math.cos,xn=Math.hypot,Bn=Math.sin,Mn=Math.sign||function(A){return A>0?1:A<0?-1:0},kn=Math.sqrt;function Sn(A){return A>1?0:A<-1?gn:Math.acos(A)}function Cn(A){return A>1?pn:A<-1?-pn:Math.asin(A)}function Pn(){}function Dn(A,t){A&&In.hasOwnProperty(A.type)&&In[A.type](A,t)}var Qn={Feature:function(A,t){Dn(A.geometry,t)},FeatureCollection:function(A,t){for(var e=A.features,n=-1,r=e.length;++n<r;)Dn(e[n].geometry,t)}},In={Sphere:function(A,t){t.sphere()},Point:function(A,t){A=A.coordinates,t.point(A[0],A[1],A[2])},MultiPoint:function(A,t){for(var e=A.coordinates,n=-1,r=e.length;++n<r;)A=e[n],t.point(A[0],A[1],A[2])},LineString:function(A,t){Tn(A.coordinates,t,0)},MultiLineString:function(A,t){for(var e=A.coordinates,n=-1,r=e.length;++n<r;)Tn(e[n],t,0)},Polygon:function(A,t){Fn(A.coordinates,t)},MultiPolygon:function(A,t){for(var e=A.coordinates,n=-1,r=e.length;++n<r;)Fn(e[n],t)},GeometryCollection:function(A,t){for(var e=A.geometries,n=-1,r=e.length;++n<r;)Dn(e[n],t)}};function Tn(A,t,e){var n,r=-1,i=A.length-e;for(t.lineStart();++r<i;)n=A[r],t.point(n[0],n[1],n[2]);t.lineEnd()}function Fn(A,t){var e=-1,n=A.length;for(t.polygonStart();++e<n;)Tn(A[e],t,1);t.polygonEnd()}function Ln(A,t){A&&Qn.hasOwnProperty(A.type)?Qn[A.type](A,t):Dn(A,t)}var On,Rn,Nn,Gn,Yn,zn,Un,jn,Xn,Vn,Hn,qn,Wn,Zn,Jn,Kn,$n=new fe,Ar=new fe,tr={point:Pn,lineStart:Pn,lineEnd:Pn,polygonStart:function(){$n=new fe,tr.lineStart=er,tr.lineEnd=nr},polygonEnd:function(){var A=+$n;Ar.add(A<0?yn+A:A),this.lineStart=this.lineEnd=this.point=Pn},sphere:function(){Ar.add(yn)}};function er(){tr.point=rr}function nr(){ir(On,Rn)}function rr(A,t){tr.point=ir,On=A,Rn=t,Nn=A*=mn,Gn=_n(t=(t*=mn)/2+dn),Yn=Bn(t)}function ir(A,t){var e=(A*=mn)-Nn,n=e>=0?1:-1,r=n*e,i=_n(t=(t*=mn)/2+dn),o=Bn(t),l=Yn*o,s=Gn*i+l*_n(r),a=l*n*Bn(r);$n.add(En(a,s)),Nn=A,Gn=i,Yn=o}function or(A){return Ar=new fe,Ln(A,tr),2*Ar}function lr(A){return[En(A[1],A[0]),Cn(A[2])]}function sr(A){var t=A[0],e=A[1],n=_n(e);return[n*_n(t),n*Bn(t),Bn(e)]}function ar(A,t){return A[0]*t[0]+A[1]*t[1]+A[2]*t[2]}function ur(A,t){return[A[1]*t[2]-A[2]*t[1],A[2]*t[0]-A[0]*t[2],A[0]*t[1]-A[1]*t[0]]}function fr(A,t){A[0]+=t[0],A[1]+=t[1],A[2]+=t[2]}function cr(A,t){return[A[0]*t,A[1]*t,A[2]*t]}function hr(A){var t=kn(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);A[0]/=t,A[1]/=t,A[2]/=t}var gr,pr,dr,yr,vr,mr,wr,br,Er,_r,xr,Br,Mr,kr,Sr,Cr,Pr={point:Dr,lineStart:Ir,lineEnd:Tr,polygonStart:function(){Pr.point=Fr,Pr.lineStart=Lr,Pr.lineEnd=Or,Zn=new fe,tr.polygonStart()},polygonEnd:function(){tr.polygonEnd(),Pr.point=Dr,Pr.lineStart=Ir,Pr.lineEnd=Tr,$n<0?(zn=-(jn=180),Un=-(Xn=90)):Zn>cn?Xn=90:Zn<-1e-6&&(Un=-90),Kn[0]=zn,Kn[1]=jn},sphere:function(){zn=-(jn=180),Un=-(Xn=90)}};function Dr(A,t){Jn.push(Kn=[zn=A,jn=A]),t<Un&&(Un=t),t>Xn&&(Xn=t)}function Qr(A,t){var e=sr([A*mn,t*mn]);if(Wn){var n=ur(Wn,e),r=ur([n[1],-n[0],0],n);hr(r),r=lr(r);var i,o=A-Vn,l=o>0?1:-1,s=r[0]*vn*l,a=wn(o)>180;a^(l*Vn<s&&s<l*A)?(i=r[1]*vn)>Xn&&(Xn=i):a^(l*Vn<(s=(s+360)%360-180)&&s<l*A)?(i=-r[1]*vn)<Un&&(Un=i):(t<Un&&(Un=t),t>Xn&&(Xn=t)),a?A<Vn?Rr(zn,A)>Rr(zn,jn)&&(jn=A):Rr(A,jn)>Rr(zn,jn)&&(zn=A):jn>=zn?(A<zn&&(zn=A),A>jn&&(jn=A)):A>Vn?Rr(zn,A)>Rr(zn,jn)&&(jn=A):Rr(A,jn)>Rr(zn,jn)&&(zn=A)}else Jn.push(Kn=[zn=A,jn=A]);t<Un&&(Un=t),t>Xn&&(Xn=t),Wn=e,Vn=A}function Ir(){Pr.point=Qr}function Tr(){Kn[0]=zn,Kn[1]=jn,Pr.point=Dr,Wn=null}function Fr(A,t){if(Wn){var e=A-Vn;Zn.add(wn(e)>180?e+(e>0?360:-360):e)}else Hn=A,qn=t;tr.point(A,t),Qr(A,t)}function Lr(){tr.lineStart()}function Or(){Fr(Hn,qn),tr.lineEnd(),wn(Zn)>cn&&(zn=-(jn=180)),Kn[0]=zn,Kn[1]=jn,Wn=null}function Rr(A,t){return(t-=A)<0?t+360:t}function Nr(A,t){return A[0]-t[0]}function Gr(A,t){return A[0]<=A[1]?A[0]<=t&&t<=A[1]:t<A[0]||A[1]<t}var Yr={sphere:Pn,point:zr,lineStart:jr,lineEnd:Hr,polygonStart:function(){Yr.lineStart=qr,Yr.lineEnd=Wr},polygonEnd:function(){Yr.lineStart=jr,Yr.lineEnd=Hr}};function zr(A,t){A*=mn;var e=_n(t*=mn);Ur(e*_n(A),e*Bn(A),Bn(t))}function Ur(A,t,e){++gr,dr+=(A-dr)/gr,yr+=(t-yr)/gr,vr+=(e-vr)/gr}function jr(){Yr.point=Xr}function Xr(A,t){A*=mn;var e=_n(t*=mn);kr=e*_n(A),Sr=e*Bn(A),Cr=Bn(t),Yr.point=Vr,Ur(kr,Sr,Cr)}function Vr(A,t){A*=mn;var e=_n(t*=mn),n=e*_n(A),r=e*Bn(A),i=Bn(t),o=En(kn((o=Sr*i-Cr*r)*o+(o=Cr*n-kr*i)*o+(o=kr*r-Sr*n)*o),kr*n+Sr*r+Cr*i);pr+=o,mr+=o*(kr+(kr=n)),wr+=o*(Sr+(Sr=r)),br+=o*(Cr+(Cr=i)),Ur(kr,Sr,Cr)}function Hr(){Yr.point=zr}function qr(){Yr.point=Zr}function Wr(){Jr(Br,Mr),Yr.point=zr}function Zr(A,t){Br=A,Mr=t,A*=mn,t*=mn,Yr.point=Jr;var e=_n(t);kr=e*_n(A),Sr=e*Bn(A),Cr=Bn(t),Ur(kr,Sr,Cr)}function Jr(A,t){A*=mn;var e=_n(t*=mn),n=e*_n(A),r=e*Bn(A),i=Bn(t),o=Sr*i-Cr*r,l=Cr*n-kr*i,s=kr*r-Sr*n,a=xn(o,l,s),u=Cn(a),f=a&&-u/a;Er.add(f*o),_r.add(f*l),xr.add(f*s),pr+=u,mr+=u*(kr+(kr=n)),wr+=u*(Sr+(Sr=r)),br+=u*(Cr+(Cr=i)),Ur(kr,Sr,Cr)}function Kr(A){gr=pr=dr=yr=vr=mr=wr=br=0,Er=new fe,_r=new fe,xr=new fe,Ln(A,Yr);var t=+Er,e=+_r,n=+xr,r=xn(t,e,n);return r<hn&&(t=mr,e=wr,n=br,pr<cn&&(t=dr,e=yr,n=vr),(r=xn(t,e,n))<hn)?[NaN,NaN]:[En(e,t)*vn,Cn(n/r)*vn]}function $r(A,t){function e(e,n){return e=A(e,n),t(e[0],e[1])}return A.invert&&t.invert&&(e.invert=function(e,n){return(e=t.invert(e,n))&&A.invert(e[0],e[1])}),e}function Ai(A,t){return wn(A)>gn&&(A-=Math.round(A/yn)*yn),[A,t]}function ti(A){return function(t,e){return wn(t+=A)>gn&&(t-=Math.round(t/yn)*yn),[t,e]}}function ei(A){var t=ti(A);return t.invert=ti(-A),t}function ni(A,t){var e=_n(A),n=Bn(A),r=_n(t),i=Bn(t);function o(A,t){var o=_n(t),l=_n(A)*o,s=Bn(A)*o,a=Bn(t),u=a*e+l*n;return[En(s*r-u*i,l*e-a*n),Cn(u*r+s*i)]}return o.invert=function(A,t){var o=_n(t),l=_n(A)*o,s=Bn(A)*o,a=Bn(t),u=a*r-s*i;return[En(s*r+a*i,l*e+u*n),Cn(u*e-l*n)]},o}function ri(A,t){(t=sr(t))[0]-=A,hr(t);var e=Sn(-t[1]);return((-t[2]<0?-e:e)+yn-cn)%yn}function ii(){var A,t=[];return{point:function(t,e,n){A.push([t,e,n])},lineStart:function(){t.push(A=[])},lineEnd:Pn,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var e=t;return t=[],A=null,e}}}function oi(A,t){return wn(A[0]-t[0])<cn&&wn(A[1]-t[1])<cn}function li(A,t,e,n){this.x=A,this.z=t,this.o=e,this.e=n,this.v=!1,this.n=this.p=null}function si(A,t,e,n,r){var i,o,l=[],s=[];if(A.forEach(function(A){if(!((t=A.length-1)<=0)){var t,e,n=A[0],o=A[t];if(oi(n,o)){if(!n[2]&&!o[2]){for(r.lineStart(),i=0;i<t;++i)r.point((n=A[i])[0],n[1]);return void r.lineEnd()}o[0]+=2e-6}l.push(e=new li(n,A,null,!0)),s.push(e.o=new li(n,null,e,!1)),l.push(e=new li(o,A,null,!1)),s.push(e.o=new li(o,null,e,!0))}}),l.length){for(s.sort(t),ai(l),ai(s),i=0,o=s.length;i<o;++i)s[i].e=e=!e;for(var a,u,f=l[0];;){for(var c=f,h=!0;c.v;)if((c=c.n)===f)return;a=c.z,r.lineStart();do{if(c.v=c.o.v=!0,c.e){if(h)for(i=0,o=a.length;i<o;++i)r.point((u=a[i])[0],u[1]);else n(c.x,c.n.x,1,r);c=c.n}else{if(h)for(a=c.p.z,i=a.length-1;i>=0;--i)r.point((u=a[i])[0],u[1]);else n(c.x,c.p.x,-1,r);c=c.p}a=(c=c.o).z,h=!h}while(!c.v);r.lineEnd()}}}function ai(A){if(t=A.length){for(var t,e,n=0,r=A[0];++n<t;)r.n=e=A[n],e.p=r,r=e;r.n=e=A[0],e.p=r}}function ui(A){return wn(A[0])<=gn?A[0]:Mn(A[0])*((wn(A[0])+gn)%yn-gn)}function fi(A,t){var e=ui(t),n=t[1],r=Bn(n),i=[Bn(e),-_n(e),0],o=0,l=0,s=new fe;1===r?n=pn+cn:-1===r&&(n=-pn-cn);for(var a=0,u=A.length;a<u;++a)if(c=(f=A[a]).length)for(var f,c,h=f[c-1],g=ui(h),p=h[1]/2+dn,d=Bn(p),y=_n(p),v=0;v<c;++v,g=w,d=E,y=_,h=m){var m=f[v],w=ui(m),b=m[1]/2+dn,E=Bn(b),_=_n(b),x=w-g,B=x>=0?1:-1,M=B*x,k=M>gn,S=d*E;if(s.add(En(S*B*Bn(M),y*_+S*_n(M))),o+=k?x+B*yn:x,k^g>=e^w>=e){var C=ur(sr(h),sr(m));hr(C);var P=ur(i,C);hr(P);var D=(k^x>=0?-1:1)*Cn(P[2]);(n>D||n===D&&(C[0]||C[1]))&&(l+=k^x>=0?1:-1)}}return(o<-1e-6||o<cn&&s<-1e-12)^1&l}function ci(A,t,e,n){return function(r){var i,o,l,s=t(r),a=ii(),u=t(a),f=!1,c={point:h,lineStart:p,lineEnd:d,polygonStart:function(){c.point=y,c.lineStart=v,c.lineEnd=m,o=[],i=[]},polygonEnd:function(){c.point=h,c.lineStart=p,c.lineEnd=d,o=Ke(o);var A=fi(i,n);o.length?(f||(r.polygonStart(),f=!0),si(o,gi,A,e,r)):A&&(f||(r.polygonStart(),f=!0),r.lineStart(),e(null,null,1,r),r.lineEnd()),f&&(r.polygonEnd(),f=!1),o=i=null},sphere:function(){r.polygonStart(),r.lineStart(),e(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function h(t,e){A(t,e)&&r.point(t,e)}function g(A,t){s.point(A,t)}function p(){c.point=g,s.lineStart()}function d(){c.point=h,s.lineEnd()}function y(A,t){l.push([A,t]),u.point(A,t)}function v(){u.lineStart(),l=[]}function m(){y(l[0][0],l[0][1]),u.lineEnd();var A,t,e,n,s=u.clean(),c=a.result(),h=c.length;if(l.pop(),i.push(l),l=null,h)if(1&s){if((t=(e=c[0]).length-1)>0){for(f||(r.polygonStart(),f=!0),r.lineStart(),A=0;A<t;++A)r.point((n=e[A])[0],n[1]);r.lineEnd()}}else h>1&&2&s&&c.push(c.pop().concat(c.shift())),o.push(c.filter(hi))}return c}}function hi(A){return A.length>1}function gi(A,t){return((A=A.x)[0]<0?A[1]-pn-cn:pn-A[1])-((t=t.x)[0]<0?t[1]-pn-cn:pn-t[1])}Ai.invert=Ai;var pi=ci(function(){return!0},function(A){var t,e=NaN,n=NaN,r=NaN;return{lineStart:function(){A.lineStart(),t=1},point:function(i,o){var l=i>0?gn:-gn,s=wn(i-e);wn(s-gn)<cn?(A.point(e,n=(n+o)/2>0?pn:-pn),A.point(r,n),A.lineEnd(),A.lineStart(),A.point(l,n),A.point(i,n),t=0):r!==l&&s>=gn&&(wn(e-r)<cn&&(e-=r*cn),wn(i-l)<cn&&(i-=l*cn),n=function(A,t,e,n){var r,i,o=Bn(A-e);return wn(o)>cn?bn((Bn(t)*(i=_n(n))*Bn(e)-Bn(n)*(r=_n(t))*Bn(A))/(r*i*o)):(t+n)/2}(e,n,i,o),A.point(r,n),A.lineEnd(),A.lineStart(),A.point(l,n),t=0),A.point(e=i,n=o),r=l},lineEnd:function(){A.lineEnd(),e=n=NaN},clean:function(){return 2-t}}},function(A,t,e,n){var r;if(null==A)r=e*pn,n.point(-gn,r),n.point(0,r),n.point(gn,r),n.point(gn,0),n.point(gn,-r),n.point(0,-r),n.point(-gn,-r),n.point(-gn,0),n.point(-gn,r);else if(wn(A[0]-t[0])>cn){var i=A[0]<t[0]?gn:-gn;r=e*i/2,n.point(-i,r),n.point(0,r),n.point(i,r)}else n.point(t[0],t[1])},[-gn,-pn]);function di(A){var t=_n(A),e=2*mn,n=t>0,r=wn(t)>cn;function i(A,e){return _n(A)*_n(e)>t}function o(A,e,n){var r=[1,0,0],i=ur(sr(A),sr(e)),o=ar(i,i),l=i[0],s=o-l*l;if(!s)return!n&&A;var a=t*o/s,u=-t*l/s,f=ur(r,i),c=cr(r,a);fr(c,cr(i,u));var h=f,g=ar(c,h),p=ar(h,h),d=g*g-p*(ar(c,c)-1);if(!(d<0)){var y=kn(d),v=cr(h,(-g-y)/p);if(fr(v,c),v=lr(v),!n)return v;var m,w=A[0],b=e[0],E=A[1],_=e[1];b<w&&(m=w,w=b,b=m);var x=b-w,B=wn(x-gn)<cn;if(!B&&_<E&&(m=E,E=_,_=m),B||x<cn?B?E+_>0^v[1]<(wn(v[0]-w)<cn?E:_):E<=v[1]&&v[1]<=_:x>gn^(w<=v[0]&&v[0]<=b)){var M=cr(h,(-g+y)/p);return fr(M,c),[v,lr(M)]}}}function l(t,e){var r=n?A:gn-A,i=0;return t<-r?i|=1:t>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}return ci(i,function(A){var t,e,s,a,u;return{lineStart:function(){a=s=!1,u=1},point:function(f,c){var h,g=[f,c],p=i(f,c),d=n?p?0:l(f,c):p?l(f+(f<0?gn:-gn),c):0;if(!t&&(a=s=p)&&A.lineStart(),p!==s&&(!(h=o(t,g))||oi(t,h)||oi(g,h))&&(g[2]=1),p!==s)u=0,p?(A.lineStart(),h=o(g,t),A.point(h[0],h[1])):(h=o(t,g),A.point(h[0],h[1],2),A.lineEnd()),t=h;else if(r&&t&&n^p){var y;d&e||!(y=o(g,t,!0))||(u=0,n?(A.lineStart(),A.point(y[0][0],y[0][1]),A.point(y[1][0],y[1][1]),A.lineEnd()):(A.point(y[1][0],y[1][1]),A.lineEnd(),A.lineStart(),A.point(y[0][0],y[0][1],3)))}!p||t&&oi(t,g)||A.point(g[0],g[1]),t=g,s=p,e=d},lineEnd:function(){s&&A.lineEnd(),t=null},clean:function(){return u|(a&&s)<<1}}},function(t,n,r,i){!function(A,t,e,n,r,i){if(e){var o=_n(t),l=Bn(t),s=n*e;null==r?(r=t+n*yn,i=t-s/2):(r=ri(o,r),i=ri(o,i),(n>0?r<i:r>i)&&(r+=n*yn));for(var a,u=r;n>0?u>i:u<i;u-=s)a=lr([o,-l*_n(u),-l*Bn(u)]),A.point(a[0],a[1])}}(i,A,e,r,t,n)},n?[0,-A]:[-gn,A-gn])}var yi,vi,mi,wi,bi=1e9,Ei=-bi;function _i(A,t,e,n){function r(r,i){return A<=r&&r<=e&&t<=i&&i<=n}function i(r,i,l,a){var u=0,f=0;if(null==r||(u=o(r,l))!==(f=o(i,l))||s(r,i)<0^l>0)do{a.point(0===u||3===u?A:e,u>1?n:t)}while((u=(u+l+4)%4)!==f);else a.point(i[0],i[1])}function o(n,r){return wn(n[0]-A)<cn?r>0?0:3:wn(n[0]-e)<cn?r>0?2:1:wn(n[1]-t)<cn?r>0?1:0:r>0?3:2}function l(A,t){return s(A.x,t.x)}function s(A,t){var e=o(A,1),n=o(t,1);return e!==n?e-n:0===e?t[1]-A[1]:1===e?A[0]-t[0]:2===e?A[1]-t[1]:t[0]-A[0]}return function(o){var s,a,u,f,c,h,g,p,d,y,v,m=o,w=ii(),b={point:E,lineStart:function(){b.point=_,a&&a.push(u=[]),y=!0,d=!1,g=p=NaN},lineEnd:function(){s&&(_(f,c),h&&d&&w.rejoin(),s.push(w.result())),b.point=E,d&&m.lineEnd()},polygonStart:function(){m=w,s=[],a=[],v=!0},polygonEnd:function(){var t=function(){for(var t=0,e=0,r=a.length;e<r;++e)for(var i,o,l=a[e],s=1,u=l.length,f=l[0],c=f[0],h=f[1];s<u;++s)i=c,o=h,c=(f=l[s])[0],h=f[1],o<=n?h>n&&(c-i)*(n-o)>(h-o)*(A-i)&&++t:h<=n&&(c-i)*(n-o)<(h-o)*(A-i)&&--t;return t}(),e=v&&t,r=(s=Ke(s)).length;(e||r)&&(o.polygonStart(),e&&(o.lineStart(),i(null,null,1,o),o.lineEnd()),r&&si(s,l,t,i,o),o.polygonEnd()),m=o,s=a=u=null}};function E(A,t){r(A,t)&&m.point(A,t)}function _(i,o){var l=r(i,o);if(a&&u.push([i,o]),y)f=i,c=o,h=l,y=!1,l&&(m.lineStart(),m.point(i,o));else if(l&&d)m.point(i,o);else{var s=[g=Math.max(Ei,Math.min(bi,g)),p=Math.max(Ei,Math.min(bi,p))],w=[i=Math.max(Ei,Math.min(bi,i)),o=Math.max(Ei,Math.min(bi,o))];!function(A,t,e,n,r,i){var o,l=A[0],s=A[1],a=0,u=1,f=t[0]-l,c=t[1]-s;if(o=e-l,f||!(o>0)){if(o/=f,f<0){if(o<a)return;o<u&&(u=o)}else if(f>0){if(o>u)return;o>a&&(a=o)}if(o=r-l,f||!(o<0)){if(o/=f,f<0){if(o>u)return;o>a&&(a=o)}else if(f>0){if(o<a)return;o<u&&(u=o)}if(o=n-s,c||!(o>0)){if(o/=c,c<0){if(o<a)return;o<u&&(u=o)}else if(c>0){if(o>u)return;o>a&&(a=o)}if(o=i-s,c||!(o<0)){if(o/=c,c<0){if(o>u)return;o>a&&(a=o)}else if(c>0){if(o<a)return;o<u&&(u=o)}return a>0&&(A[0]=l+a*f,A[1]=s+a*c),u<1&&(t[0]=l+u*f,t[1]=s+u*c),!0}}}}}(s,w,A,t,e,n)?l&&(m.lineStart(),m.point(i,o),v=!1):(d||(m.lineStart(),m.point(s[0],s[1])),m.point(w[0],w[1]),l||m.lineEnd(),v=!1)}g=i,p=o,d=l}return b}}var xi={sphere:Pn,point:Pn,lineStart:function(){xi.point=Mi,xi.lineEnd=Bi},lineEnd:Pn,polygonStart:Pn,polygonEnd:Pn};function Bi(){xi.point=xi.lineEnd=Pn}function Mi(A,t){vi=A*=mn,mi=Bn(t*=mn),wi=_n(t),xi.point=ki}function ki(A,t){A*=mn;var e=Bn(t*=mn),n=_n(t),r=wn(A-vi),i=_n(r),o=n*Bn(r),l=wi*e-mi*n*i,s=mi*e+wi*n*i;yi.add(En(kn(o*o+l*l),s)),vi=A,mi=e,wi=n}var Si=[null,null],Ci={type:"LineString",coordinates:Si};function Pi(A,t){return Si[0]=A,Si[1]=t,function(A){return yi=new fe,Ln(A,xi),+yi}(Ci)}var Di={Feature:function(A,t){return Ii(A.geometry,t)},FeatureCollection:function(A,t){for(var e=A.features,n=-1,r=e.length;++n<r;)if(Ii(e[n].geometry,t))return!0;return!1}},Qi={Sphere:function(){return!0},Point:function(A,t){return Ti(A.coordinates,t)},MultiPoint:function(A,t){for(var e=A.coordinates,n=-1,r=e.length;++n<r;)if(Ti(e[n],t))return!0;return!1},LineString:function(A,t){return Fi(A.coordinates,t)},MultiLineString:function(A,t){for(var e=A.coordinates,n=-1,r=e.length;++n<r;)if(Fi(e[n],t))return!0;return!1},Polygon:function(A,t){return Li(A.coordinates,t)},MultiPolygon:function(A,t){for(var e=A.coordinates,n=-1,r=e.length;++n<r;)if(Li(e[n],t))return!0;return!1},GeometryCollection:function(A,t){for(var e=A.geometries,n=-1,r=e.length;++n<r;)if(Ii(e[n],t))return!0;return!1}};function Ii(A,t){return!(!A||!Qi.hasOwnProperty(A.type))&&Qi[A.type](A,t)}function Ti(A,t){return 0===Pi(A,t)}function Fi(A,t){for(var e,n,r,i=0,o=A.length;i<o;i++){if(0===(n=Pi(A[i],t)))return!0;if(i>0&&(r=Pi(A[i],A[i-1]))>0&&e<=r&&n<=r&&(e+n-r)*(1-Math.pow((e-n)/r,2))<hn*r)return!0;e=n}return!1}function Li(A,t){return!!fi(A.map(Oi),Ri(t))}function Oi(A){return(A=A.map(Ri)).pop(),A}function Ri(A){return[A[0]*mn,A[1]*mn]}function Ni(A,t){return(A&&Di.hasOwnProperty(A.type)?Di[A.type]:Ii)(A,t)}var Gi,Yi,zi,Ui,ji=A=>A,Xi=new fe,Vi=new fe,Hi={point:Pn,lineStart:Pn,lineEnd:Pn,polygonStart:function(){Hi.lineStart=qi,Hi.lineEnd=Ji},polygonEnd:function(){Hi.lineStart=Hi.lineEnd=Hi.point=Pn,Xi.add(wn(Vi)),Vi=new fe},result:function(){var A=Xi/2;return Xi=new fe,A}};function qi(){Hi.point=Wi}function Wi(A,t){Hi.point=Zi,Gi=zi=A,Yi=Ui=t}function Zi(A,t){Vi.add(Ui*A-zi*t),zi=A,Ui=t}function Ji(){Zi(Gi,Yi)}var Ki=Hi,$i=1/0,Ao=$i,to=-$i,eo=to,no={point:function(A,t){A<$i&&($i=A),A>to&&(to=A),t<Ao&&(Ao=t),t>eo&&(eo=t)},lineStart:Pn,lineEnd:Pn,polygonStart:Pn,polygonEnd:Pn,result:function(){var A=[[$i,Ao],[to,eo]];return to=eo=-(Ao=$i=1/0),A}};var ro,io,oo,lo,so=no,ao=0,uo=0,fo=0,co=0,ho=0,go=0,po=0,yo=0,vo=0,mo={point:wo,lineStart:bo,lineEnd:xo,polygonStart:function(){mo.lineStart=Bo,mo.lineEnd=Mo},polygonEnd:function(){mo.point=wo,mo.lineStart=bo,mo.lineEnd=xo},result:function(){var A=vo?[po/vo,yo/vo]:go?[co/go,ho/go]:fo?[ao/fo,uo/fo]:[NaN,NaN];return ao=uo=fo=co=ho=go=po=yo=vo=0,A}};function wo(A,t){ao+=A,uo+=t,++fo}function bo(){mo.point=Eo}function Eo(A,t){mo.point=_o,wo(oo=A,lo=t)}function _o(A,t){var e=A-oo,n=t-lo,r=kn(e*e+n*n);co+=r*(oo+A)/2,ho+=r*(lo+t)/2,go+=r,wo(oo=A,lo=t)}function xo(){mo.point=wo}function Bo(){mo.point=ko}function Mo(){So(ro,io)}function ko(A,t){mo.point=So,wo(ro=oo=A,io=lo=t)}function So(A,t){var e=A-oo,n=t-lo,r=kn(e*e+n*n);co+=r*(oo+A)/2,ho+=r*(lo+t)/2,go+=r,po+=(r=lo*A-oo*t)*(oo+A),yo+=r*(lo+t),vo+=3*r,wo(oo=A,lo=t)}var Co=mo;function Po(A){this._context=A}Po.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,t){switch(this._point){case 0:this._context.moveTo(A,t),this._point=1;break;case 1:this._context.lineTo(A,t);break;default:this._context.moveTo(A+this._radius,t),this._context.arc(A,t,this._radius,0,yn)}},result:Pn};var Do,Qo,Io,To,Fo,Lo=new fe,Oo={point:Pn,lineStart:function(){Oo.point=Ro},lineEnd:function(){Do&&No(Qo,Io),Oo.point=Pn},polygonStart:function(){Do=!0},polygonEnd:function(){Do=null},result:function(){var A=+Lo;return Lo=new fe,A}};function Ro(A,t){Oo.point=No,Qo=To=A,Io=Fo=t}function No(A,t){To-=A,Fo-=t,Lo.add(kn(To*To+Fo*Fo)),To=A,Fo=t}var Go=Oo;let Yo,zo,Uo,jo,Xo=class{constructor(A){this._append=null==A?Vo:function(A){const t=Math.floor(A);if(!(t>=0))throw new RangeError(`invalid digits: ${A}`);if(t>15)return Vo;if(t!==Yo){const A=10**t;Yo=t,zo=function(t){let e=1;this._+=t[0];for(const n=t.length;e<n;++e)this._+=Math.round(arguments[e]*A)/A+t[e]}}return zo}(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,t){switch(this._point){case 0:this._append`M${A},${t}`,this._point=1;break;case 1:this._append`L${A},${t}`;break;default:if(this._append`M${A},${t}`,this._radius!==Uo||this._append!==zo){const A=this._radius,t=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`,Uo=A,zo=this._append,jo=this._,this._=t}this._+=jo}}result(){const A=this._;return this._="",A.length?A:null}};function Vo(A){let t=1;this._+=A[0];for(const e=A.length;t<e;++t)this._+=arguments[t]+A[t]}function Ho(A){return function(t){var e=new qo;for(var n in A)e[n]=A[n];return e.stream=t,e}}function qo(){}function Wo(A,t,e){var n=A.clipExtent&&A.clipExtent();return A.scale(150).translate([0,0]),null!=n&&A.clipExtent(null),Ln(e,A.stream(so)),t(so.result()),null!=n&&A.clipExtent(n),A}function Zo(A,t,e){return Wo(A,function(e){var n=t[1][0]-t[0][0],r=t[1][1]-t[0][1],i=Math.min(n/(e[1][0]-e[0][0]),r/(e[1][1]-e[0][1])),o=+t[0][0]+(n-i*(e[1][0]+e[0][0]))/2,l=+t[0][1]+(r-i*(e[1][1]+e[0][1]))/2;A.scale(150*i).translate([o,l])},e)}function Jo(A,t,e){return Zo(A,[[0,0],t],e)}function Ko(A,t,e){return Wo(A,function(e){var n=+t,r=n/(e[1][0]-e[0][0]),i=(n-r*(e[1][0]+e[0][0]))/2,o=-r*e[0][1];A.scale(150*r).translate([i,o])},e)}function $o(A,t,e){return Wo(A,function(e){var n=+t,r=n/(e[1][1]-e[0][1]),i=-r*e[0][0],o=(n-r*(e[1][1]+e[0][1]))/2;A.scale(150*r).translate([i,o])},e)}qo.prototype={constructor:qo,point:function(A,t){this.stream.point(A,t)},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 Al=_n(30*mn);function tl(A,t){return+t?function(A,t){function e(n,r,i,o,l,s,a,u,f,c,h,g,p,d){var y=a-n,v=u-r,m=y*y+v*v;if(m>4*t&&p--){var w=o+c,b=l+h,E=s+g,_=kn(w*w+b*b+E*E),x=Cn(E/=_),B=wn(wn(E)-1)<cn||wn(i-f)<cn?(i+f)/2:En(b,w),M=A(B,x),k=M[0],S=M[1],C=k-n,P=S-r,D=v*C-y*P;(D*D/m>t||wn((y*C+v*P)/m-.5)>.3||o*c+l*h+s*g<Al)&&(e(n,r,i,o,l,s,k,S,B,w/=_,b/=_,E,p,d),d.point(k,S),e(k,S,B,w,b,E,a,u,f,c,h,g,p,d))}}return function(t){var n,r,i,o,l,s,a,u,f,c,h,g,p={point:d,lineStart:y,lineEnd:m,polygonStart:function(){t.polygonStart(),p.lineStart=w},polygonEnd:function(){t.polygonEnd(),p.lineStart=y}};function d(e,n){e=A(e,n),t.point(e[0],e[1])}function y(){u=NaN,p.point=v,t.lineStart()}function v(n,r){var i=sr([n,r]),o=A(n,r);e(u,f,a,c,h,g,u=o[0],f=o[1],a=n,c=i[0],h=i[1],g=i[2],16,t),t.point(u,f)}function m(){p.point=d,t.lineEnd()}function w(){y(),p.point=b,p.lineEnd=E}function b(A,t){v(n=A,t),r=u,i=f,o=c,l=h,s=g,p.point=v}function E(){e(u,f,a,c,h,g,r,i,n,o,l,s,16,t),p.lineEnd=m,m()}return p}}(A,t):function(A){return Ho({point:function(t,e){t=A(t,e),this.stream.point(t[0],t[1])}})}(A)}var el=Ho({point:function(A,t){this.stream.point(A*mn,t*mn)}});function nl(A,t,e,n,r,i){if(!i)return function(A,t,e,n,r){function i(i,o){return[t+A*(i*=n),e-A*(o*=r)]}return i.invert=function(i,o){return[(i-t)/A*n,(e-o)/A*r]},i}(A,t,e,n,r);var o=_n(i),l=Bn(i),s=o*A,a=l*A,u=o/A,f=l/A,c=(l*e-o*t)/A,h=(l*t+o*e)/A;function g(A,i){return[s*(A*=n)-a*(i*=r)+t,e-a*A-s*i]}return g.invert=function(A,t){return[n*(u*A-f*t+c),r*(h-f*A-u*t)]},g}function rl(A){return function(A){var t,e,n,r,i,o,l,s,a,u,f=150,c=480,h=250,g=0,p=0,d=0,y=0,v=0,m=0,w=1,b=1,E=null,_=pi,x=null,B=ji,M=.5;function k(A){return s(A[0]*mn,A[1]*mn)}function S(A){return(A=s.invert(A[0],A[1]))&&[A[0]*vn,A[1]*vn]}function C(){var A=nl(f,0,0,w,b,m).apply(null,t(g,p)),n=nl(f,c-A[0],h-A[1],w,b,m);return e=function(A,t,e){return(A%=yn)?t||e?$r(ei(A),ni(t,e)):ei(A):t||e?ni(t,e):Ai}(d,y,v),l=$r(t,n),s=$r(e,l),o=tl(l,M),P()}function P(){return a=u=null,k}return k.stream=function(A){return a&&u===A?a:a=el(function(A){return Ho({point:function(t,e){var n=A(t,e);return this.stream.point(n[0],n[1])}})}(e)(_(o(B(u=A)))))},k.preclip=function(A){return arguments.length?(_=A,E=void 0,P()):_},k.postclip=function(A){return arguments.length?(B=A,x=n=r=i=null,P()):B},k.clipAngle=function(A){return arguments.length?(_=+A?di(E=A*mn):(E=null,pi),P()):E*vn},k.clipExtent=function(A){return arguments.length?(B=null==A?(x=n=r=i=null,ji):_i(x=+A[0][0],n=+A[0][1],r=+A[1][0],i=+A[1][1]),P()):null==x?null:[[x,n],[r,i]]},k.scale=function(A){return arguments.length?(f=+A,C()):f},k.translate=function(A){return arguments.length?(c=+A[0],h=+A[1],C()):[c,h]},k.center=function(A){return arguments.length?(g=A[0]%360*mn,p=A[1]%360*mn,C()):[g*vn,p*vn]},k.rotate=function(A){return arguments.length?(d=A[0]%360*mn,y=A[1]%360*mn,v=A.length>2?A[2]%360*mn:0,C()):[d*vn,y*vn,v*vn]},k.angle=function(A){return arguments.length?(m=A%360*mn,C()):m*vn},k.reflectX=function(A){return arguments.length?(w=A?-1:1,C()):w<0},k.reflectY=function(A){return arguments.length?(b=A?-1:1,C()):b<0},k.precision=function(A){return arguments.length?(o=tl(l,M=A*A),P()):kn(M)},k.fitExtent=function(A,t){return Zo(k,A,t)},k.fitSize=function(A,t){return Jo(k,A,t)},k.fitWidth=function(A,t){return Ko(k,A,t)},k.fitHeight=function(A,t){return $o(k,A,t)},function(){return t=A.apply(this,arguments),k.invert=t.invert&&S,C()}}(function(){return A})()}var il,ol=(il=function(A){return(A=Sn(A))&&A/Bn(A)},function(A,t){var e=_n(A),n=_n(t),r=il(e*n);return r===1/0?[2,0]:[r*n*Bn(A),r*Bn(t)]});function ll(A,t){return[A,t]}ol.invert=function(A){return function(t,e){var n=kn(t*t+e*e),r=A(n),i=Bn(r),o=_n(r);return[En(t*i,n*o),Cn(n&&e*i/n)]}}(function(A){return A}),ll.invert=ll;var sl=Object.prototype.hasOwnProperty;function al(A,t,e,n,r,i){3===arguments.length&&(n=i=Array,r=null);for(var o=new n(A=1<<Math.max(4,Math.ceil(Math.log(A)/Math.LN2))),l=new i(A),s=A-1,a=0;a<A;++a)o[a]=r;return{set:function(n,i){for(var a=t(n)&s,u=o[a],f=0;u!=r;){if(e(u,n))return l[a]=i;if(++f>=A)throw new Error("full hashmap");u=o[a=a+1&s]}return o[a]=n,l[a]=i,i},maybeSet:function(n,i){for(var a=t(n)&s,u=o[a],f=0;u!=r;){if(e(u,n))return l[a];if(++f>=A)throw new Error("full hashmap");u=o[a=a+1&s]}return o[a]=n,l[a]=i,i},get:function(n,i){for(var a=t(n)&s,u=o[a],f=0;u!=r;){if(e(u,n))return l[a];if(++f>=A)break;u=o[a=a+1&s]}return i},keys:function(){for(var A=[],t=0,e=o.length;t<e;++t){var n=o[t];n!=r&&A.push(n)}return A}}}function ul(A,t){return A[0]===t[0]&&A[1]===t[1]}var fl=new ArrayBuffer(16),cl=new Float64Array(fl),hl=new Uint32Array(fl);function gl(A){cl[0]=A[0],cl[1]=A[1];var t=hl[0]^hl[1];return 2147483647&(t<<5^t>>7^hl[2]^hl[3])}function pl(A){var t,e,n,r,i=A.coordinates,o=A.lines,l=A.rings,s=function(){for(var A=al(1.4*i.length,b,E,Int32Array,-1,Int32Array),t=new Int32Array(i.length),e=0,n=i.length;e<n;++e)t[e]=A.maybeSet(e,e);return t}(),a=new Int32Array(i.length),u=new Int32Array(i.length),f=new Int32Array(i.length),c=new Int8Array(i.length),h=0;for(t=0,e=i.length;t<e;++t)a[t]=u[t]=f[t]=-1;for(t=0,e=o.length;t<e;++t){var g=o[t],p=g[0],d=g[1];for(n=s[p],r=s[++p],++h,c[n]=1;++p<=d;)w(t,n,n=r,r=s[p]);++h,c[r]=1}for(t=0,e=i.length;t<e;++t)a[t]=-1;for(t=0,e=l.length;t<e;++t){var y=l[t],v=y[0]+1,m=y[1];for(w(t,s[m-1],n=s[v-1],r=s[v]);++v<=m;)w(t,n,n=r,r=s[v])}function w(A,t,e,n){if(a[e]!==A){a[e]=A;var r=u[e];if(r>=0){var i=f[e];r===t&&i===n||r===n&&i===t||(++h,c[e]=1)}else u[e]=t,f[e]=n}}function b(A){return gl(i[A])}function E(A,t){return ul(i[A],i[t])}a=u=f=null;var _,x=function(A,t,e,n,r){3===arguments.length&&(n=Array,r=null);for(var i=new n(A=1<<Math.max(4,Math.ceil(Math.log(A)/Math.LN2))),o=A-1,l=0;l<A;++l)i[l]=r;return{add:function(n){for(var l=t(n)&o,s=i[l],a=0;s!=r;){if(e(s,n))return!0;if(++a>=A)throw new Error("full hashset");s=i[l=l+1&o]}return i[l]=n,!0},has:function(n){for(var l=t(n)&o,s=i[l],a=0;s!=r;){if(e(s,n))return!0;if(++a>=A)break;s=i[l=l+1&o]}return!1},values:function(){for(var A=[],t=0,e=i.length;t<e;++t){var n=i[t];n!=r&&A.push(n)}return A}}}(1.4*h,gl,ul);for(t=0,e=i.length;t<e;++t)c[_=s[t]]&&x.add(i[_]);return x}function dl(A,t,e,n){yl(A,t,e),yl(A,t,t+n),yl(A,t+n,e)}function yl(A,t,e){for(var n,r=t+(e---t>>1);t<r;++t,--e)n=A[t],A[t]=A[e],A[e]=n}function vl(A){return null==A?{type:null}:("FeatureCollection"===A.type?ml:"Feature"===A.type?wl:bl)(A)}function ml(A){var t={type:"GeometryCollection",geometries:A.features.map(wl)};return null!=A.bbox&&(t.bbox=A.bbox),t}function wl(A){var t,e=bl(A.geometry);for(t in null!=A.id&&(e.id=A.id),null!=A.bbox&&(e.bbox=A.bbox),A.properties){e.properties=A.properties;break}return e}function bl(A){if(null==A)return{type:null};var t="GeometryCollection"===A.type?{type:"GeometryCollection",geometries:A.geometries.map(bl)}:"Point"===A.type||"MultiPoint"===A.type?{type:A.type,coordinates:A.coordinates}:{type:A.type,arcs:A.coordinates};return null!=A.bbox&&(t.bbox=A.bbox),t}function El(A,t){var e=function(A){var t=1/0,e=1/0,n=-1/0,r=-1/0;function i(A){null!=A&&sl.call(o,A.type)&&o[A.type](A)}var o={GeometryCollection:function(A){A.geometries.forEach(i)},Point:function(A){l(A.coordinates)},MultiPoint:function(A){A.coordinates.forEach(l)},LineString:function(A){s(A.arcs)},MultiLineString:function(A){A.arcs.forEach(s)},Polygon:function(A){A.arcs.forEach(s)},MultiPolygon:function(A){A.arcs.forEach(a)}};function l(A){var i=A[0],o=A[1];i<t&&(t=i),i>n&&(n=i),o<e&&(e=o),o>r&&(r=o)}function s(A){A.forEach(l)}function a(A){A.forEach(s)}for(var u in A)i(A[u]);return n>=t&&r>=e?[t,e,n,r]:void 0}(A=function(A){var t,e={};for(t in A)e[t]=vl(A[t]);return e}(A)),n=t>0&&e&&function(A,t,e){var n=t[0],r=t[1],i=t[2],o=t[3],l=i-n?(e-1)/(i-n):1,s=o-r?(e-1)/(o-r):1;function a(A){return[Math.round((A[0]-n)*l),Math.round((A[1]-r)*s)]}function u(A,t){for(var e,i,o,a,u,f=-1,c=0,h=A.length,g=new Array(h);++f<h;)e=A[f],a=Math.round((e[0]-n)*l),u=Math.round((e[1]-r)*s),a===i&&u===o||(g[c++]=[i=a,o=u]);for(g.length=c;c<t;)c=g.push([g[0][0],g[0][1]]);return g}function f(A){return u(A,2)}function c(A){return u(A,4)}function h(A){return A.map(c)}function g(A){null!=A&&sl.call(p,A.type)&&p[A.type](A)}var p={GeometryCollection:function(A){A.geometries.forEach(g)},Point:function(A){A.coordinates=a(A.coordinates)},MultiPoint:function(A){A.coordinates=A.coordinates.map(a)},LineString:function(A){A.arcs=f(A.arcs)},MultiLineString:function(A){A.arcs=A.arcs.map(f)},Polygon:function(A){A.arcs=h(A.arcs)},MultiPolygon:function(A){A.arcs=A.arcs.map(h)}};for(var d in A)g(A[d]);return{scale:[1/l,1/s],translate:[n,r]}}(A,e,t),r=function(A){var t,e,n,r,i=A.coordinates,o=A.lines,l=A.rings,s=o.length+l.length;for(delete A.lines,delete A.rings,n=0,r=o.length;n<r;++n)for(t=o[n];t=t.next;)++s;for(n=0,r=l.length;n<r;++n)for(e=l[n];e=e.next;)++s;var a=al(2*s*1.4,gl,ul),u=A.arcs=[];for(n=0,r=o.length;n<r;++n){t=o[n];do{f(t)}while(t=t.next)}for(n=0,r=l.length;n<r;++n)if((e=l[n]).next)do{f(e)}while(e=e.next);else c(e);function f(A){var t,e,n,r,o,l,s,f;if(n=a.get(t=i[A[0]]))for(s=0,f=n.length;s<f;++s)if(h(r=n[s],A))return A[0]=r[0],void(A[1]=r[1]);if(o=a.get(e=i[A[1]]))for(s=0,f=o.length;s<f;++s)if(g(l=o[s],A))return A[1]=l[0],void(A[0]=l[1]);n?n.push(A):a.set(t,[A]),o?o.push(A):a.set(e,[A]),u.push(A)}function c(A){var t,e,n,r,o;if(e=a.get(i[A[0]]))for(r=0,o=e.length;r<o;++r){if(p(n=e[r],A))return A[0]=n[0],void(A[1]=n[1]);if(d(n,A))return A[0]=n[1],void(A[1]=n[0])}if(e=a.get(t=i[A[0]+y(A)]))for(r=0,o=e.length;r<o;++r){if(p(n=e[r],A))return A[0]=n[0],void(A[1]=n[1]);if(d(n,A))return A[0]=n[1],void(A[1]=n[0])}e?e.push(A):a.set(t,[A]),u.push(A)}function h(A,t){var e=A[0],n=t[0],r=A[1];if(e-r!==n-t[1])return!1;for(;e<=r;++e,++n)if(!ul(i[e],i[n]))return!1;return!0}function g(A,t){var e=A[0],n=t[0],r=A[1],o=t[1];if(e-r!==n-o)return!1;for(;e<=r;++e,--o)if(!ul(i[e],i[o]))return!1;return!0}function p(A,t){var e=A[0],n=t[0],r=A[1]-e;if(r!==t[1]-n)return!1;for(var o=y(A),l=y(t),s=0;s<r;++s)if(!ul(i[e+(s+o)%r],i[n+(s+l)%r]))return!1;return!0}function d(A,t){var e=A[0],n=t[0],r=A[1],o=t[1],l=r-e;if(l!==o-n)return!1;for(var s=y(A),a=l-y(t),u=0;u<l;++u)if(!ul(i[e+(u+s)%l],i[o-(u+a)%l]))return!1;return!0}function y(A){for(var t=A[0],e=A[1],n=t,r=n,o=i[n];++n<e;){var l=i[n];(l[0]<o[0]||l[0]===o[0]&&l[1]<o[1])&&(r=n,o=l)}return r-t}return A}(function(A){var t,e,n,r=pl(A),i=A.coordinates,o=A.lines,l=A.rings;for(e=0,n=o.length;e<n;++e)for(var s=o[e],a=s[0],u=s[1];++a<u;)r.has(i[a])&&(t={0:a,1:s[1]},s[1]=a,s=s.next=t);for(e=0,n=l.length;e<n;++e)for(var f=l[e],c=f[0],h=c,g=f[1],p=r.has(i[c]);++h<g;)r.has(i[h])&&(p?(t={0:h,1:f[1]},f[1]=h,f=f.next=t):(dl(i,c,g,g-h),i[g]=i[c],p=!0,h=c));return A}(function(A){var t=-1,e=[],n=[],r=[];function i(A){A&&sl.call(o,A.type)&&o[A.type](A)}var o={GeometryCollection:function(A){A.geometries.forEach(i)},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(s)},MultiPolygon:function(A){A.arcs=A.arcs.map(a)}};function l(A){for(var n=0,i=A.length;n<i;++n)r[++t]=A[n];var o={0:t-i+1,1:t};return e.push(o),o}function s(A){for(var e=0,i=A.length;e<i;++e)r[++t]=A[e];var o={0:t-i+1,1:t};return n.push(o),o}function a(A){return A.map(s)}for(var u in A)i(A[u]);return{type:"Topology",coordinates:r,lines:e,rings:n,objects:A}}(A))),i=r.coordinates,o=al(1.4*r.arcs.length,_l,xl);function l(A){A&&sl.call(s,A.type)&&s[A.type](A)}A=r.objects,r.bbox=e,r.arcs=r.arcs.map(function(A,t){return o.set(A,t),i.slice(A[0],A[1]+1)}),delete r.coordinates,i=null;var s={GeometryCollection:function(A){A.geometries.forEach(l)},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(a)},MultiPolygon:function(A){A.arcs=A.arcs.map(u)}};function a(A){var t=[];do{var e=o.get(A);t.push(A[0]<A[1]?e:~e)}while(A=A.next);return t}function u(A){return A.map(a)}for(var f in A)l(A[f]);return n&&(r.transform=n,r.arcs=function(A){for(var t=-1,e=A.length;++t<e;){for(var n,r,i=A[t],o=0,l=1,s=i.length,a=i[0],u=a[0],f=a[1];++o<s;)n=(a=i[o])[0],r=a[1],n===u&&r===f||(i[l++]=[n-u,r-f],u=n,f=r);1===l&&(i[l++]=[0,0]),i.length=l}return A}(r.arcs)),r}function _l(A){var t,e=A[0],n=A[1];return n<e&&(t=e,e=n,n=t),e+31*n}function xl(A,t){var e,n=A[0],r=A[1],i=t[0],o=t[1];return r<n&&(e=n,n=r,r=e),o<i&&(e=i,i=o,o=e),n===i&&r===o}function Bl(A){return A}function Ml(A){if(null==A)return Bl;var t,e,n=A.scale[0],r=A.scale[1],i=A.translate[0],o=A.translate[1];return function(A,l){l||(t=e=0);var s=2,a=A.length,u=new Array(a);for(u[0]=(t+=A[0])*n+i,u[1]=(e+=A[1])*r+o;s<a;)u[s]=A[s],++s;return u}}function kl(A,t){return"string"==typeof t&&(t=A.objects[t]),"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map(function(t){return Sl(A,t)})}:Sl(A,t)}function Sl(A,t){var e=t.id,n=t.bbox,r=null==t.properties?{}:t.properties,i=Cl(A,t);return null==e&&null==n?{type:"Feature",properties:r,geometry:i}:null==n?{type:"Feature",id:e,properties:r,geometry:i}:{type:"Feature",id:e,bbox:n,properties:r,geometry:i}}function Cl(A,t){var e=Ml(A.transform),n=A.arcs;function r(A,t){t.length&&t.pop();for(var r=n[A<0?~A:A],i=0,o=r.length;i<o;++i)t.push(e(r[i],i));A<0&&function(A,t){for(var e,n=A.length,r=n-t;r<--n;)e=A[r],A[r++]=A[n],A[n]=e}(t,o)}function i(A){return e(A)}function o(A){for(var t=[],e=0,n=A.length;e<n;++e)r(A[e],t);return t.length<2&&t.push(t[0]),t}function l(A){for(var t=o(A);t.length<4;)t.push(t[0]);return t}function s(A){return A.map(l)}return function A(t){var e,n=t.type;switch(n){case"GeometryCollection":return{type:n,geometries:t.geometries.map(A)};case"Point":e=i(t.coordinates);break;case"MultiPoint":e=t.coordinates.map(i);break;case"LineString":e=o(t.arcs);break;case"MultiLineString":e=t.arcs.map(o);break;case"Polygon":e=s(t.arcs);break;case"MultiPolygon":e=t.arcs.map(s);break;default:return null}return{type:n,coordinates:e}}(t)}function Pl(A,t){var e={},n={},r={},i=[],o=-1;function l(A,t){for(var n in A){var r=A[n];delete t[r.start],delete r.start,delete r.end,r.forEach(function(A){e[A<0?~A:A]=1}),i.push(r)}}return t.forEach(function(e,n){var r,i=A.arcs[e<0?~e:e];i.length<3&&!i[1][0]&&!i[1][1]&&(r=t[++o],t[o]=e,t[n]=r)}),t.forEach(function(t){var e,i,o=function(t){var e,n=A.arcs[t<0?~t:t],r=n[0];return A.transform?(e=[0,0],n.forEach(function(A){e[0]+=A[0],e[1]+=A[1]})):e=n[n.length-1],t<0?[e,r]:[r,e]}(t),l=o[0],s=o[1];if(e=r[l])if(delete r[e.end],e.push(t),e.end=s,i=n[s]){delete n[i.start];var a=i===e?e:e.concat(i);n[a.start=e.start]=r[a.end=i.end]=a}else n[e.start]=r[e.end]=e;else if(e=n[s])if(delete n[e.start],e.unshift(t),e.start=l,i=r[l]){delete r[i.end];var u=i===e?e:i.concat(e);n[u.start=i.start]=r[u.end=e.end]=u}else n[e.start]=r[e.end]=e;else n[(e=[t]).start=l]=r[e.end=s]=e}),l(r,n),l(n,r),t.forEach(function(A){e[A<0?~A:A]||i.push([A])}),i}function Dl(A,t,e){var n,r,i;if(arguments.length>1)n=function(A,t,e){var n,r=[],i=[];function o(A){var t=A<0?~A:A;(i[t]||(i[t]=[])).push({i:A,g:n})}function l(A){A.forEach(o)}function s(A){A.forEach(l)}return function A(t){switch(n=t,t.type){case"GeometryCollection":t.geometries.forEach(A);break;case"LineString":l(t.arcs);break;case"MultiLineString":case"Polygon":s(t.arcs);break;case"MultiPolygon":!function(A){A.forEach(s)}(t.arcs)}}(t),i.forEach(null==e?function(A){r.push(A[0].i)}:function(A){e(A[0].g,A[A.length-1].g)&&r.push(A[0].i)}),r}(0,t,e);else for(r=0,n=new Array(i=A.arcs.length);r<i;++r)n[r]=r;return{type:"MultiLineString",arcs:Pl(A,n)}}function Ql(A,t){var e={},n=[],r=[];function i(A){A.forEach(function(t){t.forEach(function(t){(e[t=t<0?~t:t]||(e[t]=[])).push(A)})}),n.push(A)}function o(t){return function(A){for(var t,e=-1,n=A.length,r=A[n-1],i=0;++e<n;)t=r,r=A[e],i+=t[0]*r[1]-t[1]*r[0];return Math.abs(i)}(Cl(A,{type:"Polygon",arcs:[t]}).coordinates[0])}return t.forEach(function A(t){switch(t.type){case"GeometryCollection":t.geometries.forEach(A);break;case"Polygon":i(t.arcs);break;case"MultiPolygon":t.arcs.forEach(i)}}),n.forEach(function(A){if(!A._){var t=[],n=[A];for(A._=1,r.push(t);A=n.pop();)t.push(A),A.forEach(function(A){A.forEach(function(A){e[A<0?~A:A].forEach(function(A){A._||(A._=1,n.push(A))})})})}}),n.forEach(function(A){delete A._}),{type:"MultiPolygon",arcs:r.map(function(t){var n,r=[];if(t.forEach(function(A){A.forEach(function(A){A.forEach(function(A){e[A<0?~A:A].length<2&&r.push(A)})})}),(n=(r=Pl(A,r)).length)>1)for(var i,l,s=1,a=o(r[0]);s<n;++s)(i=o(r[s]))>a&&(l=r[0],r[0]=r[s],r[s]=l,a=i);return r}).filter(function(A){return A.length>0})}}function Il(A,t){for(var e=0,n=A.length;e<n;){var r=e+n>>>1;A[r]<t?e=r+1:n=r}return e}function Tl(A){for(var t in A){var e,n,r=A[t].trim();if(r)if("true"===r)r=!0;else if("false"===r)r=!1;else if("NaN"===r)r=NaN;else if(isNaN(e=+r)){if(!(n=r.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;Fl&&n[4]&&!n[7]&&(r=r.replace(/-/g,"/").replace(/T/," ")),r=new Date(r)}else r=e;else r=null;A[t]=r}return A}Object.assign({},{topology:El,merge:function(A){return Cl(A,Ql.apply(this,arguments))}}),Object.assign({},{sum:rn,min:Ue,max:Ye,mode:$e,median:Je,mean:Ze,variance:se,deviation:ae});const Fl=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function Ll(A){var t=A[0],e=A[1],n=A[2];return Math.abs((t[0]-n[0])*(e[1]-t[1])-(t[0]-e[0])*(n[1]-t[1]))/2}function Ol(A,t){return A[1][2]-t[1][2]}function Rl(A){return[A[0],A[1],0]}function Nl(A,t){return t-A}Object.assign({},{autoType:Tl}),Object.assign({},{descending:Ut,ascending:zt,autoType:Tl}),Object.assign({},{descending:Ut,ascending:zt,autoType:Tl}),Object.assign({},{descending:Ut,ascending:zt,autoType:Tl}),Object.assign({},{topology:El,presimplify:function(A,t){var e=A.transform?Ml(A.transform):Rl,n=function(){var A={},t=[],e=0;function n(A,e){for(;e>0;){var n=(e+1>>1)-1,r=t[n];if(Ol(A,r)>=0)break;t[r._=e]=r,t[A._=e=n]=A}}function r(A,n){for(;;){var r=n+1<<1,i=r-1,o=n,l=t[o];if(i<e&&Ol(t[i],l)<0&&(l=t[o=i]),r<e&&Ol(t[r],l)<0&&(l=t[o=r]),o===n)break;t[l._=n]=l,t[A._=n=o]=A}}return A.push=function(A){return n(t[A._=e]=A,e++),e},A.pop=function(){if(!(e<=0)){var A,n=t[0];return--e>0&&(A=t[e],r(t[A._=0]=A,0)),n}},A.remove=function(A){var i,o=A._;if(t[o]===A)return o!==--e&&(Ol(i=t[e],A)<0?n:r)(t[i._=o]=i,o),o},A}();null==t&&(t=Ll);var r=A.arcs.map(function(A){var r,o,l,s=[],a=0;for(o=1,l=(A=A.map(e)).length-1;o<l;++o)(r=[A[o-1],A[o],A[o+1]])[1][2]=t(r),s.push(r),n.push(r);for(A[0][2]=A[l][2]=1/0,o=0,l=s.length;o<l;++o)(r=s[o]).previous=s[o-1],r.next=s[o+1];for(;r=n.pop();){var u=r.previous,f=r.next;r[1][2]<a?r[1][2]=a:a=r[1][2],u&&(u.next=f,u[2]=r[2],i(u)),f&&(f.previous=u,f[0]=r[0],i(f))}return A});function i(A){n.remove(A),A[1][2]=t(A),n.push(A)}return{type:"Topology",bbox:A.bbox,objects:A.objects,arcs:r}},quantiz:function(A,t){if(A.transform)throw new Error("already quantized");if(t&&t.scale)l=A.bbox;else{if(!((e=Math.floor(t))>=2))throw new Error("n must be ≥2");var e,n=(l=A.bbox||function(A){var t,e=Ml(A.transform),n=1/0,r=n,i=-n,o=-n;function l(A){(A=e(A))[0]<n&&(n=A[0]),A[0]>i&&(i=A[0]),A[1]<r&&(r=A[1]),A[1]>o&&(o=A[1])}function s(A){switch(A.type){case"GeometryCollection":A.geometries.forEach(s);break;case"Point":l(A.coordinates);break;case"MultiPoint":A.coordinates.forEach(l)}}for(t in A.arcs.forEach(function(A){for(var t,l=-1,s=A.length;++l<s;)(t=e(A[l],l))[0]<n&&(n=t[0]),t[0]>i&&(i=t[0]),t[1]<r&&(r=t[1]),t[1]>o&&(o=t[1])}),A.objects)s(A.objects[t]);return[n,r,i,o]}(A))[0],r=l[1],i=l[2],o=l[3];t={scale:[i-n?(i-n)/(e-1):1,o-r?(o-r)/(e-1):1],translate:[n,r]}}var l,s,a=function(A){if(null==A)return Bl;var t,e,n=A.scale[0],r=A.scale[1],i=A.translate[0],o=A.translate[1];return function(A,l){l||(t=e=0);var s=2,a=A.length,u=new Array(a),f=Math.round((A[0]-i)/n),c=Math.round((A[1]-o)/r);for(u[0]=f-t,t=f,u[1]=c-e,e=c;s<a;)u[s]=A[s],++s;return u}}(t),u=A.objects,f={};function c(A){return a(A)}function h(A){var t;switch(A.type){case"GeometryCollection":t={type:"GeometryCollection",geometries:A.geometries.map(h)};break;case"Point":t={type:"Point",coordinates:c(A.coordinates)};break;case"MultiPoint":t={type:"MultiPoint",coordinates:A.coordinates.map(c)};break;default:return A}return null!=A.id&&(t.id=A.id),null!=A.bbox&&(t.bbox=A.bbox),null!=A.properties&&(t.properties=A.properties),t}for(s in u)f[s]=h(u[s]);return{type:"Topology",bbox:l,transform:t,objects:f,arcs:A.arcs.map(function(A){var t,e=0,n=1,r=A.length,i=new Array(r);for(i[0]=a(A[0],0);++e<r;)((t=a(A[e],e))[0]||t[1])&&(i[n++]=t);return 1===n&&(i[n++]=[0,0]),i.length=n,i})}},quantile:function(A,t){var e=[];return A.arcs.forEach(function(A){A.forEach(function(A){isFinite(A[2])&&e.push(A[2])})}),e.length&&function(A,t){if(e=A.length){if((t=+t)<=0||e<2)return A[0];if(t>=1)return A[e-1];var e,n=(e-1)*t,r=Math.floor(n),i=A[r];return i+(A[r+1]-i)*(n-r)}}(e.sort(Nl),t)},simple:function(A,t){t=null==t?Number.MIN_VALUE:+t;var e=A.arcs.map(function(A){for(var e,n=-1,r=0,i=A.length,o=new Array(i);++n<i;)(e=A[n])[2]>=t&&(o[r++]=[e[0],e[1]]);return o.length=r,o});return{type:"Topology",transform:A.transform,bbox:A.bbox,objects:A.objects,arcs:e}},feature:kl}),Object.assign({},{feature:kl}),Object.assign({},{geoEquirectangularRaw:ll,geoBounds:function(A){var t,e,n,r,i,o,l;if(Xn=jn=-(zn=Un=1/0),Jn=[],Ln(A,Pr),e=Jn.length){for(Jn.sort(Nr),t=1,i=[n=Jn[0]];t<e;++t)Gr(n,(r=Jn[t])[0])||Gr(n,r[1])?(Rr(n[0],r[1])>Rr(n[0],n[1])&&(n[1]=r[1]),Rr(r[0],n[1])>Rr(n[0],n[1])&&(n[0]=r[0])):i.push(n=r);for(o=-1/0,t=0,n=i[e=i.length-1];t<=e;n=r,++t)r=i[t],(l=Rr(n[1],r[0]))>o&&(o=l,zn=r[0],jn=n[1])}return Jn=Kn=null,zn===1/0||Un===1/0?[[NaN,NaN],[NaN,NaN]]:[[zn,Un],[jn,Xn]]}}),Object.assign({},{topology:El,neighbors:function(A){var t={},e=A.map(function(){return[]});function n(A,e){A.forEach(function(A){A<0&&(A=~A);var n=t[A];n?n.push(e):t[A]=[e]})}function r(A,t){A.forEach(function(A){n(A,t)})}var i={LineString:n,MultiLineString:r,Polygon:r,MultiPolygon:function(A,t){A.forEach(function(A){r(A,t)})}};for(var o in A.forEach(function A(t,e){"GeometryCollection"===t.type?t.geometries.forEach(function(t){A(t,e)}):t.type in i&&i[t.type](t.arcs,e)}),t)for(var l=t[o],s=l.length,a=0;a<s;++a)for(var u=a+1;u<s;++u){var f,c=l[a],h=l[u];(f=e[c])[o=Il(f,h)]!==h&&f.splice(o,0,h),(f=e[h])[o=Il(f,c)]!==c&&f.splice(o,0,c)}return e},mesh:function(A){return Cl(A,Dl.apply(this,arguments))}}),Object.assign({},fn);var Gl={exports:{}};function Yl(A){let{simple:t=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const e=Gt(A);let n=e.import(A),r=n?.stream?geoRewindProjection(n,t):n?.type?zl(n,t):Array.isArray(n)?Array.from(n,A=>Yl(A,t)):n;return e.export(r)}!function(){function A(A,t,e){function n(A){return A.map(function(A,n){return n<2?1*A.toFixed(t):1*A.toFixed(e)})}function r(A){return A.map(n)}function i(A){return A.map(r)}function o(A){if(!A)return{};switch(A.type){case"Point":return A.coordinates=n(A.coordinates),A;case"LineString":case"MultiPoint":return A.coordinates=r(A.coordinates),A;case"Polygon":case"MultiLineString":return A.coordinates=i(A.coordinates),A;case"MultiPolygon":return A.coordinates=function(A){return A.map(i)}(A.coordinates),A;case"GeometryCollection":return A.geometries=A.geometries.map(o),A;default:return{}}}function l(A){return A.geometry=o(A.geometry),A}if(!A)return A;switch(A.type){case"Feature":return l(A);case"GeometryCollection":return function(A){return A.geometries=A.geometries.map(o),A}(A);case"FeatureCollection":return function(A){return A.features=A.features.map(l),A}(A);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiPolygon":case"MultiLineString":return o(A);default:return A}}Gl.exports=A,Gl.exports.parse=A}(),Object.assign({},{geoArea:or,geoCentroid:Kr,geoIdentity:function(){var A,t,e,n,r,i,o,l=1,s=0,a=0,u=1,f=1,c=0,h=null,g=1,p=1,d=Ho({point:function(A,t){var e=m([A,t]);this.stream.point(e[0],e[1])}}),y=ji;function v(){return g=l*u,p=l*f,i=o=null,m}function m(e){var n=e[0]*g,r=e[1]*p;if(c){var i=r*A-n*t;n=n*A+r*t,r=i}return[n+s,r+a]}return m.invert=function(e){var n=e[0]-s,r=e[1]-a;if(c){var i=r*A+n*t;n=n*A-r*t,r=i}return[n/g,r/p]},m.stream=function(A){return i&&o===A?i:i=d(y(o=A))},m.postclip=function(A){return arguments.length?(y=A,h=e=n=r=null,v()):y},m.clipExtent=function(A){return arguments.length?(y=null==A?(h=e=n=r=null,ji):_i(h=+A[0][0],e=+A[0][1],n=+A[1][0],r=+A[1][1]),v()):null==h?null:[[h,e],[n,r]]},m.scale=function(A){return arguments.length?(l=+A,v()):l},m.translate=function(A){return arguments.length?(s=+A[0],a=+A[1],v()):[s,a]},m.angle=function(e){return arguments.length?(t=Bn(c=e%360*mn),A=_n(c),v()):c*vn},m.reflectX=function(A){return arguments.length?(u=A?-1:1,v()):u<0},m.reflectY=function(A){return arguments.length?(f=A?-1:1,v()):f<0},m.fitExtent=function(A,t){return Zo(m,A,t)},m.fitSize=function(A,t){return Jo(m,A,t)},m.fitWidth=function(A,t){return Ko(m,A,t)},m.fitHeight=function(A,t){return $o(m,A,t)},m},geoPath:function(A,t){let e,n,r=3,i=4.5;function o(A){return A&&("function"==typeof i&&n.pointRadius(+i.apply(this,arguments)),Ln(A,e(n))),n.result()}return o.area=function(A){return Ln(A,e(Ki)),Ki.result()},o.measure=function(A){return Ln(A,e(Go)),Go.result()},o.bounds=function(A){return Ln(A,e(so)),so.result()},o.centroid=function(A){return Ln(A,e(Co)),Co.result()},o.projection=function(t){return arguments.length?(e=null==t?(A=null,ji):(A=t).stream,o):A},o.context=function(A){return arguments.length?(n=null==A?(t=null,new Xo(r)):new Po(t=A),"function"!=typeof i&&n.pointRadius(i),o):t},o.pointRadius=function(A){return arguments.length?(i="function"==typeof A?A:(n.pointRadius(+A),+A),o):i},o.digits=function(A){if(!arguments.length)return r;if(null==A)r=null;else{const t=Math.floor(A);if(!(t>=0))throw new RangeError(`invalid digits: ${A}`);r=t}return null===t&&(n=new Xo(r)),o},o.projection(A).digits(r).context(t)}});const zl=(A,t)=>Ul(A,function(){let A,t,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function(A){return{stream:Ho(A)}}({polygonStart(){this.stream.polygonStart(),t=[]},lineStart(){t?t.push(A=[]):this.stream.lineStart()},lineEnd(){t||this.stream.lineEnd()},point(e,n){t?A.push([e,n]):this.stream.point(e,n)},polygonEnd(){for(let[A,n]of t.entries()){n.push(n[0].slice()),(A?!Ni({type:"Polygon",coordinates:[n]},t[0][0]):t[1]?!Ni({type:"Polygon",coordinates:[n]},t[1][0]):e&&or({type:"Polygon",coordinates:[n]})>2*Math.PI)&&n.reverse(),this.stream.lineStart(),n.pop();for(const[A,t]of n)this.stream.point(A,t);this.stream.lineEnd()}this.stream.polygonEnd(),t=null}})}(t));const Ul=function(A,t){const e=t.stream;let n;if(!e)throw new Error("invalid projection");switch(A&&A.type){case"Feature":n=Xl;break;case"FeatureCollection":n=jl;break;default:n=Vl}return n(A,e)};function jl(A,t){return{...A,features:A.features.map(A=>Xl(A,t))}}function Xl(A,t){return{...A,geometry:Vl(A.geometry,t)}}function Vl(A,t){return A?"GeometryCollection"===A.type?function(A,t){return{...A,geometries:A.geometries.map(A=>Vl(A,t))}}(A,t):"Polygon"===A.type||"MultiPolygon"===A.type?function(A,t){let e,n,r=[];return Ln(A,t({polygonStart(){r.push(e=[])},polygonEnd(){},lineStart(){e.push(n=[])},lineEnd(){n.push(n[0].slice())},point(A,t){n.push([A,t])}})),"Polygon"===A.type&&(r=r[0]),{...A,coordinates:r}}(A,t):A:null}function Hl(){let A,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.level,n=void 0===e?0:e,r=t.domain,i=void 0===r?void 0:r,o=t.rewind,l=void 0===o?void 0:o;if(i){l=void 0===l||l;const t=Rt.featureToH3Set(i,n);A=Rt.h3SetToFeatureCollection(t,A=>({value:A}))}else l=void 0!==l&&l,A={type:"FeatureCollection",grid:"h3",level:n,geo:!0,features:Mt().map(A=>xt(A,n)).flat().map(A=>({type:"Feature",properties:{id:A,pentagon:Et(A)},geometry:{type:"Polygon",coordinates:[_t(A,!0).reverse()]}}))};return l?Yl(A):A}function ql(A,t,e=0,n=A.length-1,r=Zl){for(;n>e;){if(n-e>600){const i=n-e+1,o=t-e+1,l=Math.log(i),s=.5*Math.exp(2*l/3),a=.5*Math.sqrt(l*s*(i-s)/i)*(o-i/2<0?-1:1);ql(A,t,Math.max(e,Math.floor(t-o*s/i+a)),Math.min(n,Math.floor(t+(i-o)*s/i+a)),r)}const i=A[t];let o=e,l=n;for(Wl(A,e,t),r(A[n],i)>0&&Wl(A,e,n);o<l;){for(Wl(A,o,l),o++,l--;r(A[o],i)<0;)o++;for(;r(A[l],i)>0;)l--}0===r(A[e],i)?Wl(A,e,l):(l++,Wl(A,l,n)),l<=t&&(e=l+1),t<=l&&(n=l-1)}}function Wl(A,t,e){const n=A[t];A[t]=A[e],A[e]=n}function Zl(A,t){return A<t?-1:A>t?1:0}Object.assign({},{geoAzimuthalEquidistant:function(){return rl(ol).scale(79.4188).clipAngle(179.999)},geoCentroid:Kr});let Jl=class{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 t=this.data;const e=[];if(!as(A,t))return e;const n=this.toBBox,r=[];for(;t;){for(let i=0;i<t.children.length;i++){const o=t.children[i],l=t.leaf?n(o):o;as(A,l)&&(t.leaf?e.push(o):ss(A,l)?this._all(o,e):r.push(o))}t=r.pop()}return e}collides(A){let t=this.data;if(!as(A,t))return!1;const e=[];for(;t;){for(let n=0;n<t.children.length;n++){const r=t.children[n],i=t.leaf?this.toBBox(r):r;if(as(A,i)){if(t.leaf||ss(A,i))return!0;e.push(r)}}t=e.pop()}return!1}load(A){if(!A||!A.length)return this;if(A.length<this._minEntries){for(let t=0;t<A.length;t++)this.insert(A[t]);return this}let t=this._build(A.slice(),0,A.length-1,0);if(this.data.children.length)if(this.data.height===t.height)this._splitRoot(this.data,t);else{if(this.data.height<t.height){const A=this.data;this.data=t,t=A}this._insert(t,this.data.height-t.height-1,!0)}else this.data=t;return this}insert(A){return A&&this._insert(A,this.data.height-1),this}clear(){return this.data=us([]),this}remove(A,t){if(!A)return this;let e=this.data;const n=this.toBBox(A),r=[],i=[];let o,l,s;for(;e||r.length;){if(e||(e=r.pop(),l=r[r.length-1],o=i.pop(),s=!0),e.leaf){const n=Kl(A,e.children,t);if(-1!==n)return e.children.splice(n,1),r.push(e),this._condense(r),this}s||e.leaf||!ss(e,n)?l?(o++,e=l.children[o],s=!1):e=null:(r.push(e),i.push(o),o=0,l=e,e=e.children[0])}return this}toBBox(A){return A}compareMinX(A,t){return A.minX-t.minX}compareMinY(A,t){return A.minY-t.minY}toJSON(){return this.data}fromJSON(A){return this.data=A,this}_all(A,t){const e=[];for(;A;)A.leaf?t.push(...A.children):e.push(...A.children),A=e.pop();return t}_build(A,t,e,n){const r=e-t+1;let i,o=this._maxEntries;if(r<=o)return i=us(A.slice(t,e+1)),$l(i,this.toBBox),i;n||(n=Math.ceil(Math.log(r)/Math.log(o)),o=Math.ceil(r/Math.pow(o,n-1))),i=us([]),i.leaf=!1,i.height=n;const l=Math.ceil(r/o),s=l*Math.ceil(Math.sqrt(o));fs(A,t,e,s,this.compareMinX);for(let r=t;r<=e;r+=s){const t=Math.min(r+s-1,e);fs(A,r,t,l,this.compareMinY);for(let e=r;e<=t;e+=l){const r=Math.min(e+l-1,t);i.children.push(this._build(A,e,r,n-1))}}return $l(i,this.toBBox),i}_chooseSubtree(A,t,e,n){for(;n.push(t),!t.leaf&&n.length-1!==e;){let e,n=1/0,r=1/0;for(let i=0;i<t.children.length;i++){const o=t.children[i],l=rs(o),s=os(A,o)-l;s<r?(r=s,n=l<n?l:n,e=o):s===r&&l<n&&(n=l,e=o)}t=e||t.children[0]}return t}_insert(A,t,e){const n=e?A:this.toBBox(A),r=[],i=this._chooseSubtree(n,this.data,t,r);for(i.children.push(A),ts(i,n);t>=0&&r[t].children.length>this._maxEntries;)this._split(r,t),t--;this._adjustParentBBoxes(n,r,t)}_split(A,t){const e=A[t],n=e.children.length,r=this._minEntries;this._chooseSplitAxis(e,r,n);const i=this._chooseSplitIndex(e,r,n),o=us(e.children.splice(i,e.children.length-i));o.height=e.height,o.leaf=e.leaf,$l(e,this.toBBox),$l(o,this.toBBox),t?A[t-1].children.push(o):this._splitRoot(e,o)}_splitRoot(A,t){this.data=us([A,t]),this.data.height=A.height+1,this.data.leaf=!1,$l(this.data,this.toBBox)}_chooseSplitIndex(A,t,e){let n,r=1/0,i=1/0;for(let o=t;o<=e-t;o++){const t=As(A,0,o,this.toBBox),l=As(A,o,e,this.toBBox),s=ls(t,l),a=rs(t)+rs(l);s<r?(r=s,n=o,i=a<i?a:i):s===r&&a<i&&(i=a,n=o)}return n||e-t}_chooseSplitAxis(A,t,e){const n=A.leaf?this.compareMinX:es,r=A.leaf?this.compareMinY:ns;this._allDistMargin(A,t,e,n)<this._allDistMargin(A,t,e,r)&&A.children.sort(n)}_allDistMargin(A,t,e,n){A.children.sort(n);const r=this.toBBox,i=As(A,0,t,r),o=As(A,e-t,e,r);let l=is(i)+is(o);for(let n=t;n<e-t;n++){const t=A.children[n];ts(i,A.leaf?r(t):t),l+=is(i)}for(let n=e-t-1;n>=t;n--){const t=A.children[n];ts(o,A.leaf?r(t):t),l+=is(o)}return l}_adjustParentBBoxes(A,t,e){for(let n=e;n>=0;n--)ts(t[n],A)}_condense(A){for(let t,e=A.length-1;e>=0;e--)0===A[e].children.length?e>0?(t=A[e-1].children,t.splice(t.indexOf(A[e]),1)):this.clear():$l(A[e],this.toBBox)}};function Kl(A,t,e){if(!e)return t.indexOf(A);for(let n=0;n<t.length;n++)if(e(A,t[n]))return n;return-1}function $l(A,t){As(A,0,A.children.length,t,A)}function As(A,t,e,n,r){r||(r=us(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(let i=t;i<e;i++){const t=A.children[i];ts(r,A.leaf?n(t):t)}return r}function ts(A,t){return A.minX=Math.min(A.minX,t.minX),A.minY=Math.min(A.minY,t.minY),A.maxX=Math.max(A.maxX,t.maxX),A.maxY=Math.max(A.maxY,t.maxY),A}function es(A,t){return A.minX-t.minX}function ns(A,t){return A.minY-t.minY}function rs(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function is(A){return A.maxX-A.minX+(A.maxY-A.minY)}function os(A,t){return(Math.max(t.maxX,A.maxX)-Math.min(t.minX,A.minX))*(Math.max(t.maxY,A.maxY)-Math.min(t.minY,A.minY))}function ls(A,t){const e=Math.max(A.minX,t.minX),n=Math.max(A.minY,t.minY),r=Math.min(A.maxX,t.maxX),i=Math.min(A.maxY,t.maxY);return Math.max(0,r-e)*Math.max(0,i-n)}function ss(A,t){return A.minX<=t.minX&&A.minY<=t.minY&&t.maxX<=A.maxX&&t.maxY<=A.maxY}function as(A,t){return t.minX<=A.maxX&&t.minY<=A.maxY&&t.maxX>=A.minX&&t.maxY>=A.minY}function us(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function fs(A,t,e,n,r){const i=[t,e];for(;i.length;){if((e=i.pop())-(t=i.pop())<=n)continue;const o=t+Math.ceil((e-t)/n/2)*n;ql(A,o,t,e,r),i.push(t,o,o,e)}}function cs(A,t={}){if(null!=A.bbox&&!0!==t.recompute)return A.bbox;const e=[1/0,1/0,-1/0,-1/0];return vA(A,A=>{e[0]>A[0]&&(e[0]=A[0]),e[1]>A[1]&&(e[1]=A[1]),e[2]<A[0]&&(e[2]=A[0]),e[3]<A[1]&&(e[3]=A[1])}),e}function hs(A){function t(A,t){if(null==t)return A;for(;A-t>180;)A-=360;for(;t-A>180;)A+=360;return A}function e(A){const t=[];for(let e=0;e<A.length;e++){const n=A[e],r=t.length?t[t.length-1]:null;(!r||Math.abs(r[0]-n[0])>1e-12||Math.abs(r[1]-n[1])>1e-12)&&t.push(n)}return t}function n(A){if(!A.length)return A;const t=A[0],e=A[A.length-1];return(Math.abs(t[0]-e[0])>1e-12||Math.abs(t[1]-e[1])>1e-12)&&A.push([t[0],t[1]]),A}const r=N(N({},A),{},{features:(A.features||[]).map(A=>{if(!A||!A.geometry)return A;const r=A.geometry;if("MultiPolygon"===r.type)try{const i=function(A){const r=[],i=[];for(let t=0;t<A.length;t++){const e=A[t];if(e&&e.length){r.push(e[0].slice());for(let A=1;A<e.length;A++)i.push(e[A].slice())}}const o=[];let l=null;for(let A=0;A<r.length;A++){const n=r[A],i=[];for(let A=0;A<n.length;A++){let e=G(n[A],2),r=e[0],o=e[1];r=t(r,l),i.push([r,o]),l=r}const s=e(i);o.push(s)}let s=[];for(let A=0;A<o.length;A++){const t=o[A].slice();if(t.length>1){const A=t[0],e=t[t.length-1];Math.abs(A[0]-e[0])<1e-12&&Math.abs(A[1]-e[1])<1e-12&&t.pop()}s=s.concat(t)}s=e(s),s=n(s);const a=i.map(A=>{const t=[];for(let e=0;e<A.length;e++){const n=s.length?s[0][0]:null;let r=A[e][0];if(null!==n){for(;r-n>180;)r-=360;for(;n-r>180;)r+=360}t.push([r,A[e][1]])}return n(e(t))});return{type:"Polygon",coordinates:[s].concat(a)}}(r.coordinates);return N(N({},A),{},{geometry:i})}catch(t){return console.warn("Error stitching a MultiPolygon:",t),A}return A})});return r}class gs{constructor(){this._partials=new Float64Array(32),this._n=0}add(A){const t=this._partials;let e=0;for(let n=0;n<this._n&&n<32;n++){const r=t[n],i=A+r,o=Math.abs(A)<Math.abs(r)?A-(i-r):r-(i-A);o&&(t[e++]=o),A=i}return t[e]=A,this._n=e+1,this}valueOf(){const A=this._partials;let t,e,n,r=this._n,i=0;if(r>0){for(i=A[--r];r>0&&(t=i,e=A[--r],i=t+e,n=e-(i-t),!n););r>0&&(n<0&&A[r-1]<0||n>0&&A[r-1]>0)&&(e=2*n,t=i+e,e==t-i&&(i=t))}return i}}function ps(A){return Array.from(function*(A){for(const t of A)yield*t}(A))}var ds=1e-6,ys=Math.PI,vs=ys/2,ms=ys/4,ws=2*ys,bs=180/ys,Es=ys/180,_s=Math.abs,xs=Math.atan,Bs=Math.atan2,Ms=Math.cos,ks=Math.sin,Ss=Math.sign||function(A){return A>0?1:A<0?-1:0},Cs=Math.sqrt;function Ps(A){return A>1?vs:A<-1?-vs:Math.asin(A)}function Ds(){}function Qs(A,t){A&&Ts.hasOwnProperty(A.type)&&Ts[A.type](A,t)}var Is={Feature:function(A,t){Qs(A.geometry,t)},FeatureCollection:function(A,t){for(var e=A.features,n=-1,r=e.length;++n<r;)Qs(e[n].geometry,t)}},Ts={Sphere:function(A,t){t.sphere()},Point:function(A,t){A=A.coordinates,t.point(A[0],A[1],A[2])},MultiPoint:function(A,t){for(var e=A.coordinates,n=-1,r=e.length;++n<r;)A=e[n],t.point(A[0],A[1],A[2])},LineString:function(A,t){Fs(A.coordinates,t,0)},MultiLineString:function(A,t){for(var e=A.coordinates,n=-1,r=e.length;++n<r;)Fs(e[n],t,0)},Polygon:function(A,t){Ls(A.coordinates,t)},MultiPolygon:function(A,t){for(var e=A.coordinates,n=-1,r=e.length;++n<r;)Ls(e[n],t)},GeometryCollection:function(A,t){for(var e=A.geometries,n=-1,r=e.length;++n<r;)Qs(e[n],t)}};function Fs(A,t,e){var n,r=-1,i=A.length-e;for(t.lineStart();++r<i;)n=A[r],t.point(n[0],n[1],n[2]);t.lineEnd()}function Ls(A,t){var e=-1,n=A.length;for(t.polygonStart();++e<n;)Fs(A[e],t,1);t.polygonEnd()}function Os(A,t){A&&Is.hasOwnProperty(A.type)?Is[A.type](A,t):Qs(A,t)}function Rs(A){return[Bs(A[1],A[0]),Ps(A[2])]}function Ns(A){var t=A[0],e=A[1],n=Ms(e);return[n*Ms(t),n*ks(t),ks(e)]}function Gs(A,t){return A[0]*t[0]+A[1]*t[1]+A[2]*t[2]}function Ys(A,t){return[A[1]*t[2]-A[2]*t[1],A[2]*t[0]-A[0]*t[2],A[0]*t[1]-A[1]*t[0]]}function zs(A,t){A[0]+=t[0],A[1]+=t[1],A[2]+=t[2]}function Us(A,t){return[A[0]*t,A[1]*t,A[2]*t]}function js(A){var t=Cs(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);A[0]/=t,A[1]/=t,A[2]/=t}function Xs(A,t){function e(e,n){return e=A(e,n),t(e[0],e[1])}return A.invert&&t.invert&&(e.invert=function(e,n){return(e=t.invert(e,n))&&A.invert(e[0],e[1])}),e}function Vs(A,t){return _s(A)>ys&&(A-=Math.round(A/ws)*ws),[A,t]}function Hs(A){return function(t,e){return _s(t+=A)>ys&&(t-=Math.round(t/ws)*ws),[t,e]}}function qs(A){var t=Hs(A);return t.invert=Hs(-A),t}function Ws(A,t){var e=Ms(A),n=ks(A),r=Ms(t),i=ks(t);function o(A,t){var o=Ms(t),l=Ms(A)*o,s=ks(A)*o,a=ks(t),u=a*e+l*n;return[Bs(s*r-u*i,l*e-a*n),Ps(u*r+s*i)]}return o.invert=function(A,t){var o=Ms(t),l=Ms(A)*o,s=ks(A)*o,a=ks(t),u=a*r-s*i;return[Bs(s*r+a*i,l*e+u*n),Ps(u*e-l*n)]},o}function Zs(A,t){(t=Ns(t))[0]-=A,js(t);var e,n=(e=-t[1])>1?0:e<-1?ys:Math.acos(e);return((-t[2]<0?-n:n)+ws-ds)%ws}function Js(){var A,t=[];return{point:function(t,e,n){A.push([t,e,n])},lineStart:function(){t.push(A=[])},lineEnd:Ds,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var e=t;return t=[],A=null,e}}}function Ks(A,t){return _s(A[0]-t[0])<ds&&_s(A[1]-t[1])<ds}function $s(A,t,e,n){this.x=A,this.z=t,this.o=e,this.e=n,this.v=!1,this.n=this.p=null}function Aa(A,t,e,n,r){var i,o,l=[],s=[];if(A.forEach(function(A){if(!((t=A.length-1)<=0)){var t,e,n=A[0],o=A[t];if(Ks(n,o)){if(!n[2]&&!o[2]){for(r.lineStart(),i=0;i<t;++i)r.point((n=A[i])[0],n[1]);return void r.lineEnd()}o[0]+=2e-6}l.push(e=new $s(n,A,null,!0)),s.push(e.o=new $s(n,null,e,!1)),l.push(e=new $s(o,A,null,!1)),s.push(e.o=new $s(o,null,e,!0))}}),l.length){for(s.sort(t),ta(l),ta(s),i=0,o=s.length;i<o;++i)s[i].e=e=!e;for(var a,u,f=l[0];;){for(var c=f,h=!0;c.v;)if((c=c.n)===f)return;a=c.z,r.lineStart();do{if(c.v=c.o.v=!0,c.e){if(h)for(i=0,o=a.length;i<o;++i)r.point((u=a[i])[0],u[1]);else n(c.x,c.n.x,1,r);c=c.n}else{if(h)for(a=c.p.z,i=a.length-1;i>=0;--i)r.point((u=a[i])[0],u[1]);else n(c.x,c.p.x,-1,r);c=c.p}a=(c=c.o).z,h=!h}while(!c.v);r.lineEnd()}}}function ta(A){if(t=A.length){for(var t,e,n=0,r=A[0];++n<t;)r.n=e=A[n],e.p=r,r=e;r.n=e=A[0],e.p=r}}function ea(A){return _s(A[0])<=ys?A[0]:Ss(A[0])*((_s(A[0])+ys)%ws-ys)}function na(A,t,e,n){return function(r){var i,o,l,s=t(r),a=Js(),u=t(a),f=!1,c={point:h,lineStart:p,lineEnd:d,polygonStart:function(){c.point=y,c.lineStart=v,c.lineEnd=m,o=[],i=[]},polygonEnd:function(){c.point=h,c.lineStart=p,c.lineEnd=d,o=ps(o);var A=function(A,t){var e=ea(t),n=t[1],r=ks(n),i=[ks(e),-Ms(e),0],o=0,l=0,s=new gs;1===r?n=vs+ds:-1===r&&(n=-vs-ds);for(var a=0,u=A.length;a<u;++a)if(c=(f=A[a]).length)for(var f,c,h=f[c-1],g=ea(h),p=h[1]/2+ms,d=ks(p),y=Ms(p),v=0;v<c;++v,g=w,d=E,y=_,h=m){var m=f[v],w=ea(m),b=m[1]/2+ms,E=ks(b),_=Ms(b),x=w-g,B=x>=0?1:-1,M=B*x,k=M>ys,S=d*E;if(s.add(Bs(S*B*ks(M),y*_+S*Ms(M))),o+=k?x+B*ws:x,k^g>=e^w>=e){var C=Ys(Ns(h),Ns(m));js(C);var P=Ys(i,C);js(P);var D=(k^x>=0?-1:1)*Ps(P[2]);(n>D||n===D&&(C[0]||C[1]))&&(l+=k^x>=0?1:-1)}}return(o<-ds||o<ds&&s<-1e-12)^1&l}(i,n);o.length?(f||(r.polygonStart(),f=!0),Aa(o,ia,A,e,r)):A&&(f||(r.polygonStart(),f=!0),r.lineStart(),e(null,null,1,r),r.lineEnd()),f&&(r.polygonEnd(),f=!1),o=i=null},sphere:function(){r.polygonStart(),r.lineStart(),e(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function h(t,e){A(t,e)&&r.point(t,e)}function g(A,t){s.point(A,t)}function p(){c.point=g,s.lineStart()}function d(){c.point=h,s.lineEnd()}function y(A,t){l.push([A,t]),u.point(A,t)}function v(){u.lineStart(),l=[]}function m(){y(l[0][0],l[0][1]),u.lineEnd();var A,t,e,n,s=u.clean(),c=a.result(),h=c.length;if(l.pop(),i.push(l),l=null,h)if(1&s){if((t=(e=c[0]).length-1)>0){for(f||(r.polygonStart(),f=!0),r.lineStart(),A=0;A<t;++A)r.point((n=e[A])[0],n[1]);r.lineEnd()}}else h>1&&2&s&&c.push(c.pop().concat(c.shift())),o.push(c.filter(ra))}return c}}function ra(A){return A.length>1}function ia(A,t){return((A=A.x)[0]<0?A[1]-vs-ds:vs-A[1])-((t=t.x)[0]<0?t[1]-vs-ds:vs-t[1])}Vs.invert=Vs;var oa=na(function(){return!0},function(A){var t,e=NaN,n=NaN,r=NaN;return{lineStart:function(){A.lineStart(),t=1},point:function(i,o){var l=i>0?ys:-ys,s=_s(i-e);_s(s-ys)<ds?(A.point(e,n=(n+o)/2>0?vs:-vs),A.point(r,n),A.lineEnd(),A.lineStart(),A.point(l,n),A.point(i,n),t=0):r!==l&&s>=ys&&(_s(e-r)<ds&&(e-=r*ds),_s(i-l)<ds&&(i-=l*ds),n=function(A,t,e,n){var r,i,o=ks(A-e);return _s(o)>ds?xs((ks(t)*(i=Ms(n))*ks(e)-ks(n)*(r=Ms(t))*ks(A))/(r*i*o)):(t+n)/2}(e,n,i,o),A.point(r,n),A.lineEnd(),A.lineStart(),A.point(l,n),t=0),A.point(e=i,n=o),r=l},lineEnd:function(){A.lineEnd(),e=n=NaN},clean:function(){return 2-t}}},function(A,t,e,n){var r;if(null==A)r=e*vs,n.point(-ys,r),n.point(0,r),n.point(ys,r),n.point(ys,0),n.point(ys,-r),n.point(0,-r),n.point(-ys,-r),n.point(-ys,0),n.point(-ys,r);else if(_s(A[0]-t[0])>ds){var i=A[0]<t[0]?ys:-ys;r=e*i/2,n.point(-i,r),n.point(0,r),n.point(i,r)}else n.point(t[0],t[1])},[-ys,-vs]);function la(A){var t=Ms(A),e=2*Es,n=t>0,r=_s(t)>ds;function i(A,e){return Ms(A)*Ms(e)>t}function o(A,e,n){var r=[1,0,0],i=Ys(Ns(A),Ns(e)),o=Gs(i,i),l=i[0],s=o-l*l;if(!s)return!n&&A;var a=t*o/s,u=-t*l/s,f=Ys(r,i),c=Us(r,a);zs(c,Us(i,u));var h=f,g=Gs(c,h),p=Gs(h,h),d=g*g-p*(Gs(c,c)-1);if(!(d<0)){var y=Cs(d),v=Us(h,(-g-y)/p);if(zs(v,c),v=Rs(v),!n)return v;var m,w=A[0],b=e[0],E=A[1],_=e[1];b<w&&(m=w,w=b,b=m);var x=b-w,B=_s(x-ys)<ds;if(!B&&_<E&&(m=E,E=_,_=m),B||x<ds?B?E+_>0^v[1]<(_s(v[0]-w)<ds?E:_):E<=v[1]&&v[1]<=_:x>ys^(w<=v[0]&&v[0]<=b)){var M=Us(h,(-g+y)/p);return zs(M,c),[v,Rs(M)]}}}function l(t,e){var r=n?A:ys-A,i=0;return t<-r?i|=1:t>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}return na(i,function(A){var t,e,s,a,u;return{lineStart:function(){a=s=!1,u=1},point:function(f,c){var h,g=[f,c],p=i(f,c),d=n?p?0:l(f,c):p?l(f+(f<0?ys:-ys),c):0;if(!t&&(a=s=p)&&A.lineStart(),p!==s&&(!(h=o(t,g))||Ks(t,h)||Ks(g,h))&&(g[2]=1),p!==s)u=0,p?(A.lineStart(),h=o(g,t),A.point(h[0],h[1])):(h=o(t,g),A.point(h[0],h[1],2),A.lineEnd()),t=h;else if(r&&t&&n^p){var y;d&e||!(y=o(g,t,!0))||(u=0,n?(A.lineStart(),A.point(y[0][0],y[0][1]),A.point(y[1][0],y[1][1]),A.lineEnd()):(A.point(y[1][0],y[1][1]),A.lineEnd(),A.lineStart(),A.point(y[0][0],y[0][1],3)))}!p||t&&Ks(t,g)||A.point(g[0],g[1]),t=g,s=p,e=d},lineEnd:function(){s&&A.lineEnd(),t=null},clean:function(){return u|(a&&s)<<1}}},function(t,n,r,i){!function(A,t,e,n,r,i){if(e){var o=Ms(t),l=ks(t),s=n*e;null==r?(r=t+n*ws,i=t-s/2):(r=Zs(o,r),i=Zs(o,i),(n>0?r<i:r>i)&&(r+=n*ws));for(var a,u=r;n>0?u>i:u<i;u-=s)a=Rs([o,-l*Ms(u),-l*ks(u)]),A.point(a[0],a[1])}}(i,A,e,r,t,n)},n?[0,-A]:[-ys,A-ys])}var sa=1e9,aa=-sa;function ua(A,t,e,n){function r(r,i){return A<=r&&r<=e&&t<=i&&i<=n}function i(r,i,l,a){var u=0,f=0;if(null==r||(u=o(r,l))!==(f=o(i,l))||s(r,i)<0^l>0)do{a.point(0===u||3===u?A:e,u>1?n:t)}while((u=(u+l+4)%4)!==f);else a.point(i[0],i[1])}function o(n,r){return _s(n[0]-A)<ds?r>0?0:3:_s(n[0]-e)<ds?r>0?2:1:_s(n[1]-t)<ds?r>0?1:0:r>0?3:2}function l(A,t){return s(A.x,t.x)}function s(A,t){var e=o(A,1),n=o(t,1);return e!==n?e-n:0===e?t[1]-A[1]:1===e?A[0]-t[0]:2===e?A[1]-t[1]:t[0]-A[0]}return function(o){var s,a,u,f,c,h,g,p,d,y,v,m=o,w=Js(),b={point:E,lineStart:function(){b.point=_,a&&a.push(u=[]);y=!0,d=!1,g=p=NaN},lineEnd:function(){s&&(_(f,c),h&&d&&w.rejoin(),s.push(w.result()));b.point=E,d&&m.lineEnd()},polygonStart:function(){m=w,s=[],a=[],v=!0},polygonEnd:function(){var t=function(){for(var t=0,e=0,r=a.length;e<r;++e)for(var i,o,l=a[e],s=1,u=l.length,f=l[0],c=f[0],h=f[1];s<u;++s)i=c,o=h,c=(f=l[s])[0],h=f[1],o<=n?h>n&&(c-i)*(n-o)>(h-o)*(A-i)&&++t:h<=n&&(c-i)*(n-o)<(h-o)*(A-i)&&--t;return t}(),e=v&&t,r=(s=ps(s)).length;(e||r)&&(o.polygonStart(),e&&(o.lineStart(),i(null,null,1,o),o.lineEnd()),r&&Aa(s,l,t,i,o),o.polygonEnd());m=o,s=a=u=null}};function E(A,t){r(A,t)&&m.point(A,t)}function _(i,o){var l=r(i,o);if(a&&u.push([i,o]),y)f=i,c=o,h=l,y=!1,l&&(m.lineStart(),m.point(i,o));else if(l&&d)m.point(i,o);else{var s=[g=Math.max(aa,Math.min(sa,g)),p=Math.max(aa,Math.min(sa,p))],w=[i=Math.max(aa,Math.min(sa,i)),o=Math.max(aa,Math.min(sa,o))];!function(A,t,e,n,r,i){var o,l=A[0],s=A[1],a=0,u=1,f=t[0]-l,c=t[1]-s;if(o=e-l,f||!(o>0)){if(o/=f,f<0){if(o<a)return;o<u&&(u=o)}else if(f>0){if(o>u)return;o>a&&(a=o)}if(o=r-l,f||!(o<0)){if(o/=f,f<0){if(o>u)return;o>a&&(a=o)}else if(f>0){if(o<a)return;o<u&&(u=o)}if(o=n-s,c||!(o>0)){if(o/=c,c<0){if(o<a)return;o<u&&(u=o)}else if(c>0){if(o>u)return;o>a&&(a=o)}if(o=i-s,c||!(o<0)){if(o/=c,c<0){if(o>u)return;o>a&&(a=o)}else if(c>0){if(o<a)return;o<u&&(u=o)}return a>0&&(A[0]=l+a*f,A[1]=s+a*c),u<1&&(t[0]=l+u*f,t[1]=s+u*c),!0}}}}}(s,w,A,t,e,n)?l&&(m.lineStart(),m.point(i,o),v=!1):(d||(m.lineStart(),m.point(s[0],s[1])),m.point(w[0],w[1]),l||m.lineEnd(),v=!1)}g=i,p=o,d=l}return b}}var fa,ca,ha,ga,pa=A=>A,da=new gs,ya=new gs,va={point:Ds,lineStart:Ds,lineEnd:Ds,polygonStart:function(){va.lineStart=ma,va.lineEnd=Ea},polygonEnd:function(){va.lineStart=va.lineEnd=va.point=Ds,da.add(_s(ya)),ya=new gs},result:function(){var A=da/2;return da=new gs,A}};function ma(){va.point=wa}function wa(A,t){va.point=ba,fa=ha=A,ca=ga=t}function ba(A,t){ya.add(ga*A-ha*t),ha=A,ga=t}function Ea(){ba(fa,ca)}var _a=1/0,xa=_a,Ba=-_a,Ma=Ba,ka={point:function(A,t){A<_a&&(_a=A);A>Ba&&(Ba=A);t<xa&&(xa=t);t>Ma&&(Ma=t)},lineStart:Ds,lineEnd:Ds,polygonStart:Ds,polygonEnd:Ds,result:function(){var A=[[_a,xa],[Ba,Ma]];return Ba=Ma=-(xa=_a=1/0),A}};var Sa,Ca,Pa,Da,Qa=0,Ia=0,Ta=0,Fa=0,La=0,Oa=0,Ra=0,Na=0,Ga=0,Ya={point:za,lineStart:Ua,lineEnd:Va,polygonStart:function(){Ya.lineStart=Ha,Ya.lineEnd=qa},polygonEnd:function(){Ya.point=za,Ya.lineStart=Ua,Ya.lineEnd=Va},result:function(){var A=Ga?[Ra/Ga,Na/Ga]:Oa?[Fa/Oa,La/Oa]:Ta?[Qa/Ta,Ia/Ta]:[NaN,NaN];return Qa=Ia=Ta=Fa=La=Oa=Ra=Na=Ga=0,A}};function za(A,t){Qa+=A,Ia+=t,++Ta}function Ua(){Ya.point=ja}function ja(A,t){Ya.point=Xa,za(Pa=A,Da=t)}function Xa(A,t){var e=A-Pa,n=t-Da,r=Cs(e*e+n*n);Fa+=r*(Pa+A)/2,La+=r*(Da+t)/2,Oa+=r,za(Pa=A,Da=t)}function Va(){Ya.point=za}function Ha(){Ya.point=Wa}function qa(){Za(Sa,Ca)}function Wa(A,t){Ya.point=Za,za(Sa=Pa=A,Ca=Da=t)}function Za(A,t){var e=A-Pa,n=t-Da,r=Cs(e*e+n*n);Fa+=r*(Pa+A)/2,La+=r*(Da+t)/2,Oa+=r,Ra+=(r=Da*A-Pa*t)*(Pa+A),Na+=r*(Da+t),Ga+=3*r,za(Pa=A,Da=t)}function Ja(A){this._context=A}Ja.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,t){switch(this._point){case 0:this._context.moveTo(A,t),this._point=1;break;case 1:this._context.lineTo(A,t);break;default:this._context.moveTo(A+this._radius,t),this._context.arc(A,t,this._radius,0,ws)}},result:Ds};var Ka,$a,Au,tu,eu,nu=new gs,ru={point:Ds,lineStart:function(){ru.point=iu},lineEnd:function(){Ka&&ou($a,Au),ru.point=Ds},polygonStart:function(){Ka=!0},polygonEnd:function(){Ka=null},result:function(){var A=+nu;return nu=new gs,A}};function iu(A,t){ru.point=ou,$a=tu=A,Au=eu=t}function ou(A,t){tu-=A,eu-=t,nu.add(Cs(tu*tu+eu*eu)),tu=A,eu=t}let lu,su,au,uu;class fu{constructor(A){this._append=null==A?cu:function(A){const t=Math.floor(A);if(!(t>=0))throw new RangeError(`invalid digits: ${A}`);if(t>15)return cu;if(t!==lu){const A=10**t;lu=t,su=function(t){let e=1;this._+=t[0];for(const n=t.length;e<n;++e)this._+=Math.round(arguments[e]*A)/A+t[e]}}return su}(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,t){switch(this._point){case 0:this._append`M${A},${t}`,this._point=1;break;case 1:this._append`L${A},${t}`;break;default:if(this._append`M${A},${t}`,this._radius!==au||this._append!==su){const A=this._radius,t=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`,au=A,su=this._append,uu=this._,this._=t}this._+=uu}}result(){const A=this._;return this._="",A.length?A:null}}function cu(A){let t=1;this._+=A[0];for(const e=A.length;t<e;++t)this._+=arguments[t]+A[t]}function hu(A){return function(t){var e=new gu;for(var n in A)e[n]=A[n];return e.stream=t,e}}function gu(){}function pu(A,t,e){var n=A.clipExtent&&A.clipExtent();return A.scale(150).translate([0,0]),null!=n&&A.clipExtent(null),Os(e,A.stream(ka)),t(ka.result()),null!=n&&A.clipExtent(n),A}function du(A,t,e){return pu(A,function(e){var n=t[1][0]-t[0][0],r=t[1][1]-t[0][1],i=Math.min(n/(e[1][0]-e[0][0]),r/(e[1][1]-e[0][1])),o=+t[0][0]+(n-i*(e[1][0]+e[0][0]))/2,l=+t[0][1]+(r-i*(e[1][1]+e[0][1]))/2;A.scale(150*i).translate([o,l])},e)}gu.prototype={constructor:gu,point:function(A,t){this.stream.point(A,t)},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 yu=Ms(30*Es);function vu(A,t){return+t?function(A,t){function e(n,r,i,o,l,s,a,u,f,c,h,g,p,d){var y=a-n,v=u-r,m=y*y+v*v;if(m>4*t&&p--){var w=o+c,b=l+h,E=s+g,_=Cs(w*w+b*b+E*E),x=Ps(E/=_),B=_s(_s(E)-1)<ds||_s(i-f)<ds?(i+f)/2:Bs(b,w),M=A(B,x),k=M[0],S=M[1],C=k-n,P=S-r,D=v*C-y*P;(D*D/m>t||_s((y*C+v*P)/m-.5)>.3||o*c+l*h+s*g<yu)&&(e(n,r,i,o,l,s,k,S,B,w/=_,b/=_,E,p,d),d.point(k,S),e(k,S,B,w,b,E,a,u,f,c,h,g,p,d))}}return function(t){var n,r,i,o,l,s,a,u,f,c,h,g,p={point:d,lineStart:y,lineEnd:m,polygonStart:function(){t.polygonStart(),p.lineStart=w},polygonEnd:function(){t.polygonEnd(),p.lineStart=y}};function d(e,n){e=A(e,n),t.point(e[0],e[1])}function y(){u=NaN,p.point=v,t.lineStart()}function v(n,r){var i=Ns([n,r]),o=A(n,r);e(u,f,a,c,h,g,u=o[0],f=o[1],a=n,c=i[0],h=i[1],g=i[2],16,t),t.point(u,f)}function m(){p.point=d,t.lineEnd()}function w(){y(),p.point=b,p.lineEnd=E}function b(A,t){v(n=A,t),r=u,i=f,o=c,l=h,s=g,p.point=v}function E(){e(u,f,a,c,h,g,r,i,n,o,l,s,16,t),p.lineEnd=m,m()}return p}}(A,t):function(A){return hu({point:function(t,e){t=A(t,e),this.stream.point(t[0],t[1])}})}(A)}var mu=hu({point:function(A,t){this.stream.point(A*Es,t*Es)}});function wu(A,t,e,n,r,i){if(!i)return function(A,t,e,n,r){function i(i,o){return[t+A*(i*=n),e-A*(o*=r)]}return i.invert=function(i,o){return[(i-t)/A*n,(e-o)/A*r]},i}(A,t,e,n,r);var o=Ms(i),l=ks(i),s=o*A,a=l*A,u=o/A,f=l/A,c=(l*e-o*t)/A,h=(l*t+o*e)/A;function g(A,i){return[s*(A*=n)-a*(i*=r)+t,e-a*A-s*i]}return g.invert=function(A,t){return[n*(u*A-f*t+c),r*(h-f*A-u*t)]},g}function bu(A){return function(A){var t,e,n,r,i,o,l,s,a,u,f=150,c=480,h=250,g=0,p=0,d=0,y=0,v=0,m=0,w=1,b=1,E=null,_=oa,x=null,B=pa,M=.5;function k(A){return s(A[0]*Es,A[1]*Es)}function S(A){return(A=s.invert(A[0],A[1]))&&[A[0]*bs,A[1]*bs]}function C(){var A=wu(f,0,0,w,b,m).apply(null,t(g,p)),n=wu(f,c-A[0],h-A[1],w,b,m);return e=function(A,t,e){return(A%=ws)?t||e?Xs(qs(A),Ws(t,e)):qs(A):t||e?Ws(t,e):Vs}(d,y,v),l=Xs(t,n),s=Xs(e,l),o=vu(l,M),P()}function P(){return a=u=null,k}return k.stream=function(A){return a&&u===A?a:a=mu(function(A){return hu({point:function(t,e){var n=A(t,e);return this.stream.point(n[0],n[1])}})}(e)(_(o(B(u=A)))))},k.preclip=function(A){return arguments.length?(_=A,E=void 0,P()):_},k.postclip=function(A){return arguments.length?(B=A,x=n=r=i=null,P()):B},k.clipAngle=function(A){return arguments.length?(_=+A?la(E=A*Es):(E=null,oa),P()):E*bs},k.clipExtent=function(A){return arguments.length?(B=null==A?(x=n=r=i=null,pa):ua(x=+A[0][0],n=+A[0][1],r=+A[1][0],i=+A[1][1]),P()):null==x?null:[[x,n],[r,i]]},k.scale=function(A){return arguments.length?(f=+A,C()):f},k.translate=function(A){return arguments.length?(c=+A[0],h=+A[1],C()):[c,h]},k.center=function(A){return arguments.length?(g=A[0]%360*Es,p=A[1]%360*Es,C()):[g*bs,p*bs]},k.rotate=function(A){return arguments.length?(d=A[0]%360*Es,y=A[1]%360*Es,v=A.length>2?A[2]%360*Es:0,C()):[d*bs,y*bs,v*bs]},k.angle=function(A){return arguments.length?(m=A%360*Es,C()):m*bs},k.reflectX=function(A){return arguments.length?(w=A?-1:1,C()):w<0},k.reflectY=function(A){return arguments.length?(b=A?-1:1,C()):b<0},k.precision=function(A){return arguments.length?(o=vu(l,M=A*A),P()):Cs(M)},k.fitExtent=function(A,t){return du(k,A,t)},k.fitSize=function(A,t){return function(A,t,e){return du(A,[[0,0],t],e)}(k,A,t)},k.fitWidth=function(A,t){return function(A,t,e){return pu(A,function(e){var n=+t,r=n/(e[1][0]-e[0][0]),i=(n-r*(e[1][0]+e[0][0]))/2,o=-r*e[0][1];A.scale(150*r).translate([i,o])},e)}(k,A,t)},k.fitHeight=function(A,t){return function(A,t,e){return pu(A,function(e){var n=+t,r=n/(e[1][1]-e[0][1]),i=-r*e[0][0],o=(n-r*(e[1][1]+e[0][1]))/2;A.scale(150*r).translate([i,o])},e)}(k,A,t)},function(){return t=A.apply(this,arguments),k.invert=t.invert&&S,C()}}(function(){return A})()}function Eu(A,t){return[A,t]}Eu.invert=Eu;var _u=()=>{};function xu(A,t){return{type:"FeatureCollection",features:A.features.map(function(A){return Bu(A,t)})}}function Bu(A,t){return{type:"Feature",id:A.id,properties:A.properties,geometry:Mu(A.geometry,t)}}function Mu(A,t){if(!A)return null;if("GeometryCollection"===A.type)return function(A,t){return{type:"GeometryCollection",geometries:A.geometries.map(function(A){return Mu(A,t)})}}(A,t);var e;switch(A.type){case"Point":case"MultiPoint":e=Cu;break;case"LineString":case"MultiLineString":e=Pu;break;case"Polygon":case"MultiPolygon":case"Sphere":e=Du;break;default:return null}return Os(A,t(e)),e.result()}var ku=[],Su=[],Cu={point:function(A,t){ku.push([A,t])},result:function(){var A=ku.length?ku.length<2?{type:"Point",coordinates:ku[0]}:{type:"MultiPoint",coordinates:ku}:null;return ku=[],A}},Pu={lineStart:_u,point:function(A,t){ku.push([A,t])},lineEnd:function(){ku.length&&(Su.push(ku),ku=[])},result:function(){var A=Su.length?Su.length<2?{type:"LineString",coordinates:Su[0]}:{type:"MultiLineString",coordinates:Su}:null;return Su=[],A}},Du={polygonStart:_u,lineStart:_u,point:function(A,t){ku.push([A,t])},lineEnd:function(){var A=ku.length;if(A){do{ku.push(ku[0].slice())}while(++A<4);Su.push(ku),ku=[]}},polygonEnd:_u,result:function(){if(!Su.length)return null;var A=[],t=[];return Su.forEach(function(e){!function(A){if((t=A.length)<4)return!1;for(var t,e=0,n=A[t-1][1]*A[0][0]-A[t-1][0]*A[0][1];++e<t;)n+=A[e-1][1]*A[e][0]-A[e-1][0]*A[e][1];return n<=0}(e)?t.push(e):A.push([e])}),t.forEach(function(t){var e=t[0];A.some(function(A){if(function(A,t){for(var e=t[0],n=t[1],r=!1,i=0,o=A.length,l=o-1;i<o;l=i++){var s=A[i],a=s[0],u=s[1],f=A[l],c=f[0],h=f[1];u>n^h>n&&e<(c-a)*(n-u)/(h-u)+a&&(r=!r)}return r}(A[0],e))return A.push(t),!0})||A.push([t])}),Su=[],A.length?A.length>1?{type:"MultiPolygon",coordinates:A}:{type:"Polygon",coordinates:A[0]}:null}};function Qu(A){A=function(A,t){var e,n=t.stream;if(!n)throw new Error("invalid projection");switch(A&&A.type){case"Feature":e=Bu;break;case"FeatureCollection":e=xu;break;default:e=Mu}return e(A,n)}(A=JSON.parse(JSON.stringify(A)),bu(Eu).scale(152.63).scale(180/Math.PI).translate([0,0]));for(const t of A.features)"Polygon"===t.geometry.type?t.geometry.coordinates.forEach(A=>A.forEach(A=>A[1]*=-1)):"MultiPolygon"===t.geometry.type&&t.geometry.coordinates.forEach(A=>A.forEach(A=>A.forEach(A=>A[1]*=-1)));return Yl(A,{simple:!0})}function Iu(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=A.points,e=A.grid,n=A.var,r=A.values,i=void 0!==r&&r,o=A.spherical,l=void 0!==o&&o;const s=performance.now();l&&(e=Qu(e));const a=e.features,u=t.features,f=n?Array.isArray(n)?n:[n]:[],c=new Map(a.map((A,t)=>[t,A])),h=new Jl,g=a.map((A,t)=>{const e=G(cs(A),4);return{minX:e[0],minY:e[1],maxX:e[2],maxY:e[3],i:t}});h.load(g);const p=new Map;a.forEach((A,t)=>{p.set(t,{countSet:new Set,valuesList:[],numericLists:{}}),f.forEach(A=>p.get(t).numericLists[A]=[])}),u.forEach((A,t)=>{const e=A.geometry.coordinates[0],n=A.geometry.coordinates[1],r=h.search({minX:e,minY:n,maxX:e,maxY:n});for(const e of r){const n=c.get(e.i);if(!rA(A,n))continue;const r=p.get(e.i);r.countSet.add(t),f.forEach(t=>{const e=parseFloat(A.properties[t]);isNaN(e)||r.numericLists[t].push(e)}),i&&r.valuesList.push(N({},A.properties));break}});const d={type:"FeatureCollection",features:a.map((A,t)=>{const e=p.get(t),n=e.countSet.size;if(0===n)return null;const r={count:n};return f.forEach(A=>{const t=e.numericLists[A];r[A]=t.length>0?t.reduce((A,t)=>A+t,0):0}),i&&(r.values=e.valuesList),{type:A.type,properties:N(N({},A.properties),r),geometry:A.geometry}}).filter(A=>null!==A)},y=performance.now();return console.log("Execution time: ".concat((y-s).toFixed(2)," ms")),l?hs(d):d}var Tu=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,Fu=Math.ceil,Lu=Math.floor,Ou="[BigNumber Error] ",Ru=Ou+"Number primitive has more than 15 significant digits: ",Nu=1e14,Gu=14,Yu=9007199254740991,zu=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],Uu=1e7,ju=1e9;function Xu(A){var t=0|A;return A>0||A===t?t:t-1}function Vu(A){for(var t,e,n=1,r=A.length,i=A[0]+"";n<r;){for(t=A[n++]+"",e=Gu-t.length;e--;t="0"+t);i+=t}for(r=i.length;48===i.charCodeAt(--r););return i.slice(0,r+1||1)}function Hu(A,t){var e,n,r=A.c,i=t.c,o=A.s,l=t.s,s=A.e,a=t.e;if(!o||!l)return null;if(e=r&&!r[0],n=i&&!i[0],e||n)return e?n?0:-l:o;if(o!=l)return o;if(e=o<0,n=s==a,!r||!i)return n?0:!r^e?1:-1;if(!n)return s>a^e?1:-1;for(l=(s=r.length)<(a=i.length)?s:a,o=0;o<l;o++)if(r[o]!=i[o])return r[o]>i[o]^e?1:-1;return s==a?0:s>a^e?1:-1}function qu(A,t,e,n){if(A<t||A>e||A!==Lu(A))throw Error(Ou+(n||"Argument")+("number"==typeof A?A<t||A>e?" out of range: ":" not an integer: ":" not a primitive number: ")+String(A))}function Wu(A){var t=A.c.length-1;return Xu(A.e/Gu)==t&&A.c[t]%2!=0}function Zu(A,t){return(A.length>1?A.charAt(0)+"."+A.slice(1):A)+(t<0?"e":"e+")+t}function Ju(A,t,e){var n,r;if(t<0){for(r=e+".";++t;r+=e);A=r+A}else if(++t>(n=A.length)){for(r=e,t-=n;--t;r+=e);A+=r}else t<n&&(A=A.slice(0,t)+"."+A.slice(t));return A}var Ku=function A(t){var e,n,r,i,o,l,s,a,u,f,c=M.prototype={constructor:M,toString:null,valueOf:null},h=new M(1),g=20,p=4,d=-7,y=21,v=-1e7,m=1e7,w=!1,b=1,E=0,_={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},x="0123456789abcdefghijklmnopqrstuvwxyz",B=!0;function M(A,t){var e,i,o,l,s,a,u,f,c=this;if(!(c instanceof M))return new M(A,t);if(null==t){if(A&&!0===A._isBigNumber)return c.s=A.s,void(!A.c||A.e>m?c.c=c.e=null:A.e<v?c.c=[c.e=0]:(c.e=A.e,c.c=A.c.slice()));if((a="number"==typeof A)&&0*A==0){if(c.s=1/A<0?(A=-A,-1):1,A===~~A){for(l=0,s=A;s>=10;s/=10,l++);return void(l>m?c.c=c.e=null:(c.e=l,c.c=[A]))}f=String(A)}else{if(!Tu.test(f=String(A)))return r(c,f,a);c.s=45==f.charCodeAt(0)?(f=f.slice(1),-1):1}(l=f.indexOf("."))>-1&&(f=f.replace(".","")),(s=f.search(/e/i))>0?(l<0&&(l=s),l+=+f.slice(s+1),f=f.substring(0,s)):l<0&&(l=f.length)}else{if(qu(t,2,x.length,"Base"),10==t&&B)return P(c=new M(A),g+c.e+1,p);if(f=String(A),a="number"==typeof A){if(0*A!=0)return r(c,f,a,t);if(c.s=1/A<0?(f=f.slice(1),-1):1,M.DEBUG&&f.replace(/^0\.0*|\./,"").length>15)throw Error(Ru+A)}else c.s=45===f.charCodeAt(0)?(f=f.slice(1),-1):1;for(e=x.slice(0,t),l=s=0,u=f.length;s<u;s++)if(e.indexOf(i=f.charAt(s))<0){if("."==i){if(s>l){l=u;continue}}else if(!o&&(f==f.toUpperCase()&&(f=f.toLowerCase())||f==f.toLowerCase()&&(f=f.toUpperCase()))){o=!0,s=-1,l=0;continue}return r(c,String(A),a,t)}a=!1,(l=(f=n(f,t,10,c.s)).indexOf("."))>-1?f=f.replace(".",""):l=f.length}for(s=0;48===f.charCodeAt(s);s++);for(u=f.length;48===f.charCodeAt(--u););if(f=f.slice(s,++u)){if(u-=s,a&&M.DEBUG&&u>15&&(A>Yu||A!==Lu(A)))throw Error(Ru+c.s*A);if((l=l-s-1)>m)c.c=c.e=null;else if(l<v)c.c=[c.e=0];else{if(c.e=l,c.c=[],s=(l+1)%Gu,l<0&&(s+=Gu),s<u){for(s&&c.c.push(+f.slice(0,s)),u-=Gu;s<u;)c.c.push(+f.slice(s,s+=Gu));s=Gu-(f=f.slice(s)).length}else s-=u;for(;s--;f+="0");c.c.push(+f)}}else c.c=[c.e=0]}function k(A,t,e,n){var r,i,o,l,s;if(null==e?e=p:qu(e,0,8),!A.c)return A.toString();if(r=A.c[0],o=A.e,null==t)s=Vu(A.c),s=1==n||2==n&&(o<=d||o>=y)?Zu(s,o):Ju(s,o,"0");else if(i=(A=P(new M(A),t,e)).e,l=(s=Vu(A.c)).length,1==n||2==n&&(t<=i||i<=d)){for(;l<t;s+="0",l++);s=Zu(s,i)}else if(t-=o+(2===n&&i>o),s=Ju(s,i,"0"),i+1>l){if(--t>0)for(s+=".";t--;s+="0");}else if((t+=i-l)>0)for(i+1==l&&(s+=".");t--;s+="0");return A.s<0&&r?"-"+s:s}function S(A,t){for(var e,n,r=1,i=new M(A[0]);r<A.length;r++)(!(n=new M(A[r])).s||(e=Hu(i,n))===t||0===e&&i.s===t)&&(i=n);return i}function C(A,t,e){for(var n=1,r=t.length;!t[--r];t.pop());for(r=t[0];r>=10;r/=10,n++);return(e=n+e*Gu-1)>m?A.c=A.e=null:e<v?A.c=[A.e=0]:(A.e=e,A.c=t),A}function P(A,t,e,n){var r,i,o,l,s,a,u,f=A.c,c=zu;if(f){A:{for(r=1,l=f[0];l>=10;l/=10,r++);if((i=t-r)<0)i+=Gu,o=t,s=f[a=0],u=Lu(s/c[r-o-1]%10);else if((a=Fu((i+1)/Gu))>=f.length){if(!n)break A;for(;f.length<=a;f.push(0));s=u=0,r=1,o=(i%=Gu)-Gu+1}else{for(s=l=f[a],r=1;l>=10;l/=10,r++);u=(o=(i%=Gu)-Gu+r)<0?0:Lu(s/c[r-o-1]%10)}if(n=n||t<0||null!=f[a+1]||(o<0?s:s%c[r-o-1]),n=e<4?(u||n)&&(0==e||e==(A.s<0?3:2)):u>5||5==u&&(4==e||n||6==e&&(i>0?o>0?s/c[r-o]:0:f[a-1])%10&1||e==(A.s<0?8:7)),t<1||!f[0])return f.length=0,n?(t-=A.e+1,f[0]=c[(Gu-t%Gu)%Gu],A.e=-t||0):f[0]=A.e=0,A;if(0==i?(f.length=a,l=1,a--):(f.length=a+1,l=c[Gu-i],f[a]=o>0?Lu(s/c[r-o]%c[o])*l:0),n)for(;;){if(0==a){for(i=1,o=f[0];o>=10;o/=10,i++);for(o=f[0]+=l,l=1;o>=10;o/=10,l++);i!=l&&(A.e++,f[0]==Nu&&(f[0]=1));break}if(f[a]+=l,f[a]!=Nu)break;f[a--]=0,l=1}for(i=f.length;0===f[--i];f.pop());}A.e>m?A.c=A.e=null:A.e<v&&(A.c=[A.e=0])}return A}function D(A){var t,e=A.e;return null===e?A.toString():(t=Vu(A.c),t=e<=d||e>=y?Zu(t,e):Ju(t,e,"0"),A.s<0?"-"+t:t)}return M.clone=A,M.ROUND_UP=0,M.ROUND_DOWN=1,M.ROUND_CEIL=2,M.ROUND_FLOOR=3,M.ROUND_HALF_UP=4,M.ROUND_HALF_DOWN=5,M.ROUND_HALF_EVEN=6,M.ROUND_HALF_CEIL=7,M.ROUND_HALF_FLOOR=8,M.EUCLID=9,M.config=M.set=function(A){var t,e;if(null!=A){if("object"!=typeof A)throw Error(Ou+"Object expected: "+A);if(A.hasOwnProperty(t="DECIMAL_PLACES")&&(qu(e=A[t],0,ju,t),g=e),A.hasOwnProperty(t="ROUNDING_MODE")&&(qu(e=A[t],0,8,t),p=e),A.hasOwnProperty(t="EXPONENTIAL_AT")&&((e=A[t])&&e.pop?(qu(e[0],-ju,0,t),qu(e[1],0,ju,t),d=e[0],y=e[1]):(qu(e,-ju,ju,t),d=-(y=e<0?-e:e))),A.hasOwnProperty(t="RANGE"))if((e=A[t])&&e.pop)qu(e[0],-ju,-1,t),qu(e[1],1,ju,t),v=e[0],m=e[1];else{if(qu(e,-ju,ju,t),!e)throw Error(Ou+t+" cannot be zero: "+e);v=-(m=e<0?-e:e)}if(A.hasOwnProperty(t="CRYPTO")){if((e=A[t])!==!!e)throw Error(Ou+t+" not true or false: "+e);if(e){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw w=!e,Error(Ou+"crypto unavailable");w=e}else w=e}if(A.hasOwnProperty(t="MODULO_MODE")&&(qu(e=A[t],0,9,t),b=e),A.hasOwnProperty(t="POW_PRECISION")&&(qu(e=A[t],0,ju,t),E=e),A.hasOwnProperty(t="FORMAT")){if("object"!=typeof(e=A[t]))throw Error(Ou+t+" not an object: "+e);_=e}if(A.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(e=A[t])||/^.?$|[+\-.\s]|(.).*\1/.test(e))throw Error(Ou+t+" invalid: "+e);B="0123456789"==e.slice(0,10),x=e}}return{DECIMAL_PLACES:g,ROUNDING_MODE:p,EXPONENTIAL_AT:[d,y],RANGE:[v,m],CRYPTO:w,MODULO_MODE:b,POW_PRECISION:E,FORMAT:_,ALPHABET:x}},M.isBigNumber=function(A){if(!A||!0!==A._isBigNumber)return!1;if(!M.DEBUG)return!0;var t,e,n=A.c,r=A.e,i=A.s;A:if("[object Array]"=={}.toString.call(n)){if((1===i||-1===i)&&r>=-ju&&r<=ju&&r===Lu(r)){if(0===n[0]){if(0===r&&1===n.length)return!0;break A}if((t=(r+1)%Gu)<1&&(t+=Gu),String(n[0]).length==t){for(t=0;t<n.length;t++)if((e=n[t])<0||e>=Nu||e!==Lu(e))break A;if(0!==e)return!0}}}else if(null===n&&null===r&&(null===i||1===i||-1===i))return!0;throw Error(Ou+"Invalid BigNumber: "+A)},M.maximum=M.max=function(){return S(arguments,-1)},M.minimum=M.min=function(){return S(arguments,1)},M.random=(i=9007199254740992,o=Math.random()*i&2097151?function(){return Lu(Math.random()*i)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(A){var t,e,n,r,i,l=0,s=[],a=new M(h);if(null==A?A=g:qu(A,0,ju),r=Fu(A/Gu),w)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(r*=2));l<r;)(i=131072*t[l]+(t[l+1]>>>11))>=9e15?(e=crypto.getRandomValues(new Uint32Array(2)),t[l]=e[0],t[l+1]=e[1]):(s.push(i%1e14),l+=2);l=r/2}else{if(!crypto.randomBytes)throw w=!1,Error(Ou+"crypto unavailable");for(t=crypto.randomBytes(r*=7);l<r;)(i=281474976710656*(31&t[l])+1099511627776*t[l+1]+4294967296*t[l+2]+16777216*t[l+3]+(t[l+4]<<16)+(t[l+5]<<8)+t[l+6])>=9e15?crypto.randomBytes(7).copy(t,l):(s.push(i%1e14),l+=7);l=r/7}if(!w)for(;l<r;)(i=o())<9e15&&(s[l++]=i%1e14);for(r=s[--l],A%=Gu,r&&A&&(i=zu[Gu-A],s[l]=Lu(r/i)*i);0===s[l];s.pop(),l--);if(l<0)s=[n=0];else{for(n=-1;0===s[0];s.splice(0,1),n-=Gu);for(l=1,i=s[0];i>=10;i/=10,l++);l<Gu&&(n-=Gu-l)}return a.e=n,a.c=s,a}),M.sum=function(){for(var A=1,t=arguments,e=new M(t[0]);A<t.length;)e=e.plus(t[A++]);return e},n=function(){var A="0123456789";function t(A,t,e,n){for(var r,i,o=[0],l=0,s=A.length;l<s;){for(i=o.length;i--;o[i]*=t);for(o[0]+=n.indexOf(A.charAt(l++)),r=0;r<o.length;r++)o[r]>e-1&&(null==o[r+1]&&(o[r+1]=0),o[r+1]+=o[r]/e|0,o[r]%=e)}return o.reverse()}return function(n,r,i,o,l){var s,a,u,f,c,h,d,y,v=n.indexOf("."),m=g,w=p;for(v>=0&&(f=E,E=0,n=n.replace(".",""),h=(y=new M(r)).pow(n.length-v),E=f,y.c=t(Ju(Vu(h.c),h.e,"0"),10,i,A),y.e=y.c.length),u=f=(d=t(n,r,i,l?(s=x,A):(s=A,x))).length;0==d[--f];d.pop());if(!d[0])return s.charAt(0);if(v<0?--u:(h.c=d,h.e=u,h.s=o,d=(h=e(h,y,m,w,i)).c,c=h.r,u=h.e),v=d[a=u+m+1],f=i/2,c=c||a<0||null!=d[a+1],c=w<4?(null!=v||c)&&(0==w||w==(h.s<0?3:2)):v>f||v==f&&(4==w||c||6==w&&1&d[a-1]||w==(h.s<0?8:7)),a<1||!d[0])n=c?Ju(s.charAt(1),-m,s.charAt(0)):s.charAt(0);else{if(d.length=a,c)for(--i;++d[--a]>i;)d[a]=0,a||(++u,d=[1].concat(d));for(f=d.length;!d[--f];);for(v=0,n="";v<=f;n+=s.charAt(d[v++]));n=Ju(n,u,s.charAt(0))}return n}}(),e=function(){function A(A,t,e){var n,r,i,o,l=0,s=A.length,a=t%Uu,u=t/Uu|0;for(A=A.slice();s--;)l=((r=a*(i=A[s]%Uu)+(n=u*i+(o=A[s]/Uu|0)*a)%Uu*Uu+l)/e|0)+(n/Uu|0)+u*o,A[s]=r%e;return l&&(A=[l].concat(A)),A}function t(A,t,e,n){var r,i;if(e!=n)i=e>n?1:-1;else for(r=i=0;r<e;r++)if(A[r]!=t[r]){i=A[r]>t[r]?1:-1;break}return i}function e(A,t,e,n){for(var r=0;e--;)A[e]-=r,r=A[e]<t[e]?1:0,A[e]=r*n+A[e]-t[e];for(;!A[0]&&A.length>1;A.splice(0,1));}return function(n,r,i,o,l){var s,a,u,f,c,h,g,p,d,y,v,m,w,b,E,_,x,B=n.s==r.s?1:-1,k=n.c,S=r.c;if(!(k&&k[0]&&S&&S[0]))return new M(n.s&&r.s&&(k?!S||k[0]!=S[0]:S)?k&&0==k[0]||!S?0*B:B/0:NaN);for(d=(p=new M(B)).c=[],B=i+(a=n.e-r.e)+1,l||(l=Nu,a=Xu(n.e/Gu)-Xu(r.e/Gu),B=B/Gu|0),u=0;S[u]==(k[u]||0);u++);if(S[u]>(k[u]||0)&&a--,B<0)d.push(1),f=!0;else{for(b=k.length,_=S.length,u=0,B+=2,(c=Lu(l/(S[0]+1)))>1&&(S=A(S,c,l),k=A(k,c,l),_=S.length,b=k.length),w=_,v=(y=k.slice(0,_)).length;v<_;y[v++]=0);x=S.slice(),x=[0].concat(x),E=S[0],S[1]>=l/2&&E++;do{if(c=0,(s=t(S,y,_,v))<0){if(m=y[0],_!=v&&(m=m*l+(y[1]||0)),(c=Lu(m/E))>1)for(c>=l&&(c=l-1),g=(h=A(S,c,l)).length,v=y.length;1==t(h,y,g,v);)c--,e(h,_<g?x:S,g,l),g=h.length,s=1;else 0==c&&(s=c=1),g=(h=S.slice()).length;if(g<v&&(h=[0].concat(h)),e(y,h,v,l),v=y.length,-1==s)for(;t(S,y,_,v)<1;)c++,e(y,_<v?x:S,v,l),v=y.length}else 0===s&&(c++,y=[0]);d[u++]=c,y[0]?y[v++]=k[w]||0:(y=[k[w]],v=1)}while((w++<b||null!=y[0])&&B--);f=null!=y[0],d[0]||d.splice(0,1)}if(l==Nu){for(u=1,B=d[0];B>=10;B/=10,u++);P(p,i+(p.e=u+a*Gu-1)+1,o,f)}else p.e=a,p.r=+f;return p}}(),l=/^(-?)0([xbo])(?=\w[\w.]*$)/i,s=/^([^.]+)\.$/,a=/^\.([^.]+)$/,u=/^-?(Infinity|NaN)$/,f=/^\s*\+(?=[\w.])|^\s+|\s+$/g,r=function(A,t,e,n){var r,i=e?t:t.replace(f,"");if(u.test(i))A.s=isNaN(i)?null:i<0?-1:1;else{if(!e&&(i=i.replace(l,function(A,t,e){return r="x"==(e=e.toLowerCase())?16:"b"==e?2:8,n&&n!=r?A:t}),n&&(r=n,i=i.replace(s,"$1").replace(a,"0.$1")),t!=i))return new M(i,r);if(M.DEBUG)throw Error(Ou+"Not a"+(n?" base "+n:"")+" number: "+t);A.s=null}A.c=A.e=null},c.absoluteValue=c.abs=function(){var A=new M(this);return A.s<0&&(A.s=1),A},c.comparedTo=function(A,t){return Hu(this,new M(A,t))},c.decimalPlaces=c.dp=function(A,t){var e,n,r,i=this;if(null!=A)return qu(A,0,ju),null==t?t=p:qu(t,0,8),P(new M(i),A+i.e+1,t);if(!(e=i.c))return null;if(n=((r=e.length-1)-Xu(this.e/Gu))*Gu,r=e[r])for(;r%10==0;r/=10,n--);return n<0&&(n=0),n},c.dividedBy=c.div=function(A,t){return e(this,new M(A,t),g,p)},c.dividedToIntegerBy=c.idiv=function(A,t){return e(this,new M(A,t),0,1)},c.exponentiatedBy=c.pow=function(A,t){var e,n,r,i,o,l,s,a,u=this;if((A=new M(A)).c&&!A.isInteger())throw Error(Ou+"Exponent not an integer: "+D(A));if(null!=t&&(t=new M(t)),o=A.e>14,!u.c||!u.c[0]||1==u.c[0]&&!u.e&&1==u.c.length||!A.c||!A.c[0])return a=new M(Math.pow(+D(u),o?A.s*(2-Wu(A)):+D(A))),t?a.mod(t):a;if(l=A.s<0,t){if(t.c?!t.c[0]:!t.s)return new M(NaN);(n=!l&&u.isInteger()&&t.isInteger())&&(u=u.mod(t))}else{if(A.e>9&&(u.e>0||u.e<-1||(0==u.e?u.c[0]>1||o&&u.c[1]>=24e7:u.c[0]<8e13||o&&u.c[0]<=9999975e7)))return i=u.s<0&&Wu(A)?-0:0,u.e>-1&&(i=1/i),new M(l?1/i:i);E&&(i=Fu(E/Gu+2))}for(o?(e=new M(.5),l&&(A.s=1),s=Wu(A)):s=(r=Math.abs(+D(A)))%2,a=new M(h);;){if(s){if(!(a=a.times(u)).c)break;i?a.c.length>i&&(a.c.length=i):n&&(a=a.mod(t))}if(r){if(0===(r=Lu(r/2)))break;s=r%2}else if(P(A=A.times(e),A.e+1,1),A.e>14)s=Wu(A);else{if(0===(r=+D(A)))break;s=r%2}u=u.times(u),i?u.c&&u.c.length>i&&(u.c.length=i):n&&(u=u.mod(t))}return n?a:(l&&(a=h.div(a)),t?a.mod(t):i?P(a,E,p,void 0):a)},c.integerValue=function(A){var t=new M(this);return null==A?A=p:qu(A,0,8),P(t,t.e+1,A)},c.isEqualTo=c.eq=function(A,t){return 0===Hu(this,new M(A,t))},c.isFinite=function(){return!!this.c},c.isGreaterThan=c.gt=function(A,t){return Hu(this,new M(A,t))>0},c.isGreaterThanOrEqualTo=c.gte=function(A,t){return 1===(t=Hu(this,new M(A,t)))||0===t},c.isInteger=function(){return!!this.c&&Xu(this.e/Gu)>this.c.length-2},c.isLessThan=c.lt=function(A,t){return Hu(this,new M(A,t))<0},c.isLessThanOrEqualTo=c.lte=function(A,t){return-1===(t=Hu(this,new M(A,t)))||0===t},c.isNaN=function(){return!this.s},c.isNegative=function(){return this.s<0},c.isPositive=function(){return this.s>0},c.isZero=function(){return!!this.c&&0==this.c[0]},c.minus=function(A,t){var e,n,r,i,o=this,l=o.s;if(t=(A=new M(A,t)).s,!l||!t)return new M(NaN);if(l!=t)return A.s=-t,o.plus(A);var s=o.e/Gu,a=A.e/Gu,u=o.c,f=A.c;if(!s||!a){if(!u||!f)return u?(A.s=-t,A):new M(f?o:NaN);if(!u[0]||!f[0])return f[0]?(A.s=-t,A):new M(u[0]?o:3==p?-0:0)}if(s=Xu(s),a=Xu(a),u=u.slice(),l=s-a){for((i=l<0)?(l=-l,r=u):(a=s,r=f),r.reverse(),t=l;t--;r.push(0));r.reverse()}else for(n=(i=(l=u.length)<(t=f.length))?l:t,l=t=0;t<n;t++)if(u[t]!=f[t]){i=u[t]<f[t];break}if(i&&(r=u,u=f,f=r,A.s=-A.s),(t=(n=f.length)-(e=u.length))>0)for(;t--;u[e++]=0);for(t=Nu-1;n>l;){if(u[--n]<f[n]){for(e=n;e&&!u[--e];u[e]=t);--u[e],u[n]+=Nu}u[n]-=f[n]}for(;0==u[0];u.splice(0,1),--a);return u[0]?C(A,u,a):(A.s=3==p?-1:1,A.c=[A.e=0],A)},c.modulo=c.mod=function(A,t){var n,r,i=this;return A=new M(A,t),!i.c||!A.s||A.c&&!A.c[0]?new M(NaN):!A.c||i.c&&!i.c[0]?new M(i):(9==b?(r=A.s,A.s=1,n=e(i,A,0,3),A.s=r,n.s*=r):n=e(i,A,0,b),(A=i.minus(n.times(A))).c[0]||1!=b||(A.s=i.s),A)},c.multipliedBy=c.times=function(A,t){var e,n,r,i,o,l,s,a,u,f,c,h,g,p,d,y=this,v=y.c,m=(A=new M(A,t)).c;if(!(v&&m&&v[0]&&m[0]))return!y.s||!A.s||v&&!v[0]&&!m||m&&!m[0]&&!v?A.c=A.e=A.s=null:(A.s*=y.s,v&&m?(A.c=[0],A.e=0):A.c=A.e=null),A;for(n=Xu(y.e/Gu)+Xu(A.e/Gu),A.s*=y.s,(s=v.length)<(f=m.length)&&(g=v,v=m,m=g,r=s,s=f,f=r),r=s+f,g=[];r--;g.push(0));for(p=Nu,d=Uu,r=f;--r>=0;){for(e=0,c=m[r]%d,h=m[r]/d|0,i=r+(o=s);i>r;)e=((a=c*(a=v[--o]%d)+(l=h*a+(u=v[o]/d|0)*c)%d*d+g[i]+e)/p|0)+(l/d|0)+h*u,g[i--]=a%p;g[i]=e}return e?++n:g.splice(0,1),C(A,g,n)},c.negated=function(){var A=new M(this);return A.s=-A.s||null,A},c.plus=function(A,t){var e,n=this,r=n.s;if(t=(A=new M(A,t)).s,!r||!t)return new M(NaN);if(r!=t)return A.s=-t,n.minus(A);var i=n.e/Gu,o=A.e/Gu,l=n.c,s=A.c;if(!i||!o){if(!l||!s)return new M(r/0);if(!l[0]||!s[0])return s[0]?A:new M(l[0]?n:0*r)}if(i=Xu(i),o=Xu(o),l=l.slice(),r=i-o){for(r>0?(o=i,e=s):(r=-r,e=l),e.reverse();r--;e.push(0));e.reverse()}for((r=l.length)-(t=s.length)<0&&(e=s,s=l,l=e,t=r),r=0;t;)r=(l[--t]=l[t]+s[t]+r)/Nu|0,l[t]=Nu===l[t]?0:l[t]%Nu;return r&&(l=[r].concat(l),++o),C(A,l,o)},c.precision=c.sd=function(A,t){var e,n,r,i=this;if(null!=A&&A!==!!A)return qu(A,1,ju),null==t?t=p:qu(t,0,8),P(new M(i),A,t);if(!(e=i.c))return null;if(n=(r=e.length-1)*Gu+1,r=e[r]){for(;r%10==0;r/=10,n--);for(r=e[0];r>=10;r/=10,n++);}return A&&i.e+1>n&&(n=i.e+1),n},c.shiftedBy=function(A){return qu(A,-9007199254740991,Yu),this.times("1e"+A)},c.squareRoot=c.sqrt=function(){var A,t,n,r,i,o=this,l=o.c,s=o.s,a=o.e,u=g+4,f=new M("0.5");if(1!==s||!l||!l[0])return new M(!s||s<0&&(!l||l[0])?NaN:l?o:1/0);if(0==(s=Math.sqrt(+D(o)))||s==1/0?(((t=Vu(l)).length+a)%2==0&&(t+="0"),s=Math.sqrt(+t),a=Xu((a+1)/2)-(a<0||a%2),n=new M(t=s==1/0?"5e"+a:(t=s.toExponential()).slice(0,t.indexOf("e")+1)+a)):n=new M(s+""),n.c[0])for((s=(a=n.e)+u)<3&&(s=0);;)if(i=n,n=f.times(i.plus(e(o,i,u,1))),Vu(i.c).slice(0,s)===(t=Vu(n.c)).slice(0,s)){if(n.e<a&&--s,"9999"!=(t=t.slice(s-3,s+1))&&(r||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(P(n,n.e+g+2,1),A=!n.times(n).eq(o));break}if(!r&&(P(i,i.e+g+2,0),i.times(i).eq(o))){n=i;break}u+=4,s+=4,r=1}return P(n,n.e+g+1,p,A)},c.toExponential=function(A,t){return null!=A&&(qu(A,0,ju),A++),k(this,A,t,1)},c.toFixed=function(A,t){return null!=A&&(qu(A,0,ju),A=A+this.e+1),k(this,A,t)},c.toFormat=function(A,t,e){var n,r=this;if(null==e)null!=A&&t&&"object"==typeof t?(e=t,t=null):A&&"object"==typeof A?(e=A,A=t=null):e=_;else if("object"!=typeof e)throw Error(Ou+"Argument not an object: "+e);if(n=r.toFixed(A,t),r.c){var i,o=n.split("."),l=+e.groupSize,s=+e.secondaryGroupSize,a=e.groupSeparator||"",u=o[0],f=o[1],c=r.s<0,h=c?u.slice(1):u,g=h.length;if(s&&(i=l,l=s,s=i,g-=i),l>0&&g>0){for(i=g%l||l,u=h.substr(0,i);i<g;i+=l)u+=a+h.substr(i,l);s>0&&(u+=a+h.slice(i)),c&&(u="-"+u)}n=f?u+(e.decimalSeparator||"")+((s=+e.fractionGroupSize)?f.replace(new RegExp("\\d{"+s+"}\\B","g"),"$&"+(e.fractionGroupSeparator||"")):f):u}return(e.prefix||"")+n+(e.suffix||"")},c.toFraction=function(A){var t,n,r,i,o,l,s,a,u,f,c,g,d=this,y=d.c;if(null!=A&&(!(s=new M(A)).isInteger()&&(s.c||1!==s.s)||s.lt(h)))throw Error(Ou+"Argument "+(s.isInteger()?"out of range: ":"not an integer: ")+D(s));if(!y)return new M(d);for(t=new M(h),u=n=new M(h),r=a=new M(h),g=Vu(y),o=t.e=g.length-d.e-1,t.c[0]=zu[(l=o%Gu)<0?Gu+l:l],A=!A||s.comparedTo(t)>0?o>0?t:u:s,l=m,m=1/0,s=new M(g),a.c[0]=0;f=e(s,t,0,1),1!=(i=n.plus(f.times(r))).comparedTo(A);)n=r,r=i,u=a.plus(f.times(i=u)),a=i,t=s.minus(f.times(i=t)),s=i;return i=e(A.minus(n),r,0,1),a=a.plus(i.times(u)),n=n.plus(i.times(r)),a.s=u.s=d.s,c=e(u,r,o*=2,p).minus(d).abs().comparedTo(e(a,n,o,p).minus(d).abs())<1?[u,r]:[a,n],m=l,c},c.toNumber=function(){return+D(this)},c.toPrecision=function(A,t){return null!=A&&qu(A,1,ju),k(this,A,t,2)},c.toString=function(A){var t,e=this,r=e.s,i=e.e;return null===i?r?(t="Infinity",r<0&&(t="-"+t)):t="NaN":(null==A?t=i<=d||i>=y?Zu(Vu(e.c),i):Ju(Vu(e.c),i,"0"):10===A&&B?t=Ju(Vu((e=P(new M(e),g+i+1,p)).c),e.e,"0"):(qu(A,2,x.length,"Base"),t=n(Ju(Vu(e.c),i,"0"),10,A,r,!0)),r<0&&e.c[0]&&(t="-"+t)),t},c.valueOf=c.toJSON=function(){return D(this)},c._isBigNumber=!0,c[Symbol.toStringTag]="BigNumber",c[Symbol.for("nodejs.util.inspect.custom")]=c.valueOf,null!=t&&M.set(t),M}(),$u=class{key;left=null;right=null;constructor(A){this.key=A}},Af=class extends $u{constructor(A){super(A)}},tf=class{size=0;modificationCount=0;splayCount=0;splay(A){const t=this.root;if(null==t)return this.compare(A,A),-1;let e=null,n=null,r=null,i=null,o=t;const l=this.compare;let s;for(;;)if(s=l(o.key,A),s>0){let t=o.left;if(null==t)break;if(s=l(t.key,A),s>0&&(o.left=t.right,t.right=o,o=t,t=o.left,null==t))break;null==e?n=o:e.left=o,e=o,o=t}else{if(!(s<0))break;{let t=o.right;if(null==t)break;if(s=l(t.key,A),s<0&&(o.right=t.left,t.left=o,o=t,t=o.right,null==t))break;null==r?i=o:r.right=o,r=o,o=t}}return null!=r&&(r.right=o.left,o.left=i),null!=e&&(e.left=o.right,o.right=n),this.root!==o&&(this.root=o,this.splayCount++),s}splayMin(A){let t=A,e=t.left;for(;null!=e;){const A=e;t.left=A.right,A.right=t,t=A,e=t.left}return t}splayMax(A){let t=A,e=t.right;for(;null!=e;){const A=e;t.right=A.left,A.left=t,t=A,e=t.right}return t}_delete(A){if(null==this.root)return null;if(0!=this.splay(A))return null;let t=this.root;const e=t,n=t.left;if(this.size--,null==n)this.root=t.right;else{const A=t.right;t=this.splayMax(n),t.right=A,this.root=t}return this.modificationCount++,e}addNewRoot(A,t){this.size++,this.modificationCount++;const e=this.root;null!=e?(t<0?(A.left=e,A.right=e.right,e.right=null):(A.right=e,A.left=e.left,e.left=null),this.root=A):this.root=A}_first(){const A=this.root;return null==A?null:(this.root=this.splayMin(A),this.root)}_last(){const A=this.root;return null==A?null:(this.root=this.splayMax(A),this.root)}clear(){this.root=null,this.size=0,this.modificationCount++}has(A){return this.validKey(A)&&0==this.splay(A)}defaultCompare(){return(A,t)=>A<t?-1:A>t?1:0}wrap(){return{getRoot:()=>this.root,setRoot:A=>{this.root=A},getSize:()=>this.size,getModificationCount:()=>this.modificationCount,getSplayCount:()=>this.splayCount,setSplayCount:A=>{this.splayCount=A},splay:A=>this.splay(A),has:A=>this.has(A)}}},ef=class A extends tf{root=null;compare;validKey;constructor(A,t){super(),this.compare=A??this.defaultCompare(),this.validKey=t??(A=>null!=A&&null!=A)}delete(A){return!!this.validKey(A)&&null!=this._delete(A)}deleteAll(A){for(const t of A)this.delete(t)}forEach(A){const t=this[Symbol.iterator]();let e;for(;e=t.next(),!e.done;)A(e.value,e.value,this)}add(A){const t=this.splay(A);return 0!=t&&this.addNewRoot(new Af(A),t),this}addAndReturn(A){const t=this.splay(A);return 0!=t&&this.addNewRoot(new Af(A),t),this.root.key}addAll(A){for(const t of A)this.add(t)}isEmpty(){return null==this.root}isNotEmpty(){return null!=this.root}single(){if(0==this.size)throw"Bad state: No element";if(this.size>1)throw"Bad state: Too many element";return this.root.key}first(){if(0==this.size)throw"Bad state: No element";return this._first().key}last(){if(0==this.size)throw"Bad state: No element";return this._last().key}lastBefore(A){if(null==A)throw"Invalid arguments(s)";if(null==this.root)return null;if(this.splay(A)<0)return this.root.key;let t=this.root.left;if(null==t)return null;let e=t.right;for(;null!=e;)t=e,e=t.right;return t.key}firstAfter(A){if(null==A)throw"Invalid arguments(s)";if(null==this.root)return null;if(this.splay(A)>0)return this.root.key;let t=this.root.right;if(null==t)return null;let e=t.left;for(;null!=e;)t=e,e=t.left;return t.key}retainAll(t){const e=new A(this.compare,this.validKey),n=this.modificationCount;for(const A of t){if(n!=this.modificationCount)throw"Concurrent modification during iteration.";this.validKey(A)&&0==this.splay(A)&&e.add(this.root.key)}e.size!=this.size&&(this.root=e.root,this.size=e.size,this.modificationCount++)}lookup(A){if(!this.validKey(A))return null;return 0!=this.splay(A)?null:this.root.key}intersection(t){const e=new A(this.compare,this.validKey);for(const A of this)t.has(A)&&e.add(A);return e}difference(t){const e=new A(this.compare,this.validKey);for(const A of this)t.has(A)||e.add(A);return e}union(A){const t=this.clone();return t.addAll(A),t}clone(){const t=new A(this.compare,this.validKey);return t.size=this.size,t.root=this.copyNode(this.root),t}copyNode(A){if(null==A)return null;const t=new Af(A.key);return function A(t,e){let n,r;do{if(n=t.left,r=t.right,null!=n){const t=new Af(n.key);e.left=t,A(n,t)}if(null!=r){const A=new Af(r.key);e.right=A,t=r,e=A}}while(null!=r)}(A,t),t}toSet(){return this.clone()}entries(){return new of(this.wrap())}keys(){return this[Symbol.iterator]()}values(){return this[Symbol.iterator]()}[Symbol.iterator](){return new rf(this.wrap())}[Symbol.toStringTag]="[object Set]"},nf=class{tree;path=new Array;modificationCount=null;splayCount;constructor(A){this.tree=A,this.splayCount=A.getSplayCount()}[Symbol.iterator](){return this}next(){return this.moveNext()?{done:!1,value:this.current()}:{done:!0,value:null}}current(){if(!this.path.length)return null;const A=this.path[this.path.length-1];return this.getValue(A)}rebuildPath(A){this.path.splice(0,this.path.length),this.tree.splay(A),this.path.push(this.tree.getRoot()),this.splayCount=this.tree.getSplayCount()}findLeftMostDescendent(A){for(;null!=A;)this.path.push(A),A=A.left}moveNext(){if(this.modificationCount!=this.tree.getModificationCount()){if(null==this.modificationCount){this.modificationCount=this.tree.getModificationCount();let A=this.tree.getRoot();for(;null!=A;)this.path.push(A),A=A.left;return this.path.length>0}throw"Concurrent modification during iteration."}if(!this.path.length)return!1;this.splayCount!=this.tree.getSplayCount()&&this.rebuildPath(this.path[this.path.length-1].key);let A=this.path[this.path.length-1],t=A.right;if(null!=t){for(;null!=t;)this.path.push(t),t=t.left;return!0}for(this.path.pop();this.path.length&&this.path[this.path.length-1].right===A;)A=this.path.pop();return this.path.length>0}},rf=class extends nf{getValue(A){return A.key}},of=class extends nf{getValue(A){return[A.key,A.key]}},lf=A=>()=>A,sf=A=>{const t=A?(t,e)=>e.minus(t).abs().isLessThanOrEqualTo(A):lf(!1);return(A,e)=>t(A,e)?0:A.comparedTo(e)};function af(A){const t=A?(t,e,n,r,i)=>t.exponentiatedBy(2).isLessThanOrEqualTo(r.minus(e).exponentiatedBy(2).plus(i.minus(n).exponentiatedBy(2)).times(A)):lf(!1);return(A,e,n)=>{const r=A.x,i=A.y,o=n.x,l=n.y,s=i.minus(l).times(e.x.minus(o)).minus(r.minus(o).times(e.y.minus(l)));return t(s,r,i,o,l)?0:s.comparedTo(0)}}var uf=A=>A,ff=A=>{if(A){const t=new ef(sf(A)),e=new ef(sf(A)),n=(A,t)=>t.addAndReturn(A),r=A=>({x:n(A.x,t),y:n(A.y,e)});return r({x:new Ku(0),y:new Ku(0)}),r}return uf},cf=A=>({set:A=>{hf=cf(A)},reset:()=>cf(A),compare:sf(A),snap:ff(A),orient:af(A)}),hf=cf(),gf=(A,t)=>A.ll.x.isLessThanOrEqualTo(t.x)&&t.x.isLessThanOrEqualTo(A.ur.x)&&A.ll.y.isLessThanOrEqualTo(t.y)&&t.y.isLessThanOrEqualTo(A.ur.y),pf=(A,t)=>{if(t.ur.x.isLessThan(A.ll.x)||A.ur.x.isLessThan(t.ll.x)||t.ur.y.isLessThan(A.ll.y)||A.ur.y.isLessThan(t.ll.y))return null;const e=A.ll.x.isLessThan(t.ll.x)?t.ll.x:A.ll.x,n=A.ur.x.isLessThan(t.ur.x)?A.ur.x:t.ur.x;return{ll:{x:e,y:A.ll.y.isLessThan(t.ll.y)?t.ll.y:A.ll.y},ur:{x:n,y:A.ur.y.isLessThan(t.ur.y)?A.ur.y:t.ur.y}}},df=(A,t)=>A.x.times(t.y).minus(A.y.times(t.x)),yf=(A,t)=>A.x.times(t.x).plus(A.y.times(t.y)),vf=A=>yf(A,A).sqrt(),mf=(A,t,e)=>{const n={x:t.x.minus(A.x),y:t.y.minus(A.y)},r={x:e.x.minus(A.x),y:e.y.minus(A.y)};return df(r,n).div(vf(r)).div(vf(n))},wf=(A,t,e)=>{const n={x:t.x.minus(A.x),y:t.y.minus(A.y)},r={x:e.x.minus(A.x),y:e.y.minus(A.y)};return yf(r,n).div(vf(r)).div(vf(n))},bf=(A,t,e)=>t.y.isZero()?null:{x:A.x.plus(t.x.div(t.y).times(e.minus(A.y))),y:e},Ef=(A,t,e)=>t.x.isZero()?null:{x:e,y:A.y.plus(t.y.div(t.x).times(e.minus(A.x)))},_f=class A{point;isLeft;segment;otherSE;consumedBy;static compare(t,e){const n=A.comparePoints(t.point,e.point);return 0!==n?n:(t.point!==e.point&&t.link(e),t.isLeft!==e.isLeft?t.isLeft?1:-1:Df.compare(t.segment,e.segment))}static comparePoints(A,t){return A.x.isLessThan(t.x)?-1:A.x.isGreaterThan(t.x)?1:A.y.isLessThan(t.y)?-1:A.y.isGreaterThan(t.y)?1:0}constructor(A,t){void 0===A.events?A.events=[this]:A.events.push(this),this.point=A,this.isLeft=t}link(A){if(A.point===this.point)throw new Error("Tried to link already linked events");const t=A.point.events;for(let A=0,e=t.length;A<e;A++){const e=t[A];this.point.events.push(e),e.point=this.point}this.checkForConsuming()}checkForConsuming(){const A=this.point.events.length;for(let t=0;t<A;t++){const e=this.point.events[t];if(void 0===e.segment.consumedBy)for(let n=t+1;n<A;n++){const A=this.point.events[n];void 0===A.consumedBy&&(e.otherSE.point.events===A.otherSE.point.events&&e.segment.consume(A.segment))}}}getAvailableLinkedEvents(){const A=[];for(let t=0,e=this.point.events.length;t<e;t++){const e=this.point.events[t];e!==this&&!e.segment.ringOut&&e.segment.isInResult()&&A.push(e)}return A}getLeftmostComparator(A){const t=new Map,e=e=>{const n=e.otherSE;t.set(e,{sine:mf(this.point,A.point,n.point),cosine:wf(this.point,A.point,n.point)})};return(A,n)=>{t.has(A)||e(A),t.has(n)||e(n);const{sine:r,cosine:i}=t.get(A),{sine:o,cosine:l}=t.get(n);return r.isGreaterThanOrEqualTo(0)&&o.isGreaterThanOrEqualTo(0)?i.isLessThan(l)?1:i.isGreaterThan(l)?-1:0:r.isLessThan(0)&&o.isLessThan(0)?i.isLessThan(l)?-1:i.isGreaterThan(l)?1:0:o.isLessThan(r)?-1:o.isGreaterThan(r)?1:0}}},xf=class A{events;poly;_isExteriorRing;_enclosingRing;static factory(t){const e=[];for(let n=0,r=t.length;n<r;n++){const r=t[n];if(!r.isInResult()||r.ringOut)continue;let i=null,o=r.leftSE,l=r.rightSE;const s=[o],a=o.point,u=[];for(;i=o,o=l,s.push(o),o.point!==a;)for(;;){const t=o.getAvailableLinkedEvents();if(0===t.length){const A=s[0].point,t=s[s.length-1].point;throw new Error(`Unable to complete output ring starting at [${A.x}, ${A.y}]. Last matching segment found ends at [${t.x}, ${t.y}].`)}if(1===t.length){l=t[0].otherSE;break}let n=null;for(let A=0,t=u.length;A<t;A++)if(u[A].point===o.point){n=A;break}if(null!==n){const t=u.splice(n)[0],r=s.splice(t.index);r.unshift(r[0].otherSE),e.push(new A(r.reverse()));continue}u.push({index:s.length,point:o.point});const r=o.getLeftmostComparator(i);l=t.sort(r)[0].otherSE;break}e.push(new A(s))}return e}constructor(A){this.events=A;for(let t=0,e=A.length;t<e;t++)A[t].segment.ringOut=this;this.poly=null}getGeom(){let A=this.events[0].point;const t=[A];for(let e=1,n=this.events.length-1;e<n;e++){const n=this.events[e].point,r=this.events[e+1].point;0!==hf.orient(n,A,r)&&(t.push(n),A=n)}if(1===t.length)return null;const e=t[0],n=t[1];0===hf.orient(e,A,n)&&t.shift(),t.push(t[0]);const r=this.isExteriorRing()?1:-1,i=this.isExteriorRing()?0:t.length-1,o=this.isExteriorRing()?t.length:-1,l=[];for(let A=i;A!=o;A+=r)l.push([t[A].x.toNumber(),t[A].y.toNumber()]);return l}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 t=1,e=this.events.length;t<e;t++){const e=this.events[t];_f.compare(A,e)>0&&(A=e)}let t=A.segment.prevInResult(),e=t?t.prevInResult():null;for(;;){if(!t)return null;if(!e)return t.ringOut;if(e.ringOut!==t.ringOut)return e.ringOut?.enclosingRing()!==t.ringOut?t.ringOut:t.ringOut?.enclosingRing();t=e.prevInResult(),e=t?t.prevInResult():null}}},Bf=class{exteriorRing;interiorRings;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)return null;const t=[A];for(let A=0,e=this.interiorRings.length;A<e;A++){const e=this.interiorRings[A].getGeom();null!==e&&t.push(e)}return t}},Mf=class{rings;polys;constructor(A){this.rings=A,this.polys=this._composePolys(A)}getGeom(){const A=[];for(let t=0,e=this.polys.length;t<e;t++){const e=this.polys[t].getGeom();null!==e&&A.push(e)}return A}_composePolys(A){const t=[];for(let e=0,n=A.length;e<n;e++){const n=A[e];if(!n.poly)if(n.isExteriorRing())t.push(new Bf(n));else{const A=n.enclosingRing();A?.poly||t.push(new Bf(A)),A?.poly?.addInterior(n)}}return t}},kf=class{queue;tree;segments;constructor(A,t=Df.compare){this.queue=A,this.tree=new ef(t),this.segments=[]}process(A){const t=A.segment,e=[];if(A.consumedBy)return A.isLeft?this.queue.delete(A.otherSE):this.tree.delete(t),e;A.isLeft&&this.tree.add(t);let n=t,r=t;do{n=this.tree.lastBefore(n)}while(null!=n&&null!=n.consumedBy);do{r=this.tree.firstAfter(r)}while(null!=r&&null!=r.consumedBy);if(A.isLeft){let i=null;if(n){const A=n.getIntersection(t);if(null!==A&&(t.isAnEndpoint(A)||(i=A),!n.isAnEndpoint(A))){const t=this._splitSafely(n,A);for(let A=0,n=t.length;A<n;A++)e.push(t[A])}}let o=null;if(r){const A=r.getIntersection(t);if(null!==A&&(t.isAnEndpoint(A)||(o=A),!r.isAnEndpoint(A))){const t=this._splitSafely(r,A);for(let A=0,n=t.length;A<n;A++)e.push(t[A])}}if(null!==i||null!==o){let A=null;if(null===i)A=o;else if(null===o)A=i;else{A=_f.comparePoints(i,o)<=0?i:o}this.queue.delete(t.rightSE),e.push(t.rightSE);const n=t.split(A);for(let A=0,t=n.length;A<t;A++)e.push(n[A])}e.length>0?(this.tree.delete(t),e.push(A)):(this.segments.push(t),t.prev=n)}else{if(n&&r){const A=n.getIntersection(r);if(null!==A){if(!n.isAnEndpoint(A)){const t=this._splitSafely(n,A);for(let A=0,n=t.length;A<n;A++)e.push(t[A])}if(!r.isAnEndpoint(A)){const t=this._splitSafely(r,A);for(let A=0,n=t.length;A<n;A++)e.push(t[A])}}}this.tree.delete(t)}return e}_splitSafely(A,t){this.tree.delete(A);const e=A.rightSE;this.queue.delete(e);const n=A.split(t);return n.push(e),void 0===A.consumedBy&&this.tree.add(A),n}},Sf=new class{type;numMultiPolys;run(A,t,e){Sf.type=A;const n=[new Tf(t,!0)];for(let A=0,t=e.length;A<t;A++)n.push(new Tf(e[A],!1));if(Sf.numMultiPolys=n.length,"difference"===Sf.type){const A=n[0];let t=1;for(;t<n.length;)null!==pf(n[t].bbox,A.bbox)?t++:n.splice(t,1)}if("intersection"===Sf.type)for(let A=0,t=n.length;A<t;A++){const t=n[A];for(let e=A+1,r=n.length;e<r;e++)if(null===pf(t.bbox,n[e].bbox))return[]}const r=new ef(_f.compare);for(let A=0,t=n.length;A<t;A++){const t=n[A].getSweepEvents();for(let A=0,e=t.length;A<e;A++)r.add(t[A])}const i=new kf(r);let o=null;for(0!=r.size&&(o=r.first(),r.delete(o));o;){const A=i.process(o);for(let t=0,e=A.length;t<e;t++){const e=A[t];void 0===e.consumedBy&&r.add(e)}0!=r.size?(o=r.first(),r.delete(o)):o=null}hf.reset();const l=xf.factory(i.segments);return new Mf(l).getGeom()}},Cf=Sf,Pf=0,Df=class A{id;leftSE;rightSE;rings;windings;ringOut;consumedBy;prev;_prevInResult;_beforeState;_afterState;_isInResult;static compare(A,t){const e=A.leftSE.point.x,n=t.leftSE.point.x,r=A.rightSE.point.x,i=t.rightSE.point.x;if(i.isLessThan(e))return 1;if(r.isLessThan(n))return-1;const o=A.leftSE.point.y,l=t.leftSE.point.y,s=A.rightSE.point.y,a=t.rightSE.point.y;if(e.isLessThan(n)){if(l.isLessThan(o)&&l.isLessThan(s))return 1;if(l.isGreaterThan(o)&&l.isGreaterThan(s))return-1;const e=A.comparePoint(t.leftSE.point);if(e<0)return 1;if(e>0)return-1;const n=t.comparePoint(A.rightSE.point);return 0!==n?n:-1}if(e.isGreaterThan(n)){if(o.isLessThan(l)&&o.isLessThan(a))return-1;if(o.isGreaterThan(l)&&o.isGreaterThan(a))return 1;const e=t.comparePoint(A.leftSE.point);if(0!==e)return e;const n=A.comparePoint(t.rightSE.point);return n<0?1:n>0?-1:1}if(o.isLessThan(l))return-1;if(o.isGreaterThan(l))return 1;if(r.isLessThan(i)){const e=t.comparePoint(A.rightSE.point);if(0!==e)return e}if(r.isGreaterThan(i)){const e=A.comparePoint(t.rightSE.point);if(e<0)return 1;if(e>0)return-1}if(!r.eq(i)){const A=s.minus(o),t=r.minus(e),u=a.minus(l),f=i.minus(n);if(A.isGreaterThan(t)&&u.isLessThan(f))return 1;if(A.isLessThan(t)&&u.isGreaterThan(f))return-1}return r.isGreaterThan(i)?1:r.isLessThan(i)||s.isLessThan(a)?-1:s.isGreaterThan(a)?1:A.id<t.id?-1:A.id>t.id?1:0}constructor(A,t,e,n){this.id=++Pf,this.leftSE=A,A.segment=this,A.otherSE=t,this.rightSE=t,t.segment=this,t.otherSE=A,this.rings=e,this.windings=n}static fromRing(t,e,n){let r,i,o;const l=_f.comparePoints(t,e);if(l<0)r=t,i=e,o=1;else{if(!(l>0))throw new Error(`Tried to create degenerate segment at [${t.x}, ${t.y}]`);r=e,i=t,o=-1}const s=new _f(r,!0),a=new _f(i,!1);return new A(s,a,[n],[o])}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,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:A.isLessThan(t)?A:t},ur:{x:this.rightSE.point.x,y:A.isGreaterThan(t)?A:t}}}vector(){return{x:this.rightSE.point.x.minus(this.leftSE.point.x),y:this.rightSE.point.y.minus(this.leftSE.point.y)}}isAnEndpoint(A){return A.x.eq(this.leftSE.point.x)&&A.y.eq(this.leftSE.point.y)||A.x.eq(this.rightSE.point.x)&&A.y.eq(this.rightSE.point.y)}comparePoint(A){return hf.orient(this.leftSE.point,A,this.rightSE.point)}getIntersection(A){const t=this.bbox(),e=A.bbox(),n=pf(t,e);if(null===n)return null;const r=this.leftSE.point,i=this.rightSE.point,o=A.leftSE.point,l=A.rightSE.point,s=gf(t,o)&&0===this.comparePoint(o),a=gf(e,r)&&0===A.comparePoint(r),u=gf(t,l)&&0===this.comparePoint(l),f=gf(e,i)&&0===A.comparePoint(i);if(a&&s)return f&&!u?i:!f&&u?l:null;if(a)return u&&r.x.eq(l.x)&&r.y.eq(l.y)?null:r;if(s)return f&&i.x.eq(o.x)&&i.y.eq(o.y)?null:o;if(f&&u)return null;if(f)return i;if(u)return l;const c=((A,t,e,n)=>{if(t.x.isZero())return Ef(e,n,A.x);if(n.x.isZero())return Ef(A,t,e.x);if(t.y.isZero())return bf(e,n,A.y);if(n.y.isZero())return bf(A,t,e.y);const r=df(t,n);if(r.isZero())return null;const i={x:e.x.minus(A.x),y:e.y.minus(A.y)},o=df(i,t).div(r),l=df(i,n).div(r),s=A.x.plus(l.times(t.x)),a=e.x.plus(o.times(n.x)),u=A.y.plus(l.times(t.y)),f=e.y.plus(o.times(n.y));return{x:s.plus(a).div(2),y:u.plus(f).div(2)}})(r,this.vector(),o,A.vector());return null===c?null:gf(n,c)?hf.snap(c):null}split(t){const e=[],n=void 0!==t.events,r=new _f(t,!0),i=new _f(t,!1),o=this.rightSE;this.replaceRightSE(i),e.push(i),e.push(r);const l=new A(r,o,this.rings.slice(),this.windings.slice());return _f.comparePoints(l.leftSE.point,l.rightSE.point)>0&&l.swapEvents(),_f.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(r.checkForConsuming(),i.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,t=this.windings.length;A<t;A++)this.windings[A]*=-1}consume(t){let e=this,n=t;for(;e.consumedBy;)e=e.consumedBy;for(;n.consumedBy;)n=n.consumedBy;const r=A.compare(e,n);if(0!==r){if(r>0){const A=e;e=n,n=A}if(e.prev===n){const A=e;e=n,n=A}for(let A=0,t=n.rings.length;A<t;A++){const t=n.rings[A],r=n.windings[A],i=e.rings.indexOf(t);-1===i?(e.rings.push(t),e.windings.push(r)):e.windings[i]+=r}n.rings=null,n.windings=null,n.consumedBy=e,n.leftSE.consumedBy=e.leftSE,n.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 t=this._afterState.rings,e=this._afterState.windings,n=this._afterState.multiPolys;for(let A=0,n=this.rings.length;A<n;A++){const n=this.rings[A],r=this.windings[A],i=t.indexOf(n);-1===i?(t.push(n),e.push(r)):e[i]+=r}const r=[],i=[];for(let A=0,n=t.length;A<n;A++){if(0===e[A])continue;const n=t[A],o=n.poly;if(-1===i.indexOf(o))if(n.isExterior)r.push(o);else{-1===i.indexOf(o)&&i.push(o);const A=r.indexOf(n.poly);-1!==A&&r.splice(A,1)}}for(let A=0,t=r.length;A<t;A++){const t=r[A].multiPoly;-1===n.indexOf(t)&&n.push(t)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(void 0!==this._isInResult)return this._isInResult;const A=this.beforeState().multiPolys,t=this.afterState().multiPolys;switch(Cf.type){case"union":{const e=0===A.length,n=0===t.length;this._isInResult=e!==n;break}case"intersection":{let e,n;A.length<t.length?(e=A.length,n=t.length):(e=t.length,n=A.length),this._isInResult=n===Cf.numMultiPolys&&e<n;break}case"xor":{const e=Math.abs(A.length-t.length);this._isInResult=e%2==1;break}case"difference":{const e=A=>1===A.length&&A[0].isSubject;this._isInResult=e(A)!==e(t);break}}return this._isInResult}},Qf=class{poly;isExterior;segments;bbox;constructor(A,t,e){if(!Array.isArray(A)||0===A.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=t,this.isExterior=e,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 n=hf.snap({x:new Ku(A[0][0]),y:new Ku(A[0][1])});this.bbox={ll:{x:n.x,y:n.y},ur:{x:n.x,y:n.y}};let r=n;for(let t=1,e=A.length;t<e;t++){if("number"!=typeof A[t][0]||"number"!=typeof A[t][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const e=hf.snap({x:new Ku(A[t][0]),y:new Ku(A[t][1])});e.x.eq(r.x)&&e.y.eq(r.y)||(this.segments.push(Df.fromRing(r,e,this)),e.x.isLessThan(this.bbox.ll.x)&&(this.bbox.ll.x=e.x),e.y.isLessThan(this.bbox.ll.y)&&(this.bbox.ll.y=e.y),e.x.isGreaterThan(this.bbox.ur.x)&&(this.bbox.ur.x=e.x),e.y.isGreaterThan(this.bbox.ur.y)&&(this.bbox.ur.y=e.y),r=e)}n.x.eq(r.x)&&n.y.eq(r.y)||this.segments.push(Df.fromRing(r,n,this))}getSweepEvents(){const A=[];for(let t=0,e=this.segments.length;t<e;t++){const e=this.segments[t];A.push(e.leftSE),A.push(e.rightSE)}return A}},If=class{multiPoly;exteriorRing;interiorRings;bbox;constructor(A,t){if(!Array.isArray(A))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new Qf(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 t=1,e=A.length;t<e;t++){const e=new Qf(A[t],this,!1);e.bbox.ll.x.isLessThan(this.bbox.ll.x)&&(this.bbox.ll.x=e.bbox.ll.x),e.bbox.ll.y.isLessThan(this.bbox.ll.y)&&(this.bbox.ll.y=e.bbox.ll.y),e.bbox.ur.x.isGreaterThan(this.bbox.ur.x)&&(this.bbox.ur.x=e.bbox.ur.x),e.bbox.ur.y.isGreaterThan(this.bbox.ur.y)&&(this.bbox.ur.y=e.bbox.ur.y),this.interiorRings.push(e)}this.multiPoly=t}getSweepEvents(){const A=this.exteriorRing.getSweepEvents();for(let t=0,e=this.interiorRings.length;t<e;t++){const e=this.interiorRings[t].getSweepEvents();for(let t=0,n=e.length;t<n;t++)A.push(e[t])}return A}},Tf=class{isSubject;polys;bbox;constructor(A,t){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:new Ku(Number.POSITIVE_INFINITY),y:new Ku(Number.POSITIVE_INFINITY)},ur:{x:new Ku(Number.NEGATIVE_INFINITY),y:new Ku(Number.NEGATIVE_INFINITY)}};for(let t=0,e=A.length;t<e;t++){const e=new If(A[t],this);e.bbox.ll.x.isLessThan(this.bbox.ll.x)&&(this.bbox.ll.x=e.bbox.ll.x),e.bbox.ll.y.isLessThan(this.bbox.ll.y)&&(this.bbox.ll.y=e.bbox.ll.y),e.bbox.ur.x.isGreaterThan(this.bbox.ur.x)&&(this.bbox.ur.x=e.bbox.ur.x),e.bbox.ur.y.isGreaterThan(this.bbox.ur.y)&&(this.bbox.ur.y=e.bbox.ur.y),this.polys.push(e)}this.isSubject=t}getSweepEvents(){const A=[];for(let t=0,e=this.polys.length;t<e;t++){const e=this.polys[t].getSweepEvents();for(let t=0,n=e.length;t<n;t++)A.push(e[t])}return A}};function Ff(A,t={}){const e=[];if(wA(A,A=>{e.push(A.coordinates)}),e.length<2)throw new Error("Must specify at least 2 geometries");const n=((A,...t)=>Cf.run("intersection",A,t))(e[0],...e.slice(1));return 0===n.length?null:1===n.length?H(n[0],t.properties):function(A,t,e={}){return X({type:"MultiPolygon",coordinates:A},t,e)}(n,t.properties)}function Lf(A){return function(A,t,e){var n=e;return wA(A,function(A,e,r,i,o){n=t(n,A,e,r,i,o)}),n}(A,(A,t)=>A+function(A){let t,e=0;switch(A.type){case"Polygon":return Of(A.coordinates);case"MultiPolygon":for(t=0;t<A.coordinates.length;t++)e+=Of(A.coordinates[t]);return e;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}(t),0)}function Of(A){let t=0;if(A&&A.length>0){t+=Math.abs(Gf(A[0]));for(let e=1;e<A.length;e++)t-=Math.abs(Gf(A[e]))}return t}hf.set;var Rf=20294876564838.72,Nf=Math.PI/180;function Gf(A){const t=A.length-1;if(t<=2)return 0;let e=0,n=0;for(;n<t;){const r=A[n],i=A[n+1===t?0:n+1],o=A[n+2>=t?(n+2)%t:n+2],l=r[0]*Nf,s=i[1]*Nf;e+=(o[0]*Nf-l)*Math.sin(s),n++}return e*Rf}function Yf(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=A.grid,e=A.polygons,n=A.var,r=A.values,i=void 0!==r&&r,o=A.spherical,l=void 0!==o&&o;const s=performance.now(),a=function(A,t){let e,n,r=3,i=4.5;function o(A){return A&&("function"==typeof i&&n.pointRadius(+i.apply(this,arguments)),Os(A,e(n))),n.result()}return o.area=function(A){return Os(A,e(va)),va.result()},o.measure=function(A){return Os(A,e(ru)),ru.result()},o.bounds=function(A){return Os(A,e(ka)),ka.result()},o.centroid=function(A){return Os(A,e(Ya)),Ya.result()},o.projection=function(t){return arguments.length?(e=null==t?(A=null,pa):(A=t).stream,o):A},o.context=function(A){return arguments.length?(n=null==A?(t=null,new fu(r)):new Ja(t=A),"function"!=typeof i&&n.pointRadius(i),o):t},o.pointRadius=function(A){return arguments.length?(i="function"==typeof A?A:(n.pointRadius(+A),+A),o):i},o.digits=function(A){if(!arguments.length)return r;if(null==A)r=null;else{const t=Math.floor(A);if(!(t>=0))throw new RangeError(`invalid digits: ${A}`);r=t}return null===t&&(n=new fu(r)),o},o.projection(A).digits(r).context(t)}();l&&(t=Qu(t));const u=n?Array.isArray(n)?n:[n]:[];for(const A of e.features)l?A.properties.area_spherical=Lf(A):A.properties.area_plan=a.area(A);for(const A of t.features){l?A.properties.area_spherical=Lf(A):A.properties.area_plan=a.area(A),A.properties.count=0;for(const t of u)A.properties[t]=0;i&&(A.properties.values=[])}const f=new Jl,c=t.features.map(A=>{const t=G(cs(A),4);return{minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],cell:A}});f.load(c);for(const A of e.features){const t=G(cs(A),4),e=t[0],n=t[1],r=t[2],o=t[3],s=f.search({minX:e,minY:n,maxX:r,maxY:o});for(const t of s){const e=t.cell;if(!A||!e)continue;const n=Ff({type:"FeatureCollection",features:[A,e]});if(!n)continue;const r=(l?Lf(n):a.area(n))/(l?A.properties.area_spherical:A.properties.area_plan);e.properties.count+=1;for(const t of u){const n=parseFloat(A.properties[t]);e.properties[t]+=isNaN(n)?0:n*r}i&&e.properties.values.push(N({},A.properties))}}const h=N(N({},t),{},{features:t.features.filter(A=>A.properties.count>0)}),g=performance.now();return console.log("Intersection completed for ".concat(h.features.length," cells — ").concat((g-s).toFixed(2)," ms")),l?hs(h):h}function zf(A,t,e,n,r){Uf(A,t,e||0,n||A.length-1,r||Xf)}function Uf(A,t,e,n,r){for(;n>e;){if(n-e>600){var i=n-e+1,o=t-e+1,l=Math.log(i),s=.5*Math.exp(2*l/3),a=.5*Math.sqrt(l*s*(i-s)/i)*(o-i/2<0?-1:1);Uf(A,t,Math.max(e,Math.floor(t-o*s/i+a)),Math.min(n,Math.floor(t+(i-o)*s/i+a)),r)}var u=A[t],f=e,c=n;for(jf(A,e,t),r(A[n],u)>0&&jf(A,e,n);f<c;){for(jf(A,f,c),f++,c--;r(A[f],u)<0;)f++;for(;r(A[c],u)>0;)c--}0===r(A[e],u)?jf(A,e,c):jf(A,++c,n),c<=t&&(e=c+1),t<=c&&(n=c-1)}}function jf(A,t,e){var n=A[t];A[t]=A[e],A[e]=n}function Xf(A,t){return A<t?-1:A>t?1:0}let Vf=class{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 t=this.data;const e=[];if(!rc(A,t))return e;const n=this.toBBox,r=[];for(;t;){for(let i=0;i<t.children.length;i++){const o=t.children[i],l=t.leaf?n(o):o;rc(A,l)&&(t.leaf?e.push(o):nc(A,l)?this._all(o,e):r.push(o))}t=r.pop()}return e}collides(A){let t=this.data;if(!rc(A,t))return!1;const e=[];for(;t;){for(let n=0;n<t.children.length;n++){const r=t.children[n],i=t.leaf?this.toBBox(r):r;if(rc(A,i)){if(t.leaf||nc(A,i))return!0;e.push(r)}}t=e.pop()}return!1}load(A){if(!A||!A.length)return this;if(A.length<this._minEntries){for(let t=0;t<A.length;t++)this.insert(A[t]);return this}let t=this._build(A.slice(),0,A.length-1,0);if(this.data.children.length)if(this.data.height===t.height)this._splitRoot(this.data,t);else{if(this.data.height<t.height){const A=this.data;this.data=t,t=A}this._insert(t,this.data.height-t.height-1,!0)}else this.data=t;return this}insert(A){return A&&this._insert(A,this.data.height-1),this}clear(){return this.data=ic([]),this}remove(A,t){if(!A)return this;let e=this.data;const n=this.toBBox(A),r=[],i=[];let o,l,s;for(;e||r.length;){if(e||(e=r.pop(),l=r[r.length-1],o=i.pop(),s=!0),e.leaf){const n=Hf(A,e.children,t);if(-1!==n)return e.children.splice(n,1),r.push(e),this._condense(r),this}s||e.leaf||!nc(e,n)?l?(o++,e=l.children[o],s=!1):e=null:(r.push(e),i.push(o),o=0,l=e,e=e.children[0])}return this}toBBox(A){return A}compareMinX(A,t){return A.minX-t.minX}compareMinY(A,t){return A.minY-t.minY}toJSON(){return this.data}fromJSON(A){return this.data=A,this}_all(A,t){const e=[];for(;A;)A.leaf?t.push(...A.children):e.push(...A.children),A=e.pop();return t}_build(A,t,e,n){const r=e-t+1;let i,o=this._maxEntries;if(r<=o)return i=ic(A.slice(t,e+1)),qf(i,this.toBBox),i;n||(n=Math.ceil(Math.log(r)/Math.log(o)),o=Math.ceil(r/Math.pow(o,n-1))),i=ic([]),i.leaf=!1,i.height=n;const l=Math.ceil(r/o),s=l*Math.ceil(Math.sqrt(o));oc(A,t,e,s,this.compareMinX);for(let r=t;r<=e;r+=s){const t=Math.min(r+s-1,e);oc(A,r,t,l,this.compareMinY);for(let e=r;e<=t;e+=l){const r=Math.min(e+l-1,t);i.children.push(this._build(A,e,r,n-1))}}return qf(i,this.toBBox),i}_chooseSubtree(A,t,e,n){for(;n.push(t),!t.leaf&&n.length-1!==e;){let e,n=1/0,r=1/0;for(let i=0;i<t.children.length;i++){const o=t.children[i],l=$f(o),s=tc(A,o)-l;s<r?(r=s,n=l<n?l:n,e=o):s===r&&l<n&&(n=l,e=o)}t=e||t.children[0]}return t}_insert(A,t,e){const n=e?A:this.toBBox(A),r=[],i=this._chooseSubtree(n,this.data,t,r);for(i.children.push(A),Zf(i,n);t>=0&&r[t].children.length>this._maxEntries;)this._split(r,t),t--;this._adjustParentBBoxes(n,r,t)}_split(A,t){const e=A[t],n=e.children.length,r=this._minEntries;this._chooseSplitAxis(e,r,n);const i=this._chooseSplitIndex(e,r,n),o=ic(e.children.splice(i,e.children.length-i));o.height=e.height,o.leaf=e.leaf,qf(e,this.toBBox),qf(o,this.toBBox),t?A[t-1].children.push(o):this._splitRoot(e,o)}_splitRoot(A,t){this.data=ic([A,t]),this.data.height=A.height+1,this.data.leaf=!1,qf(this.data,this.toBBox)}_chooseSplitIndex(A,t,e){let n,r=1/0,i=1/0;for(let o=t;o<=e-t;o++){const t=Wf(A,0,o,this.toBBox),l=Wf(A,o,e,this.toBBox),s=ec(t,l),a=$f(t)+$f(l);s<r?(r=s,n=o,i=a<i?a:i):s===r&&a<i&&(i=a,n=o)}return n||e-t}_chooseSplitAxis(A,t,e){const n=A.leaf?this.compareMinX:Jf,r=A.leaf?this.compareMinY:Kf;this._allDistMargin(A,t,e,n)<this._allDistMargin(A,t,e,r)&&A.children.sort(n)}_allDistMargin(A,t,e,n){A.children.sort(n);const r=this.toBBox,i=Wf(A,0,t,r),o=Wf(A,e-t,e,r);let l=Ac(i)+Ac(o);for(let n=t;n<e-t;n++){const t=A.children[n];Zf(i,A.leaf?r(t):t),l+=Ac(i)}for(let n=e-t-1;n>=t;n--){const t=A.children[n];Zf(o,A.leaf?r(t):t),l+=Ac(o)}return l}_adjustParentBBoxes(A,t,e){for(let n=e;n>=0;n--)Zf(t[n],A)}_condense(A){for(let t,e=A.length-1;e>=0;e--)0===A[e].children.length?e>0?(t=A[e-1].children,t.splice(t.indexOf(A[e]),1)):this.clear():qf(A[e],this.toBBox)}};function Hf(A,t,e){if(!e)return t.indexOf(A);for(let n=0;n<t.length;n++)if(e(A,t[n]))return n;return-1}function qf(A,t){Wf(A,0,A.children.length,t,A)}function Wf(A,t,e,n,r){r||(r=ic(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(let i=t;i<e;i++){const t=A.children[i];Zf(r,A.leaf?n(t):t)}return r}function Zf(A,t){return A.minX=Math.min(A.minX,t.minX),A.minY=Math.min(A.minY,t.minY),A.maxX=Math.max(A.maxX,t.maxX),A.maxY=Math.max(A.maxY,t.maxY),A}function Jf(A,t){return A.minX-t.minX}function Kf(A,t){return A.minY-t.minY}function $f(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function Ac(A){return A.maxX-A.minX+(A.maxY-A.minY)}function tc(A,t){return(Math.max(t.maxX,A.maxX)-Math.min(t.minX,A.minX))*(Math.max(t.maxY,A.maxY)-Math.min(t.minY,A.minY))}function ec(A,t){const e=Math.max(A.minX,t.minX),n=Math.max(A.minY,t.minY),r=Math.min(A.maxX,t.maxX),i=Math.min(A.maxY,t.maxY);return Math.max(0,r-e)*Math.max(0,i-n)}function nc(A,t){return A.minX<=t.minX&&A.minY<=t.minY&&t.maxX<=A.maxX&&t.maxY<=A.maxY}function rc(A,t){return t.minX<=A.maxX&&t.minY<=A.maxY&&t.maxX>=A.minX&&t.maxY>=A.minY}function ic(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function oc(A,t,e,n,r){const i=[t,e];for(;i.length;){if((e=i.pop())-(t=i.pop())<=n)continue;const o=t+Math.ceil((e-t)/n/2)*n;zf(A,o,t,e,r),i.push(t,o,o,e)}}function lc(A){var t;if(A.bbox)t=A.bbox;else if(Array.isArray(A)&&4===A.length)t=A;else if(Array.isArray(A)&&6===A.length)t=[A[0],A[1],A[3],A[4]];else if("Feature"===A.type)t=cs(A);else{if("FeatureCollection"!==A.type)throw new Error("invalid geojson");t=cs(A)}return{minX:t[0],minY:t[1],maxX:t[2],maxY:t[3]}}var sc=class{constructor(A=9){this.tree=new Vf(A),this.tree.toBBox=lc}insert(A){if("Feature"!==A.type)throw new Error("invalid feature");return A.bbox=A.bbox?A.bbox:cs(A),this.tree.insert(A),this}load(A){var t=[];return Array.isArray(A)?A.forEach(function(A){if("Feature"!==A.type)throw new Error("invalid features");A.bbox=A.bbox?A.bbox:cs(A),t.push(A)}):mA(A,function(A){if("Feature"!==A.type)throw new Error("invalid features");A.bbox=A.bbox?A.bbox:cs(A),t.push(A)}),this.tree.load(t),this}remove(A,t){if("Feature"!==A.type)throw new Error("invalid feature");return A.bbox=A.bbox?A.bbox:cs(A),this.tree.remove(A,t),this}clear(){return this.tree.clear(),this}search(A){return W(this.tree.search(lc(A)))}collides(A){return this.tree.collides(lc(A))}all(){return W(this.tree.all())}toJSON(){return this.tree.toJSON()}fromJSON(A){return this.tree.fromJSON(A),this}};function ac(A){return new sc(A)}function uc(A,t){if(null===(e=t=null!=t?t:{})||"object"!=typeof e||Array.isArray(e))throw new Error("options is invalid");var e,n=t.precision,r=t.coordinates,i=t.mutate;if(n=null==n||isNaN(n)?6:n,r=null==r||isNaN(r)?3:r,!A)throw new Error("<geojson> is required");if("number"!=typeof n)throw new Error("<precision> must be a number");if("number"!=typeof r)throw new Error("<coordinates> must be a number");!1!==i&&void 0!==i||(A=JSON.parse(JSON.stringify(A)));var o=Math.pow(10,n);return vA(A,function(A){!function(A,t,e){A.length>e&&A.splice(e,A.length);for(var n=0;n<A.length;n++)A[n]=Math.round(A[n]*t)/t}(A,o,r)}),A}function fc(A){if(!A)throw new Error("geojson is required");const t=[];return bA(A,A=>{!function(A,t){let e=[];const n=A.geometry;if(null!==n){switch(n.type){case"Polygon":e=AA(n);break;case"LineString":e=[AA(n)]}e.forEach(e=>{const n=function(A,t){const e=[];return A.reduce((A,n)=>{const r=q([A,n],t);return r.bbox=function(A,t){const e=A[0],n=A[1],r=t[0],i=t[1],o=e<r?e:r,l=n<i?n:i,s=e>r?e:r,a=n>i?n:i;return[o,l,s,a]}(A,n),e.push(r),n}),e}(e,A.properties);n.forEach(A=>{A.id=t.length,t.push(A)})})}}(A,t)}),W(t)}function cc(A,t,e={}){var n=$(A),r=$(t),i=J(r[1]-n[1]),o=J(r[0]-n[0]),l=J(n[1]),s=J(r[1]),a=Math.pow(Math.sin(i/2),2)+Math.pow(Math.sin(o/2),2)*Math.cos(l)*Math.cos(s);return function(A,t="kilometers"){const e=j[t];if(!e)throw new Error(t+" units is invalid");return A*e}(2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)),e.units)}var hc=Object.defineProperty,gc=Object.defineProperties,pc=Object.getOwnPropertyDescriptors,dc=Object.getOwnPropertySymbols,yc=Object.prototype.hasOwnProperty,vc=Object.prototype.propertyIsEnumerable,mc=(A,t,e)=>t in A?hc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,wc=(A,t)=>{for(var e in t||(t={}))yc.call(t,e)&&mc(A,e,t[e]);if(dc)for(var e of dc(t))vc.call(t,e)&&mc(A,e,t[e]);return A},bc=(A,t)=>gc(A,pc(t));function Ec(A,t,e={}){if(!A||!t)throw new Error("lines and inputPoint are required arguments");const n=$(t);let r=V([1/0,1/0],{lineStringIndex:-1,segmentIndex:-1,totalDistance:-1,lineDistance:-1,segmentDistance:-1,pointDistance:1/0,multiFeatureIndex:-1,index:-1,location:-1,dist:1/0}),i=0,o=0,l=-1;return bA(A,function(A,s,a){l!==a&&(l=a,o=0);const u=AA(A);for(let A=0;A<u.length-1;A++){const l=V(u[A]),s=$(l),f=V(u[A+1]),c=$(f),h=cc(l,f,e);let g,p;c[0]===n[0]&&c[1]===n[1]?[g,p]=[c,!0]:s[0]===n[0]&&s[1]===n[1]?[g,p]=[s,!1]:[g,p]=Sc(s,c,n);const d=cc(t,g,e);if(d<r.properties.pointDistance){const t=cc(l,g,e);r=V(g,{lineStringIndex:a,segmentIndex:p?A+1:A,totalDistance:i+t,lineDistance:o+t,segmentDistance:t,pointDistance:d,multiFeatureIndex:-1,index:-1,location:-1,dist:1/0}),r.properties=bc(wc({},r.properties),{multiFeatureIndex:r.properties.lineStringIndex,index:r.properties.segmentIndex,location:r.properties.totalDistance,dist:r.properties.pointDistance})}i+=h,o+=h}}),r}function _c(A,t){const[e,n,r]=A,[i,o,l]=t;return e*i+n*o+r*l}function xc(A,t){const[e,n,r]=A,[i,o,l]=t;return[n*l-r*o,r*i-e*l,e*o-n*i]}function Bc(A){const t=function(A){return Math.sqrt(Math.pow(A[0],2)+Math.pow(A[1],2)+Math.pow(A[2],2))}(A);return[A[0]/t,A[1]/t,A[2]/t]}function Mc(A){const t=J(A[1]),e=J(A[0]);return[Math.cos(t)*Math.cos(e),Math.cos(t)*Math.sin(e),Math.sin(t)]}function kc(A){const[t,e,n]=A,r=Math.min(Math.max(n,-1),1),i=Z(Math.asin(r));return[Z(Math.atan2(e,t)),i]}function Sc(A,t,e){const n=Mc(A),r=Mc(t),i=Mc(e),o=xc(n,r);if(0===o[0]&&0===o[1]&&0===o[2])return _c(n,r)>0?[[...t],!0]:[[...e],!1];const l=xc(o,i);if(0===l[0]&&0===l[1]&&0===l[2])return[[...t],!0];const s=Bc(xc(l,o)),a=[-s[0],-s[1],-s[2]],u=_c(i,s)>_c(i,a)?s:a,f=Bc(o),c=_c(xc(n,u),f),h=_c(xc(u,r),f);return c>=0&&h>=0?[kc(u),!1]:_c(n,i)>_c(r,i)?[[...A],!1]:[[...t],!0]}function Cc(A,t){if(!A)throw new Error("line is required");if(!t)throw new Error("splitter is required");const e=eA(A),n=eA(t);if("LineString"!==e)throw new Error("line must be LineString");if("FeatureCollection"===n)throw new Error("splitter cannot be a FeatureCollection");if("GeometryCollection"===n)throw new Error("splitter cannot be a GeometryCollection");var r=uc(t,{precision:7});switch("Feature"!==A.type&&(A=X(A)),n){case"Point":return Dc(A,r);case"MultiPoint":return Pc(A,r);case"LineString":case"MultiLineString":case"Polygon":case"MultiPolygon":return Pc(A,yA(A,r,{ignoreSelfIntersections:!0}))}}function Pc(A,t){var e=[],n=ac();return bA(t,function(t){if(e.forEach(function(A,t){A.id=t}),e.length){var r=n.search(t);if(r.features.length){var i=Qc(t,r);e=e.filter(function(A){return A.id!==i.id}),n.remove(i),mA(Dc(i,t),function(A){e.push(A),n.insert(A)})}}else e=Dc(A,t).features,n.load(W(e))}),W(e)}function Dc(A,t){var e=[],n=AA(A)[0],r=AA(A)[A.geometry.coordinates.length-1];if(Ic(n,$(t))||Ic(r,$(t)))return W([A]);var i=ac(),o=fc(A);i.load(o);var l=i.search(t);if(!l.features.length)return W([A]);var s=Qc(t,l),a=function(A,t,e){var n=e;return mA(A,function(A,r){n=0===r&&void 0===e?A:t(n,A,r)}),n}(o,function(A,n,r){var i=AA(n)[1],o=$(t);return r===s.id?(A.push(o),e.push(q(A)),Ic(o,i)?[o]:[o,i]):(A.push(i),A)},[n]);return a.length>1&&e.push(q(a)),W(e)}function Qc(A,t){if(!t.features.length)throw new Error("lines must contain features");if(1===t.features.length)return t.features[0];var e,n=1/0;return mA(t,function(t){var r=Ec(t,A).properties.pointDistance;r<n&&(e=t,n=r)}),e}function Ic(A,t){return A[0]===t[0]&&A[1]===t[1]}function Tc(A,t={}){return EA(A,(A,e)=>{const n=e.geometry.coordinates;return A+cc(n[0],n[1],t)},0)}function Fc(A,t,e={}){const n=$(A),r=AA(t);for(let A=0;A<r.length-1;A++){let t=!1;if(e.ignoreEndVertices&&(0===A&&(t="start"),A===r.length-2&&(t="end"),0===A&&A+1===r.length-1&&(t="both")),Lc(r[A],r[A+1],n,t,void 0===e.epsilon?null:e.epsilon))return!0}return!1}function Lc(A,t,e,n,r){const i=e[0],o=e[1],l=A[0],s=A[1],a=t[0],u=t[1],f=a-l,c=u-s,h=(e[0]-l)*c-(e[1]-s)*f;if(null!==r){if(Math.abs(h)>r)return!1}else if(0!==h)return!1;return Math.abs(f)===Math.abs(c)&&0===Math.abs(f)?!n&&(e[0]===A[0]&&e[1]===A[1]):n?"start"===n?Math.abs(f)>=Math.abs(c)?f>0?l<i&&i<=a:a<=i&&i<l:c>0?s<o&&o<=u:u<=o&&o<s:"end"===n?Math.abs(f)>=Math.abs(c)?f>0?l<=i&&i<a:a<i&&i<=l:c>0?s<=o&&o<u:u<o&&o<=s:"both"===n&&(Math.abs(f)>=Math.abs(c)?f>0?l<i&&i<a:a<i&&i<l:c>0?s<o&&o<u:u<o&&o<s):Math.abs(f)>=Math.abs(c)?f>0?l<=i&&i<=a:a<=i&&i<=l:c>0?s<=o&&o<=u:u<=o&&o<=s}function Oc(A,t){var e=tA(A),n=tA(t),r=e.type,i=n.type;switch(r){case"Point":switch(i){case"MultiPoint":return function(A,t){var e,n=!1;for(e=0;e<t.coordinates.length;e++)if(Nc(t.coordinates[e],A.coordinates)){n=!0;break}return n}(e,n);case"LineString":return Fc(e,n,{ignoreEndVertices:!0});case"Polygon":case"MultiPolygon":return nA(e,n,{ignoreBoundary:!0});default:throw new Error("feature2 "+i+" geometry not supported")}case"MultiPoint":switch(i){case"MultiPoint":return function(A,t){for(var e=0;e<A.coordinates.length;e++){for(var n=!1,r=0;r<t.coordinates.length;r++)Nc(A.coordinates[e],t.coordinates[r])&&(n=!0);if(!n)return!1}return!0}(e,n);case"LineString":return function(A,t){for(var e=!1,n=0;n<A.coordinates.length;n++){if(!Fc(A.coordinates[n],t))return!1;e||(e=Fc(A.coordinates[n],t,{ignoreEndVertices:!0}))}return e}(e,n);case"Polygon":case"MultiPolygon":return function(A,t){for(var e=!0,n=!1,r=0;r<A.coordinates.length;r++){if(!(n=nA(A.coordinates[r],t))){e=!1;break}n=nA(A.coordinates[r],t,{ignoreBoundary:!0})}return e&&n}(e,n);default:throw new Error("feature2 "+i+" geometry not supported")}case"LineString":switch(i){case"LineString":return function(A,t){for(var e=0;e<A.coordinates.length;e++)if(!Fc(A.coordinates[e],t))return!1;return!0}(e,n);case"Polygon":case"MultiPolygon":return function(A,t){const e=cs(t),n=cs(A);if(!Rc(e,n))return!1;for(const e of A.coordinates)if(!nA(e,t))return!1;let r=!1;const i=function(A,t){const e=A.coordinates,n=[];for(let A=0;A<e.length-1;A++){const r=q([e[A],e[A+1]]),i=Cc(r,X(t));0===i.features.length?n.push(r):n.push(...i.features)}return W(n)}(A,t);for(const A of i.features){const e=Gc(A.geometry.coordinates[0],A.geometry.coordinates[1]);if(!nA(e,t))return!1;!r&&nA(e,t,{ignoreBoundary:!0})&&(r=!0)}return r}(e,n);default:throw new Error("feature2 "+i+" geometry not supported")}case"Polygon":switch(i){case"Polygon":case"MultiPolygon":return function(A,t){var e=cs(A);if(!Rc(cs(t),e))return!1;for(var n=0;n<A.coordinates[0].length;n++)if(!nA(A.coordinates[0][n],t))return!1;return!0}(e,n);default:throw new Error("feature2 "+i+" geometry not supported")}default:throw new Error("feature1 "+r+" geometry not supported")}}function Rc(A,t){return!(A[0]>t[0])&&(!(A[2]<t[2])&&(!(A[1]>t[1])&&!(A[3]<t[3])))}function Nc(A,t){return A[0]===t[0]&&A[1]===t[1]}function Gc(A,t){return[(A[0]+t[0])/2,(A[1]+t[1])/2]}function Yc(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=A.grid,e=A.lines,n=A.var,r=A.values,i=void 0!==r&&r,o=A.spherical,l=void 0!==o&&o,s=A.debug,a=void 0!==s&&s;const u=performance.now();l&&(t=Qu(t));const f=n?Array.isArray(n)?n:[n]:[];t.features.forEach((A,t)=>A._id=t);for(const A of e.features)if("LineString"===A.geometry.type)A.properties.length_total=Tc(A,{units:"meters"});else if("MultiLineString"===A.geometry.type){let t=0;for(const e of A.geometry.coordinates){t+=Tc({type:"Feature",geometry:{type:"LineString",coordinates:e}},{units:"meters"})}A.properties.length_total=t}else A.properties.length_total=0;for(const A of t.features){A.properties.count=0;for(const t of f)A.properties[t]=0;i&&(A.properties.values=[])}const c=new Jl,h=t.features.map(A=>{const t=G(cs(A),4);return{minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],cell:A}});c.load(h);const g=new Set;for(const A of e.features){const t=A.properties.length_total||0;if(0===t)continue;const e=G(cs(A),4),n=e[0],r=e[1],o=e[2],l=e[3],s=c.search({minX:n,minY:r,maxX:o,maxY:l}),a=new Set;let u=0;for(const e of s){const n=e.cell;let r=0;if("LineString"===A.geometry.type)r=zc(A,n);else if("MultiLineString"===A.geometry.type)for(const t of A.geometry.coordinates){r+=zc({type:"Feature",geometry:{type:"LineString",coordinates:t}},n)}if(0!==r){u+=r,a.has(n._id)||(n.properties.count+=1,a.add(n._id));for(const e of f){const i=parseFloat(A.properties[e]);n.properties[e]+=isNaN(i)?0:i*(r/t)}i&&n.properties.values.push(N({},A.properties))}}u>0&&g.add(A.properties.id||A.id||A)}const p=N(N({},t),{},{features:t.features.filter(A=>A.properties.count>0)}),d=performance.now();if(console.log("Line aggregation completed for ".concat(p.features.length," cells — ").concat((d-u).toFixed(2)," ms")),a){const A=e.features.length,t=A-g.size;console.log("Counted ".concat(g.size,"/").concat(A," line features (").concat(t," missing)"))}return l?hs(p):p}function zc(A,t){try{if(Oc(A,t))return Tc(A,{units:"meters"});const e=Cc(A,t);let n=0;for(const A of e.features){const t=Tc(A,{units:"meters"});t>.001&&(n+=t)}return n}catch(A){return 0}}function Uc(A){let t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).projection,e=void 0===t?null:t;if(!e)return A;function n(A){return"number"==typeof A[0]?e(A):A.map(n)}const r=A.features.map(A=>N(N({},A),{},{geometry:N(N({},A.geometry),{},{coordinates:n(A.geometry.coordinates)})}));return N(N({},A),{},{features:r})}function jc(A){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5;const e=[];for(let n=-180;n<=180;n+=t){const t=A([n,90]);t&&e.push(t)}for(let n=90;n>=-90;n-=t){const t=A([180,n]);t&&e.push(t)}for(let n=180;n>=-180;n-=t){const t=A([n,-90]);t&&e.push(t)}for(let n=-90;n<=90;n+=t){const t=A([-180,n]);t&&e.push(t)}return W([H([e])])}export{F as diamond,n as dot,Hl as h3,Y as hexbin,Yc as linestogrid,Iu as pointstogrid,Yf as polygonstogrid,Uc as project,T as random,jc as sphere,t as square,PA as square_sph,e as triangle,Qu as unstitch};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|