@footgun/cobalt 0.11.0 → 0.11.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/CHANGELOG.md CHANGED
@@ -1,9 +1,14 @@
1
+ # 0.11.1
2
+ * add missing filter option in resize callback of fb-texture
3
+
4
+
1
5
  # 0.11.0
2
- * rever the lighting to what was in v0.9.1
6
+ * revert the lighting to what was in v0.9.1
3
7
  * cobalt:sprite works with non-hdr pipelines now
4
8
  * cobalt:tileHDR renamed to cobalt:tile since it works with both hdr and non-hdr pipelines
5
9
  * make fbtexture and createTexture accept optional filter (defaults to 'linear')
6
10
 
11
+
7
12
  # 0.10.0
8
13
  * cobalt:sprite accepts an "out" ref instead of "hdr" since it never was an hdr texture
9
14
  * simplified lighting node and changed the output to clamp brightness to avoid overlighting
package/bundle.js CHANGED
@@ -1,4 +1,4 @@
1
- var ks=Object.create;var ln=Object.defineProperty;var Xs=Object.getOwnPropertyDescriptor;var Ys=Object.getOwnPropertyNames;var Zs=Object.getPrototypeOf,Hs=Object.prototype.hasOwnProperty;var xt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),hn=(e,t)=>{for(var n in t)ln(e,n,{get:t[n],enumerable:!0})},$s=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ys(t))!Hs.call(e,i)&&i!==n&&ln(e,i,{get:()=>t[i],enumerable:!(r=Xs(t,i))||r.enumerable});return e};var vi=(e,t,n)=>(n=e!=null?ks(Zs(e)):{},$s(t||!e||!e.__esModule?ln(n,"default",{value:e,enumerable:!0}):n,e));var je=xt((zl,Ri)=>{"use strict";function Du(e,t,n,r,i){for(var o=i+1;r<=i;){var a=r+i>>>1,f=e[a],h=n!==void 0?n(f,t):f-t;h>=0?(o=a,i=a-1):r=a+1}return o}function Fu(e,t,n,r,i){for(var o=i+1;r<=i;){var a=r+i>>>1,f=e[a],h=n!==void 0?n(f,t):f-t;h>0?(o=a,i=a-1):r=a+1}return o}function Au(e,t,n,r,i){for(var o=r-1;r<=i;){var a=r+i>>>1,f=e[a],h=n!==void 0?n(f,t):f-t;h<0?(o=a,r=a+1):i=a-1}return o}function Uu(e,t,n,r,i){for(var o=r-1;r<=i;){var a=r+i>>>1,f=e[a],h=n!==void 0?n(f,t):f-t;h<=0?(o=a,r=a+1):i=a-1}return o}function zu(e,t,n,r,i){for(;r<=i;){var o=r+i>>>1,a=e[o],f=n!==void 0?n(a,t):a-t;if(f===0)return o;f<=0?r=o+1:i=o-1}return-1}function Je(e,t,n,r,i,o){return typeof n=="function"?o(e,t,n,r===void 0?0:r|0,i===void 0?e.length-1:i|0):o(e,t,void 0,n===void 0?0:n|0,r===void 0?e.length-1:r|0)}Ri.exports={ge:function(e,t,n,r,i){return Je(e,t,n,r,i,Du)},gt:function(e,t,n,r,i){return Je(e,t,n,r,i,Fu)},lt:function(e,t,n,r,i){return Je(e,t,n,r,i,Au)},le:function(e,t,n,r,i){return Je(e,t,n,r,i,Uu)},eq:function(e,t,n,r,i){return Je(e,t,n,r,i,zu)}}});var _r=xt((Il,qi)=>{"use strict";qi.exports=Iu;var Oi=+(Math.pow(2,27)+1);function Iu(e,t,n){var r=e*t,i=Oi*e,o=i-e,a=i-o,f=e-a,h=Oi*t,v=h-t,d=h-v,D=t-d,m=r-a*d,C=m-f*d,R=C-a*D,N=f*D-R;return n?(n[0]=N,n[1]=r,n):[N,r]}});var dn=xt((El,Ni)=>{"use strict";Ni.exports=Lu;function Eu(e,t){var n=e+t,r=n-e,i=n-r,o=t-r,a=e-i,f=a+o;return f?[f,n]:[n]}function Lu(e,t){var n=e.length|0,r=t.length|0;if(n===1&&r===1)return Eu(e[0],t[0]);var i=n+r,o=new Array(i),a=0,f=0,h=0,v=Math.abs,d=e[f],D=v(d),m=t[h],C=v(m),R,N;D<C?(N=d,f+=1,f<n&&(d=e[f],D=v(d))):(N=m,h+=1,h<r&&(m=t[h],C=v(m))),f<n&&D<C||h>=r?(R=d,f+=1,f<n&&(d=e[f],D=v(d))):(R=m,h+=1,h<r&&(m=t[h],C=v(m)));for(var V=R+N,Y=V-R,K=N-Y,Q=K,j=V,Z,W,st,et,rt;f<n&&h<r;)D<C?(R=d,f+=1,f<n&&(d=e[f],D=v(d))):(R=m,h+=1,h<r&&(m=t[h],C=v(m))),N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z;for(;f<n;)R=d,N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z,f+=1,f<n&&(d=e[f]);for(;h<r;)R=m,N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z,h+=1,h<r&&(m=t[h]);return Q&&(o[a++]=Q),j&&(o[a++]=j),a||(o[a++]=0),o.length=a,o}});var Ci=xt((Ll,Vi)=>{"use strict";Vi.exports=Gu;function Gu(e,t,n){var r=e+t,i=r-e,o=r-i,a=t-i,f=e-o;return n?(n[0]=f+a,n[1]=r,n):[f+a,r]}});var xn=xt((Gl,mi)=>{"use strict";var wn=_r(),Ru=Ci();mi.exports=Ou;function Ou(e,t){var n=e.length;if(n===1){var r=wn(e[0],t);return r[0]?r:[r[1]]}var i=new Array(2*n),o=[.1,.1],a=[.1,.1],f=0;wn(e[0],t,o),o[0]&&(i[f++]=o[0]);for(var h=1;h<n;++h){wn(e[h],t,a);var v=o[1];Ru(v,a[0],o),o[0]&&(i[f++]=o[0]);var d=a[1],D=o[1],m=d+D,C=m-d,R=D-C;o[1]=m,R&&(i[f++]=R)}return o[1]&&(i[f++]=o[1]),f===0&&(i[f++]=0),i.length=f,i}});var Mn=xt((Rl,ki)=>{"use strict";ki.exports=Nu;function qu(e,t){var n=e+t,r=n-e,i=n-r,o=t-r,a=e-i,f=a+o;return f?[f,n]:[n]}function Nu(e,t){var n=e.length|0,r=t.length|0;if(n===1&&r===1)return qu(e[0],-t[0]);var i=n+r,o=new Array(i),a=0,f=0,h=0,v=Math.abs,d=e[f],D=v(d),m=-t[h],C=v(m),R,N;D<C?(N=d,f+=1,f<n&&(d=e[f],D=v(d))):(N=m,h+=1,h<r&&(m=-t[h],C=v(m))),f<n&&D<C||h>=r?(R=d,f+=1,f<n&&(d=e[f],D=v(d))):(R=m,h+=1,h<r&&(m=-t[h],C=v(m)));for(var V=R+N,Y=V-R,K=N-Y,Q=K,j=V,Z,W,st,et,rt;f<n&&h<r;)D<C?(R=d,f+=1,f<n&&(d=e[f],D=v(d))):(R=m,h+=1,h<r&&(m=-t[h],C=v(m))),N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z;for(;f<n;)R=d,N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z,f+=1,f<n&&(d=e[f]);for(;h<r;)R=m,N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z,h+=1,h<r&&(m=-t[h]);return Q&&(o[a++]=Q),j&&(o[a++]=j),a||(o[a++]=0),o.length=a,o}});var bn=xt((Ol,yn)=>{"use strict";var Vu=_r(),Cu=dn(),mu=xn(),ku=Mn(),Xi=5,Sr=11102230246251565e-32,Xu=(3+16*Sr)*Sr,Yu=(7+56*Sr)*Sr;function Zu(e,t,n,r){return function(o,a,f){var h=e(e(t(a[1],f[0]),t(-f[1],a[0])),e(t(o[1],a[0]),t(-a[1],o[0]))),v=e(t(o[1],f[0]),t(-f[1],o[0])),d=r(h,v);return d[d.length-1]}}function Hu(e,t,n,r){return function(o,a,f,h){var v=e(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),a[2]),e(n(e(t(a[1],h[0]),t(-h[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),h[2]))),e(n(e(t(a[1],h[0]),t(-h[1],a[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),h[2])))),d=e(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),h[2]))),e(n(e(t(a[1],f[0]),t(-f[1],a[0])),o[2]),e(n(e(t(o[1],f[0]),t(-f[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),f[2])))),D=r(v,d);return D[D.length-1]}}function $u(e,t,n,r){return function(o,a,f,h,v){var d=e(e(e(n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),f[2]),e(n(e(t(f[1],v[0]),t(-v[1],f[0])),-h[2]),n(e(t(f[1],h[0]),t(-h[1],f[0])),v[2]))),a[3]),e(n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),a[2]),e(n(e(t(a[1],v[0]),t(-v[1],a[0])),-h[2]),n(e(t(a[1],h[0]),t(-h[1],a[0])),v[2]))),-f[3]),n(e(n(e(t(f[1],v[0]),t(-v[1],f[0])),a[2]),e(n(e(t(a[1],v[0]),t(-v[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),v[2]))),h[3]))),e(n(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),a[2]),e(n(e(t(a[1],h[0]),t(-h[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),h[2]))),-v[3]),e(n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),a[2]),e(n(e(t(a[1],v[0]),t(-v[1],a[0])),-h[2]),n(e(t(a[1],h[0]),t(-h[1],a[0])),v[2]))),o[3]),n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-h[2]),n(e(t(o[1],h[0]),t(-h[1],o[0])),v[2]))),-a[3])))),e(e(n(e(n(e(t(a[1],v[0]),t(-v[1],a[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),v[2]))),h[3]),e(n(e(n(e(t(a[1],h[0]),t(-h[1],a[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),h[2]))),-v[3]),n(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),a[2]),e(n(e(t(a[1],h[0]),t(-h[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),h[2]))),o[3]))),e(n(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),h[2]))),-a[3]),e(n(e(n(e(t(a[1],h[0]),t(-h[1],a[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),h[2]))),f[3]),n(e(n(e(t(a[1],f[0]),t(-f[1],a[0])),o[2]),e(n(e(t(o[1],f[0]),t(-f[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),f[2]))),-h[3]))))),D=e(e(e(n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),f[2]),e(n(e(t(f[1],v[0]),t(-v[1],f[0])),-h[2]),n(e(t(f[1],h[0]),t(-h[1],f[0])),v[2]))),o[3]),n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-h[2]),n(e(t(o[1],h[0]),t(-h[1],o[0])),v[2]))),-f[3])),e(n(e(n(e(t(f[1],v[0]),t(-v[1],f[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),v[2]))),h[3]),n(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),h[2]))),-v[3]))),e(e(n(e(n(e(t(f[1],v[0]),t(-v[1],f[0])),a[2]),e(n(e(t(a[1],v[0]),t(-v[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),v[2]))),o[3]),n(e(n(e(t(f[1],v[0]),t(-v[1],f[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),v[2]))),-a[3])),e(n(e(n(e(t(a[1],v[0]),t(-v[1],a[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),v[2]))),f[3]),n(e(n(e(t(a[1],f[0]),t(-f[1],a[0])),o[2]),e(n(e(t(o[1],f[0]),t(-f[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),f[2]))),-v[3])))),m=r(d,D);return m[m.length-1]}}function Tr(e){var t=e===3?Zu:e===4?Hu:$u;return t(Cu,Vu,mu,ku)}var Wu=Tr(3),Ku=Tr(4),De=[function(){return 0},function(){return 0},function(t,n){return n[0]-t[0]},function(t,n,r){var i=(t[1]-r[1])*(n[0]-r[0]),o=(t[0]-r[0])*(n[1]-r[1]),a=i-o,f;if(i>0){if(o<=0)return a;f=i+o}else if(i<0){if(o>=0)return a;f=-(i+o)}else return a;var h=Xu*f;return a>=h||a<=-h?a:Wu(t,n,r)},function(t,n,r,i){var o=t[0]-i[0],a=n[0]-i[0],f=r[0]-i[0],h=t[1]-i[1],v=n[1]-i[1],d=r[1]-i[1],D=t[2]-i[2],m=n[2]-i[2],C=r[2]-i[2],R=a*d,N=f*v,V=f*h,Y=o*d,K=o*v,Q=a*h,j=D*(R-N)+m*(V-Y)+C*(K-Q),Z=(Math.abs(R)+Math.abs(N))*Math.abs(D)+(Math.abs(V)+Math.abs(Y))*Math.abs(m)+(Math.abs(K)+Math.abs(Q))*Math.abs(C),W=Yu*Z;return j>W||-j>W?j:Ku(t,n,r,i)}];function Qu(e){var t=De[e.length];return t||(t=De[e.length]=Tr(e.length)),t.apply(void 0,e)}function Ju(e,t,n,r,i,o,a){return function(h,v,d,D,m){switch(arguments.length){case 0:case 1:return 0;case 2:return r(h,v);case 3:return i(h,v,d);case 4:return o(h,v,d,D);case 5:return a(h,v,d,D,m)}for(var C=new Array(arguments.length),R=0;R<arguments.length;++R)C[R]=arguments[R];return e(C)}}function ju(){for(;De.length<=Xi;)De.push(Tr(De.length));yn.exports=Ju.apply(void 0,[Qu].concat(De));for(var e=0;e<=Xi;++e)yn.exports[e]=De[e]}ju()});var Ki=xt((ql,Wi)=>{"use strict";var Br=je(),be=bn()[3],Sn=0,Yi=1,_n=2;Wi.exports=i0;function Hi(e,t,n,r,i){this.a=e,this.b=t,this.idx=n,this.lowerIds=r,this.upperIds=i}function tr(e,t,n,r){this.a=e,this.b=t,this.type=n,this.idx=r}function t0(e,t){var n=e.a[0]-t.a[0]||e.a[1]-t.a[1]||e.type-t.type;return n||e.type!==Sn&&(n=be(e.a,e.b,t.b),n)?n:e.idx-t.idx}function Zi(e,t){return be(e.a,e.b,t)}function e0(e,t,n,r,i){for(var o=Br.lt(t,r,Zi),a=Br.gt(t,r,Zi),f=o;f<a;++f){for(var h=t[f],v=h.lowerIds,D=v.length;D>1&&be(n[v[D-2]],n[v[D-1]],r)>0;)e.push([v[D-1],v[D-2],i]),D-=1;v.length=D,v.push(i);for(var d=h.upperIds,D=d.length;D>1&&be(n[d[D-2]],n[d[D-1]],r)<0;)e.push([d[D-2],d[D-1],i]),D-=1;d.length=D,d.push(i)}}function $i(e,t){var n;return e.a[0]<t.a[0]?n=be(e.a,e.b,t.a):n=be(t.b,t.a,e.a),n||(t.b[0]<e.b[0]?n=be(e.a,e.b,t.b):n=be(t.b,t.a,e.b),n||e.idx-t.idx)}function r0(e,t,n){var r=Br.le(e,n,$i),i=e[r],o=i.upperIds,a=o[o.length-1];i.upperIds=[a],e.splice(r+1,0,new Hi(n.a,n.b,n.idx,[a],o))}function n0(e,t,n){var r=n.a;n.a=n.b,n.b=r;var i=Br.eq(e,n,$i),o=e[i],a=e[i-1];a.upperIds=o.upperIds,e.splice(i,1)}function i0(e,t){for(var n=e.length,r=t.length,i=[],o=0;o<n;++o)i.push(new tr(e[o],null,Sn,o));for(var o=0;o<r;++o){var a=t[o],f=e[a[0]],h=e[a[1]];f[0]<h[0]?i.push(new tr(f,h,_n,o),new tr(h,f,Yi,o)):f[0]>h[0]&&i.push(new tr(h,f,_n,o),new tr(f,h,Yi,o))}i.sort(t0);for(var v=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),d=[new Hi([v,1],[v,0],-1,[],[],[],[])],D=[],o=0,m=i.length;o<m;++o){var C=i[o],R=C.type;R===Sn?e0(D,d,e,C.a,C.idx):R===_n?r0(d,e,C):n0(d,e,C)}return D}});var ji=xt((Nl,Ji)=>{"use strict";var o0=je();Ji.exports=a0;function Qi(e,t){this.stars=e,this.edges=t}var Fe=Qi.prototype;function Tn(e,t,n){for(var r=1,i=e.length;r<i;r+=2)if(e[r-1]===t&&e[r]===n){e[r-1]=e[i-2],e[r]=e[i-1],e.length=i-2;return}}Fe.isConstraint=(function(){var e=[0,0];function t(n,r){return n[0]-r[0]||n[1]-r[1]}return function(n,r){return e[0]=Math.min(n,r),e[1]=Math.max(n,r),o0.eq(this.edges,e,t)>=0}})();Fe.removeTriangle=function(e,t,n){var r=this.stars;Tn(r[e],t,n),Tn(r[t],n,e),Tn(r[n],e,t)};Fe.addTriangle=function(e,t,n){var r=this.stars;r[e].push(t,n),r[t].push(n,e),r[n].push(e,t)};Fe.opposite=function(e,t){for(var n=this.stars[t],r=1,i=n.length;r<i;r+=2)if(n[r]===e)return n[r-1];return-1};Fe.flip=function(e,t){var n=this.opposite(e,t),r=this.opposite(t,e);this.removeTriangle(e,t,n),this.removeTriangle(t,e,r),this.addTriangle(e,r,n),this.addTriangle(t,n,r)};Fe.edges=function(){for(var e=this.stars,t=[],n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,a=i.length;o<a;o+=2)t.push([i[o],i[o+1]]);return t};Fe.cells=function(){for(var e=this.stars,t=[],n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,a=i.length;o<a;o+=2){var f=i[o],h=i[o+1];n<Math.min(f,h)&&t.push([n,f,h])}return t};function a0(e,t){for(var n=new Array(e),r=0;r<e;++r)n[r]=[];return new Qi(n,t)}});var ro=xt((Vl,Bn)=>{"use strict";var s0=_r(),u0=dn(),f0=Mn(),c0=xn(),to=6;function eo(e){var t=e===3?p0:e===4?g0:e===5?d0:w0;return t(u0,f0,s0,c0)}function l0(){return 0}function h0(){return 0}function v0(){return 0}function p0(e,t,n,r){function i(o,a,f){var h=n(o[0],o[0]),v=r(h,a[0]),d=r(h,f[0]),D=n(a[0],a[0]),m=r(D,o[0]),C=r(D,f[0]),R=n(f[0],f[0]),N=r(R,o[0]),V=r(R,a[0]),Y=e(t(V,C),t(m,v)),K=t(N,d),Q=t(Y,K);return Q[Q.length-1]}return i}function g0(e,t,n,r){function i(o,a,f,h){var v=e(n(o[0],o[0]),n(o[1],o[1])),d=r(v,a[0]),D=r(v,f[0]),m=r(v,h[0]),C=e(n(a[0],a[0]),n(a[1],a[1])),R=r(C,o[0]),N=r(C,f[0]),V=r(C,h[0]),Y=e(n(f[0],f[0]),n(f[1],f[1])),K=r(Y,o[0]),Q=r(Y,a[0]),j=r(Y,h[0]),Z=e(n(h[0],h[0]),n(h[1],h[1])),W=r(Z,o[0]),st=r(Z,a[0]),et=r(Z,f[0]),rt=e(e(r(t(et,j),a[1]),e(r(t(st,V),-f[1]),r(t(Q,N),h[1]))),e(r(t(st,V),o[1]),e(r(t(W,m),-a[1]),r(t(R,d),h[1])))),F=e(e(r(t(et,j),o[1]),e(r(t(W,m),-f[1]),r(t(K,D),h[1]))),e(r(t(Q,N),o[1]),e(r(t(K,D),-a[1]),r(t(R,d),f[1])))),s=t(rt,F);return s[s.length-1]}return i}function d0(e,t,n,r){function i(o,a,f,h,v){var d=e(n(o[0],o[0]),e(n(o[1],o[1]),n(o[2],o[2]))),D=r(d,a[0]),m=r(d,f[0]),C=r(d,h[0]),R=r(d,v[0]),N=e(n(a[0],a[0]),e(n(a[1],a[1]),n(a[2],a[2]))),V=r(N,o[0]),Y=r(N,f[0]),K=r(N,h[0]),Q=r(N,v[0]),j=e(n(f[0],f[0]),e(n(f[1],f[1]),n(f[2],f[2]))),Z=r(j,o[0]),W=r(j,a[0]),st=r(j,h[0]),et=r(j,v[0]),rt=e(n(h[0],h[0]),e(n(h[1],h[1]),n(h[2],h[2]))),F=r(rt,o[0]),s=r(rt,a[0]),p=r(rt,f[0]),_=r(rt,v[0]),y=e(n(v[0],v[0]),e(n(v[1],v[1]),n(v[2],v[2]))),T=r(y,o[0]),E=r(y,a[0]),O=r(y,f[0]),P=r(y,h[0]),l=e(e(e(r(e(r(t(P,_),f[1]),e(r(t(O,et),-h[1]),r(t(p,st),v[1]))),a[2]),e(r(e(r(t(P,_),a[1]),e(r(t(E,Q),-h[1]),r(t(s,K),v[1]))),-f[2]),r(e(r(t(O,et),a[1]),e(r(t(E,Q),-f[1]),r(t(W,Y),v[1]))),h[2]))),e(r(e(r(t(p,st),a[1]),e(r(t(s,K),-f[1]),r(t(W,Y),h[1]))),-v[2]),e(r(e(r(t(P,_),a[1]),e(r(t(E,Q),-h[1]),r(t(s,K),v[1]))),o[2]),r(e(r(t(P,_),o[1]),e(r(t(T,R),-h[1]),r(t(F,C),v[1]))),-a[2])))),e(e(r(e(r(t(E,Q),o[1]),e(r(t(T,R),-a[1]),r(t(V,D),v[1]))),h[2]),e(r(e(r(t(s,K),o[1]),e(r(t(F,C),-a[1]),r(t(V,D),h[1]))),-v[2]),r(e(r(t(p,st),a[1]),e(r(t(s,K),-f[1]),r(t(W,Y),h[1]))),o[2]))),e(r(e(r(t(p,st),o[1]),e(r(t(F,C),-f[1]),r(t(Z,m),h[1]))),-a[2]),e(r(e(r(t(s,K),o[1]),e(r(t(F,C),-a[1]),r(t(V,D),h[1]))),f[2]),r(e(r(t(W,Y),o[1]),e(r(t(Z,m),-a[1]),r(t(V,D),f[1]))),-h[2]))))),U=e(e(e(r(e(r(t(P,_),f[1]),e(r(t(O,et),-h[1]),r(t(p,st),v[1]))),o[2]),r(e(r(t(P,_),o[1]),e(r(t(T,R),-h[1]),r(t(F,C),v[1]))),-f[2])),e(r(e(r(t(O,et),o[1]),e(r(t(T,R),-f[1]),r(t(Z,m),v[1]))),h[2]),r(e(r(t(p,st),o[1]),e(r(t(F,C),-f[1]),r(t(Z,m),h[1]))),-v[2]))),e(e(r(e(r(t(O,et),a[1]),e(r(t(E,Q),-f[1]),r(t(W,Y),v[1]))),o[2]),r(e(r(t(O,et),o[1]),e(r(t(T,R),-f[1]),r(t(Z,m),v[1]))),-a[2])),e(r(e(r(t(E,Q),o[1]),e(r(t(T,R),-a[1]),r(t(V,D),v[1]))),f[2]),r(e(r(t(W,Y),o[1]),e(r(t(Z,m),-a[1]),r(t(V,D),f[1]))),-v[2])))),ot=t(l,U);return ot[ot.length-1]}return i}function w0(e,t,n,r){function i(o,a,f,h,v,d){var D=e(e(n(o[0],o[0]),n(o[1],o[1])),e(n(o[2],o[2]),n(o[3],o[3]))),m=r(D,a[0]),C=r(D,f[0]),R=r(D,h[0]),N=r(D,v[0]),V=r(D,d[0]),Y=e(e(n(a[0],a[0]),n(a[1],a[1])),e(n(a[2],a[2]),n(a[3],a[3]))),K=r(Y,o[0]),Q=r(Y,f[0]),j=r(Y,h[0]),Z=r(Y,v[0]),W=r(Y,d[0]),st=e(e(n(f[0],f[0]),n(f[1],f[1])),e(n(f[2],f[2]),n(f[3],f[3]))),et=r(st,o[0]),rt=r(st,a[0]),F=r(st,h[0]),s=r(st,v[0]),p=r(st,d[0]),_=e(e(n(h[0],h[0]),n(h[1],h[1])),e(n(h[2],h[2]),n(h[3],h[3]))),y=r(_,o[0]),T=r(_,a[0]),E=r(_,f[0]),O=r(_,v[0]),P=r(_,d[0]),l=e(e(n(v[0],v[0]),n(v[1],v[1])),e(n(v[2],v[2]),n(v[3],v[3]))),U=r(l,o[0]),ot=r(l,a[0]),at=r(l,f[0]),ut=r(l,h[0]),ft=r(l,d[0]),Mt=e(e(n(d[0],d[0]),n(d[1],d[1])),e(n(d[2],d[2]),n(d[3],d[3]))),vt=r(Mt,o[0]),X=r(Mt,a[0]),$=r(Mt,f[0]),A=r(Mt,h[0]),c=r(Mt,v[0]),b=e(e(e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),f[2]),r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),-h[2])),e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),v[2]),r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),-d[2]))),a[3]),e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),a[2]),r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),-h[2])),e(r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),v[2]),r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),-d[2]))),-f[3]),r(e(e(r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),a[2]),r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),-f[2])),e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),v[2]),r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),-d[2]))),h[3]))),e(e(r(e(e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),a[2]),r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),-f[2])),e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),h[2]),r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),-d[2]))),-v[3]),r(e(e(r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),a[2]),r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),-f[2])),e(r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),h[2]),r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),-v[2]))),d[3])),e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),a[2]),r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),-h[2])),e(r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),v[2]),r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),-d[2]))),o[3]),r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-h[2])),e(r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),v[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-d[2]))),-a[3])))),e(e(e(r(e(e(r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),v[2]),r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),-d[2]))),h[3]),r(e(e(r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),o[2]),r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),h[2]),r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),-d[2]))),-v[3])),e(r(e(e(r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),o[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-a[2])),e(r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),h[2]),r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),-v[2]))),d[3]),r(e(e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),a[2]),r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),-f[2])),e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),h[2]),r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),-d[2]))),o[3]))),e(e(r(e(e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),o[2]),r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),-f[2])),e(r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),h[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-d[2]))),-a[3]),r(e(e(r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),o[2]),r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),h[2]),r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),-d[2]))),f[3])),e(r(e(e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),o[2]),r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-d[2]))),-h[3]),r(e(e(r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),o[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-a[2])),e(r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-h[2]))),d[3]))))),w=e(e(e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),f[2]),r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),-h[2])),e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),v[2]),r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),-d[2]))),o[3]),e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-h[2])),e(r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),v[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-d[2]))),-f[3]),r(e(e(r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-f[2])),e(r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),v[2]),r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),-d[2]))),h[3]))),e(e(r(e(e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),o[2]),r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),-f[2])),e(r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),h[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-d[2]))),-v[3]),r(e(e(r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),o[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-f[2])),e(r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),h[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-v[2]))),d[3])),e(r(e(e(r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),a[2]),r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),-f[2])),e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),v[2]),r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),-d[2]))),o[3]),r(e(e(r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-f[2])),e(r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),v[2]),r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),-d[2]))),-a[3])))),e(e(e(r(e(e(r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),v[2]),r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),-d[2]))),f[3]),r(e(e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),o[2]),r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-d[2]))),-v[3])),e(r(e(e(r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),o[2]),r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),-a[2])),e(r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-v[2]))),d[3]),r(e(e(r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),a[2]),r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),-f[2])),e(r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),h[2]),r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),-v[2]))),o[3]))),e(e(r(e(e(r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),o[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-f[2])),e(r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),h[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-v[2]))),-a[3]),r(e(e(r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),o[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-a[2])),e(r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),h[2]),r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),-v[2]))),f[3])),e(r(e(e(r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),o[2]),r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),-a[2])),e(r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-v[2]))),-h[3]),r(e(e(r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),o[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-a[2])),e(r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-h[2]))),v[3]))))),I=t(b,w);return I[I.length-1]}return i}var Ae=[l0,h0,v0];function x0(e){var t=Ae[e.length];return t||(t=Ae[e.length]=eo(e.length)),t.apply(void 0,e)}function M0(e,t,n,r,i,o,a,f){function h(v,d,D,m,C,R){switch(arguments.length){case 0:case 1:return 0;case 2:return r(v,d);case 3:return i(v,d,D);case 4:return o(v,d,D,m);case 5:return a(v,d,D,m,C);case 6:return f(v,d,D,m,C,R)}for(var N=new Array(arguments.length),V=0;V<arguments.length;++V)N[V]=arguments[V];return e(N)}return h}function y0(){for(;Ae.length<=to;)Ae.push(eo(Ae.length));Bn.exports=M0.apply(void 0,[x0].concat(Ae));for(var e=0;e<=to;++e)Bn.exports[e]=Ae[e]}y0()});var io=xt((ml,no)=>{"use strict";var Pn=ro()[4],Cl=je();no.exports=b0;function Pr(e,t,n,r,i,o){var a=t.opposite(r,i);if(!(a<0)){if(i<r){var f=r;r=i,i=f,f=o,o=a,a=f}t.isConstraint(r,i)||Pn(e[r],e[i],e[o],e[a])<0&&n.push(r,i)}}function b0(e,t){for(var n=[],r=e.length,i=t.stars,o=0;o<r;++o)for(var a=i[o],f=1;f<a.length;f+=2){var h=a[f];if(!(h<o)&&!t.isConstraint(o,h)){for(var v=a[f-1],d=-1,D=1;D<a.length;D+=2)if(a[D-1]===h){d=a[D];break}d<0||Pn(e[o],e[h],e[v],e[d])<0&&n.push(o,h)}}for(;n.length>0;){for(var h=n.pop(),o=n.pop(),v=-1,d=-1,a=i[o],m=1;m<a.length;m+=2){var C=a[m-1],R=a[m];C===h?d=R:R===h&&(v=C)}v<0||d<0||Pn(e[o],e[h],e[v],e[d])>=0||(t.flip(o,h),Pr(e,t,n,v,o,d),Pr(e,t,n,o,d,v),Pr(e,t,n,d,h,v),Pr(e,t,n,h,v,d))}}});var uo=xt((kl,so)=>{"use strict";var _0=je();so.exports=P0;function oo(e,t,n,r,i,o,a){this.cells=e,this.neighbor=t,this.flags=r,this.constraint=n,this.active=i,this.next=o,this.boundary=a}var S0=oo.prototype;function ao(e,t){return e[0]-t[0]||e[1]-t[1]||e[2]-t[2]}S0.locate=(function(){var e=[0,0,0];return function(t,n,r){var i=t,o=n,a=r;return n<r?n<t&&(i=n,o=r,a=t):r<t&&(i=r,o=t,a=n),i<0?-1:(e[0]=i,e[1]=o,e[2]=a,_0.eq(this.cells,e,ao))}})();function T0(e,t){for(var n=e.cells(),r=n.length,i=0;i<r;++i){var o=n[i],a=o[0],f=o[1],h=o[2];f<h?f<a&&(o[0]=f,o[1]=h,o[2]=a):h<a&&(o[0]=h,o[1]=a,o[2]=f)}n.sort(ao);for(var v=new Array(r),i=0;i<v.length;++i)v[i]=0;var d=[],D=[],m=new Array(3*r),C=new Array(3*r),R=null;t&&(R=[]);for(var N=new oo(n,m,C,v,d,D,R),i=0;i<r;++i)for(var o=n[i],V=0;V<3;++V){var a=o[V],f=o[(V+1)%3],Y=m[3*i+V]=N.locate(f,a,e.opposite(f,a)),K=C[3*i+V]=e.isConstraint(a,f);Y<0&&(K?D.push(i):(d.push(i),v[i]=1),t&&R.push([f,a,-1]))}return N}function B0(e,t,n){for(var r=0,i=0;i<e.length;++i)t[i]===n&&(e[r++]=e[i]);return e.length=r,e}function P0(e,t,n){var r=T0(e,n);if(t===0)return n?r.cells.concat(r.boundary):r.cells;for(var i=1,o=r.active,a=r.next,f=r.flags,h=r.cells,v=r.constraint,d=r.neighbor;o.length>0||a.length>0;){for(;o.length>0;){var D=o.pop();if(f[D]!==-i){f[D]=i;for(var m=h[D],C=0;C<3;++C){var R=d[3*D+C];R>=0&&f[R]===0&&(v[3*D+C]?a.push(R):(o.push(R),f[R]=i))}}}var N=a;a=o,o=N,a.length=0,i=-i}var V=B0(h,f,t);return n?V.concat(r.boundary):V}});var co=xt((Xl,fo)=>{"use strict";var D0=Ki(),F0=ji(),A0=io(),Dn=uo();fo.exports=E0;function U0(e){return[Math.min(e[0],e[1]),Math.max(e[0],e[1])]}function z0(e,t){return e[0]-t[0]||e[1]-t[1]}function I0(e){return e.map(U0).sort(z0)}function Dr(e,t,n){return t in e?e[t]:n}function E0(e,t,n){Array.isArray(t)?(n=n||{},t=t||[]):(n=t||{},t=[]);var r=!!Dr(n,"delaunay",!0),i=!!Dr(n,"interior",!0),o=!!Dr(n,"exterior",!0),a=!!Dr(n,"infinity",!1);if(!i&&!o||e.length===0)return[];var f=D0(e,t);if(r||i!==o||a){for(var h=F0(e.length,I0(t)),v=0;v<f.length;++v){var d=f[v];h.addTriangle(d[0],d[1],d[2])}return r&&A0(e,h),o?i?a?Dn(h,0,a):h.cells():Dn(h,1,a):Dn(h,-1)}else return f}});var vo=xt((Yl,ho)=>{"use strict";"use restrict";ho.exports=lo;function lo(e){this.roots=new Array(e),this.ranks=new Array(e);for(var t=0;t<e;++t)this.roots[t]=t,this.ranks[t]=0}var Fr=lo.prototype;Object.defineProperty(Fr,"length",{get:function(){return this.roots.length}});Fr.makeSet=function(){var e=this.roots.length;return this.roots.push(e),this.ranks.push(0),e};Fr.find=function(e){for(var t=e,n=this.roots;n[e]!==e;)e=n[e];for(;n[t]!==e;){var r=n[t];n[t]=e,t=r}return e};Fr.link=function(e,t){var n=this.find(e),r=this.find(t);if(n!==r){var i=this.ranks,o=this.roots,a=i[n],f=i[r];a<f?o[n]=r:f<a?o[r]=n:(o[r]=n,++i[n])}}});var rr=xt(kt=>{"use strict";"use restrict";var Fn=32;kt.INT_BITS=Fn;kt.INT_MAX=2147483647;kt.INT_MIN=-1<<Fn-1;kt.sign=function(e){return(e>0)-(e<0)};kt.abs=function(e){var t=e>>Fn-1;return(e^t)-t};kt.min=function(e,t){return t^(e^t)&-(e<t)};kt.max=function(e,t){return e^(e^t)&-(e<t)};kt.isPow2=function(e){return!(e&e-1)&&!!e};kt.log2=function(e){var t,n;return t=(e>65535)<<4,e>>>=t,n=(e>255)<<3,e>>>=n,t|=n,n=(e>15)<<2,e>>>=n,t|=n,n=(e>3)<<1,e>>>=n,t|=n,t|e>>1};kt.log10=function(e){return e>=1e9?9:e>=1e8?8:e>=1e7?7:e>=1e6?6:e>=1e5?5:e>=1e4?4:e>=1e3?3:e>=100?2:e>=10?1:0};kt.popCount=function(e){return e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),(e+(e>>>4)&252645135)*16843009>>>24};function po(e){var t=32;return e&=-e,e&&t--,e&65535&&(t-=16),e&16711935&&(t-=8),e&252645135&&(t-=4),e&858993459&&(t-=2),e&1431655765&&(t-=1),t}kt.countTrailingZeros=po;kt.nextPow2=function(e){return e+=e===0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+1};kt.prevPow2=function(e){return e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e-(e>>>1)};kt.parity=function(e){return e^=e>>>16,e^=e>>>8,e^=e>>>4,e&=15,27030>>>e&1};var er=new Array(256);(function(e){for(var t=0;t<256;++t){var n=t,r=t,i=7;for(n>>>=1;n;n>>>=1)r<<=1,r|=n&1,--i;e[t]=r<<i&255}})(er);kt.reverse=function(e){return er[e&255]<<24|er[e>>>8&255]<<16|er[e>>>16&255]<<8|er[e>>>24&255]};kt.interleave2=function(e,t){return e&=65535,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t&=65535,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1};kt.deinterleave2=function(e,t){return e=e>>>t&1431655765,e=(e|e>>>1)&858993459,e=(e|e>>>2)&252645135,e=(e|e>>>4)&16711935,e=(e|e>>>16)&65535,e<<16>>16};kt.interleave3=function(e,t,n){return e&=1023,e=(e|e<<16)&4278190335,e=(e|e<<8)&251719695,e=(e|e<<4)&3272356035,e=(e|e<<2)&1227133513,t&=1023,t=(t|t<<16)&4278190335,t=(t|t<<8)&251719695,t=(t|t<<4)&3272356035,t=(t|t<<2)&1227133513,e|=t<<1,n&=1023,n=(n|n<<16)&4278190335,n=(n|n<<8)&251719695,n=(n|n<<4)&3272356035,n=(n|n<<2)&1227133513,e|n<<2};kt.deinterleave3=function(e,t){return e=e>>>t&1227133513,e=(e|e>>>2)&3272356035,e=(e|e>>>4)&251719695,e=(e|e>>>8)&4278190335,e=(e|e>>>16)&1023,e<<22>>22};kt.nextCombination=function(e){var t=e|e-1;return t+1|(~t&-~t)-1>>>po(e)+1}});var xo=xt((Hl,wo)=>{"use strict";function go(e,t,n){var r=e[n]|0;if(r<=0)return[];var i=new Array(r),o;if(n===e.length-1)for(o=0;o<r;++o)i[o]=t;else for(o=0;o<r;++o)i[o]=go(e,t,n+1);return i}function L0(e,t){var n,r;for(n=new Array(e),r=0;r<e;++r)n[r]=t;return n}function G0(e,t){switch(typeof t>"u"&&(t=0),typeof e){case"number":if(e>0)return L0(e|0,t);break;case"object":if(typeof e.length=="number")return go(e,t,0);break}return[]}wo.exports=G0});var zr=xt(Et=>{"use strict";var Ar=rr(),te=xo();globalThis.__TYPEDARRAY_POOL||(globalThis.__TYPEDARRAY_POOL={UINT8:te([32,0]),UINT16:te([32,0]),UINT32:te([32,0]),BIGUINT64:te([32,0]),INT8:te([32,0]),INT16:te([32,0]),INT32:te([32,0]),BIGINT64:te([32,0]),FLOAT:te([32,0]),DOUBLE:te([32,0]),DATA:te([32,0]),UINT8C:te([32,0])});var R0=typeof Uint8ClampedArray<"u",O0=typeof BigUint64Array<"u",q0=typeof BigInt64Array<"u",Qt=globalThis.__TYPEDARRAY_POOL;Qt.UINT8C||(Qt.UINT8C=te([32,0]));Qt.BIGUINT64||(Qt.BIGUINT64=te([32,0]));Qt.BIGINT64||(Qt.BIGINT64=te([32,0]));var Ur=Qt.DATA;Et.free=function(t){if(Object.prototype.toString.call(t)!=="[object ArrayBuffer]"&&(t=t.buffer),!!t){var n=t.length||t.byteLength,r=Ar.log2(n)|0;Ur[r].push(t)}};function Mo(e){if(e){var t=e.length||e.byteLength,n=Ar.log2(t);Ur[n].push(e)}}function N0(e){Mo(e.buffer)}Et.freeUint8=Et.freeUint16=Et.freeUint32=Et.freeBigUint64=Et.freeInt8=Et.freeInt16=Et.freeInt32=Et.freeBigInt64=Et.freeFloat32=Et.freeFloat=Et.freeFloat64=Et.freeDouble=Et.freeUint8Clamped=Et.freeDataView=N0;Et.freeArrayBuffer=Mo;Et.malloc=function(t,n){if(n===void 0||n==="arraybuffer")return ie(t);switch(n){case"uint8":return An(t);case"uint16":return yo(t);case"uint32":return bo(t);case"int8":return _o(t);case"int16":return So(t);case"int32":return To(t);case"float":case"float32":return Bo(t);case"double":case"float64":return Po(t);case"uint8_clamped":return Do(t);case"bigint64":return Ao(t);case"biguint64":return Fo(t);case"data":case"dataview":return Uo(t);default:return null}return null};function ie(t){var t=Ar.nextPow2(t),n=Ar.log2(t),r=Ur[n];return r.length>0?r.pop():new ArrayBuffer(t)}Et.mallocArrayBuffer=ie;function An(e){return new Uint8Array(ie(e),0,e)}Et.mallocUint8=An;function yo(e){return new Uint16Array(ie(2*e),0,e)}Et.mallocUint16=yo;function bo(e){return new Uint32Array(ie(4*e),0,e)}Et.mallocUint32=bo;function _o(e){return new Int8Array(ie(e),0,e)}Et.mallocInt8=_o;function So(e){return new Int16Array(ie(2*e),0,e)}Et.mallocInt16=So;function To(e){return new Int32Array(ie(4*e),0,e)}Et.mallocInt32=To;function Bo(e){return new Float32Array(ie(4*e),0,e)}Et.mallocFloat32=Et.mallocFloat=Bo;function Po(e){return new Float64Array(ie(8*e),0,e)}Et.mallocFloat64=Et.mallocDouble=Po;function Do(e){return R0?new Uint8ClampedArray(ie(e),0,e):An(e)}Et.mallocUint8Clamped=Do;function Fo(e){return O0?new BigUint64Array(ie(8*e),0,e):null}Et.mallocBigUint64=Fo;function Ao(e){return q0?new BigInt64Array(ie(8*e),0,e):null}Et.mallocBigInt64=Ao;function Uo(e){return new DataView(ie(e),0,e)}Et.mallocDataView=Uo;Et.clearCache=function(){for(var t=0;t<32;++t)Qt.UINT8[t].length=0,Qt.UINT16[t].length=0,Qt.UINT32[t].length=0,Qt.INT8[t].length=0,Qt.INT16[t].length=0,Qt.INT32[t].length=0,Qt.FLOAT[t].length=0,Qt.DOUBLE[t].length=0,Qt.BIGUINT64[t].length=0,Qt.BIGINT64[t].length=0,Qt.UINT8C[t].length=0,Ur[t].length=0}});var Go=xt((Wl,Lo)=>{"use strict";Lo.exports=V0;var Er=32;function V0(e,t){t<=4*Er?Lr(0,t-1,e):Gr(0,t-1,e)}function Lr(e,t,n){for(var r=2*(e+1),i=e+1;i<=t;++i){for(var o=n[r++],a=n[r++],f=i,h=r-2;f-- >e;){var v=n[h-2],d=n[h-1];if(v<o)break;if(v===o&&d<a)break;n[h]=v,n[h+1]=d,h-=2}n[h]=o,n[h+1]=a}}function zo(e,t,n){e*=2,t*=2;var r=n[e],i=n[e+1];n[e]=n[t],n[e+1]=n[t+1],n[t]=r,n[t+1]=i}function Io(e,t,n){e*=2,t*=2,n[e]=n[t],n[e+1]=n[t+1]}function C0(e,t,n,r){e*=2,t*=2,n*=2;var i=r[e],o=r[e+1];r[e]=r[t],r[e+1]=r[t+1],r[t]=r[n],r[t+1]=r[n+1],r[n]=i,r[n+1]=o}function Eo(e,t,n,r,i){e*=2,t*=2,i[e]=i[t],i[t]=n,i[e+1]=i[t+1],i[t+1]=r}function de(e,t,n){e*=2,t*=2;var r=n[e],i=n[t];return r<i?!1:r===i?n[e+1]>n[t+1]:!0}function Ir(e,t,n,r){e*=2;var i=r[e];return i<t?!0:i===t?r[e+1]<n:!1}function Gr(e,t,n){var r=(t-e+1)/6|0,i=e+r,o=t-r,a=e+t>>1,f=a-r,h=a+r,v=i,d=f,D=a,m=h,C=o,R=e+1,N=t-1,V=0;de(v,d,n)&&(V=v,v=d,d=V),de(m,C,n)&&(V=m,m=C,C=V),de(v,D,n)&&(V=v,v=D,D=V),de(d,D,n)&&(V=d,d=D,D=V),de(v,m,n)&&(V=v,v=m,m=V),de(D,m,n)&&(V=D,D=m,m=V),de(d,C,n)&&(V=d,d=C,C=V),de(d,D,n)&&(V=d,d=D,D=V),de(m,C,n)&&(V=m,m=C,C=V);for(var Y=n[2*d],K=n[2*d+1],Q=n[2*m],j=n[2*m+1],Z=2*v,W=2*D,st=2*C,et=2*i,rt=2*a,F=2*o,s=0;s<2;++s){var p=n[Z+s],_=n[W+s],y=n[st+s];n[et+s]=p,n[rt+s]=_,n[F+s]=y}Io(f,e,n),Io(h,t,n);for(var T=R;T<=N;++T)if(Ir(T,Y,K,n))T!==R&&zo(T,R,n),++R;else if(!Ir(T,Q,j,n))for(;;)if(Ir(N,Q,j,n)){Ir(N,Y,K,n)?(C0(T,R,N,n),++R,--N):(zo(T,N,n),--N);break}else{if(--N<T)break;continue}Eo(e,R-1,Y,K,n),Eo(t,N+1,Q,j,n),R-2-e<=Er?Lr(e,R-2,n):Gr(e,R-2,n),t-(N+2)<=Er?Lr(N+2,t,n):Gr(N+2,t,n),N-R<=Er?Lr(R,N,n):Gr(R,N,n)}});var Un=xt((Kl,Ro)=>{"use strict";Ro.exports={init:k0,sweepBipartite:X0,sweepComplete:Y0,scanBipartite:Z0,scanComplete:H0};var Yt=zr(),m0=rr(),Rr=Go(),se=1<<28,ze=1024,Jt=Yt.mallocInt32(ze),we=Yt.mallocInt32(ze),xe=Yt.mallocInt32(ze),Ue=Yt.mallocInt32(ze),ke=Yt.mallocInt32(ze),nr=Yt.mallocInt32(ze),St=Yt.mallocDouble(ze*8);function k0(e){var t=m0.nextPow2(e);Jt.length<t&&(Yt.free(Jt),Jt=Yt.mallocInt32(t)),we.length<t&&(Yt.free(we),we=Yt.mallocInt32(t)),xe.length<t&&(Yt.free(xe),xe=Yt.mallocInt32(t)),Ue.length<t&&(Yt.free(Ue),Ue=Yt.mallocInt32(t)),ke.length<t&&(Yt.free(ke),ke=Yt.mallocInt32(t)),nr.length<t&&(Yt.free(nr),nr=Yt.mallocInt32(t));var n=8*t;St.length<n&&(Yt.free(St),St=Yt.mallocDouble(n))}function Xe(e,t,n,r){var i=t[r],o=e[n-1];e[i]=o,t[o]=i}function Ye(e,t,n,r){e[n]=r,t[r]=n}function X0(e,t,n,r,i,o,a,f,h,v){for(var d=0,D=2*e,m=e-1,C=D-1,R=n;R<r;++R){var N=o[R],V=D*R;St[d++]=i[V+m],St[d++]=-(N+1),St[d++]=i[V+C],St[d++]=N}for(var R=a;R<f;++R){var N=v[R]+se,Y=D*R;St[d++]=h[Y+m],St[d++]=-N,St[d++]=h[Y+C],St[d++]=N}var K=d>>>1;Rr(St,K);for(var Q=0,j=0,R=0;R<K;++R){var Z=St[2*R+1]|0;if(Z>=se)Z=Z-se|0,Xe(xe,Ue,j--,Z);else if(Z>=0)Xe(Jt,we,Q--,Z);else if(Z<=-se){Z=-Z-se|0;for(var W=0;W<Q;++W){var st=t(Jt[W],Z);if(st!==void 0)return st}Ye(xe,Ue,j++,Z)}else{Z=-Z-1|0;for(var W=0;W<j;++W){var st=t(Z,xe[W]);if(st!==void 0)return st}Ye(Jt,we,Q++,Z)}}}function Y0(e,t,n,r,i,o,a,f,h,v){for(var d=0,D=2*e,m=e-1,C=D-1,R=n;R<r;++R){var N=o[R]+1<<1,V=D*R;St[d++]=i[V+m],St[d++]=-N,St[d++]=i[V+C],St[d++]=N}for(var R=a;R<f;++R){var N=v[R]+1<<1,Y=D*R;St[d++]=h[Y+m],St[d++]=-N|1,St[d++]=h[Y+C],St[d++]=N|1}var K=d>>>1;Rr(St,K);for(var Q=0,j=0,Z=0,R=0;R<K;++R){var W=St[2*R+1]|0,st=W&1;if(R<K-1&&W>>1===St[2*R+3]>>1&&(st=2,R+=1),W<0){for(var et=-(W>>1)-1,rt=0;rt<Z;++rt){var F=t(ke[rt],et);if(F!==void 0)return F}if(st!==0)for(var rt=0;rt<Q;++rt){var F=t(Jt[rt],et);if(F!==void 0)return F}if(st!==1)for(var rt=0;rt<j;++rt){var F=t(xe[rt],et);if(F!==void 0)return F}st===0?Ye(Jt,we,Q++,et):st===1?Ye(xe,Ue,j++,et):st===2&&Ye(ke,nr,Z++,et)}else{var et=(W>>1)-1;st===0?Xe(Jt,we,Q--,et):st===1?Xe(xe,Ue,j--,et):st===2&&Xe(ke,nr,Z--,et)}}}function Z0(e,t,n,r,i,o,a,f,h,v,d,D){var m=0,C=2*e,R=t,N=t+e,V=1,Y=1;r?Y=se:V=se;for(var K=i;K<o;++K){var Q=K+V,j=C*K;St[m++]=a[j+R],St[m++]=-Q,St[m++]=a[j+N],St[m++]=Q}for(var K=h;K<v;++K){var Q=K+Y,Z=C*K;St[m++]=d[Z+R],St[m++]=-Q}var W=m>>>1;Rr(St,W);for(var st=0,K=0;K<W;++K){var et=St[2*K+1]|0;if(et<0){var Q=-et,rt=!1;if(Q>=se?(rt=!r,Q-=se):(rt=!!r,Q-=1),rt)Ye(Jt,we,st++,Q);else{var F=D[Q],s=C*Q,p=d[s+t+1],_=d[s+t+1+e];t:for(var y=0;y<st;++y){var T=Jt[y],E=C*T;if(!(_<a[E+t+1]||a[E+t+1+e]<p)){for(var O=t+2;O<e;++O)if(d[s+O+e]<a[E+O]||a[E+O+e]<d[s+O])continue t;var P=f[T],l;if(r?l=n(F,P):l=n(P,F),l!==void 0)return l}}}}else Xe(Jt,we,st--,et-V)}}function H0(e,t,n,r,i,o,a,f,h,v,d){for(var D=0,m=2*e,C=t,R=t+e,N=r;N<i;++N){var V=N+se,Y=m*N;St[D++]=o[Y+C],St[D++]=-V,St[D++]=o[Y+R],St[D++]=V}for(var N=f;N<h;++N){var V=N+1,K=m*N;St[D++]=v[K+C],St[D++]=-V}var Q=D>>>1;Rr(St,Q);for(var j=0,N=0;N<Q;++N){var Z=St[2*N+1]|0;if(Z<0){var V=-Z;if(V>=se)Jt[j++]=V-se;else{V-=1;var W=d[V],st=m*V,et=v[st+t+1],rt=v[st+t+1+e];t:for(var F=0;F<j;++F){var s=Jt[F],p=a[s];if(p===W)break;var _=m*s;if(!(rt<o[_+t+1]||o[_+t+1+e]<et)){for(var y=t+2;y<e;++y)if(v[st+y+e]<o[_+y]||o[_+y+e]<v[st+y])continue t;var T=n(p,W);if(T!==void 0)return T}}}}else{for(var V=Z-se,F=j-1;F>=0;--F)if(Jt[F]===V){for(var y=F+1;y<j;++y)Jt[y-1]=Jt[y];break}--j}}}});var Co=xt(On=>{"use strict";var Ie="d",$e="ax",Oo="vv",zn="fp",ir="es",Or="rs",Gn="re",or="rb",qo="ri",Ze="rp",qr="bs",Rn="be",ar="bb",No="bi",He="bp",In="rv",En="Q",Ln=[Ie,$e,Oo,Or,Gn,or,qo,qr,Rn,ar,No];function $0(e,t,n){var r="bruteForce"+(e?"Red":"Blue")+(t?"Flip":"")+(n?"Full":""),i=["function ",r,"(",Ln.join(),"){","var ",ir,"=2*",Ie,";"],o="for(var i="+Or+","+Ze+"="+ir+"*"+Or+";i<"+Gn+";++i,"+Ze+"+="+ir+"){var x0="+or+"["+$e+"+"+Ze+"],x1="+or+"["+$e+"+"+Ze+"+"+Ie+"],xi="+qo+"[i];",a="for(var j="+qr+","+He+"="+ir+"*"+qr+";j<"+Rn+";++j,"+He+"+="+ir+"){var y0="+ar+"["+$e+"+"+He+"],"+(n?"y1="+ar+"["+$e+"+"+He+"+"+Ie+"],":"")+"yi="+No+"[j];";return e?i.push(o,En,":",a):i.push(a,En,":",o),n?i.push("if(y1<x0||x1<y0)continue;"):t?i.push("if(y0<=x0||x1<y0)continue;"):i.push("if(y0<x0||x1<y0)continue;"),i.push("for(var k="+$e+"+1;k<"+Ie+";++k){var r0="+or+"[k+"+Ze+"],r1="+or+"[k+"+Ie+"+"+Ze+"],b0="+ar+"[k+"+He+"],b1="+ar+"[k+"+Ie+"+"+He+"];if(r1<b0||b1<r0)continue "+En+";}var "+In+"="+Oo+"("),t?i.push("yi,xi"):i.push("xi,yi"),i.push(");if("+In+"!==void 0)return "+In+";}}}"),{name:r,code:i.join("")}}function Vo(e){var t="bruteForce"+(e?"Full":"Partial"),n=[],r=Ln.slice();e||r.splice(3,0,zn);var i=["function "+t+"("+r.join()+"){"];function o(h,v){var d=$0(h,v,e);n.push(d.code),i.push("return "+d.name+"("+Ln.join()+");")}i.push("if("+Gn+"-"+Or+">"+Rn+"-"+qr+"){"),e?(o(!0,!1),i.push("}else{"),o(!1,!1)):(i.push("if("+zn+"){"),o(!0,!0),i.push("}else{"),o(!0,!1),i.push("}}else{if("+zn+"){"),o(!1,!0),i.push("}else{"),o(!1,!1),i.push("}")),i.push("}}return "+t);var a=n.join("")+i.join(""),f=new Function(a);return f()}On.partial=Vo(!1);On.full=Vo(!0)});var qn=xt((Jl,mo)=>{"use strict";mo.exports=K0;var W0="for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m";function K0(e,t){var n="abcdef".split("").concat(t),r=[];return e.indexOf("lo")>=0&&r.push("lo=e[k+n]"),e.indexOf("hi")>=0&&r.push("hi=e[k+o]"),n.push(W0.replace("_",r.join()).replace("$",e)),Function.apply(void 0,n)}});var Yo=xt((jl,Xo)=>{"use strict";Xo.exports=tf;var Q0=qn(),ko=Q0("lo<p0",["p0"]),J0=8;function j0(e,t,n,r,i,o){for(var a=2*e,f=a*(n+1)+t,h=n+1;h<r;++h,f+=a)for(var v=i[f],d=h,D=a*(h-1);d>n&&i[D+t]>v;--d,D-=a){for(var m=D,C=D+a,R=0;R<a;++R,++m,++C){var N=i[m];i[m]=i[C],i[C]=N}var V=o[d];o[d]=o[d-1],o[d-1]=V}}function tf(e,t,n,r,i,o){if(r<=n+1)return n;for(var a=n,f=r,h=r+n>>>1,v=2*e,d=h,D=i[v*h+t];a<f;){if(f-a<J0){j0(e,t,a,f,i,o),D=i[v*h+t];break}var m=f-a,C=Math.random()*m+a|0,R=i[v*C+t],N=Math.random()*m+a|0,V=i[v*N+t],Y=Math.random()*m+a|0,K=i[v*Y+t];R<=V?K>=V?(d=N,D=V):R>=K?(d=C,D=R):(d=Y,D=K):V>=K?(d=N,D=V):K>=R?(d=C,D=R):(d=Y,D=K);for(var Z=v*(f-1),W=v*d,Q=0;Q<v;++Q,++Z,++W){var j=i[Z];i[Z]=i[W],i[W]=j}var st=o[f-1];o[f-1]=o[d],o[d]=st,d=ko(e,t,a,f-1,i,o,D);for(var Z=v*(f-1),W=v*d,Q=0;Q<v;++Q,++Z,++W){var j=i[Z];i[Z]=i[W],i[W]=j}var st=o[f-1];if(o[f-1]=o[d],o[d]=st,h<d){for(f=d-1;a<f&&i[v*(f-1)+t]===D;)f-=1;f+=1}else if(d<h)for(a=d+1;a<f&&i[v*a+t]===D;)a+=1;else break}return ko(e,t,n,h,i,o,i[v*h+t])}});var Jo=xt((th,Qo)=>{"use strict";Qo.exports=pf;var We=zr(),Nn=rr(),Wo=Co(),ef=Wo.partial,rf=Wo.full,_e=Un(),nf=Yo(),Ke=qn(),Zo=128,of=1<<22,af=1<<22,sf=Ke("!(lo>=p0)&&!(p1>=hi)",["p0","p1"]),Ho=Ke("lo===p0",["p0"]),uf=Ke("lo<p0",["p0"]),ff=Ke("hi<=p0",["p0"]),$o=Ke("lo<=p0&&p0<=hi",["p0"]),cf=Ke("lo<p0&&p0<=hi",["p0"]),Vn=6,Cn=2,Ko=1024,ee=We.mallocInt32(Ko),Ee=We.mallocDouble(Ko);function lf(e,t){var n=8*Nn.log2(t+1)*(e+1)|0,r=Nn.nextPow2(Vn*n);ee.length<r&&(We.free(ee),ee=We.mallocInt32(r));var i=Nn.nextPow2(Cn*n);Ee.length<i&&(We.free(Ee),Ee=We.mallocDouble(i))}function ce(e,t,n,r,i,o,a,f,h){var v=Vn*e;ee[v]=t,ee[v+1]=n,ee[v+2]=r,ee[v+3]=i,ee[v+4]=o,ee[v+5]=a;var d=Cn*e;Ee[d]=f,Ee[d+1]=h}function hf(e,t,n,r,i,o,a,f,h,v,d){var D=2*e,m=h*D,C=v[m+t];t:for(var R=i,N=i*D;R<o;++R,N+=D){var V=a[N+t],Y=a[N+t+e];if(!(C<V||Y<C)&&!(r&&C===V)){for(var K=f[R],Q=t+1;Q<e;++Q){var V=a[N+Q],Y=a[N+Q+e],j=v[m+Q],Z=v[m+Q+e];if(Y<j||Z<V)continue t}var W;if(r?W=n(d,K):W=n(K,d),W!==void 0)return W}}}function vf(e,t,n,r,i,o,a,f,h,v){var d=2*e,D=f*d,m=h[D+t];t:for(var C=r,R=r*d;C<i;++C,R+=d){var N=a[C];if(N!==v){var V=o[R+t],Y=o[R+t+e];if(!(m<V||Y<m)){for(var K=t+1;K<e;++K){var V=o[R+K],Y=o[R+K+e],Q=h[D+K],j=h[D+K+e];if(Y<Q||j<V)continue t}var Z=n(N,v);if(Z!==void 0)return Z}}}}function pf(e,t,n,r,i,o,a,f,h){lf(e,r+a);var v=0,d=2*e,D;for(ce(v++,0,0,r,0,a,n?16:0,-1/0,1/0),n||ce(v++,0,0,a,0,r,1,-1/0,1/0);v>0;){v-=1;var m=v*Vn,C=ee[m],R=ee[m+1],N=ee[m+2],V=ee[m+3],Y=ee[m+4],K=ee[m+5],Q=v*Cn,j=Ee[Q],Z=Ee[Q+1],W=K&1,st=!!(K&16),et=i,rt=o,F=f,s=h;if(W&&(et=f,rt=h,F=i,s=o),!(K&2&&(N=uf(e,C,R,N,et,rt,Z),R>=N))&&!(K&4&&(R=ff(e,C,R,N,et,rt,j),R>=N))){var p=N-R,_=Y-V;if(st){if(e*p*(p+_)<af){if(D=_e.scanComplete(e,C,t,R,N,et,rt,V,Y,F,s),D!==void 0)return D;continue}}else if(e*Math.min(p,_)<Zo){if(D=ef(e,C,t,W,R,N,et,rt,V,Y,F,s),D!==void 0)return D;continue}else if(e*p*_<of){if(D=_e.scanBipartite(e,C,t,W,R,N,et,rt,V,Y,F,s),D!==void 0)return D;continue}var y=sf(e,C,R,N,et,rt,j,Z);if(R<y)if(e*(y-R)<Zo){if(D=rf(e,C+1,t,R,y,et,rt,V,Y,F,s),D!==void 0)return D}else if(C===e-2){if(W?D=_e.sweepBipartite(e,t,V,Y,F,s,R,y,et,rt):D=_e.sweepBipartite(e,t,R,y,et,rt,V,Y,F,s),D!==void 0)return D}else ce(v++,C+1,R,y,V,Y,W,-1/0,1/0),ce(v++,C+1,V,Y,R,y,W^1,-1/0,1/0);if(y<N){var T=nf(e,C,V,Y,F,s),E=F[d*T+C],O=Ho(e,C,T,Y,F,s,E);if(O<Y&&ce(v++,C,y,N,O,Y,(W|4)+(st?16:0),E,Z),V<T&&ce(v++,C,y,N,V,T,(W|2)+(st?16:0),j,E),T+1===O){if(st?D=vf(e,C,t,y,N,et,rt,T,F,s[T]):D=hf(e,C,t,W,y,N,et,rt,T,F,s[T]),D!==void 0)return D}else if(T<O){var P;if(st){if(P=$o(e,C,y,N,et,rt,E),y<P){var l=Ho(e,C,y,P,et,rt,E);if(C===e-2){if(y<l&&(D=_e.sweepComplete(e,t,y,l,et,rt,T,O,F,s),D!==void 0)||l<P&&(D=_e.sweepBipartite(e,t,l,P,et,rt,T,O,F,s),D!==void 0))return D}else y<l&&ce(v++,C+1,y,l,T,O,16,-1/0,1/0),l<P&&(ce(v++,C+1,l,P,T,O,0,-1/0,1/0),ce(v++,C+1,T,O,l,P,1,-1/0,1/0))}}else W?P=cf(e,C,y,N,et,rt,E):P=$o(e,C,y,N,et,rt,E),y<P&&(C===e-2?W?D=_e.sweepBipartite(e,t,T,O,F,s,y,P,et,rt):D=_e.sweepBipartite(e,t,y,P,et,rt,T,O,F,s):(ce(v++,C+1,y,P,T,O,W,-1/0,1/0),ce(v++,C+1,T,O,y,P,W^1,-1/0,1/0)))}}}}}});var ra=xt((eh,ea)=>{"use strict";ea.exports=Mf;var Se=zr(),Nr=Un(),gf=Jo();function df(e,t){for(var n=0;n<e;++n)if(!(t[n]<=t[n+e]))return!0;return!1}function jo(e,t,n,r){for(var i=0,o=0,a=0,f=e.length;a<f;++a){var h=e[a];if(!df(t,h)){for(var v=0;v<2*t;++v)n[i++]=h[v];r[o++]=a}}return o}function Vr(e,t,n,r){var i=e.length,o=t.length;if(!(i<=0||o<=0)){var a=e[0].length>>>1;if(!(a<=0)){var f,h=Se.mallocDouble(2*a*i),v=Se.mallocInt32(i);if(i=jo(e,a,h,v),i>0){if(a===1&&r)Nr.init(i),f=Nr.sweepComplete(a,n,0,i,h,v,0,i,h,v);else{var d=Se.mallocDouble(2*a*o),D=Se.mallocInt32(o);o=jo(t,a,d,D),o>0&&(Nr.init(i+o),a===1?f=Nr.sweepBipartite(a,n,0,i,h,v,0,o,d,D):f=gf(a,n,r,i,h,v,o,d,D),Se.free(d),Se.free(D))}Se.free(h),Se.free(v)}return f}}}var sr;function ta(e,t){sr.push([e,t])}function wf(e){return sr=[],Vr(e,e,ta,!0),sr}function xf(e,t){return sr=[],Vr(e,t,ta,!1),sr}function Mf(e,t,n){var r;switch(arguments.length){case 1:return wf(e);case 2:return typeof t=="function"?Vr(e,e,t,!0):xf(e,t);case 3:return Vr(e,t,n,!1);default:throw new Error("box-intersect: Invalid arguments")}}});var ia=xt((rh,na)=>{"use strict";na.exports=bf;var Cr=bn()[3];function yf(e,t,n,r){for(var i=0;i<2;++i){var o=e[i],a=t[i],f=Math.min(o,a),h=Math.max(o,a),v=n[i],d=r[i],D=Math.min(v,d),m=Math.max(v,d);if(m<f||h<D)return!1}return!0}function bf(e,t,n,r){var i=Cr(e,n,r),o=Cr(t,n,r);if(i>0&&o>0||i<0&&o<0)return!1;var a=Cr(n,e,t),f=Cr(r,e,t);return a>0&&f>0||a<0&&f<0?!1:i===0&&o===0&&a===0&&f===0?yf(e,t,n,r):!0}});var oa=xt(()=>{});var ur=xt((aa,mn)=>{(function(e,t){"use strict";function n(F,s){if(!F)throw new Error(s||"Assertion failed")}function r(F,s){F.super_=s;var p=function(){};p.prototype=s.prototype,F.prototype=new p,F.prototype.constructor=F}function i(F,s,p){if(i.isBN(F))return F;this.negative=0,this.words=null,this.length=0,this.red=null,F!==null&&((s==="le"||s==="be")&&(p=s,s=10),this._init(F||0,s||10,p||"be"))}typeof e=="object"?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;var o;try{typeof window<"u"&&typeof window.Buffer<"u"?o=window.Buffer:o=oa().Buffer}catch{}i.isBN=function(s){return s instanceof i?!0:s!==null&&typeof s=="object"&&s.constructor.wordSize===i.wordSize&&Array.isArray(s.words)},i.max=function(s,p){return s.cmp(p)>0?s:p},i.min=function(s,p){return s.cmp(p)<0?s:p},i.prototype._init=function(s,p,_){if(typeof s=="number")return this._initNumber(s,p,_);if(typeof s=="object")return this._initArray(s,p,_);p==="hex"&&(p=16),n(p===(p|0)&&p>=2&&p<=36),s=s.toString().replace(/\s+/g,"");var y=0;s[0]==="-"&&(y++,this.negative=1),y<s.length&&(p===16?this._parseHex(s,y,_):(this._parseBase(s,p,y),_==="le"&&this._initArray(this.toArray(),p,_)))},i.prototype._initNumber=function(s,p,_){s<0&&(this.negative=1,s=-s),s<67108864?(this.words=[s&67108863],this.length=1):s<4503599627370496?(this.words=[s&67108863,s/67108864&67108863],this.length=2):(n(s<9007199254740992),this.words=[s&67108863,s/67108864&67108863,1],this.length=3),_==="le"&&this._initArray(this.toArray(),p,_)},i.prototype._initArray=function(s,p,_){if(n(typeof s.length=="number"),s.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(s.length/3),this.words=new Array(this.length);for(var y=0;y<this.length;y++)this.words[y]=0;var T,E,O=0;if(_==="be")for(y=s.length-1,T=0;y>=0;y-=3)E=s[y]|s[y-1]<<8|s[y-2]<<16,this.words[T]|=E<<O&67108863,this.words[T+1]=E>>>26-O&67108863,O+=24,O>=26&&(O-=26,T++);else if(_==="le")for(y=0,T=0;y<s.length;y+=3)E=s[y]|s[y+1]<<8|s[y+2]<<16,this.words[T]|=E<<O&67108863,this.words[T+1]=E>>>26-O&67108863,O+=24,O>=26&&(O-=26,T++);return this.strip()};function a(F,s){var p=F.charCodeAt(s);return p>=65&&p<=70?p-55:p>=97&&p<=102?p-87:p-48&15}function f(F,s,p){var _=a(F,p);return p-1>=s&&(_|=a(F,p-1)<<4),_}i.prototype._parseHex=function(s,p,_){this.length=Math.ceil((s.length-p)/6),this.words=new Array(this.length);for(var y=0;y<this.length;y++)this.words[y]=0;var T=0,E=0,O;if(_==="be")for(y=s.length-1;y>=p;y-=2)O=f(s,p,y)<<T,this.words[E]|=O&67108863,T>=18?(T-=18,E+=1,this.words[E]|=O>>>26):T+=8;else{var P=s.length-p;for(y=P%2===0?p+1:p;y<s.length;y+=2)O=f(s,p,y)<<T,this.words[E]|=O&67108863,T>=18?(T-=18,E+=1,this.words[E]|=O>>>26):T+=8}this.strip()};function h(F,s,p,_){for(var y=0,T=Math.min(F.length,p),E=s;E<T;E++){var O=F.charCodeAt(E)-48;y*=_,O>=49?y+=O-49+10:O>=17?y+=O-17+10:y+=O}return y}i.prototype._parseBase=function(s,p,_){this.words=[0],this.length=1;for(var y=0,T=1;T<=67108863;T*=p)y++;y--,T=T/p|0;for(var E=s.length-_,O=E%y,P=Math.min(E,E-O)+_,l=0,U=_;U<P;U+=y)l=h(s,U,U+y,p),this.imuln(T),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(O!==0){var ot=1;for(l=h(s,U,s.length,p),U=0;U<O;U++)ot*=p;this.imuln(ot),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this.strip()},i.prototype.copy=function(s){s.words=new Array(this.length);for(var p=0;p<this.length;p++)s.words[p]=this.words[p];s.length=this.length,s.negative=this.negative,s.red=this.red},i.prototype.clone=function(){var s=new i(null);return this.copy(s),s},i.prototype._expand=function(s){for(;this.length<s;)this.words[this.length++]=0;return this},i.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},i.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var v=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],D=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(s,p){s=s||10,p=p|0||1;var _;if(s===16||s==="hex"){_="";for(var y=0,T=0,E=0;E<this.length;E++){var O=this.words[E],P=((O<<y|T)&16777215).toString(16);T=O>>>24-y&16777215,y+=2,y>=26&&(y-=26,E--),T!==0||E!==this.length-1?_=v[6-P.length]+P+_:_=P+_}for(T!==0&&(_=T.toString(16)+_);_.length%p!==0;)_="0"+_;return this.negative!==0&&(_="-"+_),_}if(s===(s|0)&&s>=2&&s<=36){var l=d[s],U=D[s];_="";var ot=this.clone();for(ot.negative=0;!ot.isZero();){var at=ot.modn(U).toString(s);ot=ot.idivn(U),ot.isZero()?_=at+_:_=v[l-at.length]+at+_}for(this.isZero()&&(_="0"+_);_.length%p!==0;)_="0"+_;return this.negative!==0&&(_="-"+_),_}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var s=this.words[0];return this.length===2?s+=this.words[1]*67108864:this.length===3&&this.words[2]===1?s+=4503599627370496+this.words[1]*67108864:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-s:s},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(s,p){return n(typeof o<"u"),this.toArrayLike(o,s,p)},i.prototype.toArray=function(s,p){return this.toArrayLike(Array,s,p)},i.prototype.toArrayLike=function(s,p,_){var y=this.byteLength(),T=_||Math.max(1,y);n(y<=T,"byte array longer than desired length"),n(T>0,"Requested array length <= 0"),this.strip();var E=p==="le",O=new s(T),P,l,U=this.clone();if(E){for(l=0;!U.isZero();l++)P=U.andln(255),U.iushrn(8),O[l]=P;for(;l<T;l++)O[l]=0}else{for(l=0;l<T-y;l++)O[l]=0;for(l=0;!U.isZero();l++)P=U.andln(255),U.iushrn(8),O[T-l-1]=P}return O},Math.clz32?i.prototype._countBits=function(s){return 32-Math.clz32(s)}:i.prototype._countBits=function(s){var p=s,_=0;return p>=4096&&(_+=13,p>>>=13),p>=64&&(_+=7,p>>>=7),p>=8&&(_+=4,p>>>=4),p>=2&&(_+=2,p>>>=2),_+p},i.prototype._zeroBits=function(s){if(s===0)return 26;var p=s,_=0;return(p&8191)===0&&(_+=13,p>>>=13),(p&127)===0&&(_+=7,p>>>=7),(p&15)===0&&(_+=4,p>>>=4),(p&3)===0&&(_+=2,p>>>=2),(p&1)===0&&_++,_},i.prototype.bitLength=function(){var s=this.words[this.length-1],p=this._countBits(s);return(this.length-1)*26+p};function m(F){for(var s=new Array(F.bitLength()),p=0;p<s.length;p++){var _=p/26|0,y=p%26;s[p]=(F.words[_]&1<<y)>>>y}return s}i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var s=0,p=0;p<this.length;p++){var _=this._zeroBits(this.words[p]);if(s+=_,_!==26)break}return s},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(s){return this.negative!==0?this.abs().inotn(s).iaddn(1):this.clone()},i.prototype.fromTwos=function(s){return this.testn(s-1)?this.notn(s).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return this.negative!==0},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(s){for(;this.length<s.length;)this.words[this.length++]=0;for(var p=0;p<s.length;p++)this.words[p]=this.words[p]|s.words[p];return this.strip()},i.prototype.ior=function(s){return n((this.negative|s.negative)===0),this.iuor(s)},i.prototype.or=function(s){return this.length>s.length?this.clone().ior(s):s.clone().ior(this)},i.prototype.uor=function(s){return this.length>s.length?this.clone().iuor(s):s.clone().iuor(this)},i.prototype.iuand=function(s){var p;this.length>s.length?p=s:p=this;for(var _=0;_<p.length;_++)this.words[_]=this.words[_]&s.words[_];return this.length=p.length,this.strip()},i.prototype.iand=function(s){return n((this.negative|s.negative)===0),this.iuand(s)},i.prototype.and=function(s){return this.length>s.length?this.clone().iand(s):s.clone().iand(this)},i.prototype.uand=function(s){return this.length>s.length?this.clone().iuand(s):s.clone().iuand(this)},i.prototype.iuxor=function(s){var p,_;this.length>s.length?(p=this,_=s):(p=s,_=this);for(var y=0;y<_.length;y++)this.words[y]=p.words[y]^_.words[y];if(this!==p)for(;y<p.length;y++)this.words[y]=p.words[y];return this.length=p.length,this.strip()},i.prototype.ixor=function(s){return n((this.negative|s.negative)===0),this.iuxor(s)},i.prototype.xor=function(s){return this.length>s.length?this.clone().ixor(s):s.clone().ixor(this)},i.prototype.uxor=function(s){return this.length>s.length?this.clone().iuxor(s):s.clone().iuxor(this)},i.prototype.inotn=function(s){n(typeof s=="number"&&s>=0);var p=Math.ceil(s/26)|0,_=s%26;this._expand(p),_>0&&p--;for(var y=0;y<p;y++)this.words[y]=~this.words[y]&67108863;return _>0&&(this.words[y]=~this.words[y]&67108863>>26-_),this.strip()},i.prototype.notn=function(s){return this.clone().inotn(s)},i.prototype.setn=function(s,p){n(typeof s=="number"&&s>=0);var _=s/26|0,y=s%26;return this._expand(_+1),p?this.words[_]=this.words[_]|1<<y:this.words[_]=this.words[_]&~(1<<y),this.strip()},i.prototype.iadd=function(s){var p;if(this.negative!==0&&s.negative===0)return this.negative=0,p=this.isub(s),this.negative^=1,this._normSign();if(this.negative===0&&s.negative!==0)return s.negative=0,p=this.isub(s),s.negative=1,p._normSign();var _,y;this.length>s.length?(_=this,y=s):(_=s,y=this);for(var T=0,E=0;E<y.length;E++)p=(_.words[E]|0)+(y.words[E]|0)+T,this.words[E]=p&67108863,T=p>>>26;for(;T!==0&&E<_.length;E++)p=(_.words[E]|0)+T,this.words[E]=p&67108863,T=p>>>26;if(this.length=_.length,T!==0)this.words[this.length]=T,this.length++;else if(_!==this)for(;E<_.length;E++)this.words[E]=_.words[E];return this},i.prototype.add=function(s){var p;return s.negative!==0&&this.negative===0?(s.negative=0,p=this.sub(s),s.negative^=1,p):s.negative===0&&this.negative!==0?(this.negative=0,p=s.sub(this),this.negative=1,p):this.length>s.length?this.clone().iadd(s):s.clone().iadd(this)},i.prototype.isub=function(s){if(s.negative!==0){s.negative=0;var p=this.iadd(s);return s.negative=1,p._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(s),this.negative=1,this._normSign();var _=this.cmp(s);if(_===0)return this.negative=0,this.length=1,this.words[0]=0,this;var y,T;_>0?(y=this,T=s):(y=s,T=this);for(var E=0,O=0;O<T.length;O++)p=(y.words[O]|0)-(T.words[O]|0)+E,E=p>>26,this.words[O]=p&67108863;for(;E!==0&&O<y.length;O++)p=(y.words[O]|0)+E,E=p>>26,this.words[O]=p&67108863;if(E===0&&O<y.length&&y!==this)for(;O<y.length;O++)this.words[O]=y.words[O];return this.length=Math.max(this.length,O),y!==this&&(this.negative=1),this.strip()},i.prototype.sub=function(s){return this.clone().isub(s)};function C(F,s,p){p.negative=s.negative^F.negative;var _=F.length+s.length|0;p.length=_,_=_-1|0;var y=F.words[0]|0,T=s.words[0]|0,E=y*T,O=E&67108863,P=E/67108864|0;p.words[0]=O;for(var l=1;l<_;l++){for(var U=P>>>26,ot=P&67108863,at=Math.min(l,s.length-1),ut=Math.max(0,l-F.length+1);ut<=at;ut++){var ft=l-ut|0;y=F.words[ft]|0,T=s.words[ut]|0,E=y*T+ot,U+=E/67108864|0,ot=E&67108863}p.words[l]=ot|0,P=U|0}return P!==0?p.words[l]=P|0:p.length--,p.strip()}var R=function(s,p,_){var y=s.words,T=p.words,E=_.words,O=0,P,l,U,ot=y[0]|0,at=ot&8191,ut=ot>>>13,ft=y[1]|0,Mt=ft&8191,vt=ft>>>13,X=y[2]|0,$=X&8191,A=X>>>13,c=y[3]|0,b=c&8191,w=c>>>13,I=y[4]|0,G=I&8191,q=I>>>13,k=y[5]|0,u=k&8191,B=k>>>13,M=y[6]|0,x=M&8191,g=M>>>13,S=y[7]|0,L=S&8191,z=S>>>13,H=y[8]|0,J=H&8191,tt=H>>>13,ct=y[9]|0,nt=ct&8191,it=ct>>>13,pt=T[0]|0,ht=pt&8191,lt=pt>>>13,gt=T[1]|0,wt=gt&8191,dt=gt>>>13,mt=T[2]|0,yt=mt&8191,bt=mt>>>13,Zt=T[3]|0,Bt=Zt&8191,Pt=Zt>>>13,$t=T[4]|0,Dt=$t&8191,Ft=$t>>>13,Wt=T[5]|0,At=Wt&8191,Ut=Wt>>>13,Kt=T[6]|0,zt=Kt&8191,It=Kt>>>13,jt=T[7]|0,Gt=jt&8191,Rt=jt>>>13,Te=T[8]|0,Ot=Te&8191,qt=Te>>>13,Be=T[9]|0,Nt=Be&8191,Ct=Be>>>13;_.negative=s.negative^p.negative,_.length=19,P=Math.imul(at,ht),l=Math.imul(at,lt),l=l+Math.imul(ut,ht)|0,U=Math.imul(ut,lt);var qe=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(qe>>>26)|0,qe&=67108863,P=Math.imul(Mt,ht),l=Math.imul(Mt,lt),l=l+Math.imul(vt,ht)|0,U=Math.imul(vt,lt),P=P+Math.imul(at,wt)|0,l=l+Math.imul(at,dt)|0,l=l+Math.imul(ut,wt)|0,U=U+Math.imul(ut,dt)|0;var Ne=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,P=Math.imul($,ht),l=Math.imul($,lt),l=l+Math.imul(A,ht)|0,U=Math.imul(A,lt),P=P+Math.imul(Mt,wt)|0,l=l+Math.imul(Mt,dt)|0,l=l+Math.imul(vt,wt)|0,U=U+Math.imul(vt,dt)|0,P=P+Math.imul(at,yt)|0,l=l+Math.imul(at,bt)|0,l=l+Math.imul(ut,yt)|0,U=U+Math.imul(ut,bt)|0;var Ve=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Ve>>>26)|0,Ve&=67108863,P=Math.imul(b,ht),l=Math.imul(b,lt),l=l+Math.imul(w,ht)|0,U=Math.imul(w,lt),P=P+Math.imul($,wt)|0,l=l+Math.imul($,dt)|0,l=l+Math.imul(A,wt)|0,U=U+Math.imul(A,dt)|0,P=P+Math.imul(Mt,yt)|0,l=l+Math.imul(Mt,bt)|0,l=l+Math.imul(vt,yt)|0,U=U+Math.imul(vt,bt)|0,P=P+Math.imul(at,Bt)|0,l=l+Math.imul(at,Pt)|0,l=l+Math.imul(ut,Bt)|0,U=U+Math.imul(ut,Pt)|0;var Ht=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,P=Math.imul(G,ht),l=Math.imul(G,lt),l=l+Math.imul(q,ht)|0,U=Math.imul(q,lt),P=P+Math.imul(b,wt)|0,l=l+Math.imul(b,dt)|0,l=l+Math.imul(w,wt)|0,U=U+Math.imul(w,dt)|0,P=P+Math.imul($,yt)|0,l=l+Math.imul($,bt)|0,l=l+Math.imul(A,yt)|0,U=U+Math.imul(A,bt)|0,P=P+Math.imul(Mt,Bt)|0,l=l+Math.imul(Mt,Pt)|0,l=l+Math.imul(vt,Bt)|0,U=U+Math.imul(vt,Pt)|0,P=P+Math.imul(at,Dt)|0,l=l+Math.imul(at,Ft)|0,l=l+Math.imul(ut,Dt)|0,U=U+Math.imul(ut,Ft)|0;var Wr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,P=Math.imul(u,ht),l=Math.imul(u,lt),l=l+Math.imul(B,ht)|0,U=Math.imul(B,lt),P=P+Math.imul(G,wt)|0,l=l+Math.imul(G,dt)|0,l=l+Math.imul(q,wt)|0,U=U+Math.imul(q,dt)|0,P=P+Math.imul(b,yt)|0,l=l+Math.imul(b,bt)|0,l=l+Math.imul(w,yt)|0,U=U+Math.imul(w,bt)|0,P=P+Math.imul($,Bt)|0,l=l+Math.imul($,Pt)|0,l=l+Math.imul(A,Bt)|0,U=U+Math.imul(A,Pt)|0,P=P+Math.imul(Mt,Dt)|0,l=l+Math.imul(Mt,Ft)|0,l=l+Math.imul(vt,Dt)|0,U=U+Math.imul(vt,Ft)|0,P=P+Math.imul(at,At)|0,l=l+Math.imul(at,Ut)|0,l=l+Math.imul(ut,At)|0,U=U+Math.imul(ut,Ut)|0;var Kr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Kr>>>26)|0,Kr&=67108863,P=Math.imul(x,ht),l=Math.imul(x,lt),l=l+Math.imul(g,ht)|0,U=Math.imul(g,lt),P=P+Math.imul(u,wt)|0,l=l+Math.imul(u,dt)|0,l=l+Math.imul(B,wt)|0,U=U+Math.imul(B,dt)|0,P=P+Math.imul(G,yt)|0,l=l+Math.imul(G,bt)|0,l=l+Math.imul(q,yt)|0,U=U+Math.imul(q,bt)|0,P=P+Math.imul(b,Bt)|0,l=l+Math.imul(b,Pt)|0,l=l+Math.imul(w,Bt)|0,U=U+Math.imul(w,Pt)|0,P=P+Math.imul($,Dt)|0,l=l+Math.imul($,Ft)|0,l=l+Math.imul(A,Dt)|0,U=U+Math.imul(A,Ft)|0,P=P+Math.imul(Mt,At)|0,l=l+Math.imul(Mt,Ut)|0,l=l+Math.imul(vt,At)|0,U=U+Math.imul(vt,Ut)|0,P=P+Math.imul(at,zt)|0,l=l+Math.imul(at,It)|0,l=l+Math.imul(ut,zt)|0,U=U+Math.imul(ut,It)|0;var Qr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Qr>>>26)|0,Qr&=67108863,P=Math.imul(L,ht),l=Math.imul(L,lt),l=l+Math.imul(z,ht)|0,U=Math.imul(z,lt),P=P+Math.imul(x,wt)|0,l=l+Math.imul(x,dt)|0,l=l+Math.imul(g,wt)|0,U=U+Math.imul(g,dt)|0,P=P+Math.imul(u,yt)|0,l=l+Math.imul(u,bt)|0,l=l+Math.imul(B,yt)|0,U=U+Math.imul(B,bt)|0,P=P+Math.imul(G,Bt)|0,l=l+Math.imul(G,Pt)|0,l=l+Math.imul(q,Bt)|0,U=U+Math.imul(q,Pt)|0,P=P+Math.imul(b,Dt)|0,l=l+Math.imul(b,Ft)|0,l=l+Math.imul(w,Dt)|0,U=U+Math.imul(w,Ft)|0,P=P+Math.imul($,At)|0,l=l+Math.imul($,Ut)|0,l=l+Math.imul(A,At)|0,U=U+Math.imul(A,Ut)|0,P=P+Math.imul(Mt,zt)|0,l=l+Math.imul(Mt,It)|0,l=l+Math.imul(vt,zt)|0,U=U+Math.imul(vt,It)|0,P=P+Math.imul(at,Gt)|0,l=l+Math.imul(at,Rt)|0,l=l+Math.imul(ut,Gt)|0,U=U+Math.imul(ut,Rt)|0;var Jr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Jr>>>26)|0,Jr&=67108863,P=Math.imul(J,ht),l=Math.imul(J,lt),l=l+Math.imul(tt,ht)|0,U=Math.imul(tt,lt),P=P+Math.imul(L,wt)|0,l=l+Math.imul(L,dt)|0,l=l+Math.imul(z,wt)|0,U=U+Math.imul(z,dt)|0,P=P+Math.imul(x,yt)|0,l=l+Math.imul(x,bt)|0,l=l+Math.imul(g,yt)|0,U=U+Math.imul(g,bt)|0,P=P+Math.imul(u,Bt)|0,l=l+Math.imul(u,Pt)|0,l=l+Math.imul(B,Bt)|0,U=U+Math.imul(B,Pt)|0,P=P+Math.imul(G,Dt)|0,l=l+Math.imul(G,Ft)|0,l=l+Math.imul(q,Dt)|0,U=U+Math.imul(q,Ft)|0,P=P+Math.imul(b,At)|0,l=l+Math.imul(b,Ut)|0,l=l+Math.imul(w,At)|0,U=U+Math.imul(w,Ut)|0,P=P+Math.imul($,zt)|0,l=l+Math.imul($,It)|0,l=l+Math.imul(A,zt)|0,U=U+Math.imul(A,It)|0,P=P+Math.imul(Mt,Gt)|0,l=l+Math.imul(Mt,Rt)|0,l=l+Math.imul(vt,Gt)|0,U=U+Math.imul(vt,Rt)|0,P=P+Math.imul(at,Ot)|0,l=l+Math.imul(at,qt)|0,l=l+Math.imul(ut,Ot)|0,U=U+Math.imul(ut,qt)|0;var jr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(jr>>>26)|0,jr&=67108863,P=Math.imul(nt,ht),l=Math.imul(nt,lt),l=l+Math.imul(it,ht)|0,U=Math.imul(it,lt),P=P+Math.imul(J,wt)|0,l=l+Math.imul(J,dt)|0,l=l+Math.imul(tt,wt)|0,U=U+Math.imul(tt,dt)|0,P=P+Math.imul(L,yt)|0,l=l+Math.imul(L,bt)|0,l=l+Math.imul(z,yt)|0,U=U+Math.imul(z,bt)|0,P=P+Math.imul(x,Bt)|0,l=l+Math.imul(x,Pt)|0,l=l+Math.imul(g,Bt)|0,U=U+Math.imul(g,Pt)|0,P=P+Math.imul(u,Dt)|0,l=l+Math.imul(u,Ft)|0,l=l+Math.imul(B,Dt)|0,U=U+Math.imul(B,Ft)|0,P=P+Math.imul(G,At)|0,l=l+Math.imul(G,Ut)|0,l=l+Math.imul(q,At)|0,U=U+Math.imul(q,Ut)|0,P=P+Math.imul(b,zt)|0,l=l+Math.imul(b,It)|0,l=l+Math.imul(w,zt)|0,U=U+Math.imul(w,It)|0,P=P+Math.imul($,Gt)|0,l=l+Math.imul($,Rt)|0,l=l+Math.imul(A,Gt)|0,U=U+Math.imul(A,Rt)|0,P=P+Math.imul(Mt,Ot)|0,l=l+Math.imul(Mt,qt)|0,l=l+Math.imul(vt,Ot)|0,U=U+Math.imul(vt,qt)|0,P=P+Math.imul(at,Nt)|0,l=l+Math.imul(at,Ct)|0,l=l+Math.imul(ut,Nt)|0,U=U+Math.imul(ut,Ct)|0;var tn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(tn>>>26)|0,tn&=67108863,P=Math.imul(nt,wt),l=Math.imul(nt,dt),l=l+Math.imul(it,wt)|0,U=Math.imul(it,dt),P=P+Math.imul(J,yt)|0,l=l+Math.imul(J,bt)|0,l=l+Math.imul(tt,yt)|0,U=U+Math.imul(tt,bt)|0,P=P+Math.imul(L,Bt)|0,l=l+Math.imul(L,Pt)|0,l=l+Math.imul(z,Bt)|0,U=U+Math.imul(z,Pt)|0,P=P+Math.imul(x,Dt)|0,l=l+Math.imul(x,Ft)|0,l=l+Math.imul(g,Dt)|0,U=U+Math.imul(g,Ft)|0,P=P+Math.imul(u,At)|0,l=l+Math.imul(u,Ut)|0,l=l+Math.imul(B,At)|0,U=U+Math.imul(B,Ut)|0,P=P+Math.imul(G,zt)|0,l=l+Math.imul(G,It)|0,l=l+Math.imul(q,zt)|0,U=U+Math.imul(q,It)|0,P=P+Math.imul(b,Gt)|0,l=l+Math.imul(b,Rt)|0,l=l+Math.imul(w,Gt)|0,U=U+Math.imul(w,Rt)|0,P=P+Math.imul($,Ot)|0,l=l+Math.imul($,qt)|0,l=l+Math.imul(A,Ot)|0,U=U+Math.imul(A,qt)|0,P=P+Math.imul(Mt,Nt)|0,l=l+Math.imul(Mt,Ct)|0,l=l+Math.imul(vt,Nt)|0,U=U+Math.imul(vt,Ct)|0;var en=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(en>>>26)|0,en&=67108863,P=Math.imul(nt,yt),l=Math.imul(nt,bt),l=l+Math.imul(it,yt)|0,U=Math.imul(it,bt),P=P+Math.imul(J,Bt)|0,l=l+Math.imul(J,Pt)|0,l=l+Math.imul(tt,Bt)|0,U=U+Math.imul(tt,Pt)|0,P=P+Math.imul(L,Dt)|0,l=l+Math.imul(L,Ft)|0,l=l+Math.imul(z,Dt)|0,U=U+Math.imul(z,Ft)|0,P=P+Math.imul(x,At)|0,l=l+Math.imul(x,Ut)|0,l=l+Math.imul(g,At)|0,U=U+Math.imul(g,Ut)|0,P=P+Math.imul(u,zt)|0,l=l+Math.imul(u,It)|0,l=l+Math.imul(B,zt)|0,U=U+Math.imul(B,It)|0,P=P+Math.imul(G,Gt)|0,l=l+Math.imul(G,Rt)|0,l=l+Math.imul(q,Gt)|0,U=U+Math.imul(q,Rt)|0,P=P+Math.imul(b,Ot)|0,l=l+Math.imul(b,qt)|0,l=l+Math.imul(w,Ot)|0,U=U+Math.imul(w,qt)|0,P=P+Math.imul($,Nt)|0,l=l+Math.imul($,Ct)|0,l=l+Math.imul(A,Nt)|0,U=U+Math.imul(A,Ct)|0;var rn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(rn>>>26)|0,rn&=67108863,P=Math.imul(nt,Bt),l=Math.imul(nt,Pt),l=l+Math.imul(it,Bt)|0,U=Math.imul(it,Pt),P=P+Math.imul(J,Dt)|0,l=l+Math.imul(J,Ft)|0,l=l+Math.imul(tt,Dt)|0,U=U+Math.imul(tt,Ft)|0,P=P+Math.imul(L,At)|0,l=l+Math.imul(L,Ut)|0,l=l+Math.imul(z,At)|0,U=U+Math.imul(z,Ut)|0,P=P+Math.imul(x,zt)|0,l=l+Math.imul(x,It)|0,l=l+Math.imul(g,zt)|0,U=U+Math.imul(g,It)|0,P=P+Math.imul(u,Gt)|0,l=l+Math.imul(u,Rt)|0,l=l+Math.imul(B,Gt)|0,U=U+Math.imul(B,Rt)|0,P=P+Math.imul(G,Ot)|0,l=l+Math.imul(G,qt)|0,l=l+Math.imul(q,Ot)|0,U=U+Math.imul(q,qt)|0,P=P+Math.imul(b,Nt)|0,l=l+Math.imul(b,Ct)|0,l=l+Math.imul(w,Nt)|0,U=U+Math.imul(w,Ct)|0;var nn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(nn>>>26)|0,nn&=67108863,P=Math.imul(nt,Dt),l=Math.imul(nt,Ft),l=l+Math.imul(it,Dt)|0,U=Math.imul(it,Ft),P=P+Math.imul(J,At)|0,l=l+Math.imul(J,Ut)|0,l=l+Math.imul(tt,At)|0,U=U+Math.imul(tt,Ut)|0,P=P+Math.imul(L,zt)|0,l=l+Math.imul(L,It)|0,l=l+Math.imul(z,zt)|0,U=U+Math.imul(z,It)|0,P=P+Math.imul(x,Gt)|0,l=l+Math.imul(x,Rt)|0,l=l+Math.imul(g,Gt)|0,U=U+Math.imul(g,Rt)|0,P=P+Math.imul(u,Ot)|0,l=l+Math.imul(u,qt)|0,l=l+Math.imul(B,Ot)|0,U=U+Math.imul(B,qt)|0,P=P+Math.imul(G,Nt)|0,l=l+Math.imul(G,Ct)|0,l=l+Math.imul(q,Nt)|0,U=U+Math.imul(q,Ct)|0;var on=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(on>>>26)|0,on&=67108863,P=Math.imul(nt,At),l=Math.imul(nt,Ut),l=l+Math.imul(it,At)|0,U=Math.imul(it,Ut),P=P+Math.imul(J,zt)|0,l=l+Math.imul(J,It)|0,l=l+Math.imul(tt,zt)|0,U=U+Math.imul(tt,It)|0,P=P+Math.imul(L,Gt)|0,l=l+Math.imul(L,Rt)|0,l=l+Math.imul(z,Gt)|0,U=U+Math.imul(z,Rt)|0,P=P+Math.imul(x,Ot)|0,l=l+Math.imul(x,qt)|0,l=l+Math.imul(g,Ot)|0,U=U+Math.imul(g,qt)|0,P=P+Math.imul(u,Nt)|0,l=l+Math.imul(u,Ct)|0,l=l+Math.imul(B,Nt)|0,U=U+Math.imul(B,Ct)|0;var an=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(an>>>26)|0,an&=67108863,P=Math.imul(nt,zt),l=Math.imul(nt,It),l=l+Math.imul(it,zt)|0,U=Math.imul(it,It),P=P+Math.imul(J,Gt)|0,l=l+Math.imul(J,Rt)|0,l=l+Math.imul(tt,Gt)|0,U=U+Math.imul(tt,Rt)|0,P=P+Math.imul(L,Ot)|0,l=l+Math.imul(L,qt)|0,l=l+Math.imul(z,Ot)|0,U=U+Math.imul(z,qt)|0,P=P+Math.imul(x,Nt)|0,l=l+Math.imul(x,Ct)|0,l=l+Math.imul(g,Nt)|0,U=U+Math.imul(g,Ct)|0;var sn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(sn>>>26)|0,sn&=67108863,P=Math.imul(nt,Gt),l=Math.imul(nt,Rt),l=l+Math.imul(it,Gt)|0,U=Math.imul(it,Rt),P=P+Math.imul(J,Ot)|0,l=l+Math.imul(J,qt)|0,l=l+Math.imul(tt,Ot)|0,U=U+Math.imul(tt,qt)|0,P=P+Math.imul(L,Nt)|0,l=l+Math.imul(L,Ct)|0,l=l+Math.imul(z,Nt)|0,U=U+Math.imul(z,Ct)|0;var un=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(un>>>26)|0,un&=67108863,P=Math.imul(nt,Ot),l=Math.imul(nt,qt),l=l+Math.imul(it,Ot)|0,U=Math.imul(it,qt),P=P+Math.imul(J,Nt)|0,l=l+Math.imul(J,Ct)|0,l=l+Math.imul(tt,Nt)|0,U=U+Math.imul(tt,Ct)|0;var fn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(fn>>>26)|0,fn&=67108863,P=Math.imul(nt,Nt),l=Math.imul(nt,Ct),l=l+Math.imul(it,Nt)|0,U=Math.imul(it,Ct);var cn=(O+P|0)+((l&8191)<<13)|0;return O=(U+(l>>>13)|0)+(cn>>>26)|0,cn&=67108863,E[0]=qe,E[1]=Ne,E[2]=Ve,E[3]=Ht,E[4]=Wr,E[5]=Kr,E[6]=Qr,E[7]=Jr,E[8]=jr,E[9]=tn,E[10]=en,E[11]=rn,E[12]=nn,E[13]=on,E[14]=an,E[15]=sn,E[16]=un,E[17]=fn,E[18]=cn,O!==0&&(E[19]=O,_.length++),_};Math.imul||(R=C);function N(F,s,p){p.negative=s.negative^F.negative,p.length=F.length+s.length;for(var _=0,y=0,T=0;T<p.length-1;T++){var E=y;y=0;for(var O=_&67108863,P=Math.min(T,s.length-1),l=Math.max(0,T-F.length+1);l<=P;l++){var U=T-l,ot=F.words[U]|0,at=s.words[l]|0,ut=ot*at,ft=ut&67108863;E=E+(ut/67108864|0)|0,ft=ft+O|0,O=ft&67108863,E=E+(ft>>>26)|0,y+=E>>>26,E&=67108863}p.words[T]=O,_=E,E=y}return _!==0?p.words[T]=_:p.length--,p.strip()}function V(F,s,p){var _=new Y;return _.mulp(F,s,p)}i.prototype.mulTo=function(s,p){var _,y=this.length+s.length;return this.length===10&&s.length===10?_=R(this,s,p):y<63?_=C(this,s,p):y<1024?_=N(this,s,p):_=V(this,s,p),_};function Y(F,s){this.x=F,this.y=s}Y.prototype.makeRBT=function(s){for(var p=new Array(s),_=i.prototype._countBits(s)-1,y=0;y<s;y++)p[y]=this.revBin(y,_,s);return p},Y.prototype.revBin=function(s,p,_){if(s===0||s===_-1)return s;for(var y=0,T=0;T<p;T++)y|=(s&1)<<p-T-1,s>>=1;return y},Y.prototype.permute=function(s,p,_,y,T,E){for(var O=0;O<E;O++)y[O]=p[s[O]],T[O]=_[s[O]]},Y.prototype.transform=function(s,p,_,y,T,E){this.permute(E,s,p,_,y,T);for(var O=1;O<T;O<<=1)for(var P=O<<1,l=Math.cos(2*Math.PI/P),U=Math.sin(2*Math.PI/P),ot=0;ot<T;ot+=P)for(var at=l,ut=U,ft=0;ft<O;ft++){var Mt=_[ot+ft],vt=y[ot+ft],X=_[ot+ft+O],$=y[ot+ft+O],A=at*X-ut*$;$=at*$+ut*X,X=A,_[ot+ft]=Mt+X,y[ot+ft]=vt+$,_[ot+ft+O]=Mt-X,y[ot+ft+O]=vt-$,ft!==P&&(A=l*at-U*ut,ut=l*ut+U*at,at=A)}},Y.prototype.guessLen13b=function(s,p){var _=Math.max(p,s)|1,y=_&1,T=0;for(_=_/2|0;_;_=_>>>1)T++;return 1<<T+1+y},Y.prototype.conjugate=function(s,p,_){if(!(_<=1))for(var y=0;y<_/2;y++){var T=s[y];s[y]=s[_-y-1],s[_-y-1]=T,T=p[y],p[y]=-p[_-y-1],p[_-y-1]=-T}},Y.prototype.normalize13b=function(s,p){for(var _=0,y=0;y<p/2;y++){var T=Math.round(s[2*y+1]/p)*8192+Math.round(s[2*y]/p)+_;s[y]=T&67108863,T<67108864?_=0:_=T/67108864|0}return s},Y.prototype.convert13b=function(s,p,_,y){for(var T=0,E=0;E<p;E++)T=T+(s[E]|0),_[2*E]=T&8191,T=T>>>13,_[2*E+1]=T&8191,T=T>>>13;for(E=2*p;E<y;++E)_[E]=0;n(T===0),n((T&-8192)===0)},Y.prototype.stub=function(s){for(var p=new Array(s),_=0;_<s;_++)p[_]=0;return p},Y.prototype.mulp=function(s,p,_){var y=2*this.guessLen13b(s.length,p.length),T=this.makeRBT(y),E=this.stub(y),O=new Array(y),P=new Array(y),l=new Array(y),U=new Array(y),ot=new Array(y),at=new Array(y),ut=_.words;ut.length=y,this.convert13b(s.words,s.length,O,y),this.convert13b(p.words,p.length,U,y),this.transform(O,E,P,l,y,T),this.transform(U,E,ot,at,y,T);for(var ft=0;ft<y;ft++){var Mt=P[ft]*ot[ft]-l[ft]*at[ft];l[ft]=P[ft]*at[ft]+l[ft]*ot[ft],P[ft]=Mt}return this.conjugate(P,l,y),this.transform(P,l,ut,E,y,T),this.conjugate(ut,E,y),this.normalize13b(ut,y),_.negative=s.negative^p.negative,_.length=s.length+p.length,_.strip()},i.prototype.mul=function(s){var p=new i(null);return p.words=new Array(this.length+s.length),this.mulTo(s,p)},i.prototype.mulf=function(s){var p=new i(null);return p.words=new Array(this.length+s.length),V(this,s,p)},i.prototype.imul=function(s){return this.clone().mulTo(s,this)},i.prototype.imuln=function(s){n(typeof s=="number"),n(s<67108864);for(var p=0,_=0;_<this.length;_++){var y=(this.words[_]|0)*s,T=(y&67108863)+(p&67108863);p>>=26,p+=y/67108864|0,p+=T>>>26,this.words[_]=T&67108863}return p!==0&&(this.words[_]=p,this.length++),this.length=s===0?1:this.length,this},i.prototype.muln=function(s){return this.clone().imuln(s)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(s){var p=m(s);if(p.length===0)return new i(1);for(var _=this,y=0;y<p.length&&p[y]===0;y++,_=_.sqr());if(++y<p.length)for(var T=_.sqr();y<p.length;y++,T=T.sqr())p[y]!==0&&(_=_.mul(T));return _},i.prototype.iushln=function(s){n(typeof s=="number"&&s>=0);var p=s%26,_=(s-p)/26,y=67108863>>>26-p<<26-p,T;if(p!==0){var E=0;for(T=0;T<this.length;T++){var O=this.words[T]&y,P=(this.words[T]|0)-O<<p;this.words[T]=P|E,E=O>>>26-p}E&&(this.words[T]=E,this.length++)}if(_!==0){for(T=this.length-1;T>=0;T--)this.words[T+_]=this.words[T];for(T=0;T<_;T++)this.words[T]=0;this.length+=_}return this.strip()},i.prototype.ishln=function(s){return n(this.negative===0),this.iushln(s)},i.prototype.iushrn=function(s,p,_){n(typeof s=="number"&&s>=0);var y;p?y=(p-p%26)/26:y=0;var T=s%26,E=Math.min((s-T)/26,this.length),O=67108863^67108863>>>T<<T,P=_;if(y-=E,y=Math.max(0,y),P){for(var l=0;l<E;l++)P.words[l]=this.words[l];P.length=E}if(E!==0)if(this.length>E)for(this.length-=E,l=0;l<this.length;l++)this.words[l]=this.words[l+E];else this.words[0]=0,this.length=1;var U=0;for(l=this.length-1;l>=0&&(U!==0||l>=y);l--){var ot=this.words[l]|0;this.words[l]=U<<26-T|ot>>>T,U=ot&O}return P&&U!==0&&(P.words[P.length++]=U),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(s,p,_){return n(this.negative===0),this.iushrn(s,p,_)},i.prototype.shln=function(s){return this.clone().ishln(s)},i.prototype.ushln=function(s){return this.clone().iushln(s)},i.prototype.shrn=function(s){return this.clone().ishrn(s)},i.prototype.ushrn=function(s){return this.clone().iushrn(s)},i.prototype.testn=function(s){n(typeof s=="number"&&s>=0);var p=s%26,_=(s-p)/26,y=1<<p;if(this.length<=_)return!1;var T=this.words[_];return!!(T&y)},i.prototype.imaskn=function(s){n(typeof s=="number"&&s>=0);var p=s%26,_=(s-p)/26;if(n(this.negative===0,"imaskn works only with positive numbers"),this.length<=_)return this;if(p!==0&&_++,this.length=Math.min(_,this.length),p!==0){var y=67108863^67108863>>>p<<p;this.words[this.length-1]&=y}return this.length===0&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.maskn=function(s){return this.clone().imaskn(s)},i.prototype.iaddn=function(s){return n(typeof s=="number"),n(s<67108864),s<0?this.isubn(-s):this.negative!==0?this.length===1&&(this.words[0]|0)<s?(this.words[0]=s-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(s),this.negative=1,this):this._iaddn(s)},i.prototype._iaddn=function(s){this.words[0]+=s;for(var p=0;p<this.length&&this.words[p]>=67108864;p++)this.words[p]-=67108864,p===this.length-1?this.words[p+1]=1:this.words[p+1]++;return this.length=Math.max(this.length,p+1),this},i.prototype.isubn=function(s){if(n(typeof s=="number"),n(s<67108864),s<0)return this.iaddn(-s);if(this.negative!==0)return this.negative=0,this.iaddn(s),this.negative=1,this;if(this.words[0]-=s,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var p=0;p<this.length&&this.words[p]<0;p++)this.words[p]+=67108864,this.words[p+1]-=1;return this.strip()},i.prototype.addn=function(s){return this.clone().iaddn(s)},i.prototype.subn=function(s){return this.clone().isubn(s)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(s,p,_){var y=s.length+_,T;this._expand(y);var E,O=0;for(T=0;T<s.length;T++){E=(this.words[T+_]|0)+O;var P=(s.words[T]|0)*p;E-=P&67108863,O=(E>>26)-(P/67108864|0),this.words[T+_]=E&67108863}for(;T<this.length-_;T++)E=(this.words[T+_]|0)+O,O=E>>26,this.words[T+_]=E&67108863;if(O===0)return this.strip();for(n(O===-1),O=0,T=0;T<this.length;T++)E=-(this.words[T]|0)+O,O=E>>26,this.words[T]=E&67108863;return this.negative=1,this.strip()},i.prototype._wordDiv=function(s,p){var _=this.length-s.length,y=this.clone(),T=s,E=T.words[T.length-1]|0,O=this._countBits(E);_=26-O,_!==0&&(T=T.ushln(_),y.iushln(_),E=T.words[T.length-1]|0);var P=y.length-T.length,l;if(p!=="mod"){l=new i(null),l.length=P+1,l.words=new Array(l.length);for(var U=0;U<l.length;U++)l.words[U]=0}var ot=y.clone()._ishlnsubmul(T,1,P);ot.negative===0&&(y=ot,l&&(l.words[P]=1));for(var at=P-1;at>=0;at--){var ut=(y.words[T.length+at]|0)*67108864+(y.words[T.length+at-1]|0);for(ut=Math.min(ut/E|0,67108863),y._ishlnsubmul(T,ut,at);y.negative!==0;)ut--,y.negative=0,y._ishlnsubmul(T,1,at),y.isZero()||(y.negative^=1);l&&(l.words[at]=ut)}return l&&l.strip(),y.strip(),p!=="div"&&_!==0&&y.iushrn(_),{div:l||null,mod:y}},i.prototype.divmod=function(s,p,_){if(n(!s.isZero()),this.isZero())return{div:new i(0),mod:new i(0)};var y,T,E;return this.negative!==0&&s.negative===0?(E=this.neg().divmod(s,p),p!=="mod"&&(y=E.div.neg()),p!=="div"&&(T=E.mod.neg(),_&&T.negative!==0&&T.iadd(s)),{div:y,mod:T}):this.negative===0&&s.negative!==0?(E=this.divmod(s.neg(),p),p!=="mod"&&(y=E.div.neg()),{div:y,mod:E.mod}):(this.negative&s.negative)!==0?(E=this.neg().divmod(s.neg(),p),p!=="div"&&(T=E.mod.neg(),_&&T.negative!==0&&T.isub(s)),{div:E.div,mod:T}):s.length>this.length||this.cmp(s)<0?{div:new i(0),mod:this}:s.length===1?p==="div"?{div:this.divn(s.words[0]),mod:null}:p==="mod"?{div:null,mod:new i(this.modn(s.words[0]))}:{div:this.divn(s.words[0]),mod:new i(this.modn(s.words[0]))}:this._wordDiv(s,p)},i.prototype.div=function(s){return this.divmod(s,"div",!1).div},i.prototype.mod=function(s){return this.divmod(s,"mod",!1).mod},i.prototype.umod=function(s){return this.divmod(s,"mod",!0).mod},i.prototype.divRound=function(s){var p=this.divmod(s);if(p.mod.isZero())return p.div;var _=p.div.negative!==0?p.mod.isub(s):p.mod,y=s.ushrn(1),T=s.andln(1),E=_.cmp(y);return E<0||T===1&&E===0?p.div:p.div.negative!==0?p.div.isubn(1):p.div.iaddn(1)},i.prototype.modn=function(s){n(s<=67108863);for(var p=(1<<26)%s,_=0,y=this.length-1;y>=0;y--)_=(p*_+(this.words[y]|0))%s;return _},i.prototype.idivn=function(s){n(s<=67108863);for(var p=0,_=this.length-1;_>=0;_--){var y=(this.words[_]|0)+p*67108864;this.words[_]=y/s|0,p=y%s}return this.strip()},i.prototype.divn=function(s){return this.clone().idivn(s)},i.prototype.egcd=function(s){n(s.negative===0),n(!s.isZero());var p=this,_=s.clone();p.negative!==0?p=p.umod(s):p=p.clone();for(var y=new i(1),T=new i(0),E=new i(0),O=new i(1),P=0;p.isEven()&&_.isEven();)p.iushrn(1),_.iushrn(1),++P;for(var l=_.clone(),U=p.clone();!p.isZero();){for(var ot=0,at=1;(p.words[0]&at)===0&&ot<26;++ot,at<<=1);if(ot>0)for(p.iushrn(ot);ot-- >0;)(y.isOdd()||T.isOdd())&&(y.iadd(l),T.isub(U)),y.iushrn(1),T.iushrn(1);for(var ut=0,ft=1;(_.words[0]&ft)===0&&ut<26;++ut,ft<<=1);if(ut>0)for(_.iushrn(ut);ut-- >0;)(E.isOdd()||O.isOdd())&&(E.iadd(l),O.isub(U)),E.iushrn(1),O.iushrn(1);p.cmp(_)>=0?(p.isub(_),y.isub(E),T.isub(O)):(_.isub(p),E.isub(y),O.isub(T))}return{a:E,b:O,gcd:_.iushln(P)}},i.prototype._invmp=function(s){n(s.negative===0),n(!s.isZero());var p=this,_=s.clone();p.negative!==0?p=p.umod(s):p=p.clone();for(var y=new i(1),T=new i(0),E=_.clone();p.cmpn(1)>0&&_.cmpn(1)>0;){for(var O=0,P=1;(p.words[0]&P)===0&&O<26;++O,P<<=1);if(O>0)for(p.iushrn(O);O-- >0;)y.isOdd()&&y.iadd(E),y.iushrn(1);for(var l=0,U=1;(_.words[0]&U)===0&&l<26;++l,U<<=1);if(l>0)for(_.iushrn(l);l-- >0;)T.isOdd()&&T.iadd(E),T.iushrn(1);p.cmp(_)>=0?(p.isub(_),y.isub(T)):(_.isub(p),T.isub(y))}var ot;return p.cmpn(1)===0?ot=y:ot=T,ot.cmpn(0)<0&&ot.iadd(s),ot},i.prototype.gcd=function(s){if(this.isZero())return s.abs();if(s.isZero())return this.abs();var p=this.clone(),_=s.clone();p.negative=0,_.negative=0;for(var y=0;p.isEven()&&_.isEven();y++)p.iushrn(1),_.iushrn(1);do{for(;p.isEven();)p.iushrn(1);for(;_.isEven();)_.iushrn(1);var T=p.cmp(_);if(T<0){var E=p;p=_,_=E}else if(T===0||_.cmpn(1)===0)break;p.isub(_)}while(!0);return _.iushln(y)},i.prototype.invm=function(s){return this.egcd(s).a.umod(s)},i.prototype.isEven=function(){return(this.words[0]&1)===0},i.prototype.isOdd=function(){return(this.words[0]&1)===1},i.prototype.andln=function(s){return this.words[0]&s},i.prototype.bincn=function(s){n(typeof s=="number");var p=s%26,_=(s-p)/26,y=1<<p;if(this.length<=_)return this._expand(_+1),this.words[_]|=y,this;for(var T=y,E=_;T!==0&&E<this.length;E++){var O=this.words[E]|0;O+=T,T=O>>>26,O&=67108863,this.words[E]=O}return T!==0&&(this.words[E]=T,this.length++),this},i.prototype.isZero=function(){return this.length===1&&this.words[0]===0},i.prototype.cmpn=function(s){var p=s<0;if(this.negative!==0&&!p)return-1;if(this.negative===0&&p)return 1;this.strip();var _;if(this.length>1)_=1;else{p&&(s=-s),n(s<=67108863,"Number is too big");var y=this.words[0]|0;_=y===s?0:y<s?-1:1}return this.negative!==0?-_|0:_},i.prototype.cmp=function(s){if(this.negative!==0&&s.negative===0)return-1;if(this.negative===0&&s.negative!==0)return 1;var p=this.ucmp(s);return this.negative!==0?-p|0:p},i.prototype.ucmp=function(s){if(this.length>s.length)return 1;if(this.length<s.length)return-1;for(var p=0,_=this.length-1;_>=0;_--){var y=this.words[_]|0,T=s.words[_]|0;if(y!==T){y<T?p=-1:y>T&&(p=1);break}}return p},i.prototype.gtn=function(s){return this.cmpn(s)===1},i.prototype.gt=function(s){return this.cmp(s)===1},i.prototype.gten=function(s){return this.cmpn(s)>=0},i.prototype.gte=function(s){return this.cmp(s)>=0},i.prototype.ltn=function(s){return this.cmpn(s)===-1},i.prototype.lt=function(s){return this.cmp(s)===-1},i.prototype.lten=function(s){return this.cmpn(s)<=0},i.prototype.lte=function(s){return this.cmp(s)<=0},i.prototype.eqn=function(s){return this.cmpn(s)===0},i.prototype.eq=function(s){return this.cmp(s)===0},i.red=function(s){return new et(s)},i.prototype.toRed=function(s){return n(!this.red,"Already a number in reduction context"),n(this.negative===0,"red works only with positives"),s.convertTo(this)._forceRed(s)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(s){return this.red=s,this},i.prototype.forceRed=function(s){return n(!this.red,"Already a number in reduction context"),this._forceRed(s)},i.prototype.redAdd=function(s){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,s)},i.prototype.redIAdd=function(s){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,s)},i.prototype.redSub=function(s){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,s)},i.prototype.redISub=function(s){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,s)},i.prototype.redShl=function(s){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,s)},i.prototype.redMul=function(s){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,s),this.red.mul(this,s)},i.prototype.redIMul=function(s){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,s),this.red.imul(this,s)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(s){return n(this.red&&!s.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,s)};var K={k256:null,p224:null,p192:null,p25519:null};function Q(F,s){this.name=F,this.p=new i(s,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Q.prototype._tmp=function(){var s=new i(null);return s.words=new Array(Math.ceil(this.n/13)),s},Q.prototype.ireduce=function(s){var p=s,_;do this.split(p,this.tmp),p=this.imulK(p),p=p.iadd(this.tmp),_=p.bitLength();while(_>this.n);var y=_<this.n?-1:p.ucmp(this.p);return y===0?(p.words[0]=0,p.length=1):y>0?p.isub(this.p):p.strip!==void 0?p.strip():p._strip(),p},Q.prototype.split=function(s,p){s.iushrn(this.n,0,p)},Q.prototype.imulK=function(s){return s.imul(this.k)};function j(){Q.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}r(j,Q),j.prototype.split=function(s,p){for(var _=4194303,y=Math.min(s.length,9),T=0;T<y;T++)p.words[T]=s.words[T];if(p.length=y,s.length<=9){s.words[0]=0,s.length=1;return}var E=s.words[9];for(p.words[p.length++]=E&_,T=10;T<s.length;T++){var O=s.words[T]|0;s.words[T-10]=(O&_)<<4|E>>>22,E=O}E>>>=22,s.words[T-10]=E,E===0&&s.length>10?s.length-=10:s.length-=9},j.prototype.imulK=function(s){s.words[s.length]=0,s.words[s.length+1]=0,s.length+=2;for(var p=0,_=0;_<s.length;_++){var y=s.words[_]|0;p+=y*977,s.words[_]=p&67108863,p=y*64+(p/67108864|0)}return s.words[s.length-1]===0&&(s.length--,s.words[s.length-1]===0&&s.length--),s};function Z(){Q.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}r(Z,Q);function W(){Q.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}r(W,Q);function st(){Q.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}r(st,Q),st.prototype.imulK=function(s){for(var p=0,_=0;_<s.length;_++){var y=(s.words[_]|0)*19+p,T=y&67108863;y>>>=26,s.words[_]=T,p=y}return p!==0&&(s.words[s.length++]=p),s},i._prime=function(s){if(K[s])return K[s];var p;if(s==="k256")p=new j;else if(s==="p224")p=new Z;else if(s==="p192")p=new W;else if(s==="p25519")p=new st;else throw new Error("Unknown prime "+s);return K[s]=p,p};function et(F){if(typeof F=="string"){var s=i._prime(F);this.m=s.p,this.prime=s}else n(F.gtn(1),"modulus must be greater than 1"),this.m=F,this.prime=null}et.prototype._verify1=function(s){n(s.negative===0,"red works only with positives"),n(s.red,"red works only with red numbers")},et.prototype._verify2=function(s,p){n((s.negative|p.negative)===0,"red works only with positives"),n(s.red&&s.red===p.red,"red works only with red numbers")},et.prototype.imod=function(s){return this.prime?this.prime.ireduce(s)._forceRed(this):s.umod(this.m)._forceRed(this)},et.prototype.neg=function(s){return s.isZero()?s.clone():this.m.sub(s)._forceRed(this)},et.prototype.add=function(s,p){this._verify2(s,p);var _=s.add(p);return _.cmp(this.m)>=0&&_.isub(this.m),_._forceRed(this)},et.prototype.iadd=function(s,p){this._verify2(s,p);var _=s.iadd(p);return _.cmp(this.m)>=0&&_.isub(this.m),_},et.prototype.sub=function(s,p){this._verify2(s,p);var _=s.sub(p);return _.cmpn(0)<0&&_.iadd(this.m),_._forceRed(this)},et.prototype.isub=function(s,p){this._verify2(s,p);var _=s.isub(p);return _.cmpn(0)<0&&_.iadd(this.m),_},et.prototype.shl=function(s,p){return this._verify1(s),this.imod(s.ushln(p))},et.prototype.imul=function(s,p){return this._verify2(s,p),this.imod(s.imul(p))},et.prototype.mul=function(s,p){return this._verify2(s,p),this.imod(s.mul(p))},et.prototype.isqr=function(s){return this.imul(s,s.clone())},et.prototype.sqr=function(s){return this.mul(s,s)},et.prototype.sqrt=function(s){if(s.isZero())return s.clone();var p=this.m.andln(3);if(n(p%2===1),p===3){var _=this.m.add(new i(1)).iushrn(2);return this.pow(s,_)}for(var y=this.m.subn(1),T=0;!y.isZero()&&y.andln(1)===0;)T++,y.iushrn(1);n(!y.isZero());var E=new i(1).toRed(this),O=E.redNeg(),P=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new i(2*l*l).toRed(this);this.pow(l,P).cmp(O)!==0;)l.redIAdd(O);for(var U=this.pow(l,y),ot=this.pow(s,y.addn(1).iushrn(1)),at=this.pow(s,y),ut=T;at.cmp(E)!==0;){for(var ft=at,Mt=0;ft.cmp(E)!==0;Mt++)ft=ft.redSqr();n(Mt<ut);var vt=this.pow(U,new i(1).iushln(ut-Mt-1));ot=ot.redMul(vt),U=vt.redSqr(),at=at.redMul(U),ut=Mt}return ot},et.prototype.invm=function(s){var p=s._invmp(this.m);return p.negative!==0?(p.negative=0,this.imod(p).redNeg()):this.imod(p)},et.prototype.pow=function(s,p){if(p.isZero())return new i(1).toRed(this);if(p.cmpn(1)===0)return s.clone();var _=4,y=new Array(1<<_);y[0]=new i(1).toRed(this),y[1]=s;for(var T=2;T<y.length;T++)y[T]=this.mul(y[T-1],s);var E=y[0],O=0,P=0,l=p.bitLength()%26;for(l===0&&(l=26),T=p.length-1;T>=0;T--){for(var U=p.words[T],ot=l-1;ot>=0;ot--){var at=U>>ot&1;if(E!==y[0]&&(E=this.sqr(E)),at===0&&O===0){P=0;continue}O<<=1,O|=at,P++,!(P!==_&&(T!==0||ot!==0))&&(E=this.mul(E,y[O]),P=0,O=0)}l=26}return E},et.prototype.convertTo=function(s){var p=s.umod(this.m);return p===s?p.clone():p},et.prototype.convertFrom=function(s){var p=s.clone();return p.red=null,p},i.mont=function(s){return new rt(s)};function rt(F){et.call(this,F),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}r(rt,et),rt.prototype.convertTo=function(s){return this.imod(s.ushln(this.shift))},rt.prototype.convertFrom=function(s){var p=this.imod(s.mul(this.rinv));return p.red=null,p},rt.prototype.imul=function(s,p){if(s.isZero()||p.isZero())return s.words[0]=0,s.length=1,s;var _=s.imul(p),y=_.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),T=_.isub(y).iushrn(this.shift),E=T;return T.cmp(this.m)>=0?E=T.isub(this.m):T.cmpn(0)<0&&(E=T.iadd(this.m)),E._forceRed(this)},rt.prototype.mul=function(s,p){if(s.isZero()||p.isZero())return new i(0)._forceRed(this);var _=s.mul(p),y=_.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),T=_.isub(y).iushrn(this.shift),E=T;return T.cmp(this.m)>=0?E=T.isub(this.m):T.cmpn(0)<0&&(E=T.iadd(this.m)),E._forceRed(this)},rt.prototype.invm=function(s){var p=this.imod(s._invmp(this.m).mul(this.r2));return p._forceRed(this)}})(typeof mn>"u"||mn,aa)});var kn=xt((ah,sa)=>{"use strict";var oh=ur();sa.exports=_f;function _f(e){return e&&typeof e=="object"&&!!e.words}});var ca=xt((sh,fa)=>{"use strict";var ua=kn();fa.exports=Sf;function Sf(e){return Array.isArray(e)&&e.length===2&&ua(e[0])&&ua(e[1])}});var mr=xt((uh,Xt)=>{var Xn=!1;if(typeof Float64Array<"u")if(le=new Float64Array(1),re=new Uint32Array(le.buffer),le[0]=1,Xn=!0,re[1]===1072693248){let e=function(r,i){return re[0]=r,re[1]=i,le[0]},t=function(r){return le[0]=r,re[0]},n=function(r){return le[0]=r,re[1]};Tf=e,Bf=t,Pf=n,Xt.exports=function(i){return le[0]=i,[re[0],re[1]]},Xt.exports.pack=e,Xt.exports.lo=t,Xt.exports.hi=n}else if(re[0]===1072693248){let e=function(r,i){return re[1]=r,re[0]=i,le[0]},t=function(r){return le[0]=r,re[1]},n=function(r){return le[0]=r,re[0]};Df=e,Ff=t,Af=n,Xt.exports=function(i){return le[0]=i,[re[1],re[0]]},Xt.exports.pack=e,Xt.exports.lo=t,Xt.exports.hi=n}else Xn=!1;var le,re,Tf,Bf,Pf,Df,Ff,Af;if(!Xn){let e=function(r,i){return he.writeUInt32LE(r,0,!0),he.writeUInt32LE(i,4,!0),he.readDoubleLE(0,!0)},t=function(r){return he.writeDoubleLE(r,0,!0),he.readUInt32LE(0,!0)},n=function(r){return he.writeDoubleLE(r,0,!0),he.readUInt32LE(4,!0)};Uf=e,zf=t,If=n,he=new Buffer(8),Xt.exports=function(i){return he.writeDoubleLE(i,0,!0),[he.readUInt32LE(0,!0),he.readUInt32LE(4,!0)]},Xt.exports.pack=e,Xt.exports.lo=t,Xt.exports.hi=n}var he,Uf,zf,If;Xt.exports.sign=function(e){return Xt.exports.hi(e)>>>31};Xt.exports.exponent=function(e){var t=Xt.exports.hi(e);return(t<<1>>>21)-1023};Xt.exports.fraction=function(e){var t=Xt.exports.lo(e),n=Xt.exports.hi(e),r=n&(1<<20)-1;return n&2146435072&&(r+=1<<20),[t,r]};Xt.exports.denormalized=function(e){var t=Xt.exports.hi(e);return!(t&2146435072)}});var Yn=xt((fh,ha)=>{"use strict";var la=ur(),Ef=mr();ha.exports=Lf;function Lf(e){var t=Ef.exponent(e);return t<52?new la(e):new la(e*Math.pow(2,52-t)).ushln(t-52)}});var pa=xt((ch,va)=>{"use strict";var Gf=ur();va.exports=Rf;function Rf(e){return new Gf(e)}});var kr=xt((lh,ga)=>{"use strict";var Of=ur();ga.exports=qf;function qf(e){return e.cmp(new Of(0))}});var Qe=xt((hh,wa)=>{"use strict";var Xr=Yn(),da=kr();wa.exports=Nf;function Nf(e,t){var n=da(e),r=da(t);if(n===0)return[Xr(0),Xr(1)];if(r===0)return[Xr(0),Xr(0)];r<0&&(e=e.neg(),t=t.neg());var i=e.gcd(t);return i.cmpn(1)?[e.div(i),t.div(i)]:[e,t]}});var Zn=xt((vh,xa)=>{"use strict";var Vf=Qe();xa.exports=Cf;function Cf(e,t){return Vf(e[0].mul(t[1]),e[1].mul(t[0]))}});var Yr=xt((ph,Sa)=>{"use strict";var Ma=ca(),ya=kn(),Le=Yn(),ba=pa(),mf=Qe(),kf=Zn();Sa.exports=_a;function _a(e,t){if(Ma(e))return t?kf(e,_a(t)):[e[0].clone(),e[1].clone()];var n=0,r,i;if(ya(e))r=e.clone();else if(typeof e=="string")r=ba(e);else{if(e===0)return[Le(0),Le(1)];if(e===Math.floor(e))r=Le(e);else{for(;e!==Math.floor(e);)e=e*Math.pow(2,256),n-=256;r=Le(e)}}if(Ma(t))r.mul(t[1]),i=t[0].clone();else if(ya(t))i=t.clone();else if(typeof t=="string")i=ba(t);else if(!t)i=Le(1);else if(t===Math.floor(t))i=Le(t);else{for(;t!==Math.floor(t);)t=t*Math.pow(2,256),n+=256;i=Le(t)}return n>0?r=r.ushln(n):n<0&&(i=i.ushln(-n)),mf(r,i)}});var Ba=xt((gh,Ta)=>{"use strict";Ta.exports=Xf;function Xf(e,t){return e[0].mul(t[1]).cmp(t[0].mul(e[1]))}});var Da=xt((dh,Pa)=>{"use strict";var Yf=kr();Pa.exports=Zf;function Zf(e){var t=e.length,n=e.words,r=0;if(t===1)r=n[0];else if(t===2)r=n[0]+n[1]*67108864;else for(var i=0;i<t;i++){var o=n[i];r+=o*Math.pow(67108864,i)}return Yf(e)*r}});var za=xt((wh,Ua)=>{"use strict";var Fa=mr(),Aa=rr().countTrailingZeros;Ua.exports=Hf;function Hf(e){var t=Aa(Fa.lo(e));if(t<32)return t;var n=Aa(Fa.hi(e));return n>20?52:n+32}});var Ea=xt((xh,Ia)=>{"use strict";var Hn=Da(),$f=za();Ia.exports=Wf;function Wf(e){var t=e[0],n=e[1];if(t.cmpn(0)===0)return 0;var r=t.abs().divmod(n.abs()),i=r.div,o=Hn(i),a=r.mod,f=t.negative!==n.negative?-1:1;if(a.cmpn(0)===0)return f*o;if(o){var h=$f(o)+4,v=Hn(a.ushln(h).divRound(n));return f*(o+v*Math.pow(2,-h))}else{var d=n.bitLength()-a.bitLength()+53,v=Hn(a.ushln(d).divRound(n));return d<1023?f*v*Math.pow(2,-d):(v*=Math.pow(2,-1023),f*v*Math.pow(2,1023-d))}}});var Ga=xt((Mh,La)=>{"use strict";La.exports=Qf;var Kf=Yr();function Qf(e){for(var t=new Array(e.length),n=0;n<e.length;++n)t[n]=Kf(e[n]);return t}});var Na=xt((yh,qa)=>{"use strict";var $n=mr(),Ra=Math.pow(2,-1074),Oa=-1>>>0;qa.exports=Jf;function Jf(e,t){if(isNaN(e)||isNaN(t))return NaN;if(e===t)return e;if(e===0)return t<0?-Ra:Ra;var n=$n.hi(e),r=$n.lo(e);return t>e==e>0?r===Oa?(n+=1,r=0):r+=1:r===0?(r=Oa,n-=1):r-=1,$n.pack(r,n)}});var Wn=xt((bh,Va)=>{"use strict";var jf=Qe();Va.exports=tc;function tc(e,t){return jf(e[0].mul(t[0]),e[1].mul(t[1]))}});var Kn=xt((_h,Ca)=>{"use strict";var ec=Qe();Ca.exports=rc;function rc(e,t){return ec(e[0].mul(t[1]).sub(e[1].mul(t[0])),e[1].mul(t[1]))}});var Xa=xt((Sh,ka)=>{"use strict";var ma=kr();ka.exports=nc;function nc(e){return ma(e[0])*ma(e[1])}});var Za=xt((Th,Ya)=>{"use strict";var ic=Kn();Ya.exports=oc;function oc(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;++i)r[i]=ic(e[i],t[i]);return r}});var $a=xt((Bh,Ha)=>{"use strict";var ac=Qe();Ha.exports=sc;function sc(e,t){return ac(e[0].mul(t[1]).add(t[0].mul(e[1])),e[1].mul(t[1]))}});var Ka=xt((Ph,Wa)=>{"use strict";var uc=$a();Wa.exports=fc;function fc(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;++i)r[i]=uc(e[i],t[i]);return r}});var Ja=xt((Dh,Qa)=>{"use strict";var cc=Yr(),lc=Wn();Qa.exports=hc;function hc(e,t){for(var n=cc(t),r=e.length,i=new Array(r),o=0;o<r;++o)i[o]=lc(e[o],n);return i}});var rs=xt((Fh,es)=>{"use strict";es.exports=xc;var ja=Wn(),vc=Zn(),pc=Kn(),gc=Xa(),Qn=Za(),dc=Ka(),wc=Ja();function ts(e,t){return pc(ja(e[0],t[1]),ja(e[1],t[0]))}function xc(e,t,n,r){var i=Qn(t,e),o=Qn(r,n),a=ts(i,o);if(gc(a)===0)return null;var f=Qn(e,n),h=ts(o,f),v=vc(h,a),d=wc(i,v),D=dc(e,d);return D}});var ls=xt((Ah,cs)=>{"use strict";cs.exports=Ac;var Mc=vo(),jn=ra(),as=ia(),ns=Yr(),is=Ba(),Jn=Ea(),Zr=Ga(),oe=Na(),yc=rs();function os(e){var t=Jn(e);return[oe(t,-1/0),oe(t,1/0)]}function bc(e,t){for(var n=new Array(t.length),r=0;r<t.length;++r){var i=t[r],o=e[i[0]],a=e[i[1]];n[r]=[oe(Math.min(o[0],a[0]),-1/0),oe(Math.min(o[1],a[1]),-1/0),oe(Math.max(o[0],a[0]),1/0),oe(Math.max(o[1],a[1]),1/0)]}return n}function ss(e){for(var t=new Array(e.length),n=0;n<e.length;++n){var r=e[n];t[n]=[oe(r[0],-1/0),oe(r[1],-1/0),oe(r[0],1/0),oe(r[1],1/0)]}return t}function _c(e,t,n){var r=[];return jn(n,function(i,o){var a=t[i],f=t[o];if(!(a[0]===f[0]||a[0]===f[1]||a[1]===f[0]||a[1]===f[1])){var h=e[a[0]],v=e[a[1]],d=e[f[0]],D=e[f[1]];as(h,v,d,D)&&r.push([i,o])}}),r}function Sc(e,t,n,r){var i=[];return jn(n,r,function(o,a){var f=t[o];if(!(f[0]===a||f[1]===a)){var h=e[a],v=e[f[0]],d=e[f[1]];as(v,d,h,h)&&i.push([o,a])}}),i}function Tc(e,t,n,r,i){var o,a,f=e.map(function(et){return[ns(et[0]),ns(et[1])]});for(o=0;o<n.length;++o){var h=n[o];a=h[0];var v=h[1],d=t[a],D=t[v],m=yc(Zr(e[d[0]]),Zr(e[d[1]]),Zr(e[D[0]]),Zr(e[D[1]]));if(m){var C=e.length;e.push([Jn(m[0]),Jn(m[1])]),f.push(m),r.push([a,C],[v,C])}}for(r.sort(function(et,rt){if(et[0]!==rt[0])return et[0]-rt[0];var F=f[et[1]],s=f[rt[1]];return is(F[0],s[0])||is(F[1],s[1])}),o=r.length-1;o>=0;--o){var R=r[o];a=R[0];var N=t[a],V=N[0],Y=N[1],K=e[V],Q=e[Y];if((K[0]-Q[0]||K[1]-Q[1])<0){var j=V;V=Y,Y=j}N[0]=V;var Z=N[1]=R[1],W;for(i&&(W=N[2]);o>0&&r[o-1][0]===a;){var R=r[--o],st=R[1];i?t.push([Z,st,W]):t.push([Z,st]),Z=st}i?t.push([Z,Y,W]):t.push([Z,Y])}return f}function us(e,t,n){for(var r=t.length,i=new Mc(r),o=[],a=0;a<t.length;++a){var f=t[a],h=os(f[0]),v=os(f[1]);o.push([oe(h[0],-1/0),oe(v[0],-1/0),oe(h[1],1/0),oe(v[1],1/0)])}jn(o,function(R,N){i.link(R,N)});for(var d=!0,D=new Array(r),a=0;a<r;++a){var m=i.find(a);m!==a&&(d=!1,e[m]=[Math.min(e[a][0],e[m][0]),Math.min(e[a][1],e[m][1])])}if(d)return null;for(var C=0,a=0;a<r;++a){var m=i.find(a);m===a?(D[a]=C,e[C++]=e[a]):D[a]=-1}e.length=C;for(var a=0;a<r;++a)D[a]<0&&(D[a]=D[i.find(a)]);return D}function Bc(e,t){return e[0]-t[0]||e[1]-t[1]}function Pc(e,t){var n=e[0]-t[0]||e[1]-t[1];return n||(e[2]<t[2]?-1:e[2]>t[2]?1:0)}function fs(e,t,n){if(e.length!==0){if(t)for(var r=0;r<e.length;++r){var i=e[r],o=t[i[0]],a=t[i[1]];i[0]=Math.min(o,a),i[1]=Math.max(o,a)}else for(var r=0;r<e.length;++r){var i=e[r],o=i[0],a=i[1];i[0]=Math.min(o,a),i[1]=Math.max(o,a)}n?e.sort(Pc):e.sort(Bc);for(var f=1,r=1;r<e.length;++r){var h=e[r-1],v=e[r];v[0]===h[0]&&v[1]===h[1]&&(!n||v[2]===h[2])||(e[f++]=v)}e.length=f}}function Dc(e,t,n){var r=us(e,[],ss(e));return fs(t,r,n),!!r}function Fc(e,t,n){var r=bc(e,t),i=_c(e,t,r),o=ss(e),a=Sc(e,t,r,o),f=Tc(e,t,i,a,n),h=us(e,f,o);return fs(t,h,n),h?!0:i.length>0||a.length>0}function Ac(e,t,n){var r;if(n){r=t;for(var i=new Array(t.length),o=0;o<t.length;++o){var a=t[o];i[o]=[a[0],a[1],n[o]]}t=i}for(var f=Dc(e,t,!!n);Fc(e,t,!!n);)f=!0;if(n&&f){r.length=0,n.length=0;for(var o=0;o<t.length;++o){var a=t[o];r.push([a[0],a[1]]),n.push(a[2])}}return f}});function ne(e,t,n,r,i,o,a,f="linear"){let h=e.createTexture({label:t,size:{width:n,height:r},format:o,usage:a,mipLevelCount:i,sampleCount:1,dimension:"2d"}),v=h.createView(),d=[];for(let m=0;m<i;m++)d.push(h.createView({label:t,format:o,dimension:"2d",aspect:"all",baseMipLevel:m,mipLevelCount:1,baseArrayLayer:0,arrayLayerCount:1}));let D=e.createSampler({label:`${t} sampler`,addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:f,minFilter:f,mipmapFilter:f});return{size:{width:n,height:r},texture:h,view:v,mip_view:d,sampler:D}}function Vt(e){return e.canvas?navigator.gpu?.getPreferredCanvasFormat():e.context.getPreferredFormat()}function ve(e,t,n,r){r=r||Vt(e);let i=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT,a=ne(e.device,t,n.width,n.height,1,r,i);e.device.queue.writeTexture({texture:a.texture},n.data,{bytesPerRow:4*n.width},{width:n.width,height:n.height});let f={addressModeU:"repeat",addressModeV:"repeat",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",maxAnisotropy:1};return a.sampler=e.device.createSampler(f),a}async function pe(e,t,n,r){let o=await(await fetch(n)).blob();r=r||Vt(e);let a=await createImageBitmap(o),f=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT,v=ne(e.device,t,a.width,a.height,1,r,f);e.device.queue.copyExternalImageToTexture({source:a},{texture:v.texture},{width:a.width,height:a.height});let d={addressModeU:"repeat",addressModeV:"repeat",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",maxAnisotropy:1};return v.sampler=e.device.createSampler(d),v}var pi="const BLOOM_MIP_COUNT:i32=7;const MODE_PREFILTER:u32=0u;const MODE_DOWNSAMPLE:u32=1u;const MODE_UPSAMPLE_FIRST:u32=2u;const MODE_UPSAMPLE:u32=3u;const EPSILON:f32=1.0e-4;struct bloom_param{parameters:vec4<f32>,combine_constant:f32,doop:u32,ferp:u32,}struct mode_lod_param{mode_lod:u32,}@group(0)@binding(0)var output_texture:texture_storage_2d<rgba16float,write>;@group(0)@binding(1)var input_texture:texture_2d<f32>;@group(0)@binding(2)var bloom_texture:texture_2d<f32>;@group(0)@binding(3)var samp:sampler;@group(0)@binding(4)var<uniform> param:bloom_param;@group(0)@binding(5)var<uniform> pc:mode_lod_param;fn QuadraticThreshold(color:vec4<f32>,threshold:f32,curve:vec3<f32>)->vec4<f32>{let brightness=max(max(color.r,color.g),color.b);var rq:f32=clamp(brightness-curve.x,0.0,curve.y);rq=curve.z*(rq*rq);let ret_color=color*max(rq,brightness-threshold)/max(brightness,EPSILON);return ret_color;}fn Prefilter(color:vec4<f32>,uv:vec2<f32>)->vec4<f32>{let clamp_value=20.0;var c=min(vec4<f32>(clamp_value),color);c=QuadraticThreshold(color,param.parameters.x,param.parameters.yzw);return c;}fn DownsampleBox13(tex:texture_2d<f32>,lod:f32,uv:vec2<f32>,tex_size:vec2<f32>)->vec3<f32>{let A=textureSampleLevel(tex,samp,uv,lod).rgb;let texel_size=tex_size*0.5;let B=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-1.0,-1.0),lod).rgb;let C=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-1.0,1.0),lod).rgb;let D=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(1.0,1.0),lod).rgb;let E=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(1.0,-1.0),lod).rgb;let F=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-2.0,-2.0),lod).rgb;let G=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-2.0,0.0),lod).rgb;let H=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(0.0,2.0),lod).rgb;let I=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(2.0,2.0),lod).rgb;let J=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(2.0,2.0),lod).rgb;let K=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(2.0,0.0),lod).rgb;let L=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-2.0,-2.0),lod).rgb;let M=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(0.0,-2.0),lod).rgb;var result:vec3<f32>=vec3<f32>(0.0);result=result+(B+C+D+E)*0.5;result=result+(F+G+A+M)*0.125;result=result+(G+H+I+A)*0.125;result=result+(A+I+J+K)*0.125;result=result+(M+A+K+L)*0.125;result=result*0.25;return result;}fn UpsampleTent9(tex:texture_2d<f32>,lod:f32,uv:vec2<f32>,texel_size:vec2<f32>,radius:f32)->vec3<f32>{let offset=texel_size.xyxy*vec4<f32>(1.0,1.0,-1.0,0.0)*radius;var result:vec3<f32>=textureSampleLevel(tex,samp,uv,lod).rgb*4.0;result=result+textureSampleLevel(tex,samp,uv-offset.xy,lod).rgb;result=result+textureSampleLevel(tex,samp,uv-offset.wy,lod).rgb*2.0;result=result+textureSampleLevel(tex,samp,uv-offset.zy,lod).rgb;result=result+textureSampleLevel(tex,samp,uv+offset.zw,lod).rgb*2.0;result=result+textureSampleLevel(tex,samp,uv+offset.xw,lod).rgb*2.0;result=result+textureSampleLevel(tex,samp,uv+offset.zy,lod).rgb;result=result+textureSampleLevel(tex,samp,uv+offset.wy,lod).rgb*2.0;result=result+textureSampleLevel(tex,samp,uv+offset.xy,lod).rgb;return result*(1.0/16.0);}fn combine(ex_color:vec3<f32>,color_to_add:vec3<f32>,combine_constant:f32)->vec3<f32>{let existing_color=ex_color+(-color_to_add);let blended_color=(combine_constant*existing_color)+color_to_add;return blended_color;}@compute @workgroup_size(8,4,1)fn cs_main(@builtin(global_invocation_id)global_invocation_id:vec3<u32>){let mode=pc.mode_lod>>16u;let lod=pc.mode_lod&65535u;let imgSize=textureDimensions(output_texture);if(global_invocation_id.x<u32(imgSize.x)&&global_invocation_id.y<u32(imgSize.y)){var texCoords:vec2<f32>=vec2<f32>(f32(global_invocation_id.x)/f32(imgSize.x),f32(global_invocation_id.y)/f32(imgSize.y));texCoords=texCoords+(1.0/vec2<f32>(imgSize))*0.5;let texSize=vec2<f32>(textureDimensions(input_texture,i32(lod)));var color:vec4<f32>=vec4<f32>(1.0);if(mode==MODE_PREFILTER){color=vec4<f32>(DownsampleBox13(input_texture,f32(lod),texCoords,1.0/texSize),1.0);color=Prefilter(color,texCoords);}else if(mode==MODE_DOWNSAMPLE){color=vec4<f32>(DownsampleBox13(input_texture,f32(lod),texCoords,1.0/texSize),1.0);}else if(mode==MODE_UPSAMPLE_FIRST){let bloomTexSize=textureDimensions(input_texture,i32(lod)+1);let sampleScale=1.0;let upsampledTexture=UpsampleTent9(input_texture,f32(lod)+1.0,texCoords,1.0/vec2<f32>(bloomTexSize),sampleScale);let existing=textureSampleLevel(input_texture,samp,texCoords,f32(lod)).rgb;color=vec4<f32>(combine(existing,upsampledTexture,param.combine_constant),1.0);}else if(mode==MODE_UPSAMPLE){let bloomTexSize=textureDimensions(bloom_texture,i32(lod)+1);let sampleScale=1.0;let upsampledTexture=UpsampleTent9(bloom_texture,f32(lod)+1.0,texCoords,1.0/vec2<f32>(bloomTexSize),sampleScale);let existing=textureSampleLevel(input_texture,samp,texCoords,f32(lod)).rgb;color=vec4<f32>(combine(existing,upsampledTexture,param.combine_constant),1.0);}textureStore(output_texture,vec2<i32>(global_invocation_id.xy),color);}}";var ue=7,Ws=0,gi=1,Ks=2,di=3,wi={type:"cobalt:bloom",onInit:async function(e,t={}){return Qs(e,t)},onRun:function(e,t,n){Js(e,t,n)},onDestroy:function(e,t){Mi(t)},onResize:function(e,t){js(e,t)},onViewportPosition:function(e,t){}};function Qs(e,t){let{device:n}=e,r=e.viewport.width,i=e.viewport.height,o={compute_pipeline:null,bind_group:[],bind_group_layout:[],bind_groups_textures:[],buffers:[]},a=n.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,storageTexture:{access:"write-only",format:"rgba16float",viewDimension:"2d"}},{binding:1,visibility:GPUShaderStage.COMPUTE,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}},{binding:2,visibility:GPUShaderStage.COMPUTE,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}},{binding:3,visibility:GPUShaderStage.COMPUTE,sampler:{}},{binding:4,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform"}},{binding:5,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform"}}]});o.bind_group_layout.push(a),o.bind_groups_textures.push(ne(n,"bloom downsampler image 0",r/2,i/2,ue,"rgba16float",GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING)),o.bind_groups_textures.push(ne(n,"bloom downsampler image 1",r/2,i/2,ue,"rgba16float",GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING)),o.bind_groups_textures.push(t.refs.bloom.data);let f=n.createPipelineLayout({bindGroupLayouts:o.bind_group_layout}),h=n.createComputePipeline({layout:f,compute:{module:n.createShaderModule({code:pi}),entryPoint:"cs_main"}});return xi(e,o,t),o.compute_pipeline=h,o}function xi(e,t,n){let{refs:r}=n,{device:i}=e,o=n.options.bloom_threshold??.1,a=n.options.bloom_knee??.2,f=n.options.bloom_combine_constant??.68,h=new Float32Array([o,o-a,a*2,.25/a,f,0,0,0]),v=i.createBuffer({label:"bloom static parameters buffer",size:h.byteLength,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});t.buffers.push(v),new Float32Array(v.getMappedRange()).set(h),v.unmap(),t.bind_group.length=0,t.params_buf=v,t.bind_group.push(Ce(i,t,t.bind_groups_textures[0].mip_view[0],r.emissive.data.view,r.hdr.data.view,r.hdr.data.sampler,v,Ws<<16|0));for(let D=1;D<ue;D++)t.bind_group.push(Ce(i,t,t.bind_groups_textures[1].mip_view[D],t.bind_groups_textures[0].view,r.hdr.data.view,r.hdr.data.sampler,v,gi<<16|D-1)),t.bind_group.push(Ce(i,t,t.bind_groups_textures[0].mip_view[D],t.bind_groups_textures[1].view,r.hdr.data.view,r.hdr.data.sampler,v,gi<<16|D));t.bind_group.push(Ce(i,t,t.bind_groups_textures[2].mip_view[ue-1],t.bind_groups_textures[0].view,r.hdr.data.view,r.hdr.data.sampler,v,Ks<<16|ue-2));let d=!0;for(let D=ue-2;D>=0;D--)d?(t.bind_group.push(Ce(i,t,t.bind_groups_textures[1].mip_view[D],t.bind_groups_textures[0].view,t.bind_groups_textures[2].view,r.hdr.data.sampler,v,di<<16|D)),d=!1):(t.bind_group.push(Ce(i,t,t.bind_groups_textures[2].mip_view[D],t.bind_groups_textures[0].view,t.bind_groups_textures[1].view,r.hdr.data.sampler,v,di<<16|D)),d=!0)}function Ce(e,t,n,r,i,o,a,f){let h=new Uint32Array([f]),v=e.createBuffer({label:"bloom static mode_lod buffer",size:h.byteLength,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});return t.buffers.push(v),new Uint32Array(v.getMappedRange()).set(h),v.unmap(),e.createBindGroup({label:"bloom bind group layout",layout:t.bind_group_layout[0],entries:[{binding:0,resource:n},{binding:1,resource:r},{binding:2,resource:i},{binding:3,resource:o},{binding:4,resource:{buffer:a}},{binding:5,resource:{buffer:v}}]})}function Js(e,t,n){let r=t.data,i=0,o=1,a=2,f=3,h=0,v=n.beginComputePass({label:"bloom Compute Pass"});v.setPipeline(r.compute_pipeline),v.setBindGroup(0,r.bind_group[h]),h+=1;let d=lr(0,r.bind_groups_textures[0]);v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1);for(let D=1;D<ue;D++)d=lr(D,r.bind_groups_textures[0]),v.setBindGroup(0,r.bind_group[h]),h+=1,v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1),v.setBindGroup(0,r.bind_group[h]),h+=1,v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1);v.setBindGroup(0,r.bind_group[h]),h+=1,d=lr(ue-1,r.bind_groups_textures[2]),v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1);for(let D=ue-2;D>=0;D--)d=lr(D,r.bind_groups_textures[2]),v.setBindGroup(0,r.bind_group[h]),h+=1,v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1);v.end()}function lr(e,t){let n=t.size.width,r=t.size.height;for(let i=0;i<e;i++)n/=2,r/=2;return{width:n,height:r,depthOrArrayLayers:1}}function js(e,t){let{device:n}=e,r=t.data;Mi(t),r.bind_groups_textures.push(ne(n,"bloom downsampler image 0",e.viewport.width/2,e.viewport.height/2,ue,"rgba16float",GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING)),r.bind_groups_textures.push(ne(n,"bloom downsampler image 1",e.viewport.width/2,e.viewport.height/2,ue,"rgba16float",GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING)),r.bind_groups_textures.push(t.refs.bloom.data),xi(e,r,t)}function Mi(e){for(let t of e.data.bind_groups_textures)t.texture.destroy();for(let t of e.data.buffers)t.destroy();e.data.buffers.length=0,e.data.bind_groups_textures.length=0}var yi="struct DisplacementParameters{offset:vec2<f32>,scale:f32,};@group(0)@binding(0)var<uniform> uniforms:DisplacementParameters;@group(0)@binding(1)var colorTexture:texture_2d<f32>;@group(0)@binding(2)var colorSampler:sampler;@group(0)@binding(3)var noiseTexture:texture_2d<f32>;@group(0)@binding(4)var noiseSampler:sampler;@group(0)@binding(5)var displacementTexture:texture_2d<f32>;struct VertexIn{@builtin(vertex_index)vertexIndex:u32,};struct VertexOut{@builtin(position)position:vec4<f32>,@location(0)uv:vec2<f32>,};@vertex fn main_vertex(in:VertexIn)->VertexOut{const corners=array<vec2<f32>,4>(vec2<f32>(-1,-1),vec2<f32>(1,-1),vec2<f32>(-1,1),vec2<f32>(1,1),);let screenPosition=corners[in.vertexIndex];var out:VertexOut;out.position=vec4<f32>(screenPosition,0,1);out.uv=(0.5+0.5*screenPosition*vec2<f32>(1,-1));return out;}struct FragmentOut{@location(0)color:vec4<f32>,};@fragment fn main_fragment(in:VertexOut)->FragmentOut{let noiseTextureDimensions=vec2<f32>(textureDimensions(noiseTexture,0));let noiseUv=in.uv+uniforms.offset/noiseTextureDimensions;var noise=textureSample(noiseTexture,noiseSampler,noiseUv).rg;noise-=0.5;noise*=uniforms.scale/noiseTextureDimensions;let displacement=textureSample(displacementTexture,colorSampler,in.uv).r;noise*=displacement;let colorUv=in.uv+noise;var out:FragmentOut;out.color=textureSample(colorTexture,colorSampler,colorUv);return out;}";var hr=class{device;targetFormat;renderPipeline;colorSampler;noiseSampler;displacementParametersBuffer;renderBundle=null;colorTextureView;noiseMapTextureView;displacementTextureView;constructor(t){this.device=t.device,this.targetFormat=t.targetFormat,this.colorTextureView=t.colorTextureView,this.noiseMapTextureView=t.noiseMapTextureView,this.displacementTextureView=t.displacementTextureView,this.displacementParametersBuffer=t.displacementParametersBuffer;let n=this.device.createShaderModule({label:"DisplacementComposition shader module",code:yi});this.renderPipeline=this.device.createRenderPipeline({label:"DisplacementComposition renderpipeline",layout:"auto",vertex:{module:n,entryPoint:"main_vertex"},fragment:{module:n,entryPoint:"main_fragment",targets:[{format:t.targetFormat}]},primitive:{cullMode:"none",topology:"triangle-strip"}}),this.noiseSampler=this.device.createSampler({label:"DisplacementComposition noisesampler",addressModeU:"repeat",addressModeV:"repeat",addressModeW:"repeat",magFilter:"linear",minFilter:"linear",mipmapFilter:"linear"}),this.colorSampler=this.device.createSampler({label:"DisplacementComposition colorSampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"linear",minFilter:"linear",mipmapFilter:"linear"})}getRenderBundle(){return this.renderBundle||(this.renderBundle=this.buildRenderBundle()),this.renderBundle}destroy(){}setColorTextureView(t){this.colorTextureView=t,this.renderBundle=null}setNoiseMapTextureView(t){this.noiseMapTextureView=t,this.renderBundle=null}setDisplacementTextureView(t){this.displacementTextureView=t,this.renderBundle=null}buildRenderBundle(){let t=this.device.createBindGroup({label:"DisplacementComposition bindgroup 0",layout:this.renderPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.displacementParametersBuffer.bufferGpu}},{binding:1,resource:this.colorTextureView},{binding:2,resource:this.colorSampler},{binding:3,resource:this.noiseMapTextureView},{binding:4,resource:this.noiseSampler},{binding:5,resource:this.displacementTextureView}]}),n=this.device.createRenderBundleEncoder({label:"DisplacementComposition renderbundle encoder",colorFormats:[this.targetFormat]});return n.setPipeline(this.renderPipeline),n.setBindGroup(0,t),n.draw(4),n.finish({label:"DisplacementComposition renderbundle"})}};var vr=class{device;bufferGpu;needsUpdate=!0;constructor(t){this.device=t.device,this.bufferGpu=this.device.createBuffer({label:"DisplacementParametersBuffer buffer",size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.setParameters(t.initialParameters)}setParameters(t){this.device.queue.writeBuffer(this.bufferGpu,0,new Float32Array([t.offsetX,t.offsetY,t.scale]))}destroy(){this.bufferGpu.destroy()}};var bi="struct TransformData{mvpMatrix:mat4x4<f32>,};@group(0)@binding(0)var<uniform> transformUBO:TransformData;struct VertexIn{@location(0)position:vec2<f32>,};struct VertexOut{@builtin(position)position:vec4<f32>,};@vertex fn main_vertex(in:VertexIn)->VertexOut{var output:VertexOut;output.position=transformUBO.mvpMatrix*vec4<f32>(in.position,0.0,1.0);return output;}struct FragmentOut{@location(0)color:vec4<f32>,};@fragment fn main_fragment()->FragmentOut{var out:FragmentOut;out.color=vec4<f32>(1.0,1.0,1.0,1.0);return out;}";function tu(e,t){return class extends e{constructor(...n){super(...n),t(this)}}}var eu=tu(Array,e=>e.fill(0)),_t=1e-6;function ru(e){function t(G=0,q=0){let k=new e(2);return G!==void 0&&(k[0]=G,q!==void 0&&(k[1]=q)),k}let n=t;function r(G,q,k){let u=k??new e(2);return u[0]=G,u[1]=q,u}function i(G,q){let k=q??new e(2);return k[0]=Math.ceil(G[0]),k[1]=Math.ceil(G[1]),k}function o(G,q){let k=q??new e(2);return k[0]=Math.floor(G[0]),k[1]=Math.floor(G[1]),k}function a(G,q){let k=q??new e(2);return k[0]=Math.round(G[0]),k[1]=Math.round(G[1]),k}function f(G,q=0,k=1,u){let B=u??new e(2);return B[0]=Math.min(k,Math.max(q,G[0])),B[1]=Math.min(k,Math.max(q,G[1])),B}function h(G,q,k){let u=k??new e(2);return u[0]=G[0]+q[0],u[1]=G[1]+q[1],u}function v(G,q,k,u){let B=u??new e(2);return B[0]=G[0]+q[0]*k,B[1]=G[1]+q[1]*k,B}function d(G,q){let k=G[0],u=G[1],B=q[0],M=q[1],x=Math.sqrt(k*k+u*u),g=Math.sqrt(B*B+M*M),S=x*g,L=S&&rt(G,q)/S;return Math.acos(L)}function D(G,q,k){let u=k??new e(2);return u[0]=G[0]-q[0],u[1]=G[1]-q[1],u}let m=D;function C(G,q){return Math.abs(G[0]-q[0])<_t&&Math.abs(G[1]-q[1])<_t}function R(G,q){return G[0]===q[0]&&G[1]===q[1]}function N(G,q,k,u){let B=u??new e(2);return B[0]=G[0]+k*(q[0]-G[0]),B[1]=G[1]+k*(q[1]-G[1]),B}function V(G,q,k,u){let B=u??new e(2);return B[0]=G[0]+k[0]*(q[0]-G[0]),B[1]=G[1]+k[1]*(q[1]-G[1]),B}function Y(G,q,k){let u=k??new e(2);return u[0]=Math.max(G[0],q[0]),u[1]=Math.max(G[1],q[1]),u}function K(G,q,k){let u=k??new e(2);return u[0]=Math.min(G[0],q[0]),u[1]=Math.min(G[1],q[1]),u}function Q(G,q,k){let u=k??new e(2);return u[0]=G[0]*q,u[1]=G[1]*q,u}let j=Q;function Z(G,q,k){let u=k??new e(2);return u[0]=G[0]/q,u[1]=G[1]/q,u}function W(G,q){let k=q??new e(2);return k[0]=1/G[0],k[1]=1/G[1],k}let st=W;function et(G,q,k){let u=k??new e(3),B=G[0]*q[1]-G[1]*q[0];return u[0]=0,u[1]=0,u[2]=B,u}function rt(G,q){return G[0]*q[0]+G[1]*q[1]}function F(G){let q=G[0],k=G[1];return Math.sqrt(q*q+k*k)}let s=F;function p(G){let q=G[0],k=G[1];return q*q+k*k}let _=p;function y(G,q){let k=G[0]-q[0],u=G[1]-q[1];return Math.sqrt(k*k+u*u)}let T=y;function E(G,q){let k=G[0]-q[0],u=G[1]-q[1];return k*k+u*u}let O=E;function P(G,q){let k=q??new e(2),u=G[0],B=G[1],M=u*u+B*B,x=M>0?1/Math.sqrt(M):1;return k[0]=u*x,k[1]=B*x,k}function l(G,q){let k=q??new e(2);return k[0]=-G[0],k[1]=-G[1],k}function U(G,q){let k=q??new e(2);return k[0]=G[0],k[1]=G[1],k}let ot=U;function at(G,q,k){let u=k??new e(2);return u[0]=G[0]*q[0],u[1]=G[1]*q[1],u}let ut=at;function ft(G,q,k){let u=k??new e(2);return u[0]=G[0]/q[0],u[1]=G[1]/q[1],u}let Mt=ft;function vt(G=1,q){let k=q??new e(2),u=Math.random()*2*Math.PI;return k[0]=Math.cos(u)*G,k[1]=Math.sin(u)*G,k}function X(G){let q=G??new e(2);return q[0]=0,q[1]=0,q}function $(G,q,k){let u=k??new e(2),B=G[0],M=G[1];return u[0]=B*q[0]+M*q[4]+q[12],u[1]=B*q[1]+M*q[5]+q[13],u}function A(G,q,k){let u=k??new e(2),B=G[0],M=G[1];return u[0]=q[0]*B+q[4]*M+q[8],u[1]=q[1]*B+q[5]*M+q[9],u}function c(G,q,k,u){let B=u??new e(2),M=G[0]-q[0],x=G[1]-q[1],g=Math.sin(k),S=Math.cos(k);return B[0]=M*S-x*g+q[0],B[1]=M*g+x*S+q[1],B}function b(G,q,k){let u=k??new e(2);return P(G,u),Q(u,q,u)}function w(G,q,k){let u=k??new e(2);return F(G)>q?b(G,q,u):U(G,u)}function I(G,q,k){let u=k??new e(2);return N(G,q,.5,u)}return{create:t,fromValues:n,set:r,ceil:i,floor:o,round:a,clamp:f,add:h,addScaled:v,angle:d,subtract:D,sub:m,equalsApproximately:C,equals:R,lerp:N,lerpV:V,max:Y,min:K,mulScalar:Q,scale:j,divScalar:Z,inverse:W,invert:st,cross:et,dot:rt,length:F,len:s,lengthSq:p,lenSq:_,distance:y,dist:T,distanceSq:E,distSq:O,normalize:P,negate:l,copy:U,clone:ot,multiply:at,mul:ut,divide:ft,div:Mt,random:vt,zero:X,transformMat4:$,transformMat3:A,rotate:c,setLength:b,truncate:w,midpoint:I}}var _i=new Map;function Fi(e){let t=_i.get(e);return t||(t=ru(e),_i.set(e,t)),t}function nu(e){function t(g,S,L){let z=new e(3);return g!==void 0&&(z[0]=g,S!==void 0&&(z[1]=S,L!==void 0&&(z[2]=L))),z}let n=t;function r(g,S,L,z){let H=z??new e(3);return H[0]=g,H[1]=S,H[2]=L,H}function i(g,S){let L=S??new e(3);return L[0]=Math.ceil(g[0]),L[1]=Math.ceil(g[1]),L[2]=Math.ceil(g[2]),L}function o(g,S){let L=S??new e(3);return L[0]=Math.floor(g[0]),L[1]=Math.floor(g[1]),L[2]=Math.floor(g[2]),L}function a(g,S){let L=S??new e(3);return L[0]=Math.round(g[0]),L[1]=Math.round(g[1]),L[2]=Math.round(g[2]),L}function f(g,S=0,L=1,z){let H=z??new e(3);return H[0]=Math.min(L,Math.max(S,g[0])),H[1]=Math.min(L,Math.max(S,g[1])),H[2]=Math.min(L,Math.max(S,g[2])),H}function h(g,S,L){let z=L??new e(3);return z[0]=g[0]+S[0],z[1]=g[1]+S[1],z[2]=g[2]+S[2],z}function v(g,S,L,z){let H=z??new e(3);return H[0]=g[0]+S[0]*L,H[1]=g[1]+S[1]*L,H[2]=g[2]+S[2]*L,H}function d(g,S){let L=g[0],z=g[1],H=g[2],J=S[0],tt=S[1],ct=S[2],nt=Math.sqrt(L*L+z*z+H*H),it=Math.sqrt(J*J+tt*tt+ct*ct),pt=nt*it,ht=pt&&rt(g,S)/pt;return Math.acos(ht)}function D(g,S,L){let z=L??new e(3);return z[0]=g[0]-S[0],z[1]=g[1]-S[1],z[2]=g[2]-S[2],z}let m=D;function C(g,S){return Math.abs(g[0]-S[0])<_t&&Math.abs(g[1]-S[1])<_t&&Math.abs(g[2]-S[2])<_t}function R(g,S){return g[0]===S[0]&&g[1]===S[1]&&g[2]===S[2]}function N(g,S,L,z){let H=z??new e(3);return H[0]=g[0]+L*(S[0]-g[0]),H[1]=g[1]+L*(S[1]-g[1]),H[2]=g[2]+L*(S[2]-g[2]),H}function V(g,S,L,z){let H=z??new e(3);return H[0]=g[0]+L[0]*(S[0]-g[0]),H[1]=g[1]+L[1]*(S[1]-g[1]),H[2]=g[2]+L[2]*(S[2]-g[2]),H}function Y(g,S,L){let z=L??new e(3);return z[0]=Math.max(g[0],S[0]),z[1]=Math.max(g[1],S[1]),z[2]=Math.max(g[2],S[2]),z}function K(g,S,L){let z=L??new e(3);return z[0]=Math.min(g[0],S[0]),z[1]=Math.min(g[1],S[1]),z[2]=Math.min(g[2],S[2]),z}function Q(g,S,L){let z=L??new e(3);return z[0]=g[0]*S,z[1]=g[1]*S,z[2]=g[2]*S,z}let j=Q;function Z(g,S,L){let z=L??new e(3);return z[0]=g[0]/S,z[1]=g[1]/S,z[2]=g[2]/S,z}function W(g,S){let L=S??new e(3);return L[0]=1/g[0],L[1]=1/g[1],L[2]=1/g[2],L}let st=W;function et(g,S,L){let z=L??new e(3),H=g[2]*S[0]-g[0]*S[2],J=g[0]*S[1]-g[1]*S[0];return z[0]=g[1]*S[2]-g[2]*S[1],z[1]=H,z[2]=J,z}function rt(g,S){return g[0]*S[0]+g[1]*S[1]+g[2]*S[2]}function F(g){let S=g[0],L=g[1],z=g[2];return Math.sqrt(S*S+L*L+z*z)}let s=F;function p(g){let S=g[0],L=g[1],z=g[2];return S*S+L*L+z*z}let _=p;function y(g,S){let L=g[0]-S[0],z=g[1]-S[1],H=g[2]-S[2];return Math.sqrt(L*L+z*z+H*H)}let T=y;function E(g,S){let L=g[0]-S[0],z=g[1]-S[1],H=g[2]-S[2];return L*L+z*z+H*H}let O=E;function P(g,S){let L=S??new e(3),z=g[0],H=g[1],J=g[2],tt=z*z+H*H+J*J,ct=tt>0?1/Math.sqrt(tt):1;return L[0]=z*ct,L[1]=H*ct,L[2]=J*ct,L}function l(g,S){let L=S??new e(3);return L[0]=-g[0],L[1]=-g[1],L[2]=-g[2],L}function U(g,S){let L=S??new e(3);return L[0]=g[0],L[1]=g[1],L[2]=g[2],L}let ot=U;function at(g,S,L){let z=L??new e(3);return z[0]=g[0]*S[0],z[1]=g[1]*S[1],z[2]=g[2]*S[2],z}let ut=at;function ft(g,S,L){let z=L??new e(3);return z[0]=g[0]/S[0],z[1]=g[1]/S[1],z[2]=g[2]/S[2],z}let Mt=ft;function vt(g=1,S){let L=S??new e(3),z=Math.random()*2*Math.PI,H=Math.random()*2-1,J=Math.sqrt(1-H*H)*g;return L[0]=Math.cos(z)*J,L[1]=Math.sin(z)*J,L[2]=H*g,L}function X(g){let S=g??new e(3);return S[0]=0,S[1]=0,S[2]=0,S}function $(g,S,L){let z=L??new e(3),H=g[0],J=g[1],tt=g[2],ct=S[3]*H+S[7]*J+S[11]*tt+S[15]||1;return z[0]=(S[0]*H+S[4]*J+S[8]*tt+S[12])/ct,z[1]=(S[1]*H+S[5]*J+S[9]*tt+S[13])/ct,z[2]=(S[2]*H+S[6]*J+S[10]*tt+S[14])/ct,z}function A(g,S,L){let z=L??new e(3),H=g[0],J=g[1],tt=g[2];return z[0]=H*S[0]+J*S[4]+tt*S[8],z[1]=H*S[1]+J*S[5]+tt*S[9],z[2]=H*S[2]+J*S[6]+tt*S[10],z}function c(g,S,L){let z=L??new e(3),H=g[0],J=g[1],tt=g[2];return z[0]=H*S[0]+J*S[4]+tt*S[8],z[1]=H*S[1]+J*S[5]+tt*S[9],z[2]=H*S[2]+J*S[6]+tt*S[10],z}function b(g,S,L){let z=L??new e(3),H=S[0],J=S[1],tt=S[2],ct=S[3]*2,nt=g[0],it=g[1],pt=g[2],ht=J*pt-tt*it,lt=tt*nt-H*pt,gt=H*it-J*nt;return z[0]=nt+ht*ct+(J*gt-tt*lt)*2,z[1]=it+lt*ct+(tt*ht-H*gt)*2,z[2]=pt+gt*ct+(H*lt-J*ht)*2,z}function w(g,S){let L=S??new e(3);return L[0]=g[12],L[1]=g[13],L[2]=g[14],L}function I(g,S,L){let z=L??new e(3),H=S*4;return z[0]=g[H+0],z[1]=g[H+1],z[2]=g[H+2],z}function G(g,S){let L=S??new e(3),z=g[0],H=g[1],J=g[2],tt=g[4],ct=g[5],nt=g[6],it=g[8],pt=g[9],ht=g[10];return L[0]=Math.sqrt(z*z+H*H+J*J),L[1]=Math.sqrt(tt*tt+ct*ct+nt*nt),L[2]=Math.sqrt(it*it+pt*pt+ht*ht),L}function q(g,S,L,z){let H=z??new e(3),J=[],tt=[];return J[0]=g[0]-S[0],J[1]=g[1]-S[1],J[2]=g[2]-S[2],tt[0]=J[0],tt[1]=J[1]*Math.cos(L)-J[2]*Math.sin(L),tt[2]=J[1]*Math.sin(L)+J[2]*Math.cos(L),H[0]=tt[0]+S[0],H[1]=tt[1]+S[1],H[2]=tt[2]+S[2],H}function k(g,S,L,z){let H=z??new e(3),J=[],tt=[];return J[0]=g[0]-S[0],J[1]=g[1]-S[1],J[2]=g[2]-S[2],tt[0]=J[2]*Math.sin(L)+J[0]*Math.cos(L),tt[1]=J[1],tt[2]=J[2]*Math.cos(L)-J[0]*Math.sin(L),H[0]=tt[0]+S[0],H[1]=tt[1]+S[1],H[2]=tt[2]+S[2],H}function u(g,S,L,z){let H=z??new e(3),J=[],tt=[];return J[0]=g[0]-S[0],J[1]=g[1]-S[1],J[2]=g[2]-S[2],tt[0]=J[0]*Math.cos(L)-J[1]*Math.sin(L),tt[1]=J[0]*Math.sin(L)+J[1]*Math.cos(L),tt[2]=J[2],H[0]=tt[0]+S[0],H[1]=tt[1]+S[1],H[2]=tt[2]+S[2],H}function B(g,S,L){let z=L??new e(3);return P(g,z),Q(z,S,z)}function M(g,S,L){let z=L??new e(3);return F(g)>S?B(g,S,z):U(g,z)}function x(g,S,L){let z=L??new e(3);return N(g,S,.5,z)}return{create:t,fromValues:n,set:r,ceil:i,floor:o,round:a,clamp:f,add:h,addScaled:v,angle:d,subtract:D,sub:m,equalsApproximately:C,equals:R,lerp:N,lerpV:V,max:Y,min:K,mulScalar:Q,scale:j,divScalar:Z,inverse:W,invert:st,cross:et,dot:rt,length:F,len:s,lengthSq:p,lenSq:_,distance:y,dist:T,distanceSq:E,distSq:O,normalize:P,negate:l,copy:U,clone:ot,multiply:at,mul:ut,divide:ft,div:Mt,random:vt,zero:X,transformMat4:$,transformMat4Upper3x3:A,transformMat3:c,transformQuat:b,getTranslation:w,getAxis:I,getScaling:G,rotateX:q,rotateY:k,rotateZ:u,setLength:B,truncate:M,midpoint:x}}var Si=new Map;function pr(e){let t=Si.get(e);return t||(t=nu(e),Si.set(e,t)),t}function iu(e){let t=Fi(e),n=pr(e);function r(c,b,w,I,G,q,k,u,B){let M=new e(12);return M[3]=0,M[7]=0,M[11]=0,c!==void 0&&(M[0]=c,b!==void 0&&(M[1]=b,w!==void 0&&(M[2]=w,I!==void 0&&(M[4]=I,G!==void 0&&(M[5]=G,q!==void 0&&(M[6]=q,k!==void 0&&(M[8]=k,u!==void 0&&(M[9]=u,B!==void 0&&(M[10]=B))))))))),M}function i(c,b,w,I,G,q,k,u,B,M){let x=M??new e(12);return x[0]=c,x[1]=b,x[2]=w,x[3]=0,x[4]=I,x[5]=G,x[6]=q,x[7]=0,x[8]=k,x[9]=u,x[10]=B,x[11]=0,x}function o(c,b){let w=b??new e(12);return w[0]=c[0],w[1]=c[1],w[2]=c[2],w[3]=0,w[4]=c[4],w[5]=c[5],w[6]=c[6],w[7]=0,w[8]=c[8],w[9]=c[9],w[10]=c[10],w[11]=0,w}function a(c,b){let w=b??new e(12),I=c[0],G=c[1],q=c[2],k=c[3],u=I+I,B=G+G,M=q+q,x=I*u,g=G*u,S=G*B,L=q*u,z=q*B,H=q*M,J=k*u,tt=k*B,ct=k*M;return w[0]=1-S-H,w[1]=g+ct,w[2]=L-tt,w[3]=0,w[4]=g-ct,w[5]=1-x-H,w[6]=z+J,w[7]=0,w[8]=L+tt,w[9]=z-J,w[10]=1-x-S,w[11]=0,w}function f(c,b){let w=b??new e(12);return w[0]=-c[0],w[1]=-c[1],w[2]=-c[2],w[4]=-c[4],w[5]=-c[5],w[6]=-c[6],w[8]=-c[8],w[9]=-c[9],w[10]=-c[10],w}function h(c,b,w){let I=w??new e(12);return I[0]=c[0]*b,I[1]=c[1]*b,I[2]=c[2]*b,I[4]=c[4]*b,I[5]=c[5]*b,I[6]=c[6]*b,I[8]=c[8]*b,I[9]=c[9]*b,I[10]=c[10]*b,I}let v=h;function d(c,b,w){let I=w??new e(12);return I[0]=c[0]+b[0],I[1]=c[1]+b[1],I[2]=c[2]+b[2],I[4]=c[4]+b[4],I[5]=c[5]+b[5],I[6]=c[6]+b[6],I[8]=c[8]+b[8],I[9]=c[9]+b[9],I[10]=c[10]+b[10],I}function D(c,b){let w=b??new e(12);return w[0]=c[0],w[1]=c[1],w[2]=c[2],w[4]=c[4],w[5]=c[5],w[6]=c[6],w[8]=c[8],w[9]=c[9],w[10]=c[10],w}let m=D;function C(c,b){return Math.abs(c[0]-b[0])<_t&&Math.abs(c[1]-b[1])<_t&&Math.abs(c[2]-b[2])<_t&&Math.abs(c[4]-b[4])<_t&&Math.abs(c[5]-b[5])<_t&&Math.abs(c[6]-b[6])<_t&&Math.abs(c[8]-b[8])<_t&&Math.abs(c[9]-b[9])<_t&&Math.abs(c[10]-b[10])<_t}function R(c,b){return c[0]===b[0]&&c[1]===b[1]&&c[2]===b[2]&&c[4]===b[4]&&c[5]===b[5]&&c[6]===b[6]&&c[8]===b[8]&&c[9]===b[9]&&c[10]===b[10]}function N(c){let b=c??new e(12);return b[0]=1,b[1]=0,b[2]=0,b[4]=0,b[5]=1,b[6]=0,b[8]=0,b[9]=0,b[10]=1,b}function V(c,b){let w=b??new e(12);if(w===c){let S;return S=c[1],c[1]=c[4],c[4]=S,S=c[2],c[2]=c[8],c[8]=S,S=c[6],c[6]=c[9],c[9]=S,w}let I=c[0],G=c[1],q=c[2],k=c[4],u=c[5],B=c[6],M=c[8],x=c[9],g=c[10];return w[0]=I,w[1]=k,w[2]=M,w[4]=G,w[5]=u,w[6]=x,w[8]=q,w[9]=B,w[10]=g,w}function Y(c,b){let w=b??new e(12),I=c[0],G=c[1],q=c[2],k=c[4],u=c[5],B=c[6],M=c[8],x=c[9],g=c[10],S=g*u-B*x,L=-g*k+B*M,z=x*k-u*M,H=1/(I*S+G*L+q*z);return w[0]=S*H,w[1]=(-g*G+q*x)*H,w[2]=(B*G-q*u)*H,w[4]=L*H,w[5]=(g*I-q*M)*H,w[6]=(-B*I+q*k)*H,w[8]=z*H,w[9]=(-x*I+G*M)*H,w[10]=(u*I-G*k)*H,w}function K(c){let b=c[0],w=c[1],I=c[2],G=c[4],q=c[5],k=c[6],u=c[8],B=c[9],M=c[10];return b*(q*M-B*k)-G*(w*M-B*I)+u*(w*k-q*I)}let Q=Y;function j(c,b,w){let I=w??new e(12),G=c[0],q=c[1],k=c[2],u=c[4],B=c[5],M=c[6],x=c[8],g=c[9],S=c[10],L=b[0],z=b[1],H=b[2],J=b[4],tt=b[5],ct=b[6],nt=b[8],it=b[9],pt=b[10];return I[0]=G*L+u*z+x*H,I[1]=q*L+B*z+g*H,I[2]=k*L+M*z+S*H,I[4]=G*J+u*tt+x*ct,I[5]=q*J+B*tt+g*ct,I[6]=k*J+M*tt+S*ct,I[8]=G*nt+u*it+x*pt,I[9]=q*nt+B*it+g*pt,I[10]=k*nt+M*it+S*pt,I}let Z=j;function W(c,b,w){let I=w??N();return c!==I&&(I[0]=c[0],I[1]=c[1],I[2]=c[2],I[4]=c[4],I[5]=c[5],I[6]=c[6]),I[8]=b[0],I[9]=b[1],I[10]=1,I}function st(c,b){let w=b??t.create();return w[0]=c[8],w[1]=c[9],w}function et(c,b,w){let I=w??t.create(),G=b*4;return I[0]=c[G+0],I[1]=c[G+1],I}function rt(c,b,w,I){let G=I===c?c:D(c,I),q=w*4;return G[q+0]=b[0],G[q+1]=b[1],G}function F(c,b){let w=b??t.create(),I=c[0],G=c[1],q=c[4],k=c[5];return w[0]=Math.sqrt(I*I+G*G),w[1]=Math.sqrt(q*q+k*k),w}function s(c,b){let w=b??n.create(),I=c[0],G=c[1],q=c[2],k=c[4],u=c[5],B=c[6],M=c[8],x=c[9],g=c[10];return w[0]=Math.sqrt(I*I+G*G+q*q),w[1]=Math.sqrt(k*k+u*u+B*B),w[2]=Math.sqrt(M*M+x*x+g*g),w}function p(c,b){let w=b??new e(12);return w[0]=1,w[1]=0,w[2]=0,w[4]=0,w[5]=1,w[6]=0,w[8]=c[0],w[9]=c[1],w[10]=1,w}function _(c,b,w){let I=w??new e(12),G=b[0],q=b[1],k=c[0],u=c[1],B=c[2],M=c[4],x=c[5],g=c[6],S=c[8],L=c[9],z=c[10];return c!==I&&(I[0]=k,I[1]=u,I[2]=B,I[4]=M,I[5]=x,I[6]=g),I[8]=k*G+M*q+S,I[9]=u*G+x*q+L,I[10]=B*G+g*q+z,I}function y(c,b){let w=b??new e(12),I=Math.cos(c),G=Math.sin(c);return w[0]=I,w[1]=G,w[2]=0,w[4]=-G,w[5]=I,w[6]=0,w[8]=0,w[9]=0,w[10]=1,w}function T(c,b,w){let I=w??new e(12),G=c[0],q=c[1],k=c[2],u=c[4],B=c[5],M=c[6],x=Math.cos(b),g=Math.sin(b);return I[0]=x*G+g*u,I[1]=x*q+g*B,I[2]=x*k+g*M,I[4]=x*u-g*G,I[5]=x*B-g*q,I[6]=x*M-g*k,c!==I&&(I[8]=c[8],I[9]=c[9],I[10]=c[10]),I}function E(c,b){let w=b??new e(12),I=Math.cos(c),G=Math.sin(c);return w[0]=1,w[1]=0,w[2]=0,w[4]=0,w[5]=I,w[6]=G,w[8]=0,w[9]=-G,w[10]=I,w}function O(c,b,w){let I=w??new e(12),G=c[4],q=c[5],k=c[6],u=c[8],B=c[9],M=c[10],x=Math.cos(b),g=Math.sin(b);return I[4]=x*G+g*u,I[5]=x*q+g*B,I[6]=x*k+g*M,I[8]=x*u-g*G,I[9]=x*B-g*q,I[10]=x*M-g*k,c!==I&&(I[0]=c[0],I[1]=c[1],I[2]=c[2]),I}function P(c,b){let w=b??new e(12),I=Math.cos(c),G=Math.sin(c);return w[0]=I,w[1]=0,w[2]=-G,w[4]=0,w[5]=1,w[6]=0,w[8]=G,w[9]=0,w[10]=I,w}function l(c,b,w){let I=w??new e(12),G=c[0],q=c[1],k=c[2],u=c[8],B=c[9],M=c[10],x=Math.cos(b),g=Math.sin(b);return I[0]=x*G-g*u,I[1]=x*q-g*B,I[2]=x*k-g*M,I[8]=x*u+g*G,I[9]=x*B+g*q,I[10]=x*M+g*k,c!==I&&(I[4]=c[4],I[5]=c[5],I[6]=c[6]),I}let U=y,ot=T;function at(c,b){let w=b??new e(12);return w[0]=c[0],w[1]=0,w[2]=0,w[4]=0,w[5]=c[1],w[6]=0,w[8]=0,w[9]=0,w[10]=1,w}function ut(c,b,w){let I=w??new e(12),G=b[0],q=b[1];return I[0]=G*c[0],I[1]=G*c[1],I[2]=G*c[2],I[4]=q*c[4],I[5]=q*c[5],I[6]=q*c[6],c!==I&&(I[8]=c[8],I[9]=c[9],I[10]=c[10]),I}function ft(c,b){let w=b??new e(12);return w[0]=c[0],w[1]=0,w[2]=0,w[4]=0,w[5]=c[1],w[6]=0,w[8]=0,w[9]=0,w[10]=c[2],w}function Mt(c,b,w){let I=w??new e(12),G=b[0],q=b[1],k=b[2];return I[0]=G*c[0],I[1]=G*c[1],I[2]=G*c[2],I[4]=q*c[4],I[5]=q*c[5],I[6]=q*c[6],I[8]=k*c[8],I[9]=k*c[9],I[10]=k*c[10],I}function vt(c,b){let w=b??new e(12);return w[0]=c,w[1]=0,w[2]=0,w[4]=0,w[5]=c,w[6]=0,w[8]=0,w[9]=0,w[10]=1,w}function X(c,b,w){let I=w??new e(12);return I[0]=b*c[0],I[1]=b*c[1],I[2]=b*c[2],I[4]=b*c[4],I[5]=b*c[5],I[6]=b*c[6],c!==I&&(I[8]=c[8],I[9]=c[9],I[10]=c[10]),I}function $(c,b){let w=b??new e(12);return w[0]=c,w[1]=0,w[2]=0,w[4]=0,w[5]=c,w[6]=0,w[8]=0,w[9]=0,w[10]=c,w}function A(c,b,w){let I=w??new e(12);return I[0]=b*c[0],I[1]=b*c[1],I[2]=b*c[2],I[4]=b*c[4],I[5]=b*c[5],I[6]=b*c[6],I[8]=b*c[8],I[9]=b*c[9],I[10]=b*c[10],I}return{add:d,clone:m,copy:D,create:r,determinant:K,equals:R,equalsApproximately:C,fromMat4:o,fromQuat:a,get3DScaling:s,getAxis:et,getScaling:F,getTranslation:st,identity:N,inverse:Y,invert:Q,mul:Z,mulScalar:v,multiply:j,multiplyScalar:h,negate:f,rotate:T,rotateX:O,rotateY:l,rotateZ:ot,rotation:y,rotationX:E,rotationY:P,rotationZ:U,scale:ut,scale3D:Mt,scaling:at,scaling3D:ft,set:i,setAxis:rt,setTranslation:W,translate:_,translation:p,transpose:V,uniformScale:X,uniformScale3D:A,uniformScaling:vt,uniformScaling3D:$}}var Ti=new Map;function ou(e){let t=Ti.get(e);return t||(t=iu(e),Ti.set(e,t)),t}function au(e){let t=pr(e);function n(u,B,M,x,g,S,L,z,H,J,tt,ct,nt,it,pt,ht){let lt=new e(16);return u!==void 0&&(lt[0]=u,B!==void 0&&(lt[1]=B,M!==void 0&&(lt[2]=M,x!==void 0&&(lt[3]=x,g!==void 0&&(lt[4]=g,S!==void 0&&(lt[5]=S,L!==void 0&&(lt[6]=L,z!==void 0&&(lt[7]=z,H!==void 0&&(lt[8]=H,J!==void 0&&(lt[9]=J,tt!==void 0&&(lt[10]=tt,ct!==void 0&&(lt[11]=ct,nt!==void 0&&(lt[12]=nt,it!==void 0&&(lt[13]=it,pt!==void 0&&(lt[14]=pt,ht!==void 0&&(lt[15]=ht)))))))))))))))),lt}function r(u,B,M,x,g,S,L,z,H,J,tt,ct,nt,it,pt,ht,lt){let gt=lt??new e(16);return gt[0]=u,gt[1]=B,gt[2]=M,gt[3]=x,gt[4]=g,gt[5]=S,gt[6]=L,gt[7]=z,gt[8]=H,gt[9]=J,gt[10]=tt,gt[11]=ct,gt[12]=nt,gt[13]=it,gt[14]=pt,gt[15]=ht,gt}function i(u,B){let M=B??new e(16);return M[0]=u[0],M[1]=u[1],M[2]=u[2],M[3]=0,M[4]=u[4],M[5]=u[5],M[6]=u[6],M[7]=0,M[8]=u[8],M[9]=u[9],M[10]=u[10],M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function o(u,B){let M=B??new e(16),x=u[0],g=u[1],S=u[2],L=u[3],z=x+x,H=g+g,J=S+S,tt=x*z,ct=g*z,nt=g*H,it=S*z,pt=S*H,ht=S*J,lt=L*z,gt=L*H,wt=L*J;return M[0]=1-nt-ht,M[1]=ct+wt,M[2]=it-gt,M[3]=0,M[4]=ct-wt,M[5]=1-tt-ht,M[6]=pt+lt,M[7]=0,M[8]=it+gt,M[9]=pt-lt,M[10]=1-tt-nt,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function a(u,B){let M=B??new e(16);return M[0]=-u[0],M[1]=-u[1],M[2]=-u[2],M[3]=-u[3],M[4]=-u[4],M[5]=-u[5],M[6]=-u[6],M[7]=-u[7],M[8]=-u[8],M[9]=-u[9],M[10]=-u[10],M[11]=-u[11],M[12]=-u[12],M[13]=-u[13],M[14]=-u[14],M[15]=-u[15],M}function f(u,B,M){let x=M??new e(16);return x[0]=u[0]+B[0],x[1]=u[1]+B[1],x[2]=u[2]+B[2],x[3]=u[3]+B[3],x[4]=u[4]+B[4],x[5]=u[5]+B[5],x[6]=u[6]+B[6],x[7]=u[7]+B[7],x[8]=u[8]+B[8],x[9]=u[9]+B[9],x[10]=u[10]+B[10],x[11]=u[11]+B[11],x[12]=u[12]+B[12],x[13]=u[13]+B[13],x[14]=u[14]+B[14],x[15]=u[15]+B[15],x}function h(u,B,M){let x=M??new e(16);return x[0]=u[0]*B,x[1]=u[1]*B,x[2]=u[2]*B,x[3]=u[3]*B,x[4]=u[4]*B,x[5]=u[5]*B,x[6]=u[6]*B,x[7]=u[7]*B,x[8]=u[8]*B,x[9]=u[9]*B,x[10]=u[10]*B,x[11]=u[11]*B,x[12]=u[12]*B,x[13]=u[13]*B,x[14]=u[14]*B,x[15]=u[15]*B,x}let v=h;function d(u,B){let M=B??new e(16);return M[0]=u[0],M[1]=u[1],M[2]=u[2],M[3]=u[3],M[4]=u[4],M[5]=u[5],M[6]=u[6],M[7]=u[7],M[8]=u[8],M[9]=u[9],M[10]=u[10],M[11]=u[11],M[12]=u[12],M[13]=u[13],M[14]=u[14],M[15]=u[15],M}let D=d;function m(u,B){return Math.abs(u[0]-B[0])<_t&&Math.abs(u[1]-B[1])<_t&&Math.abs(u[2]-B[2])<_t&&Math.abs(u[3]-B[3])<_t&&Math.abs(u[4]-B[4])<_t&&Math.abs(u[5]-B[5])<_t&&Math.abs(u[6]-B[6])<_t&&Math.abs(u[7]-B[7])<_t&&Math.abs(u[8]-B[8])<_t&&Math.abs(u[9]-B[9])<_t&&Math.abs(u[10]-B[10])<_t&&Math.abs(u[11]-B[11])<_t&&Math.abs(u[12]-B[12])<_t&&Math.abs(u[13]-B[13])<_t&&Math.abs(u[14]-B[14])<_t&&Math.abs(u[15]-B[15])<_t}function C(u,B){return u[0]===B[0]&&u[1]===B[1]&&u[2]===B[2]&&u[3]===B[3]&&u[4]===B[4]&&u[5]===B[5]&&u[6]===B[6]&&u[7]===B[7]&&u[8]===B[8]&&u[9]===B[9]&&u[10]===B[10]&&u[11]===B[11]&&u[12]===B[12]&&u[13]===B[13]&&u[14]===B[14]&&u[15]===B[15]}function R(u){let B=u??new e(16);return B[0]=1,B[1]=0,B[2]=0,B[3]=0,B[4]=0,B[5]=1,B[6]=0,B[7]=0,B[8]=0,B[9]=0,B[10]=1,B[11]=0,B[12]=0,B[13]=0,B[14]=0,B[15]=1,B}function N(u,B){let M=B??new e(16);if(M===u){let dt;return dt=u[1],u[1]=u[4],u[4]=dt,dt=u[2],u[2]=u[8],u[8]=dt,dt=u[3],u[3]=u[12],u[12]=dt,dt=u[6],u[6]=u[9],u[9]=dt,dt=u[7],u[7]=u[13],u[13]=dt,dt=u[11],u[11]=u[14],u[14]=dt,M}let x=u[0],g=u[1],S=u[2],L=u[3],z=u[4],H=u[5],J=u[6],tt=u[7],ct=u[8],nt=u[9],it=u[10],pt=u[11],ht=u[12],lt=u[13],gt=u[14],wt=u[15];return M[0]=x,M[1]=z,M[2]=ct,M[3]=ht,M[4]=g,M[5]=H,M[6]=nt,M[7]=lt,M[8]=S,M[9]=J,M[10]=it,M[11]=gt,M[12]=L,M[13]=tt,M[14]=pt,M[15]=wt,M}function V(u,B){let M=B??new e(16),x=u[0],g=u[1],S=u[2],L=u[3],z=u[4],H=u[5],J=u[6],tt=u[7],ct=u[8],nt=u[9],it=u[10],pt=u[11],ht=u[12],lt=u[13],gt=u[14],wt=u[15],dt=it*wt,mt=gt*pt,yt=J*wt,bt=gt*tt,Zt=J*pt,Bt=it*tt,Pt=S*wt,$t=gt*L,Dt=S*pt,Ft=it*L,Wt=S*tt,At=J*L,Ut=ct*lt,Kt=ht*nt,zt=z*lt,It=ht*H,jt=z*nt,Gt=ct*H,Rt=x*lt,Te=ht*g,Ot=x*nt,qt=ct*g,Be=x*H,Nt=z*g,Ct=dt*H+bt*nt+Zt*lt-(mt*H+yt*nt+Bt*lt),qe=mt*g+Pt*nt+Ft*lt-(dt*g+$t*nt+Dt*lt),Ne=yt*g+$t*H+Wt*lt-(bt*g+Pt*H+At*lt),Ve=Bt*g+Dt*H+At*nt-(Zt*g+Ft*H+Wt*nt),Ht=1/(x*Ct+z*qe+ct*Ne+ht*Ve);return M[0]=Ht*Ct,M[1]=Ht*qe,M[2]=Ht*Ne,M[3]=Ht*Ve,M[4]=Ht*(mt*z+yt*ct+Bt*ht-(dt*z+bt*ct+Zt*ht)),M[5]=Ht*(dt*x+$t*ct+Dt*ht-(mt*x+Pt*ct+Ft*ht)),M[6]=Ht*(bt*x+Pt*z+At*ht-(yt*x+$t*z+Wt*ht)),M[7]=Ht*(Zt*x+Ft*z+Wt*ct-(Bt*x+Dt*z+At*ct)),M[8]=Ht*(Ut*tt+It*pt+jt*wt-(Kt*tt+zt*pt+Gt*wt)),M[9]=Ht*(Kt*L+Rt*pt+qt*wt-(Ut*L+Te*pt+Ot*wt)),M[10]=Ht*(zt*L+Te*tt+Be*wt-(It*L+Rt*tt+Nt*wt)),M[11]=Ht*(Gt*L+Ot*tt+Nt*pt-(jt*L+qt*tt+Be*pt)),M[12]=Ht*(zt*it+Gt*gt+Kt*J-(jt*gt+Ut*J+It*it)),M[13]=Ht*(Ot*gt+Ut*S+Te*it-(Rt*it+qt*gt+Kt*S)),M[14]=Ht*(Rt*J+Nt*gt+It*S-(Be*gt+zt*S+Te*J)),M[15]=Ht*(Be*it+jt*S+qt*J-(Ot*J+Nt*it+Gt*S)),M}function Y(u){let B=u[0],M=u[1],x=u[2],g=u[3],S=u[4],L=u[5],z=u[6],H=u[7],J=u[8],tt=u[9],ct=u[10],nt=u[11],it=u[12],pt=u[13],ht=u[14],lt=u[15],gt=ct*lt,wt=ht*nt,dt=z*lt,mt=ht*H,yt=z*nt,bt=ct*H,Zt=x*lt,Bt=ht*g,Pt=x*nt,$t=ct*g,Dt=x*H,Ft=z*g,Wt=gt*L+mt*tt+yt*pt-(wt*L+dt*tt+bt*pt),At=wt*M+Zt*tt+$t*pt-(gt*M+Bt*tt+Pt*pt),Ut=dt*M+Bt*L+Dt*pt-(mt*M+Zt*L+Ft*pt),Kt=bt*M+Pt*L+Ft*tt-(yt*M+$t*L+Dt*tt);return B*Wt+S*At+J*Ut+it*Kt}let K=V;function Q(u,B,M){let x=M??new e(16),g=u[0],S=u[1],L=u[2],z=u[3],H=u[4],J=u[5],tt=u[6],ct=u[7],nt=u[8],it=u[9],pt=u[10],ht=u[11],lt=u[12],gt=u[13],wt=u[14],dt=u[15],mt=B[0],yt=B[1],bt=B[2],Zt=B[3],Bt=B[4],Pt=B[5],$t=B[6],Dt=B[7],Ft=B[8],Wt=B[9],At=B[10],Ut=B[11],Kt=B[12],zt=B[13],It=B[14],jt=B[15];return x[0]=g*mt+H*yt+nt*bt+lt*Zt,x[1]=S*mt+J*yt+it*bt+gt*Zt,x[2]=L*mt+tt*yt+pt*bt+wt*Zt,x[3]=z*mt+ct*yt+ht*bt+dt*Zt,x[4]=g*Bt+H*Pt+nt*$t+lt*Dt,x[5]=S*Bt+J*Pt+it*$t+gt*Dt,x[6]=L*Bt+tt*Pt+pt*$t+wt*Dt,x[7]=z*Bt+ct*Pt+ht*$t+dt*Dt,x[8]=g*Ft+H*Wt+nt*At+lt*Ut,x[9]=S*Ft+J*Wt+it*At+gt*Ut,x[10]=L*Ft+tt*Wt+pt*At+wt*Ut,x[11]=z*Ft+ct*Wt+ht*At+dt*Ut,x[12]=g*Kt+H*zt+nt*It+lt*jt,x[13]=S*Kt+J*zt+it*It+gt*jt,x[14]=L*Kt+tt*zt+pt*It+wt*jt,x[15]=z*Kt+ct*zt+ht*It+dt*jt,x}let j=Q;function Z(u,B,M){let x=M??R();return u!==x&&(x[0]=u[0],x[1]=u[1],x[2]=u[2],x[3]=u[3],x[4]=u[4],x[5]=u[5],x[6]=u[6],x[7]=u[7],x[8]=u[8],x[9]=u[9],x[10]=u[10],x[11]=u[11]),x[12]=B[0],x[13]=B[1],x[14]=B[2],x[15]=1,x}function W(u,B){let M=B??t.create();return M[0]=u[12],M[1]=u[13],M[2]=u[14],M}function st(u,B,M){let x=M??t.create(),g=B*4;return x[0]=u[g+0],x[1]=u[g+1],x[2]=u[g+2],x}function et(u,B,M,x){let g=x===u?x:d(u,x),S=M*4;return g[S+0]=B[0],g[S+1]=B[1],g[S+2]=B[2],g}function rt(u,B){let M=B??t.create(),x=u[0],g=u[1],S=u[2],L=u[4],z=u[5],H=u[6],J=u[8],tt=u[9],ct=u[10];return M[0]=Math.sqrt(x*x+g*g+S*S),M[1]=Math.sqrt(L*L+z*z+H*H),M[2]=Math.sqrt(J*J+tt*tt+ct*ct),M}function F(u,B,M,x,g){let S=g??new e(16),L=Math.tan(Math.PI*.5-.5*u);if(S[0]=L/B,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=L,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[11]=-1,S[12]=0,S[13]=0,S[15]=0,Number.isFinite(x)){let z=1/(M-x);S[10]=x*z,S[14]=x*M*z}else S[10]=-1,S[14]=-M;return S}function s(u,B,M,x=1/0,g){let S=g??new e(16),L=1/Math.tan(u*.5);if(S[0]=L/B,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=L,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[11]=-1,S[12]=0,S[13]=0,S[15]=0,x===1/0)S[10]=0,S[14]=M;else{let z=1/(x-M);S[10]=M*z,S[14]=x*M*z}return S}function p(u,B,M,x,g,S,L){let z=L??new e(16);return z[0]=2/(B-u),z[1]=0,z[2]=0,z[3]=0,z[4]=0,z[5]=2/(x-M),z[6]=0,z[7]=0,z[8]=0,z[9]=0,z[10]=1/(g-S),z[11]=0,z[12]=(B+u)/(u-B),z[13]=(x+M)/(M-x),z[14]=g/(g-S),z[15]=1,z}function _(u,B,M,x,g,S,L){let z=L??new e(16),H=B-u,J=x-M,tt=g-S;return z[0]=2*g/H,z[1]=0,z[2]=0,z[3]=0,z[4]=0,z[5]=2*g/J,z[6]=0,z[7]=0,z[8]=(u+B)/H,z[9]=(x+M)/J,z[10]=S/tt,z[11]=-1,z[12]=0,z[13]=0,z[14]=g*S/tt,z[15]=0,z}function y(u,B,M,x,g,S=1/0,L){let z=L??new e(16),H=B-u,J=x-M;if(z[0]=2*g/H,z[1]=0,z[2]=0,z[3]=0,z[4]=0,z[5]=2*g/J,z[6]=0,z[7]=0,z[8]=(u+B)/H,z[9]=(x+M)/J,z[11]=-1,z[12]=0,z[13]=0,z[15]=0,S===1/0)z[10]=0,z[14]=g;else{let tt=1/(S-g);z[10]=g*tt,z[14]=S*g*tt}return z}let T=t.create(),E=t.create(),O=t.create();function P(u,B,M,x){let g=x??new e(16);return t.normalize(t.subtract(B,u,O),O),t.normalize(t.cross(M,O,T),T),t.normalize(t.cross(O,T,E),E),g[0]=T[0],g[1]=T[1],g[2]=T[2],g[3]=0,g[4]=E[0],g[5]=E[1],g[6]=E[2],g[7]=0,g[8]=O[0],g[9]=O[1],g[10]=O[2],g[11]=0,g[12]=u[0],g[13]=u[1],g[14]=u[2],g[15]=1,g}function l(u,B,M,x){let g=x??new e(16);return t.normalize(t.subtract(u,B,O),O),t.normalize(t.cross(M,O,T),T),t.normalize(t.cross(O,T,E),E),g[0]=T[0],g[1]=T[1],g[2]=T[2],g[3]=0,g[4]=E[0],g[5]=E[1],g[6]=E[2],g[7]=0,g[8]=O[0],g[9]=O[1],g[10]=O[2],g[11]=0,g[12]=u[0],g[13]=u[1],g[14]=u[2],g[15]=1,g}function U(u,B,M,x){let g=x??new e(16);return t.normalize(t.subtract(u,B,O),O),t.normalize(t.cross(M,O,T),T),t.normalize(t.cross(O,T,E),E),g[0]=T[0],g[1]=E[0],g[2]=O[0],g[3]=0,g[4]=T[1],g[5]=E[1],g[6]=O[1],g[7]=0,g[8]=T[2],g[9]=E[2],g[10]=O[2],g[11]=0,g[12]=-(T[0]*u[0]+T[1]*u[1]+T[2]*u[2]),g[13]=-(E[0]*u[0]+E[1]*u[1]+E[2]*u[2]),g[14]=-(O[0]*u[0]+O[1]*u[1]+O[2]*u[2]),g[15]=1,g}function ot(u,B){let M=B??new e(16);return M[0]=1,M[1]=0,M[2]=0,M[3]=0,M[4]=0,M[5]=1,M[6]=0,M[7]=0,M[8]=0,M[9]=0,M[10]=1,M[11]=0,M[12]=u[0],M[13]=u[1],M[14]=u[2],M[15]=1,M}function at(u,B,M){let x=M??new e(16),g=B[0],S=B[1],L=B[2],z=u[0],H=u[1],J=u[2],tt=u[3],ct=u[4],nt=u[5],it=u[6],pt=u[7],ht=u[8],lt=u[9],gt=u[10],wt=u[11],dt=u[12],mt=u[13],yt=u[14],bt=u[15];return u!==x&&(x[0]=z,x[1]=H,x[2]=J,x[3]=tt,x[4]=ct,x[5]=nt,x[6]=it,x[7]=pt,x[8]=ht,x[9]=lt,x[10]=gt,x[11]=wt),x[12]=z*g+ct*S+ht*L+dt,x[13]=H*g+nt*S+lt*L+mt,x[14]=J*g+it*S+gt*L+yt,x[15]=tt*g+pt*S+wt*L+bt,x}function ut(u,B){let M=B??new e(16),x=Math.cos(u),g=Math.sin(u);return M[0]=1,M[1]=0,M[2]=0,M[3]=0,M[4]=0,M[5]=x,M[6]=g,M[7]=0,M[8]=0,M[9]=-g,M[10]=x,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function ft(u,B,M){let x=M??new e(16),g=u[4],S=u[5],L=u[6],z=u[7],H=u[8],J=u[9],tt=u[10],ct=u[11],nt=Math.cos(B),it=Math.sin(B);return x[4]=nt*g+it*H,x[5]=nt*S+it*J,x[6]=nt*L+it*tt,x[7]=nt*z+it*ct,x[8]=nt*H-it*g,x[9]=nt*J-it*S,x[10]=nt*tt-it*L,x[11]=nt*ct-it*z,u!==x&&(x[0]=u[0],x[1]=u[1],x[2]=u[2],x[3]=u[3],x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}function Mt(u,B){let M=B??new e(16),x=Math.cos(u),g=Math.sin(u);return M[0]=x,M[1]=0,M[2]=-g,M[3]=0,M[4]=0,M[5]=1,M[6]=0,M[7]=0,M[8]=g,M[9]=0,M[10]=x,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function vt(u,B,M){let x=M??new e(16),g=u[0],S=u[1],L=u[2],z=u[3],H=u[8],J=u[9],tt=u[10],ct=u[11],nt=Math.cos(B),it=Math.sin(B);return x[0]=nt*g-it*H,x[1]=nt*S-it*J,x[2]=nt*L-it*tt,x[3]=nt*z-it*ct,x[8]=nt*H+it*g,x[9]=nt*J+it*S,x[10]=nt*tt+it*L,x[11]=nt*ct+it*z,u!==x&&(x[4]=u[4],x[5]=u[5],x[6]=u[6],x[7]=u[7],x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}function X(u,B){let M=B??new e(16),x=Math.cos(u),g=Math.sin(u);return M[0]=x,M[1]=g,M[2]=0,M[3]=0,M[4]=-g,M[5]=x,M[6]=0,M[7]=0,M[8]=0,M[9]=0,M[10]=1,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function $(u,B,M){let x=M??new e(16),g=u[0],S=u[1],L=u[2],z=u[3],H=u[4],J=u[5],tt=u[6],ct=u[7],nt=Math.cos(B),it=Math.sin(B);return x[0]=nt*g+it*H,x[1]=nt*S+it*J,x[2]=nt*L+it*tt,x[3]=nt*z+it*ct,x[4]=nt*H-it*g,x[5]=nt*J-it*S,x[6]=nt*tt-it*L,x[7]=nt*ct-it*z,u!==x&&(x[8]=u[8],x[9]=u[9],x[10]=u[10],x[11]=u[11],x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}function A(u,B,M){let x=M??new e(16),g=u[0],S=u[1],L=u[2],z=Math.sqrt(g*g+S*S+L*L);g/=z,S/=z,L/=z;let H=g*g,J=S*S,tt=L*L,ct=Math.cos(B),nt=Math.sin(B),it=1-ct;return x[0]=H+(1-H)*ct,x[1]=g*S*it+L*nt,x[2]=g*L*it-S*nt,x[3]=0,x[4]=g*S*it-L*nt,x[5]=J+(1-J)*ct,x[6]=S*L*it+g*nt,x[7]=0,x[8]=g*L*it+S*nt,x[9]=S*L*it-g*nt,x[10]=tt+(1-tt)*ct,x[11]=0,x[12]=0,x[13]=0,x[14]=0,x[15]=1,x}let c=A;function b(u,B,M,x){let g=x??new e(16),S=B[0],L=B[1],z=B[2],H=Math.sqrt(S*S+L*L+z*z);S/=H,L/=H,z/=H;let J=S*S,tt=L*L,ct=z*z,nt=Math.cos(M),it=Math.sin(M),pt=1-nt,ht=J+(1-J)*nt,lt=S*L*pt+z*it,gt=S*z*pt-L*it,wt=S*L*pt-z*it,dt=tt+(1-tt)*nt,mt=L*z*pt+S*it,yt=S*z*pt+L*it,bt=L*z*pt-S*it,Zt=ct+(1-ct)*nt,Bt=u[0],Pt=u[1],$t=u[2],Dt=u[3],Ft=u[4],Wt=u[5],At=u[6],Ut=u[7],Kt=u[8],zt=u[9],It=u[10],jt=u[11];return g[0]=ht*Bt+lt*Ft+gt*Kt,g[1]=ht*Pt+lt*Wt+gt*zt,g[2]=ht*$t+lt*At+gt*It,g[3]=ht*Dt+lt*Ut+gt*jt,g[4]=wt*Bt+dt*Ft+mt*Kt,g[5]=wt*Pt+dt*Wt+mt*zt,g[6]=wt*$t+dt*At+mt*It,g[7]=wt*Dt+dt*Ut+mt*jt,g[8]=yt*Bt+bt*Ft+Zt*Kt,g[9]=yt*Pt+bt*Wt+Zt*zt,g[10]=yt*$t+bt*At+Zt*It,g[11]=yt*Dt+bt*Ut+Zt*jt,u!==g&&(g[12]=u[12],g[13]=u[13],g[14]=u[14],g[15]=u[15]),g}let w=b;function I(u,B){let M=B??new e(16);return M[0]=u[0],M[1]=0,M[2]=0,M[3]=0,M[4]=0,M[5]=u[1],M[6]=0,M[7]=0,M[8]=0,M[9]=0,M[10]=u[2],M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function G(u,B,M){let x=M??new e(16),g=B[0],S=B[1],L=B[2];return x[0]=g*u[0],x[1]=g*u[1],x[2]=g*u[2],x[3]=g*u[3],x[4]=S*u[4],x[5]=S*u[5],x[6]=S*u[6],x[7]=S*u[7],x[8]=L*u[8],x[9]=L*u[9],x[10]=L*u[10],x[11]=L*u[11],u!==x&&(x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}function q(u,B){let M=B??new e(16);return M[0]=u,M[1]=0,M[2]=0,M[3]=0,M[4]=0,M[5]=u,M[6]=0,M[7]=0,M[8]=0,M[9]=0,M[10]=u,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function k(u,B,M){let x=M??new e(16);return x[0]=B*u[0],x[1]=B*u[1],x[2]=B*u[2],x[3]=B*u[3],x[4]=B*u[4],x[5]=B*u[5],x[6]=B*u[6],x[7]=B*u[7],x[8]=B*u[8],x[9]=B*u[9],x[10]=B*u[10],x[11]=B*u[11],u!==x&&(x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}return{add:f,aim:P,axisRotate:b,axisRotation:A,cameraAim:l,clone:D,copy:d,create:n,determinant:Y,equals:C,equalsApproximately:m,fromMat3:i,fromQuat:o,frustum:_,frustumReverseZ:y,getAxis:st,getScaling:rt,getTranslation:W,identity:R,inverse:V,invert:K,lookAt:U,mul:j,mulScalar:v,multiply:Q,multiplyScalar:h,negate:a,ortho:p,perspective:F,perspectiveReverseZ:s,rotate:w,rotateX:ft,rotateY:vt,rotateZ:$,rotation:c,rotationX:ut,rotationY:Mt,rotationZ:X,scale:G,scaling:I,set:r,setAxis:et,setTranslation:Z,translate:at,translation:ot,transpose:N,uniformScale:k,uniformScaling:q}}var Bi=new Map;function su(e){let t=Bi.get(e);return t||(t=au(e),Bi.set(e,t)),t}function uu(e){let t=pr(e);function n(X,$,A,c){let b=new e(4);return X!==void 0&&(b[0]=X,$!==void 0&&(b[1]=$,A!==void 0&&(b[2]=A,c!==void 0&&(b[3]=c)))),b}let r=n;function i(X,$,A,c,b){let w=b??new e(4);return w[0]=X,w[1]=$,w[2]=A,w[3]=c,w}function o(X,$,A){let c=A??new e(4),b=$*.5,w=Math.sin(b);return c[0]=w*X[0],c[1]=w*X[1],c[2]=w*X[2],c[3]=Math.cos(b),c}function a(X,$){let A=$??t.create(3),c=Math.acos(X[3])*2,b=Math.sin(c*.5);return b>_t?(A[0]=X[0]/b,A[1]=X[1]/b,A[2]=X[2]/b):(A[0]=1,A[1]=0,A[2]=0),{angle:c,axis:A}}function f(X,$){let A=F(X,$);return Math.acos(2*A*A-1)}function h(X,$,A){let c=A??new e(4),b=X[0],w=X[1],I=X[2],G=X[3],q=$[0],k=$[1],u=$[2],B=$[3];return c[0]=b*B+G*q+w*u-I*k,c[1]=w*B+G*k+I*q-b*u,c[2]=I*B+G*u+b*k-w*q,c[3]=G*B-b*q-w*k-I*u,c}let v=h;function d(X,$,A){let c=A??new e(4),b=$*.5,w=X[0],I=X[1],G=X[2],q=X[3],k=Math.sin(b),u=Math.cos(b);return c[0]=w*u+q*k,c[1]=I*u+G*k,c[2]=G*u-I*k,c[3]=q*u-w*k,c}function D(X,$,A){let c=A??new e(4),b=$*.5,w=X[0],I=X[1],G=X[2],q=X[3],k=Math.sin(b),u=Math.cos(b);return c[0]=w*u-G*k,c[1]=I*u+q*k,c[2]=G*u+w*k,c[3]=q*u-I*k,c}function m(X,$,A){let c=A??new e(4),b=$*.5,w=X[0],I=X[1],G=X[2],q=X[3],k=Math.sin(b),u=Math.cos(b);return c[0]=w*u+I*k,c[1]=I*u-w*k,c[2]=G*u+q*k,c[3]=q*u-G*k,c}function C(X,$,A,c){let b=c??new e(4),w=X[0],I=X[1],G=X[2],q=X[3],k=$[0],u=$[1],B=$[2],M=$[3],x=w*k+I*u+G*B+q*M;x<0&&(x=-x,k=-k,u=-u,B=-B,M=-M);let g,S;if(1-x>_t){let L=Math.acos(x),z=Math.sin(L);g=Math.sin((1-A)*L)/z,S=Math.sin(A*L)/z}else g=1-A,S=A;return b[0]=g*w+S*k,b[1]=g*I+S*u,b[2]=g*G+S*B,b[3]=g*q+S*M,b}function R(X,$){let A=$??new e(4),c=X[0],b=X[1],w=X[2],I=X[3],G=c*c+b*b+w*w+I*I,q=G?1/G:0;return A[0]=-c*q,A[1]=-b*q,A[2]=-w*q,A[3]=I*q,A}function N(X,$){let A=$??new e(4);return A[0]=-X[0],A[1]=-X[1],A[2]=-X[2],A[3]=X[3],A}function V(X,$){let A=$??new e(4),c=X[0]+X[5]+X[10];if(c>0){let b=Math.sqrt(c+1);A[3]=.5*b;let w=.5/b;A[0]=(X[6]-X[9])*w,A[1]=(X[8]-X[2])*w,A[2]=(X[1]-X[4])*w}else{let b=0;X[5]>X[0]&&(b=1),X[10]>X[b*4+b]&&(b=2);let w=(b+1)%3,I=(b+2)%3,G=Math.sqrt(X[b*4+b]-X[w*4+w]-X[I*4+I]+1);A[b]=.5*G;let q=.5/G;A[3]=(X[w*4+I]-X[I*4+w])*q,A[w]=(X[w*4+b]+X[b*4+w])*q,A[I]=(X[I*4+b]+X[b*4+I])*q}return A}function Y(X,$,A,c,b){let w=b??new e(4),I=X*.5,G=$*.5,q=A*.5,k=Math.sin(I),u=Math.cos(I),B=Math.sin(G),M=Math.cos(G),x=Math.sin(q),g=Math.cos(q);switch(c){case"xyz":w[0]=k*M*g+u*B*x,w[1]=u*B*g-k*M*x,w[2]=u*M*x+k*B*g,w[3]=u*M*g-k*B*x;break;case"xzy":w[0]=k*M*g-u*B*x,w[1]=u*B*g-k*M*x,w[2]=u*M*x+k*B*g,w[3]=u*M*g+k*B*x;break;case"yxz":w[0]=k*M*g+u*B*x,w[1]=u*B*g-k*M*x,w[2]=u*M*x-k*B*g,w[3]=u*M*g+k*B*x;break;case"yzx":w[0]=k*M*g+u*B*x,w[1]=u*B*g+k*M*x,w[2]=u*M*x-k*B*g,w[3]=u*M*g-k*B*x;break;case"zxy":w[0]=k*M*g-u*B*x,w[1]=u*B*g+k*M*x,w[2]=u*M*x+k*B*g,w[3]=u*M*g-k*B*x;break;case"zyx":w[0]=k*M*g-u*B*x,w[1]=u*B*g+k*M*x,w[2]=u*M*x-k*B*g,w[3]=u*M*g+k*B*x;break;default:throw new Error(`Unknown rotation order: ${c}`)}return w}function K(X,$){let A=$??new e(4);return A[0]=X[0],A[1]=X[1],A[2]=X[2],A[3]=X[3],A}let Q=K;function j(X,$,A){let c=A??new e(4);return c[0]=X[0]+$[0],c[1]=X[1]+$[1],c[2]=X[2]+$[2],c[3]=X[3]+$[3],c}function Z(X,$,A){let c=A??new e(4);return c[0]=X[0]-$[0],c[1]=X[1]-$[1],c[2]=X[2]-$[2],c[3]=X[3]-$[3],c}let W=Z;function st(X,$,A){let c=A??new e(4);return c[0]=X[0]*$,c[1]=X[1]*$,c[2]=X[2]*$,c[3]=X[3]*$,c}let et=st;function rt(X,$,A){let c=A??new e(4);return c[0]=X[0]/$,c[1]=X[1]/$,c[2]=X[2]/$,c[3]=X[3]/$,c}function F(X,$){return X[0]*$[0]+X[1]*$[1]+X[2]*$[2]+X[3]*$[3]}function s(X,$,A,c){let b=c??new e(4);return b[0]=X[0]+A*($[0]-X[0]),b[1]=X[1]+A*($[1]-X[1]),b[2]=X[2]+A*($[2]-X[2]),b[3]=X[3]+A*($[3]-X[3]),b}function p(X){let $=X[0],A=X[1],c=X[2],b=X[3];return Math.sqrt($*$+A*A+c*c+b*b)}let _=p;function y(X){let $=X[0],A=X[1],c=X[2],b=X[3];return $*$+A*A+c*c+b*b}let T=y;function E(X,$){let A=$??new e(4),c=X[0],b=X[1],w=X[2],I=X[3],G=Math.sqrt(c*c+b*b+w*w+I*I);return G>1e-5?(A[0]=c/G,A[1]=b/G,A[2]=w/G,A[3]=I/G):(A[0]=0,A[1]=0,A[2]=0,A[3]=1),A}function O(X,$){return Math.abs(X[0]-$[0])<_t&&Math.abs(X[1]-$[1])<_t&&Math.abs(X[2]-$[2])<_t&&Math.abs(X[3]-$[3])<_t}function P(X,$){return X[0]===$[0]&&X[1]===$[1]&&X[2]===$[2]&&X[3]===$[3]}function l(X){let $=X??new e(4);return $[0]=0,$[1]=0,$[2]=0,$[3]=1,$}let U=t.create(),ot=t.create(),at=t.create();function ut(X,$,A){let c=A??new e(4),b=t.dot(X,$);return b<-.999999?(t.cross(ot,X,U),t.len(U)<1e-6&&t.cross(at,X,U),t.normalize(U,U),o(U,Math.PI,c),c):b>.999999?(c[0]=0,c[1]=0,c[2]=0,c[3]=1,c):(t.cross(X,$,U),c[0]=U[0],c[1]=U[1],c[2]=U[2],c[3]=1+b,E(c,c))}let ft=new e(4),Mt=new e(4);function vt(X,$,A,c,b,w){let I=w??new e(4);return C(X,c,b,ft),C($,A,b,Mt),C(ft,Mt,2*b*(1-b),I),I}return{create:n,fromValues:r,set:i,fromAxisAngle:o,toAxisAngle:a,angle:f,multiply:h,mul:v,rotateX:d,rotateY:D,rotateZ:m,slerp:C,inverse:R,conjugate:N,fromMat:V,fromEuler:Y,copy:K,clone:Q,add:j,subtract:Z,sub:W,mulScalar:st,scale:et,divScalar:rt,dot:F,lerp:s,length:p,len:_,lengthSq:y,lenSq:T,normalize:E,equalsApproximately:O,equals:P,identity:l,rotationTo:ut,sqlerp:vt}}var Pi=new Map;function fu(e){let t=Pi.get(e);return t||(t=uu(e),Pi.set(e,t)),t}function cu(e){function t(A,c,b,w){let I=new e(4);return A!==void 0&&(I[0]=A,c!==void 0&&(I[1]=c,b!==void 0&&(I[2]=b,w!==void 0&&(I[3]=w)))),I}let n=t;function r(A,c,b,w,I){let G=I??new e(4);return G[0]=A,G[1]=c,G[2]=b,G[3]=w,G}function i(A,c){let b=c??new e(4);return b[0]=Math.ceil(A[0]),b[1]=Math.ceil(A[1]),b[2]=Math.ceil(A[2]),b[3]=Math.ceil(A[3]),b}function o(A,c){let b=c??new e(4);return b[0]=Math.floor(A[0]),b[1]=Math.floor(A[1]),b[2]=Math.floor(A[2]),b[3]=Math.floor(A[3]),b}function a(A,c){let b=c??new e(4);return b[0]=Math.round(A[0]),b[1]=Math.round(A[1]),b[2]=Math.round(A[2]),b[3]=Math.round(A[3]),b}function f(A,c=0,b=1,w){let I=w??new e(4);return I[0]=Math.min(b,Math.max(c,A[0])),I[1]=Math.min(b,Math.max(c,A[1])),I[2]=Math.min(b,Math.max(c,A[2])),I[3]=Math.min(b,Math.max(c,A[3])),I}function h(A,c,b){let w=b??new e(4);return w[0]=A[0]+c[0],w[1]=A[1]+c[1],w[2]=A[2]+c[2],w[3]=A[3]+c[3],w}function v(A,c,b,w){let I=w??new e(4);return I[0]=A[0]+c[0]*b,I[1]=A[1]+c[1]*b,I[2]=A[2]+c[2]*b,I[3]=A[3]+c[3]*b,I}function d(A,c,b){let w=b??new e(4);return w[0]=A[0]-c[0],w[1]=A[1]-c[1],w[2]=A[2]-c[2],w[3]=A[3]-c[3],w}let D=d;function m(A,c){return Math.abs(A[0]-c[0])<_t&&Math.abs(A[1]-c[1])<_t&&Math.abs(A[2]-c[2])<_t&&Math.abs(A[3]-c[3])<_t}function C(A,c){return A[0]===c[0]&&A[1]===c[1]&&A[2]===c[2]&&A[3]===c[3]}function R(A,c,b,w){let I=w??new e(4);return I[0]=A[0]+b*(c[0]-A[0]),I[1]=A[1]+b*(c[1]-A[1]),I[2]=A[2]+b*(c[2]-A[2]),I[3]=A[3]+b*(c[3]-A[3]),I}function N(A,c,b,w){let I=w??new e(4);return I[0]=A[0]+b[0]*(c[0]-A[0]),I[1]=A[1]+b[1]*(c[1]-A[1]),I[2]=A[2]+b[2]*(c[2]-A[2]),I[3]=A[3]+b[3]*(c[3]-A[3]),I}function V(A,c,b){let w=b??new e(4);return w[0]=Math.max(A[0],c[0]),w[1]=Math.max(A[1],c[1]),w[2]=Math.max(A[2],c[2]),w[3]=Math.max(A[3],c[3]),w}function Y(A,c,b){let w=b??new e(4);return w[0]=Math.min(A[0],c[0]),w[1]=Math.min(A[1],c[1]),w[2]=Math.min(A[2],c[2]),w[3]=Math.min(A[3],c[3]),w}function K(A,c,b){let w=b??new e(4);return w[0]=A[0]*c,w[1]=A[1]*c,w[2]=A[2]*c,w[3]=A[3]*c,w}let Q=K;function j(A,c,b){let w=b??new e(4);return w[0]=A[0]/c,w[1]=A[1]/c,w[2]=A[2]/c,w[3]=A[3]/c,w}function Z(A,c){let b=c??new e(4);return b[0]=1/A[0],b[1]=1/A[1],b[2]=1/A[2],b[3]=1/A[3],b}let W=Z;function st(A,c){return A[0]*c[0]+A[1]*c[1]+A[2]*c[2]+A[3]*c[3]}function et(A){let c=A[0],b=A[1],w=A[2],I=A[3];return Math.sqrt(c*c+b*b+w*w+I*I)}let rt=et;function F(A){let c=A[0],b=A[1],w=A[2],I=A[3];return c*c+b*b+w*w+I*I}let s=F;function p(A,c){let b=A[0]-c[0],w=A[1]-c[1],I=A[2]-c[2],G=A[3]-c[3];return Math.sqrt(b*b+w*w+I*I+G*G)}let _=p;function y(A,c){let b=A[0]-c[0],w=A[1]-c[1],I=A[2]-c[2],G=A[3]-c[3];return b*b+w*w+I*I+G*G}let T=y;function E(A,c){let b=c??new e(4),w=A[0],I=A[1],G=A[2],q=A[3],k=w*w+I*I+G*G+q*q,u=k>0?1/Math.sqrt(k):1;return b[0]=w*u,b[1]=I*u,b[2]=G*u,b[3]=q*u,b}function O(A,c){let b=c??new e(4);return b[0]=-A[0],b[1]=-A[1],b[2]=-A[2],b[3]=-A[3],b}function P(A,c){let b=c??new e(4);return b[0]=A[0],b[1]=A[1],b[2]=A[2],b[3]=A[3],b}let l=P;function U(A,c,b){let w=b??new e(4);return w[0]=A[0]*c[0],w[1]=A[1]*c[1],w[2]=A[2]*c[2],w[3]=A[3]*c[3],w}let ot=U;function at(A,c,b){let w=b??new e(4);return w[0]=A[0]/c[0],w[1]=A[1]/c[1],w[2]=A[2]/c[2],w[3]=A[3]/c[3],w}let ut=at;function ft(A){let c=A??new e(4);return c[0]=0,c[1]=0,c[2]=0,c[3]=0,c}function Mt(A,c,b){let w=b??new e(4),I=A[0],G=A[1],q=A[2],k=A[3];return w[0]=c[0]*I+c[4]*G+c[8]*q+c[12]*k,w[1]=c[1]*I+c[5]*G+c[9]*q+c[13]*k,w[2]=c[2]*I+c[6]*G+c[10]*q+c[14]*k,w[3]=c[3]*I+c[7]*G+c[11]*q+c[15]*k,w}function vt(A,c,b){let w=b??new e(4);return E(A,w),K(w,c,w)}function X(A,c,b){let w=b??new e(4);return et(A)>c?vt(A,c,w):P(A,w)}function $(A,c,b){let w=b??new e(4);return R(A,c,.5,w)}return{create:t,fromValues:n,set:r,ceil:i,floor:o,round:a,clamp:f,add:h,addScaled:v,subtract:d,sub:D,equalsApproximately:m,equals:C,lerp:R,lerpV:N,max:V,min:Y,mulScalar:K,scale:Q,divScalar:j,inverse:Z,invert:W,dot:st,length:et,len:rt,lengthSq:F,lenSq:s,distance:p,dist:_,distanceSq:y,distSq:T,normalize:E,negate:O,copy:P,clone:l,multiply:U,mul:ot,divide:at,div:ut,zero:ft,transformMat4:Mt,setLength:vt,truncate:X,midpoint:$}}var Di=new Map;function lu(e){let t=Di.get(e);return t||(t=cu(e),Di.set(e,t)),t}function vn(e,t,n,r,i,o){return{mat3:ou(e),mat4:su(t),quat:fu(n),vec2:Fi(r),vec3:pr(i),vec4:lu(o)}}var{mat3:ye,mat4:Tt,quat:z1,vec2:Lt,vec3:fe,vec4:me}=vn(Float32Array,Float32Array,Float32Array,Float32Array,Float32Array,Float32Array),{mat3:I1,mat4:E1,quat:L1,vec2:G1,vec3:R1,vec4:O1}=vn(Float64Array,Float64Array,Float64Array,Float64Array,Float64Array,Float64Array),{mat3:q1,mat4:N1,quat:V1,vec2:C1,vec3:m1,vec4:k1}=vn(eu,Array,Array,Array,Array,Array);var gr=class{device;format="r8unorm";downsizeFactor;multisample;textureSimple;textureMultisampled=null;renderPipeline;bindgroup;uniformsBuffer;trianglesBuffer;constructor(t){this.device=t.device,this.downsizeFactor=t.blurFactor,this.multisample=this.downsizeFactor>1?4:1,[this.textureSimple,this.textureMultisampled]=this.createTextures(t.width,t.height),this.trianglesBuffer=t.trianglesBuffer;let n=this.device.createShaderModule({label:"DisplacementTexture shader module",code:bi});this.renderPipeline=this.device.createRenderPipeline({label:"DisplacementTexture renderpipeline",layout:"auto",vertex:{module:n,entryPoint:"main_vertex",buffers:[{attributes:[{shaderLocation:0,offset:0,format:"float32x2"}],arrayStride:2*Float32Array.BYTES_PER_ELEMENT,stepMode:"vertex"}]},fragment:{module:n,entryPoint:"main_fragment",targets:[{format:this.format}]},primitive:{cullMode:"none",topology:"triangle-list"},multisample:{count:this.multisample}}),this.uniformsBuffer=this.device.createBuffer({label:"DisplacementTexture uniforms buffer",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.bindgroup=this.device.createBindGroup({label:"DisplacementTexture bindgroup",layout:this.renderPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.uniformsBuffer}}]})}update(t){let n=this.textureMultisampled??this.textureSimple,r={view:n.view,clearValue:[0,0,0,1],loadOp:"clear",storeOp:"store"};this.textureMultisampled&&(r.resolveTarget=this.textureSimple.view);let i=t.beginRenderPass({label:"DisplacementTexture render to texture renderpass",colorAttachments:[r]}),[o,a]=[n.texture.width,n.texture.height];i.setViewport(0,0,o,a,0,1),i.setScissorRect(0,0,o,a),i.setPipeline(this.renderPipeline),i.setBindGroup(0,this.bindgroup),i.setVertexBuffer(0,this.trianglesBuffer.bufferGpu),i.draw(3*this.trianglesBuffer.spriteCount),i.end()}resize(t,n){this.textureSimple.texture.destroy(),this.textureMultisampled?.texture.destroy(),[this.textureSimple,this.textureMultisampled]=this.createTextures(t,n)}setViewport(t){let n=[1,1,1],r=0,i=[1,1,0],o=Tt.identity();Tt.multiply(Tt.scaling(n),o,o),Tt.multiply(Tt.rotationZ(r),o,o),Tt.multiply(Tt.translation(i),o,o);let a=Tt.translation([-t.position[0],-t.position[1],0]),f=t.width/t.zoom,h=t.height/t.zoom,v=Tt.ortho(0,f,h,0,-10,10),d=Tt.identity();Tt.multiply(a,o,d),Tt.multiply(v,d,d),this.device.queue.writeBuffer(this.uniformsBuffer,0,d)}getView(){return this.textureSimple.view}destroy(){this.textureSimple.texture.destroy(),this.textureMultisampled?.texture.destroy(),this.uniformsBuffer.destroy()}createTextures(t,n){let r=this.device.createTexture({label:"DisplacementTexture texture",size:[Math.ceil(t/this.downsizeFactor),Math.ceil(n/this.downsizeFactor)],format:this.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT}),i={texture:r,view:r.createView({label:"DisplacementTexture texture view"})},o=null;if(this.multisample>1){let a=this.device.createTexture({label:"DisplacementTexture texture multisampled",size:[r.width,r.height],format:r.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT,sampleCount:this.multisample});o={texture:a,view:a.createView({label:"DisplacementTexture texture multisampled view"})}}return[i,o]}};function Pe(){return Math.ceil(Math.random()*(Number.MAX_SAFE_INTEGER-10))}var dr=class{device;floatsPerSprite=6;bufferGpu;bufferNeedsUpdate=!1;sprites=new Map;get spriteCount(){return this.sprites.size}constructor(t){this.device=t.device,this.bufferGpu=this.device.createBuffer({size:t.maxSpriteCount*this.floatsPerSprite*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST})}destroy(){this.bufferGpu.destroy}update(){if(this.bufferNeedsUpdate){let t=[];for(let r of this.sprites.values())t.push(...r);let n=new Float32Array(t);this.device.queue.writeBuffer(this.bufferGpu,0,n)}}addTriangle(t){let n=Pe();if(this.sprites.has(n))throw new Error(`Duplicate triangle "${n}".`);let r=this.buildTriangleData(t);return this.sprites.set(n,r),this.bufferNeedsUpdate=!0,n}removeTriangle(t){if(!this.sprites.has(t))throw new Error(`Unknown triangle "${t}".`);this.sprites.delete(t),this.bufferNeedsUpdate=!0}setTriangle(t,n){if(!this.sprites.has(t))throw new Error(`Unknown triangle "${t}".`);let r=this.buildTriangleData(n);this.sprites.set(t,r),this.bufferNeedsUpdate=!0}buildTriangleData(t){return[t[0][0],t[0][1],t[1][0],t[1][1],t[2][0],t[2][1]]}};var Ui={type:"cobalt:displacement",onInit:async function(e,t={}){return hu(e,t)},onRun:function(e,t,n){vu(e,t,n)},onDestroy:function(e,t){pu(t)},onResize:function(e,t){t.data.displacementTexture.resize(e.viewport.width,e.viewport.height),t.data.displacementComposition.setColorTextureView(t.refs.color.data.view),t.data.displacementComposition.setNoiseMapTextureView(t.refs.map.view),t.data.displacementComposition.setDisplacementTextureView(t.data.displacementTexture.getView())},onViewportPosition:function(e,t){t.data.displacementTexture.setViewport(e.viewport)},customFunctions:{addTriangle:function(e,t,n){return t.data.trianglesBuffer.addTriangle(n)},removeTriangle:function(e,t,n){t.data.trianglesBuffer.removeTriangle(n)},setPosition:function(e,t,n,r){t.data.trianglesBuffer.setTriangle(n,r)}}};async function hu(e,t){let{device:n}=e,r=new vr({device:n,initialParameters:{offsetX:t.options.offseyX??0,offsetY:t.options.offseyY??0,scale:t.options.scale??20}}),i=256,o=new dr({device:n,maxSpriteCount:i}),a=new gr({device:n,width:e.viewport.width,height:e.viewport.height,blurFactor:8,trianglesBuffer:o}),f=new hr({device:n,targetFormat:Vt(e),colorTextureView:t.refs.color.data.view,noiseMapTextureView:t.refs.map.view,displacementTextureView:a.getView(),displacementParametersBuffer:r});return{displacementParameters:r,displacementTexture:a,displacementComposition:f,trianglesBuffer:o}}function vu(e,t,n){if(t.data.trianglesBuffer.spriteCount===0)return;t.data.trianglesBuffer.update(),t.data.displacementTexture.update(n);let i=n.beginRenderPass({label:"displacement",colorAttachments:[{view:t.refs.out,clearValue:e.clearValue,loadOp:"load",storeOp:"store"}]});i.executeBundles([t.data.displacementComposition.getRenderBundle()]),i.end()}function pu(e){e.data.trianglesBuffer.destroy(),e.data.trianglesBuffer=null,e.data.displacementParameters.destroy(),e.data.displacementParameters=null,e.data.displacementTexture.destroy(),e.data.displacementTexture=null,e.data.displacementComposition.destroy(),e.data.displacementComposition=null}var pn="@binding(0)@group(0)var tileTexture:texture_2d<f32>;@binding(1)@group(0)var tileSampler:sampler;struct Fragment{@builtin(position)Position:vec4<f32>,@location(0)TexCoord:vec2<f32>};const positions=array<vec2<f32>,3>(vec2<f32>(-1.0,-3.0),vec2<f32>(3.0,1.0),vec2<f32>(-1.0,1.0));const uvs=array<vec2<f32>,3>(vec2<f32>(0.0,2.0),vec2<f32>(2.0,0.0),vec2<f32>(0.0,0.0));@vertex fn vs_main(@builtin(vertex_index)VertexIndex:u32)->Fragment{var output:Fragment;output.Position=vec4<f32>(positions[VertexIndex],0.0,1.0);output.TexCoord=vec2<f32>(uvs[VertexIndex]);return output;}@fragment fn fs_main(@location(0)TexCoord:vec2<f32>)->@location(0)vec4<f32>{var col=textureSample(tileTexture,tileSampler,TexCoord);return vec4<f32>(col.rgb,1.0);}";var zi={type:"cobalt:fbBlit",onInit:async function(e,t={}){return gu(e,t)},onRun:function(e,t,n){du(e,t,n)},onDestroy:function(e,t){},onResize:function(e,t){wu(e,t)},onViewportPosition:function(e,t){}};async function gu(e,t){let{device:n}=e,r=n.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{}}]}),i=n.createBindGroup({layout:r,entries:[{binding:0,resource:t.refs.in.data.view},{binding:1,resource:t.refs.in.data.sampler}]}),o=n.createPipelineLayout({bindGroupLayouts:[r]}),a=n.createRenderPipeline({label:"fb-blit",vertex:{module:n.createShaderModule({code:pn}),entryPoint:"vs_main",buffers:[]},fragment:{module:n.createShaderModule({code:pn}),entryPoint:"fs_main",targets:[{format:Vt(e),blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"zero",dstFactor:"one"}}}]},primitive:{topology:"triangle-list"},layout:o});return{bindGroupLayout:r,bindGroup:i,pipeline:a}}function du(e,t,n){let{device:r}=e,i=n.beginRenderPass({label:"fb-blit",colorAttachments:[{view:t.refs.out,clearValue:e.clearValue,loadOp:"load",storeOp:"store"}]});i.setPipeline(t.data.pipeline),i.setBindGroup(0,t.data.bindGroup),i.draw(3),i.end()}function wu(e,t){let{device:n}=e;t.data.bindGroup=n.createBindGroup({layout:t.data.bindGroupLayout,entries:[{binding:0,resource:t.refs.in.data.view},{binding:1,resource:t.refs.in.data.sampler}]})}var Ii={type:"cobalt:fbTexture",onInit:async function(e,t={}){return xu(e,t)},onRun:function(e,t,n){},onDestroy:function(e,t){Ei(t)},onResize:function(e,t){Mu(e,t)},onViewportPosition:function(e,t){}};async function xu(e,t){let{device:n}=e;t.options.format=t.options.format==="PREFERRED_TEXTURE_FORMAT"?Vt(e):t.options.format;let{format:r,label:i,mip_count:o,usage:a,viewportScale:f}=t.options;return ne(n,i,e.viewport.width*f,e.viewport.height*f,o,r,a,t.options.filter)}function Ei(e){e.data.texture.destroy()}function Mu(e,t){let{device:n}=e;Ei(t);let{width:r,height:i}=e.viewport,{options:o}=t,a=t.options.viewportScale;t.data=ne(n,o.label,r*a,i*a,o.mip_count,o.format,o.usage)}var ae=class e{static structs={definition:`
1
+ var ks=Object.create;var ln=Object.defineProperty;var Xs=Object.getOwnPropertyDescriptor;var Ys=Object.getOwnPropertyNames;var Zs=Object.getPrototypeOf,Hs=Object.prototype.hasOwnProperty;var xt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),hn=(e,t)=>{for(var n in t)ln(e,n,{get:t[n],enumerable:!0})},$s=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ys(t))!Hs.call(e,i)&&i!==n&&ln(e,i,{get:()=>t[i],enumerable:!(r=Xs(t,i))||r.enumerable});return e};var vi=(e,t,n)=>(n=e!=null?ks(Zs(e)):{},$s(t||!e||!e.__esModule?ln(n,"default",{value:e,enumerable:!0}):n,e));var je=xt((zl,Ri)=>{"use strict";function Du(e,t,n,r,i){for(var o=i+1;r<=i;){var a=r+i>>>1,f=e[a],h=n!==void 0?n(f,t):f-t;h>=0?(o=a,i=a-1):r=a+1}return o}function Fu(e,t,n,r,i){for(var o=i+1;r<=i;){var a=r+i>>>1,f=e[a],h=n!==void 0?n(f,t):f-t;h>0?(o=a,i=a-1):r=a+1}return o}function Au(e,t,n,r,i){for(var o=r-1;r<=i;){var a=r+i>>>1,f=e[a],h=n!==void 0?n(f,t):f-t;h<0?(o=a,r=a+1):i=a-1}return o}function Uu(e,t,n,r,i){for(var o=r-1;r<=i;){var a=r+i>>>1,f=e[a],h=n!==void 0?n(f,t):f-t;h<=0?(o=a,r=a+1):i=a-1}return o}function zu(e,t,n,r,i){for(;r<=i;){var o=r+i>>>1,a=e[o],f=n!==void 0?n(a,t):a-t;if(f===0)return o;f<=0?r=o+1:i=o-1}return-1}function Je(e,t,n,r,i,o){return typeof n=="function"?o(e,t,n,r===void 0?0:r|0,i===void 0?e.length-1:i|0):o(e,t,void 0,n===void 0?0:n|0,r===void 0?e.length-1:r|0)}Ri.exports={ge:function(e,t,n,r,i){return Je(e,t,n,r,i,Du)},gt:function(e,t,n,r,i){return Je(e,t,n,r,i,Fu)},lt:function(e,t,n,r,i){return Je(e,t,n,r,i,Au)},le:function(e,t,n,r,i){return Je(e,t,n,r,i,Uu)},eq:function(e,t,n,r,i){return Je(e,t,n,r,i,zu)}}});var _r=xt((Il,qi)=>{"use strict";qi.exports=Iu;var Oi=+(Math.pow(2,27)+1);function Iu(e,t,n){var r=e*t,i=Oi*e,o=i-e,a=i-o,f=e-a,h=Oi*t,v=h-t,d=h-v,D=t-d,m=r-a*d,C=m-f*d,R=C-a*D,N=f*D-R;return n?(n[0]=N,n[1]=r,n):[N,r]}});var dn=xt((El,Ni)=>{"use strict";Ni.exports=Lu;function Eu(e,t){var n=e+t,r=n-e,i=n-r,o=t-r,a=e-i,f=a+o;return f?[f,n]:[n]}function Lu(e,t){var n=e.length|0,r=t.length|0;if(n===1&&r===1)return Eu(e[0],t[0]);var i=n+r,o=new Array(i),a=0,f=0,h=0,v=Math.abs,d=e[f],D=v(d),m=t[h],C=v(m),R,N;D<C?(N=d,f+=1,f<n&&(d=e[f],D=v(d))):(N=m,h+=1,h<r&&(m=t[h],C=v(m))),f<n&&D<C||h>=r?(R=d,f+=1,f<n&&(d=e[f],D=v(d))):(R=m,h+=1,h<r&&(m=t[h],C=v(m)));for(var V=R+N,Y=V-R,K=N-Y,Q=K,j=V,Z,W,st,et,rt;f<n&&h<r;)D<C?(R=d,f+=1,f<n&&(d=e[f],D=v(d))):(R=m,h+=1,h<r&&(m=t[h],C=v(m))),N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z;for(;f<n;)R=d,N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z,f+=1,f<n&&(d=e[f]);for(;h<r;)R=m,N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z,h+=1,h<r&&(m=t[h]);return Q&&(o[a++]=Q),j&&(o[a++]=j),a||(o[a++]=0),o.length=a,o}});var Ci=xt((Ll,Vi)=>{"use strict";Vi.exports=Gu;function Gu(e,t,n){var r=e+t,i=r-e,o=r-i,a=t-i,f=e-o;return n?(n[0]=f+a,n[1]=r,n):[f+a,r]}});var xn=xt((Gl,mi)=>{"use strict";var wn=_r(),Ru=Ci();mi.exports=Ou;function Ou(e,t){var n=e.length;if(n===1){var r=wn(e[0],t);return r[0]?r:[r[1]]}var i=new Array(2*n),o=[.1,.1],a=[.1,.1],f=0;wn(e[0],t,o),o[0]&&(i[f++]=o[0]);for(var h=1;h<n;++h){wn(e[h],t,a);var v=o[1];Ru(v,a[0],o),o[0]&&(i[f++]=o[0]);var d=a[1],D=o[1],m=d+D,C=m-d,R=D-C;o[1]=m,R&&(i[f++]=R)}return o[1]&&(i[f++]=o[1]),f===0&&(i[f++]=0),i.length=f,i}});var Mn=xt((Rl,ki)=>{"use strict";ki.exports=Nu;function qu(e,t){var n=e+t,r=n-e,i=n-r,o=t-r,a=e-i,f=a+o;return f?[f,n]:[n]}function Nu(e,t){var n=e.length|0,r=t.length|0;if(n===1&&r===1)return qu(e[0],-t[0]);var i=n+r,o=new Array(i),a=0,f=0,h=0,v=Math.abs,d=e[f],D=v(d),m=-t[h],C=v(m),R,N;D<C?(N=d,f+=1,f<n&&(d=e[f],D=v(d))):(N=m,h+=1,h<r&&(m=-t[h],C=v(m))),f<n&&D<C||h>=r?(R=d,f+=1,f<n&&(d=e[f],D=v(d))):(R=m,h+=1,h<r&&(m=-t[h],C=v(m)));for(var V=R+N,Y=V-R,K=N-Y,Q=K,j=V,Z,W,st,et,rt;f<n&&h<r;)D<C?(R=d,f+=1,f<n&&(d=e[f],D=v(d))):(R=m,h+=1,h<r&&(m=-t[h],C=v(m))),N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z;for(;f<n;)R=d,N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z,f+=1,f<n&&(d=e[f]);for(;h<r;)R=m,N=Q,V=R+N,Y=V-R,K=N-Y,K&&(o[a++]=K),Z=j+V,W=Z-j,st=Z-W,et=V-W,rt=j-st,Q=rt+et,j=Z,h+=1,h<r&&(m=-t[h]);return Q&&(o[a++]=Q),j&&(o[a++]=j),a||(o[a++]=0),o.length=a,o}});var bn=xt((Ol,yn)=>{"use strict";var Vu=_r(),Cu=dn(),mu=xn(),ku=Mn(),Xi=5,Sr=11102230246251565e-32,Xu=(3+16*Sr)*Sr,Yu=(7+56*Sr)*Sr;function Zu(e,t,n,r){return function(o,a,f){var h=e(e(t(a[1],f[0]),t(-f[1],a[0])),e(t(o[1],a[0]),t(-a[1],o[0]))),v=e(t(o[1],f[0]),t(-f[1],o[0])),d=r(h,v);return d[d.length-1]}}function Hu(e,t,n,r){return function(o,a,f,h){var v=e(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),a[2]),e(n(e(t(a[1],h[0]),t(-h[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),h[2]))),e(n(e(t(a[1],h[0]),t(-h[1],a[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),h[2])))),d=e(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),h[2]))),e(n(e(t(a[1],f[0]),t(-f[1],a[0])),o[2]),e(n(e(t(o[1],f[0]),t(-f[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),f[2])))),D=r(v,d);return D[D.length-1]}}function $u(e,t,n,r){return function(o,a,f,h,v){var d=e(e(e(n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),f[2]),e(n(e(t(f[1],v[0]),t(-v[1],f[0])),-h[2]),n(e(t(f[1],h[0]),t(-h[1],f[0])),v[2]))),a[3]),e(n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),a[2]),e(n(e(t(a[1],v[0]),t(-v[1],a[0])),-h[2]),n(e(t(a[1],h[0]),t(-h[1],a[0])),v[2]))),-f[3]),n(e(n(e(t(f[1],v[0]),t(-v[1],f[0])),a[2]),e(n(e(t(a[1],v[0]),t(-v[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),v[2]))),h[3]))),e(n(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),a[2]),e(n(e(t(a[1],h[0]),t(-h[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),h[2]))),-v[3]),e(n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),a[2]),e(n(e(t(a[1],v[0]),t(-v[1],a[0])),-h[2]),n(e(t(a[1],h[0]),t(-h[1],a[0])),v[2]))),o[3]),n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-h[2]),n(e(t(o[1],h[0]),t(-h[1],o[0])),v[2]))),-a[3])))),e(e(n(e(n(e(t(a[1],v[0]),t(-v[1],a[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),v[2]))),h[3]),e(n(e(n(e(t(a[1],h[0]),t(-h[1],a[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),h[2]))),-v[3]),n(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),a[2]),e(n(e(t(a[1],h[0]),t(-h[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),h[2]))),o[3]))),e(n(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),h[2]))),-a[3]),e(n(e(n(e(t(a[1],h[0]),t(-h[1],a[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),h[2]))),f[3]),n(e(n(e(t(a[1],f[0]),t(-f[1],a[0])),o[2]),e(n(e(t(o[1],f[0]),t(-f[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),f[2]))),-h[3]))))),D=e(e(e(n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),f[2]),e(n(e(t(f[1],v[0]),t(-v[1],f[0])),-h[2]),n(e(t(f[1],h[0]),t(-h[1],f[0])),v[2]))),o[3]),n(e(n(e(t(h[1],v[0]),t(-v[1],h[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-h[2]),n(e(t(o[1],h[0]),t(-h[1],o[0])),v[2]))),-f[3])),e(n(e(n(e(t(f[1],v[0]),t(-v[1],f[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),v[2]))),h[3]),n(e(n(e(t(f[1],h[0]),t(-h[1],f[0])),o[2]),e(n(e(t(o[1],h[0]),t(-h[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),h[2]))),-v[3]))),e(e(n(e(n(e(t(f[1],v[0]),t(-v[1],f[0])),a[2]),e(n(e(t(a[1],v[0]),t(-v[1],a[0])),-f[2]),n(e(t(a[1],f[0]),t(-f[1],a[0])),v[2]))),o[3]),n(e(n(e(t(f[1],v[0]),t(-v[1],f[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-f[2]),n(e(t(o[1],f[0]),t(-f[1],o[0])),v[2]))),-a[3])),e(n(e(n(e(t(a[1],v[0]),t(-v[1],a[0])),o[2]),e(n(e(t(o[1],v[0]),t(-v[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),v[2]))),f[3]),n(e(n(e(t(a[1],f[0]),t(-f[1],a[0])),o[2]),e(n(e(t(o[1],f[0]),t(-f[1],o[0])),-a[2]),n(e(t(o[1],a[0]),t(-a[1],o[0])),f[2]))),-v[3])))),m=r(d,D);return m[m.length-1]}}function Tr(e){var t=e===3?Zu:e===4?Hu:$u;return t(Cu,Vu,mu,ku)}var Wu=Tr(3),Ku=Tr(4),De=[function(){return 0},function(){return 0},function(t,n){return n[0]-t[0]},function(t,n,r){var i=(t[1]-r[1])*(n[0]-r[0]),o=(t[0]-r[0])*(n[1]-r[1]),a=i-o,f;if(i>0){if(o<=0)return a;f=i+o}else if(i<0){if(o>=0)return a;f=-(i+o)}else return a;var h=Xu*f;return a>=h||a<=-h?a:Wu(t,n,r)},function(t,n,r,i){var o=t[0]-i[0],a=n[0]-i[0],f=r[0]-i[0],h=t[1]-i[1],v=n[1]-i[1],d=r[1]-i[1],D=t[2]-i[2],m=n[2]-i[2],C=r[2]-i[2],R=a*d,N=f*v,V=f*h,Y=o*d,K=o*v,Q=a*h,j=D*(R-N)+m*(V-Y)+C*(K-Q),Z=(Math.abs(R)+Math.abs(N))*Math.abs(D)+(Math.abs(V)+Math.abs(Y))*Math.abs(m)+(Math.abs(K)+Math.abs(Q))*Math.abs(C),W=Yu*Z;return j>W||-j>W?j:Ku(t,n,r,i)}];function Qu(e){var t=De[e.length];return t||(t=De[e.length]=Tr(e.length)),t.apply(void 0,e)}function Ju(e,t,n,r,i,o,a){return function(h,v,d,D,m){switch(arguments.length){case 0:case 1:return 0;case 2:return r(h,v);case 3:return i(h,v,d);case 4:return o(h,v,d,D);case 5:return a(h,v,d,D,m)}for(var C=new Array(arguments.length),R=0;R<arguments.length;++R)C[R]=arguments[R];return e(C)}}function ju(){for(;De.length<=Xi;)De.push(Tr(De.length));yn.exports=Ju.apply(void 0,[Qu].concat(De));for(var e=0;e<=Xi;++e)yn.exports[e]=De[e]}ju()});var Ki=xt((ql,Wi)=>{"use strict";var Br=je(),be=bn()[3],Sn=0,Yi=1,_n=2;Wi.exports=i0;function Hi(e,t,n,r,i){this.a=e,this.b=t,this.idx=n,this.lowerIds=r,this.upperIds=i}function tr(e,t,n,r){this.a=e,this.b=t,this.type=n,this.idx=r}function t0(e,t){var n=e.a[0]-t.a[0]||e.a[1]-t.a[1]||e.type-t.type;return n||e.type!==Sn&&(n=be(e.a,e.b,t.b),n)?n:e.idx-t.idx}function Zi(e,t){return be(e.a,e.b,t)}function e0(e,t,n,r,i){for(var o=Br.lt(t,r,Zi),a=Br.gt(t,r,Zi),f=o;f<a;++f){for(var h=t[f],v=h.lowerIds,D=v.length;D>1&&be(n[v[D-2]],n[v[D-1]],r)>0;)e.push([v[D-1],v[D-2],i]),D-=1;v.length=D,v.push(i);for(var d=h.upperIds,D=d.length;D>1&&be(n[d[D-2]],n[d[D-1]],r)<0;)e.push([d[D-2],d[D-1],i]),D-=1;d.length=D,d.push(i)}}function $i(e,t){var n;return e.a[0]<t.a[0]?n=be(e.a,e.b,t.a):n=be(t.b,t.a,e.a),n||(t.b[0]<e.b[0]?n=be(e.a,e.b,t.b):n=be(t.b,t.a,e.b),n||e.idx-t.idx)}function r0(e,t,n){var r=Br.le(e,n,$i),i=e[r],o=i.upperIds,a=o[o.length-1];i.upperIds=[a],e.splice(r+1,0,new Hi(n.a,n.b,n.idx,[a],o))}function n0(e,t,n){var r=n.a;n.a=n.b,n.b=r;var i=Br.eq(e,n,$i),o=e[i],a=e[i-1];a.upperIds=o.upperIds,e.splice(i,1)}function i0(e,t){for(var n=e.length,r=t.length,i=[],o=0;o<n;++o)i.push(new tr(e[o],null,Sn,o));for(var o=0;o<r;++o){var a=t[o],f=e[a[0]],h=e[a[1]];f[0]<h[0]?i.push(new tr(f,h,_n,o),new tr(h,f,Yi,o)):f[0]>h[0]&&i.push(new tr(h,f,_n,o),new tr(f,h,Yi,o))}i.sort(t0);for(var v=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),d=[new Hi([v,1],[v,0],-1,[],[],[],[])],D=[],o=0,m=i.length;o<m;++o){var C=i[o],R=C.type;R===Sn?e0(D,d,e,C.a,C.idx):R===_n?r0(d,e,C):n0(d,e,C)}return D}});var ji=xt((Nl,Ji)=>{"use strict";var o0=je();Ji.exports=a0;function Qi(e,t){this.stars=e,this.edges=t}var Fe=Qi.prototype;function Tn(e,t,n){for(var r=1,i=e.length;r<i;r+=2)if(e[r-1]===t&&e[r]===n){e[r-1]=e[i-2],e[r]=e[i-1],e.length=i-2;return}}Fe.isConstraint=(function(){var e=[0,0];function t(n,r){return n[0]-r[0]||n[1]-r[1]}return function(n,r){return e[0]=Math.min(n,r),e[1]=Math.max(n,r),o0.eq(this.edges,e,t)>=0}})();Fe.removeTriangle=function(e,t,n){var r=this.stars;Tn(r[e],t,n),Tn(r[t],n,e),Tn(r[n],e,t)};Fe.addTriangle=function(e,t,n){var r=this.stars;r[e].push(t,n),r[t].push(n,e),r[n].push(e,t)};Fe.opposite=function(e,t){for(var n=this.stars[t],r=1,i=n.length;r<i;r+=2)if(n[r]===e)return n[r-1];return-1};Fe.flip=function(e,t){var n=this.opposite(e,t),r=this.opposite(t,e);this.removeTriangle(e,t,n),this.removeTriangle(t,e,r),this.addTriangle(e,r,n),this.addTriangle(t,n,r)};Fe.edges=function(){for(var e=this.stars,t=[],n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,a=i.length;o<a;o+=2)t.push([i[o],i[o+1]]);return t};Fe.cells=function(){for(var e=this.stars,t=[],n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,a=i.length;o<a;o+=2){var f=i[o],h=i[o+1];n<Math.min(f,h)&&t.push([n,f,h])}return t};function a0(e,t){for(var n=new Array(e),r=0;r<e;++r)n[r]=[];return new Qi(n,t)}});var ro=xt((Vl,Bn)=>{"use strict";var s0=_r(),u0=dn(),f0=Mn(),c0=xn(),to=6;function eo(e){var t=e===3?p0:e===4?g0:e===5?d0:w0;return t(u0,f0,s0,c0)}function l0(){return 0}function h0(){return 0}function v0(){return 0}function p0(e,t,n,r){function i(o,a,f){var h=n(o[0],o[0]),v=r(h,a[0]),d=r(h,f[0]),D=n(a[0],a[0]),m=r(D,o[0]),C=r(D,f[0]),R=n(f[0],f[0]),N=r(R,o[0]),V=r(R,a[0]),Y=e(t(V,C),t(m,v)),K=t(N,d),Q=t(Y,K);return Q[Q.length-1]}return i}function g0(e,t,n,r){function i(o,a,f,h){var v=e(n(o[0],o[0]),n(o[1],o[1])),d=r(v,a[0]),D=r(v,f[0]),m=r(v,h[0]),C=e(n(a[0],a[0]),n(a[1],a[1])),R=r(C,o[0]),N=r(C,f[0]),V=r(C,h[0]),Y=e(n(f[0],f[0]),n(f[1],f[1])),K=r(Y,o[0]),Q=r(Y,a[0]),j=r(Y,h[0]),Z=e(n(h[0],h[0]),n(h[1],h[1])),W=r(Z,o[0]),st=r(Z,a[0]),et=r(Z,f[0]),rt=e(e(r(t(et,j),a[1]),e(r(t(st,V),-f[1]),r(t(Q,N),h[1]))),e(r(t(st,V),o[1]),e(r(t(W,m),-a[1]),r(t(R,d),h[1])))),F=e(e(r(t(et,j),o[1]),e(r(t(W,m),-f[1]),r(t(K,D),h[1]))),e(r(t(Q,N),o[1]),e(r(t(K,D),-a[1]),r(t(R,d),f[1])))),s=t(rt,F);return s[s.length-1]}return i}function d0(e,t,n,r){function i(o,a,f,h,v){var d=e(n(o[0],o[0]),e(n(o[1],o[1]),n(o[2],o[2]))),D=r(d,a[0]),m=r(d,f[0]),C=r(d,h[0]),R=r(d,v[0]),N=e(n(a[0],a[0]),e(n(a[1],a[1]),n(a[2],a[2]))),V=r(N,o[0]),Y=r(N,f[0]),K=r(N,h[0]),Q=r(N,v[0]),j=e(n(f[0],f[0]),e(n(f[1],f[1]),n(f[2],f[2]))),Z=r(j,o[0]),W=r(j,a[0]),st=r(j,h[0]),et=r(j,v[0]),rt=e(n(h[0],h[0]),e(n(h[1],h[1]),n(h[2],h[2]))),F=r(rt,o[0]),s=r(rt,a[0]),p=r(rt,f[0]),_=r(rt,v[0]),y=e(n(v[0],v[0]),e(n(v[1],v[1]),n(v[2],v[2]))),T=r(y,o[0]),E=r(y,a[0]),O=r(y,f[0]),P=r(y,h[0]),l=e(e(e(r(e(r(t(P,_),f[1]),e(r(t(O,et),-h[1]),r(t(p,st),v[1]))),a[2]),e(r(e(r(t(P,_),a[1]),e(r(t(E,Q),-h[1]),r(t(s,K),v[1]))),-f[2]),r(e(r(t(O,et),a[1]),e(r(t(E,Q),-f[1]),r(t(W,Y),v[1]))),h[2]))),e(r(e(r(t(p,st),a[1]),e(r(t(s,K),-f[1]),r(t(W,Y),h[1]))),-v[2]),e(r(e(r(t(P,_),a[1]),e(r(t(E,Q),-h[1]),r(t(s,K),v[1]))),o[2]),r(e(r(t(P,_),o[1]),e(r(t(T,R),-h[1]),r(t(F,C),v[1]))),-a[2])))),e(e(r(e(r(t(E,Q),o[1]),e(r(t(T,R),-a[1]),r(t(V,D),v[1]))),h[2]),e(r(e(r(t(s,K),o[1]),e(r(t(F,C),-a[1]),r(t(V,D),h[1]))),-v[2]),r(e(r(t(p,st),a[1]),e(r(t(s,K),-f[1]),r(t(W,Y),h[1]))),o[2]))),e(r(e(r(t(p,st),o[1]),e(r(t(F,C),-f[1]),r(t(Z,m),h[1]))),-a[2]),e(r(e(r(t(s,K),o[1]),e(r(t(F,C),-a[1]),r(t(V,D),h[1]))),f[2]),r(e(r(t(W,Y),o[1]),e(r(t(Z,m),-a[1]),r(t(V,D),f[1]))),-h[2]))))),U=e(e(e(r(e(r(t(P,_),f[1]),e(r(t(O,et),-h[1]),r(t(p,st),v[1]))),o[2]),r(e(r(t(P,_),o[1]),e(r(t(T,R),-h[1]),r(t(F,C),v[1]))),-f[2])),e(r(e(r(t(O,et),o[1]),e(r(t(T,R),-f[1]),r(t(Z,m),v[1]))),h[2]),r(e(r(t(p,st),o[1]),e(r(t(F,C),-f[1]),r(t(Z,m),h[1]))),-v[2]))),e(e(r(e(r(t(O,et),a[1]),e(r(t(E,Q),-f[1]),r(t(W,Y),v[1]))),o[2]),r(e(r(t(O,et),o[1]),e(r(t(T,R),-f[1]),r(t(Z,m),v[1]))),-a[2])),e(r(e(r(t(E,Q),o[1]),e(r(t(T,R),-a[1]),r(t(V,D),v[1]))),f[2]),r(e(r(t(W,Y),o[1]),e(r(t(Z,m),-a[1]),r(t(V,D),f[1]))),-v[2])))),ot=t(l,U);return ot[ot.length-1]}return i}function w0(e,t,n,r){function i(o,a,f,h,v,d){var D=e(e(n(o[0],o[0]),n(o[1],o[1])),e(n(o[2],o[2]),n(o[3],o[3]))),m=r(D,a[0]),C=r(D,f[0]),R=r(D,h[0]),N=r(D,v[0]),V=r(D,d[0]),Y=e(e(n(a[0],a[0]),n(a[1],a[1])),e(n(a[2],a[2]),n(a[3],a[3]))),K=r(Y,o[0]),Q=r(Y,f[0]),j=r(Y,h[0]),Z=r(Y,v[0]),W=r(Y,d[0]),st=e(e(n(f[0],f[0]),n(f[1],f[1])),e(n(f[2],f[2]),n(f[3],f[3]))),et=r(st,o[0]),rt=r(st,a[0]),F=r(st,h[0]),s=r(st,v[0]),p=r(st,d[0]),_=e(e(n(h[0],h[0]),n(h[1],h[1])),e(n(h[2],h[2]),n(h[3],h[3]))),y=r(_,o[0]),T=r(_,a[0]),E=r(_,f[0]),O=r(_,v[0]),P=r(_,d[0]),l=e(e(n(v[0],v[0]),n(v[1],v[1])),e(n(v[2],v[2]),n(v[3],v[3]))),U=r(l,o[0]),ot=r(l,a[0]),at=r(l,f[0]),ut=r(l,h[0]),ft=r(l,d[0]),Mt=e(e(n(d[0],d[0]),n(d[1],d[1])),e(n(d[2],d[2]),n(d[3],d[3]))),vt=r(Mt,o[0]),X=r(Mt,a[0]),$=r(Mt,f[0]),A=r(Mt,h[0]),c=r(Mt,v[0]),b=e(e(e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),f[2]),r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),-h[2])),e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),v[2]),r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),-d[2]))),a[3]),e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),a[2]),r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),-h[2])),e(r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),v[2]),r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),-d[2]))),-f[3]),r(e(e(r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),a[2]),r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),-f[2])),e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),v[2]),r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),-d[2]))),h[3]))),e(e(r(e(e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),a[2]),r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),-f[2])),e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),h[2]),r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),-d[2]))),-v[3]),r(e(e(r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),a[2]),r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),-f[2])),e(r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),h[2]),r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),-v[2]))),d[3])),e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),a[2]),r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),-h[2])),e(r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),v[2]),r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),-d[2]))),o[3]),r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-h[2])),e(r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),v[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-d[2]))),-a[3])))),e(e(e(r(e(e(r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),v[2]),r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),-d[2]))),h[3]),r(e(e(r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),o[2]),r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),h[2]),r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),-d[2]))),-v[3])),e(r(e(e(r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),o[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-a[2])),e(r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),h[2]),r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),-v[2]))),d[3]),r(e(e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),a[2]),r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),-f[2])),e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),h[2]),r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),-d[2]))),o[3]))),e(e(r(e(e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),o[2]),r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),-f[2])),e(r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),h[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-d[2]))),-a[3]),r(e(e(r(e(r(t(A,P),a[1]),e(r(t(X,W),-h[1]),r(t(T,j),d[1]))),o[2]),r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),h[2]),r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),-d[2]))),f[3])),e(r(e(e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),o[2]),r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-d[2]))),-h[3]),r(e(e(r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),o[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-a[2])),e(r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-h[2]))),d[3]))))),w=e(e(e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),f[2]),r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),-h[2])),e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),v[2]),r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),-d[2]))),o[3]),e(r(e(e(r(e(r(t(c,ft),h[1]),e(r(t(A,P),-v[1]),r(t(ut,O),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-h[2])),e(r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),v[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-d[2]))),-f[3]),r(e(e(r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-f[2])),e(r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),v[2]),r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),-d[2]))),h[3]))),e(e(r(e(e(r(e(r(t(A,P),f[1]),e(r(t($,p),-h[1]),r(t(E,F),d[1]))),o[2]),r(e(r(t(A,P),o[1]),e(r(t(vt,V),-h[1]),r(t(y,R),d[1]))),-f[2])),e(r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),h[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-d[2]))),-v[3]),r(e(e(r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),o[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-f[2])),e(r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),h[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-v[2]))),d[3])),e(r(e(e(r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),a[2]),r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),-f[2])),e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),v[2]),r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),-d[2]))),o[3]),r(e(e(r(e(r(t(c,ft),f[1]),e(r(t($,p),-v[1]),r(t(at,s),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-f[2])),e(r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),v[2]),r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),-d[2]))),-a[3])))),e(e(e(r(e(e(r(e(r(t(c,ft),a[1]),e(r(t(X,W),-v[1]),r(t(ot,Z),d[1]))),o[2]),r(e(r(t(c,ft),o[1]),e(r(t(vt,V),-v[1]),r(t(U,N),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),v[2]),r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),-d[2]))),f[3]),r(e(e(r(e(r(t($,p),a[1]),e(r(t(X,W),-f[1]),r(t(rt,Q),d[1]))),o[2]),r(e(r(t($,p),o[1]),e(r(t(vt,V),-f[1]),r(t(et,C),d[1]))),-a[2])),e(r(e(r(t(X,W),o[1]),e(r(t(vt,V),-a[1]),r(t(K,m),d[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-d[2]))),-v[3])),e(r(e(e(r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),o[2]),r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),-a[2])),e(r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-v[2]))),d[3]),r(e(e(r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),a[2]),r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),-f[2])),e(r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),h[2]),r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),-v[2]))),o[3]))),e(e(r(e(e(r(e(r(t(ut,O),f[1]),e(r(t(at,s),-h[1]),r(t(E,F),v[1]))),o[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-f[2])),e(r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),h[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-v[2]))),-a[3]),r(e(e(r(e(r(t(ut,O),a[1]),e(r(t(ot,Z),-h[1]),r(t(T,j),v[1]))),o[2]),r(e(r(t(ut,O),o[1]),e(r(t(U,N),-h[1]),r(t(y,R),v[1]))),-a[2])),e(r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),h[2]),r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),-v[2]))),f[3])),e(r(e(e(r(e(r(t(at,s),a[1]),e(r(t(ot,Z),-f[1]),r(t(rt,Q),v[1]))),o[2]),r(e(r(t(at,s),o[1]),e(r(t(U,N),-f[1]),r(t(et,C),v[1]))),-a[2])),e(r(e(r(t(ot,Z),o[1]),e(r(t(U,N),-a[1]),r(t(K,m),v[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-v[2]))),-h[3]),r(e(e(r(e(r(t(E,F),a[1]),e(r(t(T,j),-f[1]),r(t(rt,Q),h[1]))),o[2]),r(e(r(t(E,F),o[1]),e(r(t(y,R),-f[1]),r(t(et,C),h[1]))),-a[2])),e(r(e(r(t(T,j),o[1]),e(r(t(y,R),-a[1]),r(t(K,m),h[1]))),f[2]),r(e(r(t(rt,Q),o[1]),e(r(t(et,C),-a[1]),r(t(K,m),f[1]))),-h[2]))),v[3]))))),I=t(b,w);return I[I.length-1]}return i}var Ae=[l0,h0,v0];function x0(e){var t=Ae[e.length];return t||(t=Ae[e.length]=eo(e.length)),t.apply(void 0,e)}function M0(e,t,n,r,i,o,a,f){function h(v,d,D,m,C,R){switch(arguments.length){case 0:case 1:return 0;case 2:return r(v,d);case 3:return i(v,d,D);case 4:return o(v,d,D,m);case 5:return a(v,d,D,m,C);case 6:return f(v,d,D,m,C,R)}for(var N=new Array(arguments.length),V=0;V<arguments.length;++V)N[V]=arguments[V];return e(N)}return h}function y0(){for(;Ae.length<=to;)Ae.push(eo(Ae.length));Bn.exports=M0.apply(void 0,[x0].concat(Ae));for(var e=0;e<=to;++e)Bn.exports[e]=Ae[e]}y0()});var io=xt((ml,no)=>{"use strict";var Pn=ro()[4],Cl=je();no.exports=b0;function Pr(e,t,n,r,i,o){var a=t.opposite(r,i);if(!(a<0)){if(i<r){var f=r;r=i,i=f,f=o,o=a,a=f}t.isConstraint(r,i)||Pn(e[r],e[i],e[o],e[a])<0&&n.push(r,i)}}function b0(e,t){for(var n=[],r=e.length,i=t.stars,o=0;o<r;++o)for(var a=i[o],f=1;f<a.length;f+=2){var h=a[f];if(!(h<o)&&!t.isConstraint(o,h)){for(var v=a[f-1],d=-1,D=1;D<a.length;D+=2)if(a[D-1]===h){d=a[D];break}d<0||Pn(e[o],e[h],e[v],e[d])<0&&n.push(o,h)}}for(;n.length>0;){for(var h=n.pop(),o=n.pop(),v=-1,d=-1,a=i[o],m=1;m<a.length;m+=2){var C=a[m-1],R=a[m];C===h?d=R:R===h&&(v=C)}v<0||d<0||Pn(e[o],e[h],e[v],e[d])>=0||(t.flip(o,h),Pr(e,t,n,v,o,d),Pr(e,t,n,o,d,v),Pr(e,t,n,d,h,v),Pr(e,t,n,h,v,d))}}});var uo=xt((kl,so)=>{"use strict";var _0=je();so.exports=P0;function oo(e,t,n,r,i,o,a){this.cells=e,this.neighbor=t,this.flags=r,this.constraint=n,this.active=i,this.next=o,this.boundary=a}var S0=oo.prototype;function ao(e,t){return e[0]-t[0]||e[1]-t[1]||e[2]-t[2]}S0.locate=(function(){var e=[0,0,0];return function(t,n,r){var i=t,o=n,a=r;return n<r?n<t&&(i=n,o=r,a=t):r<t&&(i=r,o=t,a=n),i<0?-1:(e[0]=i,e[1]=o,e[2]=a,_0.eq(this.cells,e,ao))}})();function T0(e,t){for(var n=e.cells(),r=n.length,i=0;i<r;++i){var o=n[i],a=o[0],f=o[1],h=o[2];f<h?f<a&&(o[0]=f,o[1]=h,o[2]=a):h<a&&(o[0]=h,o[1]=a,o[2]=f)}n.sort(ao);for(var v=new Array(r),i=0;i<v.length;++i)v[i]=0;var d=[],D=[],m=new Array(3*r),C=new Array(3*r),R=null;t&&(R=[]);for(var N=new oo(n,m,C,v,d,D,R),i=0;i<r;++i)for(var o=n[i],V=0;V<3;++V){var a=o[V],f=o[(V+1)%3],Y=m[3*i+V]=N.locate(f,a,e.opposite(f,a)),K=C[3*i+V]=e.isConstraint(a,f);Y<0&&(K?D.push(i):(d.push(i),v[i]=1),t&&R.push([f,a,-1]))}return N}function B0(e,t,n){for(var r=0,i=0;i<e.length;++i)t[i]===n&&(e[r++]=e[i]);return e.length=r,e}function P0(e,t,n){var r=T0(e,n);if(t===0)return n?r.cells.concat(r.boundary):r.cells;for(var i=1,o=r.active,a=r.next,f=r.flags,h=r.cells,v=r.constraint,d=r.neighbor;o.length>0||a.length>0;){for(;o.length>0;){var D=o.pop();if(f[D]!==-i){f[D]=i;for(var m=h[D],C=0;C<3;++C){var R=d[3*D+C];R>=0&&f[R]===0&&(v[3*D+C]?a.push(R):(o.push(R),f[R]=i))}}}var N=a;a=o,o=N,a.length=0,i=-i}var V=B0(h,f,t);return n?V.concat(r.boundary):V}});var co=xt((Xl,fo)=>{"use strict";var D0=Ki(),F0=ji(),A0=io(),Dn=uo();fo.exports=E0;function U0(e){return[Math.min(e[0],e[1]),Math.max(e[0],e[1])]}function z0(e,t){return e[0]-t[0]||e[1]-t[1]}function I0(e){return e.map(U0).sort(z0)}function Dr(e,t,n){return t in e?e[t]:n}function E0(e,t,n){Array.isArray(t)?(n=n||{},t=t||[]):(n=t||{},t=[]);var r=!!Dr(n,"delaunay",!0),i=!!Dr(n,"interior",!0),o=!!Dr(n,"exterior",!0),a=!!Dr(n,"infinity",!1);if(!i&&!o||e.length===0)return[];var f=D0(e,t);if(r||i!==o||a){for(var h=F0(e.length,I0(t)),v=0;v<f.length;++v){var d=f[v];h.addTriangle(d[0],d[1],d[2])}return r&&A0(e,h),o?i?a?Dn(h,0,a):h.cells():Dn(h,1,a):Dn(h,-1)}else return f}});var vo=xt((Yl,ho)=>{"use strict";"use restrict";ho.exports=lo;function lo(e){this.roots=new Array(e),this.ranks=new Array(e);for(var t=0;t<e;++t)this.roots[t]=t,this.ranks[t]=0}var Fr=lo.prototype;Object.defineProperty(Fr,"length",{get:function(){return this.roots.length}});Fr.makeSet=function(){var e=this.roots.length;return this.roots.push(e),this.ranks.push(0),e};Fr.find=function(e){for(var t=e,n=this.roots;n[e]!==e;)e=n[e];for(;n[t]!==e;){var r=n[t];n[t]=e,t=r}return e};Fr.link=function(e,t){var n=this.find(e),r=this.find(t);if(n!==r){var i=this.ranks,o=this.roots,a=i[n],f=i[r];a<f?o[n]=r:f<a?o[r]=n:(o[r]=n,++i[n])}}});var rr=xt(kt=>{"use strict";"use restrict";var Fn=32;kt.INT_BITS=Fn;kt.INT_MAX=2147483647;kt.INT_MIN=-1<<Fn-1;kt.sign=function(e){return(e>0)-(e<0)};kt.abs=function(e){var t=e>>Fn-1;return(e^t)-t};kt.min=function(e,t){return t^(e^t)&-(e<t)};kt.max=function(e,t){return e^(e^t)&-(e<t)};kt.isPow2=function(e){return!(e&e-1)&&!!e};kt.log2=function(e){var t,n;return t=(e>65535)<<4,e>>>=t,n=(e>255)<<3,e>>>=n,t|=n,n=(e>15)<<2,e>>>=n,t|=n,n=(e>3)<<1,e>>>=n,t|=n,t|e>>1};kt.log10=function(e){return e>=1e9?9:e>=1e8?8:e>=1e7?7:e>=1e6?6:e>=1e5?5:e>=1e4?4:e>=1e3?3:e>=100?2:e>=10?1:0};kt.popCount=function(e){return e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),(e+(e>>>4)&252645135)*16843009>>>24};function po(e){var t=32;return e&=-e,e&&t--,e&65535&&(t-=16),e&16711935&&(t-=8),e&252645135&&(t-=4),e&858993459&&(t-=2),e&1431655765&&(t-=1),t}kt.countTrailingZeros=po;kt.nextPow2=function(e){return e+=e===0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+1};kt.prevPow2=function(e){return e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e-(e>>>1)};kt.parity=function(e){return e^=e>>>16,e^=e>>>8,e^=e>>>4,e&=15,27030>>>e&1};var er=new Array(256);(function(e){for(var t=0;t<256;++t){var n=t,r=t,i=7;for(n>>>=1;n;n>>>=1)r<<=1,r|=n&1,--i;e[t]=r<<i&255}})(er);kt.reverse=function(e){return er[e&255]<<24|er[e>>>8&255]<<16|er[e>>>16&255]<<8|er[e>>>24&255]};kt.interleave2=function(e,t){return e&=65535,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t&=65535,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1};kt.deinterleave2=function(e,t){return e=e>>>t&1431655765,e=(e|e>>>1)&858993459,e=(e|e>>>2)&252645135,e=(e|e>>>4)&16711935,e=(e|e>>>16)&65535,e<<16>>16};kt.interleave3=function(e,t,n){return e&=1023,e=(e|e<<16)&4278190335,e=(e|e<<8)&251719695,e=(e|e<<4)&3272356035,e=(e|e<<2)&1227133513,t&=1023,t=(t|t<<16)&4278190335,t=(t|t<<8)&251719695,t=(t|t<<4)&3272356035,t=(t|t<<2)&1227133513,e|=t<<1,n&=1023,n=(n|n<<16)&4278190335,n=(n|n<<8)&251719695,n=(n|n<<4)&3272356035,n=(n|n<<2)&1227133513,e|n<<2};kt.deinterleave3=function(e,t){return e=e>>>t&1227133513,e=(e|e>>>2)&3272356035,e=(e|e>>>4)&251719695,e=(e|e>>>8)&4278190335,e=(e|e>>>16)&1023,e<<22>>22};kt.nextCombination=function(e){var t=e|e-1;return t+1|(~t&-~t)-1>>>po(e)+1}});var xo=xt((Hl,wo)=>{"use strict";function go(e,t,n){var r=e[n]|0;if(r<=0)return[];var i=new Array(r),o;if(n===e.length-1)for(o=0;o<r;++o)i[o]=t;else for(o=0;o<r;++o)i[o]=go(e,t,n+1);return i}function L0(e,t){var n,r;for(n=new Array(e),r=0;r<e;++r)n[r]=t;return n}function G0(e,t){switch(typeof t>"u"&&(t=0),typeof e){case"number":if(e>0)return L0(e|0,t);break;case"object":if(typeof e.length=="number")return go(e,t,0);break}return[]}wo.exports=G0});var zr=xt(Et=>{"use strict";var Ar=rr(),te=xo();globalThis.__TYPEDARRAY_POOL||(globalThis.__TYPEDARRAY_POOL={UINT8:te([32,0]),UINT16:te([32,0]),UINT32:te([32,0]),BIGUINT64:te([32,0]),INT8:te([32,0]),INT16:te([32,0]),INT32:te([32,0]),BIGINT64:te([32,0]),FLOAT:te([32,0]),DOUBLE:te([32,0]),DATA:te([32,0]),UINT8C:te([32,0])});var R0=typeof Uint8ClampedArray<"u",O0=typeof BigUint64Array<"u",q0=typeof BigInt64Array<"u",Qt=globalThis.__TYPEDARRAY_POOL;Qt.UINT8C||(Qt.UINT8C=te([32,0]));Qt.BIGUINT64||(Qt.BIGUINT64=te([32,0]));Qt.BIGINT64||(Qt.BIGINT64=te([32,0]));var Ur=Qt.DATA;Et.free=function(t){if(Object.prototype.toString.call(t)!=="[object ArrayBuffer]"&&(t=t.buffer),!!t){var n=t.length||t.byteLength,r=Ar.log2(n)|0;Ur[r].push(t)}};function Mo(e){if(e){var t=e.length||e.byteLength,n=Ar.log2(t);Ur[n].push(e)}}function N0(e){Mo(e.buffer)}Et.freeUint8=Et.freeUint16=Et.freeUint32=Et.freeBigUint64=Et.freeInt8=Et.freeInt16=Et.freeInt32=Et.freeBigInt64=Et.freeFloat32=Et.freeFloat=Et.freeFloat64=Et.freeDouble=Et.freeUint8Clamped=Et.freeDataView=N0;Et.freeArrayBuffer=Mo;Et.malloc=function(t,n){if(n===void 0||n==="arraybuffer")return ie(t);switch(n){case"uint8":return An(t);case"uint16":return yo(t);case"uint32":return bo(t);case"int8":return _o(t);case"int16":return So(t);case"int32":return To(t);case"float":case"float32":return Bo(t);case"double":case"float64":return Po(t);case"uint8_clamped":return Do(t);case"bigint64":return Ao(t);case"biguint64":return Fo(t);case"data":case"dataview":return Uo(t);default:return null}return null};function ie(t){var t=Ar.nextPow2(t),n=Ar.log2(t),r=Ur[n];return r.length>0?r.pop():new ArrayBuffer(t)}Et.mallocArrayBuffer=ie;function An(e){return new Uint8Array(ie(e),0,e)}Et.mallocUint8=An;function yo(e){return new Uint16Array(ie(2*e),0,e)}Et.mallocUint16=yo;function bo(e){return new Uint32Array(ie(4*e),0,e)}Et.mallocUint32=bo;function _o(e){return new Int8Array(ie(e),0,e)}Et.mallocInt8=_o;function So(e){return new Int16Array(ie(2*e),0,e)}Et.mallocInt16=So;function To(e){return new Int32Array(ie(4*e),0,e)}Et.mallocInt32=To;function Bo(e){return new Float32Array(ie(4*e),0,e)}Et.mallocFloat32=Et.mallocFloat=Bo;function Po(e){return new Float64Array(ie(8*e),0,e)}Et.mallocFloat64=Et.mallocDouble=Po;function Do(e){return R0?new Uint8ClampedArray(ie(e),0,e):An(e)}Et.mallocUint8Clamped=Do;function Fo(e){return O0?new BigUint64Array(ie(8*e),0,e):null}Et.mallocBigUint64=Fo;function Ao(e){return q0?new BigInt64Array(ie(8*e),0,e):null}Et.mallocBigInt64=Ao;function Uo(e){return new DataView(ie(e),0,e)}Et.mallocDataView=Uo;Et.clearCache=function(){for(var t=0;t<32;++t)Qt.UINT8[t].length=0,Qt.UINT16[t].length=0,Qt.UINT32[t].length=0,Qt.INT8[t].length=0,Qt.INT16[t].length=0,Qt.INT32[t].length=0,Qt.FLOAT[t].length=0,Qt.DOUBLE[t].length=0,Qt.BIGUINT64[t].length=0,Qt.BIGINT64[t].length=0,Qt.UINT8C[t].length=0,Ur[t].length=0}});var Go=xt((Wl,Lo)=>{"use strict";Lo.exports=V0;var Er=32;function V0(e,t){t<=4*Er?Lr(0,t-1,e):Gr(0,t-1,e)}function Lr(e,t,n){for(var r=2*(e+1),i=e+1;i<=t;++i){for(var o=n[r++],a=n[r++],f=i,h=r-2;f-- >e;){var v=n[h-2],d=n[h-1];if(v<o)break;if(v===o&&d<a)break;n[h]=v,n[h+1]=d,h-=2}n[h]=o,n[h+1]=a}}function zo(e,t,n){e*=2,t*=2;var r=n[e],i=n[e+1];n[e]=n[t],n[e+1]=n[t+1],n[t]=r,n[t+1]=i}function Io(e,t,n){e*=2,t*=2,n[e]=n[t],n[e+1]=n[t+1]}function C0(e,t,n,r){e*=2,t*=2,n*=2;var i=r[e],o=r[e+1];r[e]=r[t],r[e+1]=r[t+1],r[t]=r[n],r[t+1]=r[n+1],r[n]=i,r[n+1]=o}function Eo(e,t,n,r,i){e*=2,t*=2,i[e]=i[t],i[t]=n,i[e+1]=i[t+1],i[t+1]=r}function de(e,t,n){e*=2,t*=2;var r=n[e],i=n[t];return r<i?!1:r===i?n[e+1]>n[t+1]:!0}function Ir(e,t,n,r){e*=2;var i=r[e];return i<t?!0:i===t?r[e+1]<n:!1}function Gr(e,t,n){var r=(t-e+1)/6|0,i=e+r,o=t-r,a=e+t>>1,f=a-r,h=a+r,v=i,d=f,D=a,m=h,C=o,R=e+1,N=t-1,V=0;de(v,d,n)&&(V=v,v=d,d=V),de(m,C,n)&&(V=m,m=C,C=V),de(v,D,n)&&(V=v,v=D,D=V),de(d,D,n)&&(V=d,d=D,D=V),de(v,m,n)&&(V=v,v=m,m=V),de(D,m,n)&&(V=D,D=m,m=V),de(d,C,n)&&(V=d,d=C,C=V),de(d,D,n)&&(V=d,d=D,D=V),de(m,C,n)&&(V=m,m=C,C=V);for(var Y=n[2*d],K=n[2*d+1],Q=n[2*m],j=n[2*m+1],Z=2*v,W=2*D,st=2*C,et=2*i,rt=2*a,F=2*o,s=0;s<2;++s){var p=n[Z+s],_=n[W+s],y=n[st+s];n[et+s]=p,n[rt+s]=_,n[F+s]=y}Io(f,e,n),Io(h,t,n);for(var T=R;T<=N;++T)if(Ir(T,Y,K,n))T!==R&&zo(T,R,n),++R;else if(!Ir(T,Q,j,n))for(;;)if(Ir(N,Q,j,n)){Ir(N,Y,K,n)?(C0(T,R,N,n),++R,--N):(zo(T,N,n),--N);break}else{if(--N<T)break;continue}Eo(e,R-1,Y,K,n),Eo(t,N+1,Q,j,n),R-2-e<=Er?Lr(e,R-2,n):Gr(e,R-2,n),t-(N+2)<=Er?Lr(N+2,t,n):Gr(N+2,t,n),N-R<=Er?Lr(R,N,n):Gr(R,N,n)}});var Un=xt((Kl,Ro)=>{"use strict";Ro.exports={init:k0,sweepBipartite:X0,sweepComplete:Y0,scanBipartite:Z0,scanComplete:H0};var Yt=zr(),m0=rr(),Rr=Go(),se=1<<28,ze=1024,Jt=Yt.mallocInt32(ze),we=Yt.mallocInt32(ze),xe=Yt.mallocInt32(ze),Ue=Yt.mallocInt32(ze),ke=Yt.mallocInt32(ze),nr=Yt.mallocInt32(ze),St=Yt.mallocDouble(ze*8);function k0(e){var t=m0.nextPow2(e);Jt.length<t&&(Yt.free(Jt),Jt=Yt.mallocInt32(t)),we.length<t&&(Yt.free(we),we=Yt.mallocInt32(t)),xe.length<t&&(Yt.free(xe),xe=Yt.mallocInt32(t)),Ue.length<t&&(Yt.free(Ue),Ue=Yt.mallocInt32(t)),ke.length<t&&(Yt.free(ke),ke=Yt.mallocInt32(t)),nr.length<t&&(Yt.free(nr),nr=Yt.mallocInt32(t));var n=8*t;St.length<n&&(Yt.free(St),St=Yt.mallocDouble(n))}function Xe(e,t,n,r){var i=t[r],o=e[n-1];e[i]=o,t[o]=i}function Ye(e,t,n,r){e[n]=r,t[r]=n}function X0(e,t,n,r,i,o,a,f,h,v){for(var d=0,D=2*e,m=e-1,C=D-1,R=n;R<r;++R){var N=o[R],V=D*R;St[d++]=i[V+m],St[d++]=-(N+1),St[d++]=i[V+C],St[d++]=N}for(var R=a;R<f;++R){var N=v[R]+se,Y=D*R;St[d++]=h[Y+m],St[d++]=-N,St[d++]=h[Y+C],St[d++]=N}var K=d>>>1;Rr(St,K);for(var Q=0,j=0,R=0;R<K;++R){var Z=St[2*R+1]|0;if(Z>=se)Z=Z-se|0,Xe(xe,Ue,j--,Z);else if(Z>=0)Xe(Jt,we,Q--,Z);else if(Z<=-se){Z=-Z-se|0;for(var W=0;W<Q;++W){var st=t(Jt[W],Z);if(st!==void 0)return st}Ye(xe,Ue,j++,Z)}else{Z=-Z-1|0;for(var W=0;W<j;++W){var st=t(Z,xe[W]);if(st!==void 0)return st}Ye(Jt,we,Q++,Z)}}}function Y0(e,t,n,r,i,o,a,f,h,v){for(var d=0,D=2*e,m=e-1,C=D-1,R=n;R<r;++R){var N=o[R]+1<<1,V=D*R;St[d++]=i[V+m],St[d++]=-N,St[d++]=i[V+C],St[d++]=N}for(var R=a;R<f;++R){var N=v[R]+1<<1,Y=D*R;St[d++]=h[Y+m],St[d++]=-N|1,St[d++]=h[Y+C],St[d++]=N|1}var K=d>>>1;Rr(St,K);for(var Q=0,j=0,Z=0,R=0;R<K;++R){var W=St[2*R+1]|0,st=W&1;if(R<K-1&&W>>1===St[2*R+3]>>1&&(st=2,R+=1),W<0){for(var et=-(W>>1)-1,rt=0;rt<Z;++rt){var F=t(ke[rt],et);if(F!==void 0)return F}if(st!==0)for(var rt=0;rt<Q;++rt){var F=t(Jt[rt],et);if(F!==void 0)return F}if(st!==1)for(var rt=0;rt<j;++rt){var F=t(xe[rt],et);if(F!==void 0)return F}st===0?Ye(Jt,we,Q++,et):st===1?Ye(xe,Ue,j++,et):st===2&&Ye(ke,nr,Z++,et)}else{var et=(W>>1)-1;st===0?Xe(Jt,we,Q--,et):st===1?Xe(xe,Ue,j--,et):st===2&&Xe(ke,nr,Z--,et)}}}function Z0(e,t,n,r,i,o,a,f,h,v,d,D){var m=0,C=2*e,R=t,N=t+e,V=1,Y=1;r?Y=se:V=se;for(var K=i;K<o;++K){var Q=K+V,j=C*K;St[m++]=a[j+R],St[m++]=-Q,St[m++]=a[j+N],St[m++]=Q}for(var K=h;K<v;++K){var Q=K+Y,Z=C*K;St[m++]=d[Z+R],St[m++]=-Q}var W=m>>>1;Rr(St,W);for(var st=0,K=0;K<W;++K){var et=St[2*K+1]|0;if(et<0){var Q=-et,rt=!1;if(Q>=se?(rt=!r,Q-=se):(rt=!!r,Q-=1),rt)Ye(Jt,we,st++,Q);else{var F=D[Q],s=C*Q,p=d[s+t+1],_=d[s+t+1+e];t:for(var y=0;y<st;++y){var T=Jt[y],E=C*T;if(!(_<a[E+t+1]||a[E+t+1+e]<p)){for(var O=t+2;O<e;++O)if(d[s+O+e]<a[E+O]||a[E+O+e]<d[s+O])continue t;var P=f[T],l;if(r?l=n(F,P):l=n(P,F),l!==void 0)return l}}}}else Xe(Jt,we,st--,et-V)}}function H0(e,t,n,r,i,o,a,f,h,v,d){for(var D=0,m=2*e,C=t,R=t+e,N=r;N<i;++N){var V=N+se,Y=m*N;St[D++]=o[Y+C],St[D++]=-V,St[D++]=o[Y+R],St[D++]=V}for(var N=f;N<h;++N){var V=N+1,K=m*N;St[D++]=v[K+C],St[D++]=-V}var Q=D>>>1;Rr(St,Q);for(var j=0,N=0;N<Q;++N){var Z=St[2*N+1]|0;if(Z<0){var V=-Z;if(V>=se)Jt[j++]=V-se;else{V-=1;var W=d[V],st=m*V,et=v[st+t+1],rt=v[st+t+1+e];t:for(var F=0;F<j;++F){var s=Jt[F],p=a[s];if(p===W)break;var _=m*s;if(!(rt<o[_+t+1]||o[_+t+1+e]<et)){for(var y=t+2;y<e;++y)if(v[st+y+e]<o[_+y]||o[_+y+e]<v[st+y])continue t;var T=n(p,W);if(T!==void 0)return T}}}}else{for(var V=Z-se,F=j-1;F>=0;--F)if(Jt[F]===V){for(var y=F+1;y<j;++y)Jt[y-1]=Jt[y];break}--j}}}});var Co=xt(On=>{"use strict";var Ie="d",$e="ax",Oo="vv",zn="fp",ir="es",Or="rs",Gn="re",or="rb",qo="ri",Ze="rp",qr="bs",Rn="be",ar="bb",No="bi",He="bp",In="rv",En="Q",Ln=[Ie,$e,Oo,Or,Gn,or,qo,qr,Rn,ar,No];function $0(e,t,n){var r="bruteForce"+(e?"Red":"Blue")+(t?"Flip":"")+(n?"Full":""),i=["function ",r,"(",Ln.join(),"){","var ",ir,"=2*",Ie,";"],o="for(var i="+Or+","+Ze+"="+ir+"*"+Or+";i<"+Gn+";++i,"+Ze+"+="+ir+"){var x0="+or+"["+$e+"+"+Ze+"],x1="+or+"["+$e+"+"+Ze+"+"+Ie+"],xi="+qo+"[i];",a="for(var j="+qr+","+He+"="+ir+"*"+qr+";j<"+Rn+";++j,"+He+"+="+ir+"){var y0="+ar+"["+$e+"+"+He+"],"+(n?"y1="+ar+"["+$e+"+"+He+"+"+Ie+"],":"")+"yi="+No+"[j];";return e?i.push(o,En,":",a):i.push(a,En,":",o),n?i.push("if(y1<x0||x1<y0)continue;"):t?i.push("if(y0<=x0||x1<y0)continue;"):i.push("if(y0<x0||x1<y0)continue;"),i.push("for(var k="+$e+"+1;k<"+Ie+";++k){var r0="+or+"[k+"+Ze+"],r1="+or+"[k+"+Ie+"+"+Ze+"],b0="+ar+"[k+"+He+"],b1="+ar+"[k+"+Ie+"+"+He+"];if(r1<b0||b1<r0)continue "+En+";}var "+In+"="+Oo+"("),t?i.push("yi,xi"):i.push("xi,yi"),i.push(");if("+In+"!==void 0)return "+In+";}}}"),{name:r,code:i.join("")}}function Vo(e){var t="bruteForce"+(e?"Full":"Partial"),n=[],r=Ln.slice();e||r.splice(3,0,zn);var i=["function "+t+"("+r.join()+"){"];function o(h,v){var d=$0(h,v,e);n.push(d.code),i.push("return "+d.name+"("+Ln.join()+");")}i.push("if("+Gn+"-"+Or+">"+Rn+"-"+qr+"){"),e?(o(!0,!1),i.push("}else{"),o(!1,!1)):(i.push("if("+zn+"){"),o(!0,!0),i.push("}else{"),o(!0,!1),i.push("}}else{if("+zn+"){"),o(!1,!0),i.push("}else{"),o(!1,!1),i.push("}")),i.push("}}return "+t);var a=n.join("")+i.join(""),f=new Function(a);return f()}On.partial=Vo(!1);On.full=Vo(!0)});var qn=xt((Jl,mo)=>{"use strict";mo.exports=K0;var W0="for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m";function K0(e,t){var n="abcdef".split("").concat(t),r=[];return e.indexOf("lo")>=0&&r.push("lo=e[k+n]"),e.indexOf("hi")>=0&&r.push("hi=e[k+o]"),n.push(W0.replace("_",r.join()).replace("$",e)),Function.apply(void 0,n)}});var Yo=xt((jl,Xo)=>{"use strict";Xo.exports=tf;var Q0=qn(),ko=Q0("lo<p0",["p0"]),J0=8;function j0(e,t,n,r,i,o){for(var a=2*e,f=a*(n+1)+t,h=n+1;h<r;++h,f+=a)for(var v=i[f],d=h,D=a*(h-1);d>n&&i[D+t]>v;--d,D-=a){for(var m=D,C=D+a,R=0;R<a;++R,++m,++C){var N=i[m];i[m]=i[C],i[C]=N}var V=o[d];o[d]=o[d-1],o[d-1]=V}}function tf(e,t,n,r,i,o){if(r<=n+1)return n;for(var a=n,f=r,h=r+n>>>1,v=2*e,d=h,D=i[v*h+t];a<f;){if(f-a<J0){j0(e,t,a,f,i,o),D=i[v*h+t];break}var m=f-a,C=Math.random()*m+a|0,R=i[v*C+t],N=Math.random()*m+a|0,V=i[v*N+t],Y=Math.random()*m+a|0,K=i[v*Y+t];R<=V?K>=V?(d=N,D=V):R>=K?(d=C,D=R):(d=Y,D=K):V>=K?(d=N,D=V):K>=R?(d=C,D=R):(d=Y,D=K);for(var Z=v*(f-1),W=v*d,Q=0;Q<v;++Q,++Z,++W){var j=i[Z];i[Z]=i[W],i[W]=j}var st=o[f-1];o[f-1]=o[d],o[d]=st,d=ko(e,t,a,f-1,i,o,D);for(var Z=v*(f-1),W=v*d,Q=0;Q<v;++Q,++Z,++W){var j=i[Z];i[Z]=i[W],i[W]=j}var st=o[f-1];if(o[f-1]=o[d],o[d]=st,h<d){for(f=d-1;a<f&&i[v*(f-1)+t]===D;)f-=1;f+=1}else if(d<h)for(a=d+1;a<f&&i[v*a+t]===D;)a+=1;else break}return ko(e,t,n,h,i,o,i[v*h+t])}});var Jo=xt((th,Qo)=>{"use strict";Qo.exports=pf;var We=zr(),Nn=rr(),Wo=Co(),ef=Wo.partial,rf=Wo.full,_e=Un(),nf=Yo(),Ke=qn(),Zo=128,of=1<<22,af=1<<22,sf=Ke("!(lo>=p0)&&!(p1>=hi)",["p0","p1"]),Ho=Ke("lo===p0",["p0"]),uf=Ke("lo<p0",["p0"]),ff=Ke("hi<=p0",["p0"]),$o=Ke("lo<=p0&&p0<=hi",["p0"]),cf=Ke("lo<p0&&p0<=hi",["p0"]),Vn=6,Cn=2,Ko=1024,ee=We.mallocInt32(Ko),Ee=We.mallocDouble(Ko);function lf(e,t){var n=8*Nn.log2(t+1)*(e+1)|0,r=Nn.nextPow2(Vn*n);ee.length<r&&(We.free(ee),ee=We.mallocInt32(r));var i=Nn.nextPow2(Cn*n);Ee.length<i&&(We.free(Ee),Ee=We.mallocDouble(i))}function ce(e,t,n,r,i,o,a,f,h){var v=Vn*e;ee[v]=t,ee[v+1]=n,ee[v+2]=r,ee[v+3]=i,ee[v+4]=o,ee[v+5]=a;var d=Cn*e;Ee[d]=f,Ee[d+1]=h}function hf(e,t,n,r,i,o,a,f,h,v,d){var D=2*e,m=h*D,C=v[m+t];t:for(var R=i,N=i*D;R<o;++R,N+=D){var V=a[N+t],Y=a[N+t+e];if(!(C<V||Y<C)&&!(r&&C===V)){for(var K=f[R],Q=t+1;Q<e;++Q){var V=a[N+Q],Y=a[N+Q+e],j=v[m+Q],Z=v[m+Q+e];if(Y<j||Z<V)continue t}var W;if(r?W=n(d,K):W=n(K,d),W!==void 0)return W}}}function vf(e,t,n,r,i,o,a,f,h,v){var d=2*e,D=f*d,m=h[D+t];t:for(var C=r,R=r*d;C<i;++C,R+=d){var N=a[C];if(N!==v){var V=o[R+t],Y=o[R+t+e];if(!(m<V||Y<m)){for(var K=t+1;K<e;++K){var V=o[R+K],Y=o[R+K+e],Q=h[D+K],j=h[D+K+e];if(Y<Q||j<V)continue t}var Z=n(N,v);if(Z!==void 0)return Z}}}}function pf(e,t,n,r,i,o,a,f,h){lf(e,r+a);var v=0,d=2*e,D;for(ce(v++,0,0,r,0,a,n?16:0,-1/0,1/0),n||ce(v++,0,0,a,0,r,1,-1/0,1/0);v>0;){v-=1;var m=v*Vn,C=ee[m],R=ee[m+1],N=ee[m+2],V=ee[m+3],Y=ee[m+4],K=ee[m+5],Q=v*Cn,j=Ee[Q],Z=Ee[Q+1],W=K&1,st=!!(K&16),et=i,rt=o,F=f,s=h;if(W&&(et=f,rt=h,F=i,s=o),!(K&2&&(N=uf(e,C,R,N,et,rt,Z),R>=N))&&!(K&4&&(R=ff(e,C,R,N,et,rt,j),R>=N))){var p=N-R,_=Y-V;if(st){if(e*p*(p+_)<af){if(D=_e.scanComplete(e,C,t,R,N,et,rt,V,Y,F,s),D!==void 0)return D;continue}}else if(e*Math.min(p,_)<Zo){if(D=ef(e,C,t,W,R,N,et,rt,V,Y,F,s),D!==void 0)return D;continue}else if(e*p*_<of){if(D=_e.scanBipartite(e,C,t,W,R,N,et,rt,V,Y,F,s),D!==void 0)return D;continue}var y=sf(e,C,R,N,et,rt,j,Z);if(R<y)if(e*(y-R)<Zo){if(D=rf(e,C+1,t,R,y,et,rt,V,Y,F,s),D!==void 0)return D}else if(C===e-2){if(W?D=_e.sweepBipartite(e,t,V,Y,F,s,R,y,et,rt):D=_e.sweepBipartite(e,t,R,y,et,rt,V,Y,F,s),D!==void 0)return D}else ce(v++,C+1,R,y,V,Y,W,-1/0,1/0),ce(v++,C+1,V,Y,R,y,W^1,-1/0,1/0);if(y<N){var T=nf(e,C,V,Y,F,s),E=F[d*T+C],O=Ho(e,C,T,Y,F,s,E);if(O<Y&&ce(v++,C,y,N,O,Y,(W|4)+(st?16:0),E,Z),V<T&&ce(v++,C,y,N,V,T,(W|2)+(st?16:0),j,E),T+1===O){if(st?D=vf(e,C,t,y,N,et,rt,T,F,s[T]):D=hf(e,C,t,W,y,N,et,rt,T,F,s[T]),D!==void 0)return D}else if(T<O){var P;if(st){if(P=$o(e,C,y,N,et,rt,E),y<P){var l=Ho(e,C,y,P,et,rt,E);if(C===e-2){if(y<l&&(D=_e.sweepComplete(e,t,y,l,et,rt,T,O,F,s),D!==void 0)||l<P&&(D=_e.sweepBipartite(e,t,l,P,et,rt,T,O,F,s),D!==void 0))return D}else y<l&&ce(v++,C+1,y,l,T,O,16,-1/0,1/0),l<P&&(ce(v++,C+1,l,P,T,O,0,-1/0,1/0),ce(v++,C+1,T,O,l,P,1,-1/0,1/0))}}else W?P=cf(e,C,y,N,et,rt,E):P=$o(e,C,y,N,et,rt,E),y<P&&(C===e-2?W?D=_e.sweepBipartite(e,t,T,O,F,s,y,P,et,rt):D=_e.sweepBipartite(e,t,y,P,et,rt,T,O,F,s):(ce(v++,C+1,y,P,T,O,W,-1/0,1/0),ce(v++,C+1,T,O,y,P,W^1,-1/0,1/0)))}}}}}});var ra=xt((eh,ea)=>{"use strict";ea.exports=Mf;var Se=zr(),Nr=Un(),gf=Jo();function df(e,t){for(var n=0;n<e;++n)if(!(t[n]<=t[n+e]))return!0;return!1}function jo(e,t,n,r){for(var i=0,o=0,a=0,f=e.length;a<f;++a){var h=e[a];if(!df(t,h)){for(var v=0;v<2*t;++v)n[i++]=h[v];r[o++]=a}}return o}function Vr(e,t,n,r){var i=e.length,o=t.length;if(!(i<=0||o<=0)){var a=e[0].length>>>1;if(!(a<=0)){var f,h=Se.mallocDouble(2*a*i),v=Se.mallocInt32(i);if(i=jo(e,a,h,v),i>0){if(a===1&&r)Nr.init(i),f=Nr.sweepComplete(a,n,0,i,h,v,0,i,h,v);else{var d=Se.mallocDouble(2*a*o),D=Se.mallocInt32(o);o=jo(t,a,d,D),o>0&&(Nr.init(i+o),a===1?f=Nr.sweepBipartite(a,n,0,i,h,v,0,o,d,D):f=gf(a,n,r,i,h,v,o,d,D),Se.free(d),Se.free(D))}Se.free(h),Se.free(v)}return f}}}var sr;function ta(e,t){sr.push([e,t])}function wf(e){return sr=[],Vr(e,e,ta,!0),sr}function xf(e,t){return sr=[],Vr(e,t,ta,!1),sr}function Mf(e,t,n){var r;switch(arguments.length){case 1:return wf(e);case 2:return typeof t=="function"?Vr(e,e,t,!0):xf(e,t);case 3:return Vr(e,t,n,!1);default:throw new Error("box-intersect: Invalid arguments")}}});var ia=xt((rh,na)=>{"use strict";na.exports=bf;var Cr=bn()[3];function yf(e,t,n,r){for(var i=0;i<2;++i){var o=e[i],a=t[i],f=Math.min(o,a),h=Math.max(o,a),v=n[i],d=r[i],D=Math.min(v,d),m=Math.max(v,d);if(m<f||h<D)return!1}return!0}function bf(e,t,n,r){var i=Cr(e,n,r),o=Cr(t,n,r);if(i>0&&o>0||i<0&&o<0)return!1;var a=Cr(n,e,t),f=Cr(r,e,t);return a>0&&f>0||a<0&&f<0?!1:i===0&&o===0&&a===0&&f===0?yf(e,t,n,r):!0}});var oa=xt(()=>{});var ur=xt((aa,mn)=>{(function(e,t){"use strict";function n(F,s){if(!F)throw new Error(s||"Assertion failed")}function r(F,s){F.super_=s;var p=function(){};p.prototype=s.prototype,F.prototype=new p,F.prototype.constructor=F}function i(F,s,p){if(i.isBN(F))return F;this.negative=0,this.words=null,this.length=0,this.red=null,F!==null&&((s==="le"||s==="be")&&(p=s,s=10),this._init(F||0,s||10,p||"be"))}typeof e=="object"?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;var o;try{typeof window<"u"&&typeof window.Buffer<"u"?o=window.Buffer:o=oa().Buffer}catch{}i.isBN=function(s){return s instanceof i?!0:s!==null&&typeof s=="object"&&s.constructor.wordSize===i.wordSize&&Array.isArray(s.words)},i.max=function(s,p){return s.cmp(p)>0?s:p},i.min=function(s,p){return s.cmp(p)<0?s:p},i.prototype._init=function(s,p,_){if(typeof s=="number")return this._initNumber(s,p,_);if(typeof s=="object")return this._initArray(s,p,_);p==="hex"&&(p=16),n(p===(p|0)&&p>=2&&p<=36),s=s.toString().replace(/\s+/g,"");var y=0;s[0]==="-"&&(y++,this.negative=1),y<s.length&&(p===16?this._parseHex(s,y,_):(this._parseBase(s,p,y),_==="le"&&this._initArray(this.toArray(),p,_)))},i.prototype._initNumber=function(s,p,_){s<0&&(this.negative=1,s=-s),s<67108864?(this.words=[s&67108863],this.length=1):s<4503599627370496?(this.words=[s&67108863,s/67108864&67108863],this.length=2):(n(s<9007199254740992),this.words=[s&67108863,s/67108864&67108863,1],this.length=3),_==="le"&&this._initArray(this.toArray(),p,_)},i.prototype._initArray=function(s,p,_){if(n(typeof s.length=="number"),s.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(s.length/3),this.words=new Array(this.length);for(var y=0;y<this.length;y++)this.words[y]=0;var T,E,O=0;if(_==="be")for(y=s.length-1,T=0;y>=0;y-=3)E=s[y]|s[y-1]<<8|s[y-2]<<16,this.words[T]|=E<<O&67108863,this.words[T+1]=E>>>26-O&67108863,O+=24,O>=26&&(O-=26,T++);else if(_==="le")for(y=0,T=0;y<s.length;y+=3)E=s[y]|s[y+1]<<8|s[y+2]<<16,this.words[T]|=E<<O&67108863,this.words[T+1]=E>>>26-O&67108863,O+=24,O>=26&&(O-=26,T++);return this.strip()};function a(F,s){var p=F.charCodeAt(s);return p>=65&&p<=70?p-55:p>=97&&p<=102?p-87:p-48&15}function f(F,s,p){var _=a(F,p);return p-1>=s&&(_|=a(F,p-1)<<4),_}i.prototype._parseHex=function(s,p,_){this.length=Math.ceil((s.length-p)/6),this.words=new Array(this.length);for(var y=0;y<this.length;y++)this.words[y]=0;var T=0,E=0,O;if(_==="be")for(y=s.length-1;y>=p;y-=2)O=f(s,p,y)<<T,this.words[E]|=O&67108863,T>=18?(T-=18,E+=1,this.words[E]|=O>>>26):T+=8;else{var P=s.length-p;for(y=P%2===0?p+1:p;y<s.length;y+=2)O=f(s,p,y)<<T,this.words[E]|=O&67108863,T>=18?(T-=18,E+=1,this.words[E]|=O>>>26):T+=8}this.strip()};function h(F,s,p,_){for(var y=0,T=Math.min(F.length,p),E=s;E<T;E++){var O=F.charCodeAt(E)-48;y*=_,O>=49?y+=O-49+10:O>=17?y+=O-17+10:y+=O}return y}i.prototype._parseBase=function(s,p,_){this.words=[0],this.length=1;for(var y=0,T=1;T<=67108863;T*=p)y++;y--,T=T/p|0;for(var E=s.length-_,O=E%y,P=Math.min(E,E-O)+_,l=0,U=_;U<P;U+=y)l=h(s,U,U+y,p),this.imuln(T),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(O!==0){var ot=1;for(l=h(s,U,s.length,p),U=0;U<O;U++)ot*=p;this.imuln(ot),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this.strip()},i.prototype.copy=function(s){s.words=new Array(this.length);for(var p=0;p<this.length;p++)s.words[p]=this.words[p];s.length=this.length,s.negative=this.negative,s.red=this.red},i.prototype.clone=function(){var s=new i(null);return this.copy(s),s},i.prototype._expand=function(s){for(;this.length<s;)this.words[this.length++]=0;return this},i.prototype.strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},i.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var v=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],D=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(s,p){s=s||10,p=p|0||1;var _;if(s===16||s==="hex"){_="";for(var y=0,T=0,E=0;E<this.length;E++){var O=this.words[E],P=((O<<y|T)&16777215).toString(16);T=O>>>24-y&16777215,y+=2,y>=26&&(y-=26,E--),T!==0||E!==this.length-1?_=v[6-P.length]+P+_:_=P+_}for(T!==0&&(_=T.toString(16)+_);_.length%p!==0;)_="0"+_;return this.negative!==0&&(_="-"+_),_}if(s===(s|0)&&s>=2&&s<=36){var l=d[s],U=D[s];_="";var ot=this.clone();for(ot.negative=0;!ot.isZero();){var at=ot.modn(U).toString(s);ot=ot.idivn(U),ot.isZero()?_=at+_:_=v[l-at.length]+at+_}for(this.isZero()&&(_="0"+_);_.length%p!==0;)_="0"+_;return this.negative!==0&&(_="-"+_),_}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var s=this.words[0];return this.length===2?s+=this.words[1]*67108864:this.length===3&&this.words[2]===1?s+=4503599627370496+this.words[1]*67108864:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-s:s},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(s,p){return n(typeof o<"u"),this.toArrayLike(o,s,p)},i.prototype.toArray=function(s,p){return this.toArrayLike(Array,s,p)},i.prototype.toArrayLike=function(s,p,_){var y=this.byteLength(),T=_||Math.max(1,y);n(y<=T,"byte array longer than desired length"),n(T>0,"Requested array length <= 0"),this.strip();var E=p==="le",O=new s(T),P,l,U=this.clone();if(E){for(l=0;!U.isZero();l++)P=U.andln(255),U.iushrn(8),O[l]=P;for(;l<T;l++)O[l]=0}else{for(l=0;l<T-y;l++)O[l]=0;for(l=0;!U.isZero();l++)P=U.andln(255),U.iushrn(8),O[T-l-1]=P}return O},Math.clz32?i.prototype._countBits=function(s){return 32-Math.clz32(s)}:i.prototype._countBits=function(s){var p=s,_=0;return p>=4096&&(_+=13,p>>>=13),p>=64&&(_+=7,p>>>=7),p>=8&&(_+=4,p>>>=4),p>=2&&(_+=2,p>>>=2),_+p},i.prototype._zeroBits=function(s){if(s===0)return 26;var p=s,_=0;return(p&8191)===0&&(_+=13,p>>>=13),(p&127)===0&&(_+=7,p>>>=7),(p&15)===0&&(_+=4,p>>>=4),(p&3)===0&&(_+=2,p>>>=2),(p&1)===0&&_++,_},i.prototype.bitLength=function(){var s=this.words[this.length-1],p=this._countBits(s);return(this.length-1)*26+p};function m(F){for(var s=new Array(F.bitLength()),p=0;p<s.length;p++){var _=p/26|0,y=p%26;s[p]=(F.words[_]&1<<y)>>>y}return s}i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var s=0,p=0;p<this.length;p++){var _=this._zeroBits(this.words[p]);if(s+=_,_!==26)break}return s},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(s){return this.negative!==0?this.abs().inotn(s).iaddn(1):this.clone()},i.prototype.fromTwos=function(s){return this.testn(s-1)?this.notn(s).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return this.negative!==0},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(s){for(;this.length<s.length;)this.words[this.length++]=0;for(var p=0;p<s.length;p++)this.words[p]=this.words[p]|s.words[p];return this.strip()},i.prototype.ior=function(s){return n((this.negative|s.negative)===0),this.iuor(s)},i.prototype.or=function(s){return this.length>s.length?this.clone().ior(s):s.clone().ior(this)},i.prototype.uor=function(s){return this.length>s.length?this.clone().iuor(s):s.clone().iuor(this)},i.prototype.iuand=function(s){var p;this.length>s.length?p=s:p=this;for(var _=0;_<p.length;_++)this.words[_]=this.words[_]&s.words[_];return this.length=p.length,this.strip()},i.prototype.iand=function(s){return n((this.negative|s.negative)===0),this.iuand(s)},i.prototype.and=function(s){return this.length>s.length?this.clone().iand(s):s.clone().iand(this)},i.prototype.uand=function(s){return this.length>s.length?this.clone().iuand(s):s.clone().iuand(this)},i.prototype.iuxor=function(s){var p,_;this.length>s.length?(p=this,_=s):(p=s,_=this);for(var y=0;y<_.length;y++)this.words[y]=p.words[y]^_.words[y];if(this!==p)for(;y<p.length;y++)this.words[y]=p.words[y];return this.length=p.length,this.strip()},i.prototype.ixor=function(s){return n((this.negative|s.negative)===0),this.iuxor(s)},i.prototype.xor=function(s){return this.length>s.length?this.clone().ixor(s):s.clone().ixor(this)},i.prototype.uxor=function(s){return this.length>s.length?this.clone().iuxor(s):s.clone().iuxor(this)},i.prototype.inotn=function(s){n(typeof s=="number"&&s>=0);var p=Math.ceil(s/26)|0,_=s%26;this._expand(p),_>0&&p--;for(var y=0;y<p;y++)this.words[y]=~this.words[y]&67108863;return _>0&&(this.words[y]=~this.words[y]&67108863>>26-_),this.strip()},i.prototype.notn=function(s){return this.clone().inotn(s)},i.prototype.setn=function(s,p){n(typeof s=="number"&&s>=0);var _=s/26|0,y=s%26;return this._expand(_+1),p?this.words[_]=this.words[_]|1<<y:this.words[_]=this.words[_]&~(1<<y),this.strip()},i.prototype.iadd=function(s){var p;if(this.negative!==0&&s.negative===0)return this.negative=0,p=this.isub(s),this.negative^=1,this._normSign();if(this.negative===0&&s.negative!==0)return s.negative=0,p=this.isub(s),s.negative=1,p._normSign();var _,y;this.length>s.length?(_=this,y=s):(_=s,y=this);for(var T=0,E=0;E<y.length;E++)p=(_.words[E]|0)+(y.words[E]|0)+T,this.words[E]=p&67108863,T=p>>>26;for(;T!==0&&E<_.length;E++)p=(_.words[E]|0)+T,this.words[E]=p&67108863,T=p>>>26;if(this.length=_.length,T!==0)this.words[this.length]=T,this.length++;else if(_!==this)for(;E<_.length;E++)this.words[E]=_.words[E];return this},i.prototype.add=function(s){var p;return s.negative!==0&&this.negative===0?(s.negative=0,p=this.sub(s),s.negative^=1,p):s.negative===0&&this.negative!==0?(this.negative=0,p=s.sub(this),this.negative=1,p):this.length>s.length?this.clone().iadd(s):s.clone().iadd(this)},i.prototype.isub=function(s){if(s.negative!==0){s.negative=0;var p=this.iadd(s);return s.negative=1,p._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(s),this.negative=1,this._normSign();var _=this.cmp(s);if(_===0)return this.negative=0,this.length=1,this.words[0]=0,this;var y,T;_>0?(y=this,T=s):(y=s,T=this);for(var E=0,O=0;O<T.length;O++)p=(y.words[O]|0)-(T.words[O]|0)+E,E=p>>26,this.words[O]=p&67108863;for(;E!==0&&O<y.length;O++)p=(y.words[O]|0)+E,E=p>>26,this.words[O]=p&67108863;if(E===0&&O<y.length&&y!==this)for(;O<y.length;O++)this.words[O]=y.words[O];return this.length=Math.max(this.length,O),y!==this&&(this.negative=1),this.strip()},i.prototype.sub=function(s){return this.clone().isub(s)};function C(F,s,p){p.negative=s.negative^F.negative;var _=F.length+s.length|0;p.length=_,_=_-1|0;var y=F.words[0]|0,T=s.words[0]|0,E=y*T,O=E&67108863,P=E/67108864|0;p.words[0]=O;for(var l=1;l<_;l++){for(var U=P>>>26,ot=P&67108863,at=Math.min(l,s.length-1),ut=Math.max(0,l-F.length+1);ut<=at;ut++){var ft=l-ut|0;y=F.words[ft]|0,T=s.words[ut]|0,E=y*T+ot,U+=E/67108864|0,ot=E&67108863}p.words[l]=ot|0,P=U|0}return P!==0?p.words[l]=P|0:p.length--,p.strip()}var R=function(s,p,_){var y=s.words,T=p.words,E=_.words,O=0,P,l,U,ot=y[0]|0,at=ot&8191,ut=ot>>>13,ft=y[1]|0,Mt=ft&8191,vt=ft>>>13,X=y[2]|0,$=X&8191,A=X>>>13,c=y[3]|0,b=c&8191,w=c>>>13,I=y[4]|0,G=I&8191,q=I>>>13,k=y[5]|0,u=k&8191,B=k>>>13,M=y[6]|0,x=M&8191,g=M>>>13,S=y[7]|0,L=S&8191,z=S>>>13,H=y[8]|0,J=H&8191,tt=H>>>13,ct=y[9]|0,nt=ct&8191,it=ct>>>13,pt=T[0]|0,ht=pt&8191,lt=pt>>>13,gt=T[1]|0,wt=gt&8191,dt=gt>>>13,mt=T[2]|0,yt=mt&8191,bt=mt>>>13,Zt=T[3]|0,Bt=Zt&8191,Pt=Zt>>>13,$t=T[4]|0,Dt=$t&8191,Ft=$t>>>13,Wt=T[5]|0,At=Wt&8191,Ut=Wt>>>13,Kt=T[6]|0,zt=Kt&8191,It=Kt>>>13,jt=T[7]|0,Gt=jt&8191,Rt=jt>>>13,Te=T[8]|0,Ot=Te&8191,qt=Te>>>13,Be=T[9]|0,Nt=Be&8191,Ct=Be>>>13;_.negative=s.negative^p.negative,_.length=19,P=Math.imul(at,ht),l=Math.imul(at,lt),l=l+Math.imul(ut,ht)|0,U=Math.imul(ut,lt);var qe=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(qe>>>26)|0,qe&=67108863,P=Math.imul(Mt,ht),l=Math.imul(Mt,lt),l=l+Math.imul(vt,ht)|0,U=Math.imul(vt,lt),P=P+Math.imul(at,wt)|0,l=l+Math.imul(at,dt)|0,l=l+Math.imul(ut,wt)|0,U=U+Math.imul(ut,dt)|0;var Ne=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,P=Math.imul($,ht),l=Math.imul($,lt),l=l+Math.imul(A,ht)|0,U=Math.imul(A,lt),P=P+Math.imul(Mt,wt)|0,l=l+Math.imul(Mt,dt)|0,l=l+Math.imul(vt,wt)|0,U=U+Math.imul(vt,dt)|0,P=P+Math.imul(at,yt)|0,l=l+Math.imul(at,bt)|0,l=l+Math.imul(ut,yt)|0,U=U+Math.imul(ut,bt)|0;var Ve=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Ve>>>26)|0,Ve&=67108863,P=Math.imul(b,ht),l=Math.imul(b,lt),l=l+Math.imul(w,ht)|0,U=Math.imul(w,lt),P=P+Math.imul($,wt)|0,l=l+Math.imul($,dt)|0,l=l+Math.imul(A,wt)|0,U=U+Math.imul(A,dt)|0,P=P+Math.imul(Mt,yt)|0,l=l+Math.imul(Mt,bt)|0,l=l+Math.imul(vt,yt)|0,U=U+Math.imul(vt,bt)|0,P=P+Math.imul(at,Bt)|0,l=l+Math.imul(at,Pt)|0,l=l+Math.imul(ut,Bt)|0,U=U+Math.imul(ut,Pt)|0;var Ht=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,P=Math.imul(G,ht),l=Math.imul(G,lt),l=l+Math.imul(q,ht)|0,U=Math.imul(q,lt),P=P+Math.imul(b,wt)|0,l=l+Math.imul(b,dt)|0,l=l+Math.imul(w,wt)|0,U=U+Math.imul(w,dt)|0,P=P+Math.imul($,yt)|0,l=l+Math.imul($,bt)|0,l=l+Math.imul(A,yt)|0,U=U+Math.imul(A,bt)|0,P=P+Math.imul(Mt,Bt)|0,l=l+Math.imul(Mt,Pt)|0,l=l+Math.imul(vt,Bt)|0,U=U+Math.imul(vt,Pt)|0,P=P+Math.imul(at,Dt)|0,l=l+Math.imul(at,Ft)|0,l=l+Math.imul(ut,Dt)|0,U=U+Math.imul(ut,Ft)|0;var Wr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,P=Math.imul(u,ht),l=Math.imul(u,lt),l=l+Math.imul(B,ht)|0,U=Math.imul(B,lt),P=P+Math.imul(G,wt)|0,l=l+Math.imul(G,dt)|0,l=l+Math.imul(q,wt)|0,U=U+Math.imul(q,dt)|0,P=P+Math.imul(b,yt)|0,l=l+Math.imul(b,bt)|0,l=l+Math.imul(w,yt)|0,U=U+Math.imul(w,bt)|0,P=P+Math.imul($,Bt)|0,l=l+Math.imul($,Pt)|0,l=l+Math.imul(A,Bt)|0,U=U+Math.imul(A,Pt)|0,P=P+Math.imul(Mt,Dt)|0,l=l+Math.imul(Mt,Ft)|0,l=l+Math.imul(vt,Dt)|0,U=U+Math.imul(vt,Ft)|0,P=P+Math.imul(at,At)|0,l=l+Math.imul(at,Ut)|0,l=l+Math.imul(ut,At)|0,U=U+Math.imul(ut,Ut)|0;var Kr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Kr>>>26)|0,Kr&=67108863,P=Math.imul(x,ht),l=Math.imul(x,lt),l=l+Math.imul(g,ht)|0,U=Math.imul(g,lt),P=P+Math.imul(u,wt)|0,l=l+Math.imul(u,dt)|0,l=l+Math.imul(B,wt)|0,U=U+Math.imul(B,dt)|0,P=P+Math.imul(G,yt)|0,l=l+Math.imul(G,bt)|0,l=l+Math.imul(q,yt)|0,U=U+Math.imul(q,bt)|0,P=P+Math.imul(b,Bt)|0,l=l+Math.imul(b,Pt)|0,l=l+Math.imul(w,Bt)|0,U=U+Math.imul(w,Pt)|0,P=P+Math.imul($,Dt)|0,l=l+Math.imul($,Ft)|0,l=l+Math.imul(A,Dt)|0,U=U+Math.imul(A,Ft)|0,P=P+Math.imul(Mt,At)|0,l=l+Math.imul(Mt,Ut)|0,l=l+Math.imul(vt,At)|0,U=U+Math.imul(vt,Ut)|0,P=P+Math.imul(at,zt)|0,l=l+Math.imul(at,It)|0,l=l+Math.imul(ut,zt)|0,U=U+Math.imul(ut,It)|0;var Qr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Qr>>>26)|0,Qr&=67108863,P=Math.imul(L,ht),l=Math.imul(L,lt),l=l+Math.imul(z,ht)|0,U=Math.imul(z,lt),P=P+Math.imul(x,wt)|0,l=l+Math.imul(x,dt)|0,l=l+Math.imul(g,wt)|0,U=U+Math.imul(g,dt)|0,P=P+Math.imul(u,yt)|0,l=l+Math.imul(u,bt)|0,l=l+Math.imul(B,yt)|0,U=U+Math.imul(B,bt)|0,P=P+Math.imul(G,Bt)|0,l=l+Math.imul(G,Pt)|0,l=l+Math.imul(q,Bt)|0,U=U+Math.imul(q,Pt)|0,P=P+Math.imul(b,Dt)|0,l=l+Math.imul(b,Ft)|0,l=l+Math.imul(w,Dt)|0,U=U+Math.imul(w,Ft)|0,P=P+Math.imul($,At)|0,l=l+Math.imul($,Ut)|0,l=l+Math.imul(A,At)|0,U=U+Math.imul(A,Ut)|0,P=P+Math.imul(Mt,zt)|0,l=l+Math.imul(Mt,It)|0,l=l+Math.imul(vt,zt)|0,U=U+Math.imul(vt,It)|0,P=P+Math.imul(at,Gt)|0,l=l+Math.imul(at,Rt)|0,l=l+Math.imul(ut,Gt)|0,U=U+Math.imul(ut,Rt)|0;var Jr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(Jr>>>26)|0,Jr&=67108863,P=Math.imul(J,ht),l=Math.imul(J,lt),l=l+Math.imul(tt,ht)|0,U=Math.imul(tt,lt),P=P+Math.imul(L,wt)|0,l=l+Math.imul(L,dt)|0,l=l+Math.imul(z,wt)|0,U=U+Math.imul(z,dt)|0,P=P+Math.imul(x,yt)|0,l=l+Math.imul(x,bt)|0,l=l+Math.imul(g,yt)|0,U=U+Math.imul(g,bt)|0,P=P+Math.imul(u,Bt)|0,l=l+Math.imul(u,Pt)|0,l=l+Math.imul(B,Bt)|0,U=U+Math.imul(B,Pt)|0,P=P+Math.imul(G,Dt)|0,l=l+Math.imul(G,Ft)|0,l=l+Math.imul(q,Dt)|0,U=U+Math.imul(q,Ft)|0,P=P+Math.imul(b,At)|0,l=l+Math.imul(b,Ut)|0,l=l+Math.imul(w,At)|0,U=U+Math.imul(w,Ut)|0,P=P+Math.imul($,zt)|0,l=l+Math.imul($,It)|0,l=l+Math.imul(A,zt)|0,U=U+Math.imul(A,It)|0,P=P+Math.imul(Mt,Gt)|0,l=l+Math.imul(Mt,Rt)|0,l=l+Math.imul(vt,Gt)|0,U=U+Math.imul(vt,Rt)|0,P=P+Math.imul(at,Ot)|0,l=l+Math.imul(at,qt)|0,l=l+Math.imul(ut,Ot)|0,U=U+Math.imul(ut,qt)|0;var jr=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(jr>>>26)|0,jr&=67108863,P=Math.imul(nt,ht),l=Math.imul(nt,lt),l=l+Math.imul(it,ht)|0,U=Math.imul(it,lt),P=P+Math.imul(J,wt)|0,l=l+Math.imul(J,dt)|0,l=l+Math.imul(tt,wt)|0,U=U+Math.imul(tt,dt)|0,P=P+Math.imul(L,yt)|0,l=l+Math.imul(L,bt)|0,l=l+Math.imul(z,yt)|0,U=U+Math.imul(z,bt)|0,P=P+Math.imul(x,Bt)|0,l=l+Math.imul(x,Pt)|0,l=l+Math.imul(g,Bt)|0,U=U+Math.imul(g,Pt)|0,P=P+Math.imul(u,Dt)|0,l=l+Math.imul(u,Ft)|0,l=l+Math.imul(B,Dt)|0,U=U+Math.imul(B,Ft)|0,P=P+Math.imul(G,At)|0,l=l+Math.imul(G,Ut)|0,l=l+Math.imul(q,At)|0,U=U+Math.imul(q,Ut)|0,P=P+Math.imul(b,zt)|0,l=l+Math.imul(b,It)|0,l=l+Math.imul(w,zt)|0,U=U+Math.imul(w,It)|0,P=P+Math.imul($,Gt)|0,l=l+Math.imul($,Rt)|0,l=l+Math.imul(A,Gt)|0,U=U+Math.imul(A,Rt)|0,P=P+Math.imul(Mt,Ot)|0,l=l+Math.imul(Mt,qt)|0,l=l+Math.imul(vt,Ot)|0,U=U+Math.imul(vt,qt)|0,P=P+Math.imul(at,Nt)|0,l=l+Math.imul(at,Ct)|0,l=l+Math.imul(ut,Nt)|0,U=U+Math.imul(ut,Ct)|0;var tn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(tn>>>26)|0,tn&=67108863,P=Math.imul(nt,wt),l=Math.imul(nt,dt),l=l+Math.imul(it,wt)|0,U=Math.imul(it,dt),P=P+Math.imul(J,yt)|0,l=l+Math.imul(J,bt)|0,l=l+Math.imul(tt,yt)|0,U=U+Math.imul(tt,bt)|0,P=P+Math.imul(L,Bt)|0,l=l+Math.imul(L,Pt)|0,l=l+Math.imul(z,Bt)|0,U=U+Math.imul(z,Pt)|0,P=P+Math.imul(x,Dt)|0,l=l+Math.imul(x,Ft)|0,l=l+Math.imul(g,Dt)|0,U=U+Math.imul(g,Ft)|0,P=P+Math.imul(u,At)|0,l=l+Math.imul(u,Ut)|0,l=l+Math.imul(B,At)|0,U=U+Math.imul(B,Ut)|0,P=P+Math.imul(G,zt)|0,l=l+Math.imul(G,It)|0,l=l+Math.imul(q,zt)|0,U=U+Math.imul(q,It)|0,P=P+Math.imul(b,Gt)|0,l=l+Math.imul(b,Rt)|0,l=l+Math.imul(w,Gt)|0,U=U+Math.imul(w,Rt)|0,P=P+Math.imul($,Ot)|0,l=l+Math.imul($,qt)|0,l=l+Math.imul(A,Ot)|0,U=U+Math.imul(A,qt)|0,P=P+Math.imul(Mt,Nt)|0,l=l+Math.imul(Mt,Ct)|0,l=l+Math.imul(vt,Nt)|0,U=U+Math.imul(vt,Ct)|0;var en=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(en>>>26)|0,en&=67108863,P=Math.imul(nt,yt),l=Math.imul(nt,bt),l=l+Math.imul(it,yt)|0,U=Math.imul(it,bt),P=P+Math.imul(J,Bt)|0,l=l+Math.imul(J,Pt)|0,l=l+Math.imul(tt,Bt)|0,U=U+Math.imul(tt,Pt)|0,P=P+Math.imul(L,Dt)|0,l=l+Math.imul(L,Ft)|0,l=l+Math.imul(z,Dt)|0,U=U+Math.imul(z,Ft)|0,P=P+Math.imul(x,At)|0,l=l+Math.imul(x,Ut)|0,l=l+Math.imul(g,At)|0,U=U+Math.imul(g,Ut)|0,P=P+Math.imul(u,zt)|0,l=l+Math.imul(u,It)|0,l=l+Math.imul(B,zt)|0,U=U+Math.imul(B,It)|0,P=P+Math.imul(G,Gt)|0,l=l+Math.imul(G,Rt)|0,l=l+Math.imul(q,Gt)|0,U=U+Math.imul(q,Rt)|0,P=P+Math.imul(b,Ot)|0,l=l+Math.imul(b,qt)|0,l=l+Math.imul(w,Ot)|0,U=U+Math.imul(w,qt)|0,P=P+Math.imul($,Nt)|0,l=l+Math.imul($,Ct)|0,l=l+Math.imul(A,Nt)|0,U=U+Math.imul(A,Ct)|0;var rn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(rn>>>26)|0,rn&=67108863,P=Math.imul(nt,Bt),l=Math.imul(nt,Pt),l=l+Math.imul(it,Bt)|0,U=Math.imul(it,Pt),P=P+Math.imul(J,Dt)|0,l=l+Math.imul(J,Ft)|0,l=l+Math.imul(tt,Dt)|0,U=U+Math.imul(tt,Ft)|0,P=P+Math.imul(L,At)|0,l=l+Math.imul(L,Ut)|0,l=l+Math.imul(z,At)|0,U=U+Math.imul(z,Ut)|0,P=P+Math.imul(x,zt)|0,l=l+Math.imul(x,It)|0,l=l+Math.imul(g,zt)|0,U=U+Math.imul(g,It)|0,P=P+Math.imul(u,Gt)|0,l=l+Math.imul(u,Rt)|0,l=l+Math.imul(B,Gt)|0,U=U+Math.imul(B,Rt)|0,P=P+Math.imul(G,Ot)|0,l=l+Math.imul(G,qt)|0,l=l+Math.imul(q,Ot)|0,U=U+Math.imul(q,qt)|0,P=P+Math.imul(b,Nt)|0,l=l+Math.imul(b,Ct)|0,l=l+Math.imul(w,Nt)|0,U=U+Math.imul(w,Ct)|0;var nn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(nn>>>26)|0,nn&=67108863,P=Math.imul(nt,Dt),l=Math.imul(nt,Ft),l=l+Math.imul(it,Dt)|0,U=Math.imul(it,Ft),P=P+Math.imul(J,At)|0,l=l+Math.imul(J,Ut)|0,l=l+Math.imul(tt,At)|0,U=U+Math.imul(tt,Ut)|0,P=P+Math.imul(L,zt)|0,l=l+Math.imul(L,It)|0,l=l+Math.imul(z,zt)|0,U=U+Math.imul(z,It)|0,P=P+Math.imul(x,Gt)|0,l=l+Math.imul(x,Rt)|0,l=l+Math.imul(g,Gt)|0,U=U+Math.imul(g,Rt)|0,P=P+Math.imul(u,Ot)|0,l=l+Math.imul(u,qt)|0,l=l+Math.imul(B,Ot)|0,U=U+Math.imul(B,qt)|0,P=P+Math.imul(G,Nt)|0,l=l+Math.imul(G,Ct)|0,l=l+Math.imul(q,Nt)|0,U=U+Math.imul(q,Ct)|0;var on=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(on>>>26)|0,on&=67108863,P=Math.imul(nt,At),l=Math.imul(nt,Ut),l=l+Math.imul(it,At)|0,U=Math.imul(it,Ut),P=P+Math.imul(J,zt)|0,l=l+Math.imul(J,It)|0,l=l+Math.imul(tt,zt)|0,U=U+Math.imul(tt,It)|0,P=P+Math.imul(L,Gt)|0,l=l+Math.imul(L,Rt)|0,l=l+Math.imul(z,Gt)|0,U=U+Math.imul(z,Rt)|0,P=P+Math.imul(x,Ot)|0,l=l+Math.imul(x,qt)|0,l=l+Math.imul(g,Ot)|0,U=U+Math.imul(g,qt)|0,P=P+Math.imul(u,Nt)|0,l=l+Math.imul(u,Ct)|0,l=l+Math.imul(B,Nt)|0,U=U+Math.imul(B,Ct)|0;var an=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(an>>>26)|0,an&=67108863,P=Math.imul(nt,zt),l=Math.imul(nt,It),l=l+Math.imul(it,zt)|0,U=Math.imul(it,It),P=P+Math.imul(J,Gt)|0,l=l+Math.imul(J,Rt)|0,l=l+Math.imul(tt,Gt)|0,U=U+Math.imul(tt,Rt)|0,P=P+Math.imul(L,Ot)|0,l=l+Math.imul(L,qt)|0,l=l+Math.imul(z,Ot)|0,U=U+Math.imul(z,qt)|0,P=P+Math.imul(x,Nt)|0,l=l+Math.imul(x,Ct)|0,l=l+Math.imul(g,Nt)|0,U=U+Math.imul(g,Ct)|0;var sn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(sn>>>26)|0,sn&=67108863,P=Math.imul(nt,Gt),l=Math.imul(nt,Rt),l=l+Math.imul(it,Gt)|0,U=Math.imul(it,Rt),P=P+Math.imul(J,Ot)|0,l=l+Math.imul(J,qt)|0,l=l+Math.imul(tt,Ot)|0,U=U+Math.imul(tt,qt)|0,P=P+Math.imul(L,Nt)|0,l=l+Math.imul(L,Ct)|0,l=l+Math.imul(z,Nt)|0,U=U+Math.imul(z,Ct)|0;var un=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(un>>>26)|0,un&=67108863,P=Math.imul(nt,Ot),l=Math.imul(nt,qt),l=l+Math.imul(it,Ot)|0,U=Math.imul(it,qt),P=P+Math.imul(J,Nt)|0,l=l+Math.imul(J,Ct)|0,l=l+Math.imul(tt,Nt)|0,U=U+Math.imul(tt,Ct)|0;var fn=(O+P|0)+((l&8191)<<13)|0;O=(U+(l>>>13)|0)+(fn>>>26)|0,fn&=67108863,P=Math.imul(nt,Nt),l=Math.imul(nt,Ct),l=l+Math.imul(it,Nt)|0,U=Math.imul(it,Ct);var cn=(O+P|0)+((l&8191)<<13)|0;return O=(U+(l>>>13)|0)+(cn>>>26)|0,cn&=67108863,E[0]=qe,E[1]=Ne,E[2]=Ve,E[3]=Ht,E[4]=Wr,E[5]=Kr,E[6]=Qr,E[7]=Jr,E[8]=jr,E[9]=tn,E[10]=en,E[11]=rn,E[12]=nn,E[13]=on,E[14]=an,E[15]=sn,E[16]=un,E[17]=fn,E[18]=cn,O!==0&&(E[19]=O,_.length++),_};Math.imul||(R=C);function N(F,s,p){p.negative=s.negative^F.negative,p.length=F.length+s.length;for(var _=0,y=0,T=0;T<p.length-1;T++){var E=y;y=0;for(var O=_&67108863,P=Math.min(T,s.length-1),l=Math.max(0,T-F.length+1);l<=P;l++){var U=T-l,ot=F.words[U]|0,at=s.words[l]|0,ut=ot*at,ft=ut&67108863;E=E+(ut/67108864|0)|0,ft=ft+O|0,O=ft&67108863,E=E+(ft>>>26)|0,y+=E>>>26,E&=67108863}p.words[T]=O,_=E,E=y}return _!==0?p.words[T]=_:p.length--,p.strip()}function V(F,s,p){var _=new Y;return _.mulp(F,s,p)}i.prototype.mulTo=function(s,p){var _,y=this.length+s.length;return this.length===10&&s.length===10?_=R(this,s,p):y<63?_=C(this,s,p):y<1024?_=N(this,s,p):_=V(this,s,p),_};function Y(F,s){this.x=F,this.y=s}Y.prototype.makeRBT=function(s){for(var p=new Array(s),_=i.prototype._countBits(s)-1,y=0;y<s;y++)p[y]=this.revBin(y,_,s);return p},Y.prototype.revBin=function(s,p,_){if(s===0||s===_-1)return s;for(var y=0,T=0;T<p;T++)y|=(s&1)<<p-T-1,s>>=1;return y},Y.prototype.permute=function(s,p,_,y,T,E){for(var O=0;O<E;O++)y[O]=p[s[O]],T[O]=_[s[O]]},Y.prototype.transform=function(s,p,_,y,T,E){this.permute(E,s,p,_,y,T);for(var O=1;O<T;O<<=1)for(var P=O<<1,l=Math.cos(2*Math.PI/P),U=Math.sin(2*Math.PI/P),ot=0;ot<T;ot+=P)for(var at=l,ut=U,ft=0;ft<O;ft++){var Mt=_[ot+ft],vt=y[ot+ft],X=_[ot+ft+O],$=y[ot+ft+O],A=at*X-ut*$;$=at*$+ut*X,X=A,_[ot+ft]=Mt+X,y[ot+ft]=vt+$,_[ot+ft+O]=Mt-X,y[ot+ft+O]=vt-$,ft!==P&&(A=l*at-U*ut,ut=l*ut+U*at,at=A)}},Y.prototype.guessLen13b=function(s,p){var _=Math.max(p,s)|1,y=_&1,T=0;for(_=_/2|0;_;_=_>>>1)T++;return 1<<T+1+y},Y.prototype.conjugate=function(s,p,_){if(!(_<=1))for(var y=0;y<_/2;y++){var T=s[y];s[y]=s[_-y-1],s[_-y-1]=T,T=p[y],p[y]=-p[_-y-1],p[_-y-1]=-T}},Y.prototype.normalize13b=function(s,p){for(var _=0,y=0;y<p/2;y++){var T=Math.round(s[2*y+1]/p)*8192+Math.round(s[2*y]/p)+_;s[y]=T&67108863,T<67108864?_=0:_=T/67108864|0}return s},Y.prototype.convert13b=function(s,p,_,y){for(var T=0,E=0;E<p;E++)T=T+(s[E]|0),_[2*E]=T&8191,T=T>>>13,_[2*E+1]=T&8191,T=T>>>13;for(E=2*p;E<y;++E)_[E]=0;n(T===0),n((T&-8192)===0)},Y.prototype.stub=function(s){for(var p=new Array(s),_=0;_<s;_++)p[_]=0;return p},Y.prototype.mulp=function(s,p,_){var y=2*this.guessLen13b(s.length,p.length),T=this.makeRBT(y),E=this.stub(y),O=new Array(y),P=new Array(y),l=new Array(y),U=new Array(y),ot=new Array(y),at=new Array(y),ut=_.words;ut.length=y,this.convert13b(s.words,s.length,O,y),this.convert13b(p.words,p.length,U,y),this.transform(O,E,P,l,y,T),this.transform(U,E,ot,at,y,T);for(var ft=0;ft<y;ft++){var Mt=P[ft]*ot[ft]-l[ft]*at[ft];l[ft]=P[ft]*at[ft]+l[ft]*ot[ft],P[ft]=Mt}return this.conjugate(P,l,y),this.transform(P,l,ut,E,y,T),this.conjugate(ut,E,y),this.normalize13b(ut,y),_.negative=s.negative^p.negative,_.length=s.length+p.length,_.strip()},i.prototype.mul=function(s){var p=new i(null);return p.words=new Array(this.length+s.length),this.mulTo(s,p)},i.prototype.mulf=function(s){var p=new i(null);return p.words=new Array(this.length+s.length),V(this,s,p)},i.prototype.imul=function(s){return this.clone().mulTo(s,this)},i.prototype.imuln=function(s){n(typeof s=="number"),n(s<67108864);for(var p=0,_=0;_<this.length;_++){var y=(this.words[_]|0)*s,T=(y&67108863)+(p&67108863);p>>=26,p+=y/67108864|0,p+=T>>>26,this.words[_]=T&67108863}return p!==0&&(this.words[_]=p,this.length++),this.length=s===0?1:this.length,this},i.prototype.muln=function(s){return this.clone().imuln(s)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(s){var p=m(s);if(p.length===0)return new i(1);for(var _=this,y=0;y<p.length&&p[y]===0;y++,_=_.sqr());if(++y<p.length)for(var T=_.sqr();y<p.length;y++,T=T.sqr())p[y]!==0&&(_=_.mul(T));return _},i.prototype.iushln=function(s){n(typeof s=="number"&&s>=0);var p=s%26,_=(s-p)/26,y=67108863>>>26-p<<26-p,T;if(p!==0){var E=0;for(T=0;T<this.length;T++){var O=this.words[T]&y,P=(this.words[T]|0)-O<<p;this.words[T]=P|E,E=O>>>26-p}E&&(this.words[T]=E,this.length++)}if(_!==0){for(T=this.length-1;T>=0;T--)this.words[T+_]=this.words[T];for(T=0;T<_;T++)this.words[T]=0;this.length+=_}return this.strip()},i.prototype.ishln=function(s){return n(this.negative===0),this.iushln(s)},i.prototype.iushrn=function(s,p,_){n(typeof s=="number"&&s>=0);var y;p?y=(p-p%26)/26:y=0;var T=s%26,E=Math.min((s-T)/26,this.length),O=67108863^67108863>>>T<<T,P=_;if(y-=E,y=Math.max(0,y),P){for(var l=0;l<E;l++)P.words[l]=this.words[l];P.length=E}if(E!==0)if(this.length>E)for(this.length-=E,l=0;l<this.length;l++)this.words[l]=this.words[l+E];else this.words[0]=0,this.length=1;var U=0;for(l=this.length-1;l>=0&&(U!==0||l>=y);l--){var ot=this.words[l]|0;this.words[l]=U<<26-T|ot>>>T,U=ot&O}return P&&U!==0&&(P.words[P.length++]=U),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(s,p,_){return n(this.negative===0),this.iushrn(s,p,_)},i.prototype.shln=function(s){return this.clone().ishln(s)},i.prototype.ushln=function(s){return this.clone().iushln(s)},i.prototype.shrn=function(s){return this.clone().ishrn(s)},i.prototype.ushrn=function(s){return this.clone().iushrn(s)},i.prototype.testn=function(s){n(typeof s=="number"&&s>=0);var p=s%26,_=(s-p)/26,y=1<<p;if(this.length<=_)return!1;var T=this.words[_];return!!(T&y)},i.prototype.imaskn=function(s){n(typeof s=="number"&&s>=0);var p=s%26,_=(s-p)/26;if(n(this.negative===0,"imaskn works only with positive numbers"),this.length<=_)return this;if(p!==0&&_++,this.length=Math.min(_,this.length),p!==0){var y=67108863^67108863>>>p<<p;this.words[this.length-1]&=y}return this.length===0&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.maskn=function(s){return this.clone().imaskn(s)},i.prototype.iaddn=function(s){return n(typeof s=="number"),n(s<67108864),s<0?this.isubn(-s):this.negative!==0?this.length===1&&(this.words[0]|0)<s?(this.words[0]=s-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(s),this.negative=1,this):this._iaddn(s)},i.prototype._iaddn=function(s){this.words[0]+=s;for(var p=0;p<this.length&&this.words[p]>=67108864;p++)this.words[p]-=67108864,p===this.length-1?this.words[p+1]=1:this.words[p+1]++;return this.length=Math.max(this.length,p+1),this},i.prototype.isubn=function(s){if(n(typeof s=="number"),n(s<67108864),s<0)return this.iaddn(-s);if(this.negative!==0)return this.negative=0,this.iaddn(s),this.negative=1,this;if(this.words[0]-=s,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var p=0;p<this.length&&this.words[p]<0;p++)this.words[p]+=67108864,this.words[p+1]-=1;return this.strip()},i.prototype.addn=function(s){return this.clone().iaddn(s)},i.prototype.subn=function(s){return this.clone().isubn(s)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(s,p,_){var y=s.length+_,T;this._expand(y);var E,O=0;for(T=0;T<s.length;T++){E=(this.words[T+_]|0)+O;var P=(s.words[T]|0)*p;E-=P&67108863,O=(E>>26)-(P/67108864|0),this.words[T+_]=E&67108863}for(;T<this.length-_;T++)E=(this.words[T+_]|0)+O,O=E>>26,this.words[T+_]=E&67108863;if(O===0)return this.strip();for(n(O===-1),O=0,T=0;T<this.length;T++)E=-(this.words[T]|0)+O,O=E>>26,this.words[T]=E&67108863;return this.negative=1,this.strip()},i.prototype._wordDiv=function(s,p){var _=this.length-s.length,y=this.clone(),T=s,E=T.words[T.length-1]|0,O=this._countBits(E);_=26-O,_!==0&&(T=T.ushln(_),y.iushln(_),E=T.words[T.length-1]|0);var P=y.length-T.length,l;if(p!=="mod"){l=new i(null),l.length=P+1,l.words=new Array(l.length);for(var U=0;U<l.length;U++)l.words[U]=0}var ot=y.clone()._ishlnsubmul(T,1,P);ot.negative===0&&(y=ot,l&&(l.words[P]=1));for(var at=P-1;at>=0;at--){var ut=(y.words[T.length+at]|0)*67108864+(y.words[T.length+at-1]|0);for(ut=Math.min(ut/E|0,67108863),y._ishlnsubmul(T,ut,at);y.negative!==0;)ut--,y.negative=0,y._ishlnsubmul(T,1,at),y.isZero()||(y.negative^=1);l&&(l.words[at]=ut)}return l&&l.strip(),y.strip(),p!=="div"&&_!==0&&y.iushrn(_),{div:l||null,mod:y}},i.prototype.divmod=function(s,p,_){if(n(!s.isZero()),this.isZero())return{div:new i(0),mod:new i(0)};var y,T,E;return this.negative!==0&&s.negative===0?(E=this.neg().divmod(s,p),p!=="mod"&&(y=E.div.neg()),p!=="div"&&(T=E.mod.neg(),_&&T.negative!==0&&T.iadd(s)),{div:y,mod:T}):this.negative===0&&s.negative!==0?(E=this.divmod(s.neg(),p),p!=="mod"&&(y=E.div.neg()),{div:y,mod:E.mod}):(this.negative&s.negative)!==0?(E=this.neg().divmod(s.neg(),p),p!=="div"&&(T=E.mod.neg(),_&&T.negative!==0&&T.isub(s)),{div:E.div,mod:T}):s.length>this.length||this.cmp(s)<0?{div:new i(0),mod:this}:s.length===1?p==="div"?{div:this.divn(s.words[0]),mod:null}:p==="mod"?{div:null,mod:new i(this.modn(s.words[0]))}:{div:this.divn(s.words[0]),mod:new i(this.modn(s.words[0]))}:this._wordDiv(s,p)},i.prototype.div=function(s){return this.divmod(s,"div",!1).div},i.prototype.mod=function(s){return this.divmod(s,"mod",!1).mod},i.prototype.umod=function(s){return this.divmod(s,"mod",!0).mod},i.prototype.divRound=function(s){var p=this.divmod(s);if(p.mod.isZero())return p.div;var _=p.div.negative!==0?p.mod.isub(s):p.mod,y=s.ushrn(1),T=s.andln(1),E=_.cmp(y);return E<0||T===1&&E===0?p.div:p.div.negative!==0?p.div.isubn(1):p.div.iaddn(1)},i.prototype.modn=function(s){n(s<=67108863);for(var p=(1<<26)%s,_=0,y=this.length-1;y>=0;y--)_=(p*_+(this.words[y]|0))%s;return _},i.prototype.idivn=function(s){n(s<=67108863);for(var p=0,_=this.length-1;_>=0;_--){var y=(this.words[_]|0)+p*67108864;this.words[_]=y/s|0,p=y%s}return this.strip()},i.prototype.divn=function(s){return this.clone().idivn(s)},i.prototype.egcd=function(s){n(s.negative===0),n(!s.isZero());var p=this,_=s.clone();p.negative!==0?p=p.umod(s):p=p.clone();for(var y=new i(1),T=new i(0),E=new i(0),O=new i(1),P=0;p.isEven()&&_.isEven();)p.iushrn(1),_.iushrn(1),++P;for(var l=_.clone(),U=p.clone();!p.isZero();){for(var ot=0,at=1;(p.words[0]&at)===0&&ot<26;++ot,at<<=1);if(ot>0)for(p.iushrn(ot);ot-- >0;)(y.isOdd()||T.isOdd())&&(y.iadd(l),T.isub(U)),y.iushrn(1),T.iushrn(1);for(var ut=0,ft=1;(_.words[0]&ft)===0&&ut<26;++ut,ft<<=1);if(ut>0)for(_.iushrn(ut);ut-- >0;)(E.isOdd()||O.isOdd())&&(E.iadd(l),O.isub(U)),E.iushrn(1),O.iushrn(1);p.cmp(_)>=0?(p.isub(_),y.isub(E),T.isub(O)):(_.isub(p),E.isub(y),O.isub(T))}return{a:E,b:O,gcd:_.iushln(P)}},i.prototype._invmp=function(s){n(s.negative===0),n(!s.isZero());var p=this,_=s.clone();p.negative!==0?p=p.umod(s):p=p.clone();for(var y=new i(1),T=new i(0),E=_.clone();p.cmpn(1)>0&&_.cmpn(1)>0;){for(var O=0,P=1;(p.words[0]&P)===0&&O<26;++O,P<<=1);if(O>0)for(p.iushrn(O);O-- >0;)y.isOdd()&&y.iadd(E),y.iushrn(1);for(var l=0,U=1;(_.words[0]&U)===0&&l<26;++l,U<<=1);if(l>0)for(_.iushrn(l);l-- >0;)T.isOdd()&&T.iadd(E),T.iushrn(1);p.cmp(_)>=0?(p.isub(_),y.isub(T)):(_.isub(p),T.isub(y))}var ot;return p.cmpn(1)===0?ot=y:ot=T,ot.cmpn(0)<0&&ot.iadd(s),ot},i.prototype.gcd=function(s){if(this.isZero())return s.abs();if(s.isZero())return this.abs();var p=this.clone(),_=s.clone();p.negative=0,_.negative=0;for(var y=0;p.isEven()&&_.isEven();y++)p.iushrn(1),_.iushrn(1);do{for(;p.isEven();)p.iushrn(1);for(;_.isEven();)_.iushrn(1);var T=p.cmp(_);if(T<0){var E=p;p=_,_=E}else if(T===0||_.cmpn(1)===0)break;p.isub(_)}while(!0);return _.iushln(y)},i.prototype.invm=function(s){return this.egcd(s).a.umod(s)},i.prototype.isEven=function(){return(this.words[0]&1)===0},i.prototype.isOdd=function(){return(this.words[0]&1)===1},i.prototype.andln=function(s){return this.words[0]&s},i.prototype.bincn=function(s){n(typeof s=="number");var p=s%26,_=(s-p)/26,y=1<<p;if(this.length<=_)return this._expand(_+1),this.words[_]|=y,this;for(var T=y,E=_;T!==0&&E<this.length;E++){var O=this.words[E]|0;O+=T,T=O>>>26,O&=67108863,this.words[E]=O}return T!==0&&(this.words[E]=T,this.length++),this},i.prototype.isZero=function(){return this.length===1&&this.words[0]===0},i.prototype.cmpn=function(s){var p=s<0;if(this.negative!==0&&!p)return-1;if(this.negative===0&&p)return 1;this.strip();var _;if(this.length>1)_=1;else{p&&(s=-s),n(s<=67108863,"Number is too big");var y=this.words[0]|0;_=y===s?0:y<s?-1:1}return this.negative!==0?-_|0:_},i.prototype.cmp=function(s){if(this.negative!==0&&s.negative===0)return-1;if(this.negative===0&&s.negative!==0)return 1;var p=this.ucmp(s);return this.negative!==0?-p|0:p},i.prototype.ucmp=function(s){if(this.length>s.length)return 1;if(this.length<s.length)return-1;for(var p=0,_=this.length-1;_>=0;_--){var y=this.words[_]|0,T=s.words[_]|0;if(y!==T){y<T?p=-1:y>T&&(p=1);break}}return p},i.prototype.gtn=function(s){return this.cmpn(s)===1},i.prototype.gt=function(s){return this.cmp(s)===1},i.prototype.gten=function(s){return this.cmpn(s)>=0},i.prototype.gte=function(s){return this.cmp(s)>=0},i.prototype.ltn=function(s){return this.cmpn(s)===-1},i.prototype.lt=function(s){return this.cmp(s)===-1},i.prototype.lten=function(s){return this.cmpn(s)<=0},i.prototype.lte=function(s){return this.cmp(s)<=0},i.prototype.eqn=function(s){return this.cmpn(s)===0},i.prototype.eq=function(s){return this.cmp(s)===0},i.red=function(s){return new et(s)},i.prototype.toRed=function(s){return n(!this.red,"Already a number in reduction context"),n(this.negative===0,"red works only with positives"),s.convertTo(this)._forceRed(s)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(s){return this.red=s,this},i.prototype.forceRed=function(s){return n(!this.red,"Already a number in reduction context"),this._forceRed(s)},i.prototype.redAdd=function(s){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,s)},i.prototype.redIAdd=function(s){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,s)},i.prototype.redSub=function(s){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,s)},i.prototype.redISub=function(s){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,s)},i.prototype.redShl=function(s){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,s)},i.prototype.redMul=function(s){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,s),this.red.mul(this,s)},i.prototype.redIMul=function(s){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,s),this.red.imul(this,s)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(s){return n(this.red&&!s.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,s)};var K={k256:null,p224:null,p192:null,p25519:null};function Q(F,s){this.name=F,this.p=new i(s,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Q.prototype._tmp=function(){var s=new i(null);return s.words=new Array(Math.ceil(this.n/13)),s},Q.prototype.ireduce=function(s){var p=s,_;do this.split(p,this.tmp),p=this.imulK(p),p=p.iadd(this.tmp),_=p.bitLength();while(_>this.n);var y=_<this.n?-1:p.ucmp(this.p);return y===0?(p.words[0]=0,p.length=1):y>0?p.isub(this.p):p.strip!==void 0?p.strip():p._strip(),p},Q.prototype.split=function(s,p){s.iushrn(this.n,0,p)},Q.prototype.imulK=function(s){return s.imul(this.k)};function j(){Q.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}r(j,Q),j.prototype.split=function(s,p){for(var _=4194303,y=Math.min(s.length,9),T=0;T<y;T++)p.words[T]=s.words[T];if(p.length=y,s.length<=9){s.words[0]=0,s.length=1;return}var E=s.words[9];for(p.words[p.length++]=E&_,T=10;T<s.length;T++){var O=s.words[T]|0;s.words[T-10]=(O&_)<<4|E>>>22,E=O}E>>>=22,s.words[T-10]=E,E===0&&s.length>10?s.length-=10:s.length-=9},j.prototype.imulK=function(s){s.words[s.length]=0,s.words[s.length+1]=0,s.length+=2;for(var p=0,_=0;_<s.length;_++){var y=s.words[_]|0;p+=y*977,s.words[_]=p&67108863,p=y*64+(p/67108864|0)}return s.words[s.length-1]===0&&(s.length--,s.words[s.length-1]===0&&s.length--),s};function Z(){Q.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}r(Z,Q);function W(){Q.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}r(W,Q);function st(){Q.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}r(st,Q),st.prototype.imulK=function(s){for(var p=0,_=0;_<s.length;_++){var y=(s.words[_]|0)*19+p,T=y&67108863;y>>>=26,s.words[_]=T,p=y}return p!==0&&(s.words[s.length++]=p),s},i._prime=function(s){if(K[s])return K[s];var p;if(s==="k256")p=new j;else if(s==="p224")p=new Z;else if(s==="p192")p=new W;else if(s==="p25519")p=new st;else throw new Error("Unknown prime "+s);return K[s]=p,p};function et(F){if(typeof F=="string"){var s=i._prime(F);this.m=s.p,this.prime=s}else n(F.gtn(1),"modulus must be greater than 1"),this.m=F,this.prime=null}et.prototype._verify1=function(s){n(s.negative===0,"red works only with positives"),n(s.red,"red works only with red numbers")},et.prototype._verify2=function(s,p){n((s.negative|p.negative)===0,"red works only with positives"),n(s.red&&s.red===p.red,"red works only with red numbers")},et.prototype.imod=function(s){return this.prime?this.prime.ireduce(s)._forceRed(this):s.umod(this.m)._forceRed(this)},et.prototype.neg=function(s){return s.isZero()?s.clone():this.m.sub(s)._forceRed(this)},et.prototype.add=function(s,p){this._verify2(s,p);var _=s.add(p);return _.cmp(this.m)>=0&&_.isub(this.m),_._forceRed(this)},et.prototype.iadd=function(s,p){this._verify2(s,p);var _=s.iadd(p);return _.cmp(this.m)>=0&&_.isub(this.m),_},et.prototype.sub=function(s,p){this._verify2(s,p);var _=s.sub(p);return _.cmpn(0)<0&&_.iadd(this.m),_._forceRed(this)},et.prototype.isub=function(s,p){this._verify2(s,p);var _=s.isub(p);return _.cmpn(0)<0&&_.iadd(this.m),_},et.prototype.shl=function(s,p){return this._verify1(s),this.imod(s.ushln(p))},et.prototype.imul=function(s,p){return this._verify2(s,p),this.imod(s.imul(p))},et.prototype.mul=function(s,p){return this._verify2(s,p),this.imod(s.mul(p))},et.prototype.isqr=function(s){return this.imul(s,s.clone())},et.prototype.sqr=function(s){return this.mul(s,s)},et.prototype.sqrt=function(s){if(s.isZero())return s.clone();var p=this.m.andln(3);if(n(p%2===1),p===3){var _=this.m.add(new i(1)).iushrn(2);return this.pow(s,_)}for(var y=this.m.subn(1),T=0;!y.isZero()&&y.andln(1)===0;)T++,y.iushrn(1);n(!y.isZero());var E=new i(1).toRed(this),O=E.redNeg(),P=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new i(2*l*l).toRed(this);this.pow(l,P).cmp(O)!==0;)l.redIAdd(O);for(var U=this.pow(l,y),ot=this.pow(s,y.addn(1).iushrn(1)),at=this.pow(s,y),ut=T;at.cmp(E)!==0;){for(var ft=at,Mt=0;ft.cmp(E)!==0;Mt++)ft=ft.redSqr();n(Mt<ut);var vt=this.pow(U,new i(1).iushln(ut-Mt-1));ot=ot.redMul(vt),U=vt.redSqr(),at=at.redMul(U),ut=Mt}return ot},et.prototype.invm=function(s){var p=s._invmp(this.m);return p.negative!==0?(p.negative=0,this.imod(p).redNeg()):this.imod(p)},et.prototype.pow=function(s,p){if(p.isZero())return new i(1).toRed(this);if(p.cmpn(1)===0)return s.clone();var _=4,y=new Array(1<<_);y[0]=new i(1).toRed(this),y[1]=s;for(var T=2;T<y.length;T++)y[T]=this.mul(y[T-1],s);var E=y[0],O=0,P=0,l=p.bitLength()%26;for(l===0&&(l=26),T=p.length-1;T>=0;T--){for(var U=p.words[T],ot=l-1;ot>=0;ot--){var at=U>>ot&1;if(E!==y[0]&&(E=this.sqr(E)),at===0&&O===0){P=0;continue}O<<=1,O|=at,P++,!(P!==_&&(T!==0||ot!==0))&&(E=this.mul(E,y[O]),P=0,O=0)}l=26}return E},et.prototype.convertTo=function(s){var p=s.umod(this.m);return p===s?p.clone():p},et.prototype.convertFrom=function(s){var p=s.clone();return p.red=null,p},i.mont=function(s){return new rt(s)};function rt(F){et.call(this,F),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}r(rt,et),rt.prototype.convertTo=function(s){return this.imod(s.ushln(this.shift))},rt.prototype.convertFrom=function(s){var p=this.imod(s.mul(this.rinv));return p.red=null,p},rt.prototype.imul=function(s,p){if(s.isZero()||p.isZero())return s.words[0]=0,s.length=1,s;var _=s.imul(p),y=_.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),T=_.isub(y).iushrn(this.shift),E=T;return T.cmp(this.m)>=0?E=T.isub(this.m):T.cmpn(0)<0&&(E=T.iadd(this.m)),E._forceRed(this)},rt.prototype.mul=function(s,p){if(s.isZero()||p.isZero())return new i(0)._forceRed(this);var _=s.mul(p),y=_.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),T=_.isub(y).iushrn(this.shift),E=T;return T.cmp(this.m)>=0?E=T.isub(this.m):T.cmpn(0)<0&&(E=T.iadd(this.m)),E._forceRed(this)},rt.prototype.invm=function(s){var p=this.imod(s._invmp(this.m).mul(this.r2));return p._forceRed(this)}})(typeof mn>"u"||mn,aa)});var kn=xt((ah,sa)=>{"use strict";var oh=ur();sa.exports=_f;function _f(e){return e&&typeof e=="object"&&!!e.words}});var ca=xt((sh,fa)=>{"use strict";var ua=kn();fa.exports=Sf;function Sf(e){return Array.isArray(e)&&e.length===2&&ua(e[0])&&ua(e[1])}});var mr=xt((uh,Xt)=>{var Xn=!1;if(typeof Float64Array<"u")if(le=new Float64Array(1),re=new Uint32Array(le.buffer),le[0]=1,Xn=!0,re[1]===1072693248){let e=function(r,i){return re[0]=r,re[1]=i,le[0]},t=function(r){return le[0]=r,re[0]},n=function(r){return le[0]=r,re[1]};Tf=e,Bf=t,Pf=n,Xt.exports=function(i){return le[0]=i,[re[0],re[1]]},Xt.exports.pack=e,Xt.exports.lo=t,Xt.exports.hi=n}else if(re[0]===1072693248){let e=function(r,i){return re[1]=r,re[0]=i,le[0]},t=function(r){return le[0]=r,re[1]},n=function(r){return le[0]=r,re[0]};Df=e,Ff=t,Af=n,Xt.exports=function(i){return le[0]=i,[re[1],re[0]]},Xt.exports.pack=e,Xt.exports.lo=t,Xt.exports.hi=n}else Xn=!1;var le,re,Tf,Bf,Pf,Df,Ff,Af;if(!Xn){let e=function(r,i){return he.writeUInt32LE(r,0,!0),he.writeUInt32LE(i,4,!0),he.readDoubleLE(0,!0)},t=function(r){return he.writeDoubleLE(r,0,!0),he.readUInt32LE(0,!0)},n=function(r){return he.writeDoubleLE(r,0,!0),he.readUInt32LE(4,!0)};Uf=e,zf=t,If=n,he=new Buffer(8),Xt.exports=function(i){return he.writeDoubleLE(i,0,!0),[he.readUInt32LE(0,!0),he.readUInt32LE(4,!0)]},Xt.exports.pack=e,Xt.exports.lo=t,Xt.exports.hi=n}var he,Uf,zf,If;Xt.exports.sign=function(e){return Xt.exports.hi(e)>>>31};Xt.exports.exponent=function(e){var t=Xt.exports.hi(e);return(t<<1>>>21)-1023};Xt.exports.fraction=function(e){var t=Xt.exports.lo(e),n=Xt.exports.hi(e),r=n&(1<<20)-1;return n&2146435072&&(r+=1<<20),[t,r]};Xt.exports.denormalized=function(e){var t=Xt.exports.hi(e);return!(t&2146435072)}});var Yn=xt((fh,ha)=>{"use strict";var la=ur(),Ef=mr();ha.exports=Lf;function Lf(e){var t=Ef.exponent(e);return t<52?new la(e):new la(e*Math.pow(2,52-t)).ushln(t-52)}});var pa=xt((ch,va)=>{"use strict";var Gf=ur();va.exports=Rf;function Rf(e){return new Gf(e)}});var kr=xt((lh,ga)=>{"use strict";var Of=ur();ga.exports=qf;function qf(e){return e.cmp(new Of(0))}});var Qe=xt((hh,wa)=>{"use strict";var Xr=Yn(),da=kr();wa.exports=Nf;function Nf(e,t){var n=da(e),r=da(t);if(n===0)return[Xr(0),Xr(1)];if(r===0)return[Xr(0),Xr(0)];r<0&&(e=e.neg(),t=t.neg());var i=e.gcd(t);return i.cmpn(1)?[e.div(i),t.div(i)]:[e,t]}});var Zn=xt((vh,xa)=>{"use strict";var Vf=Qe();xa.exports=Cf;function Cf(e,t){return Vf(e[0].mul(t[1]),e[1].mul(t[0]))}});var Yr=xt((ph,Sa)=>{"use strict";var Ma=ca(),ya=kn(),Le=Yn(),ba=pa(),mf=Qe(),kf=Zn();Sa.exports=_a;function _a(e,t){if(Ma(e))return t?kf(e,_a(t)):[e[0].clone(),e[1].clone()];var n=0,r,i;if(ya(e))r=e.clone();else if(typeof e=="string")r=ba(e);else{if(e===0)return[Le(0),Le(1)];if(e===Math.floor(e))r=Le(e);else{for(;e!==Math.floor(e);)e=e*Math.pow(2,256),n-=256;r=Le(e)}}if(Ma(t))r.mul(t[1]),i=t[0].clone();else if(ya(t))i=t.clone();else if(typeof t=="string")i=ba(t);else if(!t)i=Le(1);else if(t===Math.floor(t))i=Le(t);else{for(;t!==Math.floor(t);)t=t*Math.pow(2,256),n+=256;i=Le(t)}return n>0?r=r.ushln(n):n<0&&(i=i.ushln(-n)),mf(r,i)}});var Ba=xt((gh,Ta)=>{"use strict";Ta.exports=Xf;function Xf(e,t){return e[0].mul(t[1]).cmp(t[0].mul(e[1]))}});var Da=xt((dh,Pa)=>{"use strict";var Yf=kr();Pa.exports=Zf;function Zf(e){var t=e.length,n=e.words,r=0;if(t===1)r=n[0];else if(t===2)r=n[0]+n[1]*67108864;else for(var i=0;i<t;i++){var o=n[i];r+=o*Math.pow(67108864,i)}return Yf(e)*r}});var za=xt((wh,Ua)=>{"use strict";var Fa=mr(),Aa=rr().countTrailingZeros;Ua.exports=Hf;function Hf(e){var t=Aa(Fa.lo(e));if(t<32)return t;var n=Aa(Fa.hi(e));return n>20?52:n+32}});var Ea=xt((xh,Ia)=>{"use strict";var Hn=Da(),$f=za();Ia.exports=Wf;function Wf(e){var t=e[0],n=e[1];if(t.cmpn(0)===0)return 0;var r=t.abs().divmod(n.abs()),i=r.div,o=Hn(i),a=r.mod,f=t.negative!==n.negative?-1:1;if(a.cmpn(0)===0)return f*o;if(o){var h=$f(o)+4,v=Hn(a.ushln(h).divRound(n));return f*(o+v*Math.pow(2,-h))}else{var d=n.bitLength()-a.bitLength()+53,v=Hn(a.ushln(d).divRound(n));return d<1023?f*v*Math.pow(2,-d):(v*=Math.pow(2,-1023),f*v*Math.pow(2,1023-d))}}});var Ga=xt((Mh,La)=>{"use strict";La.exports=Qf;var Kf=Yr();function Qf(e){for(var t=new Array(e.length),n=0;n<e.length;++n)t[n]=Kf(e[n]);return t}});var Na=xt((yh,qa)=>{"use strict";var $n=mr(),Ra=Math.pow(2,-1074),Oa=-1>>>0;qa.exports=Jf;function Jf(e,t){if(isNaN(e)||isNaN(t))return NaN;if(e===t)return e;if(e===0)return t<0?-Ra:Ra;var n=$n.hi(e),r=$n.lo(e);return t>e==e>0?r===Oa?(n+=1,r=0):r+=1:r===0?(r=Oa,n-=1):r-=1,$n.pack(r,n)}});var Wn=xt((bh,Va)=>{"use strict";var jf=Qe();Va.exports=tc;function tc(e,t){return jf(e[0].mul(t[0]),e[1].mul(t[1]))}});var Kn=xt((_h,Ca)=>{"use strict";var ec=Qe();Ca.exports=rc;function rc(e,t){return ec(e[0].mul(t[1]).sub(e[1].mul(t[0])),e[1].mul(t[1]))}});var Xa=xt((Sh,ka)=>{"use strict";var ma=kr();ka.exports=nc;function nc(e){return ma(e[0])*ma(e[1])}});var Za=xt((Th,Ya)=>{"use strict";var ic=Kn();Ya.exports=oc;function oc(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;++i)r[i]=ic(e[i],t[i]);return r}});var $a=xt((Bh,Ha)=>{"use strict";var ac=Qe();Ha.exports=sc;function sc(e,t){return ac(e[0].mul(t[1]).add(t[0].mul(e[1])),e[1].mul(t[1]))}});var Ka=xt((Ph,Wa)=>{"use strict";var uc=$a();Wa.exports=fc;function fc(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;++i)r[i]=uc(e[i],t[i]);return r}});var Ja=xt((Dh,Qa)=>{"use strict";var cc=Yr(),lc=Wn();Qa.exports=hc;function hc(e,t){for(var n=cc(t),r=e.length,i=new Array(r),o=0;o<r;++o)i[o]=lc(e[o],n);return i}});var rs=xt((Fh,es)=>{"use strict";es.exports=xc;var ja=Wn(),vc=Zn(),pc=Kn(),gc=Xa(),Qn=Za(),dc=Ka(),wc=Ja();function ts(e,t){return pc(ja(e[0],t[1]),ja(e[1],t[0]))}function xc(e,t,n,r){var i=Qn(t,e),o=Qn(r,n),a=ts(i,o);if(gc(a)===0)return null;var f=Qn(e,n),h=ts(o,f),v=vc(h,a),d=wc(i,v),D=dc(e,d);return D}});var ls=xt((Ah,cs)=>{"use strict";cs.exports=Ac;var Mc=vo(),jn=ra(),as=ia(),ns=Yr(),is=Ba(),Jn=Ea(),Zr=Ga(),oe=Na(),yc=rs();function os(e){var t=Jn(e);return[oe(t,-1/0),oe(t,1/0)]}function bc(e,t){for(var n=new Array(t.length),r=0;r<t.length;++r){var i=t[r],o=e[i[0]],a=e[i[1]];n[r]=[oe(Math.min(o[0],a[0]),-1/0),oe(Math.min(o[1],a[1]),-1/0),oe(Math.max(o[0],a[0]),1/0),oe(Math.max(o[1],a[1]),1/0)]}return n}function ss(e){for(var t=new Array(e.length),n=0;n<e.length;++n){var r=e[n];t[n]=[oe(r[0],-1/0),oe(r[1],-1/0),oe(r[0],1/0),oe(r[1],1/0)]}return t}function _c(e,t,n){var r=[];return jn(n,function(i,o){var a=t[i],f=t[o];if(!(a[0]===f[0]||a[0]===f[1]||a[1]===f[0]||a[1]===f[1])){var h=e[a[0]],v=e[a[1]],d=e[f[0]],D=e[f[1]];as(h,v,d,D)&&r.push([i,o])}}),r}function Sc(e,t,n,r){var i=[];return jn(n,r,function(o,a){var f=t[o];if(!(f[0]===a||f[1]===a)){var h=e[a],v=e[f[0]],d=e[f[1]];as(v,d,h,h)&&i.push([o,a])}}),i}function Tc(e,t,n,r,i){var o,a,f=e.map(function(et){return[ns(et[0]),ns(et[1])]});for(o=0;o<n.length;++o){var h=n[o];a=h[0];var v=h[1],d=t[a],D=t[v],m=yc(Zr(e[d[0]]),Zr(e[d[1]]),Zr(e[D[0]]),Zr(e[D[1]]));if(m){var C=e.length;e.push([Jn(m[0]),Jn(m[1])]),f.push(m),r.push([a,C],[v,C])}}for(r.sort(function(et,rt){if(et[0]!==rt[0])return et[0]-rt[0];var F=f[et[1]],s=f[rt[1]];return is(F[0],s[0])||is(F[1],s[1])}),o=r.length-1;o>=0;--o){var R=r[o];a=R[0];var N=t[a],V=N[0],Y=N[1],K=e[V],Q=e[Y];if((K[0]-Q[0]||K[1]-Q[1])<0){var j=V;V=Y,Y=j}N[0]=V;var Z=N[1]=R[1],W;for(i&&(W=N[2]);o>0&&r[o-1][0]===a;){var R=r[--o],st=R[1];i?t.push([Z,st,W]):t.push([Z,st]),Z=st}i?t.push([Z,Y,W]):t.push([Z,Y])}return f}function us(e,t,n){for(var r=t.length,i=new Mc(r),o=[],a=0;a<t.length;++a){var f=t[a],h=os(f[0]),v=os(f[1]);o.push([oe(h[0],-1/0),oe(v[0],-1/0),oe(h[1],1/0),oe(v[1],1/0)])}jn(o,function(R,N){i.link(R,N)});for(var d=!0,D=new Array(r),a=0;a<r;++a){var m=i.find(a);m!==a&&(d=!1,e[m]=[Math.min(e[a][0],e[m][0]),Math.min(e[a][1],e[m][1])])}if(d)return null;for(var C=0,a=0;a<r;++a){var m=i.find(a);m===a?(D[a]=C,e[C++]=e[a]):D[a]=-1}e.length=C;for(var a=0;a<r;++a)D[a]<0&&(D[a]=D[i.find(a)]);return D}function Bc(e,t){return e[0]-t[0]||e[1]-t[1]}function Pc(e,t){var n=e[0]-t[0]||e[1]-t[1];return n||(e[2]<t[2]?-1:e[2]>t[2]?1:0)}function fs(e,t,n){if(e.length!==0){if(t)for(var r=0;r<e.length;++r){var i=e[r],o=t[i[0]],a=t[i[1]];i[0]=Math.min(o,a),i[1]=Math.max(o,a)}else for(var r=0;r<e.length;++r){var i=e[r],o=i[0],a=i[1];i[0]=Math.min(o,a),i[1]=Math.max(o,a)}n?e.sort(Pc):e.sort(Bc);for(var f=1,r=1;r<e.length;++r){var h=e[r-1],v=e[r];v[0]===h[0]&&v[1]===h[1]&&(!n||v[2]===h[2])||(e[f++]=v)}e.length=f}}function Dc(e,t,n){var r=us(e,[],ss(e));return fs(t,r,n),!!r}function Fc(e,t,n){var r=bc(e,t),i=_c(e,t,r),o=ss(e),a=Sc(e,t,r,o),f=Tc(e,t,i,a,n),h=us(e,f,o);return fs(t,h,n),h?!0:i.length>0||a.length>0}function Ac(e,t,n){var r;if(n){r=t;for(var i=new Array(t.length),o=0;o<t.length;++o){var a=t[o];i[o]=[a[0],a[1],n[o]]}t=i}for(var f=Dc(e,t,!!n);Fc(e,t,!!n);)f=!0;if(n&&f){r.length=0,n.length=0;for(var o=0;o<t.length;++o){var a=t[o];r.push([a[0],a[1]]),n.push(a[2])}}return f}});function ne(e,t,n,r,i,o,a,f="linear"){let h=e.createTexture({label:t,size:{width:n,height:r},format:o,usage:a,mipLevelCount:i,sampleCount:1,dimension:"2d"}),v=h.createView(),d=[];for(let m=0;m<i;m++)d.push(h.createView({label:t,format:o,dimension:"2d",aspect:"all",baseMipLevel:m,mipLevelCount:1,baseArrayLayer:0,arrayLayerCount:1}));let D=e.createSampler({label:`${t} sampler`,addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:f,minFilter:f,mipmapFilter:f});return{size:{width:n,height:r},texture:h,view:v,mip_view:d,sampler:D}}function Vt(e){return e.canvas?navigator.gpu?.getPreferredCanvasFormat():e.context.getPreferredFormat()}function ve(e,t,n,r){r=r||Vt(e);let i=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT,a=ne(e.device,t,n.width,n.height,1,r,i);e.device.queue.writeTexture({texture:a.texture},n.data,{bytesPerRow:4*n.width},{width:n.width,height:n.height});let f={addressModeU:"repeat",addressModeV:"repeat",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",maxAnisotropy:1};return a.sampler=e.device.createSampler(f),a}async function pe(e,t,n,r){let o=await(await fetch(n)).blob();r=r||Vt(e);let a=await createImageBitmap(o),f=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT,v=ne(e.device,t,a.width,a.height,1,r,f);e.device.queue.copyExternalImageToTexture({source:a},{texture:v.texture},{width:a.width,height:a.height});let d={addressModeU:"repeat",addressModeV:"repeat",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",maxAnisotropy:1};return v.sampler=e.device.createSampler(d),v}var pi="const BLOOM_MIP_COUNT:i32=7;const MODE_PREFILTER:u32=0u;const MODE_DOWNSAMPLE:u32=1u;const MODE_UPSAMPLE_FIRST:u32=2u;const MODE_UPSAMPLE:u32=3u;const EPSILON:f32=1.0e-4;struct bloom_param{parameters:vec4<f32>,combine_constant:f32,doop:u32,ferp:u32,}struct mode_lod_param{mode_lod:u32,}@group(0)@binding(0)var output_texture:texture_storage_2d<rgba16float,write>;@group(0)@binding(1)var input_texture:texture_2d<f32>;@group(0)@binding(2)var bloom_texture:texture_2d<f32>;@group(0)@binding(3)var samp:sampler;@group(0)@binding(4)var<uniform> param:bloom_param;@group(0)@binding(5)var<uniform> pc:mode_lod_param;fn QuadraticThreshold(color:vec4<f32>,threshold:f32,curve:vec3<f32>)->vec4<f32>{let brightness=max(max(color.r,color.g),color.b);var rq:f32=clamp(brightness-curve.x,0.0,curve.y);rq=curve.z*(rq*rq);let ret_color=color*max(rq,brightness-threshold)/max(brightness,EPSILON);return ret_color;}fn Prefilter(color:vec4<f32>,uv:vec2<f32>)->vec4<f32>{let clamp_value=20.0;var c=min(vec4<f32>(clamp_value),color);c=QuadraticThreshold(color,param.parameters.x,param.parameters.yzw);return c;}fn DownsampleBox13(tex:texture_2d<f32>,lod:f32,uv:vec2<f32>,tex_size:vec2<f32>)->vec3<f32>{let A=textureSampleLevel(tex,samp,uv,lod).rgb;let texel_size=tex_size*0.5;let B=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-1.0,-1.0),lod).rgb;let C=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-1.0,1.0),lod).rgb;let D=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(1.0,1.0),lod).rgb;let E=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(1.0,-1.0),lod).rgb;let F=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-2.0,-2.0),lod).rgb;let G=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-2.0,0.0),lod).rgb;let H=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(0.0,2.0),lod).rgb;let I=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(2.0,2.0),lod).rgb;let J=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(2.0,2.0),lod).rgb;let K=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(2.0,0.0),lod).rgb;let L=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(-2.0,-2.0),lod).rgb;let M=textureSampleLevel(tex,samp,uv+texel_size*vec2<f32>(0.0,-2.0),lod).rgb;var result:vec3<f32>=vec3<f32>(0.0);result=result+(B+C+D+E)*0.5;result=result+(F+G+A+M)*0.125;result=result+(G+H+I+A)*0.125;result=result+(A+I+J+K)*0.125;result=result+(M+A+K+L)*0.125;result=result*0.25;return result;}fn UpsampleTent9(tex:texture_2d<f32>,lod:f32,uv:vec2<f32>,texel_size:vec2<f32>,radius:f32)->vec3<f32>{let offset=texel_size.xyxy*vec4<f32>(1.0,1.0,-1.0,0.0)*radius;var result:vec3<f32>=textureSampleLevel(tex,samp,uv,lod).rgb*4.0;result=result+textureSampleLevel(tex,samp,uv-offset.xy,lod).rgb;result=result+textureSampleLevel(tex,samp,uv-offset.wy,lod).rgb*2.0;result=result+textureSampleLevel(tex,samp,uv-offset.zy,lod).rgb;result=result+textureSampleLevel(tex,samp,uv+offset.zw,lod).rgb*2.0;result=result+textureSampleLevel(tex,samp,uv+offset.xw,lod).rgb*2.0;result=result+textureSampleLevel(tex,samp,uv+offset.zy,lod).rgb;result=result+textureSampleLevel(tex,samp,uv+offset.wy,lod).rgb*2.0;result=result+textureSampleLevel(tex,samp,uv+offset.xy,lod).rgb;return result*(1.0/16.0);}fn combine(ex_color:vec3<f32>,color_to_add:vec3<f32>,combine_constant:f32)->vec3<f32>{let existing_color=ex_color+(-color_to_add);let blended_color=(combine_constant*existing_color)+color_to_add;return blended_color;}@compute @workgroup_size(8,4,1)fn cs_main(@builtin(global_invocation_id)global_invocation_id:vec3<u32>){let mode=pc.mode_lod>>16u;let lod=pc.mode_lod&65535u;let imgSize=textureDimensions(output_texture);if(global_invocation_id.x<u32(imgSize.x)&&global_invocation_id.y<u32(imgSize.y)){var texCoords:vec2<f32>=vec2<f32>(f32(global_invocation_id.x)/f32(imgSize.x),f32(global_invocation_id.y)/f32(imgSize.y));texCoords=texCoords+(1.0/vec2<f32>(imgSize))*0.5;let texSize=vec2<f32>(textureDimensions(input_texture,i32(lod)));var color:vec4<f32>=vec4<f32>(1.0);if(mode==MODE_PREFILTER){color=vec4<f32>(DownsampleBox13(input_texture,f32(lod),texCoords,1.0/texSize),1.0);color=Prefilter(color,texCoords);}else if(mode==MODE_DOWNSAMPLE){color=vec4<f32>(DownsampleBox13(input_texture,f32(lod),texCoords,1.0/texSize),1.0);}else if(mode==MODE_UPSAMPLE_FIRST){let bloomTexSize=textureDimensions(input_texture,i32(lod)+1);let sampleScale=1.0;let upsampledTexture=UpsampleTent9(input_texture,f32(lod)+1.0,texCoords,1.0/vec2<f32>(bloomTexSize),sampleScale);let existing=textureSampleLevel(input_texture,samp,texCoords,f32(lod)).rgb;color=vec4<f32>(combine(existing,upsampledTexture,param.combine_constant),1.0);}else if(mode==MODE_UPSAMPLE){let bloomTexSize=textureDimensions(bloom_texture,i32(lod)+1);let sampleScale=1.0;let upsampledTexture=UpsampleTent9(bloom_texture,f32(lod)+1.0,texCoords,1.0/vec2<f32>(bloomTexSize),sampleScale);let existing=textureSampleLevel(input_texture,samp,texCoords,f32(lod)).rgb;color=vec4<f32>(combine(existing,upsampledTexture,param.combine_constant),1.0);}textureStore(output_texture,vec2<i32>(global_invocation_id.xy),color);}}";var ue=7,Ws=0,gi=1,Ks=2,di=3,wi={type:"cobalt:bloom",onInit:async function(e,t={}){return Qs(e,t)},onRun:function(e,t,n){Js(e,t,n)},onDestroy:function(e,t){Mi(t)},onResize:function(e,t){js(e,t)},onViewportPosition:function(e,t){}};function Qs(e,t){let{device:n}=e,r=e.viewport.width,i=e.viewport.height,o={compute_pipeline:null,bind_group:[],bind_group_layout:[],bind_groups_textures:[],buffers:[]},a=n.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,storageTexture:{access:"write-only",format:"rgba16float",viewDimension:"2d"}},{binding:1,visibility:GPUShaderStage.COMPUTE,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}},{binding:2,visibility:GPUShaderStage.COMPUTE,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}},{binding:3,visibility:GPUShaderStage.COMPUTE,sampler:{}},{binding:4,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform"}},{binding:5,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform"}}]});o.bind_group_layout.push(a),o.bind_groups_textures.push(ne(n,"bloom downsampler image 0",r/2,i/2,ue,"rgba16float",GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING)),o.bind_groups_textures.push(ne(n,"bloom downsampler image 1",r/2,i/2,ue,"rgba16float",GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING)),o.bind_groups_textures.push(t.refs.bloom.data);let f=n.createPipelineLayout({bindGroupLayouts:o.bind_group_layout}),h=n.createComputePipeline({layout:f,compute:{module:n.createShaderModule({code:pi}),entryPoint:"cs_main"}});return xi(e,o,t),o.compute_pipeline=h,o}function xi(e,t,n){let{refs:r}=n,{device:i}=e,o=n.options.bloom_threshold??.1,a=n.options.bloom_knee??.2,f=n.options.bloom_combine_constant??.68,h=new Float32Array([o,o-a,a*2,.25/a,f,0,0,0]),v=i.createBuffer({label:"bloom static parameters buffer",size:h.byteLength,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});t.buffers.push(v),new Float32Array(v.getMappedRange()).set(h),v.unmap(),t.bind_group.length=0,t.params_buf=v,t.bind_group.push(Ce(i,t,t.bind_groups_textures[0].mip_view[0],r.emissive.data.view,r.hdr.data.view,r.hdr.data.sampler,v,Ws<<16|0));for(let D=1;D<ue;D++)t.bind_group.push(Ce(i,t,t.bind_groups_textures[1].mip_view[D],t.bind_groups_textures[0].view,r.hdr.data.view,r.hdr.data.sampler,v,gi<<16|D-1)),t.bind_group.push(Ce(i,t,t.bind_groups_textures[0].mip_view[D],t.bind_groups_textures[1].view,r.hdr.data.view,r.hdr.data.sampler,v,gi<<16|D));t.bind_group.push(Ce(i,t,t.bind_groups_textures[2].mip_view[ue-1],t.bind_groups_textures[0].view,r.hdr.data.view,r.hdr.data.sampler,v,Ks<<16|ue-2));let d=!0;for(let D=ue-2;D>=0;D--)d?(t.bind_group.push(Ce(i,t,t.bind_groups_textures[1].mip_view[D],t.bind_groups_textures[0].view,t.bind_groups_textures[2].view,r.hdr.data.sampler,v,di<<16|D)),d=!1):(t.bind_group.push(Ce(i,t,t.bind_groups_textures[2].mip_view[D],t.bind_groups_textures[0].view,t.bind_groups_textures[1].view,r.hdr.data.sampler,v,di<<16|D)),d=!0)}function Ce(e,t,n,r,i,o,a,f){let h=new Uint32Array([f]),v=e.createBuffer({label:"bloom static mode_lod buffer",size:h.byteLength,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});return t.buffers.push(v),new Uint32Array(v.getMappedRange()).set(h),v.unmap(),e.createBindGroup({label:"bloom bind group layout",layout:t.bind_group_layout[0],entries:[{binding:0,resource:n},{binding:1,resource:r},{binding:2,resource:i},{binding:3,resource:o},{binding:4,resource:{buffer:a}},{binding:5,resource:{buffer:v}}]})}function Js(e,t,n){let r=t.data,i=0,o=1,a=2,f=3,h=0,v=n.beginComputePass({label:"bloom Compute Pass"});v.setPipeline(r.compute_pipeline),v.setBindGroup(0,r.bind_group[h]),h+=1;let d=lr(0,r.bind_groups_textures[0]);v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1);for(let D=1;D<ue;D++)d=lr(D,r.bind_groups_textures[0]),v.setBindGroup(0,r.bind_group[h]),h+=1,v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1),v.setBindGroup(0,r.bind_group[h]),h+=1,v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1);v.setBindGroup(0,r.bind_group[h]),h+=1,d=lr(ue-1,r.bind_groups_textures[2]),v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1);for(let D=ue-2;D>=0;D--)d=lr(D,r.bind_groups_textures[2]),v.setBindGroup(0,r.bind_group[h]),h+=1,v.dispatchWorkgroups(d.width/8+1,d.height/4+1,1);v.end()}function lr(e,t){let n=t.size.width,r=t.size.height;for(let i=0;i<e;i++)n/=2,r/=2;return{width:n,height:r,depthOrArrayLayers:1}}function js(e,t){let{device:n}=e,r=t.data;Mi(t),r.bind_groups_textures.push(ne(n,"bloom downsampler image 0",e.viewport.width/2,e.viewport.height/2,ue,"rgba16float",GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING)),r.bind_groups_textures.push(ne(n,"bloom downsampler image 1",e.viewport.width/2,e.viewport.height/2,ue,"rgba16float",GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING)),r.bind_groups_textures.push(t.refs.bloom.data),xi(e,r,t)}function Mi(e){for(let t of e.data.bind_groups_textures)t.texture.destroy();for(let t of e.data.buffers)t.destroy();e.data.buffers.length=0,e.data.bind_groups_textures.length=0}var yi="struct DisplacementParameters{offset:vec2<f32>,scale:f32,};@group(0)@binding(0)var<uniform> uniforms:DisplacementParameters;@group(0)@binding(1)var colorTexture:texture_2d<f32>;@group(0)@binding(2)var colorSampler:sampler;@group(0)@binding(3)var noiseTexture:texture_2d<f32>;@group(0)@binding(4)var noiseSampler:sampler;@group(0)@binding(5)var displacementTexture:texture_2d<f32>;struct VertexIn{@builtin(vertex_index)vertexIndex:u32,};struct VertexOut{@builtin(position)position:vec4<f32>,@location(0)uv:vec2<f32>,};@vertex fn main_vertex(in:VertexIn)->VertexOut{const corners=array<vec2<f32>,4>(vec2<f32>(-1,-1),vec2<f32>(1,-1),vec2<f32>(-1,1),vec2<f32>(1,1),);let screenPosition=corners[in.vertexIndex];var out:VertexOut;out.position=vec4<f32>(screenPosition,0,1);out.uv=(0.5+0.5*screenPosition*vec2<f32>(1,-1));return out;}struct FragmentOut{@location(0)color:vec4<f32>,};@fragment fn main_fragment(in:VertexOut)->FragmentOut{let noiseTextureDimensions=vec2<f32>(textureDimensions(noiseTexture,0));let noiseUv=in.uv+uniforms.offset/noiseTextureDimensions;var noise=textureSample(noiseTexture,noiseSampler,noiseUv).rg;noise-=0.5;noise*=uniforms.scale/noiseTextureDimensions;let displacement=textureSample(displacementTexture,colorSampler,in.uv).r;noise*=displacement;let colorUv=in.uv+noise;var out:FragmentOut;out.color=textureSample(colorTexture,colorSampler,colorUv);return out;}";var hr=class{device;targetFormat;renderPipeline;colorSampler;noiseSampler;displacementParametersBuffer;renderBundle=null;colorTextureView;noiseMapTextureView;displacementTextureView;constructor(t){this.device=t.device,this.targetFormat=t.targetFormat,this.colorTextureView=t.colorTextureView,this.noiseMapTextureView=t.noiseMapTextureView,this.displacementTextureView=t.displacementTextureView,this.displacementParametersBuffer=t.displacementParametersBuffer;let n=this.device.createShaderModule({label:"DisplacementComposition shader module",code:yi});this.renderPipeline=this.device.createRenderPipeline({label:"DisplacementComposition renderpipeline",layout:"auto",vertex:{module:n,entryPoint:"main_vertex"},fragment:{module:n,entryPoint:"main_fragment",targets:[{format:t.targetFormat}]},primitive:{cullMode:"none",topology:"triangle-strip"}}),this.noiseSampler=this.device.createSampler({label:"DisplacementComposition noisesampler",addressModeU:"repeat",addressModeV:"repeat",addressModeW:"repeat",magFilter:"linear",minFilter:"linear",mipmapFilter:"linear"}),this.colorSampler=this.device.createSampler({label:"DisplacementComposition colorSampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"linear",minFilter:"linear",mipmapFilter:"linear"})}getRenderBundle(){return this.renderBundle||(this.renderBundle=this.buildRenderBundle()),this.renderBundle}destroy(){}setColorTextureView(t){this.colorTextureView=t,this.renderBundle=null}setNoiseMapTextureView(t){this.noiseMapTextureView=t,this.renderBundle=null}setDisplacementTextureView(t){this.displacementTextureView=t,this.renderBundle=null}buildRenderBundle(){let t=this.device.createBindGroup({label:"DisplacementComposition bindgroup 0",layout:this.renderPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.displacementParametersBuffer.bufferGpu}},{binding:1,resource:this.colorTextureView},{binding:2,resource:this.colorSampler},{binding:3,resource:this.noiseMapTextureView},{binding:4,resource:this.noiseSampler},{binding:5,resource:this.displacementTextureView}]}),n=this.device.createRenderBundleEncoder({label:"DisplacementComposition renderbundle encoder",colorFormats:[this.targetFormat]});return n.setPipeline(this.renderPipeline),n.setBindGroup(0,t),n.draw(4),n.finish({label:"DisplacementComposition renderbundle"})}};var vr=class{device;bufferGpu;needsUpdate=!0;constructor(t){this.device=t.device,this.bufferGpu=this.device.createBuffer({label:"DisplacementParametersBuffer buffer",size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.setParameters(t.initialParameters)}setParameters(t){this.device.queue.writeBuffer(this.bufferGpu,0,new Float32Array([t.offsetX,t.offsetY,t.scale]))}destroy(){this.bufferGpu.destroy()}};var bi="struct TransformData{mvpMatrix:mat4x4<f32>,};@group(0)@binding(0)var<uniform> transformUBO:TransformData;struct VertexIn{@location(0)position:vec2<f32>,};struct VertexOut{@builtin(position)position:vec4<f32>,};@vertex fn main_vertex(in:VertexIn)->VertexOut{var output:VertexOut;output.position=transformUBO.mvpMatrix*vec4<f32>(in.position,0.0,1.0);return output;}struct FragmentOut{@location(0)color:vec4<f32>,};@fragment fn main_fragment()->FragmentOut{var out:FragmentOut;out.color=vec4<f32>(1.0,1.0,1.0,1.0);return out;}";function tu(e,t){return class extends e{constructor(...n){super(...n),t(this)}}}var eu=tu(Array,e=>e.fill(0)),_t=1e-6;function ru(e){function t(G=0,q=0){let k=new e(2);return G!==void 0&&(k[0]=G,q!==void 0&&(k[1]=q)),k}let n=t;function r(G,q,k){let u=k??new e(2);return u[0]=G,u[1]=q,u}function i(G,q){let k=q??new e(2);return k[0]=Math.ceil(G[0]),k[1]=Math.ceil(G[1]),k}function o(G,q){let k=q??new e(2);return k[0]=Math.floor(G[0]),k[1]=Math.floor(G[1]),k}function a(G,q){let k=q??new e(2);return k[0]=Math.round(G[0]),k[1]=Math.round(G[1]),k}function f(G,q=0,k=1,u){let B=u??new e(2);return B[0]=Math.min(k,Math.max(q,G[0])),B[1]=Math.min(k,Math.max(q,G[1])),B}function h(G,q,k){let u=k??new e(2);return u[0]=G[0]+q[0],u[1]=G[1]+q[1],u}function v(G,q,k,u){let B=u??new e(2);return B[0]=G[0]+q[0]*k,B[1]=G[1]+q[1]*k,B}function d(G,q){let k=G[0],u=G[1],B=q[0],M=q[1],x=Math.sqrt(k*k+u*u),g=Math.sqrt(B*B+M*M),S=x*g,L=S&&rt(G,q)/S;return Math.acos(L)}function D(G,q,k){let u=k??new e(2);return u[0]=G[0]-q[0],u[1]=G[1]-q[1],u}let m=D;function C(G,q){return Math.abs(G[0]-q[0])<_t&&Math.abs(G[1]-q[1])<_t}function R(G,q){return G[0]===q[0]&&G[1]===q[1]}function N(G,q,k,u){let B=u??new e(2);return B[0]=G[0]+k*(q[0]-G[0]),B[1]=G[1]+k*(q[1]-G[1]),B}function V(G,q,k,u){let B=u??new e(2);return B[0]=G[0]+k[0]*(q[0]-G[0]),B[1]=G[1]+k[1]*(q[1]-G[1]),B}function Y(G,q,k){let u=k??new e(2);return u[0]=Math.max(G[0],q[0]),u[1]=Math.max(G[1],q[1]),u}function K(G,q,k){let u=k??new e(2);return u[0]=Math.min(G[0],q[0]),u[1]=Math.min(G[1],q[1]),u}function Q(G,q,k){let u=k??new e(2);return u[0]=G[0]*q,u[1]=G[1]*q,u}let j=Q;function Z(G,q,k){let u=k??new e(2);return u[0]=G[0]/q,u[1]=G[1]/q,u}function W(G,q){let k=q??new e(2);return k[0]=1/G[0],k[1]=1/G[1],k}let st=W;function et(G,q,k){let u=k??new e(3),B=G[0]*q[1]-G[1]*q[0];return u[0]=0,u[1]=0,u[2]=B,u}function rt(G,q){return G[0]*q[0]+G[1]*q[1]}function F(G){let q=G[0],k=G[1];return Math.sqrt(q*q+k*k)}let s=F;function p(G){let q=G[0],k=G[1];return q*q+k*k}let _=p;function y(G,q){let k=G[0]-q[0],u=G[1]-q[1];return Math.sqrt(k*k+u*u)}let T=y;function E(G,q){let k=G[0]-q[0],u=G[1]-q[1];return k*k+u*u}let O=E;function P(G,q){let k=q??new e(2),u=G[0],B=G[1],M=u*u+B*B,x=M>0?1/Math.sqrt(M):1;return k[0]=u*x,k[1]=B*x,k}function l(G,q){let k=q??new e(2);return k[0]=-G[0],k[1]=-G[1],k}function U(G,q){let k=q??new e(2);return k[0]=G[0],k[1]=G[1],k}let ot=U;function at(G,q,k){let u=k??new e(2);return u[0]=G[0]*q[0],u[1]=G[1]*q[1],u}let ut=at;function ft(G,q,k){let u=k??new e(2);return u[0]=G[0]/q[0],u[1]=G[1]/q[1],u}let Mt=ft;function vt(G=1,q){let k=q??new e(2),u=Math.random()*2*Math.PI;return k[0]=Math.cos(u)*G,k[1]=Math.sin(u)*G,k}function X(G){let q=G??new e(2);return q[0]=0,q[1]=0,q}function $(G,q,k){let u=k??new e(2),B=G[0],M=G[1];return u[0]=B*q[0]+M*q[4]+q[12],u[1]=B*q[1]+M*q[5]+q[13],u}function A(G,q,k){let u=k??new e(2),B=G[0],M=G[1];return u[0]=q[0]*B+q[4]*M+q[8],u[1]=q[1]*B+q[5]*M+q[9],u}function c(G,q,k,u){let B=u??new e(2),M=G[0]-q[0],x=G[1]-q[1],g=Math.sin(k),S=Math.cos(k);return B[0]=M*S-x*g+q[0],B[1]=M*g+x*S+q[1],B}function b(G,q,k){let u=k??new e(2);return P(G,u),Q(u,q,u)}function w(G,q,k){let u=k??new e(2);return F(G)>q?b(G,q,u):U(G,u)}function I(G,q,k){let u=k??new e(2);return N(G,q,.5,u)}return{create:t,fromValues:n,set:r,ceil:i,floor:o,round:a,clamp:f,add:h,addScaled:v,angle:d,subtract:D,sub:m,equalsApproximately:C,equals:R,lerp:N,lerpV:V,max:Y,min:K,mulScalar:Q,scale:j,divScalar:Z,inverse:W,invert:st,cross:et,dot:rt,length:F,len:s,lengthSq:p,lenSq:_,distance:y,dist:T,distanceSq:E,distSq:O,normalize:P,negate:l,copy:U,clone:ot,multiply:at,mul:ut,divide:ft,div:Mt,random:vt,zero:X,transformMat4:$,transformMat3:A,rotate:c,setLength:b,truncate:w,midpoint:I}}var _i=new Map;function Fi(e){let t=_i.get(e);return t||(t=ru(e),_i.set(e,t)),t}function nu(e){function t(g,S,L){let z=new e(3);return g!==void 0&&(z[0]=g,S!==void 0&&(z[1]=S,L!==void 0&&(z[2]=L))),z}let n=t;function r(g,S,L,z){let H=z??new e(3);return H[0]=g,H[1]=S,H[2]=L,H}function i(g,S){let L=S??new e(3);return L[0]=Math.ceil(g[0]),L[1]=Math.ceil(g[1]),L[2]=Math.ceil(g[2]),L}function o(g,S){let L=S??new e(3);return L[0]=Math.floor(g[0]),L[1]=Math.floor(g[1]),L[2]=Math.floor(g[2]),L}function a(g,S){let L=S??new e(3);return L[0]=Math.round(g[0]),L[1]=Math.round(g[1]),L[2]=Math.round(g[2]),L}function f(g,S=0,L=1,z){let H=z??new e(3);return H[0]=Math.min(L,Math.max(S,g[0])),H[1]=Math.min(L,Math.max(S,g[1])),H[2]=Math.min(L,Math.max(S,g[2])),H}function h(g,S,L){let z=L??new e(3);return z[0]=g[0]+S[0],z[1]=g[1]+S[1],z[2]=g[2]+S[2],z}function v(g,S,L,z){let H=z??new e(3);return H[0]=g[0]+S[0]*L,H[1]=g[1]+S[1]*L,H[2]=g[2]+S[2]*L,H}function d(g,S){let L=g[0],z=g[1],H=g[2],J=S[0],tt=S[1],ct=S[2],nt=Math.sqrt(L*L+z*z+H*H),it=Math.sqrt(J*J+tt*tt+ct*ct),pt=nt*it,ht=pt&&rt(g,S)/pt;return Math.acos(ht)}function D(g,S,L){let z=L??new e(3);return z[0]=g[0]-S[0],z[1]=g[1]-S[1],z[2]=g[2]-S[2],z}let m=D;function C(g,S){return Math.abs(g[0]-S[0])<_t&&Math.abs(g[1]-S[1])<_t&&Math.abs(g[2]-S[2])<_t}function R(g,S){return g[0]===S[0]&&g[1]===S[1]&&g[2]===S[2]}function N(g,S,L,z){let H=z??new e(3);return H[0]=g[0]+L*(S[0]-g[0]),H[1]=g[1]+L*(S[1]-g[1]),H[2]=g[2]+L*(S[2]-g[2]),H}function V(g,S,L,z){let H=z??new e(3);return H[0]=g[0]+L[0]*(S[0]-g[0]),H[1]=g[1]+L[1]*(S[1]-g[1]),H[2]=g[2]+L[2]*(S[2]-g[2]),H}function Y(g,S,L){let z=L??new e(3);return z[0]=Math.max(g[0],S[0]),z[1]=Math.max(g[1],S[1]),z[2]=Math.max(g[2],S[2]),z}function K(g,S,L){let z=L??new e(3);return z[0]=Math.min(g[0],S[0]),z[1]=Math.min(g[1],S[1]),z[2]=Math.min(g[2],S[2]),z}function Q(g,S,L){let z=L??new e(3);return z[0]=g[0]*S,z[1]=g[1]*S,z[2]=g[2]*S,z}let j=Q;function Z(g,S,L){let z=L??new e(3);return z[0]=g[0]/S,z[1]=g[1]/S,z[2]=g[2]/S,z}function W(g,S){let L=S??new e(3);return L[0]=1/g[0],L[1]=1/g[1],L[2]=1/g[2],L}let st=W;function et(g,S,L){let z=L??new e(3),H=g[2]*S[0]-g[0]*S[2],J=g[0]*S[1]-g[1]*S[0];return z[0]=g[1]*S[2]-g[2]*S[1],z[1]=H,z[2]=J,z}function rt(g,S){return g[0]*S[0]+g[1]*S[1]+g[2]*S[2]}function F(g){let S=g[0],L=g[1],z=g[2];return Math.sqrt(S*S+L*L+z*z)}let s=F;function p(g){let S=g[0],L=g[1],z=g[2];return S*S+L*L+z*z}let _=p;function y(g,S){let L=g[0]-S[0],z=g[1]-S[1],H=g[2]-S[2];return Math.sqrt(L*L+z*z+H*H)}let T=y;function E(g,S){let L=g[0]-S[0],z=g[1]-S[1],H=g[2]-S[2];return L*L+z*z+H*H}let O=E;function P(g,S){let L=S??new e(3),z=g[0],H=g[1],J=g[2],tt=z*z+H*H+J*J,ct=tt>0?1/Math.sqrt(tt):1;return L[0]=z*ct,L[1]=H*ct,L[2]=J*ct,L}function l(g,S){let L=S??new e(3);return L[0]=-g[0],L[1]=-g[1],L[2]=-g[2],L}function U(g,S){let L=S??new e(3);return L[0]=g[0],L[1]=g[1],L[2]=g[2],L}let ot=U;function at(g,S,L){let z=L??new e(3);return z[0]=g[0]*S[0],z[1]=g[1]*S[1],z[2]=g[2]*S[2],z}let ut=at;function ft(g,S,L){let z=L??new e(3);return z[0]=g[0]/S[0],z[1]=g[1]/S[1],z[2]=g[2]/S[2],z}let Mt=ft;function vt(g=1,S){let L=S??new e(3),z=Math.random()*2*Math.PI,H=Math.random()*2-1,J=Math.sqrt(1-H*H)*g;return L[0]=Math.cos(z)*J,L[1]=Math.sin(z)*J,L[2]=H*g,L}function X(g){let S=g??new e(3);return S[0]=0,S[1]=0,S[2]=0,S}function $(g,S,L){let z=L??new e(3),H=g[0],J=g[1],tt=g[2],ct=S[3]*H+S[7]*J+S[11]*tt+S[15]||1;return z[0]=(S[0]*H+S[4]*J+S[8]*tt+S[12])/ct,z[1]=(S[1]*H+S[5]*J+S[9]*tt+S[13])/ct,z[2]=(S[2]*H+S[6]*J+S[10]*tt+S[14])/ct,z}function A(g,S,L){let z=L??new e(3),H=g[0],J=g[1],tt=g[2];return z[0]=H*S[0]+J*S[4]+tt*S[8],z[1]=H*S[1]+J*S[5]+tt*S[9],z[2]=H*S[2]+J*S[6]+tt*S[10],z}function c(g,S,L){let z=L??new e(3),H=g[0],J=g[1],tt=g[2];return z[0]=H*S[0]+J*S[4]+tt*S[8],z[1]=H*S[1]+J*S[5]+tt*S[9],z[2]=H*S[2]+J*S[6]+tt*S[10],z}function b(g,S,L){let z=L??new e(3),H=S[0],J=S[1],tt=S[2],ct=S[3]*2,nt=g[0],it=g[1],pt=g[2],ht=J*pt-tt*it,lt=tt*nt-H*pt,gt=H*it-J*nt;return z[0]=nt+ht*ct+(J*gt-tt*lt)*2,z[1]=it+lt*ct+(tt*ht-H*gt)*2,z[2]=pt+gt*ct+(H*lt-J*ht)*2,z}function w(g,S){let L=S??new e(3);return L[0]=g[12],L[1]=g[13],L[2]=g[14],L}function I(g,S,L){let z=L??new e(3),H=S*4;return z[0]=g[H+0],z[1]=g[H+1],z[2]=g[H+2],z}function G(g,S){let L=S??new e(3),z=g[0],H=g[1],J=g[2],tt=g[4],ct=g[5],nt=g[6],it=g[8],pt=g[9],ht=g[10];return L[0]=Math.sqrt(z*z+H*H+J*J),L[1]=Math.sqrt(tt*tt+ct*ct+nt*nt),L[2]=Math.sqrt(it*it+pt*pt+ht*ht),L}function q(g,S,L,z){let H=z??new e(3),J=[],tt=[];return J[0]=g[0]-S[0],J[1]=g[1]-S[1],J[2]=g[2]-S[2],tt[0]=J[0],tt[1]=J[1]*Math.cos(L)-J[2]*Math.sin(L),tt[2]=J[1]*Math.sin(L)+J[2]*Math.cos(L),H[0]=tt[0]+S[0],H[1]=tt[1]+S[1],H[2]=tt[2]+S[2],H}function k(g,S,L,z){let H=z??new e(3),J=[],tt=[];return J[0]=g[0]-S[0],J[1]=g[1]-S[1],J[2]=g[2]-S[2],tt[0]=J[2]*Math.sin(L)+J[0]*Math.cos(L),tt[1]=J[1],tt[2]=J[2]*Math.cos(L)-J[0]*Math.sin(L),H[0]=tt[0]+S[0],H[1]=tt[1]+S[1],H[2]=tt[2]+S[2],H}function u(g,S,L,z){let H=z??new e(3),J=[],tt=[];return J[0]=g[0]-S[0],J[1]=g[1]-S[1],J[2]=g[2]-S[2],tt[0]=J[0]*Math.cos(L)-J[1]*Math.sin(L),tt[1]=J[0]*Math.sin(L)+J[1]*Math.cos(L),tt[2]=J[2],H[0]=tt[0]+S[0],H[1]=tt[1]+S[1],H[2]=tt[2]+S[2],H}function B(g,S,L){let z=L??new e(3);return P(g,z),Q(z,S,z)}function M(g,S,L){let z=L??new e(3);return F(g)>S?B(g,S,z):U(g,z)}function x(g,S,L){let z=L??new e(3);return N(g,S,.5,z)}return{create:t,fromValues:n,set:r,ceil:i,floor:o,round:a,clamp:f,add:h,addScaled:v,angle:d,subtract:D,sub:m,equalsApproximately:C,equals:R,lerp:N,lerpV:V,max:Y,min:K,mulScalar:Q,scale:j,divScalar:Z,inverse:W,invert:st,cross:et,dot:rt,length:F,len:s,lengthSq:p,lenSq:_,distance:y,dist:T,distanceSq:E,distSq:O,normalize:P,negate:l,copy:U,clone:ot,multiply:at,mul:ut,divide:ft,div:Mt,random:vt,zero:X,transformMat4:$,transformMat4Upper3x3:A,transformMat3:c,transformQuat:b,getTranslation:w,getAxis:I,getScaling:G,rotateX:q,rotateY:k,rotateZ:u,setLength:B,truncate:M,midpoint:x}}var Si=new Map;function pr(e){let t=Si.get(e);return t||(t=nu(e),Si.set(e,t)),t}function iu(e){let t=Fi(e),n=pr(e);function r(c,b,w,I,G,q,k,u,B){let M=new e(12);return M[3]=0,M[7]=0,M[11]=0,c!==void 0&&(M[0]=c,b!==void 0&&(M[1]=b,w!==void 0&&(M[2]=w,I!==void 0&&(M[4]=I,G!==void 0&&(M[5]=G,q!==void 0&&(M[6]=q,k!==void 0&&(M[8]=k,u!==void 0&&(M[9]=u,B!==void 0&&(M[10]=B))))))))),M}function i(c,b,w,I,G,q,k,u,B,M){let x=M??new e(12);return x[0]=c,x[1]=b,x[2]=w,x[3]=0,x[4]=I,x[5]=G,x[6]=q,x[7]=0,x[8]=k,x[9]=u,x[10]=B,x[11]=0,x}function o(c,b){let w=b??new e(12);return w[0]=c[0],w[1]=c[1],w[2]=c[2],w[3]=0,w[4]=c[4],w[5]=c[5],w[6]=c[6],w[7]=0,w[8]=c[8],w[9]=c[9],w[10]=c[10],w[11]=0,w}function a(c,b){let w=b??new e(12),I=c[0],G=c[1],q=c[2],k=c[3],u=I+I,B=G+G,M=q+q,x=I*u,g=G*u,S=G*B,L=q*u,z=q*B,H=q*M,J=k*u,tt=k*B,ct=k*M;return w[0]=1-S-H,w[1]=g+ct,w[2]=L-tt,w[3]=0,w[4]=g-ct,w[5]=1-x-H,w[6]=z+J,w[7]=0,w[8]=L+tt,w[9]=z-J,w[10]=1-x-S,w[11]=0,w}function f(c,b){let w=b??new e(12);return w[0]=-c[0],w[1]=-c[1],w[2]=-c[2],w[4]=-c[4],w[5]=-c[5],w[6]=-c[6],w[8]=-c[8],w[9]=-c[9],w[10]=-c[10],w}function h(c,b,w){let I=w??new e(12);return I[0]=c[0]*b,I[1]=c[1]*b,I[2]=c[2]*b,I[4]=c[4]*b,I[5]=c[5]*b,I[6]=c[6]*b,I[8]=c[8]*b,I[9]=c[9]*b,I[10]=c[10]*b,I}let v=h;function d(c,b,w){let I=w??new e(12);return I[0]=c[0]+b[0],I[1]=c[1]+b[1],I[2]=c[2]+b[2],I[4]=c[4]+b[4],I[5]=c[5]+b[5],I[6]=c[6]+b[6],I[8]=c[8]+b[8],I[9]=c[9]+b[9],I[10]=c[10]+b[10],I}function D(c,b){let w=b??new e(12);return w[0]=c[0],w[1]=c[1],w[2]=c[2],w[4]=c[4],w[5]=c[5],w[6]=c[6],w[8]=c[8],w[9]=c[9],w[10]=c[10],w}let m=D;function C(c,b){return Math.abs(c[0]-b[0])<_t&&Math.abs(c[1]-b[1])<_t&&Math.abs(c[2]-b[2])<_t&&Math.abs(c[4]-b[4])<_t&&Math.abs(c[5]-b[5])<_t&&Math.abs(c[6]-b[6])<_t&&Math.abs(c[8]-b[8])<_t&&Math.abs(c[9]-b[9])<_t&&Math.abs(c[10]-b[10])<_t}function R(c,b){return c[0]===b[0]&&c[1]===b[1]&&c[2]===b[2]&&c[4]===b[4]&&c[5]===b[5]&&c[6]===b[6]&&c[8]===b[8]&&c[9]===b[9]&&c[10]===b[10]}function N(c){let b=c??new e(12);return b[0]=1,b[1]=0,b[2]=0,b[4]=0,b[5]=1,b[6]=0,b[8]=0,b[9]=0,b[10]=1,b}function V(c,b){let w=b??new e(12);if(w===c){let S;return S=c[1],c[1]=c[4],c[4]=S,S=c[2],c[2]=c[8],c[8]=S,S=c[6],c[6]=c[9],c[9]=S,w}let I=c[0],G=c[1],q=c[2],k=c[4],u=c[5],B=c[6],M=c[8],x=c[9],g=c[10];return w[0]=I,w[1]=k,w[2]=M,w[4]=G,w[5]=u,w[6]=x,w[8]=q,w[9]=B,w[10]=g,w}function Y(c,b){let w=b??new e(12),I=c[0],G=c[1],q=c[2],k=c[4],u=c[5],B=c[6],M=c[8],x=c[9],g=c[10],S=g*u-B*x,L=-g*k+B*M,z=x*k-u*M,H=1/(I*S+G*L+q*z);return w[0]=S*H,w[1]=(-g*G+q*x)*H,w[2]=(B*G-q*u)*H,w[4]=L*H,w[5]=(g*I-q*M)*H,w[6]=(-B*I+q*k)*H,w[8]=z*H,w[9]=(-x*I+G*M)*H,w[10]=(u*I-G*k)*H,w}function K(c){let b=c[0],w=c[1],I=c[2],G=c[4],q=c[5],k=c[6],u=c[8],B=c[9],M=c[10];return b*(q*M-B*k)-G*(w*M-B*I)+u*(w*k-q*I)}let Q=Y;function j(c,b,w){let I=w??new e(12),G=c[0],q=c[1],k=c[2],u=c[4],B=c[5],M=c[6],x=c[8],g=c[9],S=c[10],L=b[0],z=b[1],H=b[2],J=b[4],tt=b[5],ct=b[6],nt=b[8],it=b[9],pt=b[10];return I[0]=G*L+u*z+x*H,I[1]=q*L+B*z+g*H,I[2]=k*L+M*z+S*H,I[4]=G*J+u*tt+x*ct,I[5]=q*J+B*tt+g*ct,I[6]=k*J+M*tt+S*ct,I[8]=G*nt+u*it+x*pt,I[9]=q*nt+B*it+g*pt,I[10]=k*nt+M*it+S*pt,I}let Z=j;function W(c,b,w){let I=w??N();return c!==I&&(I[0]=c[0],I[1]=c[1],I[2]=c[2],I[4]=c[4],I[5]=c[5],I[6]=c[6]),I[8]=b[0],I[9]=b[1],I[10]=1,I}function st(c,b){let w=b??t.create();return w[0]=c[8],w[1]=c[9],w}function et(c,b,w){let I=w??t.create(),G=b*4;return I[0]=c[G+0],I[1]=c[G+1],I}function rt(c,b,w,I){let G=I===c?c:D(c,I),q=w*4;return G[q+0]=b[0],G[q+1]=b[1],G}function F(c,b){let w=b??t.create(),I=c[0],G=c[1],q=c[4],k=c[5];return w[0]=Math.sqrt(I*I+G*G),w[1]=Math.sqrt(q*q+k*k),w}function s(c,b){let w=b??n.create(),I=c[0],G=c[1],q=c[2],k=c[4],u=c[5],B=c[6],M=c[8],x=c[9],g=c[10];return w[0]=Math.sqrt(I*I+G*G+q*q),w[1]=Math.sqrt(k*k+u*u+B*B),w[2]=Math.sqrt(M*M+x*x+g*g),w}function p(c,b){let w=b??new e(12);return w[0]=1,w[1]=0,w[2]=0,w[4]=0,w[5]=1,w[6]=0,w[8]=c[0],w[9]=c[1],w[10]=1,w}function _(c,b,w){let I=w??new e(12),G=b[0],q=b[1],k=c[0],u=c[1],B=c[2],M=c[4],x=c[5],g=c[6],S=c[8],L=c[9],z=c[10];return c!==I&&(I[0]=k,I[1]=u,I[2]=B,I[4]=M,I[5]=x,I[6]=g),I[8]=k*G+M*q+S,I[9]=u*G+x*q+L,I[10]=B*G+g*q+z,I}function y(c,b){let w=b??new e(12),I=Math.cos(c),G=Math.sin(c);return w[0]=I,w[1]=G,w[2]=0,w[4]=-G,w[5]=I,w[6]=0,w[8]=0,w[9]=0,w[10]=1,w}function T(c,b,w){let I=w??new e(12),G=c[0],q=c[1],k=c[2],u=c[4],B=c[5],M=c[6],x=Math.cos(b),g=Math.sin(b);return I[0]=x*G+g*u,I[1]=x*q+g*B,I[2]=x*k+g*M,I[4]=x*u-g*G,I[5]=x*B-g*q,I[6]=x*M-g*k,c!==I&&(I[8]=c[8],I[9]=c[9],I[10]=c[10]),I}function E(c,b){let w=b??new e(12),I=Math.cos(c),G=Math.sin(c);return w[0]=1,w[1]=0,w[2]=0,w[4]=0,w[5]=I,w[6]=G,w[8]=0,w[9]=-G,w[10]=I,w}function O(c,b,w){let I=w??new e(12),G=c[4],q=c[5],k=c[6],u=c[8],B=c[9],M=c[10],x=Math.cos(b),g=Math.sin(b);return I[4]=x*G+g*u,I[5]=x*q+g*B,I[6]=x*k+g*M,I[8]=x*u-g*G,I[9]=x*B-g*q,I[10]=x*M-g*k,c!==I&&(I[0]=c[0],I[1]=c[1],I[2]=c[2]),I}function P(c,b){let w=b??new e(12),I=Math.cos(c),G=Math.sin(c);return w[0]=I,w[1]=0,w[2]=-G,w[4]=0,w[5]=1,w[6]=0,w[8]=G,w[9]=0,w[10]=I,w}function l(c,b,w){let I=w??new e(12),G=c[0],q=c[1],k=c[2],u=c[8],B=c[9],M=c[10],x=Math.cos(b),g=Math.sin(b);return I[0]=x*G-g*u,I[1]=x*q-g*B,I[2]=x*k-g*M,I[8]=x*u+g*G,I[9]=x*B+g*q,I[10]=x*M+g*k,c!==I&&(I[4]=c[4],I[5]=c[5],I[6]=c[6]),I}let U=y,ot=T;function at(c,b){let w=b??new e(12);return w[0]=c[0],w[1]=0,w[2]=0,w[4]=0,w[5]=c[1],w[6]=0,w[8]=0,w[9]=0,w[10]=1,w}function ut(c,b,w){let I=w??new e(12),G=b[0],q=b[1];return I[0]=G*c[0],I[1]=G*c[1],I[2]=G*c[2],I[4]=q*c[4],I[5]=q*c[5],I[6]=q*c[6],c!==I&&(I[8]=c[8],I[9]=c[9],I[10]=c[10]),I}function ft(c,b){let w=b??new e(12);return w[0]=c[0],w[1]=0,w[2]=0,w[4]=0,w[5]=c[1],w[6]=0,w[8]=0,w[9]=0,w[10]=c[2],w}function Mt(c,b,w){let I=w??new e(12),G=b[0],q=b[1],k=b[2];return I[0]=G*c[0],I[1]=G*c[1],I[2]=G*c[2],I[4]=q*c[4],I[5]=q*c[5],I[6]=q*c[6],I[8]=k*c[8],I[9]=k*c[9],I[10]=k*c[10],I}function vt(c,b){let w=b??new e(12);return w[0]=c,w[1]=0,w[2]=0,w[4]=0,w[5]=c,w[6]=0,w[8]=0,w[9]=0,w[10]=1,w}function X(c,b,w){let I=w??new e(12);return I[0]=b*c[0],I[1]=b*c[1],I[2]=b*c[2],I[4]=b*c[4],I[5]=b*c[5],I[6]=b*c[6],c!==I&&(I[8]=c[8],I[9]=c[9],I[10]=c[10]),I}function $(c,b){let w=b??new e(12);return w[0]=c,w[1]=0,w[2]=0,w[4]=0,w[5]=c,w[6]=0,w[8]=0,w[9]=0,w[10]=c,w}function A(c,b,w){let I=w??new e(12);return I[0]=b*c[0],I[1]=b*c[1],I[2]=b*c[2],I[4]=b*c[4],I[5]=b*c[5],I[6]=b*c[6],I[8]=b*c[8],I[9]=b*c[9],I[10]=b*c[10],I}return{add:d,clone:m,copy:D,create:r,determinant:K,equals:R,equalsApproximately:C,fromMat4:o,fromQuat:a,get3DScaling:s,getAxis:et,getScaling:F,getTranslation:st,identity:N,inverse:Y,invert:Q,mul:Z,mulScalar:v,multiply:j,multiplyScalar:h,negate:f,rotate:T,rotateX:O,rotateY:l,rotateZ:ot,rotation:y,rotationX:E,rotationY:P,rotationZ:U,scale:ut,scale3D:Mt,scaling:at,scaling3D:ft,set:i,setAxis:rt,setTranslation:W,translate:_,translation:p,transpose:V,uniformScale:X,uniformScale3D:A,uniformScaling:vt,uniformScaling3D:$}}var Ti=new Map;function ou(e){let t=Ti.get(e);return t||(t=iu(e),Ti.set(e,t)),t}function au(e){let t=pr(e);function n(u,B,M,x,g,S,L,z,H,J,tt,ct,nt,it,pt,ht){let lt=new e(16);return u!==void 0&&(lt[0]=u,B!==void 0&&(lt[1]=B,M!==void 0&&(lt[2]=M,x!==void 0&&(lt[3]=x,g!==void 0&&(lt[4]=g,S!==void 0&&(lt[5]=S,L!==void 0&&(lt[6]=L,z!==void 0&&(lt[7]=z,H!==void 0&&(lt[8]=H,J!==void 0&&(lt[9]=J,tt!==void 0&&(lt[10]=tt,ct!==void 0&&(lt[11]=ct,nt!==void 0&&(lt[12]=nt,it!==void 0&&(lt[13]=it,pt!==void 0&&(lt[14]=pt,ht!==void 0&&(lt[15]=ht)))))))))))))))),lt}function r(u,B,M,x,g,S,L,z,H,J,tt,ct,nt,it,pt,ht,lt){let gt=lt??new e(16);return gt[0]=u,gt[1]=B,gt[2]=M,gt[3]=x,gt[4]=g,gt[5]=S,gt[6]=L,gt[7]=z,gt[8]=H,gt[9]=J,gt[10]=tt,gt[11]=ct,gt[12]=nt,gt[13]=it,gt[14]=pt,gt[15]=ht,gt}function i(u,B){let M=B??new e(16);return M[0]=u[0],M[1]=u[1],M[2]=u[2],M[3]=0,M[4]=u[4],M[5]=u[5],M[6]=u[6],M[7]=0,M[8]=u[8],M[9]=u[9],M[10]=u[10],M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function o(u,B){let M=B??new e(16),x=u[0],g=u[1],S=u[2],L=u[3],z=x+x,H=g+g,J=S+S,tt=x*z,ct=g*z,nt=g*H,it=S*z,pt=S*H,ht=S*J,lt=L*z,gt=L*H,wt=L*J;return M[0]=1-nt-ht,M[1]=ct+wt,M[2]=it-gt,M[3]=0,M[4]=ct-wt,M[5]=1-tt-ht,M[6]=pt+lt,M[7]=0,M[8]=it+gt,M[9]=pt-lt,M[10]=1-tt-nt,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function a(u,B){let M=B??new e(16);return M[0]=-u[0],M[1]=-u[1],M[2]=-u[2],M[3]=-u[3],M[4]=-u[4],M[5]=-u[5],M[6]=-u[6],M[7]=-u[7],M[8]=-u[8],M[9]=-u[9],M[10]=-u[10],M[11]=-u[11],M[12]=-u[12],M[13]=-u[13],M[14]=-u[14],M[15]=-u[15],M}function f(u,B,M){let x=M??new e(16);return x[0]=u[0]+B[0],x[1]=u[1]+B[1],x[2]=u[2]+B[2],x[3]=u[3]+B[3],x[4]=u[4]+B[4],x[5]=u[5]+B[5],x[6]=u[6]+B[6],x[7]=u[7]+B[7],x[8]=u[8]+B[8],x[9]=u[9]+B[9],x[10]=u[10]+B[10],x[11]=u[11]+B[11],x[12]=u[12]+B[12],x[13]=u[13]+B[13],x[14]=u[14]+B[14],x[15]=u[15]+B[15],x}function h(u,B,M){let x=M??new e(16);return x[0]=u[0]*B,x[1]=u[1]*B,x[2]=u[2]*B,x[3]=u[3]*B,x[4]=u[4]*B,x[5]=u[5]*B,x[6]=u[6]*B,x[7]=u[7]*B,x[8]=u[8]*B,x[9]=u[9]*B,x[10]=u[10]*B,x[11]=u[11]*B,x[12]=u[12]*B,x[13]=u[13]*B,x[14]=u[14]*B,x[15]=u[15]*B,x}let v=h;function d(u,B){let M=B??new e(16);return M[0]=u[0],M[1]=u[1],M[2]=u[2],M[3]=u[3],M[4]=u[4],M[5]=u[5],M[6]=u[6],M[7]=u[7],M[8]=u[8],M[9]=u[9],M[10]=u[10],M[11]=u[11],M[12]=u[12],M[13]=u[13],M[14]=u[14],M[15]=u[15],M}let D=d;function m(u,B){return Math.abs(u[0]-B[0])<_t&&Math.abs(u[1]-B[1])<_t&&Math.abs(u[2]-B[2])<_t&&Math.abs(u[3]-B[3])<_t&&Math.abs(u[4]-B[4])<_t&&Math.abs(u[5]-B[5])<_t&&Math.abs(u[6]-B[6])<_t&&Math.abs(u[7]-B[7])<_t&&Math.abs(u[8]-B[8])<_t&&Math.abs(u[9]-B[9])<_t&&Math.abs(u[10]-B[10])<_t&&Math.abs(u[11]-B[11])<_t&&Math.abs(u[12]-B[12])<_t&&Math.abs(u[13]-B[13])<_t&&Math.abs(u[14]-B[14])<_t&&Math.abs(u[15]-B[15])<_t}function C(u,B){return u[0]===B[0]&&u[1]===B[1]&&u[2]===B[2]&&u[3]===B[3]&&u[4]===B[4]&&u[5]===B[5]&&u[6]===B[6]&&u[7]===B[7]&&u[8]===B[8]&&u[9]===B[9]&&u[10]===B[10]&&u[11]===B[11]&&u[12]===B[12]&&u[13]===B[13]&&u[14]===B[14]&&u[15]===B[15]}function R(u){let B=u??new e(16);return B[0]=1,B[1]=0,B[2]=0,B[3]=0,B[4]=0,B[5]=1,B[6]=0,B[7]=0,B[8]=0,B[9]=0,B[10]=1,B[11]=0,B[12]=0,B[13]=0,B[14]=0,B[15]=1,B}function N(u,B){let M=B??new e(16);if(M===u){let dt;return dt=u[1],u[1]=u[4],u[4]=dt,dt=u[2],u[2]=u[8],u[8]=dt,dt=u[3],u[3]=u[12],u[12]=dt,dt=u[6],u[6]=u[9],u[9]=dt,dt=u[7],u[7]=u[13],u[13]=dt,dt=u[11],u[11]=u[14],u[14]=dt,M}let x=u[0],g=u[1],S=u[2],L=u[3],z=u[4],H=u[5],J=u[6],tt=u[7],ct=u[8],nt=u[9],it=u[10],pt=u[11],ht=u[12],lt=u[13],gt=u[14],wt=u[15];return M[0]=x,M[1]=z,M[2]=ct,M[3]=ht,M[4]=g,M[5]=H,M[6]=nt,M[7]=lt,M[8]=S,M[9]=J,M[10]=it,M[11]=gt,M[12]=L,M[13]=tt,M[14]=pt,M[15]=wt,M}function V(u,B){let M=B??new e(16),x=u[0],g=u[1],S=u[2],L=u[3],z=u[4],H=u[5],J=u[6],tt=u[7],ct=u[8],nt=u[9],it=u[10],pt=u[11],ht=u[12],lt=u[13],gt=u[14],wt=u[15],dt=it*wt,mt=gt*pt,yt=J*wt,bt=gt*tt,Zt=J*pt,Bt=it*tt,Pt=S*wt,$t=gt*L,Dt=S*pt,Ft=it*L,Wt=S*tt,At=J*L,Ut=ct*lt,Kt=ht*nt,zt=z*lt,It=ht*H,jt=z*nt,Gt=ct*H,Rt=x*lt,Te=ht*g,Ot=x*nt,qt=ct*g,Be=x*H,Nt=z*g,Ct=dt*H+bt*nt+Zt*lt-(mt*H+yt*nt+Bt*lt),qe=mt*g+Pt*nt+Ft*lt-(dt*g+$t*nt+Dt*lt),Ne=yt*g+$t*H+Wt*lt-(bt*g+Pt*H+At*lt),Ve=Bt*g+Dt*H+At*nt-(Zt*g+Ft*H+Wt*nt),Ht=1/(x*Ct+z*qe+ct*Ne+ht*Ve);return M[0]=Ht*Ct,M[1]=Ht*qe,M[2]=Ht*Ne,M[3]=Ht*Ve,M[4]=Ht*(mt*z+yt*ct+Bt*ht-(dt*z+bt*ct+Zt*ht)),M[5]=Ht*(dt*x+$t*ct+Dt*ht-(mt*x+Pt*ct+Ft*ht)),M[6]=Ht*(bt*x+Pt*z+At*ht-(yt*x+$t*z+Wt*ht)),M[7]=Ht*(Zt*x+Ft*z+Wt*ct-(Bt*x+Dt*z+At*ct)),M[8]=Ht*(Ut*tt+It*pt+jt*wt-(Kt*tt+zt*pt+Gt*wt)),M[9]=Ht*(Kt*L+Rt*pt+qt*wt-(Ut*L+Te*pt+Ot*wt)),M[10]=Ht*(zt*L+Te*tt+Be*wt-(It*L+Rt*tt+Nt*wt)),M[11]=Ht*(Gt*L+Ot*tt+Nt*pt-(jt*L+qt*tt+Be*pt)),M[12]=Ht*(zt*it+Gt*gt+Kt*J-(jt*gt+Ut*J+It*it)),M[13]=Ht*(Ot*gt+Ut*S+Te*it-(Rt*it+qt*gt+Kt*S)),M[14]=Ht*(Rt*J+Nt*gt+It*S-(Be*gt+zt*S+Te*J)),M[15]=Ht*(Be*it+jt*S+qt*J-(Ot*J+Nt*it+Gt*S)),M}function Y(u){let B=u[0],M=u[1],x=u[2],g=u[3],S=u[4],L=u[5],z=u[6],H=u[7],J=u[8],tt=u[9],ct=u[10],nt=u[11],it=u[12],pt=u[13],ht=u[14],lt=u[15],gt=ct*lt,wt=ht*nt,dt=z*lt,mt=ht*H,yt=z*nt,bt=ct*H,Zt=x*lt,Bt=ht*g,Pt=x*nt,$t=ct*g,Dt=x*H,Ft=z*g,Wt=gt*L+mt*tt+yt*pt-(wt*L+dt*tt+bt*pt),At=wt*M+Zt*tt+$t*pt-(gt*M+Bt*tt+Pt*pt),Ut=dt*M+Bt*L+Dt*pt-(mt*M+Zt*L+Ft*pt),Kt=bt*M+Pt*L+Ft*tt-(yt*M+$t*L+Dt*tt);return B*Wt+S*At+J*Ut+it*Kt}let K=V;function Q(u,B,M){let x=M??new e(16),g=u[0],S=u[1],L=u[2],z=u[3],H=u[4],J=u[5],tt=u[6],ct=u[7],nt=u[8],it=u[9],pt=u[10],ht=u[11],lt=u[12],gt=u[13],wt=u[14],dt=u[15],mt=B[0],yt=B[1],bt=B[2],Zt=B[3],Bt=B[4],Pt=B[5],$t=B[6],Dt=B[7],Ft=B[8],Wt=B[9],At=B[10],Ut=B[11],Kt=B[12],zt=B[13],It=B[14],jt=B[15];return x[0]=g*mt+H*yt+nt*bt+lt*Zt,x[1]=S*mt+J*yt+it*bt+gt*Zt,x[2]=L*mt+tt*yt+pt*bt+wt*Zt,x[3]=z*mt+ct*yt+ht*bt+dt*Zt,x[4]=g*Bt+H*Pt+nt*$t+lt*Dt,x[5]=S*Bt+J*Pt+it*$t+gt*Dt,x[6]=L*Bt+tt*Pt+pt*$t+wt*Dt,x[7]=z*Bt+ct*Pt+ht*$t+dt*Dt,x[8]=g*Ft+H*Wt+nt*At+lt*Ut,x[9]=S*Ft+J*Wt+it*At+gt*Ut,x[10]=L*Ft+tt*Wt+pt*At+wt*Ut,x[11]=z*Ft+ct*Wt+ht*At+dt*Ut,x[12]=g*Kt+H*zt+nt*It+lt*jt,x[13]=S*Kt+J*zt+it*It+gt*jt,x[14]=L*Kt+tt*zt+pt*It+wt*jt,x[15]=z*Kt+ct*zt+ht*It+dt*jt,x}let j=Q;function Z(u,B,M){let x=M??R();return u!==x&&(x[0]=u[0],x[1]=u[1],x[2]=u[2],x[3]=u[3],x[4]=u[4],x[5]=u[5],x[6]=u[6],x[7]=u[7],x[8]=u[8],x[9]=u[9],x[10]=u[10],x[11]=u[11]),x[12]=B[0],x[13]=B[1],x[14]=B[2],x[15]=1,x}function W(u,B){let M=B??t.create();return M[0]=u[12],M[1]=u[13],M[2]=u[14],M}function st(u,B,M){let x=M??t.create(),g=B*4;return x[0]=u[g+0],x[1]=u[g+1],x[2]=u[g+2],x}function et(u,B,M,x){let g=x===u?x:d(u,x),S=M*4;return g[S+0]=B[0],g[S+1]=B[1],g[S+2]=B[2],g}function rt(u,B){let M=B??t.create(),x=u[0],g=u[1],S=u[2],L=u[4],z=u[5],H=u[6],J=u[8],tt=u[9],ct=u[10];return M[0]=Math.sqrt(x*x+g*g+S*S),M[1]=Math.sqrt(L*L+z*z+H*H),M[2]=Math.sqrt(J*J+tt*tt+ct*ct),M}function F(u,B,M,x,g){let S=g??new e(16),L=Math.tan(Math.PI*.5-.5*u);if(S[0]=L/B,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=L,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[11]=-1,S[12]=0,S[13]=0,S[15]=0,Number.isFinite(x)){let z=1/(M-x);S[10]=x*z,S[14]=x*M*z}else S[10]=-1,S[14]=-M;return S}function s(u,B,M,x=1/0,g){let S=g??new e(16),L=1/Math.tan(u*.5);if(S[0]=L/B,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=L,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[11]=-1,S[12]=0,S[13]=0,S[15]=0,x===1/0)S[10]=0,S[14]=M;else{let z=1/(x-M);S[10]=M*z,S[14]=x*M*z}return S}function p(u,B,M,x,g,S,L){let z=L??new e(16);return z[0]=2/(B-u),z[1]=0,z[2]=0,z[3]=0,z[4]=0,z[5]=2/(x-M),z[6]=0,z[7]=0,z[8]=0,z[9]=0,z[10]=1/(g-S),z[11]=0,z[12]=(B+u)/(u-B),z[13]=(x+M)/(M-x),z[14]=g/(g-S),z[15]=1,z}function _(u,B,M,x,g,S,L){let z=L??new e(16),H=B-u,J=x-M,tt=g-S;return z[0]=2*g/H,z[1]=0,z[2]=0,z[3]=0,z[4]=0,z[5]=2*g/J,z[6]=0,z[7]=0,z[8]=(u+B)/H,z[9]=(x+M)/J,z[10]=S/tt,z[11]=-1,z[12]=0,z[13]=0,z[14]=g*S/tt,z[15]=0,z}function y(u,B,M,x,g,S=1/0,L){let z=L??new e(16),H=B-u,J=x-M;if(z[0]=2*g/H,z[1]=0,z[2]=0,z[3]=0,z[4]=0,z[5]=2*g/J,z[6]=0,z[7]=0,z[8]=(u+B)/H,z[9]=(x+M)/J,z[11]=-1,z[12]=0,z[13]=0,z[15]=0,S===1/0)z[10]=0,z[14]=g;else{let tt=1/(S-g);z[10]=g*tt,z[14]=S*g*tt}return z}let T=t.create(),E=t.create(),O=t.create();function P(u,B,M,x){let g=x??new e(16);return t.normalize(t.subtract(B,u,O),O),t.normalize(t.cross(M,O,T),T),t.normalize(t.cross(O,T,E),E),g[0]=T[0],g[1]=T[1],g[2]=T[2],g[3]=0,g[4]=E[0],g[5]=E[1],g[6]=E[2],g[7]=0,g[8]=O[0],g[9]=O[1],g[10]=O[2],g[11]=0,g[12]=u[0],g[13]=u[1],g[14]=u[2],g[15]=1,g}function l(u,B,M,x){let g=x??new e(16);return t.normalize(t.subtract(u,B,O),O),t.normalize(t.cross(M,O,T),T),t.normalize(t.cross(O,T,E),E),g[0]=T[0],g[1]=T[1],g[2]=T[2],g[3]=0,g[4]=E[0],g[5]=E[1],g[6]=E[2],g[7]=0,g[8]=O[0],g[9]=O[1],g[10]=O[2],g[11]=0,g[12]=u[0],g[13]=u[1],g[14]=u[2],g[15]=1,g}function U(u,B,M,x){let g=x??new e(16);return t.normalize(t.subtract(u,B,O),O),t.normalize(t.cross(M,O,T),T),t.normalize(t.cross(O,T,E),E),g[0]=T[0],g[1]=E[0],g[2]=O[0],g[3]=0,g[4]=T[1],g[5]=E[1],g[6]=O[1],g[7]=0,g[8]=T[2],g[9]=E[2],g[10]=O[2],g[11]=0,g[12]=-(T[0]*u[0]+T[1]*u[1]+T[2]*u[2]),g[13]=-(E[0]*u[0]+E[1]*u[1]+E[2]*u[2]),g[14]=-(O[0]*u[0]+O[1]*u[1]+O[2]*u[2]),g[15]=1,g}function ot(u,B){let M=B??new e(16);return M[0]=1,M[1]=0,M[2]=0,M[3]=0,M[4]=0,M[5]=1,M[6]=0,M[7]=0,M[8]=0,M[9]=0,M[10]=1,M[11]=0,M[12]=u[0],M[13]=u[1],M[14]=u[2],M[15]=1,M}function at(u,B,M){let x=M??new e(16),g=B[0],S=B[1],L=B[2],z=u[0],H=u[1],J=u[2],tt=u[3],ct=u[4],nt=u[5],it=u[6],pt=u[7],ht=u[8],lt=u[9],gt=u[10],wt=u[11],dt=u[12],mt=u[13],yt=u[14],bt=u[15];return u!==x&&(x[0]=z,x[1]=H,x[2]=J,x[3]=tt,x[4]=ct,x[5]=nt,x[6]=it,x[7]=pt,x[8]=ht,x[9]=lt,x[10]=gt,x[11]=wt),x[12]=z*g+ct*S+ht*L+dt,x[13]=H*g+nt*S+lt*L+mt,x[14]=J*g+it*S+gt*L+yt,x[15]=tt*g+pt*S+wt*L+bt,x}function ut(u,B){let M=B??new e(16),x=Math.cos(u),g=Math.sin(u);return M[0]=1,M[1]=0,M[2]=0,M[3]=0,M[4]=0,M[5]=x,M[6]=g,M[7]=0,M[8]=0,M[9]=-g,M[10]=x,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function ft(u,B,M){let x=M??new e(16),g=u[4],S=u[5],L=u[6],z=u[7],H=u[8],J=u[9],tt=u[10],ct=u[11],nt=Math.cos(B),it=Math.sin(B);return x[4]=nt*g+it*H,x[5]=nt*S+it*J,x[6]=nt*L+it*tt,x[7]=nt*z+it*ct,x[8]=nt*H-it*g,x[9]=nt*J-it*S,x[10]=nt*tt-it*L,x[11]=nt*ct-it*z,u!==x&&(x[0]=u[0],x[1]=u[1],x[2]=u[2],x[3]=u[3],x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}function Mt(u,B){let M=B??new e(16),x=Math.cos(u),g=Math.sin(u);return M[0]=x,M[1]=0,M[2]=-g,M[3]=0,M[4]=0,M[5]=1,M[6]=0,M[7]=0,M[8]=g,M[9]=0,M[10]=x,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function vt(u,B,M){let x=M??new e(16),g=u[0],S=u[1],L=u[2],z=u[3],H=u[8],J=u[9],tt=u[10],ct=u[11],nt=Math.cos(B),it=Math.sin(B);return x[0]=nt*g-it*H,x[1]=nt*S-it*J,x[2]=nt*L-it*tt,x[3]=nt*z-it*ct,x[8]=nt*H+it*g,x[9]=nt*J+it*S,x[10]=nt*tt+it*L,x[11]=nt*ct+it*z,u!==x&&(x[4]=u[4],x[5]=u[5],x[6]=u[6],x[7]=u[7],x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}function X(u,B){let M=B??new e(16),x=Math.cos(u),g=Math.sin(u);return M[0]=x,M[1]=g,M[2]=0,M[3]=0,M[4]=-g,M[5]=x,M[6]=0,M[7]=0,M[8]=0,M[9]=0,M[10]=1,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function $(u,B,M){let x=M??new e(16),g=u[0],S=u[1],L=u[2],z=u[3],H=u[4],J=u[5],tt=u[6],ct=u[7],nt=Math.cos(B),it=Math.sin(B);return x[0]=nt*g+it*H,x[1]=nt*S+it*J,x[2]=nt*L+it*tt,x[3]=nt*z+it*ct,x[4]=nt*H-it*g,x[5]=nt*J-it*S,x[6]=nt*tt-it*L,x[7]=nt*ct-it*z,u!==x&&(x[8]=u[8],x[9]=u[9],x[10]=u[10],x[11]=u[11],x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}function A(u,B,M){let x=M??new e(16),g=u[0],S=u[1],L=u[2],z=Math.sqrt(g*g+S*S+L*L);g/=z,S/=z,L/=z;let H=g*g,J=S*S,tt=L*L,ct=Math.cos(B),nt=Math.sin(B),it=1-ct;return x[0]=H+(1-H)*ct,x[1]=g*S*it+L*nt,x[2]=g*L*it-S*nt,x[3]=0,x[4]=g*S*it-L*nt,x[5]=J+(1-J)*ct,x[6]=S*L*it+g*nt,x[7]=0,x[8]=g*L*it+S*nt,x[9]=S*L*it-g*nt,x[10]=tt+(1-tt)*ct,x[11]=0,x[12]=0,x[13]=0,x[14]=0,x[15]=1,x}let c=A;function b(u,B,M,x){let g=x??new e(16),S=B[0],L=B[1],z=B[2],H=Math.sqrt(S*S+L*L+z*z);S/=H,L/=H,z/=H;let J=S*S,tt=L*L,ct=z*z,nt=Math.cos(M),it=Math.sin(M),pt=1-nt,ht=J+(1-J)*nt,lt=S*L*pt+z*it,gt=S*z*pt-L*it,wt=S*L*pt-z*it,dt=tt+(1-tt)*nt,mt=L*z*pt+S*it,yt=S*z*pt+L*it,bt=L*z*pt-S*it,Zt=ct+(1-ct)*nt,Bt=u[0],Pt=u[1],$t=u[2],Dt=u[3],Ft=u[4],Wt=u[5],At=u[6],Ut=u[7],Kt=u[8],zt=u[9],It=u[10],jt=u[11];return g[0]=ht*Bt+lt*Ft+gt*Kt,g[1]=ht*Pt+lt*Wt+gt*zt,g[2]=ht*$t+lt*At+gt*It,g[3]=ht*Dt+lt*Ut+gt*jt,g[4]=wt*Bt+dt*Ft+mt*Kt,g[5]=wt*Pt+dt*Wt+mt*zt,g[6]=wt*$t+dt*At+mt*It,g[7]=wt*Dt+dt*Ut+mt*jt,g[8]=yt*Bt+bt*Ft+Zt*Kt,g[9]=yt*Pt+bt*Wt+Zt*zt,g[10]=yt*$t+bt*At+Zt*It,g[11]=yt*Dt+bt*Ut+Zt*jt,u!==g&&(g[12]=u[12],g[13]=u[13],g[14]=u[14],g[15]=u[15]),g}let w=b;function I(u,B){let M=B??new e(16);return M[0]=u[0],M[1]=0,M[2]=0,M[3]=0,M[4]=0,M[5]=u[1],M[6]=0,M[7]=0,M[8]=0,M[9]=0,M[10]=u[2],M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function G(u,B,M){let x=M??new e(16),g=B[0],S=B[1],L=B[2];return x[0]=g*u[0],x[1]=g*u[1],x[2]=g*u[2],x[3]=g*u[3],x[4]=S*u[4],x[5]=S*u[5],x[6]=S*u[6],x[7]=S*u[7],x[8]=L*u[8],x[9]=L*u[9],x[10]=L*u[10],x[11]=L*u[11],u!==x&&(x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}function q(u,B){let M=B??new e(16);return M[0]=u,M[1]=0,M[2]=0,M[3]=0,M[4]=0,M[5]=u,M[6]=0,M[7]=0,M[8]=0,M[9]=0,M[10]=u,M[11]=0,M[12]=0,M[13]=0,M[14]=0,M[15]=1,M}function k(u,B,M){let x=M??new e(16);return x[0]=B*u[0],x[1]=B*u[1],x[2]=B*u[2],x[3]=B*u[3],x[4]=B*u[4],x[5]=B*u[5],x[6]=B*u[6],x[7]=B*u[7],x[8]=B*u[8],x[9]=B*u[9],x[10]=B*u[10],x[11]=B*u[11],u!==x&&(x[12]=u[12],x[13]=u[13],x[14]=u[14],x[15]=u[15]),x}return{add:f,aim:P,axisRotate:b,axisRotation:A,cameraAim:l,clone:D,copy:d,create:n,determinant:Y,equals:C,equalsApproximately:m,fromMat3:i,fromQuat:o,frustum:_,frustumReverseZ:y,getAxis:st,getScaling:rt,getTranslation:W,identity:R,inverse:V,invert:K,lookAt:U,mul:j,mulScalar:v,multiply:Q,multiplyScalar:h,negate:a,ortho:p,perspective:F,perspectiveReverseZ:s,rotate:w,rotateX:ft,rotateY:vt,rotateZ:$,rotation:c,rotationX:ut,rotationY:Mt,rotationZ:X,scale:G,scaling:I,set:r,setAxis:et,setTranslation:Z,translate:at,translation:ot,transpose:N,uniformScale:k,uniformScaling:q}}var Bi=new Map;function su(e){let t=Bi.get(e);return t||(t=au(e),Bi.set(e,t)),t}function uu(e){let t=pr(e);function n(X,$,A,c){let b=new e(4);return X!==void 0&&(b[0]=X,$!==void 0&&(b[1]=$,A!==void 0&&(b[2]=A,c!==void 0&&(b[3]=c)))),b}let r=n;function i(X,$,A,c,b){let w=b??new e(4);return w[0]=X,w[1]=$,w[2]=A,w[3]=c,w}function o(X,$,A){let c=A??new e(4),b=$*.5,w=Math.sin(b);return c[0]=w*X[0],c[1]=w*X[1],c[2]=w*X[2],c[3]=Math.cos(b),c}function a(X,$){let A=$??t.create(3),c=Math.acos(X[3])*2,b=Math.sin(c*.5);return b>_t?(A[0]=X[0]/b,A[1]=X[1]/b,A[2]=X[2]/b):(A[0]=1,A[1]=0,A[2]=0),{angle:c,axis:A}}function f(X,$){let A=F(X,$);return Math.acos(2*A*A-1)}function h(X,$,A){let c=A??new e(4),b=X[0],w=X[1],I=X[2],G=X[3],q=$[0],k=$[1],u=$[2],B=$[3];return c[0]=b*B+G*q+w*u-I*k,c[1]=w*B+G*k+I*q-b*u,c[2]=I*B+G*u+b*k-w*q,c[3]=G*B-b*q-w*k-I*u,c}let v=h;function d(X,$,A){let c=A??new e(4),b=$*.5,w=X[0],I=X[1],G=X[2],q=X[3],k=Math.sin(b),u=Math.cos(b);return c[0]=w*u+q*k,c[1]=I*u+G*k,c[2]=G*u-I*k,c[3]=q*u-w*k,c}function D(X,$,A){let c=A??new e(4),b=$*.5,w=X[0],I=X[1],G=X[2],q=X[3],k=Math.sin(b),u=Math.cos(b);return c[0]=w*u-G*k,c[1]=I*u+q*k,c[2]=G*u+w*k,c[3]=q*u-I*k,c}function m(X,$,A){let c=A??new e(4),b=$*.5,w=X[0],I=X[1],G=X[2],q=X[3],k=Math.sin(b),u=Math.cos(b);return c[0]=w*u+I*k,c[1]=I*u-w*k,c[2]=G*u+q*k,c[3]=q*u-G*k,c}function C(X,$,A,c){let b=c??new e(4),w=X[0],I=X[1],G=X[2],q=X[3],k=$[0],u=$[1],B=$[2],M=$[3],x=w*k+I*u+G*B+q*M;x<0&&(x=-x,k=-k,u=-u,B=-B,M=-M);let g,S;if(1-x>_t){let L=Math.acos(x),z=Math.sin(L);g=Math.sin((1-A)*L)/z,S=Math.sin(A*L)/z}else g=1-A,S=A;return b[0]=g*w+S*k,b[1]=g*I+S*u,b[2]=g*G+S*B,b[3]=g*q+S*M,b}function R(X,$){let A=$??new e(4),c=X[0],b=X[1],w=X[2],I=X[3],G=c*c+b*b+w*w+I*I,q=G?1/G:0;return A[0]=-c*q,A[1]=-b*q,A[2]=-w*q,A[3]=I*q,A}function N(X,$){let A=$??new e(4);return A[0]=-X[0],A[1]=-X[1],A[2]=-X[2],A[3]=X[3],A}function V(X,$){let A=$??new e(4),c=X[0]+X[5]+X[10];if(c>0){let b=Math.sqrt(c+1);A[3]=.5*b;let w=.5/b;A[0]=(X[6]-X[9])*w,A[1]=(X[8]-X[2])*w,A[2]=(X[1]-X[4])*w}else{let b=0;X[5]>X[0]&&(b=1),X[10]>X[b*4+b]&&(b=2);let w=(b+1)%3,I=(b+2)%3,G=Math.sqrt(X[b*4+b]-X[w*4+w]-X[I*4+I]+1);A[b]=.5*G;let q=.5/G;A[3]=(X[w*4+I]-X[I*4+w])*q,A[w]=(X[w*4+b]+X[b*4+w])*q,A[I]=(X[I*4+b]+X[b*4+I])*q}return A}function Y(X,$,A,c,b){let w=b??new e(4),I=X*.5,G=$*.5,q=A*.5,k=Math.sin(I),u=Math.cos(I),B=Math.sin(G),M=Math.cos(G),x=Math.sin(q),g=Math.cos(q);switch(c){case"xyz":w[0]=k*M*g+u*B*x,w[1]=u*B*g-k*M*x,w[2]=u*M*x+k*B*g,w[3]=u*M*g-k*B*x;break;case"xzy":w[0]=k*M*g-u*B*x,w[1]=u*B*g-k*M*x,w[2]=u*M*x+k*B*g,w[3]=u*M*g+k*B*x;break;case"yxz":w[0]=k*M*g+u*B*x,w[1]=u*B*g-k*M*x,w[2]=u*M*x-k*B*g,w[3]=u*M*g+k*B*x;break;case"yzx":w[0]=k*M*g+u*B*x,w[1]=u*B*g+k*M*x,w[2]=u*M*x-k*B*g,w[3]=u*M*g-k*B*x;break;case"zxy":w[0]=k*M*g-u*B*x,w[1]=u*B*g+k*M*x,w[2]=u*M*x+k*B*g,w[3]=u*M*g-k*B*x;break;case"zyx":w[0]=k*M*g-u*B*x,w[1]=u*B*g+k*M*x,w[2]=u*M*x-k*B*g,w[3]=u*M*g+k*B*x;break;default:throw new Error(`Unknown rotation order: ${c}`)}return w}function K(X,$){let A=$??new e(4);return A[0]=X[0],A[1]=X[1],A[2]=X[2],A[3]=X[3],A}let Q=K;function j(X,$,A){let c=A??new e(4);return c[0]=X[0]+$[0],c[1]=X[1]+$[1],c[2]=X[2]+$[2],c[3]=X[3]+$[3],c}function Z(X,$,A){let c=A??new e(4);return c[0]=X[0]-$[0],c[1]=X[1]-$[1],c[2]=X[2]-$[2],c[3]=X[3]-$[3],c}let W=Z;function st(X,$,A){let c=A??new e(4);return c[0]=X[0]*$,c[1]=X[1]*$,c[2]=X[2]*$,c[3]=X[3]*$,c}let et=st;function rt(X,$,A){let c=A??new e(4);return c[0]=X[0]/$,c[1]=X[1]/$,c[2]=X[2]/$,c[3]=X[3]/$,c}function F(X,$){return X[0]*$[0]+X[1]*$[1]+X[2]*$[2]+X[3]*$[3]}function s(X,$,A,c){let b=c??new e(4);return b[0]=X[0]+A*($[0]-X[0]),b[1]=X[1]+A*($[1]-X[1]),b[2]=X[2]+A*($[2]-X[2]),b[3]=X[3]+A*($[3]-X[3]),b}function p(X){let $=X[0],A=X[1],c=X[2],b=X[3];return Math.sqrt($*$+A*A+c*c+b*b)}let _=p;function y(X){let $=X[0],A=X[1],c=X[2],b=X[3];return $*$+A*A+c*c+b*b}let T=y;function E(X,$){let A=$??new e(4),c=X[0],b=X[1],w=X[2],I=X[3],G=Math.sqrt(c*c+b*b+w*w+I*I);return G>1e-5?(A[0]=c/G,A[1]=b/G,A[2]=w/G,A[3]=I/G):(A[0]=0,A[1]=0,A[2]=0,A[3]=1),A}function O(X,$){return Math.abs(X[0]-$[0])<_t&&Math.abs(X[1]-$[1])<_t&&Math.abs(X[2]-$[2])<_t&&Math.abs(X[3]-$[3])<_t}function P(X,$){return X[0]===$[0]&&X[1]===$[1]&&X[2]===$[2]&&X[3]===$[3]}function l(X){let $=X??new e(4);return $[0]=0,$[1]=0,$[2]=0,$[3]=1,$}let U=t.create(),ot=t.create(),at=t.create();function ut(X,$,A){let c=A??new e(4),b=t.dot(X,$);return b<-.999999?(t.cross(ot,X,U),t.len(U)<1e-6&&t.cross(at,X,U),t.normalize(U,U),o(U,Math.PI,c),c):b>.999999?(c[0]=0,c[1]=0,c[2]=0,c[3]=1,c):(t.cross(X,$,U),c[0]=U[0],c[1]=U[1],c[2]=U[2],c[3]=1+b,E(c,c))}let ft=new e(4),Mt=new e(4);function vt(X,$,A,c,b,w){let I=w??new e(4);return C(X,c,b,ft),C($,A,b,Mt),C(ft,Mt,2*b*(1-b),I),I}return{create:n,fromValues:r,set:i,fromAxisAngle:o,toAxisAngle:a,angle:f,multiply:h,mul:v,rotateX:d,rotateY:D,rotateZ:m,slerp:C,inverse:R,conjugate:N,fromMat:V,fromEuler:Y,copy:K,clone:Q,add:j,subtract:Z,sub:W,mulScalar:st,scale:et,divScalar:rt,dot:F,lerp:s,length:p,len:_,lengthSq:y,lenSq:T,normalize:E,equalsApproximately:O,equals:P,identity:l,rotationTo:ut,sqlerp:vt}}var Pi=new Map;function fu(e){let t=Pi.get(e);return t||(t=uu(e),Pi.set(e,t)),t}function cu(e){function t(A,c,b,w){let I=new e(4);return A!==void 0&&(I[0]=A,c!==void 0&&(I[1]=c,b!==void 0&&(I[2]=b,w!==void 0&&(I[3]=w)))),I}let n=t;function r(A,c,b,w,I){let G=I??new e(4);return G[0]=A,G[1]=c,G[2]=b,G[3]=w,G}function i(A,c){let b=c??new e(4);return b[0]=Math.ceil(A[0]),b[1]=Math.ceil(A[1]),b[2]=Math.ceil(A[2]),b[3]=Math.ceil(A[3]),b}function o(A,c){let b=c??new e(4);return b[0]=Math.floor(A[0]),b[1]=Math.floor(A[1]),b[2]=Math.floor(A[2]),b[3]=Math.floor(A[3]),b}function a(A,c){let b=c??new e(4);return b[0]=Math.round(A[0]),b[1]=Math.round(A[1]),b[2]=Math.round(A[2]),b[3]=Math.round(A[3]),b}function f(A,c=0,b=1,w){let I=w??new e(4);return I[0]=Math.min(b,Math.max(c,A[0])),I[1]=Math.min(b,Math.max(c,A[1])),I[2]=Math.min(b,Math.max(c,A[2])),I[3]=Math.min(b,Math.max(c,A[3])),I}function h(A,c,b){let w=b??new e(4);return w[0]=A[0]+c[0],w[1]=A[1]+c[1],w[2]=A[2]+c[2],w[3]=A[3]+c[3],w}function v(A,c,b,w){let I=w??new e(4);return I[0]=A[0]+c[0]*b,I[1]=A[1]+c[1]*b,I[2]=A[2]+c[2]*b,I[3]=A[3]+c[3]*b,I}function d(A,c,b){let w=b??new e(4);return w[0]=A[0]-c[0],w[1]=A[1]-c[1],w[2]=A[2]-c[2],w[3]=A[3]-c[3],w}let D=d;function m(A,c){return Math.abs(A[0]-c[0])<_t&&Math.abs(A[1]-c[1])<_t&&Math.abs(A[2]-c[2])<_t&&Math.abs(A[3]-c[3])<_t}function C(A,c){return A[0]===c[0]&&A[1]===c[1]&&A[2]===c[2]&&A[3]===c[3]}function R(A,c,b,w){let I=w??new e(4);return I[0]=A[0]+b*(c[0]-A[0]),I[1]=A[1]+b*(c[1]-A[1]),I[2]=A[2]+b*(c[2]-A[2]),I[3]=A[3]+b*(c[3]-A[3]),I}function N(A,c,b,w){let I=w??new e(4);return I[0]=A[0]+b[0]*(c[0]-A[0]),I[1]=A[1]+b[1]*(c[1]-A[1]),I[2]=A[2]+b[2]*(c[2]-A[2]),I[3]=A[3]+b[3]*(c[3]-A[3]),I}function V(A,c,b){let w=b??new e(4);return w[0]=Math.max(A[0],c[0]),w[1]=Math.max(A[1],c[1]),w[2]=Math.max(A[2],c[2]),w[3]=Math.max(A[3],c[3]),w}function Y(A,c,b){let w=b??new e(4);return w[0]=Math.min(A[0],c[0]),w[1]=Math.min(A[1],c[1]),w[2]=Math.min(A[2],c[2]),w[3]=Math.min(A[3],c[3]),w}function K(A,c,b){let w=b??new e(4);return w[0]=A[0]*c,w[1]=A[1]*c,w[2]=A[2]*c,w[3]=A[3]*c,w}let Q=K;function j(A,c,b){let w=b??new e(4);return w[0]=A[0]/c,w[1]=A[1]/c,w[2]=A[2]/c,w[3]=A[3]/c,w}function Z(A,c){let b=c??new e(4);return b[0]=1/A[0],b[1]=1/A[1],b[2]=1/A[2],b[3]=1/A[3],b}let W=Z;function st(A,c){return A[0]*c[0]+A[1]*c[1]+A[2]*c[2]+A[3]*c[3]}function et(A){let c=A[0],b=A[1],w=A[2],I=A[3];return Math.sqrt(c*c+b*b+w*w+I*I)}let rt=et;function F(A){let c=A[0],b=A[1],w=A[2],I=A[3];return c*c+b*b+w*w+I*I}let s=F;function p(A,c){let b=A[0]-c[0],w=A[1]-c[1],I=A[2]-c[2],G=A[3]-c[3];return Math.sqrt(b*b+w*w+I*I+G*G)}let _=p;function y(A,c){let b=A[0]-c[0],w=A[1]-c[1],I=A[2]-c[2],G=A[3]-c[3];return b*b+w*w+I*I+G*G}let T=y;function E(A,c){let b=c??new e(4),w=A[0],I=A[1],G=A[2],q=A[3],k=w*w+I*I+G*G+q*q,u=k>0?1/Math.sqrt(k):1;return b[0]=w*u,b[1]=I*u,b[2]=G*u,b[3]=q*u,b}function O(A,c){let b=c??new e(4);return b[0]=-A[0],b[1]=-A[1],b[2]=-A[2],b[3]=-A[3],b}function P(A,c){let b=c??new e(4);return b[0]=A[0],b[1]=A[1],b[2]=A[2],b[3]=A[3],b}let l=P;function U(A,c,b){let w=b??new e(4);return w[0]=A[0]*c[0],w[1]=A[1]*c[1],w[2]=A[2]*c[2],w[3]=A[3]*c[3],w}let ot=U;function at(A,c,b){let w=b??new e(4);return w[0]=A[0]/c[0],w[1]=A[1]/c[1],w[2]=A[2]/c[2],w[3]=A[3]/c[3],w}let ut=at;function ft(A){let c=A??new e(4);return c[0]=0,c[1]=0,c[2]=0,c[3]=0,c}function Mt(A,c,b){let w=b??new e(4),I=A[0],G=A[1],q=A[2],k=A[3];return w[0]=c[0]*I+c[4]*G+c[8]*q+c[12]*k,w[1]=c[1]*I+c[5]*G+c[9]*q+c[13]*k,w[2]=c[2]*I+c[6]*G+c[10]*q+c[14]*k,w[3]=c[3]*I+c[7]*G+c[11]*q+c[15]*k,w}function vt(A,c,b){let w=b??new e(4);return E(A,w),K(w,c,w)}function X(A,c,b){let w=b??new e(4);return et(A)>c?vt(A,c,w):P(A,w)}function $(A,c,b){let w=b??new e(4);return R(A,c,.5,w)}return{create:t,fromValues:n,set:r,ceil:i,floor:o,round:a,clamp:f,add:h,addScaled:v,subtract:d,sub:D,equalsApproximately:m,equals:C,lerp:R,lerpV:N,max:V,min:Y,mulScalar:K,scale:Q,divScalar:j,inverse:Z,invert:W,dot:st,length:et,len:rt,lengthSq:F,lenSq:s,distance:p,dist:_,distanceSq:y,distSq:T,normalize:E,negate:O,copy:P,clone:l,multiply:U,mul:ot,divide:at,div:ut,zero:ft,transformMat4:Mt,setLength:vt,truncate:X,midpoint:$}}var Di=new Map;function lu(e){let t=Di.get(e);return t||(t=cu(e),Di.set(e,t)),t}function vn(e,t,n,r,i,o){return{mat3:ou(e),mat4:su(t),quat:fu(n),vec2:Fi(r),vec3:pr(i),vec4:lu(o)}}var{mat3:ye,mat4:Tt,quat:z1,vec2:Lt,vec3:fe,vec4:me}=vn(Float32Array,Float32Array,Float32Array,Float32Array,Float32Array,Float32Array),{mat3:I1,mat4:E1,quat:L1,vec2:G1,vec3:R1,vec4:O1}=vn(Float64Array,Float64Array,Float64Array,Float64Array,Float64Array,Float64Array),{mat3:q1,mat4:N1,quat:V1,vec2:C1,vec3:m1,vec4:k1}=vn(eu,Array,Array,Array,Array,Array);var gr=class{device;format="r8unorm";downsizeFactor;multisample;textureSimple;textureMultisampled=null;renderPipeline;bindgroup;uniformsBuffer;trianglesBuffer;constructor(t){this.device=t.device,this.downsizeFactor=t.blurFactor,this.multisample=this.downsizeFactor>1?4:1,[this.textureSimple,this.textureMultisampled]=this.createTextures(t.width,t.height),this.trianglesBuffer=t.trianglesBuffer;let n=this.device.createShaderModule({label:"DisplacementTexture shader module",code:bi});this.renderPipeline=this.device.createRenderPipeline({label:"DisplacementTexture renderpipeline",layout:"auto",vertex:{module:n,entryPoint:"main_vertex",buffers:[{attributes:[{shaderLocation:0,offset:0,format:"float32x2"}],arrayStride:2*Float32Array.BYTES_PER_ELEMENT,stepMode:"vertex"}]},fragment:{module:n,entryPoint:"main_fragment",targets:[{format:this.format}]},primitive:{cullMode:"none",topology:"triangle-list"},multisample:{count:this.multisample}}),this.uniformsBuffer=this.device.createBuffer({label:"DisplacementTexture uniforms buffer",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.bindgroup=this.device.createBindGroup({label:"DisplacementTexture bindgroup",layout:this.renderPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.uniformsBuffer}}]})}update(t){let n=this.textureMultisampled??this.textureSimple,r={view:n.view,clearValue:[0,0,0,1],loadOp:"clear",storeOp:"store"};this.textureMultisampled&&(r.resolveTarget=this.textureSimple.view);let i=t.beginRenderPass({label:"DisplacementTexture render to texture renderpass",colorAttachments:[r]}),[o,a]=[n.texture.width,n.texture.height];i.setViewport(0,0,o,a,0,1),i.setScissorRect(0,0,o,a),i.setPipeline(this.renderPipeline),i.setBindGroup(0,this.bindgroup),i.setVertexBuffer(0,this.trianglesBuffer.bufferGpu),i.draw(3*this.trianglesBuffer.spriteCount),i.end()}resize(t,n){this.textureSimple.texture.destroy(),this.textureMultisampled?.texture.destroy(),[this.textureSimple,this.textureMultisampled]=this.createTextures(t,n)}setViewport(t){let n=[1,1,1],r=0,i=[1,1,0],o=Tt.identity();Tt.multiply(Tt.scaling(n),o,o),Tt.multiply(Tt.rotationZ(r),o,o),Tt.multiply(Tt.translation(i),o,o);let a=Tt.translation([-t.position[0],-t.position[1],0]),f=t.width/t.zoom,h=t.height/t.zoom,v=Tt.ortho(0,f,h,0,-10,10),d=Tt.identity();Tt.multiply(a,o,d),Tt.multiply(v,d,d),this.device.queue.writeBuffer(this.uniformsBuffer,0,d)}getView(){return this.textureSimple.view}destroy(){this.textureSimple.texture.destroy(),this.textureMultisampled?.texture.destroy(),this.uniformsBuffer.destroy()}createTextures(t,n){let r=this.device.createTexture({label:"DisplacementTexture texture",size:[Math.ceil(t/this.downsizeFactor),Math.ceil(n/this.downsizeFactor)],format:this.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT}),i={texture:r,view:r.createView({label:"DisplacementTexture texture view"})},o=null;if(this.multisample>1){let a=this.device.createTexture({label:"DisplacementTexture texture multisampled",size:[r.width,r.height],format:r.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT,sampleCount:this.multisample});o={texture:a,view:a.createView({label:"DisplacementTexture texture multisampled view"})}}return[i,o]}};function Pe(){return Math.ceil(Math.random()*(Number.MAX_SAFE_INTEGER-10))}var dr=class{device;floatsPerSprite=6;bufferGpu;bufferNeedsUpdate=!1;sprites=new Map;get spriteCount(){return this.sprites.size}constructor(t){this.device=t.device,this.bufferGpu=this.device.createBuffer({size:t.maxSpriteCount*this.floatsPerSprite*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST})}destroy(){this.bufferGpu.destroy}update(){if(this.bufferNeedsUpdate){let t=[];for(let r of this.sprites.values())t.push(...r);let n=new Float32Array(t);this.device.queue.writeBuffer(this.bufferGpu,0,n)}}addTriangle(t){let n=Pe();if(this.sprites.has(n))throw new Error(`Duplicate triangle "${n}".`);let r=this.buildTriangleData(t);return this.sprites.set(n,r),this.bufferNeedsUpdate=!0,n}removeTriangle(t){if(!this.sprites.has(t))throw new Error(`Unknown triangle "${t}".`);this.sprites.delete(t),this.bufferNeedsUpdate=!0}setTriangle(t,n){if(!this.sprites.has(t))throw new Error(`Unknown triangle "${t}".`);let r=this.buildTriangleData(n);this.sprites.set(t,r),this.bufferNeedsUpdate=!0}buildTriangleData(t){return[t[0][0],t[0][1],t[1][0],t[1][1],t[2][0],t[2][1]]}};var Ui={type:"cobalt:displacement",onInit:async function(e,t={}){return hu(e,t)},onRun:function(e,t,n){vu(e,t,n)},onDestroy:function(e,t){pu(t)},onResize:function(e,t){t.data.displacementTexture.resize(e.viewport.width,e.viewport.height),t.data.displacementComposition.setColorTextureView(t.refs.color.data.view),t.data.displacementComposition.setNoiseMapTextureView(t.refs.map.view),t.data.displacementComposition.setDisplacementTextureView(t.data.displacementTexture.getView())},onViewportPosition:function(e,t){t.data.displacementTexture.setViewport(e.viewport)},customFunctions:{addTriangle:function(e,t,n){return t.data.trianglesBuffer.addTriangle(n)},removeTriangle:function(e,t,n){t.data.trianglesBuffer.removeTriangle(n)},setPosition:function(e,t,n,r){t.data.trianglesBuffer.setTriangle(n,r)}}};async function hu(e,t){let{device:n}=e,r=new vr({device:n,initialParameters:{offsetX:t.options.offseyX??0,offsetY:t.options.offseyY??0,scale:t.options.scale??20}}),i=256,o=new dr({device:n,maxSpriteCount:i}),a=new gr({device:n,width:e.viewport.width,height:e.viewport.height,blurFactor:8,trianglesBuffer:o}),f=new hr({device:n,targetFormat:Vt(e),colorTextureView:t.refs.color.data.view,noiseMapTextureView:t.refs.map.view,displacementTextureView:a.getView(),displacementParametersBuffer:r});return{displacementParameters:r,displacementTexture:a,displacementComposition:f,trianglesBuffer:o}}function vu(e,t,n){if(t.data.trianglesBuffer.spriteCount===0)return;t.data.trianglesBuffer.update(),t.data.displacementTexture.update(n);let i=n.beginRenderPass({label:"displacement",colorAttachments:[{view:t.refs.out,clearValue:e.clearValue,loadOp:"load",storeOp:"store"}]});i.executeBundles([t.data.displacementComposition.getRenderBundle()]),i.end()}function pu(e){e.data.trianglesBuffer.destroy(),e.data.trianglesBuffer=null,e.data.displacementParameters.destroy(),e.data.displacementParameters=null,e.data.displacementTexture.destroy(),e.data.displacementTexture=null,e.data.displacementComposition.destroy(),e.data.displacementComposition=null}var pn="@binding(0)@group(0)var tileTexture:texture_2d<f32>;@binding(1)@group(0)var tileSampler:sampler;struct Fragment{@builtin(position)Position:vec4<f32>,@location(0)TexCoord:vec2<f32>};const positions=array<vec2<f32>,3>(vec2<f32>(-1.0,-3.0),vec2<f32>(3.0,1.0),vec2<f32>(-1.0,1.0));const uvs=array<vec2<f32>,3>(vec2<f32>(0.0,2.0),vec2<f32>(2.0,0.0),vec2<f32>(0.0,0.0));@vertex fn vs_main(@builtin(vertex_index)VertexIndex:u32)->Fragment{var output:Fragment;output.Position=vec4<f32>(positions[VertexIndex],0.0,1.0);output.TexCoord=vec2<f32>(uvs[VertexIndex]);return output;}@fragment fn fs_main(@location(0)TexCoord:vec2<f32>)->@location(0)vec4<f32>{var col=textureSample(tileTexture,tileSampler,TexCoord);return vec4<f32>(col.rgb,1.0);}";var zi={type:"cobalt:fbBlit",onInit:async function(e,t={}){return gu(e,t)},onRun:function(e,t,n){du(e,t,n)},onDestroy:function(e,t){},onResize:function(e,t){wu(e,t)},onViewportPosition:function(e,t){}};async function gu(e,t){let{device:n}=e,r=n.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{}}]}),i=n.createBindGroup({layout:r,entries:[{binding:0,resource:t.refs.in.data.view},{binding:1,resource:t.refs.in.data.sampler}]}),o=n.createPipelineLayout({bindGroupLayouts:[r]}),a=n.createRenderPipeline({label:"fb-blit",vertex:{module:n.createShaderModule({code:pn}),entryPoint:"vs_main",buffers:[]},fragment:{module:n.createShaderModule({code:pn}),entryPoint:"fs_main",targets:[{format:Vt(e),blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"zero",dstFactor:"one"}}}]},primitive:{topology:"triangle-list"},layout:o});return{bindGroupLayout:r,bindGroup:i,pipeline:a}}function du(e,t,n){let{device:r}=e,i=n.beginRenderPass({label:"fb-blit",colorAttachments:[{view:t.refs.out,clearValue:e.clearValue,loadOp:"load",storeOp:"store"}]});i.setPipeline(t.data.pipeline),i.setBindGroup(0,t.data.bindGroup),i.draw(3),i.end()}function wu(e,t){let{device:n}=e;t.data.bindGroup=n.createBindGroup({layout:t.data.bindGroupLayout,entries:[{binding:0,resource:t.refs.in.data.view},{binding:1,resource:t.refs.in.data.sampler}]})}var Ii={type:"cobalt:fbTexture",onInit:async function(e,t={}){return xu(e,t)},onRun:function(e,t,n){},onDestroy:function(e,t){Ei(t)},onResize:function(e,t){Mu(e,t)},onViewportPosition:function(e,t){}};async function xu(e,t){let{device:n}=e;t.options.format=t.options.format==="PREFERRED_TEXTURE_FORMAT"?Vt(e):t.options.format;let{format:r,label:i,mip_count:o,usage:a,viewportScale:f}=t.options;return ne(n,i,e.viewport.width*f,e.viewport.height*f,o,r,a,t.options.filter)}function Ei(e){e.data.texture.destroy()}function Mu(e,t){let{device:n}=e;Ei(t);let{width:r,height:i}=e.viewport,{options:o}=t,a=t.options.viewportScale;t.data=ne(n,o.label,r*a,i*a,o.mip_count,o.format,o.usage,o.filter)}var ae=class e{static structs={definition:`
2
2
  struct Light { // align(16) size(48)
3
3
  color: vec3<f32>, // offset(0) align(16) size(12)
4
4
  radius: f32, // offset(12) align(4) size(4)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@footgun/cobalt",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "type": "module",
5
5
  "main": "bundle.js",
6
6
  "description": "A 2D WebGpu renderer",
@@ -70,5 +70,6 @@ function resize(cobalt, node) {
70
70
  options.mip_count,
71
71
  options.format,
72
72
  options.usage,
73
+ options.filter,
73
74
  )
74
75
  }