geogrid 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1 +1 @@
1
- !function(A,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("geotoolbox")):"function"==typeof define&&define.amd?define(["exports","geotoolbox"],e):e((A="undefined"!=typeof globalThis?globalThis:A||self).geogrid={},A.geotoolbox)}(this,function(A,e){"use strict";function t(A,e,t,r=!1){const n=[];for(let r=A;r<=e;r+=t)n.push(r);return r?n.reverse():n}const r=134217729;function n(A,e,t,r,n){let i,o,s,a,l=e[0],f=r[0],u=0,c=0;f>l==f>-l?(i=l,l=e[++u]):(i=f,f=r[++c]);let h=0;if(u<A&&c<t)for(f>l==f>-l?(o=l+i,s=i-(o-l),l=e[++u]):(o=f+i,s=i-(o-f),f=r[++c]),i=o,0!==s&&(n[h++]=s);u<A&&c<t;)f>l==f>-l?(o=i+l,a=o-i,s=i-(o-a)+(l-a),l=e[++u]):(o=i+f,a=o-i,s=i-(o-a)+(f-a),f=r[++c]),i=o,0!==s&&(n[h++]=s);for(;u<A;)o=i+l,a=o-i,s=i-(o-a)+(l-a),l=e[++u],i=o,0!==s&&(n[h++]=s);for(;c<t;)o=i+f,a=o-i,s=i-(o-a)+(f-a),f=r[++c],i=o,0!==s&&(n[h++]=s);return 0===i&&0!==h||(n[h++]=i),h}function i(A){return new Float64Array(A)}const o=i(4),s=i(8),a=i(12),l=i(16),f=i(4);function u(A,e,t,i,u,c){const h=(e-c)*(t-u),g=(A-u)*(i-c),d=h-g,w=Math.abs(h+g);return Math.abs(d)>=33306690738754716e-32*w?d:-function(A,e,t,i,u,c,h){let g,d,w,p,b,m,B,v,y,E,k,M,Q,_,x,D,C,I;const P=A-u,F=t-u,S=e-c,T=i-c;_=P*T,m=r*P,B=m-(m-P),v=P-B,m=r*T,y=m-(m-T),E=T-y,x=v*E-(_-B*y-v*y-B*E),D=S*F,m=r*S,B=m-(m-S),v=S-B,m=r*F,y=m-(m-F),E=F-y,C=v*E-(D-B*y-v*y-B*E),k=x-C,b=x-k,o[0]=x-(k+b)+(b-C),M=_+k,b=M-_,Q=_-(M-b)+(k-b),k=Q-D,b=Q-k,o[1]=Q-(k+b)+(b-D),I=M+k,b=I-M,o[2]=M-(I-b)+(k-b),o[3]=I;let G=function(A,e){let t=e[0];for(let r=1;r<A;r++)t+=e[r];return t}(4,o),L=22204460492503146e-32*h;if(G>=L||-G>=L)return G;if(b=A-P,g=A-(P+b)+(b-u),b=t-F,w=t-(F+b)+(b-u),b=e-S,d=e-(S+b)+(b-c),b=i-T,p=i-(T+b)+(b-c),0===g&&0===d&&0===w&&0===p)return G;if(L=11093356479670487e-47*h+33306690738754706e-32*Math.abs(G),G+=P*p+T*g-(S*w+F*d),G>=L||-G>=L)return G;_=g*T,m=r*g,B=m-(m-g),v=g-B,m=r*T,y=m-(m-T),E=T-y,x=v*E-(_-B*y-v*y-B*E),D=d*F,m=r*d,B=m-(m-d),v=d-B,m=r*F,y=m-(m-F),E=F-y,C=v*E-(D-B*y-v*y-B*E),k=x-C,b=x-k,f[0]=x-(k+b)+(b-C),M=_+k,b=M-_,Q=_-(M-b)+(k-b),k=Q-D,b=Q-k,f[1]=Q-(k+b)+(b-D),I=M+k,b=I-M,f[2]=M-(I-b)+(k-b),f[3]=I;const U=n(4,o,4,f,s);_=P*p,m=r*P,B=m-(m-P),v=P-B,m=r*p,y=m-(m-p),E=p-y,x=v*E-(_-B*y-v*y-B*E),D=S*w,m=r*S,B=m-(m-S),v=S-B,m=r*w,y=m-(m-w),E=w-y,C=v*E-(D-B*y-v*y-B*E),k=x-C,b=x-k,f[0]=x-(k+b)+(b-C),M=_+k,b=M-_,Q=_-(M-b)+(k-b),k=Q-D,b=Q-k,f[1]=Q-(k+b)+(b-D),I=M+k,b=I-M,f[2]=M-(I-b)+(k-b),f[3]=I;const R=n(U,s,4,f,a);_=g*p,m=r*g,B=m-(m-g),v=g-B,m=r*p,y=m-(m-p),E=p-y,x=v*E-(_-B*y-v*y-B*E),D=d*w,m=r*d,B=m-(m-d),v=d-B,m=r*w,y=m-(m-w),E=w-y,C=v*E-(D-B*y-v*y-B*E),k=x-C,b=x-k,f[0]=x-(k+b)+(b-C),M=_+k,b=M-_,Q=_-(M-b)+(k-b),k=Q-D,b=Q-k,f[1]=Q-(k+b)+(b-D),I=M+k,b=I-M,f[2]=M-(I-b)+(k-b),f[3]=I;const Y=n(R,a,4,f,l);return l[Y-1]}(A,e,t,i,u,c,w)}const c=Math.pow(2,-52),h=new Uint32Array(512);class g{static from(A,e=B,t=v){const r=A.length,n=new Float64Array(2*r);for(let i=0;i<r;i++){const r=A[i];n[2*i]=e(r),n[2*i+1]=t(r)}return new g(n)}constructor(A){const e=A.length>>1;if(e>0&&"number"!=typeof A[0])throw new Error("Expected coords to contain numbers.");this.coords=A;const t=Math.max(2*e-5,0);this._triangles=new Uint32Array(3*t),this._halfedges=new Int32Array(3*t),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:A,_hullPrev:e,_hullNext:t,_hullTri:r,_hullHash:n}=this,i=A.length>>1;let o=1/0,s=1/0,a=-1/0,l=-1/0;for(let e=0;e<i;e++){const t=A[2*e],r=A[2*e+1];t<o&&(o=t),r<s&&(s=r),t>a&&(a=t),r>l&&(l=r),this._ids[e]=e}const f=(o+a)/2,h=(s+l)/2;let g,w,m;for(let e=0,t=1/0;e<i;e++){const r=d(f,h,A[2*e],A[2*e+1]);r<t&&(g=e,t=r)}const B=A[2*g],v=A[2*g+1];for(let e=0,t=1/0;e<i;e++){if(e===g)continue;const r=d(B,v,A[2*e],A[2*e+1]);r<t&&r>0&&(w=e,t=r)}let y=A[2*w],E=A[2*w+1],k=1/0;for(let e=0;e<i;e++){if(e===g||e===w)continue;const t=p(B,v,y,E,A[2*e],A[2*e+1]);t<k&&(m=e,k=t)}let M=A[2*m],Q=A[2*m+1];if(k===1/0){for(let e=0;e<i;e++)this._dists[e]=A[2*e]-A[0]||A[2*e+1]-A[1];b(this._ids,this._dists,0,i-1);const e=new Uint32Array(i);let t=0;for(let A=0,r=-1/0;A<i;A++){const n=this._ids[A],i=this._dists[n];i>r&&(e[t++]=n,r=i)}return this.hull=e.subarray(0,t),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(u(B,v,y,E,M,Q)<0){const A=w,e=y,t=E;w=m,y=M,E=Q,m=A,M=e,Q=t}const _=function(A,e,t,r,n,i){const o=t-A,s=r-e,a=n-A,l=i-e,f=o*o+s*s,u=a*a+l*l,c=.5/(o*l-s*a);return{x:A+(l*f-s*u)*c,y:e+(o*u-a*f)*c}}(B,v,y,E,M,Q);this._cx=_.x,this._cy=_.y;for(let e=0;e<i;e++)this._dists[e]=d(A[2*e],A[2*e+1],_.x,_.y);b(this._ids,this._dists,0,i-1),this._hullStart=g;let x=3;t[g]=e[m]=w,t[w]=e[g]=m,t[m]=e[w]=g,r[g]=0,r[w]=1,r[m]=2,n.fill(-1),n[this._hashKey(B,v)]=g,n[this._hashKey(y,E)]=w,n[this._hashKey(M,Q)]=m,this.trianglesLen=0,this._addTriangle(g,w,m,-1,-1,-1);for(let i,o,s=0;s<this._ids.length;s++){const a=this._ids[s],l=A[2*a],f=A[2*a+1];if(s>0&&Math.abs(l-i)<=c&&Math.abs(f-o)<=c)continue;if(i=l,o=f,a===g||a===w||a===m)continue;let h=0;for(let A=0,e=this._hashKey(l,f);A<this._hashSize&&(h=n[(e+A)%this._hashSize],-1===h||h===t[h]);A++);h=e[h];let d,p=h;for(;d=t[p],u(l,f,A[2*p],A[2*p+1],A[2*d],A[2*d+1])>=0;)if(p=d,p===h){p=-1;break}if(-1===p)continue;let b=this._addTriangle(p,a,t[p],-1,-1,r[p]);r[a]=this._legalize(b+2),r[p]=b,x++;let B=t[p];for(;d=t[B],u(l,f,A[2*B],A[2*B+1],A[2*d],A[2*d+1])<0;)b=this._addTriangle(B,a,d,r[a],-1,r[B]),r[a]=this._legalize(b+2),t[B]=B,x--,B=d;if(p===h)for(;d=e[p],u(l,f,A[2*d],A[2*d+1],A[2*p],A[2*p+1])<0;)b=this._addTriangle(d,a,p,-1,r[p],r[d]),this._legalize(b+2),r[d]=b,t[p]=p,x--,p=d;this._hullStart=e[a]=p,t[p]=e[B]=a,t[a]=B,n[this._hashKey(l,f)]=a,n[this._hashKey(A[2*p],A[2*p+1])]=p}this.hull=new Uint32Array(x);for(let A=0,e=this._hullStart;A<x;A++)this.hull[A]=e,e=t[e];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(A,e){return Math.floor(function(A,e){const t=A/(Math.abs(A)+Math.abs(e));return(e>0?3-t:1+t)/4}(A-this._cx,e-this._cy)*this._hashSize)%this._hashSize}_legalize(A){const{_triangles:e,_halfedges:t,coords:r}=this;let n=0,i=0;for(;;){const o=t[A],s=A-A%3;if(i=s+(A+2)%3,-1===o){if(0===n)break;A=h[--n];continue}const a=o-o%3,l=s+(A+1)%3,f=a+(o+2)%3,u=e[i],c=e[A],g=e[l],d=e[f];if(w(r[2*u],r[2*u+1],r[2*c],r[2*c+1],r[2*g],r[2*g+1],r[2*d],r[2*d+1])){e[A]=d,e[o]=u;const r=t[f];if(-1===r){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,r),this._link(o,t[i]),this._link(i,f);const s=a+(o+1)%3;n<h.length&&(h[n++]=s)}else{if(0===n)break;A=h[--n]}}return i}_link(A,e){this._halfedges[A]=e,-1!==e&&(this._halfedges[e]=A)}_addTriangle(A,e,t,r,n,i){const o=this.trianglesLen;return this._triangles[o]=A,this._triangles[o+1]=e,this._triangles[o+2]=t,this._link(o,r),this._link(o+1,n),this._link(o+2,i),this.trianglesLen+=3,o}}function d(A,e,t,r){const n=A-t,i=e-r;return n*n+i*i}function w(A,e,t,r,n,i,o,s){const a=A-o,l=e-s,f=t-o,u=r-s,c=n-o,h=i-s,g=f*f+u*u,d=c*c+h*h;return a*(u*d-g*h)-l*(f*d-g*c)+(a*a+l*l)*(f*h-u*c)<0}function p(A,e,t,r,n,i){const o=t-A,s=r-e,a=n-A,l=i-e,f=o*o+s*s,u=a*a+l*l,c=.5/(o*l-s*a),h=(l*f-s*u)*c,g=(o*u-a*f)*c;return h*h+g*g}function b(A,e,t,r){if(r-t<=20)for(let n=t+1;n<=r;n++){const r=A[n],i=e[r];let o=n-1;for(;o>=t&&e[A[o]]>i;)A[o+1]=A[o--];A[o+1]=r}else{let n=t+1,i=r;m(A,t+r>>1,n),e[A[t]]>e[A[r]]&&m(A,t,r),e[A[n]]>e[A[r]]&&m(A,n,r),e[A[t]]>e[A[n]]&&m(A,t,n);const o=A[n],s=e[o];for(;;){do{n++}while(e[A[n]]<s);do{i--}while(e[A[i]]>s);if(i<n)break;m(A,n,i)}A[t+1]=A[i],A[i]=o,r-n+1>=i-t?(b(A,e,n,r),b(A,e,t,i-1)):(b(A,e,t,i-1),b(A,e,n,r))}}function m(A,e,t){const r=A[e];A[e]=A[t],A[t]=r}function B(A){return A[0]}function v(A){return A[1]}const y=1e-6;class E{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(A,e){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(A,e){this._+=`L${this._x1=+A},${this._y1=+e}`}arc(A,e,t){const r=(A=+A)+(t=+t),n=e=+e;if(t<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${n}`:(Math.abs(this._x1-r)>y||Math.abs(this._y1-n)>y)&&(this._+="L"+r+","+n),t&&(this._+=`A${t},${t},0,1,1,${A-t},${e}A${t},${t},0,1,1,${this._x1=r},${this._y1=n}`)}rect(A,e,t,r){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+e}h${+t}v${+r}h${-t}Z`}value(){return this._||null}}class 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 M{constructor(A,[e,t,r,n]=[0,0,960,500]){if(!((r=+r)>=(e=+e)&&(n=+n)>=(t=+t)))throw new Error("invalid bounds");this.delaunay=A,this._circumcenters=new Float64Array(2*A.points.length),this.vectors=new Float64Array(2*A.points.length),this.xmax=r,this.xmin=e,this.ymax=n,this.ymin=t,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:A,hull:e,triangles:t},vectors:r}=this;let n,i;const o=this.circumcenters=this._circumcenters.subarray(0,t.length/3*2);for(let r,s,a=0,l=0,f=t.length;a<f;a+=3,l+=2){const f=2*t[a],u=2*t[a+1],c=2*t[a+2],h=A[f],g=A[f+1],d=A[u],w=A[u+1],p=A[c],b=A[c+1],m=d-h,B=w-g,v=p-h,y=b-g,E=2*(m*y-B*v);if(Math.abs(E)<1e-9){if(void 0===n){n=i=0;for(const t of e)n+=A[2*t],i+=A[2*t+1];n/=e.length,i/=e.length}const t=1e9*Math.sign((n-h)*y-(i-g)*v);r=(h+p)/2-t*y,s=(g+b)/2+t*v}else{const A=1/E,e=m*m+B*B,t=v*v+y*y;r=h+(y*e-B*t)*A,s=g+(m*t-v*e)*A}o[l]=r,o[l+1]=s}let s,a,l,f=e[e.length-1],u=4*f,c=A[2*f],h=A[2*f+1];r.fill(0);for(let t=0;t<e.length;++t)f=e[t],s=u,a=c,l=h,u=4*f,c=A[2*f],h=A[2*f+1],r[s+2]=r[u]=l-h,r[s+3]=r[u+1]=c-a}render(A){const e=null==A?A=new E:void 0,{delaunay:{halfedges:t,inedges:r,hull:n},circumcenters:i,vectors:o}=this;if(n.length<=1)return null;for(let e=0,r=t.length;e<r;++e){const r=t[e];if(r<e)continue;const n=2*Math.floor(e/3),o=2*Math.floor(r/3),s=i[n],a=i[n+1],l=i[o],f=i[o+1];this._renderSegment(s,a,l,f,A)}let s,a=n[n.length-1];for(let e=0;e<n.length;++e){s=a,a=n[e];const t=2*Math.floor(r[a]/3),l=i[t],f=i[t+1],u=4*s,c=this._project(l,f,o[u+2],o[u+3]);c&&this._renderSegment(l,f,c[0],c[1],A)}return e&&e.value()}renderBounds(A){const e=null==A?A=new E: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 E:void 0,r=this._clip(A);if(null===r||!r.length)return;e.moveTo(r[0],r[1]);let n=r.length;for(;r[0]===r[n-2]&&r[1]===r[n-1]&&n>1;)n-=2;for(let A=2;A<n;A+=2)r[A]===r[A-2]&&r[A+1]===r[A-1]||e.lineTo(r[A],r[A+1]);return e.closePath(),t&&t.value()}*cellPolygons(){const{delaunay:{points:A}}=this;for(let e=0,t=A.length/2;e<t;++e){const A=this.cellPolygon(e);A&&(A.index=e,yield A)}}cellPolygon(A){const e=new k;return this.renderCell(A,e),e.value()}_renderSegment(A,e,t,r,n){let i;const o=this._regioncode(A,e),s=this._regioncode(t,r);0===o&&0===s?(n.moveTo(A,e),n.lineTo(t,r)):(i=this._clipSegment(A,e,t,r,o,s))&&(n.moveTo(i[0],i[1]),n.lineTo(i[2],i[3]))}contains(A,e,t){return(e=+e)==e&&(t=+t)==t&&this.delaunay._step(A,e,t)===A}*neighbors(A){const e=this._clip(A);if(e)for(const t of this.delaunay.neighbors(A)){const A=this._clip(t);if(A)A:for(let r=0,n=e.length;r<n;r+=2)for(let i=0,o=A.length;i<o;i+=2)if(e[r]===A[i]&&e[r+1]===A[i+1]&&e[(r+2)%n]===A[(i+o-2)%o]&&e[(r+3)%n]===A[(i+o-1)%o]){yield t;break A}}}_cell(A){const{circumcenters:e,delaunay:{inedges:t,halfedges:r,triangles:n}}=this,i=t[A];if(-1===i)return null;const o=[];let s=i;do{const t=Math.floor(s/3);if(o.push(e[2*t],e[2*t+1]),s=s%3==2?s-2:s+1,n[s]!==A)break;s=r[s]}while(s!==i&&-1!==s);return o}_clip(A){if(0===A&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const e=this._cell(A);if(null===e)return null;const{vectors:t}=this,r=4*A;return this._simplify(t[r]||t[r+1]?this._clipInfinite(A,e,t[r],t[r+1],t[r+2],t[r+3]):this._clipFinite(A,e))}_clipFinite(A,e){const t=e.length;let r,n,i,o,s=null,a=e[t-2],l=e[t-1],f=this._regioncode(a,l),u=0;for(let c=0;c<t;c+=2)if(r=a,n=l,a=e[c],l=e[c+1],i=f,f=this._regioncode(a,l),0===i&&0===f)o=u,u=0,s?s.push(a,l):s=[a,l];else{let e,t,c,h,g;if(0===i){if(null===(e=this._clipSegment(r,n,a,l,i,f)))continue;[t,c,h,g]=e}else{if(null===(e=this._clipSegment(a,l,r,n,f,i)))continue;[h,g,t,c]=e,o=u,u=this._edgecode(t,c),o&&u&&this._edge(A,o,u,s,s.length),s?s.push(t,c):s=[t,c]}o=u,u=this._edgecode(h,g),o&&u&&this._edge(A,o,u,s,s.length),s?s.push(h,g):s=[h,g]}if(s)o=u,u=this._edgecode(s[0],s[1]),o&&u&&this._edge(A,o,u,s,s.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 s}_clipSegment(A,e,t,r,n,i){const o=n<i;for(o&&([A,e,t,r,n,i]=[t,r,A,e,i,n]);;){if(0===n&&0===i)return o?[t,r,A,e]:[A,e,t,r];if(n&i)return null;let s,a,l=n||i;8&l?(s=A+(t-A)*(this.ymax-e)/(r-e),a=this.ymax):4&l?(s=A+(t-A)*(this.ymin-e)/(r-e),a=this.ymin):2&l?(a=e+(r-e)*(this.xmax-A)/(t-A),s=this.xmax):(a=e+(r-e)*(this.xmin-A)/(t-A),s=this.xmin),n?(A=s,e=a,n=this._regioncode(A,e)):(t=s,r=a,i=this._regioncode(t,r))}}_clipInfinite(A,e,t,r,n,i){let o,s=Array.from(e);if((o=this._project(s[0],s[1],t,r))&&s.unshift(o[0],o[1]),(o=this._project(s[s.length-2],s[s.length-1],n,i))&&s.push(o[0],o[1]),s=this._clipFinite(A,s))for(let e,t=0,r=s.length,n=this._edgecode(s[r-2],s[r-1]);t<r;t+=2)e=n,n=this._edgecode(s[t],s[t+1]),e&&n&&(t=this._edge(A,e,n,s,t),r=s.length);else this.contains(A,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(A,e,t,r,n){for(;e!==t;){let t,i;switch(e){case 5:e=4;continue;case 4:e=6,t=this.xmax,i=this.ymin;break;case 6:e=2;continue;case 2:e=10,t=this.xmax,i=this.ymax;break;case 10:e=8;continue;case 8:e=9,t=this.xmin,i=this.ymax;break;case 9:e=1;continue;case 1:e=5,t=this.xmin,i=this.ymin}r[n]===t&&r[n+1]===i||!this.contains(A,t,i)||(r.splice(n,0,t,i),n+=2)}return n}_project(A,e,t,r){let n,i,o,s=1/0;if(r<0){if(e<=this.ymin)return null;(n=(this.ymin-e)/r)<s&&(o=this.ymin,i=A+(s=n)*t)}else if(r>0){if(e>=this.ymax)return null;(n=(this.ymax-e)/r)<s&&(o=this.ymax,i=A+(s=n)*t)}if(t>0){if(A>=this.xmax)return null;(n=(this.xmax-A)/t)<s&&(i=this.xmax,o=e+(s=n)*r)}else if(t<0){if(A<=this.xmin)return null;(n=(this.xmin-A)/t)<s&&(i=this.xmin,o=e+(s=n)*r)}return[i,o]}_edgecode(A,e){return(A===this.xmin?1:A===this.xmax?2:0)|(e===this.ymin?4:e===this.ymax?8:0)}_regioncode(A,e){return(A<this.xmin?1:A>this.xmax?2:0)|(e<this.ymin?4:e>this.ymax?8:0)}_simplify(A){if(A&&A.length>4){for(let e=0;e<A.length;e+=2){const t=(e+2)%A.length,r=(e+4)%A.length;(A[e]===A[t]&&A[t]===A[r]||A[e+1]===A[t+1]&&A[t+1]===A[r+1])&&(A.splice(t,2),e-=2)}A.length||(A=null)}return A}}const Q=2*Math.PI,_=Math.pow;function x(A){return A[0]}function D(A){return A[1]}function C(A,e,t){return[A+Math.sin(A+e)*t,e+Math.cos(A-e)*t]}class I{static from(A,e=x,t=D,r){return new I("length"in A?function(A,e,t,r){const n=A.length,i=new Float64Array(2*n);for(let o=0;o<n;++o){const n=A[o];i[2*o]=e.call(r,n,o,A),i[2*o+1]=t.call(r,n,o,A)}return i}(A,e,t,r):Float64Array.from(function*(A,e,t,r){let n=0;for(const i of A)yield e.call(r,i,n,A),yield t.call(r,i,n,A),++n}(A,e,t,r)))}constructor(A){this._delaunator=new g(A),this.inedges=new Int32Array(A.length/2),this._hullIndex=new Int32Array(A.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const A=this._delaunator,e=this.points;if(A.hull&&A.hull.length>2&&function(A){const{triangles:e,coords:t}=A;for(let A=0;A<e.length;A+=3){const r=2*e[A],n=2*e[A+1],i=2*e[A+2];if((t[i]-t[r])*(t[n+1]-t[r+1])-(t[n]-t[r])*(t[i+1]-t[r+1])>1e-10)return!1}return!0}(A)){this.collinear=Int32Array.from({length:e.length/2},(A,e)=>e).sort((A,t)=>e[2*A]-e[2*t]||e[2*A+1]-e[2*t+1]);const A=this.collinear[0],t=this.collinear[this.collinear.length-1],r=[e[2*A],e[2*A+1],e[2*t],e[2*t+1]],n=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let A=0,t=e.length/2;A<t;++A){const t=C(e[2*A],e[2*A+1],n);e[2*A]=t[0],e[2*A+1]=t[1]}this._delaunator=new g(e)}else delete this.collinear;const t=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,n=this.triangles=this._delaunator.triangles,i=this.inedges.fill(-1),o=this._hullIndex.fill(-1);for(let A=0,e=t.length;A<e;++A){const e=n[A%3==2?A-2:A+1];-1!==t[A]&&-1!==i[e]||(i[e]=A)}for(let A=0,e=r.length;A<e;++A)o[r[A]]=A;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],i[r[0]]=1,2===r.length&&(i[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(A){return new M(this,A)}*neighbors(A){const{inedges:e,hull:t,_hullIndex:r,halfedges:n,triangles:i,collinear:o}=this;if(o){const e=o.indexOf(A);return e>0&&(yield o[e-1]),void(e<o.length-1&&(yield o[e+1]))}const s=e[A];if(-1===s)return;let a=s,l=-1;do{if(yield l=i[a],a=a%3==2?a-2:a+1,i[a]!==A)return;if(a=n[a],-1===a){const e=t[(r[A]+1)%t.length];return void(e!==l&&(yield e))}}while(a!==s)}find(A,e,t=0){if((A=+A)!=A||(e=+e)!=e)return-1;const r=t;let n;for(;(n=this._step(t,A,e))>=0&&n!==t&&n!==r;)t=n;return n}_step(A,e,t){const{inedges:r,hull:n,_hullIndex:i,halfedges:o,triangles:s,points:a}=this;if(-1===r[A]||!a.length)return(A+1)%(a.length>>1);let l=A,f=_(e-a[2*A],2)+_(t-a[2*A+1],2);const u=r[A];let c=u;do{let r=s[c];const u=_(e-a[2*r],2)+_(t-a[2*r+1],2);if(u<f&&(f=u,l=r),c=c%3==2?c-2:c+1,s[c]!==A)break;if(c=o[c],-1===c){if(c=n[(i[A]+1)%n.length],c!==r&&_(e-a[2*c],2)+_(t-a[2*c+1],2)<f)return c;break}}while(c!==u);return l}render(A){const e=null==A?A=new E:void 0,{points:t,halfedges:r,triangles:n}=this;for(let e=0,i=r.length;e<i;++e){const i=r[e];if(i<e)continue;const o=2*n[e],s=2*n[i];A.moveTo(t[o],t[o+1]),A.lineTo(t[s],t[s+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 E:void 0,{points:r}=this;for(let t=0,n=r.length;t<n;t+=2){const n=r[t],i=r[t+1];A.moveTo(n+e,i),A.arc(n,i,e,0,Q)}return t&&t.value()}renderHull(A){const e=null==A?A=new E:void 0,{hull:t,points:r}=this,n=2*t[0],i=t.length;A.moveTo(r[n],r[n+1]);for(let e=1;e<i;++e){const n=2*t[e];A.lineTo(r[n],r[n+1])}return A.closePath(),e&&e.value()}hullPolygon(){const A=new k;return this.renderHull(A),A.value()}renderTriangle(A,e){const t=null==e?e=new E:void 0,{points:r,triangles:n}=this,i=2*n[A*=3],o=2*n[A+1],s=2*n[A+2];return e.moveTo(r[i],r[i+1]),e.lineTo(r[o],r[o+1]),e.lineTo(r[s],r[s+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});var F=function(A){var e,t=void 0!==(A=A||{})?A:{},r={};for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);var n,i,o,s,a;n="object"==typeof window,i="function"==typeof importScripts,s="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=s&&!n&&!i,a=!n&&!o&&!i;var l,f,u,c,h,g="";o?(g=__dirname+"/",l=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()},u=function(A){var e=l(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]"}):a?("undefined"!=typeof read&&(l=function(A){var e=eA(A);return e?$(e):read(A)}),u=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)):(n||i)&&(i?g=self.location.href:"undefined"!=typeof document&&document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",l=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var t=eA(A);if(t)return $(t);throw e}},i&&(u=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}catch(e){var t=eA(A);if(t)return t;throw e}}),f=function(A,e,t){var r=new XMLHttpRequest;r.open("GET",A,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)e(r.response);else{var n=eA(A);n?e(n.buffer):t()}},r.onerror=t,r.send(null)});var d=t.print||console.log.bind(console),w=t.printErr||console.warn.bind(console);for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);r=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram;var p=0;var b=!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 v(A,e,t,r,n){var i={string:function(A){var e=0;if(null!=A&&0!==A){var t=1+(A.length<<2);(function(A,e,t){(function(A,e,t,r){if(!(r>0))return 0;for(var n=t,i=t+r-1,o=0;o<A.length;++o){var s=A.charCodeAt(o);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&A.charCodeAt(++o);if(s<=127){if(t>=i)break;e[t++]=s}else if(s<=2047){if(t+1>=i)break;e[t++]=192|s>>6,e[t++]=128|63&s}else if(s<=65535){if(t+2>=i)break;e[t++]=224|s>>12,e[t++]=128|s>>6&63,e[t++]=128|63&s}else{if(t+3>=i)break;e[t++]=240|s>>18,e[t++]=128|s>>12&63,e[t++]=128|s>>6&63,e[t++]=128|63&s}}e[t]=0})(A,k,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),s=[],a=0;if(r)for(var l=0;l<r.length;l++){var f=i[t[l]];f?(0===a&&(a=aA()),s[l]=f(r[l])):s[l]=r[l]}var u=o.apply(null,s);return u=function(A){return"string"===e?C(A):"boolean"===e?Boolean(A):A}(u),0!==a&&sA(a),u}var y,E,k,M,Q,_,x,D="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function C(A,e){return A?function(A,e,t){for(var r=e+t,n=e;A[n]&&!(n>=r);)++n;if(n-e>16&&A.subarray&&D)return D.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var s=63&A[e++];if(192!=(224&o)){var a=63&A[e++];if((o=224==(240&o)?(15&o)<<12|s<<6|a:(7&o)<<18|s<<12|a<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var l=o-65536;i+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|s)}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){y=A,t.HEAP8=E=new Int8Array(A),t.HEAP16=M=new Int16Array(A),t.HEAP32=Q=new Int32Array(A),t.HEAPU8=k=new Uint8Array(A),t.HEAPU16=new Uint16Array(A),t.HEAPU32=new Uint32Array(A),t.HEAPF32=_=new Float32Array(A),t.HEAPF64=x=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var F=t.TOTAL_MEMORY||33554432;function S(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?t.dynCall_v(r):t.dynCall_vi(r,e.arg):r(void 0===e.arg?null:e.arg)}else e()}}F=(y=t.buffer?t.buffer:new ArrayBuffer(F)).byteLength,P(y),Q[7152]=5271520;var T=[],G=[],L=[],U=[];function R(A){T.unshift(A)}function Y(A){U.unshift(A)}var z=Math.abs,O=Math.ceil,H=Math.floor,N=Math.min,V=0,X=null;t.preloadedImages={},t.preloadedAudios={};var j,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,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//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAAAAAAAAIAAAADAAAAEwAAAAAAAAACAAAAAgAAAAMAAAAPAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACAAAAAAAAAAIAAAABAAAAEwAAAAIAAAACAAAAAAAAAAUAAAAKAAAAAAAAAAIAAAACAAAAAwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAIAAAAAAAAAAgAAAAEAAAAPAAAAAgAAAAIAAAAAAAAABQAAAAsAAAAAAAAAAgAAAAIAAAADAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAgAAAAAAAAACAAAAAQAAABAAAAACAAAAAgAAAAAAAAAFAAAADAAAAAAAAAACAAAAAgAAAAMAAAASAAAAAAAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAIAAAABAAAAEQAAAAIAAAACAAAAAAAAAAUAAAANAAAAAAAAAAIAAAACAAAAAwAAABMAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAIAAAAAAAAAAgAAAAEAAAASAAAAAgAAAAIAAAAAAAAABQAAAA4AAAAAAAAAAgAAAAIAAAADAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAEAAAAAAQAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAA6B6FaUp9QQTPXMuL4myJBraiDfBwx9UBYJseitzTIQOL5if9jqZtAnXX+Z+ycb0C3pucbhRBCQG8wJBYqpRRAlWbDCzCY5z/eFWBUEve6P/+qo4Q50Y4/D9YM3iCcYT8fcA2QJSA0P4ADxu0qAAc/BNcGolVJ2j5d9FACqwquPh9z7MthtI9CSUSYJke/YUJQ/64OyjU0Qpi0+HCmFQdCm3GfIVdh2kHsJ11kAyauQYC3UDFJOoFBSJsFV1OwU0FK5fcxX4AmQWhy/zZIt/lACqaCPsBjzUDbdUNIScugQMYQlVJ4MXNANiuq8GTvRUDxTXnulxEZQFZ8QX5kpuw/qmG/JwYFlEAluh3Q6DB+QKn4vyNq0GZAKOXekas+UUB8xabXXhI6QG63C2pLtSNAdDBtyNfLDUDyOcu67ID2P0rCMvRXAeE/Ki2TSVyzyT9Dk+8Sz2uzP5J+w5ARWp0/NQAoOiMuhj9YnP+RyMJwPxgW7TvQVFk/KgsLYF0kQz9g5dAC6IwzQcgHPVvDex1B1XjppodHBkHJq3OMM9fwQNvcmJ7wddlAInGPpQs/w0BRobq5EBmtQJZ2ai7n+ZVAtv2G5E+bgECG+gIfKBlpQK5f8jdI91JAL39sL/WpPEB8rGxhDqklQK6yUf43XhBAxL9y/tK8+D86XyZpgrHiPwAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAP////8AAAAAAAAAAAAAAAABAAAAAAAAAAAAAAD/////AAAAAAAAAAABAAAAAQAAAAAAAAAAAAAA/////wAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAP////8FAAAABQAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAABQAAAAEAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAQABAAABAQAAAAAAAQAAAAEAAAABAAEAAAAAAAAAAAAAAAAAAAAAquJYWJZl+D9jaeZNtj/zPwwdI9KqaeO/qGefXwdHdz+q4lhYlmX4P+OrlPMN3PI/DB0j0qpp47+7SQLV4VIEQKriWFiWZfg/r2kma3tz8T82eQmLqNIGwMRIWXMqSvo/fcCszPux9j+jara6ozTwP6hnn18HR3c/MSoKLequ8r+SabgA2nj0P7jBLbDOHO8/1Ym/ICfH4T+6lxjvlFXHv73m373LRPU/0vXyDVxo7T+ToKRHJXMAQF/33578aPE/pAyy64tD9T8+U/hCvyruPwxv8Y7YYwLAuXYr8NAiCEB4+LDK0Sn0P1Qeuy4j+eo/OMx50n7K7L+TrGB/nyf8v5ehC2fbYPM/aXMKexiT6z8mFRIMjg/zP7yUVwGGBNw/E6opHERf8z/z0wR2g9DqPw4pBpcOhvu/NbA29uWAA8DMaTExyXzyP02biiQ+Ruk/S8jz2/FKBEB1pzZnpbb9P7pQU4wLfPI//7ZcQXeG6D9CqEQvAYoIwDB2VB6sSgRAVyv8H5We8T+EHWF8XNPmPzB2wT8Nrrg/SEi+cX+w4L8of+GtdSDxP1sjk5AdouU/6ZjOVru13r8K0obqI6bxvwVbdNXyhfA/w5GG024n5z+rwmtMzP8BwLw9pSX49QXABe/2uQxP8D+b6wCzCvXkP7uGT87fK+Q/pz/JWw4coj+qoBf2J0nwP/yE3PUo0+I/vFJeHcaC+D96luSIqvntP/bf8sHUYu8/gZNN41mL4z9bhOqVOF4FwO6lmAh1hQhAbCVxbdhk7z+1C8NdDcfiPwG36x/0OQBAx0WJ76c2+D9nlSHXANfuP2HlfZ3gqOE/EwnVlVPg9r96+oHzEH//v5bXzdT1Auw/DM3GwLsA4D9p/8uoKcr+v+U9x5DQVAPAehjSdghb7D9sc1IetODgP8MVwwB1pu6/azPk6OGe978W8t/TUc3rP+0QMvYfP+A/RsG/QpSE8D+l3uwScxzgPwQaifgujuw/k1Vti1I43z8MAwLnSh0GQH5nYnwwZgJAiGUzWC5s6j8WyyI/BbLgPw4iUapGeQJAB3W+imnp/j9BLWR4ssrpP2t+gG5Pstk/cpBsfm6DCMCOpU9dOZsFQEv8nFypHeo/ehJ6i+6S2D9jqlGEmarLv7STC5TRiOa/bC+x8WZD6D9H3yUkWpDZP8gZvmCMuQLAreY19/eRBsCoPOc8UzzpP6KI/QV+y9g/t/MoboyWzT+Hv5q3Zu3Mvy2xROCT4uY/9gQitMMg1T9abAqhWMDkv1oLTavoUfG/PMUJP9CD5j+fHRX3t6fSPz7W2gk6bvs/WRnuHwqN9D8YFturGCTmP1EZczv0b9I/5t4exabB5D/1ESLh5fTEP9X2z6SYweQ/6lv3I2zT0D9zkRGNUNMAQKoSvc4EIfs/Xggt8wQI5T+mJHHg/w/SP4lhT/9t8vQ/DrZ/DbwH7D+XlhbYZrjkP34LIpFt6c4/lwfp8fLX9L+j96CTTf76v3WdNhEv9uM/d8c3o4lV0D/vFdCHVcsFwAHeDq0F1QhApbYqcZiN5D9KoilqByXLPwX0/diA0vq/0fo0GxnxAMBbaTkvlCzjP/RrFrWXrMs/UYTrky7jA0DB9f4FiZYAQEGAk/3QzeE/r/TeqE8t0D/OqjlsnPbvvz8RKU8JOfW/smSEbK/O4T8MzuyPm3DDP/rFtctq9gZAfb1EVEaSA0Dts5dVInnhP18SFMc79MM/7y34cw6LAMDFrRJsZO0DwC2KLvLSYuA/hx5wcUHewz+49SnK/4ruPyeS0PX9a+E/ZxaaLvvZ3z8WPu5T2QS8Pygo4RIvMqa/BJ0Kqsd0279cKW4ay8jdP3b05bmZ364/10/qtdxk2r+Bcz6CDMvpv54qOw+Amdw/qLV71pW7sT/YKc80nIPUP8OfIaBJ77G/LyTuD1un2z+diYu8efWzP1wU7ACkfwjAZroyPL1yBkAmv3lKJJbbPysKSE4W+p0/dIgqY79TA8ATLTOQ3tsGwJ2zweD/Xdg/XO/jXeFUaL8VW2qLFKfov1cA9Aa6XfK/tIa7YGgI2T+f3hu/sxqPv2nXdPpf3Pc/jkw8Jbda8j+tT/z8tGPVP1yBHpJd35k/KYvYOy1s8j/yz+kCQjPrP9+agH7x59g/PZfJ9aBhpr/rDKzvYBb+PwtkiaGCt/c/vb1mVr+f1T/JIHwHc8Govw7aeF6+9vG/Xv7kD6fp979isYioQYHVP7AIQZuSFrG/3z1AdUTnAUDN3XY9O7f9P0AdQ9ljYNQ/dJANJPTOrb8kLECUiiPlP4yF7UgmStA/9xGmXxCG1T9qZzix4W2zv2SGJRJVrPe/Fh9a2M/B/b8IexzFCoPSP9y1QFD2bLe/Q86cWLJe/b+mOOfYm78BwOTjkPAGE9E/8aPCUKu/ub9pPZyLCiUGwBA7Mev/BQlALOmrlRi+0j+AMJ/dKULBv7iLtL6a6QRAEMDV/yajAUDa62dE3crJP1P70RgBUbq/38hVnR6esT/s1tG10Z/Ov/zLwalHPss/dTS9NKTXx78nMcRzCIEHQAabxDsAmQRA0tyLK3gSyT+Aui7nOhDGv5Gs58z3WgHATN3forJuBMCAui7nOhDGP9Lciyt4Esm/WAJyHQ4c7z8UP5HFIs3iP3U0vTSk18c//MvBqUc+y7+cvv8HLg/Kvy1I/mHsI+K/U/vRGAFRuj/a62dE3crJv8p+WV8KlQjAuQ/nOP43B0CAMJ/dKULBPyzpq5UYvtK/ZoU+VoLh4L9etLlRUfvtv/GjwlCrv7k/5OOQ8AYT0b9DfT9FhufXPwUX8hJp+4u/3LVAUPZstz8IexzFCoPSv9+L609E5fQ/q9Fz7X2J7T9qZzix4W2zP/cRpl8QhtW/vtNilqGX+j8MOy7QJoL0P3SQDST0zq0/QB1D2WNg1L8IIjSvGNkDwGB8Jou2GAfAsAhBm5IWsT9isYioQYHVvyS9D3zb6uy/gnwRa7uM9L/JIHwHc8GoP729Zla/n9W/CsAHJZwmAEDEW6OYT1r6Pz2XyfWgYaY/35qAfvHn2L83Tdy4lS30vxf2/gZ0jPq/XIEekl3fmb+tT/z8tGPVvybPr2zJ1/+/K7mJ0ypVAsCf3hu/sxqPPwCGu2BoCNm/5oITrpZn+r+UDUyDP+n/v1zv413hVGg/nbPB4P9d2L9MlmkxNvgCQMtZlKE85v8/KwpIThb6nb8mv3lKJJbbv8+SZsTvOOc/pQCIIOYw0j+diYu8efWzvy8k7g9bp9u/kxYDa+pKtD9XlYvA8HnVv6i1e9aVu7G/nio7D4CZ3L/WR6rNh5EGwCkgQweBkghAdvTluZnfrr9cKW4ay8jdvxbjhr1f1QVAR5C0MzivAkAWPu5T2QS8v2cWmi772d+/cKj4lzLJCEBx2QJfYrMFQIcecHFB3sO/LYou8tJi4L+jr7lhO38BwIcI0Nb7xgTAXxIUxzv0w7/ts5dVInnhv0T+l8DZLfE/MP3FoFvS5D8MzuyPm3DDv7JkhGyvzuG/tzhzRIRc0b9Ovv3/0z7mv6/03qhPLdC/m4CT/dDN4b9dwjU5VCQBQBBJX1ntCv0/9GsWtZesy79baTkvlCzjv1mjYgEz++S/oW6KnOQW8b9KoilqByXLv6W2KnGYjeS/SmaKz3Vx9z+BZB5yxGHwP3fHN6OJVdC/dZ02ES/2478PuaBjLrXaP4/JU81pPaO/fgsikW3pzr+XlhbYZrjkv4tSn7YDbP0/f2LnFKlF9z+mJHHg/w/Sv14ILfMECOW/mfg4qYhR/b+OP+RQDCACwOpb9yNs09C/1fbPpJjB5L9pN2WOVZ3wv3hHy9nxIve/URlzO/Rv0r8YFturGCTmv1d1/KKR8QPA8gsy9qzSB8CfHRX3t6fSvzzFCT/Qg+a/EYStnrzV9r/2QJqI7Lb9v/YEIrTDINW/LbFE4JPi5r/7kQEs5fEDQHunnf4GeQBAooj9BX7L2L+oPOc8Uzzpv+ydYY2SSAfAL4HK6CRTB0BH3yUkWpDZv2wvsfFmQ+i/Ik0Yzruh6T8fM3LoGoDUP3oSeovukti/S/ycXKkd6r9rEv+7UWcHQCRIQe/GfwNAa36Abk+y2b9BLWR4ssrpv9KT87qa0bM/FTyktw823L8WyyI/BbLgv4hlM1gubOq/DizMp9Ki6r8b5ckdjVrzv5NVbYtSON+/BBqJ+C6O7L/dUBFqgyXYv00Wh18r7+q/7RAy9h8/4L8W8t/TUc3rv4RM5DKx3wDAfvWIj94aBcBsc1IetODgv3oY0nYIW+y/oGcTFF54AUDkJqS/FKX6PwzNxsC7AOC/ltfN1PUC7L+5Wrz/zHnzP6688w2rNOc/YeV9neCo4b9nlSHXANfuvw9RsxKjY/s/1V8GteXE8j+1C8NdDcfiv2wlcW3YZO+/IOywaA7Q8b9bFP+4Tg36v4GTTeNZi+O/9t/ywdRi77+tRc3yFR7eP2bkcHXJkLO//ITc9SjT4r+qoBf2J0nwv2YHKoswwfm/iQcLspCjAcCb6wCzCvXkvwXv9rkMT/C/YkuwYAMXBMApCNUai9kIwMORhtNuJ+e/BVt01fKF8L+ZqWEfvIjsP6h693QZYNk/WyOTkB2i5b8of+GtdSDxvwpaaulDSwVADMQAX+lOAECEHWF8XNPmv1cr/B+VnvG/XyFG6opcCMD/mtR32/UEQP+2XEF3hui/ulBTjAt88r/imfCfRP+yP9zbvtc8XeO/TZuKJD5G6b/MaTExyXzyvxiTQeElXOO/rbJRQVGN9L/z0wR2g9DqvxOqKRxEX/O/FDGCEei99j9x8zV4VYTmP2lzCnsYk+u/l6ELZ9tg878pRXacaDT/v3k6GZRqoQXAVB67LiP56r94+LDK0Sn0vwO6pZ9b7wFAvK0nKVcc9j8+U/hCvyruv6QMsuuLQ/W/FPhKFYv46j8MyxaDTOW/v9L18g1caO2/vebfvctE9b/7GD8ZrF3xv3gx1AR9bQDAuMEtsM4c77+SabgA2nj0v5xKFIwxsATArKNSBaKsB0Cjara6ozTwv33ArMz7sfa/dF2U0FcWCcDxL357DJX/P69pJmt7c/G/quJYWJZl+L/YntVJlnrSP4sRLzXM+fe/46uU8w3c8r+q4lhYlmX4v85lu5+QRwRAsI0H/WU8479jaeZNtj/zv6riWFiWZfi/sI0H/WU847/OZbufkEcEQHAoPUBrnss/9exKzDtFtT88wM8kax+gP9OqeKeAYog/MW0ItiZvcj+ph+smvt5bP2lCaV5dEUU/StaUmQDaLz+kK9y22BMYP0O3whZuMwI/IIbgZGWE6z7UkjYaEM3UPuezxwa9cr8+LybxRMnFpz6E1N8DbPiRPsYjySMvK3s+//////8fAAj//////zMQCP////9/MiAI/////28yMAj/////YzJACP///z9iMlAI////N2IyYAj///8zYjJwCP//vzNiMoAI//+rM2IykAj/f6szYjKgCP8PqzNiMrAI/wOrM2IywAi/A6szYjLQCJ8DqzNiMuAImQOrM2Iy8Aj//////z8PCP//////Kx8I/////38pLwj/////Pyk/CP////85KU8I////PzgpXwj///8POClvCP///w44KX8I//8fDjgpjwj//w8OOCmfCP9/DQ44Ka8I/w8NDjgpvwj/DQ0OOCnPCP8MDQ44Kd8IxwwNDjgp7wjEDA0OOCn/CAcAAAAHAAAAAQAAAAIAAAAEAAAAAwAAAAAAAAAAAAAABwAAAAMAAAABAAAAAgAAAAUAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAGAAAAAgAAAAMAAAAFAAAABAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAwAAAAEAAAAFAAAABAAAAAAAAAAAAAAABwAAAAUAAAADAAAABAAAAAEAAAAAAAAAAgAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAABgtRFT7Ifk/GC1EVPsh+b8YLURU+yEJQBgtRFT7IQnAYWxnb3MuYwBoM05laWdoYm9yUm90YXRpb25zAGNvb3JkaWprLmMAX3VwQXA3Q2hlY2tlZABfdXBBcDdyQ2hlY2tlZABkaXJlY3RlZEVkZ2UuYwBkaXJlY3RlZEVkZ2VUb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpclt0bXBGaWprLmZhY2VdW2ZpamsuZmFjZV0gPT0gS0kAZmFjZWlqay5jAF9mYWNlSWprUGVudFRvQ2VsbEJvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9DZWxsQm91bmRhcnkAaDNJbmRleC5jAGNvbXBhY3RDZWxscwBsYXRMbmdUb0NlbGwAY2VsbFRvQ2hpbGRQb3MAdmFsaWRhdGVDaGlsZFBvcwBsYXRMbmcuYwBjZWxsQXJlYVJhZHMyAHBvbHlnb24tPm5leHQgPT0gTlVMTABsaW5rZWRHZW8uYwBhZGROZXdMaW5rZWRQb2x5Z29uAG5leHQgIT0gTlVMTABsb29wICE9IE5VTEwAYWRkTmV3TGlua2VkTG9vcABwb2x5Z29uLT5maXJzdCA9PSBOVUxMAGFkZExpbmtlZExvb3AAY29vcmQgIT0gTlVMTABhZGRMaW5rZWRDb29yZABsb29wLT5maXJzdCA9PSBOVUxMAGlubmVyTG9vcHMgIT0gTlVMTABub3JtYWxpemVNdWx0aVBvbHlnb24AYmJveGVzICE9IE5VTEwAY2FuZGlkYXRlcyAhPSBOVUxMAGZpbmRQb2x5Z29uRm9ySG9sZQBjYW5kaWRhdGVCQm94ZXMgIT0gTlVMTAByZXZEaXIgIT0gSU5WQUxJRF9ESUdJVABsb2NhbGlqLmMAY2VsbFRvTG9jYWxJamsAYmFzZUNlbGwgIT0gb3JpZ2luQmFzZUNlbGwAIShvcmlnaW5PblBlbnQgJiYgaW5kZXhPblBlbnQpAGJhc2VDZWxsID09IG9yaWdpbkJhc2VDZWxsAGJhc2VDZWxsICE9IElOVkFMSURfQkFTRV9DRUxMAGxvY2FsSWprVG9DZWxsACFfaXNCYXNlQ2VsbFBlbnRhZ29uKGJhc2VDZWxsKQBiYXNlQ2VsbFJvdGF0aW9ucyA+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";function q(){return E.length}function $(A){for(var e=[],t=0;t<A.length;t++){var r=A[t];r>255&&(r&=255),e.push(String.fromCharCode(r))}return e.join("")}var AA="function"==typeof atob?atob:function(A){var e,t,r,n,i,o,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a="",l=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=s.indexOf(A.charAt(l++))<<2|(n=s.indexOf(A.charAt(l++)))>>4,t=(15&n)<<4|(i=s.indexOf(A.charAt(l++)))>>2,r=(3&i)<<6|(o=s.indexOf(A.charAt(l++))),a+=String.fromCharCode(e),64!==i&&(a+=String.fromCharCode(t)),64!==o&&(a+=String.fromCharCode(r))}while(l<A.length);return a};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),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(J.length))}var tA=function(A,e,t){var r=new A.Int8Array(t),n=new A.Int32Array(t);new A.Uint8Array(t),new A.Float32Array(t);var i=new A.Float64Array(t),o=0|e.o,s=0|e.p,a=A.Math.floor,l=A.Math.abs,f=A.Math.sqrt,u=A.Math.pow,c=A.Math.cos,h=A.Math.sin,g=A.Math.tan,d=A.Math.acos,w=A.Math.asin,p=A.Math.atan,b=A.Math.atan2,m=A.Math.ceil,B=A.Math.imul,v=A.Math.min,y=A.Math.max,E=A.Math.clz32,k=e.b,M=e.c,Q=e.d,_=e.e,x=e.f,D=e.g,C=e.h,I=e.i,P=28640;function F(A,e,t,r){return 0|S(A|=0,e|=0,t|=0,r|=0,0)}function S(A,e,t,r,i){var o,s=0,a=0,l=0,f=0;if(o=P,P=P+16|0,a=o,!(0|T(A|=0,e|=0,t|=0,r|=0,i|=0)))return P=o,0|(r=0);do{if((0|t)>=0){if((0|t)>13780509){if(0|(s=0|ge(15,a)))break;a=0|n[(l=a)>>2],l=0|n[l+4>>2]}else f=0|nt(0|t,0|(s=((0|t)<0)<<31>>31),3,0),l=0|M(),s=0|$e(0|t,0|s,1,0),s=0|$e(0|(s=0|nt(0|f,0|l,0|s,0|M())),0|M(),1,0),l=0|M(),n[a>>2]=s,n[a+4>>2]=l,a=s;if(dt(0|r,0,a<<3),0|i){dt(0|i,0,a<<2),s=0|G(A,e,t,r,i,a,l,0);break}(s=0|qe(a,4))?(f=0|G(A,e,t,r,s,a,l,0),Ke(s),s=f):s=13}else s=2}while(0);return P=o,0|(f=s)}function T(A,e,t,r,i){A|=0,e|=0,t|=0,r|=0,i|=0;var o,s,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0;if(s=P,P=P+16|0,w=s+8|0,n[(d=o=s)>>2]=A,n[d+4>>2]=e,(0|t)<0)return P=s,0|(w=2);if(n[(a=r)>>2]=A,n[a+4>>2]=e,(a=!!(0|i))&&(n[i>>2]=0),0|VA(A,e))return P=s,0|(w=9);n[w>>2]=0;A:do{if((0|t)>=1)if(a)for(h=1,c=0,g=0,d=1,a=A;;){if(!(c|g)){if(0|(a=0|L(a,e,4,w,o)))break A;if(0|VA(a=0|n[(e=o)>>2],e=0|n[e+4>>2])){a=9;break A}}if(0|(a=0|L(a,e,0|n[26800+(g<<2)>>2],w,o)))break A;if(a=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=a,n[A+4>>2]=e,n[i+(h<<2)>>2]=d,l=(0|(A=c+1|0))==(0|d),u=6==(0|(f=g+1|0)),0|VA(a,e)){a=9;break A}if((0|(d=d+(u&l&1)|0))>(0|t)){a=0;break}h=h+1|0,c=l?0:A,g=l?u?0:f:g}else for(h=1,c=0,g=0,d=1,a=A;;){if(!(c|g)){if(0|(a=0|L(a,e,4,w,o)))break A;if(0|VA(a=0|n[(e=o)>>2],e=0|n[e+4>>2])){a=9;break A}}if(0|(a=0|L(a,e,0|n[26800+(g<<2)>>2],w,o)))break A;if(a=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=a,n[A+4>>2]=e,l=(0|(A=c+1|0))==(0|d),u=6==(0|(f=g+1|0)),0|VA(a,e)){a=9;break A}if((0|(d=d+(u&l&1)|0))>(0|t)){a=0;break}h=h+1|0,c=l?0:A,g=l?u?0:f:g}else a=0}while(0);return P=s,0|(w=a)}function G(A,e,t,r,i,o,s,a){t|=0,r|=0,i|=0,a|=0;var l,f,u,c=0,h=0,g=0,d=0,w=0,p=0,b=0;if(u=P,P=P+16|0,l=u+8|0,f=u,c=0|ot(0|(A|=0),0|(e|=0),0|(o|=0),0|(s|=0)),g=0|M(),!(!(0|(b=0|n[(p=d=r+(c<<3)|0)>>2]))&!(0|(p=0|n[p+4>>2]))|(h=(0|b)==(0|A)&(0|p)==(0|e))))do{c=0|it(0|(c=0|$e(0|c,0|g,1,0)),0|M(),0|o,0|s),g=0|M(),h=(0|(p=0|n[(b=d=r+(c<<3)|0)>>2]))==(0|A)&(0|(b=0|n[b+4>>2]))==(0|e)}while(!(!(0|p)&!(0|b)|h));if(c=i+(c<<2)|0,h&&(0|n[c>>2])<=(0|a))return P=u,0|(b=0);if(n[(b=d)>>2]=A,n[b+4>>2]=e,n[c>>2]=a,(0|a)>=(0|t))return P=u,0|(b=0);switch(h=a+1|0,n[l>>2]=0,0|(c=0|L(A,e,2,l,f))){case 9:w=9;break;case 0:(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h))||(w=9)}A:do{if(9==(0|w)){switch(n[l>>2]=0,0|(c=0|L(A,e,3,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|L(A,e,1,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|L(A,e,5,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|L(A,e,4,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|L(A,e,6,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}return P=u,0|(b=0)}}while(0);return P=u,0|(b=c)}function L(A,e,t,r,i){A|=0,e|=0,i|=0;var o,s,a=0,l=0,f=0,u=0,c=0,h=0,g=0;if((t|=0)>>>0>6)return 0|(i=1);if(c=(0|n[(r|=0)>>2])%6|0,n[r>>2]=c,(0|c)>0){a=0;do{t=0|vA(t),a=a+1|0}while((0|a)<(0|n[r>>2]))}if(c=0|at(0|A,0|e,45),M(),(s=127&c)>>>0>121)return 0|(i=5);o=0|WA(A,e),a=0|at(0|A,0|e,52),M(),a&=15;A:do{if(a){for(;;){if(f=0|at(0|A,0|e,0|(l=3*(15-a|0)|0)),M(),7==(0|(f&=7))){e=5;break}if(g=!(0|$A(a)),a=a+-1|0,h=0|lt(7,0,0|l),e&=~M(),A=0|lt(0|n[(g?432:16)+(28*f|0)+(t<<2)>>2],0,0|l)|A&~h,e|=l=0|M(),!(t=0|n[(g?640:224)+(28*f|0)+(t<<2)>>2])){t=0;break A}if(!a){u=8;break A}}return 0|e}u=8}while(0);8==(0|u)&&(A|=0|lt(0|(g=0|n[848+(28*s|0)+(t<<2)>>2]),0,45),e=M()|-1040385&e,t=0|n[4272+(28*s|0)+(t<<2)>>2],127&~g||(g=0|lt(0|n[848+(28*s|0)+20>>2],0,45),e=M()|-1040385&e,t=0|n[4272+(28*s|0)+20>>2],A=0|JA(g|A,e),e=0|M(),n[r>>2]=1+(0|n[r>>2]))),f=0|at(0|A,0|e,45),M(),f&=127;A:do{if(0|O(f)){e:do{if(1==(0|WA(A,e))){if((0|s)!=(0|f)){if(0|X(f,0|n[7696+(28*s|0)>>2])){A=0|qA(A,e),l=1,e=0|M();break}Q(27795,26864,533,26872)}switch(0|o){case 3:A=0|JA(A,e),e=0|M(),n[r>>2]=1+(0|n[r>>2]),l=0;break e;case 5:A=0|qA(A,e),e=0|M(),n[r>>2]=5+(0|n[r>>2]),l=0;break e;case 0:return 0|(g=9);default:return 0|(g=1)}}else l=0}while(0);if((0|t)>0){a=0;do{A=0|ZA(A,e),e=0|M(),a=a+1|0}while((0|a)!=(0|t))}if((0|s)!=(0|f)){if(!(0|H(f))){if(!!(0|l)|5!=(0|WA(A,e)))break;n[r>>2]=1+(0|n[r>>2]);break}switch(127&c){case 8:case 118:break A}3!=(0|WA(A,e))&&(n[r>>2]=1+(0|n[r>>2]))}}else if((0|t)>0){a=0;do{A=0|JA(A,e),e=0|M(),a=a+1|0}while((0|a)!=(0|t))}}while(0);return n[r>>2]=((0|n[r>>2])+t|0)%6|0,n[(g=i)>>2]=A,n[g+4>>2]=e,0|(g=0)}function U(A,e,t,r){A|=0,e|=0,t|=0,r|=0;var i,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0;if(o=P,P=P+16|0,d=o+8|0,n[(g=i=o)>>2]=A,n[g+4>>2]=e,(0|t)<0)return P=o,0|(d=2);if(!t)return n[(d=r)>>2]=A,n[d+4>>2]=e,P=o,0|(d=0);n[d>>2]=0;A:do{if(0|VA(A,e))A=9;else{s=0,g=A;do{if(0|(A=0|L(g,e,4,d,i)))break A;if(s=s+1|0,0|VA(g=0|n[(e=i)>>2],e=0|n[e+4>>2])){A=9;break A}}while((0|s)<(0|t));n[(h=r)>>2]=g,n[h+4>>2]=e,h=t+-1|0,c=0,A=1;do{if(s=26800+(c<<2)|0,5==(0|c))for(l=0|n[s>>2],a=0,s=A;;){if(0|(A=0|L(0|n[(A=i)>>2],0|n[A+4>>2],l,d,i)))break A;if((0|a)!=(0|h)){if(f=0|n[(u=i)>>2],u=0|n[u+4>>2],n[(A=r+(s<<3)|0)>>2]=f,n[A+4>>2]=u,0|VA(f,u)){A=9;break A}A=s+1|0}else A=s;if((0|(a=a+1|0))>=(0|t))break;s=A}else for(l=i,u=0|n[s>>2],f=0,s=A,a=0|n[l>>2],l=0|n[l+4>>2];;){if(0|(A=0|L(a,l,u,d,i)))break A;if(a=0|n[(l=i)>>2],l=0|n[l+4>>2],n[(A=r+(s<<3)|0)>>2]=a,n[A+4>>2]=l,A=s+1|0,0|VA(a,l)){A=9;break A}if((0|(f=f+1|0))>=(0|t))break;s=A}c=c+1|0}while(c>>>0<6);A=(0|g)==(0|n[(A=i)>>2])&&(0|e)==(0|n[A+4>>2])?0:9}}while(0);return P=o,0|(d=A)}function R(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0;if(i=P,P=P+16|0,a=i,!(t|=0))return n[r>>2]=A,n[r+4>>2]=e,P=i,0|(r=0);do{if((0|t)>=0){if((0|t)>13780509){if(0|(o=0|ge(15,a)))break;o=0|n[(s=a)>>2],s=0|n[s+4>>2]}else c=0|nt(0|t,0|(o=((0|t)<0)<<31>>31),3,0),s=0|M(),o=0|$e(0|t,0|o,1,0),o=0|$e(0|(o=0|nt(0|c,0|s,0|o,0|M())),0|M(),1,0),s=0|M(),n[(c=a)>>2]=o,n[c+4>>2]=s;if(u=0|qe(o,8)){if(!(c=0|qe(o,4))){Ke(u),o=13;break}if(0|(o=0|G(A,e,t,u,c,o,s,0))){Ke(u),Ke(c);break}if(e=0|n[a>>2],(0|(a=0|n[a+4>>2]))>0|!(0|a)&e>>>0>0){o=0,l=0,f=0;do{!(0|(s=0|n[(A=u+(l<<3)|0)>>2]))&!(0|(A=0|n[A+4>>2]))||(0|n[c+(l<<2)>>2])!=(0|t)||(n[(h=r+(o<<3)|0)>>2]=s,n[h+4>>2]=A,o=o+1|0),l=0|$e(0|l,0|f,1,0),f=0|M()}while((0|f)<(0|a)|(0|f)==(0|a)&l>>>0<e>>>0)}Ke(u),Ke(c),o=0}else o=13}else o=2}while(0);return P=i,0|(h=o)}function Y(A,e,t,r){t|=0,r|=0;var i,o,s,a=0,l=0;for(s=P,P=P+16|0,i=s,o=s+8|0,a=(a=!(0|VA(A|=0,e|=0)))?1:2;;){if(n[o>>2]=0,!(0|L(A,e,a,o,i))&((0|n[(l=i)>>2])==(0|t)?(0|n[l+4>>2])==(0|r):0)){A=4;break}if((a=a+1|0)>>>0>=7){a=7,A=4;break}}return 4==(0|A)?(P=s,0|a):0}function z(A,e,t,r,o,s,a){e|=0,t|=0,r|=0,o|=0,s|=0,a|=0;var l,f,u,c,h,g,d,w,p,b,m=0,B=0,v=0,y=0,E=0,k=0,Q=0,_=0,x=0,D=0,C=0,I=0,F=0,S=0,T=0,G=0,L=0,U=0,R=0;if(b=P,P=P+64|0,d=b+48|0,w=b+32|0,p=b+24|0,l=b+8|0,f=b,(0|(B=0|n[(A|=0)>>2]))<=0)return P=b,0|(T=0);for(u=A+4|0,c=d+8|0,h=w+8|0,g=l+8|0,m=0,F=0;;){I=(v=0|n[u>>2])+(F<<4)|0,n[d>>2]=n[I>>2],n[d+4>>2]=n[I+4>>2],n[d+8>>2]=n[I+8>>2],n[d+12>>2]=n[I+12>>2],(0|F)==(B+-1|0)?(n[w>>2]=n[v>>2],n[w+4>>2]=n[v+4>>2],n[w+8>>2]=n[v+8>>2],n[w+12>>2]=n[v+12>>2]):(I=v+(F+1<<4)|0,n[w>>2]=n[I>>2],n[w+4>>2]=n[I+4>>2],n[w+8>>2]=n[I+8>>2],n[w+12>>2]=n[I+12>>2]),B=0|rA(d,w,r,p);A:do{if(B)v=0,m=B;else if(v=0|n[(B=p)>>2],(0|(B=0|n[B+4>>2]))>0|!(0|B)&v>>>0>0){C=0,I=0;e:for(;;){if(L=1/(+(v>>>0)+4294967296*+(0|B)),R=+i[d>>3],U=+((B=0|At(0|v,0|B,0|C,0|I))>>>0)+4294967296*+(0|M()),G=+(C>>>0)+4294967296*+(0|I),i[l>>3]=L*(R*U)+L*(+i[w>>3]*G),i[g>>3]=L*(+i[c>>3]*U)+L*(+i[h>>3]*G),0|(B=0|Ae(l,r,f))){m=B;break}k=0|ot(0|(x=0|n[(D=f)>>2]),0|(D=0|n[D+4>>2]),0|e,0|t),y=0|M(),v=0|n[(E=B=a+(k<<3)|0)>>2],E=0|n[E+4>>2];t:do{if(!(0|v)&!(0|E))S=B,T=16;else for(Q=0,_=0;;){if((0|Q)>(0|t)|(0|Q)==(0|t)&_>>>0>e>>>0){m=1;break e}if((0|v)==(0|x)&(0|E)==(0|D))break t;if(k=0|it(0|(B=0|$e(0|k,0|y,1,0)),0|M(),0|e,0|t),y=0|M(),_=0|$e(0|_,0|Q,1,0),Q=0|M(),!(0|(v=0|n[(E=B=a+(k<<3)|0)>>2]))&!(0|(E=0|n[E+4>>2]))){S=B,T=16;break}}}while(0);if(16!=(0|T)||(T=0,!(0|x)&!(0|D))||(n[(_=S)>>2]=x,n[_+4>>2]=D,_=s+(n[o>>2]<<3)|0,n[_>>2]=x,n[_+4>>2]=D,_=0|$e(0|n[(_=o)>>2],0|n[_+4>>2],1,0),x=0|M(),n[(D=o)>>2]=_,n[D+4>>2]=x),C=0|$e(0|C,0|I,1,0),I=0|M(),v=0|n[(B=p)>>2],!((0|(B=0|n[B+4>>2]))>(0|I)|(0|B)==(0|I)&v>>>0>C>>>0)){v=1;break A}}v=0}else v=1}while(0);if(F=F+1|0,!v){T=21;break}if((0|F)>=(0|(B=0|n[A>>2]))){m=0,T=21;break}}return 21==(0|T)?(P=b,0|m):0}function O(A){return(A|=0)>>>0>121?0|(A=0):0|(A=0|n[7696+(28*A|0)+16>>2])}function H(A){return 4==(0|(A|=0))|117==(0|A)|0}function N(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function V(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function X(A,e){return e|=0,(0|n[7696+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|n[7696+(28*A|0)+24>>2])==(0|e))}function j(A,e){return 0|n[848+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function W(A,e){return e|=0,(0|n[848+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|n[848+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[848+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[848+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[848+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[848+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[848+(28*A|0)+24>>2])==(0|e)?6:7)}function Z(A){var e,t,r;return e=(r=+i[(A|=0)+16>>3])-(t=+i[A+24>>3]),+(r<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,r,n=0;return(n=+i[(e|=0)>>3])>=+i[A+8>>3]&&n<=+i[A>>3]?(t=+i[A+16>>3],n=+i[A+24>>3],e=(r=+i[e+8>>3])>=n,A=r<=t&1,t<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function $(A,e){e|=0;var t,r,n,o,s,a=0,l=0,f=0,u=0;return+i[(A|=0)>>3]<+i[e+8>>3]||+i[A+8>>3]>+i[e>>3]?0|(a=0):(n=(l=+i[A+16>>3])<(u=+i[(t=A+24|0)>>3]),f=(s=+i[(a=e+16|0)>>3])<(o=+i[(r=e+24|0)>>3]),e=u-s<o-l,A=n?f|e?1:2:0,e=f?n?1:e?2:1:0,(l=+ue(l,A))<+ue(+i[r>>3],e)||(u=+ue(+i[t>>3],A))>+ue(+i[a>>3],e)?0|(f=0):0|(f=1))}function AA(A,e){e|=0;var t,r,n,o,s,a=0,l=0,f=0,u=0;return+i[(A|=0)>>3]<+i[e>>3]||+i[A+8>>3]>+i[e+8>>3]?0|(a=0):(n=(o=+i[(a=A+16|0)>>3])<(l=+i[A+24>>3]),f=(u=+i[(t=e+16|0)>>3])<(s=+i[(r=e+24|0)>>3]),e=l-u<s-o,A=n?f|e?1:2:0,e=f?n?1:e?2:1:0,(l=+ue(l,A))<=+ue(+i[r>>3],e)?0|(f=(u=+ue(+i[a>>3],A))>=+ue(+i[t>>3],e)):0|(f=0))}function eA(A,e){A|=0,e|=0;var t,r,o,s,a,l=0;o=P,P=P+176|0,n[(r=o)>>2]=4,l=+i[e>>3],i[r+8>>3]=l,s=+i[e+16>>3],i[r+16>>3]=s,i[r+24>>3]=l,l=+i[e+24>>3],i[r+32>>3]=l,a=+i[e+8>>3],i[r+40>>3]=a,i[r+48>>3]=l,i[r+56>>3]=a,i[r+64>>3]=s,t=(e=r+72|0)+96|0;do{n[e>>2]=0,e=e+4|0}while((0|e)<(0|t));gt(0|A,0|r,168),P=o}function tA(A,e,t){A|=0,e|=0,t|=0;var r,s,f,u,c,h,g,d=0,w=0,p=0,b=0,B=0,y=0,E=0;h=P,P=P+288|0,c=h+264|0,b=h+96|0,w=(d=p=h)+96|0;do{n[d>>2]=0,d=d+4|0}while((0|d)<(0|w));return 0|(e=0|ie(e,p))?(P=h,0|(y=e)):(re(p=0|n[(w=p)>>2],w=0|n[w+4>>2],c),ne(p,w,b),u=+ce(c,b+8|0),i[c>>3]=+i[A>>3],i[(w=c+8|0)>>3]=+i[A+16>>3],i[b>>3]=+i[A+8>>3],i[(p=b+8|0)>>3]=+i[A+24>>3],s=+ce(c,b),E=+i[w>>3]-+i[p>>3],f=+l(+E),g=+i[c>>3]-+i[b>>3],r=+l(+g),!(0==E|0==g)&&(E=+ut(+f,+r),E=+m(+s*s/+ct(+E/+ct(+f,+r),3)/(u*(2.59807621135*u)*.8)),i[o>>3]=E,B=~~E>>>0,y=+l(E)>=1?E>0?~~+v(+a(E/4294967296),4294967295)>>>0:~~+m((E-+(~~E>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2])?(b=!(0|B)&!(0|y),n[(e=t)>>2]=b?1:B,n[e+4>>2]=b?0:y,e=0):e=1,P=h,0|(y=e))}function rA(A,e,t,r){A|=0,e|=0,t|=0,r|=0;var s,f,u,c,h=0,g=0,d=0;c=P,P=P+288|0,f=c+264|0,u=c+96|0,s=(h=g=c)+96|0;do{n[h>>2]=0,h=h+4|0}while((0|h)<(0|s));return 0|(t=0|ie(t,g))?(P=c,0|(r=t)):(re(h=0|n[(t=g)>>2],t=0|n[t+4>>2],f),ne(h,t,u),d=+ce(f,u+8|0),d=+m(+ +ce(A,e)/(2*d)),i[o>>3]=d,t=~~d>>>0,h=+l(d)>=1?d>0?~~+v(+a(d/4294967296),4294967295)>>>0:~~+m((d-+(~~d>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2]?(g=!(0|t)&!(0|h),n[r>>2]=g?1:t,n[r+4>>2]=g?0:h,P=c,0|(r=0)):(P=c,0|(r=1)))}function nA(A,e,t,r){e|=0,t|=0,r|=0,n[(A|=0)>>2]=e,n[A+4>>2]=t,n[A+8>>2]=r}function iA(A,e){A|=0;var t,r,o,s,a=0,f=0,u=0,c=0,h=0,g=0,d=0;n[(s=(e|=0)+8|0)>>2]=0,r=+i[A>>3],c=+l(+r),o=+i[A+8>>3],c+=.5*(h=1.1547005383792515*+l(+o)),c-=+(0|(a=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=a,h<.5*(c+1)){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,n[e+4>>2]=A,d<=h&h<2*c){a=a+1|0,n[e>>2]=a;break}n[e>>2]=a;break}if(!(c<.6666666666666666)){if(a=a+1|0,n[e>>2]=a,h<.5*c){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=a;break}}else A=A+1|0,n[e+4>>2]=A;a=a+1|0,n[e>>2]=a}while(0);do{if(r<0){if(1&A){a=~~(+(0|a)-(2*(+((g=0|At(0|a,((0|a)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|M()))+1)),n[e>>2]=a;break}a=~~(+(0|a)-2*(+((g=0|At(0|a,((0|a)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|M()))),n[e>>2]=a;break}}while(0);g=e+4|0,o<0&&(a=a-((1|A<<1)/2|0)|0,n[e>>2]=a,A=0-A|0,n[g>>2]=A),f=A-a|0,(0|a)<0?(u=0-a|0,n[g>>2]=f,n[s>>2]=u,n[e>>2]=0,A=f,a=0):u=0,(0|A)<0&&(a=a-A|0,n[e>>2]=a,u=u-A|0,n[s>>2]=u,n[g>>2]=0,A=0),t=a-u|0,f=A-u|0,(0|u)<0&&(n[e>>2]=t,n[g>>2]=f,n[s>>2]=0,A=f,a=t,u=0),(0|(f=(0|u)<(0|(f=(0|A)<(0|a)?A:a))?u:f))<=0||(n[e>>2]=a-f,n[g>>2]=A-f,n[s>>2]=u-f)}function oA(A){var e,t=0,r=0,i=0,o=0,s=0;t=0|n[(A|=0)>>2],r=0|n[(e=A+4|0)>>2],(0|t)<0&&(r=r-t|0,n[e>>2]=r,n[(s=A+8|0)>>2]=(0|n[s>>2])-t,n[A>>2]=0,t=0),(0|r)<0?(t=t-r|0,n[A>>2]=t,o=(0|n[(s=A+8|0)>>2])-r|0,n[s>>2]=o,n[e>>2]=0,r=0):(s=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(t=t-o|0,n[A>>2]=t,r=r-o|0,n[e>>2]=r,n[s>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|r)<(0|t)?r:t))?o:i))<=0||(n[A>>2]=t-i,n[e>>2]=r-i,n[s>>2]=o-i)}function sA(A,e){e|=0;var t,r;r=0|n[(A|=0)+8>>2],t=+((0|n[A+4>>2])-r|0),i[e>>3]=+((0|n[A>>2])-r|0)-.5*t,i[e+8>>3]=.8660254037844386*t}function aA(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[e>>2])+(0|n[A>>2]),n[t+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[t+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function lA(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[A>>2])-(0|n[e>>2]),n[t+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[t+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function fA(A,e){e|=0;var t,r=0;r=0|B(0|n[(A|=0)>>2],e),n[A>>2]=r,t=0|B(0|n[(r=A+4|0)>>2],e),n[r>>2]=t,e=0|B(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function uA(A){var e,t,r=0,i=0,o=0,s=0,a=0;a=(0|(t=0|n[(A|=0)>>2]))<0,A=(A=(i=(0|(s=((e=(0|(o=(0|n[A+4>>2])-(a?t:0)|0))<0)?0-o|0:0)+((0|n[A+8>>2])-(a?t:0))|0))<0)?0:s)-((o=(0|(i=(0|A)<(0|(i=(0|(r=(e?0:o)-(i?s:0)|0))<(0|(s=(a?0:t)-(e?o:0)-(i?s:0)|0))?r:s))?A:i))>0)?i:0)|0,r=r-(o?i:0)|0;A:do{switch(s-(o?i:0)|0){case 0:switch(0|r){case 0:return 0|(a=0|A?1==(0|A)?1:7:0);case 1:return 0|(a=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|r){case 0:return 0|(a=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|(a=7)}function cA(A){var e,t,r=0,i=0,o=0,s=0,a=0,l=0,f=0;if(l=0|n[(t=(A|=0)+8|0)>>2],(e=(0|n[A>>2])-l|0)>>>0>715827881|(l=(0|n[(f=A+4|0)>>2])-l|0)>>>0>715827881){if(s=2147483647-e|0,a=-2147483648-e|0,(o=(0|e)>0)?(0|s)<(0|e):(0|a)>(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|l)>0?(2147483647-l|0)<(0|l):(-2147483648-l|0)>(0|l))return 0|(f=1);if(r=3*e|0,i=l<<1,(o?(0|s)<(0|i):(0|a)>(0|i))||((0|e)>-1?(-2147483648|r)>=(0|l):(-2147483648^r)<(0|l)))return 0|(f=1)}else i=l<<1,r=3*e|0;return o=0|Ze(.14285714285714285*+(r-l|0)),n[A>>2]=o,s=0|Ze(.14285714285714285*+(i+e|0)),n[f>>2]=s,n[t>>2]=0,r=(i=(0|s)<(0|o))?o:s,(0|(i=i?s:o))<0&&((-2147483648==(0|i)||((0|r)>0?(2147483647-r|0)<(0|i):(-2147483648-r|0)>(0|i)))&&Q(27795,26892,354,26903),((0|r)>-1?(-2147483648|r)>=(0|i):(-2147483648^r)<(0|i))&&Q(27795,26892,354,26903)),r=s-o|0,(0|o)<0?(i=0-o|0,n[f>>2]=r,n[t>>2]=i,n[A>>2]=0,o=0):(r=s,i=0),(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[t>>2]=i,n[f>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[f>>2]=s,n[t>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[f>>2]=r-o,n[t>>2]=i-o),0|(f=0)}function hA(A){var e,t=0,r=0,i=0,o=0,s=0,a=0,l=0;if(o=0|n[(e=(A|=0)+8|0)>>2],(s=(0|n[A>>2])-o|0)>>>0>715827881|(o=(0|n[(a=A+4|0)>>2])-o|0)>>>0>715827881){if((r=(0|s)>0)?(2147483647-s|0)<(0|s):(-2147483648-s|0)>(0|s))return 0|(a=1);if(t=s<<1,(i=(0|o)>0)?(2147483647-o|0)<(0|o):(-2147483648-o|0)>(0|o))return 0|(a=1);if(l=o<<1,i?(2147483647-l|0)<(0|o):(-2147483648-l|0)>(0|o))return 0|(l=1);if(r?(2147483647-t|0)<(0|o):(-2147483648-t|0)>(0|o))return 0|(l=1);if(r=3*o|0,(0|o)>-1?(-2147483648|r)>=(0|s):(-2147483648^r)<(0|s))return 0|(l=1)}else r=3*o|0,t=s<<1;return i=0|Ze(.14285714285714285*+(t+o|0)),n[A>>2]=i,o=0|Ze(.14285714285714285*+(r-s|0)),n[a>>2]=o,n[e>>2]=0,t=(r=(0|o)<(0|i))?i:o,(0|(r=r?o:i))<0&&((-2147483648==(0|r)||((0|t)>0?(2147483647-t|0)<(0|r):(-2147483648-t|0)>(0|r)))&&Q(27795,26892,402,26917),((0|t)>-1?(-2147483648|t)>=(0|r):(-2147483648^t)<(0|r))&&Q(27795,26892,402,26917)),t=o-i|0,(0|i)<0?(r=0-i|0,n[a>>2]=t,n[e>>2]=r,n[A>>2]=0,i=0):(t=o,r=0),(0|t)<0&&(i=i-t|0,n[A>>2]=i,r=r-t|0,n[e>>2]=r,n[a>>2]=0,t=0),s=i-r|0,o=t-r|0,(0|r)<0?(n[A>>2]=s,n[a>>2]=o,n[e>>2]=0,t=o,o=s,r=0):o=i,(0|(i=(0|r)<(0|(i=(0|t)<(0|o)?t:o))?r:i))<=0||(n[A>>2]=o-i,n[a>>2]=t-i,n[e>>2]=r-i),0|(l=0)}function gA(A){var e,t,r=0,i=0,o=0,s=0,a=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|Ze(.14285714285714285*+((3*(r=(0|n[A>>2])-i|0)|0)-(i=(0|n[(t=A+4|0)>>2])-i|0)|0)),n[A>>2]=o,r=0|Ze(.14285714285714285*+((i<<1)+r|0)),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(a=0-o|0,n[t>>2]=i,n[e>>2]=a,n[A>>2]=0,r=i,o=0,i=a):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=s,n[e>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=r-o,n[e>>2]=i-o)}function dA(A){var e,t,r=0,i=0,o=0,s=0,a=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|Ze(.14285714285714285*+(((r=(0|n[A>>2])-i|0)<<1)+(i=(0|n[(t=A+4|0)>>2])-i|0)|0)),n[A>>2]=o,r=0|Ze(.14285714285714285*+((3*i|0)-r|0)),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(a=0-o|0,n[t>>2]=i,n[e>>2]=a,n[A>>2]=0,r=i,o=0,i=a):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=s,n[e>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=r-o,n[e>>2]=i-o)}function wA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],s=0|n[(r=A+8|0)>>2],a=o+(3*i|0)|0,n[A>>2]=a,o=s+(3*o|0)|0,n[t>>2]=o,i=(3*s|0)+i|0,n[r>>2]=i,s=o-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=s,n[r>>2]=i,n[A>>2]=0,o=s,s=0):s=a,(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function pA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=(3*(i=0|n[(t=A+4|0)>>2])|0)+a|0,a=(o=0|n[(r=A+8|0)>>2])+(3*a|0)|0,n[A>>2]=a,n[t>>2]=s,i=(3*o|0)+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):o=s,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function bA(A,e){A|=0;var t,r,i,o=0,s=0,a=0;((e|=0)+-1|0)>>>0>=6||(a=(0|n[15440+(12*e|0)>>2])+(0|n[A>>2])|0,n[A>>2]=a,i=A+4|0,s=(0|n[15440+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[i>>2]=s,r=A+8|0,e=(0|n[15440+(12*e|0)+8>>2])+(0|n[r>>2])|0,n[r>>2]=e,o=s-a|0,(0|a)<0?(e=e-a|0,n[i>>2]=o,n[r>>2]=e,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,e=e-o|0,n[r>>2]=e,n[i>>2]=0,o=0),t=s-e|0,a=o-e|0,(0|e)<0?(n[A>>2]=t,n[i>>2]=a,n[r>>2]=0,s=t,e=0):a=o,(0|(o=(0|e)<(0|(o=(0|a)<(0|s)?a:s))?e:o))<=0||(n[A>>2]=s-o,n[i>>2]=a-o,n[r>>2]=e-o))}function mA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=(i=0|n[(t=A+4|0)>>2])+a|0,a=(o=0|n[(r=A+8|0)>>2])+a|0,n[A>>2]=a,n[t>>2]=s,i=o+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function BA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],s=0|n[(t=A+4|0)>>2],o=0|n[(r=A+8|0)>>2],a=s+i|0,n[A>>2]=a,s=o+s|0,n[t>>2]=s,i=o+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function vA(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 yA(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,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],s=0|n[(r=A+8|0)>>2],a=o+(i<<1)|0,n[A>>2]=a,o=s+(o<<1)|0,n[t>>2]=o,i=(s<<1)+i|0,n[r>>2]=i,s=o-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=s,n[r>>2]=i,n[A>>2]=0,o=s,s=0):s=a,(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function kA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=((i=0|n[(t=A+4|0)>>2])<<1)+a|0,a=(o=0|n[(r=A+8|0)>>2])+(a<<1)|0,n[A>>2]=a,n[t>>2]=s,i=(o<<1)+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):o=s,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function MA(A,e){e|=0;var t,r,i,o=0,s=0,a=0;return i=(0|(r=(0|n[(A|=0)>>2])-(0|n[e>>2])|0))<0,t=(0|(s=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?r:0)|0))<0,e=(e=(A=(0|(a=(i?0-r|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+(t?0-s|0:0)|0))<0)?0:a)-((s=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:s)-(A?a:0)|0))<(0|(a=(i?0:r)-(t?s:0)-(A?a:0)|0))?o:a))?e:A))>0)?A:0)|0,o=o-(s?A:0)|0,0|((0|(A=(0|(A=a-(s?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 QA(A,e){e|=0;var t;t=0|n[(A|=0)+8>>2],n[e>>2]=(0|n[A>>2])-t,n[e+4>>2]=(0|n[A+4>>2])-t}function _A(A,e){e|=0;var t,r,i,o=0,s=0,a=0;if(s=0|n[(A|=0)>>2],n[e>>2]=s,a=0|n[A+4>>2],n[(r=e+4|0)>>2]=a,n[(i=e+8|0)>>2]=0,A=(o=(0|a)<(0|s))?s:a,(0|(o=o?a:s))<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=a-s|0,(0|s)<0?(o=0-s|0,n[r>>2]=A,n[i>>2]=o,n[e>>2]=0,s=0):(A=a,o=0),(0|A)<0&&(s=s-A|0,n[e>>2]=s,o=o-A|0,n[i>>2]=o,n[r>>2]=0,A=0),t=s-o|0,a=A-o|0,(0|o)<0?(n[e>>2]=t,n[r>>2]=a,n[i>>2]=0,A=a,a=t,o=0):a=s,(0|(s=(0|o)<(0|(s=(0|A)<(0|a)?A:a))?o:s))<=0||(n[e>>2]=a-s,n[r>>2]=A-s,n[i>>2]=o-s),0|(e=0)}function xA(A){var e,t,r,i;t=(i=0|n[(e=(A|=0)+8|0)>>2])-(0|n[A>>2])|0,n[A>>2]=t,A=(0|n[(r=A+4|0)>>2])-i|0,n[r>>2]=A,n[e>>2]=0-(A+t)}function DA(A){var e,t,r=0,i=0,o=0,s=0,a=0;r=0-(i=0|n[(A|=0)>>2])|0,n[A>>2]=r,n[(e=A+8|0)>>2]=0,s=(o=0|n[(t=A+4|0)>>2])+i|0,(0|i)>0?(n[t>>2]=s,n[e>>2]=i,n[A>>2]=0,r=0,o=s):i=0,(0|o)<0?(a=r-o|0,n[A>>2]=a,i=i-o|0,n[e>>2]=i,n[t>>2]=0,s=a-i|0,r=0-i|0,(0|i)<0?(n[A>>2]=s,n[t>>2]=r,n[e>>2]=0,o=r,i=0):(o=0,s=a)):s=r,(0|(r=(0|i)<(0|(r=(0|o)<(0|s)?o:s))?i:r))<=0||(n[A>>2]=s-r,n[t>>2]=o-r,n[e>>2]=i-r)}function CA(A,e,t){t|=0;var r,i,o=0,s=0;return i=P,P=P+16|0,r=i,s=-2130706433&(e|=0)|134217728,!0&268435456==(2013265920&e)?(o=0|at(0|(A|=0),0|e,56),M(),o=0|function(A,e,t){A|=0,e|=0,t|=0;var r=0,i=0,o=0;if(o=P,P=P+16|0,i=o,r=0|VA(A,e),(t+-1|0)>>>0>5)return P=o,0|(i=-1);if(r=!!(0|r),1==(0|t)&r)return P=o,0|(i=-1);do{if(!(0|Ye(A,e,i))){if(r){r=(5+(0|n[26352+(t<<2)>>2])-(0|n[i>>2])|0)%5|0;break}r=(6+(0|n[26384+(t<<2)>>2])-(0|n[i>>2])|0)%6|0;break}r=-1}while(0);return i=r,P=o,0|i}(A,s,7&o),-1==(0|o)?(n[t>>2]=0,P=i,0|(s=6)):(0|te(A,s,r)&&Q(27795,26932,282,26947),e=0|at(0|A,0|e,52),M(),e&=15,0|VA(A,s)?SA(r,e,o,2,t):UA(r,e,o,2,t),P=i,0|(s=0))):(P=i,0|(s=6))}function IA(A,e,t,r){e|=0,r|=0;var o,s=0,a=0,l=0,f=0;if(o=P,P=P+16|0,function(A,e,t){A|=0,e|=0,t|=0;var r=0,o=0,s=0;s=P,P=P+32|0,o=s,function(A,e){A|=0,e|=0;var t=0,r=0,n=0;t=+i[A>>3],r=+c(+t),t=+h(+t),i[e+16>>3]=t,t=+i[A+8>>3],n=r*+c(+t),i[e>>3]=n,t=r*+h(+t),i[e+8>>3]=t}(A,o),n[e>>2]=0,i[t>>3]=5,r=+Re(16400,o),r<+i[t>>3]&&(n[e>>2]=0,i[t>>3]=r);r=+Re(16424,o),r<+i[t>>3]&&(n[e>>2]=1,i[t>>3]=r);r=+Re(16448,o),r<+i[t>>3]&&(n[e>>2]=2,i[t>>3]=r);r=+Re(16472,o),r<+i[t>>3]&&(n[e>>2]=3,i[t>>3]=r);r=+Re(16496,o),r<+i[t>>3]&&(n[e>>2]=4,i[t>>3]=r);r=+Re(16520,o),r<+i[t>>3]&&(n[e>>2]=5,i[t>>3]=r);r=+Re(16544,o),r<+i[t>>3]&&(n[e>>2]=6,i[t>>3]=r);r=+Re(16568,o),r<+i[t>>3]&&(n[e>>2]=7,i[t>>3]=r);r=+Re(16592,o),r<+i[t>>3]&&(n[e>>2]=8,i[t>>3]=r);r=+Re(16616,o),r<+i[t>>3]&&(n[e>>2]=9,i[t>>3]=r);r=+Re(16640,o),r<+i[t>>3]&&(n[e>>2]=10,i[t>>3]=r);r=+Re(16664,o),r<+i[t>>3]&&(n[e>>2]=11,i[t>>3]=r);r=+Re(16688,o),r<+i[t>>3]&&(n[e>>2]=12,i[t>>3]=r);r=+Re(16712,o),r<+i[t>>3]&&(n[e>>2]=13,i[t>>3]=r);r=+Re(16736,o),r<+i[t>>3]&&(n[e>>2]=14,i[t>>3]=r);r=+Re(16760,o),r<+i[t>>3]&&(n[e>>2]=15,i[t>>3]=r);r=+Re(16784,o),r<+i[t>>3]&&(n[e>>2]=16,i[t>>3]=r);r=+Re(16808,o),r<+i[t>>3]&&(n[e>>2]=17,i[t>>3]=r);r=+Re(16832,o),r<+i[t>>3]&&(n[e>>2]=18,i[t>>3]=r);if(r=+Re(16856,o),!(r<+i[t>>3]))return void(P=s);n[e>>2]=19,i[t>>3]=r,P=s}(A|=0,t|=0,f=o),(a=+d(+(1-.5*+i[f>>3])))<1e-16)return n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,n[r+12>>2]=0,void(P=o);if(f=0|n[t>>2],s=+le((s=+i[15920+(24*f|0)>>3])-+le(+function(A,e){A|=0,e|=0;var t=0,r=0,n=0,o=0,s=0;return o=+i[e>>3],r=+c(+o),n=+i[e+8>>3]-+i[A+8>>3],s=r*+h(+n),t=+i[A>>3],+ +b(+s,+(+h(+o)*+c(+t)-+c(+n)*(r*+h(+t))))}(15600+(f<<4)|0,A))),l=0|$A(e)?+le(s+-.3334731722518321):s,s=2.618033988749896*+g(+a),(0|e)>0){A=0;do{s*=2.6457513110645907,A=A+1|0}while((0|A)!=(0|e))}a=+c(+l)*s,i[r>>3]=a,l=+h(+l)*s,i[r+8>>3]=l,P=o}function PA(A,e,t,r,o){e|=0,t|=0,r|=0,o|=0;var s,a=0,u=0;if(a=+function(A){A|=0;var e=0,t=0;return t=+i[A>>3],e=+i[A+8>>3],+ +f(+(t*t+e*e))}(A|=0),a<1e-16)return e=15600+(e<<4)|0,n[o>>2]=n[e>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(u=+b(+ +i[A+8>>3],+ +i[A>>3]),(0|t)>0){A=0;do{a*=.37796447300922725,A=A+1|0}while((0|A)!=(0|t))}s=.3333333333333333*a,r?(t=!(0|$A(t)),a=+p(.381966011250105*(t?s:.37796447300922725*s))):(a=+p(.381966011250105*a),0|$A(t)&&(u=+le(u+.3334731722518321))),function(A,e,t,r){A|=0,e=+e,t=+t,r|=0;var o=0,s=0,a=0,f=0;if(t<1e-16)return n[r>>2]=n[A>>2],n[r+4>>2]=n[A+4>>2],n[r+8>>2]=n[A+8>>2],void(n[r+12>>2]=n[A+12>>2]);s=e<0?e+6.283185307179586:e,s=e>=6.283185307179586?s+-6.283185307179586:s;do{if(!(s<1e-16)){if(o=+l(+(s+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=t,i[r>>3]=e,o=r;break}if(a=+c(+t),t=+h(+t),e=a*+h(+e)+ +c(+s)*(t*+c(+e)),e=+w(+((e=e>1?1:e)<-1?-1:e)),i[r>>3]=e,+l(+(e+-1.5707963267948966))<1e-16)return i[r>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+l(+(e+1.5707963267948966))<1e-16)return i[r>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(f=1/+c(+e),s=t*+h(+s)*f,t=+i[A>>3],e=f*((a-+h(+e)*+h(+t))/+c(+t)),a=s>1?1:s,e=e>1?1:e,(e=+i[A+8>>3]+ +b(+(a<-1?-1:a),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[r+8>>3]=e)}e=+i[A>>3]+t,i[r>>3]=e,o=r}while(0);if(+l(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+l(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(e=+i[A+8>>3],e>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[r+8>>3]=e}(15600+(e<<4)|0,+le(+i[15920+(24*e|0)>>3]-u),a,o)}function FA(A,e,t){e|=0,t|=0;var r,i;r=P,P=P+16|0,sA((A|=0)+4|0,i=r),PA(i,0|n[A>>2],e,0,t),P=r}function SA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var s,a,l,f,u,c,h,g,d,w,p,b,m,B,v,y,E,k,M,_,x,D,C=0,I=0,F=0,S=0,T=0,G=0;if(D=P,P=P+272|0,S=D+240|0,M=D,_=D+224|0,x=D+208|0,p=D+176|0,b=D+160|0,m=D+192|0,B=D+144|0,v=D+128|0,y=D+112|0,E=D+96|0,k=D+80|0,n[(C=D+256|0)>>2]=e,n[S>>2]=n[A>>2],n[S+4>>2]=n[A+4>>2],n[S+8>>2]=n[A+8>>2],n[S+12>>2]=n[A+12>>2],TA(S,C,M),n[o>>2]=0,(0|(S=r+t+(5==(0|r)&1)|0))<=(0|t))P=D;else{a=_+4|0,l=p+4|0,f=t+5|0,u=16880+((s=0|n[C>>2])<<2)|0,c=16960+(s<<2)|0,h=v+8|0,g=y+8|0,d=E+8|0,w=x+4|0,F=t;A:for(;;){I=M+((0|F)%5<<4)|0,n[x>>2]=n[I>>2],n[x+4>>2]=n[I+4>>2],n[x+8>>2]=n[I+8>>2],n[x+12>>2]=n[I+12>>2];do{}while(2==(0|GA(x,s,0,1)));if((0|F)>(0|t)&!!(0|$A(e))){if(n[p>>2]=n[x>>2],n[p+4>>2]=n[x+4>>2],n[p+8>>2]=n[x+8>>2],n[p+12>>2]=n[x+12>>2],sA(a,b),r=0|n[p>>2],C=0|n[17040+(80*r|0)+(n[_>>2]<<2)>>2],n[p>>2]=n[18640+(80*r|0)+(20*C|0)>>2],(0|(I=0|n[18640+(80*r|0)+(20*C|0)+16>>2]))>0){A=0;do{mA(l),A=A+1|0}while((0|A)<(0|I))}switch(I=18640+(80*r|0)+(20*C|0)+4|0,n[m>>2]=n[I>>2],n[m+4>>2]=n[I+4>>2],n[m+8>>2]=n[I+8>>2],fA(m,3*(0|n[u>>2])|0),aA(l,m,l),oA(l),sA(l,B),T=+(0|n[c>>2]),i[v>>3]=3*T,i[h>>3]=0,G=-1.5*T,i[y>>3]=G,i[g>>3]=2.598076211353316*T,i[E>>3]=G,i[d>>3]=-2.598076211353316*T,0|n[17040+(80*(0|n[p>>2])|0)+(n[x>>2]<<2)>>2]){case 1:A=y,r=v;break;case 3:A=E,r=y;break;case 2:A=v,r=E;break;default:A=12;break A}Le(b,B,r,A,k),PA(k,0|n[p>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|F)<(0|f)&&(sA(w,p),PA(p,0|n[x>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[_>>2]=n[x>>2],n[_+4>>2]=n[x+4>>2],n[_+8>>2]=n[x+8>>2],n[_+12>>2]=n[x+12>>2],(0|(F=F+1|0))>=(0|S)){A=3;break}}3!=(0|A)?12==(0|A)&&Q(26970,27017,572,27027):P=D}}function TA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,s=0,a=0,l=0;r=P,P=P+128|0,o=r,a=20240,l=(s=i=r+64|0)+60|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));a=20304,l=(s=o)+60|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));i=(l=!(0|$A(0|n[e>>2])))?i:o,EA(o=A+4|0),kA(o),0|$A(0|n[e>>2])&&(pA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],aA(o,i,e=t+4|0),oA(e),n[t+16>>2]=n[A>>2],aA(o,i+12|0,e=t+20|0),oA(e),n[t+32>>2]=n[A>>2],aA(o,i+24|0,e=t+36|0),oA(e),n[t+48>>2]=n[A>>2],aA(o,i+36|0,e=t+52|0),oA(e),n[t+64>>2]=n[A>>2],aA(o,i+48|0,t=t+68|0),oA(t),P=r}function GA(A,e,t,r){t|=0,r|=0;var i,o,s,a,l,f,u=0,c=0,h=0,g=0,d=0;if(f=P,P=P+32|0,l=f+12|0,o=f,d=(A|=0)+4|0,g=0|n[16960+((e|=0)<<2)>>2],g=(a=!!(0|r))?3*g|0:g,u=0|n[d>>2],i=0|n[(s=A+8|0)>>2],a){if((0|(u=i+u+(r=0|n[(c=A+12|0)>>2])|0))==(0|g))return P=f,0|(d=1);h=c}else u=i+u+(r=0|n[(h=A+12|0)>>2])|0;if((0|u)<=(0|g))return P=f,0|(d=0);do{if((0|r)>0){if(r=0|n[A>>2],(0|i)>0){c=18640+(80*r|0)+60|0,r=A;break}r=18640+(80*r|0)+40|0,t?(nA(l,g,0,0),lA(d,l,o),BA(o),aA(o,l,d),c=r,r=A):(c=r,r=A)}else c=18640+(80*(0|n[A>>2])|0)+20|0,r=A}while(0);if(n[r>>2]=n[c>>2],(0|n[(u=c+16|0)>>2])>0){r=0;do{mA(d),r=r+1|0}while((0|r)<(0|n[u>>2]))}return A=c+4|0,n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],e=0|n[16880+(e<<2)>>2],fA(l,a?3*e|0:e),aA(d,l,d),oA(d),r=a&&((0|n[s>>2])+(0|n[d>>2])+(0|n[h>>2])|0)==(0|g)?1:2,P=f,0|(d=r)}function LA(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,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var s,a,l,f,u,c,h,g,d,w,p,b,m,B,v,y,E,k,M=0,_=0,x=0,D=0,C=0;if(k=P,P=P+240|0,B=k+208|0,v=k,y=k+192|0,E=k+176|0,d=k+160|0,w=k+144|0,p=k+128|0,b=k+112|0,m=k+96|0,n[(M=k+224|0)>>2]=e,n[B>>2]=n[A>>2],n[B+4>>2]=n[A+4>>2],n[B+8>>2]=n[A+8>>2],n[B+12>>2]=n[A+12>>2],RA(B,M,v),n[o>>2]=0,(0|(g=r+t+(6==(0|r)&1)|0))<=(0|t))P=k;else{a=t+6|0,l=16960+((s=0|n[M>>2])<<2)|0,f=w+8|0,u=p+8|0,c=b+8|0,h=y+4|0,_=0,x=t,r=-1;A:for(;;){if(A=v+((M=(0|x)%6|0)<<4)|0,n[y>>2]=n[A>>2],n[y+4>>2]=n[A+4>>2],n[y+8>>2]=n[A+8>>2],n[y+12>>2]=n[A+12>>2],A=_,_=0|GA(y,s,0,1),(0|x)>(0|t)&!!(0|$A(e))&&(1!=(0|A)&&(0|n[y>>2])!=(0|r))){switch(sA(v+((M+5|0)%6<<4)+4|0,E),sA(v+(M<<4)+4|0,d),D=+(0|n[l>>2]),i[w>>3]=3*D,i[f>>3]=0,C=-1.5*D,i[p>>3]=C,i[u>>3]=2.598076211353316*D,i[b>>3]=C,i[c>>3]=-2.598076211353316*D,M=0|n[B>>2],0|n[17040+(80*M|0)+(((0|r)==(0|M)?n[y>>2]:r)<<2)>>2]){case 1:A=p,r=w;break;case 3:A=b,r=p;break;case 2:A=w,r=b;break;default:A=8;break A}Le(E,d,r,A,m),0|Ue(E,m)||0|Ue(d,m)||(PA(m,0|n[B>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|x)<(0|a)&&(sA(h,E),PA(E,0|n[y>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(x=x+1|0))>=(0|g)){A=3;break}r=0|n[y>>2]}3!=(0|A)?8==(0|A)&&Q(27054,27017,737,27099):P=k}}function RA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,s=0,a=0,l=0;r=P,P=P+160|0,o=r,a=20368,l=(s=i=r+80|0)+72|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));a=20448,l=(s=o)+72|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));i=(l=!(0|$A(0|n[e>>2])))?i:o,EA(o=A+4|0),kA(o),0|$A(0|n[e>>2])&&(pA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],aA(o,i,e=t+4|0),oA(e),n[t+16>>2]=n[A>>2],aA(o,i+12|0,e=t+20|0),oA(e),n[t+32>>2]=n[A>>2],aA(o,i+24|0,e=t+36|0),oA(e),n[t+48>>2]=n[A>>2],aA(o,i+36|0,e=t+52|0),oA(e),n[t+64>>2]=n[A>>2],aA(o,i+48|0,e=t+68|0),oA(e),n[t+80>>2]=n[A>>2],aA(o,i+60|0,t=t+84|0),oA(t),P=r}function YA(A,e){return e=0|at(0|(A|=0),0|(e|=0),45),M(),127&e}function zA(A,e){A|=0;var t=0,n=0,i=0,o=0;return!0&134217728==(-16777216&(e|=0))?(n=0|at(0|A,0|e,52),M(),n&=15,t=0|at(0|A,0|e,45),M(),(t&=127)>>>0>121?0|(A=0):!(613566756&(o=0|lt(0|(i=0|at(0|A,0|e,0|(o=3*(15^n)|0))),0|M(),0|o))&(0|At(-1227133514,-1171,0|o,0|(i=0|M()))))&!(4681&i&M())&&15==(0|n)|!(0|(o=0|at(0|(0|lt(0|~A,0|~e,0|(o=19+(3*n|0)|0))),0|M(),0|o)))&!(0|M())?0|r[20528+t|0]?!(0|A)&!(0|(e&=8191))?0|(o=1):(o=0|ft(0|A,0|e),M(),0|!!((63-o|0)%3|0)):0|(o=1):0|(o=0)):0|(A=0)}function OA(A,e,t,r){A|=0,t|=0,r|=0;var i=0,o=0,s=0,a=0;if(i=0|lt(0|(e|=0),0,52),o=0|M(),t=0|lt(0|t,0,45),t=0|o|M()|134225919,(0|e)<1)return o=-1,r=t,n[(e=A)>>2]=o,void(n[(A=A+4|0)>>2]=r);for(o=1,i=-1;a=0|lt(7,0,0|(s=3*(15-o|0)|0)),t&=~M(),i=i&~a|(s=0|lt(0|r,0,0|s)),t=0|t|M(),(0|o)!=(0|e);)o=o+1|0;n[(s=a=A)>>2]=i,n[(a=a+4|0)>>2]=t}function HA(A,e,t,r){t|=0,r|=0;var i=0,o=0;if(o=0|at(0|(A|=0),0|(e|=0),52),M(),t>>>0>15)return 0|(r=4);if((0|(o&=15))<(0|t))return 0|(r=12);if((0|o)==(0|t))return n[r>>2]=A,n[r+4>>2]=e,0|(r=0);if(i=0|lt(0|t,0,52),i|=A,A=M()|-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|M()|A}while((0|t)<(0|o));return n[r>>2]=i,n[r+4>>2]=A,0|(r=0)}function NA(A,e,t,r){t|=0,r|=0;var i=0,o=0,s=0;if(o=0|at(0|(A|=0),0|(e|=0),52),M(),!((0|t)<16&(0|(o&=15))<=(0|t)))return 0|(r=4);i=t-o|0,t=0|at(0|A,0|e,45),M();A:do{if(0|O(127&t)){e:do{if(0|o){for(t=1;!((s=0|lt(7,0,3*(15-t|0)|0))&A|0)&!((0|M())&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|M();break A}}while(0);t=0|$e(0|(t=0|nt(0|(t=0|ke(7,0,i,((0|i)<0)<<31>>31)),0|M(),5,0)),0|M(),-5,-1),t=0|$e(0|(t=0|rt(0|t,0|M(),6,0)),0|M(),1,0),i=0|M()}else t=0|ke(7,0,i,((0|i)<0)<<31>>31),i=0|M()}while(0);return n[(s=r)>>2]=t,n[s+4>>2]=i,0|(s=0)}function VA(A,e){var t=0,r=0,n=0;if(n=0|at(0|(A|=0),0|(e|=0),45),M(),!(0|O(127&n)))return 0|(n=0);n=0|at(0|A,0|e,52),M(),n&=15;A:do{if(n)for(r=1;;){if(t=0|at(0|A,0|e,3*(15-r|0)|0),M(),0|(t&=7))break A;if(!(r>>>0<n>>>0)){t=0;break}r=r+1|0}else t=0}while(0);return 0|(n=1&!(0|t))}function XA(A,e,t,r){return A|=0,e|=0,(0|(r|=0))<(0|(t|=0))?(r=A,k(0|(t=e)),0|r):(t=0|lt(-1,-1,3+(3*(r-t|0)|0)|0),r=0|lt(0|~t,0|~M(),3*(15-r|0)|0),t=~M()&e,r=~r&A,k(0|t),0|r)}function jA(A,e,t,r){t|=0,r|=0;var i=0;return i=0|at(0|(A|=0),0|(e|=0),52),M(),(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|~M(),3*(15-t|0)|0),e=~M()&e,A&=~i),i=0|lt(0|t,0,52),t=-15728641&e|M(),n[r>>2]=A|i,n[r+4>>2]=t,0|(r=0)):0|(r=4)}function WA(A,e){var t=0,r=0,n=0;if(n=0|at(0|(A|=0),0|(e|=0),52),M(),!(n&=15))return 0|(n=0);for(r=1;;){if(t=0|at(0|A,0|e,3*(15-r|0)|0),M(),0|(t&=7)){r=5;break}if(!(r>>>0<n>>>0)){t=0,r=5;break}r=r+1|0}return 5==(0|r)?0|t:0}function ZA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0,a=0;if(a=0|at(0|(A|=0),0|(e|=0),52),M(),!(a&=15))return a=A,k(0|(s=e)),0|a;for(s=1,t=0;;){r=0|lt(7,0,0|(i=3*(15-s|0)|0)),n=0|M(),o=0|at(0|A,0|e,0|i),M(),A=(i=0|lt(0|vA(7&o),0,0|i))|A&~r,e=(o=0|M())|e&~n;A:do{if(!t)if(!(i&r|0)&!(o&n|0))t=0;else if(r=0|at(0|A,0|e,52),M(),r&=15){t=1;e:for(;;){switch(o=0|at(0|A,0|e,3*(15-t|0)|0),M(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(n=0|at(0|A,0|e,0|(o=3*(15-t|0)|0)),M(),i=0|lt(7,0,0|o),e&=~M(),A=A&~i|(o=0|lt(0|vA(7&n),0,0|o)),e=0|e|M(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(s>>>0<a>>>0))break;s=s+1|0}return k(0|e),0|A}function JA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|at(0|(A|=0),0|(e|=0),52),M(),!(r&=15))return r=A,k(0|(t=e)),0|r;for(t=1;o=0|at(0|A,0|e,0|(i=3*(15-t|0)|0)),M(),n=0|lt(7,0,0|i),e&=~M(),A=(i=0|lt(0|vA(7&o),0,0|i))|A&~n,e=0|M()|e,t>>>0<r>>>0;)t=t+1|0;return k(0|e),0|A}function KA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0,a=0;if(a=0|at(0|(A|=0),0|(e|=0),52),M(),!(a&=15))return a=A,k(0|(s=e)),0|a;for(s=1,t=0;;){r=0|lt(7,0,0|(i=3*(15-s|0)|0)),n=0|M(),o=0|at(0|A,0|e,0|i),M(),A=(i=0|lt(0|yA(7&o),0,0|i))|A&~r,e=(o=0|M())|e&~n;A:do{if(!t)if(!(i&r|0)&!(o&n|0))t=0;else if(r=0|at(0|A,0|e,52),M(),r&=15){t=1;e:for(;;){switch(o=0|at(0|A,0|e,3*(15-t|0)|0),M(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|lt(7,0,0|(n=3*(15-t|0)|0)),o=e&~M(),e=0|at(0|A,0|e,0|n),M(),A=A&~i|(e=0|lt(0|yA(7&e),0,0|n)),e=0|o|M(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(s>>>0<a>>>0))break;s=s+1|0}return k(0|e),0|A}function qA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|at(0|(A|=0),0|(e|=0),52),M(),!(r&=15))return r=A,k(0|(t=e)),0|r;for(t=1;i=0|lt(7,0,0|(o=3*(15-t|0)|0)),n=e&~M(),e=0|at(0|A,0|e,0|o),M(),A=(e=0|lt(0|yA(7&e),0,0|o))|A&~i,e=0|M()|n,t>>>0<r>>>0;)t=t+1|0;return k(0|e),0|A}function $A(A){return(0|(A|=0))%2|0}function Ae(A,e,t){t|=0;var r,i=0;return r=P,P=P+16|0,i=r,(e|=0)>>>0>15?(P=r,0|(i=4)):2146435072&~n[(A|=0)+4>>2]&&2146435072&~n[A+8+4>>2]?(function(A,e,t){var r,n;r=P,P=P+16|0,IA(A|=0,e|=0,t|=0,n=r),iA(n,t+4|0),P=r}(A,e,i),e=0|function(A,e){A|=0;var t,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0;if(t=P,P=P+64|0,l=t+40|0,i=t+24|0,o=t+12|0,s=t,lt(0|(e|=0),0,52),r=134225919|M(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(l=0,k(0|(a=0)),P=t,0|l):(lt(0|N(A),0,45),a=0|M()|r,l=-1,k(0|a),P=t,0|l);if(n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],n[l+12>>2]=n[A+12>>2],a=l+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[a>>2],n[i+4>>2]=n[a+4>>2],n[i+8>>2]=n[a+8>>2],1&e?(gA(a),n[o>>2]=n[a>>2],n[o+4>>2]=n[a+4>>2],n[o+8>>2]=n[a+8>>2],wA(o)):(dA(a),n[o>>2]=n[a>>2],n[o+4>>2]=n[a+4>>2],n[o+8>>2]=n[a+8>>2],pA(o)),lA(i,o,s),oA(s),f=0|lt(7,0,0|(u=3*(15-e|0)|0)),r&=~M(),A=(u=0|lt(0|uA(s),0,0|u))|A&~f,r=0|M()|r,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[a>>2])<=2&&(0|n[l+8>>2])<=2&&(0|n[l+12>>2])<=2){if(e=0|lt(0|(i=0|N(l)),0,45),e|=A,A=M()|-1040385&r,s=0|V(l),!(0|O(i))){if((0|s)<=0)break;for(o=0;;){if(i=0|at(0|e,0|A,52),M(),i&=15)for(r=1;l=0|at(0|e,0|A,0|(u=3*(15-r|0)|0)),M(),f=0|lt(7,0,0|u),A&=~M(),e=e&~f|(u=0|lt(0|vA(7&l),0,0|u)),A=0|A|M(),r>>>0<i>>>0;)r=r+1|0;if((0|(o=o+1|0))==(0|s))break A}}o=0|at(0|e,0|A,52),M(),o&=15;e:do{if(o){r=1;t:for(;;){switch(u=0|at(0|e,0|A,3*(15-r|0)|0),M(),7&u){case 1:break t;case 0:break;default:break e}if(!(r>>>0<o>>>0))break e;r=r+1|0}if(0|X(i,0|n[l>>2]))for(r=1;f=0|lt(7,0,0|(l=3*(15-r|0)|0)),u=A&~M(),A=0|at(0|e,0|A,0|l),M(),e=e&~f|(A=0|lt(0|yA(7&A),0,0|l)),A=0|u|M(),r>>>0<o>>>0;)r=r+1|0;else for(r=1;l=0|at(0|e,0|A,0|(u=3*(15-r|0)|0)),M(),f=0|lt(7,0,0|u),A&=~M(),e=e&~f|(u=0|lt(0|vA(7&l),0,0|u)),A=0|A|M(),r>>>0<o>>>0;)r=r+1|0}}while(0);if((0|s)>0){r=0;do{e=0|ZA(e,A),A=0|M(),r=r+1|0}while((0|r)!=(0|s))}}else e=0,A=0}while(0);return u=e,k(0|(f=A)),P=t,0|u}(i,e),i=0|M(),n[t>>2]=e,n[t+4>>2]=i,!(0|e)&!(0|i)&&Q(27795,27122,959,27145),P=r,0|(i=0)):(P=r,0|(i=3))}function ee(A,e,t){var r,i=0,o=0,s=0;if(r=(t|=0)+4|0,o=0|at(0|(A|=0),0|(e|=0),52),M(),o&=15,s=0|at(0|A,0|e,45),M(),i=!(0|o),0|O(127&s)){if(i)return 0|(s=1);i=1}else{if(i)return 0|(s=0);i=0|n[r>>2]||0|n[t+8>>2]?1:1&!!(0|n[t+12>>2])}for(t=1;1&t?wA(r):pA(r),s=0|at(0|A,0|e,3*(15-t|0)|0),M(),bA(r,7&s),t>>>0<o>>>0;)t=t+1|0;return 0|i}function te(A,e,t){t|=0;var r,i,o=0,s=0,a=0,l=0,f=0,u=0;if(i=P,P=P+16|0,r=i,u=0|at(0|(A|=0),0|(e|=0),45),M(),(u&=127)>>>0>121)return n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,n[t+12>>2]=0,P=i,0|(u=5);A:do{if(0|O(u)&&(a=0|at(0|A,0|e,52),M(),0|(a&=15))){o=1;e:for(;;){switch(f=0|at(0|A,0|e,3*(15-o|0)|0),M(),7&f){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<a>>>0)){o=e;break A}o=o+1|0}for(s=1,o=e;l=0|lt(7,0,0|(e=3*(15-s|0)|0)),f=o&~M(),o=0|at(0|A,0|o,0|e),M(),A=A&~l|(o=0|lt(0|yA(7&o),0,0|e)),o=0|f|M(),s>>>0<a>>>0;)s=s+1|0}else o=e}while(0);if(f=7696+(28*u|0)|0,n[t>>2]=n[f>>2],n[t+4>>2]=n[f+4>>2],n[t+8>>2]=n[f+8>>2],n[t+12>>2]=n[f+12>>2],!(0|ee(A,o,t)))return P=i,0|(u=0);if(l=t+4|0,n[r>>2]=n[l>>2],n[r+4>>2]=n[l+4>>2],n[r+8>>2]=n[l+8>>2],a=0|at(0|A,0|o,52),M(),f=15&a,1&a?(pA(l),a=f+1|0):a=f,0|O(u)){A:do{if(f)for(e=1;;){if(s=0|at(0|A,0|o,3*(15-e|0)|0),M(),0|(s&=7)){o=s;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,a,o,0)){if(0|O(u))do{}while(0|GA(t,a,0,0));(0|a)!=(0|f)&&dA(l)}else(0|a)!=(0|f)&&(n[l>>2]=n[r>>2],n[l+4>>2]=n[r+4>>2],n[l+8>>2]=n[r+8>>2]);return P=i,0|(u=0)}function re(A,e,t){t|=0;var r,n,i=0;return n=P,P=P+16|0,0|(i=0|te(A|=0,e|=0,r=n))?(P=n,0|i):(i=0|at(0|A,0|e,52),M(),FA(r,15&i,t),P=n,0|(i=0))}function ne(A,e,t){t|=0;var r,n=0,i=0,o=0;if(r=P,P=P+16|0,0|(n=0|te(A|=0,e|=0,o=r)))return P=r,0|(o=n);n=0|at(0|A,0|e,45),M(),n=!(0|O(127&n)),i=0|at(0|A,0|e,52),M(),i&=15;A:do{if(!n){if(0|i)for(n=1;;){if(!(!((0|lt(7,0,3*(15-n|0)|0))&A|0)&!((0|M())&e)))break A;if(!(n>>>0<i>>>0))break;n=n+1|0}return SA(o,i,0,5,t),P=r,0|0}}while(0);return UA(o,i,0,6,t),P=r,0|0}function ie(A,e){e|=0;var t=0,r=0,i=0,o=0,s=0,a=0,l=0;if((A|=0)>>>0>15)return 0|(a=4);if(lt(0|A,0,52),a=134225919|M(),!A){t=0,r=0;do{0|O(r)&&(lt(0|r,0,45),s=0|a|M(),n[(A=e+(t<<3)|0)>>2]=-1,n[A+4>>2]=s,t=t+1|0),r=r+1|0}while(122!=(0|r));return 0|(t=0)}t=0,s=0;do{if(0|O(s)){for(lt(0|s,0,45),r=1,i=-1,o=0|a|M();i&=~(l=0|lt(7,0,3*(15-r|0)|0)),o&=~M(),(0|r)!=(0|A);)r=r+1|0;n[(l=e+(t<<3)|0)>>2]=i,n[l+4>>2]=o,t=t+1|0}s=s+1|0}while(122!=(0|s));return 0|(t=0)}function oe(A,e,t,r){A|=0,r|=0;var i=0,o=0,s=0;i=0|at(0|(e|=0),0|(t|=0),52),M(),!(0|e)&!(0|t)|(0|r)>15|(0|(i&=15))>(0|r)?(o=-1,e=-1,t=0,i=0):(e=0|XA(e,t,i+1|0,r),s=-15728641&M(),t=0|lt(0|r,0,52),o=i,e=(e=!(0|VA(t|=e,s=0|s|M())))?-1:r,i=s),n[(s=A)>>2]=t,n[s+4>>2]=i,n[A+8>>2]=o,n[A+12>>2]=e}function se(A,e,t,r){t|=0,r|=0;var i=0,o=0;return i=0|at(0|(A|=0),0|(e|=0),52),M(),i&=15,n[(o=r+8|0)>>2]=i,!(0|A)&!(0|e)|(0|t)>15|(0|i)>(0|t)?(n[(t=r)>>2]=0,n[t+4>>2]=0,n[o>>2]=-1,void(n[r+12>>2]=-1)):(A=0|XA(A,e,i+1|0,t),o=-15728641&M(),i=0|lt(0|t,0,52),i|=A,o=0|o|M(),n[(A=r)>>2]=i,n[A+4>>2]=o,A=r+12|0,0|VA(i,o)?void(n[A>>2]=t):void(n[A>>2]=-1))}function ae(A){var e,t=0,r=0,i=0,o=0,s=0,a=0,l=0,f=0;if(!(!(0|(t=0|n[(r=A|=0)>>2]))&!(0|(r=0|n[r+4>>2]))||(i=0|at(0|t,0|r,52),M(),t=0|$e(0|(l=0|lt(1,0,3*(15^(i&=15))|0)),0|M(),0|t,0|r),r=0|M(),n[(l=A)>>2]=t,n[l+4>>2]=r,(0|i)<(0|(a=0|n[(l=A+8|0)>>2]))))){for(e=A+12|0,s=i;;){if((0|s)==(0|a)){i=5;break}if(f=(0|s)==(0|n[e>>2]),i=0|at(0|t,0|r,0|(o=3*(15-s|0)|0)),M(),f&1==(0|(i&=7))&!0){i=7;break}if(!(7==(0|i)&!0)){i=10;break}if(t=0|$e(0|t,0|r,0|(f=0|lt(1,0,0|o)),0|M()),r=0|M(),n[(f=A)>>2]=t,n[f+4>>2]=r,!((0|s)>(0|a))){i=10;break}s=s+-1|0}if(5==(0|i))return n[(f=A)>>2]=0,n[f+4>>2]=0,n[l>>2]=-1,void(n[e>>2]=-1);if(7==(0|i))return a=0|$e(0|t,0|r,0|(a=0|lt(1,0,0|o)),0|M()),l=0|M(),n[(f=A)>>2]=a,n[f+4>>2]=l,void(n[e>>2]=s+-1)}}function le(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function fe(A,e){return e|=0,+l(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+l(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function ue(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 ce(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+h(.5*(r-t)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+b(+ +f(+o),+ +f(+(1-o)))*6371.007180918475}function he(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20656+(A<<3)>>3],0|(e=0))}function ge(A,e){e|=0;var t=0;return(A|=0)>>>0>15?0|(e=4):(t=0|nt(0|(t=0|ke(7,0,A,((0|A)<0)<<31>>31)),0|M(),120,0),A=0|M(),n[e>>2]=2|t,n[e+4>>2]=A,0|(e=0))}function de(A,e,t){A|=0,t|=0;var r,n,o,s,a=0,l=0,u=0,d=0,w=0,m=0;return m=+i[(e|=0)>>3],o=+i[A>>3],w=+h(.5*(m-o)),u=+i[e+8>>3],n=+i[A+8>>3],d=+h(.5*(u-n)),r=+c(+o),s=+c(+m),d=2*+b(+ +f(+(d=w*w+d*(s*r*d))),+ +f(+(1-d))),w=+i[t>>3],m=+h(.5*(w-m)),a=+i[t+8>>3],u=+h(.5*(a-u)),l=+c(+w),u=2*+b(+ +f(+(u=m*m+u*(s*l*u))),+ +f(+(1-u))),w=+h(.5*(o-w)),a=+h(.5*(n-a)),a=2*+b(+ +f(+(a=w*w+a*(r*l*a))),+ +f(+(1-a))),4*+p(+ +f(+ +g(.5*(l=.5*(d+u+a)))*+g(.5*(l-d))*+g(.5*(l-u))*+g(.5*(l-a))))}function we(A,e,t){t|=0;var r,o,s,a=0,l=0;if(s=P,P=P+192|0,o=s,0|(l=0|re(A|=0,e|=0,r=s+168|0)))return P=s,0|(t=l);if(0|ne(A,e,o)&&Q(27795,27190,415,27199),(0|(e=0|n[o>>2]))>0){if(a=+de(o+8|0,o+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{a+=+de(o+8+((l=A)<<4)|0,o+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e))}}else a=0;return i[t>>3]=a,P=s,0|(t=0)}function pe(A){A|=0;var e,t,r=0;return(e=0|qe(1,12))||Q(27280,27235,49,27293),0|(r=0|n[(t=A+4|0)>>2])?(n[(r=r+8|0)>>2]=e,n[t>>2]=e,0|e):(0|n[A>>2]&&Q(27310,27235,61,27333),n[(r=A)>>2]=e,n[t>>2]=e,0|e)}function be(A,e){A|=0,e|=0;var t,r;return(r=0|Je(24))||Q(27347,27235,78,27361),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[r+16>>2]=0,0|(t=0|n[(e=A+4|0)>>2])?(n[t+16>>2]=r,n[e>>2]=r,0|r):(0|n[A>>2]&&Q(27376,27235,82,27361),n[A>>2]=r,n[e>>2]=r,0|r)}function me(A){var e=0,t=0,r=0,i=0;if(A|=0)for(r=1;;){if(0|(e=0|n[A>>2]))do{if(0|(t=0|n[e>>2]))do{i=t,t=0|n[t+16>>2],Ke(i)}while(0|t);i=e,e=0|n[e+8>>2],Ke(i)}while(0|e);if(e=A,A=0|n[A+8>>2],r||Ke(e),!A)break;r=0}}function Be(A){var e,t,r=0,o=0,s=0,a=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,E=0,k=0,M=0,_=0,x=0,D=0,C=0,I=0,P=0,F=0,S=0,T=0,G=0;if(0|n[(a=(A|=0)+8|0)>>2])return 0|(G=1);if(!(s=0|n[A>>2]))return 0|(G=0);r=s,o=0;do{o=o+1|0,r=0|n[r+8>>2]}while(0|r);if(o>>>0<2)return 0|(G=0);(t=0|Je(o<<2))||Q(27396,27235,317,27415),(e=0|Je(o<<5))||Q(27437,27235,321,27415),n[A>>2]=0,n[(x=A+4|0)>>2]=0,n[a>>2]=0,o=0,S=0,_=0,w=0;A:for(;;){if(d=0|n[s>>2]){f=0,u=d;do{if(h=+i[u+8>>3],r=u,u=0|n[u+16>>2],c=+i[(a=(g=!(0|u))?d:u)+8>>3],+l(+(h-c))>3.141592653589793){G=14;break}f+=(c-h)*(+i[r>>3]+ +i[a>>3])}while(!g);if(14==(0|G)){G=0,f=0,r=d;do{M=+i[r+8>>3],P=0|n[(F=r+16|0)>>2],k=+i[(P=0|P?P:d)+8>>3],f+=(+i[r>>3]+ +i[P>>3])*((k<0?k+6.283185307179586:k)-(M<0?M+6.283185307179586:M)),r=0|n[(0|r?F:s)>>2]}while(0|r)}f>0?(n[t+(S<<2)>>2]=s,S=S+1|0,a=_,r=w):G=19}else G=19;if(19==(0|G)){G=0;do{if(!o){if(w){a=x,u=w+8|0,r=s,o=A;break}if(0|n[A>>2]){G=27;break A}a=x,u=A,r=s,o=A;break}if(0|n[(r=o+8|0)>>2]){G=21;break A}if(!(o=0|qe(1,12))){G=23;break A}n[r>>2]=o,a=o+4|0,u=o,r=w}while(0);if(n[u>>2]=s,n[a>>2]=s,u=e+(_<<5)|0,g=0|n[s>>2]){for(i[(d=e+(_<<5)+8|0)>>3]=17976931348623157e292,i[(w=e+(_<<5)+24|0)>>3]=17976931348623157e292,i[u>>3]=-17976931348623157e292,i[(p=e+(_<<5)+16|0)>>3]=-17976931348623157e292,y=17976931348623157e292,E=-17976931348623157e292,a=0,b=g,h=17976931348623157e292,B=17976931348623157e292,v=-17976931348623157e292,c=-17976931348623157e292;f=+i[b>>3],M=+i[b+8>>3],b=0|n[b+16>>2],k=+i[((m=!(0|b))?g:b)+8>>3],f<h&&(i[d>>3]=f,h=f),M<B&&(i[w>>3]=M,B=M),f>v?i[u>>3]=f:f=v,M>c&&(i[p>>3]=M,c=M),y=M>0&M<y?M:y,E=M<0&M>E?M:E,a|=+l(+(M-k))>3.141592653589793,!m;)v=f;a&&(i[p>>3]=E,i[w>>3]=y)}else n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,n[u+12>>2]=0,n[u+16>>2]=0,n[u+20>>2]=0,n[u+24>>2]=0,n[u+28>>2]=0;a=_+1|0}if(s=0|n[(F=s+8|0)>>2],n[F>>2]=0,!s){G=45;break}_=a,w=r}if(21==(0|G))Q(27213,27235,35,27247);else if(23==(0|G))Q(27267,27235,37,27247);else if(27==(0|G))Q(27310,27235,61,27333);else if(45==(0|G)){A:do{if((0|S)>0){for(F=!(0|a),I=a<<2,P=!(0|A),C=0,r=0;;){if(D=0|n[t+(C<<2)>>2],F)G=73;else{if(!(_=0|Je(I))){G=50;break}if(!(x=0|Je(I))){G=52;break}e:do{if(P)o=0;else{for(a=0,o=0,u=A;s=e+(a<<5)|0,0|ve(0|n[u>>2],s,0|n[D>>2])?(n[_+(o<<2)>>2]=u,n[x+(o<<2)>>2]=s,m=o+1|0):m=o,u=0|n[u+8>>2];)a=a+1|0,o=m;if((0|m)>0)if(s=0|n[_>>2],1==(0|m))o=s;else for(p=0,b=-1,o=s,w=s;;){for(g=0|n[w>>2],s=0,u=0;d=(0|(a=0|n[n[_+(u<<2)>>2]>>2]))==(0|g)?s:s+(1&ve(a,0|n[x+(u<<2)>>2],0|n[g>>2]))|0,(0|(u=u+1|0))!=(0|m);)s=d;if(o=(a=(0|d)>(0|b))?w:o,(0|(s=p+1|0))==(0|m))break e;p=s,b=a?d:b,w=0|n[_+(s<<2)>>2]}else o=0}}while(0);if(Ke(_),Ke(x),o){if(s=0|n[(a=o+4|0)>>2])o=s+8|0;else if(0|n[o>>2]){G=70;break}n[o>>2]=D,n[a>>2]=D}else G=73}if(73==(0|G)){if(G=0,0|(r=0|n[D>>2]))do{x=r,r=0|n[r+16>>2],Ke(x)}while(0|r);Ke(D),r=1}if((0|(C=C+1|0))>=(0|S)){T=r;break A}}50==(0|G)?Q(27452,27235,249,27471):52==(0|G)?Q(27490,27235,252,27471):70==(0|G)&&Q(27310,27235,61,27333)}else T=0}while(0);return Ke(t),Ke(e),0|(G=T)}return 0}function ve(A,e,t){A|=0;var r=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0;if(!(0|q(e|=0,t|=0)))return 0|(A=0);if(e=0|J(e),r=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0|(A=0);if(e){e=0,u=o,t=A;A:for(;;){for(;a=+i[t>>3],o=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],s=+i[(c=0|c?c:A)>>3],l=+i[c+8>>3],a>s?(f=a,a=l):(f=s,s=a,a=o,o=l),(r=r==s|r==f?r+2220446049250313e-31:r)<s|r>f;)if(!(t=0|n[t>>2])){t=22;break A}if(((f=(l=a<0?a+6.283185307179586:a)+(r-s)/(f-s)*((a=o<0?o+6.283185307179586:o)-l))<0?f+6.283185307179586:f)>(u=l==u|a==u?u+-2220446049250313e-31:u)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,u=o,t=A;A:for(;;){for(;a=+i[t>>3],o=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],s=+i[(c=0|c?c:A)>>3],l=+i[c+8>>3],a>s?(f=a,a=l):(f=s,s=a,a=o,o=l),(r=r==s|r==f?r+2220446049250313e-31:r)<s|r>f;)if(!(t=0|n[t>>2])){t=22;break A}if(a+(r-s)/(f-s)*(o-a)>(u=a==u|o==u?u+-2220446049250313e-31:u)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}return 0}function ye(A,e,t,i,o){t|=0,i|=0,o|=0;var s,a,l,f,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0;if(f=P,P=P+32|0,B=f+16|0,l=f,u=0|at(0|(A|=0),0|(e|=0),52),M(),u&=15,p=0|at(0|t,0|i,52),M(),(0|u)!=(15&p))return P=f,0|(B=12);if(d=0|at(0|A,0|e,45),M(),d&=127,w=0|at(0|t,0|i,45),M(),d>>>0>121|(w&=127)>>>0>121)return P=f,0|(B=5);if(p=(0|d)!=(0|w)){if(7==(0|(h=0|W(d,w))))return P=f,0|(B=1);7==(0|(g=0|W(w,d)))?Q(27514,27538,161,27548):(b=h,c=g)}else b=0,c=0;s=0|O(d),a=0|O(w),n[B>>2]=0,n[B+4>>2]=0,n[B+8>>2]=0,n[B+12>>2]=0;do{if(b){if(h=(0|(w=0|n[4272+(28*d|0)+(b<<2)>>2]))>0,a)if(h){d=0,g=t,h=i;do{g=0|KA(g,h),h=0|M(),1==(0|(c=0|yA(c)))&&(c=0|yA(1)),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=t,g=i;else if(h){d=0,g=t,h=i;do{g=0|qA(g,h),h=0|M(),c=0|yA(c),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=t,g=i;if(ee(d,g,B),p||Q(27563,27538,191,27548),(h=!!(0|s))&(c=!!(0|a))&&Q(27590,27538,192,27548),h){if(7==(0|(c=0|WA(A,e)))){u=5;break}if(0|r[22e3+(7*c|0)+b|0]){u=1;break}d=g=0|n[21168+(28*c|0)+(b<<2)>>2]}else if(c){if(7==(0|(c=0|WA(d,g)))){u=5;break}if(0|r[22e3+(7*c|0)+w|0]){u=1;break}d=0,g=0|n[21168+(28*w|0)+(c<<2)>>2]}else d=0,g=0;if((d|g|0)<0)u=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(n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,bA(l,b),0|u)for(;0|$A(u)?wA(l):pA(l),(0|u)>1;)u=u+-1|0;if((0|d)>0){u=0;do{BA(l),u=u+1|0}while((0|u)!=(0|d))}aA(m=B+4|0,l,m),oA(m),m=51}}else if(ee(t,i,B),!!(0|s)&!!(0|a))if((0|w)!=(0|d)&&Q(27621,27538,261,27548),7==(0|(c=0|WA(A,e)))|7==(0|(u=0|WA(t,i))))u=5;else if(0|r[22e3+(7*c|0)+u|0])u=1;else if((0|(c=0|n[21168+(28*c|0)+(u<<2)>>2]))>0){h=B+4|0,u=0;do{BA(h),u=u+1|0}while((0|u)!=(0|c));m=51}else m=51;else m=51}while(0);return 51==(0|m)&&(u=B+4|0,n[o>>2]=n[u>>2],n[o+4>>2]=n[u+4>>2],n[o+8>>2]=n[u+8>>2],u=0),P=f,0|(B=u)}function Ee(A,e,t,r){t|=0,r|=0;var i,o,s,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0;if(s=P,P=P+48|0,i=s+36|0,f=s+24|0,u=s+12|0,c=s,a=0|at(0|(A|=0),0|(e|=0),52),M(),a&=15,g=0|at(0|A,0|e,45),M(),(g&=127)>>>0>121)return P=s,0|(r=5);if(o=0|O(g),lt(0|a,0,52),p=134225919|M(),n[(l=r)>>2]=-1,n[l+4>>2]=p,!a)return 7==(0|(a=0|uA(t)))||127==(0|(a=0|j(g,a)))?(P=s,0|(p=1)):(d=0|lt(0|a,0,45),w=0|M(),w=-1040385&n[(g=r)+4>>2]|w,n[(p=r)>>2]=n[g>>2]|d,n[p+4>>2]=w,P=s,0|(p=0));for(n[i>>2]=n[t>>2],n[i+4>>2]=n[t+4>>2],n[i+8>>2]=n[t+8>>2],t=a;;){if(l=t,t=t+-1|0,n[f>>2]=n[i>>2],n[f+4>>2]=n[i+4>>2],n[f+8>>2]=n[i+8>>2],0|$A(l)){if(0|(a=0|cA(i))){t=13;break}n[u>>2]=n[i>>2],n[u+4>>2]=n[i+4>>2],n[u+8>>2]=n[i+8>>2],wA(u)}else{if(0|(a=0|hA(i))){t=13;break}n[u>>2]=n[i>>2],n[u+4>>2]=n[i+4>>2],n[u+8>>2]=n[i+8>>2],pA(u)}if(lA(f,u,c),oA(c),m=0|n[(a=r)>>2],a=0|n[a+4>>2],b=0|lt(7,0,0|(B=3*(15-l|0)|0)),a&=~M(),B=0|lt(0|uA(c),0,0|B),a=0|M()|a,n[(p=r)>>2]=B|m&~b,n[p+4>>2]=a,(0|l)<=1){t=14;break}}A:do{if(13!=(0|t)&&14==(0|t))if((0|n[i>>2])<=1&&(0|n[i+4>>2])<=1&&(0|n[i+8>>2])<=1){c=127==(0|(a=0|j(g,t=0|uA(i))))?0:0|O(a);e:do{if(t){if(o){if(7==(0|(a=0|WA(A,e)))){a=5;break A}if((0|(l=0|n[21376+(28*a|0)+(t<<2)>>2]))>0){a=t,t=0;do{a=0|vA(a),t=t+1|0}while((0|t)!=(0|l))}else a=t;if(1==(0|a)){a=9;break A}127==(0|(t=0|j(g,a)))&&Q(27648,27538,411,27678),0|O(t)?Q(27693,27538,412,27678):(w=t,d=l,h=a)}else w=a,d=0,h=t;if((0|(u=0|n[4272+(28*g|0)+(h<<2)>>2]))<=-1&&Q(27724,27538,419,27678),!c){if((0|d)<0){a=5;break A}if(0|d){a=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];do{t=0|JA(t,l),l=0|M(),n[(B=r)>>2]=t,n[B+4>>2]=l,a=a+1|0}while((0|a)<(0|d))}if((0|u)<=0){a=w,t=58;break}for(a=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];;)if(t=0|JA(t,l),l=0|M(),n[(B=r)>>2]=t,n[B+4>>2]=l,(0|(a=a+1|0))==(0|u)){a=w,t=58;break e}}if(7==(0|(f=0|W(w,g)))&&Q(27514,27538,428,27678),t=0|n[(a=r)>>2],a=0|n[a+4>>2],(0|u)>0){l=0;do{t=0|JA(t,a),a=0|M(),n[(B=r)>>2]=t,n[B+4>>2]=a,l=l+1|0}while((0|l)!=(0|u))}if(7==(0|(a=0|WA(t,a)))&&Q(27795,27538,440,27678),t=0|H(w),(0|(t=0|n[(t?21792:21584)+(28*f|0)+(a<<2)>>2]))<0&&Q(27795,27538,454,27678),t){a=0,l=0|n[(f=r)>>2],f=0|n[f+4>>2];do{l=0|ZA(l,f),f=0|M(),n[(B=r)>>2]=l,n[B+4>>2]=f,a=a+1|0}while((0|a)<(0|t));a=w,t=58}else a=w,t=58}else if(!!(0|o)&!!(0|c)){if(7==(0|(t=0|WA(A,e)))|7==(0|(l=0|WA(0|n[(l=r)>>2],0|n[l+4>>2])))){a=5;break A}if((0|(l=0|n[21376+(28*t|0)+(l<<2)>>2]))<0){a=5;break A}if(l){t=0,f=0|n[(u=r)>>2],u=0|n[u+4>>2];do{f=0|JA(f,u),u=0|M(),n[(B=r)>>2]=f,n[B+4>>2]=u,t=t+1|0}while((0|t)<(0|l));t=58}else t=59}else t=58}while(0);if(58==(0|t)&&c&&(t=59),59==(0|t)&&1==(0|WA(0|n[(B=r)>>2],0|n[B+4>>2]))){a=9;break}b=0|n[(B=r)>>2],B=-1040385&n[B+4>>2],m=0|lt(0|a,0,45),B=0|B|M(),n[(a=r)>>2]=b|m,n[a+4>>2]=B,a=0}else a=1}while(0);return P=s,0|(B=a)}function ke(A,e,t,r){A|=0,e|=0;var n=0,i=0,o=0;if(!(0|(t|=0))&!(0|(r|=0)))return i=1,k(0|(n=0)),0|i;i=A,n=e,A=1,e=0;do{A=0|nt(0|((o=!0&!(1&t))?1:i),0|(o?0:n),0|A,0|e),e=0|M(),t=0|st(0|t,0|r,1),r=0|M(),i=0|nt(0|i,0|n,0|i,0|n),n=0|M()}while(!(!(0|t)&!(0|r)));return k(0|e),0|A}function Me(A,e,t,r){t|=0,r|=0;var o,s=0,a=0,l=0,f=0,u=0,h=0;o=P,P=P+16|0,a=o,l=0|at(0|(A|=0),0|(e|=0),52),M(),l&=15;do{if(l){if(!(s=0|re(A,e,a))){u=+i[a>>3],f=1/+c(+u),h=+i[25968+(l<<3)>>3],i[t>>3]=u+h,i[t+8>>3]=u-h,u=+i[a+8>>3],f*=h,i[t+16>>3]=f+u,i[t+24>>3]=u-f;break}return P=o,0|(l=s)}if(s=0|at(0|A,0|e,45),M(),(s&=127)>>>0>121)return P=o,0|(l=5);a=22064+(s<<5)|0,n[t>>2]=n[a>>2],n[t+4>>2]=n[a+4>>2],n[t+8>>2]=n[a+8>>2],n[t+12>>2]=n[a+12>>2],n[t+16>>2]=n[a+16>>2],n[t+20>>2]=n[a+20>>2],n[t+24>>2]=n[a+24>>2],n[t+28>>2]=n[a+28>>2];break}while(0);return function(A,e){e=+e;var t,r,n,o,s,a,l,f=0,u=0;f=(o=+i[(n=16+(A|=0)|0)>>3])-(r=+i[(t=A+24|0)>>3]),f=o<r?f+6.283185307179586:f,u=+i[A>>3],f=.5*(f*e-f),u+=e=.5*((l=u-(a=+i[(s=A+8|0)>>3]))*e-l),i[A>>3]=u>1.5707963267948966?1.5707963267948966:u,e=a-e,i[s>>3]=e<-1.5707963267948966?-1.5707963267948966:e,e=(e=o+f)>3.141592653589793?e+-6.283185307179586:e,i[n>>3]=e<-3.141592653589793?e+6.283185307179586:e,e=(e=r-f)>3.141592653589793?e+-6.283185307179586:e,i[t>>3]=e<-3.141592653589793?e+6.283185307179586:e}(t,r?1.4:1.1),(0|n[(r=26096+(l<<3)|0)>>2])==(0|A)&&(0|n[r+4>>2])==(0|e)&&(i[t>>3]=1.5707963267948966),(0|n[(l=26224+(l<<3)|0)>>2])==(0|A)&&(0|n[l+4>>2])==(0|e)&&(i[t+8>>3]=-1.5707963267948966),1.5707963267948966!=+i[t>>3]&&-1.5707963267948966!=+i[t+8>>3]?(P=o,0|(l=0)):(i[t+16>>3]=3.141592653589793,i[t+24>>3]=-3.141592653589793,P=o,0|(l=0))}function Qe(A,e,t,i){A|=0,e|=0,t|=0,i|=0;var o,s,a,l=0,f=0,u=0,c=0;a=P,P=P+48|0,o=a+40|0,s=a,OA(f=a+32|0,0,0,0),u=0|n[f>>2],f=0|n[f+4>>2];do{if(t>>>0<=15){if(0|(l=0|Ie(i))){n[(i=s)>>2]=0,n[i+4>>2]=0,n[s+8>>2]=l,n[s+12>>2]=-1,u=s+29|0,n[(i=s+16|0)>>2]=0,n[i+4>>2]=0,n[i+8>>2]=0,r[i+12|0]=0,r[u|0]=0|r[o|0],r[u+1|0]=0|r[o+1|0],r[u+2|0]=0|r[o+2|0];break}if(l=0|qe(1+(0|n[e+8>>2])|0,32)){Pe(e,l),n[(c=s)>>2]=u,n[c+4>>2]=f,n[s+8>>2]=0,n[s+12>>2]=t,n[s+16>>2]=i,n[s+20>>2]=e,n[s+24>>2]=l,r[s+28|0]=0,r[(u=s+29|0)|0]=0|r[o|0],r[u+1|0]=0|r[o+1|0],r[u+2|0]=0|r[o+2|0];break}n[(i=s)>>2]=0,n[i+4>>2]=0,n[s+8>>2]=13,n[s+12>>2]=-1,u=s+29|0,n[(i=s+16|0)>>2]=0,n[i+4>>2]=0,n[i+8>>2]=0,r[i+12|0]=0,r[u|0]=0|r[o|0],r[u+1|0]=0|r[o+1|0],r[u+2|0]=0|r[o+2|0];break}n[(u=s)>>2]=0,n[u+4>>2]=0,n[s+8>>2]=4,n[s+12>>2]=-1,c=s+29|0,n[(u=s+16|0)>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,r[u+12|0]=0,r[c|0]=0|r[o|0],r[c+1|0]=0|r[o+1|0],r[c+2|0]=0|r[o+2|0]}while(0);_e(s),n[A>>2]=n[s>>2],n[A+4>>2]=n[s+4>>2],n[A+8>>2]=n[s+8>>2],n[A+12>>2]=n[s+12>>2],n[A+16>>2]=n[s+16>>2],n[A+20>>2]=n[s+20>>2],n[A+24>>2]=n[s+24>>2],n[A+28>>2]=n[s+28>>2],P=a}function _e(A){var e,t,i,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0;if(o=P,P=P+336|0,e=o+168|0,t=o,!(0|(a=0|n[(l=A|=0)>>2]))&!(0|(l=0|n[l+4>>2])))P=o;else{if(0|r[(s=A+28|0)|0]?(a=0|xe(a,l),l=0|M()):r[s|0]=1,!(0|n[n[(i=A+20|0)>>2]>>2]))return 0|(a=0|n[(s=A+24|0)>>2])&&Ke(a),n[(y=A)>>2]=0,n[y+4>>2]=0,n[A+8>>2]=0,n[i>>2]=0,n[A+12>>2]=-1,n[A+16>>2]=0,n[s>>2]=0,void(P=o);f=15&(s=0|n[(y=A+16|0)>>2]);A:do{if(!(0|a)&!(0|l))v=A+24|0;else{m=A+12|0,p=3==(0|f),w=255&s,g=3==(1|f),b=A+24|0,d=(f+-1|0)>>>0<3,c=3==(2|f),h=t+8|0;e:for(;;){if(u=0|at(0|a,0|l,52),M(),(0|(u&=15))==(0|n[m>>2])){switch(15&w){case 0:case 2:case 3:if(0|(f=0|re(a,l,e))){B=15;break e}if(0|Fe(0|n[i>>2],0|n[b>>2],e)){B=19;break e}}if(g&&(f=0|n[4+(0|n[i>>2])>>2],n[e>>2]=n[f>>2],n[e+4>>2]=n[f+4>>2],n[e+8>>2]=n[f+8>>2],n[e+12>>2]=n[f+12>>2],0|q(26832,e))){if(0|Ae(0|n[4+(0|n[i>>2])>>2],u,t)){B=25;break}if((0|n[(f=t)>>2])==(0|a)&&(0|n[f+4>>2])==(0|l)){B=29;break}}if(d){if(0|(f=0|ne(a,l,e))){B=32;break}if(0|Me(a,l,t,0)){B=36;break}if(c&&0|Se(0|n[i>>2],0|n[b>>2],e,t)){B=42;break}if(g&&0|Ge(0|n[i>>2],0|n[b>>2],e,t)){B=42;break}}if(p){if(s=0|Me(a,l,e,1),f=0|n[b>>2],0|s){B=45;break}if(0|$(f,e)){if(eA(t,e),0|AA(e,0|n[b>>2])){B=53;break}if(0|Fe(0|n[i>>2],0|n[b>>2],h)){B=53;break}if(0|Ge(0|n[i>>2],0|n[b>>2],t,e)){B=53;break}}}}do{if((0|u)<(0|n[m>>2])){if(s=0|Me(a,l,e,1),f=0|n[b>>2],0|s){B=58;break e}if(!(0|$(f,e))){B=73;break}if(0|AA(0|n[b>>2],e)&&(eA(t,e),0|Se(0|n[i>>2],0|n[b>>2],t,e))){B=65;break e}if(0|(a=0|jA(a,l,u+1|0,t))){B=67;break e}a=0|n[(l=t)>>2],l=0|n[l+4>>2]}else B=73}while(0);if(73==(0|B)&&(B=0,a=0|xe(a,l),l=0|M()),!(0|a)&!(0|l)){v=b;break A}}switch(0|B){case 15:0|(s=0|n[b>>2])&&Ke(s),n[(B=A)>>2]=0,n[B+4>>2]=0,n[i>>2]=0,n[m>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=f,B=20;break;case 19:n[A>>2]=a,n[A+4>>2]=l,B=20;break;case 25:Q(27795,27761,470,27772);break;case 29:case 42:return n[A>>2]=a,n[A+4>>2]=l,void(P=o);case 32:return 0|(s=0|n[b>>2])&&Ke(s),n[(v=A)>>2]=0,n[v+4>>2]=0,n[i>>2]=0,n[m>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=f,void(P=o);case 36:Q(27795,27761,493,27772);break;case 45:0|f&&Ke(f),n[(B=A)>>2]=0,n[B+4>>2]=0,n[i>>2]=0,n[m>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=s,B=55;break;case 53:n[A>>2]=a,n[A+4>>2]=l,B=55;break;case 58:0|f&&Ke(f),n[(B=A)>>2]=0,n[B+4>>2]=0,n[i>>2]=0,n[m>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=s,B=71;break;case 65:n[A>>2]=a,n[A+4>>2]=l,B=71;break;case 67:return 0|(s=0|n[b>>2])&&Ke(s),n[(v=A)>>2]=0,n[v+4>>2]=0,n[i>>2]=0,n[m>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=a,void(P=o)}if(20==(0|B))return void(P=o);if(55==(0|B))return void(P=o);if(71==(0|B))return void(P=o)}}while(0);0|(s=0|n[v>>2])&&Ke(s),n[(B=A)>>2]=0,n[B+4>>2]=0,n[A+8>>2]=0,n[i>>2]=0,n[A+12>>2]=-1,n[y>>2]=0,n[v>>2]=0,P=o}}function xe(A,e){var t,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0;t=P,P=P+16|0,c=t,i=0|at(0|(A|=0),0|(e|=0),52),M(),i&=15,r=0|at(0|A,0|e,45),M();do{if(i){for(;r=0|lt(i+4095|0,0,52),o=M()|-15728641&e,r=r|A|(a=0|lt(7,0,0|(s=3*(15-i|0)|0))),o|=l=0|M(),f=0|at(0|A,0|e,0|s),M(),i=i+-1|0,!((f&=7)>>>0<6);){if(!i){u=4;break}e=o,A=r}if(4==(0|u)){r=0|at(0|r,0|o,45),M();break}return c=0|lt(((c=!(0|f)&!!(0|VA(r,o)))?2:1)+f|0,0,0|s),u=0|M()|e&~l,c|=A&~a,k(0|u),P=t,0|c}}while(0);return(r&=127)>>>0>120?(c=0,k(0|(u=0)),P=t,0|c):(OA(c,0,r+1|0,0),u=0|n[c+4>>2],c=0|n[c>>2],k(0|u),P=t,0|c)}function De(A,e,t){A|=0;var r,o=0,s=0,a=0,l=0,f=0,u=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],s=e&(s=+i[t+8>>3])<0?s+6.283185307179586:s,(0|(g=0|n[A>>2]))<=0)return 0|(g=0);if(r=0|n[A+4>>2],e){e=0,h=s,t=-1,A=0;A:for(;;){for(c=A;l=+i[r+(c<<4)>>3],s=+i[r+(c<<4)+8>>3],a=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],f=+i[r+(A<<4)+8>>3],l>a?(u=l,l=f):(u=a,a=l,l=s,s=f),(o=o==a|o==u?o+2220446049250313e-31:o)<a|o>u;){if((0|(t=c+1|0))>=(0|g)){t=22;break A}A=c,c=t,t=A}if(((u=(f=l<0?l+6.283185307179586:l)+(o-a)/(u-a)*((l=s<0?s+6.283185307179586:s)-f))<0?u+6.283185307179586:u)>(h=f==h|l==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|g)){t=22;break}t=c}if(22==(0|t))return 0|e}else{e=0,h=s,t=-1,A=0;A:for(;;){for(c=A;l=+i[r+(c<<4)>>3],s=+i[r+(c<<4)+8>>3],a=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],f=+i[r+(A<<4)+8>>3],l>a?(u=l,l=f):(u=a,a=l,l=s,s=f),(o=o==a|o==u?o+2220446049250313e-31:o)<a|o>u;){if((0|(t=c+1|0))>=(0|g)){t=22;break A}A=c,c=t,t=A}if(l+(o-a)/(u-a)*(s-l)>(h=l==h|s==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 Ce(A,e){e|=0;var t,r,o,s,a,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0;if(!(r=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(s=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(a=e+16|0)>>3]=-17976931348623157e292,!((0|r)<=0)){for(t=0|n[A+4>>2],p=17976931348623157e292,b=-17976931348623157e292,m=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,w=-17976931348623157e292,u=-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|r)?0:A)<<4)+8>>3],f<h&&(i[o>>3]=f,h=f),d<g&&(i[s>>3]=d,g=d),f>w?i[e>>3]=f:f=w,d>u&&(i[a>>3]=d,u=d),p=d>0&d<p?d:p,b=d<0&d>b?d:b,m|=+l(+(d-c))>3.141592653589793,(0|(A=B+1|0))!=(0|r);)v=B,w=f,B=A,A=v;m&&(i[a>>3]=b,i[s>>3]=p)}}function Ie(A){return 0|((A|=0)>>>0<4?0:15)}function Pe(A,e){e|=0;var t,r=0,o=0,s=0,a=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,E=0,k=0,M=0,Q=0;if(b=0|n[(A|=0)>>2]){if(i[(m=e+8|0)>>3]=17976931348623157e292,i[(B=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(v=e+16|0)>>3]=-17976931348623157e292,(0|b)>0){for(s=0|n[A+4>>2],w=17976931348623157e292,p=-17976931348623157e292,o=0,r=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,f=-17976931348623157e292,y=0;a=+i[s+(y<<4)>>3],g=+i[s+(y<<4)+8>>3],u=+i[s+(((0|(M=r+2|0))==(0|b)?0:M)<<4)+8>>3],a<c&&(i[m>>3]=a,c=a),g<h&&(i[B>>3]=g,h=g),a>d?i[e>>3]=a:a=d,g>f&&(i[v>>3]=g,f=g),w=g>0&g<w?g:w,p=g<0&g>p?g:p,o|=+l(+(g-u))>3.141592653589793,(0|(r=y+1|0))!=(0|b);)M=y,d=a,y=r,r=M;o&&(i[v>>3]=p,i[B>>3]=w)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(r=0|n[(M=A+8|0)>>2]))<=0)){t=A+12|0,k=0;do{if(s=0|n[t>>2],o=k,B=e+((k=k+1|0)<<5)|0,v=0|n[s+(o<<3)>>2]){if(i[(y=e+(k<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(k<<5)+24|0)>>3]=17976931348623157e292,i[B>>3]=-17976931348623157e292,i[(E=e+(k<<5)+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(b=0|n[s+(o<<3)+4>>2],w=17976931348623157e292,p=-17976931348623157e292,s=0,o=-1,m=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,f=-17976931348623157e292;a=+i[b+(m<<4)>>3],d=+i[b+(m<<4)+8>>3],u=+i[b+(((0|(o=o+2|0))==(0|v)?0:o)<<4)+8>>3],a<c&&(i[y>>3]=a,c=a),d<h&&(i[A>>3]=d,h=d),a>g?i[B>>3]=a:a=g,d>f&&(i[E>>3]=d,f=d),w=d>0&d<w?d:w,p=d<0&d>p?d:p,s|=+l(+(d-u))>3.141592653589793,(0|(o=m+1|0))!=(0|v);)Q=m,m=o,g=a,o=Q;s&&(i[E>>3]=p,i[A>>3]=w)}}else n[B>>2]=0,n[B+4>>2]=0,n[B+8>>2]=0,n[B+12>>2]=0,n[B+16>>2]=0,n[B+20>>2]=0,n[B+24>>2]=0,n[B+28>>2]=0,r=0|n[M>>2]}while((0|k)<(0|r))}}function Fe(A,e,t){var r=0,i=0,o=0;if(!(0|De(A|=0,e|=0,t|=0)))return 0|(i=0);if((0|n[(i=A+8|0)>>2])<=0)return 0|(i=1);for(r=A+12|0,A=0;;){if(o=A,A=A+1|0,0|De((0|n[r>>2])+(o<<3)|0,e+(A<<5)|0,t)){A=0,r=6;break}if((0|A)>=(0|n[i>>2])){A=1,r=6;break}}return 6==(0|r)?0|A:0}function Se(A,e,t,r){r|=0;var i,o,s=0,a=0,l=0,f=0,u=0;if(o=P,P=P+16|0,i=o,!(0|De(A|=0,e|=0,l=(t|=0)+8|0)))return P=o,0|(f=0);f=A+8|0;A:do{if((0|n[f>>2])>0){for(a=A+12|0,s=0;;){if(u=s,s=s+1|0,0|De((0|n[a>>2])+(u<<3)|0,e+(s<<5)|0,l)){s=0;break}if((0|s)>=(0|n[f>>2]))break A}return P=o,0|s}}while(0);if(0|Te(A,e,t,r))return P=o,0|(u=0);n[i>>2]=n[t>>2],n[i+4>>2]=l,s=0|n[f>>2];A:do{if((0|s)>0)for(A=A+12|0,l=0,a=s;;){if(s=0|n[A>>2],(0|n[s+(l<<3)>>2])>0){if(0|De(i,r,0|n[s+(l<<3)+4>>2])){s=0;break A}if(s=l+1|0,0|Te((0|n[A>>2])+(l<<3)|0,e+(s<<5)|0,t,r)){s=0;break A}a=0|n[f>>2]}else s=l+1|0;if(!((0|s)<(0|a))){s=1;break}l=s}else s=1}while(0);return P=o,0|(u=s)}function Te(A,e,t,r){A|=0,t|=0;var o,s,a,l,f,u,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,E=0,k=0,M=0,Q=0;if(u=P,P=P+176|0,l=u+172|0,c=u+168|0,f=u,!(0|$(e|=0,r|=0)))return P=u,0|(A=0);if(function(A,e,t,r){var o,s,a,l,f;e|=0,t|=0,r|=0,A=(s=+i[16+(A|=0)>>3])<(f=+i[A+24>>3]),o=(l=+i[e+16>>3])<(a=+i[e+24>>3]),e=f-l<a-s,n[t>>2]=A?o|e?1:2:0,n[r>>2]=o?A?1:e?2:1:0}(e,r,l,c),gt(0|f,0|t,168),(0|n[t>>2])>0){e=0;do{y=+ue(+i[(M=f+8+(e<<4)+8|0)>>3],0|n[c>>2]),i[M>>3]=y,e=e+1|0}while((0|e)<(0|n[t>>2]))}s=+i[r>>3],a=+i[r+8>>3],y=+ue(+i[r+16>>3],0|n[c>>2]),o=+ue(+i[r+24>>3],0|n[c>>2]);A:do{if((0|n[A>>2])>0){if(r=A+4|0,(0|(c=0|n[f>>2]))<=0)for(e=0;;)if((0|(e=e+1|0))>=(0|n[A>>2])){e=0;break A}for(t=0;;){if(e=0|n[r>>2],B=+i[e+(t<<4)>>3],v=+ue(+i[e+(t<<4)+8>>3],0|n[l>>2]),e=0|n[r>>2],M=(0|(t=t+1|0))%(0|n[A>>2])|0,h=+i[e+(M<<4)>>3],g=+ue(+i[e+(M<<4)+8>>3],0|n[l>>2]),!(B>=s)|!(h>=s)&&!(B<=a)|!(h<=a)&&!(v<=o)|!(g<=o)&&!(v>=y)|!(g>=y)){m=h-B,p=g-v,e=0;do{if(Q=e,M=(0|(e=e+1|0))==(0|c)?0:e,h=+i[f+8+(Q<<4)+8>>3],g=+i[f+8+(M<<4)+8>>3]-h,d=+i[f+8+(Q<<4)>>3],!(0==(b=m*g-p*(w=+i[f+8+(M<<4)>>3]-d))||(E=v-h,k=B-d,w=(E*w-g*k)/b,w<0|w>1))&&(b=(m*E-p*k)/b)>=0&b<=1){e=1;break A}}while((0|e)<(0|c))}if((0|t)>=(0|n[A>>2])){e=0;break}}}else e=0}while(0);return P=u,0|(Q=e)}function Ge(A,e,t,r){var i=0,o=0,s=0;if(0|Te(A|=0,e|=0,t|=0,r|=0))return 0|(o=1);if((0|n[(o=A+8|0)>>2])<=0)return 0|(o=0);for(i=A+12|0,A=0;;){if(s=A,A=A+1|0,0|Te((0|n[i>>2])+(s<<3)|0,e+(A<<5)|0,t,r)){A=1,i=6;break}if((0|A)>=(0|n[o>>2])){A=0,i=6;break}}return 6==(0|i)?0|A:0}function Le(A,e,t,r,n){e|=0,t|=0,r|=0,n|=0;var o,s,a,l,f,u,c,h=0;l=+i[(A|=0)>>3],a=+i[e>>3]-l,s=+i[A+8>>3],o=+i[e+8>>3]-s,u=+i[t>>3],h=((h=+i[r>>3]-u)*(s-(c=+i[t+8>>3]))-(l-u)*(f=+i[r+8>>3]-c))/(a*f-o*h),i[n>>3]=l+a*h,i[n+8>>3]=s+o*h}function Ue(A,e){return e|=0,+l(+(+i[(A|=0)>>3]-+i[e>>3]))<1.1920928955078125e-7?0|(e=+l(+(+i[A+8>>3]-+i[e+8>>3]))<1.1920928955078125e-7):0|(e=0)}function Re(A,e){e|=0;var t,r,n;return+((n=+i[(A|=0)>>3]-+i[e>>3])*n+(r=+i[A+8>>3]-+i[e+8>>3])*r+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function Ye(A,e,t){t|=0;var r,i,o,s,a=0,l=0,f=0;if(s=P,P=P+32|0,f=s,0|(a=0|te(A|=0,e|=0,i=s+16|0)))return P=s,0|(t=a);r=0|YA(A,e),o=0|WA(A,e),function(A,e){A=7696+(28*(A|=0)|0)|0,n[(e|=0)>>2]=n[A>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(r,f),a=0|function(A,e){A|=0;var t=0,r=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11120+(216*e|0)>>2])!=(0|A))if((0|n[11120+(216*e|0)+8>>2])!=(0|A))if((0|n[11120+(216*e|0)+16>>2])!=(0|A))if((0|n[11120+(216*e|0)+24>>2])!=(0|A))if((0|n[11120+(216*e|0)+32>>2])!=(0|A))if((0|n[11120+(216*e|0)+40>>2])!=(0|A))if((0|n[11120+(216*e|0)+48>>2])!=(0|A))if((0|n[11120+(216*e|0)+56>>2])!=(0|A))if((0|n[11120+(216*e|0)+64>>2])!=(0|A))if((0|n[11120+(216*e|0)+72>>2])!=(0|A))if((0|n[11120+(216*e|0)+80>>2])!=(0|A))if((0|n[11120+(216*e|0)+88>>2])!=(0|A))if((0|n[11120+(216*e|0)+96>>2])!=(0|A))if((0|n[11120+(216*e|0)+104>>2])!=(0|A))if((0|n[11120+(216*e|0)+112>>2])!=(0|A))if((0|n[11120+(216*e|0)+120>>2])!=(0|A))if((0|n[11120+(216*e|0)+128>>2])!=(0|A)){if((0|n[11120+(216*e|0)+136>>2])!=(0|A)){if((0|n[11120+(216*e|0)+144>>2])==(0|A)){A=0,t=2,r=0;break}if((0|n[11120+(216*e|0)+152>>2])==(0|A)){A=0,t=2,r=1;break}if((0|n[11120+(216*e|0)+160>>2])==(0|A)){A=0,t=2,r=2;break}if((0|n[11120+(216*e|0)+168>>2])==(0|A)){A=1,t=2,r=0;break}if((0|n[11120+(216*e|0)+176>>2])==(0|A)){A=1,t=2,r=1;break}if((0|n[11120+(216*e|0)+184>>2])==(0|A)){A=1,t=2,r=2;break}if((0|n[11120+(216*e|0)+192>>2])==(0|A)){A=2,t=2,r=0;break}if((0|n[11120+(216*e|0)+200>>2])==(0|A)){A=2,t=2,r=1;break}if((0|n[11120+(216*e|0)+208>>2])==(0|A)){A=2,t=2,r=2;break}return-1}A=2,t=1,r=2}else A=2,t=1,r=1;else A=2,t=1,r=0;else A=1,t=1,r=2;else A=1,t=1,r=1;else A=1,t=1,r=0;else A=0,t=1,r=2;else A=0,t=1,r=1;else A=0,t=1,r=0;else A=2,t=0,r=2;else A=2,t=0,r=1;else A=2,t=0,r=0;else A=1,t=0,r=2;else A=1,t=0,r=1;else A=1,t=0,r=0;else A=0,t=0,r=2;else A=0,t=0,r=1;else A=0,t=0,r=0}while(0);return 0|n[11120+(216*e|0)+(72*t|0)+(24*A|0)+(r<<3)+4>>2]}(r,0|n[i>>2]);A:do{if(0|O(r)){switch(0|r){case 4:A=0;break;case 14:A=1;break;case 24:A=2;break;case 38:A=3;break;case 49:A=4;break;case 58:A=5;break;case 63:A=6;break;case 72:A=7;break;case 83:A=8;break;case 97:A=9;break;case 107:A=10;break;case 117:A=11;break;default:a=1;break A}if(l=0|n[26416+(24*A|0)+8>>2],e=0|n[26416+(24*A|0)+16>>2],(0|(A=0|n[i>>2]))!=(0|n[f>>2])&&(f=0|H(r))|(0|(A=0|n[i>>2]))==(0|e)&&(a=(a+1|0)%6|0),3==(0|o)&(0|A)==(0|e)){a=(a+5|0)%6|0,l=22;break}5==(0|o)&(0|A)==(0|l)?(a=(a+1|0)%6|0,l=22):l=22}else l=22}while(0);return 22==(0|l)&&(n[t>>2]=a,a=0),P=s,0|(t=a)}function ze(A,e,t,r){t|=0,r|=0;var i,o,s,a,l,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0;if(l=P,P=P+32|0,B=l+24|0,a=l+20|0,s=l+8|0,o=l+16|0,i=l,g=(g=!(0|VA(A|=0,e|=0)))?6:5,w=0|at(0|A,0|e,52),M(),g>>>0<=t>>>0)return P=l,0|(r=2);!(p=!(0|(w&=15)))&&!((b=0|lt(7,0,3*(15^w)|0))&A|0)&!((0|M())&e)?f=t:u=4;A:do{if(4==(0|u)){if((0|((f=!!(0|VA(A,e)))?4:5))<(0|t))return P=l,0|(r=1);if(0|Ye(A,e,B))return P=l,0|(r=1);if(u=(0|n[B>>2])+t|0,7==(0|(b=0|n[(f=f?26704+((0|u)%5<<2)|0:26736+((0|u)%6<<2)|0)>>2])))return P=l,0|(r=1);n[a>>2]=0,f=0|L(A,e,b,a,s);do{if(!f){if(d=0|n[(h=s)>>2],u=(c=(h=0|n[h+4>>2])>>>0<e>>>0|(0|h)==(0|e)&d>>>0<A>>>0)?d:A,c=c?h:e,!p&&!(d&(p=0|lt(7,0,3*(15^w)|0))|0)&!(h&(0|M())))f=t;else{if(h=(t+-1+g|0)%(0|g)|0,f=0|VA(A,e),(0|h)<0&&Q(27795,27797,246,27806),(0|((g=!!(0|f))?4:5))<(0|h)&&Q(27795,27797,246,27806),0|Ye(A,e,B)&&Q(27795,27797,246,27806),f=(0|n[B>>2])+h|0,7==(0|(h=0|n[(f=g?26704+((0|f)%5<<2)|0:26736+((0|f)%6<<2)|0)>>2]))&&Q(27795,27797,246,27806),n[o>>2]=0,0|(f=0|L(A,e,h,o,i)))break;g=0|n[(d=i)>>2],d=0|n[d+4>>2];do{if(d>>>0<c>>>0|(0|d)==(0|c)&g>>>0<u>>>0){if(u=0|VA(g,d)?0|Y(g,d,A,e):0|n[26800+(((0|n[o>>2])+(0|n[26768+(h<<2)>>2])|0)%6<<2)>>2],f=0|VA(g,d),(u+-1|0)>>>0>5){f=-1,u=g,c=d;break}if(1==(0|u)&(f=!!(0|f))){f=-1,u=g,c=d;break}do{if(!(0|Ye(g,d,B))){if(f){f=(5+(0|n[26352+(u<<2)>>2])-(0|n[B>>2])|0)%5|0;break}f=(6+(0|n[26384+(u<<2)>>2])-(0|n[B>>2])|0)%6|0;break}f=-1}while(0);u=g,c=d}else f=t}while(0);d=0|n[(h=s)>>2],h=0|n[h+4>>2]}if((0|u)==(0|d)&(0|c)==(0|h)){if(A=(g=!!(0|VA(d,h)))?0|Y(d,h,A,e):0|n[26800+(((0|n[a>>2])+(0|n[26768+(b<<2)>>2])|0)%6<<2)>>2],f=0|VA(d,h),(A+-1|0)>>>0<=5&&!(1==(0|A)&(m=!!(0|f))))do{if(!(0|Ye(d,h,B))){if(m){f=(5+(0|n[26352+(A<<2)>>2])-(0|n[B>>2])|0)%5|0;break}f=(6+(0|n[26384+(A<<2)>>2])-(0|n[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=u;break A}}while(0);return P=l,0|(r=f)}}while(0);return m=0|lt(0|f,0,56),B=M()|-2130706433&e|536870912,n[r>>2]=m|A,n[r+4>>2]=B,P=l,0|(r=0)}function Oe(A,e,t){A|=0,t|=0;var r=0;(0|(e|=0))>0?(r=0|qe(e,4),n[A>>2]=r,r||Q(27819,27842,40,27856)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=t}function He(A){var e,t,r,o=0,s=0,a=0,f=0;e=(A|=0)+4|0,t=A+12|0,r=A+8|0;A:for(;;){for(s=0|n[e>>2],o=0;;){if((0|o)>=(0|s))break A;if(a=0|n[A>>2],f=0|n[a+(o<<2)>>2])break;o=o+1|0}o=a+(~~(+l(+ +u(10,+ +(15-(0|n[t>>2])|0))*(+i[f>>3]+ +i[f+8>>3]))%+(0|s))>>>0<<2)|0,s=0|n[o>>2];e:do{if(0|s){if(a=f+32|0,(0|s)==(0|f))n[o>>2]=n[a>>2];else{if(!(o=0|n[(s=s+32|0)>>2]))break;for(;(0|o)!=(0|f);)if(!(o=0|n[(s=o+32|0)>>2]))break e;n[s>>2]=n[a>>2]}Ke(f),n[r>>2]=(0|n[r>>2])-1}}while(0)}Ke(0|n[A>>2])}function Ne(A){var e,t=0,r=0;for(e=0|n[(A|=0)+4>>2],r=0;;){if((0|r)>=(0|e)){t=0,r=4;break}if(t=0|n[(0|n[A>>2])+(r<<2)>>2]){r=4;break}r=r+1|0}return 4==(0|r)?0|t:0}function Ve(A,e){e|=0;var t=0,r=0,o=0,s=0;if(t=~~(+l(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,t=(0|n[A>>2])+(t<<2)|0,!(r=0|n[t>>2]))return 0|(s=1);s=e+32|0;do{if((0|r)!=(0|e)){if(!(t=0|n[r+32>>2]))return 0|(s=1);for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|n[o+32>>2])){t=1,o=10;break}r=o,o=t}if(8==(0|o)){n[r+32>>2]=n[s>>2];break}if(10==(0|o))return 0|t}else n[t>>2]=n[s>>2]}while(0);return Ke(e),n[(s=A+8|0)>>2]=(0|n[s>>2])-1,0|(s=0)}function Xe(A,e,t){A|=0,e|=0,t|=0;var r,o=0,s=0,a=0;(r=0|Je(40))||Q(27872,27842,98,27885),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[(s=r+16|0)>>2]=n[t>>2],n[s+4>>2]=n[t+4>>2],n[s+8>>2]=n[t+8>>2],n[s+12>>2]=n[t+12>>2],n[r+32>>2]=0,s=~~(+l(+ +u(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,s=(0|n[A>>2])+(s<<2)|0,o=0|n[s>>2];do{if(o){for(;!(0|fe(o,e)&&0|fe(o+16|0,t));)if(s=0|n[o+32>>2],!(0|n[(o=0|s?s:o)+32>>2])){a=10;break}if(10==(0|a)){n[o+32>>2]=r;break}return Ke(r),0|(a=o)}n[s>>2]=r}while(0);return n[(a=A+8|0)>>2]=1+(0|n[a>>2]),0|(a=r)}function je(A,e,t){e|=0,t|=0;var r=0,o=0;if(o=~~(+l(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0|(t=0);if(!t){for(A=o;;){if(0|fe(A,e)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}if(10==(0|r))return 0|A}for(A=o;;){if(0|fe(A,e)&&0|fe(A+16|0,t)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}return 10==(0|r)?0|A:0}function We(A,e){e|=0;var t=0;if(t=~~(+l(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(t<<2)>>2]))return 0|(t=0);for(;;){if(0|fe(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function Ze(A){return 0|+wt(+(A=+A))}function Je(A){A|=0;var e,t=0,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0;e=P,P=P+16|0,g=e;do{if(A>>>0<245){if(A=(u=A>>>0<11?16:A+11&-8)>>>3,3&(r=(h=0|n[6977])>>>A))return i=0|n[(r=(A=27948+((t=(1&r^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(s=0|n[(o=i+8|0)>>2]))==(0|A)?n[6977]=h&~(1<<t):(n[s+12>>2]=A,n[r>>2]=s),y=t<<3,n[i+4>>2]=3|y,n[(y=i+y+4|0)>>2]=1|n[y>>2],P=e,0|(y=o);if(u>>>0>(c=0|n[6979])>>>0){if(0|r)return t=((t=r<<A&((t=2<<A)|0-t))&0-t)-1|0,s=0|n[(A=(t=27948+((i=((r=(t>>>=l=t>>>12&16)>>>5&8)|l|(s=(t>>>=r)>>>2&4)|(A=(t>>>=s)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(r=0|n[(l=s+8|0)>>2]))==(0|t)?(A=h&~(1<<i),n[6977]=A):(n[r+12>>2]=t,n[A>>2]=r,A=h),a=(y=i<<3)-u|0,n[s+4>>2]=3|u,n[(o=s+u|0)+4>>2]=1|a,n[s+y>>2]=a,0|c&&(i=0|n[6982],r=27948+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[6979]=a,n[6982]=o,P=e,0|(y=l);if(s=0|n[6978]){for(r=(s&0-s)-1|0,r=f=0|n[28212+(((i=(r>>>=o=r>>>12&16)>>>5&8)|o|(a=(r>>>=i)>>>2&4)|(l=(r>>>=a)>>>1&2)|(f=(r>>>=l)>>>1&1))+(r>>>f)<<2)>>2],l=f,f=(-8&n[f+4>>2])-u|0;(A=0|n[r+16>>2])||(A=0|n[r+20>>2]);)r=A,l=(o=(a=(-8&n[A+4>>2])-u|0)>>>0<f>>>0)?A:l,f=o?a:f;if((a=l+u|0)>>>0>l>>>0){o=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){r=0;break}for(;;)if(r=0|n[(i=t+20|0)>>2])t=r,A=i;else{if(!(r=0|n[(i=t+16|0)>>2]))break;t=r,A=i}n[A>>2]=0,r=t}else r=0|n[l+8>>2],n[r+12>>2]=t,n[t+8>>2]=r,r=t}while(0);do{if(0|o){if(t=0|n[l+28>>2],(0|l)==(0|n[(A=28212+(t<<2)|0)>>2])){if(n[A>>2]=r,!r){n[6978]=s&~(1<<t);break}}else if(n[((0|n[(y=o+16|0)>>2])==(0|l)?y:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(t=0|n[l+16>>2])&&(n[r+16>>2]=t,n[t+24>>2]=r),0|(t=0|n[l+20>>2])&&(n[r+20>>2]=t,n[t+24>>2]=r)}}while(0);return f>>>0<16?(y=f+u|0,n[l+4>>2]=3|y,n[(y=l+y+4|0)>>2]=1|n[y>>2]):(n[l+4>>2]=3|u,n[a+4>>2]=1|f,n[a+f>>2]=f,0|c&&(i=0|n[6982],r=27948+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|n[(A=r+8|0)>>2]:(n[6977]=t|h,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[6979]=f,n[6982]=a),P=e,0|(y=l+8|0)}h=u}else h=u}else h=u}else if(A>>>0<=4294967231)if(u=-8&(A=A+11|0),i=0|n[6978]){o=0-u|0,f=(A>>>=8)?u>>>0>16777215?31:u>>>((f=14-((l=((p=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(f=((p<<=l)+245760|0)>>>16&2))+(p<<f>>>15)|0)+7|0)&1|f<<1:0,r=0|n[28212+(f<<2)>>2];A:do{if(r)for(A=0,l=u<<(31==(0|f)?0:25-(f>>>1)|0),s=0;;){if((a=(-8&n[r+4>>2])-u|0)>>>0<o>>>0){if(!a){A=r,o=0,p=65;break A}A=r,o=a}if(s=!(0|(p=0|n[r+20>>2]))|(0|p)==(0|(r=0|n[r+16+(l>>>31<<2)>>2]))?s:p,!r){r=s,p=61;break}l<<=1}else r=0,A=0,p=61}while(0);if(61==(0|p)){if(!(0|r)&!(0|A)){if(!(A=((A=2<<f)|0-A)&i)){h=u;break}h=(A&0-A)-1|0,A=0,r=0|n[28212+(((s=(h>>>=a=h>>>12&16)>>>5&8)|a|(l=(h>>>=s)>>>2&4)|(f=(h>>>=l)>>>1&2)|(r=(h>>>=f)>>>1&1))+(h>>>r)<<2)>>2]}r?p=65:(l=A,a=o)}if(65==(0|p))for(s=r;;){if(o=(r=(h=(-8&n[s+4>>2])-u|0)>>>0<o>>>0)?h:o,A=r?s:A,(r=0|n[s+16>>2])||(r=0|n[s+20>>2]),!r){l=A,a=o;break}s=r}if(0|l&&a>>>0<((0|n[6979])-u|0)>>>0&&(c=l+u|0)>>>0>l>>>0){s=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){t=0;break}for(;;)if(r=0|n[(o=t+20|0)>>2])t=r,A=o;else{if(!(r=0|n[(o=t+16|0)>>2]))break;t=r,A=o}n[A>>2]=0}else y=0|n[l+8>>2],n[y+12>>2]=t,n[t+8>>2]=y}while(0);do{if(s){if(A=0|n[l+28>>2],(0|l)==(0|n[(r=28212+(A<<2)|0)>>2])){if(n[r>>2]=t,!t){i&=~(1<<A),n[6978]=i;break}}else if(n[((0|n[(y=s+16|0)>>2])==(0|l)?y:s+20)>>2]=t,!t)break;n[t+24>>2]=s,0|(A=0|n[l+16>>2])&&(n[t+16>>2]=A,n[A+24>>2]=t),(A=0|n[l+20>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);A:do{if(a>>>0<16)y=a+u|0,n[l+4>>2]=3|y,n[(y=l+y+4|0)>>2]=1|n[y>>2];else{if(n[l+4>>2]=3|u,n[c+4>>2]=1|a,n[c+a>>2]=a,t=a>>>3,a>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=c,n[t+12>>2]=c,n[c+8>>2]=t,n[c+12>>2]=r;break}if(t=28212+((r=(t=a>>>8)?a>>>0>16777215?31:a>>>((r=14-((B=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(r=((y<<=B)+245760|0)>>>16&2))+(y<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[c+28>>2]=r,n[(A=c+16|0)+4>>2]=0,n[A>>2]=0,!(i&(A=1<<r))){n[6978]=i|A,n[t>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break}t=0|n[t>>2];e:do{if((-8&n[t+4>>2])!=(0|a)){for(i=a<<(31==(0|r)?0:25-(r>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}n[r>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=c,n[v>>2]=c,n[c+8>>2]=y,n[c+12>>2]=t,n[c+24>>2]=0}}while(0);return P=e,0|(y=l+8|0)}h=u}else h=u;else h=-1}while(0);if((r=0|n[6979])>>>0>=h>>>0)return t=r-h|0,A=0|n[6982],t>>>0>15?(y=A+h|0,n[6982]=y,n[6979]=t,n[y+4>>2]=1|t,n[A+r>>2]=t,n[A+4>>2]=3|h):(n[6979]=0,n[6982]=0,n[A+4>>2]=3|r,n[(y=A+r+4|0)>>2]=1|n[y>>2]),P=e,0|(y=A+8|0);if((a=0|n[6980])>>>0>h>>>0)return B=a-h|0,n[6980]=B,v=(y=0|n[6983])+h|0,n[6983]=v,n[v+4>>2]=1|B,n[y+4>>2]=3|h,P=e,0|(y=y+8|0);if(0|n[7095]?A=0|n[7097]:(n[7097]=4096,n[7096]=4096,n[7098]=-1,n[7099]=-1,n[7100]=0,n[7088]=0,n[7095]=-16&g^1431655768,A=4096),l=h+48|0,(u=(s=A+(f=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return P=e,0|(y=0);if(0|(A=0|n[7087])&&(g=(c=0|n[7085])+u|0)>>>0<=c>>>0|g>>>0>A>>>0)return P=e,0|(y=0);A:do{if(4&n[7088])t=0,p=143;else{r=0|n[6983];e:do{if(r){for(i=28356;!((g=0|n[i>>2])>>>0<=r>>>0&&(g+(0|n[i+4>>2])|0)>>>0>r>>>0);){if(!(A=0|n[i+8>>2])){p=128;break e}i=A}if((t=s-a&o)>>>0<2147483647)if((0|(A=0|pt(0|t)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){a=t,s=A,p=145;break A}}else i=A,p=136;else t=0}else p=128}while(0);do{if(128==(0|p))if(-1!=(0|(r=0|pt(0)))&&(t=r,w=(t=((w=(d=0|n[7096])+-1|0)&t|0?(w+t&0-d)-t|0:0)+u|0)+(d=0|n[7085])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(g=0|n[7087])&&w>>>0<=d>>>0|w>>>0>g>>>0){t=0;break}if((0|(A=0|pt(0|t)))==(0|r)){a=t,s=r,p=145;break A}i=A,p=136}else t=0}while(0);do{if(136==(0|p)){if(r=0-t|0,!(l>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}a=t,s=i,p=145;break A}if((A=f-t+(A=0|n[7097])&0-A)>>>0>=2147483647){a=t,s=i,p=145;break A}if(-1==(0|pt(0|A))){pt(0|r),t=0;break}a=A+t|0,s=i,p=145;break A}}while(0);n[7088]=4|n[7088],p=143}}while(0);if(143==(0|p)&&u>>>0<2147483647&&!(-1==(0|(B=0|pt(0|u)))|1^(m=(b=(w=0|pt(0))-B|0)>>>0>(h+40|0)>>>0)|B>>>0<w>>>0&-1!=(0|B)&-1!=(0|w)^1)&&(a=m?b:t,s=B,p=145),145==(0|p)){t=(0|n[7085])+a|0,n[7085]=t,t>>>0>(0|n[7086])>>>0&&(n[7086]=t),f=0|n[6983];A:do{if(f){for(t=28356;;){if((0|s)==((A=0|n[t>>2])+(r=0|n[t+4>>2])|0)){p=154;break}if(!(i=0|n[t+8>>2]))break;t=i}if(!(154!=(0|p)||(v=t+4|0,8&n[t+12>>2]))&&s>>>0>f>>>0&A>>>0<=f>>>0){n[v>>2]=r+a,v=f+(B=7&(B=f+8|0)?0-B&7:0)|0,B=(y=(0|n[6980])+a|0)-B|0,n[6983]=v,n[6980]=B,n[v+4>>2]=1|B,n[f+y+4>>2]=40,n[6984]=n[7099];break}for(s>>>0<(0|n[6981])>>>0&&(n[6981]=s),r=s+a|0,t=28356;;){if((0|n[t>>2])==(0|r)){p=162;break}if(!(A=0|n[t+8>>2]))break;t=A}if(162==(0|p)&&!(8&n[t+12>>2])){n[t>>2]=s,n[(c=t+4|0)>>2]=(0|n[c>>2])+a,u=(c=s+(7&(c=s+8|0)?0-c&7:0)|0)+h|0,l=(t=r+(7&(t=r+8|0)?0-t&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|f)==(0|t))y=(0|n[6980])+l|0,n[6980]=y,n[6983]=u,n[u+4>>2]=1|y;else{if((0|n[6982])==(0|t)){y=(0|n[6979])+l|0,n[6979]=y,n[6982]=u,n[u+4>>2]=1|y,n[u+y>>2]=y;break}if(1==(3&(A=0|n[t+4>>2]))){a=-8&A,i=A>>>3;t:do{if(A>>>0<256){if(A=0|n[t+8>>2],(0|(r=0|n[t+12>>2]))==(0|A)){n[6977]=n[6977]&~(1<<i);break}n[A+12>>2]=r,n[r+8>>2]=A;break}s=0|n[t+24>>2],A=0|n[t+12>>2];do{if((0|A)==(0|t)){if(A=0|n[(i=(r=t+16|0)+4|0)>>2])r=i;else if(!(A=0|n[r>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,r=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,r=o}n[r>>2]=0}else y=0|n[t+8>>2],n[y+12>>2]=A,n[A+8>>2]=y}while(0);if(!s)break;i=28212+((r=0|n[t+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|t)){if(n[i>>2]=A,0|A)break;n[6978]=n[6978]&~(1<<r);break t}if(n[((0|n[(y=s+16|0)>>2])==(0|t)?y:s+20)>>2]=A,!A)break t}while(0);if(n[A+24>>2]=s,0|(i=0|n[(r=t+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(r=0|n[r+4>>2]))break;n[A+20>>2]=r,n[r+24>>2]=A}while(0);t=t+a|0,o=a+l|0}else o=l;if(n[(t=t+4|0)>>2]=-2&n[t>>2],n[u+4>>2]=1|o,n[u+o>>2]=o,t=o>>>3,o>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=u,n[t+12>>2]=u,n[u+8>>2]=t,n[u+12>>2]=r;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((B=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((y<<=B)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(t=28212+(i<<2)|0,n[u+28>>2]=i,n[(A=u+16|0)+4>>2]=0,n[A>>2]=0,!((A=0|n[6978])&(r=1<<i))){n[6978]=A|r,n[t>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break}t=0|n[t>>2];t:do{if((-8&n[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}n[r>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break e}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=u,n[v>>2]=u,n[u+8>>2]=y,n[u+12>>2]=t,n[u+24>>2]=0}}while(0);return P=e,0|(y=c+8|0)}for(t=28356;!((A=0|n[t>>2])>>>0<=f>>>0&&(y=A+(0|n[t+4>>2])|0)>>>0>f>>>0);)t=0|n[t+8>>2];t=(A=(A=(o=y+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=f+16|0)>>>0?f:A)+8|0,v=s+(B=7&(B=s+8|0)?0-B&7:0)|0,B=(r=a+-40|0)-B|0,n[6983]=v,n[6980]=B,n[v+4>>2]=1|B,n[s+r+4>>2]=40,n[6984]=n[7099],n[(r=A+4|0)>>2]=27,n[t>>2]=n[7089],n[t+4>>2]=n[7090],n[t+8>>2]=n[7091],n[t+12>>2]=n[7092],n[7089]=s,n[7090]=a,n[7092]=0,n[7091]=t,t=A+24|0;do{v=t,n[(t=t+4|0)>>2]=7}while((v+8|0)>>>0<y>>>0);if((0|A)!=(0|f)){if(s=A-f|0,n[r>>2]=-2&n[r>>2],n[f+4>>2]=1|s,n[A>>2]=s,t=s>>>3,s>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=f,n[t+12>>2]=f,n[f+8>>2]=t,n[f+12>>2]=r;break}if(r=28212+((i=(t=s>>>8)?s>>>0>16777215?31:s>>>((i=14-((B=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((y<<=B)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,n[f+28>>2]=i,n[f+20>>2]=0,n[o>>2]=0,!((t=0|n[6978])&(A=1<<i))){n[6978]=t|A,n[r>>2]=f,n[f+24>>2]=r,n[f+12>>2]=f,n[f+8>>2]=f;break}t=0|n[r>>2];e:do{if((-8&n[t+4>>2])!=(0|s)){for(i=s<<(31==(0|i)?0:25-(i>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|s)){t=A;break e}i<<=1,t=A}n[r>>2]=f,n[f+24>>2]=t,n[f+12>>2]=f,n[f+8>>2]=f;break A}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=f,n[v>>2]=f,n[f+8>>2]=y,n[f+12>>2]=t,n[f+24>>2]=0}}else!(0|(y=0|n[6981]))|s>>>0<y>>>0&&(n[6981]=s),n[7089]=s,n[7090]=a,n[7092]=0,n[6986]=n[7095],n[6985]=-1,n[6990]=27948,n[6989]=27948,n[6992]=27956,n[6991]=27956,n[6994]=27964,n[6993]=27964,n[6996]=27972,n[6995]=27972,n[6998]=27980,n[6997]=27980,n[7e3]=27988,n[6999]=27988,n[7002]=27996,n[7001]=27996,n[7004]=28004,n[7003]=28004,n[7006]=28012,n[7005]=28012,n[7008]=28020,n[7007]=28020,n[7010]=28028,n[7009]=28028,n[7012]=28036,n[7011]=28036,n[7014]=28044,n[7013]=28044,n[7016]=28052,n[7015]=28052,n[7018]=28060,n[7017]=28060,n[7020]=28068,n[7019]=28068,n[7022]=28076,n[7021]=28076,n[7024]=28084,n[7023]=28084,n[7026]=28092,n[7025]=28092,n[7028]=28100,n[7027]=28100,n[7030]=28108,n[7029]=28108,n[7032]=28116,n[7031]=28116,n[7034]=28124,n[7033]=28124,n[7036]=28132,n[7035]=28132,n[7038]=28140,n[7037]=28140,n[7040]=28148,n[7039]=28148,n[7042]=28156,n[7041]=28156,n[7044]=28164,n[7043]=28164,n[7046]=28172,n[7045]=28172,n[7048]=28180,n[7047]=28180,n[7050]=28188,n[7049]=28188,n[7052]=28196,n[7051]=28196,v=s+(B=7&(B=s+8|0)?0-B&7:0)|0,B=(y=a+-40|0)-B|0,n[6983]=v,n[6980]=B,n[v+4>>2]=1|B,n[s+y+4>>2]=40,n[6984]=n[7099]}while(0);if((t=0|n[6980])>>>0>h>>>0)return B=t-h|0,n[6980]=B,v=(y=0|n[6983])+h|0,n[6983]=v,n[v+4>>2]=1|B,n[y+4>>2]=3|h,P=e,0|(y=y+8|0)}return n[(y=27904)>>2]=12,P=e,0|(y=0)}function Ke(A){var e=0,t=0,r=0,i=0,o=0,s=0,a=0,l=0;if(A|=0){t=A+-8|0,i=0|n[6981],l=t+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)a=t,s=t;else{if(r=0|n[t>>2],!(3&A))return;if(o=r+e|0,(s=t+(0-r)|0)>>>0<i>>>0)return;if((0|n[6982])==(0|s)){if(3&~(e=0|n[(A=l+4|0)>>2])){a=s,e=o;break}return n[6979]=o,n[A>>2]=-2&e,n[s+4>>2]=1|o,void(n[s+o>>2]=o)}if(t=r>>>3,r>>>0<256){if(A=0|n[s+8>>2],(0|(e=0|n[s+12>>2]))==(0|A)){n[6977]=n[6977]&~(1<<t),a=s,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,a=s,e=o;break}i=0|n[s+24>>2],A=0|n[s+12>>2];do{if((0|A)==(0|s)){if(A=0|n[(t=(e=s+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0}else a=0|n[s+8>>2],n[a+12>>2]=A,n[A+8>>2]=a}while(0);if(i){if(e=0|n[s+28>>2],(0|n[(t=28212+(e<<2)|0)>>2])==(0|s)){if(n[t>>2]=A,!A){n[6978]=n[6978]&~(1<<e),a=s,e=o;break}}else if(n[((0|n[(a=i+16|0)>>2])==(0|s)?a:i+20)>>2]=A,!A){a=s,e=o;break}n[A+24>>2]=i,0|(t=0|n[(e=s+16|0)>>2])&&(n[A+16>>2]=t,n[t+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,a=s,e=o):(a=s,e=o)}else a=s,e=o}}while(0);if(!(s>>>0>=l>>>0)&&1&(r=0|n[(A=l+4|0)>>2])){if(2&r)n[A>>2]=-2&r,n[a+4>>2]=1|e,n[s+e>>2]=e,i=e;else{if((0|n[6983])==(0|l)){if(l=(0|n[6980])+e|0,n[6980]=l,n[6983]=a,n[a+4>>2]=1|l,(0|a)!=(0|n[6982]))return;return n[6982]=0,void(n[6979]=0)}if((0|n[6982])==(0|l))return l=(0|n[6979])+e|0,n[6979]=l,n[6982]=s,n[a+4>>2]=1|l,void(n[s+l>>2]=l);i=(-8&r)+e|0,t=r>>>3;do{if(r>>>0<256){if(e=0|n[l+8>>2],(0|(A=0|n[l+12>>2]))==(0|e)){n[6977]=n[6977]&~(1<<t);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[l+24>>2],A=0|n[l+12>>2];do{if((0|A)==(0|l)){if(A=0|n[(t=(e=l+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){t=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0,t=A}else t=0|n[l+8>>2],n[t+12>>2]=A,n[A+8>>2]=t,t=A}while(0);if(0|o){if(A=0|n[l+28>>2],(0|n[(e=28212+(A<<2)|0)>>2])==(0|l)){if(n[e>>2]=t,!t){n[6978]=n[6978]&~(1<<A);break}}else if(n[((0|n[(r=o+16|0)>>2])==(0|l)?r:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(e=0|n[(A=l+16|0)>>2])&&(n[t+16>>2]=e,n[e+24>>2]=t),0|(A=0|n[A+4>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);if(n[a+4>>2]=1|i,n[s+i>>2]=i,(0|a)==(0|n[6982]))return void(n[6979]=i)}if(A=i>>>3,i>>>0<256)return t=27948+(A<<1<<2)|0,(e=0|n[6977])&(A=1<<A)?A=0|n[(e=t+8|0)>>2]:(n[6977]=e|A,A=t,e=t+8|0),n[e>>2]=a,n[A+12>>2]=a,n[a+8>>2]=A,void(n[a+12>>2]=t);A=28212+((r=(A=i>>>8)?i>>>0>16777215?31:i>>>((r=14-((o=((l=A<<(s=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|s|(r=((l<<=o)+245760|0)>>>16&2))+(l<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[a+28>>2]=r,n[a+20>>2]=0,n[a+16>>2]=0,e=0|n[6978],t=1<<r;A:do{if(e&t){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(r=i<<(31==(0|r)?0:25-(r>>>1)|0);e=0|n[(t=A+16+(r>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}r<<=1,A=e}n[t>>2]=a,n[a+24>>2]=A,n[a+12>>2]=a,n[a+8>>2]=a;break A}}while(0);l=0|n[(s=A+8|0)>>2],n[l+12>>2]=a,n[s>>2]=a,n[a+8>>2]=l,n[a+12>>2]=A,n[a+24>>2]=0}else n[6978]=e|t,n[A>>2]=a,n[a+24>>2]=A,n[a+12>>2]=a,n[a+8>>2]=a}while(0);if(l=(0|n[6985])-1|0,n[6985]=l,!(0|l)){for(A=28364;A=0|n[A>>2];)A=A+8|0;n[6985]=-1}}}}function qe(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|Je(t))&&3&n[A+-4>>2]?(dt(0|A,0,0|t),0|A):0|A}function $e(A,e,t,r){return 0|(k((e|=0)+(r|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}function At(A,e,t,r){return 0|(k(0|(r=(e|=0)-(r|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function et(A){return 0|((A|=0)?31-(0|E(A^A-1)):32)}function tt(A,e,t,r,i){i|=0;var o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0;if(u=A|=0,s=t|=0,a=h=r|=0,!(f=l=e|=0))return o=!!(0|i),a?o?(n[i>>2]=0|A,n[i+4>>2]=0&e,i=0,0|(k(0|(h=0)),i)):(i=0,0|(k(0|(h=0)),i)):(o&&(n[i>>2]=(u>>>0)%(s>>>0),n[i+4>>2]=0),i=(u>>>0)/(s>>>0)>>>0,0|(k(0|(h=0)),i));o=!(0|a);do{if(s){if(!o){if((o=(0|E(0|a))-(0|E(0|f))|0)>>>0<=31){s=c=o+1|0,A=u>>>(c>>>0)&(e=o-31>>31)|f<<(a=31-o|0),e&=f>>>(c>>>0),o=0,a=u<<a;break}return i?(n[i>>2]=0|A,n[i+4>>2]=l|0&e,i=0,0|(k(0|(h=0)),i)):(i=0,0|(k(0|(h=0)),i))}if((o=s-1|0)&s|0){s=a=33+(0|E(0|s))-(0|E(0|f))|0,A=(c=32-a|0)-1>>31&f>>>((g=a-32|0)>>>0)|(f<<c|u>>>(a>>>0))&(e=g>>31),e&=f>>>(a>>>0),o=u<<(d=64-a|0)&(l=c>>31),a=(f<<d|u>>>(g>>>0))&l|u<<c&a-33>>31;break}return 0|i&&(n[i>>2]=o&u,n[i+4>>2]=0),1==(0|s)?(d=0|A,0|(k(0|(g=l|0&e)),d)):(g=f>>>((d=0|et(0|s))>>>0)|0,d=f<<32-d|u>>>(d>>>0),0|(k(0|g),d))}if(o)return 0|i&&(n[i>>2]=(f>>>0)%(s>>>0),n[i+4>>2]=0),d=(f>>>0)/(s>>>0)>>>0,0|(k(0|(g=0)),d);if(!u)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(f>>>0)%(a>>>0)),d=(f>>>0)/(a>>>0)>>>0,0|(k(0|(g=0)),d);if(!((o=a-1|0)&a))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&f|0&e),g=0,d=f>>>((0|et(0|a))>>>0),0|(k(0|g),d);if((o=(0|E(0|a))-(0|E(0|f))|0)>>>0<=30){s=e=o+1|0,A=f<<(a=31-o|0)|u>>>(e>>>0),e=f>>>(e>>>0),o=0,a=u<<a;break}return i?(n[i>>2]=0|A,n[i+4>>2]=l|0&e,d=0,0|(k(0|(g=0)),d)):(d=0,0|(k(0|(g=0)),d))}while(0);if(s){f=0|$e(0|(c=0|t),0|(u=h|0&r),-1,-1),t=0|M(),l=a,a=0;do{r=l,l=o>>>31|l<<1,o=a|o<<1,At(0|f,0|t,0|(r=A<<1|r>>>31),0|(h=A>>>31|e<<1)),a=1&(g=(d=0|M())>>31|((0|d)<0?-1:0)<<1),A=0|At(0|r,0|h,g&c|0,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&u),e=0|M(),s=s-1|0}while(0|s);f=l,l=0}else f=a,l=0,a=0;return s=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),d=o<<1&-2|a,0|(k(0|(g=(0|o)>>>31|(f|s)<<1|l)),d)}function rt(A,e,t,r){t|=0;var n,i,o,s,a;return i=(r|=0)>>31|((0|r)<0?-1:0)<<1,n=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,o=0|At((a=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0)|0,(s=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e|0,0|a,0|s),A=i^a,e=n^s,0|At((0|tt(o,0|M(),0|At(i^t|0,n^r|0,0|i,0|n),0|M(),0))^A,(0|M())^e,0|A,0|e)}function nt(A,e,t,r){e|=0,r|=0;var n,i;return t=0|function(A,e){var t,r,n,i=0;return A=((t=0|B(i=65535&(e|=0),n=65535&(A|=0)))>>>16)+(0|B(i,r=A>>>16))|0,e=0|B(i=e>>>16,n),0|(k((A>>>16)+(0|B(i,r))+(((65535&A)+e|0)>>>16)|0),A+e<<16|65535&t)}(n=A|=0,i=t|=0),A=0|M(),0|(k((0|B(e,i))+(0|B(r,n))+A|0&A),t)}function it(A,e,t,r){t|=0;var i,o,s,a,l,f;return i=P,P=P+16|0,a=0|i,f=(r|=0)>>31|((0|r)<0?-1:0)<<1,l=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,tt(A=0|At((s=(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|s,0|o),e=0|M(),0|At(f^t|0,l^r|0,0|f,0|l),0|M(),a),r=0|At(n[a>>2]^s|0,n[a+4>>2]^o|0,0|s,0|o),t=0|M(),P=i,0|(k(0|t),r)}function ot(A,e,t,r){var i,o;return o=P,P=P+16|0,tt(A|=0,e|=0,t|=0,r|=0,i=0|o),P=o,0|(k(0|n[i+4>>2]),n[i>>2])}function st(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(k(e>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(k(0|((0|e)<0?-1:0)),e>>t-32)}function at(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(k(e>>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(k(0),e>>>t-32|0)}function lt(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(k(e<<t|(A&(1<<t)-1<<32-t)>>>32-t),A<<t):(k(A<<t-32),0)}function ft(A,e,t){return A|=0,32==(0|(e=0|E(e|=0)))&&(e=e+(0|E(A))|0),k(0),0|e}function ut(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+y(+A,+e)}function ct(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+v(+A,+e)}function ht(A){return(A=+A)>=0?+a(A+.5):+m(A-.5)}function gt(A,e,t){A|=0,e|=0;var i,o,s=0;if((0|(t|=0))>=8192)return D(0|A,0|e,0|t),0|A;if(o=0|A,i=A+t|0,(3&A)==(3&e)){for(;3&A;){if(!t)return 0|o;r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0,t=t-1|0}for(s=(t=-4&i)-64|0;(0|A)<=(0|s);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)r[A|0]=0|r[e|0],r[A+1|0]=0|r[e+1|0],r[A+2|0]=0|r[e+2|0],r[A+3|0]=0|r[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0;return 0|o}function dt(A,e,t){e|=0;var i,o=0,s=0,a=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)r[A|0]=e,A=A+1|0;for(a=e|e<<8|e<<16|e<<24,s=(o=-4&i)-64|0;(0|A)<=(0|s);)n[A>>2]=a,n[A+4>>2]=a,n[A+8>>2]=a,n[A+12>>2]=a,n[A+16>>2]=a,n[A+20>>2]=a,n[A+24>>2]=a,n[A+28>>2]=a,n[A+32>>2]=a,n[A+36>>2]=a,n[A+40>>2]=a,n[A+44>>2]=a,n[A+48>>2]=a,n[A+52>>2]=a,n[A+56>>2]=a,n[A+60>>2]=a,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=a,A=A+4|0}for(;(0|A)<(0|i);)r[A|0]=e,A=A+1|0;return i-t|0}function wt(A){return(A=+A)>=0?+a(A+.5):+m(A-.5)}function pt(A){A|=0;var e,t,r;return r=0|x(),(0|A)>0&(0|(e=(t=0|n[s>>2])+A|0))<(0|t)|(0|e)<0?(I(0|e),_(12),-1):(0|e)>(0|r)&&!(0|C(0|e))?(_(12),-1):(n[s>>2]=e,0|t)}return{___divdi3:rt,___muldi3:nt,___remdi3:it,___uremdi3:ot,_areNeighborCells:function(A,e,t,r,i){i|=0;var o,s,a,l=0,f=0,u=0,c=0;if(a=P,P=P+64|0,s=a,o=a+56|0,!(!0&134217728==(2013265920&(e|=0))&!0&134217728==(2013265920&(r|=0))))return P=a,0|(i=5);if((0|(A|=0))==(0|(t|=0))&(0|e)==(0|r))return n[i>>2]=0,P=a,0|(i=0);if(f=0|at(0|A,0|e,52),M(),f&=15,c=0|at(0|t,0|r,52),M(),(0|f)!=(15&c))return P=a,0|(i=12);if(l=f+-1|0,f>>>0>1){HA(A,e,l,s),HA(t,r,l,o),u=0|n[(c=s)>>2],c=0|n[c+4>>2];A:do{if((0|u)==(0|n[o>>2])&&(0|c)==(0|n[o+4>>2])){l=0|at(0|A,0|e,0|(f=3*(15^f)|0)),M(),l&=7,f=0|at(0|t,0|r,0|f),M(),f&=7;do{if(!(0|l)|!(0|f))n[i>>2]=1,l=0;else if(7==(0|l))l=5;else{if(1==(0|l)|1==(0|f)&&0|VA(u,c)){l=5;break}if((0|n[15536+(l<<2)>>2])!=(0|f)&&(0|n[15568+(l<<2)>>2])!=(0|f))break A;n[i>>2]=1,l=0}}while(0);return P=a,0|(i=l)}}while(0)}f=(l=s)+56|0;do{n[l>>2]=0,l=l+4|0}while((0|l)<(0|f));return F(A,e,1,s),l=(0|n[(e=s)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+8|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+16|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+24|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+32|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+40|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)?1:1&((0|n[(l=s+48|0)>>2])==(0|t)?(0|n[l+4>>2])==(0|r):0),n[i>>2]=l,P=a,0|(i=0)},_bitshift64Ashr:st,_bitshift64Lshr:at,_bitshift64Shl:lt,_calloc:qe,_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:ne,_cellToCenterChild:jA,_cellToChildPos:function(A,e,t,r){t|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0;if(i=P,P=P+16|0,b=i,m=0|at(0|(A|=0),0|(e|=0),52),M(),m&=15,t>>>0>15)return P=i,0|(m=4);if((0|m)<(0|t))return P=i,0|(m=12);if((0|m)!=(0|t))if(s=0|lt(0|t,0,52),s|=A,l=M()|-15728641&e,(0|m)>(0|t)){f=t;do{p=0|lt(7,0,3*(14-f|0)|0),f=f+1|0,s|=p,l=0|M()|l}while((0|f)<(0|m));p=s}else p=s;else p=A,l=e;w=0|at(0|p,0|l,45),M();A:do{if(0|O(127&w)){if(f=0|at(0|p,0|l,52),M(),0|(f&=15))for(s=1;;){if(!(!((w=0|lt(7,0,3*(15-s|0)|0))&p|0)&!((0|M())&l))){u=33;break A}if(!(s>>>0<f>>>0))break;s=s+1|0}if(n[(w=r)>>2]=0,n[w+4>>2]=0,(0|m)>(0|t)){for(w=-15728641&e,d=m;;){if(g=d,(d=d+-1|0)>>>0>15|(0|m)<(0|d)){u=19;break}if((0|m)!=(0|d))if(s=0|lt(0|d,0,52),s|=A,f=0|M()|w,(0|m)<(0|g))h=s;else{u=d;do{h=0|lt(7,0,3*(14-u|0)|0),u=u+1|0,s|=h,f=0|M()|f}while((0|u)<(0|m));h=s}else h=A,f=e;if(c=0|at(0|h,0|f,45),M(),0|O(127&c)){c=0|at(0|h,0|f,52),M(),c&=15;e:do{if(c)for(u=1;;){if(s=0|at(0|h,0|f,3*(15-u|0)|0),M(),0|(s&=7))break e;if(!(u>>>0<c>>>0)){s=0;break}u=u+1|0}else s=0}while(0);s=1&!(0|s)}else s=0;if(f=0|at(0|A,0|e,3*(15-g|0)|0),M(),7==(0|(f&=7))){o=5,u=42;break}if(1==(0|f)&(s=!!(0|s))){o=5,u=42;break}if(0|(h=f+((!!(0|f)&s)<<31>>31)|0)&&(u=0|ke(7,0,u=m-g|0,((0|u)<0)<<31>>31),c=0|M(),s?(s=0|$e(0|(s=0|nt(0|u,0|c,5,0)),0|M(),-5,-1),s=0|$e(0|(s=0|rt(0|s,0|M(),6,0)),0|M(),1,0),f=0|M()):(s=u,f=c),g=0|$e(0|s,0|f,0|(g=0|nt(0|u,0|c,0|(g=h+-1|0),((0|g)<0)<<31>>31)),0|M()),c=0|$e(0|g,0|(h=0|M()),0|n[(c=r)>>2],0|n[c+4>>2]),h=0|M(),n[(g=r)>>2]=c,n[g+4>>2]=h),(0|d)<=(0|t)){u=37;break}}if(19==(0|u))Q(27795,27122,1276,27158);else{if(37==(0|u)){o=0|n[(a=r)+4>>2],a=0|n[a>>2];break}if(42==(0|u))return P=i,0|o}}else o=0,a=0}else u=33}while(0);A:do{if(33==(0|u)){if(n[(w=r)>>2]=0,n[w+4>>2]=0,(0|m)>(0|t)){for(s=m;;){if(o=0|at(0|A,0|e,3*(15-s|0)|0),M(),7==(0|(o&=7))){o=5;break}if(o=0|nt(0|(a=0|ke(7,0,a=m-s|0,((0|a)<0)<<31>>31)),0|M(),0|o,0),a=0|M(),a=0|$e(0|n[(w=r)>>2],0|n[w+4>>2],0|o,0|a),o=0|M(),n[(w=r)>>2]=a,n[w+4>>2]=o,(0|(s=s+-1|0))<=(0|t))break A}return P=i,0|o}o=0,a=0}}while(0);return 0|NA(p,l,m,b)&&Q(27795,27122,1236,27173),((0|o)>-1|-1==(0|o)&a>>>0>4294967295)&((0|(b=0|n[(m=b)+4>>2]))>(0|o)|((0|b)==(0|o)?(0|n[m>>2])>>>0>a>>>0:0))?(P=i,0|(m=0)):(Q(27795,27122,1316,27158),0)},_cellToChildren:function(A,e,t,r){r|=0;var i,o,s=0,a=0;if(o=P,P=P+16|0,oe(i=o,A|=0,e|=0,t|=0),!(0|(A=0|n[(e=i)>>2]))&!(0|(e=0|n[e+4>>2])))return P=o,0;s=0,t=0;do{n[(a=r+(s<<3)|0)>>2]=A,n[a+4>>2]=e,s=0|$e(0|s,0|t,1,0),t=0|M(),ae(i),A=0|n[(a=i)>>2],e=0|n[a+4>>2]}while(!(!(0|A)&!(0|e)));return P=o,0},_cellToChildrenSize:NA,_cellToLatLng:re,_cellToLocalIj:function(A,e,t,r,n,i){var o,s;return A|=0,e|=0,t|=0,r|=0,i|=0,s=P,P=P+16|0,o=s,(n|=0)?A=15:(A=0|ye(A,e,t,r,o))||(QA(o,i),A=0),P=s,0|A},_cellToParent:HA,_cellToVertex:ze,_cellToVertexes:function(A,e,t){t|=0;var r,i=0,o=0;return o=!(0|VA(A|=0,e|=0)),r=!(0|(i=0|ze(A,e,0,t))),o?r?0|(i=0|ze(A,e,1,t+8|0))||0|(i=0|ze(A,e,2,t+16|0))||0|(i=0|ze(A,e,3,t+24|0))||(i=0|ze(A,e,4,t+32|0))?0|(o=i):0|ze(A,e,5,t+40|0):0|(o=i):r?0|(i=0|ze(A,e,1,t+8|0))||0|(i=0|ze(A,e,2,t+16|0))||0|(i=0|ze(A,e,3,t+24|0))||0|(i=0|ze(A,e,4,t+32|0))?0|(o=i):(n[(o=t+40|0)>>2]=0,n[o+4>>2]=0,0|(o=0)):0|(o=i)},_cellsToDirectedEdge:function(A,e,t,r,i){return i|=0,7==(0|(t=0|Y(A|=0,e|=0,t|=0,r|=0)))?0|(i=11):(r=0|lt(0|t,0,56),e=-2130706433&e|M()|268435456,n[i>>2]=A|r,n[i+4>>2]=e,0|(i=0))},_cellsToLinkedMultiPolygon:function(A,e,t){t|=0;var r,i,o,s=0;if(o=P,P=P+32|0,r=o,A=0|function(A,e,t){A|=0,t|=0;var r,i,o=0,s=0,a=0,l=0,f=0,u=0;if(i=P,P=P+176|0,r=i,(0|(e|=0))<1)return Oe(t,0,0),P=i,0;for(f=0|at(0|n[(f=A)>>2],0|n[f+4>>2],52),M(),Oe(t,(0|e)>6?e:6,15&f),f=0;!(0|(o=0|ne(0|n[(o=A+(f<<3)|0)>>2],0|n[o+4>>2],r)));){if((0|(o=0|n[r>>2]))>0){l=0;do{a=r+8+(l<<4)|0,(s=0|je(t,o=r+8+((0|(l=l+1|0))%(0|o)<<4)|0,a))?Ve(t,s):Xe(t,a,o),o=0|n[r>>2]}while((0|l)<(0|o))}if((0|(f=f+1|0))>=(0|e)){o=0,u=13;break}}return 13==(0|u)?(P=i,0|o):(He(t),P=i,0|(u=o))}(A|=0,e|=0,i=o+16|0),0|A)return P=o,0|(t=A);if(n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,0|(A=0|Ne(i)))do{e=0|pe(t);do{be(e,A),s=A+16|0,n[r>>2]=n[s>>2],n[r+4>>2]=n[s+4>>2],n[r+8>>2]=n[s+8>>2],n[r+12>>2]=n[s+12>>2],Ve(i,A),A=0|We(i,r)}while(0|A);A=0|Ne(i)}while(0|A);return He(i),(A=0|Be(t))?(me(t),P=o,0|(s=A)):(P=o,0|(s=0))},_childPosToCell:function(A,e,t,r,i,o){A|=0,e|=0,o|=0;var s,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0;if(s=P,P=P+16|0,a=s,(i|=0)>>>0>15)return P=s,0|(o=4);if(l=0|at(0|(t|=0),0|(r|=0),52),M(),(0|(l&=15))>(0|i))return P=s,0|(o=12);if(0|NA(t,r,i,a)&&Q(27795,27122,1236,27173),!(((0|e)>-1|-1==(0|e)&A>>>0>4294967295)&((0|(u=0|n[(c=a)+4>>2]))>(0|e)|((0|u)==(0|e)?(0|n[c>>2])>>>0>A>>>0:0))))return P=s,0|(o=2);c=i-l|0,i=0|lt(0|i,0,52),f=M()|-15728641&r,n[(u=o)>>2]=i|t,n[u+4>>2]=f,u=0|at(0|t,0|r,45),M();A:do{if(0|O(127&u)){if(0|l)for(a=1;;){if(!(!((u=0|lt(7,0,3*(15-a|0)|0))&t|0)&!((0|M())&r)))break A;if(!(a>>>0<l>>>0))break;a=a+1|0}if((0|c)<1)return P=s,0|(o=0);for(u=15^l,r=-1,f=1,a=1;;){l=0|ke(7,0,l=c-f|0,((0|l)<0)<<31>>31),t=0|M();do{if(a){if(a=0|rt(0|(a=0|$e(0|(a=0|nt(0|l,0|t,5,0)),0|M(),-5,-1)),0|M(),6,0),(0|e)>(0|(i=0|M()))|(0|e)==(0|i)&A>>>0>a>>>0){e=0|At(0|(e=0|$e(0|A,0|e,-1,-1)),0|M(),0|a,0|i),a=0|M(),d=0|n[(h=o)>>2],h=0|n[h+4>>2],g=0|lt(7,0,0|(w=3*(u+r|0)|0)),h&=~M(),w=0|lt(0|(i=0|$e(0|(r=0|rt(0|e,0|a,0|l,0|t)),0|(A=0|M()),2,0)),0|M(),0|w),h=0|M()|h,n[(i=o)>>2]=w|d&~g,n[i+4>>2]=h,A=0|At(0|e,0|a,0|(A=0|nt(0|r,0|A,0|l,0|t)),0|M()),a=0,e=0|M();break}g=0|n[(w=o)>>2],w=0|n[w+4>>2],d=0|lt(7,0,3*(u+r|0)|0),w&=~M(),n[(a=o)>>2]=g&~d,n[a+4>>2]=w,a=1;break}i=0|n[(g=o)>>2],g=0|n[g+4>>2],h=0|lt(7,0,0|(r=3*(u+r|0)|0)),g&=~M(),r=0|lt(0|(w=0|rt(0|A,0|e,0|l,0|t)),0|(a=0|M()),0|r),g=0|M()|g,n[(d=o)>>2]=r|i&~h,n[d+4>>2]=g,A=0|At(0|A,0|e,0|(a=0|nt(0|w,0|a,0|l,0|t)),0|M()),a=0,e=0|M()}while(0);if(!((0|c)>(0|f))){e=0;break}r=~f,f=f+1|0}return P=s,0|e}}while(0);if((0|c)<1)return P=s,0|(w=0);for(i=15^l,a=1;;){if(d=0|ke(7,0,d=c-a|0,((0|d)<0)<<31>>31),w=0|M(),t=0|n[(f=o)>>2],f=0|n[f+4>>2],r=0|lt(7,0,0|(l=3*(i-a|0)|0)),f&=~M(),l=0|lt(0|(h=0|rt(0|A,0|e,0|d,0|w)),0|(g=0|M()),0|l),f=0|M()|f,n[(u=o)>>2]=l|t&~r,n[u+4>>2]=f,A=0|At(0|A,0|e,0|(w=0|nt(0|h,0|g,0|d,0|w)),0|M()),e=0|M(),(0|c)<=(0|a)){e=0;break}a=a+1|0}return P=s,0|e},_compactCells:function(A,e,t,r){e|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,E=0,k=0,_=0,x=0,D=0,C=0,I=0,P=0;if(!(0|(t|=0))&!(0|(r|=0)))return 0|(P=0);if(s=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if(!((0|r)>0|!(0|r)&t>>>0>0))return 0|(P=0);if(n[(P=e)>>2]=s,n[P+4>>2]=o,1==(0|t)&!(0|r))return 0|(P=0);o=1,s=0;do{I=0|n[(C=A+(o<<3)|0)+4>>2],n[(P=e+(o<<3)|0)>>2]=n[C>>2],n[P+4>>2]=I,o=0|$e(0|o,0|s,1,0),s=0|M()}while((0|s)<(0|r)|(0|s)==(0|r)&o>>>0<t>>>0);return 0|(o=0)}if(!(I=0|Je(i=t<<3)))return 0|(P=13);if(gt(0|I,0|A,0|i),!(C=0|qe(t,8)))return Ke(I),0|(P=13);A:for(;;){x=0|at(0|(u=0|n[(o=I)>>2]),0|(o=0|n[o+4>>2]),52),M(),D=(x&=15)+-1|0,_=!!(0|x),k=(0|r)>0|!(0|r)&t>>>0>0;e:do{if(_&k){if(B=0|lt(0|D,0,52),v=0|M(),D>>>0>15){if(!(!(0|u)&!(0|o))){P=16;break A}for(s=0,A=0;;){if(s=0|$e(0|s,0|A,1,0),!((0|(A=0|M()))<(0|r)|(0|A)==(0|r)&s>>>0<t>>>0))break e;if(!(!(0|(E=0|n[(a=I+(s<<3)|0)>>2]))&!(0|(a=0|n[a+4>>2])))){o=a,P=16;break A}}}for(l=u,A=o,s=0,a=0;;){if(!(!(0|l)&!(0|A))){if(!(!0&!(117440512&A))){P=21;break A}if(c=0|at(0|l,0|A,52),M(),(0|(c&=15))<(0|D)){o=12,P=27;break A}if((0|c)!=(0|D)&&(l|=B,A=-15728641&A|v,c>>>0>=x>>>0)){f=D;do{E=0|lt(7,0,3*(14-f|0)|0),f=f+1|0,l|=E,A=0|M()|A}while(f>>>0<c>>>0)}if(g=0|ot(0|l,0|A,0|t,0|r),d=0|M(),!(!(0|(h=0|n[(c=f=C+(g<<3)|0)>>2]))&!(0|(c=0|n[c+4>>2])))){b=0,m=0;do{if((0|b)>(0|r)|(0|b)==(0|r)&m>>>0>t>>>0){P=31;break A}if((0|h)==(0|l)&(-117440513&c)==(0|A)){w=0|at(0|h,0|c,56),M(),p=(w&=7)+1|0,E=0|at(0|h,0|c,45),M();t:do{if(0|O(127&E)){if(h=0|at(0|h,0|c,52),M(),!(h&=15)){c=6;break}for(c=1;;){if(!(!((E=0|lt(7,0,3*(15-c|0)|0))&l|0)&!((0|M())&A))){c=7;break t}if(!(c>>>0<h>>>0)){c=6;break}c=c+1|0}}else c=7}while(0);if((w+2|0)>>>0>c>>>0){P=41;break A}E=0|lt(0|p,0,56),A=M()|-117440513&A,n[(y=f)>>2]=0,n[y+4>>2]=0,l|=E}else g=0|it(0|(g=0|$e(0|g,0|d,1,0)),0|M(),0|t,0|r),d=0|M();m=0|$e(0|m,0|b,1,0),b=0|M(),h=0|n[(c=f=C+(g<<3)|0)>>2],c=0|n[c+4>>2]}while(!(!(0|h)&!(0|c)))}n[(E=f)>>2]=l,n[E+4>>2]=A}if(s=0|$e(0|s,0|a,1,0),!((0|(a=0|M()))<(0|r)|(0|a)==(0|r)&s>>>0<t>>>0))break e;l=0|n[(A=I+(s<<3)|0)>>2],A=0|n[A+4>>2]}}}while(0);if(E=0|$e(0|t,0|r,5,0),(y=0|M())>>>0<0|!(0|y)&E>>>0<11){P=85;break}if(E=0|rt(0|t,0|r,6,0),M(),!(E=0|qe(E,8))){P=48;break}do{if(k){for(p=0,A=0,w=0,b=0;;){if(!(0|(s=0|n[(a=c=C+(p<<3)|0)>>2]))&!(0|(a=0|n[a+4>>2])))y=w;else{h=0|at(0|s,0|a,56),M(),l=(h&=7)+1|0,g=-117440513&a,y=0|at(0|s,0|a,45),M();e:do{if(0|O(127&y)){if(d=0|at(0|s,0|a,52),M(),0|(d&=15))for(f=1;;){if(!(!(s&(y=0|lt(7,0,3*(15-f|0)|0))|0)&!(g&(0|M()))))break e;if(!(f>>>0<d>>>0))break;f=f+1|0}s|=a=0|lt(0|l,0,56),a=0|M()|g,n[(l=c)>>2]=s,n[l+4>>2]=a,l=h+2|0}}while(0);7==(0|l)?(n[(y=E+(A<<3)|0)>>2]=s,n[y+4>>2]=-117440513&a,A=0|$e(0|A,0|w,1,0),y=0|M()):y=w}if(p=0|$e(0|p,0|b,1,0),!((0|(b=0|M()))<(0|r)|(0|b)==(0|r)&p>>>0<t>>>0))break;w=y}if(k){if(m=D>>>0>15,B=0|lt(0|D,0,52),v=0|M(),!_){for(s=0,f=0,l=0,a=0;!(0|u)&!(0|o)||(n[(D=e+(s<<3)|0)>>2]=u,n[D+4>>2]=o,s=0|$e(0|s,0|f,1,0),f=0|M()),l=0|$e(0|l,0|a,1,0),(0|(a=0|M()))<(0|r)|(0|a)==(0|r)&l>>>0<t>>>0;)u=0|n[(o=I+(l<<3)|0)>>2],o=0|n[o+4>>2];o=y;break}for(s=0,f=0,a=0,l=0;;){do{if(!(!(0|u)&!(0|o))){if(d=0|at(0|u,0|o,52),M(),m|(0|(d&=15))<(0|D)){P=80;break A}if((0|d)!=(0|D)){if(c=u|B,h=-15728641&o|v,d>>>0>=x>>>0){g=D;do{_=0|lt(7,0,3*(14-g|0)|0),g=g+1|0,c|=_,h=0|M()|h}while(g>>>0<d>>>0)}}else c=u,h=o;w=0|ot(0|c,0|h,0|t,0|r),g=0,d=0,b=0|M();do{if((0|g)>(0|r)|(0|g)==(0|r)&d>>>0>t>>>0){P=81;break A}if((-117440513&(p=0|n[(_=C+(w<<3)|0)+4>>2]))==(0|h)&&(0|n[_>>2])==(0|c)){P=65;break}w=0|it(0|(_=0|$e(0|w,0|b,1,0)),0|M(),0|t,0|r),b=0|M(),d=0|$e(0|d,0|g,1,0),g=0|M(),_=C+(w<<3)|0}while((0|n[_>>2])!=(0|c)||(0|n[_+4>>2])!=(0|h));if(65==(0|P)&&(P=0,!0&100663296==(117440512&p)))break;n[(_=e+(s<<3)|0)>>2]=u,n[_+4>>2]=o,s=0|$e(0|s,0|f,1,0),f=0|M()}}while(0);if(a=0|$e(0|a,0|l,1,0),!((0|(l=0|M()))<(0|r)|(0|l)==(0|r)&a>>>0<t>>>0))break;u=0|n[(o=I+(a<<3)|0)>>2],o=0|n[o+4>>2]}o=y}else s=0,o=y}else s=0,A=0,o=0}while(0);if(dt(0|C,0,0|i),gt(0|I,0|E,A<<3),Ke(E),!(0|A)&!(0|o)){P=89;break}e=e+(s<<3)|0,r=o,t=A}if(16==(0|P))!0&!(117440512&o)?(o=4,P=27):P=21;else if(31==(0|P))Q(27795,27122,529,27132);else{if(41==(0|P))return Ke(I),Ke(C),0|(P=10);if(48==(0|P))return Ke(I),Ke(C),0|(P=13);80==(0|P)?Q(27795,27122,620,27132):81==(0|P)?Q(27795,27122,632,27132):85==(0|P)&&(gt(0|e,0|I,t<<3),P=89)}return 21==(0|P)?(Ke(I),Ke(C),0|(P=5)):27==(0|P)?(Ke(I),Ke(C),0|(P=o)):89==(0|P)?(Ke(I),Ke(C),0|(P=0)):0},_destroyLinkedMultiPolygon:me,_directedEdgeToBoundary:CA,_directedEdgeToCells:function(A,e,t){A|=0;var r,i,o,s=0;return r=P,P=P+16|0,s=r,!0&268435456==(2013265920&(e|=0))?(i=-2130706433&e|134217728,n[(o=t|=0)>>2]=A,n[o+4>>2]=i,n[s>>2]=0,e=0|at(0|A,0|e,56),M(),s=0|L(A,i,7&e,s,t+8|0),P=r,0|s):(P=r,0|(s=6))},_edgeLengthKm:function(A,e,t){t|=0;var r,o=0,s=0,a=0,l=0,u=0,g=0,d=0;if(r=P,P=P+176|0,0|(A=0|CA(A|=0,e|=0,l=r)))return l=A,a=+i[t>>3],a*=6371.007180918475,i[t>>3]=a,P=r,0|l;if(i[t>>3]=0,(0|(A=0|n[l>>2]))<=1)return l=0,a=0,a*=6371.007180918475,i[t>>3]=a,P=r,0|l;e=A+-1|0,A=0,o=+i[l+8>>3],s=+i[l+16>>3],a=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),u=s,s=+i[l+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(s-u)))*(+c(+g)*+c(+o)*u),a+=2*+b(+ +f(+u),+ +f(+(1-u)))}while((0|A)!=(0|e));return i[t>>3]=a,l=0,d=a,d*=6371.007180918475,i[t>>3]=d,P=r,0|l},_edgeLengthM:function(A,e,t){t|=0;var r,o=0,s=0,a=0,l=0,u=0,g=0,d=0;if(r=P,P=P+176|0,0|(A=0|CA(A|=0,e|=0,l=r)))return l=A,a=+i[t>>3],a*=6371.007180918475,a*=1e3,i[t>>3]=a,P=r,0|l;if(i[t>>3]=0,(0|(A=0|n[l>>2]))<=1)return l=0,a=0,a*=6371.007180918475,a*=1e3,i[t>>3]=a,P=r,0|l;e=A+-1|0,A=0,o=+i[l+8>>3],s=+i[l+16>>3],a=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),u=s,s=+i[l+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(s-u)))*(+c(+g)*+c(+o)*u),a+=2*+b(+ +f(+u),+ +f(+(1-u)))}while((0|A)!=(0|e));return i[t>>3]=a,l=0,d=a,d*=6371.007180918475,d*=1e3,i[t>>3]=d,P=r,0|l},_edgeLengthRads:function(A,e,t){t|=0;var r,o=0,s=0,a=0,l=0,u=0,g=0,d=0;if(r=P,P=P+176|0,0|(A=0|CA(A|=0,e|=0,l=r)))return P=r,0|(l=A);if(i[t>>3]=0,(0|(A=0|n[l>>2]))<=1)return P=r,0|(l=0);e=A+-1|0,A=0,o=+i[l+8>>3],s=+i[l+16>>3],a=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),u=s,s=+i[l+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(s-u)))*(+c(+o)*+c(+g)*u),a+=2*+b(+ +f(+u),+ +f(+(1-u)))}while((0|A)<(0|e));return i[t>>3]=a,P=r,0|(l=0)},_emscripten_replace_memory:function(A){return r=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),t=A,!0},_free:Ke,_getBaseCellNumber:YA,_getDirectedEdgeDestination:function(A,e,t){A|=0,e|=0,t|=0;var r,i,o=0;return r=P,P=P+16|0,n[(o=r)>>2]=0,!0&268435456==(2013265920&e)?(i=0|at(0|A,0|e,56),M(),o=0|L(A,-2130706433&e|134217728,7&i,o,t),P=r,0|o):(P=r,0|(o=6))},_getDirectedEdgeOrigin:function(A,e,t){return A|=0,t|=0,!0&268435456==(2013265920&(e|=0))?(n[t>>2]=A,n[t+4>>2]=-2130706433&e|134217728,0|(t=0)):0|(t=6)},_getHexagonAreaAvgKm2:he,_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,r){r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0;i=P,P=P+128|0,c=i+112|0,a=i+96|0,h=i,s=0|at(0|(e|=0),0|(t|=0),52),M(),f=15&s,n[c>>2]=f,l=0|at(0|e,0|t,45),M(),l&=127;A:do{if(0|O(l)){if(0|f)for(o=1;;){if(!(!((u=0|lt(7,0,3*(15-o|0)|0))&e|0)&!((0|M())&t))){s=0;break A}if(!(o>>>0<f>>>0))break;o=o+1|0}if(!(1&s))return u=0|lt(f+1|0,0,52),h=M()|-15728641&t,h=0|A((u|e)&~(c=0|lt(7,0,3*(14-f|0)|0)),h&~M(),r),P=i,0|h;s=1}else s=0}while(0);if(!(o=0|te(e,t,a))){s?(TA(a,c,h),u=5):(RA(a,c,h),u=6);A:do{if(0|O(l))if(f)for(o=1;;){if(!(!((l=0|lt(7,0,3*(15-o|0)|0))&e|0)&!((0|M())&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);dt(0|r,-1,e<<2);A:do{if(s)for(a=0;;){if(LA(l=h+(a<<4)|0,0|n[c>>2]),l=0|n[l>>2],-1==(0|(f=0|n[r>>2]))|(0|f)==(0|l))o=r;else{s=0;do{if((s=s+1|0)>>>0>=e>>>0){o=1;break A}f=0|n[(o=r+(s<<2)|0)>>2]}while(!(-1==(0|f)|(0|f)==(0|l)))}if(n[o>>2]=l,(a=a+1|0)>>>0>=u>>>0){o=0;break}}else for(a=0;;){if(GA(l=h+(a<<4)|0,0|n[c>>2],0,1),l=0|n[l>>2],-1==(0|(f=0|n[r>>2]))|(0|f)==(0|l))o=r;else{s=0;do{if((s=s+1|0)>>>0>=e>>>0){o=1;break A}f=0|n[(o=r+(s<<2)|0)>>2]}while(!(-1==(0|f)|(0|f)==(0|l)))}if(n[o>>2]=l,(a=a+1|0)>>>0>=u>>>0){o=0;break}}}while(0)}return P=i,0|(h=o)},_getNumCells:ge,_getPentagons:ie,_getRes0Cells:function(A){A|=0;var e=0,t=0,r=0;e=0;do{lt(0|e,0,45),r=134225919|M(),n[(t=A+(e<<3)|0)>>2]=-1,n[t+4>>2]=r,e=e+1|0}while(122!=(0|e));return 0},_getResolution:function(A,e){return e=0|at(0|(A|=0),0|(e|=0),52),M(),15&e},_greatCircleDistanceKm:ce,_greatCircleDistanceM:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+h(.5*(r-t)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+b(+ +f(+o),+ +f(+(1-o)))*6371.007180918475*1e3},_greatCircleDistanceRads:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+h(.5*(r-t)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+b(+ +f(+o),+ +f(+(1-o)))},_gridDisk:F,_gridDiskDistances:S,_gridDistance:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,s,a=0,l=0;return s=P,P=P+32|0,l=s,0|(o=0|ye(A|=0,e|=0,A,e,a=s+12|0))?(P=s,0|(l=o)):0|(A=0|ye(A,e,t,r,l))?(P=s,0|(l=A)):(a=0|MA(a,l),n[(l=i)>>2]=a,n[l+4>>2]=((0|a)<0)<<31>>31,P=s,0|(l=0))},_gridPathCells:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,s,a=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,E=0,k=0,_=0,x=0;if(s=P,P=P+48|0,f=s+12|0,_=s,!(a=0|ye(A|=0,e|=0,A,e,o=s+24|0))&&!(a=0|ye(A,e,t,r,f))){k=((0|(E=0|MA(o,f)))<0)<<31>>31,n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,0|ye(A,e,A,e,o)&&Q(27795,27538,692,27747),0|ye(A,e,t,r,f)&&Q(27795,27538,697,27747),xA(o),xA(f),g=0|E?1/+(0|E):0,t=0|n[o>>2],m=g*+((0|n[f>>2])-t|0),r=0|n[(B=o+4|0)>>2],v=g*+((0|n[f+4>>2])-r|0),a=0|n[(y=o+8|0)>>2],g*=+((0|n[f+8>>2])-a|0),n[_>>2]=t,n[(d=_+4|0)>>2]=r,n[(w=_+8|0)>>2]=a;A:do{if((0|E)<0)a=0;else for(p=0,b=0;;){x=m*(c=+(b>>>0)+4294967296*+(0|p))+ +(0|t),u=v*c+ +(0|r),c=g*c+ +(0|a),t=~~+ht(+x),f=~~+ht(+u),a=~~+ht(+c),x=+l(+(+(0|t)-x)),u=+l(+(+(0|f)-u)),c=+l(+(+(0|a)-c));do{if(!(x>u&x>c)){if(h=0-t|0,u>c){r=h-a|0;break}r=f,a=h-f|0;break}t=0-(f+a)|0,r=f}while(0);if(n[_>>2]=t,n[d>>2]=r,n[w>>2]=a,DA(_),0|(a=0|Ee(A,e,_,i+(b<<3)|0)))break A;if(!((0|p)<(0|k)|(0|p)==(0|k)&b>>>0<E>>>0)){a=0;break A}t=0|$e(0|b,0|p,1,0),p=r=0|M(),b=t,t=0|n[o>>2],r=0|n[B>>2],a=0|n[y>>2]}}while(0);return P=s,0|(_=a)}return P=s,0|(_=a)},_gridPathCellsSize:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,s=0,a=0,l=0;return o=P,P=P+32|0,l=o,(s=0|ye(A|=0,e|=0,A,e,a=o+12|0))||(s=0|ye(A,e,t,r,l))?(P=o,0|(l=s)):(r=0|$e(0|(r=0|MA(a,l)),((0|r)<0)<<31>>31,1,0),a=0|M(),n[(l=i)>>2]=r,n[l+4>>2]=a,P=o,0|(l=0))},_gridRing:function(A,e,t,r){return 0|U(A|=0,e|=0,t|=0,r|=0)?(dt(0|r,0,48*t|0),0|(r=0|R(A,e,t,r))):0|(r=0)},_gridRingUnsafe:U,_i64Add:$e,_i64Subtract:At,_isPentagon:VA,_isResClassIII:function(A,e){return e=0|at(0|(A|=0),0|(e|=0),52),M(),1&e},_isValidCell:zA,_isValidDirectedEdge:function(A,e){var t=0;switch(t=0|at(0|(A|=0),0|(e|=0),56),M(),7&t){case 0:case 7:return 0|(t=0)}return t=-2130706433&e|134217728,!0&268435456==(2013265920&e)?!0&16777216==(117440512&e)&!!(0|VA(A,t))?0|(t=0):0|(t=0|zA(A,t)):0|(t=0)},_isValidVertex:function(A,e){A|=0;var t,r,i=0,o=0;return r=P,P=P+16|0,t=r,!0&536870912==(2013265920&(e|=0))&&0|zA(A,i=-2130706433&e|134217728)?(o=0|at(0|A,0|e,56),M(),i=(o=!(0|ze(A,i,7&o,t)))&((0|n[(i=t)>>2])==(0|A)?(0|n[i+4>>2])==(0|e):0)&1,P=r,0|i):(P=r,0|(i=0))},_latLngToCell:Ae,_llvm_ctlz_i64:ft,_llvm_maxnum_f64:ut,_llvm_minnum_f64:ct,_llvm_round_f64:ht,_localIjToCell:function(A,e,t,r,n){var i,o;return A|=0,e|=0,t|=0,n|=0,o=P,P=P+16|0,i=o,(r|=0)?t=15:(t=0|_A(t,i))||(t=0|Ee(A,e,i,n)),P=o,0|t},_malloc:Je,_maxFaceCount:function(A,e,t){t|=0;var r=0,i=0;if(i=0|at(0|(A|=0),0|(e|=0),45),M(),!(0|O(127&i)))return i=2,n[t>>2]=i,0;if(i=0|at(0|A,0|e,52),M(),!(i&=15))return i=5,n[t>>2]=i,0;for(r=1;;){if(!(!((0|lt(7,0,3*(15-r|0)|0))&A|0)&!((0|M())&e))){r=2,A=6;break}if(!(r>>>0<i>>>0)){r=5,A=6;break}r=r+1|0}return 6==(0|A)?(n[t>>2]=r,0):0},_maxGridDiskSize:function(A,e){e|=0;var t=0,r=0,i=0;return(0|(A|=0))<0?0|(e=2):(0|A)>13780509?0|(e=0|ge(15,e)):(i=0|nt(0|A,0|(t=((0|A)<0)<<31>>31),3,0),r=0|M(),t=0|$e(0|A,0|t,1,0),t=0|$e(0|(t=0|nt(0|i,0|r,0|t,0|M())),0|M(),1,0),A=0|M(),n[e>>2]=t,n[e+4>>2]=A,0|(e=0))},_maxPolygonToCellsSize:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0;if(i=P,P=P+48|0,o=i+16|0,s=i+8|0,a=i,0|(t=0|Ie(t|=0)))return P=i,0|(a=t);if(l=0|n[(f=A)+4>>2],n[(t=s)>>2]=n[f>>2],n[t+4>>2]=l,Ce(s,o),!(t=0|tA(o,e,a))){if(e=0|n[s>>2],(0|(s=0|n[A+8>>2]))>0){o=0|n[A+12>>2],t=0;do{e=(0|n[o+(t<<3)>>2])+e|0,t=t+1|0}while((0|t)<(0|s))}o=0|n[(t=a)>>2],(0|(t=0|n[t+4>>2]))<(0|(s=((0|e)<0)<<31>>31))|(0|t)==(0|s)&o>>>0<e>>>0?(n[(t=a)>>2]=e,n[t+4>>2]=s,t=s):e=o,l=0|$e(0|e,0|t,12,0),f=0|M(),n[(t=a)>>2]=l,n[t+4>>2]=f,n[(t=r)>>2]=l,n[t+4>>2]=f,t=0}return P=i,0|(f=t)},_maxPolygonToCellsSizeExperimental:function(A,e,t,o){e|=0,t|=0,o|=0;var s,a,f=0,u=0,h=0,g=0,d=0,w=0,p=0,b=0;if(a=P,P=P+48|0,d=a+32|0,g=a+40|0,s=a,!(0|n[(A|=0)>>2]))return n[(w=o)>>2]=0,n[w+4>>2]=0,P=a,0|(w=0);OA(d,0,0,0),f=0|n[(h=d)>>2],h=0|n[h+4>>2];do{if(e>>>0>15)n[(w=s)>>2]=0,n[w+4>>2]=0,n[s+8>>2]=4,n[s+12>>2]=-1,t=s+29|0,n[(w=s+16|0)>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,r[w+12|0]=0,r[t|0]=0|r[g|0],r[t+1|0]=0|r[g+1|0],r[t+2|0]=0|r[g+2|0],t=4,w=9;else{if(0|(t=0|Ie(t))){n[(d=s)>>2]=0,n[d+4>>2]=0,n[s+8>>2]=t,n[s+12>>2]=-1,w=s+29|0,n[(d=s+16|0)>>2]=0,n[d+4>>2]=0,n[d+8>>2]=0,r[d+12|0]=0,r[w|0]=0|r[g|0],r[w+1|0]=0|r[g+1|0],r[w+2|0]=0|r[g+2|0],w=9;break}if(!(t=0|qe(1+(0|n[A+8>>2])|0,32))){n[(w=s)>>2]=0,n[w+4>>2]=0,n[s+8>>2]=13,n[s+12>>2]=-1,t=s+29|0,n[(w=s+16|0)>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,r[w+12|0]=0,r[t|0]=0|r[g|0],r[t+1|0]=0|r[g+1|0],r[t+2|0]=0|r[g+2|0],t=13,w=9;break}Pe(A,t),n[(b=s)>>2]=f,n[b+4>>2]=h,n[(h=s+8|0)>>2]=0,n[s+12>>2]=e,n[s+20>>2]=A,n[s+24>>2]=t,r[s+28|0]=0,r[(f=s+29|0)|0]=0|r[g|0],r[f+1|0]=0|r[g+1|0],r[f+2|0]=0|r[g+2|0],n[s+16>>2]=3,p=+K(t),p*=+Z(t),u=+l(+ +i[t>>3]),u=p/+c(+ +ct(+u,+ +l(+ +i[t+8>>3])))*6371.007180918475*6371.007180918475,t=0|n[(f=s+12|0)>>2];A:do{if((0|t)>0)do{if(he(t+-1|0,d),!(u/+i[d>>3]>10))break A;t=(b=0|n[f>>2])+-1|0,n[f>>2]=t}while((0|b)>1)}while(0);if(_e(s),n[(f=o)>>2]=0,n[f+4>>2]=0,!(!(0|(t=0|n[(f=s)>>2]))&!(0|(f=0|n[f+4>>2]))))do{NA(t,f,e,d),g=d,g=0|$e(0|n[(A=o)>>2],0|n[A+4>>2],0|n[g>>2],0|n[g+4>>2]),A=0|M(),n[(b=o)>>2]=g,n[b+4>>2]=A,_e(s),t=0|n[(b=s)>>2],f=0|n[b+4>>2]}while(!(!(0|t)&!(0|f)));t=0|n[h>>2]}}while(0);return P=a,0|(b=t)},_memcpy:gt,_memset:dt,_originToDirectedEdges:function(A,e,t){t|=0;var r,i=0;return r=!(0|VA(A|=0,e|=0)),e&=-2130706433,n[(i=t)>>2]=r?A:0,n[i+4>>2]=r?285212672|e:0,n[(i=t+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=t+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=t+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=t+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(t=t+40|0)>>2]=A,n[t+4>>2]=369098752|e,0},_pentagonCount:function(){return 12},_polygonToCells:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o,s,a,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,E=0,k=0,Q=0,_=0,x=0,D=0,C=0,I=0,F=0,S=0,L=0,U=0,R=0;if(a=P,P=P+112|0,i=a+80|0,h=a+72|0,o=a,s=a+56|0,0|(l=0|Ie(t|=0)))return P=a,0|(R=l);if(!(R=0|Je(32+(n[(g=A+8|0)>>2]<<5)|0)))return P=a,0|(R=13);if(Pe(A,R),!(l=0|Ie(t))){if(U=0|n[(L=A)+4>>2],n[(l=h)>>2]=n[L>>2],n[l+4>>2]=U,Ce(h,i),l=0|tA(i,e,o))L=0,U=0;else{if(l=0|n[h>>2],(0|(f=0|n[g>>2]))>0){u=0|n[A+12>>2],t=0;do{l=(0|n[u+(t<<3)>>2])+l|0,t=t+1|0}while((0|t)!=(0|f));t=l}else t=l;f=0|n[(l=o)>>2],(0|(l=0|n[l+4>>2]))<(0|(u=((0|t)<0)<<31>>31))|(0|l)==(0|u)&f>>>0<t>>>0?(n[(l=o)>>2]=t,n[l+4>>2]=u,l=u):t=f,L=0|$e(0|t,0|l,12,0),U=0|M(),n[(l=o)>>2]=L,n[l+4>>2]=U,l=0}if(!l){if(!(t=0|qe(L,8)))return Ke(R),P=a,0|(R=13);if(!(c=0|qe(L,8)))return Ke(R),Ke(t),P=a,0|(R=13);n[(F=i)>>2]=0,n[F+4>>2]=0,S=0|n[(F=A)+4>>2],n[(l=h)>>2]=n[F>>2],n[l+4>>2]=S,l=0|z(h,L,U,e,i,t,c);A:do{if(l)Ke(t),Ke(c),Ke(R);else{e:do{if((0|n[g>>2])>0){for(u=A+12|0,f=0;l=0|z((0|n[u>>2])+(f<<3)|0,L,U,e,i,t,c),f=f+1|0,!(0|l);)if((0|f)>=(0|n[g>>2]))break e;Ke(t),Ke(c),Ke(R);break A}}while(0);(0|U)>0|!(0|U)&L>>>0>0&&dt(0|c,0,L<<3),F=0|n[(S=i)+4>>2];e:do{if((0|F)>0|!(0|F)&(0|n[S>>2])>>>0>0){D=t,C=c,I=t,F=c,S=t,l=t,Q=t,_=c,x=c,t=c;t:for(;;){for(v=0,y=0,E=0,k=0,f=0,u=0;;){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));if(0|T(g=0|n[(e=D+(v<<3)|0)>>2],e=0|n[e+4>>2],1,o,0)){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));0|(c=0|qe(7,4))&&(G(g,e,1,o,c,7,0,0),Ke(c))}for(B=0;;){b=0|n[(m=o+(B<<3)|0)>>2],m=0|n[m+4>>2];r:do{if(!(0|b)&!(0|m))c=f,h=u;else{if(d=0|ot(0|b,0|m,0|L,0|U),g=0|M(),!(!(0|(h=0|n[(e=c=r+(d<<3)|0)>>2]))&!(0|(e=0|n[e+4>>2])))){w=0,p=0;do{if((0|w)>(0|U)|(0|w)==(0|U)&p>>>0>L>>>0)break t;if((0|h)==(0|b)&(0|e)==(0|m)){c=f,h=u;break r}d=0|it(0|(c=0|$e(0|d,0|g,1,0)),0|M(),0|L,0|U),g=0|M(),p=0|$e(0|p,0|w,1,0),w=0|M(),h=0|n[(e=c=r+(d<<3)|0)>>2],e=0|n[e+4>>2]}while(!(!(0|h)&!(0|e)))}if(!(0|b)&!(0|m)){c=f,h=u;break}re(b,m,s),0|Fe(A,R,s)&&(p=0|$e(0|f,0|u,1,0),u=0|M(),n[(w=c)>>2]=b,n[w+4>>2]=m,n[(f=C+(f<<3)|0)>>2]=b,n[f+4>>2]=m,f=p),c=f,h=u}}while(0);if((B=B+1|0)>>>0>=7)break;f=c,u=h}if(v=0|$e(0|v,0|y,1,0),y=0|M(),E=0|$e(0|E,0|k,1,0),k=0|M(),f=0|n[(u=i)>>2],!((0|k)<(0|(u=0|n[u+4>>2]))|(0|k)==(0|u)&E>>>0<f>>>0))break;f=c,u=h}if((0|u)>0|!(0|u)&f>>>0>0){f=0,u=0;do{n[(k=D+(f<<3)|0)>>2]=0,n[k+4>>2]=0,f=0|$e(0|f,0|u,1,0),u=0|M(),E=0|n[(k=i)+4>>2]}while((0|u)<(0|E)|((0|u)==(0|E)?f>>>0<(0|n[k>>2])>>>0:0))}if(n[(k=i)>>2]=c,n[k+4>>2]=h,!((0|h)>0|!(0|h)&c>>>0>0))break e;B=t,v=x,y=S,E=_,k=C,t=Q,x=l,_=I,Q=B,l=v,S=F,F=y,I=E,C=D,D=k}Ke(I),Ke(F),Ke(R),l=1;break A}l=c}while(0);Ke(R),Ke(t),Ke(l),l=0}}while(0);return P=a,0|(R=l)}}return Ke(R),P=a,0|(R=l)},_polygonToCellsExperimental:function(A,e,t,r,i,o){r|=0,i|=0,o|=0;var s,a,l,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0;l=P,P=P+160|0,u=l+64|0,g=l+112|0,p=l,Qe(h=l+80|0,A|=0,e|=0,t|=0),oe(u,0|n[(c=h)>>2],0|n[c+4>>2],e),s=0|n[(c=u)>>2],c=0|n[c+4>>2],f=0|n[h+8>>2],n[(d=g+4|0)>>2]=n[h>>2],n[d+4>>2]=n[h+4>>2],n[d+8>>2]=n[h+8>>2],n[d+12>>2]=n[h+12>>2],n[d+16>>2]=n[h+16>>2],n[d+20>>2]=n[h+20>>2],n[d+24>>2]=n[h+24>>2],n[d+28>>2]=n[h+28>>2],n[(d=p)>>2]=s,n[d+4>>2]=c,n[(d=p+8|0)>>2]=f,e=g,t=(A=p+12|0)+36|0;do{n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}while((0|A)<(0|t));if(n[(g=p+48|0)>>2]=n[u>>2],n[g+4>>2]=n[u+4>>2],n[g+8>>2]=n[u+8>>2],n[g+12>>2]=n[u+12>>2],!(0|s)&!(0|c))return P=l,0|(p=f);t=p+16|0,a=p+24|0,h=p+28|0,f=0,u=0,e=s,A=c;do{if(!((0|f)<(0|i)|(0|f)==(0|i)&u>>>0<r>>>0)){w=4;break}if(c=u,u=0|$e(0|u,0|f,1,0),f=0|M(),n[(c=o+(c<<3)|0)>>2]=e,n[c+4>>2]=A,ae(g),!(0|(e=0|n[(A=g)>>2]))&!(0|(A=0|n[A+4>>2]))){if(_e(t),!(0|(A=0|n[(e=t)>>2]))&!(0|(e=0|n[e+4>>2]))){w=10;break}se(A,e,0|n[h>>2],g),e=0|n[(A=g)>>2],A=0|n[A+4>>2]}n[(c=p)>>2]=e,n[c+4>>2]=A}while(!(!(0|e)&!(0|A)));return 4==(0|w)?(0|(e=0|n[(A=p+40|0)>>2])&&Ke(e),n[(w=p+16|0)>>2]=0,n[w+4>>2]=0,n[a>>2]=0,n[p+36>>2]=0,n[h>>2]=-1,n[p+32>>2]=0,n[A>>2]=0,se(0,0,0,g),n[p>>2]=0,n[p+4>>2]=0,n[d>>2]=0,P=l,0|(p=14)):(10==(0|w)&&(n[p>>2]=0,n[p+4>>2]=0,n[d>>2]=n[a>>2]),p=0|n[d>>2],P=l,0|p)},_readInt64AsDoubleFromPointer:function(A){return+(+((0|n[(A|=0)>>2])>>>0)+4294967296*+(0|n[A+4>>2]))},_res0CellCount:function(){return 122},_round:wt,_sbrk:pt,_sizeOfCellBoundary:function(){return 168},_sizeOfCoordIJ:function(){return 8},_sizeOfGeoLoop:function(){return 8},_sizeOfGeoPolygon:function(){return 16},_sizeOfH3Index:function(){return 8},_sizeOfLatLng:function(){return 16},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompactCells:function(A,e,t,r,i,o,s){A|=0,r|=0,i|=0,o|=0;var a,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0;if(a=P,P=P+16|0,w=a,!((0|(t|=0))>0|!(0|t)&(e|=0)>>>0>0))return P=a,0|(w=0);if((0|(s|=0))>=16)return P=a,0|(w=12);g=0,d=0,h=0,l=0;A:for(;;){if(c=0|at(0|(f=0|n[(u=A+(g<<3)|0)>>2]),0|(u=0|n[u+4>>2]),52),M(),(15&c)>(0|s)){l=12,f=11;break}if(oe(w,f,u,s),!(0|(u=0|n[(c=w)>>2]))&!(0|(c=0|n[c+4>>2])))f=h;else{f=h;do{if(!((0|l)<(0|o)|(0|l)==(0|o)&f>>>0<i>>>0)){f=10;break A}n[(h=r+(f<<3)|0)>>2]=u,n[h+4>>2]=c,f=0|$e(0|f,0|l,1,0),l=0|M(),ae(w),u=0|n[(h=w)>>2],c=0|n[h+4>>2]}while(!(!(0|u)&!(0|c)))}if(g=0|$e(0|g,0|d,1,0),!((0|(d=0|M()))<(0|t)|(0|d)==(0|t)&g>>>0<e>>>0)){l=0,f=11;break}h=f}return 10==(0|f)?(P=a,0|(w=14)):11==(0|f)?(P=a,0|l):0},_uncompactCellsSize:function(A,e,t,r,i){A|=0,e|=0,t|=0,r|=0,i|=0;var o,s,a=0,l=0,f=0,u=0,c=0,h=0;s=P,P=P+16|0,o=s;A:do{if((0|t)>0|!(0|t)&e>>>0>0){for(c=0,l=0,a=0,h=0;;){if(!(!(0|(f=0|n[(u=A+(c<<3)|0)>>2]))&!(0|(u=0|n[u+4>>2]))||(u=!(0|NA(f,u,r,o)),l=0|$e(0|n[(f=o)>>2],0|n[f+4>>2],0|l,0|a),a=0|M(),u))){a=12;break}if(c=0|$e(0|c,0|h,1,0),!((0|(h=0|M()))<(0|t)|(0|h)==(0|t)&c>>>0<e>>>0))break A}return P=s,0|a}l=0,a=0}while(0);return n[i>>2]=l,n[i+4>>2]=a,P=s,0|(i=0)},_vertexToLatLng:function(A,e,t){t|=0;var r,i,o,s,a=0,l=0;return s=P,P=P+192|0,i=s,o=s+168|0,a=0|at(0|(A|=0),0|(e|=0),56),M(),a&=7,0|(r=0|te(A,l=-2130706433&e|134217728,o))?(P=s,0|(l=r)):(e=0|at(0|A,0|e,52),M(),e&=15,0|VA(A,l)?SA(o,e,a,1,i):UA(o,e,a,1,i),l=i+8|0,n[t>>2]=n[l>>2],n[t+4>>2]=n[l+4>>2],n[t+8>>2]=n[l+8>>2],n[t+12>>2]=n[l+12>>2],P=s,0|(l=0))},establishStackSpace:function(A,e){P=A|=0},stackAlloc:function(A){var e;return e=P,P=(P=P+(A|=0)|0)+15&-16,0|e},stackRestore:function(A){P=A|=0},stackSave:function(){return 0|P}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{b:function(A){p=A},c:function(){return p},d:function(A,e,t,r){dA("Assertion failed: "+C(A)+", at: "+[e?C(e):"unknown filename",t,r?C(r):"unknown function"])},e:function(A){return t.___errno_location&&(Q[t.___errno_location()>>2]=A),A},f:q,g:function(A,e,t){k.set(k.subarray(e,e+t),A)},h:function(A){var e=q(),t=16777216,r=2130706432;if(A>r)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?I(2*n,t):Math.min(I((3*n+2147483648)/4,t),r);return!!function(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(E),rA(e),P(e),1}catch(A){}}(n)},i:function(A){dA("OOM")},o:28624,p:28608},y);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._destroyLinkedMultiPolygon=tA._destroyLinkedMultiPolygon,t._directedEdgeToBoundary=tA._directedEdgeToBoundary,t._directedEdgeToCells=tA._directedEdgeToCells,t._edgeLengthKm=tA._edgeLengthKm,t._edgeLengthM=tA._edgeLengthM,t._edgeLengthRads=tA._edgeLengthRads;var rA=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._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._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 nA,iA,oA=t.stackAlloc=tA.stackAlloc,sA=t.stackRestore=tA.stackRestore,aA=t.stackSave=tA.stackSave;if(t.asm=tA,t.cwrap=function(A,e,t,r){var n=(t=t||[]).every(function(A){return"number"===A});return"string"!==e&&n&&!r?B(A):function(){return v(A,e,t,arguments)}},t.setValue=function(A,e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":E[A|0]=e;break;case"i16":M[A>>1]=e;break;case"i32":Q[A>>2]=e;break;case"i64":W=[e>>>0,(j=e,+z(j)>=1?j>0?(0|N(+H(j/4294967296),4294967295))>>>0:~~+O((j-+(~~j>>>0))/4294967296)>>>0:0)],Q[A>>2]=W[0],Q[A+4>>2]=W[1];break;case"float":_[A>>2]=e;break;case"double":x[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 M[A>>1];case"i32":case"i64":return Q[A>>2];case"float":return _[A>>2];case"double":return x[A>>3];default:dA("invalid type for getValue: "+e)}return null},Z)if(K(Z)||(nA=Z,Z=t.locateFile?t.locateFile(nA,g):g+nA),o||a){var lA=u(Z);k.set(lA,8)}else{V++,t.monitorRunDependencies&&t.monitorRunDependencies(V);var fA=function(A){A.byteLength&&(A=new Uint8Array(A)),k.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(V--,t.monitorRunDependencies&&t.monitorRunDependencies(V),0==V&&X){var A=X;X=null,A()}}()},uA=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 r=eA(t.memoryInitializerRequestURL);if(!r)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+Z),void uA();e=r.buffer}fA(e)};t.memoryInitializerRequest.response?setTimeout(hA,0):t.memoryInitializerRequest.addEventListener("load",hA)}else uA()}function gA(A){function e(){iA||(iA=!0,b||(S(G),S(L),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)Y(t.postRun.shift());S(U)}()))}V>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)R(t.preRun.shift());S(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+=""),w(A),b=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(X=function A(){iA||gA(),iA||(X=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 F?F:{}),S="number",T={0:"Success",1:"The operation failed but a more specific error is not available",2:"Argument was outside of acceptable range",3:"Latitude or longitude arguments were outside of acceptable range",4:"Resolution argument was outside of acceptable range",5:"Cell argument was not valid",6:"Directed edge argument was not valid",7:"Undirected edge argument was not valid",8:"Vertex argument was not valid",9:"Pentagon distortion was encountered",10:"Duplicate input",11:"Cell arguments were not neighbors",12:"Cell arguments had incompatible resolutions",13:"Memory allocation failed",14:"Bounds of provided memory were insufficient",15:"Mode or flags argument was not valid"},G={1e3:"Unknown unit",1001:"Array length out of bounds",1002:"Got unexpected null value for H3 index"};function L(A,e,t){var r=t&&"value"in t,n=new Error((A[e]||"Unknown error")+" (code: "+e+(r?", value: "+t.value:"")+")");return n.code=e,n}function U(A,e){return L(T,A,2===arguments.length?{value:e}:{})}function R(A){if(0!==A)throw U(A)}var Y={};[["sizeOfH3Index",S],["sizeOfLatLng",S],["sizeOfCellBoundary",S],["sizeOfGeoLoop",S],["sizeOfGeoPolygon",S],["sizeOfLinkedGeoPolygon",S],["sizeOfCoordIJ",S],["readInt64AsDoubleFromPointer",S],["isValidCell",S,[S,S]],["latLngToCell",S,[S,S,S,S]],["cellToLatLng",S,[S,S,S]],["cellToBoundary",S,[S,S,S]],["maxGridDiskSize",S,[S,S]],["gridDisk",S,[S,S,S,S]],["gridDiskDistances",S,[S,S,S,S,S]],["gridRing",S,[S,S,S,S]],["gridRingUnsafe",S,[S,S,S,S]],["maxPolygonToCellsSize",S,[S,S,S,S]],["polygonToCells",S,[S,S,S,S]],["maxPolygonToCellsSizeExperimental",S,[S,S,S,S]],["polygonToCellsExperimental",S,[S,S,S,S,S,S]],["cellsToLinkedMultiPolygon",S,[S,S,S]],["destroyLinkedMultiPolygon",null,[S]],["compactCells",S,[S,S,S,S]],["uncompactCells",S,[S,S,S,S,S,S]],["uncompactCellsSize",S,[S,S,S,S,S]],["isPentagon",S,[S,S]],["isResClassIII",S,[S,S]],["getBaseCellNumber",S,[S,S]],["getResolution",S,[S,S]],["maxFaceCount",S,[S,S,S]],["getIcosahedronFaces",S,[S,S,S]],["cellToParent",S,[S,S,S,S]],["cellToChildren",S,[S,S,S,S]],["cellToCenterChild",S,[S,S,S,S]],["cellToChildrenSize",S,[S,S,S,S]],["cellToChildPos",S,[S,S,S,S]],["childPosToCell",S,[S,S,S,S,S,S]],["areNeighborCells",S,[S,S,S,S,S]],["cellsToDirectedEdge",S,[S,S,S,S,S]],["getDirectedEdgeOrigin",S,[S,S,S]],["getDirectedEdgeDestination",S,[S,S,S]],["isValidDirectedEdge",S,[S,S]],["directedEdgeToCells",S,[S,S,S]],["originToDirectedEdges",S,[S,S,S]],["directedEdgeToBoundary",S,[S,S,S]],["gridDistance",S,[S,S,S,S,S]],["gridPathCells",S,[S,S,S,S,S]],["gridPathCellsSize",S,[S,S,S,S,S]],["cellToLocalIj",S,[S,S,S,S,S,S]],["localIjToCell",S,[S,S,S,S,S]],["getHexagonAreaAvgM2",S,[S,S]],["getHexagonAreaAvgKm2",S,[S,S]],["getHexagonEdgeLengthAvgM",S,[S,S]],["getHexagonEdgeLengthAvgKm",S,[S,S]],["greatCircleDistanceM",S,[S,S]],["greatCircleDistanceKm",S,[S,S]],["greatCircleDistanceRads",S,[S,S]],["cellAreaM2",S,[S,S,S]],["cellAreaKm2",S,[S,S,S]],["cellAreaRads2",S,[S,S,S]],["edgeLengthM",S,[S,S,S]],["edgeLengthKm",S,[S,S,S]],["edgeLengthRads",S,[S,S,S]],["getNumCells",S,[S,S]],["getRes0Cells",S,[S]],["res0CellCount",S],["getPentagons",S,[S,S]],["pentagonCount",S],["cellToVertex",S,[S,S,S,S]],["cellToVertexes",S,[S,S,S]],["vertexToLatLng",S,[S,S,S]],["isValidVertex",S,[S,S]]].forEach(function(A){Y[A[0]]=F.cwrap.apply(F,A)});var z=16,O=Y.sizeOfH3Index();Y.sizeOfLatLng();var H=Y.sizeOfCellBoundary();Y.sizeOfGeoPolygon(),Y.sizeOfGeoLoop(),Y.sizeOfLinkedGeoPolygon(),Y.sizeOfCoordIJ();var N=Math.pow(2,32)-1;function V(A){if(A>N)throw function(A,e){return L(G,A,2===arguments.length?{value:e}:{})}(1001,A);return A}var X=/[^0-9a-fA-F]/;function j(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||X.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),z);return[parseInt(A.substring(A.length-8),z),e]}function W(A){if(A>=0)return A.toString(z);var e=Z(8,(A&=2147483647).toString(z));return e=(parseInt(e[0],z)+8).toString(z)+e.substring(1)}function Z(A,e){for(var t=A-e.length,r="",n=0;n<t;n++)r+="0";return r+=e}function J(A,e){void 0===e&&(e=0);var t=F.getValue(A+O*e,"i32"),r=F.getValue(A+O*e+4,"i32");return r?function(A,e){return W(e)+Z(8,W(A))}(t,r):null}function K(A,e){for(var t=[],r=0;r<e;r++){var n=J(A,r);null!==n&&t.push(n)}return t}function q(A){return 180*F.getValue(A,"double")/Math.PI}function $(A){return[q(A+8),q(A)]}function AA(A){var e=j(A),t=e[0],r=e[1];return Boolean(Y.isValidCell(t,r))}function eA(A,e){var t=F._malloc(H),r=j(A),n=r[0],i=r[1];try{return R(Y.cellToBoundary(n,i,t)),function(A){for(var e=F.getValue(A,"i32"),t=A+8,r=[],n=$,i=0;i<2*e;i+=2)r.push(n(t+8*i));return r.push(r[0]),r}(t)}finally{F._free(t)}}function tA(A,e){if(!AA(A))return[];var t=j(A),r=t[0],n=t[1],i=V(function(A,e){if(!AA(A))throw U(5);var t=j(A),r=t[0],n=t[1],i=F._malloc(8);try{return R(Y.cellToChildrenSize(r,n,e,i)),o=i,Y.readInt64AsDoubleFromPointer(o)}finally{F._free(i)}var o}(A,e)),o=F._calloc(i,O);try{return R(Y.cellToChildren(r,n,e,o)),K(o,i)}finally{F._free(o)}}function rA(){var A=Y.res0CellCount(),e=F._malloc(O*A);try{return R(Y.getRes0Cells(e)),K(e,A)}finally{F._free(e)}}function nA(A){if(A.__esModule)return A;var e=A.default;if("function"==typeof e){var t=function A(){return this instanceof A?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(A).forEach(function(e){var r=Object.getOwnPropertyDescriptor(A,e);Object.defineProperty(t,e,r.get?r:{enumerable:!0,get:function(){return A[e]}})}),t}var iA=function(A){var e,t=void 0!==(A=A||{})?A:{},r={};for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);var n,i,o,s,a;n="object"==typeof window,i="function"==typeof importScripts,s="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=s&&!n&&!i,a=!n&&!o&&!i;var l,f,u,c,h,g="";o?(g=__dirname+"/",l=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()},u=function(A){var e=l(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]"}):a?("undefined"!=typeof read&&(l=function(A){var e=tA(A);return e?AA(e):read(A)}),u=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)):(n||i)&&(i?g=self.location.href:document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",l=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var t=tA(A);if(t)return AA(t);throw e}},i&&(u=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}catch(e){var t=tA(A);if(t)return t;throw e}}),f=function(A,e,t){var r=new XMLHttpRequest;r.open("GET",A,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)e(r.response);else{var n=tA(A);n?e(n.buffer):t()}},r.onerror=t,r.send(null)});var d=t.print||console.log.bind(console),w=t.printErr||console.warn.bind(console);for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);r=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram;var p=0,b=function(){return p};var m=!1;function B(A,e){A||wA("Assertion failed: "+e)}function v(A){var e=t["_"+A];return B(e,"Cannot call unknown function "+A+", make sure it is exported"),e}function y(A,e,t,r,n){var i={string:function(A){var e=0;if(null!=A&&0!==A){var t=1+(A.length<<2);(function(A,e,t){(function(A,e,t,r){if(!(r>0))return 0;for(var n=t,i=t+r-1,o=0;o<A.length;++o){var s=A.charCodeAt(o);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&A.charCodeAt(++o);if(s<=127){if(t>=i)break;e[t++]=s}else if(s<=2047){if(t+1>=i)break;e[t++]=192|s>>6,e[t++]=128|63&s}else if(s<=65535){if(t+2>=i)break;e[t++]=224|s>>12,e[t++]=128|s>>6&63,e[t++]=128|63&s}else{if(t+3>=i)break;e[t++]=240|s>>18,e[t++]=128|s>>12&63,e[t++]=128|s>>6&63,e[t++]=128|63&s}}e[t]=0})(A,M,e,t)})(A,e=sA(t),t)}return e},array:function(A){var e=sA(A.length);return function(A,e){k.set(A,e)}(A,e),e}};var o=v(A),s=[],a=0;if(r)for(var l=0;l<r.length;l++){var f=i[t[l]];f?(0===a&&(a=lA()),s[l]=f(r[l])):s[l]=r[l]}var u=o.apply(null,s);return u=function(A){return"string"===e?I(A):"boolean"===e?Boolean(A):A}(u),0!==a&&aA(a),u}var E,k,M,Q,_,x,D,C="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function I(A,e){return A?function(A,e,t){for(var r=e+t,n=e;A[n]&&!(n>=r);)++n;if(n-e>16&&A.subarray&&C)return C.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var s=63&A[e++];if(192!=(224&o)){var a=63&A[e++];if((o=224==(240&o)?(15&o)<<12|s<<6|a:(7&o)<<18|s<<12|a<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var l=o-65536;i+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|s)}else i+=String.fromCharCode(o)}return i}(M,A,e):""}function P(A,e){return A%e>0&&(A+=e-A%e),A}function F(A){E=A,t.HEAP8=k=new Int8Array(A),t.HEAP16=Q=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=D=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var S=t.TOTAL_MEMORY||33554432;function T(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?t.dynCall_v(r):t.dynCall_vi(r,e.arg):r(void 0===e.arg?null:e.arg)}else e()}}S=(E=t.buffer?t.buffer:new ArrayBuffer(S)).byteLength,F(E),_[6004]=5266928;var G=[],L=[],U=[],R=[];function Y(A){G.unshift(A)}function z(A){R.unshift(A)}var O=Math.abs,H=Math.ceil,N=Math.floor,V=Math.min,X=0,j=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 k.length}function AA(A){for(var e=[],t=0;t<A.length;t++){var r=A[t];r>255&&(r&=255),e.push(String.fromCharCode(r))}return e.join("")}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,r,n,i,o,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a="",l=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=s.indexOf(A.charAt(l++))<<2|(n=s.indexOf(A.charAt(l++)))>>4,t=(15&n)<<4|(i=s.indexOf(A.charAt(l++)))>>2,r=(3&i)<<6|(o=s.indexOf(A.charAt(l++))),a+=String.fromCharCode(e),64!==i&&(a+=String.fromCharCode(t)),64!==o&&(a+=String.fromCharCode(r))}while(l<A.length);return a};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),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(K.length))}var rA=function(A,e,t){var r=new A.Int8Array(t),n=new A.Int32Array(t);new A.Uint8Array(t),new A.Float32Array(t);var i=new A.Float64Array(t),o=0|e.p,s=A.Math.floor,a=A.Math.abs,l=A.Math.sqrt,f=A.Math.pow,u=A.Math.cos,c=A.Math.sin,h=A.Math.tan,g=A.Math.acos,d=A.Math.asin,w=A.Math.atan,p=A.Math.atan2,b=A.Math.ceil,m=A.Math.imul,B=A.Math.min,v=A.Math.clz32,y=e.b,E=e.c,k=e.d,M=e.e,Q=e.f,_=e.g,x=e.h,D=e.i,C=24048;function I(A,e,t,r){var n,i;0|P(A|=0,e|=0,t|=0,r|=0,0)&&(De(0|r,0,(i=1+(0|m(3*t|0,t+1|0))|0)<<3),(n=0|me(i,4))&&(F(A,e,t,r,n,i,0),be(n)))}function P(A,e,t,r,i){A|=0,e|=0,t|=0,i|=0;var o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0;if(o=C,C=C+16|0,g=o,n[(s=r|=0)>>2]=A,n[s+4>>2]=e,(s=!!(0|i))&&(n[i>>2]=0),0|SA(A,e))return C=o,0|(g=1);n[g>>2]=0;A:do{if((0|t)>=1)if(s)for(u=0,c=1,h=1,a=0,s=A;;){if(!(a|u)){if(!(0|(s=0|S(s,e,4,g)))&!(0|(e=0|E()))){s=2;break A}if(0|SA(s,e)){s=1;break A}}if(!(0|(s=0|S(s,e,0|n[16+(u<<2)>>2],g)))&!(0|(e=0|E()))){s=2;break A}if(n[(A=r+(h<<3)|0)>>2]=s,n[A+4>>2]=e,n[i+(h<<2)>>2]=c,A=(0|(a=a+1|0))==(0|c),f=6==(0|(l=u+1|0)),0|SA(s,e)){s=1;break A}if((0|(c=c+(f&A&1)|0))>(0|t)){s=0;break}u=A?f?0:l:u,h=h+1|0,a=A?0:a}else for(u=0,c=1,h=1,a=0,s=A;;){if(!(a|u)){if(!(0|(s=0|S(s,e,4,g)))&!(0|(e=0|E()))){s=2;break A}if(0|SA(s,e)){s=1;break A}}if(!(0|(s=0|S(s,e,0|n[16+(u<<2)>>2],g)))&!(0|(e=0|E()))){s=2;break A}if(n[(A=r+(h<<3)|0)>>2]=s,n[A+4>>2]=e,A=(0|(a=a+1|0))==(0|c),f=6==(0|(l=u+1|0)),0|SA(s,e)){s=1;break A}if((0|(c=c+(f&A&1)|0))>(0|t)){s=0;break}u=A?f?0:l:u,h=h+1|0,a=A?0:a}else s=0}while(0);return C=o,0|(g=s)}function F(A,e,t,r,i,o,s){t|=0,r|=0,i|=0,o|=0,s|=0;var a,l,f=0,u=0,c=0,h=0,g=0;if(l=C,C=C+16|0,a=l,!(0|(A|=0))&!(0|(e|=0)))C=l;else{if(f=0|Ee(0|A,0|e,0|o,((0|o)<0)<<31>>31),E(),!(!(0|(g=0|n[(h=u=r+(f<<3)|0)>>2]))&!(0|(h=0|n[h+4>>2]))|(c=(0|g)==(0|A)&(0|h)==(0|e))))do{c=(0|(h=0|n[(g=u=r+((f=(f+1|0)%(0|o)|0)<<3)|0)>>2]))==(0|A)&(0|(g=0|n[g+4>>2]))==(0|e)}while(!(!(0|h)&!(0|g)|c));f=i+(f<<2)|0,c&&(0|n[f>>2])<=(0|s)||(n[(g=u)>>2]=A,n[g+4>>2]=e,n[f>>2]=s,(0|s)>=(0|t)||(g=s+1|0,n[a>>2]=0,F(h=0|S(A,e,2,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,3,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,1,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,5,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,4,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,6,a),0|E(),t,r,i,o,g))),C=l}}function S(A,e,t,r){A|=0,e|=0,t|=0;var i,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0;if((0|n[(r|=0)>>2])>0){s=0;do{t=0|aA(t),s=s+1|0}while((0|s)<(0|n[r>>2]))}i=0|ke(0|A,0|e,45),E(),o=127&i,a=0|TA(A,e),s=0|ke(0|A,0|e,52),E(),s&=15;A:do{if(s)for(;;){if(c=0|ke(0|A,0|e,0|(u=3*(15-s|0)|0)),E(),c&=7,h=!(0|YA(s)),s=s+-1|0,f=0|Me(7,0,0|u),e&=~E(),A=(u=0|Me(0|n[(h?464:48)+(28*c|0)+(t<<2)>>2],0,0|u))|A&~f,e|=0|E(),!(t=0|n[(h?672:256)+(28*c|0)+(t<<2)>>2])){t=0;break A}if(!s){l=6;break}}else l=6}while(0);6==(0|l)&&(A|=c=0|Me(0|(h=0|n[880+(28*o|0)+(t<<2)>>2]),0,45),e=E()|-1040385&e,t=0|n[4304+(28*o|0)+(t<<2)>>2],127&~h||(h=0|Me(0|n[880+(28*o|0)+20>>2],0,45),e=E()|-1040385&e,t=0|n[4304+(28*o|0)+20>>2],A=0|LA(h|A,e),e=0|E(),n[r>>2]=1+(0|n[r>>2]))),l=0|ke(0|A,0|e,45),E(),l&=127;A:do{if(0|G(l)){e:do{if(1==(0|TA(A,e))){if((0|o)!=(0|l)){if(0|Y(l,0|n[7728+(28*o|0)>>2])){A=0|RA(A,e),a=1,e=0|E();break}A=0|LA(A,e),a=1,e=0|E();break}switch(0|a){case 5:A=0|RA(A,e),e=0|E(),n[r>>2]=5+(0|n[r>>2]),a=0;break e;case 3:A=0|LA(A,e),e=0|E(),n[r>>2]=1+(0|n[r>>2]),a=0;break e;default:return h=0,y(0|(c=0)),0|h}}else a=0}while(0);if((0|t)>0){s=0;do{A=0|GA(A,e),e=0|E(),s=s+1|0}while((0|s)!=(0|t))}if((0|o)!=(0|l)){if(!(0|L(l))){if(!!(0|a)|5!=(0|TA(A,e)))break;n[r>>2]=1+(0|n[r>>2]);break}switch(127&i){case 8:case 118:break A}3!=(0|TA(A,e))&&(n[r>>2]=1+(0|n[r>>2]))}}else if((0|t)>0){s=0;do{A=0|LA(A,e),e=0|E(),s=s+1|0}while((0|s)!=(0|t))}}while(0);return n[r>>2]=((0|n[r>>2])+t|0)%6|0,h=A,y(0|(c=e)),0|h}function T(A,e,t,r,o,s){e|=0,t|=0,r|=0,o|=0,s|=0;var a,l,f,u,c,h,g,d,w,p=0,b=0,m=0,B=0,v=0,y=0,k=0,M=0,Q=0,_=0,x=0,D=0,I=0,P=0;if(w=C,C=C+48|0,h=w+32|0,g=w+16|0,d=w,(0|(p=0|n[(A|=0)>>2]))<=0)return C=w,0|(D=0);a=A+4|0,l=h+8|0,f=g+8|0,u=d+8|0,c=((0|e)<0)<<31>>31,x=0;A:for(;;){Q=(b=0|n[a>>2])+(x<<4)|0,n[h>>2]=n[Q>>2],n[h+4>>2]=n[Q+4>>2],n[h+8>>2]=n[Q+8>>2],n[h+12>>2]=n[Q+12>>2],(0|x)==(p+-1|0)?(n[g>>2]=n[b>>2],n[g+4>>2]=n[b+4>>2],n[g+8>>2]=n[b+8>>2],n[g+12>>2]=n[b+12>>2]):(Q=b+(x+1<<4)|0,n[g>>2]=n[Q>>2],n[g+4>>2]=n[Q+4>>2],n[g+8>>2]=n[Q+8>>2],n[g+12>>2]=n[Q+12>>2]),Q=0|X(h,g,t);e:do{if((0|Q)>0){_=+(0|Q),M=0;t:for(;;){P=+(Q-M|0),I=+(0|M),i[d>>3]=+i[h>>3]*P/_+ +i[g>>3]*I/_,i[u>>3]=+i[l>>3]*P/_+ +i[f>>3]*I/_,b=0|Ee(0|(y=0|zA(d,t)),0|(k=0|E()),0|e,0|c),E(),B=0|n[(m=p=s+(b<<3)|0)>>2],m=0|n[m+4>>2];r:do{if(!(0|B)&!(0|m))D=14;else for(v=0;;){if((0|v)>(0|e)){p=1;break r}if((0|B)==(0|y)&(0|m)==(0|k)){p=7;break r}if(!(0|(B=0|n[(m=p=s+((b=(b+1|0)%(0|e)|0)<<3)|0)>>2]))&!(0|(m=0|n[m+4>>2]))){D=14;break}v=v+1|0}}while(0);switch(14==(0|D)&&(D=0,!(0|y)&!(0|k)?p=7:(n[p>>2]=y,n[p+4>>2]=k,p=0|n[r>>2],n[(v=o+(p<<3)|0)>>2]=y,n[v+4>>2]=k,n[r>>2]=p+1,p=0)),7&p){case 7:case 0:break;default:break t}if((0|Q)<=(0|(M=M+1|0))){D=8;break e}}if(0|p){p=-1,D=20;break A}}else D=8}while(0);if(8==(0|D)&&(D=0),(0|(x=x+1|0))>=(0|(p=0|n[A>>2]))){p=0,D=20;break}}return 20==(0|D)?(C=w,0|p):0}function G(A){return 0|n[7728+(28*(A|=0)|0)+16>>2]}function L(A){return 4==(0|(A|=0))|117==(0|A)|0}function U(A){return 0|n[11152+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function R(A){return 0|n[11152+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function Y(A,e){return e|=0,(0|n[7728+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|n[7728+(28*A|0)+24>>2])==(0|e))}function z(A,e){return 0|n[880+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function O(A,e){return e|=0,(0|n[880+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|n[880+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[880+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[880+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[880+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[880+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[880+(28*A|0)+24>>2])==(0|e)?6:7)}function H(A){return+i[(A|=0)+16>>3]<+i[A+24>>3]|0}function N(A,e){A|=0;var t,r,n=0;return(n=+i[(e|=0)>>3])>=+i[A+8>>3]&&n<=+i[A>>3]?(t=+i[A+16>>3],n=+i[A+24>>3],e=(r=+i[e+8>>3])>=n,A=r<=t&1,t<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function V(A,e){A|=0,e|=0;var t,r,o,s,l,f,u=0,c=0;s=C,C=C+288|0,t=s+264|0,r=s+96|0,c=(u=o=s)+96|0;do{n[u>>2]=0,u=u+4|0}while((0|u)<(0|c));return XA(e,o),NA(c=0|n[(u=o)>>2],u=0|n[u+4>>2],t),VA(c,u,r),l=+xA(t,r+8|0),i[t>>3]=+i[A>>3],i[(u=t+8|0)>>3]=+i[A+16>>3],i[r>>3]=+i[A+8>>3],i[(c=r+8|0)>>3]=+i[A+24>>3],f=+xA(t,r),c=~~+b(+f*f/+Qe(+ +a(+(+i[u>>3]-+i[c>>3])/(+i[t>>3]-+i[r>>3])),3)/(l*(2.59807621135*l)*.8)),C=s,0|(0|c?c:1)}function X(A,e,t){A|=0,e|=0,t|=0;var r,i,o,s,a,l=0,f=0;s=C,C=C+288|0,r=s+264|0,i=s+96|0,f=(l=o=s)+96|0;do{n[l>>2]=0,l=l+4|0}while((0|l)<(0|f));return XA(t,o),NA(l=0|n[(f=o)>>2],f=0|n[f+4>>2],r),VA(l,f,i),a=+xA(r,i+8|0),f=~~+b(+ +xA(A,e)/(2*a)),C=s,0|(0|f?f:1)}function j(A,e,t,r){e|=0,t|=0,r|=0,n[(A|=0)>>2]=e,n[A+4>>2]=t,n[A+8>>2]=r}function W(A,e){A|=0;var t,r,o,s,l=0,f=0,u=0,c=0,h=0,g=0,d=0;n[(s=(e|=0)+8|0)>>2]=0,r=+i[A>>3],c=+a(+r),o=+i[A+8>>3],c+=.5*(h=+a(+o)/.8660254037844386),c-=+(0|(l=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=l,h<.5*(c+1)){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,n[e+4>>2]=A,d<=h&h<2*c){l=l+1|0,n[e>>2]=l;break}n[e>>2]=l;break}if(!(c<.6666666666666666)){if(l=l+1|0,n[e>>2]=l,h<.5*c){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=l;break}}else A=A+1|0,n[e+4>>2]=A;l=l+1|0,n[e>>2]=l}while(0);do{if(r<0){if(1&A){l=~~(+(0|l)-(2*(+((g=0|Be(0|l,((0|l)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|E()))+1)),n[e>>2]=l;break}l=~~(+(0|l)-2*(+((g=0|Be(0|l,((0|l)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|E()))),n[e>>2]=l;break}}while(0);g=e+4|0,o<0&&(l=l-((1|A<<1)/2|0)|0,n[e>>2]=l,A=0-A|0,n[g>>2]=A),f=A-l|0,(0|l)<0?(u=0-l|0,n[g>>2]=f,n[s>>2]=u,n[e>>2]=0,A=f,l=0):u=0,(0|A)<0&&(l=l-A|0,n[e>>2]=l,u=u-A|0,n[s>>2]=u,n[g>>2]=0,A=0),t=l-u|0,f=A-u|0,(0|u)<0&&(n[e>>2]=t,n[g>>2]=f,n[s>>2]=0,A=f,l=t,u=0),(0|(f=(0|u)<(0|(f=(0|A)<(0|l)?A:l))?u:f))<=0||(n[e>>2]=l-f,n[g>>2]=A-f,n[s>>2]=u-f)}function Z(A){var e,t=0,r=0,i=0,o=0,s=0;t=0|n[(A|=0)>>2],r=0|n[(e=A+4|0)>>2],(0|t)<0&&(r=r-t|0,n[e>>2]=r,n[(s=A+8|0)>>2]=(0|n[s>>2])-t,n[A>>2]=0,t=0),(0|r)<0?(t=t-r|0,n[A>>2]=t,o=(0|n[(s=A+8|0)>>2])-r|0,n[s>>2]=o,n[e>>2]=0,r=0):(s=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(t=t-o|0,n[A>>2]=t,r=r-o|0,n[e>>2]=r,n[s>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|r)<(0|t)?r:t))?o:i))<=0||(n[A>>2]=t-i,n[e>>2]=r-i,n[s>>2]=o-i)}function J(A,e){e|=0;var t,r;r=0|n[(A|=0)+8>>2],t=+((0|n[A+4>>2])-r|0),i[e>>3]=+((0|n[A>>2])-r|0)-.5*t,i[e+8>>3]=.8660254037844386*t}function K(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[e>>2])+(0|n[A>>2]),n[t+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[t+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function q(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[A>>2])-(0|n[e>>2]),n[t+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[t+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function $(A,e){e|=0;var t,r=0;r=0|m(0|n[(A|=0)>>2],e),n[A>>2]=r,t=0|m(0|n[(r=A+4|0)>>2],e),n[r>>2]=t,e=0|m(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function AA(A){var e,t,r=0,i=0,o=0,s=0,a=0;a=(0|(t=0|n[(A|=0)>>2]))<0,A=(A=(i=(0|(s=((e=(0|(o=(0|n[A+4>>2])-(a?t:0)|0))<0)?0-o|0:0)+((0|n[A+8>>2])-(a?t:0))|0))<0)?0:s)-((o=(0|(i=(0|A)<(0|(i=(0|(r=(e?0:o)-(i?s:0)|0))<(0|(s=(a?0:t)-(e?o:0)-(i?s:0)|0))?r:s))?A:i))>0)?i:0)|0,r=r-(o?i:0)|0;A:do{switch(s-(o?i:0)|0){case 0:switch(0|r){case 0:return 0|(a=0|A?1==(0|A)?1:7:0);case 1:return 0|(a=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|r){case 0:return 0|(a=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|(a=7)}function eA(A){var e,t,r=0,i=0,o=0,s=0,a=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|we(+((3*(r=(0|n[A>>2])-i|0)|0)-(i=(0|n[(t=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,r=0|we(+((i<<1)+r|0)/7),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(a=0-o|0,n[t>>2]=i,n[e>>2]=a,n[A>>2]=0,r=i,o=0,i=a):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=s,n[e>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=r-o,n[e>>2]=i-o)}function tA(A){var e,t,r=0,i=0,o=0,s=0,a=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|we(+(((r=(0|n[A>>2])-i|0)<<1)+(i=(0|n[(t=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,r=0|we(+((3*i|0)-r|0)/7),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(a=0-o|0,n[t>>2]=i,n[e>>2]=a,n[A>>2]=0,r=i,o=0,i=a):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=s,n[e>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=r-o,n[e>>2]=i-o)}function rA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],s=0|n[(r=A+8|0)>>2],a=o+(3*i|0)|0,n[A>>2]=a,o=s+(3*o|0)|0,n[t>>2]=o,i=(3*s|0)+i|0,n[r>>2]=i,s=o-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=s,n[r>>2]=i,n[A>>2]=0,o=s,s=0):s=a,(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function nA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=(3*(i=0|n[(t=A+4|0)>>2])|0)+a|0,a=(o=0|n[(r=A+8|0)>>2])+(3*a|0)|0,n[A>>2]=a,n[t>>2]=s,i=(3*o|0)+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):o=s,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function iA(A,e){A|=0;var t,r,i,o=0,s=0,a=0;((e|=0)+-1|0)>>>0>=6||(a=(0|n[15472+(12*e|0)>>2])+(0|n[A>>2])|0,n[A>>2]=a,i=A+4|0,s=(0|n[15472+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[i>>2]=s,r=A+8|0,e=(0|n[15472+(12*e|0)+8>>2])+(0|n[r>>2])|0,n[r>>2]=e,o=s-a|0,(0|a)<0?(e=e-a|0,n[i>>2]=o,n[r>>2]=e,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,e=e-o|0,n[r>>2]=e,n[i>>2]=0,o=0),t=s-e|0,a=o-e|0,(0|e)<0?(n[A>>2]=t,n[i>>2]=a,n[r>>2]=0,s=t,e=0):a=o,(0|(o=(0|e)<(0|(o=(0|a)<(0|s)?a:s))?e:o))<=0||(n[A>>2]=s-o,n[i>>2]=a-o,n[r>>2]=e-o))}function oA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=(i=0|n[(t=A+4|0)>>2])+a|0,a=(o=0|n[(r=A+8|0)>>2])+a|0,n[A>>2]=a,n[t>>2]=s,i=o+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function sA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],s=0|n[(t=A+4|0)>>2],o=0|n[(r=A+8|0)>>2],a=s+i|0,n[A>>2]=a,s=o+s|0,n[t>>2]=s,i=o+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function aA(A){switch(0|(A|=0)){case 1:A=5;break;case 5:A=4;break;case 4:A=6;break;case 6:A=2;break;case 2:A=3;break;case 3:A=1}return 0|A}function lA(A){switch(0|(A|=0)){case 1:A=3;break;case 3:A=2;break;case 2:A=6;break;case 6:A=4;break;case 4:A=5;break;case 5:A=1}return 0|A}function fA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],s=0|n[(r=A+8|0)>>2],a=o+(i<<1)|0,n[A>>2]=a,o=s+(o<<1)|0,n[t>>2]=o,i=(s<<1)+i|0,n[r>>2]=i,s=o-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=s,n[r>>2]=i,n[A>>2]=0,o=s,s=0):s=a,(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function uA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=((i=0|n[(t=A+4|0)>>2])<<1)+a|0,a=(o=0|n[(r=A+8|0)>>2])+(a<<1)|0,n[A>>2]=a,n[t>>2]=s,i=(o<<1)+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):o=s,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function cA(A,e){e|=0;var t,r,i,o=0,s=0,a=0;return i=(0|(r=(0|n[(A|=0)>>2])-(0|n[e>>2])|0))<0,t=(0|(s=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?r:0)|0))<0,e=(e=(A=(0|(a=(i?0-r|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+(t?0-s|0:0)|0))<0)?0:a)-((s=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:s)-(A?a:0)|0))<(0|(a=(i?0:r)-(t?s:0)-(A?a:0)|0))?o:a))?e:A))>0)?A:0)|0,o=o-(s?A:0)|0,0|((0|(A=(0|(A=a-(s?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function hA(A,e){e|=0;var t;t=0|n[(A|=0)+8>>2],n[e>>2]=(0|n[A>>2])-t,n[e+4>>2]=(0|n[A+4>>2])-t}function gA(A,e){e|=0;var t,r,i,o=0,s=0,a=0;s=0|n[(A|=0)>>2],n[e>>2]=s,A=0|n[A+4>>2],n[(r=e+4|0)>>2]=A,n[(i=e+8|0)>>2]=0,o=A-s|0,(0|s)<0?(A=0-s|0,n[r>>2]=o,n[i>>2]=A,n[e>>2]=0,s=0):(o=A,A=0),(0|o)<0&&(s=s-o|0,n[e>>2]=s,A=A-o|0,n[i>>2]=A,n[r>>2]=0,o=0),t=s-A|0,a=o-A|0,(0|A)<0?(n[e>>2]=t,n[r>>2]=a,n[i>>2]=0,o=a,a=t,A=0):a=s,(0|(s=(0|A)<(0|(s=(0|o)<(0|a)?o:a))?A:s))<=0||(n[e>>2]=a-s,n[r>>2]=o-s,n[i>>2]=A-s)}function dA(A){var e,t,r,i;t=(i=0|n[(e=(A|=0)+8|0)>>2])-(0|n[A>>2])|0,n[A>>2]=t,A=(0|n[(r=A+4|0)>>2])-i|0,n[r>>2]=A,n[e>>2]=0-(A+t)}function wA(A){var e,t,r=0,i=0,o=0,s=0,a=0;r=0-(i=0|n[(A|=0)>>2])|0,n[A>>2]=r,n[(e=A+8|0)>>2]=0,s=(o=0|n[(t=A+4|0)>>2])+i|0,(0|i)>0?(n[t>>2]=s,n[e>>2]=i,n[A>>2]=0,r=0,o=s):i=0,(0|o)<0?(a=r-o|0,n[A>>2]=a,i=i-o|0,n[e>>2]=i,n[t>>2]=0,s=a-i|0,r=0-i|0,(0|i)<0?(n[A>>2]=s,n[t>>2]=r,n[e>>2]=0,o=r,i=0):(o=0,s=a)):s=r,(0|(r=(0|i)<(0|(r=(0|o)<(0|s)?o:s))?i:r))<=0||(n[A>>2]=s-r,n[t>>2]=o-r,n[e>>2]=i-r)}function pA(A,e,t,r){e|=0,t|=0,r|=0;var o,s=0,a=0,l=0,f=0;if(o=C,C=C+32|0,function(A,e){A|=0,e|=0;var t=0,r=0,n=0;t=+i[A>>3],r=+u(+t),t=+c(+t),i[e+16>>3]=t,t=+i[A+8>>3],n=r*+u(+t),i[e>>3]=n,t=r*+c(+t),i[e+8>>3]=t}(A|=0,a=o),n[t>>2]=0,s=+ae(15888,a),(l=+ae(15912,a))<s&&(n[t>>2]=1,s=l),(l=+ae(15936,a))<s&&(n[t>>2]=2,s=l),(l=+ae(15960,a))<s&&(n[t>>2]=3,s=l),(l=+ae(15984,a))<s&&(n[t>>2]=4,s=l),(l=+ae(16008,a))<s&&(n[t>>2]=5,s=l),(l=+ae(16032,a))<s&&(n[t>>2]=6,s=l),(l=+ae(16056,a))<s&&(n[t>>2]=7,s=l),(l=+ae(16080,a))<s&&(n[t>>2]=8,s=l),(l=+ae(16104,a))<s&&(n[t>>2]=9,s=l),(l=+ae(16128,a))<s&&(n[t>>2]=10,s=l),(l=+ae(16152,a))<s&&(n[t>>2]=11,s=l),(l=+ae(16176,a))<s&&(n[t>>2]=12,s=l),(l=+ae(16200,a))<s&&(n[t>>2]=13,s=l),(l=+ae(16224,a))<s&&(n[t>>2]=14,s=l),(l=+ae(16248,a))<s&&(n[t>>2]=15,s=l),(l=+ae(16272,a))<s&&(n[t>>2]=16,s=l),(l=+ae(16296,a))<s&&(n[t>>2]=17,s=l),(l=+ae(16320,a))<s&&(n[t>>2]=18,s=l),(l=+ae(16344,a))<s&&(n[t>>2]=19,s=l),(l=+g(+(1-.5*s)))<1e-16)return n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,n[r+12>>2]=0,void(C=o);if(t=0|n[t>>2],s=+QA((s=+i[16368+(24*t|0)>>3])-+QA(+function(A,e){A|=0,e|=0;var t=0,r=0,n=0,o=0,s=0;return o=+i[e>>3],r=+u(+o),n=+i[e+8>>3]-+i[A+8>>3],s=r*+c(+n),t=+i[A>>3],+ +p(+s,+(+c(+o)*+u(+t)-+u(+n)*(r*+c(+t))))}(15568+(t<<4)|0,A))),f=0|YA(e)?+QA(s+-.3334731722518321):s,s=+h(+l)/.381966011250105,(0|e)>0){a=0;do{s*=2.6457513110645907,a=a+1|0}while((0|a)!=(0|e))}l=+u(+f)*s,i[r>>3]=l,f=+c(+f)*s,i[r+8>>3]=f,C=o}function bA(A,e,t,r,o){e|=0,t|=0,r|=0,o|=0;var s=0,f=0;if(s=+function(A){A|=0;var e=0,t=0;return t=+i[A>>3],e=+i[A+8>>3],+ +l(+(t*t+e*e))}(A|=0),s<1e-16)return e=15568+(e<<4)|0,n[o>>2]=n[e>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(f=+p(+ +i[A+8>>3],+ +i[A>>3]),(0|t)>0){A=0;do{s/=2.6457513110645907,A=A+1|0}while((0|A)!=(0|t))}r?(s/=3,t=!(0|YA(t)),s=+w(.381966011250105*(t?s:s/2.6457513110645907))):(s=+w(.381966011250105*s),0|YA(t)&&(f=+QA(f+.3334731722518321))),function(A,e,t,r){A|=0,e=+e,t=+t,r|=0;var o=0,s=0,l=0,f=0;if(t<1e-16)return n[r>>2]=n[A>>2],n[r+4>>2]=n[A+4>>2],n[r+8>>2]=n[A+8>>2],void(n[r+12>>2]=n[A+12>>2]);s=e<0?e+6.283185307179586:e,s=e>=6.283185307179586?s+-6.283185307179586:s;do{if(!(s<1e-16)){if(o=+a(+(s+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=t,i[r>>3]=e,o=r;break}if(l=+u(+t),t=+c(+t),e=l*+c(+e)+ +u(+s)*(t*+u(+e)),e=+d(+((e=e>1?1:e)<-1?-1:e)),i[r>>3]=e,+a(+(e+-1.5707963267948966))<1e-16)return i[r>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+a(+(e+1.5707963267948966))<1e-16)return i[r>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(f=+u(+e),s=t*+c(+s)/f,t=+i[A>>3],e=(l-+c(+e)*+c(+t))/+u(+t)/f,l=s>1?1:s,e=e>1?1:e,(e=+i[A+8>>3]+ +p(+(l<-1?-1:l),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[r+8>>3]=e)}e=+i[A>>3]+t,i[r>>3]=e,o=r}while(0);if(+a(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+a(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(e=+i[A+8>>3],e>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[r+8>>3]=e}(15568+(e<<4)|0,+QA(+i[16368+(24*e|0)>>3]-f),s,o)}function mA(A,e,t){e|=0,t|=0;var r,i;r=C,C=C+16|0,J((A|=0)+4|0,i=r),bA(i,0|n[A>>2],e,0,t),C=r}function BA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var s,a,l,f,u,c,h,g,d,w,p,b,m,B,v,y,E,M,Q,_,x,D,I=0,P=0,F=0,S=0,T=0,G=0;if(D=C,C=C+272|0,S=D+240|0,Q=D,_=D+224|0,x=D+208|0,p=D+176|0,b=D+160|0,m=D+192|0,B=D+144|0,v=D+128|0,y=D+112|0,E=D+96|0,M=D+80|0,n[(I=D+256|0)>>2]=e,n[S>>2]=n[A>>2],n[S+4>>2]=n[A+4>>2],n[S+8>>2]=n[A+8>>2],n[S+12>>2]=n[A+12>>2],vA(S,I,Q),n[o>>2]=0,(0|(S=r+t+(5==(0|r)&1)|0))<=(0|t))C=D;else{a=_+4|0,l=p+4|0,f=t+5|0,u=16848+((s=0|n[I>>2])<<2)|0,c=16928+(s<<2)|0,h=v+8|0,g=y+8|0,d=E+8|0,w=x+4|0,F=t;A:for(;;){P=Q+((0|F)%5<<4)|0,n[x>>2]=n[P>>2],n[x+4>>2]=n[P+4>>2],n[x+8>>2]=n[P+8>>2],n[x+12>>2]=n[P+12>>2];do{}while(2==(0|yA(x,s,0,1)));if((0|F)>(0|t)&!!(0|YA(e))){if(n[p>>2]=n[x>>2],n[p+4>>2]=n[x+4>>2],n[p+8>>2]=n[x+8>>2],n[p+12>>2]=n[x+12>>2],J(a,b),r=0|n[p>>2],I=0|n[17008+(80*r|0)+(n[_>>2]<<2)>>2],n[p>>2]=n[18608+(80*r|0)+(20*I|0)>>2],(0|(P=0|n[18608+(80*r|0)+(20*I|0)+16>>2]))>0){A=0;do{oA(l),A=A+1|0}while((0|A)<(0|P))}switch(P=18608+(80*r|0)+(20*I|0)+4|0,n[m>>2]=n[P>>2],n[m+4>>2]=n[P+4>>2],n[m+8>>2]=n[P+8>>2],$(m,3*(0|n[u>>2])|0),K(l,m,l),Z(l),J(l,B),T=+(0|n[c>>2]),i[v>>3]=3*T,i[h>>3]=0,G=-1.5*T,i[y>>3]=G,i[g>>3]=2.598076211353316*T,i[E>>3]=G,i[d>>3]=-2.598076211353316*T,0|n[17008+(80*(0|n[p>>2])|0)+(n[x>>2]<<2)>>2]){case 1:A=y,r=v;break;case 3:A=E,r=y;break;case 2:A=v,r=E;break;default:A=12;break A}oe(b,B,r,A,M),bA(M,0|n[p>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|F)<(0|f)&&(J(w,p),bA(p,0|n[x>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[_>>2]=n[x>>2],n[_+4>>2]=n[x+4>>2],n[_+8>>2]=n[x+8>>2],n[_+12>>2]=n[x+12>>2],(0|(F=F+1|0))>=(0|S)){A=3;break}}3!=(0|A)?12==(0|A)&&k(22474,22521,581,22531):C=D}}function vA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,s=0,a=0,l=0;r=C,C=C+128|0,o=r,a=20208,l=(s=i=r+64|0)+60|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));a=20272,l=(s=o)+60|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));i=(l=!(0|YA(0|n[e>>2])))?i:o,fA(o=A+4|0),uA(o),0|YA(0|n[e>>2])&&(nA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],K(o,i,e=t+4|0),Z(e),n[t+16>>2]=n[A>>2],K(o,i+12|0,e=t+20|0),Z(e),n[t+32>>2]=n[A>>2],K(o,i+24|0,e=t+36|0),Z(e),n[t+48>>2]=n[A>>2],K(o,i+36|0,e=t+52|0),Z(e),n[t+64>>2]=n[A>>2],K(o,i+48|0,t=t+68|0),Z(t),C=r}function yA(A,e,t,r){t|=0,r|=0;var i,o,s,a,l,f,u=0,c=0,h=0,g=0,d=0;if(f=C,C=C+32|0,l=f+12|0,o=f,d=(A|=0)+4|0,g=0|n[16928+((e|=0)<<2)>>2],g=(a=!!(0|r))?3*g|0:g,u=0|n[d>>2],i=0|n[(s=A+8|0)>>2],a){if((0|(u=i+u+(r=0|n[(c=A+12|0)>>2])|0))==(0|g))return C=f,0|(d=1);h=c}else u=i+u+(r=0|n[(h=A+12|0)>>2])|0;if((0|u)<=(0|g))return C=f,0|(d=0);do{if((0|r)>0){if(r=0|n[A>>2],(0|i)>0){c=18608+(80*r|0)+60|0,r=A;break}r=18608+(80*r|0)+40|0,t?(j(l,g,0,0),q(d,l,o),sA(o),K(o,l,d),c=r,r=A):(c=r,r=A)}else c=18608+(80*(0|n[A>>2])|0)+20|0,r=A}while(0);if(n[r>>2]=n[c>>2],(0|n[(u=c+16|0)>>2])>0){r=0;do{oA(d),r=r+1|0}while((0|r)<(0|n[u>>2]))}return A=c+4|0,n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],e=0|n[16848+(e<<2)>>2],$(l,a?3*e|0:e),K(d,l,d),Z(d),r=a&&((0|n[s>>2])+(0|n[d>>2])+(0|n[h>>2])|0)==(0|g)?1:2,C=f,0|(d=r)}function EA(A,e){A|=0,e|=0;var t=0;do{t=0|yA(A,e,0,1)}while(2==(0|t));return 0|t}function kA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var s,a,l,f,u,c,h,g,d,w,p,b,m,B,v,y,E,M,Q=0,_=0,x=0,D=0,I=0;if(M=C,C=C+240|0,B=M+208|0,v=M,y=M+192|0,E=M+176|0,d=M+160|0,w=M+144|0,p=M+128|0,b=M+112|0,m=M+96|0,n[(Q=M+224|0)>>2]=e,n[B>>2]=n[A>>2],n[B+4>>2]=n[A+4>>2],n[B+8>>2]=n[A+8>>2],n[B+12>>2]=n[A+12>>2],MA(B,Q,v),n[o>>2]=0,(0|(g=r+t+(6==(0|r)&1)|0))<=(0|t))C=M;else{a=t+6|0,l=16928+((s=0|n[Q>>2])<<2)|0,f=w+8|0,u=p+8|0,c=b+8|0,h=y+4|0,_=0,x=t,r=-1;A:for(;;){if(A=v+((Q=(0|x)%6|0)<<4)|0,n[y>>2]=n[A>>2],n[y+4>>2]=n[A+4>>2],n[y+8>>2]=n[A+8>>2],n[y+12>>2]=n[A+12>>2],A=_,_=0|yA(y,s,0,1),(0|x)>(0|t)&!!(0|YA(e))&&(1!=(0|A)&&(0|n[y>>2])!=(0|r))){switch(J(v+((Q+5|0)%6<<4)+4|0,E),J(v+(Q<<4)+4|0,d),D=+(0|n[l>>2]),i[w>>3]=3*D,i[f>>3]=0,I=-1.5*D,i[p>>3]=I,i[u>>3]=2.598076211353316*D,i[b>>3]=I,i[c>>3]=-2.598076211353316*D,Q=0|n[B>>2],0|n[17008+(80*Q|0)+(((0|r)==(0|Q)?n[y>>2]:r)<<2)>>2]){case 1:A=p,r=w;break;case 3:A=b,r=p;break;case 2:A=w,r=b;break;default:A=8;break A}oe(E,d,r,A,m),0|se(E,m)||0|se(d,m)||(bA(m,0|n[B>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|x)<(0|a)&&(J(h,E),bA(E,0|n[y>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(x=x+1|0))>=(0|g)){A=3;break}r=0|n[y>>2]}3!=(0|A)?8==(0|A)&&k(22557,22521,746,22602):C=M}}function MA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,s=0,a=0,l=0;r=C,C=C+160|0,o=r,a=20336,l=(s=i=r+80|0)+72|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));a=20416,l=(s=o)+72|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));i=(l=!(0|YA(0|n[e>>2])))?i:o,fA(o=A+4|0),uA(o),0|YA(0|n[e>>2])&&(nA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],K(o,i,e=t+4|0),Z(e),n[t+16>>2]=n[A>>2],K(o,i+12|0,e=t+20|0),Z(e),n[t+32>>2]=n[A>>2],K(o,i+24|0,e=t+36|0),Z(e),n[t+48>>2]=n[A>>2],K(o,i+36|0,e=t+52|0),Z(e),n[t+64>>2]=n[A>>2],K(o,i+48|0,e=t+68|0),Z(e),n[t+80>>2]=n[A>>2],K(o,i+60|0,t=t+84|0),Z(t),C=r}function QA(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function _A(A,e){return e|=0,+a(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+a(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function xA(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+c(.5*(r-t)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+u(+r)*+u(+t)*o),2*+p(+ +l(+o),+ +l(+(1-o)))*6371.007180918475}function DA(A,e,t){A|=0,t|=0;var r,n,o,s,a=0,f=0,g=0,d=0,b=0,m=0;return m=+i[(e|=0)>>3],o=+i[A>>3],b=+c(.5*(m-o)),g=+i[e+8>>3],n=+i[A+8>>3],d=+c(.5*(g-n)),r=+u(+o),s=+u(+m),d=2*+p(+ +l(+(d=b*b+d*(s*r*d))),+ +l(+(1-d))),b=+i[t>>3],m=+c(.5*(b-m)),a=+i[t+8>>3],g=+c(.5*(a-g)),f=+u(+b),g=2*+p(+ +l(+(g=m*m+g*(s*f*g))),+ +l(+(1-g))),b=+c(.5*(o-b)),a=+c(.5*(n-a)),a=2*+p(+ +l(+(a=b*b+a*(r*f*a))),+ +l(+(1-a))),4*+w(+ +l(+ +h(.5*(f=.5*(d+g+a)))*+h(.5*(f-d))*+h(.5*(f-g))*+h(.5*(f-a))))}function CA(A,e){return e=0|ke(0|(A|=0),0|(e|=0),45),E(),127&e}function IA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0;if(!(!0&134217728==(-16777216&(e|=0))))return 0|(e=0);if(o=0|ke(0|(A|=0),0|e,45),E(),(o&=127)>>>0>121)return 0|(e=0);t=0|ke(0|A,0|e,52),E(),t&=15;do{if(0|t){for(n=1,r=0;;){if(i=0|ke(0|A,0|e,3*(15-n|0)|0),E(),!!(0|(i&=7))&(1^r)){if(1==(0|i)&!!(0|G(o))){s=0,r=13;break}r=1}if(7==(0|i)){s=0,r=13;break}if(!(n>>>0<t>>>0)){r=9;break}n=n+1|0}if(9==(0|r)){if(15!=(0|t))break;return 0|(s=1)}if(13==(0|r))return 0|s}}while(0);for(;;){if(s=0|ke(0|A,0|e,3*(14-t|0)|0),E(),!(!0&!(7&~s))){s=0,r=13;break}if(!(t>>>0<14)){s=1,r=13;break}t=t+1|0}return 13==(0|r)?0|s:0}function PA(A,e,t){t|=0;var r=0,n=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|(r&=15))>=(0|t)){if((0|r)!=(0|t))if(t>>>0<=15){if(A|=n=0|Me(0|t,0,52),e=E()|-15728641&e,(0|r)>(0|t))do{n=0|Me(7,0,3*(14-t|0)|0),t=t+1|0,A|=n,e=0|E()|e}while((0|t)<(0|r))}else e=0,A=0}else e=0,A=0;return y(0|e),0|A}function FA(A,e,t,r){t|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0;if(a=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(a&=15))<=(0|t)){if((0|a)==(0|t))return n[(t=r)>>2]=A,void(n[t+4>>2]=e);if(i=(0|(f=0|ee(7,t-a|0)))/7|0,l=0|ke(0|A,0|e,45),E(),0|G(127&l)){A:do{if(a)for(s=1;;){if(o=0|ke(0|A,0|e,3*(15-s|0)|0),E(),0|(o&=7))break A;if(!(s>>>0<a>>>0)){o=0;break}s=s+1|0}else o=0}while(0);s=!(0|o)}else s=0;if(u=0|Me(a+1|0,0,52),o=E()|-15728641&e,FA(e=(u|A)&~(e=0|Me(7,0,0|(l=3*(14-a|0)|0))),a=o&~E(),t,r),o=r+(i<<3)|0,!s)return FA((u=0|Me(1,0,0|l))|e,0|E()|a,t,o),u=o+(i<<3)|0,FA((f=0|Me(2,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|Me(3,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|Me(4,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|Me(5,0,0|l))|e,0|E()|a,t,u),void FA((f=0|Me(6,0,0|l))|e,0|E()|a,t,u+(i<<3)|0);s=o+(i<<3)|0,(0|f)>6&&(De(0|o,0,(u=(s>>>0>(f=o+8|0)>>>0?s:f)+-1+(0-o)|0)+8&-8),o=f+(u>>>3<<3)|0),FA((u=0|Me(2,0,0|l))|e,0|E()|a,t,o),u=o+(i<<3)|0,FA((f=0|Me(3,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|Me(4,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|Me(5,0,0|l))|e,0|E()|a,t,u),FA((f=0|Me(6,0,0|l))|e,0|E()|a,t,u+(i<<3)|0)}}function SA(A,e){var t=0,r=0,n=0;if(n=0|ke(0|(A|=0),0|(e|=0),45),E(),!(0|G(127&n)))return 0|(n=0);n=0|ke(0|A,0|e,52),E(),n&=15;A:do{if(n)for(r=1;;){if(t=0|ke(0|A,0|e,3*(15-r|0)|0),E(),0|(t&=7))break A;if(!(r>>>0<n>>>0)){t=0;break}r=r+1|0}else t=0}while(0);return 0|(n=1&!(0|t))}function TA(A,e){var t=0,r=0,n=0;if(n=0|ke(0|(A|=0),0|(e|=0),52),E(),!(n&=15))return 0|(n=0);for(r=1;;){if(t=0|ke(0|A,0|e,3*(15-r|0)|0),E(),0|(t&=7)){r=5;break}if(!(r>>>0<n>>>0)){t=0,r=5;break}r=r+1|0}return 5==(0|r)?0|t:0}function GA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0,a=0;if(a=0|ke(0|(A|=0),0|(e|=0),52),E(),!(a&=15))return a=A,y(0|(s=e)),0|a;for(s=1,t=0;;){r=0|Me(7,0,0|(i=3*(15-s|0)|0)),n=0|E(),o=0|ke(0|A,0|e,0|i),E(),A=(i=0|Me(0|aA(7&o),0,0|i))|A&~r,e=(o=0|E())|e&~n;A:do{if(!t)if(!(i&r|0)&!(o&n|0))t=0;else if(r=0|ke(0|A,0|e,52),E(),r&=15){t=1;e:for(;;){switch(o=0|ke(0|A,0|e,3*(15-t|0)|0),E(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(n=0|ke(0|A,0|e,0|(o=3*(15-t|0)|0)),E(),i=0|Me(7,0,0|o),e&=~E(),A=A&~i|(o=0|Me(0|aA(7&n),0,0|o)),e=0|e|E(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(s>>>0<a>>>0))break;s=s+1|0}return y(0|e),0|A}function LA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),!(r&=15))return r=A,y(0|(t=e)),0|r;for(t=1;o=0|ke(0|A,0|e,0|(i=3*(15-t|0)|0)),E(),n=0|Me(7,0,0|i),e&=~E(),A=(i=0|Me(0|aA(7&o),0,0|i))|A&~n,e=0|E()|e,t>>>0<r>>>0;)t=t+1|0;return y(0|e),0|A}function UA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0,a=0;if(a=0|ke(0|(A|=0),0|(e|=0),52),E(),!(a&=15))return a=A,y(0|(s=e)),0|a;for(s=1,t=0;;){r=0|Me(7,0,0|(i=3*(15-s|0)|0)),n=0|E(),o=0|ke(0|A,0|e,0|i),E(),A=(i=0|Me(0|lA(7&o),0,0|i))|A&~r,e=(o=0|E())|e&~n;A:do{if(!t)if(!(i&r|0)&!(o&n|0))t=0;else if(r=0|ke(0|A,0|e,52),E(),r&=15){t=1;e:for(;;){switch(o=0|ke(0|A,0|e,3*(15-t|0)|0),E(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|Me(7,0,0|(n=3*(15-t|0)|0)),o=e&~E(),e=0|ke(0|A,0|e,0|n),E(),A=A&~i|(e=0|Me(0|lA(7&e),0,0|n)),e=0|o|E(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(s>>>0<a>>>0))break;s=s+1|0}return y(0|e),0|A}function RA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),!(r&=15))return r=A,y(0|(t=e)),0|r;for(t=1;i=0|Me(7,0,0|(o=3*(15-t|0)|0)),n=e&~E(),e=0|ke(0|A,0|e,0|o),E(),A=(e=0|Me(0|lA(7&e),0,0|o))|A&~i,e=0|E()|n,t>>>0<r>>>0;)t=t+1|0;return y(0|e),0|A}function YA(A){return(0|(A|=0))%2|0}function zA(A,e){A|=0;var t,r;return r=C,C=C+16|0,t=r,(e|=0)>>>0<=15&&2146435072&~n[A+4>>2]&&2146435072&~n[A+8+4>>2]?(!function(A,e,t){var r,n;r=C,C=C+16|0,pA(A|=0,e|=0,t|=0,n=r),W(n,t+4|0),C=r}(A,e,t),e=0|function(A,e){A|=0;var t,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0;if(t=C,C=C+64|0,l=t+40|0,i=t+24|0,o=t+12|0,s=t,Me(0|(e|=0),0,52),r=134225919|E(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(l=0,y(0|(a=0)),C=t,0|l):(Me(0|U(A),0,45),a=0|E()|r,l=-1,y(0|a),C=t,0|l);if(n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],n[l+12>>2]=n[A+12>>2],a=l+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[a>>2],n[i+4>>2]=n[a+4>>2],n[i+8>>2]=n[a+8>>2],1&e?(eA(a),n[o>>2]=n[a>>2],n[o+4>>2]=n[a+4>>2],n[o+8>>2]=n[a+8>>2],rA(o)):(tA(a),n[o>>2]=n[a>>2],n[o+4>>2]=n[a+4>>2],n[o+8>>2]=n[a+8>>2],nA(o)),q(i,o,s),Z(s),f=0|Me(7,0,0|(u=3*(15-e|0)|0)),r&=~E(),A=(u=0|Me(0|AA(s),0,0|u))|A&~f,r=0|E()|r,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[a>>2])<=2&&(0|n[l+8>>2])<=2&&(0|n[l+12>>2])<=2){if(e=0|Me(0|(i=0|U(l)),0,45),e|=A,A=E()|-1040385&r,s=0|R(l),!(0|G(i))){if((0|s)<=0)break;for(o=0;;){if(i=0|ke(0|e,0|A,52),E(),i&=15)for(r=1;l=0|ke(0|e,0|A,0|(u=3*(15-r|0)|0)),E(),f=0|Me(7,0,0|u),A&=~E(),e=e&~f|(u=0|Me(0|aA(7&l),0,0|u)),A=0|A|E(),r>>>0<i>>>0;)r=r+1|0;if((0|(o=o+1|0))==(0|s))break A}}o=0|ke(0|e,0|A,52),E(),o&=15;e:do{if(o){r=1;t:for(;;){switch(u=0|ke(0|e,0|A,3*(15-r|0)|0),E(),7&u){case 1:break t;case 0:break;default:break e}if(!(r>>>0<o>>>0))break e;r=r+1|0}if(0|Y(i,0|n[l>>2]))for(r=1;f=0|Me(7,0,0|(l=3*(15-r|0)|0)),u=A&~E(),A=0|ke(0|e,0|A,0|l),E(),e=e&~f|(A=0|Me(0|lA(7&A),0,0|l)),A=0|u|E(),r>>>0<o>>>0;)r=r+1|0;else for(r=1;l=0|ke(0|e,0|A,0|(u=3*(15-r|0)|0)),E(),f=0|Me(7,0,0|u),A&=~E(),e=e&~f|(u=0|Me(0|aA(7&l),0,0|u)),A=0|A|E(),r>>>0<o>>>0;)r=r+1|0}}while(0);if((0|s)>0){r=0;do{e=0|GA(e,A),A=0|E(),r=r+1|0}while((0|r)!=(0|s))}}else e=0,A=0}while(0);return u=e,y(0|(f=A)),C=t,0|u}(t,e),A=0|E()):(A=0,e=0),y(0|A),C=r,0|e}function OA(A,e,t){var r,i=0,o=0,s=0;if(r=(t|=0)+4|0,o=0|ke(0|(A|=0),0|(e|=0),52),E(),o&=15,s=0|ke(0|A,0|e,45),E(),i=!(0|o),0|G(127&s)){if(i)return 0|(s=1);i=1}else{if(i)return 0|(s=0);i=0|n[r>>2]||0|n[t+8>>2]?1:1&!!(0|n[t+12>>2])}for(t=1;1&t?rA(r):nA(r),s=0|ke(0|A,0|e,3*(15-t|0)|0),E(),iA(r,7&s),t>>>0<o>>>0;)t=t+1|0;return 0|i}function HA(A,e,t){t|=0;var r,i,o=0,s=0,a=0,l=0,f=0,u=0;i=C,C=C+16|0,r=i,u=0|ke(0|(A|=0),0|(e|=0),45),E(),u&=127;A:do{if(0|G(u)&&(a=0|ke(0|A,0|e,52),E(),0|(a&=15))){o=1;e:for(;;){switch(f=0|ke(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<a>>>0)){o=e;break A}o=o+1|0}for(s=1,o=e;l=0|Me(7,0,0|(e=3*(15-s|0)|0)),f=o&~E(),o=0|ke(0|A,0|o,0|e),E(),A=A&~l|(o=0|Me(0|lA(7&o),0,0|e)),o=0|f|E(),s>>>0<a>>>0;)s=s+1|0}else o=e}while(0);if(f=7728+(28*u|0)|0,n[t>>2]=n[f>>2],n[t+4>>2]=n[f+4>>2],n[t+8>>2]=n[f+8>>2],n[t+12>>2]=n[f+12>>2],0|OA(A,o,t)){if(l=t+4|0,n[r>>2]=n[l>>2],n[r+4>>2]=n[l+4>>2],n[r+8>>2]=n[l+8>>2],a=0|ke(0|A,0|o,52),E(),f=15&a,1&a?(nA(l),a=f+1|0):a=f,0|G(u)){A:do{if(f)for(e=1;;){if(s=0|ke(0|A,0|o,3*(15-e|0)|0),E(),0|(s&=7)){o=s;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|yA(t,a,o,0)){if(0|G(u))do{}while(0|yA(t,a,0,0));(0|a)!=(0|f)&&tA(l)}else(0|a)!=(0|f)&&(n[l>>2]=n[r>>2],n[l+4>>2]=n[r+4>>2],n[l+8>>2]=n[r+8>>2]);C=i}else C=i}function NA(A,e,t){t|=0;var r,n;r=C,C=C+16|0,HA(A|=0,e|=0,n=r),e=0|ke(0|A,0|e,52),E(),mA(n,15&e,t),C=r}function VA(A,e,t){t|=0;var r,n,i=0,o=0;n=C,C=C+16|0,HA(A|=0,e|=0,r=n),i=0|ke(0|A,0|e,45),E(),i=!(0|G(127&i)),o=0|ke(0|A,0|e,52),E(),o&=15;A:do{if(!i){if(0|o)for(i=1;;){if(!(!((0|Me(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(r,o,0,5,t),void(C=n)}}while(0);kA(r,o,0,6,t),C=n}function XA(A,e){e|=0;var t,r=0,i=0,o=0,s=0,a=0,l=0;if(Me(0|(A|=0),0,52),t=134225919|E(),(0|A)<1){i=0,r=0;do{0|G(i)&&(Me(0|i,0,45),a=0|t|E(),n[(A=e+(r<<3)|0)>>2]=-1,n[A+4>>2]=a,r=r+1|0),i=i+1|0}while(122!=(0|i))}else{a=0,r=0;do{if(0|G(a)){for(Me(0|a,0,45),i=1,o=-1,s=0|t|E();o&=~(l=0|Me(7,0,3*(15-i|0)|0)),s&=~E(),(0|i)!=(0|A);)i=i+1|0;n[(l=e+(r<<3)|0)>>2]=o,n[l+4>>2]=s,r=r+1|0}a=a+1|0}while(122!=(0|a))}}function jA(A,e,t,r){var i,o=0,s=0,a=0,l=0,f=0;if(i=C,C=C+64|0,a=i,(0|(A|=0))==(0|(t|=0))&(0|(e|=0))==(0|(r|=0))|!1|134217728!=(2013265920&e)|!1|134217728!=(2013265920&r))return C=i,0|(a=0);if(o=0|ke(0|A,0|e,52),E(),o&=15,s=0|ke(0|t,0|r,52),E(),(0|o)!=(15&s))return C=i,0|(a=0);if(s=o+-1|0,o>>>0>1&&(f=0|PA(A,e,s),l=0|E(),(0|f)==(0|(s=0|PA(t,r,s)))&(0|l)==(0|E()))){if(o=0|ke(0|A,0|e,0|(s=3*(15^o)|0)),E(),o&=7,s=0|ke(0|t,0|r,0|s),E(),!(0|o)|!(0|(s&=7)))return C=i,0|(f=1);if((0|n[21136+(o<<2)>>2])==(0|s))return C=i,0|(f=1);if((0|n[21168+(o<<2)>>2])==(0|s))return C=i,0|(f=1)}s=(o=a)+56|0;do{n[o>>2]=0,o=o+4|0}while((0|o)<(0|s));return I(A,e,1,a),o=(0|n[(f=a)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+8|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+16|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+24|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+32|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+40|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)?1:1&((0|n[(o=a+48|0)>>2])==(0|t)?(0|n[o+4>>2])==(0|r):0),C=i,0|(f=o)}function WA(A,e,t){t|=0;var r,i,o,s,a=0;if(o=C,C=C+16|0,i=o,a=0|ke(0|(A|=0),0|(e|=0),56),E(),e=0|function(A,e,t){A|=0,e|=0,t|=0;var r=0,i=0;if(r=0|SA(A,e),(t+-1|0)>>>0>5)return 0|(t=-1);if(i=!!(0|r),1==(0|t)&i)return 0|(t=-1);return r=0|function(A,e){A|=0,e|=0;var t=0,r=0,i=0,o=0,s=0,a=0,l=0,f=0;if(f=C,C=C+32|0,i=f+16|0,o=f,HA(A,e,i),s=0|CA(A,e),l=0|TA(A,e),function(A,e){A=7728+(28*(A|=0)|0)|0,n[(e|=0)>>2]=n[A>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(s,o),e=0|function(A,e){A|=0;var t=0,r=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11152+(216*e|0)>>2])!=(0|A))if((0|n[11152+(216*e|0)+8>>2])!=(0|A))if((0|n[11152+(216*e|0)+16>>2])!=(0|A))if((0|n[11152+(216*e|0)+24>>2])!=(0|A))if((0|n[11152+(216*e|0)+32>>2])!=(0|A))if((0|n[11152+(216*e|0)+40>>2])!=(0|A))if((0|n[11152+(216*e|0)+48>>2])!=(0|A))if((0|n[11152+(216*e|0)+56>>2])!=(0|A))if((0|n[11152+(216*e|0)+64>>2])!=(0|A))if((0|n[11152+(216*e|0)+72>>2])!=(0|A))if((0|n[11152+(216*e|0)+80>>2])!=(0|A))if((0|n[11152+(216*e|0)+88>>2])!=(0|A))if((0|n[11152+(216*e|0)+96>>2])!=(0|A))if((0|n[11152+(216*e|0)+104>>2])!=(0|A))if((0|n[11152+(216*e|0)+112>>2])!=(0|A))if((0|n[11152+(216*e|0)+120>>2])!=(0|A))if((0|n[11152+(216*e|0)+128>>2])!=(0|A)){if((0|n[11152+(216*e|0)+136>>2])!=(0|A)){if((0|n[11152+(216*e|0)+144>>2])==(0|A)){A=0,t=2,r=0;break}if((0|n[11152+(216*e|0)+152>>2])==(0|A)){A=0,t=2,r=1;break}if((0|n[11152+(216*e|0)+160>>2])==(0|A)){A=0,t=2,r=2;break}if((0|n[11152+(216*e|0)+168>>2])==(0|A)){A=1,t=2,r=0;break}if((0|n[11152+(216*e|0)+176>>2])==(0|A)){A=1,t=2,r=1;break}if((0|n[11152+(216*e|0)+184>>2])==(0|A)){A=1,t=2,r=2;break}if((0|n[11152+(216*e|0)+192>>2])==(0|A)){A=2,t=2,r=0;break}if((0|n[11152+(216*e|0)+200>>2])==(0|A)){A=2,t=2,r=1;break}if((0|n[11152+(216*e|0)+208>>2])==(0|A)){A=2,t=2,r=2;break}return-1}A=2,t=1,r=2}else A=2,t=1,r=1;else A=2,t=1,r=0;else A=1,t=1,r=2;else A=1,t=1,r=1;else A=1,t=1,r=0;else A=0,t=1,r=2;else A=0,t=1,r=1;else A=0,t=1,r=0;else A=2,t=0,r=2;else A=2,t=0,r=1;else A=2,t=0,r=0;else A=1,t=0,r=2;else A=1,t=0,r=1;else A=1,t=0,r=0;else A=0,t=0,r=2;else A=0,t=0,r=1;else A=0,t=0,r=0}while(0);return 0|n[11152+(216*e|0)+(72*t|0)+(24*A|0)+(r<<3)+4>>2]}(s,0|n[i>>2]),!(0|G(s)))return C=f,0|(l=e);switch(0|s){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:a=0,r=0}14==(0|t)&&(a=0|n[22096+(24*A|0)+8>>2],r=0|n[22096+(24*A|0)+16>>2]);A=0|n[i>>2],(0|A)!=(0|n[o>>2])&&(s=0|L(s))|(0|(A=0|n[i>>2]))==(0|r)&&(e=(e+1|0)%6|0);if(3==(0|l)&(0|A)==(0|r))return C=f,0|(l=(e+5|0)%6|0);if(!(5==(0|l)&(0|A)==(0|a)))return C=f,0|(l=e);return l=(e+1|0)%6|0,C=f,0|l}(A,e),i?0|(t=(5-r+(0|n[22384+(t<<2)>>2])|0)%5|0):0|(t=(6-r+(0|n[22416+(t<<2)>>2])|0)%6|0)}(r=(s=!0&268435456==(2013265920&e))?A:0,A=s?-2130706433&e|134217728:0,7&a),-1==(0|e))return n[t>>2]=0,void(C=o);HA(r,A,i),a=0|ke(0|r,0|A,52),E(),a&=15,0|SA(r,A)?BA(i,a,e,2,t):kA(i,a,e,2,t),C=o}function ZA(A){A|=0;var e,t,r=0;return(e=0|me(1,12))||k(22691,22646,49,22704),0|(r=0|n[(t=A+4|0)>>2])?(n[(r=r+8|0)>>2]=e,n[t>>2]=e,0|e):(0|n[A>>2]&&k(22721,22646,61,22744),n[(r=A)>>2]=e,n[t>>2]=e,0|e)}function JA(A,e){A|=0,e|=0;var t,r;return(r=0|pe(24))||k(22758,22646,78,22772),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[r+16>>2]=0,0|(t=0|n[(e=A+4|0)>>2])?(n[t+16>>2]=r,n[e>>2]=r,0|r):(0|n[A>>2]&&k(22787,22646,82,22772),n[A>>2]=r,n[e>>2]=r,0|r)}function KA(A){var e,t,r=0,o=0,s=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,E=0,M=0,Q=0,_=0,x=0,D=0,C=0,I=0,P=0,F=0,S=0,T=0,G=0;if(0|n[(l=(A|=0)+8|0)>>2])return 0|(G=1);if(!(s=0|n[A>>2]))return 0|(G=0);r=s,o=0;do{o=o+1|0,r=0|n[r+8>>2]}while(0|r);if(o>>>0<2)return 0|(G=0);(t=0|pe(o<<2))||k(22807,22646,317,22826),(e=0|pe(o<<5))||k(22848,22646,321,22826),n[A>>2]=0,n[(x=A+4|0)>>2]=0,n[l>>2]=0,o=0,S=0,_=0,w=0;A:for(;;){if(d=0|n[s>>2]){f=0,u=d;do{if(h=+i[u+8>>3],r=u,u=0|n[u+16>>2],c=+i[(l=(g=!(0|u))?d:u)+8>>3],+a(+(h-c))>3.141592653589793){G=14;break}f+=(c-h)*(+i[r>>3]+ +i[l>>3])}while(!g);if(14==(0|G)){G=0,f=0,r=d;do{Q=+i[r+8>>3],P=0|n[(F=r+16|0)>>2],M=+i[(P=0|P?P:d)+8>>3],f+=(+i[r>>3]+ +i[P>>3])*((M<0?M+6.283185307179586:M)-(Q<0?Q+6.283185307179586:Q)),r=0|n[(0|r?F:s)>>2]}while(0|r)}f>0?(n[t+(S<<2)>>2]=s,S=S+1|0,l=_,r=w):G=19}else G=19;if(19==(0|G)){G=0;do{if(!o){if(w){l=x,u=w+8|0,r=s,o=A;break}if(0|n[A>>2]){G=27;break A}l=x,u=A,r=s,o=A;break}if(0|n[(r=o+8|0)>>2]){G=21;break A}if(!(o=0|me(1,12))){G=23;break A}n[r>>2]=o,l=o+4|0,u=o,r=w}while(0);if(n[u>>2]=s,n[l>>2]=s,u=e+(_<<5)|0,g=0|n[s>>2]){for(i[(d=e+(_<<5)+8|0)>>3]=17976931348623157e292,i[(w=e+(_<<5)+24|0)>>3]=17976931348623157e292,i[u>>3]=-17976931348623157e292,i[(p=e+(_<<5)+16|0)>>3]=-17976931348623157e292,y=17976931348623157e292,E=-17976931348623157e292,l=0,b=g,h=17976931348623157e292,B=17976931348623157e292,v=-17976931348623157e292,c=-17976931348623157e292;f=+i[b>>3],Q=+i[b+8>>3],b=0|n[b+16>>2],M=+i[((m=!(0|b))?g:b)+8>>3],f<h&&(i[d>>3]=f,h=f),Q<B&&(i[w>>3]=Q,B=Q),f>v?i[u>>3]=f:f=v,Q>c&&(i[p>>3]=Q,c=Q),y=Q>0&Q<y?Q:y,E=Q<0&Q>E?Q:E,l|=+a(+(Q-M))>3.141592653589793,!m;)v=f;l&&(i[p>>3]=E,i[w>>3]=y)}else n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,n[u+12>>2]=0,n[u+16>>2]=0,n[u+20>>2]=0,n[u+24>>2]=0,n[u+28>>2]=0;l=_+1|0}if(s=0|n[(F=s+8|0)>>2],n[F>>2]=0,!s){G=45;break}_=l,w=r}if(21==(0|G))k(22624,22646,35,22658);else if(23==(0|G))k(22678,22646,37,22658);else if(27==(0|G))k(22721,22646,61,22744);else if(45==(0|G)){A:do{if((0|S)>0){for(F=!(0|l),I=l<<2,P=!(0|A),C=0,r=0;;){if(D=0|n[t+(C<<2)>>2],F)G=73;else{if(!(_=0|pe(I))){G=50;break}if(!(x=0|pe(I))){G=52;break}e:do{if(P)o=0;else{for(l=0,o=0,u=A;s=e+(l<<5)|0,0|qA(0|n[u>>2],s,0|n[D>>2])?(n[_+(o<<2)>>2]=u,n[x+(o<<2)>>2]=s,m=o+1|0):m=o,u=0|n[u+8>>2];)l=l+1|0,o=m;if((0|m)>0)if(s=0|n[_>>2],1==(0|m))o=s;else for(p=0,b=-1,o=s,w=s;;){for(g=0|n[w>>2],s=0,u=0;d=(0|(l=0|n[n[_+(u<<2)>>2]>>2]))==(0|g)?s:s+(1&qA(l,0|n[x+(u<<2)>>2],0|n[g>>2]))|0,(0|(u=u+1|0))!=(0|m);)s=d;if(o=(l=(0|d)>(0|b))?w:o,(0|(s=p+1|0))==(0|m))break e;p=s,b=l?d:b,w=0|n[_+(s<<2)>>2]}else o=0}}while(0);if(be(_),be(x),o){if(s=0|n[(l=o+4|0)>>2])o=s+8|0;else if(0|n[o>>2]){G=70;break}n[o>>2]=D,n[l>>2]=D}else G=73}if(73==(0|G)){if(G=0,0|(r=0|n[D>>2]))do{x=r,r=0|n[r+16>>2],be(x)}while(0|r);be(D),r=2}if((0|(C=C+1|0))>=(0|S)){T=r;break A}}50==(0|G)?k(22863,22646,249,22882):52==(0|G)?k(22901,22646,252,22882):70==(0|G)&&k(22721,22646,61,22744)}else T=0}while(0);return be(t),be(e),0|(G=T)}return 0}function qA(A,e,t){A|=0;var r,o=0,s=0,a=0,l=0,f=0,u=0,c=0;if(!(0|N(e|=0,t|=0)))return 0|(A=0);if(e=0|H(e),r=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0|(A=0);if(e){e=0,t=A;A:for(;;){for(;l=+i[t>>3],u=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],a=+i[(c=0|c?c:A)>>3],s=+i[c+8>>3],l>a?(f=l,l=u):(f=a,a=l,l=s,s=u),r<a|r>f;)if(!(t=0|n[t>>2])){t=22;break A}if(o=(l=l<0?l+6.283185307179586:l)==o|(u=s<0?s+6.283185307179586:s)==o?o+-2220446049250313e-31:o,((u+=(r-a)/(f-a)*(l-u))<0?u+6.283185307179586:u)>o&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,t=A;A:for(;;){for(;l=+i[t>>3],u=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],a=+i[(c=0|c?c:A)>>3],s=+i[c+8>>3],l>a?(f=l,l=u):(f=a,a=l,l=s,s=u),r<a|r>f;)if(!(t=0|n[t>>2])){t=22;break A}if(s+(r-a)/(f-a)*(l-s)>(o=l==o|s==o?o+-2220446049250313e-31:o)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}return 0}function $A(A,e,t,i,o){t|=0,i|=0,o|=0;var s,a,l,f,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0;if(f=C,C=C+32|0,B=f+16|0,l=f,u=0|ke(0|(A|=0),0|(e|=0),52),E(),u&=15,p=0|ke(0|t,0|i,52),E(),(0|u)!=(15&p))return C=f,0|(B=1);if(d=0|ke(0|A,0|e,45),E(),d&=127,w=0|ke(0|t,0|i,45),E(),p=(0|d)!=(0|(w&=127))){if(7==(0|(h=0|O(d,w))))return C=f,0|(B=2);7==(0|(g=0|O(w,d)))?k(22925,22949,151,22959):(b=h,c=g)}else b=0,c=0;s=0|G(d),a=0|G(w),n[B>>2]=0,n[B+4>>2]=0,n[B+8>>2]=0,n[B+12>>2]=0;do{if(b){if(h=(0|(w=0|n[4304+(28*d|0)+(b<<2)>>2]))>0,a)if(h){d=0,g=t,h=i;do{g=0|UA(g,h),h=0|E(),1==(0|(c=0|lA(c)))&&(c=0|lA(1)),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=t,g=i;else if(h){d=0,g=t,h=i;do{g=0|RA(g,h),h=0|E(),c=0|lA(c),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=t,g=i;if(OA(d,g,B),p||k(22972,22949,181,22959),(h=!!(0|s))&(c=!!(0|a))&&k(22999,22949,182,22959),h){if(c=0|TA(A,e),0|r[22032+(7*c|0)+b|0]){u=3;break}d=g=0|n[21200+(28*c|0)+(b<<2)>>2],m=26}else if(c){if(c=0|TA(d,g),0|r[22032+(7*c|0)+w|0]){u=4;break}d=0,g=0|n[21200+(28*w|0)+(c<<2)>>2],m=26}else c=0;if(26==(0|m))if((0|g)<=-1&&k(23030,22949,212,22959),(0|d)<=-1&&k(23053,22949,213,22959),(0|g)>0){h=B+4|0,c=0;do{sA(h),c=c+1|0}while((0|c)!=(0|g));c=d}else c=d;if(n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,iA(l,b),0|u)for(;0|YA(u)?rA(l):nA(l),(0|u)>1;)u=u+-1|0;if((0|c)>0){u=0;do{sA(l),u=u+1|0}while((0|u)!=(0|c))}K(m=B+4|0,l,m),Z(m),m=50}else if(OA(t,i,B),!!(0|s)&!!(0|a))if((0|w)!=(0|d)&&k(23077,22949,243,22959),c=0|TA(A,e),u=0|TA(t,i),0|r[22032+(7*c|0)+u|0])u=5;else if((0|(c=0|n[21200+(28*c|0)+(u<<2)>>2]))>0){h=B+4|0,u=0;do{sA(h),u=u+1|0}while((0|u)!=(0|c));m=50}else m=50;else m=50}while(0);return 50==(0|m)&&(u=B+4|0,n[o>>2]=n[u>>2],n[o+4>>2]=n[u+4>>2],n[o+8>>2]=n[u+8>>2],u=0),C=f,0|(B=u)}function Ae(A,e,t,r){t|=0,r|=0;var i,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0;if(o=C,C=C+48|0,l=o+36|0,f=o+24|0,u=o+12|0,c=o,a=0|ke(0|(A|=0),0|(e|=0),52),E(),a&=15,g=0|ke(0|A,0|e,45),E(),i=0|G(g&=127),Me(0|a,0,52),p=134225919|E(),n[(w=r)>>2]=-1,n[w+4>>2]=p,!a)return(0|n[t>>2])>1||(0|n[t+4>>2])>1||(0|n[t+8>>2])>1||127==(0|(s=0|z(g,0|AA(t))))?(C=o,0|(p=1)):(d=0|Me(0|s,0,45),w=0|E(),w=-1040385&n[(g=r)+4>>2]|w,n[(p=r)>>2]=n[g>>2]|d,n[p+4>>2]=w,C=o,0|(p=0));for(n[l>>2]=n[t>>2],n[l+4>>2]=n[t+4>>2],n[l+8>>2]=n[t+8>>2];n[f>>2]=n[l>>2],n[f+4>>2]=n[l+4>>2],n[f+8>>2]=n[l+8>>2],0|YA(a)?(eA(l),n[u>>2]=n[l>>2],n[u+4>>2]=n[l+4>>2],n[u+8>>2]=n[l+8>>2],rA(u)):(tA(l),n[u>>2]=n[l>>2],n[u+4>>2]=n[l+4>>2],n[u+8>>2]=n[l+8>>2],nA(u)),q(f,u,c),Z(c),b=0|n[(w=r)>>2],w=0|n[w+4>>2],t=0|Me(7,0,0|(m=3*(15-a|0)|0)),w&=~E(),m=0|Me(0|AA(c),0,0|m),w=0|E()|w,n[(p=r)>>2]=m|b&~t,n[p+4>>2]=w,(0|a)>1;)a=a+-1|0;A:do{if((0|n[l>>2])<=1&&(0|n[l+4>>2])<=1&&(0|n[l+8>>2])<=1){c=127==(0|(f=0|z(g,a=0|AA(l))))?0:0|G(f);e:do{if(a){if(i){if(l=21408+(28*(0|TA(A,e))|0)+(a<<2)|0,(0|(l=0|n[l>>2]))>0){t=0;do{a=0|aA(a),t=t+1|0}while((0|t)!=(0|l))}if(1==(0|a)){s=3;break A}127==(0|(t=0|z(g,a)))&&k(23104,22949,376,23134),0|G(t)?k(23147,22949,377,23134):(d=l,h=a,s=t)}else d=0,h=a,s=f;if((0|(u=0|n[4304+(28*g|0)+(h<<2)>>2]))<=-1&&k(23178,22949,384,23134),!c){if((0|d)<=-1&&k(23030,22949,417,23134),0|d){a=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];do{t=0|LA(t,l),l=0|E(),n[(m=r)>>2]=t,n[m+4>>2]=l,a=a+1|0}while((0|a)<(0|d))}if((0|u)<=0){a=54;break}for(a=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];;)if(t=0|LA(t,l),l=0|E(),n[(m=r)>>2]=t,n[m+4>>2]=l,(0|(a=a+1|0))==(0|u)){a=54;break e}}if(7==(0|(f=0|O(s,g)))&&k(22925,22949,393,23134),t=0|n[(a=r)>>2],a=0|n[a+4>>2],(0|u)>0){l=0;do{t=0|LA(t,a),a=0|E(),n[(m=r)>>2]=t,n[m+4>>2]=a,l=l+1|0}while((0|l)!=(0|u))}if(t=0|TA(t,a),m=0|L(s),(0|(t=0|n[(m?21824:21616)+(28*f|0)+(t<<2)>>2]))<=-1&&k(23030,22949,412,23134),t){a=0,l=0|n[(f=r)>>2],f=0|n[f+4>>2];do{l=0|GA(l,f),f=0|E(),n[(m=r)>>2]=l,n[m+4>>2]=f,a=a+1|0}while((0|a)<(0|t));a=54}else a=54}else if(!!(0|i)&!!(0|c))if(a=21408+(28*(m=0|TA(A,e))|0)+(TA(0|n[(a=r)>>2],0|n[a+4>>2])<<2)|0,(0|(a=0|n[a>>2]))<=-1&&k(23201,22949,433,23134),a){s=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];do{t=0|LA(t,l),l=0|E(),n[(m=r)>>2]=t,n[m+4>>2]=l,s=s+1|0}while((0|s)<(0|a));s=f,a=54}else s=f,a=55;else s=f,a=54}while(0);if(54==(0|a)&&c&&(a=55),55==(0|a)&&1==(0|TA(0|n[(m=r)>>2],0|n[m+4>>2]))){s=4;break}p=0|n[(m=r)>>2],m=-1040385&n[m+4>>2],b=0|Me(0|s,0,45),m=0|m|E(),n[(s=r)>>2]=p|b,n[s+4>>2]=m,s=0}else s=2}while(0);return C=o,0|(m=s)}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 r,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0;if(!(0|N(e|=0,t|=0)))return 0|(g=0);if(e=0|H(e),o=+i[t>>3],s=e&(s=+i[t+8>>3])<0?s+6.283185307179586:s,(0|(g=0|n[A>>2]))<=0)return 0|(g=0);if(r=0|n[A+4>>2],e){e=0,t=-1,A=0;A:for(;;){for(h=A;f=+i[r+(h<<4)>>3],c=+i[r+(h<<4)+8>>3],l=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],a=+i[r+(A<<4)+8>>3],f>l?(u=f,f=c):(u=l,l=f,f=a,a=c),o<l|o>u;){if(!((0|(t=h+1|0))<(0|g))){t=22;break A}A=h,h=t,t=A}if(s=(f=f<0?f+6.283185307179586:f)==s|(c=a<0?a+6.283185307179586:a)==s?s+-2220446049250313e-31:s,((c+=(o-l)/(u-l)*(f-c))<0?c+6.283185307179586:c)>s&&(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[r+(h<<4)>>3],c=+i[r+(h<<4)+8>>3],l=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],a=+i[r+(A<<4)+8>>3],f>l?(u=f,f=c):(u=l,l=f,f=a,a=c),o<l|o>u;){if(!((0|(t=h+1|0))<(0|g))){t=22;break A}A=h,h=t,t=A}if(a+(o-l)/(u-l)*(f-a)>(s=f==s|a==s?s+-2220446049250313e-31:s)&&(e^=1),(0|(A=h+1|0))>=(0|g)){t=22;break}t=h}if(22==(0|t))return 0|e}return 0}function re(A,e){e|=0;var t,r,o,s,l,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0;if(!(r=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(s=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(l=e+16|0)>>3]=-17976931348623157e292,!((0|r)<=0)){for(t=0|n[A+4>>2],p=17976931348623157e292,b=-17976931348623157e292,m=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,w=-17976931348623157e292,u=-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|r)?0:A)<<4)+8>>3],f<h&&(i[o>>3]=f,h=f),d<g&&(i[s>>3]=d,g=d),f>w?i[e>>3]=f:f=w,d>u&&(i[l>>3]=d,u=d),p=d>0&d<p?d:p,b=d<0&d>b?d:b,m|=+a(+(d-c))>3.141592653589793,(0|(A=B+1|0))!=(0|r);)v=B,w=f,B=A,A=v;m&&(i[l>>3]=b,i[s>>3]=p)}}function ne(A,e){e|=0;var t,r=0,o=0,s=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,E=0,k=0,M=0,Q=0;if(b=0|n[(A|=0)>>2]){if(i[(m=e+8|0)>>3]=17976931348623157e292,i[(B=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(v=e+16|0)>>3]=-17976931348623157e292,(0|b)>0){for(s=0|n[A+4>>2],w=17976931348623157e292,p=-17976931348623157e292,o=0,r=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,f=-17976931348623157e292,y=0;l=+i[s+(y<<4)>>3],g=+i[s+(y<<4)+8>>3],u=+i[s+(((0|(M=r+2|0))==(0|b)?0:M)<<4)+8>>3],l<c&&(i[m>>3]=l,c=l),g<h&&(i[B>>3]=g,h=g),l>d?i[e>>3]=l:l=d,g>f&&(i[v>>3]=g,f=g),w=g>0&g<w?g:w,p=g<0&g>p?g:p,o|=+a(+(g-u))>3.141592653589793,(0|(r=y+1|0))!=(0|b);)M=y,d=l,y=r,r=M;o&&(i[v>>3]=p,i[B>>3]=w)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(r=0|n[(M=A+8|0)>>2]))<=0)){t=A+12|0,k=0;do{if(s=0|n[t>>2],o=k,B=e+((k=k+1|0)<<5)|0,v=0|n[s+(o<<3)>>2]){if(i[(y=e+(k<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(k<<5)+24|0)>>3]=17976931348623157e292,i[B>>3]=-17976931348623157e292,i[(E=e+(k<<5)+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(b=0|n[s+(o<<3)+4>>2],w=17976931348623157e292,p=-17976931348623157e292,s=0,o=-1,m=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,f=-17976931348623157e292;l=+i[b+(m<<4)>>3],d=+i[b+(m<<4)+8>>3],u=+i[b+(((0|(o=o+2|0))==(0|v)?0:o)<<4)+8>>3],l<c&&(i[y>>3]=l,c=l),d<h&&(i[A>>3]=d,h=d),l>g?i[B>>3]=l:l=g,d>f&&(i[E>>3]=d,f=d),w=d>0&d<w?d:w,p=d<0&d>p?d:p,s|=+a(+(d-u))>3.141592653589793,(0|(o=m+1|0))!=(0|v);)Q=m,m=o,g=l,o=Q;s&&(i[E>>3]=p,i[A>>3]=w)}}else n[B>>2]=0,n[B+4>>2]=0,n[B+8>>2]=0,n[B+12>>2]=0,n[B+16>>2]=0,n[B+20>>2]=0,n[B+24>>2]=0,n[B+28>>2]=0,r=0|n[M>>2]}while((0|k)<(0|r))}}function ie(A,e,t){var r=0,i=0,o=0;if(!(0|te(A|=0,e|=0,t|=0)))return 0|(i=0);if((0|n[(i=A+8|0)>>2])<=0)return 0|(i=1);for(r=A+12|0,A=0;;){if(o=A,A=A+1|0,0|te((0|n[r>>2])+(o<<3)|0,e+(A<<5)|0,t)){A=0,r=6;break}if((0|A)>=(0|n[i>>2])){A=1,r=6;break}}return 6==(0|r)?0|A:0}function oe(A,e,t,r,n){e|=0,t|=0,r|=0,n|=0;var o,s,a,l,f,u,c,h=0;l=+i[(A|=0)>>3],a=+i[e>>3]-l,s=+i[A+8>>3],o=+i[e+8>>3]-s,u=+i[t>>3],h=((h=+i[r>>3]-u)*(s-(c=+i[t+8>>3]))-(l-u)*(f=+i[r+8>>3]-c))/(a*f-o*h),i[n>>3]=l+a*h,i[n+8>>3]=s+o*h}function se(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 ae(A,e){e|=0;var t,r,n;return+((n=+i[(A|=0)>>3]-+i[e>>3])*n+(r=+i[A+8>>3]-+i[e+8>>3])*r+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function le(A,e,t){A|=0,t|=0;var r=0;(0|(e|=0))>0?(r=0|me(e,4),n[A>>2]=r,r||k(23230,23253,40,23267)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=t}function fe(A){var e,t,r,o=0,s=0,l=0,u=0;e=(A|=0)+4|0,t=A+12|0,r=A+8|0;A:for(;;){for(s=0|n[e>>2],o=0;;){if((0|o)>=(0|s))break A;if(l=0|n[A>>2],u=0|n[l+(o<<2)>>2])break;o=o+1|0}o=l+(~~(+a(+ +f(10,+ +(15-(0|n[t>>2])|0))*(+i[u>>3]+ +i[u+8>>3]))%+(0|s))>>>0<<2)|0,s=0|n[o>>2];e:do{if(0|s){if(l=u+32|0,(0|s)==(0|u))n[o>>2]=n[l>>2];else{if(!(o=0|n[(s=s+32|0)>>2]))break;for(;(0|o)!=(0|u);)if(!(o=0|n[(s=o+32|0)>>2]))break e;n[s>>2]=n[l>>2]}be(u),n[r>>2]=(0|n[r>>2])-1}}while(0)}be(0|n[A>>2])}function ue(A){var e,t=0,r=0;for(e=0|n[(A|=0)+4>>2],r=0;;){if((0|r)>=(0|e)){t=0,r=4;break}if(t=0|n[(0|n[A>>2])+(r<<2)>>2]){r=4;break}r=r+1|0}return 4==(0|r)?0|t:0}function ce(A,e){e|=0;var t=0,r=0,o=0,s=0;if(t=~~(+a(+ +f(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,t=(0|n[A>>2])+(t<<2)|0,!(r=0|n[t>>2]))return 0|(s=1);s=e+32|0;do{if((0|r)!=(0|e)){if(!(t=0|n[r+32>>2]))return 0|(s=1);for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|n[o+32>>2])){t=1,o=10;break}r=o,o=t}if(8==(0|o)){n[r+32>>2]=n[s>>2];break}if(10==(0|o))return 0|t}else n[t>>2]=n[s>>2]}while(0);return be(e),n[(s=A+8|0)>>2]=(0|n[s>>2])-1,0|(s=0)}function he(A,e,t){A|=0,e|=0,t|=0;var r,o=0,s=0,l=0;(r=0|pe(40))||k(23283,23253,98,23296),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[(s=r+16|0)>>2]=n[t>>2],n[s+4>>2]=n[t+4>>2],n[s+8>>2]=n[t+8>>2],n[s+12>>2]=n[t+12>>2],n[r+32>>2]=0,s=~~(+a(+ +f(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,s=(0|n[A>>2])+(s<<2)|0,o=0|n[s>>2];do{if(o){for(;!(0|_A(o,e)&&0|_A(o+16|0,t));)if(s=0|n[o+32>>2],!(0|n[(o=0|s?s:o)+32>>2])){l=10;break}if(10==(0|l)){n[o+32>>2]=r;break}return be(r),0|(l=o)}n[s>>2]=r}while(0);return n[(l=A+8|0)>>2]=1+(0|n[l>>2]),0|(l=r)}function ge(A,e,t){e|=0,t|=0;var r=0,o=0;if(o=~~(+a(+ +f(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0|(t=0);if(!t){for(A=o;;){if(0|_A(A,e)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}if(10==(0|r))return 0|A}for(A=o;;){if(0|_A(A,e)&&0|_A(A+16|0,t)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}return 10==(0|r)?0|A:0}function de(A,e){e|=0;var t=0;if(t=~~(+a(+ +f(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(t<<2)>>2]))return 0|(t=0);for(;;){if(0|_A(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function we(A){return 0|+function(A){return+ +Ce(+(A=+A))}(A=+A)}function pe(A){A|=0;var e,t=0,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0;e=C,C=C+16|0,g=e;do{if(A>>>0<245){if(A=(u=A>>>0<11?16:A+11&-8)>>>3,3&(r=(h=0|n[5829])>>>A))return i=0|n[(r=(A=23356+((t=(1&r^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(s=0|n[(o=i+8|0)>>2]))==(0|A)?n[5829]=h&~(1<<t):(n[s+12>>2]=A,n[r>>2]=s),y=t<<3,n[i+4>>2]=3|y,n[(y=i+y+4|0)>>2]=1|n[y>>2],C=e,0|(y=o);if(u>>>0>(c=0|n[5831])>>>0){if(0|r)return t=((t=r<<A&((t=2<<A)|0-t))&0-t)-1|0,s=0|n[(A=(t=23356+((i=((r=(t>>>=l=t>>>12&16)>>>5&8)|l|(s=(t>>>=r)>>>2&4)|(A=(t>>>=s)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(r=0|n[(l=s+8|0)>>2]))==(0|t)?(A=h&~(1<<i),n[5829]=A):(n[r+12>>2]=t,n[A>>2]=r,A=h),a=(y=i<<3)-u|0,n[s+4>>2]=3|u,n[(o=s+u|0)+4>>2]=1|a,n[s+y>>2]=a,0|c&&(i=0|n[5834],r=23356+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[5831]=a,n[5834]=o,C=e,0|(y=l);if(s=0|n[5830]){for(r=(s&0-s)-1|0,r=f=0|n[23620+(((i=(r>>>=o=r>>>12&16)>>>5&8)|o|(a=(r>>>=i)>>>2&4)|(l=(r>>>=a)>>>1&2)|(f=(r>>>=l)>>>1&1))+(r>>>f)<<2)>>2],l=f,f=(-8&n[f+4>>2])-u|0;(A=0|n[r+16>>2])||(A=0|n[r+20>>2]);)r=A,l=(o=(a=(-8&n[A+4>>2])-u|0)>>>0<f>>>0)?A:l,f=o?a:f;if((a=l+u|0)>>>0>l>>>0){o=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){r=0;break}for(;;)if(r=0|n[(i=t+20|0)>>2])t=r,A=i;else{if(!(r=0|n[(i=t+16|0)>>2]))break;t=r,A=i}n[A>>2]=0,r=t}else r=0|n[l+8>>2],n[r+12>>2]=t,n[t+8>>2]=r,r=t}while(0);do{if(0|o){if(t=0|n[l+28>>2],(0|l)==(0|n[(A=23620+(t<<2)|0)>>2])){if(n[A>>2]=r,!r){n[5830]=s&~(1<<t);break}}else if(n[((0|n[(y=o+16|0)>>2])==(0|l)?y:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(t=0|n[l+16>>2])&&(n[r+16>>2]=t,n[t+24>>2]=r),0|(t=0|n[l+20>>2])&&(n[r+20>>2]=t,n[t+24>>2]=r)}}while(0);return f>>>0<16?(y=f+u|0,n[l+4>>2]=3|y,n[(y=l+y+4|0)>>2]=1|n[y>>2]):(n[l+4>>2]=3|u,n[a+4>>2]=1|f,n[a+f>>2]=f,0|c&&(i=0|n[5834],r=23356+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|n[(A=r+8|0)>>2]:(n[5829]=t|h,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[5831]=f,n[5834]=a),C=e,0|(y=l+8|0)}h=u}else h=u}else h=u}else if(A>>>0<=4294967231)if(u=-8&(A=A+11|0),i=0|n[5830]){o=0-u|0,f=(A>>>=8)?u>>>0>16777215?31:u>>>((f=14-((l=((p=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(f=((p<<=l)+245760|0)>>>16&2))+(p<<f>>>15)|0)+7|0)&1|f<<1:0,r=0|n[23620+(f<<2)>>2];A:do{if(r)for(A=0,l=u<<(31==(0|f)?0:25-(f>>>1)|0),s=0;;){if((a=(-8&n[r+4>>2])-u|0)>>>0<o>>>0){if(!a){A=r,o=0,p=65;break A}A=r,o=a}if(s=!(0|(p=0|n[r+20>>2]))|(0|p)==(0|(r=0|n[r+16+(l>>>31<<2)>>2]))?s:p,!r){r=s,p=61;break}l<<=1}else r=0,A=0,p=61}while(0);if(61==(0|p)){if(!(0|r)&!(0|A)){if(!(A=((A=2<<f)|0-A)&i)){h=u;break}h=(A&0-A)-1|0,A=0,r=0|n[23620+(((s=(h>>>=a=h>>>12&16)>>>5&8)|a|(l=(h>>>=s)>>>2&4)|(f=(h>>>=l)>>>1&2)|(r=(h>>>=f)>>>1&1))+(h>>>r)<<2)>>2]}r?p=65:(l=A,a=o)}if(65==(0|p))for(s=r;;){if(o=(r=(h=(-8&n[s+4>>2])-u|0)>>>0<o>>>0)?h:o,A=r?s:A,(r=0|n[s+16>>2])||(r=0|n[s+20>>2]),!r){l=A,a=o;break}s=r}if(0|l&&a>>>0<((0|n[5831])-u|0)>>>0&&(c=l+u|0)>>>0>l>>>0){s=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){t=0;break}for(;;)if(r=0|n[(o=t+20|0)>>2])t=r,A=o;else{if(!(r=0|n[(o=t+16|0)>>2]))break;t=r,A=o}n[A>>2]=0}else y=0|n[l+8>>2],n[y+12>>2]=t,n[t+8>>2]=y}while(0);do{if(s){if(A=0|n[l+28>>2],(0|l)==(0|n[(r=23620+(A<<2)|0)>>2])){if(n[r>>2]=t,!t){i&=~(1<<A),n[5830]=i;break}}else if(n[((0|n[(y=s+16|0)>>2])==(0|l)?y:s+20)>>2]=t,!t)break;n[t+24>>2]=s,0|(A=0|n[l+16>>2])&&(n[t+16>>2]=A,n[A+24>>2]=t),(A=0|n[l+20>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);A:do{if(a>>>0<16)y=a+u|0,n[l+4>>2]=3|y,n[(y=l+y+4|0)>>2]=1|n[y>>2];else{if(n[l+4>>2]=3|u,n[c+4>>2]=1|a,n[c+a>>2]=a,t=a>>>3,a>>>0<256){r=23356+(t<<1<<2)|0,(A=0|n[5829])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=c,n[t+12>>2]=c,n[c+8>>2]=t,n[c+12>>2]=r;break}if(t=23620+((r=(t=a>>>8)?a>>>0>16777215?31:a>>>((r=14-((B=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(r=((y<<=B)+245760|0)>>>16&2))+(y<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[c+28>>2]=r,n[(A=c+16|0)+4>>2]=0,n[A>>2]=0,!(i&(A=1<<r))){n[5830]=i|A,n[t>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break}t=0|n[t>>2];e:do{if((-8&n[t+4>>2])!=(0|a)){for(i=a<<(31==(0|r)?0:25-(r>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}n[r>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=c,n[v>>2]=c,n[c+8>>2]=y,n[c+12>>2]=t,n[c+24>>2]=0}}while(0);return C=e,0|(y=l+8|0)}h=u}else h=u;else h=-1}while(0);if((r=0|n[5831])>>>0>=h>>>0)return t=r-h|0,A=0|n[5834],t>>>0>15?(y=A+h|0,n[5834]=y,n[5831]=t,n[y+4>>2]=1|t,n[A+r>>2]=t,n[A+4>>2]=3|h):(n[5831]=0,n[5834]=0,n[A+4>>2]=3|r,n[(y=A+r+4|0)>>2]=1|n[y>>2]),C=e,0|(y=A+8|0);if((a=0|n[5832])>>>0>h>>>0)return B=a-h|0,n[5832]=B,v=(y=0|n[5835])+h|0,n[5835]=v,n[v+4>>2]=1|B,n[y+4>>2]=3|h,C=e,0|(y=y+8|0);if(0|n[5947]?A=0|n[5949]:(n[5949]=4096,n[5948]=4096,n[5950]=-1,n[5951]=-1,n[5952]=0,n[5940]=0,n[5947]=-16&g^1431655768,A=4096),l=h+48|0,(u=(s=A+(f=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return C=e,0|(y=0);if(0|(A=0|n[5939])&&(g=(c=0|n[5937])+u|0)>>>0<=c>>>0|g>>>0>A>>>0)return C=e,0|(y=0);A:do{if(4&n[5940])t=0,p=143;else{r=0|n[5835];e:do{if(r){for(i=23764;!((g=0|n[i>>2])>>>0<=r>>>0&&(g+(0|n[i+4>>2])|0)>>>0>r>>>0);){if(!(A=0|n[i+8>>2])){p=128;break e}i=A}if((t=s-a&o)>>>0<2147483647)if((0|(A=0|Ie(0|t)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){a=t,s=A,p=145;break A}}else i=A,p=136;else t=0}else p=128}while(0);do{if(128==(0|p))if(-1!=(0|(r=0|Ie(0)))&&(t=r,w=(t=((w=(d=0|n[5948])+-1|0)&t|0?(w+t&0-d)-t|0:0)+u|0)+(d=0|n[5937])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(g=0|n[5939])&&w>>>0<=d>>>0|w>>>0>g>>>0){t=0;break}if((0|(A=0|Ie(0|t)))==(0|r)){a=t,s=r,p=145;break A}i=A,p=136}else t=0}while(0);do{if(136==(0|p)){if(r=0-t|0,!(l>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}a=t,s=i,p=145;break A}if((A=f-t+(A=0|n[5949])&0-A)>>>0>=2147483647){a=t,s=i,p=145;break A}if(-1==(0|Ie(0|A))){Ie(0|r),t=0;break}a=A+t|0,s=i,p=145;break A}}while(0);n[5940]=4|n[5940],p=143}}while(0);if(143==(0|p)&&u>>>0<2147483647&&!(-1==(0|(B=0|Ie(0|u)))|1^(m=(b=(w=0|Ie(0))-B|0)>>>0>(h+40|0)>>>0)|B>>>0<w>>>0&-1!=(0|B)&-1!=(0|w)^1)&&(a=m?b:t,s=B,p=145),145==(0|p)){t=(0|n[5937])+a|0,n[5937]=t,t>>>0>(0|n[5938])>>>0&&(n[5938]=t),f=0|n[5835];A:do{if(f){for(t=23764;;){if((0|s)==((A=0|n[t>>2])+(r=0|n[t+4>>2])|0)){p=154;break}if(!(i=0|n[t+8>>2]))break;t=i}if(!(154!=(0|p)||(v=t+4|0,8&n[t+12>>2]))&&s>>>0>f>>>0&A>>>0<=f>>>0){n[v>>2]=r+a,v=f+(B=7&(B=f+8|0)?0-B&7:0)|0,B=(y=(0|n[5832])+a|0)-B|0,n[5835]=v,n[5832]=B,n[v+4>>2]=1|B,n[f+y+4>>2]=40,n[5836]=n[5951];break}for(s>>>0<(0|n[5833])>>>0&&(n[5833]=s),r=s+a|0,t=23764;;){if((0|n[t>>2])==(0|r)){p=162;break}if(!(A=0|n[t+8>>2]))break;t=A}if(162==(0|p)&&!(8&n[t+12>>2])){n[t>>2]=s,n[(c=t+4|0)>>2]=(0|n[c>>2])+a,u=(c=s+(7&(c=s+8|0)?0-c&7:0)|0)+h|0,l=(t=r+(7&(t=r+8|0)?0-t&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|f)==(0|t))y=(0|n[5832])+l|0,n[5832]=y,n[5835]=u,n[u+4>>2]=1|y;else{if((0|n[5834])==(0|t)){y=(0|n[5831])+l|0,n[5831]=y,n[5834]=u,n[u+4>>2]=1|y,n[u+y>>2]=y;break}if(1==(3&(A=0|n[t+4>>2]))){a=-8&A,i=A>>>3;t:do{if(A>>>0<256){if(A=0|n[t+8>>2],(0|(r=0|n[t+12>>2]))==(0|A)){n[5829]=n[5829]&~(1<<i);break}n[A+12>>2]=r,n[r+8>>2]=A;break}s=0|n[t+24>>2],A=0|n[t+12>>2];do{if((0|A)==(0|t)){if(A=0|n[(i=(r=t+16|0)+4|0)>>2])r=i;else if(!(A=0|n[r>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,r=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,r=o}n[r>>2]=0}else y=0|n[t+8>>2],n[y+12>>2]=A,n[A+8>>2]=y}while(0);if(!s)break;i=23620+((r=0|n[t+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|t)){if(n[i>>2]=A,0|A)break;n[5830]=n[5830]&~(1<<r);break t}if(n[((0|n[(y=s+16|0)>>2])==(0|t)?y:s+20)>>2]=A,!A)break t}while(0);if(n[A+24>>2]=s,0|(i=0|n[(r=t+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(r=0|n[r+4>>2]))break;n[A+20>>2]=r,n[r+24>>2]=A}while(0);t=t+a|0,o=a+l|0}else o=l;if(n[(t=t+4|0)>>2]=-2&n[t>>2],n[u+4>>2]=1|o,n[u+o>>2]=o,t=o>>>3,o>>>0<256){r=23356+(t<<1<<2)|0,(A=0|n[5829])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=u,n[t+12>>2]=u,n[u+8>>2]=t,n[u+12>>2]=r;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((B=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((y<<=B)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(t=23620+(i<<2)|0,n[u+28>>2]=i,n[(A=u+16|0)+4>>2]=0,n[A>>2]=0,!((A=0|n[5830])&(r=1<<i))){n[5830]=A|r,n[t>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break}t=0|n[t>>2];t:do{if((-8&n[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}n[r>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break e}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=u,n[v>>2]=u,n[u+8>>2]=y,n[u+12>>2]=t,n[u+24>>2]=0}}while(0);return C=e,0|(y=c+8|0)}for(t=23764;!((A=0|n[t>>2])>>>0<=f>>>0&&(y=A+(0|n[t+4>>2])|0)>>>0>f>>>0);)t=0|n[t+8>>2];t=(A=(A=(o=y+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=f+16|0)>>>0?f:A)+8|0,v=s+(B=7&(B=s+8|0)?0-B&7:0)|0,B=(r=a+-40|0)-B|0,n[5835]=v,n[5832]=B,n[v+4>>2]=1|B,n[s+r+4>>2]=40,n[5836]=n[5951],n[(r=A+4|0)>>2]=27,n[t>>2]=n[5941],n[t+4>>2]=n[5942],n[t+8>>2]=n[5943],n[t+12>>2]=n[5944],n[5941]=s,n[5942]=a,n[5944]=0,n[5943]=t,t=A+24|0;do{v=t,n[(t=t+4|0)>>2]=7}while((v+8|0)>>>0<y>>>0);if((0|A)!=(0|f)){if(s=A-f|0,n[r>>2]=-2&n[r>>2],n[f+4>>2]=1|s,n[A>>2]=s,t=s>>>3,s>>>0<256){r=23356+(t<<1<<2)|0,(A=0|n[5829])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=f,n[t+12>>2]=f,n[f+8>>2]=t,n[f+12>>2]=r;break}if(r=23620+((i=(t=s>>>8)?s>>>0>16777215?31:s>>>((i=14-((B=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((y<<=B)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,n[f+28>>2]=i,n[f+20>>2]=0,n[o>>2]=0,!((t=0|n[5830])&(A=1<<i))){n[5830]=t|A,n[r>>2]=f,n[f+24>>2]=r,n[f+12>>2]=f,n[f+8>>2]=f;break}t=0|n[r>>2];e:do{if((-8&n[t+4>>2])!=(0|s)){for(i=s<<(31==(0|i)?0:25-(i>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|s)){t=A;break e}i<<=1,t=A}n[r>>2]=f,n[f+24>>2]=t,n[f+12>>2]=f,n[f+8>>2]=f;break A}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=f,n[v>>2]=f,n[f+8>>2]=y,n[f+12>>2]=t,n[f+24>>2]=0}}else!(0|(y=0|n[5833]))|s>>>0<y>>>0&&(n[5833]=s),n[5941]=s,n[5942]=a,n[5944]=0,n[5838]=n[5947],n[5837]=-1,n[5842]=23356,n[5841]=23356,n[5844]=23364,n[5843]=23364,n[5846]=23372,n[5845]=23372,n[5848]=23380,n[5847]=23380,n[5850]=23388,n[5849]=23388,n[5852]=23396,n[5851]=23396,n[5854]=23404,n[5853]=23404,n[5856]=23412,n[5855]=23412,n[5858]=23420,n[5857]=23420,n[5860]=23428,n[5859]=23428,n[5862]=23436,n[5861]=23436,n[5864]=23444,n[5863]=23444,n[5866]=23452,n[5865]=23452,n[5868]=23460,n[5867]=23460,n[5870]=23468,n[5869]=23468,n[5872]=23476,n[5871]=23476,n[5874]=23484,n[5873]=23484,n[5876]=23492,n[5875]=23492,n[5878]=23500,n[5877]=23500,n[5880]=23508,n[5879]=23508,n[5882]=23516,n[5881]=23516,n[5884]=23524,n[5883]=23524,n[5886]=23532,n[5885]=23532,n[5888]=23540,n[5887]=23540,n[5890]=23548,n[5889]=23548,n[5892]=23556,n[5891]=23556,n[5894]=23564,n[5893]=23564,n[5896]=23572,n[5895]=23572,n[5898]=23580,n[5897]=23580,n[5900]=23588,n[5899]=23588,n[5902]=23596,n[5901]=23596,n[5904]=23604,n[5903]=23604,v=s+(B=7&(B=s+8|0)?0-B&7:0)|0,B=(y=a+-40|0)-B|0,n[5835]=v,n[5832]=B,n[v+4>>2]=1|B,n[s+y+4>>2]=40,n[5836]=n[5951]}while(0);if((t=0|n[5832])>>>0>h>>>0)return B=t-h|0,n[5832]=B,v=(y=0|n[5835])+h|0,n[5835]=v,n[v+4>>2]=1|B,n[y+4>>2]=3|h,C=e,0|(y=y+8|0)}return n[(y=23312)>>2]=12,C=e,0|(y=0)}function be(A){var e=0,t=0,r=0,i=0,o=0,s=0,a=0,l=0;if(A|=0){t=A+-8|0,i=0|n[5833],l=t+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)a=t,s=t;else{if(r=0|n[t>>2],!(3&A))return;if(o=r+e|0,(s=t+(0-r)|0)>>>0<i>>>0)return;if((0|n[5834])==(0|s)){if(3&~(e=0|n[(A=l+4|0)>>2])){a=s,e=o;break}return n[5831]=o,n[A>>2]=-2&e,n[s+4>>2]=1|o,void(n[s+o>>2]=o)}if(t=r>>>3,r>>>0<256){if(A=0|n[s+8>>2],(0|(e=0|n[s+12>>2]))==(0|A)){n[5829]=n[5829]&~(1<<t),a=s,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,a=s,e=o;break}i=0|n[s+24>>2],A=0|n[s+12>>2];do{if((0|A)==(0|s)){if(A=0|n[(t=(e=s+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0}else a=0|n[s+8>>2],n[a+12>>2]=A,n[A+8>>2]=a}while(0);if(i){if(e=0|n[s+28>>2],(0|n[(t=23620+(e<<2)|0)>>2])==(0|s)){if(n[t>>2]=A,!A){n[5830]=n[5830]&~(1<<e),a=s,e=o;break}}else if(n[((0|n[(a=i+16|0)>>2])==(0|s)?a:i+20)>>2]=A,!A){a=s,e=o;break}n[A+24>>2]=i,0|(t=0|n[(e=s+16|0)>>2])&&(n[A+16>>2]=t,n[t+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,a=s,e=o):(a=s,e=o)}else a=s,e=o}}while(0);if(!(s>>>0>=l>>>0)&&1&(r=0|n[(A=l+4|0)>>2])){if(2&r)n[A>>2]=-2&r,n[a+4>>2]=1|e,n[s+e>>2]=e,i=e;else{if((0|n[5835])==(0|l)){if(l=(0|n[5832])+e|0,n[5832]=l,n[5835]=a,n[a+4>>2]=1|l,(0|a)!=(0|n[5834]))return;return n[5834]=0,void(n[5831]=0)}if((0|n[5834])==(0|l))return l=(0|n[5831])+e|0,n[5831]=l,n[5834]=s,n[a+4>>2]=1|l,void(n[s+l>>2]=l);i=(-8&r)+e|0,t=r>>>3;do{if(r>>>0<256){if(e=0|n[l+8>>2],(0|(A=0|n[l+12>>2]))==(0|e)){n[5829]=n[5829]&~(1<<t);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[l+24>>2],A=0|n[l+12>>2];do{if((0|A)==(0|l)){if(A=0|n[(t=(e=l+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){t=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0,t=A}else t=0|n[l+8>>2],n[t+12>>2]=A,n[A+8>>2]=t,t=A}while(0);if(0|o){if(A=0|n[l+28>>2],(0|n[(e=23620+(A<<2)|0)>>2])==(0|l)){if(n[e>>2]=t,!t){n[5830]=n[5830]&~(1<<A);break}}else if(n[((0|n[(r=o+16|0)>>2])==(0|l)?r:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(e=0|n[(A=l+16|0)>>2])&&(n[t+16>>2]=e,n[e+24>>2]=t),0|(A=0|n[A+4>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);if(n[a+4>>2]=1|i,n[s+i>>2]=i,(0|a)==(0|n[5834]))return void(n[5831]=i)}if(A=i>>>3,i>>>0<256)return t=23356+(A<<1<<2)|0,(e=0|n[5829])&(A=1<<A)?A=0|n[(e=t+8|0)>>2]:(n[5829]=e|A,A=t,e=t+8|0),n[e>>2]=a,n[A+12>>2]=a,n[a+8>>2]=A,void(n[a+12>>2]=t);A=23620+((r=(A=i>>>8)?i>>>0>16777215?31:i>>>((r=14-((o=((l=A<<(s=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|s|(r=((l<<=o)+245760|0)>>>16&2))+(l<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[a+28>>2]=r,n[a+20>>2]=0,n[a+16>>2]=0,e=0|n[5830],t=1<<r;A:do{if(e&t){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(r=i<<(31==(0|r)?0:25-(r>>>1)|0);e=0|n[(t=A+16+(r>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}r<<=1,A=e}n[t>>2]=a,n[a+24>>2]=A,n[a+12>>2]=a,n[a+8>>2]=a;break A}}while(0);l=0|n[(s=A+8|0)>>2],n[l+12>>2]=a,n[s>>2]=a,n[a+8>>2]=l,n[a+12>>2]=A,n[a+24>>2]=0}else n[5830]=e|t,n[A>>2]=a,n[a+24>>2]=A,n[a+12>>2]=a,n[a+8>>2]=a}while(0);if(l=(0|n[5837])-1|0,n[5837]=l,!(0|l)){for(A=23772;A=0|n[A>>2];)A=A+8|0;n[5837]=-1}}}}function 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|pe(t))&&3&n[A+-4>>2]?(De(0|A,0,0|t),0|A):0|A}function Be(A,e,t,r){return 0|(y(0|(r=(e|=0)-(r|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function ve(A){return 0|((A|=0)?31-(0|v(A^A-1)):32)}function ye(A,e,t,r,i){i|=0;var o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0;if(u=A|=0,s=t|=0,a=h=r|=0,!(f=l=e|=0))return o=!!(0|i),a?o?(n[i>>2]=0|A,n[i+4>>2]=0&e,i=0,0|(y(0|(h=0)),i)):(i=0,0|(y(0|(h=0)),i)):(o&&(n[i>>2]=(u>>>0)%(s>>>0),n[i+4>>2]=0),i=(u>>>0)/(s>>>0)>>>0,0|(y(0|(h=0)),i));o=!(0|a);do{if(s){if(!o){if((o=(0|v(0|a))-(0|v(0|f))|0)>>>0<=31){s=c=o+1|0,A=u>>>(c>>>0)&(e=o-31>>31)|f<<(a=31-o|0),e&=f>>>(c>>>0),o=0,a=u<<a;break}return i?(n[i>>2]=0|A,n[i+4>>2]=l|0&e,i=0,0|(y(0|(h=0)),i)):(i=0,0|(y(0|(h=0)),i))}if((o=s-1|0)&s|0){s=a=33+(0|v(0|s))-(0|v(0|f))|0,A=(c=32-a|0)-1>>31&f>>>((g=a-32|0)>>>0)|(f<<c|u>>>(a>>>0))&(e=g>>31),e&=f>>>(a>>>0),o=u<<(d=64-a|0)&(l=c>>31),a=(f<<d|u>>>(g>>>0))&l|u<<c&a-33>>31;break}return 0|i&&(n[i>>2]=o&u,n[i+4>>2]=0),1==(0|s)?(d=0|A,0|(y(0|(g=l|0&e)),d)):(g=f>>>((d=0|ve(0|s))>>>0)|0,d=f<<32-d|u>>>(d>>>0),0|(y(0|g),d))}if(o)return 0|i&&(n[i>>2]=(f>>>0)%(s>>>0),n[i+4>>2]=0),d=(f>>>0)/(s>>>0)>>>0,0|(y(0|(g=0)),d);if(!u)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(f>>>0)%(a>>>0)),d=(f>>>0)/(a>>>0)>>>0,0|(y(0|(g=0)),d);if(!((o=a-1|0)&a))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&f|0&e),g=0,d=f>>>((0|ve(0|a))>>>0),0|(y(0|g),d);if((o=(0|v(0|a))-(0|v(0|f))|0)>>>0<=30){s=e=o+1|0,A=f<<(a=31-o|0)|u>>>(e>>>0),e=f>>>(e>>>0),o=0,a=u<<a;break}return i?(n[i>>2]=0|A,n[i+4>>2]=l|0&e,d=0,0|(y(0|(g=0)),d)):(d=0,0|(y(0|(g=0)),d))}while(0);if(s){f=0|function(A,e,t,r){return 0|(y((e|=0)+(r|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}(0|(c=0|t),0|(u=h|0&r),-1,-1),t=0|E(),l=a,a=0;do{r=l,l=o>>>31|l<<1,o=a|o<<1,Be(0|f,0|t,0|(r=A<<1|r>>>31),0|(h=A>>>31|e<<1)),a=1&(g=(d=0|E())>>31|((0|d)<0?-1:0)<<1),A=0|Be(0|r,0|h,g&c|0,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&u),e=0|E(),s=s-1|0}while(0|s);f=l,l=0}else f=a,l=0,a=0;return s=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),d=o<<1&-2|a,0|(y(0|(g=(0|o)>>>31|(f|s)<<1|l)),d)}function Ee(A,e,t,r){var i,o;return o=C,C=C+16|0,ye(A|=0,e|=0,t|=0,r|=0,i=0|o),C=o,0|(y(0|n[i+4>>2]),n[i>>2])}function ke(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(y(e>>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(y(0),e>>>t-32|0)}function Me(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(y(e<<t|(A&(1<<t)-1<<32-t)>>>32-t),A<<t):(y(A<<t-32),0)}function Qe(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+B(+A,+e)}function _e(A){return(A=+A)>=0?+s(A+.5):+b(A-.5)}function xe(A,e,t){A|=0,e|=0;var i,o,s=0;if((0|(t|=0))>=8192)return _(0|A,0|e,0|t),0|A;if(o=0|A,i=A+t|0,(3&A)==(3&e)){for(;3&A;){if(!t)return 0|o;r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0,t=t-1|0}for(s=(t=-4&i)-64|0;(0|A)<=(0|s);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)r[A|0]=0|r[e|0],r[A+1|0]=0|r[e+1|0],r[A+2|0]=0|r[e+2|0],r[A+3|0]=0|r[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0;return 0|o}function De(A,e,t){e|=0;var i,o=0,s=0,a=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)r[A|0]=e,A=A+1|0;for(a=e|e<<8|e<<16|e<<24,s=(o=-4&i)-64|0;(0|A)<=(0|s);)n[A>>2]=a,n[A+4>>2]=a,n[A+8>>2]=a,n[A+12>>2]=a,n[A+16>>2]=a,n[A+20>>2]=a,n[A+24>>2]=a,n[A+28>>2]=a,n[A+32>>2]=a,n[A+36>>2]=a,n[A+40>>2]=a,n[A+44>>2]=a,n[A+48>>2]=a,n[A+52>>2]=a,n[A+56>>2]=a,n[A+60>>2]=a,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=a,A=A+4|0}for(;(0|A)<(0|i);)r[A|0]=e,A=A+1|0;return i-t|0}function Ce(A){return(A=+A)>=0?+s(A+.5):+b(A-.5)}function Ie(A){A|=0;var e,t,r;return r=0|Q(),(0|A)>0&(0|(e=(t=0|n[o>>2])+A|0))<(0|t)|(0|e)<0?(D(0|e),M(12),-1):(0|e)>(0|r)&&!(0|x(0|e))?(M(12),-1):(n[o>>2]=e,0|t)}return{___uremdi3:Ee,_bitshift64Lshr:ke,_bitshift64Shl:Me,_calloc:me,_cellAreaKm2:function(A,e){var t,r,i,o=0;if(i=C,C=C+192|0,r=i,NA(A|=0,e|=0,t=i+168|0),VA(A,e,r),(0|(e=0|n[r>>2]))>0){if(o=+DA(r+8|0,r+8+((1!=(0|e)&1)<<4)|0,t)+0,1!=(0|e)){A=1;do{o+=+DA(r+8+(A<<4)|0,r+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e))}}else o=0;return C=i,6371.007180918475*o*6371.007180918475},_cellAreaM2:function(A,e){var t,r,i,o=0;if(i=C,C=C+192|0,r=i,NA(A|=0,e|=0,t=i+168|0),VA(A,e,r),(0|(e=0|n[r>>2]))>0){if(o=+DA(r+8|0,r+8+((1!=(0|e)&1)<<4)|0,t)+0,1!=(0|e)){A=1;do{o+=+DA(r+8+(A<<4)|0,r+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e))}}else o=0;return C=i,6371.007180918475*o*6371.007180918475*1e3*1e3},_cellAreaRads2:function(A,e){var t,r,i,o=0;if(i=C,C=C+192|0,r=i,NA(A|=0,e|=0,t=i+168|0),VA(A,e,r),(0|(e=0|n[r>>2]))<=0)return C=i,+(o=0);if(o=+DA(r+8|0,r+8+((1!=(0|e)&1)<<4)|0,t)+0,1==(0|e))return C=i,+o;A=1;do{o+=+DA(r+8+(A<<4)|0,r+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e));return C=i,+o},_compact:function(A,e,t){e|=0;var r,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,k=0,M=0,Q=0;if(!(t|=0))return 0|(M=0);if(i=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if((0|t)<=0)return 0|(M=0);if(n[(M=e)>>2]=i,n[M+4>>2]=o,1==(0|t))return 0|(M=0);i=1;do{k=0|n[(y=A+(i<<3)|0)+4>>2],n[(M=e+(i<<3)|0)>>2]=n[y>>2],n[M+4>>2]=k,i=i+1|0}while((0|i)!=(0|t));return 0|(i=0)}if(!(k=0|pe(y=t<<3)))return 0|(M=-3);if(xe(0|k,0|A,0|y),!(r=0|me(t,8)))return be(k),0|(M=-3);i=t;A:for(;;){B=0|ke(0|(c=0|n[(a=k)>>2]),0|(a=0|n[a+4>>2]),52),E(),v=(B&=15)+-1|0,m=(0|i)>0;e:do{if(m){if(b=((0|i)<0)<<31>>31,w=0|Me(0|v,0,52),p=0|E(),v>>>0>15)for(o=0,A=c,t=a;;){if(!(!(0|A)&!(0|t))){if(s=0|ke(0|A,0|t,52),E(),l=(0|(s&=15))<(0|v),s=(0|s)==(0|v),t=0|Ee(0|(u=l?0:s?A:0),0|(A=l?0:s?t:0),0|i,0|b),E(),!(0|(f=0|n[(l=s=r+(t<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2])))t=u;else for(w=0,d=t,g=l,t=u;;){if((0|w)>(0|i)){M=41;break A}if((0|f)==(0|t)&(-117440513&g)==(0|A)){u=0|ke(0|f,0|g,56),E(),h=(u&=7)+1|0,p=0|ke(0|f,0|g,45),E();t:do{if(0|G(127&p)){if(f=0|ke(0|f,0|g,52),E(),!(f&=15)){l=6;break}for(l=1;;){if(!(!((p=0|Me(7,0,3*(15-l|0)|0))&t|0)&!((0|E())&A))){l=7;break t}if(!(l>>>0<f>>>0)){l=6;break}l=l+1|0}}else l=7}while(0);if((u+2|0)>>>0>l>>>0){M=51;break A}p=0|Me(0|h,0,56),A=E()|-117440513&A,n[(l=s)>>2]=0,n[l+4>>2]=0,l=d,t|=p}else l=(d+1|0)%(0|i)|0;if(!(0|(f=0|n[(g=s=r+(l<<3)|0)>>2]))&!(0|(g=0|n[g+4>>2])))break;w=w+1|0,d=l}n[(p=s)>>2]=t,n[p+4>>2]=A}if((0|(o=o+1|0))>=(0|i))break e;A=0|n[(t=k+(o<<3)|0)>>2],t=0|n[t+4>>2]}for(o=0,A=c,t=a;;){if(!(!(0|A)&!(0|t))){if(l=0|ke(0|A,0|t,52),E(),(0|(l&=15))>=(0|v)){if((0|l)!=(0|v)&&(A|=w,t=-15728641&t|p,l>>>0>=B>>>0)){s=v;do{d=0|Me(7,0,3*(14-s|0)|0),s=s+1|0,A|=d,t=0|E()|t}while(s>>>0<l>>>0)}}else A=0,t=0;if(l=0|Ee(0|A,0|t,0|i,0|b),E(),!(!(0|(u=0|n[(f=s=r+(l<<3)|0)>>2]))&!(0|(f=0|n[f+4>>2]))))for(d=0;;){if((0|d)>(0|i)){M=41;break A}if((0|u)==(0|A)&(-117440513&f)==(0|t)){h=0|ke(0|u,0|f,56),E(),g=(h&=7)+1|0,Q=0|ke(0|u,0|f,45),E();t:do{if(0|G(127&Q)){if(u=0|ke(0|u,0|f,52),E(),!(u&=15)){f=6;break}for(f=1;;){if(!(!((Q=0|Me(7,0,3*(15-f|0)|0))&A|0)&!((0|E())&t))){f=7;break t}if(!(f>>>0<u>>>0)){f=6;break}f=f+1|0}}else f=7}while(0);if((h+2|0)>>>0>f>>>0){M=51;break A}Q=0|Me(0|g,0,56),t=E()|-117440513&t,n[(g=s)>>2]=0,n[g+4>>2]=0,A|=Q}else l=(l+1|0)%(0|i)|0;if(!(0|(u=0|n[(f=s=r+(l<<3)|0)>>2]))&!(0|(f=0|n[f+4>>2])))break;d=d+1|0}n[(Q=s)>>2]=A,n[Q+4>>2]=t}if((0|(o=o+1|0))>=(0|i))break e;A=0|n[(t=k+(o<<3)|0)>>2],t=0|n[t+4>>2]}}}while(0);if((i+5|0)>>>0<11){M=99;break}if(!(p=0|me((0|i)/6|0,8))){M=58;break}e:do{if(m){d=0,g=0;do{if(!(!(0|(o=0|n[(A=l=r+(d<<3)|0)>>2]))&!(0|(A=0|n[A+4>>2])))){f=0|ke(0|o,0|A,56),E(),t=(f&=7)+1|0,u=-117440513&A,Q=0|ke(0|o,0|A,45),E();t:do{if(0|G(127&Q)){if(h=0|ke(0|o,0|A,52),E(),0|(h&=15))for(s=1;;){if(!(!(o&(Q=0|Me(7,0,3*(15-s|0)|0))|0)&!(u&(0|E()))))break t;if(!(s>>>0<h>>>0))break;s=s+1|0}o|=A=0|Me(0|t,0,56),A=0|E()|u,n[(t=l)>>2]=o,n[t+4>>2]=A,t=f+2|0}}while(0);7==(0|t)&&(n[(Q=p+(g<<3)|0)>>2]=o,n[Q+4>>2]=-117440513&A,g=g+1|0)}d=d+1|0}while((0|d)!=(0|i));if(m){if(w=((0|i)<0)<<31>>31,h=0|Me(0|v,0,52),d=0|E(),v>>>0>15)for(A=0,o=0;;){do{if(!(!(0|c)&!(0|a))){for(f=0|ke(0|c,0|a,52),E(),s=(0|(f&=15))<(0|v),f=(0|f)==(0|v),s=0|Ee(0|(l=s?0:f?c:0),0|(f=s?0:f?a:0),0|i,0|w),E(),t=0;;){if((0|t)>(0|i)){M=98;break A}if((-117440513&(u=0|n[(Q=r+(s<<3)|0)+4>>2]))==(0|f)&&(0|n[Q>>2])==(0|l)){M=70;break}if((0|n[(Q=r+((s=(s+1|0)%(0|i)|0)<<3)|0)>>2])==(0|l)&&(0|n[Q+4>>2])==(0|f))break;t=t+1|0}if(70==(0|M)&&(M=0,!0&100663296==(117440512&u)))break;n[(Q=e+(o<<3)|0)>>2]=c,n[Q+4>>2]=a,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|n[(a=k+(A<<3)|0)>>2],a=0|n[a+4>>2]}for(A=0,o=0;;){do{if(!(!(0|c)&!(0|a))){if(f=0|ke(0|c,0|a,52),E(),(0|(f&=15))>=(0|v))if((0|f)!=(0|v))if(t=c|h,s=-15728641&a|d,f>>>0<B>>>0)f=s;else{l=v;do{Q=0|Me(7,0,3*(14-l|0)|0),l=l+1|0,t|=Q,s=0|E()|s}while(l>>>0<f>>>0);f=s}else t=c,f=a;else t=0,f=0;for(l=0|Ee(0|t,0|f,0|i,0|w),E(),s=0;;){if((0|s)>(0|i)){M=98;break A}if((-117440513&(u=0|n[(Q=r+(l<<3)|0)+4>>2]))==(0|f)&&(0|n[Q>>2])==(0|t)){M=93;break}if((0|n[(Q=r+((l=(l+1|0)%(0|i)|0)<<3)|0)>>2])==(0|t)&&(0|n[Q+4>>2])==(0|f))break;s=s+1|0}if(93==(0|M)&&(M=0,!0&100663296==(117440512&u)))break;n[(Q=e+(o<<3)|0)>>2]=c,n[Q+4>>2]=a,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|n[(a=k+(A<<3)|0)>>2],a=0|n[a+4>>2]}}else o=0,i=g}else o=0,i=0}while(0);if(De(0|r,0,0|y),xe(0|k,0|p,i<<3),be(p),!i)break;e=e+(o<<3)|0}return 41==(0|M)?(be(k),be(r),0|(Q=-1)):51==(0|M)?(be(k),be(r),0|(Q=-2)):58==(0|M)?(be(k),be(r),0|(Q=-3)):98==(0|M)?(be(p),be(k),be(r),0|(Q=-1)):(99==(0|M)&&xe(0|e,0|k,i<<3),be(k),be(r),0|(Q=0))},_destroyLinkedPolygon:function(A){var e=0,t=0,r=0,i=0;if(A|=0)for(r=1;;){if(0|(e=0|n[A>>2]))do{if(0|(t=0|n[e>>2]))do{i=t,t=0|n[t+16>>2],be(i)}while(0|t);i=e,e=0|n[e+8>>2],be(i)}while(0|e);if(e=A,A=0|n[A+8>>2],r||be(e),!A)break;r=0}},_edgeLengthKm:function(A){return+ +i[20752+((A|=0)<<3)>>3]},_edgeLengthM:function(A){return+ +i[20880+((A|=0)<<3)>>3]},_emscripten_replace_memory:function(A){return r=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),t=A,!0},_exactEdgeLengthKm:function(A,e){var t,r,o=0,s=0,a=0,f=0,h=0,g=0;if(r=C,C=C+176|0,WA(A|=0,e|=0,t=r),(0|(A=0|n[t>>2]))<=1)return C=r,+(a=0);e=A+-1|0,A=0,o=0,s=+i[t+8>>3],a=+i[t+16>>3];do{h=s,s=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(s-h)),f=a,a=+i[t+8+(A<<4)+8>>3],f=g*g+(f=+c(.5*(a-f)))*(+u(+h)*+u(+s)*f),o+=2*+p(+ +l(+f),+ +l(+(1-f)))}while((0|A)!=(0|e));return C=r,+(g=6371.007180918475*o)},_exactEdgeLengthM:function(A,e){var t,r,o=0,s=0,a=0,f=0,h=0,g=0;if(r=C,C=C+176|0,WA(A|=0,e|=0,t=r),(0|(A=0|n[t>>2]))<=1)return C=r,+(a=0);e=A+-1|0,A=0,o=0,s=+i[t+8>>3],a=+i[t+16>>3];do{h=s,s=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(s-h)),f=a,a=+i[t+8+(A<<4)+8>>3],f=g*g+(f=+c(.5*(a-f)))*(+u(+h)*+u(+s)*f),o+=2*+p(+ +l(+f),+ +l(+(1-f)))}while((0|A)!=(0|e));return C=r,+(g=6371.007180918475*o*1e3)},_exactEdgeLengthRads:function(A,e){var t,r,o=0,s=0,a=0,f=0,h=0,g=0;if(r=C,C=C+176|0,WA(A|=0,e|=0,t=r),(0|(A=0|n[t>>2]))<=1)return C=r,+(a=0);e=A+-1|0,A=0,o=0,s=+i[t+8>>3],a=+i[t+16>>3];do{h=s,s=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(s-h)),f=a,a=+i[t+8+(A<<4)+8>>3],f=g*g+(f=+c(.5*(a-f)))*(+u(+s)*+u(+h)*f),o+=2*+p(+ +l(+f),+ +l(+(1-f)))}while((0|A)<(0|e));return C=r,+o},_experimentalH3ToLocalIj:function(A,e,t,r,n){var i,o;return n|=0,o=C,C=C+16|0,(A=0|$A(A|=0,e|=0,t|=0,r|=0,i=o))||(hA(i,n),A=0),C=o,0|A},_experimentalLocalIjToH3:function(A,e,t,r){var n,i;return A|=0,e|=0,r|=0,n=C,C=C+16|0,gA(t|=0,i=n),r=0|Ae(A,e,i,r),C=n,0|r},_free:be,_geoToH3:zA,_getDestinationH3IndexFromUnidirectionalEdge:function(A,e){A|=0;var t,r,i=0;return t=C,C=C+16|0,i=t,!0&268435456==(2013265920&(e|=0))?(r=0|ke(0|A,0|e,56),E(),n[i>>2]=0,i=0|S(A,-2130706433&e|134217728,7&r,i),e=0|E(),y(0|e),C=t,0|i):(i=0,y(0|(e=0)),C=t,0|i)},_getH3IndexesFromUnidirectionalEdge:function(A,e,t){A|=0;var r,i,o,s,a=0;o=C,C=C+16|0,r=o,s=!0&268435456==(2013265920&(e|=0)),i=-2130706433&e|134217728,n[(a=t|=0)>>2]=s?A:0,n[a+4>>2]=s?i:0,s?(e=0|ke(0|A,0|e,56),E(),n[r>>2]=0,A=0|S(A,i,7&e,r),e=0|E()):(A=0,e=0),n[(a=t+8|0)>>2]=A,n[a+4>>2]=e,C=o},_getH3UnidirectionalEdge:function(A,e,t,r){var i,o,s=0,a=0,l=0,f=0,u=0;if(o=C,C=C+16|0,i=o,!(0|jA(A|=0,e|=0,t|=0,r|=0)))return f=0,y(0|(l=0)),C=o,0|f;for(l=-2130706433&e,s=(s=!(0|SA(A,e)))?1:2;n[i>>2]=0,a=s+1|0,!((0|(u=0|S(A,e,s,i)))==(0|t)&(0|E())==(0|r));){if(!(a>>>0<7)){s=0,A=0,f=6;break}s=a}return 6==(0|f)?(y(0|s),C=o,0|A):(u=0|Me(0|s,0,56),f=0|l|E()|268435456,u|=A,y(0|f),C=o,0|u)},_getH3UnidirectionalEdgeBoundary:WA,_getH3UnidirectionalEdgesFromHexagon:function(A,e,t){t|=0;var r,i=0;r=!(0|SA(A|=0,e|=0)),e&=-2130706433,n[(i=t)>>2]=r?A:0,n[i+4>>2]=r?285212672|e:0,n[(i=t+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=t+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=t+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=t+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(t=t+40|0)>>2]=A,n[t+4>>2]=369098752|e},_getOriginH3IndexFromUnidirectionalEdge:function(A,e){var t;return A|=0,y(0|((t=!0&268435456==(2013265920&(e|=0)))?-2130706433&e|134217728:0)),0|(t?A:0)},_getPentagonIndexes:XA,_getRes0Indexes:function(A){A|=0;var e=0,t=0,r=0;e=0;do{Me(0|e,0,45),r=134225919|E(),n[(t=A+(e<<3)|0)>>2]=-1,n[t+4>>2]=r,e=e+1|0}while(122!=(0|e))},_h3Distance:function(A,e,t,r){var n,i,o;return t|=0,r|=0,o=C,C=C+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,n=o+12|0)||0|$A(A,e,t,r,i)?-1:0|cA(n,i),C=o,0|A},_h3GetBaseCell:CA,_h3GetFaces:function A(e,t,r){r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0;i=C,C=C+128|0,c=i+112|0,a=i+96|0,h=i,s=0|ke(0|(e|=0),0|(t|=0),52),E(),f=15&s,n[c>>2]=f,l=0|ke(0|e,0|t,45),E(),l&=127;A:do{if(0|G(l)){if(0|f)for(o=1;;){if(!(!((u=0|Me(7,0,3*(15-o|0)|0))&e|0)&!((0|E())&t))){s=0;break A}if(!(o>>>0<f>>>0))break;o=o+1|0}if(!(1&s))return u=0|Me(f+1|0,0,52),h=E()|-15728641&t,A((u|e)&~(c=0|Me(7,0,3*(14-f|0)|0)),h&~E(),r),void(C=i);s=1}else s=0}while(0);HA(e,t,a),s?(vA(a,c,h),u=5):(MA(a,c,h),u=6);A:do{if(0|G(l))if(f)for(o=1;;){if(!(!((l=0|Me(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|r,-1,0|o),s){s=0;do{for(EA(a=h+(s<<4)|0,0|n[c>>2]),a=0|n[a>>2],o=0;!(-1==(0|(f=0|n[(l=r+(o<<2)|0)>>2]))|(0|f)==(0|a));)o=o+1|0;n[l>>2]=a,s=s+1|0}while((0|s)!=(0|u))}else{s=0;do{for(yA(a=h+(s<<4)|0,0|n[c>>2],0,1),a=0|n[a>>2],o=0;!(-1==(0|(f=0|n[(l=r+(o<<2)|0)>>2]))|(0|f)==(0|a));)o=o+1|0;n[l>>2]=a,s=s+1|0}while((0|s)!=(0|u))}C=i},_h3GetResolution:function(A,e){return e=0|ke(0|(A|=0),0|(e|=0),52),E(),15&e},_h3IndexesAreNeighbors:jA,_h3IsPentagon:SA,_h3IsResClassIII:function(A,e){return e=0|ke(0|(A|=0),0|(e|=0),52),E(),1&e},_h3IsValid:IA,_h3Line:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,s=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,E=0,k=0;if(o=C,C=C+48|0,l=o+12|0,E=o,!(0|$A(A|=0,e|=0,A,e,s=o+24|0))&&!(0|$A(A,e,t,r,l))){if((0|(y=0|cA(s,l)))<0)return C=o,0|(E=y);for(n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,$A(A,e,A,e,s),$A(A,e,t,r,l),dA(s),dA(l),y?(w=+(0|y),v=s,t=h=0|n[s>>2],r=g=0|n[(m=s+4|0)>>2],s=d=0|n[(B=s+8|0)>>2],p=+((0|n[l>>2])-h|0)/w,b=+((0|n[l+4>>2])-g|0)/w,w=+((0|n[l+8>>2])-d|0)/w):(m=r=s+4|0,B=d=s+8|0,v=s,t=0|n[s>>2],r=0|n[r>>2],s=0|n[d>>2],p=0,b=0,w=0),n[E>>2]=t,n[(d=E+4|0)>>2]=r,n[(g=E+8|0)>>2]=s,h=0;;){k=p*(u=+(0|h))+ +(0|t),f=b*u+ +(0|n[m>>2]),u=w*u+ +(0|n[B>>2]),r=~~+_e(+k),l=~~+_e(+f),t=~~+_e(+u),k=+a(+(+(0|r)-k)),f=+a(+(+(0|l)-f)),u=+a(+(+(0|t)-u));do{if(!(k>f&k>u)){if(c=0-r|0,f>u){s=c-t|0;break}s=l,t=c-l|0;break}r=0-(l+t)|0,s=l}while(0);if(n[E>>2]=r,n[d>>2]=s,n[g>>2]=t,wA(E),Ae(A,e,E,i+(h<<3)|0),(0|h)==(0|y))break;h=h+1|0,t=0|n[v>>2]}return C=o,0|(E=0)}return C=o,0|(E=-1)},_h3LineSize:function(A,e,t,r){var n,i,o;return t|=0,r|=0,o=C,C=C+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,n=o+12|0)||0|$A(A,e,t,r,i)?-1:0|cA(n,i),C=o,(A>>>31^1)+A|0},_h3SetToLinkedGeo:function(A,e,t){t|=0;var r,i,o,s=0;if(o=C,C=C+32|0,r=o,function(A,e,t){A|=0,t|=0;var r,i,o=0,s=0,a=0,l=0,f=0;if(i=C,C=C+176|0,r=i,(0|(e|=0))<1)return le(t,0,0),void(C=i);l=0|ke(0|n[(l=A)>>2],0|n[l+4>>2],52),E(),le(t,(0|e)>6?e:6,15&l),l=0;do{if(VA(0|n[(o=A+(l<<3)|0)>>2],0|n[o+4>>2],r),(0|(o=0|n[r>>2]))>0){f=0;do{a=r+8+(f<<4)|0,(s=0|ge(t,o=r+8+((0|(f=f+1|0))%(0|o)<<4)|0,a))?ce(t,s):he(t,a,o),o=0|n[r>>2]}while((0|f)<(0|o))}l=l+1|0}while((0|l)!=(0|e));C=i}(A|=0,e|=0,i=o+16|0),n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,!(A=0|ue(i)))return KA(t),fe(i),void(C=o);do{e=0|ZA(t);do{JA(e,A),s=A+16|0,n[r>>2]=n[s>>2],n[r+4>>2]=n[s+4>>2],n[r+8>>2]=n[s+8>>2],n[r+12>>2]=n[s+12>>2],ce(i,A),A=0|de(i,r)}while(0|A);A=0|ue(i)}while(0|A);KA(t),fe(i),C=o},_h3ToCenterChild:function(A,e,t){t|=0;var r=0,n=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(r&=15))<=(0|t)){if((0|r)!=(0|t)&&(A|=n=0|Me(0|t,0,52),e=E()|-15728641&e,(0|r)<(0|t)))do{n=0|Me(7,0,3*(14-r|0)|0),r=r+1|0,A&=~n,e&=~E()}while((0|r)<(0|t))}else e=0,A=0;return y(0|e),0|A},_h3ToChildren:FA,_h3ToGeo:NA,_h3ToGeoBoundary:VA,_h3ToParent:PA,_h3UnidirectionalEdgeIsValid:function(A,e){var t=0;if(!(!0&268435456==(2013265920&(e|=0))))return 0|(t=0);switch(t=0|ke(0|(A|=0),0|e,56),E(),7&t){case 0:case 7:return 0|(t=0)}return!0&16777216==(117440512&e)&!!(0|SA(A,t=-2130706433&e|134217728))?0|(t=0):0|(t=0|IA(A,t))},_hexAreaKm2:function(A){return+ +i[20496+((A|=0)<<3)>>3]},_hexAreaM2:function(A){return+ +i[20624+((A|=0)<<3)>>3]},_hexRing:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0;if(i=C,C=C+16|0,c=i,!(t|=0))return n[(c=r)>>2]=A,n[c+4>>2]=e,C=i,0|(c=0);n[c>>2]=0;A:do{if(0|SA(A,e))A=1;else{if(s=(0|t)>0){o=0,u=A;do{if(!(0|(u=0|S(u,e,4,c)))&!(0|(e=0|E()))){A=2;break A}if(o=o+1|0,0|SA(u,e)){A=1;break A}}while((0|o)<(0|t));if(n[(f=r)>>2]=u,n[f+4>>2]=e,f=t+-1|0,s){s=0,a=1,o=u,A=e;do{if(!(0|(o=0|S(o,A,2,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(a<<3)|0)>>2]=o,n[l+4>>2]=A,a=a+1|0,0|SA(o,A)){A=1;break A}s=s+1|0}while((0|s)<(0|t));l=0,s=a;do{if(!(0|(o=0|S(o,A,3,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(a=r+(s<<3)|0)>>2]=o,n[a+4>>2]=A,s=s+1|0,0|SA(o,A)){A=1;break A}l=l+1|0}while((0|l)<(0|t));a=0;do{if(!(0|(o=0|S(o,A,1,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(s<<3)|0)>>2]=o,n[l+4>>2]=A,s=s+1|0,0|SA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|t));a=0;do{if(!(0|(o=0|S(o,A,5,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(s<<3)|0)>>2]=o,n[l+4>>2]=A,s=s+1|0,0|SA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|t));a=0;do{if(!(0|(o=0|S(o,A,4,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(s<<3)|0)>>2]=o,n[l+4>>2]=A,s=s+1|0,0|SA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|t));for(a=0;;){if(!(0|(o=0|S(o,A,6,c)))&!(0|(A=0|E()))){A=2;break A}if((0|a)!=(0|f)){if(n[(l=r+(s<<3)|0)>>2]=o,n[l+4>>2]=A,0|SA(o,A)){A=1;break A}s=s+1|0}if((0|(a=a+1|0))>=(0|t)){a=u,s=e;break}}}else a=u,o=u,s=e,A=e}else n[(a=r)>>2]=A,n[a+4>>2]=e,a=A,o=A,s=e,A=e;A=1&((0|a)!=(0|o)|(0|s)!=(0|A))}}while(0);return C=i,0|(c=A)},_i64Subtract:Be,_kRing:I,_kRingDistances:function(A,e,t,r,n){var i;if(0|P(A|=0,e|=0,t|=0,r|=0,n|=0)){if(De(0|r,0,(i=1+(0|m(3*t|0,t+1|0))|0)<<3),0|n)return De(0|n,0,i<<2),void F(A,e,t,r,n,i,0);(n=0|me(i,4))&&(F(A,e,t,r,n,i,0),be(n))}},_llvm_minnum_f64:Qe,_llvm_round_f64:_e,_malloc:pe,_maxFaceCount:function(A,e){var t=0,r=0;if(r=0|ke(0|(A|=0),0|(e|=0),45),E(),!(0|G(127&r)))return 0|(r=2);if(r=0|ke(0|A,0|e,52),E(),!(r&=15))return 0|(r=5);for(t=1;;){if(!(!((0|Me(7,0,3*(15-t|0)|0))&A|0)&!((0|E())&e))){t=2,A=6;break}if(!(t>>>0<r>>>0)){t=5,A=6;break}t=t+1|0}return 6==(0|A)?0|t:0},_maxH3ToChildrenSize:function(A,e,t){return t|=0,A=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(A&=15))<=(0|t)?0|(t=0|ee(7,t-A|0)):0|(t=0)},_maxKringSize:function(A){return 1+(0|m(3*(A|=0)|0,A+1|0))|0},_maxPolyfillSize:function(A,e){e|=0;var t,r=0,i=0,o=0,s=0,a=0;if(t=C,C=C+48|0,o=t+8|0,i=t,s=0|n[(a=A|=0)+4>>2],n[(r=i)>>2]=n[a>>2],n[r+4>>2]=s,re(i,o),o=0|V(o,e),e=0|n[i>>2],(0|(i=0|n[A+8>>2]))<=0)return C=t,0|(a=(a=(s=(0|o)<(0|(a=e)))?a:o)+12|0);r=0|n[A+12>>2],A=0;do{e=(0|n[r+(A<<3)>>2])+e|0,A=A+1|0}while((0|A)<(0|i));return C=t,0|(a=(a=(a=(0|o)<(0|e))?e:o)+12|0)},_maxUncompactSize:function(A,e,t){A|=0,t|=0;var r=0,i=0,o=0,s=0;if((0|(e|=0))<=0)return 0|(t=0);if((0|t)>=16){for(r=0;;){if(!(!(0|n[(s=A+(r<<3)|0)>>2])&!(0|n[s+4>>2]))){r=-1,i=13;break}if((0|(r=r+1|0))>=(0|e)){r=0,i=13;break}}if(13==(0|i))return 0|r}r=0,s=0;A:for(;;){o=0|n[(i=A+(s<<3)|0)>>2],i=0|n[i+4>>2];do{if(!(!(0|o)&!(0|i))){if(i=0|ke(0|o,0|i,52),E(),(0|(i&=15))>(0|t)){r=-1,i=13;break A}if((0|i)==(0|t)){r=r+1|0;break}r=(0|ee(7,t-i|0))+r|0;break}}while(0);if((0|(s=s+1|0))>=(0|e)){i=13;break}}return 13==(0|i)?0|r:0},_memcpy:xe,_memset:De,_numHexagons:function(A){var e;return A=0|n[(e=21008+((A|=0)<<3)|0)>>2],y(0|n[e+4>>2]),0|A},_pentagonIndexCount:function(){return 12},_pointDistKm:xA,_pointDistM:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+c(.5*(r-t)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+u(+r)*+u(+t)*o),2*+p(+ +l(+o),+ +l(+(1-o)))*6371.007180918475*1e3},_pointDistRads:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+c(.5*(r-t)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+u(+r)*+u(+t)*o),2*+p(+ +l(+o),+ +l(+(1-o)))},_polyfill:function(A,e,t){var r,i=0,o=0,s=0,a=0,l=0;if(r=C,C=C+48|0,i=r+8|0,o=r,0|function(A,e,t){A|=0,e|=0,t|=0;var r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,m=0,B=0,v=0,y=0,M=0,Q=0,_=0,x=0,D=0,I=0,S=0,G=0,L=0,U=0,R=0;R=C,C=C+112|0,S=R+80|0,l=R+72|0,G=R,L=R+56|0,f=A+8|0,U=0|pe(32+(n[f>>2]<<5)|0),U||k(22848,22448,800,22456);if(ne(A,U),o=A,r=0|n[o+4>>2],a=l,n[a>>2]=n[o>>2],n[a+4>>2]=r,re(l,S),a=0|V(S,e),r=0|n[l>>2],o=0|n[f>>2],(0|o)>0){s=0|n[A+12>>2],i=0;do{r=(0|n[s+(i<<3)>>2])+r|0,i=i+1|0}while((0|i)!=(0|o))}if(a=(0|a)<(0|r)?r:a,I=a+12|0,i=0|me(I,8),u=0|me(I,8),n[S>>2]=0,x=A,D=0|n[x+4>>2],r=l,n[r>>2]=n[x>>2],n[r+4>>2]=D,r=0|T(l,I,e,S,i,u),0|r)return be(i),be(u),be(U),C=R,0|(U=r);A:do{if((0|n[f>>2])>0){for(o=A+12|0,r=0;s=0|T((0|n[o>>2])+(r<<3)|0,I,e,S,i,u),r=r+1|0,!(0|s);)if((0|r)>=(0|n[f>>2]))break A;return be(i),be(u),be(U),C=R,0|(U=s)}}while(0);(0|a)>-12&&De(0|u,0,((0|I)>1?I:1)<<3);A:do{if((0|n[S>>2])>0){D=((0|I)<0)<<31>>31,v=i,y=u,M=i,Q=i,_=u,x=i,r=i,p=i,b=u,m=u,B=u,i=u;e:for(;;){for(w=0|n[S>>2],g=0,d=0,o=0;;){a=(s=G)+56|0;do{n[s>>2]=0,s=s+4|0}while((0|s)<(0|a));if(0|P(l=0|n[(e=v+(g<<3)|0)>>2],e=0|n[e+4>>2],1,G,0)){a=(s=G)+56|0;do{n[s>>2]=0,s=s+4|0}while((0|s)<(0|a));0|(s=0|me(7,4))&&(F(l,e,1,G,s,7,0),be(s))}h=0;do{u=0|n[(c=G+(h<<3)|0)>>2],c=0|n[c+4>>2];t:do{if(!(!(0|u)&!(0|c))){if(l=0|Ee(0|u,0|c,0|I,0|D),E(),!(!(0|(e=0|n[(a=s=t+(l<<3)|0)>>2]))&!(0|(a=0|n[a+4>>2]))))for(f=0;;){if((0|f)>(0|I))break e;if((0|e)==(0|u)&(0|a)==(0|c))break t;if(!(0|(e=0|n[(a=s=t+((l=(l+1|0)%(0|I)|0)<<3)|0)>>2]))&!(0|(a=0|n[a+4>>2])))break;f=f+1|0}!(0|u)&!(0|c)||(NA(u,c,L),0|ie(A,U,L)&&(n[(f=s)>>2]=u,n[f+4>>2]=c,n[(f=y+(o<<3)|0)>>2]=u,n[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|w))break;g=g+1|0}if((0|w)>0&&De(0|M,0,w<<3),n[S>>2]=o,!((0|o)>0))break A;u=i,c=B,h=x,g=m,d=b,w=y,i=p,B=r,m=Q,b=M,p=u,r=c,x=_,_=h,Q=g,M=d,y=v,v=w}return be(Q),be(_),be(U),C=R,0|(U=-1)}r=u}while(0);return be(U),be(i),be(r),U=0,C=R,0|U}(A|=0,e|=0,t|=0)){if(s=0|n[(l=A)+4>>2],n[(a=o)>>2]=n[l>>2],n[a+4>>2]=s,re(o,i),a=0|V(i,e),e=0|n[o>>2],(0|(s=0|n[A+8>>2]))>0){o=0|n[A+12>>2],i=0;do{e=(0|n[o+(i<<3)>>2])+e|0,i=i+1|0}while((0|i)!=(0|s))}(0|(e=(0|a)<(0|e)?e:a))<=-12||De(0|t,0,8+(((0|(l=e+11|0))>0?l:0)<<3)|0),C=r}else C=r},_res0IndexCount:function(){return 122},_round:Ce,_sbrk:Ie,_sizeOfCoordIJ:function(){return 8},_sizeOfGeoBoundary:function(){return 168},_sizeOfGeoCoord:function(){return 16},_sizeOfGeoPolygon:function(){return 16},_sizeOfGeofence:function(){return 8},_sizeOfH3Index:function(){return 8},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompact:function(A,e,t,r,i){A|=0,t|=0,r|=0,i|=0;var o=0,s=0,a=0,l=0,f=0,u=0;if((0|(e|=0))<=0)return 0|(i=0);if((0|i)>=16){for(o=0;;){if(!(!(0|n[(u=A+(o<<3)|0)>>2])&!(0|n[u+4>>2]))){o=14;break}if((0|(o=o+1|0))>=(0|e)){s=0,o=16;break}}if(14==(0|o))return 0|((0|r)>0?-2:-1);if(16==(0|o))return 0|s}o=0,u=0;A:for(;;){s=0|n[(a=f=A+(u<<3)|0)>>2],a=0|n[a+4>>2];do{if(!(!(0|s)&!(0|a))){if((0|o)>=(0|r)){s=-1,o=16;break A}if(l=0|ke(0|s,0|a,52),E(),(0|(l&=15))>(0|i)){s=-2,o=16;break A}if((0|l)==(0|i)){n[(f=t+(o<<3)|0)>>2]=s,n[f+4>>2]=a,o=o+1|0;break}if((0|(s=(0|ee(7,i-l|0))+o|0))>(0|r)){s=-1,o=16;break A}FA(0|n[f>>2],0|n[f+4>>2],i,t+(o<<3)|0),o=s}}while(0);if((0|(u=u+1|0))>=(0|e)){s=0,o=16;break}}return 16==(0|o)?0|s: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){p=A},c:b,d:function(A,e,t,r){wA("Assertion failed: "+I(A)+", at: "+[e?I(e):"unknown filename",t,r?I(r):"unknown function"])},e:function(A){return t.___errno_location&&(_[t.___errno_location()>>2]=A),A},f:$,g:function(A,e,t){M.set(M.subarray(e,e+t),A)},h:function(A){var e=$(),t=16777216,r=2130706432;if(A>r)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?P(2*n,t):Math.min(P((3*n+2147483648)/4,t),r);return!!function(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(k),nA(e),F(e),1}catch(A){}}(n)},i:function(A){wA("OOM")},p:24016},E);t.___uremdi3=rA.___uremdi3,t._bitshift64Lshr=rA._bitshift64Lshr,t._bitshift64Shl=rA._bitshift64Shl,t._calloc=rA._calloc,t._cellAreaKm2=rA._cellAreaKm2,t._cellAreaM2=rA._cellAreaM2,t._cellAreaRads2=rA._cellAreaRads2,t._compact=rA._compact,t._destroyLinkedPolygon=rA._destroyLinkedPolygon,t._edgeLengthKm=rA._edgeLengthKm,t._edgeLengthM=rA._edgeLengthM;var nA=t._emscripten_replace_memory=rA._emscripten_replace_memory;t._exactEdgeLengthKm=rA._exactEdgeLengthKm,t._exactEdgeLengthM=rA._exactEdgeLengthM,t._exactEdgeLengthRads=rA._exactEdgeLengthRads,t._experimentalH3ToLocalIj=rA._experimentalH3ToLocalIj,t._experimentalLocalIjToH3=rA._experimentalLocalIjToH3,t._free=rA._free,t._geoToH3=rA._geoToH3,t._getDestinationH3IndexFromUnidirectionalEdge=rA._getDestinationH3IndexFromUnidirectionalEdge,t._getH3IndexesFromUnidirectionalEdge=rA._getH3IndexesFromUnidirectionalEdge,t._getH3UnidirectionalEdge=rA._getH3UnidirectionalEdge,t._getH3UnidirectionalEdgeBoundary=rA._getH3UnidirectionalEdgeBoundary,t._getH3UnidirectionalEdgesFromHexagon=rA._getH3UnidirectionalEdgesFromHexagon,t._getOriginH3IndexFromUnidirectionalEdge=rA._getOriginH3IndexFromUnidirectionalEdge,t._getPentagonIndexes=rA._getPentagonIndexes,t._getRes0Indexes=rA._getRes0Indexes,t._h3Distance=rA._h3Distance,t._h3GetBaseCell=rA._h3GetBaseCell,t._h3GetFaces=rA._h3GetFaces,t._h3GetResolution=rA._h3GetResolution,t._h3IndexesAreNeighbors=rA._h3IndexesAreNeighbors,t._h3IsPentagon=rA._h3IsPentagon,t._h3IsResClassIII=rA._h3IsResClassIII,t._h3IsValid=rA._h3IsValid,t._h3Line=rA._h3Line,t._h3LineSize=rA._h3LineSize,t._h3SetToLinkedGeo=rA._h3SetToLinkedGeo,t._h3ToCenterChild=rA._h3ToCenterChild,t._h3ToChildren=rA._h3ToChildren,t._h3ToGeo=rA._h3ToGeo,t._h3ToGeoBoundary=rA._h3ToGeoBoundary,t._h3ToParent=rA._h3ToParent,t._h3UnidirectionalEdgeIsValid=rA._h3UnidirectionalEdgeIsValid,t._hexAreaKm2=rA._hexAreaKm2,t._hexAreaM2=rA._hexAreaM2,t._hexRing=rA._hexRing,t._i64Subtract=rA._i64Subtract,t._kRing=rA._kRing,t._kRingDistances=rA._kRingDistances,t._llvm_minnum_f64=rA._llvm_minnum_f64,t._llvm_round_f64=rA._llvm_round_f64,t._malloc=rA._malloc,t._maxFaceCount=rA._maxFaceCount,t._maxH3ToChildrenSize=rA._maxH3ToChildrenSize,t._maxKringSize=rA._maxKringSize,t._maxPolyfillSize=rA._maxPolyfillSize,t._maxUncompactSize=rA._maxUncompactSize,t._memcpy=rA._memcpy,t._memset=rA._memset,t._numHexagons=rA._numHexagons,t._pentagonIndexCount=rA._pentagonIndexCount,t._pointDistKm=rA._pointDistKm,t._pointDistM=rA._pointDistM,t._pointDistRads=rA._pointDistRads,t._polyfill=rA._polyfill,t._res0IndexCount=rA._res0IndexCount,t._round=rA._round,t._sbrk=rA._sbrk,t._sizeOfCoordIJ=rA._sizeOfCoordIJ,t._sizeOfGeoBoundary=rA._sizeOfGeoBoundary,t._sizeOfGeoCoord=rA._sizeOfGeoCoord,t._sizeOfGeoPolygon=rA._sizeOfGeoPolygon,t._sizeOfGeofence=rA._sizeOfGeofence,t._sizeOfH3Index=rA._sizeOfH3Index,t._sizeOfLinkedGeoPolygon=rA._sizeOfLinkedGeoPolygon,t._uncompact=rA._uncompact,t.establishStackSpace=rA.establishStackSpace;var iA,oA,sA=t.stackAlloc=rA.stackAlloc,aA=t.stackRestore=rA.stackRestore,lA=t.stackSave=rA.stackSave;if(t.asm=rA,t.cwrap=function(A,e,t,r){var n=(t=t||[]).every(function(A){return"number"===A});return"string"!==e&&n&&!r?v(A):function(){return y(A,e,t,arguments)}},t.setValue=function(A,e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":k[A|0]=e;break;case"i16":Q[A>>1]=e;break;case"i32":_[A>>2]=e;break;case"i64":Z=[e>>>0,(W=e,+O(W)>=1?W>0?(0|V(+N(W/4294967296),4294967295))>>>0:~~+H((W-+(~~W>>>0))/4294967296)>>>0:0)],_[A>>2]=Z[0],_[A+4>>2]=Z[1];break;case"float":x[A>>2]=e;break;case"double":D[A>>3]=e;break;default:wA("invalid type for setValue: "+t)}},t.getValue=function(A,e,t){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return k[A|0];case"i16":return Q[A>>1];case"i32":case"i64":return _[A>>2];case"float":return x[A>>2];case"double":return D[A>>3];default:wA("invalid type for getValue: "+e)}return null},t.getTempRet0=b,J)if(q(J)||(iA=J,J=t.locateFile?t.locateFile(iA,g):g+iA),o||a){var fA=u(J);M.set(fA,8)}else{X++,t.monitorRunDependencies&&t.monitorRunDependencies(X);var uA=function(A){A.byteLength&&(A=new Uint8Array(A)),M.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(X--,t.monitorRunDependencies&&t.monitorRunDependencies(X),0==X&&j){var A=j;j=null,A()}}()},cA=function(){f(J,uA,function(){throw"could not load memory initializer "+J})},hA=tA(J);if(hA)uA(hA.buffer);else if(t.memoryInitializerRequest){var gA=function(){var A=t.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var r=tA(t.memoryInitializerRequestURL);if(!r)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+J),void cA();e=r.buffer}uA(e)};t.memoryInitializerRequest.response?setTimeout(gA,0):t.memoryInitializerRequest.addEventListener("load",gA)}else cA()}function dA(A){function e(){oA||(oA=!0,m||(T(L),T(U),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(R)}()))}X>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)Y(t.preRun.shift());T(G)}(),X>0||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e()))}function wA(A){throw t.onAbort&&t.onAbort(A),d(A+=""),w(A),m=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(j=function A(){oA||dA(),oA||(j=A)},t.run=dA,t.abort=wA,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return dA(),A}("object"==typeof iA?iA:{}),oA="number",sA={};[["sizeOfH3Index",oA],["sizeOfGeoCoord",oA],["sizeOfGeoBoundary",oA],["sizeOfGeoPolygon",oA],["sizeOfGeofence",oA],["sizeOfLinkedGeoPolygon",oA],["sizeOfCoordIJ",oA],["h3IsValid",oA,[oA,oA]],["geoToH3",oA,[oA,oA,oA]],["h3ToGeo",null,[oA,oA,oA]],["h3ToGeoBoundary",null,[oA,oA,oA]],["maxKringSize",oA,[oA]],["kRing",null,[oA,oA,oA,oA]],["kRingDistances",null,[oA,oA,oA,oA,oA]],["hexRing",null,[oA,oA,oA,oA]],["maxPolyfillSize",oA,[oA,oA]],["polyfill",null,[oA,oA,oA]],["h3SetToLinkedGeo",null,[oA,oA,oA]],["destroyLinkedPolygon",null,[oA]],["compact",oA,[oA,oA,oA]],["uncompact",oA,[oA,oA,oA,oA,oA]],["maxUncompactSize",oA,[oA,oA,oA]],["h3IsPentagon",oA,[oA,oA]],["h3IsResClassIII",oA,[oA,oA]],["h3GetBaseCell",oA,[oA,oA]],["h3GetResolution",oA,[oA,oA]],["maxFaceCount",oA,[oA,oA]],["h3GetFaces",null,[oA,oA,oA]],["h3ToParent",oA,[oA,oA,oA]],["h3ToChildren",null,[oA,oA,oA,oA]],["h3ToCenterChild",oA,[oA,oA,oA]],["maxH3ToChildrenSize",oA,[oA,oA,oA]],["h3IndexesAreNeighbors",oA,[oA,oA,oA,oA]],["getH3UnidirectionalEdge",oA,[oA,oA,oA,oA]],["getOriginH3IndexFromUnidirectionalEdge",oA,[oA,oA]],["getDestinationH3IndexFromUnidirectionalEdge",oA,[oA,oA]],["h3UnidirectionalEdgeIsValid",oA,[oA,oA]],["getH3IndexesFromUnidirectionalEdge",null,[oA,oA,oA]],["getH3UnidirectionalEdgesFromHexagon",null,[oA,oA,oA]],["getH3UnidirectionalEdgeBoundary",null,[oA,oA,oA]],["h3Distance",oA,[oA,oA,oA,oA]],["h3Line",oA,[oA,oA,oA,oA,oA]],["h3LineSize",oA,[oA,oA,oA,oA]],["experimentalH3ToLocalIj",oA,[oA,oA,oA,oA,oA]],["experimentalLocalIjToH3",oA,[oA,oA,oA,oA]],["hexAreaM2",oA,[oA]],["hexAreaKm2",oA,[oA]],["edgeLengthM",oA,[oA]],["edgeLengthKm",oA,[oA]],["pointDistM",oA,[oA,oA]],["pointDistKm",oA,[oA,oA]],["pointDistRads",oA,[oA,oA]],["cellAreaM2",oA,[oA,oA]],["cellAreaKm2",oA,[oA,oA]],["cellAreaRads2",oA,[oA,oA]],["exactEdgeLengthM",oA,[oA,oA]],["exactEdgeLengthKm",oA,[oA,oA]],["exactEdgeLengthRads",oA,[oA,oA]],["numHexagons",oA,[oA]],["getRes0Indexes",null,[oA]],["res0IndexCount",oA],["getPentagonIndexes",null,[oA,oA]],["pentagonIndexCount",oA]].forEach(function(A){sA[A[0]]=iA.cwrap.apply(iA,A)});var aA=16,lA=sA.sizeOfH3Index(),fA=sA.sizeOfGeoCoord(),uA=sA.sizeOfGeoBoundary(),cA=sA.sizeOfGeoPolygon(),hA=sA.sizeOfGeofence(),gA=sA.sizeOfLinkedGeoPolygon(),dA=sA.sizeOfCoordIJ(),wA={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function pA(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw new Error("Invalid resolution: "+A)}var bA=/[^0-9a-fA-F]/;function mA(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||bA.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),aA);return[parseInt(A.substring(A.length-8),aA),e]}function BA(A){if(A>=0)return A.toString(aA);var e=yA(8,(A&=2147483647).toString(aA));return e=(parseInt(e[0],aA)+8).toString(aA)+e.substring(1)}function vA(A,e){return BA(e)+yA(8,BA(A))}function yA(A,e){for(var t=A-e.length,r="",n=0;n<t;n++)r+="0";return r+=e}function EA(A,e,t){for(var r=A.length,n=iA._calloc(r,fA),i=t?1:0,o=t?0:1,s=0;s<2*r;s+=2)iA.HEAPF64.set([A[s/2][i],A[s/2][o]].map(GA),n/8+s);return iA.HEAPU32.set([r,n],e/4),e}function kA(A){return[A,iA.getTempRet0()]}function MA(A){var e=kA(A),t=e[0],r=e[1];return r?vA(t,r):null}function QA(A,e){void 0===e&&(e=0);var t=iA.getValue(A+4*e*2,"i32"),r=iA.getValue(A+4*(2*e+1),"i32");return r?vA(t,r):null}function _A(A,e,t){iA.HEAPU32.set(mA(A),e/4+2*t)}function xA(A,e){for(var t=[],r=0;r<e;r++){var n=QA(A,r);null!==n&&t.push(n)}return t}function DA(A,e){for(var t=e.length,r=0;r<t;r++)_A(e[r],A,r)}function CA(A,e){var t=iA._calloc(1,fA);return iA.HEAPF64.set([A,e].map(GA),t/8),t}function IA(A){return LA(iA.getValue(A,"double"))}function PA(A){return[IA(A),IA(A+8)]}function FA(A){return[IA(A+8),IA(A)]}function SA(A,e,t){for(var r=iA.getValue(A,"i32"),n=A+8,i=[],o=e?FA:PA,s=0;s<2*r;s+=2)i.push(o(n+8*s));return t&&i.push(i[0]),i}function TA(A){var e=mA(A),t=e[0],r=e[1];return Boolean(sA.h3IsValid(t,r))}function GA(A){return A*Math.PI/180}function LA(A){return 180*A/Math.PI}var UA=Object.freeze({__proto__:null,UNITS:wA,cellArea:function(A,e){var t=mA(A),r=t[0],n=t[1];switch(e){case wA.m2:return sA.cellAreaM2(r,n);case wA.km2:return sA.cellAreaKm2(r,n);case wA.rads2:return sA.cellAreaRads2(r,n);default:throw new Error("Unknown unit: "+e)}},compact:function(A){if(!A||!A.length)return[];var e=A.length,t=iA._calloc(e,lA);DA(t,A);var r=iA._calloc(e,lA);if(0!==sA.compact(t,r,e))throw iA._free(t),iA._free(r),new Error("Failed to compact, malformed input data (duplicate hexagons?)");var n=xA(r,e);return iA._free(t),iA._free(r),n},degsToRads:GA,edgeLength:function(A,e){switch(pA(A),e){case wA.m:return sA.edgeLengthM(A);case wA.km:return sA.edgeLengthKm(A);default:throw new Error("Unknown unit: "+e)}},exactEdgeLength:function(A,e){var t=mA(A),r=t[0],n=t[1];switch(e){case wA.m:return sA.exactEdgeLengthM(r,n);case wA.km:return sA.exactEdgeLengthKm(r,n);case wA.rads:return sA.exactEdgeLengthRads(r,n);default:throw new Error("Unknown unit: "+e)}},experimentalH3ToLocalIj:function(A,e){var t,r=iA._malloc(dA),n=sA.experimentalH3ToLocalIj.apply(sA,mA(A).concat(mA(e),[r])),i=(t=r,{i:iA.getValue(t,"i32"),j:iA.getValue(t+4,"i32")});switch(iA._free(r),n){case 0:return i;case 1:throw new Error("Incompatible origin and index.");case 2:default:throw new Error("Local IJ coordinates undefined for this origin and index pair. The index may be too far from the origin.");case 3:case 4:case 5:throw new Error("Encountered possible pentagon distortion")}},experimentalLocalIjToH3:function(A,e){if(!e||"number"!=typeof e.i||"number"!=typeof e.j)throw new Error("Coordinates must be provided as an {i, j} object");var t,r,n,i,o=iA._malloc(dA),s=iA._malloc(lA);t=o,n=(r=e).i,i=r.j,iA.setValue(t,n,"i32"),iA.setValue(t+4,i,"i32");var a=sA.experimentalLocalIjToH3.apply(sA,mA(A).concat([o],[s])),l=QA(s);if(iA._free(o),iA._free(s),0!==a)throw new Error("Index not defined for this origin and IJ coordinates pair. IJ coordinates may be too far from origin, or a pentagon distortion was encountered.");return l},geoToH3:function(A,e,t){var r=iA._malloc(fA);iA.HEAPF64.set([A,e].map(GA),r/8);var n=MA(sA.geoToH3(r,t));return iA._free(r),n},getDestinationH3IndexFromUnidirectionalEdge:function(A){var e=mA(A),t=e[0],r=e[1];return MA(sA.getDestinationH3IndexFromUnidirectionalEdge(t,r))},getH3IndexesFromUnidirectionalEdge:function(A){var e=mA(A),t=e[0],r=e[1],n=iA._calloc(2,lA);sA.getH3IndexesFromUnidirectionalEdge(t,r,n);var i=xA(n,2);return iA._free(n),i},getH3UnidirectionalEdge:function(A,e){var t=mA(A),r=t[0],n=t[1],i=mA(e),o=i[0],s=i[1];return MA(sA.getH3UnidirectionalEdge(r,n,o,s))},getH3UnidirectionalEdgeBoundary:function(A,e){var t=iA._malloc(uA),r=mA(A),n=r[0],i=r[1];sA.getH3UnidirectionalEdgeBoundary(n,i,t);var o=SA(t,e);return iA._free(t),o},getH3UnidirectionalEdgesFromHexagon:function(A){var e=mA(A),t=e[0],r=e[1],n=iA._calloc(6,lA);sA.getH3UnidirectionalEdgesFromHexagon(t,r,n);var i=xA(n,6);return iA._free(n),i},getOriginH3IndexFromUnidirectionalEdge:function(A){var e=mA(A),t=e[0],r=e[1];return MA(sA.getOriginH3IndexFromUnidirectionalEdge(t,r))},getPentagonIndexes:function(A){pA(A);var e=sA.pentagonIndexCount(),t=iA._malloc(lA*e);sA.getPentagonIndexes(A,t);var r=xA(t,e);return iA._free(t),r},getRes0Indexes:function(){var A=sA.res0IndexCount(),e=iA._malloc(lA*A);sA.getRes0Indexes(e);var t=xA(e,A);return iA._free(e),t},h3Distance:function(A,e){var t=mA(A),r=t[0],n=t[1],i=mA(e),o=i[0],s=i[1];return sA.h3Distance(r,n,o,s)},h3GetBaseCell:function(A){var e=mA(A),t=e[0],r=e[1];return sA.h3GetBaseCell(t,r)},h3GetFaces:function(A){var e=mA(A),t=e[0],r=e[1],n=sA.maxFaceCount(t,r),i=iA._malloc(4*n);sA.h3GetFaces(t,r,i);var o=function(A,e){for(var t=[],r=0;r<e;r++){var n=iA.getValue(A+4*r,"i32");n>=0&&t.push(n)}return t}(i,n);return iA._free(i),o},h3GetResolution:function(A){var e=mA(A),t=e[0],r=e[1];return sA.h3IsValid(t,r)?sA.h3GetResolution(t,r):-1},h3IndexToSplitLong:mA,h3IndexesAreNeighbors:function(A,e){var t=mA(A),r=t[0],n=t[1],i=mA(e),o=i[0],s=i[1];return Boolean(sA.h3IndexesAreNeighbors(r,n,o,s))},h3IsPentagon:function(A){var e=mA(A),t=e[0],r=e[1];return Boolean(sA.h3IsPentagon(t,r))},h3IsResClassIII:function(A){var e=mA(A),t=e[0],r=e[1];return Boolean(sA.h3IsResClassIII(t,r))},h3IsValid:TA,h3Line:function(A,e){var t=mA(A),r=t[0],n=t[1],i=mA(e),o=i[0],s=i[1],a=sA.h3LineSize(r,n,o,s);if(a<0)throw new Error("Line cannot be calculated");var l=iA._calloc(a,lA);sA.h3Line(r,n,o,s,l);var f=xA(l,a);return iA._free(l),f},h3SetToMultiPolygon:function(A,e){if(!A||!A.length)return[];var t=A.length,r=iA._calloc(t,lA);DA(r,A);var n=iA._calloc(gA),i=n;sA.h3SetToLinkedGeo(r,t,n);var o=function(A,e){for(var t,r,n,i,o=[],s=e?FA:PA;A;){for(o.push(t=[]),r=iA.getValue(A,"i8*");r;){for(t.push(n=[]),i=iA.getValue(r,"i8*");i;)n.push(s(i)),i=iA.getValue(i+16,"i8*");e&&n.push(n[0]),r=iA.getValue(r+8,"i8*")}A=iA.getValue(A+8,"i8*")}return o}(n,e);return sA.destroyLinkedPolygon(i),iA._free(i),iA._free(r),o},h3ToCenterChild:function(A,e){var t=mA(A),r=t[0],n=t[1];return MA(sA.h3ToCenterChild(r,n,e))},h3ToChildren:function(A,e){if(!TA(A))return[];var t=mA(A),r=t[0],n=t[1],i=sA.maxH3ToChildrenSize(r,n,e),o=iA._calloc(i,lA);sA.h3ToChildren(r,n,e,o);var s=xA(o,i);return iA._free(o),s},h3ToGeo:function(A){var e=iA._malloc(fA),t=mA(A),r=t[0],n=t[1];sA.h3ToGeo(r,n,e);var i=PA(e);return iA._free(e),i},h3ToGeoBoundary:function(A,e){var t=iA._malloc(uA),r=mA(A),n=r[0],i=r[1];sA.h3ToGeoBoundary(n,i,t);var o=SA(t,e,e);return iA._free(t),o},h3ToParent:function(A,e){var t=mA(A),r=t[0],n=t[1];return MA(sA.h3ToParent(r,n,e))},h3UnidirectionalEdgeIsValid:function(A){var e=mA(A),t=e[0],r=e[1];return Boolean(sA.h3UnidirectionalEdgeIsValid(t,r))},hexArea:function(A,e){switch(pA(A),e){case wA.m2:return sA.hexAreaM2(A);case wA.km2:return sA.hexAreaKm2(A);default:throw new Error("Unknown unit: "+e)}},hexRing:function(A,e){var t=0===e?1:6*e,r=iA._calloc(t,lA);if(0!==sA.hexRing.apply(sA,mA(A).concat([e],[r])))throw iA._free(r),new Error("Failed to get hexRing (encountered a pentagon?)");var n=xA(r,t);return iA._free(r),n},kRing:function(A,e){var t=mA(A),r=t[0],n=t[1],i=sA.maxKringSize(e),o=iA._calloc(i,lA);sA.kRing(r,n,e,o);var s=xA(o,i);return iA._free(o),s},kRingDistances:function(A,e){var t=mA(A),r=t[0],n=t[1],i=sA.maxKringSize(e),o=iA._calloc(i,lA),s=iA._calloc(i,4);sA.kRingDistances(r,n,e,o,s);for(var a=[],l=0;l<e+1;l++)a.push([]);for(var f=0;f<2*i;f+=2){var u=iA.getValue(o+4*f,"i32"),c=iA.getValue(o+4*(f+1),"i32"),h=iA.getValue(s+f/2*4,"i32");0===u&&0===c||a[h].push(vA(u,c))}return iA._free(o),iA._free(s),a},numHexagons:function(A){pA(A);var e=kA(sA.numHexagons(A)),t=e[0],r=e[1];return r?r*Math.pow(2,32)+t:t},pointDist:function(A,e,t){var r,n=CA(A[0],A[1]),i=CA(e[0],e[1]);switch(t){case wA.m:r=sA.pointDistM(n,i);break;case wA.km:r=sA.pointDistKm(n,i);break;case wA.rads:r=sA.pointDistRads(n,i);break;default:r=null}if(iA._free(n),iA._free(i),null===r)throw new Error("Unknown unit: "+t);return r},polyfill:function(A,e,t){if(pA(e),t=Boolean(t),0===A.length||0===A[0].length)return[];"number"==typeof A[0][0]&&(A=[A]);var r=function(A,e){var t,r=A.length-1,n=iA._calloc(cA),i=0+hA,o=i+4;if(EA(A[0],n+0,e),r>0){t=iA._calloc(r,hA);for(var s=0;s<r;s++)EA(A[s+1],t+hA*s,e)}return iA.setValue(n+i,r,"i32"),iA.setValue(n+o,t,"i32"),n}(A,t),n=sA.maxPolyfillSize(r,e),i=iA._calloc(n,lA);sA.polyfill(r,e,i);var o=xA(i,n);return iA._free(i),function(A){var e=0+hA,t=e+4;iA._free(iA.getValue(A+0+4,"i8*"));var r=iA.getValue(A+e,"i32");if(r>0){for(var n=iA.getValue(A+t,"i32"),i=0;i<r;i++)iA._free(iA.getValue(n+hA*i+4,"i8*"));iA._free(n)}iA._free(A)}(r),o},radsToDegs:LA,splitLongToh3Index:vA,uncompact:function(A,e){if(pA(e),!A||!A.length)return[];var t=A.length,r=iA._calloc(t,lA);DA(r,A);var n=sA.maxUncompactSize(r,t,e),i=iA._calloc(n,lA);if(0!==sA.uncompact(r,t,i,n,e))throw iA._free(r),iA._free(i),new Error("Failed to uncompact (bad resolution?)");var o=xA(i,n);return iA._free(r),iA._free(i),o}}),RA=nA(UA),YA="Feature",zA="FeatureCollection",OA="Polygon",HA="MultiPolygon";function NA(A){for(var e=null,t=0;t<A.length;t++)if(null!==e)for(var r=0;r<A[t].length;r++)e.push(A[t][r]);else e=A[t];return Array.from(new Set(e))}function VA(A,e,t){void 0===t&&(t={});var r=A.type,n=A.geometry,i=n&&n.type;if(r===zA)return function(A,e){var t=A.features;if(!t)throw new Error("No features found");return NA(t.map(function(A){return VA(A,e)}))}(A,e);if(r!==YA)throw new Error("Unhandled type: "+r);if(i!==OA&&i!==HA)throw new Error("Unhandled geometry type: "+i);return NA((i===OA?[n.coordinates]:n.coordinates).map(function(A){var r=RA.polyfill(A,e,!0);if(r.length||!t.ensureOutput)return r;var n=function(A){for(var e=0,t=0,r=0,n=A[0],i=0;i<n.length;i++)e+=n[i][0],t+=n[i][1],r++;return[e/r,t/r]}(A),i=n[0],o=n[1];return[RA.geoToH3(o,i,e)]}))}function XA(A,e){void 0===e&&(e={});var t=[RA.h3ToGeoBoundary(A,!0)];return{type:YA,id:A,properties:e,geometry:{type:OA,coordinates:t}}}var jA={featureToH3Set:VA,h3ToFeature:XA,h3SetToFeature:function(A,e){void 0===e&&(e={});var t=RA.h3SetToMultiPolygon(A,!0),r=t.length>1,n=r?HA:OA,i=r?t:t[0]||[];return{type:YA,properties:e,geometry:{type:n,coordinates:i}}},h3SetToMultiPolygonFeature:function(A,e){void 0===e&&(e={});var t=A.map(function(A){return[RA.h3ToGeoBoundary(A,{geoJson:!0})]});return{type:YA,properties:e,geometry:{type:HA,coordinates:t}}},h3SetToFeatureCollection:function(A,e){for(var t=[],r=0;r<A.length;r++){var n=A[r],i=e?e(n):{};t.push(XA(n,i))}return{type:zA,features:t}}};function WA(A,e,t=0,r=A.length-1,n=JA){for(;r>t;){if(r-t>600){const i=r-t+1,o=e-t+1,s=Math.log(i),a=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*a*(i-a)/i)*(o-i/2<0?-1:1);WA(A,e,Math.max(t,Math.floor(e-o*a/i+l)),Math.min(r,Math.floor(e+(i-o)*a/i+l)),n)}const i=A[e];let o=t,s=r;for(ZA(A,t,e),n(A[r],i)>0&&ZA(A,t,r);o<s;){for(ZA(A,o,s),o++,s--;n(A[o],i)<0;)o++;for(;n(A[s],i)>0;)s--}0===n(A[t],i)?ZA(A,t,s):(s++,ZA(A,s,r)),s<=e&&(t=s+1),e<=s&&(r=s-1)}}function ZA(A,e,t){const r=A[e];A[e]=A[t],A[t]=r}function JA(A,e){return A<e?-1:A>e?1:0}let KA=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(!le(A,e))return t;const r=this.toBBox,n=[];for(;e;){for(let i=0;i<e.children.length;i++){const o=e.children[i],s=e.leaf?r(o):o;le(A,s)&&(e.leaf?t.push(o):ae(A,s)?this._all(o,t):n.push(o))}e=n.pop()}return t}collides(A){let e=this.data;if(!le(A,e))return!1;const t=[];for(;e;){for(let r=0;r<e.children.length;r++){const n=e.children[r],i=e.leaf?this.toBBox(n):n;if(le(A,i)){if(e.leaf||ae(A,i))return!0;t.push(n)}}e=t.pop()}return!1}load(A){if(!A||!A.length)return this;if(A.length<this._minEntries){for(let e=0;e<A.length;e++)this.insert(A[e]);return this}let e=this._build(A.slice(),0,A.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){const A=this.data;this.data=e,e=A}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(A){return A&&this._insert(A,this.data.height-1),this}clear(){return this.data=fe([]),this}remove(A,e){if(!A)return this;let t=this.data;const r=this.toBBox(A),n=[],i=[];let o,s,a;for(;t||n.length;){if(t||(t=n.pop(),s=n[n.length-1],o=i.pop(),a=!0),t.leaf){const r=qA(A,t.children,e);if(-1!==r)return t.children.splice(r,1),n.push(t),this._condense(n),this}a||t.leaf||!ae(t,r)?s?(o++,t=s.children[o],a=!1):t=null:(n.push(t),i.push(o),o=0,s=t,t=t.children[0])}return this}toBBox(A){return A}compareMinX(A,e){return A.minX-e.minX}compareMinY(A,e){return A.minY-e.minY}toJSON(){return this.data}fromJSON(A){return this.data=A,this}_all(A,e){const t=[];for(;A;)A.leaf?e.push(...A.children):t.push(...A.children),A=t.pop();return e}_build(A,e,t,r){const n=t-e+1;let i,o=this._maxEntries;if(n<=o)return i=fe(A.slice(e,t+1)),$A(i,this.toBBox),i;r||(r=Math.ceil(Math.log(n)/Math.log(o)),o=Math.ceil(n/Math.pow(o,r-1))),i=fe([]),i.leaf=!1,i.height=r;const s=Math.ceil(n/o),a=s*Math.ceil(Math.sqrt(o));ue(A,e,t,a,this.compareMinX);for(let n=e;n<=t;n+=a){const e=Math.min(n+a-1,t);ue(A,n,e,s,this.compareMinY);for(let t=n;t<=e;t+=s){const n=Math.min(t+s-1,e);i.children.push(this._build(A,t,n,r-1))}}return $A(i,this.toBBox),i}_chooseSubtree(A,e,t,r){for(;r.push(e),!e.leaf&&r.length-1!==t;){let t,r=1/0,n=1/0;for(let i=0;i<e.children.length;i++){const o=e.children[i],s=ne(o),a=oe(A,o)-s;a<n?(n=a,r=s<r?s:r,t=o):a===n&&s<r&&(r=s,t=o)}e=t||e.children[0]}return e}_insert(A,e,t){const r=t?A:this.toBBox(A),n=[],i=this._chooseSubtree(r,this.data,e,n);for(i.children.push(A),ee(i,r);e>=0&&n[e].children.length>this._maxEntries;)this._split(n,e),e--;this._adjustParentBBoxes(r,n,e)}_split(A,e){const t=A[e],r=t.children.length,n=this._minEntries;this._chooseSplitAxis(t,n,r);const i=this._chooseSplitIndex(t,n,r),o=fe(t.children.splice(i,t.children.length-i));o.height=t.height,o.leaf=t.leaf,$A(t,this.toBBox),$A(o,this.toBBox),e?A[e-1].children.push(o):this._splitRoot(t,o)}_splitRoot(A,e){this.data=fe([A,e]),this.data.height=A.height+1,this.data.leaf=!1,$A(this.data,this.toBBox)}_chooseSplitIndex(A,e,t){let r,n=1/0,i=1/0;for(let o=e;o<=t-e;o++){const e=Ae(A,0,o,this.toBBox),s=Ae(A,o,t,this.toBBox),a=se(e,s),l=ne(e)+ne(s);a<n?(n=a,r=o,i=l<i?l:i):a===n&&l<i&&(i=l,r=o)}return r||t-e}_chooseSplitAxis(A,e,t){const r=A.leaf?this.compareMinX:te,n=A.leaf?this.compareMinY:re;this._allDistMargin(A,e,t,r)<this._allDistMargin(A,e,t,n)&&A.children.sort(r)}_allDistMargin(A,e,t,r){A.children.sort(r);const n=this.toBBox,i=Ae(A,0,e,n),o=Ae(A,t-e,t,n);let s=ie(i)+ie(o);for(let r=e;r<t-e;r++){const e=A.children[r];ee(i,A.leaf?n(e):e),s+=ie(i)}for(let r=t-e-1;r>=e;r--){const e=A.children[r];ee(o,A.leaf?n(e):e),s+=ie(o)}return s}_adjustParentBBoxes(A,e,t){for(let r=t;r>=0;r--)ee(e[r],A)}_condense(A){for(let e,t=A.length-1;t>=0;t--)0===A[t].children.length?t>0?(e=A[t-1].children,e.splice(e.indexOf(A[t]),1)):this.clear():$A(A[t],this.toBBox)}};function qA(A,e,t){if(!t)return e.indexOf(A);for(let r=0;r<e.length;r++)if(t(A,e[r]))return r;return-1}function $A(A,e){Ae(A,0,A.children.length,e,A)}function Ae(A,e,t,r,n){n||(n=fe(null)),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(let i=e;i<t;i++){const e=A.children[i];ee(n,A.leaf?r(e):e)}return n}function ee(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 te(A,e){return A.minX-e.minX}function re(A,e){return A.minY-e.minY}function ne(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function ie(A){return A.maxX-A.minX+(A.maxY-A.minY)}function oe(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 se(A,e){const t=Math.max(A.minX,e.minX),r=Math.max(A.minY,e.minY),n=Math.min(A.maxX,e.maxX),i=Math.min(A.maxY,e.maxY);return Math.max(0,n-t)*Math.max(0,i-r)}function ae(A,e){return A.minX<=e.minX&&A.minY<=e.minY&&e.maxX<=A.maxX&&e.maxY<=A.maxY}function le(A,e){return e.minX<=A.maxX&&e.minY<=A.maxY&&e.maxX>=A.minX&&e.maxY>=A.minY}function fe(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function ue(A,e,t,r,n){const i=[e,t];for(;i.length;){if((t=i.pop())-(e=i.pop())<=r)continue;const o=e+Math.ceil((t-e)/r/2)*r;WA(A,o,e,t,n),i.push(e,o,o,t)}}var ce=6371008.8,he={centimeters:637100880,centimetres:637100880,degrees:360/(2*Math.PI),feet:20902260.511392,inches:39.37*ce,kilometers:6371.0088,kilometres:6371.0088,meters:ce,metres:ce,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:ce/1852,radians:1,yards:6967335.223679999};function ge(A,e,t={}){const r={type:"Feature"};return(0===t.id||t.id)&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.properties=e||{},r.geometry=A,r}function de(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(!Be(A[0])||!Be(A[1]))throw new Error("coordinates must contain numbers");return ge({type:"Point",coordinates:A},e,t)}function we(A,e,t={}){if(A.length<2)throw new Error("coordinates must be an array of two or more positions");return ge({type:"LineString",coordinates:A},e,t)}function pe(A,e={}){const t={type:"FeatureCollection"};return e.id&&(t.id=e.id),e.bbox&&(t.bbox=e.bbox),t.features=A,t}function be(A){return 180*(A%(2*Math.PI))/Math.PI}function me(A){return A%360*Math.PI/180}function Be(A){return!isNaN(A)&&null!==A&&!Array.isArray(A)}function ve(A,e,t){if(null!==A)for(var r,n,i,o,s,a,l,f,u=0,c=0,h=A.type,g="FeatureCollection"===h,d="Feature"===h,w=g?A.features.length:1,p=0;p<w;p++){s=(f=!!(l=g?A.features[p].geometry:d?A.geometry:A)&&"GeometryCollection"===l.type)?l.geometries.length:1;for(var b=0;b<s;b++){var m=0,B=0;if(null!==(o=f?l.geometries[b]:l)){a=o.coordinates;var v=o.type;switch(u=0,v){case null:break;case"Point":if(!1===e(a,c,p,m,B))return!1;c++,m++;break;case"LineString":case"MultiPoint":for(r=0;r<a.length;r++){if(!1===e(a[r],c,p,m,B))return!1;c++,"MultiPoint"===v&&m++}"LineString"===v&&m++;break;case"Polygon":case"MultiLineString":for(r=0;r<a.length;r++){for(n=0;n<a[r].length-u;n++){if(!1===e(a[r][n],c,p,m,B))return!1;c++}"MultiLineString"===v&&m++,"Polygon"===v&&B++}"Polygon"===v&&m++;break;case"MultiPolygon":for(r=0;r<a.length;r++){for(B=0,n=0;n<a[r].length;n++){for(i=0;i<a[r][n].length-u;i++){if(!1===e(a[r][n][i],c,p,m,B))return!1;c++}B++}m++}break;case"GeometryCollection":for(r=0;r<o.geometries.length;r++)if(!1===ve(o.geometries[r],e))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function ye(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 Ee(A,e){var t,r,n,i,o,s,a,l,f,u,c=0,h="FeatureCollection"===A.type,g="Feature"===A.type,d=h?A.features.length:1;for(t=0;t<d;t++){for(s=h?A.features[t].geometry:g?A.geometry:A,l=h?A.features[t].properties:g?A.properties:{},f=h?A.features[t].bbox:g?A.bbox:void 0,u=h?A.features[t].id:g?A.id:void 0,o=(a=!!s&&"GeometryCollection"===s.type)?s.geometries.length:1,n=0;n<o;n++)if(null!==(i=a?s.geometries[n]:s))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===e(i,c,l,f,u))return!1;break;case"GeometryCollection":for(r=0;r<i.geometries.length;r++)if(!1===e(i.geometries[r],c,l,f,u))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===e(null,c,l,f,u))return!1;c++}}function ke(A,e){Ee(A,function(A,t,r,n,i){var o,s=null===A?null:A.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return!1!==e(ge(A,r,{bbox:n,id:i}),t,0)&&void 0}switch(s){case"MultiPoint":o="Point";break;case"MultiLineString":o="LineString";break;case"MultiPolygon":o="Polygon"}for(var a=0;a<A.coordinates.length;a++){var l=A.coordinates[a];if(!1===e(ge({type:o,coordinates:l},r),t,a))return!1}})}function Me(A,e,t){var r=t,n=!1;return function(A,e){ke(A,function(A,t,r){var n=0;if(A.geometry){var i=A.geometry.type;if("Point"!==i&&"MultiPoint"!==i){var o,s=0,a=0,l=0;return!1!==ve(A,function(i,f,u,c,h){if(void 0===o||t>s||c>a||h>l)return o=i,s=t,a=c,l=h,void(n=0);var g=we([o,i],A.properties);if(!1===e(g,t,r,h,n))return!1;n++,o=i})&&void 0}}})}(A,function(A,i,o,s,a){r=!1===n&&void 0===t?A:e(r,A,i,o,s,a),n=!0}),r}function Qe(A,e={}){if(null!=A.bbox&&!0!==e.recompute)return A.bbox;const t=[1/0,1/0,-1/0,-1/0];return ve(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 _e(A,e){var t,r,n,i,o,s,a,l,f,c=0,h=A[0],g=A[1],d=e.length;for(t=0;t<d;t++){r=0;var w=e[t],p=w.length-1;if((l=w[0])[0]!==w[p][0]&&l[1]!==w[p][1])throw new Error("First and last coordinates in a ring must be the same");for(i=l[0]-h,o=l[1]-g;r<p;r++){if(s=(f=w[r+1])[0]-h,a=f[1]-g,0===o&&0===a){if(s<=0&&i>=0||i<=0&&s>=0)return 0}else if(a>=0&&o<=0||a<=0&&o>=0){if(0===(n=u(i,s,o,a,0,0)))return 0;(n>0&&a>0&&o<=0||n<0&&a<=0&&o>0)&&c++}l=f,o=a,i=s}}return c%2!=0}function xe(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 De(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 Ce(A){return"Feature"===A.type?A.geometry:A}function Ie(A,e){return"FeatureCollection"===A.type?"FeatureCollection":"GeometryCollection"===A.type?"GeometryCollection":"Feature"===A.type&&null!==A.geometry?A.geometry.type:A.type}function Pe(A,e,t={}){if(!A)throw new Error("point is required");if(!e)throw new Error("polygon is required");const r=xe(A),n=Ce(e),i=n.type,o=e.bbox;let s=n.coordinates;if(o&&!1===function(A,e){return e[0]<=A[0]&&e[1]<=A[1]&&e[2]>=A[0]&&e[3]>=A[1]}(r,o))return!1;"Polygon"===i&&(s=[s]);let a=!1;for(var l=0;l<s.length;++l){const A=_e(r,s[l]);if(0===A)return!t.ignoreBoundary;A&&(a=!0)}return a}var Fe=Pe;function Se(A,e){return null==A||null==e?NaN:A<e?-1:A>e?1:A>=e?0:NaN}function Te(A,e){return(null==A||!(A>=A))-(null==e||!(e>=e))||(A<e?-1:A>e?1:0)}function Ge(A,e){let t;for(const e of A)null!=e&&(t<e||void 0===t&&e>=e)&&(t=e);return t}function Le(A,e){let t;for(const e of A)null!=e&&(t>e||void 0===t&&e>=e)&&(t=e);return t}function Ue(A,e,t=0,r=1/0,n){if(e=Math.floor(e),t=Math.floor(Math.max(0,t)),r=Math.floor(Math.min(A.length-1,r)),!(t<=e&&e<=r))return A;for(n=void 0===n?Te:function(A=Se){if(A===Se)return Te;if("function"!=typeof A)throw new TypeError("compare is not a function");return(e,t)=>{const r=A(e,t);return r||0===r?r:(0===A(t,t))-(0===A(e,e))}}(n);r>t;){if(r-t>600){const i=r-t+1,o=e-t+1,s=Math.log(i),a=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*a*(i-a)/i)*(o-i/2<0?-1:1);Ue(A,e,Math.max(t,Math.floor(e-o*a/i+l)),Math.min(r,Math.floor(e+(i-o)*a/i+l)),n)}const i=A[e];let o=t,s=r;for(Re(A,t,e),n(A[r],i)>0&&Re(A,t,r);o<s;){for(Re(A,o,s),++o,--s;n(A[o],i)<0;)++o;for(;n(A[s],i)>0;)--s}0===n(A[t],i)?Re(A,t,s):(++s,Re(A,s,r)),s<=e&&(t=s+1),e<=s&&(r=s-1)}return A}function Re(A,e,t){const r=A[e];A[e]=A[t],A[t]=r}function Ye(A,e){let t=0,r=0;for(let e of A)null!=e&&(e=+e)>=e&&(++t,r+=e);if(t)return r/t}function ze(A,e){return function(A,e){if((t=(A=Float64Array.from(function*(A){for(let e of A)null!=e&&(e=+e)>=e&&(yield e)}(A))).length)&&!isNaN(e=+e)){if(e<=0||t<2)return Le(A);if(e>=1)return Ge(A);var t,r=(t-1)*e,n=Math.floor(r),i=Ge(Ue(A,n).subarray(0,n+1));return i+(Le(A.subarray(n+1))-i)*(r-n)}}(A,.5)}function Oe(A,e){let t=0;for(let e of A)(e=+e)&&(t+=e);return t}var He=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,Ne=Math.ceil,Ve=Math.floor,Xe="[BigNumber Error] ",je=Xe+"Number primitive has more than 15 significant digits: ",We=1e14,Ze=14,Je=9007199254740991,Ke=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],qe=1e7,$e=1e9;function At(A){var e=0|A;return A>0||A===e?e:e-1}function et(A){for(var e,t,r=1,n=A.length,i=A[0]+"";r<n;){for(e=A[r++]+"",t=Ze-e.length;t--;e="0"+e);i+=e}for(n=i.length;48===i.charCodeAt(--n););return i.slice(0,n+1||1)}function tt(A,e){var t,r,n=A.c,i=e.c,o=A.s,s=e.s,a=A.e,l=e.e;if(!o||!s)return null;if(t=n&&!n[0],r=i&&!i[0],t||r)return t?r?0:-s:o;if(o!=s)return o;if(t=o<0,r=a==l,!n||!i)return r?0:!n^t?1:-1;if(!r)return a>l^t?1:-1;for(s=(a=n.length)<(l=i.length)?a:l,o=0;o<s;o++)if(n[o]!=i[o])return n[o]>i[o]^t?1:-1;return a==l?0:a>l^t?1:-1}function rt(A,e,t,r){if(A<e||A>t||A!==Ve(A))throw Error(Xe+(r||"Argument")+("number"==typeof A?A<e||A>t?" out of range: ":" not an integer: ":" not a primitive number: ")+String(A))}function nt(A){var e=A.c.length-1;return At(A.e/Ze)==e&&A.c[e]%2!=0}function it(A,e){return(A.length>1?A.charAt(0)+"."+A.slice(1):A)+(e<0?"e":"e+")+e}function ot(A,e,t){var r,n;if(e<0){for(n=t+".";++e;n+=t);A=n+A}else if(++e>(r=A.length)){for(n=t,e-=r;--e;n+=t);A+=n}else e<r&&(A=A.slice(0,e)+"."+A.slice(e));return A}var st=function A(e){var t,r,n,i,o,s,a,l,f,u,c=Q.prototype={constructor:Q,toString:null,valueOf:null},h=new Q(1),g=20,d=4,w=-7,p=21,b=-1e7,m=1e7,B=!1,v=1,y=0,E={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},k="0123456789abcdefghijklmnopqrstuvwxyz",M=!0;function Q(A,e){var t,i,o,s,a,l,f,u,c=this;if(!(c instanceof Q))return new Q(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<b?c.c=[c.e=0]:(c.e=A.e,c.c=A.c.slice()));if((l="number"==typeof A)&&0*A==0){if(c.s=1/A<0?(A=-A,-1):1,A===~~A){for(s=0,a=A;a>=10;a/=10,s++);return void(s>m?c.c=c.e=null:(c.e=s,c.c=[A]))}u=String(A)}else{if(!He.test(u=String(A)))return n(c,u,l);c.s=45==u.charCodeAt(0)?(u=u.slice(1),-1):1}(s=u.indexOf("."))>-1&&(u=u.replace(".","")),(a=u.search(/e/i))>0?(s<0&&(s=a),s+=+u.slice(a+1),u=u.substring(0,a)):s<0&&(s=u.length)}else{if(rt(e,2,k.length,"Base"),10==e&&M)return C(c=new Q(A),g+c.e+1,d);if(u=String(A),l="number"==typeof A){if(0*A!=0)return n(c,u,l,e);if(c.s=1/A<0?(u=u.slice(1),-1):1,Q.DEBUG&&u.replace(/^0\.0*|\./,"").length>15)throw Error(je+A)}else c.s=45===u.charCodeAt(0)?(u=u.slice(1),-1):1;for(t=k.slice(0,e),s=a=0,f=u.length;a<f;a++)if(t.indexOf(i=u.charAt(a))<0){if("."==i){if(a>s){s=f;continue}}else if(!o&&(u==u.toUpperCase()&&(u=u.toLowerCase())||u==u.toLowerCase()&&(u=u.toUpperCase()))){o=!0,a=-1,s=0;continue}return n(c,String(A),l,e)}l=!1,(s=(u=r(u,e,10,c.s)).indexOf("."))>-1?u=u.replace(".",""):s=u.length}for(a=0;48===u.charCodeAt(a);a++);for(f=u.length;48===u.charCodeAt(--f););if(u=u.slice(a,++f)){if(f-=a,l&&Q.DEBUG&&f>15&&(A>Je||A!==Ve(A)))throw Error(je+c.s*A);if((s=s-a-1)>m)c.c=c.e=null;else if(s<b)c.c=[c.e=0];else{if(c.e=s,c.c=[],a=(s+1)%Ze,s<0&&(a+=Ze),a<f){for(a&&c.c.push(+u.slice(0,a)),f-=Ze;a<f;)c.c.push(+u.slice(a,a+=Ze));a=Ze-(u=u.slice(a)).length}else a-=f;for(;a--;u+="0");c.c.push(+u)}}else c.c=[c.e=0]}function _(A,e,t,r){var n,i,o,s,a;if(null==t?t=d:rt(t,0,8),!A.c)return A.toString();if(n=A.c[0],o=A.e,null==e)a=et(A.c),a=1==r||2==r&&(o<=w||o>=p)?it(a,o):ot(a,o,"0");else if(i=(A=C(new Q(A),e,t)).e,s=(a=et(A.c)).length,1==r||2==r&&(e<=i||i<=w)){for(;s<e;a+="0",s++);a=it(a,i)}else if(e-=o+(2===r&&i>o),a=ot(a,i,"0"),i+1>s){if(--e>0)for(a+=".";e--;a+="0");}else if((e+=i-s)>0)for(i+1==s&&(a+=".");e--;a+="0");return A.s<0&&n?"-"+a:a}function x(A,e){for(var t,r,n=1,i=new Q(A[0]);n<A.length;n++)(!(r=new Q(A[n])).s||(t=tt(i,r))===e||0===t&&i.s===e)&&(i=r);return i}function D(A,e,t){for(var r=1,n=e.length;!e[--n];e.pop());for(n=e[0];n>=10;n/=10,r++);return(t=r+t*Ze-1)>m?A.c=A.e=null:t<b?A.c=[A.e=0]:(A.e=t,A.c=e),A}function C(A,e,t,r){var n,i,o,s,a,l,f,u=A.c,c=Ke;if(u){A:{for(n=1,s=u[0];s>=10;s/=10,n++);if((i=e-n)<0)i+=Ze,o=e,a=u[l=0],f=Ve(a/c[n-o-1]%10);else if((l=Ne((i+1)/Ze))>=u.length){if(!r)break A;for(;u.length<=l;u.push(0));a=f=0,n=1,o=(i%=Ze)-Ze+1}else{for(a=s=u[l],n=1;s>=10;s/=10,n++);f=(o=(i%=Ze)-Ze+n)<0?0:Ve(a/c[n-o-1]%10)}if(r=r||e<0||null!=u[l+1]||(o<0?a:a%c[n-o-1]),r=t<4?(f||r)&&(0==t||t==(A.s<0?3:2)):f>5||5==f&&(4==t||r||6==t&&(i>0?o>0?a/c[n-o]:0:u[l-1])%10&1||t==(A.s<0?8:7)),e<1||!u[0])return u.length=0,r?(e-=A.e+1,u[0]=c[(Ze-e%Ze)%Ze],A.e=-e||0):u[0]=A.e=0,A;if(0==i?(u.length=l,s=1,l--):(u.length=l+1,s=c[Ze-i],u[l]=o>0?Ve(a/c[n-o]%c[o])*s:0),r)for(;;){if(0==l){for(i=1,o=u[0];o>=10;o/=10,i++);for(o=u[0]+=s,s=1;o>=10;o/=10,s++);i!=s&&(A.e++,u[0]==We&&(u[0]=1));break}if(u[l]+=s,u[l]!=We)break;u[l--]=0,s=1}for(i=u.length;0===u[--i];u.pop());}A.e>m?A.c=A.e=null:A.e<b&&(A.c=[A.e=0])}return A}function I(A){var e,t=A.e;return null===t?A.toString():(e=et(A.c),e=t<=w||t>=p?it(e,t):ot(e,t,"0"),A.s<0?"-"+e:e)}return Q.clone=A,Q.ROUND_UP=0,Q.ROUND_DOWN=1,Q.ROUND_CEIL=2,Q.ROUND_FLOOR=3,Q.ROUND_HALF_UP=4,Q.ROUND_HALF_DOWN=5,Q.ROUND_HALF_EVEN=6,Q.ROUND_HALF_CEIL=7,Q.ROUND_HALF_FLOOR=8,Q.EUCLID=9,Q.config=Q.set=function(A){var e,t;if(null!=A){if("object"!=typeof A)throw Error(Xe+"Object expected: "+A);if(A.hasOwnProperty(e="DECIMAL_PLACES")&&(rt(t=A[e],0,$e,e),g=t),A.hasOwnProperty(e="ROUNDING_MODE")&&(rt(t=A[e],0,8,e),d=t),A.hasOwnProperty(e="EXPONENTIAL_AT")&&((t=A[e])&&t.pop?(rt(t[0],-$e,0,e),rt(t[1],0,$e,e),w=t[0],p=t[1]):(rt(t,-$e,$e,e),w=-(p=t<0?-t:t))),A.hasOwnProperty(e="RANGE"))if((t=A[e])&&t.pop)rt(t[0],-$e,-1,e),rt(t[1],1,$e,e),b=t[0],m=t[1];else{if(rt(t,-$e,$e,e),!t)throw Error(Xe+e+" cannot be zero: "+t);b=-(m=t<0?-t:t)}if(A.hasOwnProperty(e="CRYPTO")){if((t=A[e])!==!!t)throw Error(Xe+e+" not true or false: "+t);if(t){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw B=!t,Error(Xe+"crypto unavailable");B=t}else B=t}if(A.hasOwnProperty(e="MODULO_MODE")&&(rt(t=A[e],0,9,e),v=t),A.hasOwnProperty(e="POW_PRECISION")&&(rt(t=A[e],0,$e,e),y=t),A.hasOwnProperty(e="FORMAT")){if("object"!=typeof(t=A[e]))throw Error(Xe+e+" not an object: "+t);E=t}if(A.hasOwnProperty(e="ALPHABET")){if("string"!=typeof(t=A[e])||/^.?$|[+\-.\s]|(.).*\1/.test(t))throw Error(Xe+e+" invalid: "+t);M="0123456789"==t.slice(0,10),k=t}}return{DECIMAL_PLACES:g,ROUNDING_MODE:d,EXPONENTIAL_AT:[w,p],RANGE:[b,m],CRYPTO:B,MODULO_MODE:v,POW_PRECISION:y,FORMAT:E,ALPHABET:k}},Q.isBigNumber=function(A){if(!A||!0!==A._isBigNumber)return!1;if(!Q.DEBUG)return!0;var e,t,r=A.c,n=A.e,i=A.s;A:if("[object Array]"=={}.toString.call(r)){if((1===i||-1===i)&&n>=-$e&&n<=$e&&n===Ve(n)){if(0===r[0]){if(0===n&&1===r.length)return!0;break A}if((e=(n+1)%Ze)<1&&(e+=Ze),String(r[0]).length==e){for(e=0;e<r.length;e++)if((t=r[e])<0||t>=We||t!==Ve(t))break A;if(0!==t)return!0}}}else if(null===r&&null===n&&(null===i||1===i||-1===i))return!0;throw Error(Xe+"Invalid BigNumber: "+A)},Q.maximum=Q.max=function(){return x(arguments,-1)},Q.minimum=Q.min=function(){return x(arguments,1)},Q.random=(i=9007199254740992,o=Math.random()*i&2097151?function(){return Ve(Math.random()*i)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(A){var e,t,r,n,i,s=0,a=[],l=new Q(h);if(null==A?A=g:rt(A,0,$e),n=Ne(A/Ze),B)if(crypto.getRandomValues){for(e=crypto.getRandomValues(new Uint32Array(n*=2));s<n;)(i=131072*e[s]+(e[s+1]>>>11))>=9e15?(t=crypto.getRandomValues(new Uint32Array(2)),e[s]=t[0],e[s+1]=t[1]):(a.push(i%1e14),s+=2);s=n/2}else{if(!crypto.randomBytes)throw B=!1,Error(Xe+"crypto unavailable");for(e=crypto.randomBytes(n*=7);s<n;)(i=281474976710656*(31&e[s])+1099511627776*e[s+1]+4294967296*e[s+2]+16777216*e[s+3]+(e[s+4]<<16)+(e[s+5]<<8)+e[s+6])>=9e15?crypto.randomBytes(7).copy(e,s):(a.push(i%1e14),s+=7);s=n/7}if(!B)for(;s<n;)(i=o())<9e15&&(a[s++]=i%1e14);for(n=a[--s],A%=Ze,n&&A&&(i=Ke[Ze-A],a[s]=Ve(n/i)*i);0===a[s];a.pop(),s--);if(s<0)a=[r=0];else{for(r=-1;0===a[0];a.splice(0,1),r-=Ze);for(s=1,i=a[0];i>=10;i/=10,s++);s<Ze&&(r-=Ze-s)}return l.e=r,l.c=a,l}),Q.sum=function(){for(var A=1,e=arguments,t=new Q(e[0]);A<e.length;)t=t.plus(e[A++]);return t},r=function(){var A="0123456789";function e(A,e,t,r){for(var n,i,o=[0],s=0,a=A.length;s<a;){for(i=o.length;i--;o[i]*=e);for(o[0]+=r.indexOf(A.charAt(s++)),n=0;n<o.length;n++)o[n]>t-1&&(null==o[n+1]&&(o[n+1]=0),o[n+1]+=o[n]/t|0,o[n]%=t)}return o.reverse()}return function(r,n,i,o,s){var a,l,f,u,c,h,w,p,b=r.indexOf("."),m=g,B=d;for(b>=0&&(u=y,y=0,r=r.replace(".",""),h=(p=new Q(n)).pow(r.length-b),y=u,p.c=e(ot(et(h.c),h.e,"0"),10,i,A),p.e=p.c.length),f=u=(w=e(r,n,i,s?(a=k,A):(a=A,k))).length;0==w[--u];w.pop());if(!w[0])return a.charAt(0);if(b<0?--f:(h.c=w,h.e=f,h.s=o,w=(h=t(h,p,m,B,i)).c,c=h.r,f=h.e),b=w[l=f+m+1],u=i/2,c=c||l<0||null!=w[l+1],c=B<4?(null!=b||c)&&(0==B||B==(h.s<0?3:2)):b>u||b==u&&(4==B||c||6==B&&1&w[l-1]||B==(h.s<0?8:7)),l<1||!w[0])r=c?ot(a.charAt(1),-m,a.charAt(0)):a.charAt(0);else{if(w.length=l,c)for(--i;++w[--l]>i;)w[l]=0,l||(++f,w=[1].concat(w));for(u=w.length;!w[--u];);for(b=0,r="";b<=u;r+=a.charAt(w[b++]));r=ot(r,f,a.charAt(0))}return r}}(),t=function(){function A(A,e,t){var r,n,i,o,s=0,a=A.length,l=e%qe,f=e/qe|0;for(A=A.slice();a--;)s=((n=l*(i=A[a]%qe)+(r=f*i+(o=A[a]/qe|0)*l)%qe*qe+s)/t|0)+(r/qe|0)+f*o,A[a]=n%t;return s&&(A=[s].concat(A)),A}function e(A,e,t,r){var n,i;if(t!=r)i=t>r?1:-1;else for(n=i=0;n<t;n++)if(A[n]!=e[n]){i=A[n]>e[n]?1:-1;break}return i}function t(A,e,t,r){for(var n=0;t--;)A[t]-=n,n=A[t]<e[t]?1:0,A[t]=n*r+A[t]-e[t];for(;!A[0]&&A.length>1;A.splice(0,1));}return function(r,n,i,o,s){var a,l,f,u,c,h,g,d,w,p,b,m,B,v,y,E,k,M=r.s==n.s?1:-1,_=r.c,x=n.c;if(!(_&&_[0]&&x&&x[0]))return new Q(r.s&&n.s&&(_?!x||_[0]!=x[0]:x)?_&&0==_[0]||!x?0*M:M/0:NaN);for(w=(d=new Q(M)).c=[],M=i+(l=r.e-n.e)+1,s||(s=We,l=At(r.e/Ze)-At(n.e/Ze),M=M/Ze|0),f=0;x[f]==(_[f]||0);f++);if(x[f]>(_[f]||0)&&l--,M<0)w.push(1),u=!0;else{for(v=_.length,E=x.length,f=0,M+=2,(c=Ve(s/(x[0]+1)))>1&&(x=A(x,c,s),_=A(_,c,s),E=x.length,v=_.length),B=E,b=(p=_.slice(0,E)).length;b<E;p[b++]=0);k=x.slice(),k=[0].concat(k),y=x[0],x[1]>=s/2&&y++;do{if(c=0,(a=e(x,p,E,b))<0){if(m=p[0],E!=b&&(m=m*s+(p[1]||0)),(c=Ve(m/y))>1)for(c>=s&&(c=s-1),g=(h=A(x,c,s)).length,b=p.length;1==e(h,p,g,b);)c--,t(h,E<g?k:x,g,s),g=h.length,a=1;else 0==c&&(a=c=1),g=(h=x.slice()).length;if(g<b&&(h=[0].concat(h)),t(p,h,b,s),b=p.length,-1==a)for(;e(x,p,E,b)<1;)c++,t(p,E<b?k:x,b,s),b=p.length}else 0===a&&(c++,p=[0]);w[f++]=c,p[0]?p[b++]=_[B]||0:(p=[_[B]],b=1)}while((B++<v||null!=p[0])&&M--);u=null!=p[0],w[0]||w.splice(0,1)}if(s==We){for(f=1,M=w[0];M>=10;M/=10,f++);C(d,i+(d.e=f+l*Ze-1)+1,o,u)}else d.e=l,d.r=+u;return d}}(),s=/^(-?)0([xbo])(?=\w[\w.]*$)/i,a=/^([^.]+)\.$/,l=/^\.([^.]+)$/,f=/^-?(Infinity|NaN)$/,u=/^\s*\+(?=[\w.])|^\s+|\s+$/g,n=function(A,e,t,r){var n,i=t?e:e.replace(u,"");if(f.test(i))A.s=isNaN(i)?null:i<0?-1:1;else{if(!t&&(i=i.replace(s,function(A,e,t){return n="x"==(t=t.toLowerCase())?16:"b"==t?2:8,r&&r!=n?A:e}),r&&(n=r,i=i.replace(a,"$1").replace(l,"0.$1")),e!=i))return new Q(i,n);if(Q.DEBUG)throw Error(Xe+"Not a"+(r?" base "+r:"")+" number: "+e);A.s=null}A.c=A.e=null},c.absoluteValue=c.abs=function(){var A=new Q(this);return A.s<0&&(A.s=1),A},c.comparedTo=function(A,e){return tt(this,new Q(A,e))},c.decimalPlaces=c.dp=function(A,e){var t,r,n,i=this;if(null!=A)return rt(A,0,$e),null==e?e=d:rt(e,0,8),C(new Q(i),A+i.e+1,e);if(!(t=i.c))return null;if(r=((n=t.length-1)-At(this.e/Ze))*Ze,n=t[n])for(;n%10==0;n/=10,r--);return r<0&&(r=0),r},c.dividedBy=c.div=function(A,e){return t(this,new Q(A,e),g,d)},c.dividedToIntegerBy=c.idiv=function(A,e){return t(this,new Q(A,e),0,1)},c.exponentiatedBy=c.pow=function(A,e){var t,r,n,i,o,s,a,l,f=this;if((A=new Q(A)).c&&!A.isInteger())throw Error(Xe+"Exponent not an integer: "+I(A));if(null!=e&&(e=new Q(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 l=new Q(Math.pow(+I(f),o?A.s*(2-nt(A)):+I(A))),e?l.mod(e):l;if(s=A.s<0,e){if(e.c?!e.c[0]:!e.s)return new Q(NaN);(r=!s&&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&&nt(A)?-0:0,f.e>-1&&(i=1/i),new Q(s?1/i:i);y&&(i=Ne(y/Ze+2))}for(o?(t=new Q(.5),s&&(A.s=1),a=nt(A)):a=(n=Math.abs(+I(A)))%2,l=new Q(h);;){if(a){if(!(l=l.times(f)).c)break;i?l.c.length>i&&(l.c.length=i):r&&(l=l.mod(e))}if(n){if(0===(n=Ve(n/2)))break;a=n%2}else if(C(A=A.times(t),A.e+1,1),A.e>14)a=nt(A);else{if(0===(n=+I(A)))break;a=n%2}f=f.times(f),i?f.c&&f.c.length>i&&(f.c.length=i):r&&(f=f.mod(e))}return r?l:(s&&(l=h.div(l)),e?l.mod(e):i?C(l,y,d,undefined):l)},c.integerValue=function(A){var e=new Q(this);return null==A?A=d:rt(A,0,8),C(e,e.e+1,A)},c.isEqualTo=c.eq=function(A,e){return 0===tt(this,new Q(A,e))},c.isFinite=function(){return!!this.c},c.isGreaterThan=c.gt=function(A,e){return tt(this,new Q(A,e))>0},c.isGreaterThanOrEqualTo=c.gte=function(A,e){return 1===(e=tt(this,new Q(A,e)))||0===e},c.isInteger=function(){return!!this.c&&At(this.e/Ze)>this.c.length-2},c.isLessThan=c.lt=function(A,e){return tt(this,new Q(A,e))<0},c.isLessThanOrEqualTo=c.lte=function(A,e){return-1===(e=tt(this,new Q(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,r,n,i,o=this,s=o.s;if(e=(A=new Q(A,e)).s,!s||!e)return new Q(NaN);if(s!=e)return A.s=-e,o.plus(A);var a=o.e/Ze,l=A.e/Ze,f=o.c,u=A.c;if(!a||!l){if(!f||!u)return f?(A.s=-e,A):new Q(u?o:NaN);if(!f[0]||!u[0])return u[0]?(A.s=-e,A):new Q(f[0]?o:3==d?-0:0)}if(a=At(a),l=At(l),f=f.slice(),s=a-l){for((i=s<0)?(s=-s,n=f):(l=a,n=u),n.reverse(),e=s;e--;n.push(0));n.reverse()}else for(r=(i=(s=f.length)<(e=u.length))?s:e,s=e=0;e<r;e++)if(f[e]!=u[e]){i=f[e]<u[e];break}if(i&&(n=f,f=u,u=n,A.s=-A.s),(e=(r=u.length)-(t=f.length))>0)for(;e--;f[t++]=0);for(e=We-1;r>s;){if(f[--r]<u[r]){for(t=r;t&&!f[--t];f[t]=e);--f[t],f[r]+=We}f[r]-=u[r]}for(;0==f[0];f.splice(0,1),--l);return f[0]?D(A,f,l):(A.s=3==d?-1:1,A.c=[A.e=0],A)},c.modulo=c.mod=function(A,e){var r,n,i=this;return A=new Q(A,e),!i.c||!A.s||A.c&&!A.c[0]?new Q(NaN):!A.c||i.c&&!i.c[0]?new Q(i):(9==v?(n=A.s,A.s=1,r=t(i,A,0,3),A.s=n,r.s*=n):r=t(i,A,0,v),(A=i.minus(r.times(A))).c[0]||1!=v||(A.s=i.s),A)},c.multipliedBy=c.times=function(A,e){var t,r,n,i,o,s,a,l,f,u,c,h,g,d,w,p=this,b=p.c,m=(A=new Q(A,e)).c;if(!(b&&m&&b[0]&&m[0]))return!p.s||!A.s||b&&!b[0]&&!m||m&&!m[0]&&!b?A.c=A.e=A.s=null:(A.s*=p.s,b&&m?(A.c=[0],A.e=0):A.c=A.e=null),A;for(r=At(p.e/Ze)+At(A.e/Ze),A.s*=p.s,(a=b.length)<(u=m.length)&&(g=b,b=m,m=g,n=a,a=u,u=n),n=a+u,g=[];n--;g.push(0));for(d=We,w=qe,n=u;--n>=0;){for(t=0,c=m[n]%w,h=m[n]/w|0,i=n+(o=a);i>n;)t=((l=c*(l=b[--o]%w)+(s=h*l+(f=b[o]/w|0)*c)%w*w+g[i]+t)/d|0)+(s/w|0)+h*f,g[i--]=l%d;g[i]=t}return t?++r:g.splice(0,1),D(A,g,r)},c.negated=function(){var A=new Q(this);return A.s=-A.s||null,A},c.plus=function(A,e){var t,r=this,n=r.s;if(e=(A=new Q(A,e)).s,!n||!e)return new Q(NaN);if(n!=e)return A.s=-e,r.minus(A);var i=r.e/Ze,o=A.e/Ze,s=r.c,a=A.c;if(!i||!o){if(!s||!a)return new Q(n/0);if(!s[0]||!a[0])return a[0]?A:new Q(s[0]?r:0*n)}if(i=At(i),o=At(o),s=s.slice(),n=i-o){for(n>0?(o=i,t=a):(n=-n,t=s),t.reverse();n--;t.push(0));t.reverse()}for((n=s.length)-(e=a.length)<0&&(t=a,a=s,s=t,e=n),n=0;e;)n=(s[--e]=s[e]+a[e]+n)/We|0,s[e]=We===s[e]?0:s[e]%We;return n&&(s=[n].concat(s),++o),D(A,s,o)},c.precision=c.sd=function(A,e){var t,r,n,i=this;if(null!=A&&A!==!!A)return rt(A,1,$e),null==e?e=d:rt(e,0,8),C(new Q(i),A,e);if(!(t=i.c))return null;if(r=(n=t.length-1)*Ze+1,n=t[n]){for(;n%10==0;n/=10,r--);for(n=t[0];n>=10;n/=10,r++);}return A&&i.e+1>r&&(r=i.e+1),r},c.shiftedBy=function(A){return rt(A,-9007199254740991,Je),this.times("1e"+A)},c.squareRoot=c.sqrt=function(){var A,e,r,n,i,o=this,s=o.c,a=o.s,l=o.e,f=g+4,u=new Q("0.5");if(1!==a||!s||!s[0])return new Q(!a||a<0&&(!s||s[0])?NaN:s?o:1/0);if(0==(a=Math.sqrt(+I(o)))||a==1/0?(((e=et(s)).length+l)%2==0&&(e+="0"),a=Math.sqrt(+e),l=At((l+1)/2)-(l<0||l%2),r=new Q(e=a==1/0?"5e"+l:(e=a.toExponential()).slice(0,e.indexOf("e")+1)+l)):r=new Q(a+""),r.c[0])for((a=(l=r.e)+f)<3&&(a=0);;)if(i=r,r=u.times(i.plus(t(o,i,f,1))),et(i.c).slice(0,a)===(e=et(r.c)).slice(0,a)){if(r.e<l&&--a,"9999"!=(e=e.slice(a-3,a+1))&&(n||"4999"!=e)){+e&&(+e.slice(1)||"5"!=e.charAt(0))||(C(r,r.e+g+2,1),A=!r.times(r).eq(o));break}if(!n&&(C(i,i.e+g+2,0),i.times(i).eq(o))){r=i;break}f+=4,a+=4,n=1}return C(r,r.e+g+1,d,A)},c.toExponential=function(A,e){return null!=A&&(rt(A,0,$e),A++),_(this,A,e,1)},c.toFixed=function(A,e){return null!=A&&(rt(A,0,$e),A=A+this.e+1),_(this,A,e)},c.toFormat=function(A,e,t){var r,n=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(Xe+"Argument not an object: "+t);if(r=n.toFixed(A,e),n.c){var i,o=r.split("."),s=+t.groupSize,a=+t.secondaryGroupSize,l=t.groupSeparator||"",f=o[0],u=o[1],c=n.s<0,h=c?f.slice(1):f,g=h.length;if(a&&(i=s,s=a,a=i,g-=i),s>0&&g>0){for(i=g%s||s,f=h.substr(0,i);i<g;i+=s)f+=l+h.substr(i,s);a>0&&(f+=l+h.slice(i)),c&&(f="-"+f)}r=u?f+(t.decimalSeparator||"")+((a=+t.fractionGroupSize)?u.replace(new RegExp("\\d{"+a+"}\\B","g"),"$&"+(t.fractionGroupSeparator||"")):u):f}return(t.prefix||"")+r+(t.suffix||"")},c.toFraction=function(A){var e,r,n,i,o,s,a,l,f,u,c,g,w=this,p=w.c;if(null!=A&&(!(a=new Q(A)).isInteger()&&(a.c||1!==a.s)||a.lt(h)))throw Error(Xe+"Argument "+(a.isInteger()?"out of range: ":"not an integer: ")+I(a));if(!p)return new Q(w);for(e=new Q(h),f=r=new Q(h),n=l=new Q(h),g=et(p),o=e.e=g.length-w.e-1,e.c[0]=Ke[(s=o%Ze)<0?Ze+s:s],A=!A||a.comparedTo(e)>0?o>0?e:f:a,s=m,m=1/0,a=new Q(g),l.c[0]=0;u=t(a,e,0,1),1!=(i=r.plus(u.times(n))).comparedTo(A);)r=n,n=i,f=l.plus(u.times(i=f)),l=i,e=a.minus(u.times(i=e)),a=i;return i=t(A.minus(r),n,0,1),l=l.plus(i.times(f)),r=r.plus(i.times(n)),l.s=f.s=w.s,c=t(f,n,o*=2,d).minus(w).abs().comparedTo(t(l,r,o,d).minus(w).abs())<1?[f,n]:[l,r],m=s,c},c.toNumber=function(){return+I(this)},c.toPrecision=function(A,e){return null!=A&&rt(A,1,$e),_(this,A,e,2)},c.toString=function(A){var e,t=this,n=t.s,i=t.e;return null===i?n?(e="Infinity",n<0&&(e="-"+e)):e="NaN":(null==A?e=i<=w||i>=p?it(et(t.c),i):ot(et(t.c),i,"0"):10===A&&M?e=ot(et((t=C(new Q(t),g+i+1,d)).c),t.e,"0"):(rt(A,2,k.length,"Base"),e=r(ot(et(t.c),i,"0"),10,A,n,!0)),n<0&&t.c[0]&&(e="-"+e)),e},c.valueOf=c.toJSON=function(){return I(this)},c._isBigNumber=!0,c[Symbol.toStringTag]="BigNumber",c[Symbol.for("nodejs.util.inspect.custom")]=c.valueOf,null!=e&&Q.set(e),Q}(),at=class{key;left=null;right=null;constructor(A){this.key=A}},lt=class extends at{constructor(A){super(A)}},ft=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,r=null,n=null,i=null,o=e;const s=this.compare;let a;for(;;)if(a=s(o.key,A),a>0){let e=o.left;if(null==e)break;if(a=s(e.key,A),a>0&&(o.left=e.right,e.right=o,o=e,e=o.left,null==e))break;null==t?r=o:t.left=o,t=o,o=e}else{if(!(a<0))break;{let e=o.right;if(null==e)break;if(a=s(e.key,A),a<0&&(o.right=e.left,e.left=o,o=e,e=o.right,null==e))break;null==n?i=o:n.right=o,n=o,o=e}}return null!=n&&(n.right=o.left,o.left=i),null!=t&&(t.left=o.right,o.right=r),this.root!==o&&(this.root=o,this.splayCount++),a}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,r=e.left;if(this.size--,null==r)this.root=e.right;else{const A=e.right;e=this.splayMax(r),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)}}},ut=class A extends ft{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 lt(A),e),this}addAndReturn(A){const e=this.splay(A);return 0!=e&&this.addNewRoot(new lt(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),r=this.modificationCount;for(const A of e){if(r!=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 lt(A.key);return function A(e,t){let r,n;do{if(r=e.left,n=e.right,null!=r){const e=new lt(r.key);t.left=e,A(r,e)}if(null!=n){const A=new lt(n.key);t.right=A,e=n,t=A}}while(null!=n)}(A,e),e}toSet(){return this.clone()}entries(){return new gt(this.wrap())}keys(){return this[Symbol.iterator]()}values(){return this[Symbol.iterator]()}[Symbol.iterator](){return new ht(this.wrap())}[Symbol.toStringTag]="[object Set]"},ct=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}},ht=class extends ct{getValue(A){return A.key}},gt=class extends ct{getValue(A){return[A.key,A.key]}},dt=A=>()=>A,wt=A=>{const e=A?(e,t)=>t.minus(e).abs().isLessThanOrEqualTo(A):dt(!1);return(A,t)=>e(A,t)?0:A.comparedTo(t)};function pt(A){const e=A?(e,t,r,n,i)=>e.exponentiatedBy(2).isLessThanOrEqualTo(n.minus(t).exponentiatedBy(2).plus(i.minus(r).exponentiatedBy(2)).times(A)):dt(!1);return(A,t,r)=>{const n=A.x,i=A.y,o=r.x,s=r.y,a=i.minus(s).times(t.x.minus(o)).minus(n.minus(o).times(t.y.minus(s)));return e(a,n,i,o,s)?0:a.comparedTo(0)}}var bt=A=>A,mt=A=>{if(A){const e=new ut(wt(A)),t=new ut(wt(A)),r=(A,e)=>e.addAndReturn(A),n=A=>({x:r(A.x,e),y:r(A.y,t)});return n({x:new st(0),y:new st(0)}),n}return bt},Bt=A=>({set:A=>{vt=Bt(A)},reset:()=>Bt(A),compare:wt(A),snap:mt(A),orient:pt(A)}),vt=Bt(),yt=(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),Et=(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,r=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:r,y:A.ur.y.isLessThan(e.ur.y)?A.ur.y:e.ur.y}}},kt=(A,e)=>A.x.times(e.y).minus(A.y.times(e.x)),Mt=(A,e)=>A.x.times(e.x).plus(A.y.times(e.y)),Qt=A=>Mt(A,A).sqrt(),_t=(A,e,t)=>{const r={x:e.x.minus(A.x),y:e.y.minus(A.y)},n={x:t.x.minus(A.x),y:t.y.minus(A.y)};return kt(n,r).div(Qt(n)).div(Qt(r))},xt=(A,e,t)=>{const r={x:e.x.minus(A.x),y:e.y.minus(A.y)},n={x:t.x.minus(A.x),y:t.y.minus(A.y)};return Mt(n,r).div(Qt(n)).div(Qt(r))},Dt=(A,e,t)=>e.y.isZero()?null:{x:A.x.plus(e.x.div(e.y).times(t.minus(A.y))),y:t},Ct=(A,e,t)=>e.x.isZero()?null:{x:t,y:A.y.plus(e.y.div(e.x).times(t.minus(A.x)))},It=class A{point;isLeft;segment;otherSE;consumedBy;static compare(e,t){const r=A.comparePoints(e.point,t.point);return 0!==r?r:(e.point!==t.point&&e.link(t),e.isLeft!==t.isLeft?e.isLeft?1:-1:Rt.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 r=e+1;r<A;r++){const A=this.point.events[r];void 0===A.consumedBy&&(t.otherSE.point.events===A.otherSE.point.events&&t.segment.consume(A.segment))}}}getAvailableLinkedEvents(){const A=[];for(let e=0,t=this.point.events.length;e<t;e++){const t=this.point.events[e];t!==this&&!t.segment.ringOut&&t.segment.isInResult()&&A.push(t)}return A}getLeftmostComparator(A){const e=new Map,t=t=>{const r=t.otherSE;e.set(t,{sine:_t(this.point,A.point,r.point),cosine:xt(this.point,A.point,r.point)})};return(A,r)=>{e.has(A)||t(A),e.has(r)||t(r);const{sine:n,cosine:i}=e.get(A),{sine:o,cosine:s}=e.get(r);return n.isGreaterThanOrEqualTo(0)&&o.isGreaterThanOrEqualTo(0)?i.isLessThan(s)?1:i.isGreaterThan(s)?-1:0:n.isLessThan(0)&&o.isLessThan(0)?i.isLessThan(s)?-1:i.isGreaterThan(s)?1:0:o.isLessThan(n)?-1:o.isGreaterThan(n)?1:0}}},Pt=class A{events;poly;_isExteriorRing;_enclosingRing;static factory(e){const t=[];for(let r=0,n=e.length;r<n;r++){const n=e[r];if(!n.isInResult()||n.ringOut)continue;let i=null,o=n.leftSE,s=n.rightSE;const a=[o],l=o.point,f=[];for(;i=o,o=s,a.push(o),o.point!==l;)for(;;){const e=o.getAvailableLinkedEvents();if(0===e.length){const A=a[0].point,e=a[a.length-1].point;throw new Error(`Unable to complete output ring starting at [${A.x}, ${A.y}]. Last matching segment found ends at [${e.x}, ${e.y}].`)}if(1===e.length){s=e[0].otherSE;break}let r=null;for(let A=0,e=f.length;A<e;A++)if(f[A].point===o.point){r=A;break}if(null!==r){const e=f.splice(r)[0],n=a.splice(e.index);n.unshift(n[0].otherSE),t.push(new A(n.reverse()));continue}f.push({index:a.length,point:o.point});const n=o.getLeftmostComparator(i);s=e.sort(n)[0].otherSE;break}t.push(new A(a))}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,r=this.events.length-1;t<r;t++){const r=this.events[t].point,n=this.events[t+1].point;0!==vt.orient(r,A,n)&&(e.push(r),A=r)}if(1===e.length)return null;const t=e[0],r=e[1];0===vt.orient(t,A,r)&&e.shift(),e.push(e[0]);const n=this.isExteriorRing()?1:-1,i=this.isExteriorRing()?0:e.length-1,o=this.isExteriorRing()?e.length:-1,s=[];for(let A=i;A!=o;A+=n)s.push([e[A].x.toNumber(),e[A].y.toNumber()]);return s}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];It.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}}},Ft=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}},St=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,r=A.length;t<r;t++){const r=A[t];if(!r.poly)if(r.isExteriorRing())e.push(new Ft(r));else{const A=r.enclosingRing();A?.poly||e.push(new Ft(A)),A?.poly?.addInterior(r)}}return e}},Tt=class{queue;tree;segments;constructor(A,e=Rt.compare){this.queue=A,this.tree=new ut(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 r=e,n=e;do{r=this.tree.lastBefore(r)}while(null!=r&&null!=r.consumedBy);do{n=this.tree.firstAfter(n)}while(null!=n&&null!=n.consumedBy);if(A.isLeft){let i=null;if(r){const A=r.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(i=A),!r.isAnEndpoint(A))){const e=this._splitSafely(r,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}}let o=null;if(n){const A=n.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(o=A),!n.isAnEndpoint(A))){const e=this._splitSafely(n,A);for(let A=0,r=e.length;A<r;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=It.comparePoints(i,o)<=0?i:o}this.queue.delete(e.rightSE),t.push(e.rightSE);const r=e.split(A);for(let A=0,e=r.length;A<e;A++)t.push(r[A])}t.length>0?(this.tree.delete(e),t.push(A)):(this.segments.push(e),e.prev=r)}else{if(r&&n){const A=r.getIntersection(n);if(null!==A){if(!r.isAnEndpoint(A)){const e=this._splitSafely(r,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}if(!n.isAnEndpoint(A)){const e=this._splitSafely(n,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}}}this.tree.delete(e)}return t}_splitSafely(A,e){this.tree.delete(A);const t=A.rightSE;this.queue.delete(t);const r=A.split(e);return r.push(t),void 0===A.consumedBy&&this.tree.add(A),r}},Gt=new class{type;numMultiPolys;run(A,e,t){Gt.type=A;const r=[new Ot(e,!0)];for(let A=0,e=t.length;A<e;A++)r.push(new Ot(t[A],!1));if(Gt.numMultiPolys=r.length,"difference"===Gt.type){const A=r[0];let e=1;for(;e<r.length;)null!==Et(r[e].bbox,A.bbox)?e++:r.splice(e,1)}if("intersection"===Gt.type)for(let A=0,e=r.length;A<e;A++){const e=r[A];for(let t=A+1,n=r.length;t<n;t++)if(null===Et(e.bbox,r[t].bbox))return[]}const n=new ut(It.compare);for(let A=0,e=r.length;A<e;A++){const e=r[A].getSweepEvents();for(let A=0,t=e.length;A<t;A++)n.add(e[A])}const i=new Tt(n);let o=null;for(0!=n.size&&(o=n.first(),n.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&&n.add(t)}0!=n.size?(o=n.first(),n.delete(o)):o=null}vt.reset();const s=Pt.factory(i.segments);return new St(s).getGeom()}},Lt=Gt,Ut=0,Rt=class A{id;leftSE;rightSE;rings;windings;ringOut;consumedBy;prev;_prevInResult;_beforeState;_afterState;_isInResult;static compare(A,e){const t=A.leftSE.point.x,r=e.leftSE.point.x,n=A.rightSE.point.x,i=e.rightSE.point.x;if(i.isLessThan(t))return 1;if(n.isLessThan(r))return-1;const o=A.leftSE.point.y,s=e.leftSE.point.y,a=A.rightSE.point.y,l=e.rightSE.point.y;if(t.isLessThan(r)){if(s.isLessThan(o)&&s.isLessThan(a))return 1;if(s.isGreaterThan(o)&&s.isGreaterThan(a))return-1;const t=A.comparePoint(e.leftSE.point);if(t<0)return 1;if(t>0)return-1;const r=e.comparePoint(A.rightSE.point);return 0!==r?r:-1}if(t.isGreaterThan(r)){if(o.isLessThan(s)&&o.isLessThan(l))return-1;if(o.isGreaterThan(s)&&o.isGreaterThan(l))return 1;const t=e.comparePoint(A.leftSE.point);if(0!==t)return t;const r=A.comparePoint(e.rightSE.point);return r<0?1:r>0?-1:1}if(o.isLessThan(s))return-1;if(o.isGreaterThan(s))return 1;if(n.isLessThan(i)){const t=e.comparePoint(A.rightSE.point);if(0!==t)return t}if(n.isGreaterThan(i)){const t=A.comparePoint(e.rightSE.point);if(t<0)return 1;if(t>0)return-1}if(!n.eq(i)){const A=a.minus(o),e=n.minus(t),f=l.minus(s),u=i.minus(r);if(A.isGreaterThan(e)&&f.isLessThan(u))return 1;if(A.isLessThan(e)&&f.isGreaterThan(u))return-1}return n.isGreaterThan(i)?1:n.isLessThan(i)||a.isLessThan(l)?-1:a.isGreaterThan(l)?1:A.id<e.id?-1:A.id>e.id?1:0}constructor(A,e,t,r){this.id=++Ut,this.leftSE=A,A.segment=this,A.otherSE=e,this.rightSE=e,e.segment=this,e.otherSE=A,this.rings=t,this.windings=r}static fromRing(e,t,r){let n,i,o;const s=It.comparePoints(e,t);if(s<0)n=e,i=t,o=1;else{if(!(s>0))throw new Error(`Tried to create degenerate segment at [${e.x}, ${e.y}]`);n=t,i=e,o=-1}const a=new It(n,!0),l=new It(i,!1);return new A(a,l,[r],[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 vt.orient(this.leftSE.point,A,this.rightSE.point)}getIntersection(A){const e=this.bbox(),t=A.bbox(),r=Et(e,t);if(null===r)return null;const n=this.leftSE.point,i=this.rightSE.point,o=A.leftSE.point,s=A.rightSE.point,a=yt(e,o)&&0===this.comparePoint(o),l=yt(t,n)&&0===A.comparePoint(n),f=yt(e,s)&&0===this.comparePoint(s),u=yt(t,i)&&0===A.comparePoint(i);if(l&&a)return u&&!f?i:!u&&f?s:null;if(l)return f&&n.x.eq(s.x)&&n.y.eq(s.y)?null:n;if(a)return u&&i.x.eq(o.x)&&i.y.eq(o.y)?null:o;if(u&&f)return null;if(u)return i;if(f)return s;const c=((A,e,t,r)=>{if(e.x.isZero())return Ct(t,r,A.x);if(r.x.isZero())return Ct(A,e,t.x);if(e.y.isZero())return Dt(t,r,A.y);if(r.y.isZero())return Dt(A,e,t.y);const n=kt(e,r);if(n.isZero())return null;const i={x:t.x.minus(A.x),y:t.y.minus(A.y)},o=kt(i,e).div(n),s=kt(i,r).div(n),a=A.x.plus(s.times(e.x)),l=t.x.plus(o.times(r.x)),f=A.y.plus(s.times(e.y)),u=t.y.plus(o.times(r.y));return{x:a.plus(l).div(2),y:f.plus(u).div(2)}})(n,this.vector(),o,A.vector());return null===c?null:yt(r,c)?vt.snap(c):null}split(e){const t=[],r=void 0!==e.events,n=new It(e,!0),i=new It(e,!1),o=this.rightSE;this.replaceRightSE(i),t.push(i),t.push(n);const s=new A(n,o,this.rings.slice(),this.windings.slice());return It.comparePoints(s.leftSE.point,s.rightSE.point)>0&&s.swapEvents(),It.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),r&&(n.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,r=e;for(;t.consumedBy;)t=t.consumedBy;for(;r.consumedBy;)r=r.consumedBy;const n=A.compare(t,r);if(0!==n){if(n>0){const A=t;t=r,r=A}if(t.prev===r){const A=t;t=r,r=A}for(let A=0,e=r.rings.length;A<e;A++){const e=r.rings[A],n=r.windings[A],i=t.rings.indexOf(e);-1===i?(t.rings.push(e),t.windings.push(n)):t.windings[i]+=n}r.rings=null,r.windings=null,r.consumedBy=t,r.leftSE.consumedBy=t.leftSE,r.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,r=this._afterState.multiPolys;for(let A=0,r=this.rings.length;A<r;A++){const r=this.rings[A],n=this.windings[A],i=e.indexOf(r);-1===i?(e.push(r),t.push(n)):t[i]+=n}const n=[],i=[];for(let A=0,r=e.length;A<r;A++){if(0===t[A])continue;const r=e[A],o=r.poly;if(-1===i.indexOf(o))if(r.isExterior)n.push(o);else{-1===i.indexOf(o)&&i.push(o);const A=n.indexOf(r.poly);-1!==A&&n.splice(A,1)}}for(let A=0,e=n.length;A<e;A++){const e=n[A].multiPoly;-1===r.indexOf(e)&&r.push(e)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(void 0!==this._isInResult)return this._isInResult;const A=this.beforeState().multiPolys,e=this.afterState().multiPolys;switch(Lt.type){case"union":{const t=0===A.length,r=0===e.length;this._isInResult=t!==r;break}case"intersection":{let t,r;A.length<e.length?(t=A.length,r=e.length):(t=e.length,r=A.length),this._isInResult=r===Lt.numMultiPolys&&t<r;break}case"xor":{const t=Math.abs(A.length-e.length);this._isInResult=t%2==1;break}case"difference":{const t=A=>1===A.length&&A[0].isSubject;this._isInResult=t(A)!==t(e);break}}return this._isInResult}},Yt=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 r=vt.snap({x:new st(A[0][0]),y:new st(A[0][1])});this.bbox={ll:{x:r.x,y:r.y},ur:{x:r.x,y:r.y}};let n=r;for(let e=1,t=A.length;e<t;e++){if("number"!=typeof A[e][0]||"number"!=typeof A[e][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const t=vt.snap({x:new st(A[e][0]),y:new st(A[e][1])});t.x.eq(n.x)&&t.y.eq(n.y)||(this.segments.push(Rt.fromRing(n,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),n=t)}r.x.eq(n.x)&&r.y.eq(n.y)||this.segments.push(Rt.fromRing(n,r,this))}getSweepEvents(){const A=[];for(let e=0,t=this.segments.length;e<t;e++){const t=this.segments[e];A.push(t.leftSE),A.push(t.rightSE)}return A}},zt=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 Yt(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 Yt(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,r=t.length;e<r;e++)A.push(t[e])}return A}},Ot=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 st(Number.POSITIVE_INFINITY),y:new st(Number.POSITIVE_INFINITY)},ur:{x:new st(Number.NEGATIVE_INFINITY),y:new st(Number.NEGATIVE_INFINITY)}};for(let e=0,t=A.length;e<t;e++){const t=new zt(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,r=t.length;e<r;e++)A.push(t[e])}return A}};function Ht(A,e={}){const t=[];if(Ee(A,A=>{t.push(A.coordinates)}),t.length<2)throw new Error("Must specify at least 2 geometries");const r=((A,...e)=>Lt.run("intersection",A,e))(t[0],...t.slice(1));return 0===r.length?null:1===r.length?function(A,e,t={}){for(const e of A){if(e.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(e[e.length-1].length!==e[0].length)throw new Error("First and last Position are not equivalent.");for(let A=0;A<e[e.length-1].length;A++)if(e[e.length-1][A]!==e[0][A])throw new Error("First and last Position are not equivalent.")}return ge({type:"Polygon",coordinates:A},e,t)}(r[0],e.properties):function(A,e,t={}){return ge({type:"MultiPolygon",coordinates:A},e,t)}(r,e.properties)}function Nt(A){let e=0;if(A&&A.length>0){e+=Math.abs(jt(A[0]));for(let t=1;t<A.length;t++)e-=Math.abs(jt(A[t]))}return e}vt.set;var Vt=20294876564838.72,Xt=Math.PI/180;function jt(A){const e=A.length-1;if(e<=2)return 0;let t=0,r=0;for(;r<e;){const n=A[r],i=A[r+1===e?0:r+1],o=A[r+2>=e?(r+2)%e:r+2],s=n[0]*Xt,a=i[1]*Xt;t+=(o[0]*Xt-s)*Math.sin(a),r++}return t*Vt}var Wt=function(A){return function(A,e,t){var r=t;return Ee(A,function(A,t,n,i,o){r=e(r,A,t,n,i,o)}),r}(A,(A,e)=>A+function(A){let e,t=0;switch(A.type){case"Polygon":return Nt(A.coordinates);case"MultiPolygon":for(e=0;e<A.coordinates.length;e++)t+=Nt(A.coordinates[e]);return t;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}(e),0)};function Zt(A,e,t,r,n){Jt(A,e,t||0,r||A.length-1,n||qt)}function Jt(A,e,t,r,n){for(;r>t;){if(r-t>600){var i=r-t+1,o=e-t+1,s=Math.log(i),a=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*a*(i-a)/i)*(o-i/2<0?-1:1);Jt(A,e,Math.max(t,Math.floor(e-o*a/i+l)),Math.min(r,Math.floor(e+(i-o)*a/i+l)),n)}var f=A[e],u=t,c=r;for(Kt(A,t,e),n(A[r],f)>0&&Kt(A,t,r);u<c;){for(Kt(A,u,c),u++,c--;n(A[u],f)<0;)u++;for(;n(A[c],f)>0;)c--}0===n(A[t],f)?Kt(A,t,c):Kt(A,++c,r),c<=e&&(t=c+1),e<=c&&(r=c-1)}}function Kt(A,e,t){var r=A[e];A[e]=A[t],A[t]=r}function qt(A,e){return A<e?-1:A>e?1:0}class $t{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(!ur(A,e))return t;const r=this.toBBox,n=[];for(;e;){for(let i=0;i<e.children.length;i++){const o=e.children[i],s=e.leaf?r(o):o;ur(A,s)&&(e.leaf?t.push(o):fr(A,s)?this._all(o,t):n.push(o))}e=n.pop()}return t}collides(A){let e=this.data;if(!ur(A,e))return!1;const t=[];for(;e;){for(let r=0;r<e.children.length;r++){const n=e.children[r],i=e.leaf?this.toBBox(n):n;if(ur(A,i)){if(e.leaf||fr(A,i))return!0;t.push(n)}}e=t.pop()}return!1}load(A){if(!A||!A.length)return this;if(A.length<this._minEntries){for(let e=0;e<A.length;e++)this.insert(A[e]);return this}let e=this._build(A.slice(),0,A.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){const A=this.data;this.data=e,e=A}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(A){return A&&this._insert(A,this.data.height-1),this}clear(){return this.data=cr([]),this}remove(A,e){if(!A)return this;let t=this.data;const r=this.toBBox(A),n=[],i=[];let o,s,a;for(;t||n.length;){if(t||(t=n.pop(),s=n[n.length-1],o=i.pop(),a=!0),t.leaf){const r=Ar(A,t.children,e);if(-1!==r)return t.children.splice(r,1),n.push(t),this._condense(n),this}a||t.leaf||!fr(t,r)?s?(o++,t=s.children[o],a=!1):t=null:(n.push(t),i.push(o),o=0,s=t,t=t.children[0])}return this}toBBox(A){return A}compareMinX(A,e){return A.minX-e.minX}compareMinY(A,e){return A.minY-e.minY}toJSON(){return this.data}fromJSON(A){return this.data=A,this}_all(A,e){const t=[];for(;A;)A.leaf?e.push(...A.children):t.push(...A.children),A=t.pop();return e}_build(A,e,t,r){const n=t-e+1;let i,o=this._maxEntries;if(n<=o)return i=cr(A.slice(e,t+1)),er(i,this.toBBox),i;r||(r=Math.ceil(Math.log(n)/Math.log(o)),o=Math.ceil(n/Math.pow(o,r-1))),i=cr([]),i.leaf=!1,i.height=r;const s=Math.ceil(n/o),a=s*Math.ceil(Math.sqrt(o));hr(A,e,t,a,this.compareMinX);for(let n=e;n<=t;n+=a){const e=Math.min(n+a-1,t);hr(A,n,e,s,this.compareMinY);for(let t=n;t<=e;t+=s){const n=Math.min(t+s-1,e);i.children.push(this._build(A,t,n,r-1))}}return er(i,this.toBBox),i}_chooseSubtree(A,e,t,r){for(;r.push(e),!e.leaf&&r.length-1!==t;){let t,r=1/0,n=1/0;for(let i=0;i<e.children.length;i++){const o=e.children[i],s=or(o),a=ar(A,o)-s;a<n?(n=a,r=s<r?s:r,t=o):a===n&&s<r&&(r=s,t=o)}e=t||e.children[0]}return e}_insert(A,e,t){const r=t?A:this.toBBox(A),n=[],i=this._chooseSubtree(r,this.data,e,n);for(i.children.push(A),rr(i,r);e>=0&&n[e].children.length>this._maxEntries;)this._split(n,e),e--;this._adjustParentBBoxes(r,n,e)}_split(A,e){const t=A[e],r=t.children.length,n=this._minEntries;this._chooseSplitAxis(t,n,r);const i=this._chooseSplitIndex(t,n,r),o=cr(t.children.splice(i,t.children.length-i));o.height=t.height,o.leaf=t.leaf,er(t,this.toBBox),er(o,this.toBBox),e?A[e-1].children.push(o):this._splitRoot(t,o)}_splitRoot(A,e){this.data=cr([A,e]),this.data.height=A.height+1,this.data.leaf=!1,er(this.data,this.toBBox)}_chooseSplitIndex(A,e,t){let r,n=1/0,i=1/0;for(let o=e;o<=t-e;o++){const e=tr(A,0,o,this.toBBox),s=tr(A,o,t,this.toBBox),a=lr(e,s),l=or(e)+or(s);a<n?(n=a,r=o,i=l<i?l:i):a===n&&l<i&&(i=l,r=o)}return r||t-e}_chooseSplitAxis(A,e,t){const r=A.leaf?this.compareMinX:nr,n=A.leaf?this.compareMinY:ir;this._allDistMargin(A,e,t,r)<this._allDistMargin(A,e,t,n)&&A.children.sort(r)}_allDistMargin(A,e,t,r){A.children.sort(r);const n=this.toBBox,i=tr(A,0,e,n),o=tr(A,t-e,t,n);let s=sr(i)+sr(o);for(let r=e;r<t-e;r++){const e=A.children[r];rr(i,A.leaf?n(e):e),s+=sr(i)}for(let r=t-e-1;r>=e;r--){const e=A.children[r];rr(o,A.leaf?n(e):e),s+=sr(o)}return s}_adjustParentBBoxes(A,e,t){for(let r=t;r>=0;r--)rr(e[r],A)}_condense(A){for(let e,t=A.length-1;t>=0;t--)0===A[t].children.length?t>0?(e=A[t-1].children,e.splice(e.indexOf(A[t]),1)):this.clear():er(A[t],this.toBBox)}}function Ar(A,e,t){if(!t)return e.indexOf(A);for(let r=0;r<e.length;r++)if(t(A,e[r]))return r;return-1}function er(A,e){tr(A,0,A.children.length,e,A)}function tr(A,e,t,r,n){n||(n=cr(null)),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(let i=e;i<t;i++){const e=A.children[i];rr(n,A.leaf?r(e):e)}return n}function rr(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 nr(A,e){return A.minX-e.minX}function ir(A,e){return A.minY-e.minY}function or(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function sr(A){return A.maxX-A.minX+(A.maxY-A.minY)}function ar(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 lr(A,e){const t=Math.max(A.minX,e.minX),r=Math.max(A.minY,e.minY),n=Math.min(A.maxX,e.maxX),i=Math.min(A.maxY,e.maxY);return Math.max(0,n-t)*Math.max(0,i-r)}function fr(A,e){return A.minX<=e.minX&&A.minY<=e.minY&&e.maxX<=A.maxX&&e.maxY<=A.maxY}function ur(A,e){return e.minX<=A.maxX&&e.minY<=A.maxY&&e.maxX>=A.minX&&e.maxY>=A.minY}function cr(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function hr(A,e,t,r,n){const i=[e,t];for(;i.length;){if((t=i.pop())-(e=i.pop())<=r)continue;const o=e+Math.ceil((t-e)/r/2)*r;Zt(A,o,e,t,n),i.push(e,o,o,t)}}function gr(A){var e=new $t(A);return e.insert=function(A){if("Feature"!==A.type)throw new Error("invalid feature");return A.bbox=A.bbox?A.bbox:Qe(A),$t.prototype.insert.call(this,A)},e.load=function(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:Qe(A),e.push(A)}):ye(A,function(A){if("Feature"!==A.type)throw new Error("invalid features");A.bbox=A.bbox?A.bbox:Qe(A),e.push(A)}),$t.prototype.load.call(this,e)},e.remove=function(A,e){if("Feature"!==A.type)throw new Error("invalid feature");return A.bbox=A.bbox?A.bbox:Qe(A),$t.prototype.remove.call(this,A,e)},e.clear=function(){return $t.prototype.clear.call(this)},e.search=function(A){return pe($t.prototype.search.call(this,this.toBBox(A)))},e.collides=function(A){return $t.prototype.collides.call(this,this.toBBox(A))},e.all=function(){return pe($t.prototype.all.call(this))},e.toJSON=function(){return $t.prototype.toJSON.call(this)},e.fromJSON=function(A){return $t.prototype.fromJSON.call(this,A)},e.toBBox=function(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=Qe(A);else{if("FeatureCollection"!==A.type)throw new Error("invalid geojson");e=Qe(A)}return{minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}},e}function dr(A,e,t={}){var r=xe(A),n=xe(e),i=me(n[1]-r[1]),o=me(n[0]-r[0]),s=me(r[1]),a=me(n[1]),l=Math.pow(Math.sin(i/2),2)+Math.pow(Math.sin(o/2),2)*Math.cos(s)*Math.cos(a);return function(A,e="kilometers"){const t=he[e];if(!t)throw new Error(e+" units is invalid");return A*t}(2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l)),t.units)}function wr(A,e){if(null===(t=e=null!=e?e:{})||"object"!=typeof t||Array.isArray(t))throw new Error("options is invalid");var t,r=e.precision,n=e.coordinates,i=e.mutate;if(r=null==r||isNaN(r)?6:r,n=null==n||isNaN(n)?3:n,!A)throw new Error("<geojson> is required");if("number"!=typeof r)throw new Error("<precision> must be a number");if("number"!=typeof n)throw new Error("<coordinates> must be a number");!1!==i&&void 0!==i||(A=JSON.parse(JSON.stringify(A)));var o=Math.pow(10,r);return ve(A,function(A){!function(A,e,t){A.length>t&&A.splice(t,A.length);for(var r=0;r<A.length;r++)A[r]=Math.round(A[r]*e)/e}(A,o,n)}),A}function pr(A){if(!A)throw new Error("geojson is required");const e=[];return ke(A,A=>{!function(A,e){let t=[];const r=A.geometry;if(null!==r){switch(r.type){case"Polygon":t=De(r);break;case"LineString":t=[De(r)]}t.forEach(t=>{const r=function(A,e){const t=[];return A.reduce((A,r)=>{const n=we([A,r],e);return n.bbox=function(A,e){const t=A[0],r=A[1],n=e[0],i=e[1];return[t<n?t:n,r<i?r:i,t>n?t:n,r>i?r:i]}(A,r),t.push(n),r}),t}(t,A.properties);r.forEach(A=>{A.id=e.length,e.push(A)})})}}(A,e)}),pe(e)}class br{constructor(A=[],e=mr){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,r=e[A];for(;A>0;){const n=A-1>>1,i=e[n];if(t(r,i)>=0)break;e[A]=i,A=n}e[A]=r}_down(A){const{data:e,compare:t}=this,r=this.length>>1,n=e[A];for(;A<r;){let r=1+(A<<1),i=e[r];const o=r+1;if(o<this.length&&t(e[o],i)<0&&(r=o,i=e[o]),t(i,n)>=0)break;e[A]=i,A=r}e[A]=n}}function mr(A,e){return A<e?-1:A>e?1:0}function Br(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 vr(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 yr{constructor(A,e,t,r){this.p={x:A[0],y:A[1]},this.featureId=e,this.ringId=t,this.eventId=r,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(A){return this.p.x===A.p.x&&this.p.y===A.p.y}}let Er=0,kr=0,Mr=0;function Qr(A,e){const t="Feature"===A.type?A.geometry:A;let r=t.coordinates;"Polygon"!==t.type&&"MultiLineString"!==t.type||(r=[r]),"LineString"===t.type&&(r=[[r]]);for(let A=0;A<r.length;A++)for(let t=0;t<r[A].length;t++){let n=r[A][t][0],i=null;kr+=1;for(let o=0;o<r[A][t].length-1;o++){i=r[A][t][o+1];const s=new yr(n,Er,kr,Mr),a=new yr(i,Er,kr,Mr+1);s.otherEvent=a,a.otherEvent=s,Br(s,a)>0?(a.isLeftEndpoint=!0,s.isLeftEndpoint=!1):(s.isLeftEndpoint=!0,a.isLeftEndpoint=!1),e.push(s),e.push(a),n=i,Mr+=1}}Er+=1}class _r{constructor(A){this.leftSweepEvent=A,this.rightSweepEvent=A.otherEvent}}function xr(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,r=A.leftSweepEvent.p.y,n=A.rightSweepEvent.p.x,i=A.rightSweepEvent.p.y,o=e.leftSweepEvent.p.x,s=e.leftSweepEvent.p.y,a=e.rightSweepEvent.p.x,l=e.rightSweepEvent.p.y,f=(l-s)*(n-t)-(a-o)*(i-r),u=(a-o)*(r-s)-(l-s)*(t-o),c=(n-t)*(r-s)-(i-r)*(t-o);if(0===f)return!1;const h=u/f,g=c/f;if(h>=0&&h<=1&&g>=0&&g<=1){return[t+h*(n-t),r+h*(i-r)]}return!1}var Dr=function(A,e){const t=new br([],Br);return function(A,e){if("FeatureCollection"===A.type){const t=A.features;for(let A=0;A<t.length;A++)Qr(t[A],e)}else Qr(A,e)}(A,t),function(A,e){e=e||!1;const t=[],r=new br([],vr);for(;A.length;){const n=A.pop();if(n.isLeftEndpoint){const A=new _r(n);for(let i=0;i<r.data.length;i++){const o=r.data[i];if(e&&o.leftSweepEvent.featureId===n.featureId)continue;const s=xr(A,o);!1!==s&&t.push(s)}r.push(A)}else!1===n.isLeftEndpoint&&r.pop()}return t}(t,e)};function Cr(A,e,t={}){const{removeDuplicates:r=!0,ignoreSelfIntersections:n=!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(ge(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(ge(e));const o=Dr(pe(i),n);let s=[];if(r){const A={};o.forEach(e=>{const t=e.join(",");A[t]||(A[t]=!0,s.push(e))})}else s=o;return pe(s.map(A=>de(A)))}var Ir=Object.defineProperty,Pr=Object.defineProperties,Fr=Object.getOwnPropertyDescriptors,Sr=Object.getOwnPropertySymbols,Tr=Object.prototype.hasOwnProperty,Gr=Object.prototype.propertyIsEnumerable,Lr=(A,e,t)=>e in A?Ir(A,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):A[e]=t,Ur=(A,e)=>{for(var t in e||(e={}))Tr.call(e,t)&&Lr(A,t,e[t]);if(Sr)for(var t of Sr(e))Gr.call(e,t)&&Lr(A,t,e[t]);return A},Rr=(A,e)=>Pr(A,Fr(e));function Yr(A,e,t={}){if(!A||!e)throw new Error("lines and pt are required arguments");const r=xe(e);let n=de([1/0,1/0],{dist:1/0,index:-1,multiFeatureIndex:-1,location:-1}),i=0;return ke(A,function(A,o,s){const a=De(A);for(let A=0;A<a.length-1;A++){const o=de(a[A]);o.properties.dist=dr(e,o,t);const l=xe(o),f=de(a[A+1]);f.properties.dist=dr(e,f,t);const u=xe(f),c=dr(o,f,t);let h,g,d;l[0]===r[0]&&l[1]===r[1]?[h,,g]=[l,void 0,!1]:u[0]===r[0]&&u[1]===r[1]?[h,,g]=[u,void 0,!0]:[h,,g]=Vr(o.geometry.coordinates,f.geometry.coordinates,xe(e)),h&&(d=de(h,{dist:dr(e,h,t),multiFeatureIndex:s,location:i+dr(o,h,t)})),d&&d.properties.dist<n.properties.dist&&(n=Rr(Ur({},d),{properties:Rr(Ur({},d.properties),{index:g?A+1:A})})),i+=c}}),n}function zr(A){return Math.sqrt(Math.pow(A[0],2)+Math.pow(A[1],2)+Math.pow(A[2],2))}function Or(A,e){const t=function(A,e){const[t,r,n]=A,[i,o,s]=e;return t*i+r*o+n*s}(A,e)/(zr(A)*zr(e));return Math.acos(Math.min(Math.max(t,-1),1))}function Hr(A){const e=me(A[1]),t=me(A[0]);return[Math.cos(e)*Math.cos(t),Math.cos(e)*Math.sin(t),Math.sin(e)]}function Nr(A){const[e,t,r]=A,n=be(Math.asin(r));return[be(Math.atan2(t,e)),n]}function Vr(A,e,t){const r=Hr(A),n=Hr(e),i=Hr(t),[o,s,a]=i,[l,f,u]=function(A,e){const[t,r,n]=A,[i,o,s]=e;return[r*s-n*o,n*i-t*s,t*o-r*i]}(r,n),c=f*a-u*s,h=u*o-l*a,g=l*s-f*o,d=g*f-h*u,w=c*u-g*l,p=h*l-c*f,b=1/Math.sqrt(Math.pow(d,2)+Math.pow(w,2)+Math.pow(p,2)),m=[d*b,w*b,p*b],B=[-1*d*b,-1*w*b,-1*p*b],v=Or(r,n),y=Or(r,m),E=Or(n,m),k=Or(r,B),M=Or(n,B);let Q;return Q=y<k&&y<M||E<k&&E<M?m:B,Or(r,Q)>v||Or(n,Q)>v?dr(Nr(Q),Nr(r))<=dr(Nr(Q),Nr(n))?[Nr(r),!0,!1]:[Nr(n),!1,!0]:[Nr(Q),!1,!1]}function Xr(A,e){if(!A)throw new Error("line is required");if(!e)throw new Error("splitter is required");var t=Ie(A),r=Ie(e);if("LineString"!==t)throw new Error("line must be LineString");if("FeatureCollection"===r)throw new Error("splitter cannot be a FeatureCollection");if("GeometryCollection"===r)throw new Error("splitter cannot be a GeometryCollection");var n=wr(e,{precision:7});switch(r){case"Point":return Wr(A,n);case"MultiPoint":return jr(A,n);case"LineString":case"MultiLineString":case"Polygon":case"MultiPolygon":return jr(A,Cr(A,n,{ignoreSelfIntersections:!0}))}}function jr(A,e){var t=[],r=gr();return ke(e,function(e){if(t.forEach(function(A,e){A.id=e}),t.length){var n=r.search(e);if(n.features.length){var i=Zr(e,n);t=t.filter(function(A){return A.id!==i.id}),r.remove(i),ye(Wr(i,e),function(A){t.push(A),r.insert(A)})}}else(t=Wr(A,e).features).forEach(function(A){A.bbox||(A.bbox=function(A){var e=A[0],t=A[1],r=A[2],n=A[3];if(dr(A.slice(0,2),[r,t])>=dr(A.slice(0,2),[e,n])){var i=(t+n)/2;return[e,i-(r-e)/2,r,i+(r-e)/2]}var o=(e+r)/2;return[o-(n-t)/2,t,o+(n-t)/2,n]}(Qe(A)))}),r.load(pe(t))}),pe(t)}function Wr(A,e){var t=[],r=De(A)[0],n=De(A)[A.geometry.coordinates.length-1];if(Jr(r,xe(e))||Jr(n,xe(e)))return pe([A]);var i=gr(),o=pr(A);i.load(o);var s=i.search(e);if(!s.features.length)return pe([A]);var a=Zr(e,s),l=function(A,e,t){var r=t;return ye(A,function(A,n){r=0===n&&void 0===t?A:e(r,A,n)}),r}(o,function(A,r,n){var i=De(r)[1],o=xe(e);return n===a.id?(A.push(o),t.push(we(A)),Jr(o,i)?[o]:[o,i]):(A.push(i),A)},[r]);return l.length>1&&t.push(we(l)),pe(t)}function Zr(A,e){if(!e.features.length)throw new Error("lines must contain features");if(1===e.features.length)return e.features[0];var t,r=1/0;return ye(e,function(e){var n=Yr(e,A).properties.dist;n<r&&(t=e,r=n)}),t}function Jr(A,e){return A[0]===e[0]&&A[1]===e[1]}function Kr(A,e={}){return Me(A,(A,t)=>{const r=t.geometry.coordinates;return A+dr(r[0],r[1],e)},0)}function qr(A,e={}){const t=Ce(A);switch(e.properties||"Feature"!==A.type||(e.properties=A.properties),t.type){case"Polygon":return function(A,e={}){const t=Ce(A),r=t.coordinates,n=e.properties?e.properties:"Feature"===A.type?A.properties:{};return $r(r,n)}(t,e);case"MultiPolygon":return function(A,e={}){const t=Ce(A),r=t.coordinates,n=e.properties?e.properties:"Feature"===A.type?A.properties:{},i=[];return r.forEach(A=>{i.push($r(A,n))}),pe(i)}(t,e);default:throw new Error("invalid poly")}}function $r(A,e){return A.length>1?function(A,e,t={}){return ge({type:"MultiLineString",coordinates:A},e,t)}(A,e):we(A[0],e)}function An(A,e,{ignoreSelfIntersections:t=!0}={ignoreSelfIntersections:!0}){let r=!0;return ke(A,A=>{ke(e,e=>{if(!1===r)return!1;r=function(A,e,t){switch(A.type){case"Point":switch(e.type){case"Point":return r=A.coordinates,n=e.coordinates,!(r[0]===n[0]&&r[1]===n[1]);case"LineString":return!en(e,A);case"Polygon":return!Pe(A,e)}break;case"LineString":switch(e.type){case"Point":return!en(A,e);case"LineString":return!function(A,e,t){const r=Cr(A,e,{ignoreSelfIntersections:t});if(r.features.length>0)return!0;return!1}(A,e,t);case"Polygon":return!tn(e,A,t)}break;case"Polygon":switch(e.type){case"Point":return!Pe(e,A);case"LineString":return!tn(A,e,t);case"Polygon":return!function(A,e,t){for(const t of A.coordinates[0])if(Pe(t,e))return!0;for(const t of e.coordinates[0])if(Pe(t,A))return!0;const r=Cr(qr(A),qr(e),{ignoreSelfIntersections:t});if(r.features.length>0)return!0;return!1}(e,A,t)}}var r,n;return!1}(A.geometry,e.geometry,t)})}),r}function en(A,e){for(let t=0;t<A.coordinates.length-1;t++)if(rn(A.coordinates[t],A.coordinates[t+1],e.coordinates))return!0;return!1}function tn(A,e,t){for(const t of e.coordinates)if(Pe(t,A))return!0;return Cr(e,qr(A),{ignoreSelfIntersections:t}).features.length>0}function rn(A,e,t){const r=t[0]-A[0],n=t[1]-A[1],i=e[0]-A[0],o=e[1]-A[1];return 0===r*o-n*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])}function nn(A,e,{ignoreSelfIntersections:t=!0}={}){let r=!1;return ke(A,A=>{ke(e,e=>{if(!0===r)return!0;r=!An(A.geometry,e.geometry,{ignoreSelfIntersections:t})})}),r}A.diamond=function({start:A=[0,0],width:e=1e3,height:r=500,step:n=50,overflow:i=!0}={}){let o=n*Math.sqrt(2),s=i?A[0]:A[0]+o/2,a=i?A[1]:A[1]+o/2,l=A[0]+e+o/2,f=A[1]+r+o/2,u=t(s,l,o),c=t(a,f,o/2,!1),h=u.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(t=>t[0]<=A[0]+e+o/2):h.filter(t=>t[0]<=A[0]+e-o/2),h=i?h.filter(e=>e[1]<=A[1]+r+o/2):h.filter(e=>e[1]<=A[1]+r-o/2);let g=o/2;return{type:"FeatureCollection",grid:"diamond",geo:!1,features:h.map((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[[[A[0]-g,A[1]],[A[0],A[1]+g],[A[0]+g,A[1]],[A[0],A[1]-g],[A[0]-g,A[1]]]]},properties:{index:e}}))}},A.dot=function({step:A=30,start:e=[0,0],width:r=1e3,height:n=500,overflow:i=!0}={}){let o=i?e[0]-A/2:e[0],s=i?e[1]-A/2:e[1],a=i?e[0]+r+A:e[0]+r,l=i?e[1]+n+A:e[1]+n,f=t(o,a,A),u=t(s,l,A,!0);return{type:"FeatureCollection",grid:"dot",geo:!1,features:f.map(A=>u.map(e=>[A,e])).flat().map((A,e)=>({type:"Feature",geometry:{type:"Point",coordinates:A},properties:{index:e}}))}},A.h3=function({level:A=0,domain:t,rewind:r}={}){let n;if(t){r=void 0===r||r;const e=jA.featureToH3Set(t,A);n=jA.h3SetToFeatureCollection(e,A=>({value:A}))}else r=void 0!==r&&r,n={type:"FeatureCollection",grid:"h3",level:A,geo:!0,features:rA().map(e=>tA(e,A)).flat().map(A=>{return{type:"Feature",properties:{id:A,pentagon:(e=A,t=j(e),r=t[0],n=t[1],Boolean(Y.isPentagon(r,n)))},geometry:{type:"Polygon",coordinates:[eA(A).reverse()]}};var e,t,r,n})};return r?e.rewind(n):n},A.hexbin=function({step:A=50,width:e=1e3,height:r=500,start:n=[0,0],overflow:i=!0}={}){const o=A,s=o/Math.sqrt(3),a=1.5*s,l=i?n[0]-o/2:n[0],f=i?n[1]-s:n[1],u=t(f+s,i?r+f+2*s:r+f-s,a),c=[];u.forEach((A,r)=>{const n=t(l+r%2*(o/2)+o/2,i?e+l:e+l-o-o/2,o);n.forEach(t=>{t<=e+l&&c.push([t,A])}),n[n.length-1]<e+l&&c.push([n[n.length-1]+o,A])});const h=c.map(([A,e],t)=>{const r=[];for(let t=0;t<6;t++){const n=Math.PI/180*(60*t-30);r.push([A+s*Math.cos(n),e+s*Math.sin(n)])}return r.push(r[0]),{type:"Feature",geometry:{type:"Polygon",coordinates:[r]},properties:{index:t}}});return{type:"FeatureCollection",grid:"hexbin",geo:!1,features:h}},A.linestogrid=function(A={}){const{grid:e,lines:t,var:r,values:n=!1,sum:i=!0,median:o=!1,min:s=!1,max:a=!1,mean:l=!1}=A,f=performance.now(),u=e.features,c=t.features,h=null!=r,g=new Map(u.map((A,e)=>[e,A])),d=new KA,w=u.map((A,e)=>{const[t,r,n,i]=Qe(A);return{minX:t,minY:r,maxX:n,maxY:i,i:e}});d.load(w);const p=new Map;u.forEach((A,e)=>{p.set(e,{countSet:new Set,valuesList:[],numericList:[]})}),c.forEach((A,e)=>{const t=Kr(A);if(0===t)return;const i=h?parseFloat(A.properties?.[r])||0:1,[o,s,a,l]=Qe(A),f=d.search({minX:o,minY:s,maxX:a,maxY:l});for(const o of f){const s=g.get(o.i);if(!nn(s,A))continue;const a=Xr(A,s);if(!a||0===a.features.length)continue;let l=0;if(a.features.forEach(A=>{const e=Kr(A);e>0&&nn(s,A)&&(l+=e)}),l>0){const s=p.get(o.i);s.countSet.add(e),n&&s.valuesList.push(h?A.properties[r]:e),h&&s.numericList.push(i*(l/t))}}});const b={type:"FeatureCollection",features:u.map((A,e)=>{const t=p.get(e),r=t.numericList,f=t.valuesList,u=t.countSet.size;if(0===u)return null;const c={count:u};return h&&r.length>0&&(i&&(c.sum=Oe(r)),l&&(c.mean=Ye(r)),o&&(c.median=ze(r)),s&&(c.min=Le(r)),a&&(c.max=Ge(r))),n&&(c.values=f),{type:A.type,properties:{...A.properties,...c},geometry:A.geometry}}).filter(A=>null!==A)},m=performance.now();return console.log(`Execution time: ${(m-f).toFixed(2)} ms`),b},A.pointstogrid=function(A={}){const{points:e,grid:t,var:r,values:n=!1,sum:i=!0,median:o=!1,min:s=!1,max:a=!1,mean:l=!1}=A,f=performance.now(),u=t.features,c=e.features,h=null!=r,g=new Map(u.map((A,e)=>[e,A])),d=new KA,w=u.map((A,e)=>{const[t,r,n,i]=Qe(A);return{minX:t,minY:r,maxX:n,maxY:i,i:e}});d.load(w);const p=new Map;u.forEach((A,e)=>{p.set(e,{countSet:new Set,valuesList:[],numericList:[]})}),c.forEach((A,e)=>{const t=A.geometry.coordinates[0],i=A.geometry.coordinates[1],o=d.search({minX:t,minY:i,maxX:t,maxY:i});for(const t of o){const i=g.get(t.i);if(!Fe(A,i))continue;const o=p.get(t.i);o.countSet.add(e);const s=h?A.properties[r]:1;n&&o.valuesList.push(h?A.properties[r]:e),h&&o.numericList.push(parseFloat(s)||0);break}});const b={type:"FeatureCollection",features:u.map((A,e)=>{const t=p.get(e),r=t.numericList,f=t.valuesList,u=t.countSet.size;if(0===u)return null;const c={count:u};return h&&r.length>0&&(i&&(c.sum=Oe(r)),l&&(c.mean=Ye(r)),o&&(c.median=ze(r)),s&&(c.min=Le(r)),a&&(c.max=Ge(r))),n&&(c.values=f),{type:A.type,properties:{...A.properties,...c},geometry:A.geometry}}).filter(A=>null!==A)},m=performance.now();return console.log(`Execution time: ${(m-f).toFixed(2)} ms`),b},A.polygonstogrid=function(A={}){const{grid:e,polygons:t,var:r,values:n=!1,sum:i=!0,median:o=!1,min:s=!1,max:a=!1,mean:l=!1}=A,f=performance.now(),u=e.features,c=t.features,h=null!=r,g=new Map(u.map((A,e)=>[e,A])),d=new KA,w=u.map((A,e)=>{const[t,r,n,i]=Qe(A);return{minX:t,minY:r,maxX:n,maxY:i,i:e}});d.load(w);const p=new Map;u.forEach((A,e)=>{p.set(e,{countSet:new Set,valuesList:[],numericList:[]})}),c.forEach((A,e)=>{const t=Wt(A),i=h?parseFloat(A.properties?.[r])||0:1,[o,s,a,l]=Qe(A),f=d.search({minX:o,minY:s,maxX:a,maxY:l});for(const o of f){const s=Ht(pe([A,g.get(o.i)]));if(!s)continue;const a=Wt(s)/t,l=p.get(o.i);l.countSet.add(e),n&&l.valuesList.push(h?A.properties[r]:1),h&&l.numericList.push(i*a)}});const b={type:"FeatureCollection",features:u.map((A,e)=>{const t=p.get(e),r=t.numericList,f=t.valuesList,u=t.countSet.size;if(0===u)return null;const c={count:u};return h&&r.length>0&&(i&&(c.sum=Oe(r)),l&&(c.mean=Ye(r)),o&&(c.median=ze(r)),s&&(c.min=Le(r)),a&&(c.max=Ge(r))),n&&(c.values=f),{type:A.type,properties:{...A.properties,...c},geometry:A.geometry}}).filter(A=>null!==A)},m=performance.now();return console.log(`Optimized execution time: ${(m-f).toFixed(2)} ms`),b},A.project=function(A,{projection:e=null}={}){if(!e)return A;function t(A){return"number"==typeof A[0]?e(A):A.map(t)}const r=A.features.map(A=>({...A,geometry:{...A.geometry,coordinates:t(A.geometry.coordinates)}}));return{...A,features:r}},A.random=function({start:A=[0,0],width:e=1e3,height:t=500,step:r=50,overflow:n=!1}={}){let i=n?A[0]-r:A[0],o=n?A[1]-r:A[1],s=n?A[0]+e+r:i+e,a=n?A[1]+t+r:o+t,l=n?e+2*r:e,f=n?t+2*r:t,u=[],c=Math.round(e/r*(t/r));for(let A=0;A<c;A++)u.push([Math.random()*l+i,Math.random()*f+o]);let h=P.Delaunay.from(u,A=>A[0],A=>A[1]).voronoi([i,o,s,a]);return{type:"FeatureCollection",grid:"random",geo:!1,features:u.map((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[h.cellPolygon(e)]},properties:{index:e}}))}},A.square=function({start:A=[0,0],width:e=1e3,height:r=500,step:n=50,overflow:i=!0}={}){let o=i?A[0]:A[0]+n/2,s=t(i?A[1]:A[1]+n/2,A[1]+r-n/2,n,!0),a=t(o,A[0]+e-n/2,n);i&&(s[0]+n/2<A[1]+r&&s.unshift(s[0]+n),a.at(-1)+n/2<A[0]+e&&a.push(a.at(-1)+n));let l=a.map(A=>s.map(e=>[A,e])).flat(),f=n/2;return{type:"FeatureCollection",grid:"square",geo:!1,features:l.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}}))}},A.triangle=function({start:A=[0,0],width:e=1e3,height:r=500,step:n=50,overflow:i=!0}={}){let o=(A,e)=>{let t=Math.sqrt(3)/2*e,r=[A[0]+e/2,A[1]];return[r,[A[0],A[1]-t],[A[0]-e/2,A[1]],r]},s=(A,e)=>{let t=Math.sqrt(3)/2*e,r=[A[0]+e/2,A[1]];return[r,[A[0],A[1]+t],[A[0]-e/2,A[1]],r]},a=Math.sqrt(3)/2*n,l=i?A[0]-n/2:A[0],f=i?A[1]-a/2:A[1],u=A[0]+e+a,c=l+r+a,h=t(l,u,n),g=t(f,c,a,!0);g.length%2&&g.unshift(g[0]+a);let d=h.map((A,e)=>g.map(e=>[A,e])).flat();d=d.map((A,e)=>e%2==1?[A[0]+n/2,A[1]]:A);let w=d.length;d=d.concat(d);let p=[];return d.forEach((t,u)=>{i?u<w?t[0]<=l+e+n&&t[0]>l&&t[1]>=f+n/2&&t[1]<=A[1]+r+a&&p.push(o(t,n)):t[0]<=l+e+n&&t[0]>l&&t[1]<=A[1]+r&&p.push(s(t,n)):u<w?t[0]<=l+e-n/2&&t[0]>l&&t[1]<=f+r&&t[1]>f&&p.push(o(t,n)):t[0]<=l+e-n/2&&t[0]>l&&t[1]<=f+r-a&&p.push(s(t,n))}),{type:"FeatureCollection",grid:"triangle",geo:!1,features:p.map((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[A]},properties:{index:e,coords:A}}))}}});
1
+ !function(A,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("geotoolbox")):"function"==typeof define&&define.amd?define(["exports","geotoolbox"],e):e((A="undefined"!=typeof globalThis?globalThis:A||self).geogrid={},A.geotoolbox)}(this,function(A,e){"use strict";function t(A,e,t,r=!1){const n=[];for(let r=A;r<=e;r+=t)n.push(r);return r?n.reverse():n}const r=134217729;function n(A,e,t,r,n){let i,o,s,a,l=e[0],f=r[0],u=0,c=0;f>l==f>-l?(i=l,l=e[++u]):(i=f,f=r[++c]);let h=0;if(u<A&&c<t)for(f>l==f>-l?(o=l+i,s=i-(o-l),l=e[++u]):(o=f+i,s=i-(o-f),f=r[++c]),i=o,0!==s&&(n[h++]=s);u<A&&c<t;)f>l==f>-l?(o=i+l,a=o-i,s=i-(o-a)+(l-a),l=e[++u]):(o=i+f,a=o-i,s=i-(o-a)+(f-a),f=r[++c]),i=o,0!==s&&(n[h++]=s);for(;u<A;)o=i+l,a=o-i,s=i-(o-a)+(l-a),l=e[++u],i=o,0!==s&&(n[h++]=s);for(;c<t;)o=i+f,a=o-i,s=i-(o-a)+(f-a),f=r[++c],i=o,0!==s&&(n[h++]=s);return 0===i&&0!==h||(n[h++]=i),h}function i(A){return new Float64Array(A)}const o=i(4),s=i(8),a=i(12),l=i(16),f=i(4);function u(A,e,t,i,u,c){const h=(e-c)*(t-u),g=(A-u)*(i-c),d=h-g,w=Math.abs(h+g);return Math.abs(d)>=33306690738754716e-32*w?d:-function(A,e,t,i,u,c,h){let g,d,w,p,b,B,m,v,y,E,k,_,M,Q,x,D,C,I;const P=A-u,F=t-u,S=e-c,T=i-c;Q=P*T,B=r*P,m=B-(B-P),v=P-m,B=r*T,y=B-(B-T),E=T-y,x=v*E-(Q-m*y-v*y-m*E),D=S*F,B=r*S,m=B-(B-S),v=S-m,B=r*F,y=B-(B-F),E=F-y,C=v*E-(D-m*y-v*y-m*E),k=x-C,b=x-k,o[0]=x-(k+b)+(b-C),_=Q+k,b=_-Q,M=Q-(_-b)+(k-b),k=M-D,b=M-k,o[1]=M-(k+b)+(b-D),I=_+k,b=I-_,o[2]=_-(I-b)+(k-b),o[3]=I;let G=function(A,e){let t=e[0];for(let r=1;r<A;r++)t+=e[r];return t}(4,o),L=22204460492503146e-32*h;if(G>=L||-G>=L)return G;if(b=A-P,g=A-(P+b)+(b-u),b=t-F,w=t-(F+b)+(b-u),b=e-S,d=e-(S+b)+(b-c),b=i-T,p=i-(T+b)+(b-c),0===g&&0===d&&0===w&&0===p)return G;if(L=11093356479670487e-47*h+33306690738754706e-32*Math.abs(G),G+=P*p+T*g-(S*w+F*d),G>=L||-G>=L)return G;Q=g*T,B=r*g,m=B-(B-g),v=g-m,B=r*T,y=B-(B-T),E=T-y,x=v*E-(Q-m*y-v*y-m*E),D=d*F,B=r*d,m=B-(B-d),v=d-m,B=r*F,y=B-(B-F),E=F-y,C=v*E-(D-m*y-v*y-m*E),k=x-C,b=x-k,f[0]=x-(k+b)+(b-C),_=Q+k,b=_-Q,M=Q-(_-b)+(k-b),k=M-D,b=M-k,f[1]=M-(k+b)+(b-D),I=_+k,b=I-_,f[2]=_-(I-b)+(k-b),f[3]=I;const R=n(4,o,4,f,s);Q=P*p,B=r*P,m=B-(B-P),v=P-m,B=r*p,y=B-(B-p),E=p-y,x=v*E-(Q-m*y-v*y-m*E),D=S*w,B=r*S,m=B-(B-S),v=S-m,B=r*w,y=B-(B-w),E=w-y,C=v*E-(D-m*y-v*y-m*E),k=x-C,b=x-k,f[0]=x-(k+b)+(b-C),_=Q+k,b=_-Q,M=Q-(_-b)+(k-b),k=M-D,b=M-k,f[1]=M-(k+b)+(b-D),I=_+k,b=I-_,f[2]=_-(I-b)+(k-b),f[3]=I;const U=n(R,s,4,f,a);Q=g*p,B=r*g,m=B-(B-g),v=g-m,B=r*p,y=B-(B-p),E=p-y,x=v*E-(Q-m*y-v*y-m*E),D=d*w,B=r*d,m=B-(B-d),v=d-m,B=r*w,y=B-(B-w),E=w-y,C=v*E-(D-m*y-v*y-m*E),k=x-C,b=x-k,f[0]=x-(k+b)+(b-C),_=Q+k,b=_-Q,M=Q-(_-b)+(k-b),k=M-D,b=M-k,f[1]=M-(k+b)+(b-D),I=_+k,b=I-_,f[2]=_-(I-b)+(k-b),f[3]=I;const Y=n(U,a,4,f,l);return l[Y-1]}(A,e,t,i,u,c,w)}const c=Math.pow(2,-52),h=new Uint32Array(512);class g{static from(A,e=m,t=v){const r=A.length,n=new Float64Array(2*r);for(let i=0;i<r;i++){const r=A[i];n[2*i]=e(r),n[2*i+1]=t(r)}return new g(n)}constructor(A){const e=A.length>>1;if(e>0&&"number"!=typeof A[0])throw new Error("Expected coords to contain numbers.");this.coords=A;const t=Math.max(2*e-5,0);this._triangles=new Uint32Array(3*t),this._halfedges=new Int32Array(3*t),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:A,_hullPrev:e,_hullNext:t,_hullTri:r,_hullHash:n}=this,i=A.length>>1;let o=1/0,s=1/0,a=-1/0,l=-1/0;for(let e=0;e<i;e++){const t=A[2*e],r=A[2*e+1];t<o&&(o=t),r<s&&(s=r),t>a&&(a=t),r>l&&(l=r),this._ids[e]=e}const f=(o+a)/2,h=(s+l)/2;let g,w,B;for(let e=0,t=1/0;e<i;e++){const r=d(f,h,A[2*e],A[2*e+1]);r<t&&(g=e,t=r)}const m=A[2*g],v=A[2*g+1];for(let e=0,t=1/0;e<i;e++){if(e===g)continue;const r=d(m,v,A[2*e],A[2*e+1]);r<t&&r>0&&(w=e,t=r)}let y=A[2*w],E=A[2*w+1],k=1/0;for(let e=0;e<i;e++){if(e===g||e===w)continue;const t=p(m,v,y,E,A[2*e],A[2*e+1]);t<k&&(B=e,k=t)}let _=A[2*B],M=A[2*B+1];if(k===1/0){for(let e=0;e<i;e++)this._dists[e]=A[2*e]-A[0]||A[2*e+1]-A[1];b(this._ids,this._dists,0,i-1);const e=new Uint32Array(i);let t=0;for(let A=0,r=-1/0;A<i;A++){const n=this._ids[A],i=this._dists[n];i>r&&(e[t++]=n,r=i)}return this.hull=e.subarray(0,t),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(u(m,v,y,E,_,M)<0){const A=w,e=y,t=E;w=B,y=_,E=M,B=A,_=e,M=t}const Q=function(A,e,t,r,n,i){const o=t-A,s=r-e,a=n-A,l=i-e,f=o*o+s*s,u=a*a+l*l,c=.5/(o*l-s*a);return{x:A+(l*f-s*u)*c,y:e+(o*u-a*f)*c}}(m,v,y,E,_,M);this._cx=Q.x,this._cy=Q.y;for(let e=0;e<i;e++)this._dists[e]=d(A[2*e],A[2*e+1],Q.x,Q.y);b(this._ids,this._dists,0,i-1),this._hullStart=g;let x=3;t[g]=e[B]=w,t[w]=e[g]=B,t[B]=e[w]=g,r[g]=0,r[w]=1,r[B]=2,n.fill(-1),n[this._hashKey(m,v)]=g,n[this._hashKey(y,E)]=w,n[this._hashKey(_,M)]=B,this.trianglesLen=0,this._addTriangle(g,w,B,-1,-1,-1);for(let i,o,s=0;s<this._ids.length;s++){const a=this._ids[s],l=A[2*a],f=A[2*a+1];if(s>0&&Math.abs(l-i)<=c&&Math.abs(f-o)<=c)continue;if(i=l,o=f,a===g||a===w||a===B)continue;let h=0;for(let A=0,e=this._hashKey(l,f);A<this._hashSize&&(h=n[(e+A)%this._hashSize],-1===h||h===t[h]);A++);h=e[h];let d,p=h;for(;d=t[p],u(l,f,A[2*p],A[2*p+1],A[2*d],A[2*d+1])>=0;)if(p=d,p===h){p=-1;break}if(-1===p)continue;let b=this._addTriangle(p,a,t[p],-1,-1,r[p]);r[a]=this._legalize(b+2),r[p]=b,x++;let m=t[p];for(;d=t[m],u(l,f,A[2*m],A[2*m+1],A[2*d],A[2*d+1])<0;)b=this._addTriangle(m,a,d,r[a],-1,r[m]),r[a]=this._legalize(b+2),t[m]=m,x--,m=d;if(p===h)for(;d=e[p],u(l,f,A[2*d],A[2*d+1],A[2*p],A[2*p+1])<0;)b=this._addTriangle(d,a,p,-1,r[p],r[d]),this._legalize(b+2),r[d]=b,t[p]=p,x--,p=d;this._hullStart=e[a]=p,t[p]=e[m]=a,t[a]=m,n[this._hashKey(l,f)]=a,n[this._hashKey(A[2*p],A[2*p+1])]=p}this.hull=new Uint32Array(x);for(let A=0,e=this._hullStart;A<x;A++)this.hull[A]=e,e=t[e];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(A,e){return Math.floor(function(A,e){const t=A/(Math.abs(A)+Math.abs(e));return(e>0?3-t:1+t)/4}(A-this._cx,e-this._cy)*this._hashSize)%this._hashSize}_legalize(A){const{_triangles:e,_halfedges:t,coords:r}=this;let n=0,i=0;for(;;){const o=t[A],s=A-A%3;if(i=s+(A+2)%3,-1===o){if(0===n)break;A=h[--n];continue}const a=o-o%3,l=s+(A+1)%3,f=a+(o+2)%3,u=e[i],c=e[A],g=e[l],d=e[f];if(w(r[2*u],r[2*u+1],r[2*c],r[2*c+1],r[2*g],r[2*g+1],r[2*d],r[2*d+1])){e[A]=d,e[o]=u;const r=t[f];if(-1===r){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,r),this._link(o,t[i]),this._link(i,f);const s=a+(o+1)%3;n<h.length&&(h[n++]=s)}else{if(0===n)break;A=h[--n]}}return i}_link(A,e){this._halfedges[A]=e,-1!==e&&(this._halfedges[e]=A)}_addTriangle(A,e,t,r,n,i){const o=this.trianglesLen;return this._triangles[o]=A,this._triangles[o+1]=e,this._triangles[o+2]=t,this._link(o,r),this._link(o+1,n),this._link(o+2,i),this.trianglesLen+=3,o}}function d(A,e,t,r){const n=A-t,i=e-r;return n*n+i*i}function w(A,e,t,r,n,i,o,s){const a=A-o,l=e-s,f=t-o,u=r-s,c=n-o,h=i-s,g=f*f+u*u,d=c*c+h*h;return a*(u*d-g*h)-l*(f*d-g*c)+(a*a+l*l)*(f*h-u*c)<0}function p(A,e,t,r,n,i){const o=t-A,s=r-e,a=n-A,l=i-e,f=o*o+s*s,u=a*a+l*l,c=.5/(o*l-s*a),h=(l*f-s*u)*c,g=(o*u-a*f)*c;return h*h+g*g}function b(A,e,t,r){if(r-t<=20)for(let n=t+1;n<=r;n++){const r=A[n],i=e[r];let o=n-1;for(;o>=t&&e[A[o]]>i;)A[o+1]=A[o--];A[o+1]=r}else{let n=t+1,i=r;B(A,t+r>>1,n),e[A[t]]>e[A[r]]&&B(A,t,r),e[A[n]]>e[A[r]]&&B(A,n,r),e[A[t]]>e[A[n]]&&B(A,t,n);const o=A[n],s=e[o];for(;;){do{n++}while(e[A[n]]<s);do{i--}while(e[A[i]]>s);if(i<n)break;B(A,n,i)}A[t+1]=A[i],A[i]=o,r-n+1>=i-t?(b(A,e,n,r),b(A,e,t,i-1)):(b(A,e,t,i-1),b(A,e,n,r))}}function B(A,e,t){const r=A[e];A[e]=A[t],A[t]=r}function m(A){return A[0]}function v(A){return A[1]}const y=1e-6;class E{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(A,e){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(A,e){this._+=`L${this._x1=+A},${this._y1=+e}`}arc(A,e,t){const r=(A=+A)+(t=+t),n=e=+e;if(t<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${n}`:(Math.abs(this._x1-r)>y||Math.abs(this._y1-n)>y)&&(this._+="L"+r+","+n),t&&(this._+=`A${t},${t},0,1,1,${A-t},${e}A${t},${t},0,1,1,${this._x1=r},${this._y1=n}`)}rect(A,e,t,r){this._+=`M${this._x0=this._x1=+A},${this._y0=this._y1=+e}h${+t}v${+r}h${-t}Z`}value(){return this._||null}}class 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,r,n]=[0,0,960,500]){if(!((r=+r)>=(e=+e)&&(n=+n)>=(t=+t)))throw new Error("invalid bounds");this.delaunay=A,this._circumcenters=new Float64Array(2*A.points.length),this.vectors=new Float64Array(2*A.points.length),this.xmax=r,this.xmin=e,this.ymax=n,this.ymin=t,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:A,hull:e,triangles:t},vectors:r}=this;let n,i;const o=this.circumcenters=this._circumcenters.subarray(0,t.length/3*2);for(let r,s,a=0,l=0,f=t.length;a<f;a+=3,l+=2){const f=2*t[a],u=2*t[a+1],c=2*t[a+2],h=A[f],g=A[f+1],d=A[u],w=A[u+1],p=A[c],b=A[c+1],B=d-h,m=w-g,v=p-h,y=b-g,E=2*(B*y-m*v);if(Math.abs(E)<1e-9){if(void 0===n){n=i=0;for(const t of e)n+=A[2*t],i+=A[2*t+1];n/=e.length,i/=e.length}const t=1e9*Math.sign((n-h)*y-(i-g)*v);r=(h+p)/2-t*y,s=(g+b)/2+t*v}else{const A=1/E,e=B*B+m*m,t=v*v+y*y;r=h+(y*e-m*t)*A,s=g+(B*t-v*e)*A}o[l]=r,o[l+1]=s}let s,a,l,f=e[e.length-1],u=4*f,c=A[2*f],h=A[2*f+1];r.fill(0);for(let t=0;t<e.length;++t)f=e[t],s=u,a=c,l=h,u=4*f,c=A[2*f],h=A[2*f+1],r[s+2]=r[u]=l-h,r[s+3]=r[u+1]=c-a}render(A){const e=null==A?A=new E:void 0,{delaunay:{halfedges:t,inedges:r,hull:n},circumcenters:i,vectors:o}=this;if(n.length<=1)return null;for(let e=0,r=t.length;e<r;++e){const r=t[e];if(r<e)continue;const n=2*Math.floor(e/3),o=2*Math.floor(r/3),s=i[n],a=i[n+1],l=i[o],f=i[o+1];this._renderSegment(s,a,l,f,A)}let s,a=n[n.length-1];for(let e=0;e<n.length;++e){s=a,a=n[e];const t=2*Math.floor(r[a]/3),l=i[t],f=i[t+1],u=4*s,c=this._project(l,f,o[u+2],o[u+3]);c&&this._renderSegment(l,f,c[0],c[1],A)}return e&&e.value()}renderBounds(A){const e=null==A?A=new E: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 E:void 0,r=this._clip(A);if(null===r||!r.length)return;e.moveTo(r[0],r[1]);let n=r.length;for(;r[0]===r[n-2]&&r[1]===r[n-1]&&n>1;)n-=2;for(let A=2;A<n;A+=2)r[A]===r[A-2]&&r[A+1]===r[A-1]||e.lineTo(r[A],r[A+1]);return e.closePath(),t&&t.value()}*cellPolygons(){const{delaunay:{points:A}}=this;for(let e=0,t=A.length/2;e<t;++e){const A=this.cellPolygon(e);A&&(A.index=e,yield A)}}cellPolygon(A){const e=new k;return this.renderCell(A,e),e.value()}_renderSegment(A,e,t,r,n){let i;const o=this._regioncode(A,e),s=this._regioncode(t,r);0===o&&0===s?(n.moveTo(A,e),n.lineTo(t,r)):(i=this._clipSegment(A,e,t,r,o,s))&&(n.moveTo(i[0],i[1]),n.lineTo(i[2],i[3]))}contains(A,e,t){return(e=+e)==e&&(t=+t)==t&&this.delaunay._step(A,e,t)===A}*neighbors(A){const e=this._clip(A);if(e)for(const t of this.delaunay.neighbors(A)){const A=this._clip(t);if(A)A:for(let r=0,n=e.length;r<n;r+=2)for(let i=0,o=A.length;i<o;i+=2)if(e[r]===A[i]&&e[r+1]===A[i+1]&&e[(r+2)%n]===A[(i+o-2)%o]&&e[(r+3)%n]===A[(i+o-1)%o]){yield t;break A}}}_cell(A){const{circumcenters:e,delaunay:{inedges:t,halfedges:r,triangles:n}}=this,i=t[A];if(-1===i)return null;const o=[];let s=i;do{const t=Math.floor(s/3);if(o.push(e[2*t],e[2*t+1]),s=s%3==2?s-2:s+1,n[s]!==A)break;s=r[s]}while(s!==i&&-1!==s);return o}_clip(A){if(0===A&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const e=this._cell(A);if(null===e)return null;const{vectors:t}=this,r=4*A;return this._simplify(t[r]||t[r+1]?this._clipInfinite(A,e,t[r],t[r+1],t[r+2],t[r+3]):this._clipFinite(A,e))}_clipFinite(A,e){const t=e.length;let r,n,i,o,s=null,a=e[t-2],l=e[t-1],f=this._regioncode(a,l),u=0;for(let c=0;c<t;c+=2)if(r=a,n=l,a=e[c],l=e[c+1],i=f,f=this._regioncode(a,l),0===i&&0===f)o=u,u=0,s?s.push(a,l):s=[a,l];else{let e,t,c,h,g;if(0===i){if(null===(e=this._clipSegment(r,n,a,l,i,f)))continue;[t,c,h,g]=e}else{if(null===(e=this._clipSegment(a,l,r,n,f,i)))continue;[h,g,t,c]=e,o=u,u=this._edgecode(t,c),o&&u&&this._edge(A,o,u,s,s.length),s?s.push(t,c):s=[t,c]}o=u,u=this._edgecode(h,g),o&&u&&this._edge(A,o,u,s,s.length),s?s.push(h,g):s=[h,g]}if(s)o=u,u=this._edgecode(s[0],s[1]),o&&u&&this._edge(A,o,u,s,s.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 s}_clipSegment(A,e,t,r,n,i){const o=n<i;for(o&&([A,e,t,r,n,i]=[t,r,A,e,i,n]);;){if(0===n&&0===i)return o?[t,r,A,e]:[A,e,t,r];if(n&i)return null;let s,a,l=n||i;8&l?(s=A+(t-A)*(this.ymax-e)/(r-e),a=this.ymax):4&l?(s=A+(t-A)*(this.ymin-e)/(r-e),a=this.ymin):2&l?(a=e+(r-e)*(this.xmax-A)/(t-A),s=this.xmax):(a=e+(r-e)*(this.xmin-A)/(t-A),s=this.xmin),n?(A=s,e=a,n=this._regioncode(A,e)):(t=s,r=a,i=this._regioncode(t,r))}}_clipInfinite(A,e,t,r,n,i){let o,s=Array.from(e);if((o=this._project(s[0],s[1],t,r))&&s.unshift(o[0],o[1]),(o=this._project(s[s.length-2],s[s.length-1],n,i))&&s.push(o[0],o[1]),s=this._clipFinite(A,s))for(let e,t=0,r=s.length,n=this._edgecode(s[r-2],s[r-1]);t<r;t+=2)e=n,n=this._edgecode(s[t],s[t+1]),e&&n&&(t=this._edge(A,e,n,s,t),r=s.length);else this.contains(A,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(A,e,t,r,n){for(;e!==t;){let t,i;switch(e){case 5:e=4;continue;case 4:e=6,t=this.xmax,i=this.ymin;break;case 6:e=2;continue;case 2:e=10,t=this.xmax,i=this.ymax;break;case 10:e=8;continue;case 8:e=9,t=this.xmin,i=this.ymax;break;case 9:e=1;continue;case 1:e=5,t=this.xmin,i=this.ymin}r[n]===t&&r[n+1]===i||!this.contains(A,t,i)||(r.splice(n,0,t,i),n+=2)}return n}_project(A,e,t,r){let n,i,o,s=1/0;if(r<0){if(e<=this.ymin)return null;(n=(this.ymin-e)/r)<s&&(o=this.ymin,i=A+(s=n)*t)}else if(r>0){if(e>=this.ymax)return null;(n=(this.ymax-e)/r)<s&&(o=this.ymax,i=A+(s=n)*t)}if(t>0){if(A>=this.xmax)return null;(n=(this.xmax-A)/t)<s&&(i=this.xmax,o=e+(s=n)*r)}else if(t<0){if(A<=this.xmin)return null;(n=(this.xmin-A)/t)<s&&(i=this.xmin,o=e+(s=n)*r)}return[i,o]}_edgecode(A,e){return(A===this.xmin?1:A===this.xmax?2:0)|(e===this.ymin?4:e===this.ymax?8:0)}_regioncode(A,e){return(A<this.xmin?1:A>this.xmax?2:0)|(e<this.ymin?4:e>this.ymax?8:0)}_simplify(A){if(A&&A.length>4){for(let e=0;e<A.length;e+=2){const t=(e+2)%A.length,r=(e+4)%A.length;(A[e]===A[t]&&A[t]===A[r]||A[e+1]===A[t+1]&&A[t+1]===A[r+1])&&(A.splice(t,2),e-=2)}A.length||(A=null)}return A}}const M=2*Math.PI,Q=Math.pow;function x(A){return A[0]}function D(A){return A[1]}function C(A,e,t){return[A+Math.sin(A+e)*t,e+Math.cos(A-e)*t]}class I{static from(A,e=x,t=D,r){return new I("length"in A?function(A,e,t,r){const n=A.length,i=new Float64Array(2*n);for(let o=0;o<n;++o){const n=A[o];i[2*o]=e.call(r,n,o,A),i[2*o+1]=t.call(r,n,o,A)}return i}(A,e,t,r):Float64Array.from(function*(A,e,t,r){let n=0;for(const i of A)yield e.call(r,i,n,A),yield t.call(r,i,n,A),++n}(A,e,t,r)))}constructor(A){this._delaunator=new g(A),this.inedges=new Int32Array(A.length/2),this._hullIndex=new Int32Array(A.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const A=this._delaunator,e=this.points;if(A.hull&&A.hull.length>2&&function(A){const{triangles:e,coords:t}=A;for(let A=0;A<e.length;A+=3){const r=2*e[A],n=2*e[A+1],i=2*e[A+2];if((t[i]-t[r])*(t[n+1]-t[r+1])-(t[n]-t[r])*(t[i+1]-t[r+1])>1e-10)return!1}return!0}(A)){this.collinear=Int32Array.from({length:e.length/2},(A,e)=>e).sort((A,t)=>e[2*A]-e[2*t]||e[2*A+1]-e[2*t+1]);const A=this.collinear[0],t=this.collinear[this.collinear.length-1],r=[e[2*A],e[2*A+1],e[2*t],e[2*t+1]],n=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let A=0,t=e.length/2;A<t;++A){const t=C(e[2*A],e[2*A+1],n);e[2*A]=t[0],e[2*A+1]=t[1]}this._delaunator=new g(e)}else delete this.collinear;const t=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,n=this.triangles=this._delaunator.triangles,i=this.inedges.fill(-1),o=this._hullIndex.fill(-1);for(let A=0,e=t.length;A<e;++A){const e=n[A%3==2?A-2:A+1];-1!==t[A]&&-1!==i[e]||(i[e]=A)}for(let A=0,e=r.length;A<e;++A)o[r[A]]=A;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],i[r[0]]=1,2===r.length&&(i[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(A){return new _(this,A)}*neighbors(A){const{inedges:e,hull:t,_hullIndex:r,halfedges:n,triangles:i,collinear:o}=this;if(o){const e=o.indexOf(A);return e>0&&(yield o[e-1]),void(e<o.length-1&&(yield o[e+1]))}const s=e[A];if(-1===s)return;let a=s,l=-1;do{if(yield l=i[a],a=a%3==2?a-2:a+1,i[a]!==A)return;if(a=n[a],-1===a){const e=t[(r[A]+1)%t.length];return void(e!==l&&(yield e))}}while(a!==s)}find(A,e,t=0){if((A=+A)!=A||(e=+e)!=e)return-1;const r=t;let n;for(;(n=this._step(t,A,e))>=0&&n!==t&&n!==r;)t=n;return n}_step(A,e,t){const{inedges:r,hull:n,_hullIndex:i,halfedges:o,triangles:s,points:a}=this;if(-1===r[A]||!a.length)return(A+1)%(a.length>>1);let l=A,f=Q(e-a[2*A],2)+Q(t-a[2*A+1],2);const u=r[A];let c=u;do{let r=s[c];const u=Q(e-a[2*r],2)+Q(t-a[2*r+1],2);if(u<f&&(f=u,l=r),c=c%3==2?c-2:c+1,s[c]!==A)break;if(c=o[c],-1===c){if(c=n[(i[A]+1)%n.length],c!==r&&Q(e-a[2*c],2)+Q(t-a[2*c+1],2)<f)return c;break}}while(c!==u);return l}render(A){const e=null==A?A=new E:void 0,{points:t,halfedges:r,triangles:n}=this;for(let e=0,i=r.length;e<i;++e){const i=r[e];if(i<e)continue;const o=2*n[e],s=2*n[i];A.moveTo(t[o],t[o+1]),A.lineTo(t[s],t[s+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 E:void 0,{points:r}=this;for(let t=0,n=r.length;t<n;t+=2){const n=r[t],i=r[t+1];A.moveTo(n+e,i),A.arc(n,i,e,0,M)}return t&&t.value()}renderHull(A){const e=null==A?A=new E:void 0,{hull:t,points:r}=this,n=2*t[0],i=t.length;A.moveTo(r[n],r[n+1]);for(let e=1;e<i;++e){const n=2*t[e];A.lineTo(r[n],r[n+1])}return A.closePath(),e&&e.value()}hullPolygon(){const A=new k;return this.renderHull(A),A.value()}renderTriangle(A,e){const t=null==e?e=new E:void 0,{points:r,triangles:n}=this,i=2*n[A*=3],o=2*n[A+1],s=2*n[A+2];return e.moveTo(r[i],r[i+1]),e.lineTo(r[o],r[o+1]),e.lineTo(r[s],r[s+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});var F=function(A){var e,t=void 0!==(A=A||{})?A:{},r={};for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);var n,i,o,s,a;n="object"==typeof window,i="function"==typeof importScripts,s="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=s&&!n&&!i,a=!n&&!o&&!i;var l,f,u,c,h,g="";o?(g=__dirname+"/",l=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()},u=function(A){var e=l(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]"}):a?("undefined"!=typeof read&&(l=function(A){var e=eA(A);return e?$(e):read(A)}),u=function(A){var e;return(e=eA(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)):(n||i)&&(i?g=self.location.href:"undefined"!=typeof document&&document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",l=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var t=eA(A);if(t)return $(t);throw e}},i&&(u=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}catch(e){var t=eA(A);if(t)return t;throw e}}),f=function(A,e,t){var r=new XMLHttpRequest;r.open("GET",A,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)e(r.response);else{var n=eA(A);n?e(n.buffer):t()}},r.onerror=t,r.send(null)});var d=t.print||console.log.bind(console),w=t.printErr||console.warn.bind(console);for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);r=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram;var p=0;var b=!1;function B(A,e){A||dA("Assertion failed: "+e)}function m(A){var e=t["_"+A];return B(e,"Cannot call unknown function "+A+", make sure it is exported"),e}function v(A,e,t,r,n){var i={string:function(A){var e=0;if(null!=A&&0!==A){var t=1+(A.length<<2);(function(A,e,t){(function(A,e,t,r){if(!(r>0))return 0;for(var n=t,i=t+r-1,o=0;o<A.length;++o){var s=A.charCodeAt(o);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&A.charCodeAt(++o);if(s<=127){if(t>=i)break;e[t++]=s}else if(s<=2047){if(t+1>=i)break;e[t++]=192|s>>6,e[t++]=128|63&s}else if(s<=65535){if(t+2>=i)break;e[t++]=224|s>>12,e[t++]=128|s>>6&63,e[t++]=128|63&s}else{if(t+3>=i)break;e[t++]=240|s>>18,e[t++]=128|s>>12&63,e[t++]=128|s>>6&63,e[t++]=128|63&s}}e[t]=0})(A,k,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=m(A),s=[],a=0;if(r)for(var l=0;l<r.length;l++){var f=i[t[l]];f?(0===a&&(a=aA()),s[l]=f(r[l])):s[l]=r[l]}var u=o.apply(null,s);return u=function(A){return"string"===e?C(A):"boolean"===e?Boolean(A):A}(u),0!==a&&sA(a),u}var y,E,k,_,M,Q,x,D="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function C(A,e){return A?function(A,e,t){for(var r=e+t,n=e;A[n]&&!(n>=r);)++n;if(n-e>16&&A.subarray&&D)return D.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var s=63&A[e++];if(192!=(224&o)){var a=63&A[e++];if((o=224==(240&o)?(15&o)<<12|s<<6|a:(7&o)<<18|s<<12|a<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var l=o-65536;i+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|s)}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){y=A,t.HEAP8=E=new Int8Array(A),t.HEAP16=_=new Int16Array(A),t.HEAP32=M=new Int32Array(A),t.HEAPU8=k=new Uint8Array(A),t.HEAPU16=new Uint16Array(A),t.HEAPU32=new Uint32Array(A),t.HEAPF32=Q=new Float32Array(A),t.HEAPF64=x=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var F=t.TOTAL_MEMORY||33554432;function S(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?t.dynCall_v(r):t.dynCall_vi(r,e.arg):r(void 0===e.arg?null:e.arg)}else e()}}F=(y=t.buffer?t.buffer:new ArrayBuffer(F)).byteLength,P(y),M[7152]=5271520;var T=[],G=[],L=[],R=[];function U(A){T.unshift(A)}function Y(A){R.unshift(A)}var O=Math.abs,z=Math.ceil,H=Math.floor,N=Math.min,V=0,X=null;t.preloadedImages={},t.preloadedAudios={};var j,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+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";function q(){return E.length}function $(A){for(var e=[],t=0;t<A.length;t++){var r=A[t];r>255&&(r&=255),e.push(String.fromCharCode(r))}return e.join("")}var AA="function"==typeof atob?atob:function(A){var e,t,r,n,i,o,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a="",l=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=s.indexOf(A.charAt(l++))<<2|(n=s.indexOf(A.charAt(l++)))>>4,t=(15&n)<<4|(i=s.indexOf(A.charAt(l++)))>>2,r=(3&i)<<6|(o=s.indexOf(A.charAt(l++))),a+=String.fromCharCode(e),64!==i&&(a+=String.fromCharCode(t)),64!==o&&(a+=String.fromCharCode(r))}while(l<A.length);return a};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),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(J.length))}var tA=function(A,e,t){var r=new A.Int8Array(t),n=new A.Int32Array(t);new A.Uint8Array(t),new A.Float32Array(t);var i=new A.Float64Array(t),o=0|e.o,s=0|e.p,a=A.Math.floor,l=A.Math.abs,f=A.Math.sqrt,u=A.Math.pow,c=A.Math.cos,h=A.Math.sin,g=A.Math.tan,d=A.Math.acos,w=A.Math.asin,p=A.Math.atan,b=A.Math.atan2,B=A.Math.ceil,m=A.Math.imul,v=A.Math.min,y=A.Math.max,E=A.Math.clz32,k=e.b,_=e.c,M=e.d,Q=e.e,x=e.f,D=e.g,C=e.h,I=e.i,P=28640;function F(A,e,t,r){return 0|S(A|=0,e|=0,t|=0,r|=0,0)}function S(A,e,t,r,i){var o,s=0,a=0,l=0,f=0;if(o=P,P=P+16|0,a=o,!(0|T(A|=0,e|=0,t|=0,r|=0,i|=0)))return P=o,0|(r=0);do{if((0|t)>=0){if((0|t)>13780509){if(0|(s=0|ge(15,a)))break;a=0|n[(l=a)>>2],l=0|n[l+4>>2]}else f=0|nt(0|t,0|(s=((0|t)<0)<<31>>31),3,0),l=0|_(),s=0|$e(0|t,0|s,1,0),s=0|$e(0|(s=0|nt(0|f,0|l,0|s,0|_())),0|_(),1,0),l=0|_(),n[a>>2]=s,n[a+4>>2]=l,a=s;if(dt(0|r,0,a<<3),0|i){dt(0|i,0,a<<2),s=0|G(A,e,t,r,i,a,l,0);break}(s=0|qe(a,4))?(f=0|G(A,e,t,r,s,a,l,0),Ke(s),s=f):s=13}else s=2}while(0);return P=o,0|(f=s)}function T(A,e,t,r,i){A|=0,e|=0,t|=0,r|=0,i|=0;var o,s,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0;if(s=P,P=P+16|0,w=s+8|0,n[(d=o=s)>>2]=A,n[d+4>>2]=e,(0|t)<0)return P=s,0|(w=2);if(n[(a=r)>>2]=A,n[a+4>>2]=e,(a=!!(0|i))&&(n[i>>2]=0),0|VA(A,e))return P=s,0|(w=9);n[w>>2]=0;A:do{if((0|t)>=1)if(a)for(h=1,c=0,g=0,d=1,a=A;;){if(!(c|g)){if(0|(a=0|L(a,e,4,w,o)))break A;if(0|VA(a=0|n[(e=o)>>2],e=0|n[e+4>>2])){a=9;break A}}if(0|(a=0|L(a,e,0|n[26800+(g<<2)>>2],w,o)))break A;if(a=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=a,n[A+4>>2]=e,n[i+(h<<2)>>2]=d,l=(0|(A=c+1|0))==(0|d),u=6==(0|(f=g+1|0)),0|VA(a,e)){a=9;break A}if((0|(d=d+(u&l&1)|0))>(0|t)){a=0;break}h=h+1|0,c=l?0:A,g=l?u?0:f:g}else for(h=1,c=0,g=0,d=1,a=A;;){if(!(c|g)){if(0|(a=0|L(a,e,4,w,o)))break A;if(0|VA(a=0|n[(e=o)>>2],e=0|n[e+4>>2])){a=9;break A}}if(0|(a=0|L(a,e,0|n[26800+(g<<2)>>2],w,o)))break A;if(a=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=a,n[A+4>>2]=e,l=(0|(A=c+1|0))==(0|d),u=6==(0|(f=g+1|0)),0|VA(a,e)){a=9;break A}if((0|(d=d+(u&l&1)|0))>(0|t)){a=0;break}h=h+1|0,c=l?0:A,g=l?u?0:f:g}else a=0}while(0);return P=s,0|(w=a)}function G(A,e,t,r,i,o,s,a){t|=0,r|=0,i|=0,a|=0;var l,f,u,c=0,h=0,g=0,d=0,w=0,p=0,b=0;if(u=P,P=P+16|0,l=u+8|0,f=u,c=0|ot(0|(A|=0),0|(e|=0),0|(o|=0),0|(s|=0)),g=0|_(),!(!(0|(b=0|n[(p=d=r+(c<<3)|0)>>2]))&!(0|(p=0|n[p+4>>2]))|(h=(0|b)==(0|A)&(0|p)==(0|e))))do{c=0|it(0|(c=0|$e(0|c,0|g,1,0)),0|_(),0|o,0|s),g=0|_(),h=(0|(p=0|n[(b=d=r+(c<<3)|0)>>2]))==(0|A)&(0|(b=0|n[b+4>>2]))==(0|e)}while(!(!(0|p)&!(0|b)|h));if(c=i+(c<<2)|0,h&&(0|n[c>>2])<=(0|a))return P=u,0|(b=0);if(n[(b=d)>>2]=A,n[b+4>>2]=e,n[c>>2]=a,(0|a)>=(0|t))return P=u,0|(b=0);switch(h=a+1|0,n[l>>2]=0,0|(c=0|L(A,e,2,l,f))){case 9:w=9;break;case 0:(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h))||(w=9)}A:do{if(9==(0|w)){switch(n[l>>2]=0,0|(c=0|L(A,e,3,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|L(A,e,1,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|L(A,e,5,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|L(A,e,4,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}switch(n[l>>2]=0,0|(c=0|L(A,e,6,l,f))){case 9:break;case 0:if(0|(c=0|G(0|n[(c=f)>>2],0|n[c+4>>2],t,r,i,o,s,h)))break A;break;default:break A}return P=u,0|(b=0)}}while(0);return P=u,0|(b=c)}function L(A,e,t,r,i){A|=0,e|=0,i|=0;var o,s,a=0,l=0,f=0,u=0,c=0,h=0,g=0;if((t|=0)>>>0>6)return 0|(i=1);if(c=(0|n[(r|=0)>>2])%6|0,n[r>>2]=c,(0|c)>0){a=0;do{t=0|vA(t),a=a+1|0}while((0|a)<(0|n[r>>2]))}if(c=0|at(0|A,0|e,45),_(),(s=127&c)>>>0>121)return 0|(i=5);o=0|WA(A,e),a=0|at(0|A,0|e,52),_(),a&=15;A:do{if(a){for(;;){if(f=0|at(0|A,0|e,0|(l=3*(15-a|0)|0)),_(),7==(0|(f&=7))){e=5;break}if(g=!(0|$A(a)),a=a+-1|0,h=0|lt(7,0,0|l),e&=~_(),A=0|lt(0|n[(g?432:16)+(28*f|0)+(t<<2)>>2],0,0|l)|A&~h,e|=l=0|_(),!(t=0|n[(g?640:224)+(28*f|0)+(t<<2)>>2])){t=0;break A}if(!a){u=8;break A}}return 0|e}u=8}while(0);8==(0|u)&&(A|=0|lt(0|(g=0|n[848+(28*s|0)+(t<<2)>>2]),0,45),e=_()|-1040385&e,t=0|n[4272+(28*s|0)+(t<<2)>>2],127&~g||(g=0|lt(0|n[848+(28*s|0)+20>>2],0,45),e=_()|-1040385&e,t=0|n[4272+(28*s|0)+20>>2],A=0|JA(g|A,e),e=0|_(),n[r>>2]=1+(0|n[r>>2]))),f=0|at(0|A,0|e,45),_(),f&=127;A:do{if(0|z(f)){e:do{if(1==(0|WA(A,e))){if((0|s)!=(0|f)){if(0|X(f,0|n[7696+(28*s|0)>>2])){A=0|qA(A,e),l=1,e=0|_();break}M(27795,26864,533,26872)}switch(0|o){case 3:A=0|JA(A,e),e=0|_(),n[r>>2]=1+(0|n[r>>2]),l=0;break e;case 5:A=0|qA(A,e),e=0|_(),n[r>>2]=5+(0|n[r>>2]),l=0;break e;case 0:return 0|(g=9);default:return 0|(g=1)}}else l=0}while(0);if((0|t)>0){a=0;do{A=0|ZA(A,e),e=0|_(),a=a+1|0}while((0|a)!=(0|t))}if((0|s)!=(0|f)){if(!(0|H(f))){if(!!(0|l)|5!=(0|WA(A,e)))break;n[r>>2]=1+(0|n[r>>2]);break}switch(127&c){case 8:case 118:break A}3!=(0|WA(A,e))&&(n[r>>2]=1+(0|n[r>>2]))}}else if((0|t)>0){a=0;do{A=0|JA(A,e),e=0|_(),a=a+1|0}while((0|a)!=(0|t))}}while(0);return n[r>>2]=((0|n[r>>2])+t|0)%6|0,n[(g=i)>>2]=A,n[g+4>>2]=e,0|(g=0)}function R(A,e,t,r){A|=0,e|=0,t|=0,r|=0;var i,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0;if(o=P,P=P+16|0,d=o+8|0,n[(g=i=o)>>2]=A,n[g+4>>2]=e,(0|t)<0)return P=o,0|(d=2);if(!t)return n[(d=r)>>2]=A,n[d+4>>2]=e,P=o,0|(d=0);n[d>>2]=0;A:do{if(0|VA(A,e))A=9;else{s=0,g=A;do{if(0|(A=0|L(g,e,4,d,i)))break A;if(s=s+1|0,0|VA(g=0|n[(e=i)>>2],e=0|n[e+4>>2])){A=9;break A}}while((0|s)<(0|t));n[(h=r)>>2]=g,n[h+4>>2]=e,h=t+-1|0,c=0,A=1;do{if(s=26800+(c<<2)|0,5==(0|c))for(l=0|n[s>>2],a=0,s=A;;){if(0|(A=0|L(0|n[(A=i)>>2],0|n[A+4>>2],l,d,i)))break A;if((0|a)!=(0|h)){if(f=0|n[(u=i)>>2],u=0|n[u+4>>2],n[(A=r+(s<<3)|0)>>2]=f,n[A+4>>2]=u,0|VA(f,u)){A=9;break A}A=s+1|0}else A=s;if((0|(a=a+1|0))>=(0|t))break;s=A}else for(l=i,u=0|n[s>>2],f=0,s=A,a=0|n[l>>2],l=0|n[l+4>>2];;){if(0|(A=0|L(a,l,u,d,i)))break A;if(a=0|n[(l=i)>>2],l=0|n[l+4>>2],n[(A=r+(s<<3)|0)>>2]=a,n[A+4>>2]=l,A=s+1|0,0|VA(a,l)){A=9;break A}if((0|(f=f+1|0))>=(0|t))break;s=A}c=c+1|0}while(c>>>0<6);A=(0|g)==(0|n[(A=i)>>2])&&(0|e)==(0|n[A+4>>2])?0:9}}while(0);return P=o,0|(d=A)}function U(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0;if(i=P,P=P+16|0,a=i,!(t|=0))return n[r>>2]=A,n[r+4>>2]=e,P=i,0|(r=0);do{if((0|t)>=0){if((0|t)>13780509){if(0|(o=0|ge(15,a)))break;o=0|n[(s=a)>>2],s=0|n[s+4>>2]}else c=0|nt(0|t,0|(o=((0|t)<0)<<31>>31),3,0),s=0|_(),o=0|$e(0|t,0|o,1,0),o=0|$e(0|(o=0|nt(0|c,0|s,0|o,0|_())),0|_(),1,0),s=0|_(),n[(c=a)>>2]=o,n[c+4>>2]=s;if(u=0|qe(o,8)){if(!(c=0|qe(o,4))){Ke(u),o=13;break}if(0|(o=0|G(A,e,t,u,c,o,s,0))){Ke(u),Ke(c);break}if(e=0|n[a>>2],(0|(a=0|n[a+4>>2]))>0|!(0|a)&e>>>0>0){o=0,l=0,f=0;do{!(0|(s=0|n[(A=u+(l<<3)|0)>>2]))&!(0|(A=0|n[A+4>>2]))||(0|n[c+(l<<2)>>2])!=(0|t)||(n[(h=r+(o<<3)|0)>>2]=s,n[h+4>>2]=A,o=o+1|0),l=0|$e(0|l,0|f,1,0),f=0|_()}while((0|f)<(0|a)|(0|f)==(0|a)&l>>>0<e>>>0)}Ke(u),Ke(c),o=0}else o=13}else o=2}while(0);return P=i,0|(h=o)}function Y(A,e,t,r){t|=0,r|=0;var i,o,s,a=0,l=0;for(s=P,P=P+16|0,i=s,o=s+8|0,a=(a=!(0|VA(A|=0,e|=0)))?1:2;;){if(n[o>>2]=0,!(0|L(A,e,a,o,i))&((0|n[(l=i)>>2])==(0|t)?(0|n[l+4>>2])==(0|r):0)){A=4;break}if((a=a+1|0)>>>0>=7){a=7,A=4;break}}return 4==(0|A)?(P=s,0|a):0}function O(A,e,t,r,o,s,a){e|=0,t|=0,r|=0,o|=0,s|=0,a|=0;var l,f,u,c,h,g,d,w,p,b,B=0,m=0,v=0,y=0,E=0,k=0,M=0,Q=0,x=0,D=0,C=0,I=0,F=0,S=0,T=0,G=0,L=0,R=0,U=0;if(b=P,P=P+64|0,d=b+48|0,w=b+32|0,p=b+24|0,l=b+8|0,f=b,(0|(m=0|n[(A|=0)>>2]))<=0)return P=b,0|(T=0);for(u=A+4|0,c=d+8|0,h=w+8|0,g=l+8|0,B=0,F=0;;){I=(v=0|n[u>>2])+(F<<4)|0,n[d>>2]=n[I>>2],n[d+4>>2]=n[I+4>>2],n[d+8>>2]=n[I+8>>2],n[d+12>>2]=n[I+12>>2],(0|F)==(m+-1|0)?(n[w>>2]=n[v>>2],n[w+4>>2]=n[v+4>>2],n[w+8>>2]=n[v+8>>2],n[w+12>>2]=n[v+12>>2]):(I=v+(F+1<<4)|0,n[w>>2]=n[I>>2],n[w+4>>2]=n[I+4>>2],n[w+8>>2]=n[I+8>>2],n[w+12>>2]=n[I+12>>2]),m=0|rA(d,w,r,p);A:do{if(m)v=0,B=m;else if(v=0|n[(m=p)>>2],(0|(m=0|n[m+4>>2]))>0|!(0|m)&v>>>0>0){C=0,I=0;e:for(;;){if(L=1/(+(v>>>0)+4294967296*+(0|m)),U=+i[d>>3],R=+((m=0|At(0|v,0|m,0|C,0|I))>>>0)+4294967296*+(0|_()),G=+(C>>>0)+4294967296*+(0|I),i[l>>3]=L*(U*R)+L*(+i[w>>3]*G),i[g>>3]=L*(+i[c>>3]*R)+L*(+i[h>>3]*G),0|(m=0|Ae(l,r,f))){B=m;break}k=0|ot(0|(x=0|n[(D=f)>>2]),0|(D=0|n[D+4>>2]),0|e,0|t),y=0|_(),v=0|n[(E=m=a+(k<<3)|0)>>2],E=0|n[E+4>>2];t:do{if(!(0|v)&!(0|E))S=m,T=16;else for(M=0,Q=0;;){if((0|M)>(0|t)|(0|M)==(0|t)&Q>>>0>e>>>0){B=1;break e}if((0|v)==(0|x)&(0|E)==(0|D))break t;if(k=0|it(0|(m=0|$e(0|k,0|y,1,0)),0|_(),0|e,0|t),y=0|_(),Q=0|$e(0|Q,0|M,1,0),M=0|_(),!(0|(v=0|n[(E=m=a+(k<<3)|0)>>2]))&!(0|(E=0|n[E+4>>2]))){S=m,T=16;break}}}while(0);if(16!=(0|T)||(T=0,!(0|x)&!(0|D))||(n[(Q=S)>>2]=x,n[Q+4>>2]=D,Q=s+(n[o>>2]<<3)|0,n[Q>>2]=x,n[Q+4>>2]=D,Q=0|$e(0|n[(Q=o)>>2],0|n[Q+4>>2],1,0),x=0|_(),n[(D=o)>>2]=Q,n[D+4>>2]=x),C=0|$e(0|C,0|I,1,0),I=0|_(),v=0|n[(m=p)>>2],!((0|(m=0|n[m+4>>2]))>(0|I)|(0|m)==(0|I)&v>>>0>C>>>0)){v=1;break A}}v=0}else v=1}while(0);if(F=F+1|0,!v){T=21;break}if((0|F)>=(0|(m=0|n[A>>2]))){B=0,T=21;break}}return 21==(0|T)?(P=b,0|B):0}function z(A){return(A|=0)>>>0>121?0|(A=0):0|(A=0|n[7696+(28*A|0)+16>>2])}function H(A){return 4==(0|(A|=0))|117==(0|A)|0}function N(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function V(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function X(A,e){return e|=0,(0|n[7696+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|n[7696+(28*A|0)+24>>2])==(0|e))}function j(A,e){return 0|n[848+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function W(A,e){return e|=0,(0|n[848+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|n[848+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[848+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[848+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[848+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[848+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[848+(28*A|0)+24>>2])==(0|e)?6:7)}function Z(A){var e,t,r;return e=(r=+i[(A|=0)+16>>3])-(t=+i[A+24>>3]),+(r<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,r,n=0;return(n=+i[(e|=0)>>3])>=+i[A+8>>3]&&n<=+i[A>>3]?(t=+i[A+16>>3],n=+i[A+24>>3],e=(r=+i[e+8>>3])>=n,A=r<=t&1,t<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function $(A,e){e|=0;var t,r,n,o,s,a=0,l=0,f=0,u=0;return+i[(A|=0)>>3]<+i[e+8>>3]||+i[A+8>>3]>+i[e>>3]?0|(a=0):(n=(l=+i[A+16>>3])<(u=+i[(t=A+24|0)>>3]),f=(s=+i[(a=e+16|0)>>3])<(o=+i[(r=e+24|0)>>3]),e=u-s<o-l,A=n?f|e?1:2:0,e=f?n?1:e?2:1:0,(l=+ue(l,A))<+ue(+i[r>>3],e)||(u=+ue(+i[t>>3],A))>+ue(+i[a>>3],e)?0|(f=0):0|(f=1))}function AA(A,e){e|=0;var t,r,n,o,s,a=0,l=0,f=0,u=0;return+i[(A|=0)>>3]<+i[e>>3]||+i[A+8>>3]>+i[e+8>>3]?0|(a=0):(n=(o=+i[(a=A+16|0)>>3])<(l=+i[A+24>>3]),f=(u=+i[(t=e+16|0)>>3])<(s=+i[(r=e+24|0)>>3]),e=l-u<s-o,A=n?f|e?1:2:0,e=f?n?1:e?2:1:0,(l=+ue(l,A))<=+ue(+i[r>>3],e)?0|(f=(u=+ue(+i[a>>3],A))>=+ue(+i[t>>3],e)):0|(f=0))}function eA(A,e){A|=0,e|=0;var t,r,o,s,a,l=0;o=P,P=P+176|0,n[(r=o)>>2]=4,l=+i[e>>3],i[r+8>>3]=l,s=+i[e+16>>3],i[r+16>>3]=s,i[r+24>>3]=l,l=+i[e+24>>3],i[r+32>>3]=l,a=+i[e+8>>3],i[r+40>>3]=a,i[r+48>>3]=l,i[r+56>>3]=a,i[r+64>>3]=s,t=(e=r+72|0)+96|0;do{n[e>>2]=0,e=e+4|0}while((0|e)<(0|t));gt(0|A,0|r,168),P=o}function tA(A,e,t){A|=0,e|=0,t|=0;var r,s,f,u,c,h,g,d=0,w=0,p=0,b=0,m=0,y=0,E=0;h=P,P=P+288|0,c=h+264|0,b=h+96|0,w=(d=p=h)+96|0;do{n[d>>2]=0,d=d+4|0}while((0|d)<(0|w));return 0|(e=0|ie(e,p))?(P=h,0|(y=e)):(re(p=0|n[(w=p)>>2],w=0|n[w+4>>2],c),ne(p,w,b),u=+ce(c,b+8|0),i[c>>3]=+i[A>>3],i[(w=c+8|0)>>3]=+i[A+16>>3],i[b>>3]=+i[A+8>>3],i[(p=b+8|0)>>3]=+i[A+24>>3],s=+ce(c,b),E=+i[w>>3]-+i[p>>3],f=+l(+E),g=+i[c>>3]-+i[b>>3],r=+l(+g),!(0==E|0==g)&&(E=+ut(+f,+r),E=+B(+s*s/+ct(+E/+ct(+f,+r),3)/(u*(2.59807621135*u)*.8)),i[o>>3]=E,m=~~E>>>0,y=+l(E)>=1?E>0?~~+v(+a(E/4294967296),4294967295)>>>0:~~+B((E-+(~~E>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2])?(b=!(0|m)&!(0|y),n[(e=t)>>2]=b?1:m,n[e+4>>2]=b?0:y,e=0):e=1,P=h,0|(y=e))}function rA(A,e,t,r){A|=0,e|=0,t|=0,r|=0;var s,f,u,c,h=0,g=0,d=0;c=P,P=P+288|0,f=c+264|0,u=c+96|0,s=(h=g=c)+96|0;do{n[h>>2]=0,h=h+4|0}while((0|h)<(0|s));return 0|(t=0|ie(t,g))?(P=c,0|(r=t)):(re(h=0|n[(t=g)>>2],t=0|n[t+4>>2],f),ne(h,t,u),d=+ce(f,u+8|0),d=+B(+ +ce(A,e)/(2*d)),i[o>>3]=d,t=~~d>>>0,h=+l(d)>=1?d>0?~~+v(+a(d/4294967296),4294967295)>>>0:~~+B((d-+(~~d>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2]?(g=!(0|t)&!(0|h),n[r>>2]=g?1:t,n[r+4>>2]=g?0:h,P=c,0|(r=0)):(P=c,0|(r=1)))}function nA(A,e,t,r){e|=0,t|=0,r|=0,n[(A|=0)>>2]=e,n[A+4>>2]=t,n[A+8>>2]=r}function iA(A,e){A|=0;var t,r,o,s,a=0,f=0,u=0,c=0,h=0,g=0,d=0;n[(s=(e|=0)+8|0)>>2]=0,r=+i[A>>3],c=+l(+r),o=+i[A+8>>3],c+=.5*(h=1.1547005383792515*+l(+o)),c-=+(0|(a=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=a,h<.5*(c+1)){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,n[e+4>>2]=A,d<=h&h<2*c){a=a+1|0,n[e>>2]=a;break}n[e>>2]=a;break}if(!(c<.6666666666666666)){if(a=a+1|0,n[e>>2]=a,h<.5*c){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=a;break}}else A=A+1|0,n[e+4>>2]=A;a=a+1|0,n[e>>2]=a}while(0);do{if(r<0){if(1&A){a=~~(+(0|a)-(2*(+((g=0|At(0|a,((0|a)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|_()))+1)),n[e>>2]=a;break}a=~~(+(0|a)-2*(+((g=0|At(0|a,((0|a)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|_()))),n[e>>2]=a;break}}while(0);g=e+4|0,o<0&&(a=a-((1|A<<1)/2|0)|0,n[e>>2]=a,A=0-A|0,n[g>>2]=A),f=A-a|0,(0|a)<0?(u=0-a|0,n[g>>2]=f,n[s>>2]=u,n[e>>2]=0,A=f,a=0):u=0,(0|A)<0&&(a=a-A|0,n[e>>2]=a,u=u-A|0,n[s>>2]=u,n[g>>2]=0,A=0),t=a-u|0,f=A-u|0,(0|u)<0&&(n[e>>2]=t,n[g>>2]=f,n[s>>2]=0,A=f,a=t,u=0),(0|(f=(0|u)<(0|(f=(0|A)<(0|a)?A:a))?u:f))<=0||(n[e>>2]=a-f,n[g>>2]=A-f,n[s>>2]=u-f)}function oA(A){var e,t=0,r=0,i=0,o=0,s=0;t=0|n[(A|=0)>>2],r=0|n[(e=A+4|0)>>2],(0|t)<0&&(r=r-t|0,n[e>>2]=r,n[(s=A+8|0)>>2]=(0|n[s>>2])-t,n[A>>2]=0,t=0),(0|r)<0?(t=t-r|0,n[A>>2]=t,o=(0|n[(s=A+8|0)>>2])-r|0,n[s>>2]=o,n[e>>2]=0,r=0):(s=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(t=t-o|0,n[A>>2]=t,r=r-o|0,n[e>>2]=r,n[s>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|r)<(0|t)?r:t))?o:i))<=0||(n[A>>2]=t-i,n[e>>2]=r-i,n[s>>2]=o-i)}function sA(A,e){e|=0;var t,r;r=0|n[(A|=0)+8>>2],t=+((0|n[A+4>>2])-r|0),i[e>>3]=+((0|n[A>>2])-r|0)-.5*t,i[e+8>>3]=.8660254037844386*t}function aA(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[e>>2])+(0|n[A>>2]),n[t+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[t+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function lA(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[A>>2])-(0|n[e>>2]),n[t+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[t+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function fA(A,e){e|=0;var t,r=0;r=0|m(0|n[(A|=0)>>2],e),n[A>>2]=r,t=0|m(0|n[(r=A+4|0)>>2],e),n[r>>2]=t,e=0|m(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function uA(A){var e,t,r=0,i=0,o=0,s=0,a=0;a=(0|(t=0|n[(A|=0)>>2]))<0,A=(A=(i=(0|(s=((e=(0|(o=(0|n[A+4>>2])-(a?t:0)|0))<0)?0-o|0:0)+((0|n[A+8>>2])-(a?t:0))|0))<0)?0:s)-((o=(0|(i=(0|A)<(0|(i=(0|(r=(e?0:o)-(i?s:0)|0))<(0|(s=(a?0:t)-(e?o:0)-(i?s:0)|0))?r:s))?A:i))>0)?i:0)|0,r=r-(o?i:0)|0;A:do{switch(s-(o?i:0)|0){case 0:switch(0|r){case 0:return 0|(a=0|A?1==(0|A)?1:7:0);case 1:return 0|(a=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|r){case 0:return 0|(a=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|(a=7)}function cA(A){var e,t,r=0,i=0,o=0,s=0,a=0,l=0,f=0;if(l=0|n[(t=(A|=0)+8|0)>>2],(e=(0|n[A>>2])-l|0)>>>0>715827881|(l=(0|n[(f=A+4|0)>>2])-l|0)>>>0>715827881){if(s=2147483647-e|0,a=-2147483648-e|0,(o=(0|e)>0)?(0|s)<(0|e):(0|a)>(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|l)>0?(2147483647-l|0)<(0|l):(-2147483648-l|0)>(0|l))return 0|(f=1);if(r=3*e|0,i=l<<1,(o?(0|s)<(0|i):(0|a)>(0|i))||((0|e)>-1?(-2147483648|r)>=(0|l):(-2147483648^r)<(0|l)))return 0|(f=1)}else i=l<<1,r=3*e|0;return o=0|Ze(.14285714285714285*+(r-l|0)),n[A>>2]=o,s=0|Ze(.14285714285714285*+(i+e|0)),n[f>>2]=s,n[t>>2]=0,r=(i=(0|s)<(0|o))?o:s,(0|(i=i?s:o))<0&&((-2147483648==(0|i)||((0|r)>0?(2147483647-r|0)<(0|i):(-2147483648-r|0)>(0|i)))&&M(27795,26892,354,26903),((0|r)>-1?(-2147483648|r)>=(0|i):(-2147483648^r)<(0|i))&&M(27795,26892,354,26903)),r=s-o|0,(0|o)<0?(i=0-o|0,n[f>>2]=r,n[t>>2]=i,n[A>>2]=0,o=0):(r=s,i=0),(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[t>>2]=i,n[f>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[f>>2]=s,n[t>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[f>>2]=r-o,n[t>>2]=i-o),0|(f=0)}function hA(A){var e,t=0,r=0,i=0,o=0,s=0,a=0,l=0;if(o=0|n[(e=(A|=0)+8|0)>>2],(s=(0|n[A>>2])-o|0)>>>0>715827881|(o=(0|n[(a=A+4|0)>>2])-o|0)>>>0>715827881){if((r=(0|s)>0)?(2147483647-s|0)<(0|s):(-2147483648-s|0)>(0|s))return 0|(a=1);if(t=s<<1,(i=(0|o)>0)?(2147483647-o|0)<(0|o):(-2147483648-o|0)>(0|o))return 0|(a=1);if(l=o<<1,i?(2147483647-l|0)<(0|o):(-2147483648-l|0)>(0|o))return 0|(l=1);if(r?(2147483647-t|0)<(0|o):(-2147483648-t|0)>(0|o))return 0|(l=1);if(r=3*o|0,(0|o)>-1?(-2147483648|r)>=(0|s):(-2147483648^r)<(0|s))return 0|(l=1)}else r=3*o|0,t=s<<1;return i=0|Ze(.14285714285714285*+(t+o|0)),n[A>>2]=i,o=0|Ze(.14285714285714285*+(r-s|0)),n[a>>2]=o,n[e>>2]=0,t=(r=(0|o)<(0|i))?i:o,(0|(r=r?o:i))<0&&((-2147483648==(0|r)||((0|t)>0?(2147483647-t|0)<(0|r):(-2147483648-t|0)>(0|r)))&&M(27795,26892,402,26917),((0|t)>-1?(-2147483648|t)>=(0|r):(-2147483648^t)<(0|r))&&M(27795,26892,402,26917)),t=o-i|0,(0|i)<0?(r=0-i|0,n[a>>2]=t,n[e>>2]=r,n[A>>2]=0,i=0):(t=o,r=0),(0|t)<0&&(i=i-t|0,n[A>>2]=i,r=r-t|0,n[e>>2]=r,n[a>>2]=0,t=0),s=i-r|0,o=t-r|0,(0|r)<0?(n[A>>2]=s,n[a>>2]=o,n[e>>2]=0,t=o,o=s,r=0):o=i,(0|(i=(0|r)<(0|(i=(0|t)<(0|o)?t:o))?r:i))<=0||(n[A>>2]=o-i,n[a>>2]=t-i,n[e>>2]=r-i),0|(l=0)}function gA(A){var e,t,r=0,i=0,o=0,s=0,a=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|Ze(.14285714285714285*+((3*(r=(0|n[A>>2])-i|0)|0)-(i=(0|n[(t=A+4|0)>>2])-i|0)|0)),n[A>>2]=o,r=0|Ze(.14285714285714285*+((i<<1)+r|0)),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(a=0-o|0,n[t>>2]=i,n[e>>2]=a,n[A>>2]=0,r=i,o=0,i=a):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=s,n[e>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=r-o,n[e>>2]=i-o)}function dA(A){var e,t,r=0,i=0,o=0,s=0,a=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|Ze(.14285714285714285*+(((r=(0|n[A>>2])-i|0)<<1)+(i=(0|n[(t=A+4|0)>>2])-i|0)|0)),n[A>>2]=o,r=0|Ze(.14285714285714285*+((3*i|0)-r|0)),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(a=0-o|0,n[t>>2]=i,n[e>>2]=a,n[A>>2]=0,r=i,o=0,i=a):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=s,n[e>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=r-o,n[e>>2]=i-o)}function wA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],s=0|n[(r=A+8|0)>>2],a=o+(3*i|0)|0,n[A>>2]=a,o=s+(3*o|0)|0,n[t>>2]=o,i=(3*s|0)+i|0,n[r>>2]=i,s=o-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=s,n[r>>2]=i,n[A>>2]=0,o=s,s=0):s=a,(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function pA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=(3*(i=0|n[(t=A+4|0)>>2])|0)+a|0,a=(o=0|n[(r=A+8|0)>>2])+(3*a|0)|0,n[A>>2]=a,n[t>>2]=s,i=(3*o|0)+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):o=s,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function bA(A,e){A|=0;var t,r,i,o=0,s=0,a=0;((e|=0)+-1|0)>>>0>=6||(a=(0|n[15440+(12*e|0)>>2])+(0|n[A>>2])|0,n[A>>2]=a,i=A+4|0,s=(0|n[15440+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[i>>2]=s,r=A+8|0,e=(0|n[15440+(12*e|0)+8>>2])+(0|n[r>>2])|0,n[r>>2]=e,o=s-a|0,(0|a)<0?(e=e-a|0,n[i>>2]=o,n[r>>2]=e,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,e=e-o|0,n[r>>2]=e,n[i>>2]=0,o=0),t=s-e|0,a=o-e|0,(0|e)<0?(n[A>>2]=t,n[i>>2]=a,n[r>>2]=0,s=t,e=0):a=o,(0|(o=(0|e)<(0|(o=(0|a)<(0|s)?a:s))?e:o))<=0||(n[A>>2]=s-o,n[i>>2]=a-o,n[r>>2]=e-o))}function BA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=(i=0|n[(t=A+4|0)>>2])+a|0,a=(o=0|n[(r=A+8|0)>>2])+a|0,n[A>>2]=a,n[t>>2]=s,i=o+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function mA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],s=0|n[(t=A+4|0)>>2],o=0|n[(r=A+8|0)>>2],a=s+i|0,n[A>>2]=a,s=o+s|0,n[t>>2]=s,i=o+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function vA(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 yA(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,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],s=0|n[(r=A+8|0)>>2],a=o+(i<<1)|0,n[A>>2]=a,o=s+(o<<1)|0,n[t>>2]=o,i=(s<<1)+i|0,n[r>>2]=i,s=o-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=s,n[r>>2]=i,n[A>>2]=0,o=s,s=0):s=a,(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function kA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=((i=0|n[(t=A+4|0)>>2])<<1)+a|0,a=(o=0|n[(r=A+8|0)>>2])+(a<<1)|0,n[A>>2]=a,n[t>>2]=s,i=(o<<1)+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):o=s,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function _A(A,e){e|=0;var t,r,i,o=0,s=0,a=0;return i=(0|(r=(0|n[(A|=0)>>2])-(0|n[e>>2])|0))<0,t=(0|(s=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?r:0)|0))<0,e=(e=(A=(0|(a=(i?0-r|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+(t?0-s|0:0)|0))<0)?0:a)-((s=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:s)-(A?a:0)|0))<(0|(a=(i?0:r)-(t?s:0)-(A?a:0)|0))?o:a))?e:A))>0)?A:0)|0,o=o-(s?A:0)|0,0|((0|(A=(0|(A=a-(s?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 MA(A,e){e|=0;var t;t=0|n[(A|=0)+8>>2],n[e>>2]=(0|n[A>>2])-t,n[e+4>>2]=(0|n[A+4>>2])-t}function QA(A,e){e|=0;var t,r,i,o=0,s=0,a=0;if(s=0|n[(A|=0)>>2],n[e>>2]=s,a=0|n[A+4>>2],n[(r=e+4|0)>>2]=a,n[(i=e+8|0)>>2]=0,A=(o=(0|a)<(0|s))?s:a,(0|(o=o?a:s))<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=a-s|0,(0|s)<0?(o=0-s|0,n[r>>2]=A,n[i>>2]=o,n[e>>2]=0,s=0):(A=a,o=0),(0|A)<0&&(s=s-A|0,n[e>>2]=s,o=o-A|0,n[i>>2]=o,n[r>>2]=0,A=0),t=s-o|0,a=A-o|0,(0|o)<0?(n[e>>2]=t,n[r>>2]=a,n[i>>2]=0,A=a,a=t,o=0):a=s,(0|(s=(0|o)<(0|(s=(0|A)<(0|a)?A:a))?o:s))<=0||(n[e>>2]=a-s,n[r>>2]=A-s,n[i>>2]=o-s),0|(e=0)}function xA(A){var e,t,r,i;t=(i=0|n[(e=(A|=0)+8|0)>>2])-(0|n[A>>2])|0,n[A>>2]=t,A=(0|n[(r=A+4|0)>>2])-i|0,n[r>>2]=A,n[e>>2]=0-(A+t)}function DA(A){var e,t,r=0,i=0,o=0,s=0,a=0;r=0-(i=0|n[(A|=0)>>2])|0,n[A>>2]=r,n[(e=A+8|0)>>2]=0,s=(o=0|n[(t=A+4|0)>>2])+i|0,(0|i)>0?(n[t>>2]=s,n[e>>2]=i,n[A>>2]=0,r=0,o=s):i=0,(0|o)<0?(a=r-o|0,n[A>>2]=a,i=i-o|0,n[e>>2]=i,n[t>>2]=0,s=a-i|0,r=0-i|0,(0|i)<0?(n[A>>2]=s,n[t>>2]=r,n[e>>2]=0,o=r,i=0):(o=0,s=a)):s=r,(0|(r=(0|i)<(0|(r=(0|o)<(0|s)?o:s))?i:r))<=0||(n[A>>2]=s-r,n[t>>2]=o-r,n[e>>2]=i-r)}function CA(A,e,t){t|=0;var r,i,o=0,s=0;return i=P,P=P+16|0,r=i,s=-2130706433&(e|=0)|134217728,!0&268435456==(2013265920&e)?(o=0|at(0|(A|=0),0|e,56),_(),o=0|function(A,e,t){A|=0,e|=0,t|=0;var r=0,i=0,o=0;if(o=P,P=P+16|0,i=o,r=0|VA(A,e),(t+-1|0)>>>0>5)return P=o,0|(i=-1);if(r=!!(0|r),1==(0|t)&r)return P=o,0|(i=-1);do{if(!(0|Ye(A,e,i))){if(r){r=(5+(0|n[26352+(t<<2)>>2])-(0|n[i>>2])|0)%5|0;break}r=(6+(0|n[26384+(t<<2)>>2])-(0|n[i>>2])|0)%6|0;break}r=-1}while(0);return i=r,P=o,0|i}(A,s,7&o),-1==(0|o)?(n[t>>2]=0,P=i,0|(s=6)):(0|te(A,s,r)&&M(27795,26932,282,26947),e=0|at(0|A,0|e,52),_(),e&=15,0|VA(A,s)?SA(r,e,o,2,t):RA(r,e,o,2,t),P=i,0|(s=0))):(P=i,0|(s=6))}function IA(A,e,t,r){e|=0,r|=0;var o,s=0,a=0,l=0,f=0;if(o=P,P=P+16|0,function(A,e,t){A|=0,e|=0,t|=0;var r=0,o=0,s=0;s=P,P=P+32|0,o=s,function(A,e){A|=0,e|=0;var t=0,r=0,n=0;t=+i[A>>3],r=+c(+t),t=+h(+t),i[e+16>>3]=t,t=+i[A+8>>3],n=r*+c(+t),i[e>>3]=n,t=r*+h(+t),i[e+8>>3]=t}(A,o),n[e>>2]=0,i[t>>3]=5,r=+Ue(16400,o),r<+i[t>>3]&&(n[e>>2]=0,i[t>>3]=r);r=+Ue(16424,o),r<+i[t>>3]&&(n[e>>2]=1,i[t>>3]=r);r=+Ue(16448,o),r<+i[t>>3]&&(n[e>>2]=2,i[t>>3]=r);r=+Ue(16472,o),r<+i[t>>3]&&(n[e>>2]=3,i[t>>3]=r);r=+Ue(16496,o),r<+i[t>>3]&&(n[e>>2]=4,i[t>>3]=r);r=+Ue(16520,o),r<+i[t>>3]&&(n[e>>2]=5,i[t>>3]=r);r=+Ue(16544,o),r<+i[t>>3]&&(n[e>>2]=6,i[t>>3]=r);r=+Ue(16568,o),r<+i[t>>3]&&(n[e>>2]=7,i[t>>3]=r);r=+Ue(16592,o),r<+i[t>>3]&&(n[e>>2]=8,i[t>>3]=r);r=+Ue(16616,o),r<+i[t>>3]&&(n[e>>2]=9,i[t>>3]=r);r=+Ue(16640,o),r<+i[t>>3]&&(n[e>>2]=10,i[t>>3]=r);r=+Ue(16664,o),r<+i[t>>3]&&(n[e>>2]=11,i[t>>3]=r);r=+Ue(16688,o),r<+i[t>>3]&&(n[e>>2]=12,i[t>>3]=r);r=+Ue(16712,o),r<+i[t>>3]&&(n[e>>2]=13,i[t>>3]=r);r=+Ue(16736,o),r<+i[t>>3]&&(n[e>>2]=14,i[t>>3]=r);r=+Ue(16760,o),r<+i[t>>3]&&(n[e>>2]=15,i[t>>3]=r);r=+Ue(16784,o),r<+i[t>>3]&&(n[e>>2]=16,i[t>>3]=r);r=+Ue(16808,o),r<+i[t>>3]&&(n[e>>2]=17,i[t>>3]=r);r=+Ue(16832,o),r<+i[t>>3]&&(n[e>>2]=18,i[t>>3]=r);if(r=+Ue(16856,o),!(r<+i[t>>3]))return void(P=s);n[e>>2]=19,i[t>>3]=r,P=s}(A|=0,t|=0,f=o),(a=+d(+(1-.5*+i[f>>3])))<1e-16)return n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,n[r+12>>2]=0,void(P=o);if(f=0|n[t>>2],s=+le((s=+i[15920+(24*f|0)>>3])-+le(+function(A,e){A|=0,e|=0;var t=0,r=0,n=0,o=0,s=0;return o=+i[e>>3],r=+c(+o),n=+i[e+8>>3]-+i[A+8>>3],s=r*+h(+n),t=+i[A>>3],+ +b(+s,+(+h(+o)*+c(+t)-+c(+n)*(r*+h(+t))))}(15600+(f<<4)|0,A))),l=0|$A(e)?+le(s+-.3334731722518321):s,s=2.618033988749896*+g(+a),(0|e)>0){A=0;do{s*=2.6457513110645907,A=A+1|0}while((0|A)!=(0|e))}a=+c(+l)*s,i[r>>3]=a,l=+h(+l)*s,i[r+8>>3]=l,P=o}function PA(A,e,t,r,o){e|=0,t|=0,r|=0,o|=0;var s,a=0,u=0;if(a=+function(A){A|=0;var e=0,t=0;return t=+i[A>>3],e=+i[A+8>>3],+ +f(+(t*t+e*e))}(A|=0),a<1e-16)return e=15600+(e<<4)|0,n[o>>2]=n[e>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(u=+b(+ +i[A+8>>3],+ +i[A>>3]),(0|t)>0){A=0;do{a*=.37796447300922725,A=A+1|0}while((0|A)!=(0|t))}s=.3333333333333333*a,r?(t=!(0|$A(t)),a=+p(.381966011250105*(t?s:.37796447300922725*s))):(a=+p(.381966011250105*a),0|$A(t)&&(u=+le(u+.3334731722518321))),function(A,e,t,r){A|=0,e=+e,t=+t,r|=0;var o=0,s=0,a=0,f=0;if(t<1e-16)return n[r>>2]=n[A>>2],n[r+4>>2]=n[A+4>>2],n[r+8>>2]=n[A+8>>2],void(n[r+12>>2]=n[A+12>>2]);s=e<0?e+6.283185307179586:e,s=e>=6.283185307179586?s+-6.283185307179586:s;do{if(!(s<1e-16)){if(o=+l(+(s+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=t,i[r>>3]=e,o=r;break}if(a=+c(+t),t=+h(+t),e=a*+h(+e)+ +c(+s)*(t*+c(+e)),e=+w(+((e=e>1?1:e)<-1?-1:e)),i[r>>3]=e,+l(+(e+-1.5707963267948966))<1e-16)return i[r>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+l(+(e+1.5707963267948966))<1e-16)return i[r>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(f=1/+c(+e),s=t*+h(+s)*f,t=+i[A>>3],e=f*((a-+h(+e)*+h(+t))/+c(+t)),a=s>1?1:s,e=e>1?1:e,(e=+i[A+8>>3]+ +b(+(a<-1?-1:a),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[r+8>>3]=e)}e=+i[A>>3]+t,i[r>>3]=e,o=r}while(0);if(+l(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+l(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(e=+i[A+8>>3],e>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[r+8>>3]=e}(15600+(e<<4)|0,+le(+i[15920+(24*e|0)>>3]-u),a,o)}function FA(A,e,t){e|=0,t|=0;var r,i;r=P,P=P+16|0,sA((A|=0)+4|0,i=r),PA(i,0|n[A>>2],e,0,t),P=r}function SA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var s,a,l,f,u,c,h,g,d,w,p,b,B,m,v,y,E,k,_,Q,x,D,C=0,I=0,F=0,S=0,T=0,G=0;if(D=P,P=P+272|0,S=D+240|0,_=D,Q=D+224|0,x=D+208|0,p=D+176|0,b=D+160|0,B=D+192|0,m=D+144|0,v=D+128|0,y=D+112|0,E=D+96|0,k=D+80|0,n[(C=D+256|0)>>2]=e,n[S>>2]=n[A>>2],n[S+4>>2]=n[A+4>>2],n[S+8>>2]=n[A+8>>2],n[S+12>>2]=n[A+12>>2],TA(S,C,_),n[o>>2]=0,(0|(S=r+t+(5==(0|r)&1)|0))<=(0|t))P=D;else{a=Q+4|0,l=p+4|0,f=t+5|0,u=16880+((s=0|n[C>>2])<<2)|0,c=16960+(s<<2)|0,h=v+8|0,g=y+8|0,d=E+8|0,w=x+4|0,F=t;A:for(;;){I=_+((0|F)%5<<4)|0,n[x>>2]=n[I>>2],n[x+4>>2]=n[I+4>>2],n[x+8>>2]=n[I+8>>2],n[x+12>>2]=n[I+12>>2];do{}while(2==(0|GA(x,s,0,1)));if((0|F)>(0|t)&!!(0|$A(e))){if(n[p>>2]=n[x>>2],n[p+4>>2]=n[x+4>>2],n[p+8>>2]=n[x+8>>2],n[p+12>>2]=n[x+12>>2],sA(a,b),r=0|n[p>>2],C=0|n[17040+(80*r|0)+(n[Q>>2]<<2)>>2],n[p>>2]=n[18640+(80*r|0)+(20*C|0)>>2],(0|(I=0|n[18640+(80*r|0)+(20*C|0)+16>>2]))>0){A=0;do{BA(l),A=A+1|0}while((0|A)<(0|I))}switch(I=18640+(80*r|0)+(20*C|0)+4|0,n[B>>2]=n[I>>2],n[B+4>>2]=n[I+4>>2],n[B+8>>2]=n[I+8>>2],fA(B,3*(0|n[u>>2])|0),aA(l,B,l),oA(l),sA(l,m),T=+(0|n[c>>2]),i[v>>3]=3*T,i[h>>3]=0,G=-1.5*T,i[y>>3]=G,i[g>>3]=2.598076211353316*T,i[E>>3]=G,i[d>>3]=-2.598076211353316*T,0|n[17040+(80*(0|n[p>>2])|0)+(n[x>>2]<<2)>>2]){case 1:A=y,r=v;break;case 3:A=E,r=y;break;case 2:A=v,r=E;break;default:A=12;break A}Le(b,m,r,A,k),PA(k,0|n[p>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|F)<(0|f)&&(sA(w,p),PA(p,0|n[x>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[Q>>2]=n[x>>2],n[Q+4>>2]=n[x+4>>2],n[Q+8>>2]=n[x+8>>2],n[Q+12>>2]=n[x+12>>2],(0|(F=F+1|0))>=(0|S)){A=3;break}}3!=(0|A)?12==(0|A)&&M(26970,27017,572,27027):P=D}}function TA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,s=0,a=0,l=0;r=P,P=P+128|0,o=r,a=20240,l=(s=i=r+64|0)+60|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));a=20304,l=(s=o)+60|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));i=(l=!(0|$A(0|n[e>>2])))?i:o,EA(o=A+4|0),kA(o),0|$A(0|n[e>>2])&&(pA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],aA(o,i,e=t+4|0),oA(e),n[t+16>>2]=n[A>>2],aA(o,i+12|0,e=t+20|0),oA(e),n[t+32>>2]=n[A>>2],aA(o,i+24|0,e=t+36|0),oA(e),n[t+48>>2]=n[A>>2],aA(o,i+36|0,e=t+52|0),oA(e),n[t+64>>2]=n[A>>2],aA(o,i+48|0,t=t+68|0),oA(t),P=r}function GA(A,e,t,r){t|=0,r|=0;var i,o,s,a,l,f,u=0,c=0,h=0,g=0,d=0;if(f=P,P=P+32|0,l=f+12|0,o=f,d=(A|=0)+4|0,g=0|n[16960+((e|=0)<<2)>>2],g=(a=!!(0|r))?3*g|0:g,u=0|n[d>>2],i=0|n[(s=A+8|0)>>2],a){if((0|(u=i+u+(r=0|n[(c=A+12|0)>>2])|0))==(0|g))return P=f,0|(d=1);h=c}else u=i+u+(r=0|n[(h=A+12|0)>>2])|0;if((0|u)<=(0|g))return P=f,0|(d=0);do{if((0|r)>0){if(r=0|n[A>>2],(0|i)>0){c=18640+(80*r|0)+60|0,r=A;break}r=18640+(80*r|0)+40|0,t?(nA(l,g,0,0),lA(d,l,o),mA(o),aA(o,l,d),c=r,r=A):(c=r,r=A)}else c=18640+(80*(0|n[A>>2])|0)+20|0,r=A}while(0);if(n[r>>2]=n[c>>2],(0|n[(u=c+16|0)>>2])>0){r=0;do{BA(d),r=r+1|0}while((0|r)<(0|n[u>>2]))}return A=c+4|0,n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],e=0|n[16880+(e<<2)>>2],fA(l,a?3*e|0:e),aA(d,l,d),oA(d),r=a&&((0|n[s>>2])+(0|n[d>>2])+(0|n[h>>2])|0)==(0|g)?1:2,P=f,0|(d=r)}function LA(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 RA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var s,a,l,f,u,c,h,g,d,w,p,b,B,m,v,y,E,k,_=0,Q=0,x=0,D=0,C=0;if(k=P,P=P+240|0,m=k+208|0,v=k,y=k+192|0,E=k+176|0,d=k+160|0,w=k+144|0,p=k+128|0,b=k+112|0,B=k+96|0,n[(_=k+224|0)>>2]=e,n[m>>2]=n[A>>2],n[m+4>>2]=n[A+4>>2],n[m+8>>2]=n[A+8>>2],n[m+12>>2]=n[A+12>>2],UA(m,_,v),n[o>>2]=0,(0|(g=r+t+(6==(0|r)&1)|0))<=(0|t))P=k;else{a=t+6|0,l=16960+((s=0|n[_>>2])<<2)|0,f=w+8|0,u=p+8|0,c=b+8|0,h=y+4|0,Q=0,x=t,r=-1;A:for(;;){if(A=v+((_=(0|x)%6|0)<<4)|0,n[y>>2]=n[A>>2],n[y+4>>2]=n[A+4>>2],n[y+8>>2]=n[A+8>>2],n[y+12>>2]=n[A+12>>2],A=Q,Q=0|GA(y,s,0,1),(0|x)>(0|t)&!!(0|$A(e))&&(1!=(0|A)&&(0|n[y>>2])!=(0|r))){switch(sA(v+((_+5|0)%6<<4)+4|0,E),sA(v+(_<<4)+4|0,d),D=+(0|n[l>>2]),i[w>>3]=3*D,i[f>>3]=0,C=-1.5*D,i[p>>3]=C,i[u>>3]=2.598076211353316*D,i[b>>3]=C,i[c>>3]=-2.598076211353316*D,_=0|n[m>>2],0|n[17040+(80*_|0)+(((0|r)==(0|_)?n[y>>2]:r)<<2)>>2]){case 1:A=p,r=w;break;case 3:A=b,r=p;break;case 2:A=w,r=b;break;default:A=8;break A}Le(E,d,r,A,B),0|Re(E,B)||0|Re(d,B)||(PA(B,0|n[m>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|x)<(0|a)&&(sA(h,E),PA(E,0|n[y>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(x=x+1|0))>=(0|g)){A=3;break}r=0|n[y>>2]}3!=(0|A)?8==(0|A)&&M(27054,27017,737,27099):P=k}}function UA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,s=0,a=0,l=0;r=P,P=P+160|0,o=r,a=20368,l=(s=i=r+80|0)+72|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));a=20448,l=(s=o)+72|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));i=(l=!(0|$A(0|n[e>>2])))?i:o,EA(o=A+4|0),kA(o),0|$A(0|n[e>>2])&&(pA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],aA(o,i,e=t+4|0),oA(e),n[t+16>>2]=n[A>>2],aA(o,i+12|0,e=t+20|0),oA(e),n[t+32>>2]=n[A>>2],aA(o,i+24|0,e=t+36|0),oA(e),n[t+48>>2]=n[A>>2],aA(o,i+36|0,e=t+52|0),oA(e),n[t+64>>2]=n[A>>2],aA(o,i+48|0,e=t+68|0),oA(e),n[t+80>>2]=n[A>>2],aA(o,i+60|0,t=t+84|0),oA(t),P=r}function YA(A,e){return e=0|at(0|(A|=0),0|(e|=0),45),_(),127&e}function OA(A,e){A|=0;var t=0,n=0,i=0,o=0;return!0&134217728==(-16777216&(e|=0))?(n=0|at(0|A,0|e,52),_(),n&=15,t=0|at(0|A,0|e,45),_(),(t&=127)>>>0>121?0|(A=0):!(613566756&(o=0|lt(0|(i=0|at(0|A,0|e,0|(o=3*(15^n)|0))),0|_(),0|o))&(0|At(-1227133514,-1171,0|o,0|(i=0|_()))))&!(4681&i&_())&&15==(0|n)|!(0|(o=0|at(0|(0|lt(0|~A,0|~e,0|(o=19+(3*n|0)|0))),0|_(),0|o)))&!(0|_())?0|r[20528+t|0]?!(0|A)&!(0|(e&=8191))?0|(o=1):(o=0|ft(0|A,0|e),_(),0|!!((63-o|0)%3|0)):0|(o=1):0|(o=0)):0|(A=0)}function zA(A,e,t,r){A|=0,t|=0,r|=0;var i=0,o=0,s=0,a=0;if(i=0|lt(0|(e|=0),0,52),o=0|_(),t=0|lt(0|t,0,45),t=0|o|_()|134225919,(0|e)<1)return o=-1,r=t,n[(e=A)>>2]=o,void(n[(A=A+4|0)>>2]=r);for(o=1,i=-1;a=0|lt(7,0,0|(s=3*(15-o|0)|0)),t&=~_(),i=i&~a|(s=0|lt(0|r,0,0|s)),t=0|t|_(),(0|o)!=(0|e);)o=o+1|0;n[(s=a=A)>>2]=i,n[(a=a+4|0)>>2]=t}function HA(A,e,t,r){t|=0,r|=0;var i=0,o=0;if(o=0|at(0|(A|=0),0|(e|=0),52),_(),t>>>0>15)return 0|(r=4);if((0|(o&=15))<(0|t))return 0|(r=12);if((0|o)==(0|t))return n[r>>2]=A,n[r+4>>2]=e,0|(r=0);if(i=0|lt(0|t,0,52),i|=A,A=_()|-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|_()|A}while((0|t)<(0|o));return n[r>>2]=i,n[r+4>>2]=A,0|(r=0)}function NA(A,e,t,r){t|=0,r|=0;var i=0,o=0,s=0;if(o=0|at(0|(A|=0),0|(e|=0),52),_(),!((0|t)<16&(0|(o&=15))<=(0|t)))return 0|(r=4);i=t-o|0,t=0|at(0|A,0|e,45),_();A:do{if(0|z(127&t)){e:do{if(0|o){for(t=1;!((s=0|lt(7,0,3*(15-t|0)|0))&A|0)&!((0|_())&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|_();break A}}while(0);t=0|$e(0|(t=0|nt(0|(t=0|ke(7,0,i,((0|i)<0)<<31>>31)),0|_(),5,0)),0|_(),-5,-1),t=0|$e(0|(t=0|rt(0|t,0|_(),6,0)),0|_(),1,0),i=0|_()}else t=0|ke(7,0,i,((0|i)<0)<<31>>31),i=0|_()}while(0);return n[(s=r)>>2]=t,n[s+4>>2]=i,0|(s=0)}function VA(A,e){var t=0,r=0,n=0;if(n=0|at(0|(A|=0),0|(e|=0),45),_(),!(0|z(127&n)))return 0|(n=0);n=0|at(0|A,0|e,52),_(),n&=15;A:do{if(n)for(r=1;;){if(t=0|at(0|A,0|e,3*(15-r|0)|0),_(),0|(t&=7))break A;if(!(r>>>0<n>>>0)){t=0;break}r=r+1|0}else t=0}while(0);return 0|(n=1&!(0|t))}function XA(A,e,t,r){return A|=0,e|=0,(0|(r|=0))<(0|(t|=0))?(r=A,k(0|(t=e)),0|r):(t=0|lt(-1,-1,3+(3*(r-t|0)|0)|0),r=0|lt(0|~t,0|~_(),3*(15-r|0)|0),t=~_()&e,r=~r&A,k(0|t),0|r)}function jA(A,e,t,r){t|=0,r|=0;var i=0;return i=0|at(0|(A|=0),0|(e|=0),52),_(),(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|~_(),3*(15-t|0)|0),e=~_()&e,A&=~i),i=0|lt(0|t,0,52),t=-15728641&e|_(),n[r>>2]=A|i,n[r+4>>2]=t,0|(r=0)):0|(r=4)}function WA(A,e){var t=0,r=0,n=0;if(n=0|at(0|(A|=0),0|(e|=0),52),_(),!(n&=15))return 0|(n=0);for(r=1;;){if(t=0|at(0|A,0|e,3*(15-r|0)|0),_(),0|(t&=7)){r=5;break}if(!(r>>>0<n>>>0)){t=0,r=5;break}r=r+1|0}return 5==(0|r)?0|t:0}function ZA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0,a=0;if(a=0|at(0|(A|=0),0|(e|=0),52),_(),!(a&=15))return a=A,k(0|(s=e)),0|a;for(s=1,t=0;;){r=0|lt(7,0,0|(i=3*(15-s|0)|0)),n=0|_(),o=0|at(0|A,0|e,0|i),_(),A=(i=0|lt(0|vA(7&o),0,0|i))|A&~r,e=(o=0|_())|e&~n;A:do{if(!t)if(!(i&r|0)&!(o&n|0))t=0;else if(r=0|at(0|A,0|e,52),_(),r&=15){t=1;e:for(;;){switch(o=0|at(0|A,0|e,3*(15-t|0)|0),_(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(n=0|at(0|A,0|e,0|(o=3*(15-t|0)|0)),_(),i=0|lt(7,0,0|o),e&=~_(),A=A&~i|(o=0|lt(0|vA(7&n),0,0|o)),e=0|e|_(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(s>>>0<a>>>0))break;s=s+1|0}return k(0|e),0|A}function JA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|at(0|(A|=0),0|(e|=0),52),_(),!(r&=15))return r=A,k(0|(t=e)),0|r;for(t=1;o=0|at(0|A,0|e,0|(i=3*(15-t|0)|0)),_(),n=0|lt(7,0,0|i),e&=~_(),A=(i=0|lt(0|vA(7&o),0,0|i))|A&~n,e=0|_()|e,t>>>0<r>>>0;)t=t+1|0;return k(0|e),0|A}function KA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0,a=0;if(a=0|at(0|(A|=0),0|(e|=0),52),_(),!(a&=15))return a=A,k(0|(s=e)),0|a;for(s=1,t=0;;){r=0|lt(7,0,0|(i=3*(15-s|0)|0)),n=0|_(),o=0|at(0|A,0|e,0|i),_(),A=(i=0|lt(0|yA(7&o),0,0|i))|A&~r,e=(o=0|_())|e&~n;A:do{if(!t)if(!(i&r|0)&!(o&n|0))t=0;else if(r=0|at(0|A,0|e,52),_(),r&=15){t=1;e:for(;;){switch(o=0|at(0|A,0|e,3*(15-t|0)|0),_(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|lt(7,0,0|(n=3*(15-t|0)|0)),o=e&~_(),e=0|at(0|A,0|e,0|n),_(),A=A&~i|(e=0|lt(0|yA(7&e),0,0|n)),e=0|o|_(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(s>>>0<a>>>0))break;s=s+1|0}return k(0|e),0|A}function qA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|at(0|(A|=0),0|(e|=0),52),_(),!(r&=15))return r=A,k(0|(t=e)),0|r;for(t=1;i=0|lt(7,0,0|(o=3*(15-t|0)|0)),n=e&~_(),e=0|at(0|A,0|e,0|o),_(),A=(e=0|lt(0|yA(7&e),0,0|o))|A&~i,e=0|_()|n,t>>>0<r>>>0;)t=t+1|0;return k(0|e),0|A}function $A(A){return(0|(A|=0))%2|0}function Ae(A,e,t){t|=0;var r,i=0;return r=P,P=P+16|0,i=r,(e|=0)>>>0>15?(P=r,0|(i=4)):2146435072&~n[(A|=0)+4>>2]&&2146435072&~n[A+8+4>>2]?(function(A,e,t){var r,n;r=P,P=P+16|0,IA(A|=0,e|=0,t|=0,n=r),iA(n,t+4|0),P=r}(A,e,i),e=0|function(A,e){A|=0;var t,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0;if(t=P,P=P+64|0,l=t+40|0,i=t+24|0,o=t+12|0,s=t,lt(0|(e|=0),0,52),r=134225919|_(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(l=0,k(0|(a=0)),P=t,0|l):(lt(0|N(A),0,45),a=0|_()|r,l=-1,k(0|a),P=t,0|l);if(n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],n[l+12>>2]=n[A+12>>2],a=l+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[a>>2],n[i+4>>2]=n[a+4>>2],n[i+8>>2]=n[a+8>>2],1&e?(gA(a),n[o>>2]=n[a>>2],n[o+4>>2]=n[a+4>>2],n[o+8>>2]=n[a+8>>2],wA(o)):(dA(a),n[o>>2]=n[a>>2],n[o+4>>2]=n[a+4>>2],n[o+8>>2]=n[a+8>>2],pA(o)),lA(i,o,s),oA(s),f=0|lt(7,0,0|(u=3*(15-e|0)|0)),r&=~_(),A=(u=0|lt(0|uA(s),0,0|u))|A&~f,r=0|_()|r,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[a>>2])<=2&&(0|n[l+8>>2])<=2&&(0|n[l+12>>2])<=2){if(e=0|lt(0|(i=0|N(l)),0,45),e|=A,A=_()|-1040385&r,s=0|V(l),!(0|z(i))){if((0|s)<=0)break;for(o=0;;){if(i=0|at(0|e,0|A,52),_(),i&=15)for(r=1;l=0|at(0|e,0|A,0|(u=3*(15-r|0)|0)),_(),f=0|lt(7,0,0|u),A&=~_(),e=e&~f|(u=0|lt(0|vA(7&l),0,0|u)),A=0|A|_(),r>>>0<i>>>0;)r=r+1|0;if((0|(o=o+1|0))==(0|s))break A}}o=0|at(0|e,0|A,52),_(),o&=15;e:do{if(o){r=1;t:for(;;){switch(u=0|at(0|e,0|A,3*(15-r|0)|0),_(),7&u){case 1:break t;case 0:break;default:break e}if(!(r>>>0<o>>>0))break e;r=r+1|0}if(0|X(i,0|n[l>>2]))for(r=1;f=0|lt(7,0,0|(l=3*(15-r|0)|0)),u=A&~_(),A=0|at(0|e,0|A,0|l),_(),e=e&~f|(A=0|lt(0|yA(7&A),0,0|l)),A=0|u|_(),r>>>0<o>>>0;)r=r+1|0;else for(r=1;l=0|at(0|e,0|A,0|(u=3*(15-r|0)|0)),_(),f=0|lt(7,0,0|u),A&=~_(),e=e&~f|(u=0|lt(0|vA(7&l),0,0|u)),A=0|A|_(),r>>>0<o>>>0;)r=r+1|0}}while(0);if((0|s)>0){r=0;do{e=0|ZA(e,A),A=0|_(),r=r+1|0}while((0|r)!=(0|s))}}else e=0,A=0}while(0);return u=e,k(0|(f=A)),P=t,0|u}(i,e),i=0|_(),n[t>>2]=e,n[t+4>>2]=i,!(0|e)&!(0|i)&&M(27795,27122,959,27145),P=r,0|(i=0)):(P=r,0|(i=3))}function ee(A,e,t){var r,i=0,o=0,s=0;if(r=(t|=0)+4|0,o=0|at(0|(A|=0),0|(e|=0),52),_(),o&=15,s=0|at(0|A,0|e,45),_(),i=!(0|o),0|z(127&s)){if(i)return 0|(s=1);i=1}else{if(i)return 0|(s=0);i=0|n[r>>2]||0|n[t+8>>2]?1:1&!!(0|n[t+12>>2])}for(t=1;1&t?wA(r):pA(r),s=0|at(0|A,0|e,3*(15-t|0)|0),_(),bA(r,7&s),t>>>0<o>>>0;)t=t+1|0;return 0|i}function te(A,e,t){t|=0;var r,i,o=0,s=0,a=0,l=0,f=0,u=0;if(i=P,P=P+16|0,r=i,u=0|at(0|(A|=0),0|(e|=0),45),_(),(u&=127)>>>0>121)return n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,n[t+12>>2]=0,P=i,0|(u=5);A:do{if(0|z(u)&&(a=0|at(0|A,0|e,52),_(),0|(a&=15))){o=1;e:for(;;){switch(f=0|at(0|A,0|e,3*(15-o|0)|0),_(),7&f){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<a>>>0)){o=e;break A}o=o+1|0}for(s=1,o=e;l=0|lt(7,0,0|(e=3*(15-s|0)|0)),f=o&~_(),o=0|at(0|A,0|o,0|e),_(),A=A&~l|(o=0|lt(0|yA(7&o),0,0|e)),o=0|f|_(),s>>>0<a>>>0;)s=s+1|0}else o=e}while(0);if(f=7696+(28*u|0)|0,n[t>>2]=n[f>>2],n[t+4>>2]=n[f+4>>2],n[t+8>>2]=n[f+8>>2],n[t+12>>2]=n[f+12>>2],!(0|ee(A,o,t)))return P=i,0|(u=0);if(l=t+4|0,n[r>>2]=n[l>>2],n[r+4>>2]=n[l+4>>2],n[r+8>>2]=n[l+8>>2],a=0|at(0|A,0|o,52),_(),f=15&a,1&a?(pA(l),a=f+1|0):a=f,0|z(u)){A:do{if(f)for(e=1;;){if(s=0|at(0|A,0|o,3*(15-e|0)|0),_(),0|(s&=7)){o=s;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,a,o,0)){if(0|z(u))do{}while(0|GA(t,a,0,0));(0|a)!=(0|f)&&dA(l)}else(0|a)!=(0|f)&&(n[l>>2]=n[r>>2],n[l+4>>2]=n[r+4>>2],n[l+8>>2]=n[r+8>>2]);return P=i,0|(u=0)}function re(A,e,t){t|=0;var r,n,i=0;return n=P,P=P+16|0,0|(i=0|te(A|=0,e|=0,r=n))?(P=n,0|i):(i=0|at(0|A,0|e,52),_(),FA(r,15&i,t),P=n,0|(i=0))}function ne(A,e,t){t|=0;var r,n=0,i=0,o=0;if(r=P,P=P+16|0,0|(n=0|te(A|=0,e|=0,o=r)))return P=r,0|(o=n);n=0|at(0|A,0|e,45),_(),n=!(0|z(127&n)),i=0|at(0|A,0|e,52),_(),i&=15;A:do{if(!n){if(0|i)for(n=1;;){if(!(!((0|lt(7,0,3*(15-n|0)|0))&A|0)&!((0|_())&e)))break A;if(!(n>>>0<i>>>0))break;n=n+1|0}return SA(o,i,0,5,t),P=r,0|0}}while(0);return RA(o,i,0,6,t),P=r,0|0}function ie(A,e){e|=0;var t=0,r=0,i=0,o=0,s=0,a=0,l=0;if((A|=0)>>>0>15)return 0|(a=4);if(lt(0|A,0,52),a=134225919|_(),!A){t=0,r=0;do{0|z(r)&&(lt(0|r,0,45),s=0|a|_(),n[(A=e+(t<<3)|0)>>2]=-1,n[A+4>>2]=s,t=t+1|0),r=r+1|0}while(122!=(0|r));return 0|(t=0)}t=0,s=0;do{if(0|z(s)){for(lt(0|s,0,45),r=1,i=-1,o=0|a|_();i&=~(l=0|lt(7,0,3*(15-r|0)|0)),o&=~_(),(0|r)!=(0|A);)r=r+1|0;n[(l=e+(t<<3)|0)>>2]=i,n[l+4>>2]=o,t=t+1|0}s=s+1|0}while(122!=(0|s));return 0|(t=0)}function oe(A,e,t,r){A|=0,r|=0;var i=0,o=0,s=0;i=0|at(0|(e|=0),0|(t|=0),52),_(),!(0|e)&!(0|t)|(0|r)>15|(0|(i&=15))>(0|r)?(o=-1,e=-1,t=0,i=0):(e=0|XA(e,t,i+1|0,r),s=-15728641&_(),t=0|lt(0|r,0,52),o=i,e=(e=!(0|VA(t|=e,s=0|s|_())))?-1:r,i=s),n[(s=A)>>2]=t,n[s+4>>2]=i,n[A+8>>2]=o,n[A+12>>2]=e}function se(A,e,t,r){t|=0,r|=0;var i=0,o=0;return i=0|at(0|(A|=0),0|(e|=0),52),_(),i&=15,n[(o=r+8|0)>>2]=i,!(0|A)&!(0|e)|(0|t)>15|(0|i)>(0|t)?(n[(t=r)>>2]=0,n[t+4>>2]=0,n[o>>2]=-1,void(n[r+12>>2]=-1)):(A=0|XA(A,e,i+1|0,t),o=-15728641&_(),i=0|lt(0|t,0,52),i|=A,o=0|o|_(),n[(A=r)>>2]=i,n[A+4>>2]=o,A=r+12|0,0|VA(i,o)?void(n[A>>2]=t):void(n[A>>2]=-1))}function ae(A){var e,t=0,r=0,i=0,o=0,s=0,a=0,l=0,f=0;if(!(!(0|(t=0|n[(r=A|=0)>>2]))&!(0|(r=0|n[r+4>>2]))||(i=0|at(0|t,0|r,52),_(),t=0|$e(0|(l=0|lt(1,0,3*(15^(i&=15))|0)),0|_(),0|t,0|r),r=0|_(),n[(l=A)>>2]=t,n[l+4>>2]=r,(0|i)<(0|(a=0|n[(l=A+8|0)>>2]))))){for(e=A+12|0,s=i;;){if((0|s)==(0|a)){i=5;break}if(f=(0|s)==(0|n[e>>2]),i=0|at(0|t,0|r,0|(o=3*(15-s|0)|0)),_(),f&1==(0|(i&=7))&!0){i=7;break}if(!(7==(0|i)&!0)){i=10;break}if(t=0|$e(0|t,0|r,0|(f=0|lt(1,0,0|o)),0|_()),r=0|_(),n[(f=A)>>2]=t,n[f+4>>2]=r,!((0|s)>(0|a))){i=10;break}s=s+-1|0}if(5==(0|i))return n[(f=A)>>2]=0,n[f+4>>2]=0,n[l>>2]=-1,void(n[e>>2]=-1);if(7==(0|i))return a=0|$e(0|t,0|r,0|(a=0|lt(1,0,0|o)),0|_()),l=0|_(),n[(f=A)>>2]=a,n[f+4>>2]=l,void(n[e>>2]=s+-1)}}function le(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function fe(A,e){return e|=0,+l(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+l(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function ue(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 ce(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+h(.5*(r-t)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+b(+ +f(+o),+ +f(+(1-o)))*6371.007180918475}function he(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20656+(A<<3)>>3],0|(e=0))}function ge(A,e){e|=0;var t=0;return(A|=0)>>>0>15?0|(e=4):(t=0|nt(0|(t=0|ke(7,0,A,((0|A)<0)<<31>>31)),0|_(),120,0),A=0|_(),n[e>>2]=2|t,n[e+4>>2]=A,0|(e=0))}function de(A,e,t){A|=0,t|=0;var r,n,o,s,a=0,l=0,u=0,d=0,w=0,B=0;return B=+i[(e|=0)>>3],o=+i[A>>3],w=+h(.5*(B-o)),u=+i[e+8>>3],n=+i[A+8>>3],d=+h(.5*(u-n)),r=+c(+o),s=+c(+B),d=2*+b(+ +f(+(d=w*w+d*(s*r*d))),+ +f(+(1-d))),w=+i[t>>3],B=+h(.5*(w-B)),a=+i[t+8>>3],u=+h(.5*(a-u)),l=+c(+w),u=2*+b(+ +f(+(u=B*B+u*(s*l*u))),+ +f(+(1-u))),w=+h(.5*(o-w)),a=+h(.5*(n-a)),a=2*+b(+ +f(+(a=w*w+a*(r*l*a))),+ +f(+(1-a))),4*+p(+ +f(+ +g(.5*(l=.5*(d+u+a)))*+g(.5*(l-d))*+g(.5*(l-u))*+g(.5*(l-a))))}function we(A,e,t){t|=0;var r,o,s,a=0,l=0;if(s=P,P=P+192|0,o=s,0|(l=0|re(A|=0,e|=0,r=s+168|0)))return P=s,0|(t=l);if(0|ne(A,e,o)&&M(27795,27190,415,27199),(0|(e=0|n[o>>2]))>0){if(a=+de(o+8|0,o+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{a+=+de(o+8+((l=A)<<4)|0,o+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e))}}else a=0;return i[t>>3]=a,P=s,0|(t=0)}function pe(A){A|=0;var e,t,r=0;return(e=0|qe(1,12))||M(27280,27235,49,27293),0|(r=0|n[(t=A+4|0)>>2])?(n[(r=r+8|0)>>2]=e,n[t>>2]=e,0|e):(0|n[A>>2]&&M(27310,27235,61,27333),n[(r=A)>>2]=e,n[t>>2]=e,0|e)}function be(A,e){A|=0,e|=0;var t,r;return(r=0|Je(24))||M(27347,27235,78,27361),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[r+16>>2]=0,0|(t=0|n[(e=A+4|0)>>2])?(n[t+16>>2]=r,n[e>>2]=r,0|r):(0|n[A>>2]&&M(27376,27235,82,27361),n[A>>2]=r,n[e>>2]=r,0|r)}function Be(A){var e=0,t=0,r=0,i=0;if(A|=0)for(r=1;;){if(0|(e=0|n[A>>2]))do{if(0|(t=0|n[e>>2]))do{i=t,t=0|n[t+16>>2],Ke(i)}while(0|t);i=e,e=0|n[e+8>>2],Ke(i)}while(0|e);if(e=A,A=0|n[A+8>>2],r||Ke(e),!A)break;r=0}}function me(A){var e,t,r=0,o=0,s=0,a=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,E=0,k=0,_=0,Q=0,x=0,D=0,C=0,I=0,P=0,F=0,S=0,T=0,G=0;if(0|n[(a=(A|=0)+8|0)>>2])return 0|(G=1);if(!(s=0|n[A>>2]))return 0|(G=0);r=s,o=0;do{o=o+1|0,r=0|n[r+8>>2]}while(0|r);if(o>>>0<2)return 0|(G=0);(t=0|Je(o<<2))||M(27396,27235,317,27415),(e=0|Je(o<<5))||M(27437,27235,321,27415),n[A>>2]=0,n[(x=A+4|0)>>2]=0,n[a>>2]=0,o=0,S=0,Q=0,w=0;A:for(;;){if(d=0|n[s>>2]){f=0,u=d;do{if(h=+i[u+8>>3],r=u,u=0|n[u+16>>2],c=+i[(a=(g=!(0|u))?d:u)+8>>3],+l(+(h-c))>3.141592653589793){G=14;break}f+=(c-h)*(+i[r>>3]+ +i[a>>3])}while(!g);if(14==(0|G)){G=0,f=0,r=d;do{_=+i[r+8>>3],P=0|n[(F=r+16|0)>>2],k=+i[(P=0|P?P:d)+8>>3],f+=(+i[r>>3]+ +i[P>>3])*((k<0?k+6.283185307179586:k)-(_<0?_+6.283185307179586:_)),r=0|n[(0|r?F:s)>>2]}while(0|r)}f>0?(n[t+(S<<2)>>2]=s,S=S+1|0,a=Q,r=w):G=19}else G=19;if(19==(0|G)){G=0;do{if(!o){if(w){a=x,u=w+8|0,r=s,o=A;break}if(0|n[A>>2]){G=27;break A}a=x,u=A,r=s,o=A;break}if(0|n[(r=o+8|0)>>2]){G=21;break A}if(!(o=0|qe(1,12))){G=23;break A}n[r>>2]=o,a=o+4|0,u=o,r=w}while(0);if(n[u>>2]=s,n[a>>2]=s,u=e+(Q<<5)|0,g=0|n[s>>2]){for(i[(d=e+(Q<<5)+8|0)>>3]=17976931348623157e292,i[(w=e+(Q<<5)+24|0)>>3]=17976931348623157e292,i[u>>3]=-17976931348623157e292,i[(p=e+(Q<<5)+16|0)>>3]=-17976931348623157e292,y=17976931348623157e292,E=-17976931348623157e292,a=0,b=g,h=17976931348623157e292,m=17976931348623157e292,v=-17976931348623157e292,c=-17976931348623157e292;f=+i[b>>3],_=+i[b+8>>3],b=0|n[b+16>>2],k=+i[((B=!(0|b))?g:b)+8>>3],f<h&&(i[d>>3]=f,h=f),_<m&&(i[w>>3]=_,m=_),f>v?i[u>>3]=f:f=v,_>c&&(i[p>>3]=_,c=_),y=_>0&_<y?_:y,E=_<0&_>E?_:E,a|=+l(+(_-k))>3.141592653589793,!B;)v=f;a&&(i[p>>3]=E,i[w>>3]=y)}else n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,n[u+12>>2]=0,n[u+16>>2]=0,n[u+20>>2]=0,n[u+24>>2]=0,n[u+28>>2]=0;a=Q+1|0}if(s=0|n[(F=s+8|0)>>2],n[F>>2]=0,!s){G=45;break}Q=a,w=r}if(21==(0|G))M(27213,27235,35,27247);else if(23==(0|G))M(27267,27235,37,27247);else if(27==(0|G))M(27310,27235,61,27333);else if(45==(0|G)){A:do{if((0|S)>0){for(F=!(0|a),I=a<<2,P=!(0|A),C=0,r=0;;){if(D=0|n[t+(C<<2)>>2],F)G=73;else{if(!(Q=0|Je(I))){G=50;break}if(!(x=0|Je(I))){G=52;break}e:do{if(P)o=0;else{for(a=0,o=0,u=A;s=e+(a<<5)|0,0|ve(0|n[u>>2],s,0|n[D>>2])?(n[Q+(o<<2)>>2]=u,n[x+(o<<2)>>2]=s,B=o+1|0):B=o,u=0|n[u+8>>2];)a=a+1|0,o=B;if((0|B)>0)if(s=0|n[Q>>2],1==(0|B))o=s;else for(p=0,b=-1,o=s,w=s;;){for(g=0|n[w>>2],s=0,u=0;d=(0|(a=0|n[n[Q+(u<<2)>>2]>>2]))==(0|g)?s:s+(1&ve(a,0|n[x+(u<<2)>>2],0|n[g>>2]))|0,(0|(u=u+1|0))!=(0|B);)s=d;if(o=(a=(0|d)>(0|b))?w:o,(0|(s=p+1|0))==(0|B))break e;p=s,b=a?d:b,w=0|n[Q+(s<<2)>>2]}else o=0}}while(0);if(Ke(Q),Ke(x),o){if(s=0|n[(a=o+4|0)>>2])o=s+8|0;else if(0|n[o>>2]){G=70;break}n[o>>2]=D,n[a>>2]=D}else G=73}if(73==(0|G)){if(G=0,0|(r=0|n[D>>2]))do{x=r,r=0|n[r+16>>2],Ke(x)}while(0|r);Ke(D),r=1}if((0|(C=C+1|0))>=(0|S)){T=r;break A}}50==(0|G)?M(27452,27235,249,27471):52==(0|G)?M(27490,27235,252,27471):70==(0|G)&&M(27310,27235,61,27333)}else T=0}while(0);return Ke(t),Ke(e),0|(G=T)}return 0}function ve(A,e,t){A|=0;var r=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0;if(!(0|q(e|=0,t|=0)))return 0|(A=0);if(e=0|J(e),r=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0|(A=0);if(e){e=0,u=o,t=A;A:for(;;){for(;a=+i[t>>3],o=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],s=+i[(c=0|c?c:A)>>3],l=+i[c+8>>3],a>s?(f=a,a=l):(f=s,s=a,a=o,o=l),(r=r==s|r==f?r+2220446049250313e-31:r)<s|r>f;)if(!(t=0|n[t>>2])){t=22;break A}if(((f=(l=a<0?a+6.283185307179586:a)+(r-s)/(f-s)*((a=o<0?o+6.283185307179586:o)-l))<0?f+6.283185307179586:f)>(u=l==u|a==u?u+-2220446049250313e-31:u)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,u=o,t=A;A:for(;;){for(;a=+i[t>>3],o=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],s=+i[(c=0|c?c:A)>>3],l=+i[c+8>>3],a>s?(f=a,a=l):(f=s,s=a,a=o,o=l),(r=r==s|r==f?r+2220446049250313e-31:r)<s|r>f;)if(!(t=0|n[t>>2])){t=22;break A}if(a+(r-s)/(f-s)*(o-a)>(u=a==u|o==u?u+-2220446049250313e-31:u)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}return 0}function ye(A,e,t,i,o){t|=0,i|=0,o|=0;var s,a,l,f,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0;if(f=P,P=P+32|0,m=f+16|0,l=f,u=0|at(0|(A|=0),0|(e|=0),52),_(),u&=15,p=0|at(0|t,0|i,52),_(),(0|u)!=(15&p))return P=f,0|(m=12);if(d=0|at(0|A,0|e,45),_(),d&=127,w=0|at(0|t,0|i,45),_(),d>>>0>121|(w&=127)>>>0>121)return P=f,0|(m=5);if(p=(0|d)!=(0|w)){if(7==(0|(h=0|W(d,w))))return P=f,0|(m=1);7==(0|(g=0|W(w,d)))?M(27514,27538,161,27548):(b=h,c=g)}else b=0,c=0;s=0|z(d),a=0|z(w),n[m>>2]=0,n[m+4>>2]=0,n[m+8>>2]=0,n[m+12>>2]=0;do{if(b){if(h=(0|(w=0|n[4272+(28*d|0)+(b<<2)>>2]))>0,a)if(h){d=0,g=t,h=i;do{g=0|KA(g,h),h=0|_(),1==(0|(c=0|yA(c)))&&(c=0|yA(1)),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=t,g=i;else if(h){d=0,g=t,h=i;do{g=0|qA(g,h),h=0|_(),c=0|yA(c),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=t,g=i;if(ee(d,g,m),p||M(27563,27538,191,27548),(h=!!(0|s))&(c=!!(0|a))&&M(27590,27538,192,27548),h){if(7==(0|(c=0|WA(A,e)))){u=5;break}if(0|r[22e3+(7*c|0)+b|0]){u=1;break}d=g=0|n[21168+(28*c|0)+(b<<2)>>2]}else if(c){if(7==(0|(c=0|WA(d,g)))){u=5;break}if(0|r[22e3+(7*c|0)+w|0]){u=1;break}d=0,g=0|n[21168+(28*w|0)+(c<<2)>>2]}else d=0,g=0;if((d|g|0)<0)u=5;else{if((0|g)>0){h=m+4|0,c=0;do{mA(h),c=c+1|0}while((0|c)!=(0|g))}if(n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,bA(l,b),0|u)for(;0|$A(u)?wA(l):pA(l),(0|u)>1;)u=u+-1|0;if((0|d)>0){u=0;do{mA(l),u=u+1|0}while((0|u)!=(0|d))}aA(B=m+4|0,l,B),oA(B),B=51}}else if(ee(t,i,m),!!(0|s)&!!(0|a))if((0|w)!=(0|d)&&M(27621,27538,261,27548),7==(0|(c=0|WA(A,e)))|7==(0|(u=0|WA(t,i))))u=5;else if(0|r[22e3+(7*c|0)+u|0])u=1;else if((0|(c=0|n[21168+(28*c|0)+(u<<2)>>2]))>0){h=m+4|0,u=0;do{mA(h),u=u+1|0}while((0|u)!=(0|c));B=51}else B=51;else B=51}while(0);return 51==(0|B)&&(u=m+4|0,n[o>>2]=n[u>>2],n[o+4>>2]=n[u+4>>2],n[o+8>>2]=n[u+8>>2],u=0),P=f,0|(m=u)}function Ee(A,e,t,r){t|=0,r|=0;var i,o,s,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0;if(s=P,P=P+48|0,i=s+36|0,f=s+24|0,u=s+12|0,c=s,a=0|at(0|(A|=0),0|(e|=0),52),_(),a&=15,g=0|at(0|A,0|e,45),_(),(g&=127)>>>0>121)return P=s,0|(r=5);if(o=0|z(g),lt(0|a,0,52),p=134225919|_(),n[(l=r)>>2]=-1,n[l+4>>2]=p,!a)return 7==(0|(a=0|uA(t)))||127==(0|(a=0|j(g,a)))?(P=s,0|(p=1)):(d=0|lt(0|a,0,45),w=0|_(),w=-1040385&n[(g=r)+4>>2]|w,n[(p=r)>>2]=n[g>>2]|d,n[p+4>>2]=w,P=s,0|(p=0));for(n[i>>2]=n[t>>2],n[i+4>>2]=n[t+4>>2],n[i+8>>2]=n[t+8>>2],t=a;;){if(l=t,t=t+-1|0,n[f>>2]=n[i>>2],n[f+4>>2]=n[i+4>>2],n[f+8>>2]=n[i+8>>2],0|$A(l)){if(0|(a=0|cA(i))){t=13;break}n[u>>2]=n[i>>2],n[u+4>>2]=n[i+4>>2],n[u+8>>2]=n[i+8>>2],wA(u)}else{if(0|(a=0|hA(i))){t=13;break}n[u>>2]=n[i>>2],n[u+4>>2]=n[i+4>>2],n[u+8>>2]=n[i+8>>2],pA(u)}if(lA(f,u,c),oA(c),B=0|n[(a=r)>>2],a=0|n[a+4>>2],b=0|lt(7,0,0|(m=3*(15-l|0)|0)),a&=~_(),m=0|lt(0|uA(c),0,0|m),a=0|_()|a,n[(p=r)>>2]=m|B&~b,n[p+4>>2]=a,(0|l)<=1){t=14;break}}A:do{if(13!=(0|t)&&14==(0|t))if((0|n[i>>2])<=1&&(0|n[i+4>>2])<=1&&(0|n[i+8>>2])<=1){c=127==(0|(a=0|j(g,t=0|uA(i))))?0:0|z(a);e:do{if(t){if(o){if(7==(0|(a=0|WA(A,e)))){a=5;break A}if((0|(l=0|n[21376+(28*a|0)+(t<<2)>>2]))>0){a=t,t=0;do{a=0|vA(a),t=t+1|0}while((0|t)!=(0|l))}else a=t;if(1==(0|a)){a=9;break A}127==(0|(t=0|j(g,a)))&&M(27648,27538,411,27678),0|z(t)?M(27693,27538,412,27678):(w=t,d=l,h=a)}else w=a,d=0,h=t;if((0|(u=0|n[4272+(28*g|0)+(h<<2)>>2]))<=-1&&M(27724,27538,419,27678),!c){if((0|d)<0){a=5;break A}if(0|d){a=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];do{t=0|JA(t,l),l=0|_(),n[(m=r)>>2]=t,n[m+4>>2]=l,a=a+1|0}while((0|a)<(0|d))}if((0|u)<=0){a=w,t=58;break}for(a=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];;)if(t=0|JA(t,l),l=0|_(),n[(m=r)>>2]=t,n[m+4>>2]=l,(0|(a=a+1|0))==(0|u)){a=w,t=58;break e}}if(7==(0|(f=0|W(w,g)))&&M(27514,27538,428,27678),t=0|n[(a=r)>>2],a=0|n[a+4>>2],(0|u)>0){l=0;do{t=0|JA(t,a),a=0|_(),n[(m=r)>>2]=t,n[m+4>>2]=a,l=l+1|0}while((0|l)!=(0|u))}if(7==(0|(a=0|WA(t,a)))&&M(27795,27538,440,27678),t=0|H(w),(0|(t=0|n[(t?21792:21584)+(28*f|0)+(a<<2)>>2]))<0&&M(27795,27538,454,27678),t){a=0,l=0|n[(f=r)>>2],f=0|n[f+4>>2];do{l=0|ZA(l,f),f=0|_(),n[(m=r)>>2]=l,n[m+4>>2]=f,a=a+1|0}while((0|a)<(0|t));a=w,t=58}else a=w,t=58}else if(!!(0|o)&!!(0|c)){if(7==(0|(t=0|WA(A,e)))|7==(0|(l=0|WA(0|n[(l=r)>>2],0|n[l+4>>2])))){a=5;break A}if((0|(l=0|n[21376+(28*t|0)+(l<<2)>>2]))<0){a=5;break A}if(l){t=0,f=0|n[(u=r)>>2],u=0|n[u+4>>2];do{f=0|JA(f,u),u=0|_(),n[(m=r)>>2]=f,n[m+4>>2]=u,t=t+1|0}while((0|t)<(0|l));t=58}else t=59}else t=58}while(0);if(58==(0|t)&&c&&(t=59),59==(0|t)&&1==(0|WA(0|n[(m=r)>>2],0|n[m+4>>2]))){a=9;break}b=0|n[(m=r)>>2],m=-1040385&n[m+4>>2],B=0|lt(0|a,0,45),m=0|m|_(),n[(a=r)>>2]=b|B,n[a+4>>2]=m,a=0}else a=1}while(0);return P=s,0|(m=a)}function ke(A,e,t,r){A|=0,e|=0;var n=0,i=0,o=0;if(!(0|(t|=0))&!(0|(r|=0)))return i=1,k(0|(n=0)),0|i;i=A,n=e,A=1,e=0;do{A=0|nt(0|((o=!0&!(1&t))?1:i),0|(o?0:n),0|A,0|e),e=0|_(),t=0|st(0|t,0|r,1),r=0|_(),i=0|nt(0|i,0|n,0|i,0|n),n=0|_()}while(!(!(0|t)&!(0|r)));return k(0|e),0|A}function _e(A,e,t,r){t|=0,r|=0;var o,s=0,a=0,l=0,f=0,u=0,h=0;o=P,P=P+16|0,a=o,l=0|at(0|(A|=0),0|(e|=0),52),_(),l&=15;do{if(l){if(!(s=0|re(A,e,a))){u=+i[a>>3],f=1/+c(+u),h=+i[25968+(l<<3)>>3],i[t>>3]=u+h,i[t+8>>3]=u-h,u=+i[a+8>>3],f*=h,i[t+16>>3]=f+u,i[t+24>>3]=u-f;break}return P=o,0|(l=s)}if(s=0|at(0|A,0|e,45),_(),(s&=127)>>>0>121)return P=o,0|(l=5);a=22064+(s<<5)|0,n[t>>2]=n[a>>2],n[t+4>>2]=n[a+4>>2],n[t+8>>2]=n[a+8>>2],n[t+12>>2]=n[a+12>>2],n[t+16>>2]=n[a+16>>2],n[t+20>>2]=n[a+20>>2],n[t+24>>2]=n[a+24>>2],n[t+28>>2]=n[a+28>>2];break}while(0);return function(A,e){e=+e;var t,r,n,o,s,a,l,f=0,u=0;f=(o=+i[(n=16+(A|=0)|0)>>3])-(r=+i[(t=A+24|0)>>3]),f=o<r?f+6.283185307179586:f,u=+i[A>>3],f=.5*(f*e-f),u+=e=.5*((l=u-(a=+i[(s=A+8|0)>>3]))*e-l),i[A>>3]=u>1.5707963267948966?1.5707963267948966:u,e=a-e,i[s>>3]=e<-1.5707963267948966?-1.5707963267948966:e,e=(e=o+f)>3.141592653589793?e+-6.283185307179586:e,i[n>>3]=e<-3.141592653589793?e+6.283185307179586:e,e=(e=r-f)>3.141592653589793?e+-6.283185307179586:e,i[t>>3]=e<-3.141592653589793?e+6.283185307179586:e}(t,r?1.4:1.1),(0|n[(r=26096+(l<<3)|0)>>2])==(0|A)&&(0|n[r+4>>2])==(0|e)&&(i[t>>3]=1.5707963267948966),(0|n[(l=26224+(l<<3)|0)>>2])==(0|A)&&(0|n[l+4>>2])==(0|e)&&(i[t+8>>3]=-1.5707963267948966),1.5707963267948966!=+i[t>>3]&&-1.5707963267948966!=+i[t+8>>3]?(P=o,0|(l=0)):(i[t+16>>3]=3.141592653589793,i[t+24>>3]=-3.141592653589793,P=o,0|(l=0))}function Me(A,e,t,i){A|=0,e|=0,t|=0,i|=0;var o,s,a,l=0,f=0,u=0,c=0;a=P,P=P+48|0,o=a+40|0,s=a,zA(f=a+32|0,0,0,0),u=0|n[f>>2],f=0|n[f+4>>2];do{if(t>>>0<=15){if(0|(l=0|Ie(i))){n[(i=s)>>2]=0,n[i+4>>2]=0,n[s+8>>2]=l,n[s+12>>2]=-1,u=s+29|0,n[(i=s+16|0)>>2]=0,n[i+4>>2]=0,n[i+8>>2]=0,r[i+12|0]=0,r[u|0]=0|r[o|0],r[u+1|0]=0|r[o+1|0],r[u+2|0]=0|r[o+2|0];break}if(l=0|qe(1+(0|n[e+8>>2])|0,32)){Pe(e,l),n[(c=s)>>2]=u,n[c+4>>2]=f,n[s+8>>2]=0,n[s+12>>2]=t,n[s+16>>2]=i,n[s+20>>2]=e,n[s+24>>2]=l,r[s+28|0]=0,r[(u=s+29|0)|0]=0|r[o|0],r[u+1|0]=0|r[o+1|0],r[u+2|0]=0|r[o+2|0];break}n[(i=s)>>2]=0,n[i+4>>2]=0,n[s+8>>2]=13,n[s+12>>2]=-1,u=s+29|0,n[(i=s+16|0)>>2]=0,n[i+4>>2]=0,n[i+8>>2]=0,r[i+12|0]=0,r[u|0]=0|r[o|0],r[u+1|0]=0|r[o+1|0],r[u+2|0]=0|r[o+2|0];break}n[(u=s)>>2]=0,n[u+4>>2]=0,n[s+8>>2]=4,n[s+12>>2]=-1,c=s+29|0,n[(u=s+16|0)>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,r[u+12|0]=0,r[c|0]=0|r[o|0],r[c+1|0]=0|r[o+1|0],r[c+2|0]=0|r[o+2|0]}while(0);Qe(s),n[A>>2]=n[s>>2],n[A+4>>2]=n[s+4>>2],n[A+8>>2]=n[s+8>>2],n[A+12>>2]=n[s+12>>2],n[A+16>>2]=n[s+16>>2],n[A+20>>2]=n[s+20>>2],n[A+24>>2]=n[s+24>>2],n[A+28>>2]=n[s+28>>2],P=a}function Qe(A){var e,t,i,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0;if(o=P,P=P+336|0,e=o+168|0,t=o,!(0|(a=0|n[(l=A|=0)>>2]))&!(0|(l=0|n[l+4>>2])))P=o;else{if(0|r[(s=A+28|0)|0]?(a=0|xe(a,l),l=0|_()):r[s|0]=1,!(0|n[n[(i=A+20|0)>>2]>>2]))return 0|(a=0|n[(s=A+24|0)>>2])&&Ke(a),n[(y=A)>>2]=0,n[y+4>>2]=0,n[A+8>>2]=0,n[i>>2]=0,n[A+12>>2]=-1,n[A+16>>2]=0,n[s>>2]=0,void(P=o);f=15&(s=0|n[(y=A+16|0)>>2]);A:do{if(!(0|a)&!(0|l))v=A+24|0;else{B=A+12|0,p=3==(0|f),w=255&s,g=3==(1|f),b=A+24|0,d=(f+-1|0)>>>0<3,c=3==(2|f),h=t+8|0;e:for(;;){if(u=0|at(0|a,0|l,52),_(),(0|(u&=15))==(0|n[B>>2])){switch(15&w){case 0:case 2:case 3:if(0|(f=0|re(a,l,e))){m=15;break e}if(0|Fe(0|n[i>>2],0|n[b>>2],e)){m=19;break e}}if(g&&(f=0|n[4+(0|n[i>>2])>>2],n[e>>2]=n[f>>2],n[e+4>>2]=n[f+4>>2],n[e+8>>2]=n[f+8>>2],n[e+12>>2]=n[f+12>>2],0|q(26832,e))){if(0|Ae(0|n[4+(0|n[i>>2])>>2],u,t)){m=25;break}if((0|n[(f=t)>>2])==(0|a)&&(0|n[f+4>>2])==(0|l)){m=29;break}}if(d){if(0|(f=0|ne(a,l,e))){m=32;break}if(0|_e(a,l,t,0)){m=36;break}if(c&&0|Se(0|n[i>>2],0|n[b>>2],e,t)){m=42;break}if(g&&0|Ge(0|n[i>>2],0|n[b>>2],e,t)){m=42;break}}if(p){if(s=0|_e(a,l,e,1),f=0|n[b>>2],0|s){m=45;break}if(0|$(f,e)){if(eA(t,e),0|AA(e,0|n[b>>2])){m=53;break}if(0|Fe(0|n[i>>2],0|n[b>>2],h)){m=53;break}if(0|Ge(0|n[i>>2],0|n[b>>2],t,e)){m=53;break}}}}do{if((0|u)<(0|n[B>>2])){if(s=0|_e(a,l,e,1),f=0|n[b>>2],0|s){m=58;break e}if(!(0|$(f,e))){m=73;break}if(0|AA(0|n[b>>2],e)&&(eA(t,e),0|Se(0|n[i>>2],0|n[b>>2],t,e))){m=65;break e}if(0|(a=0|jA(a,l,u+1|0,t))){m=67;break e}a=0|n[(l=t)>>2],l=0|n[l+4>>2]}else m=73}while(0);if(73==(0|m)&&(m=0,a=0|xe(a,l),l=0|_()),!(0|a)&!(0|l)){v=b;break A}}switch(0|m){case 15:0|(s=0|n[b>>2])&&Ke(s),n[(m=A)>>2]=0,n[m+4>>2]=0,n[i>>2]=0,n[B>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=f,m=20;break;case 19:n[A>>2]=a,n[A+4>>2]=l,m=20;break;case 25:M(27795,27761,470,27772);break;case 29:case 42:return n[A>>2]=a,n[A+4>>2]=l,void(P=o);case 32:return 0|(s=0|n[b>>2])&&Ke(s),n[(v=A)>>2]=0,n[v+4>>2]=0,n[i>>2]=0,n[B>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=f,void(P=o);case 36:M(27795,27761,493,27772);break;case 45:0|f&&Ke(f),n[(m=A)>>2]=0,n[m+4>>2]=0,n[i>>2]=0,n[B>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=s,m=55;break;case 53:n[A>>2]=a,n[A+4>>2]=l,m=55;break;case 58:0|f&&Ke(f),n[(m=A)>>2]=0,n[m+4>>2]=0,n[i>>2]=0,n[B>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=s,m=71;break;case 65:n[A>>2]=a,n[A+4>>2]=l,m=71;break;case 67:return 0|(s=0|n[b>>2])&&Ke(s),n[(v=A)>>2]=0,n[v+4>>2]=0,n[i>>2]=0,n[B>>2]=-1,n[y>>2]=0,n[b>>2]=0,n[A+8>>2]=a,void(P=o)}if(20==(0|m))return void(P=o);if(55==(0|m))return void(P=o);if(71==(0|m))return void(P=o)}}while(0);0|(s=0|n[v>>2])&&Ke(s),n[(m=A)>>2]=0,n[m+4>>2]=0,n[A+8>>2]=0,n[i>>2]=0,n[A+12>>2]=-1,n[y>>2]=0,n[v>>2]=0,P=o}}function xe(A,e){var t,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0;t=P,P=P+16|0,c=t,i=0|at(0|(A|=0),0|(e|=0),52),_(),i&=15,r=0|at(0|A,0|e,45),_();do{if(i){for(;r=0|lt(i+4095|0,0,52),o=_()|-15728641&e,r=r|A|(a=0|lt(7,0,0|(s=3*(15-i|0)|0))),o|=l=0|_(),f=0|at(0|A,0|e,0|s),_(),i=i+-1|0,!((f&=7)>>>0<6);){if(!i){u=4;break}e=o,A=r}if(4==(0|u)){r=0|at(0|r,0|o,45),_();break}return c=0|lt(((c=!(0|f)&!!(0|VA(r,o)))?2:1)+f|0,0,0|s),u=0|_()|e&~l,c|=A&~a,k(0|u),P=t,0|c}}while(0);return(r&=127)>>>0>120?(c=0,k(0|(u=0)),P=t,0|c):(zA(c,0,r+1|0,0),u=0|n[c+4>>2],c=0|n[c>>2],k(0|u),P=t,0|c)}function De(A,e,t){A|=0;var r,o=0,s=0,a=0,l=0,f=0,u=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],s=e&(s=+i[t+8>>3])<0?s+6.283185307179586:s,(0|(g=0|n[A>>2]))<=0)return 0|(g=0);if(r=0|n[A+4>>2],e){e=0,h=s,t=-1,A=0;A:for(;;){for(c=A;l=+i[r+(c<<4)>>3],s=+i[r+(c<<4)+8>>3],a=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],f=+i[r+(A<<4)+8>>3],l>a?(u=l,l=f):(u=a,a=l,l=s,s=f),(o=o==a|o==u?o+2220446049250313e-31:o)<a|o>u;){if((0|(t=c+1|0))>=(0|g)){t=22;break A}A=c,c=t,t=A}if(((u=(f=l<0?l+6.283185307179586:l)+(o-a)/(u-a)*((l=s<0?s+6.283185307179586:s)-f))<0?u+6.283185307179586:u)>(h=f==h|l==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|g)){t=22;break}t=c}if(22==(0|t))return 0|e}else{e=0,h=s,t=-1,A=0;A:for(;;){for(c=A;l=+i[r+(c<<4)>>3],s=+i[r+(c<<4)+8>>3],a=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],f=+i[r+(A<<4)+8>>3],l>a?(u=l,l=f):(u=a,a=l,l=s,s=f),(o=o==a|o==u?o+2220446049250313e-31:o)<a|o>u;){if((0|(t=c+1|0))>=(0|g)){t=22;break A}A=c,c=t,t=A}if(l+(o-a)/(u-a)*(s-l)>(h=l==h|s==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 Ce(A,e){e|=0;var t,r,o,s,a,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0;if(!(r=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(s=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(a=e+16|0)>>3]=-17976931348623157e292,!((0|r)<=0)){for(t=0|n[A+4>>2],p=17976931348623157e292,b=-17976931348623157e292,B=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,w=-17976931348623157e292,u=-17976931348623157e292,m=0;f=+i[t+(m<<4)>>3],d=+i[t+(m<<4)+8>>3],c=+i[t+(((0|(A=A+2|0))==(0|r)?0:A)<<4)+8>>3],f<h&&(i[o>>3]=f,h=f),d<g&&(i[s>>3]=d,g=d),f>w?i[e>>3]=f:f=w,d>u&&(i[a>>3]=d,u=d),p=d>0&d<p?d:p,b=d<0&d>b?d:b,B|=+l(+(d-c))>3.141592653589793,(0|(A=m+1|0))!=(0|r);)v=m,w=f,m=A,A=v;B&&(i[a>>3]=b,i[s>>3]=p)}}function Ie(A){return 0|((A|=0)>>>0<4?0:15)}function Pe(A,e){e|=0;var t,r=0,o=0,s=0,a=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,E=0,k=0,_=0,M=0;if(b=0|n[(A|=0)>>2]){if(i[(B=e+8|0)>>3]=17976931348623157e292,i[(m=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(v=e+16|0)>>3]=-17976931348623157e292,(0|b)>0){for(s=0|n[A+4>>2],w=17976931348623157e292,p=-17976931348623157e292,o=0,r=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,f=-17976931348623157e292,y=0;a=+i[s+(y<<4)>>3],g=+i[s+(y<<4)+8>>3],u=+i[s+(((0|(_=r+2|0))==(0|b)?0:_)<<4)+8>>3],a<c&&(i[B>>3]=a,c=a),g<h&&(i[m>>3]=g,h=g),a>d?i[e>>3]=a:a=d,g>f&&(i[v>>3]=g,f=g),w=g>0&g<w?g:w,p=g<0&g>p?g:p,o|=+l(+(g-u))>3.141592653589793,(0|(r=y+1|0))!=(0|b);)_=y,d=a,y=r,r=_;o&&(i[v>>3]=p,i[m>>3]=w)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(r=0|n[(_=A+8|0)>>2]))<=0)){t=A+12|0,k=0;do{if(s=0|n[t>>2],o=k,m=e+((k=k+1|0)<<5)|0,v=0|n[s+(o<<3)>>2]){if(i[(y=e+(k<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(k<<5)+24|0)>>3]=17976931348623157e292,i[m>>3]=-17976931348623157e292,i[(E=e+(k<<5)+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(b=0|n[s+(o<<3)+4>>2],w=17976931348623157e292,p=-17976931348623157e292,s=0,o=-1,B=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,f=-17976931348623157e292;a=+i[b+(B<<4)>>3],d=+i[b+(B<<4)+8>>3],u=+i[b+(((0|(o=o+2|0))==(0|v)?0:o)<<4)+8>>3],a<c&&(i[y>>3]=a,c=a),d<h&&(i[A>>3]=d,h=d),a>g?i[m>>3]=a:a=g,d>f&&(i[E>>3]=d,f=d),w=d>0&d<w?d:w,p=d<0&d>p?d:p,s|=+l(+(d-u))>3.141592653589793,(0|(o=B+1|0))!=(0|v);)M=B,B=o,g=a,o=M;s&&(i[E>>3]=p,i[A>>3]=w)}}else n[m>>2]=0,n[m+4>>2]=0,n[m+8>>2]=0,n[m+12>>2]=0,n[m+16>>2]=0,n[m+20>>2]=0,n[m+24>>2]=0,n[m+28>>2]=0,r=0|n[_>>2]}while((0|k)<(0|r))}}function Fe(A,e,t){var r=0,i=0,o=0;if(!(0|De(A|=0,e|=0,t|=0)))return 0|(i=0);if((0|n[(i=A+8|0)>>2])<=0)return 0|(i=1);for(r=A+12|0,A=0;;){if(o=A,A=A+1|0,0|De((0|n[r>>2])+(o<<3)|0,e+(A<<5)|0,t)){A=0,r=6;break}if((0|A)>=(0|n[i>>2])){A=1,r=6;break}}return 6==(0|r)?0|A:0}function Se(A,e,t,r){r|=0;var i,o,s=0,a=0,l=0,f=0,u=0;if(o=P,P=P+16|0,i=o,!(0|De(A|=0,e|=0,l=(t|=0)+8|0)))return P=o,0|(f=0);f=A+8|0;A:do{if((0|n[f>>2])>0){for(a=A+12|0,s=0;;){if(u=s,s=s+1|0,0|De((0|n[a>>2])+(u<<3)|0,e+(s<<5)|0,l)){s=0;break}if((0|s)>=(0|n[f>>2]))break A}return P=o,0|s}}while(0);if(0|Te(A,e,t,r))return P=o,0|(u=0);n[i>>2]=n[t>>2],n[i+4>>2]=l,s=0|n[f>>2];A:do{if((0|s)>0)for(A=A+12|0,l=0,a=s;;){if(s=0|n[A>>2],(0|n[s+(l<<3)>>2])>0){if(0|De(i,r,0|n[s+(l<<3)+4>>2])){s=0;break A}if(s=l+1|0,0|Te((0|n[A>>2])+(l<<3)|0,e+(s<<5)|0,t,r)){s=0;break A}a=0|n[f>>2]}else s=l+1|0;if(!((0|s)<(0|a))){s=1;break}l=s}else s=1}while(0);return P=o,0|(u=s)}function Te(A,e,t,r){A|=0,t|=0;var o,s,a,l,f,u,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,E=0,k=0,_=0,M=0;if(u=P,P=P+176|0,l=u+172|0,c=u+168|0,f=u,!(0|$(e|=0,r|=0)))return P=u,0|(A=0);if(function(A,e,t,r){var o,s,a,l,f;e|=0,t|=0,r|=0,A=(s=+i[16+(A|=0)>>3])<(f=+i[A+24>>3]),o=(l=+i[e+16>>3])<(a=+i[e+24>>3]),e=f-l<a-s,n[t>>2]=A?o|e?1:2:0,n[r>>2]=o?A?1:e?2:1:0}(e,r,l,c),gt(0|f,0|t,168),(0|n[t>>2])>0){e=0;do{y=+ue(+i[(_=f+8+(e<<4)+8|0)>>3],0|n[c>>2]),i[_>>3]=y,e=e+1|0}while((0|e)<(0|n[t>>2]))}s=+i[r>>3],a=+i[r+8>>3],y=+ue(+i[r+16>>3],0|n[c>>2]),o=+ue(+i[r+24>>3],0|n[c>>2]);A:do{if((0|n[A>>2])>0){if(r=A+4|0,(0|(c=0|n[f>>2]))<=0)for(e=0;;)if((0|(e=e+1|0))>=(0|n[A>>2])){e=0;break A}for(t=0;;){if(e=0|n[r>>2],m=+i[e+(t<<4)>>3],v=+ue(+i[e+(t<<4)+8>>3],0|n[l>>2]),e=0|n[r>>2],_=(0|(t=t+1|0))%(0|n[A>>2])|0,h=+i[e+(_<<4)>>3],g=+ue(+i[e+(_<<4)+8>>3],0|n[l>>2]),!(m>=s)|!(h>=s)&&!(m<=a)|!(h<=a)&&!(v<=o)|!(g<=o)&&!(v>=y)|!(g>=y)){B=h-m,p=g-v,e=0;do{if(M=e,_=(0|(e=e+1|0))==(0|c)?0:e,h=+i[f+8+(M<<4)+8>>3],g=+i[f+8+(_<<4)+8>>3]-h,d=+i[f+8+(M<<4)>>3],!(0==(b=B*g-p*(w=+i[f+8+(_<<4)>>3]-d))||(E=v-h,k=m-d,w=(E*w-g*k)/b,w<0|w>1))&&(b=(B*E-p*k)/b)>=0&b<=1){e=1;break A}}while((0|e)<(0|c))}if((0|t)>=(0|n[A>>2])){e=0;break}}}else e=0}while(0);return P=u,0|(M=e)}function Ge(A,e,t,r){var i=0,o=0,s=0;if(0|Te(A|=0,e|=0,t|=0,r|=0))return 0|(o=1);if((0|n[(o=A+8|0)>>2])<=0)return 0|(o=0);for(i=A+12|0,A=0;;){if(s=A,A=A+1|0,0|Te((0|n[i>>2])+(s<<3)|0,e+(A<<5)|0,t,r)){A=1,i=6;break}if((0|A)>=(0|n[o>>2])){A=0,i=6;break}}return 6==(0|i)?0|A:0}function Le(A,e,t,r,n){e|=0,t|=0,r|=0,n|=0;var o,s,a,l,f,u,c,h=0;l=+i[(A|=0)>>3],a=+i[e>>3]-l,s=+i[A+8>>3],o=+i[e+8>>3]-s,u=+i[t>>3],h=((h=+i[r>>3]-u)*(s-(c=+i[t+8>>3]))-(l-u)*(f=+i[r+8>>3]-c))/(a*f-o*h),i[n>>3]=l+a*h,i[n+8>>3]=s+o*h}function Re(A,e){return e|=0,+l(+(+i[(A|=0)>>3]-+i[e>>3]))<1.1920928955078125e-7?0|(e=+l(+(+i[A+8>>3]-+i[e+8>>3]))<1.1920928955078125e-7):0|(e=0)}function Ue(A,e){e|=0;var t,r,n;return+((n=+i[(A|=0)>>3]-+i[e>>3])*n+(r=+i[A+8>>3]-+i[e+8>>3])*r+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function Ye(A,e,t){t|=0;var r,i,o,s,a=0,l=0,f=0;if(s=P,P=P+32|0,f=s,0|(a=0|te(A|=0,e|=0,i=s+16|0)))return P=s,0|(t=a);r=0|YA(A,e),o=0|WA(A,e),function(A,e){A=7696+(28*(A|=0)|0)|0,n[(e|=0)>>2]=n[A>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(r,f),a=0|function(A,e){A|=0;var t=0,r=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11120+(216*e|0)>>2])!=(0|A))if((0|n[11120+(216*e|0)+8>>2])!=(0|A))if((0|n[11120+(216*e|0)+16>>2])!=(0|A))if((0|n[11120+(216*e|0)+24>>2])!=(0|A))if((0|n[11120+(216*e|0)+32>>2])!=(0|A))if((0|n[11120+(216*e|0)+40>>2])!=(0|A))if((0|n[11120+(216*e|0)+48>>2])!=(0|A))if((0|n[11120+(216*e|0)+56>>2])!=(0|A))if((0|n[11120+(216*e|0)+64>>2])!=(0|A))if((0|n[11120+(216*e|0)+72>>2])!=(0|A))if((0|n[11120+(216*e|0)+80>>2])!=(0|A))if((0|n[11120+(216*e|0)+88>>2])!=(0|A))if((0|n[11120+(216*e|0)+96>>2])!=(0|A))if((0|n[11120+(216*e|0)+104>>2])!=(0|A))if((0|n[11120+(216*e|0)+112>>2])!=(0|A))if((0|n[11120+(216*e|0)+120>>2])!=(0|A))if((0|n[11120+(216*e|0)+128>>2])!=(0|A)){if((0|n[11120+(216*e|0)+136>>2])!=(0|A)){if((0|n[11120+(216*e|0)+144>>2])==(0|A)){A=0,t=2,r=0;break}if((0|n[11120+(216*e|0)+152>>2])==(0|A)){A=0,t=2,r=1;break}if((0|n[11120+(216*e|0)+160>>2])==(0|A)){A=0,t=2,r=2;break}if((0|n[11120+(216*e|0)+168>>2])==(0|A)){A=1,t=2,r=0;break}if((0|n[11120+(216*e|0)+176>>2])==(0|A)){A=1,t=2,r=1;break}if((0|n[11120+(216*e|0)+184>>2])==(0|A)){A=1,t=2,r=2;break}if((0|n[11120+(216*e|0)+192>>2])==(0|A)){A=2,t=2,r=0;break}if((0|n[11120+(216*e|0)+200>>2])==(0|A)){A=2,t=2,r=1;break}if((0|n[11120+(216*e|0)+208>>2])==(0|A)){A=2,t=2,r=2;break}return-1}A=2,t=1,r=2}else A=2,t=1,r=1;else A=2,t=1,r=0;else A=1,t=1,r=2;else A=1,t=1,r=1;else A=1,t=1,r=0;else A=0,t=1,r=2;else A=0,t=1,r=1;else A=0,t=1,r=0;else A=2,t=0,r=2;else A=2,t=0,r=1;else A=2,t=0,r=0;else A=1,t=0,r=2;else A=1,t=0,r=1;else A=1,t=0,r=0;else A=0,t=0,r=2;else A=0,t=0,r=1;else A=0,t=0,r=0}while(0);return 0|n[11120+(216*e|0)+(72*t|0)+(24*A|0)+(r<<3)+4>>2]}(r,0|n[i>>2]);A:do{if(0|z(r)){switch(0|r){case 4:A=0;break;case 14:A=1;break;case 24:A=2;break;case 38:A=3;break;case 49:A=4;break;case 58:A=5;break;case 63:A=6;break;case 72:A=7;break;case 83:A=8;break;case 97:A=9;break;case 107:A=10;break;case 117:A=11;break;default:a=1;break A}if(l=0|n[26416+(24*A|0)+8>>2],e=0|n[26416+(24*A|0)+16>>2],(0|(A=0|n[i>>2]))!=(0|n[f>>2])&&(f=0|H(r))|(0|(A=0|n[i>>2]))==(0|e)&&(a=(a+1|0)%6|0),3==(0|o)&(0|A)==(0|e)){a=(a+5|0)%6|0,l=22;break}5==(0|o)&(0|A)==(0|l)?(a=(a+1|0)%6|0,l=22):l=22}else l=22}while(0);return 22==(0|l)&&(n[t>>2]=a,a=0),P=s,0|(t=a)}function Oe(A,e,t,r){t|=0,r|=0;var i,o,s,a,l,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0;if(l=P,P=P+32|0,m=l+24|0,a=l+20|0,s=l+8|0,o=l+16|0,i=l,g=(g=!(0|VA(A|=0,e|=0)))?6:5,w=0|at(0|A,0|e,52),_(),g>>>0<=t>>>0)return P=l,0|(r=2);!(p=!(0|(w&=15)))&&!((b=0|lt(7,0,3*(15^w)|0))&A|0)&!((0|_())&e)?f=t:u=4;A:do{if(4==(0|u)){if((0|((f=!!(0|VA(A,e)))?4:5))<(0|t))return P=l,0|(r=1);if(0|Ye(A,e,m))return P=l,0|(r=1);if(u=(0|n[m>>2])+t|0,7==(0|(b=0|n[(f=f?26704+((0|u)%5<<2)|0:26736+((0|u)%6<<2)|0)>>2])))return P=l,0|(r=1);n[a>>2]=0,f=0|L(A,e,b,a,s);do{if(!f){if(d=0|n[(h=s)>>2],u=(c=(h=0|n[h+4>>2])>>>0<e>>>0|(0|h)==(0|e)&d>>>0<A>>>0)?d:A,c=c?h:e,!p&&!(d&(p=0|lt(7,0,3*(15^w)|0))|0)&!(h&(0|_())))f=t;else{if(h=(t+-1+g|0)%(0|g)|0,f=0|VA(A,e),(0|h)<0&&M(27795,27797,246,27806),(0|((g=!!(0|f))?4:5))<(0|h)&&M(27795,27797,246,27806),0|Ye(A,e,m)&&M(27795,27797,246,27806),f=(0|n[m>>2])+h|0,7==(0|(h=0|n[(f=g?26704+((0|f)%5<<2)|0:26736+((0|f)%6<<2)|0)>>2]))&&M(27795,27797,246,27806),n[o>>2]=0,0|(f=0|L(A,e,h,o,i)))break;g=0|n[(d=i)>>2],d=0|n[d+4>>2];do{if(d>>>0<c>>>0|(0|d)==(0|c)&g>>>0<u>>>0){if(u=0|VA(g,d)?0|Y(g,d,A,e):0|n[26800+(((0|n[o>>2])+(0|n[26768+(h<<2)>>2])|0)%6<<2)>>2],f=0|VA(g,d),(u+-1|0)>>>0>5){f=-1,u=g,c=d;break}if(1==(0|u)&(f=!!(0|f))){f=-1,u=g,c=d;break}do{if(!(0|Ye(g,d,m))){if(f){f=(5+(0|n[26352+(u<<2)>>2])-(0|n[m>>2])|0)%5|0;break}f=(6+(0|n[26384+(u<<2)>>2])-(0|n[m>>2])|0)%6|0;break}f=-1}while(0);u=g,c=d}else f=t}while(0);d=0|n[(h=s)>>2],h=0|n[h+4>>2]}if((0|u)==(0|d)&(0|c)==(0|h)){if(A=(g=!!(0|VA(d,h)))?0|Y(d,h,A,e):0|n[26800+(((0|n[a>>2])+(0|n[26768+(b<<2)>>2])|0)%6<<2)>>2],f=0|VA(d,h),(A+-1|0)>>>0<=5&&!(1==(0|A)&(B=!!(0|f))))do{if(!(0|Ye(d,h,m))){if(B){f=(5+(0|n[26352+(A<<2)>>2])-(0|n[m>>2])|0)%5|0;break}f=(6+(0|n[26384+(A<<2)>>2])-(0|n[m>>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=u;break A}}while(0);return P=l,0|(r=f)}}while(0);return B=0|lt(0|f,0,56),m=_()|-2130706433&e|536870912,n[r>>2]=B|A,n[r+4>>2]=m,P=l,0|(r=0)}function ze(A,e,t){A|=0,t|=0;var r=0;(0|(e|=0))>0?(r=0|qe(e,4),n[A>>2]=r,r||M(27819,27842,40,27856)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=t}function He(A){var e,t,r,o=0,s=0,a=0,f=0;e=(A|=0)+4|0,t=A+12|0,r=A+8|0;A:for(;;){for(s=0|n[e>>2],o=0;;){if((0|o)>=(0|s))break A;if(a=0|n[A>>2],f=0|n[a+(o<<2)>>2])break;o=o+1|0}o=a+(~~(+l(+ +u(10,+ +(15-(0|n[t>>2])|0))*(+i[f>>3]+ +i[f+8>>3]))%+(0|s))>>>0<<2)|0,s=0|n[o>>2];e:do{if(0|s){if(a=f+32|0,(0|s)==(0|f))n[o>>2]=n[a>>2];else{if(!(o=0|n[(s=s+32|0)>>2]))break;for(;(0|o)!=(0|f);)if(!(o=0|n[(s=o+32|0)>>2]))break e;n[s>>2]=n[a>>2]}Ke(f),n[r>>2]=(0|n[r>>2])-1}}while(0)}Ke(0|n[A>>2])}function Ne(A){var e,t=0,r=0;for(e=0|n[(A|=0)+4>>2],r=0;;){if((0|r)>=(0|e)){t=0,r=4;break}if(t=0|n[(0|n[A>>2])+(r<<2)>>2]){r=4;break}r=r+1|0}return 4==(0|r)?0|t:0}function Ve(A,e){e|=0;var t=0,r=0,o=0,s=0;if(t=~~(+l(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,t=(0|n[A>>2])+(t<<2)|0,!(r=0|n[t>>2]))return 0|(s=1);s=e+32|0;do{if((0|r)!=(0|e)){if(!(t=0|n[r+32>>2]))return 0|(s=1);for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|n[o+32>>2])){t=1,o=10;break}r=o,o=t}if(8==(0|o)){n[r+32>>2]=n[s>>2];break}if(10==(0|o))return 0|t}else n[t>>2]=n[s>>2]}while(0);return Ke(e),n[(s=A+8|0)>>2]=(0|n[s>>2])-1,0|(s=0)}function Xe(A,e,t){A|=0,e|=0,t|=0;var r,o=0,s=0,a=0;(r=0|Je(40))||M(27872,27842,98,27885),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[(s=r+16|0)>>2]=n[t>>2],n[s+4>>2]=n[t+4>>2],n[s+8>>2]=n[t+8>>2],n[s+12>>2]=n[t+12>>2],n[r+32>>2]=0,s=~~(+l(+ +u(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,s=(0|n[A>>2])+(s<<2)|0,o=0|n[s>>2];do{if(o){for(;!(0|fe(o,e)&&0|fe(o+16|0,t));)if(s=0|n[o+32>>2],!(0|n[(o=0|s?s:o)+32>>2])){a=10;break}if(10==(0|a)){n[o+32>>2]=r;break}return Ke(r),0|(a=o)}n[s>>2]=r}while(0);return n[(a=A+8|0)>>2]=1+(0|n[a>>2]),0|(a=r)}function je(A,e,t){e|=0,t|=0;var r=0,o=0;if(o=~~(+l(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0|(t=0);if(!t){for(A=o;;){if(0|fe(A,e)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}if(10==(0|r))return 0|A}for(A=o;;){if(0|fe(A,e)&&0|fe(A+16|0,t)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}return 10==(0|r)?0|A:0}function We(A,e){e|=0;var t=0;if(t=~~(+l(+ +u(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(t<<2)>>2]))return 0|(t=0);for(;;){if(0|fe(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function Ze(A){return 0|+wt(+(A=+A))}function Je(A){A|=0;var e,t=0,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0;e=P,P=P+16|0,g=e;do{if(A>>>0<245){if(A=(u=A>>>0<11?16:A+11&-8)>>>3,3&(r=(h=0|n[6977])>>>A))return i=0|n[(r=(A=27948+((t=(1&r^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(s=0|n[(o=i+8|0)>>2]))==(0|A)?n[6977]=h&~(1<<t):(n[s+12>>2]=A,n[r>>2]=s),y=t<<3,n[i+4>>2]=3|y,n[(y=i+y+4|0)>>2]=1|n[y>>2],P=e,0|(y=o);if(u>>>0>(c=0|n[6979])>>>0){if(0|r)return t=((t=r<<A&((t=2<<A)|0-t))&0-t)-1|0,s=0|n[(A=(t=27948+((i=((r=(t>>>=l=t>>>12&16)>>>5&8)|l|(s=(t>>>=r)>>>2&4)|(A=(t>>>=s)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(r=0|n[(l=s+8|0)>>2]))==(0|t)?(A=h&~(1<<i),n[6977]=A):(n[r+12>>2]=t,n[A>>2]=r,A=h),a=(y=i<<3)-u|0,n[s+4>>2]=3|u,n[(o=s+u|0)+4>>2]=1|a,n[s+y>>2]=a,0|c&&(i=0|n[6982],r=27948+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[6979]=a,n[6982]=o,P=e,0|(y=l);if(s=0|n[6978]){for(r=(s&0-s)-1|0,r=f=0|n[28212+(((i=(r>>>=o=r>>>12&16)>>>5&8)|o|(a=(r>>>=i)>>>2&4)|(l=(r>>>=a)>>>1&2)|(f=(r>>>=l)>>>1&1))+(r>>>f)<<2)>>2],l=f,f=(-8&n[f+4>>2])-u|0;(A=0|n[r+16>>2])||(A=0|n[r+20>>2]);)r=A,l=(o=(a=(-8&n[A+4>>2])-u|0)>>>0<f>>>0)?A:l,f=o?a:f;if((a=l+u|0)>>>0>l>>>0){o=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){r=0;break}for(;;)if(r=0|n[(i=t+20|0)>>2])t=r,A=i;else{if(!(r=0|n[(i=t+16|0)>>2]))break;t=r,A=i}n[A>>2]=0,r=t}else r=0|n[l+8>>2],n[r+12>>2]=t,n[t+8>>2]=r,r=t}while(0);do{if(0|o){if(t=0|n[l+28>>2],(0|l)==(0|n[(A=28212+(t<<2)|0)>>2])){if(n[A>>2]=r,!r){n[6978]=s&~(1<<t);break}}else if(n[((0|n[(y=o+16|0)>>2])==(0|l)?y:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(t=0|n[l+16>>2])&&(n[r+16>>2]=t,n[t+24>>2]=r),0|(t=0|n[l+20>>2])&&(n[r+20>>2]=t,n[t+24>>2]=r)}}while(0);return f>>>0<16?(y=f+u|0,n[l+4>>2]=3|y,n[(y=l+y+4|0)>>2]=1|n[y>>2]):(n[l+4>>2]=3|u,n[a+4>>2]=1|f,n[a+f>>2]=f,0|c&&(i=0|n[6982],r=27948+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|n[(A=r+8|0)>>2]:(n[6977]=t|h,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[6979]=f,n[6982]=a),P=e,0|(y=l+8|0)}h=u}else h=u}else h=u}else if(A>>>0<=4294967231)if(u=-8&(A=A+11|0),i=0|n[6978]){o=0-u|0,f=(A>>>=8)?u>>>0>16777215?31:u>>>((f=14-((l=((p=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(f=((p<<=l)+245760|0)>>>16&2))+(p<<f>>>15)|0)+7|0)&1|f<<1:0,r=0|n[28212+(f<<2)>>2];A:do{if(r)for(A=0,l=u<<(31==(0|f)?0:25-(f>>>1)|0),s=0;;){if((a=(-8&n[r+4>>2])-u|0)>>>0<o>>>0){if(!a){A=r,o=0,p=65;break A}A=r,o=a}if(s=!(0|(p=0|n[r+20>>2]))|(0|p)==(0|(r=0|n[r+16+(l>>>31<<2)>>2]))?s:p,!r){r=s,p=61;break}l<<=1}else r=0,A=0,p=61}while(0);if(61==(0|p)){if(!(0|r)&!(0|A)){if(!(A=((A=2<<f)|0-A)&i)){h=u;break}h=(A&0-A)-1|0,A=0,r=0|n[28212+(((s=(h>>>=a=h>>>12&16)>>>5&8)|a|(l=(h>>>=s)>>>2&4)|(f=(h>>>=l)>>>1&2)|(r=(h>>>=f)>>>1&1))+(h>>>r)<<2)>>2]}r?p=65:(l=A,a=o)}if(65==(0|p))for(s=r;;){if(o=(r=(h=(-8&n[s+4>>2])-u|0)>>>0<o>>>0)?h:o,A=r?s:A,(r=0|n[s+16>>2])||(r=0|n[s+20>>2]),!r){l=A,a=o;break}s=r}if(0|l&&a>>>0<((0|n[6979])-u|0)>>>0&&(c=l+u|0)>>>0>l>>>0){s=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){t=0;break}for(;;)if(r=0|n[(o=t+20|0)>>2])t=r,A=o;else{if(!(r=0|n[(o=t+16|0)>>2]))break;t=r,A=o}n[A>>2]=0}else y=0|n[l+8>>2],n[y+12>>2]=t,n[t+8>>2]=y}while(0);do{if(s){if(A=0|n[l+28>>2],(0|l)==(0|n[(r=28212+(A<<2)|0)>>2])){if(n[r>>2]=t,!t){i&=~(1<<A),n[6978]=i;break}}else if(n[((0|n[(y=s+16|0)>>2])==(0|l)?y:s+20)>>2]=t,!t)break;n[t+24>>2]=s,0|(A=0|n[l+16>>2])&&(n[t+16>>2]=A,n[A+24>>2]=t),(A=0|n[l+20>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);A:do{if(a>>>0<16)y=a+u|0,n[l+4>>2]=3|y,n[(y=l+y+4|0)>>2]=1|n[y>>2];else{if(n[l+4>>2]=3|u,n[c+4>>2]=1|a,n[c+a>>2]=a,t=a>>>3,a>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=c,n[t+12>>2]=c,n[c+8>>2]=t,n[c+12>>2]=r;break}if(t=28212+((r=(t=a>>>8)?a>>>0>16777215?31:a>>>((r=14-((m=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(r=((y<<=m)+245760|0)>>>16&2))+(y<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[c+28>>2]=r,n[(A=c+16|0)+4>>2]=0,n[A>>2]=0,!(i&(A=1<<r))){n[6978]=i|A,n[t>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break}t=0|n[t>>2];e:do{if((-8&n[t+4>>2])!=(0|a)){for(i=a<<(31==(0|r)?0:25-(r>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}n[r>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=c,n[v>>2]=c,n[c+8>>2]=y,n[c+12>>2]=t,n[c+24>>2]=0}}while(0);return P=e,0|(y=l+8|0)}h=u}else h=u;else h=-1}while(0);if((r=0|n[6979])>>>0>=h>>>0)return t=r-h|0,A=0|n[6982],t>>>0>15?(y=A+h|0,n[6982]=y,n[6979]=t,n[y+4>>2]=1|t,n[A+r>>2]=t,n[A+4>>2]=3|h):(n[6979]=0,n[6982]=0,n[A+4>>2]=3|r,n[(y=A+r+4|0)>>2]=1|n[y>>2]),P=e,0|(y=A+8|0);if((a=0|n[6980])>>>0>h>>>0)return m=a-h|0,n[6980]=m,v=(y=0|n[6983])+h|0,n[6983]=v,n[v+4>>2]=1|m,n[y+4>>2]=3|h,P=e,0|(y=y+8|0);if(0|n[7095]?A=0|n[7097]:(n[7097]=4096,n[7096]=4096,n[7098]=-1,n[7099]=-1,n[7100]=0,n[7088]=0,n[7095]=-16&g^1431655768,A=4096),l=h+48|0,(u=(s=A+(f=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return P=e,0|(y=0);if(0|(A=0|n[7087])&&(g=(c=0|n[7085])+u|0)>>>0<=c>>>0|g>>>0>A>>>0)return P=e,0|(y=0);A:do{if(4&n[7088])t=0,p=143;else{r=0|n[6983];e:do{if(r){for(i=28356;!((g=0|n[i>>2])>>>0<=r>>>0&&(g+(0|n[i+4>>2])|0)>>>0>r>>>0);){if(!(A=0|n[i+8>>2])){p=128;break e}i=A}if((t=s-a&o)>>>0<2147483647)if((0|(A=0|pt(0|t)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){a=t,s=A,p=145;break A}}else i=A,p=136;else t=0}else p=128}while(0);do{if(128==(0|p))if(-1!=(0|(r=0|pt(0)))&&(t=r,w=(t=((w=(d=0|n[7096])+-1|0)&t|0?(w+t&0-d)-t|0:0)+u|0)+(d=0|n[7085])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(g=0|n[7087])&&w>>>0<=d>>>0|w>>>0>g>>>0){t=0;break}if((0|(A=0|pt(0|t)))==(0|r)){a=t,s=r,p=145;break A}i=A,p=136}else t=0}while(0);do{if(136==(0|p)){if(r=0-t|0,!(l>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}a=t,s=i,p=145;break A}if((A=f-t+(A=0|n[7097])&0-A)>>>0>=2147483647){a=t,s=i,p=145;break A}if(-1==(0|pt(0|A))){pt(0|r),t=0;break}a=A+t|0,s=i,p=145;break A}}while(0);n[7088]=4|n[7088],p=143}}while(0);if(143==(0|p)&&u>>>0<2147483647&&!(-1==(0|(m=0|pt(0|u)))|1^(B=(b=(w=0|pt(0))-m|0)>>>0>(h+40|0)>>>0)|m>>>0<w>>>0&-1!=(0|m)&-1!=(0|w)^1)&&(a=B?b:t,s=m,p=145),145==(0|p)){t=(0|n[7085])+a|0,n[7085]=t,t>>>0>(0|n[7086])>>>0&&(n[7086]=t),f=0|n[6983];A:do{if(f){for(t=28356;;){if((0|s)==((A=0|n[t>>2])+(r=0|n[t+4>>2])|0)){p=154;break}if(!(i=0|n[t+8>>2]))break;t=i}if(!(154!=(0|p)||(v=t+4|0,8&n[t+12>>2]))&&s>>>0>f>>>0&A>>>0<=f>>>0){n[v>>2]=r+a,v=f+(m=7&(m=f+8|0)?0-m&7:0)|0,m=(y=(0|n[6980])+a|0)-m|0,n[6983]=v,n[6980]=m,n[v+4>>2]=1|m,n[f+y+4>>2]=40,n[6984]=n[7099];break}for(s>>>0<(0|n[6981])>>>0&&(n[6981]=s),r=s+a|0,t=28356;;){if((0|n[t>>2])==(0|r)){p=162;break}if(!(A=0|n[t+8>>2]))break;t=A}if(162==(0|p)&&!(8&n[t+12>>2])){n[t>>2]=s,n[(c=t+4|0)>>2]=(0|n[c>>2])+a,u=(c=s+(7&(c=s+8|0)?0-c&7:0)|0)+h|0,l=(t=r+(7&(t=r+8|0)?0-t&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|f)==(0|t))y=(0|n[6980])+l|0,n[6980]=y,n[6983]=u,n[u+4>>2]=1|y;else{if((0|n[6982])==(0|t)){y=(0|n[6979])+l|0,n[6979]=y,n[6982]=u,n[u+4>>2]=1|y,n[u+y>>2]=y;break}if(1==(3&(A=0|n[t+4>>2]))){a=-8&A,i=A>>>3;t:do{if(A>>>0<256){if(A=0|n[t+8>>2],(0|(r=0|n[t+12>>2]))==(0|A)){n[6977]=n[6977]&~(1<<i);break}n[A+12>>2]=r,n[r+8>>2]=A;break}s=0|n[t+24>>2],A=0|n[t+12>>2];do{if((0|A)==(0|t)){if(A=0|n[(i=(r=t+16|0)+4|0)>>2])r=i;else if(!(A=0|n[r>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,r=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,r=o}n[r>>2]=0}else y=0|n[t+8>>2],n[y+12>>2]=A,n[A+8>>2]=y}while(0);if(!s)break;i=28212+((r=0|n[t+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|t)){if(n[i>>2]=A,0|A)break;n[6978]=n[6978]&~(1<<r);break t}if(n[((0|n[(y=s+16|0)>>2])==(0|t)?y:s+20)>>2]=A,!A)break t}while(0);if(n[A+24>>2]=s,0|(i=0|n[(r=t+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(r=0|n[r+4>>2]))break;n[A+20>>2]=r,n[r+24>>2]=A}while(0);t=t+a|0,o=a+l|0}else o=l;if(n[(t=t+4|0)>>2]=-2&n[t>>2],n[u+4>>2]=1|o,n[u+o>>2]=o,t=o>>>3,o>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=u,n[t+12>>2]=u,n[u+8>>2]=t,n[u+12>>2]=r;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((m=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((y<<=m)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(t=28212+(i<<2)|0,n[u+28>>2]=i,n[(A=u+16|0)+4>>2]=0,n[A>>2]=0,!((A=0|n[6978])&(r=1<<i))){n[6978]=A|r,n[t>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break}t=0|n[t>>2];t:do{if((-8&n[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}n[r>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break e}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=u,n[v>>2]=u,n[u+8>>2]=y,n[u+12>>2]=t,n[u+24>>2]=0}}while(0);return P=e,0|(y=c+8|0)}for(t=28356;!((A=0|n[t>>2])>>>0<=f>>>0&&(y=A+(0|n[t+4>>2])|0)>>>0>f>>>0);)t=0|n[t+8>>2];t=(A=(A=(o=y+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=f+16|0)>>>0?f:A)+8|0,v=s+(m=7&(m=s+8|0)?0-m&7:0)|0,m=(r=a+-40|0)-m|0,n[6983]=v,n[6980]=m,n[v+4>>2]=1|m,n[s+r+4>>2]=40,n[6984]=n[7099],n[(r=A+4|0)>>2]=27,n[t>>2]=n[7089],n[t+4>>2]=n[7090],n[t+8>>2]=n[7091],n[t+12>>2]=n[7092],n[7089]=s,n[7090]=a,n[7092]=0,n[7091]=t,t=A+24|0;do{v=t,n[(t=t+4|0)>>2]=7}while((v+8|0)>>>0<y>>>0);if((0|A)!=(0|f)){if(s=A-f|0,n[r>>2]=-2&n[r>>2],n[f+4>>2]=1|s,n[A>>2]=s,t=s>>>3,s>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=f,n[t+12>>2]=f,n[f+8>>2]=t,n[f+12>>2]=r;break}if(r=28212+((i=(t=s>>>8)?s>>>0>16777215?31:s>>>((i=14-((m=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((y<<=m)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,n[f+28>>2]=i,n[f+20>>2]=0,n[o>>2]=0,!((t=0|n[6978])&(A=1<<i))){n[6978]=t|A,n[r>>2]=f,n[f+24>>2]=r,n[f+12>>2]=f,n[f+8>>2]=f;break}t=0|n[r>>2];e:do{if((-8&n[t+4>>2])!=(0|s)){for(i=s<<(31==(0|i)?0:25-(i>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|s)){t=A;break e}i<<=1,t=A}n[r>>2]=f,n[f+24>>2]=t,n[f+12>>2]=f,n[f+8>>2]=f;break A}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=f,n[v>>2]=f,n[f+8>>2]=y,n[f+12>>2]=t,n[f+24>>2]=0}}else!(0|(y=0|n[6981]))|s>>>0<y>>>0&&(n[6981]=s),n[7089]=s,n[7090]=a,n[7092]=0,n[6986]=n[7095],n[6985]=-1,n[6990]=27948,n[6989]=27948,n[6992]=27956,n[6991]=27956,n[6994]=27964,n[6993]=27964,n[6996]=27972,n[6995]=27972,n[6998]=27980,n[6997]=27980,n[7e3]=27988,n[6999]=27988,n[7002]=27996,n[7001]=27996,n[7004]=28004,n[7003]=28004,n[7006]=28012,n[7005]=28012,n[7008]=28020,n[7007]=28020,n[7010]=28028,n[7009]=28028,n[7012]=28036,n[7011]=28036,n[7014]=28044,n[7013]=28044,n[7016]=28052,n[7015]=28052,n[7018]=28060,n[7017]=28060,n[7020]=28068,n[7019]=28068,n[7022]=28076,n[7021]=28076,n[7024]=28084,n[7023]=28084,n[7026]=28092,n[7025]=28092,n[7028]=28100,n[7027]=28100,n[7030]=28108,n[7029]=28108,n[7032]=28116,n[7031]=28116,n[7034]=28124,n[7033]=28124,n[7036]=28132,n[7035]=28132,n[7038]=28140,n[7037]=28140,n[7040]=28148,n[7039]=28148,n[7042]=28156,n[7041]=28156,n[7044]=28164,n[7043]=28164,n[7046]=28172,n[7045]=28172,n[7048]=28180,n[7047]=28180,n[7050]=28188,n[7049]=28188,n[7052]=28196,n[7051]=28196,v=s+(m=7&(m=s+8|0)?0-m&7:0)|0,m=(y=a+-40|0)-m|0,n[6983]=v,n[6980]=m,n[v+4>>2]=1|m,n[s+y+4>>2]=40,n[6984]=n[7099]}while(0);if((t=0|n[6980])>>>0>h>>>0)return m=t-h|0,n[6980]=m,v=(y=0|n[6983])+h|0,n[6983]=v,n[v+4>>2]=1|m,n[y+4>>2]=3|h,P=e,0|(y=y+8|0)}return n[(y=27904)>>2]=12,P=e,0|(y=0)}function Ke(A){var e=0,t=0,r=0,i=0,o=0,s=0,a=0,l=0;if(A|=0){t=A+-8|0,i=0|n[6981],l=t+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)a=t,s=t;else{if(r=0|n[t>>2],!(3&A))return;if(o=r+e|0,(s=t+(0-r)|0)>>>0<i>>>0)return;if((0|n[6982])==(0|s)){if(3&~(e=0|n[(A=l+4|0)>>2])){a=s,e=o;break}return n[6979]=o,n[A>>2]=-2&e,n[s+4>>2]=1|o,void(n[s+o>>2]=o)}if(t=r>>>3,r>>>0<256){if(A=0|n[s+8>>2],(0|(e=0|n[s+12>>2]))==(0|A)){n[6977]=n[6977]&~(1<<t),a=s,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,a=s,e=o;break}i=0|n[s+24>>2],A=0|n[s+12>>2];do{if((0|A)==(0|s)){if(A=0|n[(t=(e=s+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0}else a=0|n[s+8>>2],n[a+12>>2]=A,n[A+8>>2]=a}while(0);if(i){if(e=0|n[s+28>>2],(0|n[(t=28212+(e<<2)|0)>>2])==(0|s)){if(n[t>>2]=A,!A){n[6978]=n[6978]&~(1<<e),a=s,e=o;break}}else if(n[((0|n[(a=i+16|0)>>2])==(0|s)?a:i+20)>>2]=A,!A){a=s,e=o;break}n[A+24>>2]=i,0|(t=0|n[(e=s+16|0)>>2])&&(n[A+16>>2]=t,n[t+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,a=s,e=o):(a=s,e=o)}else a=s,e=o}}while(0);if(!(s>>>0>=l>>>0)&&1&(r=0|n[(A=l+4|0)>>2])){if(2&r)n[A>>2]=-2&r,n[a+4>>2]=1|e,n[s+e>>2]=e,i=e;else{if((0|n[6983])==(0|l)){if(l=(0|n[6980])+e|0,n[6980]=l,n[6983]=a,n[a+4>>2]=1|l,(0|a)!=(0|n[6982]))return;return n[6982]=0,void(n[6979]=0)}if((0|n[6982])==(0|l))return l=(0|n[6979])+e|0,n[6979]=l,n[6982]=s,n[a+4>>2]=1|l,void(n[s+l>>2]=l);i=(-8&r)+e|0,t=r>>>3;do{if(r>>>0<256){if(e=0|n[l+8>>2],(0|(A=0|n[l+12>>2]))==(0|e)){n[6977]=n[6977]&~(1<<t);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[l+24>>2],A=0|n[l+12>>2];do{if((0|A)==(0|l)){if(A=0|n[(t=(e=l+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){t=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0,t=A}else t=0|n[l+8>>2],n[t+12>>2]=A,n[A+8>>2]=t,t=A}while(0);if(0|o){if(A=0|n[l+28>>2],(0|n[(e=28212+(A<<2)|0)>>2])==(0|l)){if(n[e>>2]=t,!t){n[6978]=n[6978]&~(1<<A);break}}else if(n[((0|n[(r=o+16|0)>>2])==(0|l)?r:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(e=0|n[(A=l+16|0)>>2])&&(n[t+16>>2]=e,n[e+24>>2]=t),0|(A=0|n[A+4>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);if(n[a+4>>2]=1|i,n[s+i>>2]=i,(0|a)==(0|n[6982]))return void(n[6979]=i)}if(A=i>>>3,i>>>0<256)return t=27948+(A<<1<<2)|0,(e=0|n[6977])&(A=1<<A)?A=0|n[(e=t+8|0)>>2]:(n[6977]=e|A,A=t,e=t+8|0),n[e>>2]=a,n[A+12>>2]=a,n[a+8>>2]=A,void(n[a+12>>2]=t);A=28212+((r=(A=i>>>8)?i>>>0>16777215?31:i>>>((r=14-((o=((l=A<<(s=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|s|(r=((l<<=o)+245760|0)>>>16&2))+(l<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[a+28>>2]=r,n[a+20>>2]=0,n[a+16>>2]=0,e=0|n[6978],t=1<<r;A:do{if(e&t){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(r=i<<(31==(0|r)?0:25-(r>>>1)|0);e=0|n[(t=A+16+(r>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}r<<=1,A=e}n[t>>2]=a,n[a+24>>2]=A,n[a+12>>2]=a,n[a+8>>2]=a;break A}}while(0);l=0|n[(s=A+8|0)>>2],n[l+12>>2]=a,n[s>>2]=a,n[a+8>>2]=l,n[a+12>>2]=A,n[a+24>>2]=0}else n[6978]=e|t,n[A>>2]=a,n[a+24>>2]=A,n[a+12>>2]=a,n[a+8>>2]=a}while(0);if(l=(0|n[6985])-1|0,n[6985]=l,!(0|l)){for(A=28364;A=0|n[A>>2];)A=A+8|0;n[6985]=-1}}}}function qe(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|Je(t))&&3&n[A+-4>>2]?(dt(0|A,0,0|t),0|A):0|A}function $e(A,e,t,r){return 0|(k((e|=0)+(r|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}function At(A,e,t,r){return 0|(k(0|(r=(e|=0)-(r|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function et(A){return 0|((A|=0)?31-(0|E(A^A-1)):32)}function tt(A,e,t,r,i){i|=0;var o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0;if(u=A|=0,s=t|=0,a=h=r|=0,!(f=l=e|=0))return o=!!(0|i),a?o?(n[i>>2]=0|A,n[i+4>>2]=0&e,i=0,0|(k(0|(h=0)),i)):(i=0,0|(k(0|(h=0)),i)):(o&&(n[i>>2]=(u>>>0)%(s>>>0),n[i+4>>2]=0),i=(u>>>0)/(s>>>0)>>>0,0|(k(0|(h=0)),i));o=!(0|a);do{if(s){if(!o){if((o=(0|E(0|a))-(0|E(0|f))|0)>>>0<=31){s=c=o+1|0,A=u>>>(c>>>0)&(e=o-31>>31)|f<<(a=31-o|0),e&=f>>>(c>>>0),o=0,a=u<<a;break}return i?(n[i>>2]=0|A,n[i+4>>2]=l|0&e,i=0,0|(k(0|(h=0)),i)):(i=0,0|(k(0|(h=0)),i))}if((o=s-1|0)&s|0){s=a=33+(0|E(0|s))-(0|E(0|f))|0,A=(c=32-a|0)-1>>31&f>>>((g=a-32|0)>>>0)|(f<<c|u>>>(a>>>0))&(e=g>>31),e&=f>>>(a>>>0),o=u<<(d=64-a|0)&(l=c>>31),a=(f<<d|u>>>(g>>>0))&l|u<<c&a-33>>31;break}return 0|i&&(n[i>>2]=o&u,n[i+4>>2]=0),1==(0|s)?(d=0|A,0|(k(0|(g=l|0&e)),d)):(g=f>>>((d=0|et(0|s))>>>0)|0,d=f<<32-d|u>>>(d>>>0),0|(k(0|g),d))}if(o)return 0|i&&(n[i>>2]=(f>>>0)%(s>>>0),n[i+4>>2]=0),d=(f>>>0)/(s>>>0)>>>0,0|(k(0|(g=0)),d);if(!u)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(f>>>0)%(a>>>0)),d=(f>>>0)/(a>>>0)>>>0,0|(k(0|(g=0)),d);if(!((o=a-1|0)&a))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&f|0&e),g=0,d=f>>>((0|et(0|a))>>>0),0|(k(0|g),d);if((o=(0|E(0|a))-(0|E(0|f))|0)>>>0<=30){s=e=o+1|0,A=f<<(a=31-o|0)|u>>>(e>>>0),e=f>>>(e>>>0),o=0,a=u<<a;break}return i?(n[i>>2]=0|A,n[i+4>>2]=l|0&e,d=0,0|(k(0|(g=0)),d)):(d=0,0|(k(0|(g=0)),d))}while(0);if(s){f=0|$e(0|(c=0|t),0|(u=h|0&r),-1,-1),t=0|_(),l=a,a=0;do{r=l,l=o>>>31|l<<1,o=a|o<<1,At(0|f,0|t,0|(r=A<<1|r>>>31),0|(h=A>>>31|e<<1)),a=1&(g=(d=0|_())>>31|((0|d)<0?-1:0)<<1),A=0|At(0|r,0|h,g&c|0,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&u),e=0|_(),s=s-1|0}while(0|s);f=l,l=0}else f=a,l=0,a=0;return s=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),d=o<<1&-2|a,0|(k(0|(g=(0|o)>>>31|(f|s)<<1|l)),d)}function rt(A,e,t,r){t|=0;var n,i,o,s,a;return i=(r|=0)>>31|((0|r)<0?-1:0)<<1,n=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,o=0|At((a=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0)|0,(s=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e|0,0|a,0|s),A=i^a,e=n^s,0|At((0|tt(o,0|_(),0|At(i^t|0,n^r|0,0|i,0|n),0|_(),0))^A,(0|_())^e,0|A,0|e)}function nt(A,e,t,r){e|=0,r|=0;var n,i;return t=0|function(A,e){var t,r,n,i=0;return A=((t=0|m(i=65535&(e|=0),n=65535&(A|=0)))>>>16)+(0|m(i,r=A>>>16))|0,e=0|m(i=e>>>16,n),0|(k((A>>>16)+(0|m(i,r))+(((65535&A)+e|0)>>>16)|0),A+e<<16|65535&t)}(n=A|=0,i=t|=0),A=0|_(),0|(k((0|m(e,i))+(0|m(r,n))+A|0&A),t)}function it(A,e,t,r){t|=0;var i,o,s,a,l,f;return i=P,P=P+16|0,a=0|i,f=(r|=0)>>31|((0|r)<0?-1:0)<<1,l=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,tt(A=0|At((s=(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|s,0|o),e=0|_(),0|At(f^t|0,l^r|0,0|f,0|l),0|_(),a),r=0|At(n[a>>2]^s|0,n[a+4>>2]^o|0,0|s,0|o),t=0|_(),P=i,0|(k(0|t),r)}function ot(A,e,t,r){var i,o;return o=P,P=P+16|0,tt(A|=0,e|=0,t|=0,r|=0,i=0|o),P=o,0|(k(0|n[i+4>>2]),n[i>>2])}function st(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(k(e>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(k(0|((0|e)<0?-1:0)),e>>t-32)}function at(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(k(e>>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(k(0),e>>>t-32|0)}function lt(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(k(e<<t|(A&(1<<t)-1<<32-t)>>>32-t),A<<t):(k(A<<t-32),0)}function ft(A,e,t){return A|=0,32==(0|(e=0|E(e|=0)))&&(e=e+(0|E(A))|0),k(0),0|e}function ut(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+y(+A,+e)}function ct(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+v(+A,+e)}function ht(A){return(A=+A)>=0?+a(A+.5):+B(A-.5)}function gt(A,e,t){A|=0,e|=0;var i,o,s=0;if((0|(t|=0))>=8192)return D(0|A,0|e,0|t),0|A;if(o=0|A,i=A+t|0,(3&A)==(3&e)){for(;3&A;){if(!t)return 0|o;r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0,t=t-1|0}for(s=(t=-4&i)-64|0;(0|A)<=(0|s);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)r[A|0]=0|r[e|0],r[A+1|0]=0|r[e+1|0],r[A+2|0]=0|r[e+2|0],r[A+3|0]=0|r[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0;return 0|o}function dt(A,e,t){e|=0;var i,o=0,s=0,a=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)r[A|0]=e,A=A+1|0;for(a=e|e<<8|e<<16|e<<24,s=(o=-4&i)-64|0;(0|A)<=(0|s);)n[A>>2]=a,n[A+4>>2]=a,n[A+8>>2]=a,n[A+12>>2]=a,n[A+16>>2]=a,n[A+20>>2]=a,n[A+24>>2]=a,n[A+28>>2]=a,n[A+32>>2]=a,n[A+36>>2]=a,n[A+40>>2]=a,n[A+44>>2]=a,n[A+48>>2]=a,n[A+52>>2]=a,n[A+56>>2]=a,n[A+60>>2]=a,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=a,A=A+4|0}for(;(0|A)<(0|i);)r[A|0]=e,A=A+1|0;return i-t|0}function wt(A){return(A=+A)>=0?+a(A+.5):+B(A-.5)}function pt(A){A|=0;var e,t,r;return r=0|x(),(0|A)>0&(0|(e=(t=0|n[s>>2])+A|0))<(0|t)|(0|e)<0?(I(0|e),Q(12),-1):(0|e)>(0|r)&&!(0|C(0|e))?(Q(12),-1):(n[s>>2]=e,0|t)}return{___divdi3:rt,___muldi3:nt,___remdi3:it,___uremdi3:ot,_areNeighborCells:function(A,e,t,r,i){i|=0;var o,s,a,l=0,f=0,u=0,c=0;if(a=P,P=P+64|0,s=a,o=a+56|0,!(!0&134217728==(2013265920&(e|=0))&!0&134217728==(2013265920&(r|=0))))return P=a,0|(i=5);if((0|(A|=0))==(0|(t|=0))&(0|e)==(0|r))return n[i>>2]=0,P=a,0|(i=0);if(f=0|at(0|A,0|e,52),_(),f&=15,c=0|at(0|t,0|r,52),_(),(0|f)!=(15&c))return P=a,0|(i=12);if(l=f+-1|0,f>>>0>1){HA(A,e,l,s),HA(t,r,l,o),u=0|n[(c=s)>>2],c=0|n[c+4>>2];A:do{if((0|u)==(0|n[o>>2])&&(0|c)==(0|n[o+4>>2])){l=0|at(0|A,0|e,0|(f=3*(15^f)|0)),_(),l&=7,f=0|at(0|t,0|r,0|f),_(),f&=7;do{if(!(0|l)|!(0|f))n[i>>2]=1,l=0;else if(7==(0|l))l=5;else{if(1==(0|l)|1==(0|f)&&0|VA(u,c)){l=5;break}if((0|n[15536+(l<<2)>>2])!=(0|f)&&(0|n[15568+(l<<2)>>2])!=(0|f))break A;n[i>>2]=1,l=0}}while(0);return P=a,0|(i=l)}}while(0)}f=(l=s)+56|0;do{n[l>>2]=0,l=l+4|0}while((0|l)<(0|f));return F(A,e,1,s),l=(0|n[(e=s)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+8|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+16|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+24|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+32|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=s+40|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)?1:1&((0|n[(l=s+48|0)>>2])==(0|t)?(0|n[l+4>>2])==(0|r):0),n[i>>2]=l,P=a,0|(i=0)},_bitshift64Ashr:st,_bitshift64Lshr:at,_bitshift64Shl:lt,_calloc:qe,_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:ne,_cellToCenterChild:jA,_cellToChildPos:function(A,e,t,r){t|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0;if(i=P,P=P+16|0,b=i,B=0|at(0|(A|=0),0|(e|=0),52),_(),B&=15,t>>>0>15)return P=i,0|(B=4);if((0|B)<(0|t))return P=i,0|(B=12);if((0|B)!=(0|t))if(s=0|lt(0|t,0,52),s|=A,l=_()|-15728641&e,(0|B)>(0|t)){f=t;do{p=0|lt(7,0,3*(14-f|0)|0),f=f+1|0,s|=p,l=0|_()|l}while((0|f)<(0|B));p=s}else p=s;else p=A,l=e;w=0|at(0|p,0|l,45),_();A:do{if(0|z(127&w)){if(f=0|at(0|p,0|l,52),_(),0|(f&=15))for(s=1;;){if(!(!((w=0|lt(7,0,3*(15-s|0)|0))&p|0)&!((0|_())&l))){u=33;break A}if(!(s>>>0<f>>>0))break;s=s+1|0}if(n[(w=r)>>2]=0,n[w+4>>2]=0,(0|B)>(0|t)){for(w=-15728641&e,d=B;;){if(g=d,(d=d+-1|0)>>>0>15|(0|B)<(0|d)){u=19;break}if((0|B)!=(0|d))if(s=0|lt(0|d,0,52),s|=A,f=0|_()|w,(0|B)<(0|g))h=s;else{u=d;do{h=0|lt(7,0,3*(14-u|0)|0),u=u+1|0,s|=h,f=0|_()|f}while((0|u)<(0|B));h=s}else h=A,f=e;if(c=0|at(0|h,0|f,45),_(),0|z(127&c)){c=0|at(0|h,0|f,52),_(),c&=15;e:do{if(c)for(u=1;;){if(s=0|at(0|h,0|f,3*(15-u|0)|0),_(),0|(s&=7))break e;if(!(u>>>0<c>>>0)){s=0;break}u=u+1|0}else s=0}while(0);s=1&!(0|s)}else s=0;if(f=0|at(0|A,0|e,3*(15-g|0)|0),_(),7==(0|(f&=7))){o=5,u=42;break}if(1==(0|f)&(s=!!(0|s))){o=5,u=42;break}if(0|(h=f+((!!(0|f)&s)<<31>>31)|0)&&(u=0|ke(7,0,u=B-g|0,((0|u)<0)<<31>>31),c=0|_(),s?(s=0|$e(0|(s=0|nt(0|u,0|c,5,0)),0|_(),-5,-1),s=0|$e(0|(s=0|rt(0|s,0|_(),6,0)),0|_(),1,0),f=0|_()):(s=u,f=c),g=0|$e(0|s,0|f,0|(g=0|nt(0|u,0|c,0|(g=h+-1|0),((0|g)<0)<<31>>31)),0|_()),c=0|$e(0|g,0|(h=0|_()),0|n[(c=r)>>2],0|n[c+4>>2]),h=0|_(),n[(g=r)>>2]=c,n[g+4>>2]=h),(0|d)<=(0|t)){u=37;break}}if(19==(0|u))M(27795,27122,1276,27158);else{if(37==(0|u)){o=0|n[(a=r)+4>>2],a=0|n[a>>2];break}if(42==(0|u))return P=i,0|o}}else o=0,a=0}else u=33}while(0);A:do{if(33==(0|u)){if(n[(w=r)>>2]=0,n[w+4>>2]=0,(0|B)>(0|t)){for(s=B;;){if(o=0|at(0|A,0|e,3*(15-s|0)|0),_(),7==(0|(o&=7))){o=5;break}if(o=0|nt(0|(a=0|ke(7,0,a=B-s|0,((0|a)<0)<<31>>31)),0|_(),0|o,0),a=0|_(),a=0|$e(0|n[(w=r)>>2],0|n[w+4>>2],0|o,0|a),o=0|_(),n[(w=r)>>2]=a,n[w+4>>2]=o,(0|(s=s+-1|0))<=(0|t))break A}return P=i,0|o}o=0,a=0}}while(0);return 0|NA(p,l,B,b)&&M(27795,27122,1236,27173),((0|o)>-1|-1==(0|o)&a>>>0>4294967295)&((0|(b=0|n[(B=b)+4>>2]))>(0|o)|((0|b)==(0|o)?(0|n[B>>2])>>>0>a>>>0:0))?(P=i,0|(B=0)):(M(27795,27122,1316,27158),0)},_cellToChildren:function(A,e,t,r){r|=0;var i,o,s=0,a=0;if(o=P,P=P+16|0,oe(i=o,A|=0,e|=0,t|=0),!(0|(A=0|n[(e=i)>>2]))&!(0|(e=0|n[e+4>>2])))return P=o,0;s=0,t=0;do{n[(a=r+(s<<3)|0)>>2]=A,n[a+4>>2]=e,s=0|$e(0|s,0|t,1,0),t=0|_(),ae(i),A=0|n[(a=i)>>2],e=0|n[a+4>>2]}while(!(!(0|A)&!(0|e)));return P=o,0},_cellToChildrenSize:NA,_cellToLatLng:re,_cellToLocalIj:function(A,e,t,r,n,i){var o,s;return A|=0,e|=0,t|=0,r|=0,i|=0,s=P,P=P+16|0,o=s,(n|=0)?A=15:(A=0|ye(A,e,t,r,o))||(MA(o,i),A=0),P=s,0|A},_cellToParent:HA,_cellToVertex:Oe,_cellToVertexes:function(A,e,t){t|=0;var r,i=0,o=0;return o=!(0|VA(A|=0,e|=0)),r=!(0|(i=0|Oe(A,e,0,t))),o?r?0|(i=0|Oe(A,e,1,t+8|0))||0|(i=0|Oe(A,e,2,t+16|0))||0|(i=0|Oe(A,e,3,t+24|0))||(i=0|Oe(A,e,4,t+32|0))?0|(o=i):0|Oe(A,e,5,t+40|0):0|(o=i):r?0|(i=0|Oe(A,e,1,t+8|0))||0|(i=0|Oe(A,e,2,t+16|0))||0|(i=0|Oe(A,e,3,t+24|0))||0|(i=0|Oe(A,e,4,t+32|0))?0|(o=i):(n[(o=t+40|0)>>2]=0,n[o+4>>2]=0,0|(o=0)):0|(o=i)},_cellsToDirectedEdge:function(A,e,t,r,i){return i|=0,7==(0|(t=0|Y(A|=0,e|=0,t|=0,r|=0)))?0|(i=11):(r=0|lt(0|t,0,56),e=-2130706433&e|_()|268435456,n[i>>2]=A|r,n[i+4>>2]=e,0|(i=0))},_cellsToLinkedMultiPolygon:function(A,e,t){t|=0;var r,i,o,s=0;if(o=P,P=P+32|0,r=o,A=0|function(A,e,t){A|=0,t|=0;var r,i,o=0,s=0,a=0,l=0,f=0,u=0;if(i=P,P=P+176|0,r=i,(0|(e|=0))<1)return ze(t,0,0),P=i,0;for(f=0|at(0|n[(f=A)>>2],0|n[f+4>>2],52),_(),ze(t,(0|e)>6?e:6,15&f),f=0;!(0|(o=0|ne(0|n[(o=A+(f<<3)|0)>>2],0|n[o+4>>2],r)));){if((0|(o=0|n[r>>2]))>0){l=0;do{a=r+8+(l<<4)|0,(s=0|je(t,o=r+8+((0|(l=l+1|0))%(0|o)<<4)|0,a))?Ve(t,s):Xe(t,a,o),o=0|n[r>>2]}while((0|l)<(0|o))}if((0|(f=f+1|0))>=(0|e)){o=0,u=13;break}}return 13==(0|u)?(P=i,0|o):(He(t),P=i,0|(u=o))}(A|=0,e|=0,i=o+16|0),0|A)return P=o,0|(t=A);if(n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,0|(A=0|Ne(i)))do{e=0|pe(t);do{be(e,A),s=A+16|0,n[r>>2]=n[s>>2],n[r+4>>2]=n[s+4>>2],n[r+8>>2]=n[s+8>>2],n[r+12>>2]=n[s+12>>2],Ve(i,A),A=0|We(i,r)}while(0|A);A=0|Ne(i)}while(0|A);return He(i),(A=0|me(t))?(Be(t),P=o,0|(s=A)):(P=o,0|(s=0))},_childPosToCell:function(A,e,t,r,i,o){A|=0,e|=0,o|=0;var s,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0;if(s=P,P=P+16|0,a=s,(i|=0)>>>0>15)return P=s,0|(o=4);if(l=0|at(0|(t|=0),0|(r|=0),52),_(),(0|(l&=15))>(0|i))return P=s,0|(o=12);if(0|NA(t,r,i,a)&&M(27795,27122,1236,27173),!(((0|e)>-1|-1==(0|e)&A>>>0>4294967295)&((0|(u=0|n[(c=a)+4>>2]))>(0|e)|((0|u)==(0|e)?(0|n[c>>2])>>>0>A>>>0:0))))return P=s,0|(o=2);c=i-l|0,i=0|lt(0|i,0,52),f=_()|-15728641&r,n[(u=o)>>2]=i|t,n[u+4>>2]=f,u=0|at(0|t,0|r,45),_();A:do{if(0|z(127&u)){if(0|l)for(a=1;;){if(!(!((u=0|lt(7,0,3*(15-a|0)|0))&t|0)&!((0|_())&r)))break A;if(!(a>>>0<l>>>0))break;a=a+1|0}if((0|c)<1)return P=s,0|(o=0);for(u=15^l,r=-1,f=1,a=1;;){l=0|ke(7,0,l=c-f|0,((0|l)<0)<<31>>31),t=0|_();do{if(a){if(a=0|rt(0|(a=0|$e(0|(a=0|nt(0|l,0|t,5,0)),0|_(),-5,-1)),0|_(),6,0),(0|e)>(0|(i=0|_()))|(0|e)==(0|i)&A>>>0>a>>>0){e=0|At(0|(e=0|$e(0|A,0|e,-1,-1)),0|_(),0|a,0|i),a=0|_(),d=0|n[(h=o)>>2],h=0|n[h+4>>2],g=0|lt(7,0,0|(w=3*(u+r|0)|0)),h&=~_(),w=0|lt(0|(i=0|$e(0|(r=0|rt(0|e,0|a,0|l,0|t)),0|(A=0|_()),2,0)),0|_(),0|w),h=0|_()|h,n[(i=o)>>2]=w|d&~g,n[i+4>>2]=h,A=0|At(0|e,0|a,0|(A=0|nt(0|r,0|A,0|l,0|t)),0|_()),a=0,e=0|_();break}g=0|n[(w=o)>>2],w=0|n[w+4>>2],d=0|lt(7,0,3*(u+r|0)|0),w&=~_(),n[(a=o)>>2]=g&~d,n[a+4>>2]=w,a=1;break}i=0|n[(g=o)>>2],g=0|n[g+4>>2],h=0|lt(7,0,0|(r=3*(u+r|0)|0)),g&=~_(),r=0|lt(0|(w=0|rt(0|A,0|e,0|l,0|t)),0|(a=0|_()),0|r),g=0|_()|g,n[(d=o)>>2]=r|i&~h,n[d+4>>2]=g,A=0|At(0|A,0|e,0|(a=0|nt(0|w,0|a,0|l,0|t)),0|_()),a=0,e=0|_()}while(0);if(!((0|c)>(0|f))){e=0;break}r=~f,f=f+1|0}return P=s,0|e}}while(0);if((0|c)<1)return P=s,0|(w=0);for(i=15^l,a=1;;){if(d=0|ke(7,0,d=c-a|0,((0|d)<0)<<31>>31),w=0|_(),t=0|n[(f=o)>>2],f=0|n[f+4>>2],r=0|lt(7,0,0|(l=3*(i-a|0)|0)),f&=~_(),l=0|lt(0|(h=0|rt(0|A,0|e,0|d,0|w)),0|(g=0|_()),0|l),f=0|_()|f,n[(u=o)>>2]=l|t&~r,n[u+4>>2]=f,A=0|At(0|A,0|e,0|(w=0|nt(0|h,0|g,0|d,0|w)),0|_()),e=0|_(),(0|c)<=(0|a)){e=0;break}a=a+1|0}return P=s,0|e},_compactCells:function(A,e,t,r){e|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,E=0,k=0,Q=0,x=0,D=0,C=0,I=0,P=0;if(!(0|(t|=0))&!(0|(r|=0)))return 0|(P=0);if(s=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if(!((0|r)>0|!(0|r)&t>>>0>0))return 0|(P=0);if(n[(P=e)>>2]=s,n[P+4>>2]=o,1==(0|t)&!(0|r))return 0|(P=0);o=1,s=0;do{I=0|n[(C=A+(o<<3)|0)+4>>2],n[(P=e+(o<<3)|0)>>2]=n[C>>2],n[P+4>>2]=I,o=0|$e(0|o,0|s,1,0),s=0|_()}while((0|s)<(0|r)|(0|s)==(0|r)&o>>>0<t>>>0);return 0|(o=0)}if(!(I=0|Je(i=t<<3)))return 0|(P=13);if(gt(0|I,0|A,0|i),!(C=0|qe(t,8)))return Ke(I),0|(P=13);A:for(;;){x=0|at(0|(u=0|n[(o=I)>>2]),0|(o=0|n[o+4>>2]),52),_(),D=(x&=15)+-1|0,Q=!!(0|x),k=(0|r)>0|!(0|r)&t>>>0>0;e:do{if(Q&k){if(m=0|lt(0|D,0,52),v=0|_(),D>>>0>15){if(!(!(0|u)&!(0|o))){P=16;break A}for(s=0,A=0;;){if(s=0|$e(0|s,0|A,1,0),!((0|(A=0|_()))<(0|r)|(0|A)==(0|r)&s>>>0<t>>>0))break e;if(!(!(0|(E=0|n[(a=I+(s<<3)|0)>>2]))&!(0|(a=0|n[a+4>>2])))){o=a,P=16;break A}}}for(l=u,A=o,s=0,a=0;;){if(!(!(0|l)&!(0|A))){if(!(!0&!(117440512&A))){P=21;break A}if(c=0|at(0|l,0|A,52),_(),(0|(c&=15))<(0|D)){o=12,P=27;break A}if((0|c)!=(0|D)&&(l|=m,A=-15728641&A|v,c>>>0>=x>>>0)){f=D;do{E=0|lt(7,0,3*(14-f|0)|0),f=f+1|0,l|=E,A=0|_()|A}while(f>>>0<c>>>0)}if(g=0|ot(0|l,0|A,0|t,0|r),d=0|_(),!(!(0|(h=0|n[(c=f=C+(g<<3)|0)>>2]))&!(0|(c=0|n[c+4>>2])))){b=0,B=0;do{if((0|b)>(0|r)|(0|b)==(0|r)&B>>>0>t>>>0){P=31;break A}if((0|h)==(0|l)&(-117440513&c)==(0|A)){w=0|at(0|h,0|c,56),_(),p=(w&=7)+1|0,E=0|at(0|h,0|c,45),_();t:do{if(0|z(127&E)){if(h=0|at(0|h,0|c,52),_(),!(h&=15)){c=6;break}for(c=1;;){if(!(!((E=0|lt(7,0,3*(15-c|0)|0))&l|0)&!((0|_())&A))){c=7;break t}if(!(c>>>0<h>>>0)){c=6;break}c=c+1|0}}else c=7}while(0);if((w+2|0)>>>0>c>>>0){P=41;break A}E=0|lt(0|p,0,56),A=_()|-117440513&A,n[(y=f)>>2]=0,n[y+4>>2]=0,l|=E}else g=0|it(0|(g=0|$e(0|g,0|d,1,0)),0|_(),0|t,0|r),d=0|_();B=0|$e(0|B,0|b,1,0),b=0|_(),h=0|n[(c=f=C+(g<<3)|0)>>2],c=0|n[c+4>>2]}while(!(!(0|h)&!(0|c)))}n[(E=f)>>2]=l,n[E+4>>2]=A}if(s=0|$e(0|s,0|a,1,0),!((0|(a=0|_()))<(0|r)|(0|a)==(0|r)&s>>>0<t>>>0))break e;l=0|n[(A=I+(s<<3)|0)>>2],A=0|n[A+4>>2]}}}while(0);if(E=0|$e(0|t,0|r,5,0),(y=0|_())>>>0<0|!(0|y)&E>>>0<11){P=85;break}if(E=0|rt(0|t,0|r,6,0),_(),!(E=0|qe(E,8))){P=48;break}do{if(k){for(p=0,A=0,w=0,b=0;;){if(!(0|(s=0|n[(a=c=C+(p<<3)|0)>>2]))&!(0|(a=0|n[a+4>>2])))y=w;else{h=0|at(0|s,0|a,56),_(),l=(h&=7)+1|0,g=-117440513&a,y=0|at(0|s,0|a,45),_();e:do{if(0|z(127&y)){if(d=0|at(0|s,0|a,52),_(),0|(d&=15))for(f=1;;){if(!(!(s&(y=0|lt(7,0,3*(15-f|0)|0))|0)&!(g&(0|_()))))break e;if(!(f>>>0<d>>>0))break;f=f+1|0}s|=a=0|lt(0|l,0,56),a=0|_()|g,n[(l=c)>>2]=s,n[l+4>>2]=a,l=h+2|0}}while(0);7==(0|l)?(n[(y=E+(A<<3)|0)>>2]=s,n[y+4>>2]=-117440513&a,A=0|$e(0|A,0|w,1,0),y=0|_()):y=w}if(p=0|$e(0|p,0|b,1,0),!((0|(b=0|_()))<(0|r)|(0|b)==(0|r)&p>>>0<t>>>0))break;w=y}if(k){if(B=D>>>0>15,m=0|lt(0|D,0,52),v=0|_(),!Q){for(s=0,f=0,l=0,a=0;!(0|u)&!(0|o)||(n[(D=e+(s<<3)|0)>>2]=u,n[D+4>>2]=o,s=0|$e(0|s,0|f,1,0),f=0|_()),l=0|$e(0|l,0|a,1,0),(0|(a=0|_()))<(0|r)|(0|a)==(0|r)&l>>>0<t>>>0;)u=0|n[(o=I+(l<<3)|0)>>2],o=0|n[o+4>>2];o=y;break}for(s=0,f=0,a=0,l=0;;){do{if(!(!(0|u)&!(0|o))){if(d=0|at(0|u,0|o,52),_(),B|(0|(d&=15))<(0|D)){P=80;break A}if((0|d)!=(0|D)){if(c=u|m,h=-15728641&o|v,d>>>0>=x>>>0){g=D;do{Q=0|lt(7,0,3*(14-g|0)|0),g=g+1|0,c|=Q,h=0|_()|h}while(g>>>0<d>>>0)}}else c=u,h=o;w=0|ot(0|c,0|h,0|t,0|r),g=0,d=0,b=0|_();do{if((0|g)>(0|r)|(0|g)==(0|r)&d>>>0>t>>>0){P=81;break A}if((-117440513&(p=0|n[(Q=C+(w<<3)|0)+4>>2]))==(0|h)&&(0|n[Q>>2])==(0|c)){P=65;break}w=0|it(0|(Q=0|$e(0|w,0|b,1,0)),0|_(),0|t,0|r),b=0|_(),d=0|$e(0|d,0|g,1,0),g=0|_(),Q=C+(w<<3)|0}while((0|n[Q>>2])!=(0|c)||(0|n[Q+4>>2])!=(0|h));if(65==(0|P)&&(P=0,!0&100663296==(117440512&p)))break;n[(Q=e+(s<<3)|0)>>2]=u,n[Q+4>>2]=o,s=0|$e(0|s,0|f,1,0),f=0|_()}}while(0);if(a=0|$e(0|a,0|l,1,0),!((0|(l=0|_()))<(0|r)|(0|l)==(0|r)&a>>>0<t>>>0))break;u=0|n[(o=I+(a<<3)|0)>>2],o=0|n[o+4>>2]}o=y}else s=0,o=y}else s=0,A=0,o=0}while(0);if(dt(0|C,0,0|i),gt(0|I,0|E,A<<3),Ke(E),!(0|A)&!(0|o)){P=89;break}e=e+(s<<3)|0,r=o,t=A}if(16==(0|P))!0&!(117440512&o)?(o=4,P=27):P=21;else if(31==(0|P))M(27795,27122,529,27132);else{if(41==(0|P))return Ke(I),Ke(C),0|(P=10);if(48==(0|P))return Ke(I),Ke(C),0|(P=13);80==(0|P)?M(27795,27122,620,27132):81==(0|P)?M(27795,27122,632,27132):85==(0|P)&&(gt(0|e,0|I,t<<3),P=89)}return 21==(0|P)?(Ke(I),Ke(C),0|(P=5)):27==(0|P)?(Ke(I),Ke(C),0|(P=o)):89==(0|P)?(Ke(I),Ke(C),0|(P=0)):0},_destroyLinkedMultiPolygon:Be,_directedEdgeToBoundary:CA,_directedEdgeToCells:function(A,e,t){A|=0;var r,i,o,s=0;return r=P,P=P+16|0,s=r,!0&268435456==(2013265920&(e|=0))?(i=-2130706433&e|134217728,n[(o=t|=0)>>2]=A,n[o+4>>2]=i,n[s>>2]=0,e=0|at(0|A,0|e,56),_(),s=0|L(A,i,7&e,s,t+8|0),P=r,0|s):(P=r,0|(s=6))},_edgeLengthKm:function(A,e,t){t|=0;var r,o=0,s=0,a=0,l=0,u=0,g=0,d=0;if(r=P,P=P+176|0,0|(A=0|CA(A|=0,e|=0,l=r)))return l=A,a=+i[t>>3],a*=6371.007180918475,i[t>>3]=a,P=r,0|l;if(i[t>>3]=0,(0|(A=0|n[l>>2]))<=1)return l=0,a=0,a*=6371.007180918475,i[t>>3]=a,P=r,0|l;e=A+-1|0,A=0,o=+i[l+8>>3],s=+i[l+16>>3],a=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),u=s,s=+i[l+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(s-u)))*(+c(+g)*+c(+o)*u),a+=2*+b(+ +f(+u),+ +f(+(1-u)))}while((0|A)!=(0|e));return i[t>>3]=a,l=0,d=a,d*=6371.007180918475,i[t>>3]=d,P=r,0|l},_edgeLengthM:function(A,e,t){t|=0;var r,o=0,s=0,a=0,l=0,u=0,g=0,d=0;if(r=P,P=P+176|0,0|(A=0|CA(A|=0,e|=0,l=r)))return l=A,a=+i[t>>3],a*=6371.007180918475,a*=1e3,i[t>>3]=a,P=r,0|l;if(i[t>>3]=0,(0|(A=0|n[l>>2]))<=1)return l=0,a=0,a*=6371.007180918475,a*=1e3,i[t>>3]=a,P=r,0|l;e=A+-1|0,A=0,o=+i[l+8>>3],s=+i[l+16>>3],a=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),u=s,s=+i[l+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(s-u)))*(+c(+g)*+c(+o)*u),a+=2*+b(+ +f(+u),+ +f(+(1-u)))}while((0|A)!=(0|e));return i[t>>3]=a,l=0,d=a,d*=6371.007180918475,d*=1e3,i[t>>3]=d,P=r,0|l},_edgeLengthRads:function(A,e,t){t|=0;var r,o=0,s=0,a=0,l=0,u=0,g=0,d=0;if(r=P,P=P+176|0,0|(A=0|CA(A|=0,e|=0,l=r)))return P=r,0|(l=A);if(i[t>>3]=0,(0|(A=0|n[l>>2]))<=1)return P=r,0|(l=0);e=A+-1|0,A=0,o=+i[l+8>>3],s=+i[l+16>>3],a=0;do{g=o,o=+i[l+8+((A=A+1|0)<<4)>>3],d=+h(.5*(o-g)),u=s,s=+i[l+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(s-u)))*(+c(+o)*+c(+g)*u),a+=2*+b(+ +f(+u),+ +f(+(1-u)))}while((0|A)<(0|e));return i[t>>3]=a,P=r,0|(l=0)},_emscripten_replace_memory:function(A){return r=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),t=A,!0},_free:Ke,_getBaseCellNumber:YA,_getDirectedEdgeDestination:function(A,e,t){A|=0,e|=0,t|=0;var r,i,o=0;return r=P,P=P+16|0,n[(o=r)>>2]=0,!0&268435456==(2013265920&e)?(i=0|at(0|A,0|e,56),_(),o=0|L(A,-2130706433&e|134217728,7&i,o,t),P=r,0|o):(P=r,0|(o=6))},_getDirectedEdgeOrigin:function(A,e,t){return A|=0,t|=0,!0&268435456==(2013265920&(e|=0))?(n[t>>2]=A,n[t+4>>2]=-2130706433&e|134217728,0|(t=0)):0|(t=6)},_getHexagonAreaAvgKm2:he,_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,r){r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0;i=P,P=P+128|0,c=i+112|0,a=i+96|0,h=i,s=0|at(0|(e|=0),0|(t|=0),52),_(),f=15&s,n[c>>2]=f,l=0|at(0|e,0|t,45),_(),l&=127;A:do{if(0|z(l)){if(0|f)for(o=1;;){if(!(!((u=0|lt(7,0,3*(15-o|0)|0))&e|0)&!((0|_())&t))){s=0;break A}if(!(o>>>0<f>>>0))break;o=o+1|0}if(!(1&s))return u=0|lt(f+1|0,0,52),h=_()|-15728641&t,h=0|A((u|e)&~(c=0|lt(7,0,3*(14-f|0)|0)),h&~_(),r),P=i,0|h;s=1}else s=0}while(0);if(!(o=0|te(e,t,a))){s?(TA(a,c,h),u=5):(UA(a,c,h),u=6);A:do{if(0|z(l))if(f)for(o=1;;){if(!(!((l=0|lt(7,0,3*(15-o|0)|0))&e|0)&!((0|_())&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);dt(0|r,-1,e<<2);A:do{if(s)for(a=0;;){if(LA(l=h+(a<<4)|0,0|n[c>>2]),l=0|n[l>>2],-1==(0|(f=0|n[r>>2]))|(0|f)==(0|l))o=r;else{s=0;do{if((s=s+1|0)>>>0>=e>>>0){o=1;break A}f=0|n[(o=r+(s<<2)|0)>>2]}while(!(-1==(0|f)|(0|f)==(0|l)))}if(n[o>>2]=l,(a=a+1|0)>>>0>=u>>>0){o=0;break}}else for(a=0;;){if(GA(l=h+(a<<4)|0,0|n[c>>2],0,1),l=0|n[l>>2],-1==(0|(f=0|n[r>>2]))|(0|f)==(0|l))o=r;else{s=0;do{if((s=s+1|0)>>>0>=e>>>0){o=1;break A}f=0|n[(o=r+(s<<2)|0)>>2]}while(!(-1==(0|f)|(0|f)==(0|l)))}if(n[o>>2]=l,(a=a+1|0)>>>0>=u>>>0){o=0;break}}}while(0)}return P=i,0|(h=o)},_getNumCells:ge,_getPentagons:ie,_getRes0Cells:function(A){A|=0;var e=0,t=0,r=0;e=0;do{lt(0|e,0,45),r=134225919|_(),n[(t=A+(e<<3)|0)>>2]=-1,n[t+4>>2]=r,e=e+1|0}while(122!=(0|e));return 0},_getResolution:function(A,e){return e=0|at(0|(A|=0),0|(e|=0),52),_(),15&e},_greatCircleDistanceKm:ce,_greatCircleDistanceM:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+h(.5*(r-t)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+b(+ +f(+o),+ +f(+(1-o)))*6371.007180918475*1e3},_greatCircleDistanceRads:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+h(.5*(r-t)))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+b(+ +f(+o),+ +f(+(1-o)))},_gridDisk:F,_gridDiskDistances:S,_gridDistance:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,s,a=0,l=0;return s=P,P=P+32|0,l=s,0|(o=0|ye(A|=0,e|=0,A,e,a=s+12|0))?(P=s,0|(l=o)):0|(A=0|ye(A,e,t,r,l))?(P=s,0|(l=A)):(a=0|_A(a,l),n[(l=i)>>2]=a,n[l+4>>2]=((0|a)<0)<<31>>31,P=s,0|(l=0))},_gridPathCells:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,s,a=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,E=0,k=0,Q=0,x=0;if(s=P,P=P+48|0,f=s+12|0,Q=s,!(a=0|ye(A|=0,e|=0,A,e,o=s+24|0))&&!(a=0|ye(A,e,t,r,f))){k=((0|(E=0|_A(o,f)))<0)<<31>>31,n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,0|ye(A,e,A,e,o)&&M(27795,27538,692,27747),0|ye(A,e,t,r,f)&&M(27795,27538,697,27747),xA(o),xA(f),g=0|E?1/+(0|E):0,t=0|n[o>>2],B=g*+((0|n[f>>2])-t|0),r=0|n[(m=o+4|0)>>2],v=g*+((0|n[f+4>>2])-r|0),a=0|n[(y=o+8|0)>>2],g*=+((0|n[f+8>>2])-a|0),n[Q>>2]=t,n[(d=Q+4|0)>>2]=r,n[(w=Q+8|0)>>2]=a;A:do{if((0|E)<0)a=0;else for(p=0,b=0;;){x=B*(c=+(b>>>0)+4294967296*+(0|p))+ +(0|t),u=v*c+ +(0|r),c=g*c+ +(0|a),t=~~+ht(+x),f=~~+ht(+u),a=~~+ht(+c),x=+l(+(+(0|t)-x)),u=+l(+(+(0|f)-u)),c=+l(+(+(0|a)-c));do{if(!(x>u&x>c)){if(h=0-t|0,u>c){r=h-a|0;break}r=f,a=h-f|0;break}t=0-(f+a)|0,r=f}while(0);if(n[Q>>2]=t,n[d>>2]=r,n[w>>2]=a,DA(Q),0|(a=0|Ee(A,e,Q,i+(b<<3)|0)))break A;if(!((0|p)<(0|k)|(0|p)==(0|k)&b>>>0<E>>>0)){a=0;break A}t=0|$e(0|b,0|p,1,0),p=r=0|_(),b=t,t=0|n[o>>2],r=0|n[m>>2],a=0|n[y>>2]}}while(0);return P=s,0|(Q=a)}return P=s,0|(Q=a)},_gridPathCellsSize:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,s=0,a=0,l=0;return o=P,P=P+32|0,l=o,(s=0|ye(A|=0,e|=0,A,e,a=o+12|0))||(s=0|ye(A,e,t,r,l))?(P=o,0|(l=s)):(r=0|$e(0|(r=0|_A(a,l)),((0|r)<0)<<31>>31,1,0),a=0|_(),n[(l=i)>>2]=r,n[l+4>>2]=a,P=o,0|(l=0))},_gridRing:function(A,e,t,r){return 0|R(A|=0,e|=0,t|=0,r|=0)?(dt(0|r,0,48*t|0),0|(r=0|U(A,e,t,r))):0|(r=0)},_gridRingUnsafe:R,_i64Add:$e,_i64Subtract:At,_isPentagon:VA,_isResClassIII:function(A,e){return e=0|at(0|(A|=0),0|(e|=0),52),_(),1&e},_isValidCell:OA,_isValidDirectedEdge:function(A,e){var t=0;switch(t=0|at(0|(A|=0),0|(e|=0),56),_(),7&t){case 0:case 7:return 0|(t=0)}return t=-2130706433&e|134217728,!0&268435456==(2013265920&e)?!0&16777216==(117440512&e)&!!(0|VA(A,t))?0|(t=0):0|(t=0|OA(A,t)):0|(t=0)},_isValidVertex:function(A,e){A|=0;var t,r,i=0,o=0;return r=P,P=P+16|0,t=r,!0&536870912==(2013265920&(e|=0))&&0|OA(A,i=-2130706433&e|134217728)?(o=0|at(0|A,0|e,56),_(),i=(o=!(0|Oe(A,i,7&o,t)))&((0|n[(i=t)>>2])==(0|A)?(0|n[i+4>>2])==(0|e):0)&1,P=r,0|i):(P=r,0|(i=0))},_latLngToCell:Ae,_llvm_ctlz_i64:ft,_llvm_maxnum_f64:ut,_llvm_minnum_f64:ct,_llvm_round_f64:ht,_localIjToCell:function(A,e,t,r,n){var i,o;return A|=0,e|=0,t|=0,n|=0,o=P,P=P+16|0,i=o,(r|=0)?t=15:(t=0|QA(t,i))||(t=0|Ee(A,e,i,n)),P=o,0|t},_malloc:Je,_maxFaceCount:function(A,e,t){t|=0;var r=0,i=0;if(i=0|at(0|(A|=0),0|(e|=0),45),_(),!(0|z(127&i)))return i=2,n[t>>2]=i,0;if(i=0|at(0|A,0|e,52),_(),!(i&=15))return i=5,n[t>>2]=i,0;for(r=1;;){if(!(!((0|lt(7,0,3*(15-r|0)|0))&A|0)&!((0|_())&e))){r=2,A=6;break}if(!(r>>>0<i>>>0)){r=5,A=6;break}r=r+1|0}return 6==(0|A)?(n[t>>2]=r,0):0},_maxGridDiskSize:function(A,e){e|=0;var t=0,r=0,i=0;return(0|(A|=0))<0?0|(e=2):(0|A)>13780509?0|(e=0|ge(15,e)):(i=0|nt(0|A,0|(t=((0|A)<0)<<31>>31),3,0),r=0|_(),t=0|$e(0|A,0|t,1,0),t=0|$e(0|(t=0|nt(0|i,0|r,0|t,0|_())),0|_(),1,0),A=0|_(),n[e>>2]=t,n[e+4>>2]=A,0|(e=0))},_maxPolygonToCellsSize:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0;if(i=P,P=P+48|0,o=i+16|0,s=i+8|0,a=i,0|(t=0|Ie(t|=0)))return P=i,0|(a=t);if(l=0|n[(f=A)+4>>2],n[(t=s)>>2]=n[f>>2],n[t+4>>2]=l,Ce(s,o),!(t=0|tA(o,e,a))){if(e=0|n[s>>2],(0|(s=0|n[A+8>>2]))>0){o=0|n[A+12>>2],t=0;do{e=(0|n[o+(t<<3)>>2])+e|0,t=t+1|0}while((0|t)<(0|s))}o=0|n[(t=a)>>2],(0|(t=0|n[t+4>>2]))<(0|(s=((0|e)<0)<<31>>31))|(0|t)==(0|s)&o>>>0<e>>>0?(n[(t=a)>>2]=e,n[t+4>>2]=s,t=s):e=o,l=0|$e(0|e,0|t,12,0),f=0|_(),n[(t=a)>>2]=l,n[t+4>>2]=f,n[(t=r)>>2]=l,n[t+4>>2]=f,t=0}return P=i,0|(f=t)},_maxPolygonToCellsSizeExperimental:function(A,e,t,o){e|=0,t|=0,o|=0;var s,a,f=0,u=0,h=0,g=0,d=0,w=0,p=0,b=0;if(a=P,P=P+48|0,d=a+32|0,g=a+40|0,s=a,!(0|n[(A|=0)>>2]))return n[(w=o)>>2]=0,n[w+4>>2]=0,P=a,0|(w=0);zA(d,0,0,0),f=0|n[(h=d)>>2],h=0|n[h+4>>2];do{if(e>>>0>15)n[(w=s)>>2]=0,n[w+4>>2]=0,n[s+8>>2]=4,n[s+12>>2]=-1,t=s+29|0,n[(w=s+16|0)>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,r[w+12|0]=0,r[t|0]=0|r[g|0],r[t+1|0]=0|r[g+1|0],r[t+2|0]=0|r[g+2|0],t=4,w=9;else{if(0|(t=0|Ie(t))){n[(d=s)>>2]=0,n[d+4>>2]=0,n[s+8>>2]=t,n[s+12>>2]=-1,w=s+29|0,n[(d=s+16|0)>>2]=0,n[d+4>>2]=0,n[d+8>>2]=0,r[d+12|0]=0,r[w|0]=0|r[g|0],r[w+1|0]=0|r[g+1|0],r[w+2|0]=0|r[g+2|0],w=9;break}if(!(t=0|qe(1+(0|n[A+8>>2])|0,32))){n[(w=s)>>2]=0,n[w+4>>2]=0,n[s+8>>2]=13,n[s+12>>2]=-1,t=s+29|0,n[(w=s+16|0)>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,r[w+12|0]=0,r[t|0]=0|r[g|0],r[t+1|0]=0|r[g+1|0],r[t+2|0]=0|r[g+2|0],t=13,w=9;break}Pe(A,t),n[(b=s)>>2]=f,n[b+4>>2]=h,n[(h=s+8|0)>>2]=0,n[s+12>>2]=e,n[s+20>>2]=A,n[s+24>>2]=t,r[s+28|0]=0,r[(f=s+29|0)|0]=0|r[g|0],r[f+1|0]=0|r[g+1|0],r[f+2|0]=0|r[g+2|0],n[s+16>>2]=3,p=+K(t),p*=+Z(t),u=+l(+ +i[t>>3]),u=p/+c(+ +ct(+u,+ +l(+ +i[t+8>>3])))*6371.007180918475*6371.007180918475,t=0|n[(f=s+12|0)>>2];A:do{if((0|t)>0)do{if(he(t+-1|0,d),!(u/+i[d>>3]>10))break A;t=(b=0|n[f>>2])+-1|0,n[f>>2]=t}while((0|b)>1)}while(0);if(Qe(s),n[(f=o)>>2]=0,n[f+4>>2]=0,!(!(0|(t=0|n[(f=s)>>2]))&!(0|(f=0|n[f+4>>2]))))do{NA(t,f,e,d),g=d,g=0|$e(0|n[(A=o)>>2],0|n[A+4>>2],0|n[g>>2],0|n[g+4>>2]),A=0|_(),n[(b=o)>>2]=g,n[b+4>>2]=A,Qe(s),t=0|n[(b=s)>>2],f=0|n[b+4>>2]}while(!(!(0|t)&!(0|f)));t=0|n[h>>2]}}while(0);return P=a,0|(b=t)},_memcpy:gt,_memset:dt,_originToDirectedEdges:function(A,e,t){t|=0;var r,i=0;return r=!(0|VA(A|=0,e|=0)),e&=-2130706433,n[(i=t)>>2]=r?A:0,n[i+4>>2]=r?285212672|e:0,n[(i=t+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=t+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=t+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=t+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(t=t+40|0)>>2]=A,n[t+4>>2]=369098752|e,0},_pentagonCount:function(){return 12},_polygonToCells:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o,s,a,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,E=0,k=0,M=0,Q=0,x=0,D=0,C=0,I=0,F=0,S=0,L=0,R=0,U=0;if(a=P,P=P+112|0,i=a+80|0,h=a+72|0,o=a,s=a+56|0,0|(l=0|Ie(t|=0)))return P=a,0|(U=l);if(!(U=0|Je(32+(n[(g=A+8|0)>>2]<<5)|0)))return P=a,0|(U=13);if(Pe(A,U),!(l=0|Ie(t))){if(R=0|n[(L=A)+4>>2],n[(l=h)>>2]=n[L>>2],n[l+4>>2]=R,Ce(h,i),l=0|tA(i,e,o))L=0,R=0;else{if(l=0|n[h>>2],(0|(f=0|n[g>>2]))>0){u=0|n[A+12>>2],t=0;do{l=(0|n[u+(t<<3)>>2])+l|0,t=t+1|0}while((0|t)!=(0|f));t=l}else t=l;f=0|n[(l=o)>>2],(0|(l=0|n[l+4>>2]))<(0|(u=((0|t)<0)<<31>>31))|(0|l)==(0|u)&f>>>0<t>>>0?(n[(l=o)>>2]=t,n[l+4>>2]=u,l=u):t=f,L=0|$e(0|t,0|l,12,0),R=0|_(),n[(l=o)>>2]=L,n[l+4>>2]=R,l=0}if(!l){if(!(t=0|qe(L,8)))return Ke(U),P=a,0|(U=13);if(!(c=0|qe(L,8)))return Ke(U),Ke(t),P=a,0|(U=13);n[(F=i)>>2]=0,n[F+4>>2]=0,S=0|n[(F=A)+4>>2],n[(l=h)>>2]=n[F>>2],n[l+4>>2]=S,l=0|O(h,L,R,e,i,t,c);A:do{if(l)Ke(t),Ke(c),Ke(U);else{e:do{if((0|n[g>>2])>0){for(u=A+12|0,f=0;l=0|O((0|n[u>>2])+(f<<3)|0,L,R,e,i,t,c),f=f+1|0,!(0|l);)if((0|f)>=(0|n[g>>2]))break e;Ke(t),Ke(c),Ke(U);break A}}while(0);(0|R)>0|!(0|R)&L>>>0>0&&dt(0|c,0,L<<3),F=0|n[(S=i)+4>>2];e:do{if((0|F)>0|!(0|F)&(0|n[S>>2])>>>0>0){D=t,C=c,I=t,F=c,S=t,l=t,M=t,Q=c,x=c,t=c;t:for(;;){for(v=0,y=0,E=0,k=0,f=0,u=0;;){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));if(0|T(g=0|n[(e=D+(v<<3)|0)>>2],e=0|n[e+4>>2],1,o,0)){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));0|(c=0|qe(7,4))&&(G(g,e,1,o,c,7,0,0),Ke(c))}for(m=0;;){b=0|n[(B=o+(m<<3)|0)>>2],B=0|n[B+4>>2];r:do{if(!(0|b)&!(0|B))c=f,h=u;else{if(d=0|ot(0|b,0|B,0|L,0|R),g=0|_(),!(!(0|(h=0|n[(e=c=r+(d<<3)|0)>>2]))&!(0|(e=0|n[e+4>>2])))){w=0,p=0;do{if((0|w)>(0|R)|(0|w)==(0|R)&p>>>0>L>>>0)break t;if((0|h)==(0|b)&(0|e)==(0|B)){c=f,h=u;break r}d=0|it(0|(c=0|$e(0|d,0|g,1,0)),0|_(),0|L,0|R),g=0|_(),p=0|$e(0|p,0|w,1,0),w=0|_(),h=0|n[(e=c=r+(d<<3)|0)>>2],e=0|n[e+4>>2]}while(!(!(0|h)&!(0|e)))}if(!(0|b)&!(0|B)){c=f,h=u;break}re(b,B,s),0|Fe(A,U,s)&&(p=0|$e(0|f,0|u,1,0),u=0|_(),n[(w=c)>>2]=b,n[w+4>>2]=B,n[(f=C+(f<<3)|0)>>2]=b,n[f+4>>2]=B,f=p),c=f,h=u}}while(0);if((m=m+1|0)>>>0>=7)break;f=c,u=h}if(v=0|$e(0|v,0|y,1,0),y=0|_(),E=0|$e(0|E,0|k,1,0),k=0|_(),f=0|n[(u=i)>>2],!((0|k)<(0|(u=0|n[u+4>>2]))|(0|k)==(0|u)&E>>>0<f>>>0))break;f=c,u=h}if((0|u)>0|!(0|u)&f>>>0>0){f=0,u=0;do{n[(k=D+(f<<3)|0)>>2]=0,n[k+4>>2]=0,f=0|$e(0|f,0|u,1,0),u=0|_(),E=0|n[(k=i)+4>>2]}while((0|u)<(0|E)|((0|u)==(0|E)?f>>>0<(0|n[k>>2])>>>0:0))}if(n[(k=i)>>2]=c,n[k+4>>2]=h,!((0|h)>0|!(0|h)&c>>>0>0))break e;m=t,v=x,y=S,E=Q,k=C,t=M,x=l,Q=I,M=m,l=v,S=F,F=y,I=E,C=D,D=k}Ke(I),Ke(F),Ke(U),l=1;break A}l=c}while(0);Ke(U),Ke(t),Ke(l),l=0}}while(0);return P=a,0|(U=l)}}return Ke(U),P=a,0|(U=l)},_polygonToCellsExperimental:function(A,e,t,r,i,o){r|=0,i|=0,o|=0;var s,a,l,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0;l=P,P=P+160|0,u=l+64|0,g=l+112|0,p=l,Me(h=l+80|0,A|=0,e|=0,t|=0),oe(u,0|n[(c=h)>>2],0|n[c+4>>2],e),s=0|n[(c=u)>>2],c=0|n[c+4>>2],f=0|n[h+8>>2],n[(d=g+4|0)>>2]=n[h>>2],n[d+4>>2]=n[h+4>>2],n[d+8>>2]=n[h+8>>2],n[d+12>>2]=n[h+12>>2],n[d+16>>2]=n[h+16>>2],n[d+20>>2]=n[h+20>>2],n[d+24>>2]=n[h+24>>2],n[d+28>>2]=n[h+28>>2],n[(d=p)>>2]=s,n[d+4>>2]=c,n[(d=p+8|0)>>2]=f,e=g,t=(A=p+12|0)+36|0;do{n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}while((0|A)<(0|t));if(n[(g=p+48|0)>>2]=n[u>>2],n[g+4>>2]=n[u+4>>2],n[g+8>>2]=n[u+8>>2],n[g+12>>2]=n[u+12>>2],!(0|s)&!(0|c))return P=l,0|(p=f);t=p+16|0,a=p+24|0,h=p+28|0,f=0,u=0,e=s,A=c;do{if(!((0|f)<(0|i)|(0|f)==(0|i)&u>>>0<r>>>0)){w=4;break}if(c=u,u=0|$e(0|u,0|f,1,0),f=0|_(),n[(c=o+(c<<3)|0)>>2]=e,n[c+4>>2]=A,ae(g),!(0|(e=0|n[(A=g)>>2]))&!(0|(A=0|n[A+4>>2]))){if(Qe(t),!(0|(A=0|n[(e=t)>>2]))&!(0|(e=0|n[e+4>>2]))){w=10;break}se(A,e,0|n[h>>2],g),e=0|n[(A=g)>>2],A=0|n[A+4>>2]}n[(c=p)>>2]=e,n[c+4>>2]=A}while(!(!(0|e)&!(0|A)));return 4==(0|w)?(0|(e=0|n[(A=p+40|0)>>2])&&Ke(e),n[(w=p+16|0)>>2]=0,n[w+4>>2]=0,n[a>>2]=0,n[p+36>>2]=0,n[h>>2]=-1,n[p+32>>2]=0,n[A>>2]=0,se(0,0,0,g),n[p>>2]=0,n[p+4>>2]=0,n[d>>2]=0,P=l,0|(p=14)):(10==(0|w)&&(n[p>>2]=0,n[p+4>>2]=0,n[d>>2]=n[a>>2]),p=0|n[d>>2],P=l,0|p)},_readInt64AsDoubleFromPointer:function(A){return+(+((0|n[(A|=0)>>2])>>>0)+4294967296*+(0|n[A+4>>2]))},_res0CellCount:function(){return 122},_round:wt,_sbrk:pt,_sizeOfCellBoundary:function(){return 168},_sizeOfCoordIJ:function(){return 8},_sizeOfGeoLoop:function(){return 8},_sizeOfGeoPolygon:function(){return 16},_sizeOfH3Index:function(){return 8},_sizeOfLatLng:function(){return 16},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompactCells:function(A,e,t,r,i,o,s){A|=0,r|=0,i|=0,o|=0;var a,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0;if(a=P,P=P+16|0,w=a,!((0|(t|=0))>0|!(0|t)&(e|=0)>>>0>0))return P=a,0|(w=0);if((0|(s|=0))>=16)return P=a,0|(w=12);g=0,d=0,h=0,l=0;A:for(;;){if(c=0|at(0|(f=0|n[(u=A+(g<<3)|0)>>2]),0|(u=0|n[u+4>>2]),52),_(),(15&c)>(0|s)){l=12,f=11;break}if(oe(w,f,u,s),!(0|(u=0|n[(c=w)>>2]))&!(0|(c=0|n[c+4>>2])))f=h;else{f=h;do{if(!((0|l)<(0|o)|(0|l)==(0|o)&f>>>0<i>>>0)){f=10;break A}n[(h=r+(f<<3)|0)>>2]=u,n[h+4>>2]=c,f=0|$e(0|f,0|l,1,0),l=0|_(),ae(w),u=0|n[(h=w)>>2],c=0|n[h+4>>2]}while(!(!(0|u)&!(0|c)))}if(g=0|$e(0|g,0|d,1,0),!((0|(d=0|_()))<(0|t)|(0|d)==(0|t)&g>>>0<e>>>0)){l=0,f=11;break}h=f}return 10==(0|f)?(P=a,0|(w=14)):11==(0|f)?(P=a,0|l):0},_uncompactCellsSize:function(A,e,t,r,i){A|=0,e|=0,t|=0,r|=0,i|=0;var o,s,a=0,l=0,f=0,u=0,c=0,h=0;s=P,P=P+16|0,o=s;A:do{if((0|t)>0|!(0|t)&e>>>0>0){for(c=0,l=0,a=0,h=0;;){if(!(!(0|(f=0|n[(u=A+(c<<3)|0)>>2]))&!(0|(u=0|n[u+4>>2]))||(u=!(0|NA(f,u,r,o)),l=0|$e(0|n[(f=o)>>2],0|n[f+4>>2],0|l,0|a),a=0|_(),u))){a=12;break}if(c=0|$e(0|c,0|h,1,0),!((0|(h=0|_()))<(0|t)|(0|h)==(0|t)&c>>>0<e>>>0))break A}return P=s,0|a}l=0,a=0}while(0);return n[i>>2]=l,n[i+4>>2]=a,P=s,0|(i=0)},_vertexToLatLng:function(A,e,t){t|=0;var r,i,o,s,a=0,l=0;return s=P,P=P+192|0,i=s,o=s+168|0,a=0|at(0|(A|=0),0|(e|=0),56),_(),a&=7,0|(r=0|te(A,l=-2130706433&e|134217728,o))?(P=s,0|(l=r)):(e=0|at(0|A,0|e,52),_(),e&=15,0|VA(A,l)?SA(o,e,a,1,i):RA(o,e,a,1,i),l=i+8|0,n[t>>2]=n[l>>2],n[t+4>>2]=n[l+4>>2],n[t+8>>2]=n[l+8>>2],n[t+12>>2]=n[l+12>>2],P=s,0|(l=0))},establishStackSpace:function(A,e){P=A|=0},stackAlloc:function(A){var e;return e=P,P=(P=P+(A|=0)|0)+15&-16,0|e},stackRestore:function(A){P=A|=0},stackSave:function(){return 0|P}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{b:function(A){p=A},c:function(){return p},d:function(A,e,t,r){dA("Assertion failed: "+C(A)+", at: "+[e?C(e):"unknown filename",t,r?C(r):"unknown function"])},e:function(A){return t.___errno_location&&(M[t.___errno_location()>>2]=A),A},f:q,g:function(A,e,t){k.set(k.subarray(e,e+t),A)},h:function(A){var e=q(),t=16777216,r=2130706432;if(A>r)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?I(2*n,t):Math.min(I((3*n+2147483648)/4,t),r);return!!function(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(E),rA(e),P(e),1}catch(A){}}(n)},i:function(A){dA("OOM")},o:28624,p:28608},y);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._destroyLinkedMultiPolygon=tA._destroyLinkedMultiPolygon,t._directedEdgeToBoundary=tA._directedEdgeToBoundary,t._directedEdgeToCells=tA._directedEdgeToCells,t._edgeLengthKm=tA._edgeLengthKm,t._edgeLengthM=tA._edgeLengthM,t._edgeLengthRads=tA._edgeLengthRads;var rA=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._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._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 nA,iA,oA=t.stackAlloc=tA.stackAlloc,sA=t.stackRestore=tA.stackRestore,aA=t.stackSave=tA.stackSave;if(t.asm=tA,t.cwrap=function(A,e,t,r){var n=(t=t||[]).every(function(A){return"number"===A});return"string"!==e&&n&&!r?m(A):function(){return v(A,e,t,arguments)}},t.setValue=function(A,e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":E[A|0]=e;break;case"i16":_[A>>1]=e;break;case"i32":M[A>>2]=e;break;case"i64":W=[e>>>0,(j=e,+O(j)>=1?j>0?(0|N(+H(j/4294967296),4294967295))>>>0:~~+z((j-+(~~j>>>0))/4294967296)>>>0:0)],M[A>>2]=W[0],M[A+4>>2]=W[1];break;case"float":Q[A>>2]=e;break;case"double":x[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 _[A>>1];case"i32":case"i64":return M[A>>2];case"float":return Q[A>>2];case"double":return x[A>>3];default:dA("invalid type for getValue: "+e)}return null},Z)if(K(Z)||(nA=Z,Z=t.locateFile?t.locateFile(nA,g):g+nA),o||a){var lA=u(Z);k.set(lA,8)}else{V++,t.monitorRunDependencies&&t.monitorRunDependencies(V);var fA=function(A){A.byteLength&&(A=new Uint8Array(A)),k.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(V--,t.monitorRunDependencies&&t.monitorRunDependencies(V),0==V&&X){var A=X;X=null,A()}}()},uA=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 r=eA(t.memoryInitializerRequestURL);if(!r)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+Z),void uA();e=r.buffer}fA(e)};t.memoryInitializerRequest.response?setTimeout(hA,0):t.memoryInitializerRequest.addEventListener("load",hA)}else uA()}function gA(A){function e(){iA||(iA=!0,b||(S(G),S(L),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)Y(t.postRun.shift());S(R)}()))}V>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)U(t.preRun.shift());S(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+=""),w(A),b=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(X=function A(){iA||gA(),iA||(X=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 F?F:{}),S="number",T={0:"Success",1:"The operation failed but a more specific error is not available",2:"Argument was outside of acceptable range",3:"Latitude or longitude arguments were outside of acceptable range",4:"Resolution argument was outside of acceptable range",5:"Cell argument was not valid",6:"Directed edge argument was not valid",7:"Undirected edge argument was not valid",8:"Vertex argument was not valid",9:"Pentagon distortion was encountered",10:"Duplicate input",11:"Cell arguments were not neighbors",12:"Cell arguments had incompatible resolutions",13:"Memory allocation failed",14:"Bounds of provided memory were insufficient",15:"Mode or flags argument was not valid"},G={1e3:"Unknown unit",1001:"Array length out of bounds",1002:"Got unexpected null value for H3 index"};function L(A,e,t){var r=t&&"value"in t,n=new Error((A[e]||"Unknown error")+" (code: "+e+(r?", value: "+t.value:"")+")");return n.code=e,n}function R(A,e){return L(T,A,2===arguments.length?{value:e}:{})}function U(A){if(0!==A)throw R(A)}var Y={};[["sizeOfH3Index",S],["sizeOfLatLng",S],["sizeOfCellBoundary",S],["sizeOfGeoLoop",S],["sizeOfGeoPolygon",S],["sizeOfLinkedGeoPolygon",S],["sizeOfCoordIJ",S],["readInt64AsDoubleFromPointer",S],["isValidCell",S,[S,S]],["latLngToCell",S,[S,S,S,S]],["cellToLatLng",S,[S,S,S]],["cellToBoundary",S,[S,S,S]],["maxGridDiskSize",S,[S,S]],["gridDisk",S,[S,S,S,S]],["gridDiskDistances",S,[S,S,S,S,S]],["gridRing",S,[S,S,S,S]],["gridRingUnsafe",S,[S,S,S,S]],["maxPolygonToCellsSize",S,[S,S,S,S]],["polygonToCells",S,[S,S,S,S]],["maxPolygonToCellsSizeExperimental",S,[S,S,S,S]],["polygonToCellsExperimental",S,[S,S,S,S,S,S]],["cellsToLinkedMultiPolygon",S,[S,S,S]],["destroyLinkedMultiPolygon",null,[S]],["compactCells",S,[S,S,S,S]],["uncompactCells",S,[S,S,S,S,S,S]],["uncompactCellsSize",S,[S,S,S,S,S]],["isPentagon",S,[S,S]],["isResClassIII",S,[S,S]],["getBaseCellNumber",S,[S,S]],["getResolution",S,[S,S]],["maxFaceCount",S,[S,S,S]],["getIcosahedronFaces",S,[S,S,S]],["cellToParent",S,[S,S,S,S]],["cellToChildren",S,[S,S,S,S]],["cellToCenterChild",S,[S,S,S,S]],["cellToChildrenSize",S,[S,S,S,S]],["cellToChildPos",S,[S,S,S,S]],["childPosToCell",S,[S,S,S,S,S,S]],["areNeighborCells",S,[S,S,S,S,S]],["cellsToDirectedEdge",S,[S,S,S,S,S]],["getDirectedEdgeOrigin",S,[S,S,S]],["getDirectedEdgeDestination",S,[S,S,S]],["isValidDirectedEdge",S,[S,S]],["directedEdgeToCells",S,[S,S,S]],["originToDirectedEdges",S,[S,S,S]],["directedEdgeToBoundary",S,[S,S,S]],["gridDistance",S,[S,S,S,S,S]],["gridPathCells",S,[S,S,S,S,S]],["gridPathCellsSize",S,[S,S,S,S,S]],["cellToLocalIj",S,[S,S,S,S,S,S]],["localIjToCell",S,[S,S,S,S,S]],["getHexagonAreaAvgM2",S,[S,S]],["getHexagonAreaAvgKm2",S,[S,S]],["getHexagonEdgeLengthAvgM",S,[S,S]],["getHexagonEdgeLengthAvgKm",S,[S,S]],["greatCircleDistanceM",S,[S,S]],["greatCircleDistanceKm",S,[S,S]],["greatCircleDistanceRads",S,[S,S]],["cellAreaM2",S,[S,S,S]],["cellAreaKm2",S,[S,S,S]],["cellAreaRads2",S,[S,S,S]],["edgeLengthM",S,[S,S,S]],["edgeLengthKm",S,[S,S,S]],["edgeLengthRads",S,[S,S,S]],["getNumCells",S,[S,S]],["getRes0Cells",S,[S]],["res0CellCount",S],["getPentagons",S,[S,S]],["pentagonCount",S],["cellToVertex",S,[S,S,S,S]],["cellToVertexes",S,[S,S,S]],["vertexToLatLng",S,[S,S,S]],["isValidVertex",S,[S,S]]].forEach(function(A){Y[A[0]]=F.cwrap.apply(F,A)});var O=16,z=Y.sizeOfH3Index();Y.sizeOfLatLng();var H=Y.sizeOfCellBoundary();Y.sizeOfGeoPolygon(),Y.sizeOfGeoLoop(),Y.sizeOfLinkedGeoPolygon(),Y.sizeOfCoordIJ();var N=Math.pow(2,32)-1;function V(A){if(A>N)throw function(A,e){return L(G,A,2===arguments.length?{value:e}:{})}(1001,A);return A}var X=/[^0-9a-fA-F]/;function j(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||X.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),O);return[parseInt(A.substring(A.length-8),O),e]}function W(A){if(A>=0)return A.toString(O);var e=Z(8,(A&=2147483647).toString(O));return e=(parseInt(e[0],O)+8).toString(O)+e.substring(1)}function Z(A,e){for(var t=A-e.length,r="",n=0;n<t;n++)r+="0";return r+=e}function J(A,e){void 0===e&&(e=0);var t=F.getValue(A+z*e,"i32"),r=F.getValue(A+z*e+4,"i32");return r?function(A,e){return W(e)+Z(8,W(A))}(t,r):null}function K(A,e){for(var t=[],r=0;r<e;r++){var n=J(A,r);null!==n&&t.push(n)}return t}function q(A){return 180*F.getValue(A,"double")/Math.PI}function $(A){return[q(A+8),q(A)]}function AA(A){var e=j(A),t=e[0],r=e[1];return Boolean(Y.isValidCell(t,r))}function eA(A,e){var t=F._malloc(H),r=j(A),n=r[0],i=r[1];try{return U(Y.cellToBoundary(n,i,t)),function(A){for(var e=F.getValue(A,"i32"),t=A+8,r=[],n=$,i=0;i<2*e;i+=2)r.push(n(t+8*i));return r.push(r[0]),r}(t)}finally{F._free(t)}}function tA(A,e){if(!AA(A))return[];var t=j(A),r=t[0],n=t[1],i=V(function(A,e){if(!AA(A))throw R(5);var t=j(A),r=t[0],n=t[1],i=F._malloc(8);try{return U(Y.cellToChildrenSize(r,n,e,i)),o=i,Y.readInt64AsDoubleFromPointer(o)}finally{F._free(i)}var o}(A,e)),o=F._calloc(i,z);try{return U(Y.cellToChildren(r,n,e,o)),K(o,i)}finally{F._free(o)}}function rA(){var A=Y.res0CellCount(),e=F._malloc(z*A);try{return U(Y.getRes0Cells(e)),K(e,A)}finally{F._free(e)}}function nA(A){if(A.__esModule)return A;var e=A.default;if("function"==typeof e){var t=function A(){return this instanceof A?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(A).forEach(function(e){var r=Object.getOwnPropertyDescriptor(A,e);Object.defineProperty(t,e,r.get?r:{enumerable:!0,get:function(){return A[e]}})}),t}var iA=function(A){var e,t=void 0!==(A=A||{})?A:{},r={};for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);var n,i,o,s,a;n="object"==typeof window,i="function"==typeof importScripts,s="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=s&&!n&&!i,a=!n&&!o&&!i;var l,f,u,c,h,g="";o?(g=__dirname+"/",l=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()},u=function(A){var e=l(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]"}):a?("undefined"!=typeof read&&(l=function(A){var e=tA(A);return e?AA(e):read(A)}),u=function(A){var e;return(e=tA(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)):(n||i)&&(i?g=self.location.href:document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf("blob:")?g.substr(0,g.lastIndexOf("/")+1):"",l=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var t=tA(A);if(t)return AA(t);throw e}},i&&(u=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}catch(e){var t=tA(A);if(t)return t;throw e}}),f=function(A,e,t){var r=new XMLHttpRequest;r.open("GET",A,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)e(r.response);else{var n=tA(A);n?e(n.buffer):t()}},r.onerror=t,r.send(null)});var d=t.print||console.log.bind(console),w=t.printErr||console.warn.bind(console);for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);r=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram;var p=0,b=function(){return p};var B=!1;function m(A,e){A||wA("Assertion failed: "+e)}function v(A){var e=t["_"+A];return m(e,"Cannot call unknown function "+A+", make sure it is exported"),e}function y(A,e,t,r,n){var i={string:function(A){var e=0;if(null!=A&&0!==A){var t=1+(A.length<<2);(function(A,e,t){(function(A,e,t,r){if(!(r>0))return 0;for(var n=t,i=t+r-1,o=0;o<A.length;++o){var s=A.charCodeAt(o);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&A.charCodeAt(++o);if(s<=127){if(t>=i)break;e[t++]=s}else if(s<=2047){if(t+1>=i)break;e[t++]=192|s>>6,e[t++]=128|63&s}else if(s<=65535){if(t+2>=i)break;e[t++]=224|s>>12,e[t++]=128|s>>6&63,e[t++]=128|63&s}else{if(t+3>=i)break;e[t++]=240|s>>18,e[t++]=128|s>>12&63,e[t++]=128|s>>6&63,e[t++]=128|63&s}}e[t]=0})(A,_,e,t)})(A,e=sA(t),t)}return e},array:function(A){var e=sA(A.length);return function(A,e){k.set(A,e)}(A,e),e}};var o=v(A),s=[],a=0;if(r)for(var l=0;l<r.length;l++){var f=i[t[l]];f?(0===a&&(a=lA()),s[l]=f(r[l])):s[l]=r[l]}var u=o.apply(null,s);return u=function(A){return"string"===e?I(A):"boolean"===e?Boolean(A):A}(u),0!==a&&aA(a),u}var E,k,_,M,Q,x,D,C="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function I(A,e){return A?function(A,e,t){for(var r=e+t,n=e;A[n]&&!(n>=r);)++n;if(n-e>16&&A.subarray&&C)return C.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var s=63&A[e++];if(192!=(224&o)){var a=63&A[e++];if((o=224==(240&o)?(15&o)<<12|s<<6|a:(7&o)<<18|s<<12|a<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var l=o-65536;i+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|s)}else i+=String.fromCharCode(o)}return i}(_,A,e):""}function P(A,e){return A%e>0&&(A+=e-A%e),A}function F(A){E=A,t.HEAP8=k=new Int8Array(A),t.HEAP16=M=new Int16Array(A),t.HEAP32=Q=new Int32Array(A),t.HEAPU8=_=new Uint8Array(A),t.HEAPU16=new Uint16Array(A),t.HEAPU32=new Uint32Array(A),t.HEAPF32=x=new Float32Array(A),t.HEAPF64=D=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var S=t.TOTAL_MEMORY||33554432;function T(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?t.dynCall_v(r):t.dynCall_vi(r,e.arg):r(void 0===e.arg?null:e.arg)}else e()}}S=(E=t.buffer?t.buffer:new ArrayBuffer(S)).byteLength,F(E),Q[6004]=5266928;var G=[],L=[],R=[],U=[];function Y(A){G.unshift(A)}function O(A){U.unshift(A)}var z=Math.abs,H=Math.ceil,N=Math.floor,V=Math.min,X=0,j=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 k.length}function AA(A){for(var e=[],t=0;t<A.length;t++){var r=A[t];r>255&&(r&=255),e.push(String.fromCharCode(r))}return e.join("")}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,r,n,i,o,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a="",l=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=s.indexOf(A.charAt(l++))<<2|(n=s.indexOf(A.charAt(l++)))>>4,t=(15&n)<<4|(i=s.indexOf(A.charAt(l++)))>>2,r=(3&i)<<6|(o=s.indexOf(A.charAt(l++))),a+=String.fromCharCode(e),64!==i&&(a+=String.fromCharCode(t)),64!==o&&(a+=String.fromCharCode(r))}while(l<A.length);return a};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),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(K.length))}var rA=function(A,e,t){var r=new A.Int8Array(t),n=new A.Int32Array(t);new A.Uint8Array(t),new A.Float32Array(t);var i=new A.Float64Array(t),o=0|e.p,s=A.Math.floor,a=A.Math.abs,l=A.Math.sqrt,f=A.Math.pow,u=A.Math.cos,c=A.Math.sin,h=A.Math.tan,g=A.Math.acos,d=A.Math.asin,w=A.Math.atan,p=A.Math.atan2,b=A.Math.ceil,B=A.Math.imul,m=A.Math.min,v=A.Math.clz32,y=e.b,E=e.c,k=e.d,_=e.e,M=e.f,Q=e.g,x=e.h,D=e.i,C=24048;function I(A,e,t,r){var n,i;0|P(A|=0,e|=0,t|=0,r|=0,0)&&(De(0|r,0,(i=1+(0|B(3*t|0,t+1|0))|0)<<3),(n=0|Be(i,4))&&(F(A,e,t,r,n,i,0),be(n)))}function P(A,e,t,r,i){A|=0,e|=0,t|=0,i|=0;var o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0;if(o=C,C=C+16|0,g=o,n[(s=r|=0)>>2]=A,n[s+4>>2]=e,(s=!!(0|i))&&(n[i>>2]=0),0|SA(A,e))return C=o,0|(g=1);n[g>>2]=0;A:do{if((0|t)>=1)if(s)for(u=0,c=1,h=1,a=0,s=A;;){if(!(a|u)){if(!(0|(s=0|S(s,e,4,g)))&!(0|(e=0|E()))){s=2;break A}if(0|SA(s,e)){s=1;break A}}if(!(0|(s=0|S(s,e,0|n[16+(u<<2)>>2],g)))&!(0|(e=0|E()))){s=2;break A}if(n[(A=r+(h<<3)|0)>>2]=s,n[A+4>>2]=e,n[i+(h<<2)>>2]=c,A=(0|(a=a+1|0))==(0|c),f=6==(0|(l=u+1|0)),0|SA(s,e)){s=1;break A}if((0|(c=c+(f&A&1)|0))>(0|t)){s=0;break}u=A?f?0:l:u,h=h+1|0,a=A?0:a}else for(u=0,c=1,h=1,a=0,s=A;;){if(!(a|u)){if(!(0|(s=0|S(s,e,4,g)))&!(0|(e=0|E()))){s=2;break A}if(0|SA(s,e)){s=1;break A}}if(!(0|(s=0|S(s,e,0|n[16+(u<<2)>>2],g)))&!(0|(e=0|E()))){s=2;break A}if(n[(A=r+(h<<3)|0)>>2]=s,n[A+4>>2]=e,A=(0|(a=a+1|0))==(0|c),f=6==(0|(l=u+1|0)),0|SA(s,e)){s=1;break A}if((0|(c=c+(f&A&1)|0))>(0|t)){s=0;break}u=A?f?0:l:u,h=h+1|0,a=A?0:a}else s=0}while(0);return C=o,0|(g=s)}function F(A,e,t,r,i,o,s){t|=0,r|=0,i|=0,o|=0,s|=0;var a,l,f=0,u=0,c=0,h=0,g=0;if(l=C,C=C+16|0,a=l,!(0|(A|=0))&!(0|(e|=0)))C=l;else{if(f=0|Ee(0|A,0|e,0|o,((0|o)<0)<<31>>31),E(),!(!(0|(g=0|n[(h=u=r+(f<<3)|0)>>2]))&!(0|(h=0|n[h+4>>2]))|(c=(0|g)==(0|A)&(0|h)==(0|e))))do{c=(0|(h=0|n[(g=u=r+((f=(f+1|0)%(0|o)|0)<<3)|0)>>2]))==(0|A)&(0|(g=0|n[g+4>>2]))==(0|e)}while(!(!(0|h)&!(0|g)|c));f=i+(f<<2)|0,c&&(0|n[f>>2])<=(0|s)||(n[(g=u)>>2]=A,n[g+4>>2]=e,n[f>>2]=s,(0|s)>=(0|t)||(g=s+1|0,n[a>>2]=0,F(h=0|S(A,e,2,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,3,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,1,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,5,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,4,a),0|E(),t,r,i,o,g),n[a>>2]=0,F(h=0|S(A,e,6,a),0|E(),t,r,i,o,g))),C=l}}function S(A,e,t,r){A|=0,e|=0,t|=0;var i,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0;if((0|n[(r|=0)>>2])>0){s=0;do{t=0|aA(t),s=s+1|0}while((0|s)<(0|n[r>>2]))}i=0|ke(0|A,0|e,45),E(),o=127&i,a=0|TA(A,e),s=0|ke(0|A,0|e,52),E(),s&=15;A:do{if(s)for(;;){if(c=0|ke(0|A,0|e,0|(u=3*(15-s|0)|0)),E(),c&=7,h=!(0|YA(s)),s=s+-1|0,f=0|_e(7,0,0|u),e&=~E(),A=(u=0|_e(0|n[(h?464:48)+(28*c|0)+(t<<2)>>2],0,0|u))|A&~f,e|=0|E(),!(t=0|n[(h?672:256)+(28*c|0)+(t<<2)>>2])){t=0;break A}if(!s){l=6;break}}else l=6}while(0);6==(0|l)&&(A|=c=0|_e(0|(h=0|n[880+(28*o|0)+(t<<2)>>2]),0,45),e=E()|-1040385&e,t=0|n[4304+(28*o|0)+(t<<2)>>2],127&~h||(h=0|_e(0|n[880+(28*o|0)+20>>2],0,45),e=E()|-1040385&e,t=0|n[4304+(28*o|0)+20>>2],A=0|LA(h|A,e),e=0|E(),n[r>>2]=1+(0|n[r>>2]))),l=0|ke(0|A,0|e,45),E(),l&=127;A:do{if(0|G(l)){e:do{if(1==(0|TA(A,e))){if((0|o)!=(0|l)){if(0|Y(l,0|n[7728+(28*o|0)>>2])){A=0|UA(A,e),a=1,e=0|E();break}A=0|LA(A,e),a=1,e=0|E();break}switch(0|a){case 5:A=0|UA(A,e),e=0|E(),n[r>>2]=5+(0|n[r>>2]),a=0;break e;case 3:A=0|LA(A,e),e=0|E(),n[r>>2]=1+(0|n[r>>2]),a=0;break e;default:return h=0,y(0|(c=0)),0|h}}else a=0}while(0);if((0|t)>0){s=0;do{A=0|GA(A,e),e=0|E(),s=s+1|0}while((0|s)!=(0|t))}if((0|o)!=(0|l)){if(!(0|L(l))){if(!!(0|a)|5!=(0|TA(A,e)))break;n[r>>2]=1+(0|n[r>>2]);break}switch(127&i){case 8:case 118:break A}3!=(0|TA(A,e))&&(n[r>>2]=1+(0|n[r>>2]))}}else if((0|t)>0){s=0;do{A=0|LA(A,e),e=0|E(),s=s+1|0}while((0|s)!=(0|t))}}while(0);return n[r>>2]=((0|n[r>>2])+t|0)%6|0,h=A,y(0|(c=e)),0|h}function T(A,e,t,r,o,s){e|=0,t|=0,r|=0,o|=0,s|=0;var a,l,f,u,c,h,g,d,w,p=0,b=0,B=0,m=0,v=0,y=0,k=0,_=0,M=0,Q=0,x=0,D=0,I=0,P=0;if(w=C,C=C+48|0,h=w+32|0,g=w+16|0,d=w,(0|(p=0|n[(A|=0)>>2]))<=0)return C=w,0|(D=0);a=A+4|0,l=h+8|0,f=g+8|0,u=d+8|0,c=((0|e)<0)<<31>>31,x=0;A:for(;;){M=(b=0|n[a>>2])+(x<<4)|0,n[h>>2]=n[M>>2],n[h+4>>2]=n[M+4>>2],n[h+8>>2]=n[M+8>>2],n[h+12>>2]=n[M+12>>2],(0|x)==(p+-1|0)?(n[g>>2]=n[b>>2],n[g+4>>2]=n[b+4>>2],n[g+8>>2]=n[b+8>>2],n[g+12>>2]=n[b+12>>2]):(M=b+(x+1<<4)|0,n[g>>2]=n[M>>2],n[g+4>>2]=n[M+4>>2],n[g+8>>2]=n[M+8>>2],n[g+12>>2]=n[M+12>>2]),M=0|X(h,g,t);e:do{if((0|M)>0){Q=+(0|M),_=0;t:for(;;){P=+(M-_|0),I=+(0|_),i[d>>3]=+i[h>>3]*P/Q+ +i[g>>3]*I/Q,i[u>>3]=+i[l>>3]*P/Q+ +i[f>>3]*I/Q,b=0|Ee(0|(y=0|OA(d,t)),0|(k=0|E()),0|e,0|c),E(),m=0|n[(B=p=s+(b<<3)|0)>>2],B=0|n[B+4>>2];r:do{if(!(0|m)&!(0|B))D=14;else for(v=0;;){if((0|v)>(0|e)){p=1;break r}if((0|m)==(0|y)&(0|B)==(0|k)){p=7;break r}if(!(0|(m=0|n[(B=p=s+((b=(b+1|0)%(0|e)|0)<<3)|0)>>2]))&!(0|(B=0|n[B+4>>2]))){D=14;break}v=v+1|0}}while(0);switch(14==(0|D)&&(D=0,!(0|y)&!(0|k)?p=7:(n[p>>2]=y,n[p+4>>2]=k,p=0|n[r>>2],n[(v=o+(p<<3)|0)>>2]=y,n[v+4>>2]=k,n[r>>2]=p+1,p=0)),7&p){case 7:case 0:break;default:break t}if((0|M)<=(0|(_=_+1|0))){D=8;break e}}if(0|p){p=-1,D=20;break A}}else D=8}while(0);if(8==(0|D)&&(D=0),(0|(x=x+1|0))>=(0|(p=0|n[A>>2]))){p=0,D=20;break}}return 20==(0|D)?(C=w,0|p):0}function G(A){return 0|n[7728+(28*(A|=0)|0)+16>>2]}function L(A){return 4==(0|(A|=0))|117==(0|A)|0}function R(A){return 0|n[11152+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function U(A){return 0|n[11152+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function Y(A,e){return e|=0,(0|n[7728+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|n[7728+(28*A|0)+24>>2])==(0|e))}function O(A,e){return 0|n[880+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function z(A,e){return e|=0,(0|n[880+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|n[880+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[880+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[880+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[880+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[880+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[880+(28*A|0)+24>>2])==(0|e)?6:7)}function H(A){return+i[(A|=0)+16>>3]<+i[A+24>>3]|0}function N(A,e){A|=0;var t,r,n=0;return(n=+i[(e|=0)>>3])>=+i[A+8>>3]&&n<=+i[A>>3]?(t=+i[A+16>>3],n=+i[A+24>>3],e=(r=+i[e+8>>3])>=n,A=r<=t&1,t<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function V(A,e){A|=0,e|=0;var t,r,o,s,l,f,u=0,c=0;s=C,C=C+288|0,t=s+264|0,r=s+96|0,c=(u=o=s)+96|0;do{n[u>>2]=0,u=u+4|0}while((0|u)<(0|c));return XA(e,o),NA(c=0|n[(u=o)>>2],u=0|n[u+4>>2],t),VA(c,u,r),l=+xA(t,r+8|0),i[t>>3]=+i[A>>3],i[(u=t+8|0)>>3]=+i[A+16>>3],i[r>>3]=+i[A+8>>3],i[(c=r+8|0)>>3]=+i[A+24>>3],f=+xA(t,r),c=~~+b(+f*f/+Me(+ +a(+(+i[u>>3]-+i[c>>3])/(+i[t>>3]-+i[r>>3])),3)/(l*(2.59807621135*l)*.8)),C=s,0|(0|c?c:1)}function X(A,e,t){A|=0,e|=0,t|=0;var r,i,o,s,a,l=0,f=0;s=C,C=C+288|0,r=s+264|0,i=s+96|0,f=(l=o=s)+96|0;do{n[l>>2]=0,l=l+4|0}while((0|l)<(0|f));return XA(t,o),NA(l=0|n[(f=o)>>2],f=0|n[f+4>>2],r),VA(l,f,i),a=+xA(r,i+8|0),f=~~+b(+ +xA(A,e)/(2*a)),C=s,0|(0|f?f:1)}function j(A,e,t,r){e|=0,t|=0,r|=0,n[(A|=0)>>2]=e,n[A+4>>2]=t,n[A+8>>2]=r}function W(A,e){A|=0;var t,r,o,s,l=0,f=0,u=0,c=0,h=0,g=0,d=0;n[(s=(e|=0)+8|0)>>2]=0,r=+i[A>>3],c=+a(+r),o=+i[A+8>>3],c+=.5*(h=+a(+o)/.8660254037844386),c-=+(0|(l=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=l,h<.5*(c+1)){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(A=(1&!(h<(d=1-c)))+A|0,n[e+4>>2]=A,d<=h&h<2*c){l=l+1|0,n[e>>2]=l;break}n[e>>2]=l;break}if(!(c<.6666666666666666)){if(l=l+1|0,n[e>>2]=l,h<.5*c){n[e+4>>2]=A;break}A=A+1|0,n[e+4>>2]=A;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=l;break}}else A=A+1|0,n[e+4>>2]=A;l=l+1|0,n[e>>2]=l}while(0);do{if(r<0){if(1&A){l=~~(+(0|l)-(2*(+((g=0|me(0|l,((0|l)<0)<<31>>31,0|(g=(A+1|0)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|E()))+1)),n[e>>2]=l;break}l=~~(+(0|l)-2*(+((g=0|me(0|l,((0|l)<0)<<31>>31,0|(g=(0|A)/2|0),((0|g)<0)<<31>>31))>>>0)+4294967296*+(0|E()))),n[e>>2]=l;break}}while(0);g=e+4|0,o<0&&(l=l-((1|A<<1)/2|0)|0,n[e>>2]=l,A=0-A|0,n[g>>2]=A),f=A-l|0,(0|l)<0?(u=0-l|0,n[g>>2]=f,n[s>>2]=u,n[e>>2]=0,A=f,l=0):u=0,(0|A)<0&&(l=l-A|0,n[e>>2]=l,u=u-A|0,n[s>>2]=u,n[g>>2]=0,A=0),t=l-u|0,f=A-u|0,(0|u)<0&&(n[e>>2]=t,n[g>>2]=f,n[s>>2]=0,A=f,l=t,u=0),(0|(f=(0|u)<(0|(f=(0|A)<(0|l)?A:l))?u:f))<=0||(n[e>>2]=l-f,n[g>>2]=A-f,n[s>>2]=u-f)}function Z(A){var e,t=0,r=0,i=0,o=0,s=0;t=0|n[(A|=0)>>2],r=0|n[(e=A+4|0)>>2],(0|t)<0&&(r=r-t|0,n[e>>2]=r,n[(s=A+8|0)>>2]=(0|n[s>>2])-t,n[A>>2]=0,t=0),(0|r)<0?(t=t-r|0,n[A>>2]=t,o=(0|n[(s=A+8|0)>>2])-r|0,n[s>>2]=o,n[e>>2]=0,r=0):(s=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(t=t-o|0,n[A>>2]=t,r=r-o|0,n[e>>2]=r,n[s>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|r)<(0|t)?r:t))?o:i))<=0||(n[A>>2]=t-i,n[e>>2]=r-i,n[s>>2]=o-i)}function J(A,e){e|=0;var t,r;r=0|n[(A|=0)+8>>2],t=+((0|n[A+4>>2])-r|0),i[e>>3]=+((0|n[A>>2])-r|0)-.5*t,i[e+8>>3]=.8660254037844386*t}function K(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[e>>2])+(0|n[A>>2]),n[t+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[t+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function q(A,e,t){A|=0,e|=0,n[(t|=0)>>2]=(0|n[A>>2])-(0|n[e>>2]),n[t+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[t+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function $(A,e){e|=0;var t,r=0;r=0|B(0|n[(A|=0)>>2],e),n[A>>2]=r,t=0|B(0|n[(r=A+4|0)>>2],e),n[r>>2]=t,e=0|B(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function AA(A){var e,t,r=0,i=0,o=0,s=0,a=0;a=(0|(t=0|n[(A|=0)>>2]))<0,A=(A=(i=(0|(s=((e=(0|(o=(0|n[A+4>>2])-(a?t:0)|0))<0)?0-o|0:0)+((0|n[A+8>>2])-(a?t:0))|0))<0)?0:s)-((o=(0|(i=(0|A)<(0|(i=(0|(r=(e?0:o)-(i?s:0)|0))<(0|(s=(a?0:t)-(e?o:0)-(i?s:0)|0))?r:s))?A:i))>0)?i:0)|0,r=r-(o?i:0)|0;A:do{switch(s-(o?i:0)|0){case 0:switch(0|r){case 0:return 0|(a=0|A?1==(0|A)?1:7:0);case 1:return 0|(a=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|r){case 0:return 0|(a=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|(a=7)}function eA(A){var e,t,r=0,i=0,o=0,s=0,a=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|we(+((3*(r=(0|n[A>>2])-i|0)|0)-(i=(0|n[(t=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,r=0|we(+((i<<1)+r|0)/7),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(a=0-o|0,n[t>>2]=i,n[e>>2]=a,n[A>>2]=0,r=i,o=0,i=a):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=s,n[e>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=r-o,n[e>>2]=i-o)}function tA(A){var e,t,r=0,i=0,o=0,s=0,a=0;i=0|n[(e=(A|=0)+8|0)>>2],o=0|we(+(((r=(0|n[A>>2])-i|0)<<1)+(i=(0|n[(t=A+4|0)>>2])-i|0)|0)/7),n[A>>2]=o,r=0|we(+((3*i|0)-r|0)/7),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(a=0-o|0,n[t>>2]=i,n[e>>2]=a,n[A>>2]=0,r=i,o=0,i=a):i=0,(0|r)<0&&(o=o-r|0,n[A>>2]=o,i=i-r|0,n[e>>2]=i,n[t>>2]=0,r=0),a=o-i|0,s=r-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=s,n[e>>2]=0,r=s,s=a,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|s)?r:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=r-o,n[e>>2]=i-o)}function rA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],s=0|n[(r=A+8|0)>>2],a=o+(3*i|0)|0,n[A>>2]=a,o=s+(3*o|0)|0,n[t>>2]=o,i=(3*s|0)+i|0,n[r>>2]=i,s=o-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=s,n[r>>2]=i,n[A>>2]=0,o=s,s=0):s=a,(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function nA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=(3*(i=0|n[(t=A+4|0)>>2])|0)+a|0,a=(o=0|n[(r=A+8|0)>>2])+(3*a|0)|0,n[A>>2]=a,n[t>>2]=s,i=(3*o|0)+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):o=s,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function iA(A,e){A|=0;var t,r,i,o=0,s=0,a=0;((e|=0)+-1|0)>>>0>=6||(a=(0|n[15472+(12*e|0)>>2])+(0|n[A>>2])|0,n[A>>2]=a,i=A+4|0,s=(0|n[15472+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[i>>2]=s,r=A+8|0,e=(0|n[15472+(12*e|0)+8>>2])+(0|n[r>>2])|0,n[r>>2]=e,o=s-a|0,(0|a)<0?(e=e-a|0,n[i>>2]=o,n[r>>2]=e,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,e=e-o|0,n[r>>2]=e,n[i>>2]=0,o=0),t=s-e|0,a=o-e|0,(0|e)<0?(n[A>>2]=t,n[i>>2]=a,n[r>>2]=0,s=t,e=0):a=o,(0|(o=(0|e)<(0|(o=(0|a)<(0|s)?a:s))?e:o))<=0||(n[A>>2]=s-o,n[i>>2]=a-o,n[r>>2]=e-o))}function oA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=(i=0|n[(t=A+4|0)>>2])+a|0,a=(o=0|n[(r=A+8|0)>>2])+a|0,n[A>>2]=a,n[t>>2]=s,i=o+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function sA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],s=0|n[(t=A+4|0)>>2],o=0|n[(r=A+8|0)>>2],a=s+i|0,n[A>>2]=a,s=o+s|0,n[t>>2]=s,i=o+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):(o=s,s=a),(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function aA(A){switch(0|(A|=0)){case 1:A=5;break;case 5:A=4;break;case 4:A=6;break;case 6:A=2;break;case 2:A=3;break;case 3:A=1}return 0|A}function lA(A){switch(0|(A|=0)){case 1:A=3;break;case 3:A=2;break;case 2:A=6;break;case 6:A=4;break;case 4:A=5;break;case 5:A=1}return 0|A}function fA(A){var e,t,r,i=0,o=0,s=0,a=0;i=0|n[(A|=0)>>2],o=0|n[(t=A+4|0)>>2],s=0|n[(r=A+8|0)>>2],a=o+(i<<1)|0,n[A>>2]=a,o=s+(o<<1)|0,n[t>>2]=o,i=(s<<1)+i|0,n[r>>2]=i,s=o-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=s,n[r>>2]=i,n[A>>2]=0,o=s,s=0):s=a,(0|o)<0&&(s=s-o|0,n[A>>2]=s,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function uA(A){var e,t,r,i=0,o=0,s=0,a=0;a=0|n[(A|=0)>>2],s=((i=0|n[(t=A+4|0)>>2])<<1)+a|0,a=(o=0|n[(r=A+8|0)>>2])+(a<<1)|0,n[A>>2]=a,n[t>>2]=s,i=(o<<1)+i|0,n[r>>2]=i,o=s-a|0,(0|a)<0?(i=i-a|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):o=s,(0|o)<0&&(a=a-o|0,n[A>>2]=a,i=i-o|0,n[r>>2]=i,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function cA(A,e){e|=0;var t,r,i,o=0,s=0,a=0;return i=(0|(r=(0|n[(A|=0)>>2])-(0|n[e>>2])|0))<0,t=(0|(s=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?r:0)|0))<0,e=(e=(A=(0|(a=(i?0-r|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+(t?0-s|0:0)|0))<0)?0:a)-((s=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:s)-(A?a:0)|0))<(0|(a=(i?0:r)-(t?s:0)-(A?a:0)|0))?o:a))?e:A))>0)?A:0)|0,o=o-(s?A:0)|0,0|((0|(A=(0|(A=a-(s?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function hA(A,e){e|=0;var t;t=0|n[(A|=0)+8>>2],n[e>>2]=(0|n[A>>2])-t,n[e+4>>2]=(0|n[A+4>>2])-t}function gA(A,e){e|=0;var t,r,i,o=0,s=0,a=0;s=0|n[(A|=0)>>2],n[e>>2]=s,A=0|n[A+4>>2],n[(r=e+4|0)>>2]=A,n[(i=e+8|0)>>2]=0,o=A-s|0,(0|s)<0?(A=0-s|0,n[r>>2]=o,n[i>>2]=A,n[e>>2]=0,s=0):(o=A,A=0),(0|o)<0&&(s=s-o|0,n[e>>2]=s,A=A-o|0,n[i>>2]=A,n[r>>2]=0,o=0),t=s-A|0,a=o-A|0,(0|A)<0?(n[e>>2]=t,n[r>>2]=a,n[i>>2]=0,o=a,a=t,A=0):a=s,(0|(s=(0|A)<(0|(s=(0|o)<(0|a)?o:a))?A:s))<=0||(n[e>>2]=a-s,n[r>>2]=o-s,n[i>>2]=A-s)}function dA(A){var e,t,r,i;t=(i=0|n[(e=(A|=0)+8|0)>>2])-(0|n[A>>2])|0,n[A>>2]=t,A=(0|n[(r=A+4|0)>>2])-i|0,n[r>>2]=A,n[e>>2]=0-(A+t)}function wA(A){var e,t,r=0,i=0,o=0,s=0,a=0;r=0-(i=0|n[(A|=0)>>2])|0,n[A>>2]=r,n[(e=A+8|0)>>2]=0,s=(o=0|n[(t=A+4|0)>>2])+i|0,(0|i)>0?(n[t>>2]=s,n[e>>2]=i,n[A>>2]=0,r=0,o=s):i=0,(0|o)<0?(a=r-o|0,n[A>>2]=a,i=i-o|0,n[e>>2]=i,n[t>>2]=0,s=a-i|0,r=0-i|0,(0|i)<0?(n[A>>2]=s,n[t>>2]=r,n[e>>2]=0,o=r,i=0):(o=0,s=a)):s=r,(0|(r=(0|i)<(0|(r=(0|o)<(0|s)?o:s))?i:r))<=0||(n[A>>2]=s-r,n[t>>2]=o-r,n[e>>2]=i-r)}function pA(A,e,t,r){e|=0,t|=0,r|=0;var o,s=0,a=0,l=0,f=0;if(o=C,C=C+32|0,function(A,e){A|=0,e|=0;var t=0,r=0,n=0;t=+i[A>>3],r=+u(+t),t=+c(+t),i[e+16>>3]=t,t=+i[A+8>>3],n=r*+u(+t),i[e>>3]=n,t=r*+c(+t),i[e+8>>3]=t}(A|=0,a=o),n[t>>2]=0,s=+ae(15888,a),(l=+ae(15912,a))<s&&(n[t>>2]=1,s=l),(l=+ae(15936,a))<s&&(n[t>>2]=2,s=l),(l=+ae(15960,a))<s&&(n[t>>2]=3,s=l),(l=+ae(15984,a))<s&&(n[t>>2]=4,s=l),(l=+ae(16008,a))<s&&(n[t>>2]=5,s=l),(l=+ae(16032,a))<s&&(n[t>>2]=6,s=l),(l=+ae(16056,a))<s&&(n[t>>2]=7,s=l),(l=+ae(16080,a))<s&&(n[t>>2]=8,s=l),(l=+ae(16104,a))<s&&(n[t>>2]=9,s=l),(l=+ae(16128,a))<s&&(n[t>>2]=10,s=l),(l=+ae(16152,a))<s&&(n[t>>2]=11,s=l),(l=+ae(16176,a))<s&&(n[t>>2]=12,s=l),(l=+ae(16200,a))<s&&(n[t>>2]=13,s=l),(l=+ae(16224,a))<s&&(n[t>>2]=14,s=l),(l=+ae(16248,a))<s&&(n[t>>2]=15,s=l),(l=+ae(16272,a))<s&&(n[t>>2]=16,s=l),(l=+ae(16296,a))<s&&(n[t>>2]=17,s=l),(l=+ae(16320,a))<s&&(n[t>>2]=18,s=l),(l=+ae(16344,a))<s&&(n[t>>2]=19,s=l),(l=+g(+(1-.5*s)))<1e-16)return n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,n[r+12>>2]=0,void(C=o);if(t=0|n[t>>2],s=+MA((s=+i[16368+(24*t|0)>>3])-+MA(+function(A,e){A|=0,e|=0;var t=0,r=0,n=0,o=0,s=0;return o=+i[e>>3],r=+u(+o),n=+i[e+8>>3]-+i[A+8>>3],s=r*+c(+n),t=+i[A>>3],+ +p(+s,+(+c(+o)*+u(+t)-+u(+n)*(r*+c(+t))))}(15568+(t<<4)|0,A))),f=0|YA(e)?+MA(s+-.3334731722518321):s,s=+h(+l)/.381966011250105,(0|e)>0){a=0;do{s*=2.6457513110645907,a=a+1|0}while((0|a)!=(0|e))}l=+u(+f)*s,i[r>>3]=l,f=+c(+f)*s,i[r+8>>3]=f,C=o}function bA(A,e,t,r,o){e|=0,t|=0,r|=0,o|=0;var s=0,f=0;if(s=+function(A){A|=0;var e=0,t=0;return t=+i[A>>3],e=+i[A+8>>3],+ +l(+(t*t+e*e))}(A|=0),s<1e-16)return e=15568+(e<<4)|0,n[o>>2]=n[e>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(f=+p(+ +i[A+8>>3],+ +i[A>>3]),(0|t)>0){A=0;do{s/=2.6457513110645907,A=A+1|0}while((0|A)!=(0|t))}r?(s/=3,t=!(0|YA(t)),s=+w(.381966011250105*(t?s:s/2.6457513110645907))):(s=+w(.381966011250105*s),0|YA(t)&&(f=+MA(f+.3334731722518321))),function(A,e,t,r){A|=0,e=+e,t=+t,r|=0;var o=0,s=0,l=0,f=0;if(t<1e-16)return n[r>>2]=n[A>>2],n[r+4>>2]=n[A+4>>2],n[r+8>>2]=n[A+8>>2],void(n[r+12>>2]=n[A+12>>2]);s=e<0?e+6.283185307179586:e,s=e>=6.283185307179586?s+-6.283185307179586:s;do{if(!(s<1e-16)){if(o=+a(+(s+-3.141592653589793))<1e-16,e=+i[A>>3],o){e-=t,i[r>>3]=e,o=r;break}if(l=+u(+t),t=+c(+t),e=l*+c(+e)+ +u(+s)*(t*+u(+e)),e=+d(+((e=e>1?1:e)<-1?-1:e)),i[r>>3]=e,+a(+(e+-1.5707963267948966))<1e-16)return i[r>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+a(+(e+1.5707963267948966))<1e-16)return i[r>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(f=+u(+e),s=t*+c(+s)/f,t=+i[A>>3],e=(l-+c(+e)*+c(+t))/+u(+t)/f,l=s>1?1:s,e=e>1?1:e,(e=+i[A+8>>3]+ +p(+(l<-1?-1:l),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[r+8>>3]=e)}e=+i[A>>3]+t,i[r>>3]=e,o=r}while(0);if(+a(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+a(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(e=+i[A+8>>3],e>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[r+8>>3]=e}(15568+(e<<4)|0,+MA(+i[16368+(24*e|0)>>3]-f),s,o)}function BA(A,e,t){e|=0,t|=0;var r,i;r=C,C=C+16|0,J((A|=0)+4|0,i=r),bA(i,0|n[A>>2],e,0,t),C=r}function mA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var s,a,l,f,u,c,h,g,d,w,p,b,B,m,v,y,E,_,M,Q,x,D,I=0,P=0,F=0,S=0,T=0,G=0;if(D=C,C=C+272|0,S=D+240|0,M=D,Q=D+224|0,x=D+208|0,p=D+176|0,b=D+160|0,B=D+192|0,m=D+144|0,v=D+128|0,y=D+112|0,E=D+96|0,_=D+80|0,n[(I=D+256|0)>>2]=e,n[S>>2]=n[A>>2],n[S+4>>2]=n[A+4>>2],n[S+8>>2]=n[A+8>>2],n[S+12>>2]=n[A+12>>2],vA(S,I,M),n[o>>2]=0,(0|(S=r+t+(5==(0|r)&1)|0))<=(0|t))C=D;else{a=Q+4|0,l=p+4|0,f=t+5|0,u=16848+((s=0|n[I>>2])<<2)|0,c=16928+(s<<2)|0,h=v+8|0,g=y+8|0,d=E+8|0,w=x+4|0,F=t;A:for(;;){P=M+((0|F)%5<<4)|0,n[x>>2]=n[P>>2],n[x+4>>2]=n[P+4>>2],n[x+8>>2]=n[P+8>>2],n[x+12>>2]=n[P+12>>2];do{}while(2==(0|yA(x,s,0,1)));if((0|F)>(0|t)&!!(0|YA(e))){if(n[p>>2]=n[x>>2],n[p+4>>2]=n[x+4>>2],n[p+8>>2]=n[x+8>>2],n[p+12>>2]=n[x+12>>2],J(a,b),r=0|n[p>>2],I=0|n[17008+(80*r|0)+(n[Q>>2]<<2)>>2],n[p>>2]=n[18608+(80*r|0)+(20*I|0)>>2],(0|(P=0|n[18608+(80*r|0)+(20*I|0)+16>>2]))>0){A=0;do{oA(l),A=A+1|0}while((0|A)<(0|P))}switch(P=18608+(80*r|0)+(20*I|0)+4|0,n[B>>2]=n[P>>2],n[B+4>>2]=n[P+4>>2],n[B+8>>2]=n[P+8>>2],$(B,3*(0|n[u>>2])|0),K(l,B,l),Z(l),J(l,m),T=+(0|n[c>>2]),i[v>>3]=3*T,i[h>>3]=0,G=-1.5*T,i[y>>3]=G,i[g>>3]=2.598076211353316*T,i[E>>3]=G,i[d>>3]=-2.598076211353316*T,0|n[17008+(80*(0|n[p>>2])|0)+(n[x>>2]<<2)>>2]){case 1:A=y,r=v;break;case 3:A=E,r=y;break;case 2:A=v,r=E;break;default:A=12;break A}oe(b,m,r,A,_),bA(_,0|n[p>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|F)<(0|f)&&(J(w,p),bA(p,0|n[x>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[Q>>2]=n[x>>2],n[Q+4>>2]=n[x+4>>2],n[Q+8>>2]=n[x+8>>2],n[Q+12>>2]=n[x+12>>2],(0|(F=F+1|0))>=(0|S)){A=3;break}}3!=(0|A)?12==(0|A)&&k(22474,22521,581,22531):C=D}}function vA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,s=0,a=0,l=0;r=C,C=C+128|0,o=r,a=20208,l=(s=i=r+64|0)+60|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));a=20272,l=(s=o)+60|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));i=(l=!(0|YA(0|n[e>>2])))?i:o,fA(o=A+4|0),uA(o),0|YA(0|n[e>>2])&&(nA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],K(o,i,e=t+4|0),Z(e),n[t+16>>2]=n[A>>2],K(o,i+12|0,e=t+20|0),Z(e),n[t+32>>2]=n[A>>2],K(o,i+24|0,e=t+36|0),Z(e),n[t+48>>2]=n[A>>2],K(o,i+36|0,e=t+52|0),Z(e),n[t+64>>2]=n[A>>2],K(o,i+48|0,t=t+68|0),Z(t),C=r}function yA(A,e,t,r){t|=0,r|=0;var i,o,s,a,l,f,u=0,c=0,h=0,g=0,d=0;if(f=C,C=C+32|0,l=f+12|0,o=f,d=(A|=0)+4|0,g=0|n[16928+((e|=0)<<2)>>2],g=(a=!!(0|r))?3*g|0:g,u=0|n[d>>2],i=0|n[(s=A+8|0)>>2],a){if((0|(u=i+u+(r=0|n[(c=A+12|0)>>2])|0))==(0|g))return C=f,0|(d=1);h=c}else u=i+u+(r=0|n[(h=A+12|0)>>2])|0;if((0|u)<=(0|g))return C=f,0|(d=0);do{if((0|r)>0){if(r=0|n[A>>2],(0|i)>0){c=18608+(80*r|0)+60|0,r=A;break}r=18608+(80*r|0)+40|0,t?(j(l,g,0,0),q(d,l,o),sA(o),K(o,l,d),c=r,r=A):(c=r,r=A)}else c=18608+(80*(0|n[A>>2])|0)+20|0,r=A}while(0);if(n[r>>2]=n[c>>2],(0|n[(u=c+16|0)>>2])>0){r=0;do{oA(d),r=r+1|0}while((0|r)<(0|n[u>>2]))}return A=c+4|0,n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],e=0|n[16848+(e<<2)>>2],$(l,a?3*e|0:e),K(d,l,d),Z(d),r=a&&((0|n[s>>2])+(0|n[d>>2])+(0|n[h>>2])|0)==(0|g)?1:2,C=f,0|(d=r)}function EA(A,e){A|=0,e|=0;var t=0;do{t=0|yA(A,e,0,1)}while(2==(0|t));return 0|t}function kA(A,e,t,r,o){A|=0,e|=0,t|=0,r|=0,o|=0;var s,a,l,f,u,c,h,g,d,w,p,b,B,m,v,y,E,_,M=0,Q=0,x=0,D=0,I=0;if(_=C,C=C+240|0,m=_+208|0,v=_,y=_+192|0,E=_+176|0,d=_+160|0,w=_+144|0,p=_+128|0,b=_+112|0,B=_+96|0,n[(M=_+224|0)>>2]=e,n[m>>2]=n[A>>2],n[m+4>>2]=n[A+4>>2],n[m+8>>2]=n[A+8>>2],n[m+12>>2]=n[A+12>>2],_A(m,M,v),n[o>>2]=0,(0|(g=r+t+(6==(0|r)&1)|0))<=(0|t))C=_;else{a=t+6|0,l=16928+((s=0|n[M>>2])<<2)|0,f=w+8|0,u=p+8|0,c=b+8|0,h=y+4|0,Q=0,x=t,r=-1;A:for(;;){if(A=v+((M=(0|x)%6|0)<<4)|0,n[y>>2]=n[A>>2],n[y+4>>2]=n[A+4>>2],n[y+8>>2]=n[A+8>>2],n[y+12>>2]=n[A+12>>2],A=Q,Q=0|yA(y,s,0,1),(0|x)>(0|t)&!!(0|YA(e))&&(1!=(0|A)&&(0|n[y>>2])!=(0|r))){switch(J(v+((M+5|0)%6<<4)+4|0,E),J(v+(M<<4)+4|0,d),D=+(0|n[l>>2]),i[w>>3]=3*D,i[f>>3]=0,I=-1.5*D,i[p>>3]=I,i[u>>3]=2.598076211353316*D,i[b>>3]=I,i[c>>3]=-2.598076211353316*D,M=0|n[m>>2],0|n[17008+(80*M|0)+(((0|r)==(0|M)?n[y>>2]:r)<<2)>>2]){case 1:A=p,r=w;break;case 3:A=b,r=p;break;case 2:A=w,r=b;break;default:A=8;break A}oe(E,d,r,A,B),0|se(E,B)||0|se(d,B)||(bA(B,0|n[m>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|x)<(0|a)&&(J(h,E),bA(E,0|n[y>>2],s,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(x=x+1|0))>=(0|g)){A=3;break}r=0|n[y>>2]}3!=(0|A)?8==(0|A)&&k(22557,22521,746,22602):C=_}}function _A(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,s=0,a=0,l=0;r=C,C=C+160|0,o=r,a=20336,l=(s=i=r+80|0)+72|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));a=20416,l=(s=o)+72|0;do{n[s>>2]=n[a>>2],s=s+4|0,a=a+4|0}while((0|s)<(0|l));i=(l=!(0|YA(0|n[e>>2])))?i:o,fA(o=A+4|0),uA(o),0|YA(0|n[e>>2])&&(nA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],K(o,i,e=t+4|0),Z(e),n[t+16>>2]=n[A>>2],K(o,i+12|0,e=t+20|0),Z(e),n[t+32>>2]=n[A>>2],K(o,i+24|0,e=t+36|0),Z(e),n[t+48>>2]=n[A>>2],K(o,i+36|0,e=t+52|0),Z(e),n[t+64>>2]=n[A>>2],K(o,i+48|0,e=t+68|0),Z(e),n[t+80>>2]=n[A>>2],K(o,i+60|0,t=t+84|0),Z(t),C=r}function MA(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function QA(A,e){return e|=0,+a(+(+i[(A|=0)>>3]-+i[e>>3]))<17453292519943298e-27?0|(e=+a(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function xA(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+c(.5*(r-t)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+u(+r)*+u(+t)*o),2*+p(+ +l(+o),+ +l(+(1-o)))*6371.007180918475}function DA(A,e,t){A|=0,t|=0;var r,n,o,s,a=0,f=0,g=0,d=0,b=0,B=0;return B=+i[(e|=0)>>3],o=+i[A>>3],b=+c(.5*(B-o)),g=+i[e+8>>3],n=+i[A+8>>3],d=+c(.5*(g-n)),r=+u(+o),s=+u(+B),d=2*+p(+ +l(+(d=b*b+d*(s*r*d))),+ +l(+(1-d))),b=+i[t>>3],B=+c(.5*(b-B)),a=+i[t+8>>3],g=+c(.5*(a-g)),f=+u(+b),g=2*+p(+ +l(+(g=B*B+g*(s*f*g))),+ +l(+(1-g))),b=+c(.5*(o-b)),a=+c(.5*(n-a)),a=2*+p(+ +l(+(a=b*b+a*(r*f*a))),+ +l(+(1-a))),4*+w(+ +l(+ +h(.5*(f=.5*(d+g+a)))*+h(.5*(f-d))*+h(.5*(f-g))*+h(.5*(f-a))))}function CA(A,e){return e=0|ke(0|(A|=0),0|(e|=0),45),E(),127&e}function IA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0;if(!(!0&134217728==(-16777216&(e|=0))))return 0|(e=0);if(o=0|ke(0|(A|=0),0|e,45),E(),(o&=127)>>>0>121)return 0|(e=0);t=0|ke(0|A,0|e,52),E(),t&=15;do{if(0|t){for(n=1,r=0;;){if(i=0|ke(0|A,0|e,3*(15-n|0)|0),E(),!!(0|(i&=7))&(1^r)){if(1==(0|i)&!!(0|G(o))){s=0,r=13;break}r=1}if(7==(0|i)){s=0,r=13;break}if(!(n>>>0<t>>>0)){r=9;break}n=n+1|0}if(9==(0|r)){if(15!=(0|t))break;return 0|(s=1)}if(13==(0|r))return 0|s}}while(0);for(;;){if(s=0|ke(0|A,0|e,3*(14-t|0)|0),E(),!(!0&!(7&~s))){s=0,r=13;break}if(!(t>>>0<14)){s=1,r=13;break}t=t+1|0}return 13==(0|r)?0|s:0}function PA(A,e,t){t|=0;var r=0,n=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|(r&=15))>=(0|t)){if((0|r)!=(0|t))if(t>>>0<=15){if(A|=n=0|_e(0|t,0,52),e=E()|-15728641&e,(0|r)>(0|t))do{n=0|_e(7,0,3*(14-t|0)|0),t=t+1|0,A|=n,e=0|E()|e}while((0|t)<(0|r))}else e=0,A=0}else e=0,A=0;return y(0|e),0|A}function FA(A,e,t,r){t|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0;if(a=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(a&=15))<=(0|t)){if((0|a)==(0|t))return n[(t=r)>>2]=A,void(n[t+4>>2]=e);if(i=(0|(f=0|ee(7,t-a|0)))/7|0,l=0|ke(0|A,0|e,45),E(),0|G(127&l)){A:do{if(a)for(s=1;;){if(o=0|ke(0|A,0|e,3*(15-s|0)|0),E(),0|(o&=7))break A;if(!(s>>>0<a>>>0)){o=0;break}s=s+1|0}else o=0}while(0);s=!(0|o)}else s=0;if(u=0|_e(a+1|0,0,52),o=E()|-15728641&e,FA(e=(u|A)&~(e=0|_e(7,0,0|(l=3*(14-a|0)|0))),a=o&~E(),t,r),o=r+(i<<3)|0,!s)return FA((u=0|_e(1,0,0|l))|e,0|E()|a,t,o),u=o+(i<<3)|0,FA((f=0|_e(2,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|_e(3,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|_e(4,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|_e(5,0,0|l))|e,0|E()|a,t,u),void FA((f=0|_e(6,0,0|l))|e,0|E()|a,t,u+(i<<3)|0);s=o+(i<<3)|0,(0|f)>6&&(De(0|o,0,(u=(s>>>0>(f=o+8|0)>>>0?s:f)+-1+(0-o)|0)+8&-8),o=f+(u>>>3<<3)|0),FA((u=0|_e(2,0,0|l))|e,0|E()|a,t,o),u=o+(i<<3)|0,FA((f=0|_e(3,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|_e(4,0,0|l))|e,0|E()|a,t,u),u=u+(i<<3)|0,FA((f=0|_e(5,0,0|l))|e,0|E()|a,t,u),FA((f=0|_e(6,0,0|l))|e,0|E()|a,t,u+(i<<3)|0)}}function SA(A,e){var t=0,r=0,n=0;if(n=0|ke(0|(A|=0),0|(e|=0),45),E(),!(0|G(127&n)))return 0|(n=0);n=0|ke(0|A,0|e,52),E(),n&=15;A:do{if(n)for(r=1;;){if(t=0|ke(0|A,0|e,3*(15-r|0)|0),E(),0|(t&=7))break A;if(!(r>>>0<n>>>0)){t=0;break}r=r+1|0}else t=0}while(0);return 0|(n=1&!(0|t))}function TA(A,e){var t=0,r=0,n=0;if(n=0|ke(0|(A|=0),0|(e|=0),52),E(),!(n&=15))return 0|(n=0);for(r=1;;){if(t=0|ke(0|A,0|e,3*(15-r|0)|0),E(),0|(t&=7)){r=5;break}if(!(r>>>0<n>>>0)){t=0,r=5;break}r=r+1|0}return 5==(0|r)?0|t:0}function GA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0,a=0;if(a=0|ke(0|(A|=0),0|(e|=0),52),E(),!(a&=15))return a=A,y(0|(s=e)),0|a;for(s=1,t=0;;){r=0|_e(7,0,0|(i=3*(15-s|0)|0)),n=0|E(),o=0|ke(0|A,0|e,0|i),E(),A=(i=0|_e(0|aA(7&o),0,0|i))|A&~r,e=(o=0|E())|e&~n;A:do{if(!t)if(!(i&r|0)&!(o&n|0))t=0;else if(r=0|ke(0|A,0|e,52),E(),r&=15){t=1;e:for(;;){switch(o=0|ke(0|A,0|e,3*(15-t|0)|0),E(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(n=0|ke(0|A,0|e,0|(o=3*(15-t|0)|0)),E(),i=0|_e(7,0,0|o),e&=~E(),A=A&~i|(o=0|_e(0|aA(7&n),0,0|o)),e=0|e|E(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(s>>>0<a>>>0))break;s=s+1|0}return y(0|e),0|A}function LA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),!(r&=15))return r=A,y(0|(t=e)),0|r;for(t=1;o=0|ke(0|A,0|e,0|(i=3*(15-t|0)|0)),E(),n=0|_e(7,0,0|i),e&=~E(),A=(i=0|_e(0|aA(7&o),0,0|i))|A&~n,e=0|E()|e,t>>>0<r>>>0;)t=t+1|0;return y(0|e),0|A}function RA(A,e){var t=0,r=0,n=0,i=0,o=0,s=0,a=0;if(a=0|ke(0|(A|=0),0|(e|=0),52),E(),!(a&=15))return a=A,y(0|(s=e)),0|a;for(s=1,t=0;;){r=0|_e(7,0,0|(i=3*(15-s|0)|0)),n=0|E(),o=0|ke(0|A,0|e,0|i),E(),A=(i=0|_e(0|lA(7&o),0,0|i))|A&~r,e=(o=0|E())|e&~n;A:do{if(!t)if(!(i&r|0)&!(o&n|0))t=0;else if(r=0|ke(0|A,0|e,52),E(),r&=15){t=1;e:for(;;){switch(o=0|ke(0|A,0|e,3*(15-t|0)|0),E(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|_e(7,0,0|(n=3*(15-t|0)|0)),o=e&~E(),e=0|ke(0|A,0|e,0|n),E(),A=A&~i|(e=0|_e(0|lA(7&e),0,0|n)),e=0|o|E(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(s>>>0<a>>>0))break;s=s+1|0}return y(0|e),0|A}function UA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),!(r&=15))return r=A,y(0|(t=e)),0|r;for(t=1;i=0|_e(7,0,0|(o=3*(15-t|0)|0)),n=e&~E(),e=0|ke(0|A,0|e,0|o),E(),A=(e=0|_e(0|lA(7&e),0,0|o))|A&~i,e=0|E()|n,t>>>0<r>>>0;)t=t+1|0;return y(0|e),0|A}function YA(A){return(0|(A|=0))%2|0}function OA(A,e){A|=0;var t,r;return r=C,C=C+16|0,t=r,(e|=0)>>>0<=15&&2146435072&~n[A+4>>2]&&2146435072&~n[A+8+4>>2]?(!function(A,e,t){var r,n;r=C,C=C+16|0,pA(A|=0,e|=0,t|=0,n=r),W(n,t+4|0),C=r}(A,e,t),e=0|function(A,e){A|=0;var t,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0;if(t=C,C=C+64|0,l=t+40|0,i=t+24|0,o=t+12|0,s=t,_e(0|(e|=0),0,52),r=134225919|E(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(l=0,y(0|(a=0)),C=t,0|l):(_e(0|R(A),0,45),a=0|E()|r,l=-1,y(0|a),C=t,0|l);if(n[l>>2]=n[A>>2],n[l+4>>2]=n[A+4>>2],n[l+8>>2]=n[A+8>>2],n[l+12>>2]=n[A+12>>2],a=l+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[a>>2],n[i+4>>2]=n[a+4>>2],n[i+8>>2]=n[a+8>>2],1&e?(eA(a),n[o>>2]=n[a>>2],n[o+4>>2]=n[a+4>>2],n[o+8>>2]=n[a+8>>2],rA(o)):(tA(a),n[o>>2]=n[a>>2],n[o+4>>2]=n[a+4>>2],n[o+8>>2]=n[a+8>>2],nA(o)),q(i,o,s),Z(s),f=0|_e(7,0,0|(u=3*(15-e|0)|0)),r&=~E(),A=(u=0|_e(0|AA(s),0,0|u))|A&~f,r=0|E()|r,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[a>>2])<=2&&(0|n[l+8>>2])<=2&&(0|n[l+12>>2])<=2){if(e=0|_e(0|(i=0|R(l)),0,45),e|=A,A=E()|-1040385&r,s=0|U(l),!(0|G(i))){if((0|s)<=0)break;for(o=0;;){if(i=0|ke(0|e,0|A,52),E(),i&=15)for(r=1;l=0|ke(0|e,0|A,0|(u=3*(15-r|0)|0)),E(),f=0|_e(7,0,0|u),A&=~E(),e=e&~f|(u=0|_e(0|aA(7&l),0,0|u)),A=0|A|E(),r>>>0<i>>>0;)r=r+1|0;if((0|(o=o+1|0))==(0|s))break A}}o=0|ke(0|e,0|A,52),E(),o&=15;e:do{if(o){r=1;t:for(;;){switch(u=0|ke(0|e,0|A,3*(15-r|0)|0),E(),7&u){case 1:break t;case 0:break;default:break e}if(!(r>>>0<o>>>0))break e;r=r+1|0}if(0|Y(i,0|n[l>>2]))for(r=1;f=0|_e(7,0,0|(l=3*(15-r|0)|0)),u=A&~E(),A=0|ke(0|e,0|A,0|l),E(),e=e&~f|(A=0|_e(0|lA(7&A),0,0|l)),A=0|u|E(),r>>>0<o>>>0;)r=r+1|0;else for(r=1;l=0|ke(0|e,0|A,0|(u=3*(15-r|0)|0)),E(),f=0|_e(7,0,0|u),A&=~E(),e=e&~f|(u=0|_e(0|aA(7&l),0,0|u)),A=0|A|E(),r>>>0<o>>>0;)r=r+1|0}}while(0);if((0|s)>0){r=0;do{e=0|GA(e,A),A=0|E(),r=r+1|0}while((0|r)!=(0|s))}}else e=0,A=0}while(0);return u=e,y(0|(f=A)),C=t,0|u}(t,e),A=0|E()):(A=0,e=0),y(0|A),C=r,0|e}function zA(A,e,t){var r,i=0,o=0,s=0;if(r=(t|=0)+4|0,o=0|ke(0|(A|=0),0|(e|=0),52),E(),o&=15,s=0|ke(0|A,0|e,45),E(),i=!(0|o),0|G(127&s)){if(i)return 0|(s=1);i=1}else{if(i)return 0|(s=0);i=0|n[r>>2]||0|n[t+8>>2]?1:1&!!(0|n[t+12>>2])}for(t=1;1&t?rA(r):nA(r),s=0|ke(0|A,0|e,3*(15-t|0)|0),E(),iA(r,7&s),t>>>0<o>>>0;)t=t+1|0;return 0|i}function HA(A,e,t){t|=0;var r,i,o=0,s=0,a=0,l=0,f=0,u=0;i=C,C=C+16|0,r=i,u=0|ke(0|(A|=0),0|(e|=0),45),E(),u&=127;A:do{if(0|G(u)&&(a=0|ke(0|A,0|e,52),E(),0|(a&=15))){o=1;e:for(;;){switch(f=0|ke(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<a>>>0)){o=e;break A}o=o+1|0}for(s=1,o=e;l=0|_e(7,0,0|(e=3*(15-s|0)|0)),f=o&~E(),o=0|ke(0|A,0|o,0|e),E(),A=A&~l|(o=0|_e(0|lA(7&o),0,0|e)),o=0|f|E(),s>>>0<a>>>0;)s=s+1|0}else o=e}while(0);if(f=7728+(28*u|0)|0,n[t>>2]=n[f>>2],n[t+4>>2]=n[f+4>>2],n[t+8>>2]=n[f+8>>2],n[t+12>>2]=n[f+12>>2],0|zA(A,o,t)){if(l=t+4|0,n[r>>2]=n[l>>2],n[r+4>>2]=n[l+4>>2],n[r+8>>2]=n[l+8>>2],a=0|ke(0|A,0|o,52),E(),f=15&a,1&a?(nA(l),a=f+1|0):a=f,0|G(u)){A:do{if(f)for(e=1;;){if(s=0|ke(0|A,0|o,3*(15-e|0)|0),E(),0|(s&=7)){o=s;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|yA(t,a,o,0)){if(0|G(u))do{}while(0|yA(t,a,0,0));(0|a)!=(0|f)&&tA(l)}else(0|a)!=(0|f)&&(n[l>>2]=n[r>>2],n[l+4>>2]=n[r+4>>2],n[l+8>>2]=n[r+8>>2]);C=i}else C=i}function NA(A,e,t){t|=0;var r,n;r=C,C=C+16|0,HA(A|=0,e|=0,n=r),e=0|ke(0|A,0|e,52),E(),BA(n,15&e,t),C=r}function VA(A,e,t){t|=0;var r,n,i=0,o=0;n=C,C=C+16|0,HA(A|=0,e|=0,r=n),i=0|ke(0|A,0|e,45),E(),i=!(0|G(127&i)),o=0|ke(0|A,0|e,52),E(),o&=15;A:do{if(!i){if(0|o)for(i=1;;){if(!(!((0|_e(7,0,3*(15-i|0)|0))&A|0)&!((0|E())&e)))break A;if(!(i>>>0<o>>>0))break;i=i+1|0}return mA(r,o,0,5,t),void(C=n)}}while(0);kA(r,o,0,6,t),C=n}function XA(A,e){e|=0;var t,r=0,i=0,o=0,s=0,a=0,l=0;if(_e(0|(A|=0),0,52),t=134225919|E(),(0|A)<1){i=0,r=0;do{0|G(i)&&(_e(0|i,0,45),a=0|t|E(),n[(A=e+(r<<3)|0)>>2]=-1,n[A+4>>2]=a,r=r+1|0),i=i+1|0}while(122!=(0|i))}else{a=0,r=0;do{if(0|G(a)){for(_e(0|a,0,45),i=1,o=-1,s=0|t|E();o&=~(l=0|_e(7,0,3*(15-i|0)|0)),s&=~E(),(0|i)!=(0|A);)i=i+1|0;n[(l=e+(r<<3)|0)>>2]=o,n[l+4>>2]=s,r=r+1|0}a=a+1|0}while(122!=(0|a))}}function jA(A,e,t,r){var i,o=0,s=0,a=0,l=0,f=0;if(i=C,C=C+64|0,a=i,(0|(A|=0))==(0|(t|=0))&(0|(e|=0))==(0|(r|=0))|!1|134217728!=(2013265920&e)|!1|134217728!=(2013265920&r))return C=i,0|(a=0);if(o=0|ke(0|A,0|e,52),E(),o&=15,s=0|ke(0|t,0|r,52),E(),(0|o)!=(15&s))return C=i,0|(a=0);if(s=o+-1|0,o>>>0>1&&(f=0|PA(A,e,s),l=0|E(),(0|f)==(0|(s=0|PA(t,r,s)))&(0|l)==(0|E()))){if(o=0|ke(0|A,0|e,0|(s=3*(15^o)|0)),E(),o&=7,s=0|ke(0|t,0|r,0|s),E(),!(0|o)|!(0|(s&=7)))return C=i,0|(f=1);if((0|n[21136+(o<<2)>>2])==(0|s))return C=i,0|(f=1);if((0|n[21168+(o<<2)>>2])==(0|s))return C=i,0|(f=1)}s=(o=a)+56|0;do{n[o>>2]=0,o=o+4|0}while((0|o)<(0|s));return I(A,e,1,a),o=(0|n[(f=a)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+8|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+16|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+24|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+32|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)||(0|n[(f=a+40|0)>>2])==(0|t)&&(0|n[f+4>>2])==(0|r)?1:1&((0|n[(o=a+48|0)>>2])==(0|t)?(0|n[o+4>>2])==(0|r):0),C=i,0|(f=o)}function WA(A,e,t){t|=0;var r,i,o,s,a=0;if(o=C,C=C+16|0,i=o,a=0|ke(0|(A|=0),0|(e|=0),56),E(),e=0|function(A,e,t){A|=0,e|=0,t|=0;var r=0,i=0;if(r=0|SA(A,e),(t+-1|0)>>>0>5)return 0|(t=-1);if(i=!!(0|r),1==(0|t)&i)return 0|(t=-1);return r=0|function(A,e){A|=0,e|=0;var t=0,r=0,i=0,o=0,s=0,a=0,l=0,f=0;if(f=C,C=C+32|0,i=f+16|0,o=f,HA(A,e,i),s=0|CA(A,e),l=0|TA(A,e),function(A,e){A=7728+(28*(A|=0)|0)|0,n[(e|=0)>>2]=n[A>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(s,o),e=0|function(A,e){A|=0;var t=0,r=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11152+(216*e|0)>>2])!=(0|A))if((0|n[11152+(216*e|0)+8>>2])!=(0|A))if((0|n[11152+(216*e|0)+16>>2])!=(0|A))if((0|n[11152+(216*e|0)+24>>2])!=(0|A))if((0|n[11152+(216*e|0)+32>>2])!=(0|A))if((0|n[11152+(216*e|0)+40>>2])!=(0|A))if((0|n[11152+(216*e|0)+48>>2])!=(0|A))if((0|n[11152+(216*e|0)+56>>2])!=(0|A))if((0|n[11152+(216*e|0)+64>>2])!=(0|A))if((0|n[11152+(216*e|0)+72>>2])!=(0|A))if((0|n[11152+(216*e|0)+80>>2])!=(0|A))if((0|n[11152+(216*e|0)+88>>2])!=(0|A))if((0|n[11152+(216*e|0)+96>>2])!=(0|A))if((0|n[11152+(216*e|0)+104>>2])!=(0|A))if((0|n[11152+(216*e|0)+112>>2])!=(0|A))if((0|n[11152+(216*e|0)+120>>2])!=(0|A))if((0|n[11152+(216*e|0)+128>>2])!=(0|A)){if((0|n[11152+(216*e|0)+136>>2])!=(0|A)){if((0|n[11152+(216*e|0)+144>>2])==(0|A)){A=0,t=2,r=0;break}if((0|n[11152+(216*e|0)+152>>2])==(0|A)){A=0,t=2,r=1;break}if((0|n[11152+(216*e|0)+160>>2])==(0|A)){A=0,t=2,r=2;break}if((0|n[11152+(216*e|0)+168>>2])==(0|A)){A=1,t=2,r=0;break}if((0|n[11152+(216*e|0)+176>>2])==(0|A)){A=1,t=2,r=1;break}if((0|n[11152+(216*e|0)+184>>2])==(0|A)){A=1,t=2,r=2;break}if((0|n[11152+(216*e|0)+192>>2])==(0|A)){A=2,t=2,r=0;break}if((0|n[11152+(216*e|0)+200>>2])==(0|A)){A=2,t=2,r=1;break}if((0|n[11152+(216*e|0)+208>>2])==(0|A)){A=2,t=2,r=2;break}return-1}A=2,t=1,r=2}else A=2,t=1,r=1;else A=2,t=1,r=0;else A=1,t=1,r=2;else A=1,t=1,r=1;else A=1,t=1,r=0;else A=0,t=1,r=2;else A=0,t=1,r=1;else A=0,t=1,r=0;else A=2,t=0,r=2;else A=2,t=0,r=1;else A=2,t=0,r=0;else A=1,t=0,r=2;else A=1,t=0,r=1;else A=1,t=0,r=0;else A=0,t=0,r=2;else A=0,t=0,r=1;else A=0,t=0,r=0}while(0);return 0|n[11152+(216*e|0)+(72*t|0)+(24*A|0)+(r<<3)+4>>2]}(s,0|n[i>>2]),!(0|G(s)))return C=f,0|(l=e);switch(0|s){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:a=0,r=0}14==(0|t)&&(a=0|n[22096+(24*A|0)+8>>2],r=0|n[22096+(24*A|0)+16>>2]);A=0|n[i>>2],(0|A)!=(0|n[o>>2])&&(s=0|L(s))|(0|(A=0|n[i>>2]))==(0|r)&&(e=(e+1|0)%6|0);if(3==(0|l)&(0|A)==(0|r))return C=f,0|(l=(e+5|0)%6|0);if(!(5==(0|l)&(0|A)==(0|a)))return C=f,0|(l=e);return l=(e+1|0)%6|0,C=f,0|l}(A,e),i?0|(t=(5-r+(0|n[22384+(t<<2)>>2])|0)%5|0):0|(t=(6-r+(0|n[22416+(t<<2)>>2])|0)%6|0)}(r=(s=!0&268435456==(2013265920&e))?A:0,A=s?-2130706433&e|134217728:0,7&a),-1==(0|e))return n[t>>2]=0,void(C=o);HA(r,A,i),a=0|ke(0|r,0|A,52),E(),a&=15,0|SA(r,A)?mA(i,a,e,2,t):kA(i,a,e,2,t),C=o}function ZA(A){A|=0;var e,t,r=0;return(e=0|Be(1,12))||k(22691,22646,49,22704),0|(r=0|n[(t=A+4|0)>>2])?(n[(r=r+8|0)>>2]=e,n[t>>2]=e,0|e):(0|n[A>>2]&&k(22721,22646,61,22744),n[(r=A)>>2]=e,n[t>>2]=e,0|e)}function JA(A,e){A|=0,e|=0;var t,r;return(r=0|pe(24))||k(22758,22646,78,22772),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[r+16>>2]=0,0|(t=0|n[(e=A+4|0)>>2])?(n[t+16>>2]=r,n[e>>2]=r,0|r):(0|n[A>>2]&&k(22787,22646,82,22772),n[A>>2]=r,n[e>>2]=r,0|r)}function KA(A){var e,t,r=0,o=0,s=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,E=0,_=0,M=0,Q=0,x=0,D=0,C=0,I=0,P=0,F=0,S=0,T=0,G=0;if(0|n[(l=(A|=0)+8|0)>>2])return 0|(G=1);if(!(s=0|n[A>>2]))return 0|(G=0);r=s,o=0;do{o=o+1|0,r=0|n[r+8>>2]}while(0|r);if(o>>>0<2)return 0|(G=0);(t=0|pe(o<<2))||k(22807,22646,317,22826),(e=0|pe(o<<5))||k(22848,22646,321,22826),n[A>>2]=0,n[(x=A+4|0)>>2]=0,n[l>>2]=0,o=0,S=0,Q=0,w=0;A:for(;;){if(d=0|n[s>>2]){f=0,u=d;do{if(h=+i[u+8>>3],r=u,u=0|n[u+16>>2],c=+i[(l=(g=!(0|u))?d:u)+8>>3],+a(+(h-c))>3.141592653589793){G=14;break}f+=(c-h)*(+i[r>>3]+ +i[l>>3])}while(!g);if(14==(0|G)){G=0,f=0,r=d;do{M=+i[r+8>>3],P=0|n[(F=r+16|0)>>2],_=+i[(P=0|P?P:d)+8>>3],f+=(+i[r>>3]+ +i[P>>3])*((_<0?_+6.283185307179586:_)-(M<0?M+6.283185307179586:M)),r=0|n[(0|r?F:s)>>2]}while(0|r)}f>0?(n[t+(S<<2)>>2]=s,S=S+1|0,l=Q,r=w):G=19}else G=19;if(19==(0|G)){G=0;do{if(!o){if(w){l=x,u=w+8|0,r=s,o=A;break}if(0|n[A>>2]){G=27;break A}l=x,u=A,r=s,o=A;break}if(0|n[(r=o+8|0)>>2]){G=21;break A}if(!(o=0|Be(1,12))){G=23;break A}n[r>>2]=o,l=o+4|0,u=o,r=w}while(0);if(n[u>>2]=s,n[l>>2]=s,u=e+(Q<<5)|0,g=0|n[s>>2]){for(i[(d=e+(Q<<5)+8|0)>>3]=17976931348623157e292,i[(w=e+(Q<<5)+24|0)>>3]=17976931348623157e292,i[u>>3]=-17976931348623157e292,i[(p=e+(Q<<5)+16|0)>>3]=-17976931348623157e292,y=17976931348623157e292,E=-17976931348623157e292,l=0,b=g,h=17976931348623157e292,m=17976931348623157e292,v=-17976931348623157e292,c=-17976931348623157e292;f=+i[b>>3],M=+i[b+8>>3],b=0|n[b+16>>2],_=+i[((B=!(0|b))?g:b)+8>>3],f<h&&(i[d>>3]=f,h=f),M<m&&(i[w>>3]=M,m=M),f>v?i[u>>3]=f:f=v,M>c&&(i[p>>3]=M,c=M),y=M>0&M<y?M:y,E=M<0&M>E?M:E,l|=+a(+(M-_))>3.141592653589793,!B;)v=f;l&&(i[p>>3]=E,i[w>>3]=y)}else n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,n[u+12>>2]=0,n[u+16>>2]=0,n[u+20>>2]=0,n[u+24>>2]=0,n[u+28>>2]=0;l=Q+1|0}if(s=0|n[(F=s+8|0)>>2],n[F>>2]=0,!s){G=45;break}Q=l,w=r}if(21==(0|G))k(22624,22646,35,22658);else if(23==(0|G))k(22678,22646,37,22658);else if(27==(0|G))k(22721,22646,61,22744);else if(45==(0|G)){A:do{if((0|S)>0){for(F=!(0|l),I=l<<2,P=!(0|A),C=0,r=0;;){if(D=0|n[t+(C<<2)>>2],F)G=73;else{if(!(Q=0|pe(I))){G=50;break}if(!(x=0|pe(I))){G=52;break}e:do{if(P)o=0;else{for(l=0,o=0,u=A;s=e+(l<<5)|0,0|qA(0|n[u>>2],s,0|n[D>>2])?(n[Q+(o<<2)>>2]=u,n[x+(o<<2)>>2]=s,B=o+1|0):B=o,u=0|n[u+8>>2];)l=l+1|0,o=B;if((0|B)>0)if(s=0|n[Q>>2],1==(0|B))o=s;else for(p=0,b=-1,o=s,w=s;;){for(g=0|n[w>>2],s=0,u=0;d=(0|(l=0|n[n[Q+(u<<2)>>2]>>2]))==(0|g)?s:s+(1&qA(l,0|n[x+(u<<2)>>2],0|n[g>>2]))|0,(0|(u=u+1|0))!=(0|B);)s=d;if(o=(l=(0|d)>(0|b))?w:o,(0|(s=p+1|0))==(0|B))break e;p=s,b=l?d:b,w=0|n[Q+(s<<2)>>2]}else o=0}}while(0);if(be(Q),be(x),o){if(s=0|n[(l=o+4|0)>>2])o=s+8|0;else if(0|n[o>>2]){G=70;break}n[o>>2]=D,n[l>>2]=D}else G=73}if(73==(0|G)){if(G=0,0|(r=0|n[D>>2]))do{x=r,r=0|n[r+16>>2],be(x)}while(0|r);be(D),r=2}if((0|(C=C+1|0))>=(0|S)){T=r;break A}}50==(0|G)?k(22863,22646,249,22882):52==(0|G)?k(22901,22646,252,22882):70==(0|G)&&k(22721,22646,61,22744)}else T=0}while(0);return be(t),be(e),0|(G=T)}return 0}function qA(A,e,t){A|=0;var r,o=0,s=0,a=0,l=0,f=0,u=0,c=0;if(!(0|N(e|=0,t|=0)))return 0|(A=0);if(e=0|H(e),r=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0|(A=0);if(e){e=0,t=A;A:for(;;){for(;l=+i[t>>3],u=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],a=+i[(c=0|c?c:A)>>3],s=+i[c+8>>3],l>a?(f=l,l=u):(f=a,a=l,l=s,s=u),r<a|r>f;)if(!(t=0|n[t>>2])){t=22;break A}if(o=(l=l<0?l+6.283185307179586:l)==o|(u=s<0?s+6.283185307179586:s)==o?o+-2220446049250313e-31:o,((u+=(r-a)/(f-a)*(l-u))<0?u+6.283185307179586:u)>o&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,t=A;A:for(;;){for(;l=+i[t>>3],u=+i[t+8>>3],c=0|n[(t=t+16|0)>>2],a=+i[(c=0|c?c:A)>>3],s=+i[c+8>>3],l>a?(f=l,l=u):(f=a,a=l,l=s,s=u),r<a|r>f;)if(!(t=0|n[t>>2])){t=22;break A}if(s+(r-a)/(f-a)*(l-s)>(o=l==o|s==o?o+-2220446049250313e-31:o)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}return 0}function $A(A,e,t,i,o){t|=0,i|=0,o|=0;var s,a,l,f,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0;if(f=C,C=C+32|0,m=f+16|0,l=f,u=0|ke(0|(A|=0),0|(e|=0),52),E(),u&=15,p=0|ke(0|t,0|i,52),E(),(0|u)!=(15&p))return C=f,0|(m=1);if(d=0|ke(0|A,0|e,45),E(),d&=127,w=0|ke(0|t,0|i,45),E(),p=(0|d)!=(0|(w&=127))){if(7==(0|(h=0|z(d,w))))return C=f,0|(m=2);7==(0|(g=0|z(w,d)))?k(22925,22949,151,22959):(b=h,c=g)}else b=0,c=0;s=0|G(d),a=0|G(w),n[m>>2]=0,n[m+4>>2]=0,n[m+8>>2]=0,n[m+12>>2]=0;do{if(b){if(h=(0|(w=0|n[4304+(28*d|0)+(b<<2)>>2]))>0,a)if(h){d=0,g=t,h=i;do{g=0|RA(g,h),h=0|E(),1==(0|(c=0|lA(c)))&&(c=0|lA(1)),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=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|lA(c),d=d+1|0}while((0|d)!=(0|w));w=c,d=g,g=h}else w=c,d=t,g=i;if(zA(d,g,m),p||k(22972,22949,181,22959),(h=!!(0|s))&(c=!!(0|a))&&k(22999,22949,182,22959),h){if(c=0|TA(A,e),0|r[22032+(7*c|0)+b|0]){u=3;break}d=g=0|n[21200+(28*c|0)+(b<<2)>>2],B=26}else if(c){if(c=0|TA(d,g),0|r[22032+(7*c|0)+w|0]){u=4;break}d=0,g=0|n[21200+(28*w|0)+(c<<2)>>2],B=26}else c=0;if(26==(0|B))if((0|g)<=-1&&k(23030,22949,212,22959),(0|d)<=-1&&k(23053,22949,213,22959),(0|g)>0){h=m+4|0,c=0;do{sA(h),c=c+1|0}while((0|c)!=(0|g));c=d}else c=d;if(n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,iA(l,b),0|u)for(;0|YA(u)?rA(l):nA(l),(0|u)>1;)u=u+-1|0;if((0|c)>0){u=0;do{sA(l),u=u+1|0}while((0|u)!=(0|c))}K(B=m+4|0,l,B),Z(B),B=50}else if(zA(t,i,m),!!(0|s)&!!(0|a))if((0|w)!=(0|d)&&k(23077,22949,243,22959),c=0|TA(A,e),u=0|TA(t,i),0|r[22032+(7*c|0)+u|0])u=5;else if((0|(c=0|n[21200+(28*c|0)+(u<<2)>>2]))>0){h=m+4|0,u=0;do{sA(h),u=u+1|0}while((0|u)!=(0|c));B=50}else B=50;else B=50}while(0);return 50==(0|B)&&(u=m+4|0,n[o>>2]=n[u>>2],n[o+4>>2]=n[u+4>>2],n[o+8>>2]=n[u+8>>2],u=0),C=f,0|(m=u)}function Ae(A,e,t,r){t|=0,r|=0;var i,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0;if(o=C,C=C+48|0,l=o+36|0,f=o+24|0,u=o+12|0,c=o,a=0|ke(0|(A|=0),0|(e|=0),52),E(),a&=15,g=0|ke(0|A,0|e,45),E(),i=0|G(g&=127),_e(0|a,0,52),p=134225919|E(),n[(w=r)>>2]=-1,n[w+4>>2]=p,!a)return(0|n[t>>2])>1||(0|n[t+4>>2])>1||(0|n[t+8>>2])>1||127==(0|(s=0|O(g,0|AA(t))))?(C=o,0|(p=1)):(d=0|_e(0|s,0,45),w=0|E(),w=-1040385&n[(g=r)+4>>2]|w,n[(p=r)>>2]=n[g>>2]|d,n[p+4>>2]=w,C=o,0|(p=0));for(n[l>>2]=n[t>>2],n[l+4>>2]=n[t+4>>2],n[l+8>>2]=n[t+8>>2];n[f>>2]=n[l>>2],n[f+4>>2]=n[l+4>>2],n[f+8>>2]=n[l+8>>2],0|YA(a)?(eA(l),n[u>>2]=n[l>>2],n[u+4>>2]=n[l+4>>2],n[u+8>>2]=n[l+8>>2],rA(u)):(tA(l),n[u>>2]=n[l>>2],n[u+4>>2]=n[l+4>>2],n[u+8>>2]=n[l+8>>2],nA(u)),q(f,u,c),Z(c),b=0|n[(w=r)>>2],w=0|n[w+4>>2],t=0|_e(7,0,0|(B=3*(15-a|0)|0)),w&=~E(),B=0|_e(0|AA(c),0,0|B),w=0|E()|w,n[(p=r)>>2]=B|b&~t,n[p+4>>2]=w,(0|a)>1;)a=a+-1|0;A:do{if((0|n[l>>2])<=1&&(0|n[l+4>>2])<=1&&(0|n[l+8>>2])<=1){c=127==(0|(f=0|O(g,a=0|AA(l))))?0:0|G(f);e:do{if(a){if(i){if(l=21408+(28*(0|TA(A,e))|0)+(a<<2)|0,(0|(l=0|n[l>>2]))>0){t=0;do{a=0|aA(a),t=t+1|0}while((0|t)!=(0|l))}if(1==(0|a)){s=3;break A}127==(0|(t=0|O(g,a)))&&k(23104,22949,376,23134),0|G(t)?k(23147,22949,377,23134):(d=l,h=a,s=t)}else d=0,h=a,s=f;if((0|(u=0|n[4304+(28*g|0)+(h<<2)>>2]))<=-1&&k(23178,22949,384,23134),!c){if((0|d)<=-1&&k(23030,22949,417,23134),0|d){a=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];do{t=0|LA(t,l),l=0|E(),n[(B=r)>>2]=t,n[B+4>>2]=l,a=a+1|0}while((0|a)<(0|d))}if((0|u)<=0){a=54;break}for(a=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];;)if(t=0|LA(t,l),l=0|E(),n[(B=r)>>2]=t,n[B+4>>2]=l,(0|(a=a+1|0))==(0|u)){a=54;break e}}if(7==(0|(f=0|z(s,g)))&&k(22925,22949,393,23134),t=0|n[(a=r)>>2],a=0|n[a+4>>2],(0|u)>0){l=0;do{t=0|LA(t,a),a=0|E(),n[(B=r)>>2]=t,n[B+4>>2]=a,l=l+1|0}while((0|l)!=(0|u))}if(t=0|TA(t,a),B=0|L(s),(0|(t=0|n[(B?21824:21616)+(28*f|0)+(t<<2)>>2]))<=-1&&k(23030,22949,412,23134),t){a=0,l=0|n[(f=r)>>2],f=0|n[f+4>>2];do{l=0|GA(l,f),f=0|E(),n[(B=r)>>2]=l,n[B+4>>2]=f,a=a+1|0}while((0|a)<(0|t));a=54}else a=54}else if(!!(0|i)&!!(0|c))if(a=21408+(28*(B=0|TA(A,e))|0)+(TA(0|n[(a=r)>>2],0|n[a+4>>2])<<2)|0,(0|(a=0|n[a>>2]))<=-1&&k(23201,22949,433,23134),a){s=0,t=0|n[(l=r)>>2],l=0|n[l+4>>2];do{t=0|LA(t,l),l=0|E(),n[(B=r)>>2]=t,n[B+4>>2]=l,s=s+1|0}while((0|s)<(0|a));s=f,a=54}else s=f,a=55;else s=f,a=54}while(0);if(54==(0|a)&&c&&(a=55),55==(0|a)&&1==(0|TA(0|n[(B=r)>>2],0|n[B+4>>2]))){s=4;break}p=0|n[(B=r)>>2],B=-1040385&n[B+4>>2],b=0|_e(0|s,0,45),B=0|B|E(),n[(s=r)>>2]=p|b,n[s+4>>2]=B,s=0}else s=2}while(0);return C=o,0|(B=s)}function ee(A,e){var t=0;if(!(e|=0))return 0|(t=1);t=A|=0,A=1;do{A=0|B(1&e?t:1,A),e>>=1,t=0|B(t,t)}while(0|e);return 0|A}function te(A,e,t){A|=0;var r,o,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0;if(!(0|N(e|=0,t|=0)))return 0|(g=0);if(e=0|H(e),o=+i[t>>3],s=e&(s=+i[t+8>>3])<0?s+6.283185307179586:s,(0|(g=0|n[A>>2]))<=0)return 0|(g=0);if(r=0|n[A+4>>2],e){e=0,t=-1,A=0;A:for(;;){for(h=A;f=+i[r+(h<<4)>>3],c=+i[r+(h<<4)+8>>3],l=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],a=+i[r+(A<<4)+8>>3],f>l?(u=f,f=c):(u=l,l=f,f=a,a=c),o<l|o>u;){if(!((0|(t=h+1|0))<(0|g))){t=22;break A}A=h,h=t,t=A}if(s=(f=f<0?f+6.283185307179586:f)==s|(c=a<0?a+6.283185307179586:a)==s?s+-2220446049250313e-31:s,((c+=(o-l)/(u-l)*(f-c))<0?c+6.283185307179586:c)>s&&(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[r+(h<<4)>>3],c=+i[r+(h<<4)+8>>3],l=+i[r+((A=(t+2|0)%(0|g)|0)<<4)>>3],a=+i[r+(A<<4)+8>>3],f>l?(u=f,f=c):(u=l,l=f,f=a,a=c),o<l|o>u;){if(!((0|(t=h+1|0))<(0|g))){t=22;break A}A=h,h=t,t=A}if(a+(o-l)/(u-l)*(f-a)>(s=f==s|a==s?s+-2220446049250313e-31:s)&&(e^=1),(0|(A=h+1|0))>=(0|g)){t=22;break}t=h}if(22==(0|t))return 0|e}return 0}function re(A,e){e|=0;var t,r,o,s,l,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0;if(!(r=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(s=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(l=e+16|0)>>3]=-17976931348623157e292,!((0|r)<=0)){for(t=0|n[A+4>>2],p=17976931348623157e292,b=-17976931348623157e292,B=0,A=-1,h=17976931348623157e292,g=17976931348623157e292,w=-17976931348623157e292,u=-17976931348623157e292,m=0;f=+i[t+(m<<4)>>3],d=+i[t+(m<<4)+8>>3],c=+i[t+(((0|(A=A+2|0))==(0|r)?0:A)<<4)+8>>3],f<h&&(i[o>>3]=f,h=f),d<g&&(i[s>>3]=d,g=d),f>w?i[e>>3]=f:f=w,d>u&&(i[l>>3]=d,u=d),p=d>0&d<p?d:p,b=d<0&d>b?d:b,B|=+a(+(d-c))>3.141592653589793,(0|(A=m+1|0))!=(0|r);)v=m,w=f,m=A,A=v;B&&(i[l>>3]=b,i[s>>3]=p)}}function ne(A,e){e|=0;var t,r=0,o=0,s=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,E=0,k=0,_=0,M=0;if(b=0|n[(A|=0)>>2]){if(i[(B=e+8|0)>>3]=17976931348623157e292,i[(m=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(v=e+16|0)>>3]=-17976931348623157e292,(0|b)>0){for(s=0|n[A+4>>2],w=17976931348623157e292,p=-17976931348623157e292,o=0,r=-1,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,f=-17976931348623157e292,y=0;l=+i[s+(y<<4)>>3],g=+i[s+(y<<4)+8>>3],u=+i[s+(((0|(_=r+2|0))==(0|b)?0:_)<<4)+8>>3],l<c&&(i[B>>3]=l,c=l),g<h&&(i[m>>3]=g,h=g),l>d?i[e>>3]=l:l=d,g>f&&(i[v>>3]=g,f=g),w=g>0&g<w?g:w,p=g<0&g>p?g:p,o|=+a(+(g-u))>3.141592653589793,(0|(r=y+1|0))!=(0|b);)_=y,d=l,y=r,r=_;o&&(i[v>>3]=p,i[m>>3]=w)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(r=0|n[(_=A+8|0)>>2]))<=0)){t=A+12|0,k=0;do{if(s=0|n[t>>2],o=k,m=e+((k=k+1|0)<<5)|0,v=0|n[s+(o<<3)>>2]){if(i[(y=e+(k<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(k<<5)+24|0)>>3]=17976931348623157e292,i[m>>3]=-17976931348623157e292,i[(E=e+(k<<5)+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(b=0|n[s+(o<<3)+4>>2],w=17976931348623157e292,p=-17976931348623157e292,s=0,o=-1,B=0,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,f=-17976931348623157e292;l=+i[b+(B<<4)>>3],d=+i[b+(B<<4)+8>>3],u=+i[b+(((0|(o=o+2|0))==(0|v)?0:o)<<4)+8>>3],l<c&&(i[y>>3]=l,c=l),d<h&&(i[A>>3]=d,h=d),l>g?i[m>>3]=l:l=g,d>f&&(i[E>>3]=d,f=d),w=d>0&d<w?d:w,p=d<0&d>p?d:p,s|=+a(+(d-u))>3.141592653589793,(0|(o=B+1|0))!=(0|v);)M=B,B=o,g=l,o=M;s&&(i[E>>3]=p,i[A>>3]=w)}}else n[m>>2]=0,n[m+4>>2]=0,n[m+8>>2]=0,n[m+12>>2]=0,n[m+16>>2]=0,n[m+20>>2]=0,n[m+24>>2]=0,n[m+28>>2]=0,r=0|n[_>>2]}while((0|k)<(0|r))}}function ie(A,e,t){var r=0,i=0,o=0;if(!(0|te(A|=0,e|=0,t|=0)))return 0|(i=0);if((0|n[(i=A+8|0)>>2])<=0)return 0|(i=1);for(r=A+12|0,A=0;;){if(o=A,A=A+1|0,0|te((0|n[r>>2])+(o<<3)|0,e+(A<<5)|0,t)){A=0,r=6;break}if((0|A)>=(0|n[i>>2])){A=1,r=6;break}}return 6==(0|r)?0|A:0}function oe(A,e,t,r,n){e|=0,t|=0,r|=0,n|=0;var o,s,a,l,f,u,c,h=0;l=+i[(A|=0)>>3],a=+i[e>>3]-l,s=+i[A+8>>3],o=+i[e+8>>3]-s,u=+i[t>>3],h=((h=+i[r>>3]-u)*(s-(c=+i[t+8>>3]))-(l-u)*(f=+i[r+8>>3]-c))/(a*f-o*h),i[n>>3]=l+a*h,i[n+8>>3]=s+o*h}function se(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 ae(A,e){e|=0;var t,r,n;return+((n=+i[(A|=0)>>3]-+i[e>>3])*n+(r=+i[A+8>>3]-+i[e+8>>3])*r+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function le(A,e,t){A|=0,t|=0;var r=0;(0|(e|=0))>0?(r=0|Be(e,4),n[A>>2]=r,r||k(23230,23253,40,23267)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=t}function fe(A){var e,t,r,o=0,s=0,l=0,u=0;e=(A|=0)+4|0,t=A+12|0,r=A+8|0;A:for(;;){for(s=0|n[e>>2],o=0;;){if((0|o)>=(0|s))break A;if(l=0|n[A>>2],u=0|n[l+(o<<2)>>2])break;o=o+1|0}o=l+(~~(+a(+ +f(10,+ +(15-(0|n[t>>2])|0))*(+i[u>>3]+ +i[u+8>>3]))%+(0|s))>>>0<<2)|0,s=0|n[o>>2];e:do{if(0|s){if(l=u+32|0,(0|s)==(0|u))n[o>>2]=n[l>>2];else{if(!(o=0|n[(s=s+32|0)>>2]))break;for(;(0|o)!=(0|u);)if(!(o=0|n[(s=o+32|0)>>2]))break e;n[s>>2]=n[l>>2]}be(u),n[r>>2]=(0|n[r>>2])-1}}while(0)}be(0|n[A>>2])}function ue(A){var e,t=0,r=0;for(e=0|n[(A|=0)+4>>2],r=0;;){if((0|r)>=(0|e)){t=0,r=4;break}if(t=0|n[(0|n[A>>2])+(r<<2)>>2]){r=4;break}r=r+1|0}return 4==(0|r)?0|t:0}function ce(A,e){e|=0;var t=0,r=0,o=0,s=0;if(t=~~(+a(+ +f(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,t=(0|n[A>>2])+(t<<2)|0,!(r=0|n[t>>2]))return 0|(s=1);s=e+32|0;do{if((0|r)!=(0|e)){if(!(t=0|n[r+32>>2]))return 0|(s=1);for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|n[o+32>>2])){t=1,o=10;break}r=o,o=t}if(8==(0|o)){n[r+32>>2]=n[s>>2];break}if(10==(0|o))return 0|t}else n[t>>2]=n[s>>2]}while(0);return be(e),n[(s=A+8|0)>>2]=(0|n[s>>2])-1,0|(s=0)}function he(A,e,t){A|=0,e|=0,t|=0;var r,o=0,s=0,l=0;(r=0|pe(40))||k(23283,23253,98,23296),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[(s=r+16|0)>>2]=n[t>>2],n[s+4>>2]=n[t+4>>2],n[s+8>>2]=n[t+8>>2],n[s+12>>2]=n[t+12>>2],n[r+32>>2]=0,s=~~(+a(+ +f(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,s=(0|n[A>>2])+(s<<2)|0,o=0|n[s>>2];do{if(o){for(;!(0|QA(o,e)&&0|QA(o+16|0,t));)if(s=0|n[o+32>>2],!(0|n[(o=0|s?s:o)+32>>2])){l=10;break}if(10==(0|l)){n[o+32>>2]=r;break}return be(r),0|(l=o)}n[s>>2]=r}while(0);return n[(l=A+8|0)>>2]=1+(0|n[l>>2]),0|(l=r)}function ge(A,e,t){e|=0,t|=0;var r=0,o=0;if(o=~~(+a(+ +f(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0|(t=0);if(!t){for(A=o;;){if(0|QA(A,e)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}if(10==(0|r))return 0|A}for(A=o;;){if(0|QA(A,e)&&0|QA(A+16|0,t)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}return 10==(0|r)?0|A:0}function de(A,e){e|=0;var t=0;if(t=~~(+a(+ +f(10,+ +(15-(0|n[(A|=0)+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(t<<2)>>2]))return 0|(t=0);for(;;){if(0|QA(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function we(A){return 0|+function(A){return+ +Ce(+(A=+A))}(A=+A)}function pe(A){A|=0;var e,t=0,r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0;e=C,C=C+16|0,g=e;do{if(A>>>0<245){if(A=(u=A>>>0<11?16:A+11&-8)>>>3,3&(r=(h=0|n[5829])>>>A))return i=0|n[(r=(A=23356+((t=(1&r^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(s=0|n[(o=i+8|0)>>2]))==(0|A)?n[5829]=h&~(1<<t):(n[s+12>>2]=A,n[r>>2]=s),y=t<<3,n[i+4>>2]=3|y,n[(y=i+y+4|0)>>2]=1|n[y>>2],C=e,0|(y=o);if(u>>>0>(c=0|n[5831])>>>0){if(0|r)return t=((t=r<<A&((t=2<<A)|0-t))&0-t)-1|0,s=0|n[(A=(t=23356+((i=((r=(t>>>=l=t>>>12&16)>>>5&8)|l|(s=(t>>>=r)>>>2&4)|(A=(t>>>=s)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(r=0|n[(l=s+8|0)>>2]))==(0|t)?(A=h&~(1<<i),n[5829]=A):(n[r+12>>2]=t,n[A>>2]=r,A=h),a=(y=i<<3)-u|0,n[s+4>>2]=3|u,n[(o=s+u|0)+4>>2]=1|a,n[s+y>>2]=a,0|c&&(i=0|n[5834],r=23356+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[5831]=a,n[5834]=o,C=e,0|(y=l);if(s=0|n[5830]){for(r=(s&0-s)-1|0,r=f=0|n[23620+(((i=(r>>>=o=r>>>12&16)>>>5&8)|o|(a=(r>>>=i)>>>2&4)|(l=(r>>>=a)>>>1&2)|(f=(r>>>=l)>>>1&1))+(r>>>f)<<2)>>2],l=f,f=(-8&n[f+4>>2])-u|0;(A=0|n[r+16>>2])||(A=0|n[r+20>>2]);)r=A,l=(o=(a=(-8&n[A+4>>2])-u|0)>>>0<f>>>0)?A:l,f=o?a:f;if((a=l+u|0)>>>0>l>>>0){o=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){r=0;break}for(;;)if(r=0|n[(i=t+20|0)>>2])t=r,A=i;else{if(!(r=0|n[(i=t+16|0)>>2]))break;t=r,A=i}n[A>>2]=0,r=t}else r=0|n[l+8>>2],n[r+12>>2]=t,n[t+8>>2]=r,r=t}while(0);do{if(0|o){if(t=0|n[l+28>>2],(0|l)==(0|n[(A=23620+(t<<2)|0)>>2])){if(n[A>>2]=r,!r){n[5830]=s&~(1<<t);break}}else if(n[((0|n[(y=o+16|0)>>2])==(0|l)?y:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(t=0|n[l+16>>2])&&(n[r+16>>2]=t,n[t+24>>2]=r),0|(t=0|n[l+20>>2])&&(n[r+20>>2]=t,n[t+24>>2]=r)}}while(0);return f>>>0<16?(y=f+u|0,n[l+4>>2]=3|y,n[(y=l+y+4|0)>>2]=1|n[y>>2]):(n[l+4>>2]=3|u,n[a+4>>2]=1|f,n[a+f>>2]=f,0|c&&(i=0|n[5834],r=23356+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|n[(A=r+8|0)>>2]:(n[5829]=t|h,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[5831]=f,n[5834]=a),C=e,0|(y=l+8|0)}h=u}else h=u}else h=u}else if(A>>>0<=4294967231)if(u=-8&(A=A+11|0),i=0|n[5830]){o=0-u|0,f=(A>>>=8)?u>>>0>16777215?31:u>>>((f=14-((l=((p=A<<(h=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|h|(f=((p<<=l)+245760|0)>>>16&2))+(p<<f>>>15)|0)+7|0)&1|f<<1:0,r=0|n[23620+(f<<2)>>2];A:do{if(r)for(A=0,l=u<<(31==(0|f)?0:25-(f>>>1)|0),s=0;;){if((a=(-8&n[r+4>>2])-u|0)>>>0<o>>>0){if(!a){A=r,o=0,p=65;break A}A=r,o=a}if(s=!(0|(p=0|n[r+20>>2]))|(0|p)==(0|(r=0|n[r+16+(l>>>31<<2)>>2]))?s:p,!r){r=s,p=61;break}l<<=1}else r=0,A=0,p=61}while(0);if(61==(0|p)){if(!(0|r)&!(0|A)){if(!(A=((A=2<<f)|0-A)&i)){h=u;break}h=(A&0-A)-1|0,A=0,r=0|n[23620+(((s=(h>>>=a=h>>>12&16)>>>5&8)|a|(l=(h>>>=s)>>>2&4)|(f=(h>>>=l)>>>1&2)|(r=(h>>>=f)>>>1&1))+(h>>>r)<<2)>>2]}r?p=65:(l=A,a=o)}if(65==(0|p))for(s=r;;){if(o=(r=(h=(-8&n[s+4>>2])-u|0)>>>0<o>>>0)?h:o,A=r?s:A,(r=0|n[s+16>>2])||(r=0|n[s+20>>2]),!r){l=A,a=o;break}s=r}if(0|l&&a>>>0<((0|n[5831])-u|0)>>>0&&(c=l+u|0)>>>0>l>>>0){s=0|n[l+24>>2],t=0|n[l+12>>2];do{if((0|t)==(0|l)){if(!(t=0|n[(A=l+20|0)>>2])&&!(t=0|n[(A=l+16|0)>>2])){t=0;break}for(;;)if(r=0|n[(o=t+20|0)>>2])t=r,A=o;else{if(!(r=0|n[(o=t+16|0)>>2]))break;t=r,A=o}n[A>>2]=0}else y=0|n[l+8>>2],n[y+12>>2]=t,n[t+8>>2]=y}while(0);do{if(s){if(A=0|n[l+28>>2],(0|l)==(0|n[(r=23620+(A<<2)|0)>>2])){if(n[r>>2]=t,!t){i&=~(1<<A),n[5830]=i;break}}else if(n[((0|n[(y=s+16|0)>>2])==(0|l)?y:s+20)>>2]=t,!t)break;n[t+24>>2]=s,0|(A=0|n[l+16>>2])&&(n[t+16>>2]=A,n[A+24>>2]=t),(A=0|n[l+20>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);A:do{if(a>>>0<16)y=a+u|0,n[l+4>>2]=3|y,n[(y=l+y+4|0)>>2]=1|n[y>>2];else{if(n[l+4>>2]=3|u,n[c+4>>2]=1|a,n[c+a>>2]=a,t=a>>>3,a>>>0<256){r=23356+(t<<1<<2)|0,(A=0|n[5829])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=c,n[t+12>>2]=c,n[c+8>>2]=t,n[c+12>>2]=r;break}if(t=23620+((r=(t=a>>>8)?a>>>0>16777215?31:a>>>((r=14-((m=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(r=((y<<=m)+245760|0)>>>16&2))+(y<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[c+28>>2]=r,n[(A=c+16|0)+4>>2]=0,n[A>>2]=0,!(i&(A=1<<r))){n[5830]=i|A,n[t>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break}t=0|n[t>>2];e:do{if((-8&n[t+4>>2])!=(0|a)){for(i=a<<(31==(0|r)?0:25-(r>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}n[r>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=c,n[v>>2]=c,n[c+8>>2]=y,n[c+12>>2]=t,n[c+24>>2]=0}}while(0);return C=e,0|(y=l+8|0)}h=u}else h=u;else h=-1}while(0);if((r=0|n[5831])>>>0>=h>>>0)return t=r-h|0,A=0|n[5834],t>>>0>15?(y=A+h|0,n[5834]=y,n[5831]=t,n[y+4>>2]=1|t,n[A+r>>2]=t,n[A+4>>2]=3|h):(n[5831]=0,n[5834]=0,n[A+4>>2]=3|r,n[(y=A+r+4|0)>>2]=1|n[y>>2]),C=e,0|(y=A+8|0);if((a=0|n[5832])>>>0>h>>>0)return m=a-h|0,n[5832]=m,v=(y=0|n[5835])+h|0,n[5835]=v,n[v+4>>2]=1|m,n[y+4>>2]=3|h,C=e,0|(y=y+8|0);if(0|n[5947]?A=0|n[5949]:(n[5949]=4096,n[5948]=4096,n[5950]=-1,n[5951]=-1,n[5952]=0,n[5940]=0,n[5947]=-16&g^1431655768,A=4096),l=h+48|0,(u=(s=A+(f=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return C=e,0|(y=0);if(0|(A=0|n[5939])&&(g=(c=0|n[5937])+u|0)>>>0<=c>>>0|g>>>0>A>>>0)return C=e,0|(y=0);A:do{if(4&n[5940])t=0,p=143;else{r=0|n[5835];e:do{if(r){for(i=23764;!((g=0|n[i>>2])>>>0<=r>>>0&&(g+(0|n[i+4>>2])|0)>>>0>r>>>0);){if(!(A=0|n[i+8>>2])){p=128;break e}i=A}if((t=s-a&o)>>>0<2147483647)if((0|(A=0|Ie(0|t)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){a=t,s=A,p=145;break A}}else i=A,p=136;else t=0}else p=128}while(0);do{if(128==(0|p))if(-1!=(0|(r=0|Ie(0)))&&(t=r,w=(t=((w=(d=0|n[5948])+-1|0)&t|0?(w+t&0-d)-t|0:0)+u|0)+(d=0|n[5937])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(g=0|n[5939])&&w>>>0<=d>>>0|w>>>0>g>>>0){t=0;break}if((0|(A=0|Ie(0|t)))==(0|r)){a=t,s=r,p=145;break A}i=A,p=136}else t=0}while(0);do{if(136==(0|p)){if(r=0-t|0,!(l>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}a=t,s=i,p=145;break A}if((A=f-t+(A=0|n[5949])&0-A)>>>0>=2147483647){a=t,s=i,p=145;break A}if(-1==(0|Ie(0|A))){Ie(0|r),t=0;break}a=A+t|0,s=i,p=145;break A}}while(0);n[5940]=4|n[5940],p=143}}while(0);if(143==(0|p)&&u>>>0<2147483647&&!(-1==(0|(m=0|Ie(0|u)))|1^(B=(b=(w=0|Ie(0))-m|0)>>>0>(h+40|0)>>>0)|m>>>0<w>>>0&-1!=(0|m)&-1!=(0|w)^1)&&(a=B?b:t,s=m,p=145),145==(0|p)){t=(0|n[5937])+a|0,n[5937]=t,t>>>0>(0|n[5938])>>>0&&(n[5938]=t),f=0|n[5835];A:do{if(f){for(t=23764;;){if((0|s)==((A=0|n[t>>2])+(r=0|n[t+4>>2])|0)){p=154;break}if(!(i=0|n[t+8>>2]))break;t=i}if(!(154!=(0|p)||(v=t+4|0,8&n[t+12>>2]))&&s>>>0>f>>>0&A>>>0<=f>>>0){n[v>>2]=r+a,v=f+(m=7&(m=f+8|0)?0-m&7:0)|0,m=(y=(0|n[5832])+a|0)-m|0,n[5835]=v,n[5832]=m,n[v+4>>2]=1|m,n[f+y+4>>2]=40,n[5836]=n[5951];break}for(s>>>0<(0|n[5833])>>>0&&(n[5833]=s),r=s+a|0,t=23764;;){if((0|n[t>>2])==(0|r)){p=162;break}if(!(A=0|n[t+8>>2]))break;t=A}if(162==(0|p)&&!(8&n[t+12>>2])){n[t>>2]=s,n[(c=t+4|0)>>2]=(0|n[c>>2])+a,u=(c=s+(7&(c=s+8|0)?0-c&7:0)|0)+h|0,l=(t=r+(7&(t=r+8|0)?0-t&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|f)==(0|t))y=(0|n[5832])+l|0,n[5832]=y,n[5835]=u,n[u+4>>2]=1|y;else{if((0|n[5834])==(0|t)){y=(0|n[5831])+l|0,n[5831]=y,n[5834]=u,n[u+4>>2]=1|y,n[u+y>>2]=y;break}if(1==(3&(A=0|n[t+4>>2]))){a=-8&A,i=A>>>3;t:do{if(A>>>0<256){if(A=0|n[t+8>>2],(0|(r=0|n[t+12>>2]))==(0|A)){n[5829]=n[5829]&~(1<<i);break}n[A+12>>2]=r,n[r+8>>2]=A;break}s=0|n[t+24>>2],A=0|n[t+12>>2];do{if((0|A)==(0|t)){if(A=0|n[(i=(r=t+16|0)+4|0)>>2])r=i;else if(!(A=0|n[r>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,r=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,r=o}n[r>>2]=0}else y=0|n[t+8>>2],n[y+12>>2]=A,n[A+8>>2]=y}while(0);if(!s)break;i=23620+((r=0|n[t+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|t)){if(n[i>>2]=A,0|A)break;n[5830]=n[5830]&~(1<<r);break t}if(n[((0|n[(y=s+16|0)>>2])==(0|t)?y:s+20)>>2]=A,!A)break t}while(0);if(n[A+24>>2]=s,0|(i=0|n[(r=t+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(r=0|n[r+4>>2]))break;n[A+20>>2]=r,n[r+24>>2]=A}while(0);t=t+a|0,o=a+l|0}else o=l;if(n[(t=t+4|0)>>2]=-2&n[t>>2],n[u+4>>2]=1|o,n[u+o>>2]=o,t=o>>>3,o>>>0<256){r=23356+(t<<1<<2)|0,(A=0|n[5829])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=u,n[t+12>>2]=u,n[u+8>>2]=t,n[u+12>>2]=r;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((m=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((y<<=m)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(t=23620+(i<<2)|0,n[u+28>>2]=i,n[(A=u+16|0)+4>>2]=0,n[A>>2]=0,!((A=0|n[5830])&(r=1<<i))){n[5830]=A|r,n[t>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break}t=0|n[t>>2];t:do{if((-8&n[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}n[r>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break e}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=u,n[v>>2]=u,n[u+8>>2]=y,n[u+12>>2]=t,n[u+24>>2]=0}}while(0);return C=e,0|(y=c+8|0)}for(t=23764;!((A=0|n[t>>2])>>>0<=f>>>0&&(y=A+(0|n[t+4>>2])|0)>>>0>f>>>0);)t=0|n[t+8>>2];t=(A=(A=(o=y+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=f+16|0)>>>0?f:A)+8|0,v=s+(m=7&(m=s+8|0)?0-m&7:0)|0,m=(r=a+-40|0)-m|0,n[5835]=v,n[5832]=m,n[v+4>>2]=1|m,n[s+r+4>>2]=40,n[5836]=n[5951],n[(r=A+4|0)>>2]=27,n[t>>2]=n[5941],n[t+4>>2]=n[5942],n[t+8>>2]=n[5943],n[t+12>>2]=n[5944],n[5941]=s,n[5942]=a,n[5944]=0,n[5943]=t,t=A+24|0;do{v=t,n[(t=t+4|0)>>2]=7}while((v+8|0)>>>0<y>>>0);if((0|A)!=(0|f)){if(s=A-f|0,n[r>>2]=-2&n[r>>2],n[f+4>>2]=1|s,n[A>>2]=s,t=s>>>3,s>>>0<256){r=23356+(t<<1<<2)|0,(A=0|n[5829])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[5829]=A|t,t=r,A=r+8|0),n[A>>2]=f,n[t+12>>2]=f,n[f+8>>2]=t,n[f+12>>2]=r;break}if(r=23620+((i=(t=s>>>8)?s>>>0>16777215?31:s>>>((i=14-((m=((y=t<<(v=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(i=((y<<=m)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,n[f+28>>2]=i,n[f+20>>2]=0,n[o>>2]=0,!((t=0|n[5830])&(A=1<<i))){n[5830]=t|A,n[r>>2]=f,n[f+24>>2]=r,n[f+12>>2]=f,n[f+8>>2]=f;break}t=0|n[r>>2];e:do{if((-8&n[t+4>>2])!=(0|s)){for(i=s<<(31==(0|i)?0:25-(i>>>1)|0);A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|s)){t=A;break e}i<<=1,t=A}n[r>>2]=f,n[f+24>>2]=t,n[f+12>>2]=f,n[f+8>>2]=f;break A}}while(0);y=0|n[(v=t+8|0)>>2],n[y+12>>2]=f,n[v>>2]=f,n[f+8>>2]=y,n[f+12>>2]=t,n[f+24>>2]=0}}else!(0|(y=0|n[5833]))|s>>>0<y>>>0&&(n[5833]=s),n[5941]=s,n[5942]=a,n[5944]=0,n[5838]=n[5947],n[5837]=-1,n[5842]=23356,n[5841]=23356,n[5844]=23364,n[5843]=23364,n[5846]=23372,n[5845]=23372,n[5848]=23380,n[5847]=23380,n[5850]=23388,n[5849]=23388,n[5852]=23396,n[5851]=23396,n[5854]=23404,n[5853]=23404,n[5856]=23412,n[5855]=23412,n[5858]=23420,n[5857]=23420,n[5860]=23428,n[5859]=23428,n[5862]=23436,n[5861]=23436,n[5864]=23444,n[5863]=23444,n[5866]=23452,n[5865]=23452,n[5868]=23460,n[5867]=23460,n[5870]=23468,n[5869]=23468,n[5872]=23476,n[5871]=23476,n[5874]=23484,n[5873]=23484,n[5876]=23492,n[5875]=23492,n[5878]=23500,n[5877]=23500,n[5880]=23508,n[5879]=23508,n[5882]=23516,n[5881]=23516,n[5884]=23524,n[5883]=23524,n[5886]=23532,n[5885]=23532,n[5888]=23540,n[5887]=23540,n[5890]=23548,n[5889]=23548,n[5892]=23556,n[5891]=23556,n[5894]=23564,n[5893]=23564,n[5896]=23572,n[5895]=23572,n[5898]=23580,n[5897]=23580,n[5900]=23588,n[5899]=23588,n[5902]=23596,n[5901]=23596,n[5904]=23604,n[5903]=23604,v=s+(m=7&(m=s+8|0)?0-m&7:0)|0,m=(y=a+-40|0)-m|0,n[5835]=v,n[5832]=m,n[v+4>>2]=1|m,n[s+y+4>>2]=40,n[5836]=n[5951]}while(0);if((t=0|n[5832])>>>0>h>>>0)return m=t-h|0,n[5832]=m,v=(y=0|n[5835])+h|0,n[5835]=v,n[v+4>>2]=1|m,n[y+4>>2]=3|h,C=e,0|(y=y+8|0)}return n[(y=23312)>>2]=12,C=e,0|(y=0)}function be(A){var e=0,t=0,r=0,i=0,o=0,s=0,a=0,l=0;if(A|=0){t=A+-8|0,i=0|n[5833],l=t+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)a=t,s=t;else{if(r=0|n[t>>2],!(3&A))return;if(o=r+e|0,(s=t+(0-r)|0)>>>0<i>>>0)return;if((0|n[5834])==(0|s)){if(3&~(e=0|n[(A=l+4|0)>>2])){a=s,e=o;break}return n[5831]=o,n[A>>2]=-2&e,n[s+4>>2]=1|o,void(n[s+o>>2]=o)}if(t=r>>>3,r>>>0<256){if(A=0|n[s+8>>2],(0|(e=0|n[s+12>>2]))==(0|A)){n[5829]=n[5829]&~(1<<t),a=s,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,a=s,e=o;break}i=0|n[s+24>>2],A=0|n[s+12>>2];do{if((0|A)==(0|s)){if(A=0|n[(t=(e=s+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0}else a=0|n[s+8>>2],n[a+12>>2]=A,n[A+8>>2]=a}while(0);if(i){if(e=0|n[s+28>>2],(0|n[(t=23620+(e<<2)|0)>>2])==(0|s)){if(n[t>>2]=A,!A){n[5830]=n[5830]&~(1<<e),a=s,e=o;break}}else if(n[((0|n[(a=i+16|0)>>2])==(0|s)?a:i+20)>>2]=A,!A){a=s,e=o;break}n[A+24>>2]=i,0|(t=0|n[(e=s+16|0)>>2])&&(n[A+16>>2]=t,n[t+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,a=s,e=o):(a=s,e=o)}else a=s,e=o}}while(0);if(!(s>>>0>=l>>>0)&&1&(r=0|n[(A=l+4|0)>>2])){if(2&r)n[A>>2]=-2&r,n[a+4>>2]=1|e,n[s+e>>2]=e,i=e;else{if((0|n[5835])==(0|l)){if(l=(0|n[5832])+e|0,n[5832]=l,n[5835]=a,n[a+4>>2]=1|l,(0|a)!=(0|n[5834]))return;return n[5834]=0,void(n[5831]=0)}if((0|n[5834])==(0|l))return l=(0|n[5831])+e|0,n[5831]=l,n[5834]=s,n[a+4>>2]=1|l,void(n[s+l>>2]=l);i=(-8&r)+e|0,t=r>>>3;do{if(r>>>0<256){if(e=0|n[l+8>>2],(0|(A=0|n[l+12>>2]))==(0|e)){n[5829]=n[5829]&~(1<<t);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[l+24>>2],A=0|n[l+12>>2];do{if((0|A)==(0|l)){if(A=0|n[(t=(e=l+16|0)+4|0)>>2])e=t;else if(!(A=0|n[e>>2])){t=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0,t=A}else t=0|n[l+8>>2],n[t+12>>2]=A,n[A+8>>2]=t,t=A}while(0);if(0|o){if(A=0|n[l+28>>2],(0|n[(e=23620+(A<<2)|0)>>2])==(0|l)){if(n[e>>2]=t,!t){n[5830]=n[5830]&~(1<<A);break}}else if(n[((0|n[(r=o+16|0)>>2])==(0|l)?r:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(e=0|n[(A=l+16|0)>>2])&&(n[t+16>>2]=e,n[e+24>>2]=t),0|(A=0|n[A+4>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);if(n[a+4>>2]=1|i,n[s+i>>2]=i,(0|a)==(0|n[5834]))return void(n[5831]=i)}if(A=i>>>3,i>>>0<256)return t=23356+(A<<1<<2)|0,(e=0|n[5829])&(A=1<<A)?A=0|n[(e=t+8|0)>>2]:(n[5829]=e|A,A=t,e=t+8|0),n[e>>2]=a,n[A+12>>2]=a,n[a+8>>2]=A,void(n[a+12>>2]=t);A=23620+((r=(A=i>>>8)?i>>>0>16777215?31:i>>>((r=14-((o=((l=A<<(s=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|s|(r=((l<<=o)+245760|0)>>>16&2))+(l<<r>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,n[a+28>>2]=r,n[a+20>>2]=0,n[a+16>>2]=0,e=0|n[5830],t=1<<r;A:do{if(e&t){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(r=i<<(31==(0|r)?0:25-(r>>>1)|0);e=0|n[(t=A+16+(r>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}r<<=1,A=e}n[t>>2]=a,n[a+24>>2]=A,n[a+12>>2]=a,n[a+8>>2]=a;break A}}while(0);l=0|n[(s=A+8|0)>>2],n[l+12>>2]=a,n[s>>2]=a,n[a+8>>2]=l,n[a+12>>2]=A,n[a+24>>2]=0}else n[5830]=e|t,n[A>>2]=a,n[a+24>>2]=A,n[a+12>>2]=a,n[a+8>>2]=a}while(0);if(l=(0|n[5837])-1|0,n[5837]=l,!(0|l)){for(A=23772;A=0|n[A>>2];)A=A+8|0;n[5837]=-1}}}}function Be(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|pe(t))&&3&n[A+-4>>2]?(De(0|A,0,0|t),0|A):0|A}function me(A,e,t,r){return 0|(y(0|(r=(e|=0)-(r|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function ve(A){return 0|((A|=0)?31-(0|v(A^A-1)):32)}function ye(A,e,t,r,i){i|=0;var o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0;if(u=A|=0,s=t|=0,a=h=r|=0,!(f=l=e|=0))return o=!!(0|i),a?o?(n[i>>2]=0|A,n[i+4>>2]=0&e,i=0,0|(y(0|(h=0)),i)):(i=0,0|(y(0|(h=0)),i)):(o&&(n[i>>2]=(u>>>0)%(s>>>0),n[i+4>>2]=0),i=(u>>>0)/(s>>>0)>>>0,0|(y(0|(h=0)),i));o=!(0|a);do{if(s){if(!o){if((o=(0|v(0|a))-(0|v(0|f))|0)>>>0<=31){s=c=o+1|0,A=u>>>(c>>>0)&(e=o-31>>31)|f<<(a=31-o|0),e&=f>>>(c>>>0),o=0,a=u<<a;break}return i?(n[i>>2]=0|A,n[i+4>>2]=l|0&e,i=0,0|(y(0|(h=0)),i)):(i=0,0|(y(0|(h=0)),i))}if((o=s-1|0)&s|0){s=a=33+(0|v(0|s))-(0|v(0|f))|0,A=(c=32-a|0)-1>>31&f>>>((g=a-32|0)>>>0)|(f<<c|u>>>(a>>>0))&(e=g>>31),e&=f>>>(a>>>0),o=u<<(d=64-a|0)&(l=c>>31),a=(f<<d|u>>>(g>>>0))&l|u<<c&a-33>>31;break}return 0|i&&(n[i>>2]=o&u,n[i+4>>2]=0),1==(0|s)?(d=0|A,0|(y(0|(g=l|0&e)),d)):(g=f>>>((d=0|ve(0|s))>>>0)|0,d=f<<32-d|u>>>(d>>>0),0|(y(0|g),d))}if(o)return 0|i&&(n[i>>2]=(f>>>0)%(s>>>0),n[i+4>>2]=0),d=(f>>>0)/(s>>>0)>>>0,0|(y(0|(g=0)),d);if(!u)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(f>>>0)%(a>>>0)),d=(f>>>0)/(a>>>0)>>>0,0|(y(0|(g=0)),d);if(!((o=a-1|0)&a))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&f|0&e),g=0,d=f>>>((0|ve(0|a))>>>0),0|(y(0|g),d);if((o=(0|v(0|a))-(0|v(0|f))|0)>>>0<=30){s=e=o+1|0,A=f<<(a=31-o|0)|u>>>(e>>>0),e=f>>>(e>>>0),o=0,a=u<<a;break}return i?(n[i>>2]=0|A,n[i+4>>2]=l|0&e,d=0,0|(y(0|(g=0)),d)):(d=0,0|(y(0|(g=0)),d))}while(0);if(s){f=0|function(A,e,t,r){return 0|(y((e|=0)+(r|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}(0|(c=0|t),0|(u=h|0&r),-1,-1),t=0|E(),l=a,a=0;do{r=l,l=o>>>31|l<<1,o=a|o<<1,me(0|f,0|t,0|(r=A<<1|r>>>31),0|(h=A>>>31|e<<1)),a=1&(g=(d=0|E())>>31|((0|d)<0?-1:0)<<1),A=0|me(0|r,0|h,g&c|0,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&u),e=0|E(),s=s-1|0}while(0|s);f=l,l=0}else f=a,l=0,a=0;return s=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),d=o<<1&-2|a,0|(y(0|(g=(0|o)>>>31|(f|s)<<1|l)),d)}function Ee(A,e,t,r){var i,o;return o=C,C=C+16|0,ye(A|=0,e|=0,t|=0,r|=0,i=0|o),C=o,0|(y(0|n[i+4>>2]),n[i>>2])}function ke(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(y(e>>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(y(0),e>>>t-32|0)}function _e(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(y(e<<t|(A&(1<<t)-1<<32-t)>>>32-t),A<<t):(y(A<<t-32),0)}function Me(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+m(+A,+e)}function Qe(A){return(A=+A)>=0?+s(A+.5):+b(A-.5)}function xe(A,e,t){A|=0,e|=0;var i,o,s=0;if((0|(t|=0))>=8192)return Q(0|A,0|e,0|t),0|A;if(o=0|A,i=A+t|0,(3&A)==(3&e)){for(;3&A;){if(!t)return 0|o;r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0,t=t-1|0}for(s=(t=-4&i)-64|0;(0|A)<=(0|s);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)r[A|0]=0|r[e|0],r[A+1|0]=0|r[e+1|0],r[A+2|0]=0|r[e+2|0],r[A+3|0]=0|r[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)r[A|0]=0|r[e|0],A=A+1|0,e=e+1|0;return 0|o}function De(A,e,t){e|=0;var i,o=0,s=0,a=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)r[A|0]=e,A=A+1|0;for(a=e|e<<8|e<<16|e<<24,s=(o=-4&i)-64|0;(0|A)<=(0|s);)n[A>>2]=a,n[A+4>>2]=a,n[A+8>>2]=a,n[A+12>>2]=a,n[A+16>>2]=a,n[A+20>>2]=a,n[A+24>>2]=a,n[A+28>>2]=a,n[A+32>>2]=a,n[A+36>>2]=a,n[A+40>>2]=a,n[A+44>>2]=a,n[A+48>>2]=a,n[A+52>>2]=a,n[A+56>>2]=a,n[A+60>>2]=a,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=a,A=A+4|0}for(;(0|A)<(0|i);)r[A|0]=e,A=A+1|0;return i-t|0}function Ce(A){return(A=+A)>=0?+s(A+.5):+b(A-.5)}function Ie(A){A|=0;var e,t,r;return r=0|M(),(0|A)>0&(0|(e=(t=0|n[o>>2])+A|0))<(0|t)|(0|e)<0?(D(0|e),_(12),-1):(0|e)>(0|r)&&!(0|x(0|e))?(_(12),-1):(n[o>>2]=e,0|t)}return{___uremdi3:Ee,_bitshift64Lshr:ke,_bitshift64Shl:_e,_calloc:Be,_cellAreaKm2:function(A,e){var t,r,i,o=0;if(i=C,C=C+192|0,r=i,NA(A|=0,e|=0,t=i+168|0),VA(A,e,r),(0|(e=0|n[r>>2]))>0){if(o=+DA(r+8|0,r+8+((1!=(0|e)&1)<<4)|0,t)+0,1!=(0|e)){A=1;do{o+=+DA(r+8+(A<<4)|0,r+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e))}}else o=0;return C=i,6371.007180918475*o*6371.007180918475},_cellAreaM2:function(A,e){var t,r,i,o=0;if(i=C,C=C+192|0,r=i,NA(A|=0,e|=0,t=i+168|0),VA(A,e,r),(0|(e=0|n[r>>2]))>0){if(o=+DA(r+8|0,r+8+((1!=(0|e)&1)<<4)|0,t)+0,1!=(0|e)){A=1;do{o+=+DA(r+8+(A<<4)|0,r+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e))}}else o=0;return C=i,6371.007180918475*o*6371.007180918475*1e3*1e3},_cellAreaRads2:function(A,e){var t,r,i,o=0;if(i=C,C=C+192|0,r=i,NA(A|=0,e|=0,t=i+168|0),VA(A,e,r),(0|(e=0|n[r>>2]))<=0)return C=i,+(o=0);if(o=+DA(r+8|0,r+8+((1!=(0|e)&1)<<4)|0,t)+0,1==(0|e))return C=i,+o;A=1;do{o+=+DA(r+8+(A<<4)|0,r+8+((0|(A=A+1|0))%(0|e)<<4)|0,t)}while((0|A)<(0|e));return C=i,+o},_compact:function(A,e,t){e|=0;var r,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,k=0,_=0,M=0;if(!(t|=0))return 0|(_=0);if(i=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if((0|t)<=0)return 0|(_=0);if(n[(_=e)>>2]=i,n[_+4>>2]=o,1==(0|t))return 0|(_=0);i=1;do{k=0|n[(y=A+(i<<3)|0)+4>>2],n[(_=e+(i<<3)|0)>>2]=n[y>>2],n[_+4>>2]=k,i=i+1|0}while((0|i)!=(0|t));return 0|(i=0)}if(!(k=0|pe(y=t<<3)))return 0|(_=-3);if(xe(0|k,0|A,0|y),!(r=0|Be(t,8)))return be(k),0|(_=-3);i=t;A:for(;;){m=0|ke(0|(c=0|n[(a=k)>>2]),0|(a=0|n[a+4>>2]),52),E(),v=(m&=15)+-1|0,B=(0|i)>0;e:do{if(B){if(b=((0|i)<0)<<31>>31,w=0|_e(0|v,0,52),p=0|E(),v>>>0>15)for(o=0,A=c,t=a;;){if(!(!(0|A)&!(0|t))){if(s=0|ke(0|A,0|t,52),E(),l=(0|(s&=15))<(0|v),s=(0|s)==(0|v),t=0|Ee(0|(u=l?0:s?A:0),0|(A=l?0:s?t:0),0|i,0|b),E(),!(0|(f=0|n[(l=s=r+(t<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2])))t=u;else for(w=0,d=t,g=l,t=u;;){if((0|w)>(0|i)){_=41;break A}if((0|f)==(0|t)&(-117440513&g)==(0|A)){u=0|ke(0|f,0|g,56),E(),h=(u&=7)+1|0,p=0|ke(0|f,0|g,45),E();t:do{if(0|G(127&p)){if(f=0|ke(0|f,0|g,52),E(),!(f&=15)){l=6;break}for(l=1;;){if(!(!((p=0|_e(7,0,3*(15-l|0)|0))&t|0)&!((0|E())&A))){l=7;break t}if(!(l>>>0<f>>>0)){l=6;break}l=l+1|0}}else l=7}while(0);if((u+2|0)>>>0>l>>>0){_=51;break A}p=0|_e(0|h,0,56),A=E()|-117440513&A,n[(l=s)>>2]=0,n[l+4>>2]=0,l=d,t|=p}else l=(d+1|0)%(0|i)|0;if(!(0|(f=0|n[(g=s=r+(l<<3)|0)>>2]))&!(0|(g=0|n[g+4>>2])))break;w=w+1|0,d=l}n[(p=s)>>2]=t,n[p+4>>2]=A}if((0|(o=o+1|0))>=(0|i))break e;A=0|n[(t=k+(o<<3)|0)>>2],t=0|n[t+4>>2]}for(o=0,A=c,t=a;;){if(!(!(0|A)&!(0|t))){if(l=0|ke(0|A,0|t,52),E(),(0|(l&=15))>=(0|v)){if((0|l)!=(0|v)&&(A|=w,t=-15728641&t|p,l>>>0>=m>>>0)){s=v;do{d=0|_e(7,0,3*(14-s|0)|0),s=s+1|0,A|=d,t=0|E()|t}while(s>>>0<l>>>0)}}else A=0,t=0;if(l=0|Ee(0|A,0|t,0|i,0|b),E(),!(!(0|(u=0|n[(f=s=r+(l<<3)|0)>>2]))&!(0|(f=0|n[f+4>>2]))))for(d=0;;){if((0|d)>(0|i)){_=41;break A}if((0|u)==(0|A)&(-117440513&f)==(0|t)){h=0|ke(0|u,0|f,56),E(),g=(h&=7)+1|0,M=0|ke(0|u,0|f,45),E();t:do{if(0|G(127&M)){if(u=0|ke(0|u,0|f,52),E(),!(u&=15)){f=6;break}for(f=1;;){if(!(!((M=0|_e(7,0,3*(15-f|0)|0))&A|0)&!((0|E())&t))){f=7;break t}if(!(f>>>0<u>>>0)){f=6;break}f=f+1|0}}else f=7}while(0);if((h+2|0)>>>0>f>>>0){_=51;break A}M=0|_e(0|g,0,56),t=E()|-117440513&t,n[(g=s)>>2]=0,n[g+4>>2]=0,A|=M}else l=(l+1|0)%(0|i)|0;if(!(0|(u=0|n[(f=s=r+(l<<3)|0)>>2]))&!(0|(f=0|n[f+4>>2])))break;d=d+1|0}n[(M=s)>>2]=A,n[M+4>>2]=t}if((0|(o=o+1|0))>=(0|i))break e;A=0|n[(t=k+(o<<3)|0)>>2],t=0|n[t+4>>2]}}}while(0);if((i+5|0)>>>0<11){_=99;break}if(!(p=0|Be((0|i)/6|0,8))){_=58;break}e:do{if(B){d=0,g=0;do{if(!(!(0|(o=0|n[(A=l=r+(d<<3)|0)>>2]))&!(0|(A=0|n[A+4>>2])))){f=0|ke(0|o,0|A,56),E(),t=(f&=7)+1|0,u=-117440513&A,M=0|ke(0|o,0|A,45),E();t:do{if(0|G(127&M)){if(h=0|ke(0|o,0|A,52),E(),0|(h&=15))for(s=1;;){if(!(!(o&(M=0|_e(7,0,3*(15-s|0)|0))|0)&!(u&(0|E()))))break t;if(!(s>>>0<h>>>0))break;s=s+1|0}o|=A=0|_e(0|t,0,56),A=0|E()|u,n[(t=l)>>2]=o,n[t+4>>2]=A,t=f+2|0}}while(0);7==(0|t)&&(n[(M=p+(g<<3)|0)>>2]=o,n[M+4>>2]=-117440513&A,g=g+1|0)}d=d+1|0}while((0|d)!=(0|i));if(B){if(w=((0|i)<0)<<31>>31,h=0|_e(0|v,0,52),d=0|E(),v>>>0>15)for(A=0,o=0;;){do{if(!(!(0|c)&!(0|a))){for(f=0|ke(0|c,0|a,52),E(),s=(0|(f&=15))<(0|v),f=(0|f)==(0|v),s=0|Ee(0|(l=s?0:f?c:0),0|(f=s?0:f?a:0),0|i,0|w),E(),t=0;;){if((0|t)>(0|i)){_=98;break A}if((-117440513&(u=0|n[(M=r+(s<<3)|0)+4>>2]))==(0|f)&&(0|n[M>>2])==(0|l)){_=70;break}if((0|n[(M=r+((s=(s+1|0)%(0|i)|0)<<3)|0)>>2])==(0|l)&&(0|n[M+4>>2])==(0|f))break;t=t+1|0}if(70==(0|_)&&(_=0,!0&100663296==(117440512&u)))break;n[(M=e+(o<<3)|0)>>2]=c,n[M+4>>2]=a,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|n[(a=k+(A<<3)|0)>>2],a=0|n[a+4>>2]}for(A=0,o=0;;){do{if(!(!(0|c)&!(0|a))){if(f=0|ke(0|c,0|a,52),E(),(0|(f&=15))>=(0|v))if((0|f)!=(0|v))if(t=c|h,s=-15728641&a|d,f>>>0<m>>>0)f=s;else{l=v;do{M=0|_e(7,0,3*(14-l|0)|0),l=l+1|0,t|=M,s=0|E()|s}while(l>>>0<f>>>0);f=s}else t=c,f=a;else t=0,f=0;for(l=0|Ee(0|t,0|f,0|i,0|w),E(),s=0;;){if((0|s)>(0|i)){_=98;break A}if((-117440513&(u=0|n[(M=r+(l<<3)|0)+4>>2]))==(0|f)&&(0|n[M>>2])==(0|t)){_=93;break}if((0|n[(M=r+((l=(l+1|0)%(0|i)|0)<<3)|0)>>2])==(0|t)&&(0|n[M+4>>2])==(0|f))break;s=s+1|0}if(93==(0|_)&&(_=0,!0&100663296==(117440512&u)))break;n[(M=e+(o<<3)|0)>>2]=c,n[M+4>>2]=a,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|i)){i=g;break e}c=0|n[(a=k+(A<<3)|0)>>2],a=0|n[a+4>>2]}}else o=0,i=g}else o=0,i=0}while(0);if(De(0|r,0,0|y),xe(0|k,0|p,i<<3),be(p),!i)break;e=e+(o<<3)|0}return 41==(0|_)?(be(k),be(r),0|(M=-1)):51==(0|_)?(be(k),be(r),0|(M=-2)):58==(0|_)?(be(k),be(r),0|(M=-3)):98==(0|_)?(be(p),be(k),be(r),0|(M=-1)):(99==(0|_)&&xe(0|e,0|k,i<<3),be(k),be(r),0|(M=0))},_destroyLinkedPolygon:function(A){var e=0,t=0,r=0,i=0;if(A|=0)for(r=1;;){if(0|(e=0|n[A>>2]))do{if(0|(t=0|n[e>>2]))do{i=t,t=0|n[t+16>>2],be(i)}while(0|t);i=e,e=0|n[e+8>>2],be(i)}while(0|e);if(e=A,A=0|n[A+8>>2],r||be(e),!A)break;r=0}},_edgeLengthKm:function(A){return+ +i[20752+((A|=0)<<3)>>3]},_edgeLengthM:function(A){return+ +i[20880+((A|=0)<<3)>>3]},_emscripten_replace_memory:function(A){return r=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),t=A,!0},_exactEdgeLengthKm:function(A,e){var t,r,o=0,s=0,a=0,f=0,h=0,g=0;if(r=C,C=C+176|0,WA(A|=0,e|=0,t=r),(0|(A=0|n[t>>2]))<=1)return C=r,+(a=0);e=A+-1|0,A=0,o=0,s=+i[t+8>>3],a=+i[t+16>>3];do{h=s,s=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(s-h)),f=a,a=+i[t+8+(A<<4)+8>>3],f=g*g+(f=+c(.5*(a-f)))*(+u(+h)*+u(+s)*f),o+=2*+p(+ +l(+f),+ +l(+(1-f)))}while((0|A)!=(0|e));return C=r,+(g=6371.007180918475*o)},_exactEdgeLengthM:function(A,e){var t,r,o=0,s=0,a=0,f=0,h=0,g=0;if(r=C,C=C+176|0,WA(A|=0,e|=0,t=r),(0|(A=0|n[t>>2]))<=1)return C=r,+(a=0);e=A+-1|0,A=0,o=0,s=+i[t+8>>3],a=+i[t+16>>3];do{h=s,s=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(s-h)),f=a,a=+i[t+8+(A<<4)+8>>3],f=g*g+(f=+c(.5*(a-f)))*(+u(+h)*+u(+s)*f),o+=2*+p(+ +l(+f),+ +l(+(1-f)))}while((0|A)!=(0|e));return C=r,+(g=6371.007180918475*o*1e3)},_exactEdgeLengthRads:function(A,e){var t,r,o=0,s=0,a=0,f=0,h=0,g=0;if(r=C,C=C+176|0,WA(A|=0,e|=0,t=r),(0|(A=0|n[t>>2]))<=1)return C=r,+(a=0);e=A+-1|0,A=0,o=0,s=+i[t+8>>3],a=+i[t+16>>3];do{h=s,s=+i[t+8+((A=A+1|0)<<4)>>3],g=+c(.5*(s-h)),f=a,a=+i[t+8+(A<<4)+8>>3],f=g*g+(f=+c(.5*(a-f)))*(+u(+s)*+u(+h)*f),o+=2*+p(+ +l(+f),+ +l(+(1-f)))}while((0|A)<(0|e));return C=r,+o},_experimentalH3ToLocalIj:function(A,e,t,r,n){var i,o;return n|=0,o=C,C=C+16|0,(A=0|$A(A|=0,e|=0,t|=0,r|=0,i=o))||(hA(i,n),A=0),C=o,0|A},_experimentalLocalIjToH3:function(A,e,t,r){var n,i;return A|=0,e|=0,r|=0,n=C,C=C+16|0,gA(t|=0,i=n),r=0|Ae(A,e,i,r),C=n,0|r},_free:be,_geoToH3:OA,_getDestinationH3IndexFromUnidirectionalEdge:function(A,e){A|=0;var t,r,i=0;return t=C,C=C+16|0,i=t,!0&268435456==(2013265920&(e|=0))?(r=0|ke(0|A,0|e,56),E(),n[i>>2]=0,i=0|S(A,-2130706433&e|134217728,7&r,i),e=0|E(),y(0|e),C=t,0|i):(i=0,y(0|(e=0)),C=t,0|i)},_getH3IndexesFromUnidirectionalEdge:function(A,e,t){A|=0;var r,i,o,s,a=0;o=C,C=C+16|0,r=o,s=!0&268435456==(2013265920&(e|=0)),i=-2130706433&e|134217728,n[(a=t|=0)>>2]=s?A:0,n[a+4>>2]=s?i:0,s?(e=0|ke(0|A,0|e,56),E(),n[r>>2]=0,A=0|S(A,i,7&e,r),e=0|E()):(A=0,e=0),n[(a=t+8|0)>>2]=A,n[a+4>>2]=e,C=o},_getH3UnidirectionalEdge:function(A,e,t,r){var i,o,s=0,a=0,l=0,f=0,u=0;if(o=C,C=C+16|0,i=o,!(0|jA(A|=0,e|=0,t|=0,r|=0)))return f=0,y(0|(l=0)),C=o,0|f;for(l=-2130706433&e,s=(s=!(0|SA(A,e)))?1:2;n[i>>2]=0,a=s+1|0,!((0|(u=0|S(A,e,s,i)))==(0|t)&(0|E())==(0|r));){if(!(a>>>0<7)){s=0,A=0,f=6;break}s=a}return 6==(0|f)?(y(0|s),C=o,0|A):(u=0|_e(0|s,0,56),f=0|l|E()|268435456,u|=A,y(0|f),C=o,0|u)},_getH3UnidirectionalEdgeBoundary:WA,_getH3UnidirectionalEdgesFromHexagon:function(A,e,t){t|=0;var r,i=0;r=!(0|SA(A|=0,e|=0)),e&=-2130706433,n[(i=t)>>2]=r?A:0,n[i+4>>2]=r?285212672|e:0,n[(i=t+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=t+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=t+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=t+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(t=t+40|0)>>2]=A,n[t+4>>2]=369098752|e},_getOriginH3IndexFromUnidirectionalEdge:function(A,e){var t;return A|=0,y(0|((t=!0&268435456==(2013265920&(e|=0)))?-2130706433&e|134217728:0)),0|(t?A:0)},_getPentagonIndexes:XA,_getRes0Indexes:function(A){A|=0;var e=0,t=0,r=0;e=0;do{_e(0|e,0,45),r=134225919|E(),n[(t=A+(e<<3)|0)>>2]=-1,n[t+4>>2]=r,e=e+1|0}while(122!=(0|e))},_h3Distance:function(A,e,t,r){var n,i,o;return t|=0,r|=0,o=C,C=C+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,n=o+12|0)||0|$A(A,e,t,r,i)?-1:0|cA(n,i),C=o,0|A},_h3GetBaseCell:CA,_h3GetFaces:function A(e,t,r){r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0;i=C,C=C+128|0,c=i+112|0,a=i+96|0,h=i,s=0|ke(0|(e|=0),0|(t|=0),52),E(),f=15&s,n[c>>2]=f,l=0|ke(0|e,0|t,45),E(),l&=127;A:do{if(0|G(l)){if(0|f)for(o=1;;){if(!(!((u=0|_e(7,0,3*(15-o|0)|0))&e|0)&!((0|E())&t))){s=0;break A}if(!(o>>>0<f>>>0))break;o=o+1|0}if(!(1&s))return u=0|_e(f+1|0,0,52),h=E()|-15728641&t,A((u|e)&~(c=0|_e(7,0,3*(14-f|0)|0)),h&~E(),r),void(C=i);s=1}else s=0}while(0);HA(e,t,a),s?(vA(a,c,h),u=5):(_A(a,c,h),u=6);A:do{if(0|G(l))if(f)for(o=1;;){if(!(!((l=0|_e(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|r,-1,0|o),s){s=0;do{for(EA(a=h+(s<<4)|0,0|n[c>>2]),a=0|n[a>>2],o=0;!(-1==(0|(f=0|n[(l=r+(o<<2)|0)>>2]))|(0|f)==(0|a));)o=o+1|0;n[l>>2]=a,s=s+1|0}while((0|s)!=(0|u))}else{s=0;do{for(yA(a=h+(s<<4)|0,0|n[c>>2],0,1),a=0|n[a>>2],o=0;!(-1==(0|(f=0|n[(l=r+(o<<2)|0)>>2]))|(0|f)==(0|a));)o=o+1|0;n[l>>2]=a,s=s+1|0}while((0|s)!=(0|u))}C=i},_h3GetResolution:function(A,e){return e=0|ke(0|(A|=0),0|(e|=0),52),E(),15&e},_h3IndexesAreNeighbors:jA,_h3IsPentagon:SA,_h3IsResClassIII:function(A,e){return e=0|ke(0|(A|=0),0|(e|=0),52),E(),1&e},_h3IsValid:IA,_h3Line:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,s=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,E=0,k=0;if(o=C,C=C+48|0,l=o+12|0,E=o,!(0|$A(A|=0,e|=0,A,e,s=o+24|0))&&!(0|$A(A,e,t,r,l))){if((0|(y=0|cA(s,l)))<0)return C=o,0|(E=y);for(n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,$A(A,e,A,e,s),$A(A,e,t,r,l),dA(s),dA(l),y?(w=+(0|y),v=s,t=h=0|n[s>>2],r=g=0|n[(B=s+4|0)>>2],s=d=0|n[(m=s+8|0)>>2],p=+((0|n[l>>2])-h|0)/w,b=+((0|n[l+4>>2])-g|0)/w,w=+((0|n[l+8>>2])-d|0)/w):(B=r=s+4|0,m=d=s+8|0,v=s,t=0|n[s>>2],r=0|n[r>>2],s=0|n[d>>2],p=0,b=0,w=0),n[E>>2]=t,n[(d=E+4|0)>>2]=r,n[(g=E+8|0)>>2]=s,h=0;;){k=p*(u=+(0|h))+ +(0|t),f=b*u+ +(0|n[B>>2]),u=w*u+ +(0|n[m>>2]),r=~~+Qe(+k),l=~~+Qe(+f),t=~~+Qe(+u),k=+a(+(+(0|r)-k)),f=+a(+(+(0|l)-f)),u=+a(+(+(0|t)-u));do{if(!(k>f&k>u)){if(c=0-r|0,f>u){s=c-t|0;break}s=l,t=c-l|0;break}r=0-(l+t)|0,s=l}while(0);if(n[E>>2]=r,n[d>>2]=s,n[g>>2]=t,wA(E),Ae(A,e,E,i+(h<<3)|0),(0|h)==(0|y))break;h=h+1|0,t=0|n[v>>2]}return C=o,0|(E=0)}return C=o,0|(E=-1)},_h3LineSize:function(A,e,t,r){var n,i,o;return t|=0,r|=0,o=C,C=C+32|0,i=o,A=0|$A(A|=0,e|=0,A,e,n=o+12|0)||0|$A(A,e,t,r,i)?-1:0|cA(n,i),C=o,(A>>>31^1)+A|0},_h3SetToLinkedGeo:function(A,e,t){t|=0;var r,i,o,s=0;if(o=C,C=C+32|0,r=o,function(A,e,t){A|=0,t|=0;var r,i,o=0,s=0,a=0,l=0,f=0;if(i=C,C=C+176|0,r=i,(0|(e|=0))<1)return le(t,0,0),void(C=i);l=0|ke(0|n[(l=A)>>2],0|n[l+4>>2],52),E(),le(t,(0|e)>6?e:6,15&l),l=0;do{if(VA(0|n[(o=A+(l<<3)|0)>>2],0|n[o+4>>2],r),(0|(o=0|n[r>>2]))>0){f=0;do{a=r+8+(f<<4)|0,(s=0|ge(t,o=r+8+((0|(f=f+1|0))%(0|o)<<4)|0,a))?ce(t,s):he(t,a,o),o=0|n[r>>2]}while((0|f)<(0|o))}l=l+1|0}while((0|l)!=(0|e));C=i}(A|=0,e|=0,i=o+16|0),n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,!(A=0|ue(i)))return KA(t),fe(i),void(C=o);do{e=0|ZA(t);do{JA(e,A),s=A+16|0,n[r>>2]=n[s>>2],n[r+4>>2]=n[s+4>>2],n[r+8>>2]=n[s+8>>2],n[r+12>>2]=n[s+12>>2],ce(i,A),A=0|de(i,r)}while(0|A);A=0|ue(i)}while(0|A);KA(t),fe(i),C=o},_h3ToCenterChild:function(A,e,t){t|=0;var r=0,n=0;if(r=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(r&=15))<=(0|t)){if((0|r)!=(0|t)&&(A|=n=0|_e(0|t,0,52),e=E()|-15728641&e,(0|r)<(0|t)))do{n=0|_e(7,0,3*(14-r|0)|0),r=r+1|0,A&=~n,e&=~E()}while((0|r)<(0|t))}else e=0,A=0;return y(0|e),0|A},_h3ToChildren:FA,_h3ToGeo:NA,_h3ToGeoBoundary:VA,_h3ToParent:PA,_h3UnidirectionalEdgeIsValid:function(A,e){var t=0;if(!(!0&268435456==(2013265920&(e|=0))))return 0|(t=0);switch(t=0|ke(0|(A|=0),0|e,56),E(),7&t){case 0:case 7:return 0|(t=0)}return!0&16777216==(117440512&e)&!!(0|SA(A,t=-2130706433&e|134217728))?0|(t=0):0|(t=0|IA(A,t))},_hexAreaKm2:function(A){return+ +i[20496+((A|=0)<<3)>>3]},_hexAreaM2:function(A){return+ +i[20624+((A|=0)<<3)>>3]},_hexRing:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,s=0,a=0,l=0,f=0,u=0,c=0;if(i=C,C=C+16|0,c=i,!(t|=0))return n[(c=r)>>2]=A,n[c+4>>2]=e,C=i,0|(c=0);n[c>>2]=0;A:do{if(0|SA(A,e))A=1;else{if(s=(0|t)>0){o=0,u=A;do{if(!(0|(u=0|S(u,e,4,c)))&!(0|(e=0|E()))){A=2;break A}if(o=o+1|0,0|SA(u,e)){A=1;break A}}while((0|o)<(0|t));if(n[(f=r)>>2]=u,n[f+4>>2]=e,f=t+-1|0,s){s=0,a=1,o=u,A=e;do{if(!(0|(o=0|S(o,A,2,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(a<<3)|0)>>2]=o,n[l+4>>2]=A,a=a+1|0,0|SA(o,A)){A=1;break A}s=s+1|0}while((0|s)<(0|t));l=0,s=a;do{if(!(0|(o=0|S(o,A,3,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(a=r+(s<<3)|0)>>2]=o,n[a+4>>2]=A,s=s+1|0,0|SA(o,A)){A=1;break A}l=l+1|0}while((0|l)<(0|t));a=0;do{if(!(0|(o=0|S(o,A,1,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(s<<3)|0)>>2]=o,n[l+4>>2]=A,s=s+1|0,0|SA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|t));a=0;do{if(!(0|(o=0|S(o,A,5,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(s<<3)|0)>>2]=o,n[l+4>>2]=A,s=s+1|0,0|SA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|t));a=0;do{if(!(0|(o=0|S(o,A,4,c)))&!(0|(A=0|E()))){A=2;break A}if(n[(l=r+(s<<3)|0)>>2]=o,n[l+4>>2]=A,s=s+1|0,0|SA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|t));for(a=0;;){if(!(0|(o=0|S(o,A,6,c)))&!(0|(A=0|E()))){A=2;break A}if((0|a)!=(0|f)){if(n[(l=r+(s<<3)|0)>>2]=o,n[l+4>>2]=A,0|SA(o,A)){A=1;break A}s=s+1|0}if((0|(a=a+1|0))>=(0|t)){a=u,s=e;break}}}else a=u,o=u,s=e,A=e}else n[(a=r)>>2]=A,n[a+4>>2]=e,a=A,o=A,s=e,A=e;A=1&((0|a)!=(0|o)|(0|s)!=(0|A))}}while(0);return C=i,0|(c=A)},_i64Subtract:me,_kRing:I,_kRingDistances:function(A,e,t,r,n){var i;if(0|P(A|=0,e|=0,t|=0,r|=0,n|=0)){if(De(0|r,0,(i=1+(0|B(3*t|0,t+1|0))|0)<<3),0|n)return De(0|n,0,i<<2),void F(A,e,t,r,n,i,0);(n=0|Be(i,4))&&(F(A,e,t,r,n,i,0),be(n))}},_llvm_minnum_f64:Me,_llvm_round_f64:Qe,_malloc:pe,_maxFaceCount:function(A,e){var t=0,r=0;if(r=0|ke(0|(A|=0),0|(e|=0),45),E(),!(0|G(127&r)))return 0|(r=2);if(r=0|ke(0|A,0|e,52),E(),!(r&=15))return 0|(r=5);for(t=1;;){if(!(!((0|_e(7,0,3*(15-t|0)|0))&A|0)&!((0|E())&e))){t=2,A=6;break}if(!(t>>>0<r>>>0)){t=5,A=6;break}t=t+1|0}return 6==(0|A)?0|t:0},_maxH3ToChildrenSize:function(A,e,t){return t|=0,A=0|ke(0|(A|=0),0|(e|=0),52),E(),(0|t)<16&(0|(A&=15))<=(0|t)?0|(t=0|ee(7,t-A|0)):0|(t=0)},_maxKringSize:function(A){return 1+(0|B(3*(A|=0)|0,A+1|0))|0},_maxPolyfillSize:function(A,e){e|=0;var t,r=0,i=0,o=0,s=0,a=0;if(t=C,C=C+48|0,o=t+8|0,i=t,s=0|n[(a=A|=0)+4>>2],n[(r=i)>>2]=n[a>>2],n[r+4>>2]=s,re(i,o),o=0|V(o,e),e=0|n[i>>2],(0|(i=0|n[A+8>>2]))<=0)return C=t,0|(a=(a=(s=(0|o)<(0|(a=e)))?a:o)+12|0);r=0|n[A+12>>2],A=0;do{e=(0|n[r+(A<<3)>>2])+e|0,A=A+1|0}while((0|A)<(0|i));return C=t,0|(a=(a=(a=(0|o)<(0|e))?e:o)+12|0)},_maxUncompactSize:function(A,e,t){A|=0,t|=0;var r=0,i=0,o=0,s=0;if((0|(e|=0))<=0)return 0|(t=0);if((0|t)>=16){for(r=0;;){if(!(!(0|n[(s=A+(r<<3)|0)>>2])&!(0|n[s+4>>2]))){r=-1,i=13;break}if((0|(r=r+1|0))>=(0|e)){r=0,i=13;break}}if(13==(0|i))return 0|r}r=0,s=0;A:for(;;){o=0|n[(i=A+(s<<3)|0)>>2],i=0|n[i+4>>2];do{if(!(!(0|o)&!(0|i))){if(i=0|ke(0|o,0|i,52),E(),(0|(i&=15))>(0|t)){r=-1,i=13;break A}if((0|i)==(0|t)){r=r+1|0;break}r=(0|ee(7,t-i|0))+r|0;break}}while(0);if((0|(s=s+1|0))>=(0|e)){i=13;break}}return 13==(0|i)?0|r:0},_memcpy:xe,_memset:De,_numHexagons:function(A){var e;return A=0|n[(e=21008+((A|=0)<<3)|0)>>2],y(0|n[e+4>>2]),0|A},_pentagonIndexCount:function(){return 12},_pointDistKm:xA,_pointDistM:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+c(.5*(r-t)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+u(+r)*+u(+t)*o),2*+p(+ +l(+o),+ +l(+(1-o)))*6371.007180918475*1e3},_pointDistRads:function(A,e){A|=0;var t,r,n,o=0;return r=+i[(e|=0)>>3],t=+i[A>>3],o=(n=+c(.5*(r-t)))*n+(o=+c(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+u(+r)*+u(+t)*o),2*+p(+ +l(+o),+ +l(+(1-o)))},_polyfill:function(A,e,t){var r,i=0,o=0,s=0,a=0,l=0;if(r=C,C=C+48|0,i=r+8|0,o=r,0|function(A,e,t){A|=0,e|=0,t|=0;var r=0,i=0,o=0,s=0,a=0,l=0,f=0,u=0,c=0,h=0,g=0,d=0,w=0,p=0,b=0,B=0,m=0,v=0,y=0,_=0,M=0,Q=0,x=0,D=0,I=0,S=0,G=0,L=0,R=0,U=0;U=C,C=C+112|0,S=U+80|0,l=U+72|0,G=U,L=U+56|0,f=A+8|0,R=0|pe(32+(n[f>>2]<<5)|0),R||k(22848,22448,800,22456);if(ne(A,R),o=A,r=0|n[o+4>>2],a=l,n[a>>2]=n[o>>2],n[a+4>>2]=r,re(l,S),a=0|V(S,e),r=0|n[l>>2],o=0|n[f>>2],(0|o)>0){s=0|n[A+12>>2],i=0;do{r=(0|n[s+(i<<3)>>2])+r|0,i=i+1|0}while((0|i)!=(0|o))}if(a=(0|a)<(0|r)?r:a,I=a+12|0,i=0|Be(I,8),u=0|Be(I,8),n[S>>2]=0,x=A,D=0|n[x+4>>2],r=l,n[r>>2]=n[x>>2],n[r+4>>2]=D,r=0|T(l,I,e,S,i,u),0|r)return be(i),be(u),be(R),C=U,0|(R=r);A:do{if((0|n[f>>2])>0){for(o=A+12|0,r=0;s=0|T((0|n[o>>2])+(r<<3)|0,I,e,S,i,u),r=r+1|0,!(0|s);)if((0|r)>=(0|n[f>>2]))break A;return be(i),be(u),be(R),C=U,0|(R=s)}}while(0);(0|a)>-12&&De(0|u,0,((0|I)>1?I:1)<<3);A:do{if((0|n[S>>2])>0){D=((0|I)<0)<<31>>31,v=i,y=u,_=i,M=i,Q=u,x=i,r=i,p=i,b=u,B=u,m=u,i=u;e:for(;;){for(w=0|n[S>>2],g=0,d=0,o=0;;){a=(s=G)+56|0;do{n[s>>2]=0,s=s+4|0}while((0|s)<(0|a));if(0|P(l=0|n[(e=v+(g<<3)|0)>>2],e=0|n[e+4>>2],1,G,0)){a=(s=G)+56|0;do{n[s>>2]=0,s=s+4|0}while((0|s)<(0|a));0|(s=0|Be(7,4))&&(F(l,e,1,G,s,7,0),be(s))}h=0;do{u=0|n[(c=G+(h<<3)|0)>>2],c=0|n[c+4>>2];t:do{if(!(!(0|u)&!(0|c))){if(l=0|Ee(0|u,0|c,0|I,0|D),E(),!(!(0|(e=0|n[(a=s=t+(l<<3)|0)>>2]))&!(0|(a=0|n[a+4>>2]))))for(f=0;;){if((0|f)>(0|I))break e;if((0|e)==(0|u)&(0|a)==(0|c))break t;if(!(0|(e=0|n[(a=s=t+((l=(l+1|0)%(0|I)|0)<<3)|0)>>2]))&!(0|(a=0|n[a+4>>2])))break;f=f+1|0}!(0|u)&!(0|c)||(NA(u,c,L),0|ie(A,R,L)&&(n[(f=s)>>2]=u,n[f+4>>2]=c,n[(f=y+(o<<3)|0)>>2]=u,n[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|w))break;g=g+1|0}if((0|w)>0&&De(0|_,0,w<<3),n[S>>2]=o,!((0|o)>0))break A;u=i,c=m,h=x,g=B,d=b,w=y,i=p,m=r,B=M,b=_,p=u,r=c,x=Q,Q=h,M=g,_=d,y=v,v=w}return be(M),be(Q),be(R),C=U,0|(R=-1)}r=u}while(0);return be(R),be(i),be(r),R=0,C=U,0|R}(A|=0,e|=0,t|=0)){if(s=0|n[(l=A)+4>>2],n[(a=o)>>2]=n[l>>2],n[a+4>>2]=s,re(o,i),a=0|V(i,e),e=0|n[o>>2],(0|(s=0|n[A+8>>2]))>0){o=0|n[A+12>>2],i=0;do{e=(0|n[o+(i<<3)>>2])+e|0,i=i+1|0}while((0|i)!=(0|s))}(0|(e=(0|a)<(0|e)?e:a))<=-12||De(0|t,0,8+(((0|(l=e+11|0))>0?l:0)<<3)|0),C=r}else C=r},_res0IndexCount:function(){return 122},_round:Ce,_sbrk:Ie,_sizeOfCoordIJ:function(){return 8},_sizeOfGeoBoundary:function(){return 168},_sizeOfGeoCoord:function(){return 16},_sizeOfGeoPolygon:function(){return 16},_sizeOfGeofence:function(){return 8},_sizeOfH3Index:function(){return 8},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompact:function(A,e,t,r,i){A|=0,t|=0,r|=0,i|=0;var o=0,s=0,a=0,l=0,f=0,u=0;if((0|(e|=0))<=0)return 0|(i=0);if((0|i)>=16){for(o=0;;){if(!(!(0|n[(u=A+(o<<3)|0)>>2])&!(0|n[u+4>>2]))){o=14;break}if((0|(o=o+1|0))>=(0|e)){s=0,o=16;break}}if(14==(0|o))return 0|((0|r)>0?-2:-1);if(16==(0|o))return 0|s}o=0,u=0;A:for(;;){s=0|n[(a=f=A+(u<<3)|0)>>2],a=0|n[a+4>>2];do{if(!(!(0|s)&!(0|a))){if((0|o)>=(0|r)){s=-1,o=16;break A}if(l=0|ke(0|s,0|a,52),E(),(0|(l&=15))>(0|i)){s=-2,o=16;break A}if((0|l)==(0|i)){n[(f=t+(o<<3)|0)>>2]=s,n[f+4>>2]=a,o=o+1|0;break}if((0|(s=(0|ee(7,i-l|0))+o|0))>(0|r)){s=-1,o=16;break A}FA(0|n[f>>2],0|n[f+4>>2],i,t+(o<<3)|0),o=s}}while(0);if((0|(u=u+1|0))>=(0|e)){s=0,o=16;break}}return 16==(0|o)?0|s: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){p=A},c:b,d:function(A,e,t,r){wA("Assertion failed: "+I(A)+", at: "+[e?I(e):"unknown filename",t,r?I(r):"unknown function"])},e:function(A){return t.___errno_location&&(Q[t.___errno_location()>>2]=A),A},f:$,g:function(A,e,t){_.set(_.subarray(e,e+t),A)},h:function(A){var e=$(),t=16777216,r=2130706432;if(A>r)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?P(2*n,t):Math.min(P((3*n+2147483648)/4,t),r);return!!function(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(k),nA(e),F(e),1}catch(A){}}(n)},i:function(A){wA("OOM")},p:24016},E);t.___uremdi3=rA.___uremdi3,t._bitshift64Lshr=rA._bitshift64Lshr,t._bitshift64Shl=rA._bitshift64Shl,t._calloc=rA._calloc,t._cellAreaKm2=rA._cellAreaKm2,t._cellAreaM2=rA._cellAreaM2,t._cellAreaRads2=rA._cellAreaRads2,t._compact=rA._compact,t._destroyLinkedPolygon=rA._destroyLinkedPolygon,t._edgeLengthKm=rA._edgeLengthKm,t._edgeLengthM=rA._edgeLengthM;var nA=t._emscripten_replace_memory=rA._emscripten_replace_memory;t._exactEdgeLengthKm=rA._exactEdgeLengthKm,t._exactEdgeLengthM=rA._exactEdgeLengthM,t._exactEdgeLengthRads=rA._exactEdgeLengthRads,t._experimentalH3ToLocalIj=rA._experimentalH3ToLocalIj,t._experimentalLocalIjToH3=rA._experimentalLocalIjToH3,t._free=rA._free,t._geoToH3=rA._geoToH3,t._getDestinationH3IndexFromUnidirectionalEdge=rA._getDestinationH3IndexFromUnidirectionalEdge,t._getH3IndexesFromUnidirectionalEdge=rA._getH3IndexesFromUnidirectionalEdge,t._getH3UnidirectionalEdge=rA._getH3UnidirectionalEdge,t._getH3UnidirectionalEdgeBoundary=rA._getH3UnidirectionalEdgeBoundary,t._getH3UnidirectionalEdgesFromHexagon=rA._getH3UnidirectionalEdgesFromHexagon,t._getOriginH3IndexFromUnidirectionalEdge=rA._getOriginH3IndexFromUnidirectionalEdge,t._getPentagonIndexes=rA._getPentagonIndexes,t._getRes0Indexes=rA._getRes0Indexes,t._h3Distance=rA._h3Distance,t._h3GetBaseCell=rA._h3GetBaseCell,t._h3GetFaces=rA._h3GetFaces,t._h3GetResolution=rA._h3GetResolution,t._h3IndexesAreNeighbors=rA._h3IndexesAreNeighbors,t._h3IsPentagon=rA._h3IsPentagon,t._h3IsResClassIII=rA._h3IsResClassIII,t._h3IsValid=rA._h3IsValid,t._h3Line=rA._h3Line,t._h3LineSize=rA._h3LineSize,t._h3SetToLinkedGeo=rA._h3SetToLinkedGeo,t._h3ToCenterChild=rA._h3ToCenterChild,t._h3ToChildren=rA._h3ToChildren,t._h3ToGeo=rA._h3ToGeo,t._h3ToGeoBoundary=rA._h3ToGeoBoundary,t._h3ToParent=rA._h3ToParent,t._h3UnidirectionalEdgeIsValid=rA._h3UnidirectionalEdgeIsValid,t._hexAreaKm2=rA._hexAreaKm2,t._hexAreaM2=rA._hexAreaM2,t._hexRing=rA._hexRing,t._i64Subtract=rA._i64Subtract,t._kRing=rA._kRing,t._kRingDistances=rA._kRingDistances,t._llvm_minnum_f64=rA._llvm_minnum_f64,t._llvm_round_f64=rA._llvm_round_f64,t._malloc=rA._malloc,t._maxFaceCount=rA._maxFaceCount,t._maxH3ToChildrenSize=rA._maxH3ToChildrenSize,t._maxKringSize=rA._maxKringSize,t._maxPolyfillSize=rA._maxPolyfillSize,t._maxUncompactSize=rA._maxUncompactSize,t._memcpy=rA._memcpy,t._memset=rA._memset,t._numHexagons=rA._numHexagons,t._pentagonIndexCount=rA._pentagonIndexCount,t._pointDistKm=rA._pointDistKm,t._pointDistM=rA._pointDistM,t._pointDistRads=rA._pointDistRads,t._polyfill=rA._polyfill,t._res0IndexCount=rA._res0IndexCount,t._round=rA._round,t._sbrk=rA._sbrk,t._sizeOfCoordIJ=rA._sizeOfCoordIJ,t._sizeOfGeoBoundary=rA._sizeOfGeoBoundary,t._sizeOfGeoCoord=rA._sizeOfGeoCoord,t._sizeOfGeoPolygon=rA._sizeOfGeoPolygon,t._sizeOfGeofence=rA._sizeOfGeofence,t._sizeOfH3Index=rA._sizeOfH3Index,t._sizeOfLinkedGeoPolygon=rA._sizeOfLinkedGeoPolygon,t._uncompact=rA._uncompact,t.establishStackSpace=rA.establishStackSpace;var iA,oA,sA=t.stackAlloc=rA.stackAlloc,aA=t.stackRestore=rA.stackRestore,lA=t.stackSave=rA.stackSave;if(t.asm=rA,t.cwrap=function(A,e,t,r){var n=(t=t||[]).every(function(A){return"number"===A});return"string"!==e&&n&&!r?v(A):function(){return y(A,e,t,arguments)}},t.setValue=function(A,e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":k[A|0]=e;break;case"i16":M[A>>1]=e;break;case"i32":Q[A>>2]=e;break;case"i64":Z=[e>>>0,(W=e,+z(W)>=1?W>0?(0|V(+N(W/4294967296),4294967295))>>>0:~~+H((W-+(~~W>>>0))/4294967296)>>>0:0)],Q[A>>2]=Z[0],Q[A+4>>2]=Z[1];break;case"float":x[A>>2]=e;break;case"double":D[A>>3]=e;break;default:wA("invalid type for setValue: "+t)}},t.getValue=function(A,e,t){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return k[A|0];case"i16":return M[A>>1];case"i32":case"i64":return Q[A>>2];case"float":return x[A>>2];case"double":return D[A>>3];default:wA("invalid type for getValue: "+e)}return null},t.getTempRet0=b,J)if(q(J)||(iA=J,J=t.locateFile?t.locateFile(iA,g):g+iA),o||a){var fA=u(J);_.set(fA,8)}else{X++,t.monitorRunDependencies&&t.monitorRunDependencies(X);var uA=function(A){A.byteLength&&(A=new Uint8Array(A)),_.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(X--,t.monitorRunDependencies&&t.monitorRunDependencies(X),0==X&&j){var A=j;j=null,A()}}()},cA=function(){f(J,uA,function(){throw"could not load memory initializer "+J})},hA=tA(J);if(hA)uA(hA.buffer);else if(t.memoryInitializerRequest){var gA=function(){var A=t.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var r=tA(t.memoryInitializerRequestURL);if(!r)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+J),void cA();e=r.buffer}uA(e)};t.memoryInitializerRequest.response?setTimeout(gA,0):t.memoryInitializerRequest.addEventListener("load",gA)}else cA()}function dA(A){function e(){oA||(oA=!0,B||(T(L),T(R),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)O(t.postRun.shift());T(U)}()))}X>0||(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)Y(t.preRun.shift());T(G)}(),X>0||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e()))}function wA(A){throw t.onAbort&&t.onAbort(A),d(A+=""),w(A),B=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(j=function A(){oA||dA(),oA||(j=A)},t.run=dA,t.abort=wA,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return dA(),A}("object"==typeof iA?iA:{}),oA="number",sA={};[["sizeOfH3Index",oA],["sizeOfGeoCoord",oA],["sizeOfGeoBoundary",oA],["sizeOfGeoPolygon",oA],["sizeOfGeofence",oA],["sizeOfLinkedGeoPolygon",oA],["sizeOfCoordIJ",oA],["h3IsValid",oA,[oA,oA]],["geoToH3",oA,[oA,oA,oA]],["h3ToGeo",null,[oA,oA,oA]],["h3ToGeoBoundary",null,[oA,oA,oA]],["maxKringSize",oA,[oA]],["kRing",null,[oA,oA,oA,oA]],["kRingDistances",null,[oA,oA,oA,oA,oA]],["hexRing",null,[oA,oA,oA,oA]],["maxPolyfillSize",oA,[oA,oA]],["polyfill",null,[oA,oA,oA]],["h3SetToLinkedGeo",null,[oA,oA,oA]],["destroyLinkedPolygon",null,[oA]],["compact",oA,[oA,oA,oA]],["uncompact",oA,[oA,oA,oA,oA,oA]],["maxUncompactSize",oA,[oA,oA,oA]],["h3IsPentagon",oA,[oA,oA]],["h3IsResClassIII",oA,[oA,oA]],["h3GetBaseCell",oA,[oA,oA]],["h3GetResolution",oA,[oA,oA]],["maxFaceCount",oA,[oA,oA]],["h3GetFaces",null,[oA,oA,oA]],["h3ToParent",oA,[oA,oA,oA]],["h3ToChildren",null,[oA,oA,oA,oA]],["h3ToCenterChild",oA,[oA,oA,oA]],["maxH3ToChildrenSize",oA,[oA,oA,oA]],["h3IndexesAreNeighbors",oA,[oA,oA,oA,oA]],["getH3UnidirectionalEdge",oA,[oA,oA,oA,oA]],["getOriginH3IndexFromUnidirectionalEdge",oA,[oA,oA]],["getDestinationH3IndexFromUnidirectionalEdge",oA,[oA,oA]],["h3UnidirectionalEdgeIsValid",oA,[oA,oA]],["getH3IndexesFromUnidirectionalEdge",null,[oA,oA,oA]],["getH3UnidirectionalEdgesFromHexagon",null,[oA,oA,oA]],["getH3UnidirectionalEdgeBoundary",null,[oA,oA,oA]],["h3Distance",oA,[oA,oA,oA,oA]],["h3Line",oA,[oA,oA,oA,oA,oA]],["h3LineSize",oA,[oA,oA,oA,oA]],["experimentalH3ToLocalIj",oA,[oA,oA,oA,oA,oA]],["experimentalLocalIjToH3",oA,[oA,oA,oA,oA]],["hexAreaM2",oA,[oA]],["hexAreaKm2",oA,[oA]],["edgeLengthM",oA,[oA]],["edgeLengthKm",oA,[oA]],["pointDistM",oA,[oA,oA]],["pointDistKm",oA,[oA,oA]],["pointDistRads",oA,[oA,oA]],["cellAreaM2",oA,[oA,oA]],["cellAreaKm2",oA,[oA,oA]],["cellAreaRads2",oA,[oA,oA]],["exactEdgeLengthM",oA,[oA,oA]],["exactEdgeLengthKm",oA,[oA,oA]],["exactEdgeLengthRads",oA,[oA,oA]],["numHexagons",oA,[oA]],["getRes0Indexes",null,[oA]],["res0IndexCount",oA],["getPentagonIndexes",null,[oA,oA]],["pentagonIndexCount",oA]].forEach(function(A){sA[A[0]]=iA.cwrap.apply(iA,A)});var aA=16,lA=sA.sizeOfH3Index(),fA=sA.sizeOfGeoCoord(),uA=sA.sizeOfGeoBoundary(),cA=sA.sizeOfGeoPolygon(),hA=sA.sizeOfGeofence(),gA=sA.sizeOfLinkedGeoPolygon(),dA=sA.sizeOfCoordIJ(),wA={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function pA(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw new Error("Invalid resolution: "+A)}var bA=/[^0-9a-fA-F]/;function BA(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||bA.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),aA);return[parseInt(A.substring(A.length-8),aA),e]}function mA(A){if(A>=0)return A.toString(aA);var e=yA(8,(A&=2147483647).toString(aA));return e=(parseInt(e[0],aA)+8).toString(aA)+e.substring(1)}function vA(A,e){return mA(e)+yA(8,mA(A))}function yA(A,e){for(var t=A-e.length,r="",n=0;n<t;n++)r+="0";return r+=e}function EA(A,e,t){for(var r=A.length,n=iA._calloc(r,fA),i=t?1:0,o=t?0:1,s=0;s<2*r;s+=2)iA.HEAPF64.set([A[s/2][i],A[s/2][o]].map(GA),n/8+s);return iA.HEAPU32.set([r,n],e/4),e}function kA(A){return[A,iA.getTempRet0()]}function _A(A){var e=kA(A),t=e[0],r=e[1];return r?vA(t,r):null}function MA(A,e){void 0===e&&(e=0);var t=iA.getValue(A+4*e*2,"i32"),r=iA.getValue(A+4*(2*e+1),"i32");return r?vA(t,r):null}function QA(A,e,t){iA.HEAPU32.set(BA(A),e/4+2*t)}function xA(A,e){for(var t=[],r=0;r<e;r++){var n=MA(A,r);null!==n&&t.push(n)}return t}function DA(A,e){for(var t=e.length,r=0;r<t;r++)QA(e[r],A,r)}function CA(A,e){var t=iA._calloc(1,fA);return iA.HEAPF64.set([A,e].map(GA),t/8),t}function IA(A){return LA(iA.getValue(A,"double"))}function PA(A){return[IA(A),IA(A+8)]}function FA(A){return[IA(A+8),IA(A)]}function SA(A,e,t){for(var r=iA.getValue(A,"i32"),n=A+8,i=[],o=e?FA:PA,s=0;s<2*r;s+=2)i.push(o(n+8*s));return t&&i.push(i[0]),i}function TA(A){var e=BA(A),t=e[0],r=e[1];return Boolean(sA.h3IsValid(t,r))}function GA(A){return A*Math.PI/180}function LA(A){return 180*A/Math.PI}var RA=Object.freeze({__proto__:null,UNITS:wA,cellArea:function(A,e){var t=BA(A),r=t[0],n=t[1];switch(e){case wA.m2:return sA.cellAreaM2(r,n);case wA.km2:return sA.cellAreaKm2(r,n);case wA.rads2:return sA.cellAreaRads2(r,n);default:throw new Error("Unknown unit: "+e)}},compact:function(A){if(!A||!A.length)return[];var e=A.length,t=iA._calloc(e,lA);DA(t,A);var r=iA._calloc(e,lA);if(0!==sA.compact(t,r,e))throw iA._free(t),iA._free(r),new Error("Failed to compact, malformed input data (duplicate hexagons?)");var n=xA(r,e);return iA._free(t),iA._free(r),n},degsToRads:GA,edgeLength:function(A,e){switch(pA(A),e){case wA.m:return sA.edgeLengthM(A);case wA.km:return sA.edgeLengthKm(A);default:throw new Error("Unknown unit: "+e)}},exactEdgeLength:function(A,e){var t=BA(A),r=t[0],n=t[1];switch(e){case wA.m:return sA.exactEdgeLengthM(r,n);case wA.km:return sA.exactEdgeLengthKm(r,n);case wA.rads:return sA.exactEdgeLengthRads(r,n);default:throw new Error("Unknown unit: "+e)}},experimentalH3ToLocalIj:function(A,e){var t,r=iA._malloc(dA),n=sA.experimentalH3ToLocalIj.apply(sA,BA(A).concat(BA(e),[r])),i=(t=r,{i:iA.getValue(t,"i32"),j:iA.getValue(t+4,"i32")});switch(iA._free(r),n){case 0:return i;case 1:throw new Error("Incompatible origin and index.");case 2:default:throw new Error("Local IJ coordinates undefined for this origin and index pair. The index may be too far from the origin.");case 3:case 4:case 5:throw new Error("Encountered possible pentagon distortion")}},experimentalLocalIjToH3:function(A,e){if(!e||"number"!=typeof e.i||"number"!=typeof e.j)throw new Error("Coordinates must be provided as an {i, j} object");var t,r,n,i,o=iA._malloc(dA),s=iA._malloc(lA);t=o,n=(r=e).i,i=r.j,iA.setValue(t,n,"i32"),iA.setValue(t+4,i,"i32");var a=sA.experimentalLocalIjToH3.apply(sA,BA(A).concat([o],[s])),l=MA(s);if(iA._free(o),iA._free(s),0!==a)throw new Error("Index not defined for this origin and IJ coordinates pair. IJ coordinates may be too far from origin, or a pentagon distortion was encountered.");return l},geoToH3:function(A,e,t){var r=iA._malloc(fA);iA.HEAPF64.set([A,e].map(GA),r/8);var n=_A(sA.geoToH3(r,t));return iA._free(r),n},getDestinationH3IndexFromUnidirectionalEdge:function(A){var e=BA(A),t=e[0],r=e[1];return _A(sA.getDestinationH3IndexFromUnidirectionalEdge(t,r))},getH3IndexesFromUnidirectionalEdge:function(A){var e=BA(A),t=e[0],r=e[1],n=iA._calloc(2,lA);sA.getH3IndexesFromUnidirectionalEdge(t,r,n);var i=xA(n,2);return iA._free(n),i},getH3UnidirectionalEdge:function(A,e){var t=BA(A),r=t[0],n=t[1],i=BA(e),o=i[0],s=i[1];return _A(sA.getH3UnidirectionalEdge(r,n,o,s))},getH3UnidirectionalEdgeBoundary:function(A,e){var t=iA._malloc(uA),r=BA(A),n=r[0],i=r[1];sA.getH3UnidirectionalEdgeBoundary(n,i,t);var o=SA(t,e);return iA._free(t),o},getH3UnidirectionalEdgesFromHexagon:function(A){var e=BA(A),t=e[0],r=e[1],n=iA._calloc(6,lA);sA.getH3UnidirectionalEdgesFromHexagon(t,r,n);var i=xA(n,6);return iA._free(n),i},getOriginH3IndexFromUnidirectionalEdge:function(A){var e=BA(A),t=e[0],r=e[1];return _A(sA.getOriginH3IndexFromUnidirectionalEdge(t,r))},getPentagonIndexes:function(A){pA(A);var e=sA.pentagonIndexCount(),t=iA._malloc(lA*e);sA.getPentagonIndexes(A,t);var r=xA(t,e);return iA._free(t),r},getRes0Indexes:function(){var A=sA.res0IndexCount(),e=iA._malloc(lA*A);sA.getRes0Indexes(e);var t=xA(e,A);return iA._free(e),t},h3Distance:function(A,e){var t=BA(A),r=t[0],n=t[1],i=BA(e),o=i[0],s=i[1];return sA.h3Distance(r,n,o,s)},h3GetBaseCell:function(A){var e=BA(A),t=e[0],r=e[1];return sA.h3GetBaseCell(t,r)},h3GetFaces:function(A){var e=BA(A),t=e[0],r=e[1],n=sA.maxFaceCount(t,r),i=iA._malloc(4*n);sA.h3GetFaces(t,r,i);var o=function(A,e){for(var t=[],r=0;r<e;r++){var n=iA.getValue(A+4*r,"i32");n>=0&&t.push(n)}return t}(i,n);return iA._free(i),o},h3GetResolution:function(A){var e=BA(A),t=e[0],r=e[1];return sA.h3IsValid(t,r)?sA.h3GetResolution(t,r):-1},h3IndexToSplitLong:BA,h3IndexesAreNeighbors:function(A,e){var t=BA(A),r=t[0],n=t[1],i=BA(e),o=i[0],s=i[1];return Boolean(sA.h3IndexesAreNeighbors(r,n,o,s))},h3IsPentagon:function(A){var e=BA(A),t=e[0],r=e[1];return Boolean(sA.h3IsPentagon(t,r))},h3IsResClassIII:function(A){var e=BA(A),t=e[0],r=e[1];return Boolean(sA.h3IsResClassIII(t,r))},h3IsValid:TA,h3Line:function(A,e){var t=BA(A),r=t[0],n=t[1],i=BA(e),o=i[0],s=i[1],a=sA.h3LineSize(r,n,o,s);if(a<0)throw new Error("Line cannot be calculated");var l=iA._calloc(a,lA);sA.h3Line(r,n,o,s,l);var f=xA(l,a);return iA._free(l),f},h3SetToMultiPolygon:function(A,e){if(!A||!A.length)return[];var t=A.length,r=iA._calloc(t,lA);DA(r,A);var n=iA._calloc(gA),i=n;sA.h3SetToLinkedGeo(r,t,n);var o=function(A,e){for(var t,r,n,i,o=[],s=e?FA:PA;A;){for(o.push(t=[]),r=iA.getValue(A,"i8*");r;){for(t.push(n=[]),i=iA.getValue(r,"i8*");i;)n.push(s(i)),i=iA.getValue(i+16,"i8*");e&&n.push(n[0]),r=iA.getValue(r+8,"i8*")}A=iA.getValue(A+8,"i8*")}return o}(n,e);return sA.destroyLinkedPolygon(i),iA._free(i),iA._free(r),o},h3ToCenterChild:function(A,e){var t=BA(A),r=t[0],n=t[1];return _A(sA.h3ToCenterChild(r,n,e))},h3ToChildren:function(A,e){if(!TA(A))return[];var t=BA(A),r=t[0],n=t[1],i=sA.maxH3ToChildrenSize(r,n,e),o=iA._calloc(i,lA);sA.h3ToChildren(r,n,e,o);var s=xA(o,i);return iA._free(o),s},h3ToGeo:function(A){var e=iA._malloc(fA),t=BA(A),r=t[0],n=t[1];sA.h3ToGeo(r,n,e);var i=PA(e);return iA._free(e),i},h3ToGeoBoundary:function(A,e){var t=iA._malloc(uA),r=BA(A),n=r[0],i=r[1];sA.h3ToGeoBoundary(n,i,t);var o=SA(t,e,e);return iA._free(t),o},h3ToParent:function(A,e){var t=BA(A),r=t[0],n=t[1];return _A(sA.h3ToParent(r,n,e))},h3UnidirectionalEdgeIsValid:function(A){var e=BA(A),t=e[0],r=e[1];return Boolean(sA.h3UnidirectionalEdgeIsValid(t,r))},hexArea:function(A,e){switch(pA(A),e){case wA.m2:return sA.hexAreaM2(A);case wA.km2:return sA.hexAreaKm2(A);default:throw new Error("Unknown unit: "+e)}},hexRing:function(A,e){var t=0===e?1:6*e,r=iA._calloc(t,lA);if(0!==sA.hexRing.apply(sA,BA(A).concat([e],[r])))throw iA._free(r),new Error("Failed to get hexRing (encountered a pentagon?)");var n=xA(r,t);return iA._free(r),n},kRing:function(A,e){var t=BA(A),r=t[0],n=t[1],i=sA.maxKringSize(e),o=iA._calloc(i,lA);sA.kRing(r,n,e,o);var s=xA(o,i);return iA._free(o),s},kRingDistances:function(A,e){var t=BA(A),r=t[0],n=t[1],i=sA.maxKringSize(e),o=iA._calloc(i,lA),s=iA._calloc(i,4);sA.kRingDistances(r,n,e,o,s);for(var a=[],l=0;l<e+1;l++)a.push([]);for(var f=0;f<2*i;f+=2){var u=iA.getValue(o+4*f,"i32"),c=iA.getValue(o+4*(f+1),"i32"),h=iA.getValue(s+f/2*4,"i32");0===u&&0===c||a[h].push(vA(u,c))}return iA._free(o),iA._free(s),a},numHexagons:function(A){pA(A);var e=kA(sA.numHexagons(A)),t=e[0],r=e[1];return r?r*Math.pow(2,32)+t:t},pointDist:function(A,e,t){var r,n=CA(A[0],A[1]),i=CA(e[0],e[1]);switch(t){case wA.m:r=sA.pointDistM(n,i);break;case wA.km:r=sA.pointDistKm(n,i);break;case wA.rads:r=sA.pointDistRads(n,i);break;default:r=null}if(iA._free(n),iA._free(i),null===r)throw new Error("Unknown unit: "+t);return r},polyfill:function(A,e,t){if(pA(e),t=Boolean(t),0===A.length||0===A[0].length)return[];"number"==typeof A[0][0]&&(A=[A]);var r=function(A,e){var t,r=A.length-1,n=iA._calloc(cA),i=0+hA,o=i+4;if(EA(A[0],n+0,e),r>0){t=iA._calloc(r,hA);for(var s=0;s<r;s++)EA(A[s+1],t+hA*s,e)}return iA.setValue(n+i,r,"i32"),iA.setValue(n+o,t,"i32"),n}(A,t),n=sA.maxPolyfillSize(r,e),i=iA._calloc(n,lA);sA.polyfill(r,e,i);var o=xA(i,n);return iA._free(i),function(A){var e=0+hA,t=e+4;iA._free(iA.getValue(A+0+4,"i8*"));var r=iA.getValue(A+e,"i32");if(r>0){for(var n=iA.getValue(A+t,"i32"),i=0;i<r;i++)iA._free(iA.getValue(n+hA*i+4,"i8*"));iA._free(n)}iA._free(A)}(r),o},radsToDegs:LA,splitLongToh3Index:vA,uncompact:function(A,e){if(pA(e),!A||!A.length)return[];var t=A.length,r=iA._calloc(t,lA);DA(r,A);var n=sA.maxUncompactSize(r,t,e),i=iA._calloc(n,lA);if(0!==sA.uncompact(r,t,i,n,e))throw iA._free(r),iA._free(i),new Error("Failed to uncompact (bad resolution?)");var o=xA(i,n);return iA._free(r),iA._free(i),o}}),UA=nA(RA),YA="Feature",OA="FeatureCollection",zA="Polygon",HA="MultiPolygon";function NA(A){for(var e=null,t=0;t<A.length;t++)if(null!==e)for(var r=0;r<A[t].length;r++)e.push(A[t][r]);else e=A[t];return Array.from(new Set(e))}function VA(A,e,t){void 0===t&&(t={});var r=A.type,n=A.geometry,i=n&&n.type;if(r===OA)return function(A,e){var t=A.features;if(!t)throw new Error("No features found");return NA(t.map(function(A){return VA(A,e)}))}(A,e);if(r!==YA)throw new Error("Unhandled type: "+r);if(i!==zA&&i!==HA)throw new Error("Unhandled geometry type: "+i);return NA((i===zA?[n.coordinates]:n.coordinates).map(function(A){var r=UA.polyfill(A,e,!0);if(r.length||!t.ensureOutput)return r;var n=function(A){for(var e=0,t=0,r=0,n=A[0],i=0;i<n.length;i++)e+=n[i][0],t+=n[i][1],r++;return[e/r,t/r]}(A),i=n[0],o=n[1];return[UA.geoToH3(o,i,e)]}))}function XA(A,e){void 0===e&&(e={});var t=[UA.h3ToGeoBoundary(A,!0)];return{type:YA,id:A,properties:e,geometry:{type:zA,coordinates:t}}}var jA={featureToH3Set:VA,h3ToFeature:XA,h3SetToFeature:function(A,e){void 0===e&&(e={});var t=UA.h3SetToMultiPolygon(A,!0),r=t.length>1,n=r?HA:zA,i=r?t:t[0]||[];return{type:YA,properties:e,geometry:{type:n,coordinates:i}}},h3SetToMultiPolygonFeature:function(A,e){void 0===e&&(e={});var t=A.map(function(A){return[UA.h3ToGeoBoundary(A,{geoJson:!0})]});return{type:YA,properties:e,geometry:{type:HA,coordinates:t}}},h3SetToFeatureCollection:function(A,e){for(var t=[],r=0;r<A.length;r++){var n=A[r],i=e?e(n):{};t.push(XA(n,i))}return{type:OA,features:t}}};function WA(A,e,t=0,r=A.length-1,n=JA){for(;r>t;){if(r-t>600){const i=r-t+1,o=e-t+1,s=Math.log(i),a=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*a*(i-a)/i)*(o-i/2<0?-1:1);WA(A,e,Math.max(t,Math.floor(e-o*a/i+l)),Math.min(r,Math.floor(e+(i-o)*a/i+l)),n)}const i=A[e];let o=t,s=r;for(ZA(A,t,e),n(A[r],i)>0&&ZA(A,t,r);o<s;){for(ZA(A,o,s),o++,s--;n(A[o],i)<0;)o++;for(;n(A[s],i)>0;)s--}0===n(A[t],i)?ZA(A,t,s):(s++,ZA(A,s,r)),s<=e&&(t=s+1),e<=s&&(r=s-1)}}function ZA(A,e,t){const r=A[e];A[e]=A[t],A[t]=r}function JA(A,e){return A<e?-1:A>e?1:0}let KA=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(!le(A,e))return t;const r=this.toBBox,n=[];for(;e;){for(let i=0;i<e.children.length;i++){const o=e.children[i],s=e.leaf?r(o):o;le(A,s)&&(e.leaf?t.push(o):ae(A,s)?this._all(o,t):n.push(o))}e=n.pop()}return t}collides(A){let e=this.data;if(!le(A,e))return!1;const t=[];for(;e;){for(let r=0;r<e.children.length;r++){const n=e.children[r],i=e.leaf?this.toBBox(n):n;if(le(A,i)){if(e.leaf||ae(A,i))return!0;t.push(n)}}e=t.pop()}return!1}load(A){if(!A||!A.length)return this;if(A.length<this._minEntries){for(let e=0;e<A.length;e++)this.insert(A[e]);return this}let e=this._build(A.slice(),0,A.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){const A=this.data;this.data=e,e=A}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(A){return A&&this._insert(A,this.data.height-1),this}clear(){return this.data=fe([]),this}remove(A,e){if(!A)return this;let t=this.data;const r=this.toBBox(A),n=[],i=[];let o,s,a;for(;t||n.length;){if(t||(t=n.pop(),s=n[n.length-1],o=i.pop(),a=!0),t.leaf){const r=qA(A,t.children,e);if(-1!==r)return t.children.splice(r,1),n.push(t),this._condense(n),this}a||t.leaf||!ae(t,r)?s?(o++,t=s.children[o],a=!1):t=null:(n.push(t),i.push(o),o=0,s=t,t=t.children[0])}return this}toBBox(A){return A}compareMinX(A,e){return A.minX-e.minX}compareMinY(A,e){return A.minY-e.minY}toJSON(){return this.data}fromJSON(A){return this.data=A,this}_all(A,e){const t=[];for(;A;)A.leaf?e.push(...A.children):t.push(...A.children),A=t.pop();return e}_build(A,e,t,r){const n=t-e+1;let i,o=this._maxEntries;if(n<=o)return i=fe(A.slice(e,t+1)),$A(i,this.toBBox),i;r||(r=Math.ceil(Math.log(n)/Math.log(o)),o=Math.ceil(n/Math.pow(o,r-1))),i=fe([]),i.leaf=!1,i.height=r;const s=Math.ceil(n/o),a=s*Math.ceil(Math.sqrt(o));ue(A,e,t,a,this.compareMinX);for(let n=e;n<=t;n+=a){const e=Math.min(n+a-1,t);ue(A,n,e,s,this.compareMinY);for(let t=n;t<=e;t+=s){const n=Math.min(t+s-1,e);i.children.push(this._build(A,t,n,r-1))}}return $A(i,this.toBBox),i}_chooseSubtree(A,e,t,r){for(;r.push(e),!e.leaf&&r.length-1!==t;){let t,r=1/0,n=1/0;for(let i=0;i<e.children.length;i++){const o=e.children[i],s=ne(o),a=oe(A,o)-s;a<n?(n=a,r=s<r?s:r,t=o):a===n&&s<r&&(r=s,t=o)}e=t||e.children[0]}return e}_insert(A,e,t){const r=t?A:this.toBBox(A),n=[],i=this._chooseSubtree(r,this.data,e,n);for(i.children.push(A),ee(i,r);e>=0&&n[e].children.length>this._maxEntries;)this._split(n,e),e--;this._adjustParentBBoxes(r,n,e)}_split(A,e){const t=A[e],r=t.children.length,n=this._minEntries;this._chooseSplitAxis(t,n,r);const i=this._chooseSplitIndex(t,n,r),o=fe(t.children.splice(i,t.children.length-i));o.height=t.height,o.leaf=t.leaf,$A(t,this.toBBox),$A(o,this.toBBox),e?A[e-1].children.push(o):this._splitRoot(t,o)}_splitRoot(A,e){this.data=fe([A,e]),this.data.height=A.height+1,this.data.leaf=!1,$A(this.data,this.toBBox)}_chooseSplitIndex(A,e,t){let r,n=1/0,i=1/0;for(let o=e;o<=t-e;o++){const e=Ae(A,0,o,this.toBBox),s=Ae(A,o,t,this.toBBox),a=se(e,s),l=ne(e)+ne(s);a<n?(n=a,r=o,i=l<i?l:i):a===n&&l<i&&(i=l,r=o)}return r||t-e}_chooseSplitAxis(A,e,t){const r=A.leaf?this.compareMinX:te,n=A.leaf?this.compareMinY:re;this._allDistMargin(A,e,t,r)<this._allDistMargin(A,e,t,n)&&A.children.sort(r)}_allDistMargin(A,e,t,r){A.children.sort(r);const n=this.toBBox,i=Ae(A,0,e,n),o=Ae(A,t-e,t,n);let s=ie(i)+ie(o);for(let r=e;r<t-e;r++){const e=A.children[r];ee(i,A.leaf?n(e):e),s+=ie(i)}for(let r=t-e-1;r>=e;r--){const e=A.children[r];ee(o,A.leaf?n(e):e),s+=ie(o)}return s}_adjustParentBBoxes(A,e,t){for(let r=t;r>=0;r--)ee(e[r],A)}_condense(A){for(let e,t=A.length-1;t>=0;t--)0===A[t].children.length?t>0?(e=A[t-1].children,e.splice(e.indexOf(A[t]),1)):this.clear():$A(A[t],this.toBBox)}};function qA(A,e,t){if(!t)return e.indexOf(A);for(let r=0;r<e.length;r++)if(t(A,e[r]))return r;return-1}function $A(A,e){Ae(A,0,A.children.length,e,A)}function Ae(A,e,t,r,n){n||(n=fe(null)),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(let i=e;i<t;i++){const e=A.children[i];ee(n,A.leaf?r(e):e)}return n}function ee(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 te(A,e){return A.minX-e.minX}function re(A,e){return A.minY-e.minY}function ne(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function ie(A){return A.maxX-A.minX+(A.maxY-A.minY)}function oe(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 se(A,e){const t=Math.max(A.minX,e.minX),r=Math.max(A.minY,e.minY),n=Math.min(A.maxX,e.maxX),i=Math.min(A.maxY,e.maxY);return Math.max(0,n-t)*Math.max(0,i-r)}function ae(A,e){return A.minX<=e.minX&&A.minY<=e.minY&&e.maxX<=A.maxX&&e.maxY<=A.maxY}function le(A,e){return e.minX<=A.maxX&&e.minY<=A.maxY&&e.maxX>=A.minX&&e.maxY>=A.minY}function fe(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function ue(A,e,t,r,n){const i=[e,t];for(;i.length;){if((t=i.pop())-(e=i.pop())<=r)continue;const o=e+Math.ceil((t-e)/r/2)*r;WA(A,o,e,t,n),i.push(e,o,o,t)}}var ce=6371008.8,he={centimeters:637100880,centimetres:637100880,degrees:360/(2*Math.PI),feet:20902260.511392,inches:39.37*ce,kilometers:6371.0088,kilometres:6371.0088,meters:ce,metres:ce,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:ce/1852,radians:1,yards:6967335.223679999};function ge(A,e,t={}){const r={type:"Feature"};return(0===t.id||t.id)&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.properties=e||{},r.geometry=A,r}function de(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(!me(A[0])||!me(A[1]))throw new Error("coordinates must contain numbers");return ge({type:"Point",coordinates:A},e,t)}function we(A,e,t={}){if(A.length<2)throw new Error("coordinates must be an array of two or more positions");return ge({type:"LineString",coordinates:A},e,t)}function pe(A,e={}){const t={type:"FeatureCollection"};return e.id&&(t.id=e.id),e.bbox&&(t.bbox=e.bbox),t.features=A,t}function be(A){return 180*(A%(2*Math.PI))/Math.PI}function Be(A){return A%360*Math.PI/180}function me(A){return!isNaN(A)&&null!==A&&!Array.isArray(A)}function ve(A,e,t){if(null!==A)for(var r,n,i,o,s,a,l,f,u=0,c=0,h=A.type,g="FeatureCollection"===h,d="Feature"===h,w=g?A.features.length:1,p=0;p<w;p++){s=(f=!!(l=g?A.features[p].geometry:d?A.geometry:A)&&"GeometryCollection"===l.type)?l.geometries.length:1;for(var b=0;b<s;b++){var B=0,m=0;if(null!==(o=f?l.geometries[b]:l)){a=o.coordinates;var v=o.type;switch(u=0,v){case null:break;case"Point":if(!1===e(a,c,p,B,m))return!1;c++,B++;break;case"LineString":case"MultiPoint":for(r=0;r<a.length;r++){if(!1===e(a[r],c,p,B,m))return!1;c++,"MultiPoint"===v&&B++}"LineString"===v&&B++;break;case"Polygon":case"MultiLineString":for(r=0;r<a.length;r++){for(n=0;n<a[r].length-u;n++){if(!1===e(a[r][n],c,p,B,m))return!1;c++}"MultiLineString"===v&&B++,"Polygon"===v&&m++}"Polygon"===v&&B++;break;case"MultiPolygon":for(r=0;r<a.length;r++){for(m=0,n=0;n<a[r].length;n++){for(i=0;i<a[r][n].length-u;i++){if(!1===e(a[r][n][i],c,p,B,m))return!1;c++}m++}B++}break;case"GeometryCollection":for(r=0;r<o.geometries.length;r++)if(!1===ve(o.geometries[r],e))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function ye(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 Ee(A,e){var t,r,n,i,o,s,a,l,f,u,c=0,h="FeatureCollection"===A.type,g="Feature"===A.type,d=h?A.features.length:1;for(t=0;t<d;t++){for(s=h?A.features[t].geometry:g?A.geometry:A,l=h?A.features[t].properties:g?A.properties:{},f=h?A.features[t].bbox:g?A.bbox:void 0,u=h?A.features[t].id:g?A.id:void 0,o=(a=!!s&&"GeometryCollection"===s.type)?s.geometries.length:1,n=0;n<o;n++)if(null!==(i=a?s.geometries[n]:s))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===e(i,c,l,f,u))return!1;break;case"GeometryCollection":for(r=0;r<i.geometries.length;r++)if(!1===e(i.geometries[r],c,l,f,u))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===e(null,c,l,f,u))return!1;c++}}function ke(A,e){Ee(A,function(A,t,r,n,i){var o,s=null===A?null:A.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return!1!==e(ge(A,r,{bbox:n,id:i}),t,0)&&void 0}switch(s){case"MultiPoint":o="Point";break;case"MultiLineString":o="LineString";break;case"MultiPolygon":o="Polygon"}for(var a=0;a<A.coordinates.length;a++){var l=A.coordinates[a];if(!1===e(ge({type:o,coordinates:l},r),t,a))return!1}})}function _e(A,e,t){var r=t,n=!1;return function(A,e){ke(A,function(A,t,r){var n=0;if(A.geometry){var i=A.geometry.type;if("Point"!==i&&"MultiPoint"!==i){var o,s=0,a=0,l=0;return!1!==ve(A,function(i,f,u,c,h){if(void 0===o||t>s||c>a||h>l)return o=i,s=t,a=c,l=h,void(n=0);var g=we([o,i],A.properties);if(!1===e(g,t,r,h,n))return!1;n++,o=i})&&void 0}}})}(A,function(A,i,o,s,a){r=!1===n&&void 0===t?A:e(r,A,i,o,s,a),n=!0}),r}function Me(A,e={}){if(null!=A.bbox&&!0!==e.recompute)return A.bbox;const t=[1/0,1/0,-1/0,-1/0];return ve(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 Qe(A,e){var t,r,n,i,o,s,a,l,f,c=0,h=A[0],g=A[1],d=e.length;for(t=0;t<d;t++){r=0;var w=e[t],p=w.length-1;if((l=w[0])[0]!==w[p][0]&&l[1]!==w[p][1])throw new Error("First and last coordinates in a ring must be the same");for(i=l[0]-h,o=l[1]-g;r<p;r++){if(s=(f=w[r+1])[0]-h,a=f[1]-g,0===o&&0===a){if(s<=0&&i>=0||i<=0&&s>=0)return 0}else if(a>=0&&o<=0||a<=0&&o>=0){if(0===(n=u(i,s,o,a,0,0)))return 0;(n>0&&a>0&&o<=0||n<0&&a<=0&&o>0)&&c++}l=f,o=a,i=s}}return c%2!=0}function xe(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 De(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 Ce(A,e){return"FeatureCollection"===A.type?"FeatureCollection":"GeometryCollection"===A.type?"GeometryCollection":"Feature"===A.type&&null!==A.geometry?A.geometry.type:A.type}var Ie=function(A,e,t={}){if(!A)throw new Error("point is required");if(!e)throw new Error("polygon is required");const r=xe(A),n="Feature"===(i=e).type?i.geometry:i;var i;const o=n.type,s=e.bbox;let a=n.coordinates;if(s&&!1===function(A,e){return e[0]<=A[0]&&e[1]<=A[1]&&e[2]>=A[0]&&e[3]>=A[1]}(r,s))return!1;"Polygon"===o&&(a=[a]);let l=!1;for(var f=0;f<a.length;++f){const A=Qe(r,a[f]);if(0===A)return!t.ignoreBoundary;A&&(l=!0)}return l};var Pe=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,Fe=Math.ceil,Se=Math.floor,Te="[BigNumber Error] ",Ge=Te+"Number primitive has more than 15 significant digits: ",Le=1e14,Re=14,Ue=9007199254740991,Ye=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],Oe=1e7,ze=1e9;function He(A){var e=0|A;return A>0||A===e?e:e-1}function Ne(A){for(var e,t,r=1,n=A.length,i=A[0]+"";r<n;){for(e=A[r++]+"",t=Re-e.length;t--;e="0"+e);i+=e}for(n=i.length;48===i.charCodeAt(--n););return i.slice(0,n+1||1)}function Ve(A,e){var t,r,n=A.c,i=e.c,o=A.s,s=e.s,a=A.e,l=e.e;if(!o||!s)return null;if(t=n&&!n[0],r=i&&!i[0],t||r)return t?r?0:-s:o;if(o!=s)return o;if(t=o<0,r=a==l,!n||!i)return r?0:!n^t?1:-1;if(!r)return a>l^t?1:-1;for(s=(a=n.length)<(l=i.length)?a:l,o=0;o<s;o++)if(n[o]!=i[o])return n[o]>i[o]^t?1:-1;return a==l?0:a>l^t?1:-1}function Xe(A,e,t,r){if(A<e||A>t||A!==Se(A))throw Error(Te+(r||"Argument")+("number"==typeof A?A<e||A>t?" out of range: ":" not an integer: ":" not a primitive number: ")+String(A))}function je(A){var e=A.c.length-1;return He(A.e/Re)==e&&A.c[e]%2!=0}function We(A,e){return(A.length>1?A.charAt(0)+"."+A.slice(1):A)+(e<0?"e":"e+")+e}function Ze(A,e,t){var r,n;if(e<0){for(n=t+".";++e;n+=t);A=n+A}else if(++e>(r=A.length)){for(n=t,e-=r;--e;n+=t);A+=n}else e<r&&(A=A.slice(0,e)+"."+A.slice(e));return A}var Je=function A(e){var t,r,n,i,o,s,a,l,f,u,c=M.prototype={constructor:M,toString:null,valueOf:null},h=new M(1),g=20,d=4,w=-7,p=21,b=-1e7,B=1e7,m=!1,v=1,y=0,E={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},k="0123456789abcdefghijklmnopqrstuvwxyz",_=!0;function M(A,e){var t,i,o,s,a,l,f,u,c=this;if(!(c instanceof M))return new M(A,e);if(null==e){if(A&&!0===A._isBigNumber)return c.s=A.s,void(!A.c||A.e>B?c.c=c.e=null:A.e<b?c.c=[c.e=0]:(c.e=A.e,c.c=A.c.slice()));if((l="number"==typeof A)&&0*A==0){if(c.s=1/A<0?(A=-A,-1):1,A===~~A){for(s=0,a=A;a>=10;a/=10,s++);return void(s>B?c.c=c.e=null:(c.e=s,c.c=[A]))}u=String(A)}else{if(!Pe.test(u=String(A)))return n(c,u,l);c.s=45==u.charCodeAt(0)?(u=u.slice(1),-1):1}(s=u.indexOf("."))>-1&&(u=u.replace(".","")),(a=u.search(/e/i))>0?(s<0&&(s=a),s+=+u.slice(a+1),u=u.substring(0,a)):s<0&&(s=u.length)}else{if(Xe(e,2,k.length,"Base"),10==e&&_)return C(c=new M(A),g+c.e+1,d);if(u=String(A),l="number"==typeof A){if(0*A!=0)return n(c,u,l,e);if(c.s=1/A<0?(u=u.slice(1),-1):1,M.DEBUG&&u.replace(/^0\.0*|\./,"").length>15)throw Error(Ge+A)}else c.s=45===u.charCodeAt(0)?(u=u.slice(1),-1):1;for(t=k.slice(0,e),s=a=0,f=u.length;a<f;a++)if(t.indexOf(i=u.charAt(a))<0){if("."==i){if(a>s){s=f;continue}}else if(!o&&(u==u.toUpperCase()&&(u=u.toLowerCase())||u==u.toLowerCase()&&(u=u.toUpperCase()))){o=!0,a=-1,s=0;continue}return n(c,String(A),l,e)}l=!1,(s=(u=r(u,e,10,c.s)).indexOf("."))>-1?u=u.replace(".",""):s=u.length}for(a=0;48===u.charCodeAt(a);a++);for(f=u.length;48===u.charCodeAt(--f););if(u=u.slice(a,++f)){if(f-=a,l&&M.DEBUG&&f>15&&(A>Ue||A!==Se(A)))throw Error(Ge+c.s*A);if((s=s-a-1)>B)c.c=c.e=null;else if(s<b)c.c=[c.e=0];else{if(c.e=s,c.c=[],a=(s+1)%Re,s<0&&(a+=Re),a<f){for(a&&c.c.push(+u.slice(0,a)),f-=Re;a<f;)c.c.push(+u.slice(a,a+=Re));a=Re-(u=u.slice(a)).length}else a-=f;for(;a--;u+="0");c.c.push(+u)}}else c.c=[c.e=0]}function Q(A,e,t,r){var n,i,o,s,a;if(null==t?t=d:Xe(t,0,8),!A.c)return A.toString();if(n=A.c[0],o=A.e,null==e)a=Ne(A.c),a=1==r||2==r&&(o<=w||o>=p)?We(a,o):Ze(a,o,"0");else if(i=(A=C(new M(A),e,t)).e,s=(a=Ne(A.c)).length,1==r||2==r&&(e<=i||i<=w)){for(;s<e;a+="0",s++);a=We(a,i)}else if(e-=o+(2===r&&i>o),a=Ze(a,i,"0"),i+1>s){if(--e>0)for(a+=".";e--;a+="0");}else if((e+=i-s)>0)for(i+1==s&&(a+=".");e--;a+="0");return A.s<0&&n?"-"+a:a}function x(A,e){for(var t,r,n=1,i=new M(A[0]);n<A.length;n++)(!(r=new M(A[n])).s||(t=Ve(i,r))===e||0===t&&i.s===e)&&(i=r);return i}function D(A,e,t){for(var r=1,n=e.length;!e[--n];e.pop());for(n=e[0];n>=10;n/=10,r++);return(t=r+t*Re-1)>B?A.c=A.e=null:t<b?A.c=[A.e=0]:(A.e=t,A.c=e),A}function C(A,e,t,r){var n,i,o,s,a,l,f,u=A.c,c=Ye;if(u){A:{for(n=1,s=u[0];s>=10;s/=10,n++);if((i=e-n)<0)i+=Re,o=e,a=u[l=0],f=Se(a/c[n-o-1]%10);else if((l=Fe((i+1)/Re))>=u.length){if(!r)break A;for(;u.length<=l;u.push(0));a=f=0,n=1,o=(i%=Re)-Re+1}else{for(a=s=u[l],n=1;s>=10;s/=10,n++);f=(o=(i%=Re)-Re+n)<0?0:Se(a/c[n-o-1]%10)}if(r=r||e<0||null!=u[l+1]||(o<0?a:a%c[n-o-1]),r=t<4?(f||r)&&(0==t||t==(A.s<0?3:2)):f>5||5==f&&(4==t||r||6==t&&(i>0?o>0?a/c[n-o]:0:u[l-1])%10&1||t==(A.s<0?8:7)),e<1||!u[0])return u.length=0,r?(e-=A.e+1,u[0]=c[(Re-e%Re)%Re],A.e=-e||0):u[0]=A.e=0,A;if(0==i?(u.length=l,s=1,l--):(u.length=l+1,s=c[Re-i],u[l]=o>0?Se(a/c[n-o]%c[o])*s:0),r)for(;;){if(0==l){for(i=1,o=u[0];o>=10;o/=10,i++);for(o=u[0]+=s,s=1;o>=10;o/=10,s++);i!=s&&(A.e++,u[0]==Le&&(u[0]=1));break}if(u[l]+=s,u[l]!=Le)break;u[l--]=0,s=1}for(i=u.length;0===u[--i];u.pop());}A.e>B?A.c=A.e=null:A.e<b&&(A.c=[A.e=0])}return A}function I(A){var e,t=A.e;return null===t?A.toString():(e=Ne(A.c),e=t<=w||t>=p?We(e,t):Ze(e,t,"0"),A.s<0?"-"+e:e)}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 e,t;if(null!=A){if("object"!=typeof A)throw Error(Te+"Object expected: "+A);if(A.hasOwnProperty(e="DECIMAL_PLACES")&&(Xe(t=A[e],0,ze,e),g=t),A.hasOwnProperty(e="ROUNDING_MODE")&&(Xe(t=A[e],0,8,e),d=t),A.hasOwnProperty(e="EXPONENTIAL_AT")&&((t=A[e])&&t.pop?(Xe(t[0],-ze,0,e),Xe(t[1],0,ze,e),w=t[0],p=t[1]):(Xe(t,-ze,ze,e),w=-(p=t<0?-t:t))),A.hasOwnProperty(e="RANGE"))if((t=A[e])&&t.pop)Xe(t[0],-ze,-1,e),Xe(t[1],1,ze,e),b=t[0],B=t[1];else{if(Xe(t,-ze,ze,e),!t)throw Error(Te+e+" cannot be zero: "+t);b=-(B=t<0?-t:t)}if(A.hasOwnProperty(e="CRYPTO")){if((t=A[e])!==!!t)throw Error(Te+e+" not true or false: "+t);if(t){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw m=!t,Error(Te+"crypto unavailable");m=t}else m=t}if(A.hasOwnProperty(e="MODULO_MODE")&&(Xe(t=A[e],0,9,e),v=t),A.hasOwnProperty(e="POW_PRECISION")&&(Xe(t=A[e],0,ze,e),y=t),A.hasOwnProperty(e="FORMAT")){if("object"!=typeof(t=A[e]))throw Error(Te+e+" not an object: "+t);E=t}if(A.hasOwnProperty(e="ALPHABET")){if("string"!=typeof(t=A[e])||/^.?$|[+\-.\s]|(.).*\1/.test(t))throw Error(Te+e+" invalid: "+t);_="0123456789"==t.slice(0,10),k=t}}return{DECIMAL_PLACES:g,ROUNDING_MODE:d,EXPONENTIAL_AT:[w,p],RANGE:[b,B],CRYPTO:m,MODULO_MODE:v,POW_PRECISION:y,FORMAT:E,ALPHABET:k}},M.isBigNumber=function(A){if(!A||!0!==A._isBigNumber)return!1;if(!M.DEBUG)return!0;var e,t,r=A.c,n=A.e,i=A.s;A:if("[object Array]"=={}.toString.call(r)){if((1===i||-1===i)&&n>=-ze&&n<=ze&&n===Se(n)){if(0===r[0]){if(0===n&&1===r.length)return!0;break A}if((e=(n+1)%Re)<1&&(e+=Re),String(r[0]).length==e){for(e=0;e<r.length;e++)if((t=r[e])<0||t>=Le||t!==Se(t))break A;if(0!==t)return!0}}}else if(null===r&&null===n&&(null===i||1===i||-1===i))return!0;throw Error(Te+"Invalid BigNumber: "+A)},M.maximum=M.max=function(){return x(arguments,-1)},M.minimum=M.min=function(){return x(arguments,1)},M.random=(i=9007199254740992,o=Math.random()*i&2097151?function(){return Se(Math.random()*i)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(A){var e,t,r,n,i,s=0,a=[],l=new M(h);if(null==A?A=g:Xe(A,0,ze),n=Fe(A/Re),m)if(crypto.getRandomValues){for(e=crypto.getRandomValues(new Uint32Array(n*=2));s<n;)(i=131072*e[s]+(e[s+1]>>>11))>=9e15?(t=crypto.getRandomValues(new Uint32Array(2)),e[s]=t[0],e[s+1]=t[1]):(a.push(i%1e14),s+=2);s=n/2}else{if(!crypto.randomBytes)throw m=!1,Error(Te+"crypto unavailable");for(e=crypto.randomBytes(n*=7);s<n;)(i=281474976710656*(31&e[s])+1099511627776*e[s+1]+4294967296*e[s+2]+16777216*e[s+3]+(e[s+4]<<16)+(e[s+5]<<8)+e[s+6])>=9e15?crypto.randomBytes(7).copy(e,s):(a.push(i%1e14),s+=7);s=n/7}if(!m)for(;s<n;)(i=o())<9e15&&(a[s++]=i%1e14);for(n=a[--s],A%=Re,n&&A&&(i=Ye[Re-A],a[s]=Se(n/i)*i);0===a[s];a.pop(),s--);if(s<0)a=[r=0];else{for(r=-1;0===a[0];a.splice(0,1),r-=Re);for(s=1,i=a[0];i>=10;i/=10,s++);s<Re&&(r-=Re-s)}return l.e=r,l.c=a,l}),M.sum=function(){for(var A=1,e=arguments,t=new M(e[0]);A<e.length;)t=t.plus(e[A++]);return t},r=function(){var A="0123456789";function e(A,e,t,r){for(var n,i,o=[0],s=0,a=A.length;s<a;){for(i=o.length;i--;o[i]*=e);for(o[0]+=r.indexOf(A.charAt(s++)),n=0;n<o.length;n++)o[n]>t-1&&(null==o[n+1]&&(o[n+1]=0),o[n+1]+=o[n]/t|0,o[n]%=t)}return o.reverse()}return function(r,n,i,o,s){var a,l,f,u,c,h,w,p,b=r.indexOf("."),B=g,m=d;for(b>=0&&(u=y,y=0,r=r.replace(".",""),h=(p=new M(n)).pow(r.length-b),y=u,p.c=e(Ze(Ne(h.c),h.e,"0"),10,i,A),p.e=p.c.length),f=u=(w=e(r,n,i,s?(a=k,A):(a=A,k))).length;0==w[--u];w.pop());if(!w[0])return a.charAt(0);if(b<0?--f:(h.c=w,h.e=f,h.s=o,w=(h=t(h,p,B,m,i)).c,c=h.r,f=h.e),b=w[l=f+B+1],u=i/2,c=c||l<0||null!=w[l+1],c=m<4?(null!=b||c)&&(0==m||m==(h.s<0?3:2)):b>u||b==u&&(4==m||c||6==m&&1&w[l-1]||m==(h.s<0?8:7)),l<1||!w[0])r=c?Ze(a.charAt(1),-B,a.charAt(0)):a.charAt(0);else{if(w.length=l,c)for(--i;++w[--l]>i;)w[l]=0,l||(++f,w=[1].concat(w));for(u=w.length;!w[--u];);for(b=0,r="";b<=u;r+=a.charAt(w[b++]));r=Ze(r,f,a.charAt(0))}return r}}(),t=function(){function A(A,e,t){var r,n,i,o,s=0,a=A.length,l=e%Oe,f=e/Oe|0;for(A=A.slice();a--;)s=((n=l*(i=A[a]%Oe)+(r=f*i+(o=A[a]/Oe|0)*l)%Oe*Oe+s)/t|0)+(r/Oe|0)+f*o,A[a]=n%t;return s&&(A=[s].concat(A)),A}function e(A,e,t,r){var n,i;if(t!=r)i=t>r?1:-1;else for(n=i=0;n<t;n++)if(A[n]!=e[n]){i=A[n]>e[n]?1:-1;break}return i}function t(A,e,t,r){for(var n=0;t--;)A[t]-=n,n=A[t]<e[t]?1:0,A[t]=n*r+A[t]-e[t];for(;!A[0]&&A.length>1;A.splice(0,1));}return function(r,n,i,o,s){var a,l,f,u,c,h,g,d,w,p,b,B,m,v,y,E,k,_=r.s==n.s?1:-1,Q=r.c,x=n.c;if(!(Q&&Q[0]&&x&&x[0]))return new M(r.s&&n.s&&(Q?!x||Q[0]!=x[0]:x)?Q&&0==Q[0]||!x?0*_:_/0:NaN);for(w=(d=new M(_)).c=[],_=i+(l=r.e-n.e)+1,s||(s=Le,l=He(r.e/Re)-He(n.e/Re),_=_/Re|0),f=0;x[f]==(Q[f]||0);f++);if(x[f]>(Q[f]||0)&&l--,_<0)w.push(1),u=!0;else{for(v=Q.length,E=x.length,f=0,_+=2,(c=Se(s/(x[0]+1)))>1&&(x=A(x,c,s),Q=A(Q,c,s),E=x.length,v=Q.length),m=E,b=(p=Q.slice(0,E)).length;b<E;p[b++]=0);k=x.slice(),k=[0].concat(k),y=x[0],x[1]>=s/2&&y++;do{if(c=0,(a=e(x,p,E,b))<0){if(B=p[0],E!=b&&(B=B*s+(p[1]||0)),(c=Se(B/y))>1)for(c>=s&&(c=s-1),g=(h=A(x,c,s)).length,b=p.length;1==e(h,p,g,b);)c--,t(h,E<g?k:x,g,s),g=h.length,a=1;else 0==c&&(a=c=1),g=(h=x.slice()).length;if(g<b&&(h=[0].concat(h)),t(p,h,b,s),b=p.length,-1==a)for(;e(x,p,E,b)<1;)c++,t(p,E<b?k:x,b,s),b=p.length}else 0===a&&(c++,p=[0]);w[f++]=c,p[0]?p[b++]=Q[m]||0:(p=[Q[m]],b=1)}while((m++<v||null!=p[0])&&_--);u=null!=p[0],w[0]||w.splice(0,1)}if(s==Le){for(f=1,_=w[0];_>=10;_/=10,f++);C(d,i+(d.e=f+l*Re-1)+1,o,u)}else d.e=l,d.r=+u;return d}}(),s=/^(-?)0([xbo])(?=\w[\w.]*$)/i,a=/^([^.]+)\.$/,l=/^\.([^.]+)$/,f=/^-?(Infinity|NaN)$/,u=/^\s*\+(?=[\w.])|^\s+|\s+$/g,n=function(A,e,t,r){var n,i=t?e:e.replace(u,"");if(f.test(i))A.s=isNaN(i)?null:i<0?-1:1;else{if(!t&&(i=i.replace(s,function(A,e,t){return n="x"==(t=t.toLowerCase())?16:"b"==t?2:8,r&&r!=n?A:e}),r&&(n=r,i=i.replace(a,"$1").replace(l,"0.$1")),e!=i))return new M(i,n);if(M.DEBUG)throw Error(Te+"Not a"+(r?" base "+r:"")+" number: "+e);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,e){return Ve(this,new M(A,e))},c.decimalPlaces=c.dp=function(A,e){var t,r,n,i=this;if(null!=A)return Xe(A,0,ze),null==e?e=d:Xe(e,0,8),C(new M(i),A+i.e+1,e);if(!(t=i.c))return null;if(r=((n=t.length-1)-He(this.e/Re))*Re,n=t[n])for(;n%10==0;n/=10,r--);return r<0&&(r=0),r},c.dividedBy=c.div=function(A,e){return t(this,new M(A,e),g,d)},c.dividedToIntegerBy=c.idiv=function(A,e){return t(this,new M(A,e),0,1)},c.exponentiatedBy=c.pow=function(A,e){var t,r,n,i,o,s,a,l,f=this;if((A=new M(A)).c&&!A.isInteger())throw Error(Te+"Exponent not an integer: "+I(A));if(null!=e&&(e=new M(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 l=new M(Math.pow(+I(f),o?A.s*(2-je(A)):+I(A))),e?l.mod(e):l;if(s=A.s<0,e){if(e.c?!e.c[0]:!e.s)return new M(NaN);(r=!s&&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&&je(A)?-0:0,f.e>-1&&(i=1/i),new M(s?1/i:i);y&&(i=Fe(y/Re+2))}for(o?(t=new M(.5),s&&(A.s=1),a=je(A)):a=(n=Math.abs(+I(A)))%2,l=new M(h);;){if(a){if(!(l=l.times(f)).c)break;i?l.c.length>i&&(l.c.length=i):r&&(l=l.mod(e))}if(n){if(0===(n=Se(n/2)))break;a=n%2}else if(C(A=A.times(t),A.e+1,1),A.e>14)a=je(A);else{if(0===(n=+I(A)))break;a=n%2}f=f.times(f),i?f.c&&f.c.length>i&&(f.c.length=i):r&&(f=f.mod(e))}return r?l:(s&&(l=h.div(l)),e?l.mod(e):i?C(l,y,d,undefined):l)},c.integerValue=function(A){var e=new M(this);return null==A?A=d:Xe(A,0,8),C(e,e.e+1,A)},c.isEqualTo=c.eq=function(A,e){return 0===Ve(this,new M(A,e))},c.isFinite=function(){return!!this.c},c.isGreaterThan=c.gt=function(A,e){return Ve(this,new M(A,e))>0},c.isGreaterThanOrEqualTo=c.gte=function(A,e){return 1===(e=Ve(this,new M(A,e)))||0===e},c.isInteger=function(){return!!this.c&&He(this.e/Re)>this.c.length-2},c.isLessThan=c.lt=function(A,e){return Ve(this,new M(A,e))<0},c.isLessThanOrEqualTo=c.lte=function(A,e){return-1===(e=Ve(this,new M(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,r,n,i,o=this,s=o.s;if(e=(A=new M(A,e)).s,!s||!e)return new M(NaN);if(s!=e)return A.s=-e,o.plus(A);var a=o.e/Re,l=A.e/Re,f=o.c,u=A.c;if(!a||!l){if(!f||!u)return f?(A.s=-e,A):new M(u?o:NaN);if(!f[0]||!u[0])return u[0]?(A.s=-e,A):new M(f[0]?o:3==d?-0:0)}if(a=He(a),l=He(l),f=f.slice(),s=a-l){for((i=s<0)?(s=-s,n=f):(l=a,n=u),n.reverse(),e=s;e--;n.push(0));n.reverse()}else for(r=(i=(s=f.length)<(e=u.length))?s:e,s=e=0;e<r;e++)if(f[e]!=u[e]){i=f[e]<u[e];break}if(i&&(n=f,f=u,u=n,A.s=-A.s),(e=(r=u.length)-(t=f.length))>0)for(;e--;f[t++]=0);for(e=Le-1;r>s;){if(f[--r]<u[r]){for(t=r;t&&!f[--t];f[t]=e);--f[t],f[r]+=Le}f[r]-=u[r]}for(;0==f[0];f.splice(0,1),--l);return f[0]?D(A,f,l):(A.s=3==d?-1:1,A.c=[A.e=0],A)},c.modulo=c.mod=function(A,e){var r,n,i=this;return A=new M(A,e),!i.c||!A.s||A.c&&!A.c[0]?new M(NaN):!A.c||i.c&&!i.c[0]?new M(i):(9==v?(n=A.s,A.s=1,r=t(i,A,0,3),A.s=n,r.s*=n):r=t(i,A,0,v),(A=i.minus(r.times(A))).c[0]||1!=v||(A.s=i.s),A)},c.multipliedBy=c.times=function(A,e){var t,r,n,i,o,s,a,l,f,u,c,h,g,d,w,p=this,b=p.c,B=(A=new M(A,e)).c;if(!(b&&B&&b[0]&&B[0]))return!p.s||!A.s||b&&!b[0]&&!B||B&&!B[0]&&!b?A.c=A.e=A.s=null:(A.s*=p.s,b&&B?(A.c=[0],A.e=0):A.c=A.e=null),A;for(r=He(p.e/Re)+He(A.e/Re),A.s*=p.s,(a=b.length)<(u=B.length)&&(g=b,b=B,B=g,n=a,a=u,u=n),n=a+u,g=[];n--;g.push(0));for(d=Le,w=Oe,n=u;--n>=0;){for(t=0,c=B[n]%w,h=B[n]/w|0,i=n+(o=a);i>n;)t=((l=c*(l=b[--o]%w)+(s=h*l+(f=b[o]/w|0)*c)%w*w+g[i]+t)/d|0)+(s/w|0)+h*f,g[i--]=l%d;g[i]=t}return t?++r:g.splice(0,1),D(A,g,r)},c.negated=function(){var A=new M(this);return A.s=-A.s||null,A},c.plus=function(A,e){var t,r=this,n=r.s;if(e=(A=new M(A,e)).s,!n||!e)return new M(NaN);if(n!=e)return A.s=-e,r.minus(A);var i=r.e/Re,o=A.e/Re,s=r.c,a=A.c;if(!i||!o){if(!s||!a)return new M(n/0);if(!s[0]||!a[0])return a[0]?A:new M(s[0]?r:0*n)}if(i=He(i),o=He(o),s=s.slice(),n=i-o){for(n>0?(o=i,t=a):(n=-n,t=s),t.reverse();n--;t.push(0));t.reverse()}for((n=s.length)-(e=a.length)<0&&(t=a,a=s,s=t,e=n),n=0;e;)n=(s[--e]=s[e]+a[e]+n)/Le|0,s[e]=Le===s[e]?0:s[e]%Le;return n&&(s=[n].concat(s),++o),D(A,s,o)},c.precision=c.sd=function(A,e){var t,r,n,i=this;if(null!=A&&A!==!!A)return Xe(A,1,ze),null==e?e=d:Xe(e,0,8),C(new M(i),A,e);if(!(t=i.c))return null;if(r=(n=t.length-1)*Re+1,n=t[n]){for(;n%10==0;n/=10,r--);for(n=t[0];n>=10;n/=10,r++);}return A&&i.e+1>r&&(r=i.e+1),r},c.shiftedBy=function(A){return Xe(A,-9007199254740991,Ue),this.times("1e"+A)},c.squareRoot=c.sqrt=function(){var A,e,r,n,i,o=this,s=o.c,a=o.s,l=o.e,f=g+4,u=new M("0.5");if(1!==a||!s||!s[0])return new M(!a||a<0&&(!s||s[0])?NaN:s?o:1/0);if(0==(a=Math.sqrt(+I(o)))||a==1/0?(((e=Ne(s)).length+l)%2==0&&(e+="0"),a=Math.sqrt(+e),l=He((l+1)/2)-(l<0||l%2),r=new M(e=a==1/0?"5e"+l:(e=a.toExponential()).slice(0,e.indexOf("e")+1)+l)):r=new M(a+""),r.c[0])for((a=(l=r.e)+f)<3&&(a=0);;)if(i=r,r=u.times(i.plus(t(o,i,f,1))),Ne(i.c).slice(0,a)===(e=Ne(r.c)).slice(0,a)){if(r.e<l&&--a,"9999"!=(e=e.slice(a-3,a+1))&&(n||"4999"!=e)){+e&&(+e.slice(1)||"5"!=e.charAt(0))||(C(r,r.e+g+2,1),A=!r.times(r).eq(o));break}if(!n&&(C(i,i.e+g+2,0),i.times(i).eq(o))){r=i;break}f+=4,a+=4,n=1}return C(r,r.e+g+1,d,A)},c.toExponential=function(A,e){return null!=A&&(Xe(A,0,ze),A++),Q(this,A,e,1)},c.toFixed=function(A,e){return null!=A&&(Xe(A,0,ze),A=A+this.e+1),Q(this,A,e)},c.toFormat=function(A,e,t){var r,n=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(Te+"Argument not an object: "+t);if(r=n.toFixed(A,e),n.c){var i,o=r.split("."),s=+t.groupSize,a=+t.secondaryGroupSize,l=t.groupSeparator||"",f=o[0],u=o[1],c=n.s<0,h=c?f.slice(1):f,g=h.length;if(a&&(i=s,s=a,a=i,g-=i),s>0&&g>0){for(i=g%s||s,f=h.substr(0,i);i<g;i+=s)f+=l+h.substr(i,s);a>0&&(f+=l+h.slice(i)),c&&(f="-"+f)}r=u?f+(t.decimalSeparator||"")+((a=+t.fractionGroupSize)?u.replace(new RegExp("\\d{"+a+"}\\B","g"),"$&"+(t.fractionGroupSeparator||"")):u):f}return(t.prefix||"")+r+(t.suffix||"")},c.toFraction=function(A){var e,r,n,i,o,s,a,l,f,u,c,g,w=this,p=w.c;if(null!=A&&(!(a=new M(A)).isInteger()&&(a.c||1!==a.s)||a.lt(h)))throw Error(Te+"Argument "+(a.isInteger()?"out of range: ":"not an integer: ")+I(a));if(!p)return new M(w);for(e=new M(h),f=r=new M(h),n=l=new M(h),g=Ne(p),o=e.e=g.length-w.e-1,e.c[0]=Ye[(s=o%Re)<0?Re+s:s],A=!A||a.comparedTo(e)>0?o>0?e:f:a,s=B,B=1/0,a=new M(g),l.c[0]=0;u=t(a,e,0,1),1!=(i=r.plus(u.times(n))).comparedTo(A);)r=n,n=i,f=l.plus(u.times(i=f)),l=i,e=a.minus(u.times(i=e)),a=i;return i=t(A.minus(r),n,0,1),l=l.plus(i.times(f)),r=r.plus(i.times(n)),l.s=f.s=w.s,c=t(f,n,o*=2,d).minus(w).abs().comparedTo(t(l,r,o,d).minus(w).abs())<1?[f,n]:[l,r],B=s,c},c.toNumber=function(){return+I(this)},c.toPrecision=function(A,e){return null!=A&&Xe(A,1,ze),Q(this,A,e,2)},c.toString=function(A){var e,t=this,n=t.s,i=t.e;return null===i?n?(e="Infinity",n<0&&(e="-"+e)):e="NaN":(null==A?e=i<=w||i>=p?We(Ne(t.c),i):Ze(Ne(t.c),i,"0"):10===A&&_?e=Ze(Ne((t=C(new M(t),g+i+1,d)).c),t.e,"0"):(Xe(A,2,k.length,"Base"),e=r(Ze(Ne(t.c),i,"0"),10,A,n,!0)),n<0&&t.c[0]&&(e="-"+e)),e},c.valueOf=c.toJSON=function(){return I(this)},c._isBigNumber=!0,c[Symbol.toStringTag]="BigNumber",c[Symbol.for("nodejs.util.inspect.custom")]=c.valueOf,null!=e&&M.set(e),M}(),Ke=class{key;left=null;right=null;constructor(A){this.key=A}},qe=class extends Ke{constructor(A){super(A)}},$e=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,r=null,n=null,i=null,o=e;const s=this.compare;let a;for(;;)if(a=s(o.key,A),a>0){let e=o.left;if(null==e)break;if(a=s(e.key,A),a>0&&(o.left=e.right,e.right=o,o=e,e=o.left,null==e))break;null==t?r=o:t.left=o,t=o,o=e}else{if(!(a<0))break;{let e=o.right;if(null==e)break;if(a=s(e.key,A),a<0&&(o.right=e.left,e.left=o,o=e,e=o.right,null==e))break;null==n?i=o:n.right=o,n=o,o=e}}return null!=n&&(n.right=o.left,o.left=i),null!=t&&(t.left=o.right,o.right=r),this.root!==o&&(this.root=o,this.splayCount++),a}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,r=e.left;if(this.size--,null==r)this.root=e.right;else{const A=e.right;e=this.splayMax(r),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)}}},At=class A extends $e{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 qe(A),e),this}addAndReturn(A){const e=this.splay(A);return 0!=e&&this.addNewRoot(new qe(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),r=this.modificationCount;for(const A of e){if(r!=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 qe(A.key);return function A(e,t){let r,n;do{if(r=e.left,n=e.right,null!=r){const e=new qe(r.key);t.left=e,A(r,e)}if(null!=n){const A=new qe(n.key);t.right=A,e=n,t=A}}while(null!=n)}(A,e),e}toSet(){return this.clone()}entries(){return new rt(this.wrap())}keys(){return this[Symbol.iterator]()}values(){return this[Symbol.iterator]()}[Symbol.iterator](){return new tt(this.wrap())}[Symbol.toStringTag]="[object Set]"},et=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}},tt=class extends et{getValue(A){return A.key}},rt=class extends et{getValue(A){return[A.key,A.key]}},nt=A=>()=>A,it=A=>{const e=A?(e,t)=>t.minus(e).abs().isLessThanOrEqualTo(A):nt(!1);return(A,t)=>e(A,t)?0:A.comparedTo(t)};function ot(A){const e=A?(e,t,r,n,i)=>e.exponentiatedBy(2).isLessThanOrEqualTo(n.minus(t).exponentiatedBy(2).plus(i.minus(r).exponentiatedBy(2)).times(A)):nt(!1);return(A,t,r)=>{const n=A.x,i=A.y,o=r.x,s=r.y,a=i.minus(s).times(t.x.minus(o)).minus(n.minus(o).times(t.y.minus(s)));return e(a,n,i,o,s)?0:a.comparedTo(0)}}var st=A=>A,at=A=>{if(A){const e=new At(it(A)),t=new At(it(A)),r=(A,e)=>e.addAndReturn(A),n=A=>({x:r(A.x,e),y:r(A.y,t)});return n({x:new Je(0),y:new Je(0)}),n}return st},lt=A=>({set:A=>{ft=lt(A)},reset:()=>lt(A),compare:it(A),snap:at(A),orient:ot(A)}),ft=lt(),ut=(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),ct=(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,r=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:r,y:A.ur.y.isLessThan(e.ur.y)?A.ur.y:e.ur.y}}},ht=(A,e)=>A.x.times(e.y).minus(A.y.times(e.x)),gt=(A,e)=>A.x.times(e.x).plus(A.y.times(e.y)),dt=A=>gt(A,A).sqrt(),wt=(A,e,t)=>{const r={x:e.x.minus(A.x),y:e.y.minus(A.y)},n={x:t.x.minus(A.x),y:t.y.minus(A.y)};return ht(n,r).div(dt(n)).div(dt(r))},pt=(A,e,t)=>{const r={x:e.x.minus(A.x),y:e.y.minus(A.y)},n={x:t.x.minus(A.x),y:t.y.minus(A.y)};return gt(n,r).div(dt(n)).div(dt(r))},bt=(A,e,t)=>e.y.isZero()?null:{x:A.x.plus(e.x.div(e.y).times(t.minus(A.y))),y:t},Bt=(A,e,t)=>e.x.isZero()?null:{x:t,y:A.y.plus(e.y.div(e.x).times(t.minus(A.x)))},mt=class A{point;isLeft;segment;otherSE;consumedBy;static compare(e,t){const r=A.comparePoints(e.point,t.point);return 0!==r?r:(e.point!==t.point&&e.link(t),e.isLeft!==t.isLeft?e.isLeft?1:-1:xt.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 r=e+1;r<A;r++){const A=this.point.events[r];void 0===A.consumedBy&&(t.otherSE.point.events===A.otherSE.point.events&&t.segment.consume(A.segment))}}}getAvailableLinkedEvents(){const A=[];for(let e=0,t=this.point.events.length;e<t;e++){const t=this.point.events[e];t!==this&&!t.segment.ringOut&&t.segment.isInResult()&&A.push(t)}return A}getLeftmostComparator(A){const e=new Map,t=t=>{const r=t.otherSE;e.set(t,{sine:wt(this.point,A.point,r.point),cosine:pt(this.point,A.point,r.point)})};return(A,r)=>{e.has(A)||t(A),e.has(r)||t(r);const{sine:n,cosine:i}=e.get(A),{sine:o,cosine:s}=e.get(r);return n.isGreaterThanOrEqualTo(0)&&o.isGreaterThanOrEqualTo(0)?i.isLessThan(s)?1:i.isGreaterThan(s)?-1:0:n.isLessThan(0)&&o.isLessThan(0)?i.isLessThan(s)?-1:i.isGreaterThan(s)?1:0:o.isLessThan(n)?-1:o.isGreaterThan(n)?1:0}}},vt=class A{events;poly;_isExteriorRing;_enclosingRing;static factory(e){const t=[];for(let r=0,n=e.length;r<n;r++){const n=e[r];if(!n.isInResult()||n.ringOut)continue;let i=null,o=n.leftSE,s=n.rightSE;const a=[o],l=o.point,f=[];for(;i=o,o=s,a.push(o),o.point!==l;)for(;;){const e=o.getAvailableLinkedEvents();if(0===e.length){const A=a[0].point,e=a[a.length-1].point;throw new Error(`Unable to complete output ring starting at [${A.x}, ${A.y}]. Last matching segment found ends at [${e.x}, ${e.y}].`)}if(1===e.length){s=e[0].otherSE;break}let r=null;for(let A=0,e=f.length;A<e;A++)if(f[A].point===o.point){r=A;break}if(null!==r){const e=f.splice(r)[0],n=a.splice(e.index);n.unshift(n[0].otherSE),t.push(new A(n.reverse()));continue}f.push({index:a.length,point:o.point});const n=o.getLeftmostComparator(i);s=e.sort(n)[0].otherSE;break}t.push(new A(a))}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,r=this.events.length-1;t<r;t++){const r=this.events[t].point,n=this.events[t+1].point;0!==ft.orient(r,A,n)&&(e.push(r),A=r)}if(1===e.length)return null;const t=e[0],r=e[1];0===ft.orient(t,A,r)&&e.shift(),e.push(e[0]);const n=this.isExteriorRing()?1:-1,i=this.isExteriorRing()?0:e.length-1,o=this.isExteriorRing()?e.length:-1,s=[];for(let A=i;A!=o;A+=n)s.push([e[A].x.toNumber(),e[A].y.toNumber()]);return s}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];mt.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}}},yt=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}},Et=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,r=A.length;t<r;t++){const r=A[t];if(!r.poly)if(r.isExteriorRing())e.push(new yt(r));else{const A=r.enclosingRing();A?.poly||e.push(new yt(A)),A?.poly?.addInterior(r)}}return e}},kt=class{queue;tree;segments;constructor(A,e=xt.compare){this.queue=A,this.tree=new At(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 r=e,n=e;do{r=this.tree.lastBefore(r)}while(null!=r&&null!=r.consumedBy);do{n=this.tree.firstAfter(n)}while(null!=n&&null!=n.consumedBy);if(A.isLeft){let i=null;if(r){const A=r.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(i=A),!r.isAnEndpoint(A))){const e=this._splitSafely(r,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}}let o=null;if(n){const A=n.getIntersection(e);if(null!==A&&(e.isAnEndpoint(A)||(o=A),!n.isAnEndpoint(A))){const e=this._splitSafely(n,A);for(let A=0,r=e.length;A<r;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=mt.comparePoints(i,o)<=0?i:o}this.queue.delete(e.rightSE),t.push(e.rightSE);const r=e.split(A);for(let A=0,e=r.length;A<e;A++)t.push(r[A])}t.length>0?(this.tree.delete(e),t.push(A)):(this.segments.push(e),e.prev=r)}else{if(r&&n){const A=r.getIntersection(n);if(null!==A){if(!r.isAnEndpoint(A)){const e=this._splitSafely(r,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}if(!n.isAnEndpoint(A)){const e=this._splitSafely(n,A);for(let A=0,r=e.length;A<r;A++)t.push(e[A])}}}this.tree.delete(e)}return t}_splitSafely(A,e){this.tree.delete(A);const t=A.rightSE;this.queue.delete(t);const r=A.split(e);return r.push(t),void 0===A.consumedBy&&this.tree.add(A),r}},_t=new class{type;numMultiPolys;run(A,e,t){_t.type=A;const r=[new It(e,!0)];for(let A=0,e=t.length;A<e;A++)r.push(new It(t[A],!1));if(_t.numMultiPolys=r.length,"difference"===_t.type){const A=r[0];let e=1;for(;e<r.length;)null!==ct(r[e].bbox,A.bbox)?e++:r.splice(e,1)}if("intersection"===_t.type)for(let A=0,e=r.length;A<e;A++){const e=r[A];for(let t=A+1,n=r.length;t<n;t++)if(null===ct(e.bbox,r[t].bbox))return[]}const n=new At(mt.compare);for(let A=0,e=r.length;A<e;A++){const e=r[A].getSweepEvents();for(let A=0,t=e.length;A<t;A++)n.add(e[A])}const i=new kt(n);let o=null;for(0!=n.size&&(o=n.first(),n.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&&n.add(t)}0!=n.size?(o=n.first(),n.delete(o)):o=null}ft.reset();const s=vt.factory(i.segments);return new Et(s).getGeom()}},Mt=_t,Qt=0,xt=class A{id;leftSE;rightSE;rings;windings;ringOut;consumedBy;prev;_prevInResult;_beforeState;_afterState;_isInResult;static compare(A,e){const t=A.leftSE.point.x,r=e.leftSE.point.x,n=A.rightSE.point.x,i=e.rightSE.point.x;if(i.isLessThan(t))return 1;if(n.isLessThan(r))return-1;const o=A.leftSE.point.y,s=e.leftSE.point.y,a=A.rightSE.point.y,l=e.rightSE.point.y;if(t.isLessThan(r)){if(s.isLessThan(o)&&s.isLessThan(a))return 1;if(s.isGreaterThan(o)&&s.isGreaterThan(a))return-1;const t=A.comparePoint(e.leftSE.point);if(t<0)return 1;if(t>0)return-1;const r=e.comparePoint(A.rightSE.point);return 0!==r?r:-1}if(t.isGreaterThan(r)){if(o.isLessThan(s)&&o.isLessThan(l))return-1;if(o.isGreaterThan(s)&&o.isGreaterThan(l))return 1;const t=e.comparePoint(A.leftSE.point);if(0!==t)return t;const r=A.comparePoint(e.rightSE.point);return r<0?1:r>0?-1:1}if(o.isLessThan(s))return-1;if(o.isGreaterThan(s))return 1;if(n.isLessThan(i)){const t=e.comparePoint(A.rightSE.point);if(0!==t)return t}if(n.isGreaterThan(i)){const t=A.comparePoint(e.rightSE.point);if(t<0)return 1;if(t>0)return-1}if(!n.eq(i)){const A=a.minus(o),e=n.minus(t),f=l.minus(s),u=i.minus(r);if(A.isGreaterThan(e)&&f.isLessThan(u))return 1;if(A.isLessThan(e)&&f.isGreaterThan(u))return-1}return n.isGreaterThan(i)?1:n.isLessThan(i)||a.isLessThan(l)?-1:a.isGreaterThan(l)?1:A.id<e.id?-1:A.id>e.id?1:0}constructor(A,e,t,r){this.id=++Qt,this.leftSE=A,A.segment=this,A.otherSE=e,this.rightSE=e,e.segment=this,e.otherSE=A,this.rings=t,this.windings=r}static fromRing(e,t,r){let n,i,o;const s=mt.comparePoints(e,t);if(s<0)n=e,i=t,o=1;else{if(!(s>0))throw new Error(`Tried to create degenerate segment at [${e.x}, ${e.y}]`);n=t,i=e,o=-1}const a=new mt(n,!0),l=new mt(i,!1);return new A(a,l,[r],[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 ft.orient(this.leftSE.point,A,this.rightSE.point)}getIntersection(A){const e=this.bbox(),t=A.bbox(),r=ct(e,t);if(null===r)return null;const n=this.leftSE.point,i=this.rightSE.point,o=A.leftSE.point,s=A.rightSE.point,a=ut(e,o)&&0===this.comparePoint(o),l=ut(t,n)&&0===A.comparePoint(n),f=ut(e,s)&&0===this.comparePoint(s),u=ut(t,i)&&0===A.comparePoint(i);if(l&&a)return u&&!f?i:!u&&f?s:null;if(l)return f&&n.x.eq(s.x)&&n.y.eq(s.y)?null:n;if(a)return u&&i.x.eq(o.x)&&i.y.eq(o.y)?null:o;if(u&&f)return null;if(u)return i;if(f)return s;const c=((A,e,t,r)=>{if(e.x.isZero())return Bt(t,r,A.x);if(r.x.isZero())return Bt(A,e,t.x);if(e.y.isZero())return bt(t,r,A.y);if(r.y.isZero())return bt(A,e,t.y);const n=ht(e,r);if(n.isZero())return null;const i={x:t.x.minus(A.x),y:t.y.minus(A.y)},o=ht(i,e).div(n),s=ht(i,r).div(n),a=A.x.plus(s.times(e.x)),l=t.x.plus(o.times(r.x)),f=A.y.plus(s.times(e.y)),u=t.y.plus(o.times(r.y));return{x:a.plus(l).div(2),y:f.plus(u).div(2)}})(n,this.vector(),o,A.vector());return null===c?null:ut(r,c)?ft.snap(c):null}split(e){const t=[],r=void 0!==e.events,n=new mt(e,!0),i=new mt(e,!1),o=this.rightSE;this.replaceRightSE(i),t.push(i),t.push(n);const s=new A(n,o,this.rings.slice(),this.windings.slice());return mt.comparePoints(s.leftSE.point,s.rightSE.point)>0&&s.swapEvents(),mt.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),r&&(n.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,r=e;for(;t.consumedBy;)t=t.consumedBy;for(;r.consumedBy;)r=r.consumedBy;const n=A.compare(t,r);if(0!==n){if(n>0){const A=t;t=r,r=A}if(t.prev===r){const A=t;t=r,r=A}for(let A=0,e=r.rings.length;A<e;A++){const e=r.rings[A],n=r.windings[A],i=t.rings.indexOf(e);-1===i?(t.rings.push(e),t.windings.push(n)):t.windings[i]+=n}r.rings=null,r.windings=null,r.consumedBy=t,r.leftSE.consumedBy=t.leftSE,r.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,r=this._afterState.multiPolys;for(let A=0,r=this.rings.length;A<r;A++){const r=this.rings[A],n=this.windings[A],i=e.indexOf(r);-1===i?(e.push(r),t.push(n)):t[i]+=n}const n=[],i=[];for(let A=0,r=e.length;A<r;A++){if(0===t[A])continue;const r=e[A],o=r.poly;if(-1===i.indexOf(o))if(r.isExterior)n.push(o);else{-1===i.indexOf(o)&&i.push(o);const A=n.indexOf(r.poly);-1!==A&&n.splice(A,1)}}for(let A=0,e=n.length;A<e;A++){const e=n[A].multiPoly;-1===r.indexOf(e)&&r.push(e)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(void 0!==this._isInResult)return this._isInResult;const A=this.beforeState().multiPolys,e=this.afterState().multiPolys;switch(Mt.type){case"union":{const t=0===A.length,r=0===e.length;this._isInResult=t!==r;break}case"intersection":{let t,r;A.length<e.length?(t=A.length,r=e.length):(t=e.length,r=A.length),this._isInResult=r===Mt.numMultiPolys&&t<r;break}case"xor":{const t=Math.abs(A.length-e.length);this._isInResult=t%2==1;break}case"difference":{const t=A=>1===A.length&&A[0].isSubject;this._isInResult=t(A)!==t(e);break}}return this._isInResult}},Dt=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 r=ft.snap({x:new Je(A[0][0]),y:new Je(A[0][1])});this.bbox={ll:{x:r.x,y:r.y},ur:{x:r.x,y:r.y}};let n=r;for(let e=1,t=A.length;e<t;e++){if("number"!=typeof A[e][0]||"number"!=typeof A[e][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const t=ft.snap({x:new Je(A[e][0]),y:new Je(A[e][1])});t.x.eq(n.x)&&t.y.eq(n.y)||(this.segments.push(xt.fromRing(n,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),n=t)}r.x.eq(n.x)&&r.y.eq(n.y)||this.segments.push(xt.fromRing(n,r,this))}getSweepEvents(){const A=[];for(let e=0,t=this.segments.length;e<t;e++){const t=this.segments[e];A.push(t.leftSE),A.push(t.rightSE)}return A}},Ct=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 Dt(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 Dt(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,r=t.length;e<r;e++)A.push(t[e])}return A}},It=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 Je(Number.POSITIVE_INFINITY),y:new Je(Number.POSITIVE_INFINITY)},ur:{x:new Je(Number.NEGATIVE_INFINITY),y:new Je(Number.NEGATIVE_INFINITY)}};for(let e=0,t=A.length;e<t;e++){const t=new Ct(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,r=t.length;e<r;e++)A.push(t[e])}return A}};function Pt(A,e={}){const t=[];if(Ee(A,A=>{t.push(A.coordinates)}),t.length<2)throw new Error("Must specify at least 2 geometries");const r=((A,...e)=>Mt.run("intersection",A,e))(t[0],...t.slice(1));return 0===r.length?null:1===r.length?function(A,e,t={}){for(const e of A){if(e.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(e[e.length-1].length!==e[0].length)throw new Error("First and last Position are not equivalent.");for(let A=0;A<e[e.length-1].length;A++)if(e[e.length-1][A]!==e[0][A])throw new Error("First and last Position are not equivalent.")}return ge({type:"Polygon",coordinates:A},e,t)}(r[0],e.properties):function(A,e,t={}){return ge({type:"MultiPolygon",coordinates:A},e,t)}(r,e.properties)}ft.set;class Ft{constructor(){this._partials=new Float64Array(32),this._n=0}add(A){const e=this._partials;let t=0;for(let r=0;r<this._n&&r<32;r++){const n=e[r],i=A+n,o=Math.abs(A)<Math.abs(n)?A-(i-n):n-(i-A);o&&(e[t++]=o),A=i}return e[t]=A,this._n=t+1,this}valueOf(){const A=this._partials;let e,t,r,n=this._n,i=0;if(n>0){for(i=A[--n];n>0&&(e=i,t=A[--n],i=e+t,r=t-(i-e),!r););n>0&&(r<0&&A[n-1]<0||r>0&&A[n-1]>0)&&(t=2*r,e=i+t,t==e-i&&(i=e))}return i}}var St=2*Math.PI,Tt=Math.abs,Gt=Math.sqrt;function Lt(){}function Rt(A,e){A&&Yt.hasOwnProperty(A.type)&&Yt[A.type](A,e)}var Ut={Feature:function(A,e){Rt(A.geometry,e)},FeatureCollection:function(A,e){for(var t=A.features,r=-1,n=t.length;++r<n;)Rt(t[r].geometry,e)}},Yt={Sphere:function(A,e){e.sphere()},Point:function(A,e){A=A.coordinates,e.point(A[0],A[1],A[2])},MultiPoint:function(A,e){for(var t=A.coordinates,r=-1,n=t.length;++r<n;)A=t[r],e.point(A[0],A[1],A[2])},LineString:function(A,e){Ot(A.coordinates,e,0)},MultiLineString:function(A,e){for(var t=A.coordinates,r=-1,n=t.length;++r<n;)Ot(t[r],e,0)},Polygon:function(A,e){zt(A.coordinates,e)},MultiPolygon:function(A,e){for(var t=A.coordinates,r=-1,n=t.length;++r<n;)zt(t[r],e)},GeometryCollection:function(A,e){for(var t=A.geometries,r=-1,n=t.length;++r<n;)Rt(t[r],e)}};function Ot(A,e,t){var r,n=-1,i=A.length-t;for(e.lineStart();++n<i;)r=A[n],e.point(r[0],r[1],r[2]);e.lineEnd()}function zt(A,e){var t=-1,r=A.length;for(e.polygonStart();++t<r;)Ot(A[t],e,1);e.polygonEnd()}function Ht(A,e){A&&Ut.hasOwnProperty(A.type)?Ut[A.type](A,e):Rt(A,e)}var Nt,Vt,Xt,jt,Wt=A=>A,Zt=new Ft,Jt=new Ft,Kt={point:Lt,lineStart:Lt,lineEnd:Lt,polygonStart:function(){Kt.lineStart=qt,Kt.lineEnd=er},polygonEnd:function(){Kt.lineStart=Kt.lineEnd=Kt.point=Lt,Zt.add(Tt(Jt)),Jt=new Ft},result:function(){var A=Zt/2;return Zt=new Ft,A}};function qt(){Kt.point=$t}function $t(A,e){Kt.point=Ar,Nt=Xt=A,Vt=jt=e}function Ar(A,e){Jt.add(jt*A-Xt*e),Xt=A,jt=e}function er(){Ar(Nt,Vt)}var tr=1/0,rr=tr,nr=-tr,ir=nr,or={point:function(A,e){A<tr&&(tr=A);A>nr&&(nr=A);e<rr&&(rr=e);e>ir&&(ir=e)},lineStart:Lt,lineEnd:Lt,polygonStart:Lt,polygonEnd:Lt,result:function(){var A=[[tr,rr],[nr,ir]];return nr=ir=-(rr=tr=1/0),A}};var sr,ar,lr,fr,ur=0,cr=0,hr=0,gr=0,dr=0,wr=0,pr=0,br=0,Br=0,mr={point:vr,lineStart:yr,lineEnd:_r,polygonStart:function(){mr.lineStart=Mr,mr.lineEnd=Qr},polygonEnd:function(){mr.point=vr,mr.lineStart=yr,mr.lineEnd=_r},result:function(){var A=Br?[pr/Br,br/Br]:wr?[gr/wr,dr/wr]:hr?[ur/hr,cr/hr]:[NaN,NaN];return ur=cr=hr=gr=dr=wr=pr=br=Br=0,A}};function vr(A,e){ur+=A,cr+=e,++hr}function yr(){mr.point=Er}function Er(A,e){mr.point=kr,vr(lr=A,fr=e)}function kr(A,e){var t=A-lr,r=e-fr,n=Gt(t*t+r*r);gr+=n*(lr+A)/2,dr+=n*(fr+e)/2,wr+=n,vr(lr=A,fr=e)}function _r(){mr.point=vr}function Mr(){mr.point=xr}function Qr(){Dr(sr,ar)}function xr(A,e){mr.point=Dr,vr(sr=lr=A,ar=fr=e)}function Dr(A,e){var t=A-lr,r=e-fr,n=Gt(t*t+r*r);gr+=n*(lr+A)/2,dr+=n*(fr+e)/2,wr+=n,pr+=(n=fr*A-lr*e)*(lr+A),br+=n*(fr+e),Br+=3*n,vr(lr=A,fr=e)}function Cr(A){this._context=A}Cr.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,St)}},result:Lt};var Ir,Pr,Fr,Sr,Tr,Gr=new Ft,Lr={point:Lt,lineStart:function(){Lr.point=Rr},lineEnd:function(){Ir&&Ur(Pr,Fr),Lr.point=Lt},polygonStart:function(){Ir=!0},polygonEnd:function(){Ir=null},result:function(){var A=+Gr;return Gr=new Ft,A}};function Rr(A,e){Lr.point=Ur,Pr=Sr=A,Fr=Tr=e}function Ur(A,e){Sr-=A,Tr-=e,Gr.add(Gt(Sr*Sr+Tr*Tr)),Sr=A,Tr=e}let Yr,Or,zr,Hr;class Nr{constructor(A){this._append=null==A?Vr:function(A){const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);if(e>15)return Vr;if(e!==Yr){const A=10**e;Yr=e,Or=function(e){let t=1;this._+=e[0];for(const r=e.length;t<r;++t)this._+=Math.round(arguments[t]*A)/A+e[t]}}return Or}(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!==zr||this._append!==Or){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`,zr=A,Or=this._append,Hr=this._,this._=e}this._+=Hr}}result(){const A=this._;return this._="",A.length?A:null}}function Vr(A){let e=1;this._+=A[0];for(const t=A.length;e<t;++e)this._+=arguments[e]+A[e]}function Xr(A,e,t,r,n){jr(A,e,t||0,r||A.length-1,n||Zr)}function jr(A,e,t,r,n){for(;r>t;){if(r-t>600){var i=r-t+1,o=e-t+1,s=Math.log(i),a=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*a*(i-a)/i)*(o-i/2<0?-1:1);jr(A,e,Math.max(t,Math.floor(e-o*a/i+l)),Math.min(r,Math.floor(e+(i-o)*a/i+l)),n)}var f=A[e],u=t,c=r;for(Wr(A,t,e),n(A[r],f)>0&&Wr(A,t,r);u<c;){for(Wr(A,u,c),u++,c--;n(A[u],f)<0;)u++;for(;n(A[c],f)>0;)c--}0===n(A[t],f)?Wr(A,t,c):Wr(A,++c,r),c<=e&&(t=c+1),e<=c&&(r=c-1)}}function Wr(A,e,t){var r=A[e];A[e]=A[t],A[t]=r}function Zr(A,e){return A<e?-1:A>e?1:0}class Jr{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(!ln(A,e))return t;const r=this.toBBox,n=[];for(;e;){for(let i=0;i<e.children.length;i++){const o=e.children[i],s=e.leaf?r(o):o;ln(A,s)&&(e.leaf?t.push(o):an(A,s)?this._all(o,t):n.push(o))}e=n.pop()}return t}collides(A){let e=this.data;if(!ln(A,e))return!1;const t=[];for(;e;){for(let r=0;r<e.children.length;r++){const n=e.children[r],i=e.leaf?this.toBBox(n):n;if(ln(A,i)){if(e.leaf||an(A,i))return!0;t.push(n)}}e=t.pop()}return!1}load(A){if(!A||!A.length)return this;if(A.length<this._minEntries){for(let e=0;e<A.length;e++)this.insert(A[e]);return this}let e=this._build(A.slice(),0,A.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){const A=this.data;this.data=e,e=A}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(A){return A&&this._insert(A,this.data.height-1),this}clear(){return this.data=fn([]),this}remove(A,e){if(!A)return this;let t=this.data;const r=this.toBBox(A),n=[],i=[];let o,s,a;for(;t||n.length;){if(t||(t=n.pop(),s=n[n.length-1],o=i.pop(),a=!0),t.leaf){const r=Kr(A,t.children,e);if(-1!==r)return t.children.splice(r,1),n.push(t),this._condense(n),this}a||t.leaf||!an(t,r)?s?(o++,t=s.children[o],a=!1):t=null:(n.push(t),i.push(o),o=0,s=t,t=t.children[0])}return this}toBBox(A){return A}compareMinX(A,e){return A.minX-e.minX}compareMinY(A,e){return A.minY-e.minY}toJSON(){return this.data}fromJSON(A){return this.data=A,this}_all(A,e){const t=[];for(;A;)A.leaf?e.push(...A.children):t.push(...A.children),A=t.pop();return e}_build(A,e,t,r){const n=t-e+1;let i,o=this._maxEntries;if(n<=o)return i=fn(A.slice(e,t+1)),qr(i,this.toBBox),i;r||(r=Math.ceil(Math.log(n)/Math.log(o)),o=Math.ceil(n/Math.pow(o,r-1))),i=fn([]),i.leaf=!1,i.height=r;const s=Math.ceil(n/o),a=s*Math.ceil(Math.sqrt(o));un(A,e,t,a,this.compareMinX);for(let n=e;n<=t;n+=a){const e=Math.min(n+a-1,t);un(A,n,e,s,this.compareMinY);for(let t=n;t<=e;t+=s){const n=Math.min(t+s-1,e);i.children.push(this._build(A,t,n,r-1))}}return qr(i,this.toBBox),i}_chooseSubtree(A,e,t,r){for(;r.push(e),!e.leaf&&r.length-1!==t;){let t,r=1/0,n=1/0;for(let i=0;i<e.children.length;i++){const o=e.children[i],s=rn(o),a=on(A,o)-s;a<n?(n=a,r=s<r?s:r,t=o):a===n&&s<r&&(r=s,t=o)}e=t||e.children[0]}return e}_insert(A,e,t){const r=t?A:this.toBBox(A),n=[],i=this._chooseSubtree(r,this.data,e,n);for(i.children.push(A),An(i,r);e>=0&&n[e].children.length>this._maxEntries;)this._split(n,e),e--;this._adjustParentBBoxes(r,n,e)}_split(A,e){const t=A[e],r=t.children.length,n=this._minEntries;this._chooseSplitAxis(t,n,r);const i=this._chooseSplitIndex(t,n,r),o=fn(t.children.splice(i,t.children.length-i));o.height=t.height,o.leaf=t.leaf,qr(t,this.toBBox),qr(o,this.toBBox),e?A[e-1].children.push(o):this._splitRoot(t,o)}_splitRoot(A,e){this.data=fn([A,e]),this.data.height=A.height+1,this.data.leaf=!1,qr(this.data,this.toBBox)}_chooseSplitIndex(A,e,t){let r,n=1/0,i=1/0;for(let o=e;o<=t-e;o++){const e=$r(A,0,o,this.toBBox),s=$r(A,o,t,this.toBBox),a=sn(e,s),l=rn(e)+rn(s);a<n?(n=a,r=o,i=l<i?l:i):a===n&&l<i&&(i=l,r=o)}return r||t-e}_chooseSplitAxis(A,e,t){const r=A.leaf?this.compareMinX:en,n=A.leaf?this.compareMinY:tn;this._allDistMargin(A,e,t,r)<this._allDistMargin(A,e,t,n)&&A.children.sort(r)}_allDistMargin(A,e,t,r){A.children.sort(r);const n=this.toBBox,i=$r(A,0,e,n),o=$r(A,t-e,t,n);let s=nn(i)+nn(o);for(let r=e;r<t-e;r++){const e=A.children[r];An(i,A.leaf?n(e):e),s+=nn(i)}for(let r=t-e-1;r>=e;r--){const e=A.children[r];An(o,A.leaf?n(e):e),s+=nn(o)}return s}_adjustParentBBoxes(A,e,t){for(let r=t;r>=0;r--)An(e[r],A)}_condense(A){for(let e,t=A.length-1;t>=0;t--)0===A[t].children.length?t>0?(e=A[t-1].children,e.splice(e.indexOf(A[t]),1)):this.clear():qr(A[t],this.toBBox)}}function Kr(A,e,t){if(!t)return e.indexOf(A);for(let r=0;r<e.length;r++)if(t(A,e[r]))return r;return-1}function qr(A,e){$r(A,0,A.children.length,e,A)}function $r(A,e,t,r,n){n||(n=fn(null)),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(let i=e;i<t;i++){const e=A.children[i];An(n,A.leaf?r(e):e)}return n}function An(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 en(A,e){return A.minX-e.minX}function tn(A,e){return A.minY-e.minY}function rn(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function nn(A){return A.maxX-A.minX+(A.maxY-A.minY)}function on(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 sn(A,e){const t=Math.max(A.minX,e.minX),r=Math.max(A.minY,e.minY),n=Math.min(A.maxX,e.maxX),i=Math.min(A.maxY,e.maxY);return Math.max(0,n-t)*Math.max(0,i-r)}function an(A,e){return A.minX<=e.minX&&A.minY<=e.minY&&e.maxX<=A.maxX&&e.maxY<=A.maxY}function ln(A,e){return e.minX<=A.maxX&&e.minY<=A.maxY&&e.maxX>=A.minX&&e.maxY>=A.minY}function fn(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function un(A,e,t,r,n){const i=[e,t];for(;i.length;){if((t=i.pop())-(e=i.pop())<=r)continue;const o=e+Math.ceil((t-e)/r/2)*r;Xr(A,o,e,t,n),i.push(e,o,o,t)}}function cn(A){var e=new Jr(A);return e.insert=function(A){if("Feature"!==A.type)throw new Error("invalid feature");return A.bbox=A.bbox?A.bbox:Me(A),Jr.prototype.insert.call(this,A)},e.load=function(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:Me(A),e.push(A)}):ye(A,function(A){if("Feature"!==A.type)throw new Error("invalid features");A.bbox=A.bbox?A.bbox:Me(A),e.push(A)}),Jr.prototype.load.call(this,e)},e.remove=function(A,e){if("Feature"!==A.type)throw new Error("invalid feature");return A.bbox=A.bbox?A.bbox:Me(A),Jr.prototype.remove.call(this,A,e)},e.clear=function(){return Jr.prototype.clear.call(this)},e.search=function(A){return pe(Jr.prototype.search.call(this,this.toBBox(A)))},e.collides=function(A){return Jr.prototype.collides.call(this,this.toBBox(A))},e.all=function(){return pe(Jr.prototype.all.call(this))},e.toJSON=function(){return Jr.prototype.toJSON.call(this)},e.fromJSON=function(A){return Jr.prototype.fromJSON.call(this,A)},e.toBBox=function(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=Me(A);else{if("FeatureCollection"!==A.type)throw new Error("invalid geojson");e=Me(A)}return{minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}},e}function hn(A,e,t={}){var r=xe(A),n=xe(e),i=Be(n[1]-r[1]),o=Be(n[0]-r[0]),s=Be(r[1]),a=Be(n[1]),l=Math.pow(Math.sin(i/2),2)+Math.pow(Math.sin(o/2),2)*Math.cos(s)*Math.cos(a);return function(A,e="kilometers"){const t=he[e];if(!t)throw new Error(e+" units is invalid");return A*t}(2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l)),t.units)}function gn(A,e){if(null===(t=e=null!=e?e:{})||"object"!=typeof t||Array.isArray(t))throw new Error("options is invalid");var t,r=e.precision,n=e.coordinates,i=e.mutate;if(r=null==r||isNaN(r)?6:r,n=null==n||isNaN(n)?3:n,!A)throw new Error("<geojson> is required");if("number"!=typeof r)throw new Error("<precision> must be a number");if("number"!=typeof n)throw new Error("<coordinates> must be a number");!1!==i&&void 0!==i||(A=JSON.parse(JSON.stringify(A)));var o=Math.pow(10,r);return ve(A,function(A){!function(A,e,t){A.length>t&&A.splice(t,A.length);for(var r=0;r<A.length;r++)A[r]=Math.round(A[r]*e)/e}(A,o,n)}),A}function dn(A){if(!A)throw new Error("geojson is required");const e=[];return ke(A,A=>{!function(A,e){let t=[];const r=A.geometry;if(null!==r){switch(r.type){case"Polygon":t=De(r);break;case"LineString":t=[De(r)]}t.forEach(t=>{const r=function(A,e){const t=[];return A.reduce((A,r)=>{const n=we([A,r],e);return n.bbox=function(A,e){const t=A[0],r=A[1],n=e[0],i=e[1],o=t<n?t:n,s=r<i?r:i,a=t>n?t:n,l=r>i?r:i;return[o,s,a,l]}(A,r),t.push(n),r}),t}(t,A.properties);r.forEach(A=>{A.id=e.length,e.push(A)})})}}(A,e)}),pe(e)}class wn{constructor(A=[],e=pn){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,r=e[A];for(;A>0;){const n=A-1>>1,i=e[n];if(t(r,i)>=0)break;e[A]=i,A=n}e[A]=r}_down(A){const{data:e,compare:t}=this,r=this.length>>1,n=e[A];for(;A<r;){let r=1+(A<<1),i=e[r];const o=r+1;if(o<this.length&&t(e[o],i)<0&&(r=o,i=e[o]),t(i,n)>=0)break;e[A]=i,A=r}e[A]=n}}function pn(A,e){return A<e?-1:A>e?1:0}function bn(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 Bn(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 mn{constructor(A,e,t,r){this.p={x:A[0],y:A[1]},this.featureId=e,this.ringId=t,this.eventId=r,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(A){return this.p.x===A.p.x&&this.p.y===A.p.y}}let vn=0,yn=0,En=0;function kn(A,e){const t="Feature"===A.type?A.geometry:A;let r=t.coordinates;"Polygon"!==t.type&&"MultiLineString"!==t.type||(r=[r]),"LineString"===t.type&&(r=[[r]]);for(let A=0;A<r.length;A++)for(let t=0;t<r[A].length;t++){let n=r[A][t][0],i=null;yn+=1;for(let o=0;o<r[A][t].length-1;o++){i=r[A][t][o+1];const s=new mn(n,vn,yn,En),a=new mn(i,vn,yn,En+1);s.otherEvent=a,a.otherEvent=s,bn(s,a)>0?(a.isLeftEndpoint=!0,s.isLeftEndpoint=!1):(s.isLeftEndpoint=!0,a.isLeftEndpoint=!1),e.push(s),e.push(a),n=i,En+=1}}vn+=1}class _n{constructor(A){this.leftSweepEvent=A,this.rightSweepEvent=A.otherEvent}}function Mn(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,r=A.leftSweepEvent.p.y,n=A.rightSweepEvent.p.x,i=A.rightSweepEvent.p.y,o=e.leftSweepEvent.p.x,s=e.leftSweepEvent.p.y,a=e.rightSweepEvent.p.x,l=e.rightSweepEvent.p.y,f=(l-s)*(n-t)-(a-o)*(i-r),u=(a-o)*(r-s)-(l-s)*(t-o),c=(n-t)*(r-s)-(i-r)*(t-o);if(0===f)return!1;const h=u/f,g=c/f;if(h>=0&&h<=1&&g>=0&&g<=1){return[t+h*(n-t),r+h*(i-r)]}return!1}var Qn=function(A,e){const t=new wn([],bn);return function(A,e){if("FeatureCollection"===A.type){const t=A.features;for(let A=0;A<t.length;A++)kn(t[A],e)}else kn(A,e)}(A,t),function(A,e){e=e||!1;const t=[],r=new wn([],Bn);for(;A.length;){const n=A.pop();if(n.isLeftEndpoint){const A=new _n(n);for(let i=0;i<r.data.length;i++){const o=r.data[i];if(e&&o.leftSweepEvent.featureId===n.featureId)continue;const s=Mn(A,o);!1!==s&&t.push(s)}r.push(A)}else!1===n.isLeftEndpoint&&r.pop()}return t}(t,e)};var xn=Object.defineProperty,Dn=Object.defineProperties,Cn=Object.getOwnPropertyDescriptors,In=Object.getOwnPropertySymbols,Pn=Object.prototype.hasOwnProperty,Fn=Object.prototype.propertyIsEnumerable,Sn=(A,e,t)=>e in A?xn(A,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):A[e]=t,Tn=(A,e)=>{for(var t in e||(e={}))Pn.call(e,t)&&Sn(A,t,e[t]);if(In)for(var t of In(e))Fn.call(e,t)&&Sn(A,t,e[t]);return A},Gn=(A,e)=>Dn(A,Cn(e));function Ln(A,e,t={}){if(!A||!e)throw new Error("lines and pt are required arguments");const r=xe(e);let n=de([1/0,1/0],{dist:1/0,index:-1,multiFeatureIndex:-1,location:-1}),i=0;return ke(A,function(A,o,s){const a=De(A);for(let A=0;A<a.length-1;A++){const o=de(a[A]);o.properties.dist=hn(e,o,t);const l=xe(o),f=de(a[A+1]);f.properties.dist=hn(e,f,t);const u=xe(f),c=hn(o,f,t);let h,g,d;l[0]===r[0]&&l[1]===r[1]?[h,,g]=[l,void 0,!1]:u[0]===r[0]&&u[1]===r[1]?[h,,g]=[u,void 0,!0]:[h,,g]=zn(o.geometry.coordinates,f.geometry.coordinates,xe(e)),h&&(d=de(h,{dist:hn(e,h,t),multiFeatureIndex:s,location:i+hn(o,h,t)})),d&&d.properties.dist<n.properties.dist&&(n=Gn(Tn({},d),{properties:Gn(Tn({},d.properties),{index:g?A+1:A})})),i+=c}}),n}function Rn(A){return Math.sqrt(Math.pow(A[0],2)+Math.pow(A[1],2)+Math.pow(A[2],2))}function Un(A,e){const t=function(A,e){const[t,r,n]=A,[i,o,s]=e;return t*i+r*o+n*s}(A,e)/(Rn(A)*Rn(e));return Math.acos(Math.min(Math.max(t,-1),1))}function Yn(A){const e=Be(A[1]),t=Be(A[0]);return[Math.cos(e)*Math.cos(t),Math.cos(e)*Math.sin(t),Math.sin(e)]}function On(A){const[e,t,r]=A,n=be(Math.asin(r));return[be(Math.atan2(t,e)),n]}function zn(A,e,t){const r=Yn(A),n=Yn(e),i=Yn(t),[o,s,a]=i,[l,f,u]=function(A,e){const[t,r,n]=A,[i,o,s]=e;return[r*s-n*o,n*i-t*s,t*o-r*i]}(r,n),c=f*a-u*s,h=u*o-l*a,g=l*s-f*o,d=g*f-h*u,w=c*u-g*l,p=h*l-c*f,b=1/Math.sqrt(Math.pow(d,2)+Math.pow(w,2)+Math.pow(p,2)),B=[d*b,w*b,p*b],m=[-1*d*b,-1*w*b,-1*p*b],v=Un(r,n),y=Un(r,B),E=Un(n,B),k=Un(r,m),_=Un(n,m);let M;return M=y<k&&y<_||E<k&&E<_?B:m,Un(r,M)>v||Un(n,M)>v?hn(On(M),On(r))<=hn(On(M),On(n))?[On(r),!0,!1]:[On(n),!1,!0]:[On(M),!1,!1]}function Hn(A,e){if(!A)throw new Error("line is required");if(!e)throw new Error("splitter is required");var t=Ce(A),r=Ce(e);if("LineString"!==t)throw new Error("line must be LineString");if("FeatureCollection"===r)throw new Error("splitter cannot be a FeatureCollection");if("GeometryCollection"===r)throw new Error("splitter cannot be a GeometryCollection");var n=gn(e,{precision:7});switch(r){case"Point":return Vn(A,n);case"MultiPoint":return Nn(A,n);case"LineString":case"MultiLineString":case"Polygon":case"MultiPolygon":return Nn(A,function(A,e,t={}){const{removeDuplicates:r=!0,ignoreSelfIntersections:n=!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(ge(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(ge(e));const o=Qn(pe(i),n);let s=[];if(r){const A={};o.forEach(e=>{const t=e.join(",");A[t]||(A[t]=!0,s.push(e))})}else s=o;return pe(s.map(A=>de(A)))}(A,n,{ignoreSelfIntersections:!0}))}}function Nn(A,e){var t=[],r=cn();return ke(e,function(e){if(t.forEach(function(A,e){A.id=e}),t.length){var n=r.search(e);if(n.features.length){var i=Xn(e,n);t=t.filter(function(A){return A.id!==i.id}),r.remove(i),ye(Vn(i,e),function(A){t.push(A),r.insert(A)})}}else(t=Vn(A,e).features).forEach(function(A){A.bbox||(A.bbox=function(A){var e=A[0],t=A[1],r=A[2],n=A[3];if(hn(A.slice(0,2),[r,t])>=hn(A.slice(0,2),[e,n])){var i=(t+n)/2;return[e,i-(r-e)/2,r,i+(r-e)/2]}var o=(e+r)/2;return[o-(n-t)/2,t,o+(n-t)/2,n]}(Me(A)))}),r.load(pe(t))}),pe(t)}function Vn(A,e){var t=[],r=De(A)[0],n=De(A)[A.geometry.coordinates.length-1];if(jn(r,xe(e))||jn(n,xe(e)))return pe([A]);var i=cn(),o=dn(A);i.load(o);var s=i.search(e);if(!s.features.length)return pe([A]);var a=Xn(e,s),l=function(A,e,t){var r=t;return ye(A,function(A,n){r=0===n&&void 0===t?A:e(r,A,n)}),r}(o,function(A,r,n){var i=De(r)[1],o=xe(e);return n===a.id?(A.push(o),t.push(we(A)),jn(o,i)?[o]:[o,i]):(A.push(i),A)},[r]);return l.length>1&&t.push(we(l)),pe(t)}function Xn(A,e){if(!e.features.length)throw new Error("lines must contain features");if(1===e.features.length)return e.features[0];var t,r=1/0;return ye(e,function(e){var n=Ln(e,A).properties.dist;n<r&&(t=e,r=n)}),t}function jn(A,e){return A[0]===e[0]&&A[1]===e[1]}function Wn(A,e={}){return _e(A,(A,t)=>{const r=t.geometry.coordinates;return A+hn(r[0],r[1],e)},0)}A.diamond=function({start:A=[0,0],width:e=1e3,height:r=500,step:n=50,overflow:i=!0}={}){let o=n*Math.sqrt(2),s=i?A[0]:A[0]+o/2,a=i?A[1]:A[1]+o/2,l=A[0]+e+o/2,f=A[1]+r+o/2,u=t(s,l,o),c=t(a,f,o/2,!1),h=u.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(t=>t[0]<=A[0]+e+o/2):h.filter(t=>t[0]<=A[0]+e-o/2),h=i?h.filter(e=>e[1]<=A[1]+r+o/2):h.filter(e=>e[1]<=A[1]+r-o/2);let g=o/2;return{type:"FeatureCollection",grid:"diamond",geo:!1,features:h.map((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[[[A[0]-g,A[1]],[A[0],A[1]+g],[A[0]+g,A[1]],[A[0],A[1]-g],[A[0]-g,A[1]]]]},properties:{index:e}}))}},A.dot=function({step:A=30,start:e=[0,0],width:r=1e3,height:n=500,overflow:i=!0}={}){let o=i?e[0]-A/2:e[0],s=i?e[1]-A/2:e[1],a=i?e[0]+r+A:e[0]+r,l=i?e[1]+n+A:e[1]+n,f=t(o,a,A),u=t(s,l,A,!0);return{type:"FeatureCollection",grid:"dot",geo:!1,features:f.map(A=>u.map(e=>[A,e])).flat().map((A,e)=>({type:"Feature",geometry:{type:"Point",coordinates:A},properties:{index:e}}))}},A.h3=function({level:A=0,domain:t,rewind:r}={}){let n;if(t){r=void 0===r||r;const e=jA.featureToH3Set(t,A);n=jA.h3SetToFeatureCollection(e,A=>({value:A}))}else r=void 0!==r&&r,n={type:"FeatureCollection",grid:"h3",level:A,geo:!0,features:rA().map(e=>tA(e,A)).flat().map(A=>{return{type:"Feature",properties:{id:A,pentagon:(e=A,t=j(e),r=t[0],n=t[1],Boolean(Y.isPentagon(r,n)))},geometry:{type:"Polygon",coordinates:[eA(A).reverse()]}};var e,t,r,n})};return r?e.rewind(n):n},A.hexbin=function({step:A=50,width:e=1e3,height:r=500,start:n=[0,0],overflow:i=!0}={}){const o=A,s=o/Math.sqrt(3),a=1.5*s,l=i?n[0]-o/2:n[0],f=i?n[1]-s:n[1],u=t(f+s,i?r+f+2*s:r+f-s,a),c=[];u.forEach((A,r)=>{const n=t(l+r%2*(o/2)+o/2,i?e+l:e+l-o-o/2,o);n.forEach(t=>{t<=e+l&&c.push([t,A])}),n[n.length-1]<e+l&&c.push([n[n.length-1]+o,A])});const h=c.map(([A,e],t)=>{const r=[];for(let t=0;t<6;t++){const n=Math.PI/180*(60*t-30);r.push([A+s*Math.cos(n),e+s*Math.sin(n)])}return r.push(r[0]),{type:"Feature",geometry:{type:"Polygon",coordinates:[r]},properties:{index:t}}});return{type:"FeatureCollection",grid:"hexbin",geo:!1,features:h}},A.linestogrid=function(A={}){const{grid:e,lines:t,grid_id:r="index",var:n,values:i=!1}=A,o=performance.now(),s=n?Array.isArray(n)?n:[n]:[];for(const A of t.features)A.properties.length_total=Wn(A,{units:"meters"});for(const A of e.features){A.properties.count=0;for(const e of s)A.properties[e]=0;i&&(A.properties.values=[])}const a=new KA,l=e.features.map(A=>{const[e,t,r,n]=Me(A);return{minX:e,minY:t,maxX:r,maxY:n,cell:A}});a.load(l);for(const A of t.features){const[e,t,r,n]=Me(A),o=a.search({minX:e,minY:t,maxX:r,maxY:n});for(const e of o){const t=e.cell,r=Hn(A,t);if(!r.features.length)continue;let n=0;for(const A of r.features)n+=Wn(A,{units:"meters"});if(0!==n){t.properties.count+=1;for(const e of s){const r=parseFloat(A.properties[e]);t.properties[e]+=isNaN(r)?0:r*(n/A.properties.length_total)}i&&t.properties.values.push({...A.properties})}}}const f={...e,features:e.features.filter(A=>A.properties.count>0)},u=performance.now();return console.log(`Line intersection completed for ${f.features.length} cells — ${(u-o).toFixed(2)} ms`),f},A.pointstogrid=function(A={}){const{points:e,grid:t,var:r,values:n=!1}=A,i=performance.now(),o=t.features,s=e.features,a=r?Array.isArray(r)?r:[r]:[],l=new Map(o.map((A,e)=>[e,A])),f=new KA,u=o.map((A,e)=>{const[t,r,n,i]=Me(A);return{minX:t,minY:r,maxX:n,maxY:i,i:e}});f.load(u);const c=new Map;o.forEach((A,e)=>{c.set(e,{countSet:new Set,valuesList:[],numericLists:{}}),a.forEach(A=>c.get(e).numericLists[A]=[])}),s.forEach((A,e)=>{const t=A.geometry.coordinates[0],r=A.geometry.coordinates[1],i=f.search({minX:t,minY:r,maxX:t,maxY:r});for(const t of i){const r=l.get(t.i);if(!Ie(A,r))continue;const i=c.get(t.i);i.countSet.add(e),a.forEach(e=>{const t=parseFloat(A.properties[e]);isNaN(t)||i.numericLists[e].push(t)}),n&&i.valuesList.push({...A.properties});break}});const h={type:"FeatureCollection",features:o.map((A,e)=>{const t=c.get(e),r=t.countSet.size;if(0===r)return null;const i={count:r};return a.forEach(A=>{const e=t.numericLists[A];i[A]=e.length>0?e.reduce((A,e)=>A+e,0):0}),n&&(i.values=t.valuesList),{type:A.type,properties:{...A.properties,...i},geometry:A.geometry}}).filter(A=>null!==A)},g=performance.now();return console.log(`Execution time: ${(g-i).toFixed(2)} ms`),h},A.polygonstogrid=function(A={}){const{grid:e,polygons:t,grid_id:r="index",var:n,values:i=!1}=A,o=performance.now(),s=function(A,e){let t,r,n=3,i=4.5;function o(A){return A&&("function"==typeof i&&r.pointRadius(+i.apply(this,arguments)),Ht(A,t(r))),r.result()}return o.area=function(A){return Ht(A,t(Kt)),Kt.result()},o.measure=function(A){return Ht(A,t(Lr)),Lr.result()},o.bounds=function(A){return Ht(A,t(or)),or.result()},o.centroid=function(A){return Ht(A,t(mr)),mr.result()},o.projection=function(e){return arguments.length?(t=null==e?(A=null,Wt):(A=e).stream,o):A},o.context=function(A){return arguments.length?(r=null==A?(e=null,new Nr(n)):new Cr(e=A),"function"!=typeof i&&r.pointRadius(i),o):e},o.pointRadius=function(A){return arguments.length?(i="function"==typeof A?A:(r.pointRadius(+A),+A),o):i},o.digits=function(A){if(!arguments.length)return n;if(null==A)n=null;else{const e=Math.floor(A);if(!(e>=0))throw new RangeError(`invalid digits: ${A}`);n=e}return null===e&&(r=new Nr(n)),o},o.projection(A).digits(n).context(e)}(),a=n?Array.isArray(n)?n:[n]:[];for(const A of t.features)A.properties.area_plan=s.area(A);for(const A of e.features){A.properties.area_plan=s.area(A),A.properties.count=0;for(const e of a)A.properties[e]=0;i&&(A.properties.values=[])}const l=new KA,f=e.features.map(A=>{const[e,t,r,n]=Me(A);return{minX:e,minY:t,maxX:r,maxY:n,cell:A}});l.load(f);for(const A of t.features){const[e,t,r,n]=Me(A),o=l.search({minX:e,minY:t,maxX:r,maxY:n});for(const e of o){const t=e.cell,r=Pt({type:"FeatureCollection",features:[A,t]});if(!r)continue;const n=s.area(r)/A.properties.area_plan;t.properties.count+=1;for(const e of a){const r=parseFloat(A.properties[e]);t.properties[e]+=isNaN(r)?0:r*n}i&&t.properties.values.push({...A.properties})}}const u={...e,features:e.features.filter(A=>A.properties.count>0)},c=performance.now();return console.log(`Intersection completed for ${u.features.length} cells — ${(c-o).toFixed(2)} ms`),u},A.project=function(A,{projection:e=null}={}){if(!e)return A;function t(A){return"number"==typeof A[0]?e(A):A.map(t)}const r=A.features.map(A=>({...A,geometry:{...A.geometry,coordinates:t(A.geometry.coordinates)}}));return{...A,features:r}},A.random=function({start:A=[0,0],width:e=1e3,height:t=500,step:r=50,overflow:n=!1}={}){let i=n?A[0]-r:A[0],o=n?A[1]-r:A[1],s=n?A[0]+e+r:i+e,a=n?A[1]+t+r:o+t,l=n?e+2*r:e,f=n?t+2*r:t,u=[],c=Math.round(e/r*(t/r));for(let A=0;A<c;A++)u.push([Math.random()*l+i,Math.random()*f+o]);let h=P.Delaunay.from(u,A=>A[0],A=>A[1]).voronoi([i,o,s,a]);return{type:"FeatureCollection",grid:"random",geo:!1,features:u.map((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[h.cellPolygon(e)]},properties:{index:e}}))}},A.square=function({start:A=[0,0],width:e=1e3,height:r=500,step:n=50,overflow:i=!0}={}){let o=i?A[0]:A[0]+n/2,s=t(i?A[1]:A[1]+n/2,A[1]+r-n/2,n,!0),a=t(o,A[0]+e-n/2,n);i&&(s[0]+n/2<A[1]+r&&s.unshift(s[0]+n),a.at(-1)+n/2<A[0]+e&&a.push(a.at(-1)+n));let l=a.map(A=>s.map(e=>[A,e])).flat(),f=n/2;return{type:"FeatureCollection",grid:"square",geo:!1,features:l.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}}))}},A.triangle=function({start:A=[0,0],width:e=1e3,height:r=500,step:n=50,overflow:i=!0}={}){let o=(A,e)=>{let t=Math.sqrt(3)/2*e,r=[A[0]+e/2,A[1]];return[r,[A[0],A[1]-t],[A[0]-e/2,A[1]],r]},s=(A,e)=>{let t=Math.sqrt(3)/2*e,r=[A[0]+e/2,A[1]];return[r,[A[0],A[1]+t],[A[0]-e/2,A[1]],r]},a=Math.sqrt(3)/2*n,l=i?A[0]-n/2:A[0],f=i?A[1]-a/2:A[1],u=A[0]+e+a,c=l+r+a,h=t(l,u,n),g=t(f,c,a,!0);g.length%2&&g.unshift(g[0]+a);let d=h.map((A,e)=>g.map(e=>[A,e])).flat();d=d.map((A,e)=>e%2==1?[A[0]+n/2,A[1]]:A);let w=d.length;d=d.concat(d);let p=[];return d.forEach((t,u)=>{i?u<w?t[0]<=l+e+n&&t[0]>l&&t[1]>=f+n/2&&t[1]<=A[1]+r+a&&p.push(o(t,n)):t[0]<=l+e+n&&t[0]>l&&t[1]<=A[1]+r&&p.push(s(t,n)):u<w?t[0]<=l+e-n/2&&t[0]>l&&t[1]<=f+r&&t[1]>f&&p.push(o(t,n)):t[0]<=l+e-n/2&&t[0]>l&&t[1]<=f+r-a&&p.push(s(t,n))}),{type:"FeatureCollection",grid:"triangle",geo:!1,features:p.map((A,e)=>({type:"Feature",geometry:{type:"Polygon",coordinates:[A]},properties:{index:e,coords:A}}))}}});