nodehammer-web 0.2.0rc3__py3-none-any.whl
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.
- nodehammer_web/__init__.py +79 -0
- nodehammer_web/runtime/compute_worker.js +116 -0
- nodehammer_web/runtime/index.html +228 -0
- nodehammer_web/runtime/nh_runtime.json +4 -0
- nodehammer_web/runtime/nodehammer-compute.js +50 -0
- nodehammer_web/runtime/nodehammer-compute.wasm +0 -0
- nodehammer_web/runtime/nodehammer-gles3.js +146 -0
- nodehammer_web/runtime/nodehammer-gles3.wasm +0 -0
- nodehammer_web/runtime/nodehammer-wgpu.js +154 -0
- nodehammer_web/runtime/nodehammer-wgpu.wasm +0 -0
- nodehammer_web-0.2.0rc3.dist-info/METADATA +47 -0
- nodehammer_web-0.2.0rc3.dist-info/RECORD +15 -0
- nodehammer_web-0.2.0rc3.dist-info/WHEEL +5 -0
- nodehammer_web-0.2.0rc3.dist-info/licenses/LICENSE +21 -0
- nodehammer_web-0.2.0rc3.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
var h;h||=typeof Module != 'undefined' ? Module : {};var aa=!!globalThis.window,ba=!!globalThis.WorkerGlobalScope,ca=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type,da=[],ea="./this.program",fa=(a,b)=>{throw b;},ha=globalThis.document?.currentScript?.src;"undefined"!=typeof __filename?ha=__filename:ba&&(ha=self.location.href);var ia="",ja,ka;
|
|
2
|
+
if(ca){var fs=require("node:fs");ia=__dirname+"/";ka=a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a)};ja=async a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(ea=process.argv[1].replace(/\\/g,"/"));da=process.argv.slice(2);"undefined"!=typeof module&&(module.exports=h);fa=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||ba){try{ia=(new URL(".",ha)).href}catch{}ba&&(ka=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});
|
|
3
|
+
ja=async a=>{if(la(a))return new Promise((c,d)=>{var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=()=>{200==e.status||0==e.status&&e.response?c(e.response):d(e.status)};e.onerror=d;e.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}var ma=console.log.bind(console),na=console.error.bind(console),oa,qa=!1,ra,la=a=>a.startsWith("file://"),sa=!1;
|
|
4
|
+
function ta(){var a=ua.buffer;k=new Int8Array(a);t=new Int16Array(a);h.HEAPU8=u=new Uint8Array(a);va=new Uint16Array(a);w=new Int32Array(a);y=new Uint32Array(a);wa=new Float32Array(a);z=new Float64Array(a);B=new BigInt64Array(a);new BigUint64Array(a)}function D(a){h.onAbort?.(a);a=`Aborted(${a})`;na(a);qa=!0;a+=". Build with -sASSERTIONS for more info.";sa&&xa();throw new WebAssembly.RuntimeError(a);}var ya;
|
|
5
|
+
async function za(a){if(!oa)try{var b=await ja(a);return new Uint8Array(b)}catch{}if(a==ya&&oa)a=new Uint8Array(oa);else if(ka)a=ka(a);else throw"both async and sync fetching of the wasm failed";return a}async function Aa(a,b){try{var c=await za(a);return await WebAssembly.instantiate(c,b)}catch(d){na(`failed to asynchronously prepare wasm: ${d}`),D(d)}}
|
|
6
|
+
async function Ba(a){var b=ya;if(!oa&&!la(b)&&!ca)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){na(`wasm streaming compile failed: ${d}`),na("falling back to ArrayBuffer instantiation")}return Aa(b,a)}class Ca{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}
|
|
7
|
+
var t,w,B,k,wa,z,va,y,u,Da=a=>{for(;0<a.length;)a.shift()(h)},Ea=[],Fa=[],Ga=()=>{var a=h.preRun.shift();Fa.push(a)},Ha=0,Ia=null,Ja=()=>{Ha--;h.monitorRunDependencies?.(Ha);if(0==Ha&&Ia){var a=Ia;Ia=null;a()}},Ka=()=>{Ha++;h.monitorRunDependencies?.(Ha)},La=!0,Ma=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},Na=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);(a=Ma(a.split("/").filter(d=>
|
|
8
|
+
!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},Oa=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.slice(0,-1);return a+b},Pa=a=>a&&a.match(/([^\/]+|\/)\/*$/)[1],Ra=()=>{if(ca){var a=require("node:crypto");return b=>a.randomFillSync(b)}return b=>(crypto.getRandomValues(b),0)},Ta=a=>(Ta=Ra())(a),Ua=(...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){c=0<=d?a[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");
|
|
9
|
+
if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=Ma(b.split("/").filter(e=>!!e),!c).join("/");return(c?"/":"")+b||"."},Va=(a,b)=>{function c(g){for(var m=0;m<g.length&&""===g[m];m++);for(var n=g.length-1;0<=n&&""===g[n];n--);return m>n?[]:g.slice(m,n-m+1)}a=Ua(a).slice(1);b=Ua(b).slice(1);a=c(a.split("/"));b=c(b.split("/"));for(var d=Math.min(a.length,b.length),e=d,f=0;f<d;f++)if(a[f]!==b[f]){e=f;break}d=[];for(f=e;f<a.length;f++)d.push("..");d=d.concat(b.slice(e));return d.join("/")},Wa=new TextDecoder,
|
|
10
|
+
Xa=(a,b,c)=>{for(c=b+c;a[b]&&!(b>=c);)++b;return b},Ya=a=>{var b=Xa(a,0);return Wa.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},Za=[],$a=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},G=(a,b,c,d)=>{if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var g=a.codePointAt(f);if(127>=g){if(c>=d)break;b[c++]=g}else if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6;b[c++]=128|g&63}else if(65535>=g){if(c+
|
|
11
|
+
2>=d)break;b[c++]=224|g>>12;b[c++]=128|g>>6&63;b[c++]=128|g&63}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63;b[c++]=128|g>>6&63;b[c++]=128|g&63;f++}}b[c]=0;return c-e},ab=a=>{var b=Array($a(a)+1);a=G(a,b,0,b.length);b.length=a;return b},bb=[];function cb(a,b){bb[a]={input:[],output:[],ad:b};db(a,eb)}
|
|
12
|
+
var eb={open(a){var b=bb[a.node.rdev];if(!b)throw new H(43);a.tty=b;a.seekable=!1},close(a){a.tty.ad.fsync(a.tty)},fsync(a){a.tty.ad.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.ad.Od)throw new H(60);for(var e=0,f=0;f<d;f++){try{var g=a.tty.ad.Od(a.tty)}catch(m){throw new H(29);}if(void 0===g&&0===e)throw new H(6);if(null===g||void 0===g)break;e++;b[c+f]=g}e&&(a.node.atime=Date.now());return e},write(a,b,c,d){if(!a.tty||!a.tty.ad.Bd)throw new H(60);try{for(var e=0;e<d;e++)a.tty.ad.Bd(a.tty,b[c+e])}catch(f){throw new H(29);
|
|
13
|
+
}d&&(a.node.mtime=a.node.ctime=Date.now());return e}},fb={Od(){a:{if(!Za.length){var a=null;if(ca){var b=Buffer.alloc(256),c=0,d=process.stdin.fd;try{c=fs.readSync(d,b,0,256)}catch(e){if(e.toString().includes("EOF"))c=0;else throw e;}0<c&&(a=b.slice(0,c).toString("utf-8"))}else globalThis.window?.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){a=null;break a}Za=ab(a)}a=Za.shift()}return a},Bd(a,b){null===b||10===b?(ma(Ya(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&
|
|
14
|
+
(ma(Ya(a.output)),a.output=[])},ge(){return{ue:25856,we:5,te:191,ve:35387,se:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},he(){return 0},ie(){return[24,80]}},gb={Bd(a,b){null===b||10===b?(na(Ya(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&(na(Ya(a.output)),a.output=[])}},J={Vc:null,Sc(){return J.createNode(null,"/",16895,0)},createNode(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new H(63);J.Vc||(J.Vc={dir:{node:{Zc:J.sc.Zc,
|
|
15
|
+
Wc:J.sc.Wc,lookup:J.sc.lookup,jd:J.sc.jd,rename:J.sc.rename,unlink:J.sc.unlink,rmdir:J.sc.rmdir,readdir:J.sc.readdir,symlink:J.sc.symlink},stream:{Uc:J.tc.Uc}},file:{node:{Zc:J.sc.Zc,Wc:J.sc.Wc},stream:{Uc:J.tc.Uc,read:J.tc.read,write:J.tc.write,xd:J.tc.xd,Sd:J.tc.Sd}},link:{node:{Zc:J.sc.Zc,Wc:J.sc.Wc,readlink:J.sc.readlink},stream:{}},Md:{node:{Zc:J.sc.Zc,Wc:J.sc.Wc},stream:hb}});c=ib(a,b,c,d);M(c.mode)?(c.sc=J.Vc.dir.node,c.tc=J.Vc.dir.stream,c.uc={}):32768===(c.mode&61440)?(c.sc=J.Vc.file.node,
|
|
16
|
+
c.tc=J.Vc.file.stream,c.Cc=0,c.uc=J.ee??(J.ee=new Uint8Array(0))):40960===(c.mode&61440)?(c.sc=J.Vc.link.node,c.tc=J.Vc.link.stream):8192===(c.mode&61440)&&(c.sc=J.Vc.Md.node,c.tc=J.Vc.Md.stream);c.atime=c.mtime=c.ctime=Date.now();a&&(a.uc[b]=c,a.atime=a.mtime=a.ctime=c.atime);return c},sc:{Zc(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;M(a.mode)?b.size=4096:32768===(a.mode&61440)?b.size=a.Cc:40960===(a.mode&61440)?b.size=a.link.length:
|
|
17
|
+
b.size=0;b.atime=new Date(a.atime);b.mtime=new Date(a.mtime);b.ctime=new Date(a.ctime);b.blksize=4096;b.blocks=Math.ceil(b.size/b.blksize);return b},Wc(a,b){for(var c of["mode","atime","mtime","ctime"])null!=b[c]&&(a[c]=b[c]);void 0!==b.size&&(b=b.size,a.Cc!=b&&(c=a.uc,a.uc=new Uint8Array(b),a.uc.set(c.subarray(0,Math.min(b,a.Cc))),a.Cc=b))},lookup(){J.qd||(J.qd=new H(44),J.qd.stack="<generic error, no stack>");throw J.qd;},jd(a,b,c,d){return J.createNode(a,b,c,d)},rename(a,b,c){try{var d=jb(b,c)}catch(f){}if(d){if(M(a.mode))for(var e in d.uc)throw new H(55);
|
|
18
|
+
kb(d)}delete a.parent.uc[a.name];b.uc[c]=a;a.name=c;b.ctime=b.mtime=a.parent.ctime=a.parent.mtime=Date.now()},unlink(a,b){delete a.uc[b];a.ctime=a.mtime=Date.now()},rmdir(a,b){var c=jb(a,b),d;for(d in c.uc)throw new H(55);delete a.uc[b];a.ctime=a.mtime=Date.now()},readdir(a){return[".","..",...Object.keys(a.uc)]},symlink(a,b,c){a=J.createNode(a,b,41471,0);a.link=c;return a},readlink(a){if(40960!==(a.mode&61440))throw new H(28);return a.link}},tc:{read(a,b,c,d,e){if(e>=a.node.Cc)return 0;d=Math.min(a.node.Cc-
|
|
19
|
+
e,d);b.set(a.node.uc.subarray(e,e+d),c);return d},write(a,b,c,d,e,f){b.buffer===k.buffer&&(f=!1);if(!d)return 0;a=a.node;a.mtime=a.ctime=Date.now();if(f)a.uc=b.subarray(c,c+d),a.Cc=d;else if(0===a.Cc&&0===e)a.uc=b.slice(c,c+d),a.Cc=d;else{f=e+d;var g=a.uc.length;g>=f||(f=Math.max(f,g*(1048576>g?2:1.125)>>>0),g&&(f=Math.max(f,256)),g=a.uc.subarray(0,a.Cc),a.uc=new Uint8Array(f),a.uc.set(g));a.uc.set(b.subarray(c,c+d),e);a.Cc=Math.max(a.Cc,e+d)}return d},Uc(a,b,c){1===c?b+=a.position:2===c&&32768===
|
|
20
|
+
(a.node.mode&61440)&&(b+=a.node.Cc);if(0>b)throw new H(28);return b},xd(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new H(43);a=a.node.uc;if(e&2||a.buffer!==k.buffer){d=!0;D();e=void 0;if(!e)throw new H(48);if(a){if(0<c||c+b<a.length)a.subarray?a=a.subarray(c,c+b):a=Array.prototype.slice.call(a,c,c+b);k.set(a,e)}}else d=!1,e=a.byteOffset;return{Le:e,ed:d}},Sd(a,b,c,d){J.tc.write(a,b,0,d,c,!1);return 0}}},lb=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},mb=async a=>{a=await ja(a);return new Uint8Array(a)},
|
|
21
|
+
nb=[],ob=async(a,b)=>{"undefined"!=typeof Browser&&Browser.He();for(var c of nb)if(c.canHandle(b))return c.handle(a,b);return a},pb=null,qb={},rb=[],sb=1,tb=null,ub=!1,vb=!0,H=class{name="ErrnoError";constructor(a){this.Bc=a}},wb=class{Fc={};node=null;get flags(){return this.Fc.flags}set flags(a){this.Fc.flags=a}get position(){return this.Fc.position}set position(a){this.Fc.position=a}},xb=class{sc={};tc={};dd=null;constructor(a,b,c,d){a||=this;this.parent=a;this.Sc=a.Sc;this.id=sb++;this.name=b;
|
|
22
|
+
this.mode=c;this.rdev=d;this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146===(this.mode&146)}set write(a){a?this.mode|=146:this.mode&=-147}get ke(){return M(this.mode)}get je(){return 8192===(this.mode&61440)}};
|
|
23
|
+
function N(a,b={}){if(!a)throw new H(44);b.sd??(b.sd=!0);"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(m=>!!m);for(var d=pb,e="/",f=0;f<a.length;f++){var g=f===a.length-1;if(g&&b.parent)break;if("."!==a[f])if(".."===a[f])if(e=Oa(e),d===d.parent){a=e+"/"+a.slice(f+1).join("/");c--;continue a}else d=d.parent;else{e=Na(e+"/"+a[f]);try{d=jb(d,a[f])}catch(m){if(44===m?.Bc&&g&&b.me)return{path:e};throw m;}!d.dd||g&&!b.sd||(d=d.dd.root);if(40960===(d.mode&61440)&&(!g||b.hd)){if(!d.sc.readlink)throw new H(52);
|
|
24
|
+
d=d.sc.readlink(d);"/"===d.charAt(0)||(d=Oa(e)+"/"+d);a=d+"/"+a.slice(f+1).join("/");continue a}}}return{path:e,node:d}}throw new H(32);}function yb(a){for(var b;;){if(a===a.parent)return a=a.Sc.Rd,b?"/"!==a[a.length-1]?`${a}/${b}`:a+b:a;b=b?`${a.name}/${b}`:a.name;a=a.parent}}function zb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%tb.length}function Ab(a){var b=zb(a.parent.id,a.name);a.gd=tb[b];tb[b]=a}
|
|
25
|
+
function kb(a){var b=zb(a.parent.id,a.name);if(tb[b]===a)tb[b]=a.gd;else for(b=tb[b];b;){if(b.gd===a){b.gd=a.gd;break}b=b.gd}}function jb(a,b){var c=M(a.mode)?(c=Bb(a,"x"))?c:a.sc.lookup?0:2:54;if(c)throw new H(c);for(c=tb[zb(a.id,b)];c;c=c.gd){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.sc.lookup(a,b)}function ib(a,b,c,d){a=new xb(a,b,c,d);Ab(a);return a}function M(a){return 16384===(a&61440)}
|
|
26
|
+
function Bb(a,b){return vb?0:b.includes("r")&&!(a.mode&292)||b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73)?2:0}function Cb(a,b){if(!M(a.mode))return 54;try{return jb(a,b),20}catch(c){}return Bb(a,"wx")}function Db(a,b,c){try{var d=jb(a,b)}catch(e){return e.Bc}if(a=Bb(a,"wx"))return a;if(c){if(!M(d.mode))return 54;if(d===d.parent||"/"===yb(d))return 10}else if(M(d.mode))return 31;return 0}function Eb(a){if(!a)throw new H(63);return a}
|
|
27
|
+
function Fb(a){a=rb[a];if(!a)throw new H(8);return a}function Gb(a,b=-1){a=Object.assign(new wb,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!rb[b])break a;throw new H(33);}a.fd=b;return rb[b]=a}function Hb(a,b=-1){a=Gb(a,b);a.tc?.De?.(a);return a}function Ib(a,b){var c=null?.tc.Wc,d=c?null:a;c??=a.sc.Wc;Eb(c);c(d,b)}var hb={open(a){a.tc=qb[a.node.rdev].tc;a.tc.open?.(a)},Uc(){throw new H(70);}};function db(a,b){qb[a]={tc:b}}
|
|
28
|
+
function Jb(a,b){var c="/"===b;if(c&&pb)throw new H(10);if(!c&&b){var d=N(b,{sd:!1});b=d.path;d=d.node;if(d.dd)throw new H(10);if(!M(d.mode))throw new H(54);}b={type:a,Je:{},Rd:b,le:[]};a=a.Sc(b);a.Sc=b;b.root=a;c?pb=a:d&&(d.dd=b,d.Sc&&d.Sc.le.push(b))}function Kb(a,b,c){var d=N(a,{parent:!0}).node;a=Pa(a);if(!a)throw new H(28);if("."===a||".."===a)throw new H(20);var e=Cb(d,a);if(e)throw new H(e);if(!d.sc.jd)throw new H(63);return d.sc.jd(d,a,b,c)}
|
|
29
|
+
function Lb(a,b=438){return Kb(a,b&4095|32768,0)}function Mb(a){return Kb(a,16895,0)}function Nb(a,b,c){"undefined"==typeof c&&(c=b,b=438);return Kb(a,b|8192,c)}function Ob(a,b){if(!Ua(a))throw new H(44);var c=N(b,{parent:!0}).node;if(!c)throw new H(44);b=Pa(b);var d=Cb(c,b);if(d)throw new H(d);if(!c.sc.symlink)throw new H(63);c.sc.symlink(c,b,a)}
|
|
30
|
+
function Pb(a){var b=N(a,{parent:!0}).node;a=Pa(a);var c=jb(b,a),d=Db(b,a,!0);if(d)throw new H(d);if(!b.sc.rmdir)throw new H(63);if(c.dd)throw new H(10);b.sc.rmdir(b,a);kb(c)}function Qb(a){var b=N(a,{parent:!0}).node;if(!b)throw new H(44);a=Pa(a);var c=jb(b,a),d=Db(b,a,!1);if(d)throw new H(d);if(!b.sc.unlink)throw new H(63);if(c.dd)throw new H(10);b.sc.unlink(b,a);kb(c)}function Rb(a,b){a="string"==typeof a?N(a,{hd:!0}).node:a;Ib(a,{mode:b&4095|a.mode&-4096,ctime:Date.now(),Ce:void 0})}
|
|
31
|
+
function Sb(a,b,c=438){if(""===a)throw new H(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof d)throw Error(`Unknown file open mode: ${b}`);b=d}c=b&64?c&4095|32768:0;if("object"==typeof a)d=a;else{var e=a.endsWith("/");var f=N(a,{hd:!(b&131072),me:!0});d=f.node;a=f.path}f=!1;if(b&64)if(d){if(b&128)throw new H(20);}else{if(e)throw new H(31);d=Kb(a,c|511,0);f=!0}if(!d)throw new H(44);8192===(d.mode&61440)&&(b&=-513);if(b&65536&&!M(d.mode))throw new H(54);
|
|
32
|
+
if(!f&&(d?40960===(d.mode&61440)?e=32:(e=["r","w","rw"][b&3],b&512&&(e+="w"),e=M(d.mode)&&("r"!==e||b&576)?31:Bb(d,e)):e=44,e))throw new H(e);if(b&512&&!f){e=d;e="string"==typeof e?N(e,{hd:!0}).node:e;if(M(e.mode))throw new H(31);if(32768!==(e.mode&61440))throw new H(28);if(a=Bb(e,"w"))throw new H(a);Ib(e,{size:0,timestamp:Date.now()})}b=Gb({node:d,path:yb(d),flags:b&-131713,seekable:!0,position:0,tc:d.tc,oe:[],error:!1});b.tc.open&&b.tc.open(b);f&&Rb(d,c&511);return b}
|
|
33
|
+
function Tb(a){if(null===a.fd)throw new H(8);a.ud&&(a.ud=null);try{a.tc.close&&a.tc.close(a)}catch(b){throw b;}finally{rb[a.fd]=null}a.fd=null}function Ub(a,b,c){if(null===a.fd)throw new H(8);if(!a.seekable||!a.tc.Uc)throw new H(70);if(0!=c&&1!=c&&2!=c)throw new H(28);a.position=a.tc.Uc(a,b,c);a.oe=[]}
|
|
34
|
+
function Vb(a,b,c,d,e,f){if(0>d||0>e)throw new H(28);if(null===a.fd)throw new H(8);if(0===(a.flags&2097155))throw new H(8);if(M(a.node.mode))throw new H(31);if(!a.tc.write)throw new H(28);a.seekable&&a.flags&1024&&Ub(a,0,2);var g="undefined"!=typeof e;if(!g)e=a.position;else if(!a.seekable)throw new H(70);b=a.tc.write(a,b,c,d,e,f);g||(a.position+=b);return b}
|
|
35
|
+
function Wb(a,b){a="string"==typeof a?a:yb(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=Na(a+"/"+c);try{Mb(d)}catch(e){if(20!=e.Bc)throw e;}a=d}}return d}function Xb(a,b,c,d){a=Na(("string"==typeof a?a:yb(a))+"/"+b);return Lb(a,lb(c,d))}function Yb(a,b,c,d,e,f){var g=b;a&&(a="string"==typeof a?a:yb(a),g=b?Na(a+"/"+b):a);a=lb(d,e);g=Lb(g,a);c&&("string"==typeof c&&(c=ab(c)),c.subarray||(c=new Uint8Array(c)),Rb(g,a|146),b=Sb(g,577),Vb(b,c,0,c.length,0,f),Tb(b),Rb(g,a))}
|
|
36
|
+
function Zb(a,b,c,d){a=Na(("string"==typeof a?a:yb(a))+"/"+b);b=lb(!!c,!!d);Zb.Qd??(Zb.Qd=64);var e=Zb.Qd++<<8|0;db(e,{open(f){f.seekable=!1},close(){d?.buffer?.length&&d(10)},read(f,g,m,n){for(var p=0,r=0;r<n;r++){try{var l=c()}catch(q){throw new H(29);}if(void 0===l&&0===p)throw new H(6);if(null===l||void 0===l)break;p++;g[m+r]=l}p&&(f.node.atime=Date.now());return p},write(f,g,m,n){for(var p=0;p<n;p++)try{d(g[m+p])}catch(r){throw new H(29);}n&&(f.node.mtime=f.node.ctime=Date.now());return p}});
|
|
37
|
+
return Nb(a,b,e)}function $b(a){if(!(a.je||a.ke||a.link||a.uc))if(globalThis.XMLHttpRequest)D("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");else try{a.uc=ka(a.url)}catch(b){throw new H(29);}}
|
|
38
|
+
function ac(a,b,c,d,e){class f{Fd=!1;Fc=[];nd=void 0;Jd=0;Id=0;get(p){if(!(p>this.length-1||0>p)){var r=p%this.chunkSize;return this.nd(p/this.chunkSize|0)[r]}}be(p){this.nd=p}Kd(){var p=new XMLHttpRequest;p.open("HEAD",c,!1);p.send(null);200<=p.status&&300>p.status||304===p.status||D("Couldn't load "+c+". Status: "+p.status);var r=Number(p.getResponseHeader("Content-length")),l,q=(l=p.getResponseHeader("Accept-Ranges"))&&"bytes"===l;p=(l=p.getResponseHeader("Content-Encoding"))&&"gzip"===l;var v=
|
|
39
|
+
1048576;q||(v=r);var x=this;x.be(C=>{var F=C*v,I=(C+1)*v-1;I=Math.min(I,r-1);if("undefined"==typeof x.Fc[C]){var Q=x.Fc;F>I&&D("invalid range ("+F+", "+I+") or no bytes requested!");I>r-1&&D("only "+r+" bytes available! programmer error!");var L=new XMLHttpRequest;L.open("GET",c,!1);r!==v&&L.setRequestHeader("Range","bytes="+F+"-"+I);L.responseType="arraybuffer";L.overrideMimeType&&L.overrideMimeType("text/plain; charset=x-user-defined");L.send(null);200<=L.status&&300>L.status||304===L.status||D("Couldn't load "+
|
|
40
|
+
c+". Status: "+L.status);F=void 0!==L.response?new Uint8Array(L.response||[]):ab(L.responseText||"");Q[C]=F}"undefined"==typeof x.Fc[C]&&D("doXHR failed!");return x.Fc[C]});if(p||!r)v=r=1,v=r=this.nd(0).length,ma("LazyFiles on gzip forces download of the whole file when length is accessed");this.Jd=r;this.Id=v;this.Fd=!0}get length(){this.Fd||this.Kd();return this.Jd}get chunkSize(){this.Fd||this.Kd();return this.Id}}if(globalThis.XMLHttpRequest){ba||D("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");
|
|
41
|
+
var g=new f;var m=void 0}else m=c,g=void 0;var n=Xb(a,b,d,e);g?n.uc=g:m&&(n.uc=null,n.url=m);Object.defineProperties(n,{Cc:{get:function(){return this.uc.length}}});a={};for(const [p,r]of Object.entries(n.tc))a[p]=(...l)=>{$b(n);return r(...l)};a.read=(p,r,l,q,v)=>{$b(n);p=p.node.uc;if(v>=p.length)r=0;else{q=Math.min(p.length-v,q);if(p.slice)for(var x=0;x<q;x++)r[l+x]=p[v+x];else for(x=0;x<q;x++)r[l+x]=p.get(v+x);r=q}return r};a.xd=()=>{$b(n);D();throw new H(48);};n.tc=a;return n}
|
|
42
|
+
var O={},P=(a,b)=>a?Wa.decode(u.subarray(a,Xa(u,a,b))):"";function bc(a,b){if("/"===b.charAt(0))return b;a=-100===a?"/":Fb(a).path;if(0==b.length)throw new H(44);return a+"/"+b}
|
|
43
|
+
var cc=void 0,dc=()=>{var a=w[+cc>>2];cc+=4;return a},ec=0,R=a=>-9007199254740992>a||9007199254740992<a?NaN:Number(a),fc=a=>0===a%4&&(0!==a%100||0===a%400),gc=[0,31,60,91,121,152,182,213,244,274,305,335],hc=[0,31,59,90,120,151,181,212,243,273,304,334],ic={},jc=a=>{a instanceof Ca||"unwind"==a||fa(1,a)},kc=a=>{ra=a;La||0<ec||(h.onExit?.(a),qa=!0);fa(a,new Ca(a))},lc=()=>{if(!(La||0<ec))try{var a=ra;ra=a;kc(a)}catch(b){jc(b)}},mc=a=>{if(!qa)try{a()}catch(b){jc(b)}finally{lc()}},wc=(a,b)=>{nc=a;oc=b;
|
|
44
|
+
if(pc)if(qc||=!0,0==a)rc=function(){setTimeout(sc,Math.max(0,tc+b-performance.now())|0)};else if(1==a)rc=function(){uc(sc)};else{if(!vc)if(globalThis.setImmediate)vc=setImmediate;else{var c=[];addEventListener("message",d=>{if("setimmediate"===d.data||"setimmediate"===d.data.target)d.stopPropagation(),c.shift()()},!0);vc=d=>{c.push(d);if(ba){let e;(e=h).setImmediates??(e.setImmediates=[]);h.setImmediates.push(d);postMessage({target:"setimmediate"})}else postMessage("setimmediate","*")}}rc=function(){vc(sc)}}},
|
|
45
|
+
Fc=(a,b,c,d,e)=>{function f(){return g<xc?(lc(),!1):!0}pc=a;yc=d;var g=xc;qc=!1;sc=function(){if(!qa)if(0<zc.length){var m=zc.shift();m.Fe(m.pe);if(Ac){var n=Ac,p=0==n%1?n-1:Math.floor(n);Ac=m.xe?p:(8*n+(p+.5))/9}h.setStatus&&(m=h.statusMessage||"Please wait...",n=Ac??0,p=Bc.Ee??0,n?n<p?h.setStatus("{message} ({expected - remaining}/{expected})"):h.setStatus(m):h.setStatus(""));f()&&setTimeout(sc,0)}else if(f())if(Cc=Cc+1|0,1==nc&&1<oc&&0!=Cc%oc)rc();else{0==nc&&(tc=performance.now());a:if(!qa){for(m of Dc)if(!1===
|
|
46
|
+
m())break a;mc(a);for(n of Ec)n()}f()&&rc()}};e||(0<b?wc(0,1E3/b):wc(1,1),rc());if(c)throw"unwind";},qc=!1,rc=null,xc=0,pc=null,yc=0,nc=0,oc=0,Cc=0,zc=[],Dc=[],Ec=[];function Gc(){rc=null;xc++}var Hc=0;function uc(a){if(globalThis.requestAnimationFrame)requestAnimationFrame(a);else{var b=Date.now();if(0===Hc)Hc=b+1E3/60;else for(;b+2>=Hc;)Hc+=1E3/60;setTimeout(a,Math.max(Hc-b,0))}}
|
|
47
|
+
var Bc={},tc,sc,vc,Ac,Ic=[0,globalThis.document??0,globalThis.window??0],S=a=>{a=2<a?P(a):a;return Ic[a]||globalThis.document?.querySelector(a)},Jc=a=>0>Ic.indexOf(a)?a.getBoundingClientRect():{left:0,top:0};function Kc(a){var b=T.Dc[a];b.target.removeEventListener(b.Ec,b.Nd,b.Xc);T.Dc.splice(a,1)}function Lc(){if(navigator.userActivation?navigator.userActivation.isActive:T.vd&&T.de.pd){var a=T.cd;T.cd=[];for(var b of a)b.Dd(...b.Ld)}}
|
|
48
|
+
function Mc(a){if(!a.target)return-4;if(a.Rc)a.Nd=function(c){++T.vd;T.de=a;Lc();a.$c(c);Lc();--T.vd},a.target.addEventListener(a.Ec,a.Nd,a.Xc),T.Dc.push(a);else for(var b=0;b<T.Dc.length;++b)T.Dc[b].target==a.target&&T.Dc[b].Ec==a.Ec&&Kc(b--);return 0}function Nc(a){return a?a==window?"#window":a==screen?"#screen":a?.nodeName||"":""}
|
|
49
|
+
var T={qe:0,Ge:0,wd:0,kd:0,Hd:0,Gd:0,rd:0,Be:0,Ke:0,Ae:0,td:0,zd:0,We:0,Ed:0,Me(){for(;T.Dc.length;)Kc(T.Dc.length-1);T.cd=[]},vd:0,cd:[],ze(a,b,c){function d(f,g){if(f.length!=g.length)return!1;for(var m in f)if(f[m]!=g[m])return!1;return!0}for(var e of T.cd)if(e.Dd==a&&d(e.Ld,c))return;T.cd.push({Dd:a,Ud:b,Ld:c});T.cd.sort((f,g)=>f.Ud-g.Ud)},Oe(a){T.cd=T.cd.filter(b=>b.Dd!=a)},Dc:[],Ne:(a,b)=>{for(var c=0;c<T.Dc.length;++c)T.Dc[c].target!=a||b&&b!=T.Dc[c].Ec||Kc(c--)},Pe(a){let b=!1;for(let c=0;c<
|
|
50
|
+
T.Dc.length;++c){const d=T.Dc[c];d.target===a.target&&d.Tc===a.Tc&&d.Rc===a.Rc&&d.Yc===a.Yc&&(Kc(c--),b=!0)}return b?0:-5},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},Oc=(a,b,c,d,e,f)=>{T.rd||(T.rd=U(256));a={target:S(a),Ec:f,Tc:e,Yc:b,Rc:d,$c:g=>{var m=g.target.id?g.target.id:"",n=T.rd;G(Nc(g.target),u,n+0,128);G(m,u,n+128,128);V.get(d)(e,n,b)&&g.preventDefault()},Xc:c};return Mc(a)},Pc=(a,b,c,d,e)=>{T.td||(T.td=U(276));return Mc({target:a,Ec:e,Tc:19,
|
|
51
|
+
Yc:b,Rc:d,$c:f=>{var g=T.td,m=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement||document.msFullscreenElement,n=!!m;k[g]=n;k[g+1]=T.fullscreenEnabled();var p=n?m:T.ne,r=p?.id||"";G(Nc(p),u,g+2,128);G(r,u,g+130,128);w[g+260>>2]=p?p.clientWidth:0;w[g+264>>2]=p?p.clientHeight:0;w[g+268>>2]=screen.width;w[g+272>>2]=screen.height;n&&(T.ne=m);V.get(d)(19,g,b)&&f.preventDefault()},Xc:c})},Qc=(a,b,c,d,e,f)=>{T.wd||(T.wd=U(160));
|
|
52
|
+
a={target:S(a),Ec:f,Tc:e,Yc:b,Rc:d,$c:g=>{var m=T.wd;z[m>>3]=g.timeStamp;var n=m>>2;w[n+2]=g.location;k[m+12]=g.ctrlKey;k[m+13]=g.shiftKey;k[m+14]=g.altKey;k[m+15]=g.metaKey;k[m+16]=g.repeat;w[n+5]=g.charCode;w[n+6]=g.keyCode;w[n+7]=g.which;G(g.key||"",u,m+32,32);G(g.code||"",u,m+64,32);G(g.char||"",u,m+96,32);G(g.locale||"",u,m+128,32);V.get(d)(e,m,b)&&g.preventDefault()},Xc:c};return Mc(a)},Rc=(a,b,c)=>{z[a>>3]=b.timeStamp;var d=a>>2;w[d+2]=b.screenX;w[d+3]=b.screenY;w[d+4]=b.clientX;w[d+5]=b.clientY;
|
|
53
|
+
k[a+24]=b.ctrlKey;k[a+25]=b.shiftKey;k[a+26]=b.altKey;k[a+27]=b.metaKey;t[2*d+14]=b.button;t[2*d+15]=b.buttons;w[d+8]=b.movementX;w[d+9]=b.movementY;a=Jc(c);w[d+10]=b.clientX-(a.left|0);w[d+11]=b.clientY-(a.top|0)},Sc=(a,b,c,d,e,f)=>{T.kd||(T.kd=U(64));a=S(a);return Mc({target:a,pd:"mousemove"!=f&&"mouseenter"!=f&&"mouseleave"!=f,Ec:f,Tc:e,Yc:b,Rc:d,$c:g=>{Rc(T.kd,g,a);V.get(d)(e,T.kd,b)&&g.preventDefault()},Xc:c})},Tc=(a,b,c,d)=>{T.zd||(T.zd=U(257));return Mc({target:a,Ec:"pointerlockchange",Tc:20,
|
|
54
|
+
Yc:b,Rc:d,$c:e=>{var f=T.zd,g=document.pointerLockElement;k[f]=!!g;var m=g?.id||"";G(Nc(g),u,f+1,128);G(m,u,f+129,128);V.get(d)(20,f,b)&&e.preventDefault()},Xc:c})},Uc=(a,b,c,d)=>Mc({target:a,Ec:"pointerlockerror",Tc:38,Yc:b,Rc:d,$c:e=>{V.get(d)(38,0,b)&&e.preventDefault()},Xc:c}),Vc=(a,b,c,d)=>{T.Gd||(T.Gd=U(36));a=S(a);return Mc({target:a,Ec:"resize",Tc:10,Yc:b,Rc:d,$c:e=>{if(e.target==a){var f=document.body;if(f){var g=T.Gd;w[g>>2]=0;w[g+4>>2]=f.clientWidth;w[g+8>>2]=f.clientHeight;w[g+12>>2]=
|
|
55
|
+
innerWidth;w[g+16>>2]=innerHeight;w[g+20>>2]=outerWidth;w[g+24>>2]=outerHeight;w[g+28>>2]=pageXOffset|0;w[g+32>>2]=pageYOffset|0;V.get(d)(10,g,b)&&e.preventDefault()}}},Xc:c})},Wc=(a,b,c,d,e,f)=>{T.Ed||(T.Ed=U(1552));a=S(a);return Mc({target:a,pd:"touchstart"==f||"touchend"==f,Ec:f,Tc:e,Yc:b,Rc:d,$c:g=>{var m={},n=g.touches;for(var p of n)p.Pd=p.Td=0,m[p.identifier]=p;for(var r of g.changedTouches)r.Pd=1,m[r.identifier]=r;for(var l of g.targetTouches)m[l.identifier].Td=1;n=T.Ed;z[n>>3]=g.timeStamp;
|
|
56
|
+
k[n+12]=g.ctrlKey;k[n+13]=g.shiftKey;k[n+14]=g.altKey;k[n+15]=g.metaKey;p=n+16;r=Jc(a);l=0;for(let q of Object.values(m))if(m=p>>2,w[m]=q.identifier,w[m+1]=q.screenX,w[m+2]=q.screenY,w[m+3]=q.clientX,w[m+4]=q.clientY,w[m+5]=q.pageX,w[m+6]=q.pageY,k[p+28]=q.Pd,k[p+29]=q.Td,w[m+8]=q.clientX-(r.left|0),w[m+9]=q.clientY-(r.top|0),p+=48,31<++l)break;w[n+8>>2]=l;V.get(d)(e,n,b)&&g.preventDefault()},Xc:c})},Xc=(a,b,c,d)=>{T.Hd||(T.Hd=U(96));return Mc({target:a,pd:!0,Ec:"wheel",Tc:9,Yc:b,Rc:d,$c:e=>{var f=
|
|
57
|
+
T.Hd;Rc(f,e,a);z[f+64>>3]=e.deltaX;z[f+72>>3]=e.deltaY;z[f+80>>3]=e.deltaZ;w[f+88>>2]=e.deltaMode;V.get(d)(9,f,b)&&e.preventDefault()},Xc:c})};function Yc(a){var b=Zc,c=b.Fc.pop()||b.ed.length;b.ed[c]=a;return c}class $c{ed=[void 0];Fc=[];get(a){return this.ed[a]}has(a){return void 0!==this.ed[a]}}
|
|
58
|
+
async function ad(){return new Promise((a,b)=>{try{var c=indexedDB.open("emscripten_filesystem",1)}catch(d){return b(d)}c.onupgradeneeded=d=>{d=d.target.result;d.objectStoreNames.contains("FILES")&&d.deleteObjectStore("FILES");d.createObjectStore("FILES")};c.onsuccess=d=>a(d.target.result);c.onerror=b})}var Zc,bd;
|
|
59
|
+
function cd(a,b,c,d,e){function f(){var K=0,E=0;A.response&&I&&0===y[a+12>>2]&&(E=A.response.byteLength);0<E&&(K=dd(y[a+12>>2],E),u.set(new Uint8Array(A.response),K));y[a+12>>2]=K;W(a+16,E);W(a+24,0);(K=A.response?A.response.byteLength:0)&&W(a+32,K);t[a+40>>1]=A.readyState;t[a+42>>1]=A.status;A.statusText&&G(A.statusText,u,a+44,64);L&&(K=ed(A.responseURL),y[a+200>>2]=K)}var g=y[a+8>>2];if(g){var m=P(g),n=a+108,p=P(n+0);p||="GET";var r=y[n+56>>2],l=y[n+68>>2],q=y[n+72>>2];g=y[n+76>>2];var v=y[n+80>>
|
|
60
|
+
2],x=y[n+84>>2],C=y[n+88>>2],F=y[n+52>>2],I=!!(F&1),Q=!!(F&2),L=!!(F&64);l=l?P(l):void 0;q=q?P(q):void 0;var A=new XMLHttpRequest;A.withCredentials=!!u[n+60];A.Fc=Q;A.open(p,m,!L,l,q);L||(A.timeout=r);A.nd=m;A.responseType="arraybuffer";v&&(m=P(v),A.overrideMimeType(m));if(g)for(;;){n=y[g>>2];if(!n)break;m=y[g+4>>2];if(!m)break;g+=8;n=P(n);m=P(m);A.setRequestHeader(n,m)}var pa=Yc(A);y[a>>2]=pa;g=x&&C?u.slice(x,x+C):null;A.onload=K=>{Zc.has(pa)&&(f(),200<=A.status&&300>A.status?b(a,A,K):c(a,K))};A.onerror=
|
|
61
|
+
K=>{Zc.has(pa)&&(f(),c(a,K))};A.ontimeout=K=>{Zc.has(pa)&&c(a,K)};A.onprogress=K=>{if(Zc.has(pa)){var E=I&&Q&&A.response?A.response.byteLength:0,Qa=0;0<E&&I&&Q&&(Qa=dd(y[a+12>>2],E),u.set(new Uint8Array(A.response),Qa));y[a+12>>2]=Qa;W(a+16,E);W(a+24,K.loaded-E);W(a+32,K.total);t[a+40>>1]=A.readyState;E=A.status;3<=A.readyState&&0===A.status&&0<K.loaded&&(E=200);t[a+42>>1]=E;A.statusText&&G(A.statusText,u,a+44,64);d(a,K)}};A.onreadystatechange=K=>{if(Zc.has(pa)){t[a+40>>1]=A.readyState;2<=A.readyState&&
|
|
62
|
+
(t[a+42>>1]=A.status);if(!L&&2===A.readyState&&0<A.responseURL.length){var E=ed(A.responseURL);y[a+200>>2]=E}e(a,K)}};try{A.send(g)}catch(K){c(a,K)}}else c(a,"no url specified!")}var W=(a,b)=>{y[a>>2]=b;y[a+4>>2]=(b-y[a>>2])/4294967296},ed=a=>{var b=$a(a)+1,c=U(b);c&&G(a,u,c,b);return c};
|
|
63
|
+
function fd(a,b,c,d){var e=bd;if(e){var f=y[a+108+64>>2];f||=y[a+8>>2];var g=P(f);try{var m=e.transaction(["FILES"],"readwrite").objectStore("FILES").put(b,g);m.onsuccess=()=>{t[a+40>>1]=4;t[a+42>>1]=200;G("OK",u,a+44,64);c(a,0,g)};m.onerror=n=>{t[a+40>>1]=4;t[a+42>>1]=413;G("Payload Too Large",u,a+44,64);d(a,0,n)}}catch(n){d(a,0,n)}}else d(a,0,"IndexedDB not available!")}
|
|
64
|
+
function gd(a,b,c){var d=bd;if(d){var e=y[a+108+64>>2];e||=y[a+8>>2];e=P(e);try{var f=d.transaction(["FILES"],"readonly").objectStore("FILES").get(e);f.onsuccess=g=>{if(g.target.result){g=g.target.result;var m=g.byteLength||g.length,n=U(m);u.set(new Uint8Array(g),n);y[a+12>>2]=n;W(a+16,m);W(a+24,0);W(a+32,m);t[a+40>>1]=4;t[a+42>>1]=200;G("OK",u,a+44,64);b(a,0,g)}else t[a+40>>1]=4,t[a+42>>1]=404,G("Not Found",u,a+44,64),c(a,0,"no data")};f.onerror=g=>{t[a+40>>1]=4;t[a+42>>1]=404;G("Not Found",u,a+
|
|
65
|
+
44,64);c(a,0,g)}}catch(g){c(a,0,g)}}else c(a,0,"IndexedDB not available!")}function hd(a,b,c){var d=bd;if(d){var e=y[a+108+64>>2];e||=y[a+8>>2];e=P(e);try{var f=d.transaction(["FILES"],"readwrite").objectStore("FILES").delete(e);f.onsuccess=g=>{g=g.target.result;y[a+12>>2]=0;W(a+16,0);W(a+24,0);W(a+32,0);t[a+40>>1]=4;t[a+42>>1]=200;G("OK",u,a+44,64);b(a,0,g)};f.onerror=g=>{t[a+40>>1]=4;t[a+42>>1]=404;G("Not Found",u,a+44,64);c(a,0,g)}}catch(g){c(a,0,g)}}else c(a,0,"IndexedDB not available!")}
|
|
66
|
+
var kd=a=>{var b=$a(a)+1,c=jd(b);G(a,u,c,b);return c},X=[],ld=(a,b)=>{X[a>>>0]=b},md=[],Y=a=>{if(a)return X[a>>>0]},nd=a=>P(y[a>>2],y[a+4>>2]),Z=a=>{var b=y[a>>2];a=y[a+4>>2];if(b)return P(b,a);if(0===a)return""},od=a=>({r:z[a>>3],g:z[a+8>>3],b:z[a+16>>3],a:z[a+24>>3]}),pd=a=>({width:y[a>>2],height:y[a+4>>2],depthOrArrayLayers:y[a+8>>2]}),rd=a=>{var b=a+8;return{texture:Y(y[a>>2]),mipLevel:y[a+4>>2],origin:{x:y[b>>2],y:y[b+4>>2],z:y[b+8>>2]},aspect:qd[y[a+20>>2]]}},sd=a=>{var b=y[a+8>>2],c=y[a+12>>
|
|
67
|
+
2];return{offset:4294967296*y[a+4>>2]+y[a>>2],bytesPerRow:4294967295===b?void 0:b,rowsPerImage:4294967295===c?void 0:c}},td=a=>{if(0!==a)return{querySet:Y(y[a+4>>2]),beginningOfPassWriteIndex:y[a+8>>2],endOfPassWriteIndex:y[a+12>>2]}},ud=(a,b)=>{if(a){for(var c={},d=0;d<a;++d){var e=b+24*d,f=nd(e+4);c[f]=z[e+16>>3]}return c}},vd=a=>a?Y(a):"auto",Hd=a=>{function b(d){if(d)return{operation:wd[y[d>>2]],srcFactor:xd[y[d+4>>2]],dstFactor:xd[y[d+8>>2]]}}function c(d){return{compare:yd[y[d>>2]],failOp:zd[y[d+
|
|
68
|
+
4>>2]],depthFailOp:zd[y[d+8>>2]],passOp:zd[y[d+12>>2]]}}return{label:Z(a+4),layout:vd(y[a+12>>2]),vertex:function(d){if(d){var e=Y(y[d+4>>2]),f=ud(y[d+16>>2],y[d+20>>2]);var g=y[d+24>>2];var m=y[d+28>>2];if(g){for(var n=[],p=0;p<g;++p){var r=n,l=r.push;var q=m+24*p;if(q){var v=y[q+4>>2],x=y[q+16>>2];if(0===v&&0===x)var C=null;else{C=4294967296*y[q+4+8>>2]+y[q+8>>2];v=Ad[v];q=y[q+20>>2];for(var F=[],I=0;I<x;++I){var Q=F,L=q+24*I;Q.push.call(Q,{format:Bd[y[L+4>>2]],offset:4294967296*y[L+4+8>>2]+y[L+
|
|
69
|
+
8>>2],shaderLocation:y[L+16>>2]})}C={arrayStride:C,stepMode:v,attributes:F}}}else C=void 0;l.call(r,C)}g=n}else g=void 0;return{module:e,constants:f,buffers:g,entryPoint:Z(d+8)}}}(a+16),primitive:function(d){if(d)return{topology:Cd[y[d+4>>2]],stripIndexFormat:Dd[y[d+8>>2]],frontFace:Ed[y[d+12>>2]],cullMode:Fd[y[d+16>>2]],unclippedDepth:!!y[d+20>>2]}}(a+48),depthStencil:function(d){if(d)return{format:Gd[y[d+4>>2]],depthWriteEnabled:!!y[d+8>>2],depthCompare:yd[y[d+12>>2]],stencilFront:c(d+16),stencilBack:c(d+
|
|
70
|
+
32),stencilReadMask:y[d+48>>2],stencilWriteMask:y[d+52>>2],depthBias:w[d+56>>2],depthBiasSlopeScale:wa[d+60>>2],depthBiasClamp:wa[d+64>>2]}}(y[a+72>>2]),multisample:function(d){if(d)return{count:y[d+4>>2],mask:y[d+8>>2],alphaToCoverageEnabled:!!y[d+12>>2]}}(a+76),fragment:function(d){if(d){for(var e=Y(y[d+4>>2]),f=ud(y[d+16>>2],y[d+20>>2]),g=y[d+24>>2],m=y[d+28>>2],n=[],p=0;p<g;++p){var r=n,l=r.push,q=m+24*p,v=y[q+4>>2];if(0===v)q=void 0;else{v=Gd[v];var x=(x=y[q+8>>2])?{alpha:b(x+12),color:b(x+0)}:
|
|
71
|
+
void 0;q={format:v,blend:x,writeMask:y[q+16>>2]}}l.call(r,q)}return{module:e,constants:f,targets:n,entryPoint:Z(d+8)}}}(y[a+92>>2])}},Id=(a,b)=>{function c(d,e){w[b+e>>2]=a[d]}c("maxTextureDimension1D",4);c("maxTextureDimension2D",8);c("maxTextureDimension3D",12);c("maxTextureArrayLayers",16);c("maxBindGroups",20);c("maxBindGroupsPlusVertexBuffers",24);c("maxBindingsPerBindGroup",28);c("maxDynamicUniformBuffersPerPipelineLayout",32);c("maxDynamicStorageBuffersPerPipelineLayout",36);c("maxSampledTexturesPerShaderStage",
|
|
72
|
+
40);c("maxSamplersPerShaderStage",44);c("maxStorageBuffersPerShaderStage",48);c("maxStorageTexturesPerShaderStage",52);c("maxUniformBuffersPerShaderStage",56);c("minUniformBufferOffsetAlignment",80);c("minStorageBufferOffsetAlignment",84);B[b+64>>3]=BigInt(a.maxUniformBufferBindingSize);B[b+72>>3]=BigInt(a.maxStorageBufferBindingSize);c("maxVertexBuffers",88);B[b+96>>3]=BigInt(a.maxBufferSize);c("maxVertexAttributes",104);c("maxVertexBufferArrayStride",108);c("maxInterStageShaderVariables",112);c("maxColorAttachments",
|
|
73
|
+
116);c("maxColorAttachmentBytesPerSample",120);c("maxComputeWorkgroupStorageSize",124);c("maxComputeInvocationsPerWorkgroup",128);c("maxComputeWorkgroupSizeX",132);c("maxComputeWorkgroupSizeY",136);c("maxComputeWorkgroupSizeZ",140);c("maxComputeWorkgroupsPerDimension",144);void 0!==a.Ie&&c("maxImmediateSize",148)},Jd=[,"clamp-to-edge","repeat","mirror-repeat"],xd=[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated",
|
|
74
|
+
"constant","one-minus-constant","src1","one-minus-src1","src1alpha","one-minus-src1alpha"],wd=[,"add","subtract","reverse-subtract","min","max"],Kd=["binding-not-used",,"uniform","storage","read-only-storage"],yd=[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],Ld=[,"opaque","premultiplied","unpremultiplied","inherit"],Fd=[,"none","front","back"],Md=[,"compatibility","core"],Nd={1:"core-features-and-limits",2:"depth-clip-control",3:"depth32float-stencil8",4:"texture-compression-bc",
|
|
75
|
+
5:"texture-compression-bc-sliced-3d",6:"texture-compression-etc2",7:"texture-compression-astc",8:"texture-compression-astc-sliced-3d",9:"timestamp-query",10:"indirect-first-instance",11:"shader-f16",12:"rg11b10ufloat-renderable",13:"bgra8unorm-storage",14:"float32-filterable",15:"float32-blendable",16:"clip-distances",17:"dual-source-blending",18:"subgroups",19:"texture-formats-tier1",20:"texture-formats-tier2",21:"primitive-index",327692:"chromium-experimental-unorm16-texture-formats",327693:"chromium-experimental-snorm16-texture-formats",
|
|
76
|
+
327732:"chromium-experimental-multi-draw-indirect"},Od=[,"nearest","linear"],Ed=[,"ccw","cw"],Dd=[,"uint16","uint32"],Pd=[,"load","clear"],Qd=[,"nearest","linear"],Rd=[,"low-power","high-performance"],Sd=[,"srgb","display-p3"],Cd=[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],Td=["binding-not-used",,"filtering","non-filtering","comparison"],zd=[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],Ud=["binding-not-used",
|
|
77
|
+
,"write-only","read-only","read-write"],Vd=[,"store","discard"],qd=[,"all","stencil-only","depth-only"],Wd=[,"1d","2d","3d"],Gd=[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat",
|
|
78
|
+
"rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm",
|
|
79
|
+
"etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb",
|
|
80
|
+
"astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],Xd=["binding-not-used",,"float","unfilterable-float","depth","sint","uint"],Yd=[,"1d","2d","2d-array","cube","cube-array","3d"],Zd=[,"standard","extended"],Bd=[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2",
|
|
81
|
+
"uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],Ad=[,"vertex","instance"],$d={undefined:1,unknown:1,destroyed:2},ae=()=>{var a="getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE";ae.Cd||(ae.Cd={});ae.Cd[a]||(ae.Cd[a]=1,ca&&(a="warning: "+
|
|
82
|
+
a),na(a))},be={rgba8unorm:22,bgra8unorm:27},ce={},ee=()=>{if(!de){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:ea||"./this.program"},b;for(b in ce)void 0===ce[b]?delete a[b]:a[b]=ce[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);de=c}return de},de,he=a=>{var b=fe();a();ge(b)};tb=Array(4096);Jb(J,"/");Mb("/tmp");Mb("/home");Mb("/home/web_user");
|
|
83
|
+
(function(){Mb("/dev");db(259,{read:()=>0,write:(d,e,f,g)=>g,Uc:()=>0});Nb("/dev/null",259);cb(1280,fb);cb(1536,gb);Nb("/dev/tty",1280);Nb("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(Ta(a),b=a.byteLength);return a[--b]};Zb("/dev","random",c);Zb("/dev","urandom",c);Mb("/dev/shm");Mb("/dev/shm/tmp")})();
|
|
84
|
+
(function(){Mb("/proc");var a=Mb("/proc/self");Mb("/proc/self/fd");Jb({Sc(){var b=ib(a,"fd",16895,73);b.tc={Uc:J.tc.Uc};b.sc={lookup(c,d){c=+d;var e=Fb(c);c={parent:null,Sc:{Rd:"fake"},sc:{readlink:()=>e.path},id:c+1};return c.parent=c},readdir(){return Array.from(rb.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();h.requestAnimationFrame=uc;h.pauseMainLoop=Gc;h.resumeMainLoop=function(){xc++;var a=nc,b=oc,c=pc;pc=null;Fc(c,0,!1,yc,!0);wc(a,b);rc()};
|
|
85
|
+
h.preMainLoop&&Dc.push(h.preMainLoop);h.postMainLoop&&Ec.push(h.postMainLoop);(async function(){Zc=new $c;Ka("library_fetch_init");try{bd=await ad()}catch(a){bd=!1}finally{Ja("library_fetch_init")}})();h.noExitRuntime&&(La=h.noExitRuntime);h.preloadPlugins&&(nb=h.preloadPlugins);h.print&&(ma=h.print);h.printErr&&(na=h.printErr);h.wasmBinary&&(oa=h.wasmBinary);h.arguments&&(da=h.arguments);h.thisProgram&&(ea=h.thisProgram);if(h.preInit)for("function"==typeof h.preInit&&(h.preInit=[h.preInit]);0<h.preInit.length;)h.preInit.shift()();
|
|
86
|
+
h.addRunDependency=Ka;h.removeRunDependency=Ja;h.ccall=(a,b,c,d)=>{var e={string:p=>{var r=0;null!==p&&void 0!==p&&0!==p&&(r=kd(p));return r},array:p=>{var r=jd(p.length);k.set(p,r);return r}};a=h["_"+a];var f=[],g=0;if(d)for(var m=0;m<d.length;m++){var n=e[c[m]];n?(0===g&&(g=fe()),f[m]=n(d[m])):f[m]=d[m]}c=a(...f);return c=function(p){0!==g&&ge(g);return"string"===b?P(p):"boolean"===b?!!p:p}(c)};
|
|
87
|
+
h.FS_preloadFile=async(a,b,c,d,e,f,g,m)=>{var n=b?Ua(Na(a+"/"+b)):a,p=`cp ${n}`;Ka(p);try{var r=c;"string"==typeof c&&(r=await mb(c));r=await ob(r,n);m?.();f||Yb(a,b,r,d,e,g)}finally{Ja(p)}};h.FS_unlink=(...a)=>Qb(...a);h.FS_createPath=(...a)=>Wb(...a);h.FS_createDevice=(...a)=>Zb(...a);h.FS_createDataFile=(...a)=>Yb(...a);h.FS_createLazyFile=(...a)=>ac(...a);
|
|
88
|
+
function ie(){h.__nhIdbOpen||(h.__nhIdbOpen=function(){return new Promise(function(a,b){var c=indexedDB.open("nodehammer",1);c.onupgradeneeded=function(){var d=c.result;d.objectStoreNames.contains("blobs")||d.createObjectStore("blobs")};c.onsuccess=function(){a(c.result)};c.onerror=function(){b(c.error)}})})}
|
|
89
|
+
var je,U,dd,ke,le,me,ne,oe,pe,qe,re,se,te,ue,ve,we,xe,ye,ze,Ae,Be,Ce,De,Ee,Fe,Ge,He,Ie,Je,Ke,xa,ge,jd,fe,ua,V,Le={mb:function(a,b){try{var c=Fb(a);if(c.fd===b)return-28;if(0>b||4096<=b)return-8;var d=rb[b];d&&Tb(d);return Hb(c,b).fd}catch(e){if("undefined"==typeof O||"ErrnoError"!==e.name)throw e;return-e.Bc}},l:function(a,b,c){cc=c;try{var d=Fb(a);switch(b){case 0:var e=dc();if(0>e)break;for(;rb[e];)e++;return Hb(d,e).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=dc(),d.flags|=
|
|
90
|
+
e,0;case 12:return e=dc(),t[e+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(f){if("undefined"==typeof O||"ErrnoError"!==f.name)throw f;return-f.Bc}},qb:function(a,b,c){cc=c;try{var d=Fb(a);switch(b){case 21509:return d.tty?0:-59;case 21505:if(!d.tty)return-59;if(d.tty.ad.ge){a=[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var e=dc();w[e>>2]=25856;w[e+4>>2]=5;w[e+8>>2]=191;w[e+12>>2]=35387;for(var f=0;32>f;f++)k[e+f+17]=a[f]||0}return 0;case 21510:case 21511:case 21512:return d.tty?
|
|
91
|
+
0:-59;case 21506:case 21507:case 21508:if(!d.tty)return-59;if(d.tty.ad.he)for(e=dc(),a=[],f=0;32>f;f++)a.push(k[e+f+17]);return 0;case 21519:if(!d.tty)return-59;e=dc();return w[e>>2]=0;case 21520:return d.tty?-28:-59;case 21537:case 21531:e=dc();if(!d.tc.fe)throw new H(59);return d.tc.fe(d,b,e);case 21523:if(!d.tty)return-59;d.tty.ad.ie&&(f=[24,80],e=dc(),t[e>>1]=f[0],t[e+2>>1]=f[1]);return 0;case 21524:return d.tty?0:-59;case 21515:return d.tty?0:-59;default:return-28}}catch(g){if("undefined"==typeof O||
|
|
92
|
+
"ErrnoError"!==g.name)throw g;return-g.Bc}},m:function(a,b,c,d){cc=d;try{b=P(b);b=bc(a,b);var e=d?dc():0;return Sb(b,c,e).fd}catch(f){if("undefined"==typeof O||"ErrnoError"!==f.name)throw f;return-f.Bc}},bb:function(a,b,c,d){try{b=P(b);d=P(d);b=bc(a,b);d=bc(c,d);a=b;var e=Oa(a),f=Oa(d),g=Pa(a),m=Pa(d);var n=N(a,{parent:!0});var p=n.node;n=N(d,{parent:!0});var r=n.node;if(!p||!r)throw new H(44);if(p.Sc!==r.Sc)throw new H(75);var l=jb(p,g),q=Va(a,f);if("."!==q.charAt(0))throw new H(28);q=Va(d,e);if("."!==
|
|
93
|
+
q.charAt(0))throw new H(55);try{var v=jb(r,m)}catch(F){}if(l!==v){var x=M(l.mode),C=Db(p,g,x);if(C)throw new H(C);if(C=v?Db(r,m,x):Cb(r,m))throw new H(C);if(!p.sc.rename)throw new H(63);if(l.dd||v&&v.dd)throw new H(10);if(r!==p&&(C=Bb(p,"w")))throw new H(C);kb(l);try{p.sc.rename(l,r,m),l.parent=r}catch(F){throw F;}finally{Ab(l)}}return 0}catch(F){if("undefined"==typeof O||"ErrnoError"!==F.name)throw F;return-F.Bc}},cb:function(a){try{return a=P(a),Pb(a),0}catch(b){if("undefined"==typeof O||"ErrnoError"!==
|
|
94
|
+
b.name)throw b;return-b.Bc}},ab:function(a,b){try{a=P(a);var c=N(a,{hd:!0}).node;var d=Eb(c.sc.Zc)(c);y[b>>2]=d.dev;y[b+4>>2]=d.mode;y[b+8>>2]=d.nlink;y[b+12>>2]=d.uid;y[b+16>>2]=d.gid;y[b+20>>2]=d.rdev;B[b+24>>3]=BigInt(d.size);w[b+32>>2]=4096;w[b+36>>2]=d.blocks;var e=d.atime.getTime(),f=d.mtime.getTime(),g=d.ctime.getTime();B[b+40>>3]=BigInt(Math.floor(e/1E3));y[b+48>>2]=e%1E3*1E6;B[b+56>>3]=BigInt(Math.floor(f/1E3));y[b+64>>2]=f%1E3*1E6;B[b+72>>3]=BigInt(Math.floor(g/1E3));y[b+80>>2]=g%1E3*1E6;
|
|
95
|
+
B[b+88>>3]=BigInt(d.ino);return 0}catch(m){if("undefined"==typeof O||"ErrnoError"!==m.name)throw m;return-m.Bc}},W:function(a,b,c){try{b=P(b);b=bc(a,b);if(c)if(512===c)Pb(b);else return-28;else Qb(b);return 0}catch(d){if("undefined"==typeof O||"ErrnoError"!==d.name)throw d;return-d.Bc}},vb:()=>D(""),fb:()=>{La=!1;ec=0},$a:a=>{if(ca){if(!a)return 1;a=P(a);if(!a.length)return 0;a=require("node:child_process").Se(a,[],{Qe:!0,stdio:"inherit"});var b=(c,d)=>c<<8|d;return null===a.status?b(0,(c=>{switch(c){case "SIGHUP":return 1;
|
|
96
|
+
case "SIGQUIT":return 3;case "SIGFPE":return 8;case "SIGKILL":return 9;case "SIGALRM":return 14;case "SIGTERM":return 15;default:return 2}})(a.signal)):a.status<<8|0}return a?-52:0},gb:function(a,b){a=R(a);a=new Date(1E3*a);w[b>>2]=a.getUTCSeconds();w[b+4>>2]=a.getUTCMinutes();w[b+8>>2]=a.getUTCHours();w[b+12>>2]=a.getUTCDate();w[b+16>>2]=a.getUTCMonth();w[b+20>>2]=a.getUTCFullYear()-1900;w[b+24>>2]=a.getUTCDay();w[b+28>>2]=(a.getTime()-Date.UTC(a.getUTCFullYear(),0,1,0,0,0,0))/864E5|0},hb:function(a,
|
|
97
|
+
b){a=R(a);a=new Date(1E3*a);w[b>>2]=a.getSeconds();w[b+4>>2]=a.getMinutes();w[b+8>>2]=a.getHours();w[b+12>>2]=a.getDate();w[b+16>>2]=a.getMonth();w[b+20>>2]=a.getFullYear()-1900;w[b+24>>2]=a.getDay();w[b+28>>2]=(fc(a.getFullYear())?gc:hc)[a.getMonth()]+a.getDate()-1|0;w[b+36>>2]=-(60*a.getTimezoneOffset());var c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset(),d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();w[b+32>>2]=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0},ib:function(a){var b=new Date(w[a+
|
|
98
|
+
20>>2]+1900,w[a+16>>2],w[a+12>>2],w[a+8>>2],w[a+4>>2],w[a>>2],0),c=w[a+32>>2],d=b.getTimezoneOffset(),e=(new Date(b.getFullYear(),6,1)).getTimezoneOffset(),f=(new Date(b.getFullYear(),0,1)).getTimezoneOffset(),g=Math.min(f,e);0>c?w[a+32>>2]=Number(e!=f&&g==d):0<c!=(g==d)&&(e=Math.max(f,e),b.setTime(b.getTime()+6E4*((0<c?g:e)-d)));w[a+24>>2]=b.getDay();w[a+28>>2]=(fc(b.getFullYear())?gc:hc)[b.getMonth()]+b.getDate()-1|0;w[a>>2]=b.getSeconds();w[a+4>>2]=b.getMinutes();w[a+8>>2]=b.getHours();w[a+12>>
|
|
99
|
+
2]=b.getDate();w[a+16>>2]=b.getMonth();w[a+20>>2]=b.getYear();a=b.getTime();return BigInt(isNaN(a)?-1:a/1E3)},Za:(a,b)=>{ic[a]&&(clearTimeout(ic[a].id),delete ic[a]);if(!b)return 0;var c=setTimeout(()=>{delete ic[a];mc(()=>Je(a,performance.now()))},b);ic[a]={id:c,Ue:b};return 0},jb:function(a){var b=new Date(Date.UTC(w[a+20>>2]+1900,w[a+16>>2],w[a+12>>2],w[a+8>>2],w[a+4>>2],w[a>>2],0));w[a+24>>2]=b.getUTCDay();w[a+28>>2]=(b.getTime()-Date.UTC(b.getUTCFullYear(),0,1,0,0,0,0))/864E5|0;return BigInt(b.getTime()/
|
|
100
|
+
1E3)},kb:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();y[a>>2]=60*Math.max(f,e);w[b>>2]=Number(f!=e);b=g=>{var m=Math.abs(g);return`UTC${0<=g?"-":"+"}${String(Math.floor(m/60)).padStart(2,"0")}${String(m%60).padStart(2,"0")}`};a=b(f);b=b(e);e<f?(G(a,u,c,17),G(b,u,d,17)):(G(a,u,d,17),G(b,u,c,17))},ub:function(a,b,c){if(!(0<=a&&3>=a))return 28;B[c>>3]=BigInt(Math.round(1E6*(0===a?Date.now():performance.now())));return 0},da:()=>
|
|
101
|
+
{Gc();pc=null},tb:()=>Date.now(),Ib:function(a){if(Zc.has(a)){var b=Zc.get(a),c=Zc;c.ed[a]=void 0;c.Fc.push(a);0<b.readyState&&4>b.readyState&&b.abort()}},P:()=>globalThis.devicePixelRatio??1,R:(a,b,c)=>{a=S(a);if(!a)return-4;a=Jc(a);z[b>>3]=a.width;z[c>>3]=a.height;return 0},j:()=>performance.now(),wb:()=>0,Kb:()=>!ba,ea:()=>performance.now(),Ha:(a,b)=>{function c(d){V.get(a)(d,b)&&requestAnimationFrame(c)}return requestAnimationFrame(c)},_a:a=>{var b=u.length;a>>>=0;if(2147483648<a)return!1;for(var c=
|
|
102
|
+
1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-ua.buffer.byteLength+65535)/65536|0;try{ua.grow(d);ta();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},w:(a,b,c,d)=>Oc(a,b,c,d,12,"blur"),O:(a,b,c)=>{a=S(a);if(!a)return-4;a.width=b;a.height=c;return 0},x:(a,b,c,d)=>Oc(a,b,c,d,13,"focus"),v:(a,b,c,d)=>{if(!T.fullscreenEnabled())return-1;a=S(a);if(!a)return-4;Pc(a,b,c,d,"webkitfullscreenchange");return Pc(a,b,c,d,"fullscreenchange")},
|
|
103
|
+
G:(a,b,c,d)=>Qc(a,b,c,d,2,"keydown"),E:(a,b,c,d)=>Qc(a,b,c,d,1,"keypress"),F:(a,b,c,d)=>Qc(a,b,c,d,3,"keyup"),Ia:(a,b,c)=>{a=V.get(a);Fc(a,b,c)},N:(a,b,c,d)=>Sc(a,b,c,d,5,"mousedown"),K:(a,b,c,d)=>Sc(a,b,c,d,33,"mouseenter"),J:(a,b,c,d)=>Sc(a,b,c,d,34,"mouseleave"),L:(a,b,c,d)=>Sc(a,b,c,d,8,"mousemove"),M:(a,b,c,d)=>Sc(a,b,c,d,6,"mouseup"),z:(a,b,c,d)=>document.body?.requestPointerLock?(a=S(a))?Tc(a,b,c,d):-4:-1,y:(a,b,c,d)=>document.body?.requestPointerLock?(a=S(a))?Uc(a,b,c,d):-4:-1,Q:(a,b,c,d)=>
|
|
104
|
+
Vc(a,b,c,d),A:(a,b,c,d)=>Wc(a,b,c,d,25,"touchcancel"),B:(a,b,c,d)=>Wc(a,b,c,d,23,"touchend"),C:(a,b,c,d)=>Wc(a,b,c,d,24,"touchmove"),D:(a,b,c,d)=>Wc(a,b,c,d,22,"touchstart"),H:(a,b,c,d)=>(a=S(a))?"undefined"!=typeof a.onwheel?Xc(a,b,c,d):-1:-4,Jb:function(a,b,c,d,e){function f(E){q?E():mc(E)}var g=a+108,m=y[g+36>>2],n=y[g+40>>2],p=y[g+44>>2],r=y[g+48>>2],l=y[g+52>>2],q=!!(l&64),v=E=>{f(()=>{m?V.get(m)(E):b?.(E)})},x=E=>{f(()=>{p?V.get(p)(E):d?.(E)})},C=E=>{f(()=>{n?V.get(n)(E):c?.(E)})},F=E=>{f(()=>
|
|
105
|
+
{r?V.get(r)(E):e?.(E)})},I=E=>{cd(E,v,C,x,F)},Q=(E,Qa)=>{fd(E,Qa.response,Sa=>{f(()=>{m?V.get(m)(Sa):b?.(Sa)})},Sa=>{f(()=>{m?V.get(m)(Sa):b?.(Sa)})})},L=E=>{cd(E,Q,C,x,F)},A=P(g+0),pa=!!(l&16),K=!!(l&4);l=!!(l&32);if("EM_IDB_STORE"===A)I=y[g+84>>2],fd(a,u.slice(I,I+y[g+88>>2]),v,C);else if("EM_IDB_DELETE"===A)hd(a,v,C);else if(pa){if(l)return 0;cd(a,K?Q:v,C,x,F)}else gd(a,v,l?C:K?L:I);return a},Cb:function(a,b,c,d,e,f){b=R(b);c=R(c);a=Y(a);var g={};if(f){var m=y[f+12>>2];if(m){var n=y[f+16>>2];g.requiredFeatures=
|
|
106
|
+
Array.from(y.subarray(n>>2,n+4*m>>2),l=>Nd[l])}var p=y[f+20>>2];if(p){var r={};function l(v,x,C=!1){x=y[p+x>>2];4294967295==x||C&&0==x||(r[v]=x)}function q(v,x){x=p+x;var C=y[x+4>>2];if(4294967295!=y[x>>2]||4294967295!=C)r[v]=4294967296*y[x+4>>2]+y[x>>2]}l("maxTextureDimension1D",4);l("maxTextureDimension2D",8);l("maxTextureDimension3D",12);l("maxTextureArrayLayers",16);l("maxBindGroups",20);l("maxBindGroupsPlusVertexBuffers",24);l("maxDynamicUniformBuffersPerPipelineLayout",32);l("maxDynamicStorageBuffersPerPipelineLayout",
|
|
107
|
+
36);l("maxSampledTexturesPerShaderStage",40);l("maxSamplersPerShaderStage",44);l("maxStorageBuffersPerShaderStage",48);l("maxStorageTexturesPerShaderStage",52);l("maxUniformBuffersPerShaderStage",56);l("minUniformBufferOffsetAlignment",80);l("minStorageBufferOffsetAlignment",84);q("maxUniformBufferBindingSize",64);q("maxStorageBufferBindingSize",72);l("maxVertexBuffers",88);q("maxBufferSize",96);l("maxVertexAttributes",104);l("maxVertexBufferArrayStride",108);l("maxInterStageShaderVariables",112);
|
|
108
|
+
l("maxColorAttachments",116);l("maxColorAttachmentBytesPerSample",120);l("maxComputeWorkgroupStorageSize",124);l("maxComputeInvocationsPerWorkgroup",128);l("maxComputeWorkgroupSizeX",132);l("maxComputeWorkgroupSizeY",136);l("maxComputeWorkgroupSizeZ",140);l("maxComputeWorkgroupsPerDimension",144);l("maxImmediateSize",148,!0);g.requiredLimits=r}if(m=y[f+24>>2])m={label:Z(m+4)},g.defaultQueue=m;g.label=Z(f+4)}a.requestDevice(g).then(l=>{mc(()=>{X[e>>>0]=l.queue;X[d>>>0]=l;l.lost.then(q=>{mc(()=>{l.onuncapturederror=
|
|
109
|
+
()=>{};var v=fe(),x=kd(q.message);Ee(c,$d[q.reason],x);ge(v)})});l.onuncapturederror=q=>{var v=5;q.error instanceof GPUValidationError?v=2:q.error instanceof GPUOutOfMemoryError?v=3:q.error instanceof GPUInternalError&&(v=4);var x=fe();q=kd(q.error.message);Ie(d,v,q);ge(x)};He(b,1,d,0)})},l=>{mc(()=>{var q=fe(),v=kd(l.message);He(b,3,d,v);c&&Ee(c,4,v);ge(q)})})},Hb:(a,b,c)=>{var d=Y(a);0===c&&ae();-1==c&&(c=void 0);try{var e=d.getMappedRange(b,c)}catch(g){return 0}var f=Ke(16,e.byteLength);u.set(new Uint8Array(e),
|
|
110
|
+
f);md[a].push(()=>ke(f));return f},Gb:(a,b,c)=>{var d=Y(a);0===c&&ae();-1==c&&(c=void 0);try{var e=d.getMappedRange(b,c)}catch(g){return 0}var f=Ke(16,e.byteLength);u.fill(0,f,e.byteLength);md[a].push(()=>{(new Uint8Array(e)).set(u.subarray(f,f+e.byteLength));ke(f)});return f},Fb:function(a,b,c,d,e){b=R(b);c=R(c);var f=Y(a);md[a]=[];-1==e&&(e=void 0);f.mapAsync(c,d,e).then(()=>{mc(()=>{Fe(b,1,0)})},g=>{mc(()=>{fe();var m=kd(g.message);Fe(b,"AbortError"===g.name?4:"OperationError"===g.name?3:0,m);
|
|
111
|
+
delete md[a]})})},Eb:a=>{var b=Y(a),c=md[a];if(c){for(var d=0;d<c.length;++d)c[d]();delete md[a];b.unmap()}},a:a=>{delete X[a]},Bb:(a,b,c)=>{var d=!!y[b+32>>2];b={label:Z(b+4),usage:y[b+16>>2],size:4294967296*y[b+4+24>>2]+y[b+24>>2],mappedAtCreation:d};a=Y(a);try{var e=a.createBuffer(b)}catch(f){return!1}X[c>>>0]=e;d&&(md[c]=[]);return!0},Ab:(a,b,c)=>{var d=y[b>>2],e=y[d+4>>2];b={label:Z(b+4),code:""};switch(e){case 2:b.code=nd(d+8)}a=Y(a).createShaderModule(b);X[c>>>0]=a},Db:a=>{a=Y(a);a.onuncapturederror=
|
|
112
|
+
null;a.destroy()},yb:()=>{var a=navigator.gpu.getPreferredCanvasFormat();return be[a]},zb:function(a,b,c,d){b=R(b);if(c){var e={featureLevel:Md[y[c+4>>2]],powerPreference:Rd[y[c+8>>2]],forceFallbackAdapter:!!y[c+12>>2]};a=y[c>>2];0!==a&&(e.Xe=!!y[a+8>>2])}"gpu"in navigator?navigator.gpu.requestAdapter(e).then(f=>{mc(()=>{if(f)X[d>>>0]=f,Ge(b,1,d,0);else{var g=fe(),m=kd("WebGPU not available on this browser (requestAdapter returned null)");Ge(b,3,d,m);ge(g)}})},f=>{mc(()=>{var g=fe(),m=kd(f.message);
|
|
113
|
+
Ge(b,4,d,m);ge(g)})}):(e=fe(),a=kd("WebGPU not available on this browser (navigator.gpu is not available)"),Ge(b,3,d,a),ge(e))},rb:(a,b)=>{var c=0,d=0,e;for(e of ee()){var f=b+c;y[a+d>>2]=f;c+=G(e,u,f,Infinity)+1;d+=4}return 0},sb:(a,b)=>{var c=ee();y[a>>2]=c.length;a=0;for(var d of c)a+=$a(d)+1;y[b>>2]=a;return 0},_:a=>{ra=a;kc(a)},i:function(a){try{var b=Fb(a);Tb(b);return 0}catch(c){if("undefined"==typeof O||"ErrnoError"!==c.name)throw c;return c.Bc}},ob:function(a,b,c,d){try{a:{var e=Fb(a);a=
|
|
114
|
+
b;for(var f,g=b=0;g<c;g++){var m=y[a>>2],n=y[a+4>>2];a+=8;var p=e,r=m,l=n,q=f,v=k;if(0>l||0>q)throw new H(28);if(null===p.fd)throw new H(8);if(1===(p.flags&2097155))throw new H(8);if(M(p.node.mode))throw new H(31);if(!p.tc.read)throw new H(28);var x="undefined"!=typeof q;if(!x)q=p.position;else if(!p.seekable)throw new H(70);var C=p.tc.read(p,v,r,l,q);x||(p.position+=C);var F=C;if(0>F){var I=-1;break a}b+=F;if(F<n)break;"undefined"!=typeof f&&(f+=F)}I=b}y[d>>2]=I;return 0}catch(Q){if("undefined"==
|
|
115
|
+
typeof O||"ErrnoError"!==Q.name)throw Q;return Q.Bc}},lb:function(a,b,c,d){b=R(b);try{if(isNaN(b))return 61;var e=Fb(a);Ub(e,b,c);B[d>>3]=BigInt(e.position);e.ud&&0===b&&0===c&&(e.ud=null);return 0}catch(f){if("undefined"==typeof O||"ErrnoError"!==f.name)throw f;return f.Bc}},nb:function(a,b,c,d){try{a:{var e=Fb(a);a=b;for(var f,g=b=0;g<c;g++){var m=y[a>>2],n=y[a+4>>2];a+=8;var p=Vb(e,k,m,n,f);if(0>p){var r=-1;break a}b+=p;if(p<n)break;"undefined"!=typeof f&&(f+=p)}r=b}y[d>>2]=r;return 0}catch(l){if("undefined"==
|
|
116
|
+
typeof O||"ErrnoError"!==l.name)throw l;return l.Bc}},Ua:function(a,b){var c=new URL(window.location.href),d=c.searchParams;b=P(b).split(",");for(var e=0;e<b.length;++e)b[e]&&d.delete(b[e]);(new URLSearchParams(P(a))).forEach(function(f,g){d.set(g,f)});history.replaceState(null,"",c)},T:function(a,b,c,d){a=P(a);c=new Uint8Array(u.subarray(c,c+d));b=new Blob([c],{type:P(b)});var e=URL.createObjectURL(b);b=document.createElement("a");b.href=e;b.download=a;b.style.display="none";document.body.appendChild(b);
|
|
117
|
+
b.click();document.body.removeChild(b);setTimeout(function(){URL.revokeObjectURL(e)},1E3)},Qa:function(a){var b=P(a);ie();h.__nhIdbOpen().then(function(c){c.transaction("blobs","readwrite").objectStore("blobs").delete(b)}).catch(function(c){console.warn("nodehammer: IDB delete failed",c)})},Sa:function(a){var b=P(a);ie();h.__nhIdbOpen().then(function(c){var d=c.transaction("blobs","readonly").objectStore("blobs").get(b);d.onsuccess=function(){var e=d.result;if(e){e=new Uint8Array(e);var f=h._malloc(e.length);
|
|
118
|
+
h.HEAPU8.set(e,f);h._nh_viewer_project_blob_loaded(f,e.length);h._free(f)}else h._nh_viewer_project_blob_loaded(0,0)};d.onerror=function(){h._nh_viewer_project_blob_loaded(0,0)}}).catch(function(c){console.warn("nodehammer: IDB get failed",c);h._nh_viewer_project_blob_loaded(0,0)})},Ra:function(a,b,c){var d=P(a),e=new Uint8Array(u.subarray(b,b+c));ie();h.__nhIdbOpen().then(function(f){f.transaction("blobs","readwrite").objectStore("blobs").put(e,d)}).catch(function(f){console.warn("nodehammer: IDB put failed",
|
|
119
|
+
f)})},Ya:function(a){function b(l){l=l.dataTransfer&&l.dataTransfer.types;if(!l)return!1;for(var q=0;q<l.length;++q)if("Files"===l[q])return!0;return!1}function c(l,q){var v=h,x=v._nh_viewer_platform_set_drag_hover,C=q?q.clientX:0,F=q?q.clientY:0;var I=q?(I=q.dataTransfer&&q.dataTransfer.items)?I.length:0:0;x.call(v,a,l?1:0,C,F,I,q&&b(q)?1:0)}function d(){h._nh_viewer_save_persistent_state()}function e(l,q,v){h._nh_viewer_platform_push_pinch(a,l,q,v?v.clientX:0,v?v.clientY:0,v?(v.shiftKey?1:0)|(v.ctrlKey?
|
|
120
|
+
2:0)|(v.altKey?4:0)|(v.metaKey?8:0):0)}function f(l){if(!l||2>l.length)return 0;var q=l[0].clientX-l[1].clientX;l=l[0].clientY-l[1].clientY;return Math.sqrt(q*q+l*l)}function g(l){return{clientX:.5*(l[0].clientX+l[1].clientX),clientY:.5*(l[0].clientY+l[1].clientY),ctrlKey:!1,shiftKey:!1,altKey:!1,metaKey:!1}}if(!h.__nhWindowObserversInstalled){h.__nhWindowObserversInstalled=!0;var m=h.canvas||document.getElementById("canvas");if(m){var n=0;m.addEventListener("dragenter",function(l){++n;c(!0,l)});
|
|
121
|
+
m.addEventListener("dragover",function(l){b(l)&&l.preventDefault();c(!0,l)});m.addEventListener("dragleave",function(l){n=Math.max(0,n-1);0===n&&c(!1,l)});m.addEventListener("drop",function(l){n=0;c(!1,l)});window.addEventListener("blur",function(l){n=0;c(!1,l)});window.addEventListener("beforeunload",d);window.addEventListener("pagehide",d);document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&d()});var p=1;m.addEventListener("wheel",function(l){if(l.ctrlKey||
|
|
122
|
+
l.metaKey)l.preventDefault(),e(1,Math.exp(.01*-l.deltaY),l)},{passive:!1});m.addEventListener("gesturestart",function(l){p=l.scale||1;l.preventDefault();e(0,1,l)},{passive:!1});m.addEventListener("gesturechange",function(l){var q=l.scale||p,v=0!==p?q/p:1;p=q;l.preventDefault();e(1,v,l)},{passive:!1});m.addEventListener("gestureend",function(l){l.preventDefault();e(2,1,l)},{passive:!1});var r=0;m.addEventListener("touchstart",function(l){2===l.touches.length&&(r=f(l.touches),l.preventDefault(),e(0,
|
|
123
|
+
1,g(l.touches)))},{passive:!1});m.addEventListener("touchmove",function(l){if(2===l.touches.length&&0<r){var q=f(l.touches);l.preventDefault();e(1,q/r,g(l.touches));r=q}},{passive:!1});m.addEventListener("touchend",function(l){0<r&&2>l.touches.length&&(r=0,e(2,1,l.changedTouches&&l.changedTouches[0]?l.changedTouches[0]:l))},{passive:!1});m.addEventListener("touchcancel",function(l){0<r&&(r=0,e(3,1,l.changedTouches&&l.changedTouches[0]?l.changedTouches[0]:l))},{passive:!1})}}},Xa:function(a){try{var b=
|
|
124
|
+
"nodehammer.viewer."+P(a),c=window.localStorage.getItem(b);if(null===c)return 0;var d=$a(c)+1,e=U(d);G(c,u,e,d);return e}catch(f){return console.warn("nodehammer: failed to load persistent text",f),0}},Na:function(){var a=document.createElement("input");a.type="file";a.accept=".nhproj";a.style.display="none";a.addEventListener("change",async function(b){b=Array.from(b.target.files);document.body.removeChild(a);if(0!==b.length){b=await b[0].arrayBuffer();b=new Uint8Array(b);var c=h._malloc(b.length);
|
|
125
|
+
h.HEAPU8.set(b,c);h._nh_viewer_open_archive(c,b.length);h._free(c)}});document.body.appendChild(a);a.click()},Oa:function(){var a=document.createElement("input");a.type="file";a.multiple=!0;a.accept=".nhproj,.toml,.lua,.nhb,.zst,.gltf,.glb,.gdml,.root,.fb,.json,.xml";a.style.display="none";a.addEventListener("change",async function(b){b=Array.from(b.target.files);document.body.removeChild(a);if(0!==b.length){for(var c=await Promise.all(b.map(function(r){return r.arrayBuffer()})),d=h._nh_viewer_begin_upload_batch(),
|
|
126
|
+
e=new TextEncoder,f=0;f<b.length;++f){var g=new Uint8Array(c[f]),m=g.length,n=h._malloc(m);h.HEAPU8.set(g,n);g=e.encode(b[f].name);var p=h._malloc(g.length+1);h.HEAPU8.set(g,p);h.HEAPU8[p+g.length]=0;h._nh_viewer_add_upload(d,p,n,m);h._free(p);h._free(n)}h._nh_viewer_end_upload_batch(d)}});document.body.appendChild(a);a.click()},Ta:function(a){(a=P(a))&&window.open(a,"_blank","noopener,noreferrer")},Pa:function(){var a=window.location.pathname,b=a.slice(0,a.lastIndexOf("/")+1),c=new TextEncoder;Promise.all("index.html nodehammer-gles3.js nodehammer-gles3.wasm nodehammer-wgpu.js nodehammer-wgpu.wasm nodehammer-compute.js nodehammer-compute.wasm".split(" ").map(function(d){return fetch(b+
|
|
127
|
+
d,{cache:"no-store"}).then(function(e){return e.ok?e.arrayBuffer().then(function(f){return{name:d,ce:f}}):null}).catch(function(){return null})})).then(function(d){for(var e=0;e<d.length;++e){var f=d[e];if(f){var g=new Uint8Array(f.ce),m=h._malloc(g.length);h.HEAPU8.set(g,m);f=c.encode(f.name);var n=h._malloc(f.length+1);h.HEAPU8.set(f,n);h.HEAPU8[n+f.length]=0;h._nh_viewer_publish_add_file(n,m,g.length);h._free(n);h._free(m)}}h._nh_viewer_publish_finalize()})},Va:function(a,b){try{var c="nodehammer.viewer."+
|
|
128
|
+
P(a);window.localStorage.setItem(c,P(b))}catch(d){console.warn("nodehammer: failed to save persistent text",d)}},xa:function(){try{if(h.__nhWorker&&h.__nhWorker.worker)return 1;var a={worker:null,status:0,md:0,ld:0,error:"",fatal:0,yd:0,Ad:0,total:0},b=new Worker("compute_worker.js");b.onmessage=function(c){c=c.data||{};if("progress"===c.nh)a.yd=c.phase,a.Ad=c.processed,a.total=c.total;else if("error"===c.nh)a.error=c.message||"compute worker error",c.fatal&&(a.fatal=1),a.status=3;else if("result"===
|
|
129
|
+
c.nh){c=new Uint8Array(c.buffer);var d=U(c.length);u.set(c,d);a.md=d;a.ld=c.length;a.status=2}};b.onerror=function(c){a.error="compute worker error: "+(c&&c.message?c.message:c);a.fatal=1;a.status=3};a.worker=b;h.__nhWorker=a;return 1}catch(c){return 0}},ga:function(){var a=h.__nhWorker;return a&&a.fatal?1:0},g:function(){var a=h.__nhWorker;return a?a.yd:0},q:function(a,b,c,d,e,f,g,m){var n=h.__nhWorker;n.status=1;n.error="";n.md=0;n.ld=0;n.yd=1;n.Ad=0;n.total=0;a={nh:"build",epoch:a>>>0,wedge:e?
|
|
130
|
+
{startDeg:f,endDeg:g,margin:m}:null};e=[];b&&(b=u.slice(b,b+c).buffer,a.sceneBytes=b,a.configToml=d?P(d):"",e.push(b));n.worker.postMessage(a,e)},Fa:function(){var a="";try{a=((new URLSearchParams(self.location.search)).get("compute")||"").toLowerCase()}catch(b){}return"main"===a||"cooperative"===a?0:"function"===typeof Worker?1:0},U:function(){var a=h.__nhWorker;return a?a.Ad:0},n:function(){var a=h.__nhWorker;a&&(a.status=0,a.md=0,a.ld=0,a.error="")},eb:function(){var a=h.__nhWorker;return a?a.ld:
|
|
131
|
+
0},pb:function(){var a=h.__nhWorker;return a?a.md:0},xb:function(){var a=h.__nhWorker;return a?a.status:0},Y:function(){var a=h.__nhWorker;a=a&&a.error?a.error:"";var b=$a(a)+1,c=U(b);G(a,u,c,b);return c},V:function(){var a=h.__nhWorker;return a?a.total:0},db:kc,La:function(){h.Vd=a=>{0!=me()&&(a.preventDefault(),a.returnValue=" ")};window.addEventListener("beforeunload",h.Vd)},Ka:function(){h.ae=a=>{const b=a.clipboardData.getData("text");he(()=>{const c=kd(b);le(c)})};window.addEventListener("paste",
|
|
132
|
+
h.ae)},Ja:function(){h.Re=[];h.Wd=b=>{b.stopPropagation();b.preventDefault()};h.Xd=b=>{b.stopPropagation();b.preventDefault()};h.Yd=b=>{b.stopPropagation();b.preventDefault()};h.Zd=b=>{b.stopPropagation();b.preventDefault();const c=b.dataTransfer.files;h.$d=c;ne(c.length);for(let e=0;e<c.length;e++)he(()=>{const f=kd(c[e].name);oe(e,f)});let d=0;b.shiftKey&&(d|=1);b.ctrlKey&&(d|=2);b.altKey&&(d|=4);b.metaKey&&(d|=8);pe(b.clientX,b.clientY,d)};const a=h.bd;a.addEventListener("dragenter",h.Wd,!1);a.addEventListener("dragleave",
|
|
133
|
+
h.Xd,!1);a.addEventListener("dragover",h.Yd,!1);a.addEventListener("drop",h.Zd,!1)},Da:function(){const a=document.getElementById("sokol-app-favicon");a&&document.head.removeChild(a)},Ga:function(a){h.od&&(URL.revokeObjectURL(h.od[a].re),h.od[a]=null)},t:function(a){const b=h.$d;return 0>a||a>=b.length?0:b[a].size},Ba:function(a,b,c,d,e){const f=new FileReader;f.onload=g=>{g=g.target.result;g.byteLength>d?qe(a,0,1,b,0,c,d,e):(u.set(new Uint8Array(g),c),qe(a,1,0,b,g.byteLength,c,d,e))};f.onerror=()=>
|
|
134
|
+
{qe(a,0,2,b,0,c,d,e)};f.readAsArrayBuffer(h.$d[a])},Ma:function(a,b){0!==b&&(document.title=P(b));a=P(a);void 0!==h.canvas&&("object"===typeof h.canvas?Ic[a]=h.canvas:console.warn("sokol_app.h: Module['canvas'] is set but is not an object"));h.bd=S(a);h.bd||console.warn("sokol_app.h: can't find html5_canvas_selector ",a);h.bd.requestPointerLock||console.warn("sokol_app.h: target doesn't support requestPointerLock: ",a)},ca:function(){window.removeEventListener("beforeunload",h.Vd)},ba:function(){window.removeEventListener("paste",
|
|
135
|
+
h.ae)},aa:function(){const a=h.bd;a.removeEventListener("dragenter",h.Wd);a.removeEventListener("dragleave",h.Xd);a.removeEventListener("dragover",h.Yd);a.removeEventListener("drop",h.Zd)},o:function(){h.bd&&h.bd.requestPointerLock&&h.bd.requestPointerLock()},u:function(a,b,c){if(h.bd){if(0===b)a="none";else if(0!=c)a=h.od[a].ye;else switch(a){case 0:a="auto";break;case 1:a="default";break;case 2:a="text";break;case 3:a="crosshair";break;case 4:a="pointer";break;case 5:a="ew-resize";break;case 6:a=
|
|
136
|
+
"ns-resize";break;case 7:a="nwse-resize";break;case 8:a="nesw-resize";break;case 9:a="all-scroll";break;case 10:a="not-allowed";break;default:a="auto"}h.bd.style.cursor=a}},Ca:function(a,b,c){const d=document.createElement("canvas");d.width=a;d.height=b;const e=d.getContext("2d"),f=e.createImageData(a,b);f.data.set(u.subarray(c,c+a*b*4));e.putImageData(f,0,0);a=document.createElement("link");a.id="sokol-app-favicon";a.rel="shortcut icon";a.href=d.toDataURL();document.head.appendChild(a)},Ea:function(a){a=
|
|
137
|
+
P(a);const b=document.createElement("textarea");b.setAttribute("autocomplete","off");b.setAttribute("autocorrect","off");b.setAttribute("autocapitalize","off");b.setAttribute("spellcheck","false");b.style.left="-100px";b.style.top="-100px";b.style.height=1;b.style.width=1;b.value=a;document.body.appendChild(b);b.select();document.execCommand("copy");document.body.removeChild(b)},X:function(){return navigator.userAgent.includes("Macintosh")?1:0},p:function(a,b){b=P(b);switch(a){case 0:console.error(b);
|
|
138
|
+
break;case 1:console.error(b);break;case 2:console.warn(b);break;default:console.info(b)}},Mb:(a,b)=>{Id(Y(a).limits,b);return 1},c:(a,b)=>Y(a).features.has(Nd[b]),ta:(a,b)=>{var c;b&&(c={label:Z(b+4),timestampWrites:td(y[b+12>>2])});b=Y(a);a=ve(0);c=b.beginComputePass(c);X[a>>>0]=c;return a},sa:(a,b)=>{var c=y[b>>2],d=void 0;0!==c&&(d=4294967296*y[c+12>>2]+y[c+8>>2]);c=Z(b+4);for(var e=y[b+12>>2],f=y[b+16>>2],g=[],m=0;m<e;++m){var n=g,p=n.push;var r=f+56*m;var l=y[r+4>>2];if(0!==l){var q=w[r+8>>
|
|
139
|
+
2];-1==q&&(q=void 0);r={view:Y(l),depthSlice:q,resolveTarget:Y(y[r+12>>2]),clearValue:od(r+24),loadOp:Pd[y[r+16>>2]],storeOp:Vd[y[r+20>>2]]}}else r=void 0;p.call(n,r)}e=y[b+20>>2];e=0!==e?{view:Y(y[e+4>>2]),depthClearValue:wa[e+16>>2],depthLoadOp:Pd[y[e+8>>2]],depthStoreOp:Vd[y[e+12>>2]],depthReadOnly:!!y[e+20>>2],stencilClearValue:y[e+32>>2],stencilLoadOp:Pd[y[e+24>>2]],stencilStoreOp:Vd[y[e+28>>2]],stencilReadOnly:!!y[e+36>>2]}:void 0;b={label:c,colorAttachments:g,depthStencilAttachment:e,occlusionQuerySet:Y(y[b+
|
|
140
|
+
24>>2]),timestampWrites:td(y[b+28>>2]),maxDrawCount:d};d=Y(a);a=ye(0);b=d.beginRenderPass(b);X[a>>>0]=b;return a},Wa:(a,b,c,d)=>{d=pd(d);a=Y(a);var e=a.copyTextureToBuffer;b=rd(b);var f=sd(c+0);f.buffer=Y(y[c+16>>2]);e.call(a,b,f,d)},S:a=>{var b=Y(a);a=te(0);b=b.finish();X[a>>>0]=b;return a},fa:a=>{Y(a).end()},e:(a,b,c,d,e)=>{a=Y(a);c=Y(c);0==d?a.setBindGroup(b,c):a.setBindGroup(b,c,y,e>>2,d)},pa:(a,b)=>{Y(a).setPipeline(Y(b))},r:(a,b)=>{var c=Z(b+4),d=Y(y[b+12>>2]),e=y[b+16>>2];b=y[b+20>>2];for(var f=
|
|
141
|
+
[],g=0;g<e;++g){var m=f,n=m.push;var p=b+40*g;var r=y[p+8>>2],l=y[p+32>>2],q=y[p+36>>2],v=y[p+4>>2];r?(l=p+24,l=y[l>>2]+4294967296*w[l+4>>2],-1==l&&(l=void 0),p={binding:v,resource:{buffer:Y(r),offset:4294967296*y[p+4+16>>2]+y[p+16>>2],size:l}}):p=l?{binding:v,resource:Y(l)}:{binding:v,resource:Y(q)};n.call(m,p)}c={label:c,layout:d,entries:f};d=Y(a);a=re(0);c=d.createBindGroup(c);X[a>>>0]=c;return a},s:(a,b)=>{var c=Z(b+4),d=y[b+12>>2];b=y[b+16>>2];for(var e=[],f=0;f<d;++f){var g=e,m=g.push,n=b+88*
|
|
142
|
+
f,p=y[n+4>>2],r=y[n+8>>2];var l=n+24;var q=y[l+4>>2];l=q?{type:Kd[q],hasDynamicOffset:!!y[l+8>>2],minBindingSize:4294967296*y[l+4+16>>2]+y[l+16>>2]}:void 0;q=(q=y[n+48+4>>2])?{type:Td[q]}:void 0;var v=n+56;var x=y[v+4>>2];v=x?{sampleType:Xd[x],viewDimension:Yd[y[v+8>>2]],multisampled:!!y[v+12>>2]}:void 0;n+=72;n=(x=y[n+4>>2])?{access:Ud[x],format:Gd[y[n+8>>2]],viewDimension:Yd[y[n+12>>2]]}:void 0;m.call(g,{binding:p,visibility:r,buffer:l,sampler:q,texture:v,storageTexture:n})}c={label:c,entries:e};
|
|
143
|
+
d=Y(a);a=se(0);c=d.createBindGroupLayout(c);X[a>>>0]=c;return a},Z:(a,b)=>{var c;b&&(c={label:Z(b+4)});b=Y(a);a=ue(0);c=b.createCommandEncoder(c);X[a>>>0]=c;return a},va:(a,b)=>{var c=Z(b+4);var d=vd(y[b+12>>2]);b=(b+=16)?{module:Y(y[b+4>>2]),constants:ud(y[b+16>>2],y[b+20>>2]),entryPoint:Z(b+8)}:void 0;c={label:c,layout:d,compute:b};d=Y(a);a=we(0);c=d.createComputePipeline(c);X[a>>>0]=c;return a},wa:(a,b)=>{for(var c=y[b+12>>2],d=y[b+16>>2],e=[],f=0;f<c;++f)e.push(Y(y[d+4*f>>2]));b={label:Z(b+4),
|
|
144
|
+
bindGroupLayouts:e};c=Y(a);a=xe(0);b=c.createPipelineLayout(b);X[a>>>0]=b;return a},ua:(a,b)=>{b=Hd(b);var c=Y(a);a=ze(0);b=c.createRenderPipeline(b);X[a>>>0]=b;return a},ya:(a,b)=>{var c;b&&(c={label:Z(b+4),addressModeU:Jd[y[b+12>>2]],addressModeV:Jd[y[b+16>>2]],addressModeW:Jd[y[b+20>>2]],magFilter:Od[y[b+24>>2]],minFilter:Od[y[b+28>>2]],mipmapFilter:Qd[y[b+32>>2]],lodMinClamp:wa[b+36>>2],lodMaxClamp:wa[b+40>>2],compare:yd[y[b+44>>2]],maxAnisotropy:va[b+48>>1]});b=Y(a);a=Ae(0);c=b.createSampler(c);
|
|
145
|
+
X[a>>>0]=c;return a},h:(a,b)=>{var c={label:Z(b+4),size:pd(b+28),mipLevelCount:y[b+44>>2],sampleCount:y[b+48>>2],dimension:Wd[y[b+24>>2]],format:Gd[y[b+40>>2]],usage:y[b+16>>2]},d=y[b+52>>2];d&&(b=y[b+56>>2],c.viewFormats=Array.from(w.subarray(b>>2,b+4*d>>2),e=>Gd[e]));a=Y(a);d=Ce(0);ld(d,a.createTexture(c));return d},za:(a,b)=>{Id(Y(a).limits,b);return 1},b:(a,b)=>Y(a).features.has(Nd[b]),$:(a,b)=>{a=S(y[y[b>>2]+8>>2]).getContext("webgpu");if(!a)return 0;a.Te=Z(b+4);b=Be(0);X[b>>>0]=a;return b},
|
|
146
|
+
I:(a,b,c)=>{a=Y(a);b=Array.from(w.subarray(c>>2,c+4*b>>2),d=>Y(d));a.submit(b)},k:function(a,b,c,d,e){c=R(c);Y(a).writeBuffer(Y(b),c,u.subarray(d,d+e),0,e)},Lb:(a,b,c,d,e,f)=>{Y(a).writeTexture(rd(b),u.subarray(c,c+d),sd(e),pd(f))},ia:(a,b,c,d,e)=>{Y(a).draw(b,c,d>>>0,e>>>0)},ja:(a,b,c,d,e,f)=>{Y(a).drawIndexed(b,c,d>>>0,e,f>>>0)},ha:a=>{Y(a).end()},d:(a,b,c,d,e)=>{a=Y(a);c=Y(c);0==d?a.setBindGroup(b,c):a.setBindGroup(b,c,y,e>>2,d)},na:(a,b)=>{Y(a).setBlendConstant(od(b))},la:function(a,b,c,d,e){d=
|
|
147
|
+
R(d);e=R(e);a=Y(a);b=Y(b);-1==e&&(e=void 0);a.setIndexBuffer(b,Dd[c],d,e)},oa:(a,b)=>{Y(a).setPipeline(Y(b))},qa:(a,b,c,d,e)=>{Y(a).setScissorRect(b,c,d,e)},ma:(a,b)=>{Y(a).setStencilReference(b>>>0)},ka:function(a,b,c,d,e){d=R(d);e=R(e);a=Y(a);c=Y(c);-1==e&&(e=void 0);a.setVertexBuffer(b,c,d,e)},ra:(a,b,c,d,e,f,g)=>{Y(a).setViewport(b,c,d,e,f,g)},Nb:(a,b)=>{var c=y[b+4>>2];a=Y(a);var d=[y[b+24>>2],y[b+28>>2]];0!==d[0]&&(a.canvas.width=d[0]);0!==d[1]&&(a.canvas.height=d[1]);c={device:Y(c),format:Gd[y[b+
|
|
148
|
+
8>>2]],usage:y[b+16>>2],alphaMode:Ld[y[b+40>>2]]};if(d=y[b+32>>2]){var e=y[b+36>>2];c.viewFormats=Array.from(w.subarray(e>>2,e+4*d>>2),f=>Gd[f])}b=y[b>>2];0!==b&&(c.colorSpace=Sd[y[b+8>>2]],c.Ve={mode:Zd[y[b+12>>2]]});a.configure(c)},Aa:(a,b)=>{a=Y(a);try{var c=Ce(0),d=a.getCurrentTexture();X[c>>>0]=d;y[b+4>>2]=c;w[b+8>>2]=1}catch(e){y[b+4>>2]=0,w[b+8>>2]=6}},f:(a,b)=>{if(b){var c=y[b+24>>2];var d=y[b+32>>2];c={label:Z(b+4),format:Gd[y[b+12>>2]],dimension:Yd[y[b+16>>2]],baseMipLevel:y[b+20>>2],mipLevelCount:4294967295===
|
|
149
|
+
c?void 0:c,baseArrayLayer:y[b+28>>2],arrayLayerCount:4294967295===d?void 0:d,aspect:qd[y[b+36>>2]]}}b=Y(a);a=De(0);b=b.createView(c);X[a>>>0]=b;return a}};function Me(a=[]){var b=je;a.unshift(ea);var c=a.length,d=jd(4*(c+1)),e=d,f;for(f of a)y[e>>2]=kd(f),e+=4;y[e>>2]=0;try{var g=b(c,d);ra=g;kc(g)}catch(m){jc(m)}}
|
|
150
|
+
function Ne(a=da){function b(){h.calledRun=!0;if(!qa){sa=!0;if(!h.noFSInit&&!ub){var c,d;ub=!0;c??=h.stdin;d??=h.stdout;e??=h.stderr;c?Zb("/dev","stdin",c):Ob("/dev/tty","/dev/stdin");d?Zb("/dev","stdout",null,d):Ob("/dev/tty","/dev/stdout");e?Zb("/dev","stderr",null,e):Ob("/dev/tty1","/dev/stderr");Sb("/dev/stdin",0);Sb("/dev/stdout",1);Sb("/dev/stderr",1)}Oe.Pb();vb=!1;h.onRuntimeInitialized?.();h.noInitialRun||Me(a);if(h.postRun)for("function"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;){var e=
|
|
151
|
+
h.postRun.shift();Ea.push(e)}Da(Ea)}}if(0<Ha)Ia=Ne;else{if(h.preRun)for("function"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)Ga();Da(Fa);0<Ha?Ia=Ne:h.setStatus?(h.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>h.setStatus(""),1);b()},1)):b()}}var Oe;
|
|
152
|
+
(async function(){function a(c){c=Oe=c.exports;h._nh_viewer_start=c.Qb;je=h._main=c.Rb;U=h._malloc=c.Tb;dd=c.Ub;ke=h._free=c.Vb;h._nh_viewer_begin_upload_batch=c.Wb;h._nh_viewer_add_upload=c.Xb;h._nh_viewer_end_upload_batch=c.Yb;h._nh_viewer_open_archive=c.Zb;h._nh_viewer_publish_add_file=c._b;h._nh_viewer_publish_finalize=c.$b;h._nh_viewer_platform_set_drag_hover=c.ac;h._nh_viewer_platform_push_pinch=c.bc;h._nh_viewer_save_persistent_state=c.cc;h._nh_viewer_project_blob_loaded=c.dc;le=h.__sapp_emsc_onpaste=
|
|
153
|
+
c.ec;me=h.__sapp_html5_get_ask_leave_site=c.fc;ne=h.__sapp_emsc_begin_drop=c.gc;oe=h.__sapp_emsc_drop=c.hc;pe=h.__sapp_emsc_end_drop=c.ic;qe=h.__sapp_emsc_invoke_fetch_cb=c.jc;h.__sapp_emsc_set_fullscreen_flag=c.kc;re=c.lc;se=c.mc;te=c.nc;ue=c.oc;ve=c.pc;we=c.qc;xe=c.rc;ye=c.vc;ze=c.wc;Ae=c.xc;Be=c.yc;Ce=c.zc;De=c.Ac;Ee=c.Gc;Fe=c.Hc;Ge=c.Ic;He=c.Jc;Ie=c.Kc;Je=c.Lc;Ke=c.Mc;xa=c.Nc;ge=c.Oc;jd=c.Pc;fe=c.Qc;ua=c.Ob;V=c.Sb;ta();Ja("wasm-instantiate");return Oe}Ka("wasm-instantiate");var b={a:Le};if(h.instantiateWasm)return new Promise(c=>
|
|
154
|
+
{h.instantiateWasm(b,(d,e)=>{c(a(d,e))})});ya??=h.locateFile?h.locateFile("nodehammer-wgpu.wasm",ia):ia+"nodehammer-wgpu.wasm";return a((await Ba(b)).instance)})();Ne();
|
|
Binary file
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nodehammer-web
|
|
3
|
+
Version: 0.2.0rc3
|
|
4
|
+
Summary: The nodehammer web viewer runtime: WebAssembly bundles and their shell
|
|
5
|
+
Author: Paul Gessinger
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/paulgessinger/nodehammer
|
|
8
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
9
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
10
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
11
|
+
Requires-Python: >=3.12
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Dynamic: license-file
|
|
15
|
+
|
|
16
|
+
# nodehammer-web
|
|
17
|
+
|
|
18
|
+
The WebAssembly viewer runtime for [nodehammer](https://github.com/paulgessinger/nodehammer).
|
|
19
|
+
|
|
20
|
+
This package is a payload, not a program: it carries the Emscripten build of the
|
|
21
|
+
nodehammer viewer — the bundles, the worker script and the page that loads them —
|
|
22
|
+
and one function that says where they are.
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
import nodehammer_web
|
|
26
|
+
|
|
27
|
+
nodehammer_web.runtime_dir() # -> .../site-packages/nodehammer_web/runtime
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
You do not normally call that. Installing this package alongside `nodehammer` is
|
|
31
|
+
what makes
|
|
32
|
+
|
|
33
|
+
```console
|
|
34
|
+
$ nodehammer viewer --web
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
open the viewer in a browser: the command stages a servable directory from this
|
|
38
|
+
runtime, serves it on loopback and opens a tab. Without it, that command reports
|
|
39
|
+
that it could not find a runtime and lists where it looked.
|
|
40
|
+
|
|
41
|
+
It is a separate distribution because it is built by a different toolchain than
|
|
42
|
+
the platform wheel — no native build can produce WebAssembly — and because a
|
|
43
|
+
headless install has no use for 7 MB of it.
|
|
44
|
+
|
|
45
|
+
Versions move together with `nodehammer`, and the two are checked against each
|
|
46
|
+
other at load time rather than only by the resolver: the runtime carries a schema
|
|
47
|
+
id, and the library refuses one it was not built against.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
nodehammer_web/__init__.py,sha256=wnTgvVWuEb2DaWMI7T27We4x_QH_azcNemk2SFl9Vh4,3702
|
|
2
|
+
nodehammer_web/runtime/compute_worker.js,sha256=v7QQblMhcnFmRpfDz1TbB9i28z4dN2gN2q77EDAIjvo,4104
|
|
3
|
+
nodehammer_web/runtime/index.html,sha256=Ud1vJN3QcAYvJ6peajUge0UyKBypd7jcnn5RbtM-aSU,10406
|
|
4
|
+
nodehammer_web/runtime/nh_runtime.json,sha256=g11wEM92ey3aolJseWaERJsumKZ1zv2WEGqvR1FIUQc,43
|
|
5
|
+
nodehammer_web/runtime/nodehammer-compute.js,sha256=y-MA39at3ZnwJs1TYijVbVEc-Uo1gdwOYpWurVRdLy0,21994
|
|
6
|
+
nodehammer_web/runtime/nodehammer-compute.wasm,sha256=aIokN6m-khDFlIV1Za2EZ_xguX4nXH45fCVSc7wIcSo,1287070
|
|
7
|
+
nodehammer_web/runtime/nodehammer-gles3.js,sha256=Af5P4gjBBGNss_lEWdCp8XFs6ofdKzIsy7vbUNj3iEY,69733
|
|
8
|
+
nodehammer_web/runtime/nodehammer-gles3.wasm,sha256=a-nWNZWleis2oGauqZDPsCfXhEl_FGpQE3rTKC2i648,3219457
|
|
9
|
+
nodehammer_web/runtime/nodehammer-wgpu.js,sha256=rnCuejZ6KV9Kp4ufEuh8ipTSCyrm0nhycPerhWcxttU,74052
|
|
10
|
+
nodehammer_web/runtime/nodehammer-wgpu.wasm,sha256=K0bVsaRlhWACKE_1PX_yNDRTRF-46pSLRHEvuP10c4w,3252597
|
|
11
|
+
nodehammer_web-0.2.0rc3.dist-info/licenses/LICENSE,sha256=sgEG3Ap5RZMfo65kgT7ZkIASrsIiH7xuqpS1x-kseqg,1071
|
|
12
|
+
nodehammer_web-0.2.0rc3.dist-info/METADATA,sha256=CvEUz0ELAajhk_HTsv7bVIuUfcHLBHflrbKf6ignA2A,1756
|
|
13
|
+
nodehammer_web-0.2.0rc3.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
14
|
+
nodehammer_web-0.2.0rc3.dist-info/top_level.txt,sha256=ORLDKrK1EkDH1VQ1ZCz5OELDseK6OcOS3MzAWcDSXBc,15
|
|
15
|
+
nodehammer_web-0.2.0rc3.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Paul Gessinger
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
nodehammer_web
|