From ae71bb7099f1cf92610f2281d6509c1d6f53941f Mon Sep 17 00:00:00 2001 From: Andrey Kolosov Date: Tue, 13 Aug 2019 17:36:01 +0300 Subject: [PATCH] Updates --- ...orker.js => 35f22eb14a4817ef6e49.worker.js | 4 ++-- ....map => 35f22eb14a4817ef6e49.worker.js.map | 2 +- asset-manifest.json | 14 ++++++------ index.html | 2 +- ...nifest.2b711206d6794d60f9c2f25f86873d9e.js | 20 +++++++++--------- service-worker.js | 2 +- ...d27e16.chunk.js => main.3717595d.chunk.js} | 4 ++-- ...hunk.js.map => main.3717595d.chunk.js.map} | 2 +- ...blo.ddcbe875.wasm => Diablo.85de21cc.wasm} | Bin 1413136 -> 1413127 bytes ...4ef0fa4.wasm => DiabloSpawn.5292efdb.wasm} | Bin 1278387 -> 1278376 bytes 10 files changed, 25 insertions(+), 25 deletions(-) rename dc58eac3003d3bc6c4d7.worker.js => 35f22eb14a4817ef6e49.worker.js (99%) rename dc58eac3003d3bc6c4d7.worker.js.map => 35f22eb14a4817ef6e49.worker.js.map (99%) rename precache-manifest.ea15834f528f5fbd3eb72f94c37d5ad3.js => precache-manifest.2b711206d6794d60f9c2f25f86873d9e.js (69%) rename static/js/{main.e4d27e16.chunk.js => main.3717595d.chunk.js} (99%) rename static/js/{main.e4d27e16.chunk.js.map => main.3717595d.chunk.js.map} (99%) rename static/media/{Diablo.ddcbe875.wasm => Diablo.85de21cc.wasm} (70%) rename static/media/{DiabloSpawn.b4ef0fa4.wasm => DiabloSpawn.5292efdb.wasm} (63%) diff --git a/dc58eac3003d3bc6c4d7.worker.js b/35f22eb14a4817ef6e49.worker.js similarity index 99% rename from dc58eac3003d3bc6c4d7.worker.js rename to 35f22eb14a4817ef6e49.worker.js index bb1e885..a4ee6d1 100644 --- a/dc58eac3003d3bc6c4d7.worker.js +++ b/35f22eb14a4817ef6e49.worker.js @@ -1,2 +1,2 @@ -!function(n){var t={};function e(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=n,e.c=t,e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:r})},e.r=function(n){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)return n;if(4&t&&"object"===typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var o in n)e.d(r,o,function(t){return n[t]}.bind(null,o));return r},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.p="/diabloweb/",e(e.s=35)}([function(n,t,e){"use strict";var r=e(5),o=e(20),a=Object.prototype.toString;function i(n){return"[object Array]"===a.call(n)}function u(n){return null!==n&&"object"===typeof n}function s(n){return"[object Function]"===a.call(n)}function c(n,t){if(null!==n&&"undefined"!==typeof n)if("object"!==typeof n&&(n=[n]),i(n))for(var e=0,r=n.length;e1)for(var e=1;e=0;r--){var o=n[r];"."===o?n.splice(r,1):".."===o?(n.splice(r,1),e++):e&&(n.splice(r,1),e--)}if(t)for(;e--;e)n.unshift("..");return n}function r(n,t){if(n.filter)return n.filter(t);for(var e=[],r=0;r=-1&&!o;a--){var i=a>=0?arguments[a]:n.cwd();if("string"!==typeof i)throw new TypeError("Arguments to path.resolve must be strings");i&&(t=i+"/"+t,o="/"===i.charAt(0))}return(o?"/":"")+(t=e(r(t.split("/"),function(n){return!!n}),!o).join("/"))||"."},t.normalize=function(n){var a=t.isAbsolute(n),i="/"===o(n,-1);return(n=e(r(n.split("/"),function(n){return!!n}),!a).join("/"))||a||(n="."),n&&i&&(n+="/"),(a?"/":"")+n},t.isAbsolute=function(n){return"/"===n.charAt(0)},t.join=function(){var n=Array.prototype.slice.call(arguments,0);return t.normalize(r(n,function(n,t){if("string"!==typeof n)throw new TypeError("Arguments to path.join must be strings");return n}).join("/"))},t.relative=function(n,e){function r(n){for(var t=0;t=0&&""===n[e];e--);return t>e?[]:n.slice(t,e-t+1)}n=t.resolve(n).substr(1),e=t.resolve(e).substr(1);for(var o=r(n.split("/")),a=r(e.split("/")),i=Math.min(o.length,a.length),u=i,s=0;s=1;--a)if(47===(t=n.charCodeAt(a))){if(!o){r=a;break}}else o=!1;return-1===r?e?"/":".":e&&1===r?"/":n.slice(0,r)},t.basename=function(n,t){var e=function(n){"string"!==typeof n&&(n+="");var t,e=0,r=-1,o=!0;for(t=n.length-1;t>=0;--t)if(47===n.charCodeAt(t)){if(!o){e=t+1;break}}else-1===r&&(o=!1,r=t+1);return-1===r?"":n.slice(e,r)}(n);return t&&e.substr(-1*t.length)===t&&(e=e.substr(0,e.length-t.length)),e},t.extname=function(n){"string"!==typeof n&&(n+="");for(var t=-1,e=0,r=-1,o=!0,a=0,i=n.length-1;i>=0;--i){var u=n.charCodeAt(i);if(47!==u)-1===r&&(o=!1,r=i+1),46===u?-1===t?t=i:1!==a&&(a=1):-1!==t&&(a=-1);else if(!o){e=i+1;break}}return-1===t||-1===r||0===a||1===a&&t===r-1&&t===e+1?"":n.slice(t,r)};var o="b"==="ab".substr(-1)?function(n,t,e){return n.substr(t,e)}:function(n,t,e){return t<0&&(t=n.length+t),n.substr(t,e)}}).call(this,e(2))},function(n,t,e){"use strict";n.exports=function(n,t){return function(){for(var e=new Array(arguments.length),r=0;r=200&&n<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(n){u.headers[n]={}}),r.forEach(["post","put","patch"],function(n){u.headers[n]=r.merge(a)}),n.exports=u}).call(this,e(2))},function(n,t,e){"use strict";var r=e(0),o=e(26),a=e(6),i=e(28),u=e(29),s=e(10);n.exports=function(n){return new Promise(function(t,c){var f=n.data,l=n.headers;r.isFormData(f)&&delete l["Content-Type"];var p=new XMLHttpRequest;if(n.auth){var d=n.auth.username||"",h=n.auth.password||"";l.Authorization="Basic "+btoa(d+":"+h)}if(p.open(n.method.toUpperCase(),a(n.url,n.params,n.paramsSerializer),!0),p.timeout=n.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in p?i(p.getAllResponseHeaders()):null,r={data:n.responseType&&"text"!==n.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:e,config:n,request:p};o(t,c,r),p=null}},p.onabort=function(){p&&(c(s("Request aborted",n,"ECONNABORTED",p)),p=null)},p.onerror=function(){c(s("Network Error",n,null,p)),p=null},p.ontimeout=function(){c(s("timeout of "+n.timeout+"ms exceeded",n,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var _=e(30),y=(n.withCredentials||u(n.url))&&n.xsrfCookieName?_.read(n.xsrfCookieName):void 0;y&&(l[n.xsrfHeaderName]=y)}if("setRequestHeader"in p&&r.forEach(l,function(n,t){"undefined"===typeof f&&"content-type"===t.toLowerCase()?delete l[t]:p.setRequestHeader(t,n)}),n.withCredentials&&(p.withCredentials=!0),n.responseType)try{p.responseType=n.responseType}catch(m){if("json"!==n.responseType)throw m}"function"===typeof n.onDownloadProgress&&p.addEventListener("progress",n.onDownloadProgress),"function"===typeof n.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",n.onUploadProgress),n.cancelToken&&n.cancelToken.promise.then(function(n){p&&(p.abort(),c(n),p=null)}),void 0===f&&(f=null),p.send(f)})}},function(n,t,e){"use strict";var r=e(27);n.exports=function(n,t,e,o,a){var i=new Error(n);return r(i,t,e,o,a)}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){t=t||{};var e={};return r.forEach(["url","method","params","data"],function(n){"undefined"!==typeof t[n]&&(e[n]=t[n])}),r.forEach(["headers","auth","proxy"],function(o){r.isObject(t[o])?e[o]=r.deepMerge(n[o],t[o]):"undefined"!==typeof t[o]?e[o]=t[o]:r.isObject(n[o])?e[o]=r.deepMerge(n[o]):"undefined"!==typeof n[o]&&(e[o]=n[o])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof t[r]?e[r]=t[r]:"undefined"!==typeof n[r]&&(e[r]=n[r])}),e}},function(n,t,e){"use strict";function r(n){this.message=n}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,n.exports=r},function(n,t,e){n.exports=e.p+"static/media/Diablo.ddcbe875.wasm"},function(n,t,e){(function(t,r){var o=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(o){var a,i="undefined"!==typeof(o=o||{})?o:{},u={};for(a in i)i.hasOwnProperty(a)&&(u[a]=i[a]);i.arguments=[],i.thisProgram="./this.program",i.quit=function(n,t){throw t},i.preRun=[],i.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!f&&!l,c=!f&&!s&&!l;var p,d,h,_,y="";s?(y=r+"/",p=function(n,t){var r;return h||(h=e(3)),_||(_=e(4)),n=_.normalize(n),r=h.readFileSync(n),t?r:r.toString()},d=function(n){var t=p(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(i.thisProgram=t.argv[1].replace(/\\/g,"/")),i.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof On))throw n}),t.on("unhandledRejection",Pn),i.quit=function(n){t.exit(n)},i.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(p=function(n){return read(n)}),d=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?i.arguments=scriptArgs:"undefined"!=typeof arguments&&(i.arguments=arguments),"function"===typeof quit&&(i.quit=function(n){quit(n)})):(f||l)&&(l?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},l&&(d=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var m=i.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),g=i.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(a in u)u.hasOwnProperty(a)&&(i[a]=u[a]);u=void 0;var v,b={"f64-rem":function(n,t){return n%t},debugger:function(){}},w=(new Array(0),0),A=function(n){w=n};"object"!==typeof WebAssembly&&g("no native wasm support detected");var x=!1;function j(n,t){n||Pn("Assertion failed: "+t)}var S="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function E(n,t,e){for(var r=t+e,o=t;n[o]&&!(o>=r);)++o;if(o-t>16&&n.subarray&&S)return S.decode(n.subarray(t,o));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|u)}else a+=String.fromCharCode(i)}return a}function C(n,t){return n?E(T,n,t):""}var R,D,T,k,L;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function O(n,t){return n%t>0&&(n+=t-n%t),n}function M(){i.HEAP8=D=new Int8Array(R),i.HEAP16=new Int16Array(R),i.HEAP32=k=new Int32Array(R),i.HEAPU8=T=new Uint8Array(R),i.HEAPU16=new Uint16Array(R),i.HEAPU32=new Uint32Array(R),i.HEAPF32=L=new Float32Array(R),i.HEAPF64=new Float64Array(R)}var P=i.TOTAL_MEMORY||134217728;function I(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?i.dynCall_v(e):i.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}P<5242880&&g("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+P+"! (TOTAL_STACK=5242880)"),(v=i.wasmMemory?i.wasmMemory:new WebAssembly.Memory({initial:P/65536}))&&(R=v.buffer),P=R.byteLength,M(),k[468704]=7117728;var F=[],N=[],U=[],q=[];function B(n){q.unshift(n)}var H=0,z=null,W=null;i.preloadedImages={},i.preloadedAudios={};var G="data:application/octet-stream;base64,";function X(n){return String.prototype.startsWith?n.startsWith(G):0===n.indexOf(G)}var K,Y="Diablo.wasm";function J(){try{if(i.wasmBinary)return new Uint8Array(i.wasmBinary);if(d)return d(Y);throw"both async and sync fetching of the wasm failed"}catch(g){Pn(g)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:b};function e(n,t){var e=n.exports;i.asm=e,function(n){if(H--,i.monitorRunDependencies&&i.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),W)){var t=W;W=null,t()}}()}function r(n){e(n.instance)}function o(n){return(i.wasmBinary||!f&&!l||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Y,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Y+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){g("failed to asynchronously prepare wasm: "+n),Pn(n)})}if(H++,i.monitorRunDependencies&&i.monitorRunDependencies(H),i.instantiateWasm)try{return i.instantiateWasm(t,e)}catch(a){return g("Module.instantiateWasm callback failed with error: "+a),!1}return function(){if(i.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||X(Y)||"function"!==typeof fetch)return o(r);fetch(Y,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){g("wasm streaming compile failed: "+n),g("falling back to ArrayBuffer instantiation"),o(r)})})}(),{}}X(Y)||(K=Y,Y=i.locateFile?i.locateFile(K,y):y+K),i.asm=function(n,t,e){return t.memory=v,t.table=new WebAssembly.Table({initial:1114,maximum:1114,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var Z=[function(n){self.DApi.current_save_id(n)}];N.push({func:function(){_n()}});var $={},Q=[];function nn(n){if(!n||$[n])return n;for(var t in $)for(var e=+t,r=$[e].adjusted,o=r.length,a=0;a>2],t.adjusted.push(n),0|(A(r[o]),n);return n=k[n>>2],0|(A(e),n)}i.___cxa_find_matching_catch=rn;var on={buffers:[null,[],[]],printChar:function(n,t){var e=on.buffers[n];0===t||10===t?((1===n?m:g)(E(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return on.varargs+=4,k[on.varargs-4>>2]},getStr:function(){return C(on.get())},get64:function(){var n=on.get();on.get();return n},getZero:function(){on.get()}};function an(){return D.length}var un={n:Pn,L:A,b:function(){return w},ra:function(n){var t=mn();try{return gn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},g:function(n,t){var e=mn();try{return vn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},l:function(n,t,e){var r=mn();try{return bn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},o:function(n,t,e,r){var o=mn();try{return wn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},s:function(n,t,e,r,o){var a=mn();try{return An(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},t:function(n,t,e,r,o,a){var i=mn();try{return xn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},K:function(n,t){var e=mn();try{return jn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},u:function(n){var t=mn();try{Sn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},f:function(n,t){var e=mn();try{En(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},e:function(n,t,e){var r=mn();try{Cn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},j:function(n,t,e,r){var o=mn();try{Rn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},q:function(n,t,e,r,o){var a=mn();try{Dn(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},r:function(n,t,e,r,o,a){var i=mn();try{Tn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},A:function(n,t,e,r,o,a,i,u){var s=mn();try{kn(n,t,e,r,o,a,i,u)}catch(c){if(yn(s),c!==c+0&&"longjmp"!==c)throw c;hn(1,0)}},J:function(n,t,e,r,o){var a=mn();try{Ln(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},z:function(n,t,e,r){Pn("Assertion failed: "+C(n)+", at: "+[t?C(t):"unknown filename",e,r?C(r):"unknown function"])},i:function(n){return dn(n)},y:function(n){var t=$[n];return t&&!t.caught&&(t.caught=!0,cn.uncaught_exceptions--),t&&(t.rethrown=!1),Q.push(n),function(n){n&&$[n].refcount++}(nn(n)),n},I:function(){hn(0);var n=Q.pop();n&&(function(n){if(n){var t=$[n];t.refcount--,0!==t.refcount||t.rethrown||(t.destructor&&i.dynCall_vi(t.destructor,n),delete $[n],en(n))}}(nn(n)),tn=0)},c:function(n,t){return rn(n,t)},h:function(n,t,e){return rn(n,t,e)},m:en,qa:function(n){return n},pa:function(){throw x=!0,"Pure virtual function called!"},k:function(n,t,e){throw $[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},tn=n,"uncaught_exception"in cn?cn.uncaught_exceptions++:cn.uncaught_exceptions=1,n},oa:function(){return cn.uncaught_exceptions},na:function(){},d:function(n){throw tn||(tn=n),n},H:function(n){return i.___errno_location&&(k[i.___errno_location()>>2]=n),n},ma:function(n,t){on.varargs=t;try{return on.getStreamFromFD(),on.get(),on.get(),on.get(),on.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Pn(e),-e.errno}},G:function(n,t){on.varargs=t;try{for(var e=on.get(),r=on.get(),o=on.get(),a=0,i=0;i>2],s=k[r+(8*i+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},M:function(n){Pn("OOM")},a:1874816},sn=i.asm({},un,R);i.asm=sn;i._DApi_AllocPacket=function(){return i.asm.sa.apply(null,arguments)},i._DApi_Char=function(){return i.asm.ta.apply(null,arguments)},i._DApi_Init=function(){return i.asm.ua.apply(null,arguments)},i._DApi_Key=function(){return i.asm.va.apply(null,arguments)},i._DApi_Mouse=function(){return i.asm.wa.apply(null,arguments)},i._DApi_Render=function(){return i.asm.xa.apply(null,arguments)},i._DApi_SyncText=function(){return i.asm.ya.apply(null,arguments)},i._SNet_InitWebsocket=function(){return i.asm.za.apply(null,arguments)};var cn=i.__ZSt18uncaught_exceptionv=function(){return i.asm.Aa.apply(null,arguments)},fn=i.___cxa_can_catch=function(){return i.asm.Ba.apply(null,arguments)},ln=i.___cxa_is_pointer_type=function(){return i.asm.Ca.apply(null,arguments)},pn=(i.___em_js__api_close_keyboard=function(){return i.asm.Da.apply(null,arguments)},i.___em_js__api_create_sound=function(){return i.asm.Ea.apply(null,arguments)},i.___em_js__api_create_sound_float=function(){return i.asm.Fa.apply(null,arguments)},i.___em_js__api_delete_sound=function(){return i.asm.Ga.apply(null,arguments)},i.___em_js__api_draw_begin=function(){return i.asm.Ha.apply(null,arguments)},i.___em_js__api_draw_belt=function(){return i.asm.Ia.apply(null,arguments)},i.___em_js__api_draw_blit=function(){return i.asm.Ja.apply(null,arguments)},i.___em_js__api_draw_clip_text=function(){return i.asm.Ka.apply(null,arguments)},i.___em_js__api_draw_end=function(){return i.asm.La.apply(null,arguments)},i.___em_js__api_draw_text=function(){return i.asm.Ma.apply(null,arguments)},i.___em_js__api_duplicate_sound=function(){return i.asm.Na.apply(null,arguments)},i.___em_js__api_exit_game=function(){return i.asm.Oa.apply(null,arguments)},i.___em_js__api_open_keyboard=function(){return i.asm.Pa.apply(null,arguments)},i.___em_js__api_play_sound=function(){return i.asm.Qa.apply(null,arguments)},i.___em_js__api_set_cursor=function(){return i.asm.Ra.apply(null,arguments)},i.___em_js__api_set_volume=function(){return i.asm.Sa.apply(null,arguments)},i.___em_js__api_stop_sound=function(){return i.asm.Ta.apply(null,arguments)},i.___em_js__api_websocket_closed=function(){return i.asm.Ua.apply(null,arguments)},i.___em_js__api_websocket_send=function(){return i.asm.Va.apply(null,arguments)},i.___em_js__exit_error=function(){return i.asm.Wa.apply(null,arguments)},i.___em_js__get_file_contents=function(){return i.asm.Xa.apply(null,arguments)},i.___em_js__get_file_size=function(){return i.asm.Ya.apply(null,arguments)},i.___em_js__put_file_contents=function(){return i.asm.Za.apply(null,arguments)},i.___em_js__remove_file=function(){return i.asm._a.apply(null,arguments)},i.___em_js__show_alert=function(){return i.asm.$a.apply(null,arguments)},i.___em_js__trace_pop=function(){return i.asm.ab.apply(null,arguments)},i.___em_js__trace_push=function(){return i.asm.bb.apply(null,arguments)},i._free=function(){return i.asm.cb.apply(null,arguments)}),dn=i._malloc=function(){return i.asm.db.apply(null,arguments)},hn=i._setThrew=function(){return i.asm.eb.apply(null,arguments)},_n=i.globalCtors=function(){return i.asm.ub.apply(null,arguments)},yn=i.stackRestore=function(){return i.asm.vb.apply(null,arguments)},mn=i.stackSave=function(){return i.asm.wb.apply(null,arguments)},gn=i.dynCall_i=function(){return i.asm.fb.apply(null,arguments)},vn=i.dynCall_ii=function(){return i.asm.gb.apply(null,arguments)},bn=i.dynCall_iii=function(){return i.asm.hb.apply(null,arguments)},wn=i.dynCall_iiii=function(){return i.asm.ib.apply(null,arguments)},An=i.dynCall_iiiii=function(){return i.asm.jb.apply(null,arguments)},xn=i.dynCall_iiiiii=function(){return i.asm.kb.apply(null,arguments)},jn=i.dynCall_ji=function(){return i.asm.lb.apply(null,arguments)},Sn=i.dynCall_v=function(){return i.asm.mb.apply(null,arguments)},En=i.dynCall_vi=function(){return i.asm.nb.apply(null,arguments)},Cn=i.dynCall_vii=function(){return i.asm.ob.apply(null,arguments)},Rn=i.dynCall_viii=function(){return i.asm.pb.apply(null,arguments)},Dn=i.dynCall_viiii=function(){return i.asm.qb.apply(null,arguments)},Tn=i.dynCall_viiiii=function(){return i.asm.rb.apply(null,arguments)},kn=i.dynCall_viiiiiii=function(){return i.asm.sb.apply(null,arguments)},Ln=i.dynCall_viji=function(){return i.asm.tb.apply(null,arguments)};function On(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Mn(n){function t(){i.calledRun||(i.calledRun=!0,x||(!0,I(N),I(U),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)B(i.postRun.shift());I(q)}()))}n=n||i.arguments,H>0||(!function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)n=i.preRun.shift(),F.unshift(n);var n;I(F)}(),H>0||i.calledRun||(i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),t()},1)):t()))}function Pn(n){throw i.onAbort&&i.onAbort(n),m(n+=""),g(n),x=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(i.asm=sn,i.then=function(n){if(i.calledRun)n(i);else{var t=i.onRuntimeInitialized;i.onRuntimeInitialized=function(){t&&t(),n(i)}}return i},On.prototype=new Error,On.prototype.constructor=On,W=function n(){i.calledRun||Mn(),i.calledRun||(W=n)},i.run=Mn,i.abort=Pn,i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return i.noExitRuntime=!0,Mn(),i.ready=new Promise(function(n,t){delete i.then,i.onAbort=function(n){t(n)},B(function(){n(i)})}),o}}();n.exports=o}).call(this,e(2),"/")},function(n,t,e){n.exports=e.p+"static/media/DiabloSpawn.b4ef0fa4.wasm"},function(n,t,e){(function(t,r){var o=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(o){var a,i="undefined"!==typeof(o=o||{})?o:{},u={};for(a in i)i.hasOwnProperty(a)&&(u[a]=i[a]);i.arguments=[],i.thisProgram="./this.program",i.quit=function(n,t){throw t},i.preRun=[],i.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!f&&!l,c=!f&&!s&&!l;var p,d,h,_,y="";s?(y=r+"/",p=function(n,t){var r;return h||(h=e(3)),_||(_=e(4)),n=_.normalize(n),r=h.readFileSync(n),t?r:r.toString()},d=function(n){var t=p(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(i.thisProgram=t.argv[1].replace(/\\/g,"/")),i.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof On))throw n}),t.on("unhandledRejection",Pn),i.quit=function(n){t.exit(n)},i.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(p=function(n){return read(n)}),d=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?i.arguments=scriptArgs:"undefined"!=typeof arguments&&(i.arguments=arguments),"function"===typeof quit&&(i.quit=function(n){quit(n)})):(f||l)&&(l?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},l&&(d=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var m=i.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),g=i.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(a in u)u.hasOwnProperty(a)&&(i[a]=u[a]);u=void 0;var v,b={"f64-rem":function(n,t){return n%t},debugger:function(){}},w=(new Array(0),0),A=function(n){w=n};"object"!==typeof WebAssembly&&g("no native wasm support detected");var x=!1;function j(n,t){n||Pn("Assertion failed: "+t)}var S="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function E(n,t,e){for(var r=t+e,o=t;n[o]&&!(o>=r);)++o;if(o-t>16&&n.subarray&&S)return S.decode(n.subarray(t,o));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|u)}else a+=String.fromCharCode(i)}return a}function C(n,t){return n?E(T,n,t):""}var R,D,T,k,L;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function O(n,t){return n%t>0&&(n+=t-n%t),n}function M(){i.HEAP8=D=new Int8Array(R),i.HEAP16=new Int16Array(R),i.HEAP32=k=new Int32Array(R),i.HEAPU8=T=new Uint8Array(R),i.HEAPU16=new Uint16Array(R),i.HEAPU32=new Uint32Array(R),i.HEAPF32=L=new Float32Array(R),i.HEAPF64=new Float64Array(R)}var P=i.TOTAL_MEMORY||134217728;function I(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?i.dynCall_v(e):i.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}P<5242880&&g("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+P+"! (TOTAL_STACK=5242880)"),(v=i.wasmMemory?i.wasmMemory:new WebAssembly.Memory({initial:P/65536}))&&(R=v.buffer),P=R.byteLength,M(),k[462504]=7092928;var F=[],N=[],U=[],q=[];function B(n){q.unshift(n)}var H=0,z=null,W=null;i.preloadedImages={},i.preloadedAudios={};var G="data:application/octet-stream;base64,";function X(n){return String.prototype.startsWith?n.startsWith(G):0===n.indexOf(G)}var K,Y="DiabloSpawn.wasm";function J(){try{if(i.wasmBinary)return new Uint8Array(i.wasmBinary);if(d)return d(Y);throw"both async and sync fetching of the wasm failed"}catch(g){Pn(g)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:b};function e(n,t){var e=n.exports;i.asm=e,function(n){if(H--,i.monitorRunDependencies&&i.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),W)){var t=W;W=null,t()}}()}function r(n){e(n.instance)}function o(n){return(i.wasmBinary||!f&&!l||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Y,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Y+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){g("failed to asynchronously prepare wasm: "+n),Pn(n)})}if(H++,i.monitorRunDependencies&&i.monitorRunDependencies(H),i.instantiateWasm)try{return i.instantiateWasm(t,e)}catch(a){return g("Module.instantiateWasm callback failed with error: "+a),!1}return function(){if(i.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||X(Y)||"function"!==typeof fetch)return o(r);fetch(Y,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){g("wasm streaming compile failed: "+n),g("falling back to ArrayBuffer instantiation"),o(r)})})}(),{}}X(Y)||(K=Y,Y=i.locateFile?i.locateFile(K,y):y+K),i.asm=function(n,t,e){return t.memory=v,t.table=new WebAssembly.Table({initial:1114,maximum:1114,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var Z=[function(n){self.DApi.current_save_id(n)}];N.push({func:function(){_n()}});var $={},Q=[];function nn(n){if(!n||$[n])return n;for(var t in $)for(var e=+t,r=$[e].adjusted,o=r.length,a=0;a>2],t.adjusted.push(n),0|(A(r[o]),n);return n=k[n>>2],0|(A(e),n)}i.___cxa_find_matching_catch=rn;var on={buffers:[null,[],[]],printChar:function(n,t){var e=on.buffers[n];0===t||10===t?((1===n?m:g)(E(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return on.varargs+=4,k[on.varargs-4>>2]},getStr:function(){return C(on.get())},get64:function(){var n=on.get();on.get();return n},getZero:function(){on.get()}};function an(){return D.length}var un={n:Pn,L:A,b:function(){return w},ra:function(n){var t=mn();try{return gn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},g:function(n,t){var e=mn();try{return vn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},m:function(n,t,e){var r=mn();try{return bn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},o:function(n,t,e,r){var o=mn();try{return wn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},s:function(n,t,e,r,o){var a=mn();try{return An(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},t:function(n,t,e,r,o,a){var i=mn();try{return xn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},K:function(n,t){var e=mn();try{return jn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},u:function(n){var t=mn();try{Sn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},f:function(n,t){var e=mn();try{En(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},e:function(n,t,e){var r=mn();try{Cn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},j:function(n,t,e,r){var o=mn();try{Rn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},q:function(n,t,e,r,o){var a=mn();try{Dn(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},r:function(n,t,e,r,o,a){var i=mn();try{Tn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},A:function(n,t,e,r,o,a,i,u){var s=mn();try{kn(n,t,e,r,o,a,i,u)}catch(c){if(yn(s),c!==c+0&&"longjmp"!==c)throw c;hn(1,0)}},J:function(n,t,e,r,o){var a=mn();try{Ln(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},z:function(n,t,e,r){Pn("Assertion failed: "+C(n)+", at: "+[t?C(t):"unknown filename",e,r?C(r):"unknown function"])},i:function(n){return dn(n)},y:function(n){var t=$[n];return t&&!t.caught&&(t.caught=!0,cn.uncaught_exceptions--),t&&(t.rethrown=!1),Q.push(n),function(n){n&&$[n].refcount++}(nn(n)),n},I:function(){hn(0);var n=Q.pop();n&&(function(n){if(n){var t=$[n];t.refcount--,0!==t.refcount||t.rethrown||(t.destructor&&i.dynCall_vi(t.destructor,n),delete $[n],en(n))}}(nn(n)),tn=0)},c:function(n,t){return rn(n,t)},h:function(n,t,e){return rn(n,t,e)},l:en,qa:function(n){return n},pa:function(){throw x=!0,"Pure virtual function called!"},k:function(n,t,e){throw $[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},tn=n,"uncaught_exception"in cn?cn.uncaught_exceptions++:cn.uncaught_exceptions=1,n},oa:function(){return cn.uncaught_exceptions},na:function(){},d:function(n){throw tn||(tn=n),n},H:function(n){return i.___errno_location&&(k[i.___errno_location()>>2]=n),n},ma:function(n,t){on.varargs=t;try{return on.getStreamFromFD(),on.get(),on.get(),on.get(),on.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Pn(e),-e.errno}},G:function(n,t){on.varargs=t;try{for(var e=on.get(),r=on.get(),o=on.get(),a=0,i=0;i>2],s=k[r+(8*i+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},M:function(n){Pn("OOM")},a:1850016},sn=i.asm({},un,R);i.asm=sn;i._DApi_AllocPacket=function(){return i.asm.sa.apply(null,arguments)},i._DApi_Char=function(){return i.asm.ta.apply(null,arguments)},i._DApi_Init=function(){return i.asm.ua.apply(null,arguments)},i._DApi_Key=function(){return i.asm.va.apply(null,arguments)},i._DApi_Mouse=function(){return i.asm.wa.apply(null,arguments)},i._DApi_Render=function(){return i.asm.xa.apply(null,arguments)},i._DApi_SyncText=function(){return i.asm.ya.apply(null,arguments)},i._SNet_InitWebsocket=function(){return i.asm.za.apply(null,arguments)};var cn=i.__ZSt18uncaught_exceptionv=function(){return i.asm.Aa.apply(null,arguments)},fn=i.___cxa_can_catch=function(){return i.asm.Ba.apply(null,arguments)},ln=i.___cxa_is_pointer_type=function(){return i.asm.Ca.apply(null,arguments)},pn=(i.___em_js__api_close_keyboard=function(){return i.asm.Da.apply(null,arguments)},i.___em_js__api_create_sound=function(){return i.asm.Ea.apply(null,arguments)},i.___em_js__api_create_sound_float=function(){return i.asm.Fa.apply(null,arguments)},i.___em_js__api_delete_sound=function(){return i.asm.Ga.apply(null,arguments)},i.___em_js__api_draw_begin=function(){return i.asm.Ha.apply(null,arguments)},i.___em_js__api_draw_belt=function(){return i.asm.Ia.apply(null,arguments)},i.___em_js__api_draw_blit=function(){return i.asm.Ja.apply(null,arguments)},i.___em_js__api_draw_clip_text=function(){return i.asm.Ka.apply(null,arguments)},i.___em_js__api_draw_end=function(){return i.asm.La.apply(null,arguments)},i.___em_js__api_draw_text=function(){return i.asm.Ma.apply(null,arguments)},i.___em_js__api_duplicate_sound=function(){return i.asm.Na.apply(null,arguments)},i.___em_js__api_exit_game=function(){return i.asm.Oa.apply(null,arguments)},i.___em_js__api_open_keyboard=function(){return i.asm.Pa.apply(null,arguments)},i.___em_js__api_play_sound=function(){return i.asm.Qa.apply(null,arguments)},i.___em_js__api_set_cursor=function(){return i.asm.Ra.apply(null,arguments)},i.___em_js__api_set_volume=function(){return i.asm.Sa.apply(null,arguments)},i.___em_js__api_stop_sound=function(){return i.asm.Ta.apply(null,arguments)},i.___em_js__api_websocket_closed=function(){return i.asm.Ua.apply(null,arguments)},i.___em_js__api_websocket_send=function(){return i.asm.Va.apply(null,arguments)},i.___em_js__exit_error=function(){return i.asm.Wa.apply(null,arguments)},i.___em_js__get_file_contents=function(){return i.asm.Xa.apply(null,arguments)},i.___em_js__get_file_size=function(){return i.asm.Ya.apply(null,arguments)},i.___em_js__put_file_contents=function(){return i.asm.Za.apply(null,arguments)},i.___em_js__remove_file=function(){return i.asm._a.apply(null,arguments)},i.___em_js__show_alert=function(){return i.asm.$a.apply(null,arguments)},i.___em_js__trace_pop=function(){return i.asm.ab.apply(null,arguments)},i.___em_js__trace_push=function(){return i.asm.bb.apply(null,arguments)},i._free=function(){return i.asm.cb.apply(null,arguments)}),dn=i._malloc=function(){return i.asm.db.apply(null,arguments)},hn=i._setThrew=function(){return i.asm.eb.apply(null,arguments)},_n=i.globalCtors=function(){return i.asm.ub.apply(null,arguments)},yn=i.stackRestore=function(){return i.asm.vb.apply(null,arguments)},mn=i.stackSave=function(){return i.asm.wb.apply(null,arguments)},gn=i.dynCall_i=function(){return i.asm.fb.apply(null,arguments)},vn=i.dynCall_ii=function(){return i.asm.gb.apply(null,arguments)},bn=i.dynCall_iii=function(){return i.asm.hb.apply(null,arguments)},wn=i.dynCall_iiii=function(){return i.asm.ib.apply(null,arguments)},An=i.dynCall_iiiii=function(){return i.asm.jb.apply(null,arguments)},xn=i.dynCall_iiiiii=function(){return i.asm.kb.apply(null,arguments)},jn=i.dynCall_ji=function(){return i.asm.lb.apply(null,arguments)},Sn=i.dynCall_v=function(){return i.asm.mb.apply(null,arguments)},En=i.dynCall_vi=function(){return i.asm.nb.apply(null,arguments)},Cn=i.dynCall_vii=function(){return i.asm.ob.apply(null,arguments)},Rn=i.dynCall_viii=function(){return i.asm.pb.apply(null,arguments)},Dn=i.dynCall_viiii=function(){return i.asm.qb.apply(null,arguments)},Tn=i.dynCall_viiiii=function(){return i.asm.rb.apply(null,arguments)},kn=i.dynCall_viiiiiii=function(){return i.asm.sb.apply(null,arguments)},Ln=i.dynCall_viji=function(){return i.asm.tb.apply(null,arguments)};function On(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Mn(n){function t(){i.calledRun||(i.calledRun=!0,x||(!0,I(N),I(U),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)B(i.postRun.shift());I(q)}()))}n=n||i.arguments,H>0||(!function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)n=i.preRun.shift(),F.unshift(n);var n;I(F)}(),H>0||i.calledRun||(i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),t()},1)):t()))}function Pn(n){throw i.onAbort&&i.onAbort(n),m(n+=""),g(n),x=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(i.asm=sn,i.then=function(n){if(i.calledRun)n(i);else{var t=i.onRuntimeInitialized;i.onRuntimeInitialized=function(){t&&t(),n(i)}}return i},On.prototype=new Error,On.prototype.constructor=On,W=function n(){i.calledRun||Mn(),i.calledRun||(W=n)},i.run=Mn,i.abort=Pn,i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return i.noExitRuntime=!0,Mn(),i.ready=new Promise(function(n,t){delete i.then,i.onAbort=function(n){t(n)},B(function(){n(i)})}),o}}();n.exports=o}).call(this,e(2),"/")},function(n,t,e){n.exports=e(19)},function(n,t,e){var r=function(n){"use strict";var t,e=Object.prototype,r=e.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(n,t,e,r){var o=t&&t.prototype instanceof _?t:_,a=Object.create(o.prototype),i=new C(r||[]);return a._invoke=function(n,t,e){var r=f;return function(o,a){if(r===p)throw new Error("Generator is already running");if(r===d){if("throw"===o)throw a;return D()}for(e.method=o,e.arg=a;;){var i=e.delegate;if(i){var u=j(i,e);if(u){if(u===h)continue;return u}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(r===f)throw r=d,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);r=p;var s=c(n,t,e);if("normal"===s.type){if(r=e.done?d:l,s.arg===h)continue;return{value:s.arg,done:e.done}}"throw"===s.type&&(r=d,e.method="throw",e.arg=s.arg)}}}(n,e,i),a}function c(n,t,e){try{return{type:"normal",arg:n.call(t,e)}}catch(r){return{type:"throw",arg:r}}}n.wrap=s;var f="suspendedStart",l="suspendedYield",p="executing",d="completed",h={};function _(){}function y(){}function m(){}var g={};g[a]=function(){return this};var v=Object.getPrototypeOf,b=v&&v(v(R([])));b&&b!==e&&r.call(b,a)&&(g=b);var w=m.prototype=_.prototype=Object.create(g);function A(n){["next","throw","return"].forEach(function(t){n[t]=function(n){return this._invoke(t,n)}})}function x(n){var t;this._invoke=function(e,o){function a(){return new Promise(function(t,a){!function t(e,o,a,i){var u=c(n[e],n,o);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"===typeof f&&r.call(f,"__await")?Promise.resolve(f.__await).then(function(n){t("next",n,a,i)},function(n){t("throw",n,a,i)}):Promise.resolve(f).then(function(n){s.value=n,a(s)},function(n){return t("throw",n,a,i)})}i(u.arg)}(e,o,t,a)})}return t=t?t.then(a,a):a()}}function j(n,e){var r=n.iterator[e.method];if(r===t){if(e.delegate=null,"throw"===e.method){if(n.iterator.return&&(e.method="return",e.arg=t,j(n,e),"throw"===e.method))return h;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var o=c(r,n.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,h;var a=o.arg;return a?a.done?(e[n.resultName]=a.value,e.next=n.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,h):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function S(n){var t={tryLoc:n[0]};1 in n&&(t.catchLoc=n[1]),2 in n&&(t.finallyLoc=n[2],t.afterLoc=n[3]),this.tryEntries.push(t)}function E(n){var t=n.completion||{};t.type="normal",delete t.arg,n.completion=t}function C(n){this.tryEntries=[{tryLoc:"root"}],n.forEach(S,this),this.reset(!0)}function R(n){if(n){var e=n[a];if(e)return e.call(n);if("function"===typeof n.next)return n;if(!isNaN(n.length)){var o=-1,i=function e(){for(;++o=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(s&&c){if(this.prev=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var e=this.tryEntries[t];if(e.finallyLoc===n)return this.complete(e.completion,e.afterLoc),E(e),h}},catch:function(n){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.tryLoc===n){var r=e.completion;if("throw"===r.type){var o=r.arg;E(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(n,e,r){return this.delegate={iterator:R(n),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=t),h}},n}(n.exports);try{regeneratorRuntime=r}catch(o){Function("r","regeneratorRuntime = r")(r)}},function(n,t,e){"use strict";var r=e(0),o=e(5),a=e(21),i=e(11);function u(n){var t=new a(n),e=o(a.prototype.request,t);return r.extend(e,a.prototype,t),r.extend(e,t),e}var s=u(e(8));s.Axios=a,s.create=function(n){return u(i(s.defaults,n))},s.Cancel=e(12),s.CancelToken=e(33),s.isCancel=e(7),s.all=function(n){return Promise.all(n)},s.spread=e(34),n.exports=s,n.exports.default=s},function(n,t){n.exports=function(n){return null!=n&&null!=n.constructor&&"function"===typeof n.constructor.isBuffer&&n.constructor.isBuffer(n)}},function(n,t,e){"use strict";var r=e(0),o=e(6),a=e(22),i=e(23),u=e(11);function s(n){this.defaults=n,this.interceptors={request:new a,response:new a}}s.prototype.request=function(n){"string"===typeof n?(n=arguments[1]||{}).url=arguments[0]:n=n||{},(n=u(this.defaults,n)).method=n.method?n.method.toLowerCase():"get";var t=[i,void 0],e=Promise.resolve(n);for(this.interceptors.request.forEach(function(n){t.unshift(n.fulfilled,n.rejected)}),this.interceptors.response.forEach(function(n){t.push(n.fulfilled,n.rejected)});t.length;)e=e.then(t.shift(),t.shift());return e},s.prototype.getUri=function(n){return n=u(this.defaults,n),o(n.url,n.params,n.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(n){s.prototype[n]=function(t,e){return this.request(r.merge(e||{},{method:n,url:t}))}}),r.forEach(["post","put","patch"],function(n){s.prototype[n]=function(t,e,o){return this.request(r.merge(o||{},{method:n,url:t,data:e}))}}),n.exports=s},function(n,t,e){"use strict";var r=e(0);function o(){this.handlers=[]}o.prototype.use=function(n,t){return this.handlers.push({fulfilled:n,rejected:t}),this.handlers.length-1},o.prototype.eject=function(n){this.handlers[n]&&(this.handlers[n]=null)},o.prototype.forEach=function(n){r.forEach(this.handlers,function(t){null!==t&&n(t)})},n.exports=o},function(n,t,e){"use strict";var r=e(0),o=e(24),a=e(7),i=e(8),u=e(31),s=e(32);function c(n){n.cancelToken&&n.cancelToken.throwIfRequested()}n.exports=function(n){return c(n),n.baseURL&&!u(n.url)&&(n.url=s(n.baseURL,n.url)),n.headers=n.headers||{},n.data=o(n.data,n.headers,n.transformRequest),n.headers=r.merge(n.headers.common||{},n.headers[n.method]||{},n.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(t){delete n.headers[t]}),(n.adapter||i.adapter)(n).then(function(t){return c(n),t.data=o(t.data,t.headers,n.transformResponse),t},function(t){return a(t)||(c(n),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,n.transformResponse))),Promise.reject(t)})}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t,e){return r.forEach(e,function(e){n=e(n,t)}),n}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){r.forEach(n,function(e,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(n[t]=e,delete n[r])})}},function(n,t,e){"use strict";var r=e(10);n.exports=function(n,t,e){var o=e.config.validateStatus;!o||o(e.status)?n(e):t(r("Request failed with status code "+e.status,e.config,null,e.request,e))}},function(n,t,e){"use strict";n.exports=function(n,t,e,r,o){return n.config=t,e&&(n.code=e),n.request=r,n.response=o,n.isAxiosError=!0,n.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},n}},function(n,t,e){"use strict";var r=e(0),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];n.exports=function(n){var t,e,a,i={};return n?(r.forEach(n.split("\n"),function(n){if(a=n.indexOf(":"),t=r.trim(n.substr(0,a)).toLowerCase(),e=r.trim(n.substr(a+1)),t){if(i[t]&&o.indexOf(t)>=0)return;i[t]="set-cookie"===t?(i[t]?i[t]:[]).concat([e]):i[t]?i[t]+", "+e:e}}),i):i}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?function(){var n,t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");function o(n){var r=n;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=o(window.location.href),function(t){var e=r.isString(t)?o(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return!0}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?{write:function(n,t,e,o,a,i){var u=[];u.push(n+"="+encodeURIComponent(t)),r.isNumber(e)&&u.push("expires="+new Date(e).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(a)&&u.push("domain="+a),!0===i&&u.push("secure"),document.cookie=u.join("; ")},read:function(n){var t=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(n,t,e){"use strict";n.exports=function(n){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(n)}},function(n,t,e){"use strict";n.exports=function(n,t){return t?n.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):n}},function(n,t,e){"use strict";var r=e(12);function o(n){if("function"!==typeof n)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(n){t=n});var e=this;n(function(n){e.reason||(e.reason=new r(n),t(e.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var n;return{token:new o(function(t){n=t}),cancel:n}},n.exports=o},function(n,t,e){"use strict";n.exports=function(n){return function(t){return n.apply(null,t)}}},function(n,t,e){"use strict";function r(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){var e=[],r=!0,o=!1,a=void 0;try{for(var i,u=n[Symbol.iterator]();!(r=(i=u.next()).done)&&(e.push(i.value),!t||e.length!==t);r=!0);}catch(s){o=!0,a=s}finally{try{r||null==u.return||u.return()}finally{if(o)throw a}}return e}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}e.r(t);var o=e(1),a=e.n(o);function i(n){return function(n){if(Array.isArray(n)){for(var t=0,e=new Array(n.length);t=300)&&A.postMessage({action:"error",error:"Failed to load remote file"}),this.byteLength=parseInt(e.getResponseHeader("Content-Length")),this.url=t,this.buffer=new Uint8Array(this.byteLength),this.chunks=new Uint8Array(this.byteLength+T-1>>20|0)}var t,e,r;return t=n,(e=[{key:"subarray",value:function(n,t){for(var e=n/T|0,r=(t+T-1)/T|0,o=r,a=e,i=e;i=300)A.postMessage({action:"error",error:"Failed to load remote file"});else{var s,c=u.getResponseHeader("Content-Range"),f=0;c&&(s=c.match(/bytes (\d+)-(\d+)\/(\d+)/))&&(f=parseInt(s[1])),this.buffer.set(new Uint8Array(u.response),f),e=(f+T-1)/T|0,r=(f+u.response.byteLength+T-1)/T|0;for(var l=e;l=0?D?"spawn".concat(n,".sv"):"single_".concat(n,".sv"):null})},get_file_size:function(n){var t=E.get(n.toLowerCase());return t?t.byteLength:0},get_file_contents:function(n,t,e){var r=E.get(n.toLowerCase());r&&t.set(r.subarray(e,e+t.byteLength))},put_file_contents:function(n,t){n=n.toLowerCase(),E.set(n,t),A.postMessage({action:"fs",func:"update",params:[n,t]})},remove_file:function(n){n=n.toLowerCase(),E.delete(n),A.postMessage({action:"fs",func:"delete",params:[n]})},set_cursor:function(n,t){A.postMessage({action:"cursor",x:n,y:t})},open_keyboard:function(){for(var n=arguments.length,t=new Array(n),e=0;e>16&255,a=r>>8&255,i=255&r;j.fillStyle="rgb(".concat(o,", ").concat(a,", ").concat(i,")"),j.fillText(e,n,t+22)},draw_end:function(){j.restore();var n=x.transferToImageBitmap(),t=[n];R&&t.push(R.buffer),A.postMessage({action:"render",batch:{bitmap:n,belt:R}},t),R=null},draw_belt:function(n){R=n.slice()}},P=null,I=null,F=0,N=0;["create_sound_raw","create_sound","duplicate_sound"].forEach(function(n){L[n]=function(){for(var t=arguments.length,e=new Array(t),r=0;r=F?P.push({func:n,params:e}):A.postMessage({action:"audio",func:n,params:e})}});var U=null;L.websocket_send=function(n){U?U.push(n.slice().buffer):A.postMessage({action:"packet",buffer:n})},A.DApi=L;var q=null;function B(n){try{n()}catch(t){"string"===typeof t&&A.postMessage({action:""}),A.postMessage({action:"error",error:t.toString(),stack:t.stack})}}function H(n){for(var t=arguments.length,e=new Array(t>1?t-1:0),r=1;r1)for(var e=1;e=0;r--){var o=n[r];"."===o?n.splice(r,1):".."===o?(n.splice(r,1),e++):e&&(n.splice(r,1),e--)}if(t)for(;e--;e)n.unshift("..");return n}function r(n,t){if(n.filter)return n.filter(t);for(var e=[],r=0;r=-1&&!o;a--){var i=a>=0?arguments[a]:n.cwd();if("string"!==typeof i)throw new TypeError("Arguments to path.resolve must be strings");i&&(t=i+"/"+t,o="/"===i.charAt(0))}return(o?"/":"")+(t=e(r(t.split("/"),function(n){return!!n}),!o).join("/"))||"."},t.normalize=function(n){var a=t.isAbsolute(n),i="/"===o(n,-1);return(n=e(r(n.split("/"),function(n){return!!n}),!a).join("/"))||a||(n="."),n&&i&&(n+="/"),(a?"/":"")+n},t.isAbsolute=function(n){return"/"===n.charAt(0)},t.join=function(){var n=Array.prototype.slice.call(arguments,0);return t.normalize(r(n,function(n,t){if("string"!==typeof n)throw new TypeError("Arguments to path.join must be strings");return n}).join("/"))},t.relative=function(n,e){function r(n){for(var t=0;t=0&&""===n[e];e--);return t>e?[]:n.slice(t,e-t+1)}n=t.resolve(n).substr(1),e=t.resolve(e).substr(1);for(var o=r(n.split("/")),a=r(e.split("/")),i=Math.min(o.length,a.length),u=i,s=0;s=1;--a)if(47===(t=n.charCodeAt(a))){if(!o){r=a;break}}else o=!1;return-1===r?e?"/":".":e&&1===r?"/":n.slice(0,r)},t.basename=function(n,t){var e=function(n){"string"!==typeof n&&(n+="");var t,e=0,r=-1,o=!0;for(t=n.length-1;t>=0;--t)if(47===n.charCodeAt(t)){if(!o){e=t+1;break}}else-1===r&&(o=!1,r=t+1);return-1===r?"":n.slice(e,r)}(n);return t&&e.substr(-1*t.length)===t&&(e=e.substr(0,e.length-t.length)),e},t.extname=function(n){"string"!==typeof n&&(n+="");for(var t=-1,e=0,r=-1,o=!0,a=0,i=n.length-1;i>=0;--i){var u=n.charCodeAt(i);if(47!==u)-1===r&&(o=!1,r=i+1),46===u?-1===t?t=i:1!==a&&(a=1):-1!==t&&(a=-1);else if(!o){e=i+1;break}}return-1===t||-1===r||0===a||1===a&&t===r-1&&t===e+1?"":n.slice(t,r)};var o="b"==="ab".substr(-1)?function(n,t,e){return n.substr(t,e)}:function(n,t,e){return t<0&&(t=n.length+t),n.substr(t,e)}}).call(this,e(2))},function(n,t,e){"use strict";n.exports=function(n,t){return function(){for(var e=new Array(arguments.length),r=0;r=200&&n<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(n){u.headers[n]={}}),r.forEach(["post","put","patch"],function(n){u.headers[n]=r.merge(a)}),n.exports=u}).call(this,e(2))},function(n,t,e){"use strict";var r=e(0),o=e(26),a=e(6),i=e(28),u=e(29),s=e(10);n.exports=function(n){return new Promise(function(t,c){var f=n.data,l=n.headers;r.isFormData(f)&&delete l["Content-Type"];var p=new XMLHttpRequest;if(n.auth){var d=n.auth.username||"",h=n.auth.password||"";l.Authorization="Basic "+btoa(d+":"+h)}if(p.open(n.method.toUpperCase(),a(n.url,n.params,n.paramsSerializer),!0),p.timeout=n.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in p?i(p.getAllResponseHeaders()):null,r={data:n.responseType&&"text"!==n.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:e,config:n,request:p};o(t,c,r),p=null}},p.onabort=function(){p&&(c(s("Request aborted",n,"ECONNABORTED",p)),p=null)},p.onerror=function(){c(s("Network Error",n,null,p)),p=null},p.ontimeout=function(){c(s("timeout of "+n.timeout+"ms exceeded",n,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var _=e(30),y=(n.withCredentials||u(n.url))&&n.xsrfCookieName?_.read(n.xsrfCookieName):void 0;y&&(l[n.xsrfHeaderName]=y)}if("setRequestHeader"in p&&r.forEach(l,function(n,t){"undefined"===typeof f&&"content-type"===t.toLowerCase()?delete l[t]:p.setRequestHeader(t,n)}),n.withCredentials&&(p.withCredentials=!0),n.responseType)try{p.responseType=n.responseType}catch(m){if("json"!==n.responseType)throw m}"function"===typeof n.onDownloadProgress&&p.addEventListener("progress",n.onDownloadProgress),"function"===typeof n.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",n.onUploadProgress),n.cancelToken&&n.cancelToken.promise.then(function(n){p&&(p.abort(),c(n),p=null)}),void 0===f&&(f=null),p.send(f)})}},function(n,t,e){"use strict";var r=e(27);n.exports=function(n,t,e,o,a){var i=new Error(n);return r(i,t,e,o,a)}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){t=t||{};var e={};return r.forEach(["url","method","params","data"],function(n){"undefined"!==typeof t[n]&&(e[n]=t[n])}),r.forEach(["headers","auth","proxy"],function(o){r.isObject(t[o])?e[o]=r.deepMerge(n[o],t[o]):"undefined"!==typeof t[o]?e[o]=t[o]:r.isObject(n[o])?e[o]=r.deepMerge(n[o]):"undefined"!==typeof n[o]&&(e[o]=n[o])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof t[r]?e[r]=t[r]:"undefined"!==typeof n[r]&&(e[r]=n[r])}),e}},function(n,t,e){"use strict";function r(n){this.message=n}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,n.exports=r},function(n,t,e){n.exports=e.p+"static/media/Diablo.85de21cc.wasm"},function(n,t,e){(function(t,r){var o=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(o){var a,i="undefined"!==typeof(o=o||{})?o:{},u={};for(a in i)i.hasOwnProperty(a)&&(u[a]=i[a]);i.arguments=[],i.thisProgram="./this.program",i.quit=function(n,t){throw t},i.preRun=[],i.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!f&&!l,c=!f&&!s&&!l;var p,d,h,_,y="";s?(y=r+"/",p=function(n,t){var r;return h||(h=e(3)),_||(_=e(4)),n=_.normalize(n),r=h.readFileSync(n),t?r:r.toString()},d=function(n){var t=p(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(i.thisProgram=t.argv[1].replace(/\\/g,"/")),i.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof On))throw n}),t.on("unhandledRejection",Pn),i.quit=function(n){t.exit(n)},i.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(p=function(n){return read(n)}),d=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?i.arguments=scriptArgs:"undefined"!=typeof arguments&&(i.arguments=arguments),"function"===typeof quit&&(i.quit=function(n){quit(n)})):(f||l)&&(l?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},l&&(d=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var m=i.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),g=i.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(a in u)u.hasOwnProperty(a)&&(i[a]=u[a]);u=void 0;var v,b={"f64-rem":function(n,t){return n%t},debugger:function(){}},w=(new Array(0),0),A=function(n){w=n};"object"!==typeof WebAssembly&&g("no native wasm support detected");var x=!1;function j(n,t){n||Pn("Assertion failed: "+t)}var S="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function E(n,t,e){for(var r=t+e,o=t;n[o]&&!(o>=r);)++o;if(o-t>16&&n.subarray&&S)return S.decode(n.subarray(t,o));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|u)}else a+=String.fromCharCode(i)}return a}function C(n,t){return n?E(T,n,t):""}var R,D,T,k,L;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function O(n,t){return n%t>0&&(n+=t-n%t),n}function M(){i.HEAP8=D=new Int8Array(R),i.HEAP16=new Int16Array(R),i.HEAP32=k=new Int32Array(R),i.HEAPU8=T=new Uint8Array(R),i.HEAPU16=new Uint16Array(R),i.HEAPU32=new Uint32Array(R),i.HEAPF32=L=new Float32Array(R),i.HEAPF64=new Float64Array(R)}var P=i.TOTAL_MEMORY||134217728;function I(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?i.dynCall_v(e):i.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}P<5242880&&g("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+P+"! (TOTAL_STACK=5242880)"),(v=i.wasmMemory?i.wasmMemory:new WebAssembly.Memory({initial:P/65536}))&&(R=v.buffer),P=R.byteLength,M(),k[468704]=7117728;var F=[],N=[],U=[],q=[];function B(n){q.unshift(n)}var H=0,z=null,W=null;i.preloadedImages={},i.preloadedAudios={};var G="data:application/octet-stream;base64,";function X(n){return String.prototype.startsWith?n.startsWith(G):0===n.indexOf(G)}var K,Y="Diablo.wasm";function J(){try{if(i.wasmBinary)return new Uint8Array(i.wasmBinary);if(d)return d(Y);throw"both async and sync fetching of the wasm failed"}catch(g){Pn(g)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:b};function e(n,t){var e=n.exports;i.asm=e,function(n){if(H--,i.monitorRunDependencies&&i.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),W)){var t=W;W=null,t()}}()}function r(n){e(n.instance)}function o(n){return(i.wasmBinary||!f&&!l||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Y,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Y+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){g("failed to asynchronously prepare wasm: "+n),Pn(n)})}if(H++,i.monitorRunDependencies&&i.monitorRunDependencies(H),i.instantiateWasm)try{return i.instantiateWasm(t,e)}catch(a){return g("Module.instantiateWasm callback failed with error: "+a),!1}return function(){if(i.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||X(Y)||"function"!==typeof fetch)return o(r);fetch(Y,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){g("wasm streaming compile failed: "+n),g("falling back to ArrayBuffer instantiation"),o(r)})})}(),{}}X(Y)||(K=Y,Y=i.locateFile?i.locateFile(K,y):y+K),i.asm=function(n,t,e){return t.memory=v,t.table=new WebAssembly.Table({initial:1114,maximum:1114,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var Z=[function(n){self.DApi.current_save_id(n)}];N.push({func:function(){_n()}});var $={},Q=[];function nn(n){if(!n||$[n])return n;for(var t in $)for(var e=+t,r=$[e].adjusted,o=r.length,a=0;a>2],t.adjusted.push(n),0|(A(r[o]),n);return n=k[n>>2],0|(A(e),n)}i.___cxa_find_matching_catch=rn;var on={buffers:[null,[],[]],printChar:function(n,t){var e=on.buffers[n];0===t||10===t?((1===n?m:g)(E(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return on.varargs+=4,k[on.varargs-4>>2]},getStr:function(){return C(on.get())},get64:function(){var n=on.get();on.get();return n},getZero:function(){on.get()}};function an(){return D.length}var un={n:Pn,L:A,b:function(){return w},ra:function(n){var t=mn();try{return gn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},g:function(n,t){var e=mn();try{return vn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},l:function(n,t,e){var r=mn();try{return bn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},o:function(n,t,e,r){var o=mn();try{return wn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},s:function(n,t,e,r,o){var a=mn();try{return An(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},t:function(n,t,e,r,o,a){var i=mn();try{return xn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},K:function(n,t){var e=mn();try{return jn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},u:function(n){var t=mn();try{Sn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},f:function(n,t){var e=mn();try{En(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},e:function(n,t,e){var r=mn();try{Cn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},j:function(n,t,e,r){var o=mn();try{Rn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},q:function(n,t,e,r,o){var a=mn();try{Dn(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},r:function(n,t,e,r,o,a){var i=mn();try{Tn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},A:function(n,t,e,r,o,a,i,u){var s=mn();try{kn(n,t,e,r,o,a,i,u)}catch(c){if(yn(s),c!==c+0&&"longjmp"!==c)throw c;hn(1,0)}},J:function(n,t,e,r,o){var a=mn();try{Ln(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},z:function(n,t,e,r){Pn("Assertion failed: "+C(n)+", at: "+[t?C(t):"unknown filename",e,r?C(r):"unknown function"])},i:function(n){return dn(n)},y:function(n){var t=$[n];return t&&!t.caught&&(t.caught=!0,cn.uncaught_exceptions--),t&&(t.rethrown=!1),Q.push(n),function(n){n&&$[n].refcount++}(nn(n)),n},I:function(){hn(0);var n=Q.pop();n&&(function(n){if(n){var t=$[n];t.refcount--,0!==t.refcount||t.rethrown||(t.destructor&&i.dynCall_vi(t.destructor,n),delete $[n],en(n))}}(nn(n)),tn=0)},c:function(n,t){return rn(n,t)},h:function(n,t,e){return rn(n,t,e)},m:en,qa:function(n){return n},pa:function(){throw x=!0,"Pure virtual function called!"},k:function(n,t,e){throw $[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},tn=n,"uncaught_exception"in cn?cn.uncaught_exceptions++:cn.uncaught_exceptions=1,n},oa:function(){return cn.uncaught_exceptions},na:function(){},d:function(n){throw tn||(tn=n),n},H:function(n){return i.___errno_location&&(k[i.___errno_location()>>2]=n),n},ma:function(n,t){on.varargs=t;try{return on.getStreamFromFD(),on.get(),on.get(),on.get(),on.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Pn(e),-e.errno}},G:function(n,t){on.varargs=t;try{for(var e=on.get(),r=on.get(),o=on.get(),a=0,i=0;i>2],s=k[r+(8*i+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},M:function(n){Pn("OOM")},a:1874816},sn=i.asm({},un,R);i.asm=sn;i._DApi_AllocPacket=function(){return i.asm.sa.apply(null,arguments)},i._DApi_Char=function(){return i.asm.ta.apply(null,arguments)},i._DApi_Init=function(){return i.asm.ua.apply(null,arguments)},i._DApi_Key=function(){return i.asm.va.apply(null,arguments)},i._DApi_Mouse=function(){return i.asm.wa.apply(null,arguments)},i._DApi_Render=function(){return i.asm.xa.apply(null,arguments)},i._DApi_SyncText=function(){return i.asm.ya.apply(null,arguments)},i._SNet_InitWebsocket=function(){return i.asm.za.apply(null,arguments)};var cn=i.__ZSt18uncaught_exceptionv=function(){return i.asm.Aa.apply(null,arguments)},fn=i.___cxa_can_catch=function(){return i.asm.Ba.apply(null,arguments)},ln=i.___cxa_is_pointer_type=function(){return i.asm.Ca.apply(null,arguments)},pn=(i.___em_js__api_close_keyboard=function(){return i.asm.Da.apply(null,arguments)},i.___em_js__api_create_sound=function(){return i.asm.Ea.apply(null,arguments)},i.___em_js__api_create_sound_float=function(){return i.asm.Fa.apply(null,arguments)},i.___em_js__api_delete_sound=function(){return i.asm.Ga.apply(null,arguments)},i.___em_js__api_draw_begin=function(){return i.asm.Ha.apply(null,arguments)},i.___em_js__api_draw_belt=function(){return i.asm.Ia.apply(null,arguments)},i.___em_js__api_draw_blit=function(){return i.asm.Ja.apply(null,arguments)},i.___em_js__api_draw_clip_text=function(){return i.asm.Ka.apply(null,arguments)},i.___em_js__api_draw_end=function(){return i.asm.La.apply(null,arguments)},i.___em_js__api_draw_text=function(){return i.asm.Ma.apply(null,arguments)},i.___em_js__api_duplicate_sound=function(){return i.asm.Na.apply(null,arguments)},i.___em_js__api_exit_game=function(){return i.asm.Oa.apply(null,arguments)},i.___em_js__api_open_keyboard=function(){return i.asm.Pa.apply(null,arguments)},i.___em_js__api_play_sound=function(){return i.asm.Qa.apply(null,arguments)},i.___em_js__api_set_cursor=function(){return i.asm.Ra.apply(null,arguments)},i.___em_js__api_set_volume=function(){return i.asm.Sa.apply(null,arguments)},i.___em_js__api_stop_sound=function(){return i.asm.Ta.apply(null,arguments)},i.___em_js__api_websocket_closed=function(){return i.asm.Ua.apply(null,arguments)},i.___em_js__api_websocket_send=function(){return i.asm.Va.apply(null,arguments)},i.___em_js__exit_error=function(){return i.asm.Wa.apply(null,arguments)},i.___em_js__get_file_contents=function(){return i.asm.Xa.apply(null,arguments)},i.___em_js__get_file_size=function(){return i.asm.Ya.apply(null,arguments)},i.___em_js__put_file_contents=function(){return i.asm.Za.apply(null,arguments)},i.___em_js__remove_file=function(){return i.asm._a.apply(null,arguments)},i.___em_js__show_alert=function(){return i.asm.$a.apply(null,arguments)},i.___em_js__trace_pop=function(){return i.asm.ab.apply(null,arguments)},i.___em_js__trace_push=function(){return i.asm.bb.apply(null,arguments)},i._free=function(){return i.asm.cb.apply(null,arguments)}),dn=i._malloc=function(){return i.asm.db.apply(null,arguments)},hn=i._setThrew=function(){return i.asm.eb.apply(null,arguments)},_n=i.globalCtors=function(){return i.asm.ub.apply(null,arguments)},yn=i.stackRestore=function(){return i.asm.vb.apply(null,arguments)},mn=i.stackSave=function(){return i.asm.wb.apply(null,arguments)},gn=i.dynCall_i=function(){return i.asm.fb.apply(null,arguments)},vn=i.dynCall_ii=function(){return i.asm.gb.apply(null,arguments)},bn=i.dynCall_iii=function(){return i.asm.hb.apply(null,arguments)},wn=i.dynCall_iiii=function(){return i.asm.ib.apply(null,arguments)},An=i.dynCall_iiiii=function(){return i.asm.jb.apply(null,arguments)},xn=i.dynCall_iiiiii=function(){return i.asm.kb.apply(null,arguments)},jn=i.dynCall_ji=function(){return i.asm.lb.apply(null,arguments)},Sn=i.dynCall_v=function(){return i.asm.mb.apply(null,arguments)},En=i.dynCall_vi=function(){return i.asm.nb.apply(null,arguments)},Cn=i.dynCall_vii=function(){return i.asm.ob.apply(null,arguments)},Rn=i.dynCall_viii=function(){return i.asm.pb.apply(null,arguments)},Dn=i.dynCall_viiii=function(){return i.asm.qb.apply(null,arguments)},Tn=i.dynCall_viiiii=function(){return i.asm.rb.apply(null,arguments)},kn=i.dynCall_viiiiiii=function(){return i.asm.sb.apply(null,arguments)},Ln=i.dynCall_viji=function(){return i.asm.tb.apply(null,arguments)};function On(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Mn(n){function t(){i.calledRun||(i.calledRun=!0,x||(!0,I(N),I(U),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)B(i.postRun.shift());I(q)}()))}n=n||i.arguments,H>0||(!function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)n=i.preRun.shift(),F.unshift(n);var n;I(F)}(),H>0||i.calledRun||(i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),t()},1)):t()))}function Pn(n){throw i.onAbort&&i.onAbort(n),m(n+=""),g(n),x=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(i.asm=sn,i.then=function(n){if(i.calledRun)n(i);else{var t=i.onRuntimeInitialized;i.onRuntimeInitialized=function(){t&&t(),n(i)}}return i},On.prototype=new Error,On.prototype.constructor=On,W=function n(){i.calledRun||Mn(),i.calledRun||(W=n)},i.run=Mn,i.abort=Pn,i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return i.noExitRuntime=!0,Mn(),i.ready=new Promise(function(n,t){delete i.then,i.onAbort=function(n){t(n)},B(function(){n(i)})}),o}}();n.exports=o}).call(this,e(2),"/")},function(n,t,e){n.exports=e.p+"static/media/DiabloSpawn.5292efdb.wasm"},function(n,t,e){(function(t,r){var o=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(o){var a,i="undefined"!==typeof(o=o||{})?o:{},u={};for(a in i)i.hasOwnProperty(a)&&(u[a]=i[a]);i.arguments=[],i.thisProgram="./this.program",i.quit=function(n,t){throw t},i.preRun=[],i.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!f&&!l,c=!f&&!s&&!l;var p,d,h,_,y="";s?(y=r+"/",p=function(n,t){var r;return h||(h=e(3)),_||(_=e(4)),n=_.normalize(n),r=h.readFileSync(n),t?r:r.toString()},d=function(n){var t=p(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(i.thisProgram=t.argv[1].replace(/\\/g,"/")),i.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof On))throw n}),t.on("unhandledRejection",Pn),i.quit=function(n){t.exit(n)},i.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(p=function(n){return read(n)}),d=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?i.arguments=scriptArgs:"undefined"!=typeof arguments&&(i.arguments=arguments),"function"===typeof quit&&(i.quit=function(n){quit(n)})):(f||l)&&(l?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},l&&(d=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var m=i.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),g=i.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(a in u)u.hasOwnProperty(a)&&(i[a]=u[a]);u=void 0;var v,b={"f64-rem":function(n,t){return n%t},debugger:function(){}},w=(new Array(0),0),A=function(n){w=n};"object"!==typeof WebAssembly&&g("no native wasm support detected");var x=!1;function j(n,t){n||Pn("Assertion failed: "+t)}var S="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function E(n,t,e){for(var r=t+e,o=t;n[o]&&!(o>=r);)++o;if(o-t>16&&n.subarray&&S)return S.decode(n.subarray(t,o));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|u)}else a+=String.fromCharCode(i)}return a}function C(n,t){return n?E(T,n,t):""}var R,D,T,k,L;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function O(n,t){return n%t>0&&(n+=t-n%t),n}function M(){i.HEAP8=D=new Int8Array(R),i.HEAP16=new Int16Array(R),i.HEAP32=k=new Int32Array(R),i.HEAPU8=T=new Uint8Array(R),i.HEAPU16=new Uint16Array(R),i.HEAPU32=new Uint32Array(R),i.HEAPF32=L=new Float32Array(R),i.HEAPF64=new Float64Array(R)}var P=i.TOTAL_MEMORY||134217728;function I(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?i.dynCall_v(e):i.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}P<5242880&&g("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+P+"! (TOTAL_STACK=5242880)"),(v=i.wasmMemory?i.wasmMemory:new WebAssembly.Memory({initial:P/65536}))&&(R=v.buffer),P=R.byteLength,M(),k[462504]=7092928;var F=[],N=[],U=[],q=[];function B(n){q.unshift(n)}var H=0,z=null,W=null;i.preloadedImages={},i.preloadedAudios={};var G="data:application/octet-stream;base64,";function X(n){return String.prototype.startsWith?n.startsWith(G):0===n.indexOf(G)}var K,Y="DiabloSpawn.wasm";function J(){try{if(i.wasmBinary)return new Uint8Array(i.wasmBinary);if(d)return d(Y);throw"both async and sync fetching of the wasm failed"}catch(g){Pn(g)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:b};function e(n,t){var e=n.exports;i.asm=e,function(n){if(H--,i.monitorRunDependencies&&i.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),W)){var t=W;W=null,t()}}()}function r(n){e(n.instance)}function o(n){return(i.wasmBinary||!f&&!l||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Y,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Y+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){g("failed to asynchronously prepare wasm: "+n),Pn(n)})}if(H++,i.monitorRunDependencies&&i.monitorRunDependencies(H),i.instantiateWasm)try{return i.instantiateWasm(t,e)}catch(a){return g("Module.instantiateWasm callback failed with error: "+a),!1}return function(){if(i.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||X(Y)||"function"!==typeof fetch)return o(r);fetch(Y,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){g("wasm streaming compile failed: "+n),g("falling back to ArrayBuffer instantiation"),o(r)})})}(),{}}X(Y)||(K=Y,Y=i.locateFile?i.locateFile(K,y):y+K),i.asm=function(n,t,e){return t.memory=v,t.table=new WebAssembly.Table({initial:1114,maximum:1114,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var Z=[function(n){self.DApi.current_save_id(n)}];N.push({func:function(){_n()}});var $={},Q=[];function nn(n){if(!n||$[n])return n;for(var t in $)for(var e=+t,r=$[e].adjusted,o=r.length,a=0;a>2],t.adjusted.push(n),0|(A(r[o]),n);return n=k[n>>2],0|(A(e),n)}i.___cxa_find_matching_catch=rn;var on={buffers:[null,[],[]],printChar:function(n,t){var e=on.buffers[n];0===t||10===t?((1===n?m:g)(E(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return on.varargs+=4,k[on.varargs-4>>2]},getStr:function(){return C(on.get())},get64:function(){var n=on.get();on.get();return n},getZero:function(){on.get()}};function an(){return D.length}var un={n:Pn,L:A,b:function(){return w},ra:function(n){var t=mn();try{return gn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},g:function(n,t){var e=mn();try{return vn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},m:function(n,t,e){var r=mn();try{return bn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},o:function(n,t,e,r){var o=mn();try{return wn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},s:function(n,t,e,r,o){var a=mn();try{return An(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},t:function(n,t,e,r,o,a){var i=mn();try{return xn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},K:function(n,t){var e=mn();try{return jn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},u:function(n){var t=mn();try{Sn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},f:function(n,t){var e=mn();try{En(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},e:function(n,t,e){var r=mn();try{Cn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},j:function(n,t,e,r){var o=mn();try{Rn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},q:function(n,t,e,r,o){var a=mn();try{Dn(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},r:function(n,t,e,r,o,a){var i=mn();try{Tn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},A:function(n,t,e,r,o,a,i,u){var s=mn();try{kn(n,t,e,r,o,a,i,u)}catch(c){if(yn(s),c!==c+0&&"longjmp"!==c)throw c;hn(1,0)}},J:function(n,t,e,r,o){var a=mn();try{Ln(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},z:function(n,t,e,r){Pn("Assertion failed: "+C(n)+", at: "+[t?C(t):"unknown filename",e,r?C(r):"unknown function"])},i:function(n){return dn(n)},y:function(n){var t=$[n];return t&&!t.caught&&(t.caught=!0,cn.uncaught_exceptions--),t&&(t.rethrown=!1),Q.push(n),function(n){n&&$[n].refcount++}(nn(n)),n},I:function(){hn(0);var n=Q.pop();n&&(function(n){if(n){var t=$[n];t.refcount--,0!==t.refcount||t.rethrown||(t.destructor&&i.dynCall_vi(t.destructor,n),delete $[n],en(n))}}(nn(n)),tn=0)},c:function(n,t){return rn(n,t)},h:function(n,t,e){return rn(n,t,e)},l:en,qa:function(n){return n},pa:function(){throw x=!0,"Pure virtual function called!"},k:function(n,t,e){throw $[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},tn=n,"uncaught_exception"in cn?cn.uncaught_exceptions++:cn.uncaught_exceptions=1,n},oa:function(){return cn.uncaught_exceptions},na:function(){},d:function(n){throw tn||(tn=n),n},H:function(n){return i.___errno_location&&(k[i.___errno_location()>>2]=n),n},ma:function(n,t){on.varargs=t;try{return on.getStreamFromFD(),on.get(),on.get(),on.get(),on.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Pn(e),-e.errno}},G:function(n,t){on.varargs=t;try{for(var e=on.get(),r=on.get(),o=on.get(),a=0,i=0;i>2],s=k[r+(8*i+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},M:function(n){Pn("OOM")},a:1850016},sn=i.asm({},un,R);i.asm=sn;i._DApi_AllocPacket=function(){return i.asm.sa.apply(null,arguments)},i._DApi_Char=function(){return i.asm.ta.apply(null,arguments)},i._DApi_Init=function(){return i.asm.ua.apply(null,arguments)},i._DApi_Key=function(){return i.asm.va.apply(null,arguments)},i._DApi_Mouse=function(){return i.asm.wa.apply(null,arguments)},i._DApi_Render=function(){return i.asm.xa.apply(null,arguments)},i._DApi_SyncText=function(){return i.asm.ya.apply(null,arguments)},i._SNet_InitWebsocket=function(){return i.asm.za.apply(null,arguments)};var cn=i.__ZSt18uncaught_exceptionv=function(){return i.asm.Aa.apply(null,arguments)},fn=i.___cxa_can_catch=function(){return i.asm.Ba.apply(null,arguments)},ln=i.___cxa_is_pointer_type=function(){return i.asm.Ca.apply(null,arguments)},pn=(i.___em_js__api_close_keyboard=function(){return i.asm.Da.apply(null,arguments)},i.___em_js__api_create_sound=function(){return i.asm.Ea.apply(null,arguments)},i.___em_js__api_create_sound_float=function(){return i.asm.Fa.apply(null,arguments)},i.___em_js__api_delete_sound=function(){return i.asm.Ga.apply(null,arguments)},i.___em_js__api_draw_begin=function(){return i.asm.Ha.apply(null,arguments)},i.___em_js__api_draw_belt=function(){return i.asm.Ia.apply(null,arguments)},i.___em_js__api_draw_blit=function(){return i.asm.Ja.apply(null,arguments)},i.___em_js__api_draw_clip_text=function(){return i.asm.Ka.apply(null,arguments)},i.___em_js__api_draw_end=function(){return i.asm.La.apply(null,arguments)},i.___em_js__api_draw_text=function(){return i.asm.Ma.apply(null,arguments)},i.___em_js__api_duplicate_sound=function(){return i.asm.Na.apply(null,arguments)},i.___em_js__api_exit_game=function(){return i.asm.Oa.apply(null,arguments)},i.___em_js__api_open_keyboard=function(){return i.asm.Pa.apply(null,arguments)},i.___em_js__api_play_sound=function(){return i.asm.Qa.apply(null,arguments)},i.___em_js__api_set_cursor=function(){return i.asm.Ra.apply(null,arguments)},i.___em_js__api_set_volume=function(){return i.asm.Sa.apply(null,arguments)},i.___em_js__api_stop_sound=function(){return i.asm.Ta.apply(null,arguments)},i.___em_js__api_websocket_closed=function(){return i.asm.Ua.apply(null,arguments)},i.___em_js__api_websocket_send=function(){return i.asm.Va.apply(null,arguments)},i.___em_js__exit_error=function(){return i.asm.Wa.apply(null,arguments)},i.___em_js__get_file_contents=function(){return i.asm.Xa.apply(null,arguments)},i.___em_js__get_file_size=function(){return i.asm.Ya.apply(null,arguments)},i.___em_js__put_file_contents=function(){return i.asm.Za.apply(null,arguments)},i.___em_js__remove_file=function(){return i.asm._a.apply(null,arguments)},i.___em_js__show_alert=function(){return i.asm.$a.apply(null,arguments)},i.___em_js__trace_pop=function(){return i.asm.ab.apply(null,arguments)},i.___em_js__trace_push=function(){return i.asm.bb.apply(null,arguments)},i._free=function(){return i.asm.cb.apply(null,arguments)}),dn=i._malloc=function(){return i.asm.db.apply(null,arguments)},hn=i._setThrew=function(){return i.asm.eb.apply(null,arguments)},_n=i.globalCtors=function(){return i.asm.ub.apply(null,arguments)},yn=i.stackRestore=function(){return i.asm.vb.apply(null,arguments)},mn=i.stackSave=function(){return i.asm.wb.apply(null,arguments)},gn=i.dynCall_i=function(){return i.asm.fb.apply(null,arguments)},vn=i.dynCall_ii=function(){return i.asm.gb.apply(null,arguments)},bn=i.dynCall_iii=function(){return i.asm.hb.apply(null,arguments)},wn=i.dynCall_iiii=function(){return i.asm.ib.apply(null,arguments)},An=i.dynCall_iiiii=function(){return i.asm.jb.apply(null,arguments)},xn=i.dynCall_iiiiii=function(){return i.asm.kb.apply(null,arguments)},jn=i.dynCall_ji=function(){return i.asm.lb.apply(null,arguments)},Sn=i.dynCall_v=function(){return i.asm.mb.apply(null,arguments)},En=i.dynCall_vi=function(){return i.asm.nb.apply(null,arguments)},Cn=i.dynCall_vii=function(){return i.asm.ob.apply(null,arguments)},Rn=i.dynCall_viii=function(){return i.asm.pb.apply(null,arguments)},Dn=i.dynCall_viiii=function(){return i.asm.qb.apply(null,arguments)},Tn=i.dynCall_viiiii=function(){return i.asm.rb.apply(null,arguments)},kn=i.dynCall_viiiiiii=function(){return i.asm.sb.apply(null,arguments)},Ln=i.dynCall_viji=function(){return i.asm.tb.apply(null,arguments)};function On(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Mn(n){function t(){i.calledRun||(i.calledRun=!0,x||(!0,I(N),I(U),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)B(i.postRun.shift());I(q)}()))}n=n||i.arguments,H>0||(!function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)n=i.preRun.shift(),F.unshift(n);var n;I(F)}(),H>0||i.calledRun||(i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),t()},1)):t()))}function Pn(n){throw i.onAbort&&i.onAbort(n),m(n+=""),g(n),x=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(i.asm=sn,i.then=function(n){if(i.calledRun)n(i);else{var t=i.onRuntimeInitialized;i.onRuntimeInitialized=function(){t&&t(),n(i)}}return i},On.prototype=new Error,On.prototype.constructor=On,W=function n(){i.calledRun||Mn(),i.calledRun||(W=n)},i.run=Mn,i.abort=Pn,i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return i.noExitRuntime=!0,Mn(),i.ready=new Promise(function(n,t){delete i.then,i.onAbort=function(n){t(n)},B(function(){n(i)})}),o}}();n.exports=o}).call(this,e(2),"/")},function(n,t,e){n.exports=e(19)},function(n,t,e){var r=function(n){"use strict";var t,e=Object.prototype,r=e.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(n,t,e,r){var o=t&&t.prototype instanceof _?t:_,a=Object.create(o.prototype),i=new C(r||[]);return a._invoke=function(n,t,e){var r=f;return function(o,a){if(r===p)throw new Error("Generator is already running");if(r===d){if("throw"===o)throw a;return D()}for(e.method=o,e.arg=a;;){var i=e.delegate;if(i){var u=j(i,e);if(u){if(u===h)continue;return u}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(r===f)throw r=d,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);r=p;var s=c(n,t,e);if("normal"===s.type){if(r=e.done?d:l,s.arg===h)continue;return{value:s.arg,done:e.done}}"throw"===s.type&&(r=d,e.method="throw",e.arg=s.arg)}}}(n,e,i),a}function c(n,t,e){try{return{type:"normal",arg:n.call(t,e)}}catch(r){return{type:"throw",arg:r}}}n.wrap=s;var f="suspendedStart",l="suspendedYield",p="executing",d="completed",h={};function _(){}function y(){}function m(){}var g={};g[a]=function(){return this};var v=Object.getPrototypeOf,b=v&&v(v(R([])));b&&b!==e&&r.call(b,a)&&(g=b);var w=m.prototype=_.prototype=Object.create(g);function A(n){["next","throw","return"].forEach(function(t){n[t]=function(n){return this._invoke(t,n)}})}function x(n){var t;this._invoke=function(e,o){function a(){return new Promise(function(t,a){!function t(e,o,a,i){var u=c(n[e],n,o);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"===typeof f&&r.call(f,"__await")?Promise.resolve(f.__await).then(function(n){t("next",n,a,i)},function(n){t("throw",n,a,i)}):Promise.resolve(f).then(function(n){s.value=n,a(s)},function(n){return t("throw",n,a,i)})}i(u.arg)}(e,o,t,a)})}return t=t?t.then(a,a):a()}}function j(n,e){var r=n.iterator[e.method];if(r===t){if(e.delegate=null,"throw"===e.method){if(n.iterator.return&&(e.method="return",e.arg=t,j(n,e),"throw"===e.method))return h;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var o=c(r,n.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,h;var a=o.arg;return a?a.done?(e[n.resultName]=a.value,e.next=n.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,h):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function S(n){var t={tryLoc:n[0]};1 in n&&(t.catchLoc=n[1]),2 in n&&(t.finallyLoc=n[2],t.afterLoc=n[3]),this.tryEntries.push(t)}function E(n){var t=n.completion||{};t.type="normal",delete t.arg,n.completion=t}function C(n){this.tryEntries=[{tryLoc:"root"}],n.forEach(S,this),this.reset(!0)}function R(n){if(n){var e=n[a];if(e)return e.call(n);if("function"===typeof n.next)return n;if(!isNaN(n.length)){var o=-1,i=function e(){for(;++o=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(s&&c){if(this.prev=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var e=this.tryEntries[t];if(e.finallyLoc===n)return this.complete(e.completion,e.afterLoc),E(e),h}},catch:function(n){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.tryLoc===n){var r=e.completion;if("throw"===r.type){var o=r.arg;E(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(n,e,r){return this.delegate={iterator:R(n),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=t),h}},n}(n.exports);try{regeneratorRuntime=r}catch(o){Function("r","regeneratorRuntime = r")(r)}},function(n,t,e){"use strict";var r=e(0),o=e(5),a=e(21),i=e(11);function u(n){var t=new a(n),e=o(a.prototype.request,t);return r.extend(e,a.prototype,t),r.extend(e,t),e}var s=u(e(8));s.Axios=a,s.create=function(n){return u(i(s.defaults,n))},s.Cancel=e(12),s.CancelToken=e(33),s.isCancel=e(7),s.all=function(n){return Promise.all(n)},s.spread=e(34),n.exports=s,n.exports.default=s},function(n,t){n.exports=function(n){return null!=n&&null!=n.constructor&&"function"===typeof n.constructor.isBuffer&&n.constructor.isBuffer(n)}},function(n,t,e){"use strict";var r=e(0),o=e(6),a=e(22),i=e(23),u=e(11);function s(n){this.defaults=n,this.interceptors={request:new a,response:new a}}s.prototype.request=function(n){"string"===typeof n?(n=arguments[1]||{}).url=arguments[0]:n=n||{},(n=u(this.defaults,n)).method=n.method?n.method.toLowerCase():"get";var t=[i,void 0],e=Promise.resolve(n);for(this.interceptors.request.forEach(function(n){t.unshift(n.fulfilled,n.rejected)}),this.interceptors.response.forEach(function(n){t.push(n.fulfilled,n.rejected)});t.length;)e=e.then(t.shift(),t.shift());return e},s.prototype.getUri=function(n){return n=u(this.defaults,n),o(n.url,n.params,n.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(n){s.prototype[n]=function(t,e){return this.request(r.merge(e||{},{method:n,url:t}))}}),r.forEach(["post","put","patch"],function(n){s.prototype[n]=function(t,e,o){return this.request(r.merge(o||{},{method:n,url:t,data:e}))}}),n.exports=s},function(n,t,e){"use strict";var r=e(0);function o(){this.handlers=[]}o.prototype.use=function(n,t){return this.handlers.push({fulfilled:n,rejected:t}),this.handlers.length-1},o.prototype.eject=function(n){this.handlers[n]&&(this.handlers[n]=null)},o.prototype.forEach=function(n){r.forEach(this.handlers,function(t){null!==t&&n(t)})},n.exports=o},function(n,t,e){"use strict";var r=e(0),o=e(24),a=e(7),i=e(8),u=e(31),s=e(32);function c(n){n.cancelToken&&n.cancelToken.throwIfRequested()}n.exports=function(n){return c(n),n.baseURL&&!u(n.url)&&(n.url=s(n.baseURL,n.url)),n.headers=n.headers||{},n.data=o(n.data,n.headers,n.transformRequest),n.headers=r.merge(n.headers.common||{},n.headers[n.method]||{},n.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(t){delete n.headers[t]}),(n.adapter||i.adapter)(n).then(function(t){return c(n),t.data=o(t.data,t.headers,n.transformResponse),t},function(t){return a(t)||(c(n),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,n.transformResponse))),Promise.reject(t)})}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t,e){return r.forEach(e,function(e){n=e(n,t)}),n}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){r.forEach(n,function(e,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(n[t]=e,delete n[r])})}},function(n,t,e){"use strict";var r=e(10);n.exports=function(n,t,e){var o=e.config.validateStatus;!o||o(e.status)?n(e):t(r("Request failed with status code "+e.status,e.config,null,e.request,e))}},function(n,t,e){"use strict";n.exports=function(n,t,e,r,o){return n.config=t,e&&(n.code=e),n.request=r,n.response=o,n.isAxiosError=!0,n.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},n}},function(n,t,e){"use strict";var r=e(0),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];n.exports=function(n){var t,e,a,i={};return n?(r.forEach(n.split("\n"),function(n){if(a=n.indexOf(":"),t=r.trim(n.substr(0,a)).toLowerCase(),e=r.trim(n.substr(a+1)),t){if(i[t]&&o.indexOf(t)>=0)return;i[t]="set-cookie"===t?(i[t]?i[t]:[]).concat([e]):i[t]?i[t]+", "+e:e}}),i):i}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?function(){var n,t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");function o(n){var r=n;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=o(window.location.href),function(t){var e=r.isString(t)?o(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return!0}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?{write:function(n,t,e,o,a,i){var u=[];u.push(n+"="+encodeURIComponent(t)),r.isNumber(e)&&u.push("expires="+new Date(e).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(a)&&u.push("domain="+a),!0===i&&u.push("secure"),document.cookie=u.join("; ")},read:function(n){var t=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(n,t,e){"use strict";n.exports=function(n){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(n)}},function(n,t,e){"use strict";n.exports=function(n,t){return t?n.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):n}},function(n,t,e){"use strict";var r=e(12);function o(n){if("function"!==typeof n)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(n){t=n});var e=this;n(function(n){e.reason||(e.reason=new r(n),t(e.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var n;return{token:new o(function(t){n=t}),cancel:n}},n.exports=o},function(n,t,e){"use strict";n.exports=function(n){return function(t){return n.apply(null,t)}}},function(n,t,e){"use strict";function r(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){var e=[],r=!0,o=!1,a=void 0;try{for(var i,u=n[Symbol.iterator]();!(r=(i=u.next()).done)&&(e.push(i.value),!t||e.length!==t);r=!0);}catch(s){o=!0,a=s}finally{try{r||null==u.return||u.return()}finally{if(o)throw a}}return e}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}e.r(t);var o=e(1),a=e.n(o);function i(n){return function(n){if(Array.isArray(n)){for(var t=0,e=new Array(n.length);t=300)&&A.postMessage({action:"error",error:"Failed to load remote file"}),this.byteLength=parseInt(e.getResponseHeader("Content-Length")),this.url=t,this.buffer=new Uint8Array(this.byteLength),this.chunks=new Uint8Array(this.byteLength+T-1>>20|0)}var t,e,r;return t=n,(e=[{key:"subarray",value:function(n,t){for(var e=n/T|0,r=(t+T-1)/T|0,o=r,a=e,i=e;i=300)A.postMessage({action:"error",error:"Failed to load remote file"});else{var s,c=u.getResponseHeader("Content-Range"),f=0;c&&(s=c.match(/bytes (\d+)-(\d+)\/(\d+)/))&&(f=parseInt(s[1])),this.buffer.set(new Uint8Array(u.response),f),e=(f+T-1)/T|0,r=(f+u.response.byteLength+T-1)/T|0;for(var l=e;l=0?D?"spawn".concat(n,".sv"):"single_".concat(n,".sv"):null})},get_file_size:function(n){var t=E.get(n.toLowerCase());return t?t.byteLength:0},get_file_contents:function(n,t,e){var r=E.get(n.toLowerCase());r&&t.set(r.subarray(e,e+t.byteLength))},put_file_contents:function(n,t){n=n.toLowerCase(),E.set(n,t),A.postMessage({action:"fs",func:"update",params:[n,t]})},remove_file:function(n){n=n.toLowerCase(),E.delete(n),A.postMessage({action:"fs",func:"delete",params:[n]})},set_cursor:function(n,t){A.postMessage({action:"cursor",x:n,y:t})},open_keyboard:function(){for(var n=arguments.length,t=new Array(n),e=0;e>16&255,a=r>>8&255,i=255&r;j.fillStyle="rgb(".concat(o,", ").concat(a,", ").concat(i,")"),j.fillText(e,n,t+22)},draw_end:function(){j.restore();var n=x.transferToImageBitmap(),t=[n];R&&t.push(R.buffer),A.postMessage({action:"render",batch:{bitmap:n,belt:R}},t),R=null},draw_belt:function(n){R=n.slice()}},P=null,I=null,F=0,N=0;["create_sound_raw","create_sound","duplicate_sound"].forEach(function(n){L[n]=function(){for(var t=arguments.length,e=new Array(t),r=0;r=F?P.push({func:n,params:e}):A.postMessage({action:"audio",func:n,params:e})}});var U=null;L.websocket_send=function(n){U?U.push(n.slice().buffer):A.postMessage({action:"packet",buffer:n})},A.DApi=L;var q=null;function B(n){try{n()}catch(t){"string"===typeof t&&A.postMessage({action:""}),A.postMessage({action:"error",error:t.toString(),stack:t.stack})}}function H(n){for(var t=arguments.length,e=new Array(t>1?t-1:0),r=1;r undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.ddcbe875.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\nvar Module=typeof Diablo!==\"undefined\"?Diablo:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=function(status,toThrow){throw toThrow};Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_HAS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;read_=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);Module[\"quit\"]=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var asm2wasmImports={\"f64-rem\":function(x,y){return x%y},\"debugger\":function(){debugger}};var functionPointers=new Array(0);var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=7117728,DYNAMICTOP_PTR=1874816;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(INITIAL_TOTAL_MEMORY>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile=\"Diablo.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module[\"wasmBinary\"]){return new Uint8Array(Module[\"wasmBinary\"])}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module[\"wasmBinary\"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={\"env\":env,\"global\":{\"NaN\":NaN,Infinity:Infinity},\"global.Math\":Math,\"asm2wasm\":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!Module[\"wasmBinary\"]&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){return WebAssembly.instantiateStreaming(response,info).then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}Module[\"asm\"]=function(global,env,providedBuffer){env[\"memory\"]=wasmMemory;env[\"table\"]=wasmTable=new WebAssembly.Table({\"initial\":1114,\"maximum\":1114,\"element\":\"anyfunc\"});env[\"__memory_base\"]=1024;env[\"__table_base\"]=0;var exports=createWasm(env);return exports};var ASM_CONSTS=[function($0){self.DApi.current_save_id($0)}];function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _api_close_keyboard(){self.DApi.close_keyboard()}function _api_create_sound(id,ptr,size){self.DApi.create_sound(id,HEAPU8.slice(ptr,ptr+size))}function _api_create_sound_float(id,ptr,samples,channels,rate){self.DApi.create_sound_raw(id,HEAPF32.slice(ptr/4,ptr/4+samples*channels),samples,channels,rate)}function _api_delete_sound(id){self.DApi.delete_sound(id)}function _api_draw_begin(){self.DApi.draw_begin()}function _api_draw_belt(items){self.DApi.draw_belt(HEAP32.subarray(items/4,items/4+8))}function _api_draw_blit(x,y,w,h,ptr){self.DApi.draw_blit(x,y,w,h,HEAPU8.subarray(ptr,ptr+w*h*4))}function _api_draw_clip_text(x0,y0,x1,y1){self.DApi.draw_clip_text(x0,y0,x1,y1)}function _api_draw_end(){self.DApi.draw_end()}function _api_draw_text(x,y,ptr,color){var end=HEAPU8.indexOf(0,ptr);var text=String.fromCharCode.apply(null,HEAPU8.subarray(ptr,end));self.DApi.draw_text(x,y,text,color)}function _api_duplicate_sound(id,srcId){self.DApi.duplicate_sound(id,srcId)}function _api_exit_game(){self.DApi.exit_game()}function _api_open_keyboard(x0,y0,x1,y1){self.DApi.open_keyboard(x0,y0,x1,y1)}function _api_play_sound(id,volume,pan,loop){self.DApi.play_sound(id,volume,pan,loop)}function _api_set_cursor(x,y){self.DApi.set_cursor(x,y)}function _api_set_volume(id,volume){self.DApi.set_volume(id,volume)}function _api_stop_sound(id){self.DApi.stop_sound(id)}function _api_websocket_closed(){return self.DApi.websocket_closed()}function _api_websocket_send(ptr,size){self.DApi.websocket_send(HEAPU8.subarray(ptr,ptr+size))}function _exit_error(err){var end=HEAPU8.indexOf(0,err);var text=String.fromCharCode.apply(null,HEAPU8.subarray(err,end));self.DApi.exit_error(text)}function _get_file_contents(path,ptr,offset,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.get_file_contents(text,HEAPU8.subarray(ptr,ptr+size),offset)}function _get_file_size(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));return self.DApi.get_file_size(text)}function _put_file_contents(path,ptr,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.put_file_contents(text,HEAPU8.slice(ptr,ptr+size))}function _remove_file(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.remove_file(text)}__ATINIT__.push({func:function(){globalCtors()}});function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}Module[\"___cxa_find_matching_catch\"]=___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1){return ___cxa_find_matching_catch(a0,a1)}function ___cxa_find_matching_catch_3(a0,a1,a2){return ___cxa_find_matching_catch(a0,a1,a2)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function ___lock(){}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var oldSize=buffer.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){buffer=wasmMemory.buffer;return true}else{return false}}catch(e){return false}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=ret}return ret}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}var asmGlobalArg={};var asmLibraryArg={\"n\":abort,\"L\":setTempRet0,\"b\":getTempRet0,\"ra\":invoke_i,\"g\":invoke_ii,\"l\":invoke_iii,\"o\":invoke_iiii,\"s\":invoke_iiiii,\"t\":invoke_iiiiii,\"K\":invoke_ji,\"u\":invoke_v,\"f\":invoke_vi,\"e\":invoke_vii,\"j\":invoke_viii,\"q\":invoke_viiii,\"r\":invoke_viiiii,\"A\":invoke_viiiiiii,\"J\":invoke_viji,\"z\":___assert_fail,\"i\":___cxa_allocate_exception,\"y\":___cxa_begin_catch,\"I\":___cxa_end_catch,\"c\":___cxa_find_matching_catch_2,\"h\":___cxa_find_matching_catch_3,\"m\":___cxa_free_exception,\"qa\":___cxa_get_exception_ptr,\"pa\":___cxa_pure_virtual,\"k\":___cxa_throw,\"oa\":___cxa_uncaught_exceptions,\"na\":___lock,\"d\":___resumeException,\"H\":___setErrNo,\"ma\":___syscall140,\"G\":___syscall146,\"la\":___syscall54,\"ka\":___syscall6,\"F\":___unlock,\"E\":_abort,\"ja\":_api_close_keyboard,\"ia\":_api_create_sound,\"ha\":_api_create_sound_float,\"ga\":_api_delete_sound,\"fa\":_api_draw_begin,\"ea\":_api_draw_belt,\"D\":_api_draw_blit,\"da\":_api_draw_clip_text,\"w\":_api_draw_end,\"ca\":_api_draw_text,\"ba\":_api_duplicate_sound,\"aa\":_api_exit_game,\"C\":_api_open_keyboard,\"B\":_api_play_sound,\"$\":_api_set_cursor,\"_\":_api_set_volume,\"Z\":_api_stop_sound,\"Y\":_api_websocket_closed,\"X\":_api_websocket_send,\"W\":_emscripten_asm_const_ii,\"V\":_emscripten_get_heap_size,\"U\":_emscripten_memcpy_big,\"T\":_emscripten_resize_heap,\"p\":_exit,\"S\":_exit_error,\"v\":_get_file_contents,\"R\":_get_file_size,\"Q\":_llvm_eh_typeid_for,\"P\":_llvm_trap,\"O\":_put_file_contents,\"N\":_remove_file,\"x\":_time,\"M\":abortOnCannotGrowMemory,\"a\":DYNAMICTOP_PTR};var asm=Module[\"asm\"](asmGlobalArg,asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=function(){return Module[\"asm\"][\"sa\"].apply(null,arguments)};var _DApi_Char=Module[\"_DApi_Char\"]=function(){return Module[\"asm\"][\"ta\"].apply(null,arguments)};var _DApi_Init=Module[\"_DApi_Init\"]=function(){return Module[\"asm\"][\"ua\"].apply(null,arguments)};var _DApi_Key=Module[\"_DApi_Key\"]=function(){return Module[\"asm\"][\"va\"].apply(null,arguments)};var _DApi_Mouse=Module[\"_DApi_Mouse\"]=function(){return Module[\"asm\"][\"wa\"].apply(null,arguments)};var _DApi_Render=Module[\"_DApi_Render\"]=function(){return Module[\"asm\"][\"xa\"].apply(null,arguments)};var _DApi_SyncText=Module[\"_DApi_SyncText\"]=function(){return Module[\"asm\"][\"ya\"].apply(null,arguments)};var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=function(){return Module[\"asm\"][\"za\"].apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=function(){return Module[\"asm\"][\"Aa\"].apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return Module[\"asm\"][\"Ba\"].apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return Module[\"asm\"][\"Ca\"].apply(null,arguments)};var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=function(){return Module[\"asm\"][\"Da\"].apply(null,arguments)};var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=function(){return Module[\"asm\"][\"Ea\"].apply(null,arguments)};var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=function(){return Module[\"asm\"][\"Fa\"].apply(null,arguments)};var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=function(){return Module[\"asm\"][\"Ga\"].apply(null,arguments)};var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=function(){return Module[\"asm\"][\"Ha\"].apply(null,arguments)};var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=function(){return Module[\"asm\"][\"Ia\"].apply(null,arguments)};var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=function(){return Module[\"asm\"][\"Ja\"].apply(null,arguments)};var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=function(){return Module[\"asm\"][\"Ka\"].apply(null,arguments)};var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=function(){return Module[\"asm\"][\"La\"].apply(null,arguments)};var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=function(){return Module[\"asm\"][\"Ma\"].apply(null,arguments)};var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=function(){return Module[\"asm\"][\"Na\"].apply(null,arguments)};var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=function(){return Module[\"asm\"][\"Oa\"].apply(null,arguments)};var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=function(){return Module[\"asm\"][\"Pa\"].apply(null,arguments)};var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=function(){return Module[\"asm\"][\"Qa\"].apply(null,arguments)};var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=function(){return Module[\"asm\"][\"Ra\"].apply(null,arguments)};var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=function(){return Module[\"asm\"][\"Sa\"].apply(null,arguments)};var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=function(){return Module[\"asm\"][\"Ta\"].apply(null,arguments)};var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=function(){return Module[\"asm\"][\"Ua\"].apply(null,arguments)};var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=function(){return Module[\"asm\"][\"Va\"].apply(null,arguments)};var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=function(){return Module[\"asm\"][\"Wa\"].apply(null,arguments)};var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=function(){return Module[\"asm\"][\"Xa\"].apply(null,arguments)};var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=function(){return Module[\"asm\"][\"Ya\"].apply(null,arguments)};var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=function(){return Module[\"asm\"][\"Za\"].apply(null,arguments)};var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=function(){return Module[\"asm\"][\"_a\"].apply(null,arguments)};var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=function(){return Module[\"asm\"][\"$a\"].apply(null,arguments)};var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=function(){return Module[\"asm\"][\"ab\"].apply(null,arguments)};var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=function(){return Module[\"asm\"][\"bb\"].apply(null,arguments)};var _free=Module[\"_free\"]=function(){return Module[\"asm\"][\"cb\"].apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return Module[\"asm\"][\"db\"].apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return Module[\"asm\"][\"eb\"].apply(null,arguments)};var globalCtors=Module[\"globalCtors\"]=function(){return Module[\"asm\"][\"ub\"].apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return Module[\"asm\"][\"vb\"].apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return Module[\"asm\"][\"wb\"].apply(null,arguments)};var dynCall_i=Module[\"dynCall_i\"]=function(){return Module[\"asm\"][\"fb\"].apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return Module[\"asm\"][\"gb\"].apply(null,arguments)};var dynCall_iii=Module[\"dynCall_iii\"]=function(){return Module[\"asm\"][\"hb\"].apply(null,arguments)};var dynCall_iiii=Module[\"dynCall_iiii\"]=function(){return Module[\"asm\"][\"ib\"].apply(null,arguments)};var dynCall_iiiii=Module[\"dynCall_iiiii\"]=function(){return Module[\"asm\"][\"jb\"].apply(null,arguments)};var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=function(){return Module[\"asm\"][\"kb\"].apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return Module[\"asm\"][\"lb\"].apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return Module[\"asm\"][\"mb\"].apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return Module[\"asm\"][\"nb\"].apply(null,arguments)};var dynCall_vii=Module[\"dynCall_vii\"]=function(){return Module[\"asm\"][\"ob\"].apply(null,arguments)};var dynCall_viii=Module[\"dynCall_viii\"]=function(){return Module[\"asm\"][\"pb\"].apply(null,arguments)};var dynCall_viiii=Module[\"dynCall_viiii\"]=function(){return Module[\"asm\"][\"qb\"].apply(null,arguments)};var dynCall_viiiii=Module[\"dynCall_viiiii\"]=function(){return Module[\"asm\"][\"rb\"].apply(null,arguments)};var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=function(){return Module[\"asm\"][\"sb\"].apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return Module[\"asm\"][\"tb\"].apply(null,arguments)};Module[\"asm\"]=asm;Module[\"then\"]=function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise(function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=function(what){reject(what)};addOnPostRun(function(){resolve(Module)})});\r\n\r\n\r\n return Diablo\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.b4ef0fa4.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\nvar Module=typeof DiabloSpawn!==\"undefined\"?DiabloSpawn:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=function(status,toThrow){throw toThrow};Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_HAS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;read_=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);Module[\"quit\"]=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var asm2wasmImports={\"f64-rem\":function(x,y){return x%y},\"debugger\":function(){debugger}};var functionPointers=new Array(0);var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=7092928,DYNAMICTOP_PTR=1850016;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(INITIAL_TOTAL_MEMORY>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile=\"DiabloSpawn.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module[\"wasmBinary\"]){return new Uint8Array(Module[\"wasmBinary\"])}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module[\"wasmBinary\"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={\"env\":env,\"global\":{\"NaN\":NaN,Infinity:Infinity},\"global.Math\":Math,\"asm2wasm\":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!Module[\"wasmBinary\"]&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){return WebAssembly.instantiateStreaming(response,info).then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}Module[\"asm\"]=function(global,env,providedBuffer){env[\"memory\"]=wasmMemory;env[\"table\"]=wasmTable=new WebAssembly.Table({\"initial\":1114,\"maximum\":1114,\"element\":\"anyfunc\"});env[\"__memory_base\"]=1024;env[\"__table_base\"]=0;var exports=createWasm(env);return exports};var ASM_CONSTS=[function($0){self.DApi.current_save_id($0)}];function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _api_close_keyboard(){self.DApi.close_keyboard()}function _api_create_sound(id,ptr,size){self.DApi.create_sound(id,HEAPU8.slice(ptr,ptr+size))}function _api_create_sound_float(id,ptr,samples,channels,rate){self.DApi.create_sound_raw(id,HEAPF32.slice(ptr/4,ptr/4+samples*channels),samples,channels,rate)}function _api_delete_sound(id){self.DApi.delete_sound(id)}function _api_draw_begin(){self.DApi.draw_begin()}function _api_draw_belt(items){self.DApi.draw_belt(HEAP32.subarray(items/4,items/4+8))}function _api_draw_blit(x,y,w,h,ptr){self.DApi.draw_blit(x,y,w,h,HEAPU8.subarray(ptr,ptr+w*h*4))}function _api_draw_clip_text(x0,y0,x1,y1){self.DApi.draw_clip_text(x0,y0,x1,y1)}function _api_draw_end(){self.DApi.draw_end()}function _api_draw_text(x,y,ptr,color){var end=HEAPU8.indexOf(0,ptr);var text=String.fromCharCode.apply(null,HEAPU8.subarray(ptr,end));self.DApi.draw_text(x,y,text,color)}function _api_duplicate_sound(id,srcId){self.DApi.duplicate_sound(id,srcId)}function _api_exit_game(){self.DApi.exit_game()}function _api_open_keyboard(x0,y0,x1,y1){self.DApi.open_keyboard(x0,y0,x1,y1)}function _api_play_sound(id,volume,pan,loop){self.DApi.play_sound(id,volume,pan,loop)}function _api_set_cursor(x,y){self.DApi.set_cursor(x,y)}function _api_set_volume(id,volume){self.DApi.set_volume(id,volume)}function _api_stop_sound(id){self.DApi.stop_sound(id)}function _api_websocket_closed(){return self.DApi.websocket_closed()}function _api_websocket_send(ptr,size){self.DApi.websocket_send(HEAPU8.subarray(ptr,ptr+size))}function _exit_error(err){var end=HEAPU8.indexOf(0,err);var text=String.fromCharCode.apply(null,HEAPU8.subarray(err,end));self.DApi.exit_error(text)}function _get_file_contents(path,ptr,offset,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.get_file_contents(text,HEAPU8.subarray(ptr,ptr+size),offset)}function _get_file_size(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));return self.DApi.get_file_size(text)}function _put_file_contents(path,ptr,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.put_file_contents(text,HEAPU8.slice(ptr,ptr+size))}function _remove_file(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.remove_file(text)}__ATINIT__.push({func:function(){globalCtors()}});function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}Module[\"___cxa_find_matching_catch\"]=___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1){return ___cxa_find_matching_catch(a0,a1)}function ___cxa_find_matching_catch_3(a0,a1,a2){return ___cxa_find_matching_catch(a0,a1,a2)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function ___lock(){}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var oldSize=buffer.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){buffer=wasmMemory.buffer;return true}else{return false}}catch(e){return false}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=ret}return ret}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}var asmGlobalArg={};var asmLibraryArg={\"n\":abort,\"L\":setTempRet0,\"b\":getTempRet0,\"ra\":invoke_i,\"g\":invoke_ii,\"m\":invoke_iii,\"o\":invoke_iiii,\"s\":invoke_iiiii,\"t\":invoke_iiiiii,\"K\":invoke_ji,\"u\":invoke_v,\"f\":invoke_vi,\"e\":invoke_vii,\"j\":invoke_viii,\"q\":invoke_viiii,\"r\":invoke_viiiii,\"A\":invoke_viiiiiii,\"J\":invoke_viji,\"z\":___assert_fail,\"i\":___cxa_allocate_exception,\"y\":___cxa_begin_catch,\"I\":___cxa_end_catch,\"c\":___cxa_find_matching_catch_2,\"h\":___cxa_find_matching_catch_3,\"l\":___cxa_free_exception,\"qa\":___cxa_get_exception_ptr,\"pa\":___cxa_pure_virtual,\"k\":___cxa_throw,\"oa\":___cxa_uncaught_exceptions,\"na\":___lock,\"d\":___resumeException,\"H\":___setErrNo,\"ma\":___syscall140,\"G\":___syscall146,\"la\":___syscall54,\"ka\":___syscall6,\"F\":___unlock,\"E\":_abort,\"ja\":_api_close_keyboard,\"ia\":_api_create_sound,\"ha\":_api_create_sound_float,\"ga\":_api_delete_sound,\"fa\":_api_draw_begin,\"ea\":_api_draw_belt,\"D\":_api_draw_blit,\"da\":_api_draw_clip_text,\"w\":_api_draw_end,\"ca\":_api_draw_text,\"ba\":_api_duplicate_sound,\"aa\":_api_exit_game,\"C\":_api_open_keyboard,\"B\":_api_play_sound,\"$\":_api_set_cursor,\"_\":_api_set_volume,\"Z\":_api_stop_sound,\"Y\":_api_websocket_closed,\"X\":_api_websocket_send,\"W\":_emscripten_asm_const_ii,\"V\":_emscripten_get_heap_size,\"U\":_emscripten_memcpy_big,\"T\":_emscripten_resize_heap,\"p\":_exit,\"S\":_exit_error,\"v\":_get_file_contents,\"R\":_get_file_size,\"Q\":_llvm_eh_typeid_for,\"P\":_llvm_trap,\"O\":_put_file_contents,\"N\":_remove_file,\"x\":_time,\"M\":abortOnCannotGrowMemory,\"a\":DYNAMICTOP_PTR};var asm=Module[\"asm\"](asmGlobalArg,asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=function(){return Module[\"asm\"][\"sa\"].apply(null,arguments)};var _DApi_Char=Module[\"_DApi_Char\"]=function(){return Module[\"asm\"][\"ta\"].apply(null,arguments)};var _DApi_Init=Module[\"_DApi_Init\"]=function(){return Module[\"asm\"][\"ua\"].apply(null,arguments)};var _DApi_Key=Module[\"_DApi_Key\"]=function(){return Module[\"asm\"][\"va\"].apply(null,arguments)};var _DApi_Mouse=Module[\"_DApi_Mouse\"]=function(){return Module[\"asm\"][\"wa\"].apply(null,arguments)};var _DApi_Render=Module[\"_DApi_Render\"]=function(){return Module[\"asm\"][\"xa\"].apply(null,arguments)};var _DApi_SyncText=Module[\"_DApi_SyncText\"]=function(){return Module[\"asm\"][\"ya\"].apply(null,arguments)};var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=function(){return Module[\"asm\"][\"za\"].apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=function(){return Module[\"asm\"][\"Aa\"].apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return Module[\"asm\"][\"Ba\"].apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return Module[\"asm\"][\"Ca\"].apply(null,arguments)};var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=function(){return Module[\"asm\"][\"Da\"].apply(null,arguments)};var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=function(){return Module[\"asm\"][\"Ea\"].apply(null,arguments)};var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=function(){return Module[\"asm\"][\"Fa\"].apply(null,arguments)};var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=function(){return Module[\"asm\"][\"Ga\"].apply(null,arguments)};var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=function(){return Module[\"asm\"][\"Ha\"].apply(null,arguments)};var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=function(){return Module[\"asm\"][\"Ia\"].apply(null,arguments)};var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=function(){return Module[\"asm\"][\"Ja\"].apply(null,arguments)};var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=function(){return Module[\"asm\"][\"Ka\"].apply(null,arguments)};var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=function(){return Module[\"asm\"][\"La\"].apply(null,arguments)};var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=function(){return Module[\"asm\"][\"Ma\"].apply(null,arguments)};var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=function(){return Module[\"asm\"][\"Na\"].apply(null,arguments)};var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=function(){return Module[\"asm\"][\"Oa\"].apply(null,arguments)};var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=function(){return Module[\"asm\"][\"Pa\"].apply(null,arguments)};var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=function(){return Module[\"asm\"][\"Qa\"].apply(null,arguments)};var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=function(){return Module[\"asm\"][\"Ra\"].apply(null,arguments)};var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=function(){return Module[\"asm\"][\"Sa\"].apply(null,arguments)};var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=function(){return Module[\"asm\"][\"Ta\"].apply(null,arguments)};var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=function(){return Module[\"asm\"][\"Ua\"].apply(null,arguments)};var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=function(){return Module[\"asm\"][\"Va\"].apply(null,arguments)};var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=function(){return Module[\"asm\"][\"Wa\"].apply(null,arguments)};var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=function(){return Module[\"asm\"][\"Xa\"].apply(null,arguments)};var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=function(){return Module[\"asm\"][\"Ya\"].apply(null,arguments)};var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=function(){return Module[\"asm\"][\"Za\"].apply(null,arguments)};var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=function(){return Module[\"asm\"][\"_a\"].apply(null,arguments)};var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=function(){return Module[\"asm\"][\"$a\"].apply(null,arguments)};var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=function(){return Module[\"asm\"][\"ab\"].apply(null,arguments)};var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=function(){return Module[\"asm\"][\"bb\"].apply(null,arguments)};var _free=Module[\"_free\"]=function(){return Module[\"asm\"][\"cb\"].apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return Module[\"asm\"][\"db\"].apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return Module[\"asm\"][\"eb\"].apply(null,arguments)};var globalCtors=Module[\"globalCtors\"]=function(){return Module[\"asm\"][\"ub\"].apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return Module[\"asm\"][\"vb\"].apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return Module[\"asm\"][\"wb\"].apply(null,arguments)};var dynCall_i=Module[\"dynCall_i\"]=function(){return Module[\"asm\"][\"fb\"].apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return Module[\"asm\"][\"gb\"].apply(null,arguments)};var dynCall_iii=Module[\"dynCall_iii\"]=function(){return Module[\"asm\"][\"hb\"].apply(null,arguments)};var dynCall_iiii=Module[\"dynCall_iiii\"]=function(){return Module[\"asm\"][\"ib\"].apply(null,arguments)};var dynCall_iiiii=Module[\"dynCall_iiiii\"]=function(){return Module[\"asm\"][\"jb\"].apply(null,arguments)};var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=function(){return Module[\"asm\"][\"kb\"].apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return Module[\"asm\"][\"lb\"].apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return Module[\"asm\"][\"mb\"].apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return Module[\"asm\"][\"nb\"].apply(null,arguments)};var dynCall_vii=Module[\"dynCall_vii\"]=function(){return Module[\"asm\"][\"ob\"].apply(null,arguments)};var dynCall_viii=Module[\"dynCall_viii\"]=function(){return Module[\"asm\"][\"pb\"].apply(null,arguments)};var dynCall_viiii=Module[\"dynCall_viiii\"]=function(){return Module[\"asm\"][\"qb\"].apply(null,arguments)};var dynCall_viiiii=Module[\"dynCall_viiiii\"]=function(){return Module[\"asm\"][\"rb\"].apply(null,arguments)};var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=function(){return Module[\"asm\"][\"sb\"].apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return Module[\"asm\"][\"tb\"].apply(null,arguments)};Module[\"asm\"]=asm;Module[\"then\"]=function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise(function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=function(what){reject(what)};addOnPostRun(function(){resolve(Module)})});\r\n\r\n\r\n return DiabloSpawn\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nconst DiabloSize = 1316452;\r\nconst SpawnSize = 1196648;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\nlet is_spawn = false;\r\n\r\nconst ChunkSize = 1 << 20;\r\nclass RemoteFile {\r\n constructor(url) {\r\n const request = new XMLHttpRequest();\r\n request.open('HEAD', url, false);\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n }\r\n this.byteLength = parseInt(request.getResponseHeader('Content-Length'));\r\n\r\n this.url = url;\r\n\r\n this.buffer = new Uint8Array(this.byteLength);\r\n this.chunks = new Uint8Array(((this.byteLength + ChunkSize - 1) >> 20) | 0);\r\n }\r\n\r\n subarray(start, end) {\r\n let chunk0 = (start / ChunkSize) | 0;\r\n let chunk1 = ((end + ChunkSize - 1) / ChunkSize) | 0;\r\n let missing0 = chunk1, missing1 = chunk0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n if (!this.chunks[i]) {\r\n missing0 = Math.min(missing0, i);\r\n missing1 = Math.max(missing1, i);\r\n }\r\n }\r\n if (missing0 <= missing1) {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', this.url, false);\r\n request.setRequestHeader('Range', `bytes=${missing0 * ChunkSize}-${Math.min(missing1 * ChunkSize + ChunkSize - 1, this.byteLength - 1)}`);\r\n request.responseType = 'arraybuffer';\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n } else {\r\n const header = request.getResponseHeader('Content-Range');\r\n let m, start = 0;\r\n if (header && (m = header.match(/bytes (\\d+)-(\\d+)\\/(\\d+)/))) {\r\n start = parseInt(m[1]);\r\n }\r\n this.buffer.set(new Uint8Array(request.response), start);\r\n chunk0 = ((start + ChunkSize - 1) / ChunkSize) | 0;\r\n chunk1 = ((start + request.response.byteLength + ChunkSize - 1) / ChunkSize) | 0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n this.chunks[i] = 1;\r\n }\r\n }\r\n }\r\n return this.buffer.subarray(start, end);\r\n }\r\n}\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n worker.postMessage({action: \"error\", error});\r\n },\r\n\r\n exit_game() {\r\n worker.postMessage({action: \"exit\"});\r\n },\r\n current_save_id(id) {\r\n worker.postMessage({action: \"current_save\", name: id >= 0 ? (is_spawn ? `spawn${id}.sv` : `single_${id}.sv`) : null});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.byteLength));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard(...args) {\r\n worker.postMessage({action: \"keyboard\", rect: [...args]});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", rect: null});\r\n },\r\n\r\n websocket_closed() {\r\n return false;\r\n },\r\n};\r\n\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound_raw\", \"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func !== \"duplicate_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func !== \"duplicate_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nlet packetBatch = null;\r\nDApi.websocket_send = function(data) {\r\n if (packetBatch) {\r\n packetBatch.push(data.slice().buffer);\r\n } else {\r\n worker.postMessage({action: \"packet\", buffer: data});\r\n }\r\n};\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction try_api(func) {\r\n try {\r\n func();\r\n } catch (e) {\r\n if (typeof e === \"string\") {\r\n worker.postMessage({action: \"\"})\r\n }\r\n worker.postMessage({action: \"error\", error: e.toString(), stack: e.stack});\r\n }\r\n}\r\n\r\nfunction call_api(func, ...params) {\r\n try_api(() => {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n packetBatch = [];\r\n wasm[\"_\" + func](...params);\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n }\r\n if (packetBatch.length) {\r\n worker.postMessage({action: \"packetBatch\", batch: packetBatch}, packetBatch);\r\n }\r\n audioBatch = null;\r\n audioTransfer = null;\r\n packetBatch = null;\r\n });\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n is_spawn = spawn;\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n if (!mpq) {\r\n const name = (spawn ? 'spawn.mpq' : 'diabdat.mpq');\r\n if (!files.has(name)) {\r\n // This should never happen, but we do support remote loading\r\n files.set(name, new RemoteFile(`${process.env.PUBLIC_URL}/${name}`));\r\n }\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n wasm._SNet_InitWebsocket();\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => worker.postMessage({action: \"failed\", error: e.toString(), stack: e.stack}));\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n case \"packet\":\r\n try_api(() => {\r\n const ptr = wasm._DApi_AllocPacket(data.buffer.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data.buffer), ptr);\r\n });\r\n break;\r\n case \"packetBatch\":\r\n try_api(() => {\r\n for (let packet of data.batch) {\r\n const ptr = wasm._DApi_AllocPacket(packet.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(packet), ptr);\r\n }\r\n });\r\n break;\r\n default:\r\n }\r\n});\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/bootstrap","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/process/browser.js","../node_modules/path-browserify/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","api/Diablo.wasm","api/Diablo.jscc","api/DiabloSpawn.wasm","api/DiabloSpawn.jscc","../node_modules/axios/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/axios/lib/axios.js","../node_modules/axios/node_modules/is-buffer/index.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","api/game.worker.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isBuffer","toString","isArray","val","isObject","isFunction","forEach","obj","fn","length","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","arguments","deepMerge","extend","a","b","thisArg","trim","str","replace","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizeArray","parts","allowAboveRoot","up","last","splice","unshift","filter","xs","f","res","resolve","resolvedPath","resolvedAbsolute","path","TypeError","charAt","split","join","normalize","isAbsolute","trailingSlash","substr","paths","slice","index","relative","from","to","arr","start","end","fromParts","toParts","Math","min","samePartsLength","outputParts","sep","delimiter","dirname","code","charCodeAt","hasRoot","matchedSlash","basename","ext","extname","startDot","startPart","preDotState","utils","encode","encodeURIComponent","url","params","paramsSerializer","serializedParams","v","toISOString","JSON","stringify","hashmarkIndex","indexOf","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","setContentTypeIfUnset","headers","defaults","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","data","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","Accept","method","settle","buildURL","parseHeaders","isURLSameOrigin","createError","config","Promise","reject","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","cookies","xsrfValue","withCredentials","read","undefined","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","error","config1","config2","prop","Cancel","Diablo","_scriptDir","currentScript","src","Module","moduleOverrides","toThrow","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","importScripts","node","read_","readBinary","nodeFS","nodePath","scriptDirectory","__dirname","filename","binary","ret","Uint8Array","assert","ex","ExitStatus","readbuffer","scriptArgs","quit","self","location","href","lastIndexOf","xhr","onload","out","console","log","print","err","printErr","warn","wasmMemory","asm2wasmImports","f64-rem","x","y","debugger","tempRet0","setTempRet0","WebAssembly","ABORT","condition","text","UTF8Decoder","TextDecoder","UTF8ArrayToString","u8Array","idx","maxBytesToRead","endIdx","endPtr","subarray","decode","u0","u1","u2","String","fromCharCode","ch","UTF8ToString","ptr","HEAPU8","HEAP8","HEAP32","HEAPF32","alignUp","multiple","updateGlobalBufferViews","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","INITIAL_TOTAL_MEMORY","callRuntimeCallbacks","callbacks","callback","shift","func","arg","Memory","initial","byteLength","DYNAMICTOP_PTR","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATPOSTRUN__","addOnPostRun","cb","runDependencies","runDependencyWatcher","dependenciesFulfilled","dataURIPrefix","isDataURI","startsWith","wasmBinaryFile","getBinary","createWasm","info","global","NaN","Infinity","global.Math","asm2wasm","receiveInstance","instance","id","clearInterval","removeRunDependency","receiveInstantiatedSource","output","instantiateArrayBuffer","receiver","fetch","credentials","catch","instantiate","reason","instantiateStreaming","instantiateAsync","providedBuffer","Table","maximum","element","ASM_CONSTS","$0","DApi","current_save_id","globalCtors","___exception_infos","___exception_caught","___exception_deAdjust","adjusted","adj","___exception_last","___cxa_free_exception","_free","___cxa_find_matching_catch","thrown","throwntype","type","typeArray","___cxa_is_pointer_type","___cxa_can_catch","SYSCALLS","buffers","printChar","stream","curr","varargs","getStr","get64","low","getZero","_emscripten_get_heap_size","asmLibraryArg","L","ra","sp","stackSave","dynCall_i","stackRestore","_setThrew","g","a1","dynCall_ii","a2","dynCall_iii","a3","dynCall_iiii","a4","dynCall_iiiii","a5","dynCall_iiiiii","K","dynCall_ji","u","dynCall_v","dynCall_vi","dynCall_vii","j","dynCall_viii","q","dynCall_viiii","dynCall_viiiii","A","a6","a7","dynCall_viiiiiii","J","dynCall_viji","z","line","size","_malloc","caught","__ZSt18uncaught_exceptionv","uncaught_exceptions","rethrown","refcount","___exception_addRef","I","pop","destructor","___exception_decRef","a0","h","qa","pa","k","oa","na","H","ma","which","getStreamFromFD","FS","ErrnoError","errno","G","iov","iovcnt","la","ka","F","E","ja","close_keyboard","ia","create_sound","ha","samples","channels","rate","create_sound_raw","ga","delete_sound","fa","draw_begin","ea","items","draw_belt","D","w","draw_blit","da","x0","y0","x1","y1","draw_clip_text","draw_end","ca","color","draw_text","ba","srcId","duplicate_sound","aa","exit_game","C","open_keyboard","B","volume","pan","loop","play_sound","$","set_cursor","_","set_volume","Z","stop_sound","Y","websocket_closed","X","websocket_send","W","V","U","dest","num","set","T","requestedSize","oldSize","newSize","max","grow","emscripten_realloc_buffer","implicit","exit","S","exit_error","offset","get_file_contents","R","get_file_size","Q","P","O","put_file_contents","N","remove_file","Date","now","M","asm","doRun","postRun","preRun","what","old","constructor","runCaller","DiabloSpawn","runtime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","hasCatch","hasFinally","finallyEntry","complete","finish","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","default","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","handlers","use","eject","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","baseURL","fns","normalizedName","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","ignoreDuplicateOf","parsed","originURL","msie","test","userAgent","urlParsingNode","createElement","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","requestURL","write","expires","domain","secure","cookie","toGMTString","match","RegExp","decodeURIComponent","remove","relativeURL","executor","resolvePromise","token","source","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_defineProperties","target","props","descriptor","configurable","writable","DiabloSize","SpawnSize","worker","canvas","imageData","files","renderBatch","drawBelt","is_spawn","ChunkSize","RemoteFile","Constructor","_classCallCheck","postMessage","action","parseInt","getResponseHeader","chunks","protoProps","staticProps","chunk0","chunk1","missing0","missing1","header","delete","_len","_key","rect","DApi_renderLegacy","images","clip","belt","transfer","map","_ref","batch","DApi_renderOffscreen","save","font","putImageData","beginPath","fillStyle","fillText","restore","bitmap","transferToImageBitmap","audioBatch","audioTransfer","maxSoundId","maxBatchId","_len2","_key2","_len3","_key3","packetBatch","wasm","try_api","call_api","_len4","_key4","_wasm","progress","loaded","total","readFile","file","reader","FileReader","readAsArrayBuffer","initWasm","_callee","spawn","regenerator_default","_context","SpawnBinary","DiabloBinary","SpawnModule","DiabloModule","wasmBinary","ready","_callee2","mpq","offscreen","mpqLoaded","mpqTotal","wasmLoaded","wasmTotal","wasmWeight","updateProgress","loadWasm","loadMpq","_ref3","_ref4","vers","_context2","OffscreenCanvas","getContext","createImageData","assign","has","_SNet_InitWebsocket","_DApi_Init","floor","performance","setInterval","_ref2","init_game","_DApi_AllocPacket","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","packet","return"],"mappings":"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","file":"35f22eb14a4817ef6e49.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/diabloweb/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\nvar isBuffer = require('is-buffer');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.85de21cc.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\nvar Module=typeof Diablo!==\"undefined\"?Diablo:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=function(status,toThrow){throw toThrow};Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_HAS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;read_=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);Module[\"quit\"]=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var asm2wasmImports={\"f64-rem\":function(x,y){return x%y},\"debugger\":function(){debugger}};var functionPointers=new Array(0);var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=7117728,DYNAMICTOP_PTR=1874816;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(INITIAL_TOTAL_MEMORY>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile=\"Diablo.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module[\"wasmBinary\"]){return new Uint8Array(Module[\"wasmBinary\"])}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module[\"wasmBinary\"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={\"env\":env,\"global\":{\"NaN\":NaN,Infinity:Infinity},\"global.Math\":Math,\"asm2wasm\":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!Module[\"wasmBinary\"]&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){return WebAssembly.instantiateStreaming(response,info).then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}Module[\"asm\"]=function(global,env,providedBuffer){env[\"memory\"]=wasmMemory;env[\"table\"]=wasmTable=new WebAssembly.Table({\"initial\":1114,\"maximum\":1114,\"element\":\"anyfunc\"});env[\"__memory_base\"]=1024;env[\"__table_base\"]=0;var exports=createWasm(env);return exports};var ASM_CONSTS=[function($0){self.DApi.current_save_id($0)}];function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _api_close_keyboard(){self.DApi.close_keyboard()}function _api_create_sound(id,ptr,size){self.DApi.create_sound(id,HEAPU8.slice(ptr,ptr+size))}function _api_create_sound_float(id,ptr,samples,channels,rate){self.DApi.create_sound_raw(id,HEAPF32.slice(ptr/4,ptr/4+samples*channels),samples,channels,rate)}function _api_delete_sound(id){self.DApi.delete_sound(id)}function _api_draw_begin(){self.DApi.draw_begin()}function _api_draw_belt(items){self.DApi.draw_belt(HEAP32.subarray(items/4,items/4+8))}function _api_draw_blit(x,y,w,h,ptr){self.DApi.draw_blit(x,y,w,h,HEAPU8.subarray(ptr,ptr+w*h*4))}function _api_draw_clip_text(x0,y0,x1,y1){self.DApi.draw_clip_text(x0,y0,x1,y1)}function _api_draw_end(){self.DApi.draw_end()}function _api_draw_text(x,y,ptr,color){var end=HEAPU8.indexOf(0,ptr);var text=String.fromCharCode.apply(null,HEAPU8.subarray(ptr,end));self.DApi.draw_text(x,y,text,color)}function _api_duplicate_sound(id,srcId){self.DApi.duplicate_sound(id,srcId)}function _api_exit_game(){self.DApi.exit_game()}function _api_open_keyboard(x0,y0,x1,y1){self.DApi.open_keyboard(x0,y0,x1,y1)}function _api_play_sound(id,volume,pan,loop){self.DApi.play_sound(id,volume,pan,loop)}function _api_set_cursor(x,y){self.DApi.set_cursor(x,y)}function _api_set_volume(id,volume){self.DApi.set_volume(id,volume)}function _api_stop_sound(id){self.DApi.stop_sound(id)}function _api_websocket_closed(){return self.DApi.websocket_closed()}function _api_websocket_send(ptr,size){self.DApi.websocket_send(HEAPU8.subarray(ptr,ptr+size))}function _exit_error(err){var end=HEAPU8.indexOf(0,err);var text=String.fromCharCode.apply(null,HEAPU8.subarray(err,end));self.DApi.exit_error(text)}function _get_file_contents(path,ptr,offset,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.get_file_contents(text,HEAPU8.subarray(ptr,ptr+size),offset)}function _get_file_size(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));return self.DApi.get_file_size(text)}function _put_file_contents(path,ptr,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.put_file_contents(text,HEAPU8.slice(ptr,ptr+size))}function _remove_file(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.remove_file(text)}__ATINIT__.push({func:function(){globalCtors()}});function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}Module[\"___cxa_find_matching_catch\"]=___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1){return ___cxa_find_matching_catch(a0,a1)}function ___cxa_find_matching_catch_3(a0,a1,a2){return ___cxa_find_matching_catch(a0,a1,a2)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function ___lock(){}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var oldSize=buffer.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){buffer=wasmMemory.buffer;return true}else{return false}}catch(e){return false}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=ret}return ret}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}var asmGlobalArg={};var asmLibraryArg={\"n\":abort,\"L\":setTempRet0,\"b\":getTempRet0,\"ra\":invoke_i,\"g\":invoke_ii,\"l\":invoke_iii,\"o\":invoke_iiii,\"s\":invoke_iiiii,\"t\":invoke_iiiiii,\"K\":invoke_ji,\"u\":invoke_v,\"f\":invoke_vi,\"e\":invoke_vii,\"j\":invoke_viii,\"q\":invoke_viiii,\"r\":invoke_viiiii,\"A\":invoke_viiiiiii,\"J\":invoke_viji,\"z\":___assert_fail,\"i\":___cxa_allocate_exception,\"y\":___cxa_begin_catch,\"I\":___cxa_end_catch,\"c\":___cxa_find_matching_catch_2,\"h\":___cxa_find_matching_catch_3,\"m\":___cxa_free_exception,\"qa\":___cxa_get_exception_ptr,\"pa\":___cxa_pure_virtual,\"k\":___cxa_throw,\"oa\":___cxa_uncaught_exceptions,\"na\":___lock,\"d\":___resumeException,\"H\":___setErrNo,\"ma\":___syscall140,\"G\":___syscall146,\"la\":___syscall54,\"ka\":___syscall6,\"F\":___unlock,\"E\":_abort,\"ja\":_api_close_keyboard,\"ia\":_api_create_sound,\"ha\":_api_create_sound_float,\"ga\":_api_delete_sound,\"fa\":_api_draw_begin,\"ea\":_api_draw_belt,\"D\":_api_draw_blit,\"da\":_api_draw_clip_text,\"w\":_api_draw_end,\"ca\":_api_draw_text,\"ba\":_api_duplicate_sound,\"aa\":_api_exit_game,\"C\":_api_open_keyboard,\"B\":_api_play_sound,\"$\":_api_set_cursor,\"_\":_api_set_volume,\"Z\":_api_stop_sound,\"Y\":_api_websocket_closed,\"X\":_api_websocket_send,\"W\":_emscripten_asm_const_ii,\"V\":_emscripten_get_heap_size,\"U\":_emscripten_memcpy_big,\"T\":_emscripten_resize_heap,\"p\":_exit,\"S\":_exit_error,\"v\":_get_file_contents,\"R\":_get_file_size,\"Q\":_llvm_eh_typeid_for,\"P\":_llvm_trap,\"O\":_put_file_contents,\"N\":_remove_file,\"x\":_time,\"M\":abortOnCannotGrowMemory,\"a\":DYNAMICTOP_PTR};var asm=Module[\"asm\"](asmGlobalArg,asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=function(){return Module[\"asm\"][\"sa\"].apply(null,arguments)};var _DApi_Char=Module[\"_DApi_Char\"]=function(){return Module[\"asm\"][\"ta\"].apply(null,arguments)};var _DApi_Init=Module[\"_DApi_Init\"]=function(){return Module[\"asm\"][\"ua\"].apply(null,arguments)};var _DApi_Key=Module[\"_DApi_Key\"]=function(){return Module[\"asm\"][\"va\"].apply(null,arguments)};var _DApi_Mouse=Module[\"_DApi_Mouse\"]=function(){return Module[\"asm\"][\"wa\"].apply(null,arguments)};var _DApi_Render=Module[\"_DApi_Render\"]=function(){return Module[\"asm\"][\"xa\"].apply(null,arguments)};var _DApi_SyncText=Module[\"_DApi_SyncText\"]=function(){return Module[\"asm\"][\"ya\"].apply(null,arguments)};var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=function(){return Module[\"asm\"][\"za\"].apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=function(){return Module[\"asm\"][\"Aa\"].apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return Module[\"asm\"][\"Ba\"].apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return Module[\"asm\"][\"Ca\"].apply(null,arguments)};var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=function(){return Module[\"asm\"][\"Da\"].apply(null,arguments)};var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=function(){return Module[\"asm\"][\"Ea\"].apply(null,arguments)};var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=function(){return Module[\"asm\"][\"Fa\"].apply(null,arguments)};var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=function(){return Module[\"asm\"][\"Ga\"].apply(null,arguments)};var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=function(){return Module[\"asm\"][\"Ha\"].apply(null,arguments)};var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=function(){return Module[\"asm\"][\"Ia\"].apply(null,arguments)};var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=function(){return Module[\"asm\"][\"Ja\"].apply(null,arguments)};var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=function(){return Module[\"asm\"][\"Ka\"].apply(null,arguments)};var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=function(){return Module[\"asm\"][\"La\"].apply(null,arguments)};var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=function(){return Module[\"asm\"][\"Ma\"].apply(null,arguments)};var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=function(){return Module[\"asm\"][\"Na\"].apply(null,arguments)};var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=function(){return Module[\"asm\"][\"Oa\"].apply(null,arguments)};var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=function(){return Module[\"asm\"][\"Pa\"].apply(null,arguments)};var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=function(){return Module[\"asm\"][\"Qa\"].apply(null,arguments)};var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=function(){return Module[\"asm\"][\"Ra\"].apply(null,arguments)};var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=function(){return Module[\"asm\"][\"Sa\"].apply(null,arguments)};var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=function(){return Module[\"asm\"][\"Ta\"].apply(null,arguments)};var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=function(){return Module[\"asm\"][\"Ua\"].apply(null,arguments)};var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=function(){return Module[\"asm\"][\"Va\"].apply(null,arguments)};var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=function(){return Module[\"asm\"][\"Wa\"].apply(null,arguments)};var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=function(){return Module[\"asm\"][\"Xa\"].apply(null,arguments)};var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=function(){return Module[\"asm\"][\"Ya\"].apply(null,arguments)};var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=function(){return Module[\"asm\"][\"Za\"].apply(null,arguments)};var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=function(){return Module[\"asm\"][\"_a\"].apply(null,arguments)};var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=function(){return Module[\"asm\"][\"$a\"].apply(null,arguments)};var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=function(){return Module[\"asm\"][\"ab\"].apply(null,arguments)};var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=function(){return Module[\"asm\"][\"bb\"].apply(null,arguments)};var _free=Module[\"_free\"]=function(){return Module[\"asm\"][\"cb\"].apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return Module[\"asm\"][\"db\"].apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return Module[\"asm\"][\"eb\"].apply(null,arguments)};var globalCtors=Module[\"globalCtors\"]=function(){return Module[\"asm\"][\"ub\"].apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return Module[\"asm\"][\"vb\"].apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return Module[\"asm\"][\"wb\"].apply(null,arguments)};var dynCall_i=Module[\"dynCall_i\"]=function(){return Module[\"asm\"][\"fb\"].apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return Module[\"asm\"][\"gb\"].apply(null,arguments)};var dynCall_iii=Module[\"dynCall_iii\"]=function(){return Module[\"asm\"][\"hb\"].apply(null,arguments)};var dynCall_iiii=Module[\"dynCall_iiii\"]=function(){return Module[\"asm\"][\"ib\"].apply(null,arguments)};var dynCall_iiiii=Module[\"dynCall_iiiii\"]=function(){return Module[\"asm\"][\"jb\"].apply(null,arguments)};var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=function(){return Module[\"asm\"][\"kb\"].apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return Module[\"asm\"][\"lb\"].apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return Module[\"asm\"][\"mb\"].apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return Module[\"asm\"][\"nb\"].apply(null,arguments)};var dynCall_vii=Module[\"dynCall_vii\"]=function(){return Module[\"asm\"][\"ob\"].apply(null,arguments)};var dynCall_viii=Module[\"dynCall_viii\"]=function(){return Module[\"asm\"][\"pb\"].apply(null,arguments)};var dynCall_viiii=Module[\"dynCall_viiii\"]=function(){return Module[\"asm\"][\"qb\"].apply(null,arguments)};var dynCall_viiiii=Module[\"dynCall_viiiii\"]=function(){return Module[\"asm\"][\"rb\"].apply(null,arguments)};var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=function(){return Module[\"asm\"][\"sb\"].apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return Module[\"asm\"][\"tb\"].apply(null,arguments)};Module[\"asm\"]=asm;Module[\"then\"]=function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise(function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=function(what){reject(what)};addOnPostRun(function(){resolve(Module)})});\r\n\r\n\r\n return Diablo\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.5292efdb.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\nvar Module=typeof DiabloSpawn!==\"undefined\"?DiabloSpawn:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=function(status,toThrow){throw toThrow};Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_HAS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;read_=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);Module[\"quit\"]=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var asm2wasmImports={\"f64-rem\":function(x,y){return x%y},\"debugger\":function(){debugger}};var functionPointers=new Array(0);var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=7092928,DYNAMICTOP_PTR=1850016;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(INITIAL_TOTAL_MEMORY>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile=\"DiabloSpawn.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module[\"wasmBinary\"]){return new Uint8Array(Module[\"wasmBinary\"])}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module[\"wasmBinary\"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={\"env\":env,\"global\":{\"NaN\":NaN,Infinity:Infinity},\"global.Math\":Math,\"asm2wasm\":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!Module[\"wasmBinary\"]&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){return WebAssembly.instantiateStreaming(response,info).then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}Module[\"asm\"]=function(global,env,providedBuffer){env[\"memory\"]=wasmMemory;env[\"table\"]=wasmTable=new WebAssembly.Table({\"initial\":1114,\"maximum\":1114,\"element\":\"anyfunc\"});env[\"__memory_base\"]=1024;env[\"__table_base\"]=0;var exports=createWasm(env);return exports};var ASM_CONSTS=[function($0){self.DApi.current_save_id($0)}];function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _api_close_keyboard(){self.DApi.close_keyboard()}function _api_create_sound(id,ptr,size){self.DApi.create_sound(id,HEAPU8.slice(ptr,ptr+size))}function _api_create_sound_float(id,ptr,samples,channels,rate){self.DApi.create_sound_raw(id,HEAPF32.slice(ptr/4,ptr/4+samples*channels),samples,channels,rate)}function _api_delete_sound(id){self.DApi.delete_sound(id)}function _api_draw_begin(){self.DApi.draw_begin()}function _api_draw_belt(items){self.DApi.draw_belt(HEAP32.subarray(items/4,items/4+8))}function _api_draw_blit(x,y,w,h,ptr){self.DApi.draw_blit(x,y,w,h,HEAPU8.subarray(ptr,ptr+w*h*4))}function _api_draw_clip_text(x0,y0,x1,y1){self.DApi.draw_clip_text(x0,y0,x1,y1)}function _api_draw_end(){self.DApi.draw_end()}function _api_draw_text(x,y,ptr,color){var end=HEAPU8.indexOf(0,ptr);var text=String.fromCharCode.apply(null,HEAPU8.subarray(ptr,end));self.DApi.draw_text(x,y,text,color)}function _api_duplicate_sound(id,srcId){self.DApi.duplicate_sound(id,srcId)}function _api_exit_game(){self.DApi.exit_game()}function _api_open_keyboard(x0,y0,x1,y1){self.DApi.open_keyboard(x0,y0,x1,y1)}function _api_play_sound(id,volume,pan,loop){self.DApi.play_sound(id,volume,pan,loop)}function _api_set_cursor(x,y){self.DApi.set_cursor(x,y)}function _api_set_volume(id,volume){self.DApi.set_volume(id,volume)}function _api_stop_sound(id){self.DApi.stop_sound(id)}function _api_websocket_closed(){return self.DApi.websocket_closed()}function _api_websocket_send(ptr,size){self.DApi.websocket_send(HEAPU8.subarray(ptr,ptr+size))}function _exit_error(err){var end=HEAPU8.indexOf(0,err);var text=String.fromCharCode.apply(null,HEAPU8.subarray(err,end));self.DApi.exit_error(text)}function _get_file_contents(path,ptr,offset,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.get_file_contents(text,HEAPU8.subarray(ptr,ptr+size),offset)}function _get_file_size(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));return self.DApi.get_file_size(text)}function _put_file_contents(path,ptr,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.put_file_contents(text,HEAPU8.slice(ptr,ptr+size))}function _remove_file(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.remove_file(text)}__ATINIT__.push({func:function(){globalCtors()}});function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}Module[\"___cxa_find_matching_catch\"]=___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1){return ___cxa_find_matching_catch(a0,a1)}function ___cxa_find_matching_catch_3(a0,a1,a2){return ___cxa_find_matching_catch(a0,a1,a2)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function ___lock(){}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var oldSize=buffer.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){buffer=wasmMemory.buffer;return true}else{return false}}catch(e){return false}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=ret}return ret}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}var asmGlobalArg={};var asmLibraryArg={\"n\":abort,\"L\":setTempRet0,\"b\":getTempRet0,\"ra\":invoke_i,\"g\":invoke_ii,\"m\":invoke_iii,\"o\":invoke_iiii,\"s\":invoke_iiiii,\"t\":invoke_iiiiii,\"K\":invoke_ji,\"u\":invoke_v,\"f\":invoke_vi,\"e\":invoke_vii,\"j\":invoke_viii,\"q\":invoke_viiii,\"r\":invoke_viiiii,\"A\":invoke_viiiiiii,\"J\":invoke_viji,\"z\":___assert_fail,\"i\":___cxa_allocate_exception,\"y\":___cxa_begin_catch,\"I\":___cxa_end_catch,\"c\":___cxa_find_matching_catch_2,\"h\":___cxa_find_matching_catch_3,\"l\":___cxa_free_exception,\"qa\":___cxa_get_exception_ptr,\"pa\":___cxa_pure_virtual,\"k\":___cxa_throw,\"oa\":___cxa_uncaught_exceptions,\"na\":___lock,\"d\":___resumeException,\"H\":___setErrNo,\"ma\":___syscall140,\"G\":___syscall146,\"la\":___syscall54,\"ka\":___syscall6,\"F\":___unlock,\"E\":_abort,\"ja\":_api_close_keyboard,\"ia\":_api_create_sound,\"ha\":_api_create_sound_float,\"ga\":_api_delete_sound,\"fa\":_api_draw_begin,\"ea\":_api_draw_belt,\"D\":_api_draw_blit,\"da\":_api_draw_clip_text,\"w\":_api_draw_end,\"ca\":_api_draw_text,\"ba\":_api_duplicate_sound,\"aa\":_api_exit_game,\"C\":_api_open_keyboard,\"B\":_api_play_sound,\"$\":_api_set_cursor,\"_\":_api_set_volume,\"Z\":_api_stop_sound,\"Y\":_api_websocket_closed,\"X\":_api_websocket_send,\"W\":_emscripten_asm_const_ii,\"V\":_emscripten_get_heap_size,\"U\":_emscripten_memcpy_big,\"T\":_emscripten_resize_heap,\"p\":_exit,\"S\":_exit_error,\"v\":_get_file_contents,\"R\":_get_file_size,\"Q\":_llvm_eh_typeid_for,\"P\":_llvm_trap,\"O\":_put_file_contents,\"N\":_remove_file,\"x\":_time,\"M\":abortOnCannotGrowMemory,\"a\":DYNAMICTOP_PTR};var asm=Module[\"asm\"](asmGlobalArg,asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=function(){return Module[\"asm\"][\"sa\"].apply(null,arguments)};var _DApi_Char=Module[\"_DApi_Char\"]=function(){return Module[\"asm\"][\"ta\"].apply(null,arguments)};var _DApi_Init=Module[\"_DApi_Init\"]=function(){return Module[\"asm\"][\"ua\"].apply(null,arguments)};var _DApi_Key=Module[\"_DApi_Key\"]=function(){return Module[\"asm\"][\"va\"].apply(null,arguments)};var _DApi_Mouse=Module[\"_DApi_Mouse\"]=function(){return Module[\"asm\"][\"wa\"].apply(null,arguments)};var _DApi_Render=Module[\"_DApi_Render\"]=function(){return Module[\"asm\"][\"xa\"].apply(null,arguments)};var _DApi_SyncText=Module[\"_DApi_SyncText\"]=function(){return Module[\"asm\"][\"ya\"].apply(null,arguments)};var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=function(){return Module[\"asm\"][\"za\"].apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=function(){return Module[\"asm\"][\"Aa\"].apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return Module[\"asm\"][\"Ba\"].apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return Module[\"asm\"][\"Ca\"].apply(null,arguments)};var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=function(){return Module[\"asm\"][\"Da\"].apply(null,arguments)};var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=function(){return Module[\"asm\"][\"Ea\"].apply(null,arguments)};var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=function(){return Module[\"asm\"][\"Fa\"].apply(null,arguments)};var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=function(){return Module[\"asm\"][\"Ga\"].apply(null,arguments)};var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=function(){return Module[\"asm\"][\"Ha\"].apply(null,arguments)};var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=function(){return Module[\"asm\"][\"Ia\"].apply(null,arguments)};var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=function(){return Module[\"asm\"][\"Ja\"].apply(null,arguments)};var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=function(){return Module[\"asm\"][\"Ka\"].apply(null,arguments)};var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=function(){return Module[\"asm\"][\"La\"].apply(null,arguments)};var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=function(){return Module[\"asm\"][\"Ma\"].apply(null,arguments)};var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=function(){return Module[\"asm\"][\"Na\"].apply(null,arguments)};var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=function(){return Module[\"asm\"][\"Oa\"].apply(null,arguments)};var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=function(){return Module[\"asm\"][\"Pa\"].apply(null,arguments)};var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=function(){return Module[\"asm\"][\"Qa\"].apply(null,arguments)};var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=function(){return Module[\"asm\"][\"Ra\"].apply(null,arguments)};var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=function(){return Module[\"asm\"][\"Sa\"].apply(null,arguments)};var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=function(){return Module[\"asm\"][\"Ta\"].apply(null,arguments)};var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=function(){return Module[\"asm\"][\"Ua\"].apply(null,arguments)};var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=function(){return Module[\"asm\"][\"Va\"].apply(null,arguments)};var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=function(){return Module[\"asm\"][\"Wa\"].apply(null,arguments)};var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=function(){return Module[\"asm\"][\"Xa\"].apply(null,arguments)};var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=function(){return Module[\"asm\"][\"Ya\"].apply(null,arguments)};var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=function(){return Module[\"asm\"][\"Za\"].apply(null,arguments)};var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=function(){return Module[\"asm\"][\"_a\"].apply(null,arguments)};var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=function(){return Module[\"asm\"][\"$a\"].apply(null,arguments)};var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=function(){return Module[\"asm\"][\"ab\"].apply(null,arguments)};var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=function(){return Module[\"asm\"][\"bb\"].apply(null,arguments)};var _free=Module[\"_free\"]=function(){return Module[\"asm\"][\"cb\"].apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return Module[\"asm\"][\"db\"].apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return Module[\"asm\"][\"eb\"].apply(null,arguments)};var globalCtors=Module[\"globalCtors\"]=function(){return Module[\"asm\"][\"ub\"].apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return Module[\"asm\"][\"vb\"].apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return Module[\"asm\"][\"wb\"].apply(null,arguments)};var dynCall_i=Module[\"dynCall_i\"]=function(){return Module[\"asm\"][\"fb\"].apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return Module[\"asm\"][\"gb\"].apply(null,arguments)};var dynCall_iii=Module[\"dynCall_iii\"]=function(){return Module[\"asm\"][\"hb\"].apply(null,arguments)};var dynCall_iiii=Module[\"dynCall_iiii\"]=function(){return Module[\"asm\"][\"ib\"].apply(null,arguments)};var dynCall_iiiii=Module[\"dynCall_iiiii\"]=function(){return Module[\"asm\"][\"jb\"].apply(null,arguments)};var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=function(){return Module[\"asm\"][\"kb\"].apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return Module[\"asm\"][\"lb\"].apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return Module[\"asm\"][\"mb\"].apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return Module[\"asm\"][\"nb\"].apply(null,arguments)};var dynCall_vii=Module[\"dynCall_vii\"]=function(){return Module[\"asm\"][\"ob\"].apply(null,arguments)};var dynCall_viii=Module[\"dynCall_viii\"]=function(){return Module[\"asm\"][\"pb\"].apply(null,arguments)};var dynCall_viiii=Module[\"dynCall_viiii\"]=function(){return Module[\"asm\"][\"qb\"].apply(null,arguments)};var dynCall_viiiii=Module[\"dynCall_viiiii\"]=function(){return Module[\"asm\"][\"rb\"].apply(null,arguments)};var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=function(){return Module[\"asm\"][\"sb\"].apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return Module[\"asm\"][\"tb\"].apply(null,arguments)};Module[\"asm\"]=asm;Module[\"then\"]=function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise(function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=function(what){reject(what)};addOnPostRun(function(){resolve(Module)})});\r\n\r\n\r\n return DiabloSpawn\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nconst DiabloSize = 1316452;\r\nconst SpawnSize = 1196648;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\nlet is_spawn = false;\r\n\r\nconst ChunkSize = 1 << 20;\r\nclass RemoteFile {\r\n constructor(url) {\r\n const request = new XMLHttpRequest();\r\n request.open('HEAD', url, false);\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n }\r\n this.byteLength = parseInt(request.getResponseHeader('Content-Length'));\r\n\r\n this.url = url;\r\n\r\n this.buffer = new Uint8Array(this.byteLength);\r\n this.chunks = new Uint8Array(((this.byteLength + ChunkSize - 1) >> 20) | 0);\r\n }\r\n\r\n subarray(start, end) {\r\n let chunk0 = (start / ChunkSize) | 0;\r\n let chunk1 = ((end + ChunkSize - 1) / ChunkSize) | 0;\r\n let missing0 = chunk1, missing1 = chunk0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n if (!this.chunks[i]) {\r\n missing0 = Math.min(missing0, i);\r\n missing1 = Math.max(missing1, i);\r\n }\r\n }\r\n if (missing0 <= missing1) {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', this.url, false);\r\n request.setRequestHeader('Range', `bytes=${missing0 * ChunkSize}-${Math.min(missing1 * ChunkSize + ChunkSize - 1, this.byteLength - 1)}`);\r\n request.responseType = 'arraybuffer';\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n } else {\r\n const header = request.getResponseHeader('Content-Range');\r\n let m, start = 0;\r\n if (header && (m = header.match(/bytes (\\d+)-(\\d+)\\/(\\d+)/))) {\r\n start = parseInt(m[1]);\r\n }\r\n this.buffer.set(new Uint8Array(request.response), start);\r\n chunk0 = ((start + ChunkSize - 1) / ChunkSize) | 0;\r\n chunk1 = ((start + request.response.byteLength + ChunkSize - 1) / ChunkSize) | 0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n this.chunks[i] = 1;\r\n }\r\n }\r\n }\r\n return this.buffer.subarray(start, end);\r\n }\r\n}\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n worker.postMessage({action: \"error\", error});\r\n },\r\n\r\n exit_game() {\r\n worker.postMessage({action: \"exit\"});\r\n },\r\n current_save_id(id) {\r\n worker.postMessage({action: \"current_save\", name: id >= 0 ? (is_spawn ? `spawn${id}.sv` : `single_${id}.sv`) : null});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.byteLength));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard(...args) {\r\n worker.postMessage({action: \"keyboard\", rect: [...args]});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", rect: null});\r\n },\r\n\r\n websocket_closed() {\r\n return false;\r\n },\r\n};\r\n\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound_raw\", \"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func !== \"duplicate_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func !== \"duplicate_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nlet packetBatch = null;\r\nDApi.websocket_send = function(data) {\r\n if (packetBatch) {\r\n packetBatch.push(data.slice().buffer);\r\n } else {\r\n worker.postMessage({action: \"packet\", buffer: data});\r\n }\r\n};\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction try_api(func) {\r\n try {\r\n func();\r\n } catch (e) {\r\n if (typeof e === \"string\") {\r\n worker.postMessage({action: \"\"})\r\n }\r\n worker.postMessage({action: \"error\", error: e.toString(), stack: e.stack});\r\n }\r\n}\r\n\r\nfunction call_api(func, ...params) {\r\n try_api(() => {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n packetBatch = [];\r\n wasm[\"_\" + func](...params);\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n }\r\n if (packetBatch.length) {\r\n worker.postMessage({action: \"packetBatch\", batch: packetBatch}, packetBatch);\r\n }\r\n audioBatch = null;\r\n audioTransfer = null;\r\n packetBatch = null;\r\n });\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n is_spawn = spawn;\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n if (!mpq) {\r\n const name = (spawn ? 'spawn.mpq' : 'diabdat.mpq');\r\n if (!files.has(name)) {\r\n // This should never happen, but we do support remote loading\r\n files.set(name, new RemoteFile(`${process.env.PUBLIC_URL}/${name}`));\r\n }\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n wasm._SNet_InitWebsocket();\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => worker.postMessage({action: \"failed\", error: e.toString(), stack: e.stack}));\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n case \"packet\":\r\n try_api(() => {\r\n const ptr = wasm._DApi_AllocPacket(data.buffer.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data.buffer), ptr);\r\n });\r\n break;\r\n case \"packetBatch\":\r\n try_api(() => {\r\n for (let packet of data.batch) {\r\n const ptr = wasm._DApi_AllocPacket(packet.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(packet), ptr);\r\n }\r\n });\r\n break;\r\n default:\r\n }\r\n});\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/asset-manifest.json b/asset-manifest.json index 87cd8da..51ecd36 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -3,8 +3,8 @@ "static/js/0.44a402c1.chunk.js": "/diabloweb/static/js/0.44a402c1.chunk.js", "static/js/0.44a402c1.chunk.js.map": "/diabloweb/static/js/0.44a402c1.chunk.js.map", "main.css": "/diabloweb/static/css/main.b8d7c1d3.chunk.css", - "main.js": "/diabloweb/static/js/main.e4d27e16.chunk.js", - "main.js.map": "/diabloweb/static/js/main.e4d27e16.chunk.js.map", + "main.js": "/diabloweb/static/js/main.3717595d.chunk.js", + "main.js.map": "/diabloweb/static/js/main.3717595d.chunk.js.map", "runtime~main.js": "/diabloweb/static/js/runtime~main.bf17ce54.js", "runtime~main.js.map": "/diabloweb/static/js/runtime~main.bf17ce54.js.map", "runtime~storage.js": "/diabloweb/static/js/runtime~storage.83a78cef.js", @@ -13,14 +13,14 @@ "storage.js.map": "/diabloweb/static/js/storage.64cb2ea2.chunk.js.map", "static/js/5.79c615e0.chunk.js": "/diabloweb/static/js/5.79c615e0.chunk.js", "static/js/5.79c615e0.chunk.js.map": "/diabloweb/static/js/5.79c615e0.chunk.js.map", - "dc58eac3003d3bc6c4d7.worker.js": "/diabloweb/dc58eac3003d3bc6c4d7.worker.js", - "dc58eac3003d3bc6c4d7.worker.js.map": "/diabloweb/dc58eac3003d3bc6c4d7.worker.js.map", + "35f22eb14a4817ef6e49.worker.js": "/diabloweb/35f22eb14a4817ef6e49.worker.js", + "35f22eb14a4817ef6e49.worker.js.map": "/diabloweb/35f22eb14a4817ef6e49.worker.js.map", "index.html": "/diabloweb/index.html", - "precache-manifest.ea15834f528f5fbd3eb72f94c37d5ad3.js": "/diabloweb/precache-manifest.ea15834f528f5fbd3eb72f94c37d5ad3.js", + "precache-manifest.2b711206d6794d60f9c2f25f86873d9e.js": "/diabloweb/precache-manifest.2b711206d6794d60f9c2f25f86873d9e.js", "service-worker.js": "/diabloweb/service-worker.js", "static/css/main.b8d7c1d3.chunk.css.map": "/diabloweb/static/css/main.b8d7c1d3.chunk.css.map", - "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.ddcbe875.wasm", - "static/media/DiabloSpawn.wasm": "/diabloweb/static/media/DiabloSpawn.b4ef0fa4.wasm", + "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.85de21cc.wasm", + "static/media/DiabloSpawn.wasm": "/diabloweb/static/media/DiabloSpawn.5292efdb.wasm", "static/media/App.scss": "/diabloweb/static/media/shift.b40e4a63.svg", "storage.html": "/diabloweb/storage.html" } diff --git a/index.html b/index.html index f5b256a..a5f7de0 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -DIABLO
\ No newline at end of file +DIABLO
\ No newline at end of file diff --git a/precache-manifest.ea15834f528f5fbd3eb72f94c37d5ad3.js b/precache-manifest.2b711206d6794d60f9c2f25f86873d9e.js similarity index 69% rename from precache-manifest.ea15834f528f5fbd3eb72f94c37d5ad3.js rename to precache-manifest.2b711206d6794d60f9c2f25f86873d9e.js index bdfcf38..df3c58f 100644 --- a/precache-manifest.ea15834f528f5fbd3eb72f94c37d5ad3.js +++ b/precache-manifest.2b711206d6794d60f9c2f25f86873d9e.js @@ -1,14 +1,14 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ { - "revision": "d5626905de73cb09577b6b273c5723cc", - "url": "/diabloweb/dc58eac3003d3bc6c4d7.worker.js" + "revision": "b155ccf3123997fca6573ababa85aadf", + "url": "/diabloweb/35f22eb14a4817ef6e49.worker.js" }, { - "revision": "9fd1e59adf9213ad8049298bddbfe0e1", + "revision": "48314813e4cacb8e451bf3add3101faa", "url": "/diabloweb/index.html" }, { - "revision": "1ef858c43e99cdbc9962", + "revision": "f56d9f7e555b08fb5c4a", "url": "/diabloweb/static/css/main.b8d7c1d3.chunk.css" }, { @@ -20,8 +20,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/js/5.79c615e0.chunk.js" }, { - "revision": "1ef858c43e99cdbc9962", - "url": "/diabloweb/static/js/main.e4d27e16.chunk.js" + "revision": "f56d9f7e555b08fb5c4a", + "url": "/diabloweb/static/js/main.3717595d.chunk.js" }, { "revision": "077fe45e700d7971de0b", @@ -36,12 +36,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/js/storage.64cb2ea2.chunk.js" }, { - "revision": "ddcbe8759701d1734c9fbfcaf4751a5f", - "url": "/diabloweb/static/media/Diablo.ddcbe875.wasm" + "revision": "85de21cc3a6004d900e8f786249c3ffe", + "url": "/diabloweb/static/media/Diablo.85de21cc.wasm" }, { - "revision": "b4ef0fa47b61e4f46dd0c90739013fb5", - "url": "/diabloweb/static/media/DiabloSpawn.b4ef0fa4.wasm" + "revision": "5292efdb8a382572e665ddea5e7acea2", + "url": "/diabloweb/static/media/DiabloSpawn.5292efdb.wasm" }, { "revision": "ddc5d817712fdde5a23034ba0b719c78", diff --git a/service-worker.js b/service-worker.js index 2c2436e..214bfdd 100644 --- a/service-worker.js +++ b/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/diabloweb/precache-manifest.ea15834f528f5fbd3eb72f94c37d5ad3.js" + "/diabloweb/precache-manifest.2b711206d6794d60f9c2f25f86873d9e.js" ); self.addEventListener('message', (event) => { diff --git a/static/js/main.e4d27e16.chunk.js b/static/js/main.3717595d.chunk.js similarity index 99% rename from static/js/main.e4d27e16.chunk.js rename to static/js/main.3717595d.chunk.js index bbafbcc..7aa230c 100644 --- a/static/js/main.e4d27e16.chunk.js +++ b/static/js/main.3717595d.chunk.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{11:function(e,t,n){"use strict";n.d(t,"a",function(){return m});var r=n(5),o=n(1),a=n.n(o),i=n(2),s=n(13),c=n.n(s),u=function(){return new Promise(function(e,t){var n=!1,r=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),r.contentWindow.postMessage({method:"clear"},"*"))}),r.addEventListener("load",function(){r.contentWindow.postMessage({method:"transfer"},"*")}),r.addEventListener("error",function(){n||(n=!0,e(null))}),r.src="https://diablo.rivsoft.net/storage.html",r.style.display="none",document.body.appendChild(r),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function l(e,t){return d.apply(this,arguments)}function d(){return(d=Object(i.a)(a.a.mark(function e(t,n){var r,o,i,s;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(r=e.sent)?(o=new Blob([r],{type:"binary/octet-stream"}),i=URL.createObjectURL(o),(s=document.createElement("a")).setAttribute("href",i),s.setAttribute("download",n),document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(i)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(e){return f.apply(this,arguments)}function f(){return(f=Object(i.a)(a.a.mark(function e(t){var n,r,o,i,s,c;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,r=!1,o=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,i=e.sent[e.t0]();case 8:if(n=(s=i.next()).done){e.next=14;break}(c=s.value).match(/\.sv$/i)&&l(t,c);case 11:n=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(3),r=!0,o=e.t1;case 20:e.prev=20,e.prev=21,n||null==i.return||i.return();case 23:if(e.prev=23,!r){e.next=26;break}throw o;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[3,16,20,28],[21,,23,27]])}))).apply(this,arguments)}var p=function(e){return new Promise(function(t,n){var r=new FileReader;r.onload=function(){return t(r.result)},r.onerror=function(){return n(r.error)},r.onabort=function(){return n()},r.readAsArrayBuffer(e)})};function v(e,t,n){return w.apply(this,arguments)}function w(){return(w=Object(i.a)(a.a.mark(function e(t,n,r){var o;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,p(r);case 3:return e.t1=e.sent,o=new e.t0(e.t1),n.set(r.name.toLowerCase(),o),e.abrupt("return",t.set(r.name.toLowerCase(),o));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function m(e){return y.apply(this,arguments)}function y(){return(y=Object(i.a)(a.a.mark(function e(t){var n,o,i,s,d,f,p,w,m,y,b,g,k,x,E,M,_,C;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),o=new Map,i=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,s=e.t0.entries.call(e.t0,e.t1);case 9:if(!(i=this.buffer.byteLength)throw Error("packet too small");return this.buffer[this.pos++]}},{key:"read16",value:function(){var e=this.pos,t=this.buffer;if(e+2>t.byteLength)throw Error("packet too small");var n=t[e]|t[e+1]<<8;return this.pos+=2,n}},{key:"read32",value:function(){var e=this.pos,t=this.buffer;if(e+4>t.byteLength)throw Error("packet too small");var n=t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24;return this.pos+=4,n}},{key:"read_str",value:function(){var e=this.read8(),t=this.pos,n=this.buffer;if(t+e>n.byteLength)throw Error("packet too small");var r=String.fromCharCode.apply(String,Object(u.a)(n.subarray(t,t+e)));return this.pos+=e,r}},{key:"rest",value:function(){var e=this.buffer.subarray(this.pos);return this.pos=this.buffer.length,e}}]),e}(),j=function(){function e(t){Object(l.a)(this,e),this.buffer=new Uint8Array(t),this.pos=0}return Object(d.a)(e,[{key:"write8",value:function(e){return this.buffer[this.pos++]=e,this}},{key:"write16",value:function(e){var t=this.pos,n=this.buffer;return n[t]=e,n[t+1]=e>>8,this.pos+=2,this}},{key:"write32",value:function(e){var t=this.pos,n=this.buffer;return n[t]=e,n[t+1]=e>>8,n[t+2]=e>>16,n[t+3]=e>>24,this.pos+=4,this}},{key:"write_str",value:function(e){var t=e.length;this.write8(t);for(var n=this.pos,r=this.buffer,o=0;o=4?e.send(K.write({cookie:o.cookie,reason:I.JOIN_GAME_FULL})):(t.players[s]=n,n.id=s,e.send(R.write({cookie:o.cookie,index:s,seed:t.seed,difficulty:t.difficulty})),t.send(255,U.write({id:s})))}break;default:if(null==n.id)return;t.handle(n.id,i,a)}if(!a.done())throw Error("packet too large")}),e.on("close",function(){null!=n.id&&t.drop(n.id,1073741830)})}},{key:"send",value:function(e,t){for(var n=1;n<4;++n)e&1<>16&255,N=B>>8&255,j=255&B;t.fillStyle="rgb(".concat(P,", ").concat(N,", ").concat(j,")"),t.fillText(S,A,L+22)}}catch(I){_=!0,C=I}finally{try{M||null==T.return||T.return()}finally{if(_)throw C}}t.restore()}}e.updateBelt(s)}function ne(){return(ne=Object(M.a)(x.a.mark(function e(t,n,r,o){var a,i,s;return x.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(a=e.sent,!o||r){e.next=6;break}return e.next=6,L(t,a);case 6:return i=null,s=!1,i=t.canvas.getContext("2d",{alpha:!1}),e.next=10,new Promise(function(e,c){try{var l=new C.a,d=[],h=ee(function(e){d.push(e)});l.addEventListener("message",function(r){var o=r.data;switch(o.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=32&&1===e.key.length&&!n.showKeyboard&&n.game("DApi_Char",e.key.charCodeAt(0)),n.clearKeySel(),n.showKeyboard||(8===e.keyCode||e.keyCode>=112&&e.keyCode<=119)&&e.preventDefault())},n.onMenu=function(e){e.preventDefault()},n.onKeyUp=function(e){n.canvas&&(n.game("DApi_Key",1,n.eventMods(e),e.keyCode),n.clearKeySel())},n.onKeyboard=function(){if(n.showKeyboard){var e,t=n.keyboard.value,r=(t.match(/[\x20-\x7E]/g)||[]).join("").substring(0,15);t!==r&&(n.keyboard.value=r),n.clearKeySel();var o=Object(u.a)(Array(15)).map(function(e,t){return t0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onTouchStart=function(e){if(n.canvas&&e.target!==n.keyboard&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),r=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),r,o),n.touchMods[ae]||n.game("DApi_Mouse",1,n.touchMods[ie]?2:1,n.eventMods(e),r,o)}},n.onTouchMove=function(e){if(n.canvas&&e.target!==n.keyboard&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),r=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),r,o)}},n.onTouchEnd=function(e){if(n.canvas&&e.target!==n.keyboard){e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var r=n.mousePos(t),o=r.x,a=r.y;n.game("DApi_Mouse",2,1,n.eventMods(e),o,a),n.game("DApi_Mouse",2,2,n.eventMods(e),o,a),!n.touchMods[ie]||n.touchButton&&n.touchButton.index===ie||n.setTouchButton(ie,!1)}document.fullscreenElement||n.element.requestFullscreen()}},n.setCanvas=function(e){return n.canvas=e},n.setElement=function(e){return n.element=e},n.setKeyboard=function(e){return n.keyboard=e},n.setTouch0=n.setTouch_.bind(Object(p.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(p.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(p.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(p.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(p.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(p.a)(n),5),n}return Object(v.a)(t,e),Object(d.a)(t,[{key:"componentDidMount",value:function(){var e=this;document.addEventListener("drop",this.onDrop,!0),document.addEventListener("dragover",this.onDragOver,!0),document.addEventListener("dragenter",this.onDragEnter,!0),document.addEventListener("dragleave",this.onDragLeave,!0),this.fs.then(function(t){var n=t.files.get("spawn.mpq");n&&A.includes(n.byteLength)&&e.setState({has_spawn:!0})})}},{key:"setDropping",value:function(e){this.setState(function(t){var n=t.dropping;return{dropping:Math.max(n+e,0)}})}},{key:"onError",value:function(e,t){this.setState(function(n){return!n.error&&{error:{message:e,stack:t}}})}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard={left:"".concat((100*(e[0]-10)/640).toFixed(2),"%"),top:"".concat((100*(e[1]-10)/480).toFixed(2),"%"),width:"".concat((100*(e[2]-e[0]+20)/640).toFixed(2),"%"),height:"".concat((100*(e[3]-e[1]+20)/640).toFixed(2),"%")},this.element.classList.add("keyboard"),Object.assign(this.keyboard.style,this.showKeyboard),this.keyboard.focus()):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur(),this.keyboard.value="")}},{key:"setCursorPos",value:function(e,t){var n=this,r=this.canvas.getBoundingClientRect();this.cursorPos={x:r.left+(r.right-r.left)*e/640,y:r.top+(r.bottom-r.top)*t/480},setTimeout(function(){n.game("DApi_Mouse",0,0,0,e,t)})}},{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"onExit",value:function(){this.state.error||window.location.reload()}},{key:"setCurrentSave",value:function(e){this.saveName=e}},{key:"drawBelt",value:function(e,t){this.canvas&&this.touchButtons[e]&&(this.touchBelt[e]=t,t>=0?(this.touchButtons[e].style.display="block",this.touchCtx[e].drawImage(this.canvas,205+29*t,357,28,28,0,0,28,28)):this.touchButtons[e].style.display="none")}},{key:"updateBelt",value:function(e){if(e){for(var t=new Set,n=3,r=0;r=0&&!t.has(e[r])&&(this.drawBelt(n++,r),t.add(e[r]));for(;n<6;++n)this.drawBelt(n,-1)}else this.drawBelt(3,-1),this.drawBelt(4,-1),this.drawBelt(5,-1)}},{key:"start",value:function(e){var t=this;if(e&&e.name.match(/\.sv$/i))this.fs.then(function(t){return t.upload(e)}).then(console.log("Updated ".concat(e.name)));else{document.removeEventListener("drop",this.onDrop,!0),document.removeEventListener("dragover",this.onDragOver,!0),document.removeEventListener("dragenter",this.onDragEnter,!0),document.removeEventListener("dragleave",this.onDragLeave,!0),this.setState({dropping:0});var n=!(!e||!e.name.match(/^diabdat\.mpq$/i));b.a.event({category:"Game",action:n?"Start Retail":"Start Shareware"}),this.setState({loading:!0,retail:n}),re(this,e,!n).then(function(e){t.game=e,document.addEventListener("mousemove",t.onMouseMove,!0),document.addEventListener("mousedown",t.onMouseDown,!0),document.addEventListener("mouseup",t.onMouseUp,!0),document.addEventListener("keydown",t.onKeyDown,!0),document.addEventListener("keyup",t.onKeyUp,!0),document.addEventListener("contextmenu",t.onMenu,!0),document.addEventListener("touchstart",t.onTouchStart,{passive:!1,capture:!0}),document.addEventListener("touchmove",t.onTouchMove,{passive:!1,capture:!0}),document.addEventListener("touchend",t.onTouchEnd,{passive:!1,capture:!0}),document.addEventListener("pointerlockchange",t.onPointerLockChange),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message,e.stack)})}}},{key:"pointerLocked",value:function(){return document.pointerLockElement===this.canvas||document.mozPointerLockElement===this.canvas}},{key:"mousePos",value:function(e){var t=this.canvas.getBoundingClientRect();return this.pointerLocked()?(this.cursorPos.x=Math.max(t.left,Math.min(t.right,this.cursorPos.x+e.movementX)),this.cursorPos.y=Math.max(t.top,Math.min(t.bottom,this.cursorPos.y+e.movementY))):this.cursorPos={x:e.clientX,y:e.clientY},{x:Math.max(0,Math.min(Math.round((this.cursorPos.x-t.left)/(t.right-t.left)*640),639)),y:Math.max(0,Math.min(Math.round((this.cursorPos.y-t.top)/(t.bottom-t.top)*480),479))}}},{key:"mouseButton",value:function(e){switch(e.button){case 0:return 1;case 1:return 4;case 2:return 2;case 3:return 5;case 4:return 6;default:return 1}}},{key:"eventMods",value:function(e){return(e.shiftKey||this.touchMods[2]?1:0)+(e.ctrlKey?2:0)+(e.altKey?4:0)+(e.touches?8:0)}},{key:"clearKeySel",value:function(){if(this.showKeyboard){var e=this.keyboard.value.length;this.keyboard.setSelectionRange(e,e)}}},{key:"setTouchMod",value:function(e,t,n){if(e<3)this.touchMods[e]=t,this.touchButtons[e]&&this.touchButtons[e].classList.toggle("active",t);else if(n&&this.touchBelt[e]>=0){var r=performance.now();(!this.beltTime||r-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=r)}}},{key:"updateTouchButton",value:function(e,t){var n=this,r=null;this.touchControls||(this.touchControls=!0,this.element.classList.add("touch"));var o=this.touchButton,a=!0,i=!1,s=void 0;try{for(var c,l=function(){var t=c.value,a=t.target,i=t.identifier,s=t.clientX,l=t.clientY;if(o&&o.id===i&&n.touchButtons[o.index]===a)return e.length>1&&(o.stick=!1),o.clientX=s,o.clientY=l,n.touchCanvas=Object(u.a)(e).find(function(e){return e.identifier!==i}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var d=n.touchButtons.indexOf(a);d>=0&&!r&&(r={id:i,index:d,stick:!0,original:n.touchMods[d],clientX:s,clientY:l})},d=e[Symbol.iterator]();!(a=(c=d.next()).done);a=!0){var h=l();if("object"===typeof h)return h.v}}catch(x){i=!0,s=x}finally{try{a||null==d.return||d.return()}finally{if(i)throw s}}if(o&&!r&&t&&o.stick){var f=this.touchButtons[o.index].getBoundingClientRect(),p=o.clientX,v=o.clientY;p>=f.left&&p=f.top&&vk)y=Math.abs(b)>Math.abs(g)?b>0?37:39:g>0?38:40,this.game("DApi_Key",0,0,y),this.panPos={x:w,y:m}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:w,y:m};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(u.a)(e).find(function(e){return!r||e.identifier!==r.id}),this.touchCanvas&&(this.touchCanvas={clientX:this.touchCanvas.clientX,clientY:this.touchCanvas.clientY}),null!=this.touchCanvas}},{key:"setTouch_",value:function(e,t){this.touchButtons[e]=t}},{key:"setTouchBelt_",value:function(e,t){if(this.touchButtons[e]=t,t){var n=document.createElement("canvas");n.width=28,n.height=28,t.appendChild(n),this.touchCtx[e]=n.getContext("2d")}else this.touchCtx[e]=null}},{key:"render",value:function(){var e=this,t=this.state,n=t.started,r=t.loading,a=t.error,i=t.progress,s=t.dropping,c=t.has_spawn;return o.a.createElement("div",{className:y()("App",{touch:this.touchControls,started:n,dropping:s,keyboard:!!this.showKeyboard}),ref:this.setElement},o.a.createElement("div",{className:"touch-ui touch-mods"},o.a.createElement("div",{className:y()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),o.a.createElement("div",{className:y()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),o.a.createElement("div",{className:y()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),o.a.createElement("div",{className:"touch-ui touch-belt"},o.a.createElement("div",{className:y()("touch-button","touch-button-0"),ref:this.setTouch3}),o.a.createElement("div",{className:y()("touch-button","touch-button-1"),ref:this.setTouch4}),o.a.createElement("div",{className:y()("touch-button","touch-button-2"),ref:this.setTouch5})),o.a.createElement("div",{className:"Body"},o.a.createElement("div",{className:"inner"},!a&&o.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),o.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,ref:this.setKeyboard,spellCheck:!1,style:this.showKeyboard||{}}))),o.a.createElement("div",{className:"BodyV"},!!a&&o.a.createElement(se,{className:"error",href:oe(a,this.state.retail)},o.a.createElement("p",{className:"header"},"The following error has occurred:"),o.a.createElement("p",{className:"body"},a.message),o.a.createElement("p",{className:"footer"},"Click to create an issue on GitHub"),null!=this.saveName&&o.a.createElement("p",{className:"link",onClick:this.downloadSave},"Download save file")),!!r&&!n&&!a&&o.a.createElement("div",{className:"loading"},i&&i.text||"Loading...",null!=i&&!!i.total&&o.a.createElement("span",{className:"progressBar"},o.a.createElement("span",null,o.a.createElement("span",{style:{width:"".concat(Math.round(100*i.loaded/i.total),"%")}})))),!n&&!r&&!a&&o.a.createElement("div",{className:"start"},o.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team. The project page with information and links can be found over here ",o.a.createElement(se,{href:"https://github.com/d07RiV/diabloweb"},"https://github.com/d07RiV/diabloweb")),o.a.createElement("p",null,"If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing. The game can be purchased from ",o.a.createElement(se,{href:"https://www.gog.com/game/diablo"},"GoG"),"."),!c&&o.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),o.a.createElement("form",null,o.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),o.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),o.a.createElement("span",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"))))}}]),t}(o.a.Component);i.a.render(o.a.createElement(ce,null),document.getElementById("root")),function(e){if("serviceWorker"in navigator){if(new URL("/diabloweb",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",function(){var t="".concat("/diabloweb","/service-worker.js");s?(function(e,t){fetch(e).then(function(n){var r=n.headers.get("content-type");404===n.status||null!=r&&-1===r.indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):c(e,t)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(t,e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA")})):c(t,e)})}}()}},[[31,2,0,5]]]); -//# sourceMappingURL=main.e4d27e16.chunk.js.map \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{11:function(e,t,n){"use strict";n.d(t,"a",function(){return m});var r=n(5),o=n(1),a=n.n(o),i=n(2),s=n(13),c=n.n(s),u=function(){return new Promise(function(e,t){var n=!1,r=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),r.contentWindow.postMessage({method:"clear"},"*"))}),r.addEventListener("load",function(){r.contentWindow.postMessage({method:"transfer"},"*")}),r.addEventListener("error",function(){n||(n=!0,e(null))}),r.src="https://diablo.rivsoft.net/storage.html",r.style.display="none",document.body.appendChild(r),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function l(e,t){return d.apply(this,arguments)}function d(){return(d=Object(i.a)(a.a.mark(function e(t,n){var r,o,i,s;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(r=e.sent)?(o=new Blob([r],{type:"binary/octet-stream"}),i=URL.createObjectURL(o),(s=document.createElement("a")).setAttribute("href",i),s.setAttribute("download",n),document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(i)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(e){return f.apply(this,arguments)}function f(){return(f=Object(i.a)(a.a.mark(function e(t){var n,r,o,i,s,c;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,r=!1,o=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,i=e.sent[e.t0]();case 8:if(n=(s=i.next()).done){e.next=14;break}(c=s.value).match(/\.sv$/i)&&l(t,c);case 11:n=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(3),r=!0,o=e.t1;case 20:e.prev=20,e.prev=21,n||null==i.return||i.return();case 23:if(e.prev=23,!r){e.next=26;break}throw o;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[3,16,20,28],[21,,23,27]])}))).apply(this,arguments)}var p=function(e){return new Promise(function(t,n){var r=new FileReader;r.onload=function(){return t(r.result)},r.onerror=function(){return n(r.error)},r.onabort=function(){return n()},r.readAsArrayBuffer(e)})};function v(e,t,n){return w.apply(this,arguments)}function w(){return(w=Object(i.a)(a.a.mark(function e(t,n,r){var o;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,p(r);case 3:return e.t1=e.sent,o=new e.t0(e.t1),n.set(r.name.toLowerCase(),o),e.abrupt("return",t.set(r.name.toLowerCase(),o));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function m(e){return y.apply(this,arguments)}function y(){return(y=Object(i.a)(a.a.mark(function e(t){var n,o,i,s,d,f,p,w,m,y,b,g,k,x,E,M,_,C;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),o=new Map,i=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,s=e.t0.entries.call(e.t0,e.t1);case 9:if(!(i=this.buffer.byteLength)throw Error("packet too small");return this.buffer[this.pos++]}},{key:"read16",value:function(){var e=this.pos,t=this.buffer;if(e+2>t.byteLength)throw Error("packet too small");var n=t[e]|t[e+1]<<8;return this.pos+=2,n}},{key:"read32",value:function(){var e=this.pos,t=this.buffer;if(e+4>t.byteLength)throw Error("packet too small");var n=t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24;return this.pos+=4,n}},{key:"read_str",value:function(){var e=this.read8(),t=this.pos,n=this.buffer;if(t+e>n.byteLength)throw Error("packet too small");var r=String.fromCharCode.apply(String,Object(u.a)(n.subarray(t,t+e)));return this.pos+=e,r}},{key:"rest",value:function(){var e=this.buffer.subarray(this.pos);return this.pos=this.buffer.length,e}}]),e}(),j=function(){function e(t){Object(l.a)(this,e),this.buffer=new Uint8Array(t),this.pos=0}return Object(d.a)(e,[{key:"write8",value:function(e){return this.buffer[this.pos++]=e,this}},{key:"write16",value:function(e){var t=this.pos,n=this.buffer;return n[t]=e,n[t+1]=e>>8,this.pos+=2,this}},{key:"write32",value:function(e){var t=this.pos,n=this.buffer;return n[t]=e,n[t+1]=e>>8,n[t+2]=e>>16,n[t+3]=e>>24,this.pos+=4,this}},{key:"write_str",value:function(e){var t=e.length;this.write8(t);for(var n=this.pos,r=this.buffer,o=0;o=4?e.send(K.write({cookie:o.cookie,reason:I.JOIN_GAME_FULL})):(t.players[s]=n,n.id=s,e.send(R.write({cookie:o.cookie,index:s,seed:t.seed,difficulty:t.difficulty})),t.send(255,U.write({id:s})))}break;default:if(null==n.id)return;t.handle(n.id,i,a)}if(!a.done())throw Error("packet too large")}),e.on("close",function(){null!=n.id&&t.drop(n.id,1073741830)})}},{key:"send",value:function(e,t){for(var n=1;n<4;++n)e&1<>16&255,N=B>>8&255,j=255&B;t.fillStyle="rgb(".concat(P,", ").concat(N,", ").concat(j,")"),t.fillText(S,A,L+22)}}catch(I){_=!0,C=I}finally{try{M||null==T.return||T.return()}finally{if(_)throw C}}t.restore()}}e.updateBelt(s)}function ne(){return(ne=Object(M.a)(x.a.mark(function e(t,n,r,o){var a,i,s;return x.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(a=e.sent,!o||r){e.next=6;break}return e.next=6,L(t,a);case 6:return i=null,s=!1,i=t.canvas.getContext("2d",{alpha:!1}),e.next=10,new Promise(function(e,c){try{var l=new C.a,d=[],h=ee(function(e){d.push(e)});l.addEventListener("message",function(r){var o=r.data;switch(o.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=32&&1===e.key.length&&!n.showKeyboard&&n.game("DApi_Char",e.key.charCodeAt(0)),n.clearKeySel(),n.showKeyboard||(8===e.keyCode||e.keyCode>=112&&e.keyCode<=119)&&e.preventDefault())},n.onMenu=function(e){e.preventDefault()},n.onKeyUp=function(e){n.canvas&&(n.game("DApi_Key",1,n.eventMods(e),e.keyCode),n.clearKeySel())},n.onKeyboard=function(){if(n.showKeyboard){var e,t=n.keyboard.value,r=(t.match(/[\x20-\x7E]/g)||[]).join("").substring(0,15);t!==r&&(n.keyboard.value=r),n.clearKeySel();var o=Object(u.a)(Array(15)).map(function(e,t){return t0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onTouchStart=function(e){if(n.canvas&&e.target!==n.keyboard&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),r=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),r,o),n.touchMods[ae]||n.game("DApi_Mouse",1,n.touchMods[ie]?2:1,n.eventMods(e),r,o)}},n.onTouchMove=function(e){if(n.canvas&&e.target!==n.keyboard&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),r=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),r,o)}},n.onTouchEnd=function(e){if(n.canvas&&e.target!==n.keyboard){e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var r=n.mousePos(t),o=r.x,a=r.y;n.game("DApi_Mouse",2,1,n.eventMods(e),o,a),n.game("DApi_Mouse",2,2,n.eventMods(e),o,a),!n.touchMods[ie]||n.touchButton&&n.touchButton.index===ie||n.setTouchButton(ie,!1)}document.fullscreenElement||n.element.requestFullscreen()}},n.setCanvas=function(e){return n.canvas=e},n.setElement=function(e){return n.element=e},n.setKeyboard=function(e){return n.keyboard=e},n.setTouch0=n.setTouch_.bind(Object(p.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(p.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(p.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(p.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(p.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(p.a)(n),5),n}return Object(v.a)(t,e),Object(d.a)(t,[{key:"componentDidMount",value:function(){var e=this;document.addEventListener("drop",this.onDrop,!0),document.addEventListener("dragover",this.onDragOver,!0),document.addEventListener("dragenter",this.onDragEnter,!0),document.addEventListener("dragleave",this.onDragLeave,!0),this.fs.then(function(t){var n=t.files.get("spawn.mpq");n&&A.includes(n.byteLength)&&e.setState({has_spawn:!0})})}},{key:"setDropping",value:function(e){this.setState(function(t){var n=t.dropping;return{dropping:Math.max(n+e,0)}})}},{key:"onError",value:function(e,t){this.setState(function(n){return!n.error&&{error:{message:e,stack:t}}})}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard={left:"".concat((100*(e[0]-10)/640).toFixed(2),"%"),top:"".concat((100*(e[1]-10)/480).toFixed(2),"%"),width:"".concat((100*(e[2]-e[0]+20)/640).toFixed(2),"%"),height:"".concat((100*(e[3]-e[1]+20)/640).toFixed(2),"%")},this.element.classList.add("keyboard"),Object.assign(this.keyboard.style,this.showKeyboard),this.keyboard.focus()):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur(),this.keyboard.value="")}},{key:"setCursorPos",value:function(e,t){var n=this,r=this.canvas.getBoundingClientRect();this.cursorPos={x:r.left+(r.right-r.left)*e/640,y:r.top+(r.bottom-r.top)*t/480},setTimeout(function(){n.game("DApi_Mouse",0,0,0,e,t)})}},{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"onExit",value:function(){this.state.error||window.location.reload()}},{key:"setCurrentSave",value:function(e){this.saveName=e}},{key:"drawBelt",value:function(e,t){this.canvas&&this.touchButtons[e]&&(this.touchBelt[e]=t,t>=0?(this.touchButtons[e].style.display="block",this.touchCtx[e].drawImage(this.canvas,205+29*t,357,28,28,0,0,28,28)):this.touchButtons[e].style.display="none")}},{key:"updateBelt",value:function(e){if(e){for(var t=new Set,n=3,r=0;r=0&&!t.has(e[r])&&(this.drawBelt(n++,r),t.add(e[r]));for(;n<6;++n)this.drawBelt(n,-1)}else this.drawBelt(3,-1),this.drawBelt(4,-1),this.drawBelt(5,-1)}},{key:"start",value:function(e){var t=this;if(e&&e.name.match(/\.sv$/i))this.fs.then(function(t){return t.upload(e)}).then(console.log("Updated ".concat(e.name)));else{document.removeEventListener("drop",this.onDrop,!0),document.removeEventListener("dragover",this.onDragOver,!0),document.removeEventListener("dragenter",this.onDragEnter,!0),document.removeEventListener("dragleave",this.onDragLeave,!0),this.setState({dropping:0});var n=!(!e||!e.name.match(/^diabdat\.mpq$/i));b.a.event({category:"Game",action:n?"Start Retail":"Start Shareware"}),this.setState({loading:!0,retail:n}),re(this,e,!n).then(function(e){t.game=e,document.addEventListener("mousemove",t.onMouseMove,!0),document.addEventListener("mousedown",t.onMouseDown,!0),document.addEventListener("mouseup",t.onMouseUp,!0),document.addEventListener("keydown",t.onKeyDown,!0),document.addEventListener("keyup",t.onKeyUp,!0),document.addEventListener("contextmenu",t.onMenu,!0),document.addEventListener("touchstart",t.onTouchStart,{passive:!1,capture:!0}),document.addEventListener("touchmove",t.onTouchMove,{passive:!1,capture:!0}),document.addEventListener("touchend",t.onTouchEnd,{passive:!1,capture:!0}),document.addEventListener("pointerlockchange",t.onPointerLockChange),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message,e.stack)})}}},{key:"pointerLocked",value:function(){return document.pointerLockElement===this.canvas||document.mozPointerLockElement===this.canvas}},{key:"mousePos",value:function(e){var t=this.canvas.getBoundingClientRect();return this.pointerLocked()?(this.cursorPos.x=Math.max(t.left,Math.min(t.right,this.cursorPos.x+e.movementX)),this.cursorPos.y=Math.max(t.top,Math.min(t.bottom,this.cursorPos.y+e.movementY))):this.cursorPos={x:e.clientX,y:e.clientY},{x:Math.max(0,Math.min(Math.round((this.cursorPos.x-t.left)/(t.right-t.left)*640),639)),y:Math.max(0,Math.min(Math.round((this.cursorPos.y-t.top)/(t.bottom-t.top)*480),479))}}},{key:"mouseButton",value:function(e){switch(e.button){case 0:return 1;case 1:return 4;case 2:return 2;case 3:return 5;case 4:return 6;default:return 1}}},{key:"eventMods",value:function(e){return(e.shiftKey||this.touchMods[2]?1:0)+(e.ctrlKey?2:0)+(e.altKey?4:0)+(e.touches?8:0)}},{key:"clearKeySel",value:function(){if(this.showKeyboard){var e=this.keyboard.value.length;this.keyboard.setSelectionRange(e,e)}}},{key:"setTouchMod",value:function(e,t,n){if(e<3)this.touchMods[e]=t,this.touchButtons[e]&&this.touchButtons[e].classList.toggle("active",t);else if(n&&this.touchBelt[e]>=0){var r=performance.now();(!this.beltTime||r-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=r)}}},{key:"updateTouchButton",value:function(e,t){var n=this,r=null;this.touchControls||(this.touchControls=!0,this.element.classList.add("touch"));var o=this.touchButton,a=!0,i=!1,s=void 0;try{for(var c,l=function(){var t=c.value,a=t.target,i=t.identifier,s=t.clientX,l=t.clientY;if(o&&o.id===i&&n.touchButtons[o.index]===a)return e.length>1&&(o.stick=!1),o.clientX=s,o.clientY=l,n.touchCanvas=Object(u.a)(e).find(function(e){return e.identifier!==i}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var d=n.touchButtons.indexOf(a);d>=0&&!r&&(r={id:i,index:d,stick:!0,original:n.touchMods[d],clientX:s,clientY:l})},d=e[Symbol.iterator]();!(a=(c=d.next()).done);a=!0){var h=l();if("object"===typeof h)return h.v}}catch(x){i=!0,s=x}finally{try{a||null==d.return||d.return()}finally{if(i)throw s}}if(o&&!r&&t&&o.stick){var f=this.touchButtons[o.index].getBoundingClientRect(),p=o.clientX,v=o.clientY;p>=f.left&&p=f.top&&vk)y=Math.abs(b)>Math.abs(g)?b>0?37:39:g>0?38:40,this.game("DApi_Key",0,0,y),this.panPos={x:w,y:m}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:w,y:m};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(u.a)(e).find(function(e){return!r||e.identifier!==r.id}),this.touchCanvas&&(this.touchCanvas={clientX:this.touchCanvas.clientX,clientY:this.touchCanvas.clientY}),null!=this.touchCanvas}},{key:"setTouch_",value:function(e,t){this.touchButtons[e]=t}},{key:"setTouchBelt_",value:function(e,t){if(this.touchButtons[e]=t,t){var n=document.createElement("canvas");n.width=28,n.height=28,t.appendChild(n),this.touchCtx[e]=n.getContext("2d")}else this.touchCtx[e]=null}},{key:"render",value:function(){var e=this,t=this.state,n=t.started,r=t.loading,a=t.error,i=t.progress,s=t.dropping,c=t.has_spawn;return o.a.createElement("div",{className:y()("App",{touch:this.touchControls,started:n,dropping:s,keyboard:!!this.showKeyboard}),ref:this.setElement},o.a.createElement("div",{className:"touch-ui touch-mods"},o.a.createElement("div",{className:y()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),o.a.createElement("div",{className:y()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),o.a.createElement("div",{className:y()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),o.a.createElement("div",{className:"touch-ui touch-belt"},o.a.createElement("div",{className:y()("touch-button","touch-button-0"),ref:this.setTouch3}),o.a.createElement("div",{className:y()("touch-button","touch-button-1"),ref:this.setTouch4}),o.a.createElement("div",{className:y()("touch-button","touch-button-2"),ref:this.setTouch5})),o.a.createElement("div",{className:"Body"},o.a.createElement("div",{className:"inner"},!a&&o.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),o.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,ref:this.setKeyboard,spellCheck:!1,style:this.showKeyboard||{}}))),o.a.createElement("div",{className:"BodyV"},!!a&&o.a.createElement(se,{className:"error",href:oe(a,this.state.retail)},o.a.createElement("p",{className:"header"},"The following error has occurred:"),o.a.createElement("p",{className:"body"},a.message),o.a.createElement("p",{className:"footer"},"Click to create an issue on GitHub"),null!=this.saveName&&o.a.createElement("p",{className:"link",onClick:this.downloadSave},"Download save file")),!!r&&!n&&!a&&o.a.createElement("div",{className:"loading"},i&&i.text||"Loading...",null!=i&&!!i.total&&o.a.createElement("span",{className:"progressBar"},o.a.createElement("span",null,o.a.createElement("span",{style:{width:"".concat(Math.round(100*i.loaded/i.total),"%")}})))),!n&&!r&&!a&&o.a.createElement("div",{className:"start"},o.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team. The project page with information and links can be found over here ",o.a.createElement(se,{href:"https://github.com/d07RiV/diabloweb"},"https://github.com/d07RiV/diabloweb")),o.a.createElement("p",null,"If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing. The game can be purchased from ",o.a.createElement(se,{href:"https://www.gog.com/game/diablo"},"GoG"),"."),!c&&o.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),o.a.createElement("form",null,o.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),o.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),o.a.createElement("span",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"))))}}]),t}(o.a.Component);i.a.render(o.a.createElement(ce,null),document.getElementById("root")),function(e){if("serviceWorker"in navigator){if(new URL("/diabloweb",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",function(){var t="".concat("/diabloweb","/service-worker.js");s?(function(e,t){fetch(e).then(function(n){var r=n.headers.get("content-type");404===n.status||null!=r&&-1===r.indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):c(e,t)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(t,e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA")})):c(t,e)})}}()}},[[31,2,0,5]]]); +//# sourceMappingURL=main.3717595d.chunk.js.map \ No newline at end of file diff --git a/static/js/main.e4d27e16.chunk.js.map b/static/js/main.3717595d.chunk.js.map similarity index 99% rename from static/js/main.e4d27e16.chunk.js.map rename to static/js/main.3717595d.chunk.js.map index 81fd9f6..6bc9585 100644 --- a/static/js/main.e4d27e16.chunk.js.map +++ b/static/js/main.3717595d.chunk.js.map @@ -1 +1 @@ -{"version":3,"sources":["fs.js","api/game.worker.js","../node_modules/peerjs/dist sync","serviceWorker.js","api/sound.js","api/load_spawn.js","api/webrtc.js","api/loader.js","App.js","index.js"],"names":["importStorage","Promise","resolve","reject","done","frame","document","createElement","window","addEventListener","_ref","data","method","files","contentWindow","postMessage","src","style","display","body","appendChild","setTimeout","downloadFile","_callee","store","name","file","blob","url","lnk","C_Work_diabloweb_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default","a","wrap","_context","prev","next","get","toLowerCase","sent","Blob","type","URL","createObjectURL","setAttribute","click","removeChild","revokeObjectURL","console","error","concat","stop","downloadSaves","_callee2","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","_context2","undefined","keys","t0","Symbol","iterator","value","match","t1","return","finish","readFile","reader","FileReader","onload","result","onerror","onabort","readAsArrayBuffer","uploadFile","_callee3","_context3","Uint8Array","set","abrupt","create_fs","_x7","_create_fs","apply","this","arguments","_callee4","load","_i","_Object$entries","_ref7","_ref3","_name","_data","_files","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_ref6","_ref5","_context4","IdbKvStore","Map","Object","json","entries","call","length","C_Work_diabloweb_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","t2","DownloadFile","DownloadSaves","update","delete","remove","clear","download","upload","t3","module","exports","Worker","__webpack_require__","p","webpackEmptyContext","req","e","Error","code","id","isLocalhost","Boolean","location","hostname","registerValidSW","swUrl","config","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","state","controller","log","onUpdate","onSuccess","catch","init_sound","AudioContext","webkitAudioContext","StereoPannerNode","webkitAudioPannerNode","create_sound","duplicate_sound","play_sound","set_volume","stop_sound","delete_sound","context","sounds","create_sound_raw","channels","rate","buffer","createBuffer","i","getChannelData","subarray","gain","createGain","panner","pan","decodeAudioData","srcId","volume","loop","source","Math","pow","relVolume","createBufferSource","node","connect","destination","start","stop_all","sound","slicedToArray","err","SpawnSizes","load_spawn","_x","_x2","_load_spawn","api","fs","spawn","regenerator_default","includes","byteLength","axios","request","process","responseType","onDownloadProgress","onProgress","text","loaded","total","headers","Cache-Control","slice","buffer_reader","classCallCheck","pos","read8","String","fromCharCode","toConsumableArray","buffer_writer","write8","charCodeAt","RejectionReason","JOIN_SUCCESS","JOIN_ALREADY_IN_GAME","JOIN_GAME_NOT_FOUND","JOIN_INCORRECT_PASSWORD","JOIN_VERSION_MISMATCH","JOIN_GAME_FULL","CREATE_GAME_EXISTS","server_join_accept_packet","read","cookie","read32","index","seed","difficulty","write","write32","server_join_reject_packet","reason","server_connect_packet","_ref8","server_disconnect_packet","_ref9","server_message_packet","payload","rest","_ref10","server_turn_packet","turn","_ref11","client_info_packet","version","_ref12","client_create_game_packet","read_str","password","_ref13","write_str","client_join_game_packet","_ref14","client_leave_game_packet","client_drop_player_packet","_ref15","client_message_packet","_ref16","client_turn_packet","_ref17","PeerID","webrtc_server","_ref18","onMessage","onClose","_this","peer","Peer","on","conn","onConnect","players","myplr","floor","random","onError","off","onOpen","_this2","packet","pkt","send","handle","drop","mask","destroy","close","webrtc_client","_ref19","_this3","pending","unreg","clearTimeout","timeout","push","webrtc_open","server","client","onRender","ctx","bitmap","images","clip","belt","transferFromImageBitmap","x","y","w","h","image","createImageData","putImageData","save","font","x0","y0","x1","y1","beginPath","rect","_ref4","str","color","r","g","b","fillStyle","fillText","restore","updateBelt","audio","mpq","offscreen","canvas","getContext","alpha","worker","packetQueue","webrtc","action","func","_len","params","Array","_key","batch","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","setCursorPos","openKeyboard","stack","onExit","setCurrentSave","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","transfer","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","setInterval","load_game","do_load_game","reportLink","retail","message","searchParams","split","map","line","join","userAgent","toString","ReactGA","initialize","pageview","TOUCH_MOVE","TOUCH_RMB","Link","children","props","objectWithoutProperties","react_default","assign","target","rel","App","possibleConstructorReturn","getPrototypeOf","started","loading","dropping","has_spawn","cursorPos","touchControls","touchButtons","touchCtx","touchMods","touchBelt","onDrop","dataTransfer","items","kind","getAsFile","getDropFile","preventDefault","setState","onDragEnter","setDropping","onDragOver","isDropFile","onDragLeave","downloadSave","saveName","stopPropagation","onResize","exitPointerLock","onPointerLockChange","screen","innerHeight","height","pointerLocked","game","onMouseMove","_this$mousePos","mousePos","eventMods","onMouseDown","keyboard","element","classList","_this$mousePos2","requestPointerLock","mouseButton","onMouseUp","_this$mousePos3","onKeyDown","keyCode","key","showKeyboard","clearKeySel","onMenu","onKeyUp","onKeyboard","valid","substring","values","_","parseFile","touchButton","touchCanvas","onTouchStart","updateTouchButton","touches","_this$mousePos4","onTouchMove","_this$mousePos5","onTouchEnd","prevTc","_this$mousePos6","setTouchButton","fullscreenElement","requestFullscreen","setCanvas","setElement","setKeyboard","setTouch0","setTouch_","bind","assertThisInitialized","setTouch1","setTouch2","setTouch3","setTouchBelt_","setTouch4","setTouch5","inc","_ref2","max","left","toFixed","top","width","add","focus","blur","_this4","getBoundingClientRect","right","bottom","progress","reload","idx","slot","drawImage","used","Set","has","drawBelt","_this5","removeEventListener","event","category","passive","capture","pointerLockElement","mozPointerLockElement","min","movementX","movementY","clientX","clientY","round","button","shiftKey","ctrlKey","altKey","len","setSelectionRange","use","toggle","now","performance","beltTime","release","_this6","touchOther","btn","_loop","identifier","stick","find","t","panPos","v","indexOf","original","_ret","setTouchMod","dx","dy","step","offsetHeight","abs","_this7","_this$state","className","classNames","touch","ref","active","onChange","spellCheck","App_Link","href","onClick","htmlFor","accept","React","Component","ReactDOM","render","src_App_0","getElementById","origin","fetch","response","contentType","status","ready","unregister","checkValidServiceWorker"],"mappings":"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","file":"static/js/main.e4d27e16.chunk.js","sourcesContent":["import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n download: name => downloadFile(store, name),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n download: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"dc58eac3003d3bc6c4d7.worker.js\");\n};","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 62;","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","function no_sound() {\r\n return {\r\n create_sound: () => 0,\r\n duplicate_sound: () => 0,\r\n play_sound: () => undefined,\r\n set_volume: () => undefined,\r\n stop_sound: () => undefined,\r\n delete_sound: () => undefined,\r\n };\r\n}\r\n\r\nfunction decodeAudioData(context, buffer) {\r\n return new Promise((resolve, reject) => {\r\n context.decodeAudioData(buffer, resolve, reject);\r\n });\r\n}\r\n\r\nexport default function init_sound() {\r\n const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n const StereoPannerNode = window.StereoPannerNode || window.webkitAudioPannerNode;\r\n if (!AudioContext) {\r\n return no_sound();\r\n }\r\n\r\n let context = null;\r\n try {\r\n context = new AudioContext();\r\n } catch (e) {\r\n }\r\n const sounds = new Map();\r\n\r\n return {\r\n create_sound_raw(id, data, length, channels, rate) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = context.createBuffer(channels, length, rate);\r\n for (let i = 0; i < channels; ++i) {\r\n buffer.getChannelData(i).set(data.subarray(i * length, i * length + length));\r\n }\r\n sounds.set(id, {\r\n buffer: Promise.resolve(buffer),\r\n gain: context.createGain(),\r\n panner: StereoPannerNode && new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n create_sound(id, data) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = decodeAudioData(context, data.buffer);\r\n sounds.set(id, {\r\n buffer,\r\n gain: context.createGain(),\r\n panner: StereoPannerNode && new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n duplicate_sound(id, srcId) {\r\n if (!context) {\r\n return;\r\n }\r\n const src = sounds.get(srcId);\r\n if (!src) {\r\n return;\r\n }\r\n sounds.set(id, {\r\n buffer: src.buffer,\r\n gain: context.createGain(),\r\n panner: StereoPannerNode && new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n play_sound(id, volume, pan, loop) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n if (src.source) {\r\n src.source.then(source => source.stop());\r\n }\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n const relVolume = Math.pow(2.0, pan / 1000.0);\r\n if (src.panner) {\r\n src.panner.pan.value = 1.0 - 2.0 / (1.0 + relVolume);\r\n }\r\n src.source = src.buffer.then(buffer => {\r\n const source = context.createBufferSource();\r\n source.buffer = buffer;\r\n source.loop = !!loop;\r\n let node = source.connect(src.gain);\r\n if (src.panner) {\r\n node = node.connect(src.panner);\r\n }\r\n node.connect(context.destination);\r\n source.start();\r\n return source;\r\n });\r\n }\r\n },\r\n set_volume(id, volume) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n }\r\n },\r\n stop_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.then(source => source.stop());\r\n delete src.source;\r\n }\r\n },\r\n delete_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.then(source => source.stop());\r\n }\r\n sounds.delete(id);\r\n },\r\n\r\n stop_all() {\r\n for (let [, sound] of sounds) {\r\n if (sound.source) {\r\n sound.source.then(source => source.stop());\r\n }\r\n }\r\n sounds.clear();\r\n context = null;\r\n }\r\n };\r\n}\r\n","import axios from 'axios';\r\n\r\nconst SpawnSizes = [50274091, 25830791];\r\n\r\nexport { SpawnSizes };\r\n\r\nexport default async function load_spawn(api, fs) {\r\n let file = fs.files.get('spawn.mpq');\r\n if (file && !SpawnSizes.includes(file.byteLength)) {\r\n fs.files.delete('spawn.mpq');\r\n await fs.delete('spawn.mpq');\r\n file = null;\r\n }\r\n if (!file) {\r\n const spawn = await axios.request({\r\n url: process.env.PUBLIC_URL + '/spawn.mpq',\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: e => {\r\n if (api.onProgress) {\r\n api.onProgress({text: 'Downloading...', loaded: e.loaded, total: e.total || SpawnSizes[1]});\r\n }\r\n },\r\n headers: {\r\n 'Cache-Control': 'max-age=31536000'\r\n }\r\n });\r\n if (!SpawnSizes.includes(spawn.data.byteLength)) {\r\n throw Error(\"Invalid spawn.mpq size. Try clearing cache and refreshing the page.\");\r\n }\r\n const data = new Uint8Array(spawn.data);\r\n fs.files.set('spawn.mpq', data);\r\n fs.update('spawn.mpq', data.slice());\r\n }\r\n return fs;\r\n}\r\n","import Peer from 'peerjs';\r\n\r\nclass buffer_reader {\r\n constructor(buffer) {\r\n this.buffer = (buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer));\r\n this.pos = 0;\r\n }\r\n done() {\r\n return this.pos === this.buffer.byteLength;\r\n }\r\n read8() {\r\n if (this.pos >= this.buffer.byteLength) {\r\n throw Error('packet too small');\r\n }\r\n return this.buffer[this.pos++];\r\n }\r\n read16() {\r\n const {pos, buffer} = this;\r\n if (pos + 2 > buffer.byteLength) {\r\n throw Error('packet too small');\r\n }\r\n const result = buffer[pos] | (buffer[pos + 1] << 8);\r\n this.pos += 2;\r\n return result;\r\n }\r\n read32() {\r\n const {pos, buffer} = this;\r\n if (pos + 4 > buffer.byteLength) {\r\n throw Error('packet too small');\r\n }\r\n const result = buffer[pos] | (buffer[pos + 1] << 8) | (buffer[pos + 2] << 16) | (buffer[pos + 3] << 24);\r\n this.pos += 4;\r\n return result;\r\n }\r\n read_str() {\r\n const length = this.read8();\r\n const {pos, buffer} = this;\r\n if (pos + length > buffer.byteLength) {\r\n throw Error('packet too small');\r\n }\r\n const result = String.fromCharCode(...buffer.subarray(pos, pos + length));\r\n this.pos += length;\r\n return result;\r\n }\r\n rest() {\r\n const result = this.buffer.subarray(this.pos);\r\n this.pos = this.buffer.length;\r\n return result;\r\n }\r\n}\r\nclass buffer_writer {\r\n constructor(length) {\r\n this.buffer = new Uint8Array(length);\r\n this.pos = 0;\r\n }\r\n get result() {\r\n return this.buffer.buffer;\r\n }\r\n write8(value) {\r\n this.buffer[this.pos++] = value;\r\n return this;\r\n }\r\n write16(value) {\r\n const {pos, buffer} = this;\r\n buffer[pos] = value;\r\n buffer[pos + 1] = value >> 8;\r\n this.pos += 2;\r\n return this;\r\n }\r\n write32(value) {\r\n const {pos, buffer} = this;\r\n buffer[pos] = value;\r\n buffer[pos + 1] = value >> 8;\r\n buffer[pos + 2] = value >> 16;\r\n buffer[pos + 3] = value >> 24;\r\n this.pos += 4;\r\n return this;\r\n }\r\n write_str(value) {\r\n const length = value.length;\r\n this.write8(length);\r\n const {pos, buffer} = this;\r\n for (let i = 0; i < length; ++i) {\r\n buffer[pos + i] = value.charCodeAt(i);\r\n }\r\n this.pos += length;\r\n return this;\r\n }\r\n rest(value) {\r\n this.buffer.set(value, this.pos);\r\n return this;\r\n }\r\n}\r\n\r\nconst RejectionReason = {\r\n JOIN_SUCCESS: 0x00,\r\n JOIN_ALREADY_IN_GAME: 0x01,\r\n JOIN_GAME_NOT_FOUND: 0x02,\r\n JOIN_INCORRECT_PASSWORD: 0x03,\r\n JOIN_VERSION_MISMATCH: 0x04,\r\n JOIN_GAME_FULL: 0x05,\r\n CREATE_GAME_EXISTS: 0x06,\r\n};\r\n\r\nconst server_info_packet = {\r\n code: 0x32,\r\n read: reader => ({version: reader.read32()}),\r\n write: ({version}) => new buffer_writer(5).write8(server_info_packet.code).write32(version).result,\r\n};\r\nconst server_game_list_packet = {\r\n code: 0x21,\r\n read: reader => {\r\n const count = reader.read8();\r\n const games = [];\r\n for (let i = 0; i < count; ++i) {\r\n games.push({type: reader.read32(), name: reader.read_str()});\r\n }\r\n return {games};\r\n },\r\n write: ({games}) => {\r\n const writer = new buffer_writer(games.reduce((sum, {name}) => sum + 5 + name.length, 2));\r\n writer.write8(server_game_list_packet.code);\r\n writer.write8(games.length);\r\n for (let {code, name} of games) {\r\n writer.write32(code);\r\n writer.write_str(name);\r\n }\r\n return writer.result;\r\n },\r\n};\r\nconst server_join_accept_packet = {\r\n code: 0x12,\r\n read: reader => ({cookie: reader.read32(), index: reader.read8(), seed: reader.read32(), difficulty: reader.read32()}),\r\n write: ({cookie, index, seed, difficulty}) => new buffer_writer(14).write8(server_join_accept_packet.code).write32(cookie).write8(index).write32(seed).write32(difficulty).result,\r\n};\r\nconst server_join_reject_packet = {\r\n code: 0x15,\r\n read: reader => ({cookie: reader.read32(), reason: reader.read8()}),\r\n write: ({cookie, reason}) => new buffer_writer(6).write8(server_join_reject_packet.code).write32(cookie).write8(reason).result,\r\n};\r\nconst server_connect_packet = {\r\n code: 0x13,\r\n read: reader => ({id: reader.read8()}),\r\n write: ({id}) => new buffer_writer(2).write8(server_connect_packet.code).write8(id).result,\r\n};\r\nconst server_disconnect_packet = {\r\n code: 0x14,\r\n read: reader => ({id: reader.read8(), reason: reader.read32()}),\r\n write: ({id, reason}) => new buffer_writer(6).write8(server_disconnect_packet.code).write8(id).write32(reason).result,\r\n};\r\nconst server_message_packet = {\r\n code: 0x01,\r\n read: reader => ({id: reader.read8(), payload: reader.rest()}),\r\n write: ({id, payload}) => new buffer_writer(2 + payload.byteLength).write8(server_message_packet.code).write8(id).rest(payload).result,\r\n};\r\nconst server_turn_packet = {\r\n code: 0x02,\r\n read: reader => ({id: reader.read8(), turn: reader.read32()}),\r\n write: ({id, turn}) => new buffer_writer(6).write8(server_turn_packet.code).write8(id).write32(turn).result,\r\n};\r\n\r\nconst client_info_packet = {\r\n code: 0x31,\r\n read: reader => ({version: reader.read32()}),\r\n write: ({version}) => new buffer_writer(5).write8(client_info_packet.code).write32(version).result,\r\n};\r\nconst client_game_list_packet = {\r\n code: 0x21,\r\n read: () => ({}),\r\n write: () => new buffer_writer(1).write8(client_game_list_packet.code).result,\r\n};\r\nconst client_create_game_packet = {\r\n code: 0x22,\r\n read: reader => ({cookie: reader.read32(), name: reader.read_str(), password: reader.read_str(), difficulty: reader.read32()}),\r\n write: ({cookie, name, password, difficulty}) => new buffer_writer(11 + name.length + password.length)\r\n .write8(client_create_game_packet.code).write32(cookie).write_str(name).write_str(password).write32(difficulty).result,\r\n};\r\nconst client_join_game_packet = {\r\n code: 0x23,\r\n read: reader => ({cookie: reader.read32(), name: reader.read_str(), password: reader.read_str()}),\r\n write: ({cookie, name, password}) => new buffer_writer(7 + name.length + password.length)\r\n .write8(client_join_game_packet.code).write32(cookie).write_str(name).write_str(password).result,\r\n};\r\nconst client_leave_game_packet = {\r\n code: 0x24,\r\n read: () => ({}),\r\n write: () => new buffer_writer(1).write8(client_leave_game_packet.code).result,\r\n};\r\nconst client_drop_player_packet = {\r\n code: 0x03,\r\n read: reader => ({id: reader.read8(), reason: reader.read32()}),\r\n write: ({id, reason}) => new buffer_writer(6).write8(client_drop_player_packet.code).write8(id).write32(reason).result,\r\n};\r\nconst client_message_packet = {\r\n code: 0x01,\r\n read: reader => ({id: reader.read8(), payload: reader.rest()}),\r\n write: ({id, payload}) => new buffer_writer(2 + payload.byteLength).write8(client_message_packet.code).write8(id).rest(payload).result,\r\n};\r\nconst client_turn_packet = {\r\n code: 0x02,\r\n read: reader => ({turn: reader.read32()}),\r\n write: ({turn}) => new buffer_writer(5).write8(client_turn_packet.code).write32(turn).result,\r\n};\r\n\r\nconst PeerID = name => `diabloweb_${name}`;\r\nconst MAX_PLRS = 4;\r\n\r\nclass webrtc_server {\r\n constructor(version, {cookie, name, password, difficulty}, onMessage, onClose) {\r\n this.version = version;\r\n this.name = name;\r\n this.password = password;\r\n this.difficulty = difficulty;\r\n this.onMessage = onMessage;\r\n this.onClose = onClose;\r\n\r\n this.peer = new Peer(PeerID(name));\r\n this.peer.on('connection', conn => this.onConnect(conn));\r\n this.players = [];\r\n this.myplr = 0;\r\n\r\n this.seed = Math.floor(Math.random() * Math.pow(2, 32));\r\n\r\n const onError = () => {\r\n onMessage(server_join_reject_packet.write({cookie, reason: RejectionReason.CREATE_GAME_EXISTS}));\r\n onClose();\r\n this.peer.off('error', onError);\r\n this.peer.off('open', onOpen);\r\n };\r\n const onOpen = () => {\r\n onMessage(server_join_accept_packet.write({cookie, index: 0, seed: this.seed, difficulty}));\r\n onMessage(server_connect_packet.write({id: 0}));\r\n this.peer.off('error', onError);\r\n this.peer.off('open', onOpen);\r\n };\r\n this.peer.on('error', onError);\r\n this.peer.on('open', onOpen);\r\n }\r\n\r\n onConnect(conn) {\r\n const peer = {conn};\r\n conn.on('data', packet => {\r\n const reader = new buffer_reader(packet);\r\n const code = reader.read8();\r\n let pkt;\r\n switch (code) {\r\n case client_info_packet.code:\r\n pkt = client_info_packet.read(reader);\r\n peer.version = pkt.version;\r\n break;\r\n case client_join_game_packet.code:\r\n pkt = client_join_game_packet.read(reader);\r\n if (peer.version !== this.version) {\r\n conn.send(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_VERSION_MISMATCH}));\r\n } else if (pkt.name !== this.name) {\r\n conn.send(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_GAME_NOT_FOUND}));\r\n } else if (pkt.password !== this.password) {\r\n conn.send(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_INCORRECT_PASSWORD}));\r\n } else {\r\n let i = 1;\r\n while (i < MAX_PLRS && this.players[i]) {\r\n ++i;\r\n }\r\n if (i >= MAX_PLRS) {\r\n conn.send(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_GAME_FULL})); \r\n } else {\r\n this.players[i] = peer;\r\n peer.id = i;\r\n conn.send(server_join_accept_packet.write({cookie: pkt.cookie, index: i, seed: this.seed, difficulty: this.difficulty}));\r\n this.send(0xFF, server_connect_packet.write({id: i}));\r\n }\r\n }\r\n break;\r\n default:\r\n if (peer.id != null) {\r\n this.handle(peer.id, code, reader);\r\n } else {\r\n return;\r\n }\r\n }\r\n if (!reader.done()) {\r\n throw Error('packet too large');\r\n }\r\n });\r\n conn.on('close', () => {\r\n if (peer.id != null) {\r\n this.drop(peer.id, 0x40000006);\r\n }\r\n });\r\n }\r\n\r\n send(mask, pkt) {\r\n for (let i = 1; i < MAX_PLRS; ++i) {\r\n if ((mask & (1 << i)) && this.players[i]) {\r\n if (this.players[i].conn) {\r\n this.players[i].conn.send(pkt);\r\n }\r\n }\r\n }\r\n // self last since it will destroy the buffer\r\n if (mask & 1) {\r\n this.onMessage(pkt);\r\n }\r\n }\r\n\r\n drop(id, reason) {\r\n if (id === 0) {\r\n for (let i = 1; i < MAX_PLRS; ++i) {\r\n this.drop(i, 0x40000006);\r\n }\r\n this.onMessage(server_disconnect_packet.write({id, reason}));\r\n this.peer.destroy();\r\n this.onClose();\r\n } else if (this.players[id]) {\r\n this.send(0xFF, server_disconnect_packet.write({id, reason}));\r\n this.players[id].id = null;\r\n if (this.players[id].conn) {\r\n this.players[id].conn.close();\r\n }\r\n this.players[id] = null;\r\n }\r\n }\r\n\r\n handle(id, code, reader) {\r\n let pkt;\r\n switch (code) {\r\n case client_leave_game_packet.code:\r\n pkt = client_leave_game_packet.read(reader);\r\n this.drop(id, 3);\r\n break;\r\n case client_drop_player_packet.code:\r\n pkt = client_drop_player_packet.read(reader);\r\n this.drop(pkt.id, pkt.reason);\r\n break;\r\n case client_message_packet.code:\r\n pkt = client_message_packet.read(reader);\r\n this.send(pkt.id === 0xFF ? ~(1 << id) : (1 << pkt.id), server_message_packet.write({id, payload: pkt.payload}));\r\n break;\r\n case client_turn_packet.code:\r\n pkt = client_turn_packet.read(reader);\r\n this.send(~(1 << id), server_turn_packet.write({id, turn: pkt.turn}));\r\n break;\r\n default:\r\n throw Error(`invalid packet ${code}`);\r\n }\r\n }\r\n}\r\n\r\nclass webrtc_client {\r\n pending = [];\r\n\r\n constructor(version, {cookie, name, password}, onMessage, onClose) {\r\n this.peer = new Peer();\r\n this.conn = this.peer.connect(PeerID(name));\r\n\r\n const unreg = () => {\r\n this.peer.off('error', onError);\r\n this.conn.off('error', onError);\r\n this.conn.off('open', onOpen);\r\n clearTimeout(timeout);\r\n };\r\n const onError = () => {\r\n onMessage(server_join_reject_packet.write({cookie, reason: RejectionReason.JOIN_GAME_NOT_FOUND}));\r\n onClose();\r\n unreg();\r\n };\r\n const onOpen = () => {\r\n unreg();\r\n this.conn.send(client_info_packet.write({version}));\r\n this.conn.send(client_join_game_packet.write({cookie, name, password}));\r\n for (let pkt of this.pending) {\r\n this.conn.send(pkt);\r\n }\r\n this.pending = null;\r\n };\r\n const timeout = setTimeout(onError, 5000);\r\n this.peer.on('error', onError);\r\n this.conn.on('error', onError);\r\n this.conn.on('open', onOpen);\r\n\r\n this.conn.on('data', data => {\r\n const reader = new buffer_reader(data);\r\n const code = reader.read8();\r\n let pkt;\r\n switch (code) {\r\n case server_join_accept_packet.code:\r\n pkt = server_join_accept_packet.read(reader);\r\n this.myplr = pkt.index;\r\n break;\r\n case server_join_reject_packet.code:\r\n onClose();\r\n break;\r\n case server_disconnect_packet.code:\r\n pkt = server_disconnect_packet.read(reader);\r\n if (pkt.id === 'myplr') {\r\n onClose();\r\n }\r\n break;\r\n default:\r\n }\r\n onMessage(data);\r\n });\r\n this.conn.on('close', data => {\r\n onClose();\r\n });\r\n }\r\n\r\n send(packet) {\r\n if (this.pending) {\r\n this.pending.push(packet);\r\n } else {\r\n this.conn.send(packet);\r\n }\r\n }\r\n}\r\n\r\nexport default function webrtc_open(onMessage) {\r\n let server = null, client = null;\r\n\r\n let version = 0;\r\n\r\n return {\r\n send: function(packet) {\r\n const reader = new buffer_reader(packet);\r\n const code = reader.read8();\r\n let pkt;\r\n switch (code) {\r\n case client_info_packet.code:\r\n pkt = client_info_packet.read(reader);\r\n version = pkt.version;\r\n break;\r\n case client_create_game_packet.code:\r\n pkt = client_create_game_packet.read(reader);\r\n if (server || client) {\r\n onMessage(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_ALREADY_IN_GAME}));\r\n } else {\r\n server = new webrtc_server(version, pkt, onMessage, () => server = null);\r\n }\r\n break;\r\n case client_join_game_packet.code:\r\n pkt = client_join_game_packet.read(reader);\r\n if (server || client) {\r\n onMessage(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_ALREADY_IN_GAME}));\r\n } else {\r\n client = new webrtc_client(version, pkt, onMessage, () => client = null);\r\n }\r\n break;\r\n default:\r\n if (server) {\r\n server.handle(0, code, reader);\r\n if (pkt === client_leave_game_packet.code) {\r\n server = null;\r\n }\r\n } else if (client) {\r\n client.send(packet);\r\n if (pkt === client_leave_game_packet.code) {\r\n client = null;\r\n }\r\n return;\r\n } else {\r\n throw Error(`invalid packet ${code}`);\r\n }\r\n }\r\n if (!reader.done()) {\r\n throw Error('packet too large');\r\n }\r\n },\r\n };\r\n}\r\n","import Worker from './game.worker.js';\r\nimport init_sound from './sound';\r\nimport load_spawn from './load_spawn';\r\nimport webrtc_open from './webrtc';\r\n\r\nfunction onRender(api, ctx, {bitmap, images, text, clip, belt}) {\r\n if (bitmap) {\r\n ctx.transferFromImageBitmap(bitmap);\r\n } else {\r\n for (let {x, y, w, h, data} of images) {\r\n const image = ctx.createImageData(w, h);\r\n image.data.set(data);\r\n ctx.putImageData(image, x, y);\r\n }\r\n if (text.length) {\r\n ctx.save();\r\n ctx.font = 'bold 13px Times New Roman';\r\n if (clip) {\r\n const {x0, y0, x1, y1} = clip;\r\n ctx.beginPath();\r\n ctx.rect(x0, y0, x1 - x0, y1 - y0);\r\n ctx.clip();\r\n }\r\n for (let {x, y, text: str, color} of text) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n ctx.fillText(str, x, y + 22);\r\n }\r\n ctx.restore();\r\n }\r\n }\r\n\r\n api.updateBelt(belt);\r\n}\r\n\r\nfunction testOffscreen() {\r\n return false;\r\n // This works but I couldn't see any performance difference, and support for 2D canvas in workers is very poor.\r\n // In this mode, instead of sending a batch of areas to draw back to the main thread, the worker does all drawing on its own and sends a complete bitmap object back.\r\n // However, this effectively clears the worker's canvas, so we need to redraw the whole frame every time, which defeats the performance gained from reduced copying.\r\n /*try {\r\n const canvas = document.createElement(\"canvas\");\r\n const offscreen = canvas.transferControlToOffscreen();\r\n const context = offscreen.getContext(\"2d\");\r\n return context != null;\r\n } catch (e) {\r\n return false;\r\n }*/\r\n}\r\n\r\nasync function do_load_game(api, audio, mpq, spawn) {\r\n const fs = await api.fs;\r\n if (spawn && !mpq) {\r\n await load_spawn(api, fs);\r\n }\r\n\r\n let context = null, offscreen = false;\r\n if (testOffscreen()) {\r\n context = api.canvas.getContext(\"bitmaprenderer\");\r\n offscreen = true;\r\n } else {\r\n context = api.canvas.getContext(\"2d\", {alpha: false});\r\n }\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n const worker = new Worker();\r\n\r\n let packetQueue = [];\r\n const webrtc = webrtc_open(data => {\r\n packetQueue.push(data);\r\n });\r\n\r\n worker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"loaded\":\r\n resolve((func, ...params) => worker.postMessage({action: \"event\", func, params}));\r\n break;\r\n case \"render\":\r\n onRender(api, context, data.batch);\r\n break;\r\n case \"audio\":\r\n audio[data.func](...data.params);\r\n break;\r\n case \"audioBatch\":\r\n for (let {func, params} of data.batch) {\r\n audio[func](...params);\r\n }\r\n break;\r\n case \"fs\":\r\n fs[data.func](...data.params);\r\n break;\r\n case \"cursor\":\r\n api.setCursorPos(data.x, data.y);\r\n break;\r\n case \"keyboard\":\r\n api.openKeyboard(data.rect);\r\n break;\r\n case \"error\":\r\n audio.stop_all();\r\n api.onError(data.error, data.stack);\r\n break;\r\n case \"failed\":\r\n reject(Error(data.stack || data.error));\r\n break;\r\n case \"progress\":\r\n api.onProgress({text: data.text, loaded: data.loaded, total: data.total});\r\n break;\r\n case \"exit\":\r\n api.onExit();\r\n break;\r\n case \"current_save\":\r\n api.setCurrentSave(data.name);\r\n break;\r\n case \"packet\":\r\n webrtc.send(data.buffer);\r\n break;\r\n case \"packetBatch\":\r\n for (let packet of data.batch) {\r\n webrtc.send(packet);\r\n }\r\n break;\r\n default:\r\n }\r\n }); \r\n const transfer= [];\r\n for (let [, file] of fs.files) {\r\n transfer.push(file.buffer);\r\n }\r\n worker.postMessage({action: \"init\", files: fs.files, mpq, spawn, offscreen}, transfer);\r\n setInterval(() => {\r\n if (packetQueue.length) {\r\n worker.postMessage({action: \"packetBatch\", batch: packetQueue}, packetQueue);\r\n packetQueue.length = 0;\r\n }\r\n }, 20);\r\n delete fs.files;\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n}\r\n\r\nexport default function load_game(api, mpq, spawn) {\r\n const audio = init_sound();\r\n return do_load_game(api, audio, mpq, spawn);\r\n}\r\n","import React from 'react';\r\nimport './App.scss';\r\nimport classNames from 'classnames';\r\nimport ReactGA from 'react-ga';\r\n\r\nimport create_fs from './fs';\r\nimport load_game from './api/loader';\r\nimport { SpawnSizes } from './api/load_spawn';\r\n\r\nimport Peer from 'peerjs';\r\n\r\nwindow.Peer = Peer;\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n ReactGA.initialize('UA-43123589-6');\r\n ReactGA.pageview('/');\r\n}\r\n\r\nfunction reportLink(e, retail) {\r\n const message = e.stack || e.message || \"Unknown error\";\r\n const url = new URL(\"https://github.com/d07RiV/diabloweb/issues/new\");\r\n url.searchParams.set(\"body\",\r\n`**Description:**\r\n[Please describe what you were doing before the error occurred]\r\n\r\n**App version:**\r\nDiabloWeb ${process.env.VERSION} (${retail ? 'Retail' : 'Shareware'})\r\n\r\n**Error message:**\r\n \r\n${message.split(\"\\n\").map(line => \" \" + line).join(\"\\n\")}\r\n\r\n**User agent:**\r\n\r\n ${navigator.userAgent}\r\n\r\n**Save file:**\r\n[Please attach the save file, if applicable. The error box should have a link to download the current save you were playing; alternatively, you can open dev console on the game page (F12) and type in ${\"`DownloadSaves()`\"}]\r\n`);\r\n return url.toString();\r\n}\r\n\r\nfunction isDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return true;\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return e.dataTransfer.items[i].getAsFile();\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return e.dataTransfer.files[0];\r\n }\r\n}\r\n\r\nconst TOUCH_MOVE = 0;\r\nconst TOUCH_RMB = 1;\r\nconst TOUCH_SHIFT = 2;\r\n\r\nconst Link = ({children, ...props}) => {children};\r\n\r\nclass App extends React.Component {\r\n files = new Map();\r\n state = {started: false, loading: false, dropping: 0, has_spawn: false};\r\n cursorPos = {x: 0, y: 0};\r\n\r\n touchControls = false;\r\n touchButtons = [null, null, null, null, null, null];\r\n touchCtx = [null, null, null, null, null, null];\r\n touchMods = [false, false, false, false, false, false];\r\n touchBelt = [-1, -1, -1, -1, -1, -1];\r\n\r\n fs = create_fs(true);\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setTouch0 = this.setTouch_.bind(this, 0);\r\n this.setTouch1 = this.setTouch_.bind(this, 1);\r\n this.setTouch2 = this.setTouch_.bind(this, 2);\r\n this.setTouch3 = this.setTouchBelt_.bind(this, 3);\r\n this.setTouch4 = this.setTouchBelt_.bind(this, 4);\r\n this.setTouch5 = this.setTouchBelt_.bind(this, 5);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"drop\", this.onDrop, true);\r\n document.addEventListener(\"dragover\", this.onDragOver, true);\r\n document.addEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.addEventListener(\"dragleave\", this.onDragLeave, true);\r\n\r\n this.fs.then(fs => {\r\n const spawn = fs.files.get('spawn.mpq');\r\n if (spawn && SpawnSizes.includes(spawn.byteLength)) {\r\n this.setState({has_spawn: true});\r\n }\r\n });\r\n }\r\n\r\n onDrop = e => {\r\n const file = getDropFile(e);\r\n if (file) {\r\n e.preventDefault();\r\n this.start(file);\r\n }\r\n this.setState({dropping: 0});\r\n }\r\n onDragEnter = e => {\r\n e.preventDefault();\r\n this.setDropping(1);\r\n }\r\n onDragOver = e => {\r\n if (isDropFile(e)) {\r\n e.preventDefault();\r\n }\r\n }\r\n onDragLeave = e => {\r\n this.setDropping(-1);\r\n }\r\n setDropping(inc) {\r\n this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));\r\n }\r\n\r\n onError(message, stack) {\r\n this.setState(({error}) => !error && {error: {message, stack}});\r\n }\r\n\r\n openKeyboard(rect) {\r\n if (rect) {\r\n this.showKeyboard = {\r\n left: `${(100 * (rect[0] - 10) / 640).toFixed(2)}%`,\r\n top: `${(100 * (rect[1] - 10) / 480).toFixed(2)}%`,\r\n width: `${(100 * (rect[2] - rect[0] + 20) / 640).toFixed(2)}%`,\r\n height: `${(100 * (rect[3] - rect[1] + 20) / 640).toFixed(2)}%`,\r\n };\r\n this.element.classList.add(\"keyboard\");\r\n Object.assign(this.keyboard.style, this.showKeyboard);\r\n this.keyboard.focus();\r\n } else {\r\n this.showKeyboard = false;\r\n this.element.classList.remove(\"keyboard\");\r\n this.keyboard.blur();\r\n this.keyboard.value = \"\";\r\n }\r\n }\r\n\r\n setCursorPos(x, y) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n this.cursorPos = {\r\n x: rect.left + (rect.right - rect.left) * x / 640,\r\n y: rect.top + (rect.bottom - rect.top) * y / 480,\r\n };\r\n setTimeout(() => {\r\n this.game(\"DApi_Mouse\", 0, 0, 0, x, y);\r\n });\r\n }\r\n\r\n onProgress(progress) {\r\n this.setState({progress});\r\n }\r\n\r\n onExit() {\r\n if (!this.state.error) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n setCurrentSave(name) {\r\n this.saveName = name;\r\n }\r\n downloadSave = e => {\r\n this.fs.then(fs => this.saveName && fs.download(this.saveName));\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n drawBelt(idx, slot) {\r\n if (!this.canvas) return;\r\n if (!this.touchButtons[idx]) {\r\n return;\r\n }\r\n this.touchBelt[idx] = slot;\r\n if (slot >= 0) {\r\n this.touchButtons[idx].style.display = \"block\";\r\n this.touchCtx[idx].drawImage(this.canvas, 205 + 29 * slot, 357, 28, 28, 0, 0, 28, 28);\r\n } else {\r\n this.touchButtons[idx].style.display = \"none\";\r\n }\r\n }\r\n\r\n updateBelt(belt) {\r\n if (belt) {\r\n const used = new Set();\r\n let pos = 3;\r\n for (let i = 0; i < belt.length && pos < 6; ++i) {\r\n if (belt[i] >= 0 && !used.has(belt[i])) {\r\n this.drawBelt(pos++, i);\r\n used.add(belt[i]);\r\n }\r\n }\r\n for (; pos < 6; ++pos) {\r\n this.drawBelt(pos, -1);\r\n }\r\n } else {\r\n this.drawBelt(3, -1);\r\n this.drawBelt(4, -1);\r\n this.drawBelt(5, -1);\r\n }\r\n }\r\n\r\n start(file) {\r\n if (file && file.name.match(/\\.sv$/i)) {\r\n this.fs.then(fs => fs.upload(file)).then(console.log(`Updated ${file.name}`));\r\n return;\r\n }\r\n\r\n document.removeEventListener(\"drop\", this.onDrop, true);\r\n document.removeEventListener(\"dragover\", this.onDragOver, true);\r\n document.removeEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.removeEventListener(\"dragleave\", this.onDragLeave, true);\r\n this.setState({dropping: 0});\r\n\r\n const retail = !!(file && file.name.match(/^diabdat\\.mpq$/i));\r\n if (process.env.NODE_ENV === 'production') {\r\n ReactGA.event({\r\n category: 'Game',\r\n action: retail ? 'Start Retail' : 'Start Shareware',\r\n });\r\n }\r\n\r\n this.setState({loading: true, retail});\r\n\r\n load_game(this, file, !retail).then(game => {\r\n this.game = game;\r\n\r\n document.addEventListener('mousemove', this.onMouseMove, true);\r\n document.addEventListener('mousedown', this.onMouseDown, true);\r\n document.addEventListener('mouseup', this.onMouseUp, true);\r\n document.addEventListener('keydown', this.onKeyDown, true);\r\n document.addEventListener('keyup', this.onKeyUp, true);\r\n document.addEventListener('contextmenu', this.onMenu, true);\r\n\r\n document.addEventListener('touchstart', this.onTouchStart, {passive: false, capture: true});\r\n document.addEventListener('touchmove', this.onTouchMove, {passive: false, capture: true});\r\n document.addEventListener('touchend', this.onTouchEnd, {passive: false, capture: true});\r\n\r\n document.addEventListener('pointerlockchange', this.onPointerLockChange);\r\n window.addEventListener('resize', this.onResize);\r\n\r\n this.setState({started: true});\r\n }, e => this.onError(e.message, e.stack));\r\n }\r\n\r\n pointerLocked() {\r\n return document.pointerLockElement === this.canvas || document.mozPointerLockElement === this.canvas;\r\n }\r\n\r\n mousePos(e) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n if (this.pointerLocked()) {\r\n this.cursorPos.x = Math.max(rect.left, Math.min(rect.right, this.cursorPos.x + e.movementX));\r\n this.cursorPos.y = Math.max(rect.top, Math.min(rect.bottom, this.cursorPos.y + e.movementY));\r\n } else {\r\n this.cursorPos = {x: e.clientX, y: e.clientY};\r\n }\r\n return {\r\n x: Math.max(0, Math.min(Math.round((this.cursorPos.x - rect.left) / (rect.right - rect.left) * 640), 639)),\r\n y: Math.max(0, Math.min(Math.round((this.cursorPos.y - rect.top) / (rect.bottom - rect.top) * 480), 479)),\r\n };\r\n }\r\n\r\n mouseButton(e) {\r\n switch (e.button) {\r\n case 0: return 1;\r\n case 1: return 4;\r\n case 2: return 2;\r\n case 3: return 5;\r\n case 4: return 6;\r\n default: return 1;\r\n }\r\n }\r\n eventMods(e) {\r\n return ((e.shiftKey || this.touchMods[TOUCH_SHIFT]) ? 1 : 0) + (e.ctrlKey ? 2 : 0) + (e.altKey ? 4 : 0) + (e.touches ? 8 : 0);\r\n }\r\n\r\n onResize = () => {\r\n document.exitPointerLock();\r\n }\r\n\r\n onPointerLockChange = () => {\r\n if (window.screen && window.innerHeight === window.screen.height && !this.pointerLocked()) {\r\n // assume that the user pressed escape\r\n this.game(\"DApi_Key\", 0, 0, 27);\r\n this.game(\"DApi_Key\", 1, 0, 27);\r\n }\r\n }\r\n\r\n onMouseMove = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseDown = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n if (this.touchControls) {\r\n this.touchControls = false;\r\n this.element.classList.remove(\"touch\");\r\n }\r\n const {x, y} = this.mousePos(e);\r\n if (window.screen && window.innerHeight === window.screen.height) {\r\n // we're in fullscreen, let's get pointer lock!\r\n if (!this.pointerLocked()) {\r\n this.canvas.requestPointerLock();\r\n }\r\n }\r\n this.game(\"DApi_Mouse\", 1, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseUp = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 2, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onKeyDown = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 0, this.eventMods(e), e.keyCode);\r\n if (e.keyCode >= 32 && e.key.length === 1 && !this.showKeyboard) {\r\n this.game(\"DApi_Char\", e.key.charCodeAt(0));\r\n }\r\n this.clearKeySel();\r\n if (!this.showKeyboard) {\r\n if (e.keyCode === 8 || (e.keyCode >= 112 && e.keyCode <= 119)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n onMenu = e => {\r\n e.preventDefault();\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 1, this.eventMods(e), e.keyCode);\r\n this.clearKeySel();\r\n }\r\n\r\n clearKeySel() {\r\n if (this.showKeyboard) {\r\n const len = this.keyboard.value.length;\r\n this.keyboard.setSelectionRange(len, len);\r\n }\r\n }\r\n\r\n onKeyboard = () => {\r\n if (this.showKeyboard) {\r\n const text = this.keyboard.value;\r\n const valid = (text.match(/[\\x20-\\x7E]/g) || []).join(\"\").substring(0, 15);\r\n if (text !== valid) {\r\n this.keyboard.value = valid;\r\n }\r\n this.clearKeySel();\r\n const values = [...Array(15)].map((_, i) => i < valid.length ? valid.charCodeAt(i) : 0);\r\n this.game(\"DApi_SyncText\", ...values);\r\n }\r\n }\r\n\r\n parseFile = e => {\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n this.start(files[0]);\r\n }\r\n }\r\n\r\n touchButton = null;\r\n touchCanvas = null;\r\n\r\n setTouchMod(index, value, use) {\r\n if (index < 3) {\r\n this.touchMods[index] = value;\r\n if (this.touchButtons[index]) {\r\n this.touchButtons[index].classList.toggle(\"active\", value);\r\n }\r\n } else if (use && this.touchBelt[index] >= 0) {\r\n const now = performance.now();\r\n if (!this.beltTime || now - this.beltTime > 750) {\r\n this.game(\"DApi_Char\", 49 + this.touchBelt[index]);\r\n this.beltTime = now;\r\n }\r\n }\r\n }\r\n\r\n updateTouchButton(touches, release) {\r\n let touchOther = null;\r\n if (!this.touchControls) {\r\n this.touchControls = true;\r\n this.element.classList.add(\"touch\");\r\n }\r\n const btn = this.touchButton;\r\n for (let {target, identifier, clientX, clientY} of touches) {\r\n if (btn && btn.id === identifier && this.touchButtons[btn.index] === target) {\r\n if (touches.length > 1) {\r\n btn.stick = false;\r\n }\r\n btn.clientX = clientX;\r\n btn.clientY = clientY;\r\n this.touchCanvas = [...touches].find(t => t.identifier !== identifier);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n delete this.panPos;\r\n return this.touchCanvas != null;\r\n }\r\n const idx = this.touchButtons.indexOf(target);\r\n if (idx >= 0 && !touchOther) {\r\n touchOther = {id: identifier, index: idx, stick: true, original: this.touchMods[idx], clientX, clientY};\r\n }\r\n }\r\n if (btn && !touchOther && release && btn.stick) {\r\n const rect = this.touchButtons[btn.index].getBoundingClientRect();\r\n const {clientX, clientY} = btn;\r\n if (clientX >= rect.left && clientX < rect.right && clientY >= rect.top && clientY < rect.bottom) {\r\n this.setTouchMod(btn.index, !btn.original, true);\r\n } else {\r\n this.setTouchMod(btn.index, btn.original);\r\n }\r\n } else if (btn) {\r\n this.setTouchMod(btn.index, false);\r\n }\r\n this.touchButton = touchOther;\r\n if (touchOther) {\r\n this.setTouchMod(touchOther.index, true);\r\n if (touchOther.index === TOUCH_MOVE) {\r\n this.setTouchMod(TOUCH_RMB, false);\r\n } else if (touchOther.index === TOUCH_RMB) {\r\n this.setTouchMod(TOUCH_MOVE, false);\r\n }\r\n delete this.panPos;\r\n } else if (touches.length === 2) {\r\n const x = (touches[1].clientX + touches[0].clientX) / 2, y = (touches[1].clientY + touches[0].clientY) / 2;\r\n if (this.panPos) {\r\n const dx = x - this.panPos.x, dy = y - this.panPos.y;\r\n const step = this.canvas.offsetHeight / 12;\r\n if (Math.max(Math.abs(dx), Math.abs(dy)) > step) {\r\n let key;\r\n if (Math.abs(dx) > Math.abs(dy)) {\r\n key = (dx > 0 ? 0x25 : 0x27);\r\n } else {\r\n key = (dy > 0 ? 0x26 : 0x28);\r\n }\r\n this.game(\"DApi_Key\", 0, 0, key);\r\n // key up is ignored anyway\r\n this.panPos = {x, y};\r\n }\r\n } else {\r\n this.game(\"DApi_Mouse\", 0, 0, 24, 320, 180);\r\n this.game(\"DApi_Mouse\", 2, 1, 24, 320, 180);\r\n this.panPos = {x, y};\r\n }\r\n this.touchCanvas = null;\r\n return false;\r\n } else {\r\n delete this.panPos;\r\n }\r\n this.touchCanvas = [...touches].find(t => !touchOther || t.identifier !== touchOther.id);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n return this.touchCanvas != null;\r\n }\r\n\r\n onTouchStart = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n if (!this.touchMods[TOUCH_MOVE]) {\r\n this.game(\"DApi_Mouse\", 1, this.touchMods[TOUCH_RMB] ? 2 : 1, this.eventMods(e), x, y);\r\n }\r\n }\r\n }\r\n onTouchMove = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n }\r\n }\r\n onTouchEnd = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n const prevTc = this.touchCanvas;\r\n this.updateTouchButton(e.touches, true);\r\n if (prevTc && !this.touchCanvas) {\r\n const {x, y} = this.mousePos(prevTc);\r\n this.game(\"DApi_Mouse\", 2, 1, this.eventMods(e), x, y);\r\n this.game(\"DApi_Mouse\", 2, 2, this.eventMods(e), x, y);\r\n\r\n if (this.touchMods[TOUCH_RMB] && (!this.touchButton || this.touchButton.index !== TOUCH_RMB)) {\r\n this.setTouchButton(TOUCH_RMB, false);\r\n }\r\n }\r\n if (!document.fullscreenElement) {\r\n this.element.requestFullscreen();\r\n }\r\n }\r\n\r\n setCanvas = e => this.canvas = e;\r\n setElement = e => this.element = e;\r\n setKeyboard = e => this.keyboard = e;\r\n setTouch_(i, e) {\r\n this.touchButtons[i] = e;\r\n }\r\n setTouchBelt_(i, e) {\r\n this.touchButtons[i] = e;\r\n if (e) {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = 28;\r\n canvas.height = 28;\r\n e.appendChild(canvas);\r\n this.touchCtx[i] = canvas.getContext(\"2d\");\r\n } else {\r\n this.touchCtx[i] = null;\r\n }\r\n }\r\n\r\n render() {\r\n const {started, loading, error, progress, dropping, has_spawn} = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!error && }\r\n \r\n
\r\n
\r\n
\r\n {!!error && (\r\n \r\n

The following error has occurred:

\r\n

{error.message}

\r\n

Click to create an issue on GitHub

\r\n {this.saveName != null &&

Download save file

}\r\n \r\n )}\r\n {!!loading && !started && !error && (\r\n
\r\n {(progress && progress.text) || 'Loading...'}\r\n {progress != null && !!progress.total && (\r\n \r\n )}\r\n
\r\n )}\r\n {!started && !loading && !error && (\r\n
\r\n

\r\n This is a web port of the original Diablo game, based on source code reconstructed by\r\n GalaXyHaXz and devilution team. The project page with information and links can be found over here https://github.com/d07RiV/diabloweb\r\n

\r\n

\r\n If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing.\r\n The game can be purchased from GoG.\r\n

\r\n {!has_spawn && (\r\n

\r\n Or you can play the shareware version for free (50MB download).\r\n

\r\n )}\r\n
\r\n \r\n \r\n
\r\n this.start()}>Play Shareware\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './reset.css';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nimport App from './App';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.register();\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["fs.js","api/game.worker.js","../node_modules/peerjs/dist sync","serviceWorker.js","api/sound.js","api/load_spawn.js","api/webrtc.js","api/loader.js","App.js","index.js"],"names":["importStorage","Promise","resolve","reject","done","frame","document","createElement","window","addEventListener","_ref","data","method","files","contentWindow","postMessage","src","style","display","body","appendChild","setTimeout","downloadFile","_callee","store","name","file","blob","url","lnk","C_Work_diabloweb_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default","a","wrap","_context","prev","next","get","toLowerCase","sent","Blob","type","URL","createObjectURL","setAttribute","click","removeChild","revokeObjectURL","console","error","concat","stop","downloadSaves","_callee2","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","_context2","undefined","keys","t0","Symbol","iterator","value","match","t1","return","finish","readFile","reader","FileReader","onload","result","onerror","onabort","readAsArrayBuffer","uploadFile","_callee3","_context3","Uint8Array","set","abrupt","create_fs","_x7","_create_fs","apply","this","arguments","_callee4","load","_i","_Object$entries","_ref7","_ref3","_name","_data","_files","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_ref6","_ref5","_context4","IdbKvStore","Map","Object","json","entries","call","length","C_Work_diabloweb_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","t2","DownloadFile","DownloadSaves","update","delete","remove","clear","download","upload","t3","module","exports","Worker","__webpack_require__","p","webpackEmptyContext","req","e","Error","code","id","isLocalhost","Boolean","location","hostname","registerValidSW","swUrl","config","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","state","controller","log","onUpdate","onSuccess","catch","init_sound","AudioContext","webkitAudioContext","StereoPannerNode","webkitAudioPannerNode","create_sound","duplicate_sound","play_sound","set_volume","stop_sound","delete_sound","context","sounds","create_sound_raw","channels","rate","buffer","createBuffer","i","getChannelData","subarray","gain","createGain","panner","pan","decodeAudioData","srcId","volume","loop","source","Math","pow","relVolume","createBufferSource","node","connect","destination","start","stop_all","sound","slicedToArray","err","SpawnSizes","load_spawn","_x","_x2","_load_spawn","api","fs","spawn","regenerator_default","includes","byteLength","axios","request","process","responseType","onDownloadProgress","onProgress","text","loaded","total","headers","Cache-Control","slice","buffer_reader","classCallCheck","pos","read8","String","fromCharCode","toConsumableArray","buffer_writer","write8","charCodeAt","RejectionReason","JOIN_SUCCESS","JOIN_ALREADY_IN_GAME","JOIN_GAME_NOT_FOUND","JOIN_INCORRECT_PASSWORD","JOIN_VERSION_MISMATCH","JOIN_GAME_FULL","CREATE_GAME_EXISTS","server_join_accept_packet","read","cookie","read32","index","seed","difficulty","write","write32","server_join_reject_packet","reason","server_connect_packet","_ref8","server_disconnect_packet","_ref9","server_message_packet","payload","rest","_ref10","server_turn_packet","turn","_ref11","client_info_packet","version","_ref12","client_create_game_packet","read_str","password","_ref13","write_str","client_join_game_packet","_ref14","client_leave_game_packet","client_drop_player_packet","_ref15","client_message_packet","_ref16","client_turn_packet","_ref17","PeerID","webrtc_server","_ref18","onMessage","onClose","_this","peer","Peer","on","conn","onConnect","players","myplr","floor","random","onError","off","onOpen","_this2","packet","pkt","send","handle","drop","mask","destroy","close","webrtc_client","_ref19","_this3","pending","unreg","clearTimeout","timeout","push","webrtc_open","server","client","onRender","ctx","bitmap","images","clip","belt","transferFromImageBitmap","x","y","w","h","image","createImageData","putImageData","save","font","x0","y0","x1","y1","beginPath","rect","_ref4","str","color","r","g","b","fillStyle","fillText","restore","updateBelt","audio","mpq","offscreen","canvas","getContext","alpha","worker","packetQueue","webrtc","action","func","_len","params","Array","_key","batch","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","setCursorPos","openKeyboard","stack","onExit","setCurrentSave","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","transfer","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","setInterval","load_game","do_load_game","reportLink","retail","message","searchParams","split","map","line","join","userAgent","toString","ReactGA","initialize","pageview","TOUCH_MOVE","TOUCH_RMB","Link","children","props","objectWithoutProperties","react_default","assign","target","rel","App","possibleConstructorReturn","getPrototypeOf","started","loading","dropping","has_spawn","cursorPos","touchControls","touchButtons","touchCtx","touchMods","touchBelt","onDrop","dataTransfer","items","kind","getAsFile","getDropFile","preventDefault","setState","onDragEnter","setDropping","onDragOver","isDropFile","onDragLeave","downloadSave","saveName","stopPropagation","onResize","exitPointerLock","onPointerLockChange","screen","innerHeight","height","pointerLocked","game","onMouseMove","_this$mousePos","mousePos","eventMods","onMouseDown","keyboard","element","classList","_this$mousePos2","requestPointerLock","mouseButton","onMouseUp","_this$mousePos3","onKeyDown","keyCode","key","showKeyboard","clearKeySel","onMenu","onKeyUp","onKeyboard","valid","substring","values","_","parseFile","touchButton","touchCanvas","onTouchStart","updateTouchButton","touches","_this$mousePos4","onTouchMove","_this$mousePos5","onTouchEnd","prevTc","_this$mousePos6","setTouchButton","fullscreenElement","requestFullscreen","setCanvas","setElement","setKeyboard","setTouch0","setTouch_","bind","assertThisInitialized","setTouch1","setTouch2","setTouch3","setTouchBelt_","setTouch4","setTouch5","inc","_ref2","max","left","toFixed","top","width","add","focus","blur","_this4","getBoundingClientRect","right","bottom","progress","reload","idx","slot","drawImage","used","Set","has","drawBelt","_this5","removeEventListener","event","category","passive","capture","pointerLockElement","mozPointerLockElement","min","movementX","movementY","clientX","clientY","round","button","shiftKey","ctrlKey","altKey","len","setSelectionRange","use","toggle","now","performance","beltTime","release","_this6","touchOther","btn","_loop","identifier","stick","find","t","panPos","v","indexOf","original","_ret","setTouchMod","dx","dy","step","offsetHeight","abs","_this7","_this$state","className","classNames","touch","ref","active","onChange","spellCheck","App_Link","href","onClick","htmlFor","accept","React","Component","ReactDOM","render","src_App_0","getElementById","origin","fetch","response","contentType","status","ready","unregister","checkValidServiceWorker"],"mappings":"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","file":"static/js/main.3717595d.chunk.js","sourcesContent":["import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n download: name => downloadFile(store, name),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n download: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"35f22eb14a4817ef6e49.worker.js\");\n};","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 62;","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","function no_sound() {\r\n return {\r\n create_sound: () => 0,\r\n duplicate_sound: () => 0,\r\n play_sound: () => undefined,\r\n set_volume: () => undefined,\r\n stop_sound: () => undefined,\r\n delete_sound: () => undefined,\r\n };\r\n}\r\n\r\nfunction decodeAudioData(context, buffer) {\r\n return new Promise((resolve, reject) => {\r\n context.decodeAudioData(buffer, resolve, reject);\r\n });\r\n}\r\n\r\nexport default function init_sound() {\r\n const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n const StereoPannerNode = window.StereoPannerNode || window.webkitAudioPannerNode;\r\n if (!AudioContext) {\r\n return no_sound();\r\n }\r\n\r\n let context = null;\r\n try {\r\n context = new AudioContext();\r\n } catch (e) {\r\n }\r\n const sounds = new Map();\r\n\r\n return {\r\n create_sound_raw(id, data, length, channels, rate) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = context.createBuffer(channels, length, rate);\r\n for (let i = 0; i < channels; ++i) {\r\n buffer.getChannelData(i).set(data.subarray(i * length, i * length + length));\r\n }\r\n sounds.set(id, {\r\n buffer: Promise.resolve(buffer),\r\n gain: context.createGain(),\r\n panner: StereoPannerNode && new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n create_sound(id, data) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = decodeAudioData(context, data.buffer);\r\n sounds.set(id, {\r\n buffer,\r\n gain: context.createGain(),\r\n panner: StereoPannerNode && new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n duplicate_sound(id, srcId) {\r\n if (!context) {\r\n return;\r\n }\r\n const src = sounds.get(srcId);\r\n if (!src) {\r\n return;\r\n }\r\n sounds.set(id, {\r\n buffer: src.buffer,\r\n gain: context.createGain(),\r\n panner: StereoPannerNode && new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n play_sound(id, volume, pan, loop) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n if (src.source) {\r\n src.source.then(source => source.stop());\r\n }\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n const relVolume = Math.pow(2.0, pan / 1000.0);\r\n if (src.panner) {\r\n src.panner.pan.value = 1.0 - 2.0 / (1.0 + relVolume);\r\n }\r\n src.source = src.buffer.then(buffer => {\r\n const source = context.createBufferSource();\r\n source.buffer = buffer;\r\n source.loop = !!loop;\r\n let node = source.connect(src.gain);\r\n if (src.panner) {\r\n node = node.connect(src.panner);\r\n }\r\n node.connect(context.destination);\r\n source.start();\r\n return source;\r\n });\r\n }\r\n },\r\n set_volume(id, volume) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n }\r\n },\r\n stop_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.then(source => source.stop());\r\n delete src.source;\r\n }\r\n },\r\n delete_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.then(source => source.stop());\r\n }\r\n sounds.delete(id);\r\n },\r\n\r\n stop_all() {\r\n for (let [, sound] of sounds) {\r\n if (sound.source) {\r\n sound.source.then(source => source.stop());\r\n }\r\n }\r\n sounds.clear();\r\n context = null;\r\n }\r\n };\r\n}\r\n","import axios from 'axios';\r\n\r\nconst SpawnSizes = [50274091, 25830791];\r\n\r\nexport { SpawnSizes };\r\n\r\nexport default async function load_spawn(api, fs) {\r\n let file = fs.files.get('spawn.mpq');\r\n if (file && !SpawnSizes.includes(file.byteLength)) {\r\n fs.files.delete('spawn.mpq');\r\n await fs.delete('spawn.mpq');\r\n file = null;\r\n }\r\n if (!file) {\r\n const spawn = await axios.request({\r\n url: process.env.PUBLIC_URL + '/spawn.mpq',\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: e => {\r\n if (api.onProgress) {\r\n api.onProgress({text: 'Downloading...', loaded: e.loaded, total: e.total || SpawnSizes[1]});\r\n }\r\n },\r\n headers: {\r\n 'Cache-Control': 'max-age=31536000'\r\n }\r\n });\r\n if (!SpawnSizes.includes(spawn.data.byteLength)) {\r\n throw Error(\"Invalid spawn.mpq size. Try clearing cache and refreshing the page.\");\r\n }\r\n const data = new Uint8Array(spawn.data);\r\n fs.files.set('spawn.mpq', data);\r\n fs.update('spawn.mpq', data.slice());\r\n }\r\n return fs;\r\n}\r\n","import Peer from 'peerjs';\r\n\r\nclass buffer_reader {\r\n constructor(buffer) {\r\n this.buffer = (buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer));\r\n this.pos = 0;\r\n }\r\n done() {\r\n return this.pos === this.buffer.byteLength;\r\n }\r\n read8() {\r\n if (this.pos >= this.buffer.byteLength) {\r\n throw Error('packet too small');\r\n }\r\n return this.buffer[this.pos++];\r\n }\r\n read16() {\r\n const {pos, buffer} = this;\r\n if (pos + 2 > buffer.byteLength) {\r\n throw Error('packet too small');\r\n }\r\n const result = buffer[pos] | (buffer[pos + 1] << 8);\r\n this.pos += 2;\r\n return result;\r\n }\r\n read32() {\r\n const {pos, buffer} = this;\r\n if (pos + 4 > buffer.byteLength) {\r\n throw Error('packet too small');\r\n }\r\n const result = buffer[pos] | (buffer[pos + 1] << 8) | (buffer[pos + 2] << 16) | (buffer[pos + 3] << 24);\r\n this.pos += 4;\r\n return result;\r\n }\r\n read_str() {\r\n const length = this.read8();\r\n const {pos, buffer} = this;\r\n if (pos + length > buffer.byteLength) {\r\n throw Error('packet too small');\r\n }\r\n const result = String.fromCharCode(...buffer.subarray(pos, pos + length));\r\n this.pos += length;\r\n return result;\r\n }\r\n rest() {\r\n const result = this.buffer.subarray(this.pos);\r\n this.pos = this.buffer.length;\r\n return result;\r\n }\r\n}\r\nclass buffer_writer {\r\n constructor(length) {\r\n this.buffer = new Uint8Array(length);\r\n this.pos = 0;\r\n }\r\n get result() {\r\n return this.buffer.buffer;\r\n }\r\n write8(value) {\r\n this.buffer[this.pos++] = value;\r\n return this;\r\n }\r\n write16(value) {\r\n const {pos, buffer} = this;\r\n buffer[pos] = value;\r\n buffer[pos + 1] = value >> 8;\r\n this.pos += 2;\r\n return this;\r\n }\r\n write32(value) {\r\n const {pos, buffer} = this;\r\n buffer[pos] = value;\r\n buffer[pos + 1] = value >> 8;\r\n buffer[pos + 2] = value >> 16;\r\n buffer[pos + 3] = value >> 24;\r\n this.pos += 4;\r\n return this;\r\n }\r\n write_str(value) {\r\n const length = value.length;\r\n this.write8(length);\r\n const {pos, buffer} = this;\r\n for (let i = 0; i < length; ++i) {\r\n buffer[pos + i] = value.charCodeAt(i);\r\n }\r\n this.pos += length;\r\n return this;\r\n }\r\n rest(value) {\r\n this.buffer.set(value, this.pos);\r\n return this;\r\n }\r\n}\r\n\r\nconst RejectionReason = {\r\n JOIN_SUCCESS: 0x00,\r\n JOIN_ALREADY_IN_GAME: 0x01,\r\n JOIN_GAME_NOT_FOUND: 0x02,\r\n JOIN_INCORRECT_PASSWORD: 0x03,\r\n JOIN_VERSION_MISMATCH: 0x04,\r\n JOIN_GAME_FULL: 0x05,\r\n CREATE_GAME_EXISTS: 0x06,\r\n};\r\n\r\nconst server_info_packet = {\r\n code: 0x32,\r\n read: reader => ({version: reader.read32()}),\r\n write: ({version}) => new buffer_writer(5).write8(server_info_packet.code).write32(version).result,\r\n};\r\nconst server_game_list_packet = {\r\n code: 0x21,\r\n read: reader => {\r\n const count = reader.read8();\r\n const games = [];\r\n for (let i = 0; i < count; ++i) {\r\n games.push({type: reader.read32(), name: reader.read_str()});\r\n }\r\n return {games};\r\n },\r\n write: ({games}) => {\r\n const writer = new buffer_writer(games.reduce((sum, {name}) => sum + 5 + name.length, 2));\r\n writer.write8(server_game_list_packet.code);\r\n writer.write8(games.length);\r\n for (let {code, name} of games) {\r\n writer.write32(code);\r\n writer.write_str(name);\r\n }\r\n return writer.result;\r\n },\r\n};\r\nconst server_join_accept_packet = {\r\n code: 0x12,\r\n read: reader => ({cookie: reader.read32(), index: reader.read8(), seed: reader.read32(), difficulty: reader.read32()}),\r\n write: ({cookie, index, seed, difficulty}) => new buffer_writer(14).write8(server_join_accept_packet.code).write32(cookie).write8(index).write32(seed).write32(difficulty).result,\r\n};\r\nconst server_join_reject_packet = {\r\n code: 0x15,\r\n read: reader => ({cookie: reader.read32(), reason: reader.read8()}),\r\n write: ({cookie, reason}) => new buffer_writer(6).write8(server_join_reject_packet.code).write32(cookie).write8(reason).result,\r\n};\r\nconst server_connect_packet = {\r\n code: 0x13,\r\n read: reader => ({id: reader.read8()}),\r\n write: ({id}) => new buffer_writer(2).write8(server_connect_packet.code).write8(id).result,\r\n};\r\nconst server_disconnect_packet = {\r\n code: 0x14,\r\n read: reader => ({id: reader.read8(), reason: reader.read32()}),\r\n write: ({id, reason}) => new buffer_writer(6).write8(server_disconnect_packet.code).write8(id).write32(reason).result,\r\n};\r\nconst server_message_packet = {\r\n code: 0x01,\r\n read: reader => ({id: reader.read8(), payload: reader.rest()}),\r\n write: ({id, payload}) => new buffer_writer(2 + payload.byteLength).write8(server_message_packet.code).write8(id).rest(payload).result,\r\n};\r\nconst server_turn_packet = {\r\n code: 0x02,\r\n read: reader => ({id: reader.read8(), turn: reader.read32()}),\r\n write: ({id, turn}) => new buffer_writer(6).write8(server_turn_packet.code).write8(id).write32(turn).result,\r\n};\r\n\r\nconst client_info_packet = {\r\n code: 0x31,\r\n read: reader => ({version: reader.read32()}),\r\n write: ({version}) => new buffer_writer(5).write8(client_info_packet.code).write32(version).result,\r\n};\r\nconst client_game_list_packet = {\r\n code: 0x21,\r\n read: () => ({}),\r\n write: () => new buffer_writer(1).write8(client_game_list_packet.code).result,\r\n};\r\nconst client_create_game_packet = {\r\n code: 0x22,\r\n read: reader => ({cookie: reader.read32(), name: reader.read_str(), password: reader.read_str(), difficulty: reader.read32()}),\r\n write: ({cookie, name, password, difficulty}) => new buffer_writer(11 + name.length + password.length)\r\n .write8(client_create_game_packet.code).write32(cookie).write_str(name).write_str(password).write32(difficulty).result,\r\n};\r\nconst client_join_game_packet = {\r\n code: 0x23,\r\n read: reader => ({cookie: reader.read32(), name: reader.read_str(), password: reader.read_str()}),\r\n write: ({cookie, name, password}) => new buffer_writer(7 + name.length + password.length)\r\n .write8(client_join_game_packet.code).write32(cookie).write_str(name).write_str(password).result,\r\n};\r\nconst client_leave_game_packet = {\r\n code: 0x24,\r\n read: () => ({}),\r\n write: () => new buffer_writer(1).write8(client_leave_game_packet.code).result,\r\n};\r\nconst client_drop_player_packet = {\r\n code: 0x03,\r\n read: reader => ({id: reader.read8(), reason: reader.read32()}),\r\n write: ({id, reason}) => new buffer_writer(6).write8(client_drop_player_packet.code).write8(id).write32(reason).result,\r\n};\r\nconst client_message_packet = {\r\n code: 0x01,\r\n read: reader => ({id: reader.read8(), payload: reader.rest()}),\r\n write: ({id, payload}) => new buffer_writer(2 + payload.byteLength).write8(client_message_packet.code).write8(id).rest(payload).result,\r\n};\r\nconst client_turn_packet = {\r\n code: 0x02,\r\n read: reader => ({turn: reader.read32()}),\r\n write: ({turn}) => new buffer_writer(5).write8(client_turn_packet.code).write32(turn).result,\r\n};\r\n\r\nconst PeerID = name => `diabloweb_${name}`;\r\nconst MAX_PLRS = 4;\r\n\r\nclass webrtc_server {\r\n constructor(version, {cookie, name, password, difficulty}, onMessage, onClose) {\r\n this.version = version;\r\n this.name = name;\r\n this.password = password;\r\n this.difficulty = difficulty;\r\n this.onMessage = onMessage;\r\n this.onClose = onClose;\r\n\r\n this.peer = new Peer(PeerID(name));\r\n this.peer.on('connection', conn => this.onConnect(conn));\r\n this.players = [];\r\n this.myplr = 0;\r\n\r\n this.seed = Math.floor(Math.random() * Math.pow(2, 32));\r\n\r\n const onError = () => {\r\n onMessage(server_join_reject_packet.write({cookie, reason: RejectionReason.CREATE_GAME_EXISTS}));\r\n onClose();\r\n this.peer.off('error', onError);\r\n this.peer.off('open', onOpen);\r\n };\r\n const onOpen = () => {\r\n onMessage(server_join_accept_packet.write({cookie, index: 0, seed: this.seed, difficulty}));\r\n onMessage(server_connect_packet.write({id: 0}));\r\n this.peer.off('error', onError);\r\n this.peer.off('open', onOpen);\r\n };\r\n this.peer.on('error', onError);\r\n this.peer.on('open', onOpen);\r\n }\r\n\r\n onConnect(conn) {\r\n const peer = {conn};\r\n conn.on('data', packet => {\r\n const reader = new buffer_reader(packet);\r\n const code = reader.read8();\r\n let pkt;\r\n switch (code) {\r\n case client_info_packet.code:\r\n pkt = client_info_packet.read(reader);\r\n peer.version = pkt.version;\r\n break;\r\n case client_join_game_packet.code:\r\n pkt = client_join_game_packet.read(reader);\r\n if (peer.version !== this.version) {\r\n conn.send(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_VERSION_MISMATCH}));\r\n } else if (pkt.name !== this.name) {\r\n conn.send(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_GAME_NOT_FOUND}));\r\n } else if (pkt.password !== this.password) {\r\n conn.send(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_INCORRECT_PASSWORD}));\r\n } else {\r\n let i = 1;\r\n while (i < MAX_PLRS && this.players[i]) {\r\n ++i;\r\n }\r\n if (i >= MAX_PLRS) {\r\n conn.send(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_GAME_FULL})); \r\n } else {\r\n this.players[i] = peer;\r\n peer.id = i;\r\n conn.send(server_join_accept_packet.write({cookie: pkt.cookie, index: i, seed: this.seed, difficulty: this.difficulty}));\r\n this.send(0xFF, server_connect_packet.write({id: i}));\r\n }\r\n }\r\n break;\r\n default:\r\n if (peer.id != null) {\r\n this.handle(peer.id, code, reader);\r\n } else {\r\n return;\r\n }\r\n }\r\n if (!reader.done()) {\r\n throw Error('packet too large');\r\n }\r\n });\r\n conn.on('close', () => {\r\n if (peer.id != null) {\r\n this.drop(peer.id, 0x40000006);\r\n }\r\n });\r\n }\r\n\r\n send(mask, pkt) {\r\n for (let i = 1; i < MAX_PLRS; ++i) {\r\n if ((mask & (1 << i)) && this.players[i]) {\r\n if (this.players[i].conn) {\r\n this.players[i].conn.send(pkt);\r\n }\r\n }\r\n }\r\n // self last since it will destroy the buffer\r\n if (mask & 1) {\r\n this.onMessage(pkt);\r\n }\r\n }\r\n\r\n drop(id, reason) {\r\n if (id === 0) {\r\n for (let i = 1; i < MAX_PLRS; ++i) {\r\n this.drop(i, 0x40000006);\r\n }\r\n this.onMessage(server_disconnect_packet.write({id, reason}));\r\n this.peer.destroy();\r\n this.onClose();\r\n } else if (this.players[id]) {\r\n this.send(0xFF, server_disconnect_packet.write({id, reason}));\r\n this.players[id].id = null;\r\n if (this.players[id].conn) {\r\n this.players[id].conn.close();\r\n }\r\n this.players[id] = null;\r\n }\r\n }\r\n\r\n handle(id, code, reader) {\r\n let pkt;\r\n switch (code) {\r\n case client_leave_game_packet.code:\r\n pkt = client_leave_game_packet.read(reader);\r\n this.drop(id, 3);\r\n break;\r\n case client_drop_player_packet.code:\r\n pkt = client_drop_player_packet.read(reader);\r\n this.drop(pkt.id, pkt.reason);\r\n break;\r\n case client_message_packet.code:\r\n pkt = client_message_packet.read(reader);\r\n this.send(pkt.id === 0xFF ? ~(1 << id) : (1 << pkt.id), server_message_packet.write({id, payload: pkt.payload}));\r\n break;\r\n case client_turn_packet.code:\r\n pkt = client_turn_packet.read(reader);\r\n this.send(~(1 << id), server_turn_packet.write({id, turn: pkt.turn}));\r\n break;\r\n default:\r\n throw Error(`invalid packet ${code}`);\r\n }\r\n }\r\n}\r\n\r\nclass webrtc_client {\r\n pending = [];\r\n\r\n constructor(version, {cookie, name, password}, onMessage, onClose) {\r\n this.peer = new Peer();\r\n this.conn = this.peer.connect(PeerID(name));\r\n\r\n const unreg = () => {\r\n this.peer.off('error', onError);\r\n this.conn.off('error', onError);\r\n this.conn.off('open', onOpen);\r\n clearTimeout(timeout);\r\n };\r\n const onError = () => {\r\n onMessage(server_join_reject_packet.write({cookie, reason: RejectionReason.JOIN_GAME_NOT_FOUND}));\r\n onClose();\r\n unreg();\r\n };\r\n const onOpen = () => {\r\n unreg();\r\n this.conn.send(client_info_packet.write({version}));\r\n this.conn.send(client_join_game_packet.write({cookie, name, password}));\r\n for (let pkt of this.pending) {\r\n this.conn.send(pkt);\r\n }\r\n this.pending = null;\r\n };\r\n const timeout = setTimeout(onError, 5000);\r\n this.peer.on('error', onError);\r\n this.conn.on('error', onError);\r\n this.conn.on('open', onOpen);\r\n\r\n this.conn.on('data', data => {\r\n const reader = new buffer_reader(data);\r\n const code = reader.read8();\r\n let pkt;\r\n switch (code) {\r\n case server_join_accept_packet.code:\r\n pkt = server_join_accept_packet.read(reader);\r\n this.myplr = pkt.index;\r\n break;\r\n case server_join_reject_packet.code:\r\n onClose();\r\n break;\r\n case server_disconnect_packet.code:\r\n pkt = server_disconnect_packet.read(reader);\r\n if (pkt.id === 'myplr') {\r\n onClose();\r\n }\r\n break;\r\n default:\r\n }\r\n onMessage(data);\r\n });\r\n this.conn.on('close', data => {\r\n onClose();\r\n });\r\n }\r\n\r\n send(packet) {\r\n if (this.pending) {\r\n this.pending.push(packet);\r\n } else {\r\n this.conn.send(packet);\r\n }\r\n }\r\n}\r\n\r\nexport default function webrtc_open(onMessage) {\r\n let server = null, client = null;\r\n\r\n let version = 0;\r\n\r\n return {\r\n send: function(packet) {\r\n const reader = new buffer_reader(packet);\r\n const code = reader.read8();\r\n let pkt;\r\n switch (code) {\r\n case client_info_packet.code:\r\n pkt = client_info_packet.read(reader);\r\n version = pkt.version;\r\n break;\r\n case client_create_game_packet.code:\r\n pkt = client_create_game_packet.read(reader);\r\n if (server || client) {\r\n onMessage(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_ALREADY_IN_GAME}));\r\n } else {\r\n server = new webrtc_server(version, pkt, onMessage, () => server = null);\r\n }\r\n break;\r\n case client_join_game_packet.code:\r\n pkt = client_join_game_packet.read(reader);\r\n if (server || client) {\r\n onMessage(server_join_reject_packet.write({cookie: pkt.cookie, reason: RejectionReason.JOIN_ALREADY_IN_GAME}));\r\n } else {\r\n client = new webrtc_client(version, pkt, onMessage, () => client = null);\r\n }\r\n break;\r\n default:\r\n if (server) {\r\n server.handle(0, code, reader);\r\n if (pkt === client_leave_game_packet.code) {\r\n server = null;\r\n }\r\n } else if (client) {\r\n client.send(packet);\r\n if (pkt === client_leave_game_packet.code) {\r\n client = null;\r\n }\r\n return;\r\n } else {\r\n throw Error(`invalid packet ${code}`);\r\n }\r\n }\r\n if (!reader.done()) {\r\n throw Error('packet too large');\r\n }\r\n },\r\n };\r\n}\r\n","import Worker from './game.worker.js';\r\nimport init_sound from './sound';\r\nimport load_spawn from './load_spawn';\r\nimport webrtc_open from './webrtc';\r\n\r\nfunction onRender(api, ctx, {bitmap, images, text, clip, belt}) {\r\n if (bitmap) {\r\n ctx.transferFromImageBitmap(bitmap);\r\n } else {\r\n for (let {x, y, w, h, data} of images) {\r\n const image = ctx.createImageData(w, h);\r\n image.data.set(data);\r\n ctx.putImageData(image, x, y);\r\n }\r\n if (text.length) {\r\n ctx.save();\r\n ctx.font = 'bold 13px Times New Roman';\r\n if (clip) {\r\n const {x0, y0, x1, y1} = clip;\r\n ctx.beginPath();\r\n ctx.rect(x0, y0, x1 - x0, y1 - y0);\r\n ctx.clip();\r\n }\r\n for (let {x, y, text: str, color} of text) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n ctx.fillText(str, x, y + 22);\r\n }\r\n ctx.restore();\r\n }\r\n }\r\n\r\n api.updateBelt(belt);\r\n}\r\n\r\nfunction testOffscreen() {\r\n return false;\r\n // This works but I couldn't see any performance difference, and support for 2D canvas in workers is very poor.\r\n // In this mode, instead of sending a batch of areas to draw back to the main thread, the worker does all drawing on its own and sends a complete bitmap object back.\r\n // However, this effectively clears the worker's canvas, so we need to redraw the whole frame every time, which defeats the performance gained from reduced copying.\r\n /*try {\r\n const canvas = document.createElement(\"canvas\");\r\n const offscreen = canvas.transferControlToOffscreen();\r\n const context = offscreen.getContext(\"2d\");\r\n return context != null;\r\n } catch (e) {\r\n return false;\r\n }*/\r\n}\r\n\r\nasync function do_load_game(api, audio, mpq, spawn) {\r\n const fs = await api.fs;\r\n if (spawn && !mpq) {\r\n await load_spawn(api, fs);\r\n }\r\n\r\n let context = null, offscreen = false;\r\n if (testOffscreen()) {\r\n context = api.canvas.getContext(\"bitmaprenderer\");\r\n offscreen = true;\r\n } else {\r\n context = api.canvas.getContext(\"2d\", {alpha: false});\r\n }\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n const worker = new Worker();\r\n\r\n let packetQueue = [];\r\n const webrtc = webrtc_open(data => {\r\n packetQueue.push(data);\r\n });\r\n\r\n worker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"loaded\":\r\n resolve((func, ...params) => worker.postMessage({action: \"event\", func, params}));\r\n break;\r\n case \"render\":\r\n onRender(api, context, data.batch);\r\n break;\r\n case \"audio\":\r\n audio[data.func](...data.params);\r\n break;\r\n case \"audioBatch\":\r\n for (let {func, params} of data.batch) {\r\n audio[func](...params);\r\n }\r\n break;\r\n case \"fs\":\r\n fs[data.func](...data.params);\r\n break;\r\n case \"cursor\":\r\n api.setCursorPos(data.x, data.y);\r\n break;\r\n case \"keyboard\":\r\n api.openKeyboard(data.rect);\r\n break;\r\n case \"error\":\r\n audio.stop_all();\r\n api.onError(data.error, data.stack);\r\n break;\r\n case \"failed\":\r\n reject(Error(data.stack || data.error));\r\n break;\r\n case \"progress\":\r\n api.onProgress({text: data.text, loaded: data.loaded, total: data.total});\r\n break;\r\n case \"exit\":\r\n api.onExit();\r\n break;\r\n case \"current_save\":\r\n api.setCurrentSave(data.name);\r\n break;\r\n case \"packet\":\r\n webrtc.send(data.buffer);\r\n break;\r\n case \"packetBatch\":\r\n for (let packet of data.batch) {\r\n webrtc.send(packet);\r\n }\r\n break;\r\n default:\r\n }\r\n }); \r\n const transfer= [];\r\n for (let [, file] of fs.files) {\r\n transfer.push(file.buffer);\r\n }\r\n worker.postMessage({action: \"init\", files: fs.files, mpq, spawn, offscreen}, transfer);\r\n setInterval(() => {\r\n if (packetQueue.length) {\r\n worker.postMessage({action: \"packetBatch\", batch: packetQueue}, packetQueue);\r\n packetQueue.length = 0;\r\n }\r\n }, 20);\r\n delete fs.files;\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n}\r\n\r\nexport default function load_game(api, mpq, spawn) {\r\n const audio = init_sound();\r\n return do_load_game(api, audio, mpq, spawn);\r\n}\r\n","import React from 'react';\r\nimport './App.scss';\r\nimport classNames from 'classnames';\r\nimport ReactGA from 'react-ga';\r\n\r\nimport create_fs from './fs';\r\nimport load_game from './api/loader';\r\nimport { SpawnSizes } from './api/load_spawn';\r\n\r\nimport Peer from 'peerjs';\r\n\r\nwindow.Peer = Peer;\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n ReactGA.initialize('UA-43123589-6');\r\n ReactGA.pageview('/');\r\n}\r\n\r\nfunction reportLink(e, retail) {\r\n const message = e.stack || e.message || \"Unknown error\";\r\n const url = new URL(\"https://github.com/d07RiV/diabloweb/issues/new\");\r\n url.searchParams.set(\"body\",\r\n`**Description:**\r\n[Please describe what you were doing before the error occurred]\r\n\r\n**App version:**\r\nDiabloWeb ${process.env.VERSION} (${retail ? 'Retail' : 'Shareware'})\r\n\r\n**Error message:**\r\n \r\n${message.split(\"\\n\").map(line => \" \" + line).join(\"\\n\")}\r\n\r\n**User agent:**\r\n\r\n ${navigator.userAgent}\r\n\r\n**Save file:**\r\n[Please attach the save file, if applicable. The error box should have a link to download the current save you were playing; alternatively, you can open dev console on the game page (F12) and type in ${\"`DownloadSaves()`\"}]\r\n`);\r\n return url.toString();\r\n}\r\n\r\nfunction isDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return true;\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return e.dataTransfer.items[i].getAsFile();\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return e.dataTransfer.files[0];\r\n }\r\n}\r\n\r\nconst TOUCH_MOVE = 0;\r\nconst TOUCH_RMB = 1;\r\nconst TOUCH_SHIFT = 2;\r\n\r\nconst Link = ({children, ...props}) => {children};\r\n\r\nclass App extends React.Component {\r\n files = new Map();\r\n state = {started: false, loading: false, dropping: 0, has_spawn: false};\r\n cursorPos = {x: 0, y: 0};\r\n\r\n touchControls = false;\r\n touchButtons = [null, null, null, null, null, null];\r\n touchCtx = [null, null, null, null, null, null];\r\n touchMods = [false, false, false, false, false, false];\r\n touchBelt = [-1, -1, -1, -1, -1, -1];\r\n\r\n fs = create_fs(true);\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setTouch0 = this.setTouch_.bind(this, 0);\r\n this.setTouch1 = this.setTouch_.bind(this, 1);\r\n this.setTouch2 = this.setTouch_.bind(this, 2);\r\n this.setTouch3 = this.setTouchBelt_.bind(this, 3);\r\n this.setTouch4 = this.setTouchBelt_.bind(this, 4);\r\n this.setTouch5 = this.setTouchBelt_.bind(this, 5);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"drop\", this.onDrop, true);\r\n document.addEventListener(\"dragover\", this.onDragOver, true);\r\n document.addEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.addEventListener(\"dragleave\", this.onDragLeave, true);\r\n\r\n this.fs.then(fs => {\r\n const spawn = fs.files.get('spawn.mpq');\r\n if (spawn && SpawnSizes.includes(spawn.byteLength)) {\r\n this.setState({has_spawn: true});\r\n }\r\n });\r\n }\r\n\r\n onDrop = e => {\r\n const file = getDropFile(e);\r\n if (file) {\r\n e.preventDefault();\r\n this.start(file);\r\n }\r\n this.setState({dropping: 0});\r\n }\r\n onDragEnter = e => {\r\n e.preventDefault();\r\n this.setDropping(1);\r\n }\r\n onDragOver = e => {\r\n if (isDropFile(e)) {\r\n e.preventDefault();\r\n }\r\n }\r\n onDragLeave = e => {\r\n this.setDropping(-1);\r\n }\r\n setDropping(inc) {\r\n this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));\r\n }\r\n\r\n onError(message, stack) {\r\n this.setState(({error}) => !error && {error: {message, stack}});\r\n }\r\n\r\n openKeyboard(rect) {\r\n if (rect) {\r\n this.showKeyboard = {\r\n left: `${(100 * (rect[0] - 10) / 640).toFixed(2)}%`,\r\n top: `${(100 * (rect[1] - 10) / 480).toFixed(2)}%`,\r\n width: `${(100 * (rect[2] - rect[0] + 20) / 640).toFixed(2)}%`,\r\n height: `${(100 * (rect[3] - rect[1] + 20) / 640).toFixed(2)}%`,\r\n };\r\n this.element.classList.add(\"keyboard\");\r\n Object.assign(this.keyboard.style, this.showKeyboard);\r\n this.keyboard.focus();\r\n } else {\r\n this.showKeyboard = false;\r\n this.element.classList.remove(\"keyboard\");\r\n this.keyboard.blur();\r\n this.keyboard.value = \"\";\r\n }\r\n }\r\n\r\n setCursorPos(x, y) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n this.cursorPos = {\r\n x: rect.left + (rect.right - rect.left) * x / 640,\r\n y: rect.top + (rect.bottom - rect.top) * y / 480,\r\n };\r\n setTimeout(() => {\r\n this.game(\"DApi_Mouse\", 0, 0, 0, x, y);\r\n });\r\n }\r\n\r\n onProgress(progress) {\r\n this.setState({progress});\r\n }\r\n\r\n onExit() {\r\n if (!this.state.error) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n setCurrentSave(name) {\r\n this.saveName = name;\r\n }\r\n downloadSave = e => {\r\n this.fs.then(fs => this.saveName && fs.download(this.saveName));\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n drawBelt(idx, slot) {\r\n if (!this.canvas) return;\r\n if (!this.touchButtons[idx]) {\r\n return;\r\n }\r\n this.touchBelt[idx] = slot;\r\n if (slot >= 0) {\r\n this.touchButtons[idx].style.display = \"block\";\r\n this.touchCtx[idx].drawImage(this.canvas, 205 + 29 * slot, 357, 28, 28, 0, 0, 28, 28);\r\n } else {\r\n this.touchButtons[idx].style.display = \"none\";\r\n }\r\n }\r\n\r\n updateBelt(belt) {\r\n if (belt) {\r\n const used = new Set();\r\n let pos = 3;\r\n for (let i = 0; i < belt.length && pos < 6; ++i) {\r\n if (belt[i] >= 0 && !used.has(belt[i])) {\r\n this.drawBelt(pos++, i);\r\n used.add(belt[i]);\r\n }\r\n }\r\n for (; pos < 6; ++pos) {\r\n this.drawBelt(pos, -1);\r\n }\r\n } else {\r\n this.drawBelt(3, -1);\r\n this.drawBelt(4, -1);\r\n this.drawBelt(5, -1);\r\n }\r\n }\r\n\r\n start(file) {\r\n if (file && file.name.match(/\\.sv$/i)) {\r\n this.fs.then(fs => fs.upload(file)).then(console.log(`Updated ${file.name}`));\r\n return;\r\n }\r\n\r\n document.removeEventListener(\"drop\", this.onDrop, true);\r\n document.removeEventListener(\"dragover\", this.onDragOver, true);\r\n document.removeEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.removeEventListener(\"dragleave\", this.onDragLeave, true);\r\n this.setState({dropping: 0});\r\n\r\n const retail = !!(file && file.name.match(/^diabdat\\.mpq$/i));\r\n if (process.env.NODE_ENV === 'production') {\r\n ReactGA.event({\r\n category: 'Game',\r\n action: retail ? 'Start Retail' : 'Start Shareware',\r\n });\r\n }\r\n\r\n this.setState({loading: true, retail});\r\n\r\n load_game(this, file, !retail).then(game => {\r\n this.game = game;\r\n\r\n document.addEventListener('mousemove', this.onMouseMove, true);\r\n document.addEventListener('mousedown', this.onMouseDown, true);\r\n document.addEventListener('mouseup', this.onMouseUp, true);\r\n document.addEventListener('keydown', this.onKeyDown, true);\r\n document.addEventListener('keyup', this.onKeyUp, true);\r\n document.addEventListener('contextmenu', this.onMenu, true);\r\n\r\n document.addEventListener('touchstart', this.onTouchStart, {passive: false, capture: true});\r\n document.addEventListener('touchmove', this.onTouchMove, {passive: false, capture: true});\r\n document.addEventListener('touchend', this.onTouchEnd, {passive: false, capture: true});\r\n\r\n document.addEventListener('pointerlockchange', this.onPointerLockChange);\r\n window.addEventListener('resize', this.onResize);\r\n\r\n this.setState({started: true});\r\n }, e => this.onError(e.message, e.stack));\r\n }\r\n\r\n pointerLocked() {\r\n return document.pointerLockElement === this.canvas || document.mozPointerLockElement === this.canvas;\r\n }\r\n\r\n mousePos(e) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n if (this.pointerLocked()) {\r\n this.cursorPos.x = Math.max(rect.left, Math.min(rect.right, this.cursorPos.x + e.movementX));\r\n this.cursorPos.y = Math.max(rect.top, Math.min(rect.bottom, this.cursorPos.y + e.movementY));\r\n } else {\r\n this.cursorPos = {x: e.clientX, y: e.clientY};\r\n }\r\n return {\r\n x: Math.max(0, Math.min(Math.round((this.cursorPos.x - rect.left) / (rect.right - rect.left) * 640), 639)),\r\n y: Math.max(0, Math.min(Math.round((this.cursorPos.y - rect.top) / (rect.bottom - rect.top) * 480), 479)),\r\n };\r\n }\r\n\r\n mouseButton(e) {\r\n switch (e.button) {\r\n case 0: return 1;\r\n case 1: return 4;\r\n case 2: return 2;\r\n case 3: return 5;\r\n case 4: return 6;\r\n default: return 1;\r\n }\r\n }\r\n eventMods(e) {\r\n return ((e.shiftKey || this.touchMods[TOUCH_SHIFT]) ? 1 : 0) + (e.ctrlKey ? 2 : 0) + (e.altKey ? 4 : 0) + (e.touches ? 8 : 0);\r\n }\r\n\r\n onResize = () => {\r\n document.exitPointerLock();\r\n }\r\n\r\n onPointerLockChange = () => {\r\n if (window.screen && window.innerHeight === window.screen.height && !this.pointerLocked()) {\r\n // assume that the user pressed escape\r\n this.game(\"DApi_Key\", 0, 0, 27);\r\n this.game(\"DApi_Key\", 1, 0, 27);\r\n }\r\n }\r\n\r\n onMouseMove = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseDown = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n if (this.touchControls) {\r\n this.touchControls = false;\r\n this.element.classList.remove(\"touch\");\r\n }\r\n const {x, y} = this.mousePos(e);\r\n if (window.screen && window.innerHeight === window.screen.height) {\r\n // we're in fullscreen, let's get pointer lock!\r\n if (!this.pointerLocked()) {\r\n this.canvas.requestPointerLock();\r\n }\r\n }\r\n this.game(\"DApi_Mouse\", 1, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseUp = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 2, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onKeyDown = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 0, this.eventMods(e), e.keyCode);\r\n if (e.keyCode >= 32 && e.key.length === 1 && !this.showKeyboard) {\r\n this.game(\"DApi_Char\", e.key.charCodeAt(0));\r\n }\r\n this.clearKeySel();\r\n if (!this.showKeyboard) {\r\n if (e.keyCode === 8 || (e.keyCode >= 112 && e.keyCode <= 119)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n onMenu = e => {\r\n e.preventDefault();\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 1, this.eventMods(e), e.keyCode);\r\n this.clearKeySel();\r\n }\r\n\r\n clearKeySel() {\r\n if (this.showKeyboard) {\r\n const len = this.keyboard.value.length;\r\n this.keyboard.setSelectionRange(len, len);\r\n }\r\n }\r\n\r\n onKeyboard = () => {\r\n if (this.showKeyboard) {\r\n const text = this.keyboard.value;\r\n const valid = (text.match(/[\\x20-\\x7E]/g) || []).join(\"\").substring(0, 15);\r\n if (text !== valid) {\r\n this.keyboard.value = valid;\r\n }\r\n this.clearKeySel();\r\n const values = [...Array(15)].map((_, i) => i < valid.length ? valid.charCodeAt(i) : 0);\r\n this.game(\"DApi_SyncText\", ...values);\r\n }\r\n }\r\n\r\n parseFile = e => {\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n this.start(files[0]);\r\n }\r\n }\r\n\r\n touchButton = null;\r\n touchCanvas = null;\r\n\r\n setTouchMod(index, value, use) {\r\n if (index < 3) {\r\n this.touchMods[index] = value;\r\n if (this.touchButtons[index]) {\r\n this.touchButtons[index].classList.toggle(\"active\", value);\r\n }\r\n } else if (use && this.touchBelt[index] >= 0) {\r\n const now = performance.now();\r\n if (!this.beltTime || now - this.beltTime > 750) {\r\n this.game(\"DApi_Char\", 49 + this.touchBelt[index]);\r\n this.beltTime = now;\r\n }\r\n }\r\n }\r\n\r\n updateTouchButton(touches, release) {\r\n let touchOther = null;\r\n if (!this.touchControls) {\r\n this.touchControls = true;\r\n this.element.classList.add(\"touch\");\r\n }\r\n const btn = this.touchButton;\r\n for (let {target, identifier, clientX, clientY} of touches) {\r\n if (btn && btn.id === identifier && this.touchButtons[btn.index] === target) {\r\n if (touches.length > 1) {\r\n btn.stick = false;\r\n }\r\n btn.clientX = clientX;\r\n btn.clientY = clientY;\r\n this.touchCanvas = [...touches].find(t => t.identifier !== identifier);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n delete this.panPos;\r\n return this.touchCanvas != null;\r\n }\r\n const idx = this.touchButtons.indexOf(target);\r\n if (idx >= 0 && !touchOther) {\r\n touchOther = {id: identifier, index: idx, stick: true, original: this.touchMods[idx], clientX, clientY};\r\n }\r\n }\r\n if (btn && !touchOther && release && btn.stick) {\r\n const rect = this.touchButtons[btn.index].getBoundingClientRect();\r\n const {clientX, clientY} = btn;\r\n if (clientX >= rect.left && clientX < rect.right && clientY >= rect.top && clientY < rect.bottom) {\r\n this.setTouchMod(btn.index, !btn.original, true);\r\n } else {\r\n this.setTouchMod(btn.index, btn.original);\r\n }\r\n } else if (btn) {\r\n this.setTouchMod(btn.index, false);\r\n }\r\n this.touchButton = touchOther;\r\n if (touchOther) {\r\n this.setTouchMod(touchOther.index, true);\r\n if (touchOther.index === TOUCH_MOVE) {\r\n this.setTouchMod(TOUCH_RMB, false);\r\n } else if (touchOther.index === TOUCH_RMB) {\r\n this.setTouchMod(TOUCH_MOVE, false);\r\n }\r\n delete this.panPos;\r\n } else if (touches.length === 2) {\r\n const x = (touches[1].clientX + touches[0].clientX) / 2, y = (touches[1].clientY + touches[0].clientY) / 2;\r\n if (this.panPos) {\r\n const dx = x - this.panPos.x, dy = y - this.panPos.y;\r\n const step = this.canvas.offsetHeight / 12;\r\n if (Math.max(Math.abs(dx), Math.abs(dy)) > step) {\r\n let key;\r\n if (Math.abs(dx) > Math.abs(dy)) {\r\n key = (dx > 0 ? 0x25 : 0x27);\r\n } else {\r\n key = (dy > 0 ? 0x26 : 0x28);\r\n }\r\n this.game(\"DApi_Key\", 0, 0, key);\r\n // key up is ignored anyway\r\n this.panPos = {x, y};\r\n }\r\n } else {\r\n this.game(\"DApi_Mouse\", 0, 0, 24, 320, 180);\r\n this.game(\"DApi_Mouse\", 2, 1, 24, 320, 180);\r\n this.panPos = {x, y};\r\n }\r\n this.touchCanvas = null;\r\n return false;\r\n } else {\r\n delete this.panPos;\r\n }\r\n this.touchCanvas = [...touches].find(t => !touchOther || t.identifier !== touchOther.id);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n return this.touchCanvas != null;\r\n }\r\n\r\n onTouchStart = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n if (!this.touchMods[TOUCH_MOVE]) {\r\n this.game(\"DApi_Mouse\", 1, this.touchMods[TOUCH_RMB] ? 2 : 1, this.eventMods(e), x, y);\r\n }\r\n }\r\n }\r\n onTouchMove = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n }\r\n }\r\n onTouchEnd = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n const prevTc = this.touchCanvas;\r\n this.updateTouchButton(e.touches, true);\r\n if (prevTc && !this.touchCanvas) {\r\n const {x, y} = this.mousePos(prevTc);\r\n this.game(\"DApi_Mouse\", 2, 1, this.eventMods(e), x, y);\r\n this.game(\"DApi_Mouse\", 2, 2, this.eventMods(e), x, y);\r\n\r\n if (this.touchMods[TOUCH_RMB] && (!this.touchButton || this.touchButton.index !== TOUCH_RMB)) {\r\n this.setTouchButton(TOUCH_RMB, false);\r\n }\r\n }\r\n if (!document.fullscreenElement) {\r\n this.element.requestFullscreen();\r\n }\r\n }\r\n\r\n setCanvas = e => this.canvas = e;\r\n setElement = e => this.element = e;\r\n setKeyboard = e => this.keyboard = e;\r\n setTouch_(i, e) {\r\n this.touchButtons[i] = e;\r\n }\r\n setTouchBelt_(i, e) {\r\n this.touchButtons[i] = e;\r\n if (e) {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = 28;\r\n canvas.height = 28;\r\n e.appendChild(canvas);\r\n this.touchCtx[i] = canvas.getContext(\"2d\");\r\n } else {\r\n this.touchCtx[i] = null;\r\n }\r\n }\r\n\r\n render() {\r\n const {started, loading, error, progress, dropping, has_spawn} = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!error && }\r\n \r\n
\r\n
\r\n
\r\n {!!error && (\r\n \r\n

The following error has occurred:

\r\n

{error.message}

\r\n

Click to create an issue on GitHub

\r\n {this.saveName != null &&

Download save file

}\r\n \r\n )}\r\n {!!loading && !started && !error && (\r\n
\r\n {(progress && progress.text) || 'Loading...'}\r\n {progress != null && !!progress.total && (\r\n \r\n )}\r\n
\r\n )}\r\n {!started && !loading && !error && (\r\n
\r\n

\r\n This is a web port of the original Diablo game, based on source code reconstructed by\r\n GalaXyHaXz and devilution team. The project page with information and links can be found over here https://github.com/d07RiV/diabloweb\r\n

\r\n

\r\n If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing.\r\n The game can be purchased from GoG.\r\n

\r\n {!has_spawn && (\r\n

\r\n Or you can play the shareware version for free (50MB download).\r\n

\r\n )}\r\n
\r\n \r\n \r\n
\r\n this.start()}>Play Shareware\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './reset.css';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nimport App from './App';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.register();\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/media/Diablo.ddcbe875.wasm b/static/media/Diablo.85de21cc.wasm similarity index 70% rename from static/media/Diablo.ddcbe875.wasm rename to static/media/Diablo.85de21cc.wasm index 14e4fe7e8d657feec823b8f5ee88ea46c3dea080..a6f221462cbe48ab3f6895adeaa0c451156f7a4e 100644 GIT binary patch delta 113090 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 L*Z9?_la>At2l~(( delta 113190 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

2_0+lcd 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 z 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 Hywd*xHrON< diff --git a/static/media/DiabloSpawn.b4ef0fa4.wasm b/static/media/DiabloSpawn.5292efdb.wasm similarity index 63% rename from static/media/DiabloSpawn.b4ef0fa4.wasm rename to static/media/DiabloSpawn.5292efdb.wasm index 19034918ca0fdb1f866fa1f1ac4c23518d4332a5..4d8f16c7ae80d1f1bbcdda2fe4f429dfb0d935d7 100644 GIT binary patch delta 176609 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 WB-35tw5@TA>Phw~Q*WA``+fnpRgcsF delta 175730 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%0AFHy-Y`l?q}riMZipu0H<=|P~U`l{E{H^19g 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 zur