viztracer 1.1.1__cp313-cp313-win32.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- viztracer/__init__.py +19 -0
- viztracer/__main__.py +8 -0
- viztracer/attach.py +67 -0
- viztracer/attach_process/LICENSE +203 -0
- viztracer/attach_process/__init__.py +0 -0
- viztracer/attach_process/add_code_to_python_process.py +582 -0
- viztracer/attach_process/attach_x86.dll +0 -0
- viztracer/attach_process/inject_dll_amd64.exe +0 -0
- viztracer/attach_process/linux_and_mac/lldb_prepare.py +54 -0
- viztracer/attach_process/run_code_on_dllmain_amd64.dll +0 -0
- viztracer/attach_process/run_code_on_dllmain_x86.dll +0 -0
- viztracer/cellmagic.py +70 -0
- viztracer/code_monkey.py +353 -0
- viztracer/decorator.py +164 -0
- viztracer/event_base.py +81 -0
- viztracer/functree.py +135 -0
- viztracer/html/flamegraph.html +34 -0
- viztracer/html/trace_viewer_embedder.html +203 -0
- viztracer/html/trace_viewer_full.html +10207 -0
- viztracer/main.py +701 -0
- viztracer/modules/eventnode.c +188 -0
- viztracer/modules/eventnode.h +73 -0
- viztracer/modules/pythoncapi_compat.h +1726 -0
- viztracer/modules/quicktime.c +177 -0
- viztracer/modules/quicktime.h +104 -0
- viztracer/modules/snaptrace.c +2207 -0
- viztracer/modules/snaptrace.h +134 -0
- viztracer/modules/snaptrace_member.c +483 -0
- viztracer/modules/util.c +45 -0
- viztracer/modules/util.h +22 -0
- viztracer/modules/vcompressor/vc_dump.c +1131 -0
- viztracer/modules/vcompressor/vc_dump.h +49 -0
- viztracer/modules/vcompressor/vcompressor.c +396 -0
- viztracer/modules/vcompressor/vcompressor.h +15 -0
- viztracer/patch.py +317 -0
- viztracer/report_builder.py +311 -0
- viztracer/snaptrace.cp313-win32.pyd +0 -0
- viztracer/snaptrace.pyi +77 -0
- viztracer/util.py +196 -0
- viztracer/vcompressor.cp313-win32.pyd +0 -0
- viztracer/vcompressor.pyi +10 -0
- viztracer/viewer.py +529 -0
- viztracer/vizcounter.py +20 -0
- viztracer/vizevent.py +31 -0
- viztracer/vizlogging.py +20 -0
- viztracer/vizobject.py +28 -0
- viztracer/vizplugin.py +143 -0
- viztracer/viztracer.py +472 -0
- viztracer/web_dist/LICENSE +189 -0
- viztracer/web_dist/index.html +127 -0
- viztracer/web_dist/service_worker.js +279 -0
- viztracer/web_dist/trace_processor +300 -0
- viztracer/web_dist/v52.0-6b9586def/assets/MaterialSymbolsOutlined.woff2 +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/Roboto-100.woff2 +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/Roboto-300.woff2 +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/Roboto-400.woff2 +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/Roboto-500.woff2 +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/RobotoCondensed-Light.woff2 +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/RobotoCondensed-Regular.woff2 +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/RobotoMono-Regular.woff2 +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/brand.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/catapult_trace_viewer.html +3946 -0
- viztracer/web_dist/v52.0-6b9586def/assets/catapult_trace_viewer.js +7539 -0
- viztracer/web_dist/v52.0-6b9586def/assets/favicon.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/logo-128.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/logo-3d.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_atrace.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_battery_counters.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_board_voltage.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_cpu_coarse.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_cpu_fine.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_cpu_freq.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_cpu_voltage.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_frame_timeline.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_ftrace.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_gpu_mem_total.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_java_heap_dump.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_lmk.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_logcat.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_long_trace.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_mem_hifreq.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_meminfo.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_native_heap_profiler.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_one_shot.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_profiling.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_ps_stats.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_ring_buf.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_syscalls.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/rec_vmstat.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/scheduling_latency.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/assets/vscode-icon.png +0 -0
- viztracer/web_dist/v52.0-6b9586def/engine_bundle.js +3 -0
- viztracer/web_dist/v52.0-6b9586def/frontend_bundle.js +5495 -0
- viztracer/web_dist/v52.0-6b9586def/index.html +127 -0
- viztracer/web_dist/v52.0-6b9586def/manifest.json +52 -0
- viztracer/web_dist/v52.0-6b9586def/perfetto.css +5737 -0
- viztracer/web_dist/v52.0-6b9586def/stdlib_docs.json +1 -0
- viztracer/web_dist/v52.0-6b9586def/trace_config_utils.wasm +0 -0
- viztracer/web_dist/v52.0-6b9586def/trace_processor.wasm +0 -0
- viztracer/web_dist/v52.0-6b9586def/trace_processor_memory64.wasm +0 -0
- viztracer/web_dist/v52.0-6b9586def/traceconv.wasm +0 -0
- viztracer/web_dist/v52.0-6b9586def/traceconv_bundle.js +2 -0
- viztracer-1.1.1.dist-info/METADATA +326 -0
- viztracer-1.1.1.dist-info/RECORD +109 -0
- viztracer-1.1.1.dist-info/WHEEL +5 -0
- viztracer-1.1.1.dist-info/entry_points.txt +3 -0
- viztracer-1.1.1.dist-info/licenses/LICENSE +222 -0
- viztracer-1.1.1.dist-info/licenses/NOTICE.txt +27 -0
- viztracer-1.1.1.dist-info/top_level.txt +1 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var engine=function(){"use strict";function L(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function x(t){var r,n;return t.__esModule?t:("function"==typeof(r=t.default)?(n=function e(){return this instanceof e?Reflect.construct(r,arguments,this.constructor):r.apply(this,arguments)}).prototype=r.prototype:n={},Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(e){var r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(n,e,r.get?r:{enumerable:!0,get:function(){return t[e]}})}),n)}var n={},r={},o=function(e,r){return(o=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,r){e.__proto__=r}:function(e,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}))(e,r)};function e(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function t(){this.constructor=e}o(e,r),e.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)}var t=function(){return(t=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e}).apply(this,arguments)};function a(e,r){var t={};for(o in e)Object.prototype.hasOwnProperty.call(e,o)&&r.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);n<o.length;n++)r.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(t[o[n]]=e[o[n]]);return t}function i(e,r,t,n){var o,a=arguments.length,i=a<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,t):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,r,t,n);else for(var s=e.length-1;0<=s;s--)(o=e[s])&&(i=(a<3?o(i):3<a?o(r,t,i):o(r,t))||i);return 3<a&&i&&Object.defineProperty(r,t,i),i}function s(t,n){return function(e,r){n(e,r,t)}}function l(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}function c(e,i,s,l){return new(s=s||Promise)(function(t,r){function n(e){try{a(l.next(e))}catch(e){r(e)}}function o(e){try{a(l.throw(e))}catch(e){r(e)}}function a(e){var r;e.done?t(e.value):((r=e.value)instanceof s?r:new s(function(e){e(r)})).then(n,o)}a((l=l.apply(e,i||[])).next())})}function d(n,o){var a,i,s,l={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},c={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function e(t){return function(e){var r=[t,e];if(a)throw new TypeError("Generator is already executing.");for(;l=c&&r[c=0]?0:l;)try{if(a=1,i&&(s=2&r[0]?i.return:r[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,r[1])).done)return s;switch(i=0,(r=s?[2&r[0],s.value]:r)[0]){case 0:case 1:s=r;break;case 4:return l.label++,{value:r[1],done:!1};case 5:l.label++,i=r[1],r=[0];continue;case 7:r=l.ops.pop(),l.trys.pop();continue;default:if(!(s=0<(s=l.trys).length&&s[s.length-1])&&(6===r[0]||2===r[0])){l=0;continue}if(3===r[0]&&(!s||r[1]>s[0]&&r[1]<s[3]))l.label=r[1];else if(6===r[0]&&l.label<s[1])l.label=s[1],s=r;else{if(!(s&&l.label<s[2])){s[2]&&l.ops.pop(),l.trys.pop();continue}l.label=s[2],l.ops.push(r)}}r=o.call(n,l)}catch(e){r=[6,e],i=0}finally{a=s=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}}var u=Object.create?function(e,r,t,n){void 0===n&&(n=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&("get"in o?r.__esModule:!o.writable&&!o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,n,o)}:function(e,r,t,n){e[n=void 0===n?t:n]=r[t]};function m(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||u(r,e,t)}function f(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&n>=e.length?void 0:e)&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function p(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,o,a=t.call(e),i=[];try{for(;(void 0===r||0<r--)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(t=a.return)&&t.call(a)}finally{if(o)throw o.error}}return i}function h(){for(var e=[],r=0;r<arguments.length;r++)e=e.concat(p(arguments[r]));return e}function _(){for(var e=0,r=0,t=arguments.length;r<t;r++)e+=arguments[r].length;for(var n=Array(e),o=0,r=0;r<t;r++)for(var a=arguments[r],i=0,s=a.length;i<s;i++,o++)n[o]=a[i];return n}function E(e,r,t){if(t||2===arguments.length)for(var n,o=0,a=r.length;o<a;o++)!n&&o in r||((n=n||Array.prototype.slice.call(r,0,o))[o]=r[o]);return e.concat(n||Array.prototype.slice.call(r))}function w(e){return this instanceof w?(this.v=e,this):new w(e)}function g(e,r,t){var o,a,i;if(Symbol.asyncIterator)return o=t.apply(e,r||[]),a=[],i={},n("next"),n("throw"),n("return",function(r){return function(e){return Promise.resolve(e).then(r,c)}}),i[Symbol.asyncIterator]=function(){return this},i;throw new TypeError("Symbol.asyncIterator is not defined.");function n(n,e){o[n]&&(i[n]=function(t){return new Promise(function(e,r){1<a.push([n,t,e,r])||s(n,t)})},e)&&(i[n]=e(i[n]))}function s(e,r){try{(t=o[e](r)).value instanceof w?Promise.resolve(t.value.v).then(l,c):d(a[0][2],t)}catch(e){d(a[0][3],e)}var t}function l(e){s("next",e)}function c(e){s("throw",e)}function d(e,r){e(r),a.shift(),a.length&&s(a[0][0],a[0][1])}}function y(n){var o,e={};return r("next"),r("throw",function(e){throw e}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(r,t){e[r]=n[r]?function(e){return(o=!o)?{value:w(n[r](e)),done:!1}:t?t(e):e}:t}}function v(i){var e,r;if(Symbol.asyncIterator)return(e=i[Symbol.asyncIterator])?e.call(i):(i=f(i),r={},t("next"),t("throw"),t("return"),r[Symbol.asyncIterator]=function(){return this},r);throw new TypeError("Symbol.asyncIterator is not defined.");function t(a){r[a]=i[a]&&function(o){return new Promise(function(e,r){var t,n;o=i[a](o),t=e,e=r,n=o.done,r=o.value,Promise.resolve(r).then(function(e){t({value:e,done:n})},e)})}}}function S(e,r){return Object.defineProperty?Object.defineProperty(e,"raw",{value:r}):e.raw=r,e}var U=Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r};function b(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&u(r,e,t);return U(r,e),r}function F(e){return e&&e.__esModule?e:{default:e}}function k(e,r,t,n){if("a"===t&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof r?e===r&&n:r.has(e))return"m"===t?n:"a"===t?n.call(e):n?n.value:r.get(e);throw new TypeError("Cannot read private member from an object whose class did not declare it")}function T(e,r,t,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof r?e===r&&o:r.has(e))return"a"===n?o.call(e,t):o?o.value=t:r.set(e,t),t;throw new TypeError("Cannot write private member to an object whose class did not declare it")}function A(e,r){if(null===r||"object"!=typeof r&&"function"!=typeof r)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?r===e:e.has(r)}function O(e,r,t){if(null!=r){if("object"!=typeof r&&"function"!=typeof r)throw new TypeError("Object expected.");var n,o;if(t){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=r[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=r[Symbol.dispose],t&&(o=n)}if("function"!=typeof n)throw new TypeError("Object not disposable.");o&&(n=function(){try{o.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:r,dispose:n,async:t})}else t&&e.stack.push({async:!0});return r}var B="function"==typeof SuppressedError?SuppressedError:function(e,r,t){t=new Error(t);return t.name="SuppressedError",t.error=e,t.suppressed=r,t};function D(n){function o(e){n.error=n.hasError?new B(e,n.error,"An error was suppressed during disposal."):e,n.hasError=!0}return function r(){for(;n.stack.length;){var e=n.stack.pop();try{var t=e.dispose&&e.dispose.call(e.value);if(e.async)return Promise.resolve(t).then(r,function(e){return o(e),r()})}catch(e){o(e)}}if(n.hasError)throw n.error}()}var j,z={__extends:e,__assign:t,__rest:a,__decorate:i,__param:s,__metadata:l,__awaiter:c,__generator:d,__createBinding:u,__exportStar:m,__values:f,__read:p,__spread:h,__spreadArrays:_,__spreadArray:E,__await:w,__asyncGenerator:g,__asyncDelegator:y,__asyncValues:v,__makeTemplateObject:S,__importStar:b,__importDefault:F,__classPrivateFieldGet:k,__classPrivateFieldSet:T,__classPrivateFieldIn:A,__addDisposableResource:O,__disposeResources:D},H=x(Object.freeze({__proto__:null,__extends:e,get __assign(){return t},__rest:a,__decorate:i,__param:s,__esDecorate:function(e,r,t,n,o,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=n.kind,c="getter"===l?"get":"setter"===l?"set":"value",e=!r&&e?n.static?e:e.prototype:null,d=r||(e?Object.getOwnPropertyDescriptor(e,n.name):{}),u=!1,m=t.length-1;0<=m;m--){var f,p={};for(f in n)p[f]="access"===f?{}:n[f];for(f in n.access)p.access[f]=n.access[f];p.addInitializer=function(e){if(u)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var h=(0,t[m])("accessor"===l?{get:d.get,set:d.set}:d[c],p);if("accessor"===l){if(void 0!==h){if(null===h||"object"!=typeof h)throw new TypeError("Object expected");(s=i(h.get))&&(d.get=s),(s=i(h.set))&&(d.set=s),(s=i(h.init))&&o.unshift(s)}}else(s=i(h))&&("field"===l?o.unshift(s):d[c]=s)}e&&Object.defineProperty(e,n.name,d),u=!0},__runInitializers:function(e,r,t){for(var n=2<arguments.length,o=0;o<r.length;o++)t=n?r[o].call(e,t):r[o].call(e);return n?t:void 0},__propKey:function(e){return"symbol"==typeof e?e:"".concat(e)},__setFunctionName:function(e,r,t){return"symbol"==typeof r&&(r=r.description?"[".concat(r.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:t?"".concat(t," ",r):r})},__metadata:l,__awaiter:c,__generator:d,__createBinding:u,__exportStar:m,__values:f,__read:p,__spread:h,__spreadArrays:_,__spreadArray:E,__await:w,__asyncGenerator:g,__asyncDelegator:y,__asyncValues:v,__makeTemplateObject:S,__importStar:b,__importDefault:F,__classPrivateFieldGet:k,__classPrivateFieldSet:T,__classPrivateFieldIn:A,__addDisposableResource:O,__disposeResources:D,default:z})),P={};function G(){return j||(j=1,Object.defineProperty(P,"__esModule",{value:!0}),P.defer=function(){let t=null,n=null;var e=new Promise((e,r)=>[t,n]=[e,r]);return Object.assign(e,{resolve:t,reject:n})}),P}var W,M={},N={};var $,Y,I={};function V(){return $||($=1,Object.defineProperty(I,"__esModule",{value:!0}),I.exists=function(e){return null!=e},I.escapeCSSSelector=function(e){return e.replace(/([!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~])/g,"\\$1")},I.getOrCreate=function(e,r,t){var n=e.get(r);return void 0===n&&(n=t(),e.set(r,n)),n},I.createProxy=function(e,o){return new Proxy(e,{get:(e,r,t)=>{var n=o[r];return void 0!==n?"function"==typeof n?n.bind(o):n:"function"==typeof(n=Reflect.get(e,r,t))?n.bind(e):n}})}),I}function K(){if(!Y){Y=1,Object.defineProperty(M,"__esModule",{value:!0}),M.assertExists=function(e,r){if(null!=e)return e;throw new Error(r??"Value doesn't exist")},M.assertDefined=function(e){if(void 0===e)throw new Error("Value is undefined");return e},M.assertIsInstance=function(e,r,t){return n(e instanceof r,t??"Value is not an instance of "+r.name),e},M.assertTrue=n,M.assertFalse=function(e,r){n(!e,r)},M.assertUnreachable=function(e,r){throw new Error(r??"This code should not be reachable "+e)},M.addErrorHandler=function(e){m.includes(e)||m.push(e)},M.reportError=function(r){let t=void 0,n="",e;var o=[],a=location.protocol+"//"+location.host;r instanceof ErrorEvent?(e="ERROR",t=null===r.error||void 0===r.error?(s=(""+r.message).split("\n"),n=s[0],{stack:s.slice(1).join("\n")}):(n=""+r.error,r.error)):r instanceof PromiseRejectionEvent?(e="PROMISE_REJ",n=""+r.reason,t=r.reason):(e="OTHER",n=""+r);if(n=(n=(n=n.replace(/^Uncaught Error:/,"")).replace(/^Error:/,"")).trim(),void 0!==t&&null!==t){var i,s=t.stack;let e=void 0!==s?""+s:"";for(i of(e=e.replaceAll(/\r/g,"")).split("\n"))if(!n.includes(i)){var l=(i=(i=i.replace(/^\s*at\s*/,"")).replace(/\s*\(([^)]+)\)$/,"@$1")).lastIndexOf("@");let e="",r="";0<=l?(r=i.substring(l+1),e=i.substring(0,l)):r=i,r.includes(a)&&(r=(r=r.replace(a,"")).replace(`/${d.VERSION}/`,"")),o.push({name:e,location:r})}r=o.find(e=>e.name.includes("perfetto::"))?.name;n.includes("RuntimeError")&&(0,u.exists)(r)&&(n+=" @ "+r.trim())}for(const c of m)c({errType:e,message:n,stack:o})};W||(W=1,Object.defineProperty(N,"__esModule",{value:!0}),N.SCM_REVISION=N.VERSION=void 0,N.VERSION="v52.0-6b9586def",N.SCM_REVISION="6b9586defccdef92d77b32e1338db72c8e5d5e7c");const d=N,u=V(),m=[];function n(e,r){if(!e)throw new Error(r??"Failed assertion")}}return M}var q,R={exports:{}};function X(){function e(L={}){var x,U,B,j,i=L,e=(new Promise((e,r)=>{x=e,U=r}),"object"==typeof window),d="undefined"!=typeof WorkerGlobalScope,r="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&"renderer"!=process.type,t=!e&&!r&&!d,z=[],H="./this.program",G=(e,r)=>{throw r},W=(d&&(Sr=self.location.href),"");if(t){if("object"==typeof process||"object"==typeof window||"undefined"!=typeof WorkerGlobalScope)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)")}else{if(!e&&!d)throw new Error("environment detection error");try{W=new URL(".",Sr).href}catch{}if("object"!=typeof window&&"undefined"==typeof WorkerGlobalScope)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");d&&(j=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),B=async e=>{h(!J(e),"readAsync does not work with file:// URLs");e=await fetch(e,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)}}var $,Y,V,f,s,K,p,n,a,u,m=console.log.bind(console),l=console.error.bind(console),c="WORKERFS is no longer included by default; build with -lworkerfs.js",q=(h(!r,"node environment detected but not enabled at build time. Add `node` to `-sENVIRONMENT` to enable."),h(!t,"shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable."),"object"!=typeof WebAssembly&&l("no native wasm support detected"),!1);function h(e,r){e||w("Assertion failed"+(r?": "+r:""))}var X=!1,J=e=>e.startsWith("file://");function Z(){var e,r,t;q||(0==(e=fr())&&(e+=4),r=n[e/4],t=n[(e+4)/4],34821223==r&&2310721022==t||w(`Stack overflow! Stack cookie has been overwritten at ${he(e)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${he(t)} `+he(r)),1668509029!=n[0]&&w("Runtime error: The application has corrupted its heap memory area (address zero)!"))}var e=new Int16Array(1),r=new Int8Array(e.buffer);if(e[0]=25459,115!==r[0]||99!==r[1])throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)";function Q(e){Object.getOwnPropertyDescriptor(i,e)||Object.defineProperty(i,e,{configurable:!0,set(){w(`Attempt to set \`Module.${e}\` after it has already been processed. This can happen, for example, when code is injected via '--post-js' rather than '--pre-js'`)}})}function ee(t){Object.getOwnPropertyDescriptor(i,t)||Object.defineProperty(i,t,{configurable:!0,get(){var e,r=`'${t}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;"FS_createPath"!==(e=t)&&"FS_createDataFile"!==e&&"FS_createPreloadedFile"!==e&&"FS_unlink"!==e&&"addRunDependency"!==e&&"FS_createLazyFile"!==e&&"FS_createDevice"!==e&&"removeRunDependency"!==e||(r+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),w(r)}})}function re(){var e=Y.buffer;f=new Int8Array(e),K=new Int16Array(e),i.HEAPU8=s=new Uint8Array(e),p=new Int32Array(e),n=new Uint32Array(e),a=new BigInt64Array(e),u=new BigUint64Array(e)}h("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&null!=Int32Array.prototype.subarray&&null!=Int32Array.prototype.set,"JS engine does not provide full typed array support");var te,_=0,ne=null,E={},o=null;function oe(e){_++,i.monitorRunDependencies?.(_),e?(h(!E[e]),E[e]=1,null===o&&"undefined"!=typeof setInterval&&(o=setInterval(()=>{if(q)clearInterval(o),o=null;else{var e,r=!1;for(e in E)r||(r=!0,l("still waiting on run dependencies:")),l("dependency: "+e);r&&l("(end of list)")}},1e4))):l("warning: run dependency added without ID")}function ae(e){_--,i.monitorRunDependencies?.(_),e?(h(E[e]),delete E[e]):l("warning: run dependency removed without ID"),0==_&&(null!==o&&(clearInterval(o),o=null),ne)&&(e=ne,ne=null,e())}function w(e){i.onAbort?.(e),l(e="Aborted("+e+")"),q=!0;e=new WebAssembly.RuntimeError(e);throw U(e),e}function g(t,n){return(...e)=>{h(X,`native function \`${t}\` called before runtime initialization`);var r=C[t];return h(r,`exported native function \`${t}\` not found`),h(e.length<=n,`native function \`${t}\` called with ${e.length} args but expects `+n),r(...e)}}function ie(){return e="trace_processor_memory64.wasm",i.locateFile?i.locateFile(e,W):W+e;var e}function se(e,r){e=function(e){if(e==te&&$)return new Uint8Array($);if(j)return j(e);throw'sync fetching of the wasm failed: you can preload it to Module["wasmBinary"] manually, or emcc.py will do that for you when generating HTML (but not JS)'}(e),e=new WebAssembly.Module(e);return[new WebAssembly.Instance(e,r),e]}class le{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var y,v,ce=e=>{for(;0<e.length;)e.shift()(i)},de=[],ue=e=>de.push(e),me=[],fe=e=>me.push(e),pe=!0,he=e=>(h("number"==typeof e),"0x"+e.toString(16).padStart(8,"0")),_e=e=>_r(e),Ee=()=>wr(),S=e=>{S.shown||={},S.shown[e]||(S.shown[e]=1,l(e))},b=e=>e<-9007199254740992||9007199254740992<e?NaN:Number(e),we="undefined"!=typeof TextDecoder?new TextDecoder:void 0,F=(e,r=0,t=NaN)=>{for(var n=r+t,o=r;e[o]&&!(n<=o);)++o;if(16<o-r&&e.buffer&&we)return we.decode(e.subarray(r,o));for(var a="";r<o;){var i,s,l=e[r++];128&l?(s=63&e[r++],192==(224&l)?a+=String.fromCharCode((31&l)<<6|s):(i=63&e[r++],(l=224==(240&l)?(15&l)<<12|s<<6|i:(240!=(248&l)&&S("Invalid UTF-8 leading byte "+he(l)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),(7&l)<<18|s<<12|i<<6|63&e[r++]))<65536?a+=String.fromCharCode(l):(s=l-65536,a+=String.fromCharCode(55296|s>>10,56320|1023&s)))):a+=String.fromCharCode(l)}return a},k=(e,r)=>(h("number"==typeof e,`UTF8ToString expects a number (got ${typeof e})`),e?F(s,e,r):""),T={isAbs:e=>"/"===e.charAt(0),splitPath:e=>{return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;0<=n;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=T.isAbs(e),t="/"===e.slice(-1);return(e=(e=T.normalizeArray(e.split("/").filter(e=>!!e),!r).join("/"))||r?e:".")&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var e=T.splitPath(e),r=e[0],e=e[1];return r||e?r+(e=e&&e.slice(0,-1)):"."},basename:e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],join:(...e)=>T.normalize(e.join("/")),join2:(e,r)=>T.normalize(e+"/"+r)},ge=()=>e=>crypto.getRandomValues(e),ye=e=>{(ye=ge())(e)},A={resolve:(...e)=>{for(var r="",t=!1,n=e.length-1;-1<=n&&!t;n--){var o=0<=n?e[n]:M.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";r=o+"/"+r,t=T.isAbs(o)}return(t?"/":"")+(r=T.normalizeArray(r.split("/").filter(e=>!!e),!t).join("/"))||"."},relative:(e,r)=>{function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;0<=t&&""===e[t];t--);return t<r?[]:e.slice(r,t-r+1)}e=A.resolve(e).slice(1),r=A.resolve(r).slice(1);for(var n=t(e.split("/")),o=t(r.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s<a;s++)if(n[s]!==o[s]){i=s;break}for(var l=[],s=i;s<n.length;s++)l.push("..");return(l=l.concat(o.slice(i))).join("/")}},ve=[],O=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:55296<=n&&n<=57343?(r+=4,++t):r+=3}return r},Se=(e,r,t,n)=>{if(h("string"==typeof e,`stringToUTF8Array expects a string (got ${typeof e})`),!(0<n))return 0;for(var o=t,a=t+n-1,i=0;i<e.length;++i){var s=e.charCodeAt(i);if((s=55296<=s&&s<=57343?65536+((1023&s)<<10)|1023&e.charCodeAt(++i):s)<=127){if(a<=t)break;r[t++]=s}else{if(s<=2047){if(a<=t+1)break;r[t++]=192|s>>6}else{if(s<=65535){if(a<=t+2)break;r[t++]=224|s>>12}else{if(a<=t+3)break;1114111<s&&S("Invalid Unicode code point "+he(s)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),r[t++]=240|s>>18,r[t++]=128|s>>12&63}r[t++]=128|s>>6&63}r[t++]=128|63&s}}return r[t]=0,t-o},be=(e,r,t)=>{t=0<t?t:O(e)+1,t=new Array(t),e=Se(e,t,0,t.length);return r&&(t.length=e),t},D={ttys:[],init(){},shutdown(){},register(e,r){D.ttys[e]={input:[],output:[],ops:r},M.registerDevice(e,D.stream_ops)},stream_ops:{open(e){var r=D.ttys[e.node.rdev];if(!r)throw new M.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new M.ErrnoError(60);for(var a,i=0,s=0;s<n;s++){try{a=e.tty.ops.get_char(e.tty)}catch(e){throw new M.ErrnoError(29)}if(void 0===a&&0===i)throw new M.ErrnoError(6);if(null==a)break;i++,r[t+s]=a}return i&&(e.node.atime=Date.now()),i},write(e,r,t,n,o){if(!e.tty||!e.tty.ops.put_char)throw new M.ErrnoError(60);try{for(var a=0;a<n;a++)e.tty.ops.put_char(e.tty,r[t+a])}catch(e){throw new M.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),a}},default_tty_ops:{get_char(e){if(!ve.length){var r=null;if("undefined"!=typeof window&&"function"==typeof window.prompt&&null!==(r=window.prompt("Input: "))&&(r+="\n"),!r)return null;ve=be(r,!0)}return ve.shift()},put_char(e,r){null===r||10===r?(m(F(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){0<e.output?.length&&(m(F(e.output)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,r,t){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,r){null===r||10===r?(l(F(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){0<e.output?.length&&(l(F(e.output)),e.output=[])}}},Fe=(e,r)=>s.fill(0,e,e+r),ke=(e,r)=>(h(r,"alignment argument is required"),Math.ceil(e/r)*r),Te=e=>{e=ke(e,65536);var r=pr(65536,e);return r&&Fe(r,e),r},P={ops_table:null,mount(e){return P.createNode(null,"/",16895,0)},createNode(e,r,t,n){if(M.isBlkdev(t)||M.isFIFO(t))throw new M.ErrnoError(63);P.ops_table||={dir:{node:{getattr:P.node_ops.getattr,setattr:P.node_ops.setattr,lookup:P.node_ops.lookup,mknod:P.node_ops.mknod,rename:P.node_ops.rename,unlink:P.node_ops.unlink,rmdir:P.node_ops.rmdir,readdir:P.node_ops.readdir,symlink:P.node_ops.symlink},stream:{llseek:P.stream_ops.llseek}},file:{node:{getattr:P.node_ops.getattr,setattr:P.node_ops.setattr},stream:{llseek:P.stream_ops.llseek,read:P.stream_ops.read,write:P.stream_ops.write,mmap:P.stream_ops.mmap,msync:P.stream_ops.msync}},link:{node:{getattr:P.node_ops.getattr,setattr:P.node_ops.setattr,readlink:P.node_ops.readlink},stream:{}},chrdev:{node:{getattr:P.node_ops.getattr,setattr:P.node_ops.setattr},stream:M.chrdev_stream_ops}};t=M.createNode(e,r,t,n);return M.isDir(t.mode)?(t.node_ops=P.ops_table.dir.node,t.stream_ops=P.ops_table.dir.stream,t.contents={}):M.isFile(t.mode)?(t.node_ops=P.ops_table.file.node,t.stream_ops=P.ops_table.file.stream,t.usedBytes=0,t.contents=null):M.isLink(t.mode)?(t.node_ops=P.ops_table.link.node,t.stream_ops=P.ops_table.link.stream):M.isChrdev(t.mode)&&(t.node_ops=P.ops_table.chrdev.node,t.stream_ops=P.ops_table.chrdev.stream),t.atime=t.mtime=t.ctime=Date.now(),e&&(e.contents[r]=t,e.atime=e.mtime=e.ctime=t.atime),t},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,r){var t=e.contents?e.contents.length:0;r<=t||(r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256)),t=e.contents,e.contents=new Uint8Array(r),0<e.usedBytes&&e.contents.set(t.subarray(0,e.usedBytes),0))},resizeFileStorage(e,r){var t;e.usedBytes!=r&&(0==r?(e.contents=null,e.usedBytes=0):(t=e.contents,e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r))},node_ops:{getattr(e){var r={};return r.dev=M.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,M.isDir(e.mode)?r.size=4096:M.isFile(e.mode)?r.size=e.usedBytes:M.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.atime),r.mtime=new Date(e.mtime),r.ctime=new Date(e.ctime),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){for(const t of["mode","atime","mtime","ctime"])null!=r[t]&&(e[t]=r[t]);void 0!==r.size&&P.resizeFileStorage(e,r.size)},lookup(e,r){throw new M.ErrnoError(44)},mknod(e,r,t,n){return P.createNode(e,r,t,n)},rename(e,r,t){var n;try{n=M.lookupNode(r,t)}catch(e){}if(n){if(M.isDir(e.mode))for(var o in n.contents)throw new M.ErrnoError(55);M.hashRemoveNode(n)}delete e.parent.contents[e.name],(r.contents[t]=e).name=t,r.ctime=r.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,r){delete e.contents[r],e.ctime=e.mtime=Date.now()},rmdir(e,r){for(var t in M.lookupNode(e,r).contents)throw new M.ErrnoError(55);delete e.contents[r],e.ctime=e.mtime=Date.now()},readdir(e){return[".","..",...Object.keys(e.contents)]},symlink(e,r,t){e=P.createNode(e,r,41471,0);return e.link=t,e},readlink(e){if(M.isLink(e.mode))return e.link;throw new M.ErrnoError(28)}},stream_ops:{read(e,r,t,n,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var i=Math.min(e.node.usedBytes-o,n);if(h(0<=i),8<i&&a.subarray)r.set(a.subarray(o,o+i),t);else for(var s=0;s<i;s++)r[t+s]=a[o+s];return i},write(e,r,t,n,o,a){if(h(!(r instanceof ArrayBuffer)),r.buffer===f.buffer&&(a=!1),!n)return 0;var i=e.node;if(i.mtime=i.ctime=Date.now(),r.subarray&&(!i.contents||i.contents.subarray)){if(a)return h(0===o,"canOwn must imply no weird position inside the file"),i.contents=r.subarray(t,t+n),i.usedBytes=n;if(0===i.usedBytes&&0===o)return i.contents=r.slice(t,t+n),i.usedBytes=n;if(o+n<=i.usedBytes)return i.contents.set(r.subarray(t,t+n),o),n}if(P.expandFileStorage(i,o+n),i.contents.subarray&&r.subarray)i.contents.set(r.subarray(t,t+n),o);else for(var s=0;s<n;s++)i.contents[o+s]=r[t+s];return i.usedBytes=Math.max(i.usedBytes,o+n),n},llseek(e,r,t){if(1===t?r+=e.position:2===t&&M.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new M.ErrnoError(28);return r},mmap(e,r,t,n,o){if(!M.isFile(e.node.mode))throw new M.ErrnoError(43);var a,i,e=e.node.contents;if(2&o||!e||e.buffer!==f.buffer){if(i=!0,!(a=Te(r)))throw new M.ErrnoError(48);e&&((0<t||t+r<e.length)&&(e=e.subarray?e.subarray(t,t+r):Array.prototype.slice.call(e,t,t+r)),f.set(e,a))}else i=!1,a=e.byteOffset;return{ptr:a,allocated:i}},msync(e,r,t,n,o){return P.stream_ops.write(e,r,0,n,t,!1),0}}},Ae=async e=>{var r=await B(e);return h(r,`Loading data file "${e}" failed (no arrayBuffer).`),new Uint8Array(r)},Oe=(...e)=>M.createDataFile(...e),De=[],Pe=(r,t,n,o)=>{"undefined"!=typeof Browser&&Browser.init();var a=!1;return De.forEach(e=>{a||e.canHandle(t)&&(e.handle(r,t,n,o),a=!0)}),a},Me=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},c={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount(e){h(d),c.reader??=new FileReaderSync;var a=c.createNode(null,"/",c.DIR_MODE,0),i={};function n(e){for(var r=e.split("/"),t=a,n=0;n<r.length-1;n++){var o=r.slice(0,n+1).join("/");i[o]||=c.createNode(t,r[n],c.DIR_MODE,0),t=i[o]}return t}function o(e){e=e.split("/");return e[e.length-1]}return Array.prototype.forEach.call(e.opts.files||[],function(e){c.createNode(n(e.name),o(e.name),c.FILE_MODE,0,e,e.lastModifiedDate)}),(e.opts.blobs||[]).forEach(e=>{c.createNode(n(e.name),o(e.name),c.FILE_MODE,0,e.data)}),(e.opts.packages||[]).forEach(t=>{t.metadata.files.forEach(e=>{var r=e.filename.slice(1);c.createNode(n(r),o(r),c.FILE_MODE,0,t.blob.slice(e.start,e.end))})}),a},createNode(e,r,t,n,o,a){var i=M.createNode(e,r,t);return i.mode=t,i.node_ops=c.node_ops,i.stream_ops=c.stream_ops,i.atime=i.mtime=i.ctime=(a||new Date).getTime(),h(c.FILE_MODE!==c.DIR_MODE),t===c.FILE_MODE?(i.size=o.size,i.contents=o):(i.size=4096,i.contents={}),e&&(e.contents[r]=i),i},node_ops:{getattr(e){return{dev:1,ino:e.id,mode:e.mode,nlink:1,uid:0,gid:0,rdev:0,size:e.size,atime:new Date(e.atime),mtime:new Date(e.mtime),ctime:new Date(e.ctime),blksize:4096,blocks:Math.ceil(e.size/4096)}},setattr(e,r){for(const t of["mode","atime","mtime","ctime"])null!=r[t]&&(e[t]=r[t])},lookup(e,r){throw new M.ErrnoError(44)},mknod(e,r,t,n){throw new M.ErrnoError(63)},rename(e,r,t){throw new M.ErrnoError(63)},unlink(e,r){throw new M.ErrnoError(63)},rmdir(e,r){throw new M.ErrnoError(63)},readdir(e){var r,t=[".",".."];for(r of Object.keys(e.contents))t.push(r);return t},symlink(e,r,t){throw new M.ErrnoError(63)}},stream_ops:{read(e,r,t,n,o){return o>=e.node.size?0:(e=e.node.contents.slice(o,o+n),o=c.reader.readAsArrayBuffer(e),r.set(new Uint8Array(o),t),e.size)},write(e,r,t,n,o){throw new M.ErrnoError(29)},llseek(e,r,t){if(1===t?r+=e.position:2===t&&M.isFile(e.node.mode)&&(r+=e.node.size),r<0)throw new M.ErrnoError(28);return r}}},Ne={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},M={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class extends Error{name="ErrnoError";constructor(e){for(var r in super(X?k(dr(e)):""),this.errno=e,Ne)if(Ne[r]===e){this.code=r;break}}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return 0!=(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,r,t,n){this.parent=e=e||this,this.mount=e.mount,this.id=M.nextInode++,this.name=r,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return M.isDir(this.mode)}get isDevice(){return M.isChrdev(this.mode)}},lookupPath(e,r={}){if(!e)throw new M.ErrnoError(44);r.follow_mount??=!0,T.isAbs(e)||(e=M.cwd()+"/"+e);e:for(var t=0;t<40;t++){for(var n=e.split("/").filter(e=>!!e),o=M.root,a="/",i=0;i<n.length;i++){var s=i===n.length-1;if(s&&r.parent)break;if("."!==n[i])if(".."===n[i]){if(a=T.dirname(a),M.isRoot(o)){e=a+"/"+n.slice(i+1).join("/");continue e}o=o.parent}else{a=T.join2(a,n[i]);try{o=M.lookupNode(o,n[i])}catch(e){if(44===e?.errno&&s&&r.noent_okay)return{path:a};throw e}if(!M.isMountpoint(o)||s&&!r.follow_mount||(o=o.mounted.root),M.isLink(o.mode)&&(!s||r.follow)){if(!o.node_ops.readlink)throw new M.ErrnoError(52);s=o.node_ops.readlink(o);e=(s=T.isAbs(s)?s:T.dirname(a)+"/"+s)+"/"+n.slice(i+1).join("/");continue e}}}return{path:a,node:o}}throw new M.ErrnoError(32)},getPath(e){for(var r,t;;){if(M.isRoot(e))return t=e.mount.mountpoint,r?"/"!==t[t.length-1]?t+"/"+r:t+r:t;r=r?e.name+"/"+r:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%M.nameTable.length},hashAddNode(e){var r=M.hashName(e.parent.id,e.name);e.name_next=M.nameTable[r],M.nameTable[r]=e},hashRemoveNode(e){var r=M.hashName(e.parent.id,e.name);if(M.nameTable[r]===e)M.nameTable[r]=e.name_next;else for(var t=M.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=M.mayLookup(e);if(t)throw new M.ErrnoError(t);for(var t=M.hashName(e.id,r),n=M.nameTable[t];n;n=n.name_next){var o=n.name;if(n.parent.id===e.id&&o===r)return n}return M.lookup(e,r)},createNode(e,r,t,n){h("object"==typeof e);e=new M.FSNode(e,r,t,n);return M.hashAddNode(e),e},destroyNode(e){M.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return 32768==(61440&e)},isDir(e){return 16384==(61440&e)},isLink(e){return 40960==(61440&e)},isChrdev(e){return 8192==(61440&e)},isBlkdev(e){return 24576==(61440&e)},isFIFO(e){return 4096==(61440&e)},isSocket(e){return 49152==(49152&e)},flagsToPermissionString(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions(e,r){return M.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2},mayLookup(e){return M.isDir(e.mode)?M.nodePermissions(e,"x")||(e.node_ops.lookup?0:2):54},mayCreate(e,r){if(!M.isDir(e.mode))return 54;try{M.lookupNode(e,r);return 20}catch(e){}return M.nodePermissions(e,"wx")},mayDelete(e,r,t){var n;try{n=M.lookupNode(e,r)}catch(e){return e.errno}r=M.nodePermissions(e,"wx");if(r)return r;if(t){if(!M.isDir(n.mode))return 54;if(M.isRoot(n)||M.getPath(n)===M.cwd())return 10}else if(M.isDir(n.mode))return 31;return 0},mayOpen(e,r){return e?M.isLink(e.mode)?32:M.isDir(e.mode)&&("r"!==M.flagsToPermissionString(r)||576&r)?31:M.nodePermissions(e,M.flagsToPermissionString(r)):44},checkOpExists(e,r){if(e)return e;throw new M.ErrnoError(r)},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=M.MAX_OPEN_FDS;e++)if(!M.streams[e])return e;throw new M.ErrnoError(33)},getStreamChecked(e){e=M.getStream(e);if(e)return e;throw new M.ErrnoError(8)},getStream:e=>M.streams[e],createStream(e,r=-1){return h(-1<=r),e=Object.assign(new M.FSStream,e),-1==r&&(r=M.nextfd()),e.fd=r,M.streams[r]=e},closeStream(e){M.streams[e]=null},dupStream(e,r=-1){e=M.createStream(e,r);return e.stream_ops?.dup?.(e),e},doSetAttr(e,r,t){var n=e?.stream_ops.setattr,e=n?e:r;n??=r.node_ops.setattr,M.checkOpExists(n,63),n(e,t)},chrdev_stream_ops:{open(e){var r=M.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new M.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,r)=>e<<8|r,registerDevice(e,r){M.devices[e]={stream_ops:r}},getDevice:e=>M.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(r,t){"function"==typeof r&&(t=r,r=!1),M.syncFSRequests++,1<M.syncFSRequests&&l(`warning: ${M.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var n=M.getMounts(M.root.mount),o=0;function a(e){return h(0<M.syncFSRequests),M.syncFSRequests--,t(e)}function i(e){if(e)return i.errored?void 0:(i.errored=!0,a(e));++o>=n.length&&a(null)}n.forEach(e=>{if(!e.type.syncfs)return i(null);e.type.syncfs(e,r,i)})},mount(e,r,t){if("string"==typeof e)throw e;var n,o="/"===t,a=!t;if(o&&M.root)throw new M.ErrnoError(10);if(!o&&!a){a=M.lookupPath(t,{follow_mount:!1});if(t=a.path,n=a.node,M.isMountpoint(n))throw new M.ErrnoError(10);if(!M.isDir(n.mode))throw new M.ErrnoError(54)}a={type:e,opts:r,mountpoint:t,mounts:[]},r=e.mount(a);return(r.mount=a).root=r,o?M.root=r:n&&(n.mounted=a,n.mount)&&n.mount.mounts.push(a),r},unmount(e){e=M.lookupPath(e,{follow_mount:!1});if(!M.isMountpoint(e.node))throw new M.ErrnoError(28);var e=e.node,r=e.mounted,n=M.getMounts(r),r=(Object.keys(M.nameTable).forEach(e=>{for(var r=M.nameTable[e];r;){var t=r.name_next;n.includes(r.mount)&&M.destroyNode(r),r=t}}),e.mounted=null,e.mount.mounts.indexOf(r));h(-1!==r),e.mount.mounts.splice(r,1)},lookup(e,r){return e.node_ops.lookup(e,r)},mknod(e,r,t){var n=M.lookupPath(e,{parent:!0}).node,e=T.basename(e);if(!e)throw new M.ErrnoError(28);if("."===e||".."===e)throw new M.ErrnoError(20);var o=M.mayCreate(n,e);if(o)throw new M.ErrnoError(o);if(n.node_ops.mknod)return n.node_ops.mknod(n,e,r,t);throw new M.ErrnoError(63)},statfs(e){return M.statfsNode(M.lookupPath(e,{follow:!0}).node)},statfsStream(e){return M.statfsNode(e.node)},statfsNode(e){var r={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:M.nextInode,ffree:M.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(r,e.node_ops.statfs(e.mount.opts.root)),r},create(e,r=438){return M.mknod(e,r=r&4095|32768,0)},mkdir(e,r=511){return M.mknod(e,r=r&1023|16384,0)},mkdirTree(e,r){var t,n="";for(t of e.split("/"))if(t){(n||T.isAbs(e))&&(n+="/"),n+=t;try{M.mkdir(n,r)}catch(e){if(20!=e.errno)throw e}}},mkdev(e,r,t){return void 0===t&&(t=r,r=438),M.mknod(e,r|=8192,t)},symlink(e,r){if(!A.resolve(e))throw new M.ErrnoError(44);var t=M.lookupPath(r,{parent:!0}).node;if(!t)throw new M.ErrnoError(44);var r=T.basename(r),n=M.mayCreate(t,r);if(n)throw new M.ErrnoError(n);if(t.node_ops.symlink)return t.node_ops.symlink(t,r,e);throw new M.ErrnoError(63)},rename(e,r){var t=T.dirname(e),n=T.dirname(r),o=T.basename(e),a=T.basename(r),i=M.lookupPath(e,{parent:!0}),i=i.node,s=M.lookupPath(r,{parent:!0}).node;if(!i||!s)throw new M.ErrnoError(44);if(i.mount!==s.mount)throw new M.ErrnoError(75);var l,c=M.lookupNode(i,o),e=A.relative(e,n);if("."!==e.charAt(0))throw new M.ErrnoError(28);if("."!==(e=A.relative(r,t)).charAt(0))throw new M.ErrnoError(55);try{l=M.lookupNode(s,a)}catch(e){}if(c!==l){n=M.isDir(c.mode),r=M.mayDelete(i,o,n);if(r)throw new M.ErrnoError(r);if(r=l?M.mayDelete(s,a,n):M.mayCreate(s,a))throw new M.ErrnoError(r);if(!i.node_ops.rename)throw new M.ErrnoError(63);if(M.isMountpoint(c)||l&&M.isMountpoint(l))throw new M.ErrnoError(10);if(s!==i&&(r=M.nodePermissions(i,"w")))throw new M.ErrnoError(r);M.hashRemoveNode(c);try{i.node_ops.rename(c,s,a),c.parent=s}catch(e){throw e}finally{M.hashAddNode(c)}}},rmdir(e){var r=M.lookupPath(e,{parent:!0}).node,e=T.basename(e),t=M.lookupNode(r,e),n=M.mayDelete(r,e,!0);if(n)throw new M.ErrnoError(n);if(!r.node_ops.rmdir)throw new M.ErrnoError(63);if(M.isMountpoint(t))throw new M.ErrnoError(10);r.node_ops.rmdir(r,e),M.destroyNode(t)},readdir(e){e=M.lookupPath(e,{follow:!0}).node;return M.checkOpExists(e.node_ops.readdir,54)(e)},unlink(e){var r=M.lookupPath(e,{parent:!0}).node;if(!r)throw new M.ErrnoError(44);var e=T.basename(e),t=M.lookupNode(r,e),n=M.mayDelete(r,e,!1);if(n)throw new M.ErrnoError(n);if(!r.node_ops.unlink)throw new M.ErrnoError(63);if(M.isMountpoint(t))throw new M.ErrnoError(10);r.node_ops.unlink(r,e),M.destroyNode(t)},readlink(e){e=M.lookupPath(e).node;if(!e)throw new M.ErrnoError(44);if(e.node_ops.readlink)return e.node_ops.readlink(e);throw new M.ErrnoError(28)},stat(e,r){e=M.lookupPath(e,{follow:!r}).node;return M.checkOpExists(e.node_ops.getattr,63)(e)},fstat(e){var e=M.getStreamChecked(e),r=e.node,t=e.stream_ops.getattr,e=t?e:r;return t??=r.node_ops.getattr,M.checkOpExists(t,63),t(e)},lstat(e){return M.stat(e,!0)},doChmod(e,r,t,n){M.doSetAttr(e,r,{mode:4095&t|-4096&r.mode,ctime:Date.now(),dontFollow:n})},chmod(e,r,t){e="string"==typeof e?M.lookupPath(e,{follow:!t}).node:e,M.doChmod(null,e,r,t)},lchmod(e,r){M.chmod(e,r,!0)},fchmod(e,r){e=M.getStreamChecked(e);M.doChmod(e,e.node,r,!1)},doChown(e,r,t){M.doSetAttr(e,r,{timestamp:Date.now(),dontFollow:t})},chown(e,r,t,n){e="string"==typeof e?M.lookupPath(e,{follow:!n}).node:e,M.doChown(null,e,n)},lchown(e,r,t){M.chown(e,r,t,!0)},fchown(e,r,t){e=M.getStreamChecked(e);M.doChown(e,e.node,!1)},doTruncate(e,r,t){if(M.isDir(r.mode))throw new M.ErrnoError(31);if(!M.isFile(r.mode))throw new M.ErrnoError(28);var n=M.nodePermissions(r,"w");if(n)throw new M.ErrnoError(n);M.doSetAttr(e,r,{size:t,timestamp:Date.now()})},truncate(e,r){if(r<0)throw new M.ErrnoError(28);e="string"==typeof e?M.lookupPath(e,{follow:!0}).node:e,M.doTruncate(null,e,r)},ftruncate(e,r){e=M.getStreamChecked(e);if(r<0||0==(2097155&e.flags))throw new M.ErrnoError(28);M.doTruncate(e,e.node,r)},utime(e,r,t){e=M.lookupPath(e,{follow:!0}).node;M.checkOpExists(e.node_ops.setattr,63)(e,{atime:r,mtime:t})},open(e,r,t=438){if(""===e)throw new M.ErrnoError(44);t=64&(r="string"==typeof r?(e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r})(r):r)?4095&t|32768:0,"object"==typeof e?n=e:(a=e.endsWith("/"),n=(o=M.lookupPath(e,{follow:!(131072&r),noent_okay:!0})).node,e=o.path);var n,o=!1;if(64&r)if(n){if(128&r)throw new M.ErrnoError(20)}else{if(a)throw new M.ErrnoError(31);n=M.mknod(e,511|t,0),o=!0}if(!n)throw new M.ErrnoError(44);if(M.isChrdev(n.mode)&&(r&=-513),65536&r&&!M.isDir(n.mode))throw new M.ErrnoError(54);if(!o){var a=M.mayOpen(n,r);if(a)throw new M.ErrnoError(a)}512&r&&!o&&M.truncate(n,0),r&=-131713;a=M.createStream({node:n,path:M.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return a.stream_ops.open&&a.stream_ops.open(a),o&&M.chmod(n,511&t),!i.logReadFiles||1&r||e in M.readFiles||(M.readFiles[e]=1),a},close(e){if(M.isClosed(e))throw new M.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{M.closeStream(e.fd)}e.fd=null},isClosed(e){return null===e.fd},llseek(e,r,t){if(M.isClosed(e))throw new M.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new M.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new M.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,o){if(h(0<=t),n<0||o<0)throw new M.ErrnoError(28);if(M.isClosed(e))throw new M.ErrnoError(8);if(1==(2097155&e.flags))throw new M.ErrnoError(8);if(M.isDir(e.node.mode))throw new M.ErrnoError(31);if(!e.stream_ops.read)throw new M.ErrnoError(28);var a=void 0!==o;if(a){if(!e.seekable)throw new M.ErrnoError(70)}else o=e.position;r=e.stream_ops.read(e,r,t,n,o);return a||(e.position+=r),r},write(e,r,t,n,o,a){if(h(0<=t),n<0||o<0)throw new M.ErrnoError(28);if(M.isClosed(e))throw new M.ErrnoError(8);if(0==(2097155&e.flags))throw new M.ErrnoError(8);if(M.isDir(e.node.mode))throw new M.ErrnoError(31);if(!e.stream_ops.write)throw new M.ErrnoError(28);e.seekable&&1024&e.flags&&M.llseek(e,0,2);var i=void 0!==o;if(i){if(!e.seekable)throw new M.ErrnoError(70)}else o=e.position;r=e.stream_ops.write(e,r,t,n,o,a);return i||(e.position+=r),r},mmap(e,r,t,n,o){if(0!=(2&n)&&0==(2&o)&&2!=(2097155&e.flags))throw new M.ErrnoError(2);if(1==(2097155&e.flags))throw new M.ErrnoError(2);if(!e.stream_ops.mmap)throw new M.ErrnoError(43);if(r)return e.stream_ops.mmap(e,r,t,n,o);throw new M.ErrnoError(28)},msync(e,r,t,n,o){return h(0<=t),e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0},ioctl(e,r,t){if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,r,t);throw new M.ErrnoError(59)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error(`Invalid encoding type "${r.encoding}"`);var t,n=M.open(e,r.flags),e=M.stat(e).size,o=new Uint8Array(e);return M.read(n,o,0,e,0),"utf8"===r.encoding?t=F(o):"binary"===r.encoding&&(t=o),M.close(n),t},writeFile(e,r,t={}){t.flags=t.flags||577;e=M.open(e,t.flags,t.mode);if("string"==typeof r){var n=new Uint8Array(O(r)+1),o=Se(r,n,0,n.length);M.write(e,n,0,o,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(r))throw new Error("Unsupported data type");M.write(e,r,0,r.byteLength,void 0,t.canOwn)}M.close(e)},cwd:()=>M.currentPath,chdir(e){e=M.lookupPath(e,{follow:!0});if(null===e.node)throw new M.ErrnoError(44);if(!M.isDir(e.node.mode))throw new M.ErrnoError(54);var r=M.nodePermissions(e.node,"x");if(r)throw new M.ErrnoError(r);M.currentPath=e.path},createDefaultDirectories(){M.mkdir("/tmp"),M.mkdir("/home"),M.mkdir("/home/web_user")},createDefaultDevices(){M.mkdir("/dev"),M.registerDevice(M.makedev(1,3),{read:()=>0,write:(e,r,t,n,o)=>n,llseek:()=>0}),M.mkdev("/dev/null",M.makedev(1,3)),D.register(M.makedev(5,0),D.default_tty_ops),D.register(M.makedev(6,0),D.default_tty1_ops),M.mkdev("/dev/tty",M.makedev(5,0)),M.mkdev("/dev/tty1",M.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(0===r&&(ye(e),r=e.byteLength),e[--r]);M.createDevice("/dev","random",t),M.createDevice("/dev","urandom",t),M.mkdir("/dev/shm"),M.mkdir("/dev/shm/tmp")},createSpecialDirectories(){M.mkdir("/proc");var r=M.mkdir("/proc/self");M.mkdir("/proc/self/fd"),M.mount({mount(){var e=M.createNode(r,"fd",16895,73);return e.stream_ops={llseek:P.stream_ops.llseek},e.node_ops={lookup(e,r){var r=+r,t=M.getStreamChecked(r),r={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>t.path},id:1+r};return r.parent=r},readdir(){return Array.from(M.streams.entries()).filter(([,e])=>e).map(([e])=>e.toString())}},e}},{},"/proc/self/fd")},createStandardStreams(e,r,t){e?M.createDevice("/dev","stdin",e):M.symlink("/dev/tty","/dev/stdin"),r?M.createDevice("/dev","stdout",null,r):M.symlink("/dev/tty","/dev/stdout"),t?M.createDevice("/dev","stderr",null,t):M.symlink("/dev/tty1","/dev/stderr");e=M.open("/dev/stdin",0),r=M.open("/dev/stdout",1),t=M.open("/dev/stderr",1);h(0===e.fd,`invalid handle for stdin (${e.fd})`),h(1===r.fd,`invalid handle for stdout (${r.fd})`),h(2===t.fd,`invalid handle for stderr (${t.fd})`)},staticInit(){M.nameTable=new Array(4096),M.mount(P,{},"/"),M.createDefaultDirectories(),M.createDefaultDevices(),M.createSpecialDirectories(),M.filesystems={MEMFS:P,WORKERFS:c}},init(e,r,t){h(!M.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),M.initialized=!0,e??=i.stdin,r??=i.stdout,t??=i.stderr,M.createStandardStreams(e,r,t)},quit(){M.initialized=!1,ur(0);for(var e of M.streams)e&&M.close(e)},findObject(e,r){e=M.analyzePath(e,r);return e.exists?e.object:null},analyzePath(e,r){try{e=(n=M.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=M.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=T.basename(e),n=M.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(e){t.error=e.errno}return t},createPath(e,r,t,n){e="string"==typeof e?e:M.getPath(e);for(var o=r.split("/").reverse();o.length;){var a=o.pop();if(a){var i=T.join2(e,a);try{M.mkdir(i)}catch(e){if(20!=e.errno)throw e}e=i}}return i},createFile(e,r,t,n,o){e=T.join2("string"==typeof e?e:M.getPath(e),r),r=Me(n,o);return M.create(e,r)},createDataFile(e,r,t,n,o,a){var i=r,r=(e&&(e="string"==typeof e?e:M.getPath(e),i=r?T.join2(e,r):e),Me(n,o)),e=M.create(i,r);if(t){if("string"==typeof t){for(var s=new Array(t.length),l=0,c=t.length;l<c;++l)s[l]=t.charCodeAt(l);t=s}M.chmod(e,146|r);n=M.open(e,577);M.write(n,t,0,t.length,0,a),M.close(n),M.chmod(e,r)}},createDevice(e,r,l,i){var e=T.join2("string"==typeof e?e:M.getPath(e),r),r=Me(!!l,!!i),t=(M.createDevice.major??=64,M.makedev(M.createDevice.major++,0));return M.registerDevice(t,{open(e){e.seekable=!1},close(e){i?.buffer?.length&&i(10)},read(e,r,t,n,o){for(var a,i=0,s=0;s<n;s++){try{a=l()}catch(e){throw new M.ErrnoError(29)}if(void 0===a&&0===i)throw new M.ErrnoError(6);if(null==a)break;i++,r[t+s]=a}return i&&(e.node.atime=Date.now()),i},write(e,r,t,n,o){for(var a=0;a<n;a++)try{i(r[t+a])}catch(e){throw new M.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),a}}),M.mkdev(e,r,t)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{e.contents=j(e.url),e.usedBytes=e.contents.length}catch(e){throw new M.ErrnoError(29)}},createLazyFile(e,r,i,t,n){class o{lengthKnown=!1;chunks=[];get(e){var r;if(!(e>this.length-1||e<0))return r=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[r]}setDataGetter(e){this.getter=e}cacheLength(){var e=new XMLHttpRequest;if(e.open("HEAD",i,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+i+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),t=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,e=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,o=1048576,a=(t||(o=n),this);a.setDataGetter(e=>{var r=e*o,t=(e+1)*o-1,t=Math.min(t,n-1);if(void 0===a.chunks[e]&&(a.chunks[e]=((e,r)=>{if(r<e)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(n-1<r)throw new Error("only "+n+" bytes available! programmer error!");var t=new XMLHttpRequest;if(t.open("GET",i,!1),n!==o&&t.setRequestHeader("Range","bytes="+e+"-"+r),t.responseType="arraybuffer",t.overrideMimeType&&t.overrideMimeType("text/plain; charset=x-user-defined"),t.send(null),200<=t.status&&t.status<300||304===t.status)return void 0!==t.response?new Uint8Array(t.response||[]):be(t.responseText||"",!0);throw new Error("Couldn't load "+i+". Status: "+t.status)})(r,t)),void 0===a.chunks[e])throw new Error("doXHR failed!");return a.chunks[e]}),!e&&n||(o=n=1,n=this.getter(0).length,o=n,m("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=o,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if("undefined"!=typeof XMLHttpRequest){if(!d)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a={isDevice:!1,contents:new o}}else a={isDevice:!1,url:i};var s=M.createFile(e,r,a,t,n),l=(a.contents?s.contents=a.contents:a.url&&(s.contents=null,s.url=a.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}}),{});function c(e,r,t,n,o){var a=e.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(h(0<=i),a.slice)for(var s=0;s<i;s++)r[t+s]=a[o+s];else for(s=0;s<i;s++)r[t+s]=a.get(o+s);return i}return Object.keys(s.stream_ops).forEach(e=>{var r=s.stream_ops[e];l[e]=(...e)=>(M.forceLoadFile(s),r(...e))}),l.read=(e,r,t,n,o)=>(M.forceLoadFile(s),c(e,r,t,n,o)),l.mmap=(e,r,t,n,o)=>{M.forceLoadFile(s);var a=Te(r);if(a)return c(e,f,a,r,t),{ptr:a,allocated:!0};throw new M.ErrnoError(48)},s.stream_ops=l,s},absolutePath(){w("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){w("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){w("FS.createLink has been removed; use FS.symlink instead")},joinPath(){w("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){w("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){w("FS.standardizePath has been removed; use PATH.normalize instead")}},N={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(T.isAbs(r))return r;if(e=-100===e?M.cwd():N.getStreamFromFD(e).path,0!=r.length)return e+"/"+r;if(t)return e;throw new M.ErrnoError(44)},writeStat(e,r){p[e/4]=r.dev,p[(e+4)/4]=r.mode,u[(e+8)/8]=BigInt(r.nlink),p[(e+16)/4]=r.uid,p[(e+20)/4]=r.gid,p[(e+24)/4]=r.rdev,a[(e+32)/8]=BigInt(r.size),p[(e+40)/4]=4096,p[(e+44)/4]=r.blocks;var t=r.atime.getTime(),n=r.mtime.getTime(),o=r.ctime.getTime();return a[(e+48)/8]=BigInt(Math.floor(t/1e3)),u[(e+56)/8]=BigInt(t%1e3*1e3*1e3),a[(e+64)/8]=BigInt(Math.floor(n/1e3)),u[(e+72)/8]=BigInt(n%1e3*1e3*1e3),a[(e+80)/8]=BigInt(Math.floor(o/1e3)),u[(e+88)/8]=BigInt(o%1e3*1e3*1e3),a[(e+96)/8]=BigInt(r.ino),0},writeStatFs(e,r){p[(e+8)/4]=r.bsize,p[(e+56)/4]=r.bsize,p[(e+16)/4]=r.blocks,p[(e+20)/4]=r.bfree,p[(e+24)/4]=r.bavail,p[(e+28)/4]=r.files,p[(e+32)/4]=r.ffree,p[(e+36)/4]=r.fsid,p[(e+64)/4]=r.flags,p[(e+48)/4]=r.namelen},doMsync(e,r,t,n,o){if(!M.isFile(r.node.mode))throw new M.ErrnoError(43);if(2&n)return 0;e=s.slice(e,e+t);M.msync(r,e,o,t,n)},getStreamFromFD(e){return M.getStreamChecked(e)},varargs:void 0,getStr(e){return k(e)}},I=()=>{h(null!=N.varargs);var e=Number(u[N.varargs/8]);return N.varargs+=8,e},Ie=()=>{h(null!=N.varargs);var e=p[+N.varargs/4];return N.varargs+=4,e},R=(e,r,t)=>(h("number"==typeof t,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Se(e,s,r,t)),Re=e=>n[e/4]+4294967296*p[(e+4)/4],Ce=[0,31,60,91,121,152,182,213,244,274,305,335],Le=[0,31,59,90,120,151,181,212,243,273,304,334],xe=e=>{var r;return((r=e.getFullYear())%4==0&&(r%100!=0||r%400==0)?Ce:Le)[e.getMonth()]+e.getDate()-1},Ue=()=>performance.now(),Be=()=>Date.now(),je=e=>0<=e&&e<=3,ze=()=>17179869184,He=r=>{var t=Y.buffer,e=(r-t.byteLength+65535)/65536|0;try{return Y.grow(BigInt(e)),re(),1}catch(e){l(`growMemory: Attempted to grow heap from ${t.byteLength} bytes to ${r} bytes, but got error: `+e)}},Ge={},We=()=>{if(!We.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:H||"./this.program"};for(r in Ge)void 0===Ge[r]?delete e[r]:e[r]=Ge[r];var r,t=[];for(r in e)t.push(r+"="+e[r]);We.strings=t}return We.strings},$e=(e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var i=Number(u[r/8]),s=Number(u[(r+8)/8]),i=(r+=16,M.read(e,f,i,s,n));if(i<0)return-1;if(o+=i,i<s)break;void 0!==n&&(n+=i)}return o},Ye=(e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var i=Number(u[r/8]),s=Number(u[(r+8)/8]),i=(r+=16,M.write(e,f,i,s,n));if(i<0)return-1;if(o+=i,i<s)break;void 0!==n&&(n+=i)}return o},Ve=(e,r)=>{V=e;var t=m,n=l,o=!1;m=l=e=>{o=!0};try{ur(0),["stdout","stderr"].forEach(e=>{var e=M.analyzePath("/dev/"+e);e&&(e=e.object.rdev,D.ttys[e]?.output?.length)&&(o=!0)})}catch(e){}m=t,l=n,o&&S("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc."),pe&&!r&&(U(t=`program exited (with status: ${e}), but keepRuntimeAlive() is set (counter=0) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`),l(t)),V=n=e,pe||(i.onExit?.(n),q=!0),G(0,new le(n))},Ke=e=>{if(e instanceof le||"unwind"==e)return V;Z(),e instanceof WebAssembly.RuntimeError&&wr()<=0&&l("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 65536)"),G(0,e)},qe=e=>Er(e),Xe=e=>{var r=O(e)+1,t=qe(r);return R(e,t,r),t},Je=e=>{var r=i["_"+e];return h(r,"Cannot call unknown function "+e+", make sure it is exported"),r},Ze=(e,r)=>{h(0<=e.length,"writeArrayToMemory array must have a length (should be an array or typed array)"),f.set(e,r)},Qe=(e,r)=>{h(e<16384),e<128?r.push(e):r.push(e%128|128,e>>7)},er=(e,r)=>{if("function"==typeof WebAssembly.Function)return new WebAssembly.Function((e=>{for(var r={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i64"},t={parameters:[],results:"v"==e[0]?[]:[r[e[0]]]},n=1;n<e.length;++n)h(e[n]in r,"invalid signature char: "+e[n]),t.parameters.push(r[e[n]]);return t})(r),e);var t,n=[1],o=n,a=(r=r).slice(0,1),r=r.slice(1),i={i:127,p:126,j:126,f:125,d:124,e:111};o.push(96),Qe(r.length,o);for(t of r)h(t in i,"invalid signature char: "+t),o.push(i[t]);"v"==a?o.push(0):o.push(1,i[a]);r=[0,97,115,109,1,0,0,0,1],Qe(n.length,r),r.push(...n),r.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),a=new WebAssembly.Module(new Uint8Array(r));return new WebAssembly.Instance(a,{e:{f:e}}).exports.f},rr=[],tr=(e,r)=>{if(v)for(var t=e;t<e+r;t++){n=t,o=void 0,n=Number(n),(o=rr[n])||(rr[n]=o=y.get(BigInt(n))),h(y.get(BigInt(n))==o,"JavaScript-side Wasm function table mirror is out of date!");n=o;n&&v.set(n,t)}var n,o},nr=e=>(v||(v=new WeakMap,tr(0,Number(y.length))),v.get(e)||0),or=[],ar=()=>{if(or.length)return or.pop();try{y.grow(BigInt(1))}catch(e){if(e instanceof RangeError)throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";throw e}return Number(y.length)-1},ir=(e,r)=>{y.set(BigInt(e),r),rr[e]=y.get(BigInt(e))},t=(M.createPreloadedFile=(t,n,e,o,a,i,s,l,c,d)=>{var u=n?A.resolve(T.join2(t,n)):t,m=function(e){for(var r=e;;){if(!E[e])return e;e=r+Math.random()}}("cp "+u);function r(e){function r(e){d?.(),l||Oe(t,n,e,o,a,c),i?.(),ae(m)}Pe(e,u,r,()=>{s?.(),ae(m)})||r(e)}oe(m),"string"==typeof e?Ae(e).then(r,s):r(e)},M.staticInit(),i.noExitRuntime&&(pe=i.noExitRuntime),i.preloadPlugins&&(De=i.preloadPlugins),i.print&&(m=i.print),i.printErr&&(l=i.printErr),i.wasmBinary&&($=i.wasmBinary),"fetchSettings");Object.getOwnPropertyDescriptor(i,t)&&w(`\`Module.${t}\` was supplied but \`${t}\` not included in INCOMING_MODULE_JS_API`),i.arguments&&(z=i.arguments),i.thisProgram&&(H=i.thisProgram),h(void 0===i.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),h(void 0===i.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),h(void 0===i.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),h(void 0===i.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),h(void 0===i.read,"Module.read option was removed"),h(void 0===i.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),h(void 0===i.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),h(void 0===i.setWindowTitle,"Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),h(void 0===i.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),h(void 0===i.ENVIRONMENT,"Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)"),h(void 0===i.STACK_SIZE,"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),h(void 0===i.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),h(void 0===i.INITIAL_MEMORY,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically"),i.callMain=gr,i.ccall=(e,r,t,n,o)=>{var a={pointer:e=>BigInt(e),string:e=>{var r=0;return null!=e&&0!==e&&(r=Xe(e)),BigInt(r)},array:e=>{var r=qe(e.length);return Ze(e,r),BigInt(r)}};var e=Je(e),i=[],s=0;if(h("array"!==r,'Return type should not be "array".'),n)for(var l=0;l<n.length;l++){var c=a[t[l]];c?(0===s&&(s=Ee()),i[l]=c(n[l])):i[l]=n[l]}e=e(...i);return e=e,0!==s&&_e(s),e=e,"string"===r?k(Number(e)):"pointer"===r?Number(e):"boolean"===r?Boolean(e):e},i.addFunction=(r,t)=>{h(void 0!==r);var n=nr(r);if(n)return n;n=ar();try{ir(n,r)}catch(e){if(!(e instanceof TypeError))throw e;h(void 0!==t,"Missing signature argument to addFunction: "+r);t=er(r,t);ir(n,t)}return v.set(r,n),n},i.FS=M,["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromU64","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","getTempRet0","setTempRet0","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","emscriptenLog","readEmAsmArgs","jstoi_q","listenOnce","autoResumeAudioContext","getDynCaller","dynCall","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asmjsMangle","HandleAllocator","getNativeTypeSize","addOnInit","addOnPostCtor","addOnPreMain","addOnExit","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","cwrap","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","stringToAscii","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToNewUTF8","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","safeSetTimeout","setImmediateWrapped","safeRequestAnimationFrame","clearImmediateWrapped","registerPostMainLoop","registerPreMainLoop","getPromise","makePromise","idsToPromises","makePromiseCallback","ExceptionInfo","findMatchingCatch","Browser_asyncPrepareDataCounter","arraySum","addDays","getSocketFromFD","getSocketAddress","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","toTypedArrayIndex","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","webgl_enable_EXT_polygon_offset_clamp","webgl_enable_EXT_clip_control","webgl_enable_WEBGL_polygon_mode","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","demangle","stackTrace"].forEach(function(e){ee(e)}),["run","addRunDependency","removeRunDependency","out","err","abort","wasmMemory","wasmExports","HEAPF32","HEAPF64","HEAP8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAP64","HEAPU64","writeStackCookie","checkStackCookie","readI53FromI64","INT53_MAX","INT53_MIN","bigintToI53Checked","stackSave","stackRestore","stackAlloc","ptrToString","zeroMemory","exitJS","getHeapMax","growMemory","ENV","ERRNO_CODES","strError","DNS","Protocols","Sockets","timers","warnOnce","readEmAsmArgsArray","getExecutableName","handleException","keepRuntimeAlive","asyncLoad","alignMemory","mmapAlloc","wasmTable","noExitRuntime","addOnPreRun","addOnPostRun","getCFunc","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","updateTableMap","getFunctionAddress","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","intArrayFromString","UTF16Decoder","stringToUTF8OnStack","writeArrayToMemory","JSEvents","specialHTMLTargets","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","getEnvStrings","checkWasiClock","doReadv","doWritev","initRandomFill","randomFill","emSetImmediate","emClearImmediate_deps","emClearImmediate","promiseMap","uncaughtExceptionCount","exceptionLast","exceptionCaught","Browser","getPreloadedImageData__data","wget","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","isLeapYear","ydayFromDate","SYSCALLS","preloadPlugins","FS_createPreloadedFile","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar_buffer","FS_stdin_getChar","FS_unlink","FS_createPath","FS_createDevice","FS_readFile","FS_root","FS_mounts","FS_devices","FS_streams","FS_nextInode","FS_nameTable","FS_currentPath","FS_initialized","FS_ignorePermissions","FS_filesystems","FS_syncFSRequests","FS_readFiles","FS_lookupPath","FS_getPath","FS_hashName","FS_hashAddNode","FS_hashRemoveNode","FS_lookupNode","FS_createNode","FS_destroyNode","FS_isRoot","FS_isMountpoint","FS_isFile","FS_isDir","FS_isLink","FS_isChrdev","FS_isBlkdev","FS_isFIFO","FS_isSocket","FS_flagsToPermissionString","FS_nodePermissions","FS_mayLookup","FS_mayCreate","FS_mayDelete","FS_mayOpen","FS_checkOpExists","FS_nextfd","FS_getStreamChecked","FS_getStream","FS_createStream","FS_closeStream","FS_dupStream","FS_doSetAttr","FS_chrdev_stream_ops","FS_major","FS_minor","FS_makedev","FS_registerDevice","FS_getDevice","FS_getMounts","FS_syncfs","FS_mount","FS_unmount","FS_lookup","FS_mknod","FS_statfs","FS_statfsStream","FS_statfsNode","FS_create","FS_mkdir","FS_mkdev","FS_symlink","FS_rename","FS_rmdir","FS_readdir","FS_readlink","FS_stat","FS_fstat","FS_lstat","FS_doChmod","FS_chmod","FS_lchmod","FS_fchmod","FS_doChown","FS_chown","FS_lchown","FS_fchown","FS_doTruncate","FS_truncate","FS_ftruncate","FS_utime","FS_open","FS_close","FS_isClosed","FS_llseek","FS_read","FS_write","FS_mmap","FS_msync","FS_ioctl","FS_writeFile","FS_cwd","FS_chdir","FS_createDefaultDirectories","FS_createDefaultDevices","FS_createSpecialDirectories","FS_createStandardStreams","FS_staticInit","FS_init","FS_quit","FS_findObject","FS_analyzePath","FS_createFile","FS_createDataFile","FS_forceLoadFile","FS_createLazyFile","FS_absolutePath","FS_createFolder","FS_createLink","FS_joinPath","FS_mmapAlloc","FS_standardizePath","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack","print","printErr","jstoi_s","WORKERFS"].forEach(ee);var sr,e={__assert_fail:function(e,r,t,n){return e=b(e),r=b(r),n=b(n),w(`Assertion failed: ${k(e)}, at: `+[r?k(r):"unknown filename",t,n?k(n):"unknown function"])},__syscall_chmod:function(e,r){e=b(e);try{return e=N.getStr(e),M.chmod(e,r),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_faccessat:function(e,r,t,n){r=b(r);try{var o,a;return(r=N.getStr(r),h(0===n||512==n),r=N.calculateAt(e,r),-8&t)?-28:(o=M.lookupPath(r,{follow:!0}).node)?(a="",4&t&&(a+="r"),2&t&&(a+="w"),1&t&&(a+="x"),a&&M.nodePermissions(o,a)?-2:0):-44}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_fchmod:function(e,r){try{return M.fchmod(e,r),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_fchown32:function(e,r,t){try{return M.fchown(e,r,t),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_fcntl64:function(e,r,t){t=b(t),N.varargs=t;try{var n=N.getStreamFromFD(e);switch(r){case 0:if((o=Ie())<0)return-28;for(;M.streams[o];)o++;return M.dupStream(n,o).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var o=Ie();return n.flags|=o,0;case 5:o=I();return K[(o+0)/2]=2,0;case 6:case 7:return 0}return-28}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_fstat64:function(e,r){r=b(r);try{return N.writeStat(r,M.fstat(e))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_ftruncate64:function(e,r){r=b(r);try{return isNaN(r)?61:(M.ftruncate(e,r),0)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_getcwd:function(e,r){e=b(e),r=b(r);try{var t,n;return 0===r?-28:(t=M.cwd(),r<(n=O(t)+1)?-68:(R(t,e,r),n))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_ioctl:function(e,r,t){t=b(t),N.varargs=t;try{var n,o=N.getStreamFromFD(e);switch(r){case 21509:return o.tty?0:-59;case 21505:if(!o.tty)return-59;if(o.tty.ops.ioctl_tcgets){var a=o.tty.ops.ioctl_tcgets(o),i=I();p[i/4]=a.c_iflag||0,p[(i+4)/4]=a.c_oflag||0,p[(i+8)/4]=a.c_cflag||0,p[(i+12)/4]=a.c_lflag||0;for(var s=0;s<32;s++)f[i+s+17]=a.c_cc[s]||0}return 0;case 21510:case 21511:case 21512:return o.tty?0:-59;case 21506:case 21507:case 21508:if(!o.tty)return-59;if(o.tty.ops.ioctl_tcsets){for(var i=I(),l=p[i/4],c=p[(i+4)/4],d=p[(i+8)/4],u=p[(i+12)/4],m=[],s=0;s<32;s++)m.push(f[i+s+17]);return o.tty.ops.ioctl_tcsets(o.tty,r,{c_iflag:l,c_oflag:c,c_cflag:d,c_lflag:u,c_cc:m})}return 0;case 21519:return o.tty?(i=I(),p[i/4]=0):-59;case 21520:return o.tty?-28:-59;case 21531:i=I();return M.ioctl(o,r,i);case 21523:return o.tty?(o.tty.ops.ioctl_tiocgwinsz&&(n=o.tty.ops.ioctl_tiocgwinsz(o.tty),i=I(),K[i/2]=n[0],K[(i+2)/2]=n[1]),0):-59;case 21524:case 21515:return o.tty?0:-59;default:return-28}}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_lstat64:function(e,r){e=b(e),r=b(r);try{return e=N.getStr(e),N.writeStat(r,M.lstat(e))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_mkdirat:function(e,r,t){r=b(r);try{return r=N.getStr(r),r=N.calculateAt(e,r),M.mkdir(r,t,0),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_newfstatat:function(e,r,t,n){r=b(r),t=b(t);try{r=N.getStr(r);var o=256&n,a=4096&n;return h(!(n&=-6401),"unknown flags in __syscall_newfstatat: "+n),r=N.calculateAt(e,r,a),N.writeStat(t,o?M.lstat(r):M.stat(r))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_openat:function(e,r,t,n){r=b(r),n=b(n),N.varargs=n;try{r=N.getStr(r),r=N.calculateAt(e,r);var o=n?Ie():0;return M.open(r,t,o).fd}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_readlinkat:function(e,r,t,n){r=b(r),t=b(t),n=b(n);try{var o,a,i;return(r=N.getStr(r),r=N.calculateAt(e,r),n<=0)?-28:(o=M.readlink(r),a=Math.min(n,O(o)),i=f[t+a],R(o,t,n+1),f[t+a]=i,a)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_rmdir:function(e){e=b(e);try{return e=N.getStr(e),M.rmdir(e),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_stat64:function(e,r){e=b(e),r=b(r);try{return e=N.getStr(e),N.writeStat(r,M.stat(e))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_unlinkat:function(e,r,t){r=b(r);try{return r=N.getStr(r),r=N.calculateAt(e,r),0===t?M.unlink(r):512===t?M.rmdir(r):w("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_utimensat:function(e,r,t,n){r=b(r),t=b(t);try{r=N.getStr(r),h(0===n),r=N.calculateAt(e,r,!0);var o,a,i,s,l=Date.now();return null!==((s=t?(i=Re(t),a=1073741823==(o=p[(t+8)/4])?l:1073741822==o?null:1e3*i+o/1e6,i=Re(t+=16),1073741823==(o=p[(t+8)/4])?l:1073741822==o?null:1e3*i+o/1e6):a=l)??a)&&M.utime(r,a,s),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},_abort_js:()=>w("native code called abort()"),_gmtime_js:function(e,r){e=b(e),r=b(r);var e=new Date(1e3*e),t=(p[r/4]=e.getUTCSeconds(),p[(r+4)/4]=e.getUTCMinutes(),p[(r+8)/4]=e.getUTCHours(),p[(r+12)/4]=e.getUTCDate(),p[(r+16)/4]=e.getUTCMonth(),p[(r+20)/4]=e.getUTCFullYear()-1900,p[(r+24)/4]=e.getUTCDay(),Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0)),e=(e.getTime()-t)/864e5|0;p[(r+28)/4]=e},_localtime_js:function(e,r){e=b(e),r=b(r);var e=new Date(1e3*e),t=(p[r/4]=e.getSeconds(),p[(r+4)/4]=e.getMinutes(),p[(r+8)/4]=e.getHours(),p[(r+12)/4]=e.getDate(),p[(r+16)/4]=e.getMonth(),p[(r+20)/4]=e.getFullYear()-1900,p[(r+24)/4]=e.getDay(),0|xe(e)),t=(p[(r+28)/4]=t,a[(r+40)/8]=BigInt(-60*e.getTimezoneOffset()),new Date(e.getFullYear(),0,1)),n=new Date(e.getFullYear(),6,1).getTimezoneOffset(),t=t.getTimezoneOffset(),e=0|(n!=t&&e.getTimezoneOffset()==Math.min(t,n));p[(r+32)/4]=e},_mmap_js:function(e,r,t,n,o,a,i){e=b(e),o=b(o),a=b(a),i=b(i);try{var s,l,c;return isNaN(o)?61:(s=N.getStreamFromFD(n),c=(l=M.mmap(s,e,o,r,t)).ptr,p[a/4]=l.allocated,u[i/8]=BigInt(c),0)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},_munmap_js:function(e,r,t,n,o,a){e=b(e),r=b(r),a=b(a);try{var i=N.getStreamFromFD(o);2&t&&N.doMsync(e,i,r,n,a)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},_timegm_js:function(e){e=b(e);r=Date.UTC(p[(e+20)/4]+1900,p[(e+16)/4],p[(e+12)/4],p[(e+8)/4],p[(e+4)/4],p[e/4],0),r=new Date(r),p[(e+24)/4]=r.getUTCDay(),t=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),t=(r.getTime()-t)/864e5|0,p[(e+28)/4]=t;var r,t,e=r.getTime()/1e3;return BigInt(e)},_tzset_js:function(e,r,t,n){e=b(e),r=b(r),t=b(t),n=b(n);var o=(new Date).getFullYear(),a=new Date(o,0,1),o=new Date(o,6,1),a=a.getTimezoneOffset(),o=o.getTimezoneOffset(),i=Math.max(a,o),e=(u[e/8]=BigInt(60*i),p[r/4]=Number(a!=o),e=>{var r=0<=e?"-":"+",e=Math.abs(e);return"UTC"+r+String(Math.floor(e/60)).padStart(2,"0")+String(e%60).padStart(2,"0")}),i=e(a),r=e(o);h(i),h(r),h(O(i)<=16,`timezone name truncated to fit in TZNAME_MAX (${i})`),h(O(r)<=16,`timezone name truncated to fit in TZNAME_MAX (${r})`),o<a?(R(i,t,17),R(r,n,17)):(R(i,n,17),R(r,t,17))},clock_time_get:function(e,r,t){return t=b(t),je(e)?(e=(0===e?Be:Ue)(),e=Math.round(1e3*e*1e3),a[t/8]=BigInt(e),0):28},emscripten_date_now:Be,emscripten_err:function(e){return e=b(e),l(k(e))},emscripten_get_heap_max:()=>BigInt(ze()),emscripten_get_now:Ue,emscripten_resize_heap:function(e){e=b(e);var r=s.length,t=(h(r<e),ze());if(t<e)l(`Cannot enlarge memory, requested ${e} bytes, but the limit is ${t} bytes!`);else{for(var n=1;n<=4;n*=2){var o=r*(1+.2/n),o=Math.min(o,e+100663296),a=Math.min(t,ke(Math.max(e,o),65536));if(He(a))return!0}l(`Failed to grow the heap from ${r} bytes to ${a} bytes, not enough memory!`)}return!1},environ_get:function(e,r){e=b(e),r=b(r);var t,n=0,o=0;for(t of We()){var a=r+n;u[(e+o)/8]=BigInt(a),n+=R(t,a,1/0)+1,o+=8}return 0},environ_sizes_get:function(e,r){e=b(e),r=b(r);var t,n=We(),o=(u[e/8]=BigInt(n.length),0);for(t of n)o+=O(t)+1;return u[r/8]=BigInt(o),0},fd_close:function(e){try{var r=N.getStreamFromFD(e);return M.close(r),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_fdstat_get:function(e,r){r=b(r);try{var t=N.getStreamFromFD(e),n=t.tty?2:M.isDir(t.mode)?3:M.isLink(t.mode)?7:4;return f[r]=n,K[(r+2)/2]=0,a[(r+8)/8]=BigInt(0),a[(r+16)/8]=BigInt(0),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_read:function(e,r,t,n){r=b(r),t=b(t),n=b(n);try{var o=N.getStreamFromFD(e),a=$e(o,r,t);return u[n/8]=BigInt(a),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_seek:function(e,r,t,n){r=b(r),n=b(n);try{var o;return isNaN(r)?61:(o=N.getStreamFromFD(e),M.llseek(o,r,t),a[n/8]=BigInt(o.position),o.getdents&&0===r&&0===t&&(o.getdents=null),0)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_sync:function(e){try{var r=N.getStreamFromFD(e);return r.stream_ops?.fsync?r.stream_ops.fsync(r):0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_write:function(e,r,t,n){r=b(r),t=b(t),n=b(n);try{var o=N.getStreamFromFD(e),a=Ye(o,r,t);return u[n/8]=BigInt(a),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}}},C=(oe("wasm-instantiate"),sr={env:e,wasi_snapshot_preview1:e},i.instantiateWasm?new Promise((t,r)=>{try{i.instantiateWasm(sr,(e,r)=>{t(lr(e))})}catch(e){l("Module.instantiateWasm callback failed with error: "+e),r(e)}}):lr(se(te??=ie(),sr)[0]));function lr(e){var r,t;return C=e.exports,e=C,e=Object.assign({},e),r=r=>e=>r(BigInt(e)),t=e=>()=>Number(e()),e.strerror=(r=>e=>Number(r(e)))(e.strerror),e.fflush=r(e.fflush),e.__main_argc_argv=(n=>(e,r,t)=>n(e,BigInt(r||0),BigInt(t||0)))(e.__main_argc_argv),e.emscripten_stack_get_end=t(e.emscripten_stack_get_end),e.emscripten_stack_get_base=t(e.emscripten_stack_get_base),e.emscripten_builtin_memalign=(t=>(e,r)=>Number(t(BigInt(e),BigInt(r))))(e.emscripten_builtin_memalign),e._emscripten_stack_restore=r(e._emscripten_stack_restore),e._emscripten_stack_alloc=(r=>e=>Number(r(BigInt(e))))(e._emscripten_stack_alloc),e.emscripten_stack_get_current=t(e.emscripten_stack_get_current),h(Y=(C=e).memory,"memory not found in wasm exports"),re(),h(y=C.__indirect_function_table,"table not found in wasm exports"),ae("wasm-instantiate"),C}var cr,dr=g("strerror",1),ur=g("fflush",1),mr=(i._trace_processor_rpc_init=g("trace_processor_rpc_init",2),i._trace_processor_on_rpc_request=g("trace_processor_on_rpc_request",1),i._main=g("__main_argc_argv",2)),fr=C.emscripten_stack_get_end,pr=(C.emscripten_stack_get_base,g("emscripten_builtin_memalign",2)),hr=C.emscripten_stack_init,_r=(C.emscripten_stack_get_free,C._emscripten_stack_restore),Er=C._emscripten_stack_alloc,wr=C.emscripten_stack_get_current;function gr(e=[]){h(0==_,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'),h(void 0===me||0==me.length,"cannot call main when preRun functions remain to be called");var r=mr,t=(e.unshift(H),e.length),n=qe(8*(t+1)),o=n;e.forEach(e=>{u[o/8]=BigInt(Xe(e)),o+=8}),u[o/8]=BigInt(0);try{var a=r(t,BigInt(n));return Ve(a,!0),a}catch(e){return Ke(e)}}function yr(){var e;hr(),h(0==(3&(e=fr()))),0==e&&(e+=4),n[e/4]=34821223,n[(e+4)/4]=2310721022,n[0]=1668509029}if(i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);0<i.preInit.length;)i.preInit.shift()();Q("preInit"),function e(r=z){if(0<_)ne=e;else{if(yr(),i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)fe(i.preRun.shift());Q("preRun"),ce(me),0<_?ne=e:(i.setStatus?(i.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>i.setStatus(""),1),t()},1)):t(),Z())}function t(){if(h(!cr),cr=!0,i.calledRun=!0,!q){if(h(!X),X=!0,Z(),i.noFSInit||M.initialized||M.init(),C.__wasm_call_ctors(),M.ignorePermissions=!1,Z(),x(i),i.onRuntimeInitialized?.(),Q("onRuntimeInitialized"),i.noInitialRun||gr(r),Z(),i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)ue(i.postRun.shift());Q("postRun"),ce(de)}}}(),r=i;for(const vr of Object.keys(i))vr in L||Object.defineProperty(L,vr,{configurable:!0,get(){w(`Access to module property ('${vr}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}});return r}var r,Sr;return q||(q=1,(r=R).exports,Sr="undefined"!=typeof document?document.currentScript?.src:void 0,r.exports=e,r.exports.default=e),R.exports}R.exports;var J,Z,Q,C={exports:{}};function ee(){function e(L={}){var x,U,B,j,i=L,e=(new Promise((e,r)=>{x=e,U=r}),"object"==typeof window),d="undefined"!=typeof WorkerGlobalScope,r="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&"renderer"!=process.type,t=!e&&!r&&!d,z=[],H="./this.program",G=(e,r)=>{throw r},W=(d&&(vr=self.location.href),"");if(t){if("object"==typeof process||"object"==typeof window||"undefined"!=typeof WorkerGlobalScope)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)")}else{if(!e&&!d)throw new Error("environment detection error");try{W=new URL(".",vr).href}catch{}if("object"!=typeof window&&"undefined"==typeof WorkerGlobalScope)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");d&&(j=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),B=async e=>{_(!X(e),"readAsync does not work with file:// URLs");e=await fetch(e,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)}}var $,Y,V,f,s,p,h,u,a,m=console.log.bind(console),l=console.error.bind(console),c="WORKERFS is no longer included by default; build with -lworkerfs.js",K=(_(!r,"node environment detected but not enabled at build time. Add `node` to `-sENVIRONMENT` to enable."),_(!t,"shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable."),"object"!=typeof WebAssembly&&l("no native wasm support detected"),!1);function _(e,r){e||o("Assertion failed"+(r?": "+r:""))}var q=!1,X=e=>e.startsWith("file://");function J(){var e,r,t;K||(0==(e=mr())&&(e+=4),r=u[e>>>2>>>0],t=u[e+4>>>2>>>0],34821223==r&&2310721022==t||o(`Stack overflow! Stack cookie has been overwritten at ${pe(e)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${pe(t)} `+pe(r)),1668509029!=u[0]&&o("Runtime error: The application has corrupted its heap memory area (address zero)!"))}var e=new Int16Array(1),r=new Int8Array(e.buffer);if(e[0]=25459,115!==r[0]||99!==r[1])throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)";function Z(e){Object.getOwnPropertyDescriptor(i,e)||Object.defineProperty(i,e,{configurable:!0,set(){o(`Attempt to set \`Module.${e}\` after it has already been processed. This can happen, for example, when code is injected via '--post-js' rather than '--pre-js'`)}})}function Q(t){Object.getOwnPropertyDescriptor(i,t)||Object.defineProperty(i,t,{configurable:!0,get(){var e,r=`'${t}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;"FS_createPath"!==(e=t)&&"FS_createDataFile"!==e&&"FS_createPreloadedFile"!==e&&"FS_unlink"!==e&&"addRunDependency"!==e&&"FS_createLazyFile"!==e&&"FS_createDevice"!==e&&"removeRunDependency"!==e||(r+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),o(r)}})}function ee(){var e=Y.buffer;f=new Int8Array(e),p=new Int16Array(e),i.HEAPU8=s=new Uint8Array(e),h=new Int32Array(e),u=new Uint32Array(e),a=new BigInt64Array(e),new BigUint64Array(e)}_("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&null!=Int32Array.prototype.subarray&&null!=Int32Array.prototype.set,"JS engine does not provide full typed array support");var re,E=0,te=null,w={},n=null;function ne(e){E++,i.monitorRunDependencies?.(E),e?(_(!w[e]),w[e]=1,null===n&&"undefined"!=typeof setInterval&&(n=setInterval(()=>{if(K)clearInterval(n),n=null;else{var e,r=!1;for(e in w)r||(r=!0,l("still waiting on run dependencies:")),l("dependency: "+e);r&&l("(end of list)")}},1e4))):l("warning: run dependency added without ID")}function oe(e){E--,i.monitorRunDependencies?.(E),e?(_(w[e]),delete w[e]):l("warning: run dependency removed without ID"),0==E&&(null!==n&&(clearInterval(n),n=null),te)&&(e=te,te=null,e())}function o(e){i.onAbort?.(e),l(e="Aborted("+e+")"),K=!0;e=new WebAssembly.RuntimeError(e);throw U(e),e}function g(t,n){return(...e)=>{_(q,`native function \`${t}\` called before runtime initialization`);var r=C[t];return _(r,`exported native function \`${t}\` not found`),_(e.length<=n,`native function \`${t}\` called with ${e.length} args but expects `+n),r(...e)}}function ae(){return e="trace_processor.wasm",i.locateFile?i.locateFile(e,W):W+e;var e}function ie(e,r){e=function(e){if(e==re&&$)return new Uint8Array($);if(j)return j(e);throw'sync fetching of the wasm failed: you can preload it to Module["wasmBinary"] manually, or emcc.py will do that for you when generating HTML (but not JS)'}(e),e=new WebAssembly.Module(e);return[new WebAssembly.Instance(e,r),e]}class se{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var y,v,le=e=>{for(;0<e.length;)e.shift()(i)},ce=[],de=e=>ce.push(e),ue=[],me=e=>ue.push(e),fe=!0,pe=e=>(_("number"==typeof e),"0x"+e.toString(16).padStart(8,"0")),he=e=>hr(e),_e=()=>Er(),S=e=>{S.shown||={},S.shown[e]||(S.shown[e]=1,l(e))},b=e=>e<-9007199254740992||9007199254740992<e?NaN:Number(e),Ee="undefined"!=typeof TextDecoder?new TextDecoder:void 0,F=(e,r=0,t=NaN)=>{for(var n=(r>>>=0)+t,o=r;e[o]&&!(n<=o);)++o;if(16<o-r&&e.buffer&&Ee)return Ee.decode(e.subarray(r,o));for(var a="";r<o;){var i,s,l=e[r++];128&l?(s=63&e[r++],192==(224&l)?a+=String.fromCharCode((31&l)<<6|s):(i=63&e[r++],(l=224==(240&l)?(15&l)<<12|s<<6|i:(240!=(248&l)&&S("Invalid UTF-8 leading byte "+pe(l)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),(7&l)<<18|s<<12|i<<6|63&e[r++]))<65536?a+=String.fromCharCode(l):(s=l-65536,a+=String.fromCharCode(55296|s>>10,56320|1023&s)))):a+=String.fromCharCode(l)}return a},k=(e,r)=>(_("number"==typeof e,`UTF8ToString expects a number (got ${typeof e})`),(e>>>=0)?F(s,e,r):""),T={isAbs:e=>"/"===e.charAt(0),splitPath:e=>{return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;0<=n;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=T.isAbs(e),t="/"===e.slice(-1);return(e=(e=T.normalizeArray(e.split("/").filter(e=>!!e),!r).join("/"))||r?e:".")&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var e=T.splitPath(e),r=e[0],e=e[1];return r||e?r+(e=e&&e.slice(0,-1)):"."},basename:e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],join:(...e)=>T.normalize(e.join("/")),join2:(e,r)=>T.normalize(e+"/"+r)},we=()=>e=>crypto.getRandomValues(e),ge=e=>{(ge=we())(e)},A={resolve:(...e)=>{for(var r="",t=!1,n=e.length-1;-1<=n&&!t;n--){var o=0<=n?e[n]:M.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";r=o+"/"+r,t=T.isAbs(o)}return(t?"/":"")+(r=T.normalizeArray(r.split("/").filter(e=>!!e),!t).join("/"))||"."},relative:(e,r)=>{function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;0<=t&&""===e[t];t--);return t<r?[]:e.slice(r,t-r+1)}e=A.resolve(e).slice(1),r=A.resolve(r).slice(1);for(var n=t(e.split("/")),o=t(r.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s<a;s++)if(n[s]!==o[s]){i=s;break}for(var l=[],s=i;s<n.length;s++)l.push("..");return(l=l.concat(o.slice(i))).join("/")}},ye=[],O=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:55296<=n&&n<=57343?(r+=4,++t):r+=3}return r},ve=(e,r,t,n)=>{if(t>>>=0,_("string"==typeof e,`stringToUTF8Array expects a string (got ${typeof e})`),!(0<n))return 0;for(var o=t,a=t+n-1,i=0;i<e.length;++i){var s=e.charCodeAt(i);if((s=55296<=s&&s<=57343?65536+((1023&s)<<10)|1023&e.charCodeAt(++i):s)<=127){if(a<=t)break;r[t++>>>0]=s}else{if(s<=2047){if(a<=t+1)break;r[t++>>>0]=192|s>>6}else{if(s<=65535){if(a<=t+2)break;r[t++>>>0]=224|s>>12}else{if(a<=t+3)break;1114111<s&&S("Invalid Unicode code point "+pe(s)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),r[t++>>>0]=240|s>>18,r[t++>>>0]=128|s>>12&63}r[t++>>>0]=128|s>>6&63}r[t++>>>0]=128|63&s}}return r[t>>>0]=0,t-o},Se=(e,r,t)=>{t=0<t?t:O(e)+1,t=new Array(t),e=ve(e,t,0,t.length);return r&&(t.length=e),t},D={ttys:[],init(){},shutdown(){},register(e,r){D.ttys[e]={input:[],output:[],ops:r},M.registerDevice(e,D.stream_ops)},stream_ops:{open(e){var r=D.ttys[e.node.rdev];if(!r)throw new M.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new M.ErrnoError(60);for(var a,i=0,s=0;s<n;s++){try{a=e.tty.ops.get_char(e.tty)}catch(e){throw new M.ErrnoError(29)}if(void 0===a&&0===i)throw new M.ErrnoError(6);if(null==a)break;i++,r[t+s]=a}return i&&(e.node.atime=Date.now()),i},write(e,r,t,n,o){if(!e.tty||!e.tty.ops.put_char)throw new M.ErrnoError(60);try{for(var a=0;a<n;a++)e.tty.ops.put_char(e.tty,r[t+a])}catch(e){throw new M.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),a}},default_tty_ops:{get_char(e){if(!ye.length){var r=null;if("undefined"!=typeof window&&"function"==typeof window.prompt&&null!==(r=window.prompt("Input: "))&&(r+="\n"),!r)return null;ye=Se(r,!0)}return ye.shift()},put_char(e,r){null===r||10===r?(m(F(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){0<e.output?.length&&(m(F(e.output)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,r,t){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,r){null===r||10===r?(l(F(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){0<e.output?.length&&(l(F(e.output)),e.output=[])}}},be=(e,r)=>s.fill(0,e,e+r),Fe=(e,r)=>(_(r,"alignment argument is required"),Math.ceil(e/r)*r),ke=e=>{e=Fe(e,65536);var r=fr(65536,e);return r&&be(r,e),r},P={ops_table:null,mount(e){return P.createNode(null,"/",16895,0)},createNode(e,r,t,n){if(M.isBlkdev(t)||M.isFIFO(t))throw new M.ErrnoError(63);P.ops_table||={dir:{node:{getattr:P.node_ops.getattr,setattr:P.node_ops.setattr,lookup:P.node_ops.lookup,mknod:P.node_ops.mknod,rename:P.node_ops.rename,unlink:P.node_ops.unlink,rmdir:P.node_ops.rmdir,readdir:P.node_ops.readdir,symlink:P.node_ops.symlink},stream:{llseek:P.stream_ops.llseek}},file:{node:{getattr:P.node_ops.getattr,setattr:P.node_ops.setattr},stream:{llseek:P.stream_ops.llseek,read:P.stream_ops.read,write:P.stream_ops.write,mmap:P.stream_ops.mmap,msync:P.stream_ops.msync}},link:{node:{getattr:P.node_ops.getattr,setattr:P.node_ops.setattr,readlink:P.node_ops.readlink},stream:{}},chrdev:{node:{getattr:P.node_ops.getattr,setattr:P.node_ops.setattr},stream:M.chrdev_stream_ops}};t=M.createNode(e,r,t,n);return M.isDir(t.mode)?(t.node_ops=P.ops_table.dir.node,t.stream_ops=P.ops_table.dir.stream,t.contents={}):M.isFile(t.mode)?(t.node_ops=P.ops_table.file.node,t.stream_ops=P.ops_table.file.stream,t.usedBytes=0,t.contents=null):M.isLink(t.mode)?(t.node_ops=P.ops_table.link.node,t.stream_ops=P.ops_table.link.stream):M.isChrdev(t.mode)&&(t.node_ops=P.ops_table.chrdev.node,t.stream_ops=P.ops_table.chrdev.stream),t.atime=t.mtime=t.ctime=Date.now(),e&&(e.contents[r]=t,e.atime=e.mtime=e.ctime=t.atime),t},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,r){var t=e.contents?e.contents.length:0;r<=t||(r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256)),t=e.contents,e.contents=new Uint8Array(r),0<e.usedBytes&&e.contents.set(t.subarray(0,e.usedBytes),0))},resizeFileStorage(e,r){var t;e.usedBytes!=r&&(0==r?(e.contents=null,e.usedBytes=0):(t=e.contents,e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r))},node_ops:{getattr(e){var r={};return r.dev=M.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,M.isDir(e.mode)?r.size=4096:M.isFile(e.mode)?r.size=e.usedBytes:M.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.atime),r.mtime=new Date(e.mtime),r.ctime=new Date(e.ctime),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){for(const t of["mode","atime","mtime","ctime"])null!=r[t]&&(e[t]=r[t]);void 0!==r.size&&P.resizeFileStorage(e,r.size)},lookup(e,r){throw new M.ErrnoError(44)},mknod(e,r,t,n){return P.createNode(e,r,t,n)},rename(e,r,t){var n;try{n=M.lookupNode(r,t)}catch(e){}if(n){if(M.isDir(e.mode))for(var o in n.contents)throw new M.ErrnoError(55);M.hashRemoveNode(n)}delete e.parent.contents[e.name],(r.contents[t]=e).name=t,r.ctime=r.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,r){delete e.contents[r],e.ctime=e.mtime=Date.now()},rmdir(e,r){for(var t in M.lookupNode(e,r).contents)throw new M.ErrnoError(55);delete e.contents[r],e.ctime=e.mtime=Date.now()},readdir(e){return[".","..",...Object.keys(e.contents)]},symlink(e,r,t){e=P.createNode(e,r,41471,0);return e.link=t,e},readlink(e){if(M.isLink(e.mode))return e.link;throw new M.ErrnoError(28)}},stream_ops:{read(e,r,t,n,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var i=Math.min(e.node.usedBytes-o,n);if(_(0<=i),8<i&&a.subarray)r.set(a.subarray(o,o+i),t);else for(var s=0;s<i;s++)r[t+s]=a[o+s];return i},write(e,r,t,n,o,a){if(_(!(r instanceof ArrayBuffer)),r.buffer===f.buffer&&(a=!1),!n)return 0;var i=e.node;if(i.mtime=i.ctime=Date.now(),r.subarray&&(!i.contents||i.contents.subarray)){if(a)return _(0===o,"canOwn must imply no weird position inside the file"),i.contents=r.subarray(t,t+n),i.usedBytes=n;if(0===i.usedBytes&&0===o)return i.contents=r.slice(t,t+n),i.usedBytes=n;if(o+n<=i.usedBytes)return i.contents.set(r.subarray(t,t+n),o),n}if(P.expandFileStorage(i,o+n),i.contents.subarray&&r.subarray)i.contents.set(r.subarray(t,t+n),o);else for(var s=0;s<n;s++)i.contents[o+s]=r[t+s];return i.usedBytes=Math.max(i.usedBytes,o+n),n},llseek(e,r,t){if(1===t?r+=e.position:2===t&&M.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new M.ErrnoError(28);return r},mmap(e,r,t,n,o){if(!M.isFile(e.node.mode))throw new M.ErrnoError(43);var a,i,e=e.node.contents;if(2&o||!e||e.buffer!==f.buffer){if(i=!0,!(a=ke(r)))throw new M.ErrnoError(48);e&&((0<t||t+r<e.length)&&(e=e.subarray?e.subarray(t,t+r):Array.prototype.slice.call(e,t,t+r)),f.set(e,a>>>0))}else i=!1,a=e.byteOffset;return{ptr:a,allocated:i}},msync(e,r,t,n,o){return P.stream_ops.write(e,r,0,n,t,!1),0}}},Te=async e=>{var r=await B(e);return _(r,`Loading data file "${e}" failed (no arrayBuffer).`),new Uint8Array(r)},Ae=(...e)=>M.createDataFile(...e),Oe=[],De=(r,t,n,o)=>{"undefined"!=typeof Browser&&Browser.init();var a=!1;return Oe.forEach(e=>{a||e.canHandle(t)&&(e.handle(r,t,n,o),a=!0)}),a},Pe=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},c={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount(e){_(d),c.reader??=new FileReaderSync;var a=c.createNode(null,"/",c.DIR_MODE,0),i={};function n(e){for(var r=e.split("/"),t=a,n=0;n<r.length-1;n++){var o=r.slice(0,n+1).join("/");i[o]||=c.createNode(t,r[n],c.DIR_MODE,0),t=i[o]}return t}function o(e){e=e.split("/");return e[e.length-1]}return Array.prototype.forEach.call(e.opts.files||[],function(e){c.createNode(n(e.name),o(e.name),c.FILE_MODE,0,e,e.lastModifiedDate)}),(e.opts.blobs||[]).forEach(e=>{c.createNode(n(e.name),o(e.name),c.FILE_MODE,0,e.data)}),(e.opts.packages||[]).forEach(t=>{t.metadata.files.forEach(e=>{var r=e.filename.slice(1);c.createNode(n(r),o(r),c.FILE_MODE,0,t.blob.slice(e.start,e.end))})}),a},createNode(e,r,t,n,o,a){var i=M.createNode(e,r,t);return i.mode=t,i.node_ops=c.node_ops,i.stream_ops=c.stream_ops,i.atime=i.mtime=i.ctime=(a||new Date).getTime(),_(c.FILE_MODE!==c.DIR_MODE),t===c.FILE_MODE?(i.size=o.size,i.contents=o):(i.size=4096,i.contents={}),e&&(e.contents[r]=i),i},node_ops:{getattr(e){return{dev:1,ino:e.id,mode:e.mode,nlink:1,uid:0,gid:0,rdev:0,size:e.size,atime:new Date(e.atime),mtime:new Date(e.mtime),ctime:new Date(e.ctime),blksize:4096,blocks:Math.ceil(e.size/4096)}},setattr(e,r){for(const t of["mode","atime","mtime","ctime"])null!=r[t]&&(e[t]=r[t])},lookup(e,r){throw new M.ErrnoError(44)},mknod(e,r,t,n){throw new M.ErrnoError(63)},rename(e,r,t){throw new M.ErrnoError(63)},unlink(e,r){throw new M.ErrnoError(63)},rmdir(e,r){throw new M.ErrnoError(63)},readdir(e){var r,t=[".",".."];for(r of Object.keys(e.contents))t.push(r);return t},symlink(e,r,t){throw new M.ErrnoError(63)}},stream_ops:{read(e,r,t,n,o){return o>=e.node.size?0:(e=e.node.contents.slice(o,o+n),o=c.reader.readAsArrayBuffer(e),r.set(new Uint8Array(o),t),e.size)},write(e,r,t,n,o){throw new M.ErrnoError(29)},llseek(e,r,t){if(1===t?r+=e.position:2===t&&M.isFile(e.node.mode)&&(r+=e.node.size),r<0)throw new M.ErrnoError(28);return r}}},Me={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},M={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class extends Error{name="ErrnoError";constructor(e){for(var r in super(q?k(cr(e)):""),this.errno=e,Me)if(Me[r]===e){this.code=r;break}}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return 0!=(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,r,t,n){this.parent=e=e||this,this.mount=e.mount,this.id=M.nextInode++,this.name=r,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return M.isDir(this.mode)}get isDevice(){return M.isChrdev(this.mode)}},lookupPath(e,r={}){if(!e)throw new M.ErrnoError(44);r.follow_mount??=!0,T.isAbs(e)||(e=M.cwd()+"/"+e);e:for(var t=0;t<40;t++){for(var n=e.split("/").filter(e=>!!e),o=M.root,a="/",i=0;i<n.length;i++){var s=i===n.length-1;if(s&&r.parent)break;if("."!==n[i])if(".."===n[i]){if(a=T.dirname(a),M.isRoot(o)){e=a+"/"+n.slice(i+1).join("/");continue e}o=o.parent}else{a=T.join2(a,n[i]);try{o=M.lookupNode(o,n[i])}catch(e){if(44===e?.errno&&s&&r.noent_okay)return{path:a};throw e}if(!M.isMountpoint(o)||s&&!r.follow_mount||(o=o.mounted.root),M.isLink(o.mode)&&(!s||r.follow)){if(!o.node_ops.readlink)throw new M.ErrnoError(52);s=o.node_ops.readlink(o);e=(s=T.isAbs(s)?s:T.dirname(a)+"/"+s)+"/"+n.slice(i+1).join("/");continue e}}}return{path:a,node:o}}throw new M.ErrnoError(32)},getPath(e){for(var r,t;;){if(M.isRoot(e))return t=e.mount.mountpoint,r?"/"!==t[t.length-1]?t+"/"+r:t+r:t;r=r?e.name+"/"+r:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%M.nameTable.length},hashAddNode(e){var r=M.hashName(e.parent.id,e.name);e.name_next=M.nameTable[r],M.nameTable[r]=e},hashRemoveNode(e){var r=M.hashName(e.parent.id,e.name);if(M.nameTable[r]===e)M.nameTable[r]=e.name_next;else for(var t=M.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=M.mayLookup(e);if(t)throw new M.ErrnoError(t);for(var t=M.hashName(e.id,r),n=M.nameTable[t];n;n=n.name_next){var o=n.name;if(n.parent.id===e.id&&o===r)return n}return M.lookup(e,r)},createNode(e,r,t,n){_("object"==typeof e);e=new M.FSNode(e,r,t,n);return M.hashAddNode(e),e},destroyNode(e){M.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return 32768==(61440&e)},isDir(e){return 16384==(61440&e)},isLink(e){return 40960==(61440&e)},isChrdev(e){return 8192==(61440&e)},isBlkdev(e){return 24576==(61440&e)},isFIFO(e){return 4096==(61440&e)},isSocket(e){return 49152==(49152&e)},flagsToPermissionString(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions(e,r){return M.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2},mayLookup(e){return M.isDir(e.mode)?M.nodePermissions(e,"x")||(e.node_ops.lookup?0:2):54},mayCreate(e,r){if(!M.isDir(e.mode))return 54;try{M.lookupNode(e,r);return 20}catch(e){}return M.nodePermissions(e,"wx")},mayDelete(e,r,t){var n;try{n=M.lookupNode(e,r)}catch(e){return e.errno}r=M.nodePermissions(e,"wx");if(r)return r;if(t){if(!M.isDir(n.mode))return 54;if(M.isRoot(n)||M.getPath(n)===M.cwd())return 10}else if(M.isDir(n.mode))return 31;return 0},mayOpen(e,r){return e?M.isLink(e.mode)?32:M.isDir(e.mode)&&("r"!==M.flagsToPermissionString(r)||576&r)?31:M.nodePermissions(e,M.flagsToPermissionString(r)):44},checkOpExists(e,r){if(e)return e;throw new M.ErrnoError(r)},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=M.MAX_OPEN_FDS;e++)if(!M.streams[e])return e;throw new M.ErrnoError(33)},getStreamChecked(e){e=M.getStream(e);if(e)return e;throw new M.ErrnoError(8)},getStream:e=>M.streams[e],createStream(e,r=-1){return _(-1<=r),e=Object.assign(new M.FSStream,e),-1==r&&(r=M.nextfd()),e.fd=r,M.streams[r]=e},closeStream(e){M.streams[e]=null},dupStream(e,r=-1){e=M.createStream(e,r);return e.stream_ops?.dup?.(e),e},doSetAttr(e,r,t){var n=e?.stream_ops.setattr,e=n?e:r;n??=r.node_ops.setattr,M.checkOpExists(n,63),n(e,t)},chrdev_stream_ops:{open(e){var r=M.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new M.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,r)=>e<<8|r,registerDevice(e,r){M.devices[e]={stream_ops:r}},getDevice:e=>M.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(r,t){"function"==typeof r&&(t=r,r=!1),M.syncFSRequests++,1<M.syncFSRequests&&l(`warning: ${M.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var n=M.getMounts(M.root.mount),o=0;function a(e){return _(0<M.syncFSRequests),M.syncFSRequests--,t(e)}function i(e){if(e)return i.errored?void 0:(i.errored=!0,a(e));++o>=n.length&&a(null)}n.forEach(e=>{if(!e.type.syncfs)return i(null);e.type.syncfs(e,r,i)})},mount(e,r,t){if("string"==typeof e)throw e;var n,o="/"===t,a=!t;if(o&&M.root)throw new M.ErrnoError(10);if(!o&&!a){a=M.lookupPath(t,{follow_mount:!1});if(t=a.path,n=a.node,M.isMountpoint(n))throw new M.ErrnoError(10);if(!M.isDir(n.mode))throw new M.ErrnoError(54)}a={type:e,opts:r,mountpoint:t,mounts:[]},r=e.mount(a);return(r.mount=a).root=r,o?M.root=r:n&&(n.mounted=a,n.mount)&&n.mount.mounts.push(a),r},unmount(e){e=M.lookupPath(e,{follow_mount:!1});if(!M.isMountpoint(e.node))throw new M.ErrnoError(28);var e=e.node,r=e.mounted,n=M.getMounts(r),r=(Object.keys(M.nameTable).forEach(e=>{for(var r=M.nameTable[e];r;){var t=r.name_next;n.includes(r.mount)&&M.destroyNode(r),r=t}}),e.mounted=null,e.mount.mounts.indexOf(r));_(-1!==r),e.mount.mounts.splice(r,1)},lookup(e,r){return e.node_ops.lookup(e,r)},mknod(e,r,t){var n=M.lookupPath(e,{parent:!0}).node,e=T.basename(e);if(!e)throw new M.ErrnoError(28);if("."===e||".."===e)throw new M.ErrnoError(20);var o=M.mayCreate(n,e);if(o)throw new M.ErrnoError(o);if(n.node_ops.mknod)return n.node_ops.mknod(n,e,r,t);throw new M.ErrnoError(63)},statfs(e){return M.statfsNode(M.lookupPath(e,{follow:!0}).node)},statfsStream(e){return M.statfsNode(e.node)},statfsNode(e){var r={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:M.nextInode,ffree:M.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(r,e.node_ops.statfs(e.mount.opts.root)),r},create(e,r=438){return M.mknod(e,r=r&4095|32768,0)},mkdir(e,r=511){return M.mknod(e,r=r&1023|16384,0)},mkdirTree(e,r){var t,n="";for(t of e.split("/"))if(t){(n||T.isAbs(e))&&(n+="/"),n+=t;try{M.mkdir(n,r)}catch(e){if(20!=e.errno)throw e}}},mkdev(e,r,t){return void 0===t&&(t=r,r=438),M.mknod(e,r|=8192,t)},symlink(e,r){if(!A.resolve(e))throw new M.ErrnoError(44);var t=M.lookupPath(r,{parent:!0}).node;if(!t)throw new M.ErrnoError(44);var r=T.basename(r),n=M.mayCreate(t,r);if(n)throw new M.ErrnoError(n);if(t.node_ops.symlink)return t.node_ops.symlink(t,r,e);throw new M.ErrnoError(63)},rename(e,r){var t=T.dirname(e),n=T.dirname(r),o=T.basename(e),a=T.basename(r),i=M.lookupPath(e,{parent:!0}),i=i.node,s=M.lookupPath(r,{parent:!0}).node;if(!i||!s)throw new M.ErrnoError(44);if(i.mount!==s.mount)throw new M.ErrnoError(75);var l,c=M.lookupNode(i,o),e=A.relative(e,n);if("."!==e.charAt(0))throw new M.ErrnoError(28);if("."!==(e=A.relative(r,t)).charAt(0))throw new M.ErrnoError(55);try{l=M.lookupNode(s,a)}catch(e){}if(c!==l){n=M.isDir(c.mode),r=M.mayDelete(i,o,n);if(r)throw new M.ErrnoError(r);if(r=l?M.mayDelete(s,a,n):M.mayCreate(s,a))throw new M.ErrnoError(r);if(!i.node_ops.rename)throw new M.ErrnoError(63);if(M.isMountpoint(c)||l&&M.isMountpoint(l))throw new M.ErrnoError(10);if(s!==i&&(r=M.nodePermissions(i,"w")))throw new M.ErrnoError(r);M.hashRemoveNode(c);try{i.node_ops.rename(c,s,a),c.parent=s}catch(e){throw e}finally{M.hashAddNode(c)}}},rmdir(e){var r=M.lookupPath(e,{parent:!0}).node,e=T.basename(e),t=M.lookupNode(r,e),n=M.mayDelete(r,e,!0);if(n)throw new M.ErrnoError(n);if(!r.node_ops.rmdir)throw new M.ErrnoError(63);if(M.isMountpoint(t))throw new M.ErrnoError(10);r.node_ops.rmdir(r,e),M.destroyNode(t)},readdir(e){e=M.lookupPath(e,{follow:!0}).node;return M.checkOpExists(e.node_ops.readdir,54)(e)},unlink(e){var r=M.lookupPath(e,{parent:!0}).node;if(!r)throw new M.ErrnoError(44);var e=T.basename(e),t=M.lookupNode(r,e),n=M.mayDelete(r,e,!1);if(n)throw new M.ErrnoError(n);if(!r.node_ops.unlink)throw new M.ErrnoError(63);if(M.isMountpoint(t))throw new M.ErrnoError(10);r.node_ops.unlink(r,e),M.destroyNode(t)},readlink(e){e=M.lookupPath(e).node;if(!e)throw new M.ErrnoError(44);if(e.node_ops.readlink)return e.node_ops.readlink(e);throw new M.ErrnoError(28)},stat(e,r){e=M.lookupPath(e,{follow:!r}).node;return M.checkOpExists(e.node_ops.getattr,63)(e)},fstat(e){var e=M.getStreamChecked(e),r=e.node,t=e.stream_ops.getattr,e=t?e:r;return t??=r.node_ops.getattr,M.checkOpExists(t,63),t(e)},lstat(e){return M.stat(e,!0)},doChmod(e,r,t,n){M.doSetAttr(e,r,{mode:4095&t|-4096&r.mode,ctime:Date.now(),dontFollow:n})},chmod(e,r,t){e="string"==typeof e?M.lookupPath(e,{follow:!t}).node:e,M.doChmod(null,e,r,t)},lchmod(e,r){M.chmod(e,r,!0)},fchmod(e,r){e=M.getStreamChecked(e);M.doChmod(e,e.node,r,!1)},doChown(e,r,t){M.doSetAttr(e,r,{timestamp:Date.now(),dontFollow:t})},chown(e,r,t,n){e="string"==typeof e?M.lookupPath(e,{follow:!n}).node:e,M.doChown(null,e,n)},lchown(e,r,t){M.chown(e,r,t,!0)},fchown(e,r,t){e=M.getStreamChecked(e);M.doChown(e,e.node,!1)},doTruncate(e,r,t){if(M.isDir(r.mode))throw new M.ErrnoError(31);if(!M.isFile(r.mode))throw new M.ErrnoError(28);var n=M.nodePermissions(r,"w");if(n)throw new M.ErrnoError(n);M.doSetAttr(e,r,{size:t,timestamp:Date.now()})},truncate(e,r){if(r<0)throw new M.ErrnoError(28);e="string"==typeof e?M.lookupPath(e,{follow:!0}).node:e,M.doTruncate(null,e,r)},ftruncate(e,r){e=M.getStreamChecked(e);if(r<0||0==(2097155&e.flags))throw new M.ErrnoError(28);M.doTruncate(e,e.node,r)},utime(e,r,t){e=M.lookupPath(e,{follow:!0}).node;M.checkOpExists(e.node_ops.setattr,63)(e,{atime:r,mtime:t})},open(e,r,t=438){if(""===e)throw new M.ErrnoError(44);t=64&(r="string"==typeof r?(e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r})(r):r)?4095&t|32768:0,"object"==typeof e?n=e:(a=e.endsWith("/"),n=(o=M.lookupPath(e,{follow:!(131072&r),noent_okay:!0})).node,e=o.path);var n,o=!1;if(64&r)if(n){if(128&r)throw new M.ErrnoError(20)}else{if(a)throw new M.ErrnoError(31);n=M.mknod(e,511|t,0),o=!0}if(!n)throw new M.ErrnoError(44);if(M.isChrdev(n.mode)&&(r&=-513),65536&r&&!M.isDir(n.mode))throw new M.ErrnoError(54);if(!o){var a=M.mayOpen(n,r);if(a)throw new M.ErrnoError(a)}512&r&&!o&&M.truncate(n,0),r&=-131713;a=M.createStream({node:n,path:M.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return a.stream_ops.open&&a.stream_ops.open(a),o&&M.chmod(n,511&t),!i.logReadFiles||1&r||e in M.readFiles||(M.readFiles[e]=1),a},close(e){if(M.isClosed(e))throw new M.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{M.closeStream(e.fd)}e.fd=null},isClosed(e){return null===e.fd},llseek(e,r,t){if(M.isClosed(e))throw new M.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new M.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new M.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,o){if(_(0<=t),n<0||o<0)throw new M.ErrnoError(28);if(M.isClosed(e))throw new M.ErrnoError(8);if(1==(2097155&e.flags))throw new M.ErrnoError(8);if(M.isDir(e.node.mode))throw new M.ErrnoError(31);if(!e.stream_ops.read)throw new M.ErrnoError(28);var a=void 0!==o;if(a){if(!e.seekable)throw new M.ErrnoError(70)}else o=e.position;r=e.stream_ops.read(e,r,t,n,o);return a||(e.position+=r),r},write(e,r,t,n,o,a){if(_(0<=t),n<0||o<0)throw new M.ErrnoError(28);if(M.isClosed(e))throw new M.ErrnoError(8);if(0==(2097155&e.flags))throw new M.ErrnoError(8);if(M.isDir(e.node.mode))throw new M.ErrnoError(31);if(!e.stream_ops.write)throw new M.ErrnoError(28);e.seekable&&1024&e.flags&&M.llseek(e,0,2);var i=void 0!==o;if(i){if(!e.seekable)throw new M.ErrnoError(70)}else o=e.position;r=e.stream_ops.write(e,r,t,n,o,a);return i||(e.position+=r),r},mmap(e,r,t,n,o){if(0!=(2&n)&&0==(2&o)&&2!=(2097155&e.flags))throw new M.ErrnoError(2);if(1==(2097155&e.flags))throw new M.ErrnoError(2);if(!e.stream_ops.mmap)throw new M.ErrnoError(43);if(r)return e.stream_ops.mmap(e,r,t,n,o);throw new M.ErrnoError(28)},msync(e,r,t,n,o){return _(0<=t),e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0},ioctl(e,r,t){if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,r,t);throw new M.ErrnoError(59)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error(`Invalid encoding type "${r.encoding}"`);var t,n=M.open(e,r.flags),e=M.stat(e).size,o=new Uint8Array(e);return M.read(n,o,0,e,0),"utf8"===r.encoding?t=F(o):"binary"===r.encoding&&(t=o),M.close(n),t},writeFile(e,r,t={}){t.flags=t.flags||577;e=M.open(e,t.flags,t.mode);if("string"==typeof r){var n=new Uint8Array(O(r)+1),o=ve(r,n,0,n.length);M.write(e,n,0,o,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(r))throw new Error("Unsupported data type");M.write(e,r,0,r.byteLength,void 0,t.canOwn)}M.close(e)},cwd:()=>M.currentPath,chdir(e){e=M.lookupPath(e,{follow:!0});if(null===e.node)throw new M.ErrnoError(44);if(!M.isDir(e.node.mode))throw new M.ErrnoError(54);var r=M.nodePermissions(e.node,"x");if(r)throw new M.ErrnoError(r);M.currentPath=e.path},createDefaultDirectories(){M.mkdir("/tmp"),M.mkdir("/home"),M.mkdir("/home/web_user")},createDefaultDevices(){M.mkdir("/dev"),M.registerDevice(M.makedev(1,3),{read:()=>0,write:(e,r,t,n,o)=>n,llseek:()=>0}),M.mkdev("/dev/null",M.makedev(1,3)),D.register(M.makedev(5,0),D.default_tty_ops),D.register(M.makedev(6,0),D.default_tty1_ops),M.mkdev("/dev/tty",M.makedev(5,0)),M.mkdev("/dev/tty1",M.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(0===r&&(ge(e),r=e.byteLength),e[--r]);M.createDevice("/dev","random",t),M.createDevice("/dev","urandom",t),M.mkdir("/dev/shm"),M.mkdir("/dev/shm/tmp")},createSpecialDirectories(){M.mkdir("/proc");var r=M.mkdir("/proc/self");M.mkdir("/proc/self/fd"),M.mount({mount(){var e=M.createNode(r,"fd",16895,73);return e.stream_ops={llseek:P.stream_ops.llseek},e.node_ops={lookup(e,r){var r=+r,t=M.getStreamChecked(r),r={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>t.path},id:1+r};return r.parent=r},readdir(){return Array.from(M.streams.entries()).filter(([,e])=>e).map(([e])=>e.toString())}},e}},{},"/proc/self/fd")},createStandardStreams(e,r,t){e?M.createDevice("/dev","stdin",e):M.symlink("/dev/tty","/dev/stdin"),r?M.createDevice("/dev","stdout",null,r):M.symlink("/dev/tty","/dev/stdout"),t?M.createDevice("/dev","stderr",null,t):M.symlink("/dev/tty1","/dev/stderr");e=M.open("/dev/stdin",0),r=M.open("/dev/stdout",1),t=M.open("/dev/stderr",1);_(0===e.fd,`invalid handle for stdin (${e.fd})`),_(1===r.fd,`invalid handle for stdout (${r.fd})`),_(2===t.fd,`invalid handle for stderr (${t.fd})`)},staticInit(){M.nameTable=new Array(4096),M.mount(P,{},"/"),M.createDefaultDirectories(),M.createDefaultDevices(),M.createSpecialDirectories(),M.filesystems={MEMFS:P,WORKERFS:c}},init(e,r,t){_(!M.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),M.initialized=!0,e??=i.stdin,r??=i.stdout,t??=i.stderr,M.createStandardStreams(e,r,t)},quit(){M.initialized=!1,dr(0);for(var e of M.streams)e&&M.close(e)},findObject(e,r){e=M.analyzePath(e,r);return e.exists?e.object:null},analyzePath(e,r){try{e=(n=M.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=M.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=T.basename(e),n=M.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(e){t.error=e.errno}return t},createPath(e,r,t,n){e="string"==typeof e?e:M.getPath(e);for(var o=r.split("/").reverse();o.length;){var a=o.pop();if(a){var i=T.join2(e,a);try{M.mkdir(i)}catch(e){if(20!=e.errno)throw e}e=i}}return i},createFile(e,r,t,n,o){e=T.join2("string"==typeof e?e:M.getPath(e),r),r=Pe(n,o);return M.create(e,r)},createDataFile(e,r,t,n,o,a){var i=r,r=(e&&(e="string"==typeof e?e:M.getPath(e),i=r?T.join2(e,r):e),Pe(n,o)),e=M.create(i,r);if(t){if("string"==typeof t){for(var s=new Array(t.length),l=0,c=t.length;l<c;++l)s[l]=t.charCodeAt(l);t=s}M.chmod(e,146|r);n=M.open(e,577);M.write(n,t,0,t.length,0,a),M.close(n),M.chmod(e,r)}},createDevice(e,r,l,i){var e=T.join2("string"==typeof e?e:M.getPath(e),r),r=Pe(!!l,!!i),t=(M.createDevice.major??=64,M.makedev(M.createDevice.major++,0));return M.registerDevice(t,{open(e){e.seekable=!1},close(e){i?.buffer?.length&&i(10)},read(e,r,t,n,o){for(var a,i=0,s=0;s<n;s++){try{a=l()}catch(e){throw new M.ErrnoError(29)}if(void 0===a&&0===i)throw new M.ErrnoError(6);if(null==a)break;i++,r[t+s]=a}return i&&(e.node.atime=Date.now()),i},write(e,r,t,n,o){for(var a=0;a<n;a++)try{i(r[t+a])}catch(e){throw new M.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),a}}),M.mkdev(e,r,t)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{e.contents=j(e.url),e.usedBytes=e.contents.length}catch(e){throw new M.ErrnoError(29)}},createLazyFile(e,r,i,t,n){class o{lengthKnown=!1;chunks=[];get(e){var r;if(!(e>this.length-1||e<0))return r=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[r]}setDataGetter(e){this.getter=e}cacheLength(){var e=new XMLHttpRequest;if(e.open("HEAD",i,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+i+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),t=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,e=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,o=1048576,a=(t||(o=n),this);a.setDataGetter(e=>{var r=e*o,t=(e+1)*o-1,t=Math.min(t,n-1);if(void 0===a.chunks[e]&&(a.chunks[e]=((e,r)=>{if(r<e)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(n-1<r)throw new Error("only "+n+" bytes available! programmer error!");var t=new XMLHttpRequest;if(t.open("GET",i,!1),n!==o&&t.setRequestHeader("Range","bytes="+e+"-"+r),t.responseType="arraybuffer",t.overrideMimeType&&t.overrideMimeType("text/plain; charset=x-user-defined"),t.send(null),200<=t.status&&t.status<300||304===t.status)return void 0!==t.response?new Uint8Array(t.response||[]):Se(t.responseText||"",!0);throw new Error("Couldn't load "+i+". Status: "+t.status)})(r,t)),void 0===a.chunks[e])throw new Error("doXHR failed!");return a.chunks[e]}),!e&&n||(o=n=1,n=this.getter(0).length,o=n,m("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=o,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if("undefined"!=typeof XMLHttpRequest){if(!d)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a={isDevice:!1,contents:new o}}else a={isDevice:!1,url:i};var s=M.createFile(e,r,a,t,n),l=(a.contents?s.contents=a.contents:a.url&&(s.contents=null,s.url=a.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}}),{});function c(e,r,t,n,o){var a=e.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(_(0<=i),a.slice)for(var s=0;s<i;s++)r[t+s]=a[o+s];else for(s=0;s<i;s++)r[t+s]=a.get(o+s);return i}return Object.keys(s.stream_ops).forEach(e=>{var r=s.stream_ops[e];l[e]=(...e)=>(M.forceLoadFile(s),r(...e))}),l.read=(e,r,t,n,o)=>(M.forceLoadFile(s),c(e,r,t,n,o)),l.mmap=(e,r,t,n,o)=>{M.forceLoadFile(s);var a=ke(r);if(a)return c(e,f,a,r,t),{ptr:a,allocated:!0};throw new M.ErrnoError(48)},s.stream_ops=l,s},absolutePath(){o("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){o("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){o("FS.createLink has been removed; use FS.symlink instead")},joinPath(){o("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){o("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){o("FS.standardizePath has been removed; use PATH.normalize instead")}},N={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(T.isAbs(r))return r;if(e=-100===e?M.cwd():N.getStreamFromFD(e).path,0!=r.length)return e+"/"+r;if(t)return e;throw new M.ErrnoError(44)},writeStat(e,r){h[e>>>2>>>0]=r.dev,h[e+4>>>2>>>0]=r.mode,u[e+8>>>2>>>0]=r.nlink,h[e+12>>>2>>>0]=r.uid,h[e+16>>>2>>>0]=r.gid,h[e+20>>>2>>>0]=r.rdev,a[e+24>>>3]=BigInt(r.size),h[e+32>>>2>>>0]=4096,h[e+36>>>2>>>0]=r.blocks;var t=r.atime.getTime(),n=r.mtime.getTime(),o=r.ctime.getTime();return a[e+40>>>3]=BigInt(Math.floor(t/1e3)),u[e+48>>>2>>>0]=t%1e3*1e3*1e3,a[e+56>>>3]=BigInt(Math.floor(n/1e3)),u[e+64>>>2>>>0]=n%1e3*1e3*1e3,a[e+72>>>3]=BigInt(Math.floor(o/1e3)),u[e+80>>>2>>>0]=o%1e3*1e3*1e3,a[e+88>>>3]=BigInt(r.ino),0},writeStatFs(e,r){h[e+4>>>2>>>0]=r.bsize,h[e+40>>>2>>>0]=r.bsize,h[e+8>>>2>>>0]=r.blocks,h[e+12>>>2>>>0]=r.bfree,h[e+16>>>2>>>0]=r.bavail,h[e+20>>>2>>>0]=r.files,h[e+24>>>2>>>0]=r.ffree,h[e+28>>>2>>>0]=r.fsid,h[e+44>>>2>>>0]=r.flags,h[e+36>>>2>>>0]=r.namelen},doMsync(e,r,t,n,o){if(!M.isFile(r.node.mode))throw new M.ErrnoError(43);if(2&n)return 0;e=s.slice(e,e+t);M.msync(r,e,o,t,n)},getStreamFromFD(e){return M.getStreamChecked(e)},varargs:void 0,getStr(e){return k(e)}},Ne=()=>{_(null!=N.varargs);var e=h[+N.varargs>>>2>>>0];return N.varargs+=4,e},I=Ne,R=(e,r,t)=>(_("number"==typeof t,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),ve(e,s,r,t)),Ie=e=>u[e>>>2>>>0]+4294967296*h[e+4>>>2>>>0],Re=[0,31,60,91,121,152,182,213,244,274,305,335],Ce=[0,31,59,90,120,151,181,212,243,273,304,334],Le=e=>{var r;return((r=e.getFullYear())%4==0&&(r%100!=0||r%400==0)?Re:Ce)[e.getMonth()]+e.getDate()-1},xe=()=>performance.now(),Ue=()=>Date.now(),Be=e=>0<=e&&e<=3,je=()=>4294901760,ze=r=>{var t=Y.buffer,e=(r-t.byteLength+65535)/65536|0;try{return Y.grow(e),ee(),1}catch(e){l(`growMemory: Attempted to grow heap from ${t.byteLength} bytes to ${r} bytes, but got error: `+e)}},He={},Ge=()=>{if(!Ge.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:H||"./this.program"};for(r in He)void 0===He[r]?delete e[r]:e[r]=He[r];var r,t=[];for(r in e)t.push(r+"="+e[r]);Ge.strings=t}return Ge.strings},We=(e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var i=u[r>>>2>>>0],s=u[r+4>>>2>>>0],i=(r+=8,M.read(e,f,i,s,n));if(i<0)return-1;if(o+=i,i<s)break;void 0!==n&&(n+=i)}return o},$e=(e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var i=u[r>>>2>>>0],s=u[r+4>>>2>>>0],i=(r+=8,M.write(e,f,i,s,n));if(i<0)return-1;if(o+=i,i<s)break;void 0!==n&&(n+=i)}return o},Ye=(e,r)=>{V=e;var t=m,n=l,o=!1;m=l=e=>{o=!0};try{dr(0),["stdout","stderr"].forEach(e=>{var e=M.analyzePath("/dev/"+e);e&&(e=e.object.rdev,D.ttys[e]?.output?.length)&&(o=!0)})}catch(e){}m=t,l=n,o&&S("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc."),fe&&!r&&(U(t=`program exited (with status: ${e}), but keepRuntimeAlive() is set (counter=0) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`),l(t)),V=n=e,fe||(i.onExit?.(n),K=!0),G(0,new se(n))},Ve=e=>{if(e instanceof se||"unwind"==e)return V;J(),e instanceof WebAssembly.RuntimeError&&Er()<=0&&l("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 65536)"),G(0,e)},Ke=e=>_r(e),qe=e=>{var r=O(e)+1,t=Ke(r);return R(e,t,r),t},Xe=e=>{var r=i["_"+e];return _(r,"Cannot call unknown function "+e+", make sure it is exported"),r},Je=(e,r)=>{_(0<=e.length,"writeArrayToMemory array must have a length (should be an array or typed array)"),f.set(e,r>>>0)},Ze=(e,r)=>{_(e<16384),e<128?r.push(e):r.push(e%128|128,e>>7)},Qe=(e,r)=>{if("function"==typeof WebAssembly.Function)return new WebAssembly.Function((e=>{for(var r={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},t={parameters:[],results:"v"==e[0]?[]:[r[e[0]]]},n=1;n<e.length;++n)_(e[n]in r,"invalid signature char: "+e[n]),t.parameters.push(r[e[n]]);return t})(r),e);var t,n=[1],o=n,a=(r=r).slice(0,1),r=r.slice(1),i={i:127,p:127,j:126,f:125,d:124,e:111};o.push(96),Ze(r.length,o);for(t of r)_(t in i,"invalid signature char: "+t),o.push(i[t]);"v"==a?o.push(0):o.push(1,i[a]);r=[0,97,115,109,1,0,0,0,1],Ze(n.length,r),r.push(...n),r.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),a=new WebAssembly.Module(new Uint8Array(r));return new WebAssembly.Instance(a,{e:{f:e}}).exports.f},er=[],rr=(e,r)=>{if(v)for(var t=e;t<e+r;t++){o=void 0,(o=er[n=t])||(er[n]=o=y.get(n)),_(y.get(n)==o,"JavaScript-side Wasm function table mirror is out of date!");n=o;n&&v.set(n,t)}var n,o},tr=e=>(v||(v=new WeakMap,rr(0,y.length)),v.get(e)||0),nr=[],or=()=>{if(nr.length)return nr.pop();try{y.grow(1)}catch(e){if(e instanceof RangeError)throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";throw e}return y.length-1},ar=(e,r)=>{y.set(e,r),er[e]=y.get(e)},t=(M.createPreloadedFile=(t,n,e,o,a,i,s,l,c,d)=>{var u=n?A.resolve(T.join2(t,n)):t,m=function(e){for(var r=e;;){if(!w[e])return e;e=r+Math.random()}}("cp "+u);function r(e){function r(e){d?.(),l||Ae(t,n,e,o,a,c),i?.(),oe(m)}De(e,u,r,()=>{s?.(),oe(m)})||r(e)}ne(m),"string"==typeof e?Te(e).then(r,s):r(e)},M.staticInit(),i.noExitRuntime&&(fe=i.noExitRuntime),i.preloadPlugins&&(Oe=i.preloadPlugins),i.print&&(m=i.print),i.printErr&&(l=i.printErr),i.wasmBinary&&($=i.wasmBinary),"fetchSettings");Object.getOwnPropertyDescriptor(i,t)&&o(`\`Module.${t}\` was supplied but \`${t}\` not included in INCOMING_MODULE_JS_API`),i.arguments&&(z=i.arguments),i.thisProgram&&(H=i.thisProgram),_(void 0===i.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),_(void 0===i.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),_(void 0===i.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),_(void 0===i.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),_(void 0===i.read,"Module.read option was removed"),_(void 0===i.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),_(void 0===i.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),_(void 0===i.setWindowTitle,"Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),_(void 0===i.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),_(void 0===i.ENVIRONMENT,"Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)"),_(void 0===i.STACK_SIZE,"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),_(void 0===i.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),_(void 0===i.INITIAL_MEMORY,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically"),i.callMain=wr,i.ccall=(e,r,t,n,o)=>{var a={string:e=>{var r=0;return r=null!=e&&0!==e?qe(e):r},array:e=>{var r=Ke(e.length);return Je(e,r),r}};var e=Xe(e),i=[],s=0;if(_("array"!==r,'Return type should not be "array".'),n)for(var l=0;l<n.length;l++){var c=a[t[l]];c?(0===s&&(s=_e()),i[l]=c(n[l])):i[l]=n[l]}e=e(...i);return e=e,0!==s&&he(s),e=e,"string"===r?k(e):"boolean"===r?Boolean(e):e},i.addFunction=(r,t)=>{_(void 0!==r);var n=tr(r);if(n)return n;n=or();try{ar(n,r)}catch(e){if(!(e instanceof TypeError))throw e;_(void 0!==t,"Missing signature argument to addFunction: "+r);t=Qe(r,t);ar(n,t)}return v.set(r,n),n},i.FS=M,["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromU64","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","getTempRet0","setTempRet0","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","emscriptenLog","readEmAsmArgs","jstoi_q","listenOnce","autoResumeAudioContext","getDynCaller","dynCall","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asmjsMangle","HandleAllocator","getNativeTypeSize","addOnInit","addOnPostCtor","addOnPreMain","addOnExit","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","cwrap","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","stringToAscii","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToNewUTF8","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","safeSetTimeout","setImmediateWrapped","safeRequestAnimationFrame","clearImmediateWrapped","registerPostMainLoop","registerPreMainLoop","getPromise","makePromise","idsToPromises","makePromiseCallback","ExceptionInfo","findMatchingCatch","Browser_asyncPrepareDataCounter","arraySum","addDays","getSocketFromFD","getSocketAddress","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","toTypedArrayIndex","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","webgl_enable_EXT_polygon_offset_clamp","webgl_enable_EXT_clip_control","webgl_enable_WEBGL_polygon_mode","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","demangle","stackTrace"].forEach(function(e){Q(e)}),["run","addRunDependency","removeRunDependency","out","err","abort","wasmMemory","wasmExports","HEAPF32","HEAPF64","HEAP8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAP64","HEAPU64","writeStackCookie","checkStackCookie","readI53FromI64","INT53_MAX","INT53_MIN","bigintToI53Checked","stackSave","stackRestore","stackAlloc","ptrToString","zeroMemory","exitJS","getHeapMax","growMemory","ENV","ERRNO_CODES","strError","DNS","Protocols","Sockets","timers","warnOnce","readEmAsmArgsArray","getExecutableName","handleException","keepRuntimeAlive","asyncLoad","alignMemory","mmapAlloc","wasmTable","noExitRuntime","addOnPreRun","addOnPostRun","getCFunc","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","updateTableMap","getFunctionAddress","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","intArrayFromString","UTF16Decoder","stringToUTF8OnStack","writeArrayToMemory","JSEvents","specialHTMLTargets","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","getEnvStrings","checkWasiClock","doReadv","doWritev","initRandomFill","randomFill","emSetImmediate","emClearImmediate_deps","emClearImmediate","promiseMap","uncaughtExceptionCount","exceptionLast","exceptionCaught","Browser","getPreloadedImageData__data","wget","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","isLeapYear","ydayFromDate","SYSCALLS","preloadPlugins","FS_createPreloadedFile","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar_buffer","FS_stdin_getChar","FS_unlink","FS_createPath","FS_createDevice","FS_readFile","FS_root","FS_mounts","FS_devices","FS_streams","FS_nextInode","FS_nameTable","FS_currentPath","FS_initialized","FS_ignorePermissions","FS_filesystems","FS_syncFSRequests","FS_readFiles","FS_lookupPath","FS_getPath","FS_hashName","FS_hashAddNode","FS_hashRemoveNode","FS_lookupNode","FS_createNode","FS_destroyNode","FS_isRoot","FS_isMountpoint","FS_isFile","FS_isDir","FS_isLink","FS_isChrdev","FS_isBlkdev","FS_isFIFO","FS_isSocket","FS_flagsToPermissionString","FS_nodePermissions","FS_mayLookup","FS_mayCreate","FS_mayDelete","FS_mayOpen","FS_checkOpExists","FS_nextfd","FS_getStreamChecked","FS_getStream","FS_createStream","FS_closeStream","FS_dupStream","FS_doSetAttr","FS_chrdev_stream_ops","FS_major","FS_minor","FS_makedev","FS_registerDevice","FS_getDevice","FS_getMounts","FS_syncfs","FS_mount","FS_unmount","FS_lookup","FS_mknod","FS_statfs","FS_statfsStream","FS_statfsNode","FS_create","FS_mkdir","FS_mkdev","FS_symlink","FS_rename","FS_rmdir","FS_readdir","FS_readlink","FS_stat","FS_fstat","FS_lstat","FS_doChmod","FS_chmod","FS_lchmod","FS_fchmod","FS_doChown","FS_chown","FS_lchown","FS_fchown","FS_doTruncate","FS_truncate","FS_ftruncate","FS_utime","FS_open","FS_close","FS_isClosed","FS_llseek","FS_read","FS_write","FS_mmap","FS_msync","FS_ioctl","FS_writeFile","FS_cwd","FS_chdir","FS_createDefaultDirectories","FS_createDefaultDevices","FS_createSpecialDirectories","FS_createStandardStreams","FS_staticInit","FS_init","FS_quit","FS_findObject","FS_analyzePath","FS_createFile","FS_createDataFile","FS_forceLoadFile","FS_createLazyFile","FS_absolutePath","FS_createFolder","FS_createLink","FS_joinPath","FS_mmapAlloc","FS_standardizePath","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack","print","printErr","jstoi_s","WORKERFS"].forEach(Q);var ir,e={__assert_fail:function(e,r,t,n){return r>>>=0,n>>>=0,o(`Assertion failed: ${k(e>>>=0)}, at: `+[r?k(r):"unknown filename",t,n?k(n):"unknown function"])},__syscall_chmod:function(e,r){e>>>=0;try{return e=N.getStr(e),M.chmod(e,r),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_faccessat:function(e,r,t,n){r>>>=0;try{var o,a;return(r=N.getStr(r),_(0===n||512==n),r=N.calculateAt(e,r),-8&t)?-28:(o=M.lookupPath(r,{follow:!0}).node)?(a="",4&t&&(a+="r"),2&t&&(a+="w"),1&t&&(a+="x"),a&&M.nodePermissions(o,a)?-2:0):-44}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_fchmod:function(e,r){try{return M.fchmod(e,r),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_fchown32:function(e,r,t){try{return M.fchown(e,r,t),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_fcntl64:function(e,r,t){N.varargs=t>>>=0;try{var n=N.getStreamFromFD(e);switch(r){case 0:if((o=Ne())<0)return-28;for(;M.streams[o];)o++;return M.dupStream(n,o).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var o=Ne();return n.flags|=o,0;case 12:o=I();return p[o+0>>>1>>>0]=2,0;case 13:case 14:return 0}return-28}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_fstat64:function(e,r){r>>>=0;try{return N.writeStat(r,M.fstat(e))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_ftruncate64:function(e,r){r=b(r);try{return isNaN(r)?61:(M.ftruncate(e,r),0)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_getcwd:function(e,r){e>>>=0,r>>>=0;try{var t,n;return 0===r?-28:(t=M.cwd(),r<(n=O(t)+1)?-68:(R(t,e,r),n))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_ioctl:function(e,r,t){N.varargs=t>>>=0;try{var n,o=N.getStreamFromFD(e);switch(r){case 21509:return o.tty?0:-59;case 21505:if(!o.tty)return-59;if(o.tty.ops.ioctl_tcgets){var a=o.tty.ops.ioctl_tcgets(o),i=I();h[i>>>2>>>0]=a.c_iflag||0,h[i+4>>>2>>>0]=a.c_oflag||0,h[i+8>>>2>>>0]=a.c_cflag||0,h[i+12>>>2>>>0]=a.c_lflag||0;for(var s=0;s<32;s++)f[i+s+17>>>0]=a.c_cc[s]||0}return 0;case 21510:case 21511:case 21512:return o.tty?0:-59;case 21506:case 21507:case 21508:if(!o.tty)return-59;if(o.tty.ops.ioctl_tcsets){for(var i=I(),l=h[i>>>2>>>0],c=h[i+4>>>2>>>0],d=h[i+8>>>2>>>0],u=h[i+12>>>2>>>0],m=[],s=0;s<32;s++)m.push(f[i+s+17>>>0]);return o.tty.ops.ioctl_tcsets(o.tty,r,{c_iflag:l,c_oflag:c,c_cflag:d,c_lflag:u,c_cc:m})}return 0;case 21519:return o.tty?(i=I(),h[i>>>2>>>0]=0):-59;case 21520:return o.tty?-28:-59;case 21531:i=I();return M.ioctl(o,r,i);case 21523:return o.tty?(o.tty.ops.ioctl_tiocgwinsz&&(n=o.tty.ops.ioctl_tiocgwinsz(o.tty),i=I(),p[i>>>1>>>0]=n[0],p[i+2>>>1>>>0]=n[1]),0):-59;case 21524:case 21515:return o.tty?0:-59;default:return-28}}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_lstat64:function(e,r){e>>>=0,r>>>=0;try{return e=N.getStr(e),N.writeStat(r,M.lstat(e))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_mkdirat:function(e,r,t){r>>>=0;try{return r=N.getStr(r),r=N.calculateAt(e,r),M.mkdir(r,t,0),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_newfstatat:function(e,r,t,n){r>>>=0,t>>>=0;try{r=N.getStr(r);var o=256&n,a=4096&n;return _(!(n&=-6401),"unknown flags in __syscall_newfstatat: "+n),r=N.calculateAt(e,r,a),N.writeStat(t,o?M.lstat(r):M.stat(r))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_openat:function(e,r,t,n){r>>>=0,N.varargs=n>>>=0;try{r=N.getStr(r),r=N.calculateAt(e,r);var o=n?Ne():0;return M.open(r,t,o).fd}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_readlinkat:function(e,r,t,n){r>>>=0,t>>>=0,n>>>=0;try{var o,a,i;return(r=N.getStr(r),r=N.calculateAt(e,r),n<=0)?-28:(o=M.readlink(r),a=Math.min(n,O(o)),i=f[t+a>>>0],R(o,t,n+1),f[t+a>>>0]=i,a)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_rmdir:function(e){e>>>=0;try{return e=N.getStr(e),M.rmdir(e),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_stat64:function(e,r){e>>>=0,r>>>=0;try{return e=N.getStr(e),N.writeStat(r,M.stat(e))}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_unlinkat:function(e,r,t){r>>>=0;try{return r=N.getStr(r),r=N.calculateAt(e,r),0===t?M.unlink(r):512===t?M.rmdir(r):o("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},__syscall_utimensat:function(e,r,t,n){r>>>=0,t>>>=0;try{r=N.getStr(r),_(0===n),r=N.calculateAt(e,r,!0);var o,a,i,s,l=Date.now();return null!==((s=t?(i=Ie(t),a=1073741823==(o=h[t+8>>>2>>>0])?l:1073741822==o?null:1e3*i+o/1e6,i=Ie(t+=16),1073741823==(o=h[t+8>>>2>>>0])?l:1073741822==o?null:1e3*i+o/1e6):a=l)??a)&&M.utime(r,a,s),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},_abort_js:()=>o("native code called abort()"),_gmtime_js:function(e,r){e=b(e),r>>>=0;var e=new Date(1e3*e),t=(h[r>>>2>>>0]=e.getUTCSeconds(),h[r+4>>>2>>>0]=e.getUTCMinutes(),h[r+8>>>2>>>0]=e.getUTCHours(),h[r+12>>>2>>>0]=e.getUTCDate(),h[r+16>>>2>>>0]=e.getUTCMonth(),h[r+20>>>2>>>0]=e.getUTCFullYear()-1900,h[r+24>>>2>>>0]=e.getUTCDay(),Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0)),e=(e.getTime()-t)/864e5|0;h[r+28>>>2>>>0]=e},_localtime_js:function(e,r){e=b(e),r>>>=0;var e=new Date(1e3*e),t=(h[r>>>2>>>0]=e.getSeconds(),h[r+4>>>2>>>0]=e.getMinutes(),h[r+8>>>2>>>0]=e.getHours(),h[r+12>>>2>>>0]=e.getDate(),h[r+16>>>2>>>0]=e.getMonth(),h[r+20>>>2>>>0]=e.getFullYear()-1900,h[r+24>>>2>>>0]=e.getDay(),0|Le(e)),t=(h[r+28>>>2>>>0]=t,h[r+36>>>2>>>0]=-60*e.getTimezoneOffset(),new Date(e.getFullYear(),0,1)),n=new Date(e.getFullYear(),6,1).getTimezoneOffset(),t=t.getTimezoneOffset(),e=0|(n!=t&&e.getTimezoneOffset()==Math.min(t,n));h[r+32>>>2>>>0]=e},_mmap_js:function(e,r,t,n,o,a,i){e>>>=0,o=b(o),a>>>=0,i>>>=0;try{var s,l,c;return isNaN(o)?61:(s=N.getStreamFromFD(n),c=(l=M.mmap(s,e,o,r,t)).ptr,h[a>>>2>>>0]=l.allocated,u[i>>>2>>>0]=c,0)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},_munmap_js:function(e,r,t,n,o,a){e>>>=0,r>>>=0,a=b(a);try{var i=N.getStreamFromFD(o);2&t&&N.doMsync(e,i,r,n,a)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return-e.errno}},_timegm_js:function(e){e>>>=0;r=Date.UTC(h[e+20>>>2>>>0]+1900,h[e+16>>>2>>>0],h[e+12>>>2>>>0],h[e+8>>>2>>>0],h[e+4>>>2>>>0],h[e>>>2>>>0],0),r=new Date(r),h[e+24>>>2>>>0]=r.getUTCDay(),t=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),t=(r.getTime()-t)/864e5|0,h[e+28>>>2>>>0]=t;var r,t,e=r.getTime()/1e3;return BigInt(e)},_tzset_js:function(e,r,t,n){e>>>=0,r>>>=0,t>>>=0,n>>>=0;var o=(new Date).getFullYear(),a=new Date(o,0,1),o=new Date(o,6,1),a=a.getTimezoneOffset(),o=o.getTimezoneOffset(),i=Math.max(a,o),e=(u[e>>>2>>>0]=60*i,h[r>>>2>>>0]=Number(a!=o),e=>{var r=0<=e?"-":"+",e=Math.abs(e);return"UTC"+r+String(Math.floor(e/60)).padStart(2,"0")+String(e%60).padStart(2,"0")}),i=e(a),r=e(o);_(i),_(r),_(O(i)<=16,`timezone name truncated to fit in TZNAME_MAX (${i})`),_(O(r)<=16,`timezone name truncated to fit in TZNAME_MAX (${r})`),o<a?(R(i,t,17),R(r,n,17)):(R(i,n,17),R(r,t,17))},clock_time_get:function(e,r,t){return t>>>=0,Be(e)?(e=(0===e?Ue:xe)(),e=Math.round(1e3*e*1e3),a[t>>>3]=BigInt(e),0):28},emscripten_date_now:Ue,emscripten_err:function(e){return l(k(e>>>=0))},emscripten_get_heap_max:function(){return je()},emscripten_get_now:xe,emscripten_resize_heap:function(e){var r=s.length,t=(_(r<(e>>>=0)),je());if(t<e)l(`Cannot enlarge memory, requested ${e} bytes, but the limit is ${t} bytes!`);else{for(var n=1;n<=4;n*=2){var o=r*(1+.2/n),o=Math.min(o,e+100663296),a=Math.min(t,Fe(Math.max(e,o),65536));if(ze(a))return!0}l(`Failed to grow the heap from ${r} bytes to ${a} bytes, not enough memory!`)}return!1},environ_get:function(e,r){e>>>=0,r>>>=0;var t,n=0,o=0;for(t of Ge()){var a=r+n;u[e+o>>>2>>>0]=a,n+=R(t,a,1/0)+1,o+=4}return 0},environ_sizes_get:function(e,r){e>>>=0,r>>>=0;var t,n=Ge(),o=(u[e>>>2>>>0]=n.length,0);for(t of n)o+=O(t)+1;return u[r>>>2>>>0]=o,0},fd_close:function(e){try{var r=N.getStreamFromFD(e);return M.close(r),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_fdstat_get:function(e,r){r>>>=0;try{var t=N.getStreamFromFD(e),n=t.tty?2:M.isDir(t.mode)?3:M.isLink(t.mode)?7:4;return f[r>>>0]=n,p[r+2>>>1>>>0]=0,a[r+8>>>3]=BigInt(0),a[r+16>>>3]=BigInt(0),0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_read:function(e,r,t,n){r>>>=0,t>>>=0,n>>>=0;try{var o=N.getStreamFromFD(e),a=We(o,r,t);return u[n>>>2>>>0]=a,0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_seek:function(e,r,t,n){r=b(r),n>>>=0;try{var o;return isNaN(r)?61:(o=N.getStreamFromFD(e),M.llseek(o,r,t),a[n>>>3]=BigInt(o.position),o.getdents&&0===r&&0===t&&(o.getdents=null),0)}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_sync:function(e){try{var r=N.getStreamFromFD(e);return r.stream_ops?.fsync?r.stream_ops.fsync(r):0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}},fd_write:function(e,r,t,n){r>>>=0,t>>>=0,n>>>=0;try{var o=N.getStreamFromFD(e),a=$e(o,r,t);return u[n>>>2>>>0]=a,0}catch(e){if(void 0===M||"ErrnoError"!==e.name)throw e;return e.errno}}},C=(ne("wasm-instantiate"),ir={env:e,wasi_snapshot_preview1:e},i.instantiateWasm?new Promise((t,r)=>{try{i.instantiateWasm(ir,(e,r)=>{t(sr(e))})}catch(e){l("Module.instantiateWasm callback failed with error: "+e),r(e)}}):sr(ie(re??=ae(),ir)[0]));function sr(e){var r;return C=e.exports,e=C,e=Object.assign({},e),r=e=>()=>e()>>>0,e.strerror=(r=>e=>r(e)>>>0)(e.strerror),e.emscripten_stack_get_end=r(e.emscripten_stack_get_end),e.emscripten_stack_get_base=r(e.emscripten_stack_get_base),e.emscripten_builtin_memalign=(t=>(e,r)=>t(e,r)>>>0)(e.emscripten_builtin_memalign),e._emscripten_stack_alloc=(r=>e=>r(e)>>>0)(e._emscripten_stack_alloc),e.emscripten_stack_get_current=r(e.emscripten_stack_get_current),_(Y=(C=e).memory,"memory not found in wasm exports"),ee(),_(y=C.__indirect_function_table,"table not found in wasm exports"),oe("wasm-instantiate"),C}var lr,cr=g("strerror",1),dr=g("fflush",1),ur=(i._trace_processor_rpc_init=g("trace_processor_rpc_init",2),i._trace_processor_on_rpc_request=g("trace_processor_on_rpc_request",1),i._main=g("__main_argc_argv",2)),mr=C.emscripten_stack_get_end,fr=(C.emscripten_stack_get_base,g("emscripten_builtin_memalign",2)),pr=C.emscripten_stack_init,hr=(C.emscripten_stack_get_free,C._emscripten_stack_restore),_r=C._emscripten_stack_alloc,Er=C.emscripten_stack_get_current;function wr(e=[]){_(0==E,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'),_(void 0===ue||0==ue.length,"cannot call main when preRun functions remain to be called");var r=ur,t=(e.unshift(H),e.length),n=Ke(4*(t+1)),o=n;e.forEach(e=>{u[o>>>2>>>0]=qe(e),o+=4}),u[o>>>2>>>0]=0;try{var a=r(t,n);return Ye(a,!0),a}catch(e){return Ve(e)}}function gr(){var e;pr(),_(0==(3&(e=mr()))),0==e&&(e+=4),u[e>>>2>>>0]=34821223,u[e+4>>>2>>>0]=2310721022,u[0]=1668509029}if(i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);0<i.preInit.length;)i.preInit.shift()();Z("preInit"),function e(r=z){if(0<E)te=e;else{if(gr(),i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)me(i.preRun.shift());Z("preRun"),le(ue),0<E?te=e:(i.setStatus?(i.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>i.setStatus(""),1),t()},1)):t(),J())}function t(){if(_(!lr),lr=!0,i.calledRun=!0,!K){if(_(!q),q=!0,J(),i.noFSInit||M.initialized||M.init(),C.__wasm_call_ctors(),M.ignorePermissions=!1,J(),x(i),i.onRuntimeInitialized?.(),Z("onRuntimeInitialized"),i.noInitialRun||wr(r),J(),i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)de(i.postRun.shift());Z("postRun"),le(ce)}}}(),r=i;for(const yr of Object.keys(i))yr in L||Object.defineProperty(L,yr,{configurable:!0,get(){o(`Access to module property ('${yr}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}});return r}var r,vr;return J||(J=1,(r=C).exports,vr="undefined"!=typeof document?document.currentScript?.src:void 0,r.exports=e,r.exports.default=e),C.exports}function re(){if(!Z){Z=1,Object.defineProperty(r,"__esModule",{value:!0}),r.WasmBridge=void 0;var e=H;const t=G(),a=K(),n=e.__importDefault(X()),o=e.__importDefault(ee());r.WasmBridge=class{aborted;connection;reqBufferAddr=0;lastStderr=[];messagePort;useMemory64;constructor(){const e=(this.aborted=!1,t.defer)();this.useMemory64=function(){var e=new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,4,0,0,8,4,110,97,109,101,2,1,0]);try{return new WebAssembly.Module(e),!0}catch(e){return!1}}();var r=(this.useMemory64?n:o).default;this.connection=r({locateFile:e=>e,print:e=>console.log(e),printErr:e=>this.appendAndLogErr(e),onRuntimeInitialized:()=>e.resolve()}),e.then(()=>{var e=this.connection.addFunction(this.onReply.bind(this),"vpi");this.reqBufferAddr=this.wasmPtrCast(this.connection.ccall("trace_processor_rpc_init","pointer",["pointer","number"],[e,33554432]))})}initialize(e){(0,a.assertTrue)(void 0===this.messagePort),this.messagePort=e,this.messagePort.onmessage=this.onMessage.bind(this)}onMessage(e){if(this.aborted)throw new Error("Wasm module crashed");(0,a.assertTrue)(e.data instanceof Uint8Array);var r=e.data;let t=0;for(;t<r.length;){var n=Math.min(r.length-t,33554432),o=r.subarray(t,t+n);this.connection.HEAPU8.set(o,this.reqBufferAddr),t+=n;try{this.connection.ccall("trace_processor_on_rpc_request","void",["number"],[n])}catch(e){this.aborted=!0;let r=""+e;throw e instanceof Error&&(r=`${e.name}: ${e.message}
|
|
2
|
+
`+e.stack),r+="\n\nstderr: \n"+this.lastStderr.join("\n"),new Error(r)}}}onReply(e,r){e=this.wasmPtrCast(e),e=this.connection.HEAPU8.slice(e,e+r);(0,a.assertExists)(this.messagePort).postMessage(e,[e.buffer])}appendAndLogErr(e){console.warn(e),this.lastStderr.push(e),512<this.lastStderr.length&&this.lastStderr.shift()}wasmPtrCast(e){return this.useMemory64?Number(e):((0,a.assertTrue)("number"==typeof e),Number(e)>>>0)}}}return r}return C.exports,L(function(){if(!Q){Q=1,Object.defineProperty(n,"__esModule",{value:!0});var e=re(),r=self;const t=new e.WasmBridge;r.onmessage=e=>{e=e.data;t.initialize(e)}}return n}())}();
|
|
3
|
+
//# sourceMappingURL=engine_bundle.js.map
|