@squoosh-kit/core 0.0.26 → 0.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-0zm3fssb.js +27 -0
- package/dist/{chunk-1drdrcw6.js.map → chunk-0zm3fssb.js.map} +5 -4
- package/dist/chunk-1nammd75.js +3 -0
- package/dist/chunk-1nammd75.js.map +12 -0
- package/dist/{chunk-ks7kcgv0.js → chunk-32b1dzdk.js} +2 -2
- package/dist/{chunk-494e4bws.js.map → chunk-32b1dzdk.js.map} +1 -1
- package/dist/chunk-3bjh9q3d.js +3 -0
- package/dist/chunk-3bjh9q3d.js.map +12 -0
- package/dist/chunk-43p1mhfj.js +28 -0
- package/dist/{chunk-psyan2mp.js.map → chunk-43p1mhfj.js.map} +5 -4
- package/dist/chunk-5c9bqcya.js +3 -0
- package/dist/chunk-5c9bqcya.js.map +12 -0
- package/dist/chunk-7xbe4p9k.js +27 -0
- package/dist/{chunk-04b8p5fj.js.map → chunk-7xbe4p9k.js.map} +5 -4
- package/dist/{chunk-6k9yrqxa.js → chunk-7yfp7f89.js} +2 -2
- package/dist/{chunk-6k9yrqxa.js.map → chunk-7yfp7f89.js.map} +1 -1
- package/dist/chunk-8rd8cz4p.js +4 -0
- package/dist/chunk-8rd8cz4p.js.map +10 -0
- package/dist/chunk-cx0mw714.js +5 -0
- package/dist/chunk-cx0mw714.js.map +10 -0
- package/dist/{chunk-8n3nqchr.js → chunk-dp7438g1.js} +1 -1
- package/dist/chunk-esqbfmnq.js +3 -0
- package/dist/chunk-esqbfmnq.js.map +10 -0
- package/dist/chunk-gw29pvyv.js +3 -0
- package/dist/chunk-gw29pvyv.js.map +10 -0
- package/dist/chunk-kqhkejsf.js +4 -0
- package/dist/chunk-kqhkejsf.js.map +10 -0
- package/dist/chunk-mj23nwx3.js +4 -0
- package/dist/chunk-mj23nwx3.js.map +10 -0
- package/dist/chunk-q0apy7nk.js +5 -0
- package/dist/chunk-q0apy7nk.js.map +10 -0
- package/dist/{chunk-s6j0a55y.js → chunk-r36yp9st.js} +1 -1
- package/dist/chunk-szbj3b6y.js +4 -0
- package/dist/chunk-szbj3b6y.js.map +10 -0
- package/dist/chunk-vd90dz6z.js +4 -0
- package/dist/chunk-vd90dz6z.js.map +12 -0
- package/dist/{chunk-9pex0hk9.js → chunk-xp5z79cc.js} +1 -1
- package/dist/chunk-yzhw1jkm.js +27 -0
- package/dist/{chunk-9k2hvarz.js.map → chunk-yzhw1jkm.js.map} +5 -4
- package/dist/{chunk-494e4bws.js → chunk-zzfbcc7e.js} +2 -2
- package/dist/{chunk-ks7kcgv0.js.map → chunk-zzfbcc7e.js.map} +1 -1
- package/dist/index.browser.mjs +2 -2
- package/dist/index.browser.mjs.map +7 -7
- package/dist/index.bun.js +2 -2
- package/dist/index.bun.js.map +7 -7
- package/dist/index.node.cjs +2 -2
- package/dist/index.node.cjs.map +7 -7
- package/dist/index.node.mjs +2 -2
- package/dist/index.node.mjs.map +7 -7
- package/package.json +3 -3
- package/dist/chunk-04b8p5fj.js +0 -27
- package/dist/chunk-0y15bwmr.js +0 -5
- package/dist/chunk-0y15bwmr.js.map +0 -10
- package/dist/chunk-1drdrcw6.js +0 -27
- package/dist/chunk-2b0h6tnh.js +0 -3
- package/dist/chunk-2b0h6tnh.js.map +0 -11
- package/dist/chunk-2gpy5cr8.js +0 -4
- package/dist/chunk-2gpy5cr8.js.map +0 -10
- package/dist/chunk-2qb17cwx.js +0 -3
- package/dist/chunk-2qb17cwx.js.map +0 -11
- package/dist/chunk-75dcyr3x.js +0 -3
- package/dist/chunk-75dcyr3x.js.map +0 -10
- package/dist/chunk-9k2hvarz.js +0 -27
- package/dist/chunk-akvz9x4p.js +0 -5
- package/dist/chunk-akvz9x4p.js.map +0 -10
- package/dist/chunk-bma1gh0b.js +0 -3
- package/dist/chunk-bma1gh0b.js.map +0 -11
- package/dist/chunk-e1mv4wnz.js +0 -4
- package/dist/chunk-e1mv4wnz.js.map +0 -10
- package/dist/chunk-pg12nvj2.js +0 -4
- package/dist/chunk-pg12nvj2.js.map +0 -10
- package/dist/chunk-psyan2mp.js +0 -28
- package/dist/chunk-s4w6twqt.js +0 -3
- package/dist/chunk-s4w6twqt.js.map +0 -10
- package/dist/chunk-v3aqfb43.js +0 -4
- package/dist/chunk-v3aqfb43.js.map +0 -11
- /package/dist/{chunk-8n3nqchr.js.map → chunk-dp7438g1.js.map} +0 -0
- /package/dist/{chunk-9pex0hk9.js.map → chunk-r36yp9st.js.map} +0 -0
- /package/dist/{chunk-s6j0a55y.js.map → chunk-xp5z79cc.js.map} +0 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../node_modules/wasm-feature-detect/dist/esm/index.js", "../../runtime/src/simd-detector.ts", "../../webp/wasm/webp/webp_enc.js", "../../webp/src/webp.worker.ts"],
|
|
3
|
+
"sources": ["../../../node_modules/.bun/wasm-feature-detect@1.8.0/node_modules/wasm-feature-detect/dist/esm/index.js", "../../runtime/src/simd-detector.ts", "../../webp/src/validators.ts", "../../webp/wasm/webp/webp_enc.js", "../../webp/src/webp.worker.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"export const bigInt=()=>(async e=>{try{return(await WebAssembly.instantiate(e)).instance.exports.b(BigInt(0))===BigInt(0)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,126,1,126,3,2,1,0,7,5,1,1,98,0,0,10,6,1,4,0,32,0,11])),bulkMemory=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),exceptions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),exceptionsFinal=()=>(async()=>{try{return new WebAssembly.Module(Uint8Array.from(atob(\"AGFzbQEAAAABBAFgAAADAgEAChABDgACaR9AAQMAAAsACxoL\"),(e=>e.codePointAt(0)))),!0}catch(e){return!1}})(),extendedConst=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,0,1,11,9,1,0,65,1,65,2,106,11,0])),gc=()=>(async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,95,1,120,0])))(),jsStringBuiltins=()=>(async()=>{try{return await WebAssembly.instantiate(Uint8Array.from(atob(\"AGFzbQEAAAABBgFgAW8BfwIXAQ53YXNtOmpzLXN0cmluZwR0ZXN0AAA=\"),(e=>e.codePointAt(0))),{},{builtins:[\"js-string\"]}),!0}catch(e){return!1}})(),jspi=()=>(async()=>\"Suspending\"in WebAssembly)(),memory64=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,4,1])),multiMemory=()=>(async()=>{try{return new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,5,5,2,0,0,0,0])),!0}catch(e){return!1}})(),multiValue=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,0,2,127,127,3,2,1,0,10,8,1,6,0,65,0,65,0,11])),mutableGlobals=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,2,8,1,1,97,1,98,3,127,1,6,6,1,127,1,65,0,11,7,5,1,1,97,3,1])),referenceTypes=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,7,1,5,0,208,112,26,11])),relaxedSimd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,15,1,13,0,65,1,253,15,65,2,253,15,253,128,2,11])),saturatedFloatToInt=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,12,1,10,0,67,0,0,0,0,252,0,26,11])),signExtensions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,65,0,192,26,11])),simd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),streamingCompilation=()=>(async()=>\"compileStreaming\"in WebAssembly)(),tailCall=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,6,1,4,0,18,0,11])),threads=()=>(async e=>{try{return\"undefined\"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])),typeReflection=()=>(async()=>\"Function\"in WebAssembly)(),typedFunctionReferences=()=>(async()=>{try{return new WebAssembly.Module(Uint8Array.from(atob(\"AGFzbQEAAAABEANgAX8Bf2ABZAABf2AAAX8DBAMBAAIJBQEDAAEBChwDCwBBCkEqIAAUAGoLBwAgAEEBagsGANIBEAAL\"),(e=>e.codePointAt(0)))),!0}catch(e){return!1}})();\n",
|
|
6
6
|
"/**\n * SIMD (Single Instruction Multiple Data) detection for WebAssembly\n *\n * SIMD support allows WebAssembly modules to perform vectorized operations,\n * significantly improving performance for operations like image encoding.\n * Some browsers and runtimes don't support SIMD yet, so we need to detect it.\n */\n\nimport { simd } from 'wasm-feature-detect';\n\nlet simdSupported: boolean | null = null;\nlet simdDetectionPromise: Promise<boolean> | null = null;\n\n/**\n * Detects if WebAssembly SIMD is supported in the current environment\n * @returns Promise<boolean> - true if SIMD is supported, false otherwise\n */\nexport async function detectSimd(): Promise<boolean> {\n // Return cached result if already detected\n if (simdSupported !== null) {\n return simdSupported;\n }\n\n // Return existing detection promise if detection is in progress\n if (simdDetectionPromise) {\n return simdDetectionPromise;\n }\n\n // Perform SIMD detection\n simdDetectionPromise = (async () => {\n try {\n simdSupported = await simd();\n return simdSupported;\n } catch (error) {\n // If detection fails, assume SIMD is not supported\n simdSupported = false;\n console.warn(\n 'SIMD detection failed, falling back to standard WASM modules:',\n error\n );\n return false;\n }\n })();\n\n return simdDetectionPromise;\n}\n\n/**\n * Reset SIMD detection cache (useful for testing)\n */\nexport function resetSimdCache(): void {\n simdSupported = null;\n simdDetectionPromise = null;\n}\n",
|
|
7
|
+
"export function validateWebpOptions(\n options: unknown\n): asserts options is Record<string, unknown> | undefined {\n if (options === undefined) {\n return;\n }\n\n if (typeof options !== 'object' || options === null) {\n throw new TypeError('options must be an object or undefined');\n }\n\n const opts = options as Record<string, unknown>;\n\n if ('quality' in opts && opts.quality !== undefined) {\n const quality = opts.quality;\n\n if (Number.isNaN(quality)) {\n throw new RangeError(\n 'quality must be a valid number in the range 0-100, got NaN'\n );\n }\n\n if (typeof quality !== 'number') {\n throw new TypeError('quality must be a number');\n }\n\n if (!Number.isInteger(quality)) {\n throw new RangeError(\n 'quality must be an integer in the range 0-100, got floating point'\n );\n }\n\n if (quality < 0 || quality > 100) {\n throw new RangeError(\n `quality must be in the range 0-100, got ${quality}`\n );\n }\n }\n}\n",
|
|
7
8
|
"\nvar Module = (function() {\n var _scriptDir = import.meta.url;\n \n return (\nfunction(Module) {\n Module = Module || {};\n\nvar Module=typeof Module!==\"undefined\"?Module:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=true;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;var UTF8Decoder=new TextDecoder(\"utf8\");function UTF8ToString(ptr,maxBytesToRead){if(!ptr)return\"\";var maxPtr=ptr+maxBytesToRead;for(var end=ptr;!(end>=maxPtr)&&HEAPU8[end];)++end;return UTF8Decoder.decode(HEAPU8.subarray(ptr,end))}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=new TextDecoder(\"utf-16le\");function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}if(Module[\"locateFile\"]){var wasmBinaryFile=\"webp_enc.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}}else{var wasmBinaryFile=new URL(\"webp_enc.wasm\",import.meta.url).toString()}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"x\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"D\"];addOnInit(Module[\"asm\"][\"y\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _atexit(func,arg){}function ___cxa_thread_atexit(a0,a1){return _atexit(a0,a1)}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(function(field){return field.getterReturnType}).concat(fieldRecords.map(function(field){return field.setterArgumentType}));whenDependentTypesAreResolved([structType],fieldTypes,function(fieldTypes){var fields={};fieldRecords.forEach(function(field,i){var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:function(ptr){return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:function(ptr,o){var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options){options=options||{};if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb()})}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1}case null:{return 2}case true:{return 3}case false:{return 4}default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return __emval_register(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this[\"fromWireType\"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this[\"fromWireType\"](heap[pointer>>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this[\"fromWireType\"](heap[pointer>>2])};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,\"fromWireType\":function(c){return this.constructor.values[c]},\"toWireType\":function(destructors,c){return c.value},\"argPackAdvance\":8,\"readValueFromPointer\":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,\"enum\");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+\"_\"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var argsList=\"\";var argsListWired=\"\";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;argsListWired+=(i!==0?\", \":\"\")+\"arg\"+i+\"Wired\"}var invokerFnBody=\"return function \"+makeLegalFunctionName(humanName)+\"(\"+argsList+\") {\\n\"+\"if (arguments.length !== \"+(argCount-2)+\") {\\n\"+\"throwBindingError('function \"+humanName+\" called with ' + arguments.length + ' arguments, expected \"+(argCount-2)+\" args!');\\n\"+\"}\\n\";if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+=\"var thisWired = classParam.toWireType(\"+dtorStack+\", this);\\n\"}for(var i=0;i<argCount-2;++i){invokerFnBody+=\"var arg\"+i+\"Wired = argType\"+i+\".toWireType(\"+dtorStack+\", arg\"+i+\"); // \"+argTypes[i+2].name+\"\\n\";args1.push(\"argType\"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired=\"thisWired\"+(argsListWired.length>0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+\"_dtor(\"+paramName+\"); // \"+argTypes[i].name+\"\\n\";args1.push(paramName+\"_dtor\");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+=\"var ret = retType.fromWireType(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i<arguments.length;i++){argCache[i]=arguments[i]}return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return wasmTable.get(rawFunction)}var fp=makeDynCaller();if(typeof fp!==\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(\"Cannot call \"+name+\" due to unbound types\",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<<bitshift>>>bitshift}}var isUnsignedType=name.includes(\"unsigned\");registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number \"'+_embind_repr(value)+'\" from JS side to C/C++ side to an argument of type \"'+name+'\", which is outside the valid range ['+minRange+\", \"+maxRange+\"]!\")}return isUnsignedType?value>>>0:value|0},\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}str=a.join(\"\")}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var getLength;var valueIsOfTypeString=typeof value===\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function(){return lengthBytesUTF8(value)}}else{getLength=function(){return value.length}}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i]}}}if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=function(){return HEAPU16};shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=function(){return HEAPU32};shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value===\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}function emval_get_global(){if(typeof globalThis===\"object\"){return globalThis}return function(){return Function}()(\"return this\")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function craftEmvalAllocator(argCount){var argsList=\"\";for(var i=0;i<argCount;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i}var functionBody=\"return function emval_allocator_\"+argCount+\"(constructor, argTypes, args) {\\n\";for(var i=0;i<argCount;++i){functionBody+=\"var argType\"+i+\" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + \"+i+'], \"parameter '+i+'\");\\n'+\"var arg\"+i+\" = argType\"+i+\".readValueFromPointer(args);\\n\"+\"args += argType\"+i+\"['argPackAdvance'];\\n\"}functionBody+=\"var obj = new constructor(\"+argsList+\");\\n\"+\"return __emval_register(obj);\\n\"+\"}\\n\";return new Function(\"requireRegisteredType\",\"Module\",\"__emval_register\",functionBody)(requireRegisteredType,Module,__emval_register)}var emval_newers={};function requireHandle(handle){if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value}function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_emval();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");var asmLibraryArg={\"w\":___cxa_thread_atexit,\"l\":__embind_finalize_value_object,\"p\":__embind_register_bigint,\"s\":__embind_register_bool,\"r\":__embind_register_emval,\"n\":__embind_register_enum,\"d\":__embind_register_enum_value,\"j\":__embind_register_float,\"h\":__embind_register_function,\"c\":__embind_register_integer,\"b\":__embind_register_memory_view,\"k\":__embind_register_std_string,\"g\":__embind_register_std_wstring,\"m\":__embind_register_value_object,\"a\":__embind_register_value_object_field,\"t\":__embind_register_void,\"f\":__emval_decref,\"v\":__emval_get_global,\"u\":__emval_incref,\"o\":__emval_new,\"i\":_abort,\"q\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=function(){return(___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return Module.ready\n}\n);\n})();\nexport default Module;",
|
|
8
|
-
"/**\n * WebP encoder - single-source worker/client implementation\n */\n\nimport {\n type WorkerRequest,\n type WorkerResponse,\n type ImageInput,\n loadWasmBinary,\n validateImageInput,\n validateWebpOptions,\n detectSimd,\n} from '@squoosh-kit/runtime';\nimport webp_enc, { type WebPModule } from '../wasm/webp/webp_enc';\nimport type { EncodeInputOptions, EncodeOptions } from './types';\n\nlet cachedModule: WebPModule | null = null;\nlet moduleLoadingPromise: Promise<WebPModule> | null = null;\n\nasync function loadWebPModule(): Promise<WebPModule> {\n if (cachedModule) {\n return cachedModule;\n }\n\n if (moduleLoadingPromise) {\n return moduleLoadingPromise;\n }\n\n moduleLoadingPromise = (async (): Promise<WebPModule> => {\n try {\n // Environment polyfills for Emscripten-generated code\n // The WebP encoder WASM module expects browser-like globals (self, location)\n // These polyfills ensure compatibility when running in Bun/Node.js environments\n\n // Polyfill 'self' global for Emscripten compatibility\n if (typeof self === 'undefined') {\n (global as { self?: typeof globalThis }).self = global;\n }\n\n // Polyfill 'location' object for Emscripten module initialization\n if (typeof self !== 'undefined' && !self.location) {\n (self as { location?: { href: string } }).location = {\n href: import.meta.url,\n };\n }\n\n // Polyfill SharedArrayBuffer for worker contexts without COOP/COEP headers\n if (\n typeof SharedArrayBuffer === 'undefined' &&\n typeof window === 'undefined'\n ) {\n (\n globalThis as unknown as Record<string, typeof ArrayBuffer>\n ).SharedArrayBuffer = ArrayBuffer;\n }\n\n // Helper function to load WASM and initialize with explicit binary\n const initModuleWithBinary = async (\n moduleFactory: (config: {\n noInitialRun: boolean;\n wasmBinary?: ArrayBuffer;\n }) => Promise<WebPModule>,\n wasmPath: string\n ): Promise<WebPModule> => {\n try {\n // Try to load WASM binary\n const wasmBuffer = await loadWasmBinary(wasmPath);\n if (typeof console !== 'undefined' && console.log) {\n console.log(\n `[WebP] Loaded WASM binary from ${wasmPath} (${(wasmBuffer.byteLength / 1024).toFixed(1)}KB)`\n );\n }\n return moduleFactory({ noInitialRun: true, wasmBinary: wasmBuffer });\n } catch (error) {\n // Fallback: try without explicit binary\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(\n '[WebP] Failed to load WASM binary explicitly, trying module initialization without it:',\n error\n );\n }\n return moduleFactory({ noInitialRun: true });\n }\n };\n\n // Detect SIMD support and load appropriate module\n const simdSupported = await detectSimd();\n\n if (simdSupported) {\n if (typeof console !== 'undefined' && console.log) {\n console.log('[WebP] SIMD support detected, loading SIMD encoder');\n }\n try {\n // Try to load SIMD-optimized encoder dynamically\n // Import the precompiled SIMD module - it's a standalone Emscripten module factory\n const simdModuleFactory = await import(\n /* @vite-ignore */ '../wasm/webp/webp_enc_simd.js'\n );\n cachedModule = await initModuleWithBinary(\n simdModuleFactory.default as (config: {\n noInitialRun: boolean;\n wasmBinary?: ArrayBuffer;\n }) => Promise<WebPModule>,\n /* @vite-ignore */ './wasm/webp/webp_enc_simd.wasm'\n );\n if (cachedModule) {\n return cachedModule;\n }\n } catch (simdError) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(\n '[WebP] Failed to load SIMD encoder, falling back to standard:',\n simdError\n );\n }\n // Fall through to standard encoder\n }\n }\n\n // Load standard (non-SIMD) encoder as fallback\n cachedModule = await initModuleWithBinary(\n webp_enc as (config: {\n noInitialRun: boolean;\n wasmBinary?: ArrayBuffer;\n }) => Promise<WebPModule>,\n /* @vite-ignore */ './wasm/webp/webp_enc.wasm'\n );\n\n if (!cachedModule) {\n throw new Error('Failed to load WebP module');\n }\n\n return cachedModule;\n } catch (error) {\n moduleLoadingPromise = null;\n throw new Error(\n `Failed to load WebP module: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n })();\n\n return moduleLoadingPromise;\n}\n\n/**\n * Convert our simplified options to full EncodeOptions\n * Uses Squoosh defaults for optimal performance and file size\n */\nfunction createEncodeOptions(options?: EncodeInputOptions): EncodeOptions {\n // Squoosh defaults from their defaultOptions in meta.ts\n return {\n quality: options?.quality ?? 75,\n target_size: 0,\n target_PSNR: 0,\n method: options?.method ?? 4,\n sns_strength: options?.sns_strength ?? 50,\n filter_strength: options?.filter_strength ?? 60,\n filter_sharpness: options?.filter_sharpness ?? 0,\n filter_type: options?.filter_type ?? 1,\n partitions: options?.partitions ?? 0,\n segments: options?.segments ?? 4,\n pass: options?.pass ?? 1,\n show_compressed: 0,\n preprocessing: options?.preprocessing ?? 0,\n autofilter: options?.autofilter ?? 0,\n partition_limit: 0,\n alpha_compression: options?.alpha_compression ?? 1,\n alpha_filtering: options?.alpha_filtering ?? 1,\n alpha_quality: options?.alpha_quality ?? options?.quality ?? 75,\n lossless: options?.lossless ? 1 : 0,\n exact: options?.exact ?? 0,\n image_hint: options?.image_hint ?? 0,\n emulate_jpeg_size: 0,\n thread_level: 0,\n low_memory: 0,\n near_lossless: options?.near_lossless ?? options?.quality ?? 75,\n use_delta_palette: 0,\n use_sharp_yuv: options?.use_sharp_yuv ?? 0,\n };\n}\n\n/**\n * Client-mode WebP encoder (exported for direct use)\n */\nexport async function webpEncodeClient(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n // Validate inputs before starting\n validateImageInput(image);\n validateWebpOptions(options);\n\n // Check abort before starting\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n // Normalize image input\n const width = image.width;\n const height = image.height;\n const data = image.data;\n\n if (!(data instanceof Uint8Array) && !(data instanceof Uint8ClampedArray)) {\n throw new Error('Image data must be Uint8Array or Uint8ClampedArray');\n }\n\n const t0 = performance.now();\n const module = await loadWebPModule();\n const t1 = performance.now();\n\n if (typeof console !== 'undefined' && console.log) {\n console.log(`[WebP] module loading took ${(t1 - t0).toFixed(2)}ms`);\n console.log(\n `[WebP] Module type: ${cachedModule && 'encode' in cachedModule ? 'Ready' : 'Unknown'}`\n );\n }\n\n // Check abort after async operation\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n const encodeOptions = createEncodeOptions(options);\n\n // Call the encode function with optimized data handling\n // Create a zero-copy Uint8Array view if needed (don't copy the buffer)\n const dataArray =\n data instanceof Uint8ClampedArray\n ? new Uint8Array(data.buffer as ArrayBuffer, data.byteOffset, data.length)\n : new Uint8Array(\n data.buffer as ArrayBuffer,\n data.byteOffset,\n data.length\n );\n\n if (typeof console !== 'undefined' && console.log) {\n console.log(`[WebP] encode options:`, encodeOptions);\n }\n\n const t2 = performance.now();\n const result = module.encode(dataArray, width, height, encodeOptions);\n const t3 = performance.now();\n\n if (typeof console !== 'undefined' && console.log) {\n console.log(`[WebP] actual encoding took ${(t3 - t2).toFixed(2)}ms`);\n }\n\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n if (!result) {\n throw new Error('WebP encoding failed');\n }\n\n return result;\n}\n\n/**\n * Worker message handler\n * Register the handler regardless of environment (for both worker context and tests)\n */\nif (typeof self !== 'undefined') {\n self.onmessage = async (event: MessageEvent) => {\n const data = event.data;\n\n // Handle worker ping for initialization\n if (data?.type === 'worker:ping') {\n self.postMessage({ type: 'worker:ready' });\n return;\n }\n\n const request = data as WorkerRequest<{\n image: ImageInput;\n options?: EncodeInputOptions;\n }>;\n\n const response: WorkerResponse<Uint8Array> = {\n id: request.id,\n ok: false,\n };\n\n try {\n if (request.type === 'webp:encode') {\n const { image, options } = request.payload;\n\n const t0 = performance.now();\n const controller = new AbortController();\n const result = await webpEncodeClient(\n image,\n options,\n controller.signal\n );\n const t1 = performance.now();\n\n if (typeof console !== 'undefined' && console.log) {\n console.log(`[WebP Worker] encode took ${(t1 - t0).toFixed(2)}ms`);\n }\n\n response.ok = true;\n response.data = result;\n\n // Post the response without transferring - the Uint8Array will be cloned\n // Transfer is only used for incoming requests (image.data buffer from client)\n self.postMessage(response);\n } else {\n response.error = `Unknown message type: ${request.type}`;\n self.postMessage(response);\n }\n } catch (error) {\n response.error = error instanceof Error ? error.message : String(error);\n self.postMessage(response);\n }\n };\n}\n"
|
|
9
|
+
"/**\n * WebP encoder - single-source worker/client implementation\n */\n\nimport {\n type WorkerRequest,\n type WorkerResponse,\n type ImageInput,\n loadWasmBinary,\n validateImageInput,\n detectSimd,\n} from '@squoosh-kit/runtime';\nimport { validateWebpOptions } from './validators';\nimport webp_enc, { type WebPModule } from '../wasm/webp/webp_enc';\nimport type { EncodeInputOptions, EncodeOptions } from './types';\n\nlet cachedModule: WebPModule | null = null;\nlet moduleLoadingPromise: Promise<WebPModule> | null = null;\n\nasync function loadWebPModule(): Promise<WebPModule> {\n if (cachedModule) {\n return cachedModule;\n }\n\n if (moduleLoadingPromise) {\n return moduleLoadingPromise;\n }\n\n moduleLoadingPromise = (async (): Promise<WebPModule> => {\n try {\n // Environment polyfills for Emscripten-generated code\n // The WebP encoder WASM module expects browser-like globals (self, location)\n // These polyfills ensure compatibility when running in Bun/Node.js environments\n\n // Polyfill 'self' global for Emscripten compatibility\n if (typeof self === 'undefined') {\n (global as { self?: typeof globalThis }).self = global;\n }\n\n // Polyfill 'location' object for Emscripten module initialization\n if (typeof self !== 'undefined' && !self.location) {\n (self as { location?: { href: string } }).location = {\n href: import.meta.url,\n };\n }\n\n // Polyfill SharedArrayBuffer for worker contexts without COOP/COEP headers\n if (\n typeof SharedArrayBuffer === 'undefined' &&\n typeof window === 'undefined'\n ) {\n (\n globalThis as unknown as Record<string, typeof ArrayBuffer>\n ).SharedArrayBuffer = ArrayBuffer;\n }\n\n // Helper function to load WASM and initialize with explicit binary\n const initModuleWithBinary = async (\n moduleFactory: (config: {\n noInitialRun: boolean;\n wasmBinary?: ArrayBuffer;\n }) => Promise<WebPModule>,\n wasmPath: string\n ): Promise<WebPModule> => {\n try {\n // Try to load WASM binary\n const wasmBuffer = await loadWasmBinary(wasmPath);\n if (typeof console !== 'undefined' && console.log) {\n console.log(\n `[WebP] Loaded WASM binary from ${wasmPath} (${(wasmBuffer.byteLength / 1024).toFixed(1)}KB)`\n );\n }\n return moduleFactory({ noInitialRun: true, wasmBinary: wasmBuffer });\n } catch (error) {\n // Fallback: try without explicit binary\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(\n '[WebP] Failed to load WASM binary explicitly, trying module initialization without it:',\n error\n );\n }\n return moduleFactory({ noInitialRun: true });\n }\n };\n\n // Detect SIMD support and load appropriate module\n const simdSupported = await detectSimd();\n\n if (simdSupported) {\n if (typeof console !== 'undefined' && console.log) {\n console.log('[WebP] SIMD support detected, loading SIMD encoder');\n }\n try {\n // Try to load SIMD-optimized encoder dynamically\n // Import the precompiled SIMD module - it's a standalone Emscripten module factory\n const simdModuleFactory = await import(\n /* @vite-ignore */ '../wasm/webp/webp_enc_simd.js'\n );\n cachedModule = await initModuleWithBinary(\n simdModuleFactory.default as (config: {\n noInitialRun: boolean;\n wasmBinary?: ArrayBuffer;\n }) => Promise<WebPModule>,\n /* @vite-ignore */ new URL(\n '../wasm/webp/webp_enc_simd.wasm',\n import.meta.url\n ).href\n );\n if (cachedModule) {\n return cachedModule;\n }\n } catch (simdError) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(\n '[WebP] Failed to load SIMD encoder, falling back to standard:',\n simdError\n );\n }\n // Fall through to standard encoder\n }\n }\n\n // Load standard (non-SIMD) encoder as fallback\n cachedModule = await initModuleWithBinary(\n webp_enc as (config: {\n noInitialRun: boolean;\n wasmBinary?: ArrayBuffer;\n }) => Promise<WebPModule>,\n /* @vite-ignore */ new URL(\n '../wasm/webp/webp_enc.wasm',\n import.meta.url\n ).href\n );\n\n if (!cachedModule) {\n throw new Error('Failed to load WebP module');\n }\n\n return cachedModule;\n } catch (error) {\n moduleLoadingPromise = null;\n throw new Error(\n `Failed to load WebP module: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n })();\n\n return moduleLoadingPromise;\n}\n\n/**\n * Convert our simplified options to full EncodeOptions\n * Uses Squoosh defaults for optimal performance and file size\n */\nfunction createEncodeOptions(options?: EncodeInputOptions): EncodeOptions {\n // Squoosh defaults from their defaultOptions in meta.ts\n return {\n quality: options?.quality ?? 75,\n target_size: 0,\n target_PSNR: 0,\n method: options?.method ?? 4,\n sns_strength: options?.sns_strength ?? 50,\n filter_strength: options?.filter_strength ?? 60,\n filter_sharpness: options?.filter_sharpness ?? 0,\n filter_type: options?.filter_type ?? 1,\n partitions: options?.partitions ?? 0,\n segments: options?.segments ?? 4,\n pass: options?.pass ?? 1,\n show_compressed: 0,\n preprocessing: options?.preprocessing ?? 0,\n autofilter: options?.autofilter ?? 0,\n partition_limit: 0,\n alpha_compression: options?.alpha_compression ?? 1,\n alpha_filtering: options?.alpha_filtering ?? 1,\n alpha_quality: options?.alpha_quality ?? options?.quality ?? 75,\n lossless: options?.lossless ? 1 : 0,\n exact: options?.exact ?? 0,\n image_hint: options?.image_hint ?? 0,\n emulate_jpeg_size: 0,\n thread_level: 0,\n low_memory: 0,\n near_lossless: options?.near_lossless ?? options?.quality ?? 75,\n use_delta_palette: 0,\n use_sharp_yuv: options?.use_sharp_yuv ?? 0,\n };\n}\n\n/**\n * Client-mode WebP encoder (exported for direct use)\n */\nexport async function webpEncodeClient(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n // Validate inputs before starting\n validateImageInput(image);\n validateWebpOptions(options);\n\n // Check abort before starting\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n // Normalize image input\n const width = image.width;\n const height = image.height;\n const data = image.data;\n\n if (!(data instanceof Uint8Array) && !(data instanceof Uint8ClampedArray)) {\n throw new Error('Image data must be Uint8Array or Uint8ClampedArray');\n }\n\n const t0 = performance.now();\n const module = await loadWebPModule();\n const t1 = performance.now();\n\n if (typeof console !== 'undefined' && console.log) {\n console.log(`[WebP] module loading took ${(t1 - t0).toFixed(2)}ms`);\n console.log(\n `[WebP] Module type: ${cachedModule && 'encode' in cachedModule ? 'Ready' : 'Unknown'}`\n );\n }\n\n // Check abort after async operation\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n const encodeOptions = createEncodeOptions(options);\n\n // Call the encode function with optimized data handling\n // Create a zero-copy Uint8Array view if needed (don't copy the buffer)\n const dataArray =\n data instanceof Uint8ClampedArray\n ? new Uint8Array(data.buffer as ArrayBuffer, data.byteOffset, data.length)\n : new Uint8Array(\n data.buffer as ArrayBuffer,\n data.byteOffset,\n data.length\n );\n\n if (typeof console !== 'undefined' && console.log) {\n console.log(`[WebP] encode options:`, encodeOptions);\n }\n\n const t2 = performance.now();\n const result = module.encode(dataArray, width, height, encodeOptions);\n const t3 = performance.now();\n\n if (typeof console !== 'undefined' && console.log) {\n console.log(`[WebP] actual encoding took ${(t3 - t2).toFixed(2)}ms`);\n }\n\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n if (!result) {\n throw new Error('WebP encoding failed');\n }\n\n return result;\n}\n\n/**\n * Worker message handler\n * Register the handler regardless of environment (for both worker context and tests)\n */\nif (typeof self !== 'undefined') {\n self.onmessage = async (event: MessageEvent) => {\n const data = event.data;\n\n // Handle worker ping for initialization\n if (data?.type === 'worker:ping') {\n self.postMessage({ type: 'worker:ready' });\n return;\n }\n\n const request = data as WorkerRequest<{\n image: ImageInput;\n options?: EncodeInputOptions;\n }>;\n\n const response: WorkerResponse<Uint8Array> = {\n id: request.id,\n ok: false,\n };\n\n try {\n if (request.type === 'webp:encode') {\n const { image, options } = request.payload;\n\n const t0 = performance.now();\n const controller = new AbortController();\n const result = await webpEncodeClient(\n image,\n options,\n controller.signal\n );\n const t1 = performance.now();\n\n if (typeof console !== 'undefined' && console.log) {\n console.log(`[WebP Worker] encode took ${(t1 - t0).toFixed(2)}ms`);\n }\n\n response.ok = true;\n response.data = result;\n\n // Post the response without transferring - the Uint8Array will be cloned\n // Transfer is only used for incoming requests (image.data buffer from client)\n self.postMessage(response);\n } else {\n response.error = `Unknown message type: ${request.type}`;\n self.postMessage(response);\n }\n } catch (error) {\n response.error = error instanceof Error ? error.message : String(error);\n self.postMessage(response);\n }\n };\n}\n"
|
|
9
10
|
],
|
|
10
|
-
"mappings": "AAAO,IAA4uE,GAAK,SAAS,YAAY,SAAS,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,ECUv3E,IAAI,EAAgC,KAChC,GAAgD,KAMpD,eAAsB,EAAU,EAAqB,CAEnD,GAAI,IAAkB,KACpB,OAAO,EAIT,GAAI,GACF,OAAO,GAmBT,OAfA,IAAwB,SAAY,CAClC,GAAI,CAEF,OADA,EAAgB,MAAM,GAAK,EACpB,EACP,MAAO,EAAO,CAOd,OALA,EAAgB,GAChB,QAAQ,KACN,gEACA,CACF,EACO,MAER,EAEI,GC3CT,IAAI,GAAU,QAAQ,EAAG,CACvB,IAAI,EAAyB,4EAE7B,OACF,QAAQ,CAAC,EAAQ,CACf,EAAS,GAAU,CAAC,EAEtB,IAAI,EAAO,OAAO,EAAS,IAAY,EAAO,CAAC,EAAM,EAAoB,EAAmB,EAAO,MAAS,IAAI,QAAQ,QAAQ,CAAC,EAAQ,EAAO,CAAC,EAAoB,EAAQ,EAAmB,EAAO,EAAE,IAAI,EAAgB,CAAC,EAAM,EAAI,IAAI,KAAO,EAAQ,GAAG,EAAO,eAAe,CAAG,EAAG,EAAgB,GAAK,EAAO,GAAM,IAAI,EAAW,CAAC,EAAM,EAAY,iBAAqB,EAAM,QAAQ,CAAC,EAAO,EAAQ,CAAC,MAAM,GAAa,EAAmB,GAAU,EAAsB,GAAS,EAAgB,GAAG,SAAS,EAAU,CAAC,EAAK,CAAC,GAAG,EAAO,WAAe,OAAO,EAAO,WAAc,EAAK,CAAe,EAAE,OAAO,EAAgB,EAAK,IAAI,GAAM,GAAU,GAAW,GAAe,GAAG,GAAoB,EAAsB,CAAC,GAAG,EAAuB,EAAgB,KAAK,SAAS,KAAU,QAAG,OAAO,SAAW,KAAa,SAAS,cAAe,EAAgB,SAAS,cAAc,IAAI,GAAG,EAAY,EAAgB,EAAW,GAAG,EAAgB,QAAQ,OAAO,IAAI,EAAG,EAAgB,EAAgB,OAAO,EAAE,EAAgB,YAAY,GAAG,EAAE,CAAC,EAAO,OAAgB,GAAG,CAAkH,GAAjH,GAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,IAAI,eAAwD,OAAzC,EAAI,KAAK,MAAM,EAAI,EAAK,EAAE,EAAI,KAAK,IAAI,EAAS,EAAI,cAAiB,EAAuB,GAAW,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,IAAI,eAAuF,OAAxE,EAAI,KAAK,MAAM,EAAI,EAAK,EAAE,EAAI,aAAa,cAAc,EAAI,KAAK,IAAI,EAAS,IAAI,WAAW,EAAI,QAAQ,GAAG,GAAU,QAAQ,CAAC,EAAI,EAAO,EAAQ,CAAC,IAAI,EAAI,IAAI,eAAe,EAAI,KAAK,MAAM,EAAI,EAAI,EAAE,EAAI,aAAa,cAAc,EAAI,OAAO,QAAQ,EAAE,CAAC,GAAG,EAAI,QAAQ,KAAK,EAAI,QAAQ,GAAG,EAAI,SAAS,CAAC,EAAO,EAAI,QAAQ,EAAE,OAAO,EAAQ,GAAG,EAAI,QAAQ,EAAQ,EAAI,KAAK,IAAI,EAAE,CAAC,GAAe,QAAQ,CAAC,EAAM,CAAC,SAAS,MAAM,GAAa,IAAI,GAAI,EAAO,OAAU,QAAQ,IAAI,KAAK,OAAO,EAAM,EAAI,EAAO,UAAa,QAAQ,KAAK,KAAK,OAAO,EAAE,IAAI,KAAO,EAAiB,GAAG,EAAgB,eAAe,CAAG,EAAG,EAAO,GAAK,EAAgB,GAA2B,GAArB,EAAgB,KAAQ,EAAO,UAAa,EAAW,EAAO,UAAa,GAAG,EAAO,YAAe,EAAY,EAAO,YAAe,GAAG,EAAO,KAAQ,EAAM,EAAO,KAAQ,IAAI,EAAW,GAAG,EAAO,WAAc,EAAW,EAAO,WAAc,IAAI,GAAc,EAAO,eAAkB,GAAK,GAAG,OAAO,cAAc,SAAU,GAAM,iCAAiC,EAAE,IAAI,EAAe,GAAM,GAAU,GAAe,GAAY,IAAI,YAAY,MAAM,EAAE,SAAS,EAAY,CAAC,EAAI,EAAe,CAAC,GAAG,CAAC,EAAI,MAAM,GAAG,IAAI,EAAO,EAAI,EAAe,QAAQ,EAAI,EAAI,EAAE,GAAK,IAAS,EAAO,IAAM,EAAE,EAAI,OAAO,GAAY,OAAO,EAAO,SAAS,EAAI,CAAG,CAAC,EAAE,SAAS,EAAiB,CAAC,EAAI,EAAK,EAAO,EAAgB,CAAC,GAAG,EAAE,EAAgB,GAAG,MAAO,GAAE,IAAI,EAAS,EAAW,EAAO,EAAO,EAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAI,WAAW,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,EAAG,EAAI,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAG,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,GAAQ,EAAO,MAAM,EAAK,KAAU,EAAO,QAAG,GAAG,KAAK,CAAC,GAAG,EAAO,GAAG,EAAO,MAAM,EAAK,KAAU,IAAI,GAAG,EAAE,EAAK,KAAU,IAAI,EAAE,GAAQ,QAAG,GAAG,MAAM,CAAC,GAAG,EAAO,GAAG,EAAO,MAAM,EAAK,KAAU,IAAI,GAAG,GAAG,EAAK,KAAU,IAAI,GAAG,EAAE,GAAG,EAAK,KAAU,IAAI,EAAE,GAAO,KAAC,GAAG,EAAO,GAAG,EAAO,MAAM,EAAK,KAAU,IAAI,GAAG,GAAG,EAAK,KAAU,IAAI,GAAG,GAAG,GAAG,EAAK,KAAU,IAAI,GAAG,EAAE,GAAG,EAAK,KAAU,IAAI,EAAE,IAAmB,OAAf,EAAK,GAAQ,EAAS,EAAO,EAAS,SAAS,EAAY,CAAC,EAAI,EAAO,EAAgB,CAAC,OAAO,GAAkB,EAAI,EAAO,EAAO,CAAe,EAAE,SAAS,EAAe,CAAC,EAAI,CAAC,IAAI,EAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAI,WAAW,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAI,WAAW,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAS,QAAG,GAAG,KAAK,GAAK,EAAO,QAAG,GAAG,MAAM,GAAK,EAAO,QAAK,EAAE,OAAO,EAAI,IAAI,GAAa,IAAI,YAAY,UAAU,EAAE,SAAS,EAAa,CAAC,EAAI,EAAe,CAAC,IAAI,EAAO,EAAQ,EAAI,GAAQ,EAAM,EAAO,EAAI,EAAe,EAAE,MAAM,EAAE,GAAK,IAAS,EAAQ,GAAK,EAAE,EAAkB,OAAd,EAAO,GAAK,EAAS,GAAa,OAAO,EAAO,SAAS,EAAI,CAAM,CAAC,EAAE,IAAI,EAAI,GAAG,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAe,GAAG,EAAE,EAAE,CAAC,IAAI,EAAS,EAAO,EAAI,EAAE,GAAG,GAAG,GAAG,GAAU,EAAE,MAAM,GAAK,OAAO,aAAa,CAAQ,EAAE,OAAO,EAAI,SAAS,EAAa,CAAC,EAAI,EAAO,EAAgB,CAAC,GAAG,IAAkB,OAAW,EAAgB,WAAW,GAAG,EAAgB,EAAE,MAAO,GAAE,GAAiB,EAAE,IAAI,EAAS,EAAW,EAAgB,EAAgB,EAAI,OAAO,EAAE,EAAgB,EAAE,EAAI,OAAO,QAAQ,EAAE,EAAE,EAAE,EAAgB,EAAE,EAAE,CAAC,IAAI,EAAS,EAAI,WAAW,CAAC,EAAE,EAAO,GAAQ,GAAG,EAAS,GAAQ,EAAsB,OAApB,EAAO,GAAQ,GAAG,EAAS,EAAO,EAAS,SAAS,EAAgB,CAAC,EAAI,CAAC,OAAO,EAAI,OAAO,EAAE,SAAS,EAAa,CAAC,EAAI,EAAe,CAAC,IAAI,EAAE,EAAM,EAAI,GAAG,MAAM,EAAE,GAAG,EAAe,GAAG,CAAC,IAAI,EAAM,EAAO,EAAI,EAAE,GAAG,GAAG,GAAG,GAAO,EAAE,MAAU,GAAJ,EAAE,EAAK,GAAO,MAAM,CAAC,IAAI,EAAG,EAAM,MAAM,GAAK,OAAO,aAAa,MAAM,GAAI,GAAG,MAAM,EAAG,IAAI,EAAO,QAAK,OAAO,aAAa,CAAK,EAAG,OAAO,EAAI,SAAS,EAAa,CAAC,EAAI,EAAO,EAAgB,CAAC,GAAG,IAAkB,OAAW,EAAgB,WAAW,GAAG,EAAgB,EAAE,MAAO,GAAE,IAAI,EAAS,EAAW,EAAO,EAAS,EAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,EAAE,CAAC,IAAI,EAAS,EAAI,WAAW,CAAC,EAAE,GAAG,GAAU,OAAO,GAAU,MAAM,CAAC,IAAI,EAAe,EAAI,WAAW,EAAE,CAAC,EAAE,EAAS,QAAQ,EAAS,OAAO,IAAI,EAAe,KAA0C,GAArC,EAAO,GAAQ,GAAG,EAAS,GAAQ,EAAK,EAAO,EAAE,EAAO,MAA0B,OAApB,EAAO,GAAQ,GAAG,EAAS,EAAO,EAAS,SAAS,EAAgB,CAAC,EAAI,CAAC,IAAI,EAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,EAAE,CAAC,IAAI,EAAS,EAAI,WAAW,CAAC,EAAE,GAAG,GAAU,OAAO,GAAU,MAAM,EAAE,EAAE,GAAK,EAAE,OAAO,EAAI,SAAS,EAAO,CAAC,EAAE,EAAS,CAAC,GAAG,EAAE,EAAS,EAAG,GAAG,EAAS,EAAE,EAAS,OAAO,EAAE,IAAI,GAAO,GAAM,EAAO,EAAO,EAAQ,EAAO,EAAQ,GAAQ,GAAQ,SAAS,EAA0B,CAAC,EAAI,CAAC,GAAO,EAAI,EAAO,MAAS,GAAM,IAAI,UAAU,CAAG,EAAE,EAAO,OAAU,EAAO,IAAI,WAAW,CAAG,EAAE,EAAO,OAAU,EAAO,IAAI,WAAW,CAAG,EAAE,EAAO,OAAU,EAAO,IAAI,WAAW,CAAG,EAAE,EAAO,QAAW,EAAQ,IAAI,YAAY,CAAG,EAAE,EAAO,QAAW,EAAQ,IAAI,YAAY,CAAG,EAAE,EAAO,QAAW,GAAQ,IAAI,aAAa,CAAG,EAAE,EAAO,QAAW,GAAQ,IAAI,aAAa,CAAG,EAAE,IAAI,GAAe,EAAO,gBAAmB,SAAa,EAAc,GAAa,CAAC,EAAM,GAAW,CAAC,EAAM,GAAc,CAAC,EAAM,GAAmB,GAAM,SAAS,EAAM,EAAE,CAAC,GAAG,EAAO,OAAU,CAAC,GAAG,OAAO,EAAO,QAAW,WAAW,EAAO,OAAU,CAAC,EAAO,MAAS,EAAE,MAAM,EAAO,OAAU,OAAQ,GAAY,EAAO,OAAU,MAAM,CAAC,EAAG,GAAqB,EAAY,EAAE,SAAS,EAAW,EAAE,CAAC,GAAmB,GAAK,GAAqB,EAAU,EAAE,SAAS,EAAO,EAAE,CAAC,GAAG,EAAO,QAAW,CAAC,GAAG,OAAO,EAAO,SAAY,WAAW,EAAO,QAAW,CAAC,EAAO,OAAU,EAAE,MAAM,EAAO,QAAW,OAAQ,GAAa,EAAO,QAAW,MAAM,CAAC,EAAG,GAAqB,EAAa,EAAE,SAAS,EAAW,CAAC,EAAG,CAAC,GAAa,QAAQ,CAAE,EAAE,SAAS,EAAS,CAAC,EAAG,CAAC,GAAW,QAAQ,CAAE,EAAE,SAAS,EAAY,CAAC,EAAG,CAAC,GAAc,QAAQ,CAAE,EAAE,IAAI,EAAgB,EAAM,GAAqB,KAAS,EAAsB,KAAK,SAAS,EAAgB,CAAC,EAAG,CAAmB,GAAlB,IAAqB,EAAO,uBAA2B,EAAO,uBAA0B,CAAe,EAAG,SAAS,EAAmB,CAAC,EAAG,CAAmB,GAAlB,IAAqB,EAAO,uBAA2B,EAAO,uBAA0B,CAAe,EAAE,GAAG,GAAiB,EAAE,CAAC,GAAG,KAAuB,KAAM,cAAc,EAAoB,EAAE,GAAqB,KAAK,GAAG,EAAsB,CAAC,IAAI,EAAS,EAAsB,EAAsB,KAAK,EAAS,IAAI,EAAO,gBAAmB,CAAC,EAAE,EAAO,gBAAmB,CAAC,EAAE,SAAS,EAAK,CAAC,EAAK,CAAC,GAAG,EAAO,QAAY,EAAO,QAAW,CAAI,EAAE,GAAM,GAAG,EAAI,CAAI,EAAE,GAAM,GAAK,GAAW,EAAE,EAAK,SAAS,EAAK,+CAA+C,IAAI,EAAE,IAAI,YAAY,aAAa,CAAI,EAAwB,MAAtB,EAAmB,CAAC,EAAQ,EAAE,IAAI,GAAc,wCAAwC,SAAS,EAAS,CAAC,EAAS,CAAC,OAAO,EAAS,WAAW,EAAa,EAAE,GAAG,EAAO,WAAc,CAAC,IAAI,EAAe,gBAAgB,GAAG,CAAC,GAAU,CAAc,EAAG,EAAe,GAAW,CAAc,EAAQ,SAAI,EAAe,IAAI,IAAI,gBAA4B,2EAAG,EAAE,SAAS,EAAE,SAAS,EAAS,CAAC,EAAK,CAAC,GAAG,CAAC,GAAG,GAAM,GAAgB,EAAY,OAAO,IAAI,WAAW,CAAU,EAAE,GAAG,GAAY,OAAO,GAAW,CAAI,EAAO,UAAK,kDAAmD,MAAM,EAAI,CAAC,GAAM,CAAG,GAAG,SAAS,EAAgB,EAAE,CAAC,GAAG,CAAC,IAAa,GAAoB,IAAwB,GAAG,OAAO,QAAQ,WAAY,OAAO,MAAM,EAAe,CAAC,YAAY,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAS,CAAC,GAAG,CAAC,EAAS,GAAO,KAAK,uCAAuC,EAAe,IAAI,OAAO,EAAS,YAAe,EAAE,EAAE,MAAM,QAAQ,EAAE,CAAC,OAAO,GAAU,CAAc,EAAE,EAAG,OAAO,QAAQ,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC,OAAO,GAAU,CAAc,EAAE,EAAE,SAAS,EAAU,EAAE,CAAC,IAAI,EAAK,CAAC,EAAI,EAAa,EAAE,SAAS,CAAe,CAAC,EAAS,EAAO,CAAC,IAAI,EAAQ,EAAS,QAAQ,EAAO,IAAO,EAAQ,EAAW,EAAO,IAAO,EAAK,GAA2B,EAAW,MAAM,EAAE,EAAU,EAAO,IAAO,EAAK,GAAU,EAAO,IAAO,CAAI,EAAE,GAAoB,kBAAkB,EAAE,GAAiB,kBAAkB,EAAE,SAAS,CAA0B,CAAC,EAAO,CAAC,EAAgB,EAAO,QAAW,EAAE,SAAS,CAAsB,CAAC,EAAS,CAAC,OAAO,GAAiB,EAAE,KAAK,QAAQ,CAAC,EAAO,CAAC,IAAI,EAAO,YAAY,YAAY,EAAO,CAAI,EAAE,OAAO,EAAO,EAAE,KAAK,EAAS,QAAQ,CAAC,EAAO,CAAC,EAAI,0CAA0C,CAAM,EAAE,GAAM,CAAM,EAAE,EAAE,SAAS,CAAgB,EAAE,CAAC,GAAG,CAAC,GAAY,OAAO,YAAY,uBAAuB,YAAY,CAAC,GAAU,CAAc,GAAG,OAAO,QAAQ,WAAY,OAAO,MAAM,EAAe,CAAC,YAAY,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAS,CAAC,IAAI,EAAO,YAAY,qBAAqB,EAAS,CAAI,EAAE,OAAO,EAAO,KAAK,EAA2B,QAAQ,CAAC,EAAO,CAAgG,OAA/F,EAAI,kCAAkC,CAAM,EAAE,EAAI,2CAA2C,EAAS,EAAuB,CAA0B,EAAE,EAAE,EAAO,YAAO,EAAuB,CAA0B,EAAG,GAAG,EAAO,gBAAoB,GAAG,CAAC,IAAI,EAAQ,EAAO,gBAAmB,EAAK,CAAe,EAAE,OAAO,EAAQ,MAAM,EAAE,CAA8D,OAA7D,EAAI,sDAAsD,CAAC,EAAS,GAAoD,OAA7C,EAAiB,EAAE,MAAM,CAAkB,EAAQ,CAAC,EAAE,SAAS,EAAoB,CAAC,EAAU,CAAC,MAAM,EAAU,OAAO,EAAE,CAAC,IAAI,EAAS,EAAU,MAAM,EAAE,GAAG,OAAO,GAAU,WAAW,CAAC,EAAS,CAAM,EAAE,SAAS,IAAI,EAAK,EAAS,KAAK,GAAG,OAAO,IAAO,SAAU,GAAG,EAAS,MAAM,OAAW,EAAU,IAAI,CAAI,EAAE,EAAO,OAAU,IAAI,CAAI,EAAE,EAAS,GAAG,EAAQ,OAAK,EAAS,MAAM,OAAU,KAAK,EAAS,GAAG,GAAI,SAAS,EAAO,CAAC,EAAK,EAAI,EAAE,SAAS,EAAoB,CAAC,EAAG,EAAG,CAAC,OAAO,GAAQ,EAAG,CAAE,EAAE,IAAI,GAAoB,CAAC,EAAE,SAAS,EAAc,CAAC,EAAY,CAAC,MAAM,EAAY,OAAO,CAAC,IAAI,EAAI,EAAY,IAAI,EAAM,EAAI,EAAY,IAAI,EAAE,EAAI,CAAG,GAAG,SAAS,EAA0B,CAAC,EAAQ,CAAC,OAAO,KAAK,aAAgB,EAAQ,GAAS,EAAE,EAAE,IAAI,EAAqB,CAAC,EAAM,EAAgB,CAAC,EAAM,GAAiB,CAAC,EAAM,GAAO,GAAO,GAAO,GAAG,SAAS,EAAqB,CAAC,EAAK,CAAC,GAAe,IAAZ,OAAkB,MAAM,WAAW,EAAK,EAAK,QAAQ,iBAAiB,GAAG,EAAE,IAAI,EAAE,EAAK,WAAW,CAAC,EAAE,GAAG,GAAG,IAAQ,GAAG,GAAQ,MAAM,IAAI,EAAU,YAAO,EAAM,SAAS,EAAmB,CAAC,EAAK,EAAK,CAAkC,OAAjC,EAAK,GAAsB,CAAI,EAAa,SAAS,OAAO,mBAAmB,EAAK;AAAA;AAAA;AAAA,CAA+E,EAAE,CAAI,EAAE,SAAS,EAAW,CAAC,EAAc,EAAU,CAAC,IAAI,EAAW,GAAoB,EAAU,QAAQ,CAAC,EAAQ,CAAC,KAAK,KAAK,EAAU,KAAK,QAAQ,EAAQ,IAAI,EAAU,MAAM,CAAO,EAAE,MAAM,GAAG,IAAQ,OAAW,KAAK,MAAM,KAAK,SAAS,EAAE;AAAA,EAAK,EAAM,QAAQ,qBAAqB,EAAE,EAAG,EAA2O,OAAzO,EAAW,UAAU,OAAO,OAAO,EAAc,SAAS,EAAE,EAAW,UAAU,YAAY,EAAW,EAAW,UAAU,SAAS,QAAQ,EAAE,CAAC,GAAG,KAAK,UAAU,OAAW,OAAO,KAAK,KAAU,YAAO,KAAK,KAAK,KAAK,KAAK,SAAiB,EAAW,IAAI,GAAc,OAAU,SAAS,EAAkB,CAAC,EAAQ,CAAC,MAAM,IAAI,GAAc,CAAO,EAAE,SAAS,EAA6B,CAAC,EAAQ,EAAe,EAAkB,CAAC,EAAQ,QAAQ,QAAQ,CAAC,EAAK,CAAC,GAAiB,GAAM,EAAe,EAAE,SAAS,CAAU,CAAC,EAAe,CAAC,IAAI,EAAiB,EAAkB,CAAc,EAAE,GAAG,EAAiB,SAAS,EAAQ,OAAQ,GAAmB,iCAAiC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAQ,OAAO,EAAE,EAAG,EAAa,EAAQ,GAAG,EAAiB,EAAE,EAAG,IAAI,EAAmB,MAAM,EAAe,MAAM,EAAM,EAAkB,CAAC,EAAM,EAAW,EAAqY,GAAnY,EAAe,QAAQ,QAAQ,CAAC,EAAG,EAAE,CAAC,GAAG,EAAgB,eAAe,CAAE,EAAG,EAAe,GAAG,EAAgB,GAAQ,KAA4B,GAA3B,EAAkB,KAAK,CAAE,EAAK,CAAC,EAAqB,eAAe,CAAE,EAAG,EAAqB,GAAI,CAAC,EAAE,EAAqB,GAAI,KAAK,QAAQ,EAAE,CAAoD,GAAnD,EAAe,GAAG,EAAgB,GAAI,EAAE,EAAc,IAAa,EAAkB,OAAQ,EAAW,CAAc,EAAG,GAAG,EAAS,EAAkB,SAAtB,EAA8B,EAAW,CAAc,EAAG,SAAS,EAA8B,CAAC,EAAW,CAAC,IAAI,EAAI,GAAoB,GAAY,OAAO,GAAoB,GAAY,IAAuB,eAAnB,EAAwD,cAAlB,EAAqD,OAAjB,GAAtB,EAAkD,EAAW,EAAa,IAAI,QAAQ,CAAC,EAAM,CAAC,OAAO,EAAM,iBAAiB,EAAE,OAAO,EAAa,IAAI,QAAQ,CAAC,EAAM,CAAC,OAAO,EAAM,mBAAmB,CAAC,EAAE,GAA8B,CAAC,CAAU,EAAE,EAAW,QAAQ,CAAC,EAAW,CAAC,IAAI,EAAO,CAAC,EAA4hB,OAA1hB,EAAa,QAAQ,QAAQ,CAAC,EAAM,EAAE,CAAC,IAAI,EAAU,EAAM,UAAc,EAAiB,EAAW,GAAO,EAAO,EAAM,OAAW,EAAc,EAAM,cAAkB,EAAmB,EAAW,EAAE,EAAa,QAAY,EAAO,EAAM,OAAW,EAAc,EAAM,cAAc,EAAO,GAAW,CAAC,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAiB,aAAgB,EAAO,EAAc,CAAG,CAAC,GAAG,MAAM,QAAQ,CAAC,EAAI,GAAE,CAAC,IAAI,GAAY,CAAC,EAAE,EAAO,EAAc,EAAI,EAAmB,WAAc,GAAY,EAAC,CAAC,EAAE,GAAe,EAAW,EAAE,EAAE,EAAQ,CAAC,CAAC,KAAK,EAAI,KAAK,aAAe,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAG,CAAC,EAAE,QAAQ,KAAK,EAAQ,EAAG,GAAG,EAAO,GAAG,KAAK,CAAG,EAAqB,OAAnB,EAAc,CAAG,EAAS,GAAI,WAAa,QAAQ,CAAC,EAAY,EAAE,CAAC,QAAQ,KAAa,EAAQ,GAAG,EAAE,KAAa,GAAI,MAAU,UAAU,oBAAoB,EAAU,GAAG,EAAG,IAAI,EAAI,EAAe,EAAE,IAAI,KAAa,EAAQ,EAAO,GAAW,MAAM,EAAI,EAAE,EAAU,EAAE,GAAG,IAAc,KAAM,EAAY,KAAK,EAAc,CAAG,EAAE,OAAO,GAAK,eAAiB,EAAE,qBAAuB,GAA2B,mBAAmB,CAAa,CAAC,EAAE,EAAE,SAAS,EAAwB,CAAC,EAAc,EAAK,EAAK,EAAS,EAAS,EAAE,SAAS,EAAgB,CAAC,EAAK,CAAC,OAAO,OAAW,GAAE,MAAO,OAAO,GAAE,MAAO,OAAO,GAAE,MAAO,OAAO,GAAE,MAAO,WAAU,MAAU,UAAU,sBAAsB,CAAI,GAAG,SAAS,EAAqB,EAAE,CAAC,IAAI,EAAU,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAG,EAAM,GAAG,OAAO,aAAa,CAAC,EAAE,GAAiB,EAAM,IAAI,GAAiB,OAAU,SAAS,CAAgB,CAAC,EAAI,CAAC,IAAI,EAAI,GAAO,EAAE,EAAI,MAAM,EAAO,GAAI,GAAK,GAAiB,EAAO,MAAM,OAAO,EAAI,IAAI,GAAa,OAAU,SAAS,CAAiB,CAAC,EAAQ,CAAC,MAAM,IAAI,GAAa,CAAO,EAAE,SAAS,CAAY,CAAC,EAAQ,EAAmB,EAAQ,CAAqB,GAApB,EAAQ,GAAS,CAAC,EAAK,EAAE,mBAAmB,GAAqB,MAAU,UAAU,yDAAyD,EAAE,IAAI,EAAK,EAAmB,KAAK,GAAG,CAAC,EAAS,EAAkB,SAAS,EAAK,+CAA+C,EAAE,GAAG,EAAgB,eAAe,CAAO,EAAG,GAAG,EAAQ,6BAA8B,OAAY,OAAkB,yBAAyB,EAAK,SAAS,EAAgF,GAA7E,EAAgB,GAAS,EAAmB,OAAO,GAAiB,GAAY,EAAqB,eAAe,CAAO,EAAE,CAAC,IAAI,EAAU,EAAqB,GAAS,OAAO,EAAqB,GAAS,EAAU,QAAQ,QAAQ,CAAC,EAAG,CAAC,EAAG,EAAE,GAAG,SAAS,EAAsB,CAAC,EAAQ,EAAK,EAAK,EAAU,EAAW,CAAC,IAAI,EAAM,GAAiB,CAAI,EAAE,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAG,CAAC,MAAM,CAAC,CAAC,GAAI,WAAa,QAAQ,CAAC,EAAY,EAAE,CAAC,OAAO,EAAE,EAAU,GAAY,eAAiB,EAAE,qBAAuB,QAAQ,CAAC,EAAQ,CAAC,IAAI,EAAK,GAAG,IAAO,EAAG,EAAK,GAAW,QAAG,IAAO,EAAG,EAAK,EAAY,QAAG,IAAO,EAAG,EAAK,EAAY,WAAU,UAAU,8BAA8B,CAAI,EAAE,OAAO,KAAK,aAAgB,EAAK,GAAS,EAAM,GAAG,mBAAmB,IAAI,CAAC,EAAE,IAAI,GAAgB,CAAC,EAAM,EAAmB,CAAC,CAAC,EAAE,CAAC,MAAM,MAAS,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,EAAI,EAAE,CAAC,MAAM,EAAK,CAAC,EAAE,SAAS,EAAc,CAAC,EAAO,CAAC,GAAG,EAAO,GAAO,EAAE,EAAmB,GAAQ,WAAjC,EAA2C,EAAmB,GAAQ,OAAU,GAAgB,KAAK,CAAM,EAAG,SAAS,EAAmB,EAAE,CAAC,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAmB,OAAO,EAAE,EAAG,GAAG,EAAmB,KAAK,OAAW,EAAE,EAAO,OAAO,EAAM,SAAS,EAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAmB,OAAO,EAAE,EAAG,GAAG,EAAmB,KAAK,OAAW,OAAO,EAAmB,GAAI,OAAO,KAAK,SAAS,EAAU,EAAE,CAAC,EAAO,oBAAuB,GAAoB,EAAO,gBAAmB,GAAgB,SAAS,EAAgB,CAAC,EAAM,CAAC,OAAO,OAAY,QAAW,MAAO,QAAO,KAAM,MAAO,OAAO,GAAM,MAAO,OAAO,GAAO,MAAO,WAAU,CAAC,IAAI,EAAO,GAAgB,OAAO,GAAgB,IAAI,EAAE,EAAmB,OAA2D,OAApD,EAAmB,GAAQ,CAAC,SAAS,EAAE,MAAM,CAAK,EAAS,CAAM,GAAG,SAAS,EAAuB,CAAC,EAAQ,EAAK,CAAC,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAO,CAAC,IAAI,EAAG,EAAmB,GAAQ,MAA6B,OAAvB,GAAe,CAAM,EAAS,GAAI,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,OAAO,GAAiB,CAAK,GAAG,eAAiB,EAAE,qBAAuB,GAA2B,mBAAmB,IAAI,CAAC,EAAE,SAAS,EAAmB,CAAC,EAAM,EAAW,EAAU,CAAC,GAAe,EAAM,GAAY,gBAA9B,OAA4C,CAAC,IAAI,EAAS,EAAM,GAAY,EAAM,GAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAM,GAAY,cAAc,eAAe,UAAU,MAAM,EAAG,EAAkB,aAAa,EAAU,iDAAiD,UAAU,OAAO,uBAAuB,EAAM,GAAY,cAAc,IAAI,EAAE,OAAO,EAAM,GAAY,cAAc,UAAU,QAAQ,MAAM,KAAK,SAAS,GAAG,EAAM,GAAY,cAAc,CAAC,EAAE,EAAM,GAAY,cAAc,EAAS,UAAU,GAAU,SAAS,EAAkB,CAAC,EAAK,EAAM,EAAa,CAAC,GAAG,EAAO,eAAe,CAAI,EAAE,CAAC,GAAe,IAAZ,QAAsC,EAAO,GAAM,gBAAzB,QAAoD,EAAO,GAAM,cAAc,KAAvC,OAAsD,EAAkB,gCAAgC,EAAK,SAAS,EAAwC,GAAtC,GAAoB,EAAO,EAAK,CAAI,EAAK,EAAO,eAAe,CAAY,EAAG,EAAkB,uFAAuF,EAAa,IAAI,EAAE,EAAO,GAAM,cAAc,GAAc,EAA8B,QAAnB,EAAO,GAAM,EAAqB,IAAZ,OAA0B,EAAO,GAAM,aAAa,EAAe,SAAS,EAAwB,CAAC,EAAK,EAAM,EAAO,CAAC,OAAO,OAAY,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,IAAI,EAAK,EAAO,GAAM,EAAO,OAAO,KAAK,aAAgB,EAAK,EAAQ,OAAQ,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,IAAI,EAAK,EAAO,EAAO,EAAQ,OAAO,KAAK,aAAgB,EAAK,GAAS,EAAE,OAAQ,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,IAAI,EAAK,EAAO,EAAO,EAAQ,OAAO,KAAK,aAAgB,EAAK,GAAS,EAAE,WAAW,MAAU,UAAU,yBAAyB,CAAI,GAAG,SAAS,EAAsB,CAAC,EAAQ,EAAK,EAAK,EAAS,CAAC,IAAI,EAAM,GAAiB,CAAI,EAAE,EAAK,EAAiB,CAAI,EAAE,SAAS,CAAI,EAAE,EAAE,EAAK,OAAO,CAAC,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,YAAY,EAAK,aAAe,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,YAAY,OAAO,IAAI,WAAa,QAAQ,CAAC,EAAY,EAAE,CAAC,OAAO,EAAE,OAAO,eAAiB,EAAE,qBAAuB,GAAyB,EAAK,EAAM,CAAQ,EAAE,mBAAmB,IAAI,CAAC,EAAE,GAAmB,EAAK,CAAI,EAAE,SAAS,EAAW,CAAC,EAAK,CAAC,IAAI,EAAI,GAAe,CAAI,EAAM,EAAG,EAAiB,CAAG,EAAa,OAAX,EAAM,CAAG,EAAS,EAAG,SAAS,EAAqB,CAAC,EAAQ,EAAU,CAAC,IAAI,EAAK,EAAgB,GAAS,GAAe,IAAZ,OAAkB,EAAkB,EAAU,qBAAqB,GAAY,CAAO,CAAC,EAAE,OAAO,EAAK,SAAS,EAA4B,CAAC,EAAY,EAAK,EAAU,CAAC,IAAI,EAAS,GAAsB,EAAY,MAAM,EAAE,EAAK,EAAiB,CAAI,EAAE,IAAI,EAAK,EAAS,YAAgB,EAAM,OAAO,OAAO,EAAS,YAAY,UAAU,CAAC,MAAM,CAAC,MAAM,CAAS,EAAE,YAAY,CAAC,MAAM,GAAoB,EAAS,KAAK,IAAI,EAAK,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAK,OAAO,GAAW,EAAM,EAAK,GAAM,EAAM,SAAS,EAAY,CAAC,EAAE,CAAC,GAAG,IAAI,KAAM,MAAM,OAAO,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,UAAU,IAAI,SAAS,IAAI,WAAY,OAAO,EAAE,SAAS,EAAO,WAAM,GAAG,EAAG,SAAS,EAAyB,CAAC,EAAK,EAAM,CAAC,OAAO,OAAY,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,OAAO,KAAK,aAAgB,GAAQ,GAAS,EAAE,OAAQ,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,OAAO,KAAK,aAAgB,GAAQ,GAAS,EAAE,WAAW,MAAU,UAAU,uBAAuB,CAAI,GAAG,SAAS,EAAuB,CAAC,EAAQ,EAAK,EAAK,CAAC,IAAI,EAAM,GAAiB,CAAI,EAAE,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAM,CAAC,OAAO,GAAO,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,GAAG,OAAO,IAAQ,UAAU,OAAO,IAAQ,UAAW,MAAU,UAAU,mBAAmB,GAAa,CAAK,EAAE,QAAQ,KAAK,IAAI,EAAE,OAAO,GAAO,eAAiB,EAAE,qBAAuB,GAA0B,EAAK,CAAK,EAAE,mBAAmB,IAAI,CAAC,EAAE,SAAS,EAAI,CAAC,EAAY,EAAa,CAAC,GAAG,EAAE,aAAuB,UAAW,MAAU,UAAU,qCAAqC,OAAO,EAAY,0BAA0B,EAAE,IAAI,EAAM,GAAoB,EAAY,MAAM,sBAAsB,QAAQ,EAAE,EAAE,EAAE,EAAM,UAAU,EAAY,UAAU,IAAI,EAAI,IAAI,EAAU,EAAE,EAAY,MAAM,EAAI,CAAY,EAAE,OAAO,aAAa,OAAO,EAAE,EAAI,SAAS,EAAoB,CAAC,EAAU,EAAS,EAAU,EAAe,EAAc,CAAC,IAAI,EAAS,EAAS,OAAO,GAAG,EAAS,EAAG,EAAkB,gFAAgF,EAAE,IAAI,EAAkB,EAAS,KAAK,MAAM,IAAY,KAAS,EAAqB,GAAM,QAAQ,EAAE,EAAE,EAAE,EAAS,OAAO,EAAE,EAAG,GAAG,EAAS,KAAK,MAAM,EAAS,GAAG,qBAAqB,OAAU,CAAC,EAAqB,GAAK,MAAO,IAAI,EAAQ,EAAS,GAAG,OAAO,OAAW,EAAS,GAAO,EAAc,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAS,EAAE,EAAE,EAAG,IAAW,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,IAAgB,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,QAAQ,IAAI,EAAc,mBAAmB,GAAsB,CAAS,EAAE,IAAI,EAAS;AAAA,4BAAqC,EAAS,GAAG;AAAA,8BAAuC,EAAU,8DAA8D,EAAS,GAAG;AAAA;AAAA,EAAoB,GAAG,EAAsB,GAAe;AAAA,EAA0B,IAAI,EAAU,EAAqB,cAAc,OAAW,EAAM,CAAC,oBAAoB,UAAU,KAAK,iBAAiB,UAAU,YAAY,EAAM,EAAM,CAAC,EAAkB,EAAe,EAAc,GAAe,EAAS,GAAG,EAAS,EAAE,EAAE,GAAG,EAAmB,GAAe,yCAAyC,EAAU;AAAA,EAAa,QAAQ,EAAE,EAAE,EAAE,EAAS,EAAE,EAAE,EAAG,GAAe,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAU,QAAQ,EAAE,SAAS,EAAS,EAAE,GAAG,KAAK;AAAA,EAAK,EAAM,KAAK,UAAU,CAAC,EAAE,EAAM,KAAK,EAAS,EAAE,EAAE,EAAE,GAAG,EAAmB,EAAc,aAAa,EAAc,OAAO,EAAE,KAAK,IAAI,EAAyH,GAA3G,IAAgB,EAAQ,YAAY,IAAI,cAAc,EAAc,OAAO,EAAE,KAAK,IAAI,EAAc;AAAA,EAAU,EAAsB,GAAe;AAAA,EAAsC,aAAQ,EAAE,EAAkB,EAAE,EAAE,EAAE,EAAS,OAAO,EAAE,EAAE,CAAC,IAAI,EAAU,IAAI,EAAE,YAAY,OAAO,EAAE,GAAG,QAAQ,GAAG,EAAS,GAAG,qBAAqB,KAAM,GAAe,EAAU,SAAS,EAAU,SAAS,EAAS,GAAG,KAAK;AAAA,EAAK,EAAM,KAAK,EAAU,OAAO,EAAE,EAAM,KAAK,EAAS,GAAG,kBAAkB,EAAI,GAAG,EAAS,GAAe;AAAA;AAAA,EAA8D,GAAe;AAAA,EAAM,EAAM,KAAK,CAAa,EAAE,IAAI,EAAgB,GAAK,SAAS,CAAK,EAAE,MAAM,KAAK,CAAK,EAAE,OAAO,EAAgB,SAAS,EAAmB,CAAC,EAAM,EAAa,CAAC,IAAI,EAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAM,IAAK,EAAM,KAAK,EAAQ,IAAc,GAAG,EAAE,EAAE,OAAO,EAAM,SAAS,EAAmB,CAAC,EAAK,EAAM,EAAa,CAAC,GAAG,CAAC,EAAO,eAAe,CAAI,EAAG,GAAmB,qCAAqC,EAAE,GAAe,EAAO,GAAM,gBAAzB,QAAoD,IAAZ,OAA0B,EAAO,GAAM,cAAc,GAAc,EAAW,OAAO,GAAM,EAAM,EAAO,GAAM,SAAS,EAAc,SAAS,EAAa,CAAC,EAAI,EAAI,EAAK,CAAC,IAAI,EAAE,EAAO,WAAW,GAAK,OAAO,GAAM,EAAK,OAAO,EAAE,MAAM,KAAK,CAAC,CAAG,EAAE,OAAO,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAG,EAAE,SAAS,EAAO,CAAC,EAAI,EAAI,EAAK,CAAC,GAAG,EAAI,SAAS,GAAG,EAAG,OAAO,GAAc,EAAI,EAAI,CAAI,EAAE,OAAO,EAAU,IAAI,CAAG,EAAE,MAAM,KAAK,CAAI,EAAE,SAAS,EAAY,CAAC,EAAI,EAAI,CAAC,IAAI,EAAS,CAAC,EAAE,OAAO,QAAQ,EAAE,CAAC,EAAS,OAAO,UAAU,OAAO,QAAQ,EAAE,EAAE,EAAE,UAAU,OAAO,IAAK,EAAS,GAAG,UAAU,GAAG,OAAO,GAAQ,EAAI,EAAI,CAAQ,GAAG,SAAS,CAAuB,CAAC,EAAU,EAAY,CAAC,EAAU,EAAiB,CAAS,EAAE,SAAS,CAAa,EAAE,CAAC,GAAG,EAAU,SAAS,GAAG,EAAG,OAAO,GAAa,EAAU,CAAW,EAAE,OAAO,EAAU,IAAI,CAAW,EAAE,IAAI,EAAG,EAAc,EAAE,GAAG,OAAO,IAAK,WAAY,EAAkB,2CAA2C,EAAU,KAAK,CAAW,EAAE,OAAO,EAAG,IAAI,GAAiB,OAAU,SAAS,EAAqB,CAAC,EAAQ,EAAM,CAAC,IAAI,EAAa,CAAC,EAAM,EAAK,CAAC,EAAE,SAAS,CAAK,CAAC,EAAK,CAAC,GAAG,EAAK,GAAO,OAAO,GAAG,EAAgB,GAAO,OAAO,GAAG,GAAiB,GAAM,CAAC,GAAiB,GAAM,QAAQ,CAAK,EAAE,OAAO,EAAa,KAAK,CAAI,EAAE,EAAK,GAAM,GAA0B,MAArB,EAAM,QAAQ,CAAK,EAAQ,IAAI,GAAiB,EAAQ,KAAK,EAAa,IAAI,EAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAA0B,CAAC,EAAK,EAAS,EAAgB,EAAU,EAAW,EAAG,CAAC,IAAI,EAAS,GAAoB,EAAS,CAAe,EAAE,EAAK,EAAiB,CAAI,EAAE,EAAW,EAAwB,EAAU,CAAU,EAAE,GAAmB,EAAK,QAAQ,EAAE,CAAC,GAAsB,eAAe,EAAK,wBAAwB,CAAQ,GAAG,EAAS,CAAC,EAAE,GAA8B,CAAC,EAAE,EAAS,QAAQ,CAAC,EAAS,CAAC,IAAI,EAAiB,CAAC,EAAS,GAAG,IAAI,EAAE,OAAO,EAAS,MAAM,CAAC,CAAC,EAAsG,OAApG,GAAoB,EAAK,GAAqB,EAAK,EAAiB,KAAK,EAAW,CAAE,EAAE,EAAS,CAAC,EAAQ,CAAC,EAAE,EAAE,SAAS,EAA2B,CAAC,EAAK,EAAM,EAAO,CAAC,OAAO,OAAY,GAAE,OAAO,EAAO,QAA0B,CAAC,EAAQ,CAAC,OAAO,GAAM,IAAU,QAA0B,CAAC,EAAQ,CAAC,OAAO,EAAO,QAAe,GAAE,OAAO,EAAO,QAA2B,CAAC,EAAQ,CAAC,OAAO,EAAO,GAAS,IAAI,QAA2B,CAAC,EAAQ,CAAC,OAAO,EAAQ,GAAS,QAAS,GAAE,OAAO,EAAO,QAA2B,CAAC,EAAQ,CAAC,OAAO,EAAO,GAAS,IAAI,QAA2B,CAAC,EAAQ,CAAC,OAAO,EAAQ,GAAS,YAAY,MAAU,UAAU,yBAAyB,CAAI,GAAG,SAAS,EAAyB,CAAC,EAAc,EAAK,EAAK,EAAS,EAAS,CAA6B,GAA5B,EAAK,EAAiB,CAAI,EAAK,IAAW,GAAI,EAAS,WAAW,IAAI,EAAM,GAAiB,CAAI,EAAM,EAAa,QAAQ,CAAC,EAAM,CAAC,OAAO,GAAO,GAAG,IAAW,EAAE,CAAC,IAAI,EAAS,GAAG,EAAE,EAAK,EAAa,QAAQ,CAAC,EAAM,CAAC,OAAO,GAAO,IAAW,GAAU,IAAI,EAAe,EAAK,SAAS,UAAU,EAAE,EAAa,EAAc,CAAC,KAAK,EAAK,aAAe,EAAa,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,GAAG,OAAO,IAAQ,UAAU,OAAO,IAAQ,UAAW,MAAU,UAAU,mBAAmB,GAAa,CAAK,EAAE,QAAQ,KAAK,IAAI,EAAE,GAAG,EAAM,GAAU,EAAM,EAAU,MAAU,UAAU,qBAAqB,GAAa,CAAK,EAAE,wDAAwD,EAAK,wCAAwC,EAAS,KAAK,EAAS,IAAI,EAAE,OAAO,EAAe,IAAQ,EAAE,EAAM,GAAG,eAAiB,EAAE,qBAAuB,GAA4B,EAAK,EAAM,IAAW,CAAC,EAAE,mBAAmB,IAAI,CAAC,EAAE,SAAS,EAA6B,CAAC,EAAQ,EAAc,EAAK,CAAC,IAAI,EAAY,CAAC,UAAU,WAAW,WAAW,YAAY,WAAW,YAAY,aAAa,YAAY,EAAM,EAAG,EAAY,GAAe,SAAS,CAAgB,CAAC,EAAO,CAAC,EAAO,GAAQ,EAAE,IAAI,EAAK,EAAY,EAAK,EAAK,GAAY,EAAK,EAAK,EAAO,GAAG,OAAO,IAAI,EAAG,GAAO,EAAK,CAAI,EAAE,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,EAAiB,eAAiB,EAAE,qBAAuB,CAAgB,EAAE,CAAC,6BAA6B,EAAI,CAAC,EAAE,SAAS,EAA4B,CAAC,EAAQ,EAAK,CAAC,EAAK,EAAiB,CAAI,EAAE,IAAI,EAAgB,IAAO,cAAc,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAM,CAAC,IAAI,EAAO,EAAQ,GAAO,GAAO,EAAI,GAAG,EAAgB,CAAC,IAAI,EAAe,EAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAO,EAAE,EAAE,CAAC,IAAI,EAAe,EAAM,EAAE,EAAE,GAAG,GAAG,GAAQ,EAAO,IAAiB,EAAE,CAAC,IAAI,EAAQ,EAAe,EAAmB,EAAc,GAAa,EAAe,CAAO,EAAE,GAAG,IAAM,OAAW,EAAI,EAAmB,QAAK,OAAO,aAAa,CAAC,EAAE,GAAK,EAAc,EAAe,EAAe,IAAQ,KAAC,IAAI,EAAM,MAAM,CAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAO,EAAE,EAAG,EAAE,GAAG,OAAO,aAAa,EAAO,EAAM,EAAE,EAAE,EAAE,EAAI,EAAE,KAAK,EAAE,EAAe,OAAb,EAAM,CAAK,EAAS,GAAK,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,GAAG,aAAiB,YAAa,EAAM,IAAI,WAAW,CAAK,EAAE,IAAI,EAAc,EAAoB,OAAO,IAAQ,SAAS,GAAG,EAAE,GAAqB,aAAiB,YAAY,aAAiB,mBAAmB,aAAiB,WAAY,EAAkB,uCAAuC,EAAE,GAAG,GAAiB,EAAqB,EAAU,QAAQ,EAAE,CAAC,OAAO,GAAgB,CAAK,GAAQ,OAAU,QAAQ,EAAE,CAAC,OAAO,EAAM,QAAQ,IAAI,EAAO,EAAU,EAAM,EAAI,GAAQ,EAAE,EAAO,CAAC,EAAyB,GAAvB,EAAQ,GAAK,GAAG,EAAU,GAAiB,EAAqB,GAAa,EAAM,EAAI,EAAE,EAAO,CAAC,EAAO,QAAG,EAAqB,QAAQ,EAAE,EAAE,EAAE,EAAO,EAAE,EAAE,CAAC,IAAI,EAAS,EAAM,WAAW,CAAC,EAAE,GAAG,EAAS,IAAK,EAAM,CAAG,EAAE,EAAkB,wDAAwD,EAAE,EAAO,EAAI,EAAE,GAAG,EAAe,aAAQ,EAAE,EAAE,EAAE,EAAO,EAAE,EAAG,EAAO,EAAI,EAAE,GAAG,EAAM,GAAK,GAAG,IAAc,KAAM,EAAY,KAAK,EAAM,CAAG,EAAE,OAAO,GAAK,eAAiB,EAAE,qBAAuB,GAA2B,mBAAmB,QAAQ,CAAC,EAAI,CAAC,EAAM,CAAG,EAAE,CAAC,EAAE,SAAS,EAA6B,CAAC,EAAQ,EAAS,EAAK,CAAC,EAAK,EAAiB,CAAI,EAAE,IAAI,EAAa,EAAa,EAAQ,EAAe,EAAM,GAAG,IAAW,EAAG,EAAa,GAAc,EAAa,GAAc,EAAe,GAAiB,EAAQ,QAAQ,EAAE,CAAC,OAAO,GAAS,EAAM,EAAO,QAAG,IAAW,EAAG,EAAa,GAAc,EAAa,GAAc,EAAe,GAAiB,EAAQ,QAAQ,EAAE,CAAC,OAAO,GAAS,EAAM,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAM,CAAC,IAAI,EAAO,EAAQ,GAAO,GAAO,EAAK,EAAQ,EAAM,EAAQ,EAAe,EAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAO,EAAE,EAAE,CAAC,IAAI,EAAe,EAAM,EAAE,EAAE,EAAS,GAAG,GAAG,GAAQ,EAAK,GAAgB,IAAQ,EAAE,CAAC,IAAI,EAAa,EAAe,EAAmB,EAAc,EAAa,EAAe,CAAY,EAAE,GAAG,IAAM,OAAW,EAAI,EAAmB,QAAK,OAAO,aAAa,CAAC,EAAE,GAAK,EAAc,EAAe,EAAe,GAAuB,OAAb,EAAM,CAAK,EAAS,GAAK,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,GAAK,OAAO,IAAQ,SAAW,EAAkB,6CAA6C,CAAI,EAAE,IAAI,EAAO,EAAe,CAAK,EAAM,EAAI,GAAQ,EAAE,EAAO,CAAQ,EAA0E,GAAxE,EAAQ,GAAK,GAAG,GAAQ,EAAM,EAAa,EAAM,EAAI,EAAE,EAAO,CAAQ,EAAK,IAAc,KAAM,EAAY,KAAK,EAAM,CAAG,EAAE,OAAO,GAAK,eAAiB,EAAE,qBAAuB,GAA2B,mBAAmB,QAAQ,CAAC,EAAI,CAAC,EAAM,CAAG,EAAE,CAAC,EAAE,SAAS,EAA8B,CAAC,EAAQ,EAAK,EAAqB,EAAe,EAAoB,EAAc,CAAC,GAAoB,GAAS,CAAC,KAAK,EAAiB,CAAI,EAAE,eAAe,EAAwB,EAAqB,CAAc,EAAE,cAAc,EAAwB,EAAoB,CAAa,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,EAAoC,CAAC,EAAW,EAAU,EAAiB,EAAgB,EAAO,EAAc,EAAmB,EAAgB,EAAO,EAAc,CAAC,GAAoB,GAAY,OAAO,KAAK,CAAC,UAAU,EAAiB,CAAS,EAAE,iBAAiB,EAAiB,OAAO,EAAwB,EAAgB,CAAM,EAAE,cAAc,EAAc,mBAAmB,EAAmB,OAAO,EAAwB,EAAgB,CAAM,EAAE,cAAc,CAAa,CAAC,EAAE,SAAS,EAAsB,CAAC,EAAQ,EAAK,CAAC,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,OAAO,GAAK,KAAK,EAAK,eAAiB,EAAE,aAAe,QAAQ,EAAE,CAAC,QAAkB,WAAa,QAAQ,CAAC,EAAY,EAAE,CAAC,OAAiB,CAAC,EAAE,IAAI,GAAc,CAAC,EAAE,SAAS,EAAiB,CAAC,EAAQ,CAAC,IAAI,EAAO,GAAc,GAAS,GAAG,IAAS,OAAW,OAAO,EAAiB,CAAO,EAAO,YAAO,EAAQ,SAAS,EAAgB,EAAE,CAAC,GAAG,OAAO,aAAa,SAAU,OAAO,WAAW,OAAO,QAAQ,EAAE,CAAC,OAAO,UAAU,EAAE,aAAa,EAAE,EAAE,SAAS,EAAkB,CAAC,EAAK,CAAC,GAAG,IAAO,EAAG,OAAO,GAAiB,GAAiB,CAAC,EAAoC,YAA7B,EAAK,GAAkB,CAAI,EAAS,GAAiB,GAAiB,EAAE,EAAK,EAAG,SAAS,EAAc,CAAC,EAAO,CAAC,GAAG,EAAO,EAAG,EAAmB,GAAQ,UAAU,EAAG,SAAS,EAAmB,CAAC,EAAS,CAAC,IAAI,EAAS,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAS,EAAE,EAAG,IAAW,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,IAAI,EAAa,mCAAmC,EAAS;AAAA,EAAoC,QAAQ,EAAE,EAAE,EAAE,EAAS,EAAE,EAAG,GAAc,cAAc,EAAE,gEAAgE,EAAE,iBAAiB,EAAE;AAAA,SAAkB,EAAE,aAAa,EAAE;AAAA,iBAAmD,EAAE;AAAA,EAA2H,OAAnG,GAAc,6BAA6B,EAAS;AAAA;AAAA;AAAA,EAA0D,SAAS,wBAAwB,SAAS,mBAAmB,CAAY,EAAE,GAAsB,EAAO,EAAgB,EAAE,IAAI,GAAa,CAAC,EAAE,SAAS,EAAa,CAAC,EAAO,CAAC,GAAG,CAAC,EAAQ,EAAkB,oCAAoC,CAAM,EAAE,OAAO,EAAmB,GAAQ,MAAM,SAAS,EAAW,CAAC,EAAO,EAAS,EAAS,EAAK,CAAC,EAAO,GAAc,CAAM,EAAE,IAAI,EAAM,GAAa,GAAU,GAAG,CAAC,EAAO,EAAM,GAAoB,CAAQ,EAAE,GAAa,GAAU,EAAM,OAAO,EAAM,EAAO,EAAS,CAAI,EAAE,SAAS,EAAM,EAAE,CAAC,GAAM,EAAE,SAAS,EAAsB,CAAC,EAAK,EAAI,EAAI,CAAC,EAAO,WAAW,EAAK,EAAI,EAAI,CAAG,EAAE,SAAS,EAAyB,CAAC,EAAK,CAAC,GAAG,CAAkG,OAAjG,EAAW,KAAK,EAAK,GAAO,WAAW,QAAQ,EAAE,EAAE,GAA2B,EAAW,MAAM,EAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAuB,CAAC,EAAc,CAAC,IAAI,EAAQ,EAAO,OAAO,EAAc,IAAgB,EAAE,IAAI,EAAY,WAAW,GAAG,EAAc,EAAa,MAAO,GAAM,QAAQ,EAAQ,EAAE,GAAS,EAAE,GAAS,EAAE,CAAC,IAAI,EAAkB,GAAS,EAAE,IAAG,GAAS,EAAkB,KAAK,IAAI,EAAkB,EAAc,SAAS,EAAE,IAAI,EAAQ,KAAK,IAAI,EAAY,GAAQ,KAAK,IAAI,EAAc,CAAiB,EAAE,KAAK,CAAC,EAAM,EAAY,GAA0B,CAAO,EAAE,GAAG,EAAa,MAAO,GAAM,MAAO,GAAM,GAAc,EAAO,cAAiB,GAAY,MAAM,eAAe,EAAE,GAAsB,EAAE,GAAa,EAAO,aAAgB,GAAY,MAAM,cAAc,EAAE,GAAW,EAAE,GAAiB,EAAO,iBAAoB,GAAY,MAAM,kBAAkB,EAAE,IAAI,GAAc,CAAC,EAAI,GAAqB,EAAI,GAA+B,EAAI,GAAyB,EAAI,GAAuB,EAAI,GAAwB,EAAI,GAAuB,EAAI,GAA6B,EAAI,GAAwB,EAAI,GAA2B,EAAI,GAA0B,EAAI,GAA8B,EAAI,GAA6B,EAAI,GAA8B,EAAI,GAA+B,EAAI,GAAqC,EAAI,GAAuB,EAAI,GAAe,EAAI,GAAmB,EAAI,GAAe,EAAI,GAAY,EAAI,GAAO,EAAI,GAAuB,EAAI,EAAuB,EAAM,GAAI,GAAW,EAAM,GAAmB,EAAO,mBAAsB,QAAQ,EAAE,CAAC,OAAO,GAAmB,EAAO,mBAAsB,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,GAAQ,EAAO,QAAW,QAAQ,EAAE,CAAC,OAAO,GAAQ,EAAO,QAAW,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,EAAM,EAAO,MAAS,QAAQ,EAAE,CAAC,OAAO,EAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,GAAe,EAAO,eAAkB,QAAQ,EAAE,CAAC,OAAO,GAAe,EAAO,eAAkB,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,GAA4C,EAAO,4CAA+C,QAAQ,EAAE,CAAC,OAAO,GAA4C,EAAO,4CAA+C,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,GAAU,EAAsB,SAAS,CAAS,EAAE,CAAC,GAAG,CAAC,GAAU,GAAI,EAAE,GAAG,CAAC,GAAU,EAAsB,GAAW,SAAS,EAAG,CAAC,EAAK,CAAuB,GAAtB,EAAK,GAAM,EAAc,EAAgB,EAAG,OAAgB,GAAT,GAAO,EAAK,EAAgB,EAAG,OAAO,SAAS,CAAK,EAAE,CAAC,GAAG,GAAU,OAA+C,GAAxC,GAAU,GAAK,EAAO,UAAa,GAAQ,GAAM,OAAiD,GAA1C,GAAY,EAAE,EAAoB,CAAM,EAAK,EAAO,qBAAwB,EAAO,qBAAwB,EAAE,GAAQ,EAAE,GAAG,EAAO,UAAc,EAAO,UAAa,YAAY,EAAE,WAAW,QAAQ,EAAE,CAAC,WAAW,QAAQ,EAAE,CAAC,EAAO,UAAa,EAAE,GAAG,CAAC,EAAE,EAAM,GAAG,CAAC,EAAO,OAAM,EAAqB,GAAlB,EAAO,IAAO,GAAO,EAAO,QAAW,CAAC,GAAG,OAAO,EAAO,SAAY,WAAW,EAAO,QAAW,CAAC,EAAO,OAAU,EAAE,MAAM,EAAO,QAAW,OAAO,EAAG,EAAO,QAAW,IAAI,EAAE,EAG7kqC,OAHglqC,GAAI,EAG7kqC,EAAO,QAGb,EACY,MCCf,IAAI,EAAkC,KAClC,EAAmD,KAEvD,eAAe,EAAc,EAAwB,CACnD,GAAI,EACF,OAAO,EAGT,GAAI,EACF,OAAO,EAoHT,OAjHA,GAAwB,SAAiC,CACvD,GAAI,CAMF,GAAI,OAAO,KAAS,IACjB,OAAwC,KAAO,OAIlD,GAAI,OAAO,KAAS,KAAe,CAAC,KAAK,SACtC,KAAyC,SAAW,CACnD,KAAkB,wEACpB,EAIF,GACE,OAAO,kBAAsB,KAC7B,OAAO,OAAW,IAGhB,WACA,kBAAoB,YAIxB,IAAM,EAAuB,MAC3B,EAIA,IACwB,CACxB,GAAI,CAEF,IAAM,EAAa,MAAM,GAAe,CAAQ,EAChD,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IACN,kCAAkC,OAAc,EAAW,WAAa,MAAM,QAAQ,CAAC,MACzF,EAEF,OAAO,EAAc,CAAE,aAAc,GAAM,WAAY,CAAW,CAAC,EACnE,MAAO,EAAO,CAEd,GAAI,OAAO,QAAY,KAAe,QAAQ,KAC5C,QAAQ,KACN,yFACA,CACF,EAEF,OAAO,EAAc,CAAE,aAAc,EAAK,CAAC,IAO/C,GAFsB,MAAM,GAAW,EAEpB,CACjB,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,oDAAoD,EAElE,GAAI,CAGF,IAAM,EAAoB,KACL,+BASrB,GAPA,EAAe,MAAM,EACnB,EAAkB,QAIC,gCACrB,EACI,EACF,OAAO,EAET,MAAO,EAAW,CAClB,GAAI,OAAO,QAAY,KAAe,QAAQ,KAC5C,QAAQ,KACN,gEACA,CACF,GAeN,GARA,EAAe,MAAM,EACnB,GAImB,2BACrB,EAEI,CAAC,EACH,MAAU,MAAM,4BAA4B,EAG9C,OAAO,EACP,MAAO,EAAO,CAEd,MADA,EAAuB,KACb,MACR,+BAA+B,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,GACtF,KAED,EAEI,EAOT,SAAS,EAAmB,CAAC,EAA6C,CAExE,MAAO,CACL,QAAS,GAAS,SAAW,GAC7B,YAAa,EACb,YAAa,EACb,OAAQ,GAAS,QAAU,EAC3B,aAAc,GAAS,cAAgB,GACvC,gBAAiB,GAAS,iBAAmB,GAC7C,iBAAkB,GAAS,kBAAoB,EAC/C,YAAa,GAAS,aAAe,EACrC,WAAY,GAAS,YAAc,EACnC,SAAU,GAAS,UAAY,EAC/B,KAAM,GAAS,MAAQ,EACvB,gBAAiB,EACjB,cAAe,GAAS,eAAiB,EACzC,WAAY,GAAS,YAAc,EACnC,gBAAiB,EACjB,kBAAmB,GAAS,mBAAqB,EACjD,gBAAiB,GAAS,iBAAmB,EAC7C,cAAe,GAAS,eAAiB,GAAS,SAAW,GAC7D,SAAU,GAAS,SAAW,EAAI,EAClC,MAAO,GAAS,OAAS,EACzB,WAAY,GAAS,YAAc,EACnC,kBAAmB,EACnB,aAAc,EACd,WAAY,EACZ,cAAe,GAAS,eAAiB,GAAS,SAAW,GAC7D,kBAAmB,EACnB,cAAe,GAAS,eAAiB,CAC3C,EAMF,eAAsB,EAAgB,CACpC,EACA,EACA,EACqB,CAMrB,GAJA,GAAmB,CAAK,EACxB,GAAoB,CAAO,EAGvB,GAAQ,QACV,MAAM,IAAI,aAAa,UAAW,YAAY,EAIhD,IAAoB,MAAd,EACe,OAAf,EACa,KAAb,GADS,EAGf,GAAI,EAAE,aAAgB,aAAe,EAAE,aAAgB,mBACrD,MAAU,MAAM,oDAAoD,EAGtE,IAAM,EAAK,YAAY,IAAI,EACrB,EAAS,MAAM,GAAe,EAC9B,EAAK,YAAY,IAAI,EAE3B,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,+BAA+B,EAAK,GAAI,QAAQ,CAAC,KAAK,EAClE,QAAQ,IACN,uBAAuB,GAAgB,WAAY,EAAe,QAAU,WAC9E,EAIF,GAAI,GAAQ,QACV,MAAM,IAAI,aAAa,UAAW,YAAY,EAGhD,IAAM,EAAgB,GAAoB,CAAO,EAI3C,EACJ,aAAgB,kBACZ,IAAI,WAAW,EAAK,OAAuB,EAAK,WAAY,EAAK,MAAM,EACvE,IAAI,WACF,EAAK,OACL,EAAK,WACL,EAAK,MACP,EAEN,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,yBAA0B,CAAa,EAGrD,IAAM,EAAK,YAAY,IAAI,EACrB,EAAS,EAAO,OAAO,EAAW,EAAO,EAAQ,CAAa,EAC9D,GAAK,YAAY,IAAI,EAE3B,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,gCAAgC,GAAK,GAAI,QAAQ,CAAC,KAAK,EAGrE,GAAI,GAAQ,QACV,MAAM,IAAI,aAAa,UAAW,YAAY,EAGhD,GAAI,CAAC,EACH,MAAU,MAAM,sBAAsB,EAGxC,OAAO,EAOT,GAAI,OAAO,KAAS,IAClB,KAAK,UAAY,MAAO,IAAwB,CAC9C,IAAM,EAAO,EAAM,KAGnB,GAAI,GAAM,OAAS,cAAe,CAChC,KAAK,YAAY,CAAE,KAAM,cAAe,CAAC,EACzC,OAGF,IAAM,EAAU,EAKV,EAAuC,CAC3C,GAAI,EAAQ,GACZ,GAAI,EACN,EAEA,GAAI,CACF,GAAI,EAAQ,OAAS,cAAe,CAClC,IAAQ,QAAO,WAAY,EAAQ,QAE7B,EAAK,YAAY,IAAI,EACrB,EAAa,IAAI,gBACjB,EAAS,MAAM,GACnB,EACA,EACA,EAAW,MACb,EACM,EAAK,YAAY,IAAI,EAE3B,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,8BAA8B,EAAK,GAAI,QAAQ,CAAC,KAAK,EAGnE,EAAS,GAAK,GACd,EAAS,KAAO,EAIhB,KAAK,YAAY,CAAQ,EAEzB,OAAS,MAAQ,yBAAyB,EAAQ,OAClD,KAAK,YAAY,CAAQ,EAE3B,MAAO,EAAO,CACd,EAAS,MAAQ,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACtE,KAAK,YAAY,CAAQ",
|
|
11
|
-
"debugId": "
|
|
11
|
+
"mappings": "AAAO,IAA4uE,GAAK,SAAS,YAAY,SAAS,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,ECUv3E,IAAI,EAAgC,KAChC,GAAgD,KAMpD,eAAsB,EAAU,EAAqB,CAEnD,GAAI,IAAkB,KACpB,OAAO,EAIT,GAAI,GACF,OAAO,GAmBT,OAfA,IAAwB,SAAY,CAClC,GAAI,CAEF,OADA,EAAgB,MAAM,GAAK,EACpB,EACP,MAAO,EAAO,CAOd,OALA,EAAgB,GAChB,QAAQ,KACN,gEACA,CACF,EACO,MAER,EAEI,GC5CF,SAAS,EAAmB,CACjC,EACwD,CACxD,GAAI,IAAY,OACd,OAGF,GAAI,OAAO,IAAY,UAAY,IAAY,KAC7C,MAAU,UAAU,wCAAwC,EAG9D,IAAM,EAAO,EAEb,GAAI,YAAa,GAAQ,EAAK,UAAY,OAAW,CACnD,IAAM,EAAU,EAAK,QAErB,GAAI,OAAO,MAAM,CAAO,EACtB,MAAU,WACR,4DACF,EAGF,GAAI,OAAO,IAAY,SACrB,MAAU,UAAU,0BAA0B,EAGhD,GAAI,CAAC,OAAO,UAAU,CAAO,EAC3B,MAAU,WACR,mEACF,EAGF,GAAI,EAAU,GAAK,EAAU,IAC3B,MAAU,WACR,2CAA2C,GAC7C,GClCN,IAAI,GAAU,QAAQ,EAAG,CACvB,IAAI,EAAyB,4EAE7B,OACF,QAAQ,CAAC,EAAQ,CACf,EAAS,GAAU,CAAC,EAEtB,IAAI,EAAO,OAAO,EAAS,IAAY,EAAO,CAAC,EAAM,EAAoB,EAAmB,EAAO,MAAS,IAAI,QAAQ,QAAQ,CAAC,EAAQ,EAAO,CAAC,EAAoB,EAAQ,EAAmB,EAAO,EAAE,IAAI,EAAgB,CAAC,EAAM,EAAI,IAAI,KAAO,EAAQ,GAAG,EAAO,eAAe,CAAG,EAAG,EAAgB,GAAK,EAAO,GAAM,IAAI,EAAW,CAAC,EAAM,EAAY,iBAAqB,EAAM,QAAQ,CAAC,EAAO,EAAQ,CAAC,MAAM,GAAa,EAAmB,GAAU,EAAsB,GAAS,EAAgB,GAAG,SAAS,EAAU,CAAC,EAAK,CAAC,GAAG,EAAO,WAAe,OAAO,EAAO,WAAc,EAAK,CAAe,EAAE,OAAO,EAAgB,EAAK,IAAI,GAAM,GAAU,GAAW,GAAe,GAAG,GAAoB,EAAsB,CAAC,GAAG,EAAuB,EAAgB,KAAK,SAAS,KAAU,QAAG,OAAO,SAAW,KAAa,SAAS,cAAe,EAAgB,SAAS,cAAc,IAAI,GAAG,EAAY,EAAgB,EAAW,GAAG,EAAgB,QAAQ,OAAO,IAAI,EAAG,EAAgB,EAAgB,OAAO,EAAE,EAAgB,YAAY,GAAG,EAAE,CAAC,EAAO,OAAgB,GAAG,CAAkH,GAAjH,GAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,IAAI,eAAwD,OAAzC,EAAI,KAAK,MAAM,EAAI,EAAK,EAAE,EAAI,KAAK,IAAI,EAAS,EAAI,cAAiB,EAAuB,GAAW,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,IAAI,eAAuF,OAAxE,EAAI,KAAK,MAAM,EAAI,EAAK,EAAE,EAAI,aAAa,cAAc,EAAI,KAAK,IAAI,EAAS,IAAI,WAAW,EAAI,QAAQ,GAAG,GAAU,QAAQ,CAAC,EAAI,EAAO,EAAQ,CAAC,IAAI,EAAI,IAAI,eAAe,EAAI,KAAK,MAAM,EAAI,EAAI,EAAE,EAAI,aAAa,cAAc,EAAI,OAAO,QAAQ,EAAE,CAAC,GAAG,EAAI,QAAQ,KAAK,EAAI,QAAQ,GAAG,EAAI,SAAS,CAAC,EAAO,EAAI,QAAQ,EAAE,OAAO,EAAQ,GAAG,EAAI,QAAQ,EAAQ,EAAI,KAAK,IAAI,EAAE,CAAC,GAAe,QAAQ,CAAC,EAAM,CAAC,SAAS,MAAM,GAAa,IAAI,GAAI,EAAO,OAAU,QAAQ,IAAI,KAAK,OAAO,EAAM,EAAI,EAAO,UAAa,QAAQ,KAAK,KAAK,OAAO,EAAE,IAAI,KAAO,EAAiB,GAAG,EAAgB,eAAe,CAAG,EAAG,EAAO,GAAK,EAAgB,GAA2B,GAArB,EAAgB,KAAQ,EAAO,UAAa,EAAW,EAAO,UAAa,GAAG,EAAO,YAAe,EAAY,EAAO,YAAe,GAAG,EAAO,KAAQ,EAAM,EAAO,KAAQ,IAAI,EAAW,GAAG,EAAO,WAAc,EAAW,EAAO,WAAc,IAAI,GAAc,EAAO,eAAkB,GAAK,GAAG,OAAO,cAAc,SAAU,GAAM,iCAAiC,EAAE,IAAI,EAAe,GAAM,GAAU,GAAe,GAAY,IAAI,YAAY,MAAM,EAAE,SAAS,EAAY,CAAC,EAAI,EAAe,CAAC,GAAG,CAAC,EAAI,MAAM,GAAG,IAAI,EAAO,EAAI,EAAe,QAAQ,EAAI,EAAI,EAAE,GAAK,IAAS,EAAO,IAAM,EAAE,EAAI,OAAO,GAAY,OAAO,EAAO,SAAS,EAAI,CAAG,CAAC,EAAE,SAAS,EAAiB,CAAC,EAAI,EAAK,EAAO,EAAgB,CAAC,GAAG,EAAE,EAAgB,GAAG,MAAO,GAAE,IAAI,EAAS,EAAW,EAAO,EAAO,EAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAI,WAAW,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,EAAG,EAAI,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAG,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,GAAQ,EAAO,MAAM,EAAK,KAAU,EAAO,QAAG,GAAG,KAAK,CAAC,GAAG,EAAO,GAAG,EAAO,MAAM,EAAK,KAAU,IAAI,GAAG,EAAE,EAAK,KAAU,IAAI,EAAE,GAAQ,QAAG,GAAG,MAAM,CAAC,GAAG,EAAO,GAAG,EAAO,MAAM,EAAK,KAAU,IAAI,GAAG,GAAG,EAAK,KAAU,IAAI,GAAG,EAAE,GAAG,EAAK,KAAU,IAAI,EAAE,GAAO,KAAC,GAAG,EAAO,GAAG,EAAO,MAAM,EAAK,KAAU,IAAI,GAAG,GAAG,EAAK,KAAU,IAAI,GAAG,GAAG,GAAG,EAAK,KAAU,IAAI,GAAG,EAAE,GAAG,EAAK,KAAU,IAAI,EAAE,IAAmB,OAAf,EAAK,GAAQ,EAAS,EAAO,EAAS,SAAS,EAAY,CAAC,EAAI,EAAO,EAAgB,CAAC,OAAO,GAAkB,EAAI,EAAO,EAAO,CAAe,EAAE,SAAS,EAAe,CAAC,EAAI,CAAC,IAAI,EAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAI,WAAW,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAI,WAAW,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAS,QAAG,GAAG,KAAK,GAAK,EAAO,QAAG,GAAG,MAAM,GAAK,EAAO,QAAK,EAAE,OAAO,EAAI,IAAI,GAAa,IAAI,YAAY,UAAU,EAAE,SAAS,EAAa,CAAC,EAAI,EAAe,CAAC,IAAI,EAAO,EAAQ,EAAI,GAAQ,EAAM,EAAO,EAAI,EAAe,EAAE,MAAM,EAAE,GAAK,IAAS,EAAQ,GAAK,EAAE,EAAkB,OAAd,EAAO,GAAK,EAAS,GAAa,OAAO,EAAO,SAAS,EAAI,CAAM,CAAC,EAAE,IAAI,EAAI,GAAG,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAe,GAAG,EAAE,EAAE,CAAC,IAAI,EAAS,EAAO,EAAI,EAAE,GAAG,GAAG,GAAG,GAAU,EAAE,MAAM,GAAK,OAAO,aAAa,CAAQ,EAAE,OAAO,EAAI,SAAS,EAAa,CAAC,EAAI,EAAO,EAAgB,CAAC,GAAG,IAAkB,OAAW,EAAgB,WAAW,GAAG,EAAgB,EAAE,MAAO,GAAE,GAAiB,EAAE,IAAI,EAAS,EAAW,EAAgB,EAAgB,EAAI,OAAO,EAAE,EAAgB,EAAE,EAAI,OAAO,QAAQ,EAAE,EAAE,EAAE,EAAgB,EAAE,EAAE,CAAC,IAAI,EAAS,EAAI,WAAW,CAAC,EAAE,EAAO,GAAQ,GAAG,EAAS,GAAQ,EAAsB,OAApB,EAAO,GAAQ,GAAG,EAAS,EAAO,EAAS,SAAS,EAAgB,CAAC,EAAI,CAAC,OAAO,EAAI,OAAO,EAAE,SAAS,EAAa,CAAC,EAAI,EAAe,CAAC,IAAI,EAAE,EAAM,EAAI,GAAG,MAAM,EAAE,GAAG,EAAe,GAAG,CAAC,IAAI,EAAM,EAAO,EAAI,EAAE,GAAG,GAAG,GAAG,GAAO,EAAE,MAAU,GAAJ,EAAE,EAAK,GAAO,MAAM,CAAC,IAAI,EAAG,EAAM,MAAM,GAAK,OAAO,aAAa,MAAM,GAAI,GAAG,MAAM,EAAG,IAAI,EAAO,QAAK,OAAO,aAAa,CAAK,EAAG,OAAO,EAAI,SAAS,EAAa,CAAC,EAAI,EAAO,EAAgB,CAAC,GAAG,IAAkB,OAAW,EAAgB,WAAW,GAAG,EAAgB,EAAE,MAAO,GAAE,IAAI,EAAS,EAAW,EAAO,EAAS,EAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,EAAE,CAAC,IAAI,EAAS,EAAI,WAAW,CAAC,EAAE,GAAG,GAAU,OAAO,GAAU,MAAM,CAAC,IAAI,EAAe,EAAI,WAAW,EAAE,CAAC,EAAE,EAAS,QAAQ,EAAS,OAAO,IAAI,EAAe,KAA0C,GAArC,EAAO,GAAQ,GAAG,EAAS,GAAQ,EAAK,EAAO,EAAE,EAAO,MAA0B,OAApB,EAAO,GAAQ,GAAG,EAAS,EAAO,EAAS,SAAS,EAAgB,CAAC,EAAI,CAAC,IAAI,EAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,EAAE,CAAC,IAAI,EAAS,EAAI,WAAW,CAAC,EAAE,GAAG,GAAU,OAAO,GAAU,MAAM,EAAE,EAAE,GAAK,EAAE,OAAO,EAAI,SAAS,EAAO,CAAC,EAAE,EAAS,CAAC,GAAG,EAAE,EAAS,EAAG,GAAG,EAAS,EAAE,EAAS,OAAO,EAAE,IAAI,GAAO,GAAM,EAAO,EAAO,EAAQ,EAAO,EAAQ,GAAQ,GAAQ,SAAS,EAA0B,CAAC,EAAI,CAAC,GAAO,EAAI,EAAO,MAAS,GAAM,IAAI,UAAU,CAAG,EAAE,EAAO,OAAU,EAAO,IAAI,WAAW,CAAG,EAAE,EAAO,OAAU,EAAO,IAAI,WAAW,CAAG,EAAE,EAAO,OAAU,EAAO,IAAI,WAAW,CAAG,EAAE,EAAO,QAAW,EAAQ,IAAI,YAAY,CAAG,EAAE,EAAO,QAAW,EAAQ,IAAI,YAAY,CAAG,EAAE,EAAO,QAAW,GAAQ,IAAI,aAAa,CAAG,EAAE,EAAO,QAAW,GAAQ,IAAI,aAAa,CAAG,EAAE,IAAI,GAAe,EAAO,gBAAmB,SAAa,EAAc,GAAa,CAAC,EAAM,GAAW,CAAC,EAAM,GAAc,CAAC,EAAM,GAAmB,GAAM,SAAS,EAAM,EAAE,CAAC,GAAG,EAAO,OAAU,CAAC,GAAG,OAAO,EAAO,QAAW,WAAW,EAAO,OAAU,CAAC,EAAO,MAAS,EAAE,MAAM,EAAO,OAAU,OAAQ,GAAY,EAAO,OAAU,MAAM,CAAC,EAAG,GAAqB,EAAY,EAAE,SAAS,EAAW,EAAE,CAAC,GAAmB,GAAK,GAAqB,EAAU,EAAE,SAAS,EAAO,EAAE,CAAC,GAAG,EAAO,QAAW,CAAC,GAAG,OAAO,EAAO,SAAY,WAAW,EAAO,QAAW,CAAC,EAAO,OAAU,EAAE,MAAM,EAAO,QAAW,OAAQ,GAAa,EAAO,QAAW,MAAM,CAAC,EAAG,GAAqB,EAAa,EAAE,SAAS,EAAW,CAAC,EAAG,CAAC,GAAa,QAAQ,CAAE,EAAE,SAAS,EAAS,CAAC,EAAG,CAAC,GAAW,QAAQ,CAAE,EAAE,SAAS,EAAY,CAAC,EAAG,CAAC,GAAc,QAAQ,CAAE,EAAE,IAAI,EAAgB,EAAM,GAAqB,KAAS,EAAsB,KAAK,SAAS,EAAgB,CAAC,EAAG,CAAmB,GAAlB,IAAqB,EAAO,uBAA2B,EAAO,uBAA0B,CAAe,EAAG,SAAS,EAAmB,CAAC,EAAG,CAAmB,GAAlB,IAAqB,EAAO,uBAA2B,EAAO,uBAA0B,CAAe,EAAE,GAAG,GAAiB,EAAE,CAAC,GAAG,KAAuB,KAAM,cAAc,EAAoB,EAAE,GAAqB,KAAK,GAAG,EAAsB,CAAC,IAAI,EAAS,EAAsB,EAAsB,KAAK,EAAS,IAAI,EAAO,gBAAmB,CAAC,EAAE,EAAO,gBAAmB,CAAC,EAAE,SAAS,EAAK,CAAC,EAAK,CAAC,GAAG,EAAO,QAAY,EAAO,QAAW,CAAI,EAAE,GAAM,GAAG,EAAI,CAAI,EAAE,GAAM,GAAK,GAAW,EAAE,EAAK,SAAS,EAAK,+CAA+C,IAAI,EAAE,IAAI,YAAY,aAAa,CAAI,EAAwB,MAAtB,EAAmB,CAAC,EAAQ,EAAE,IAAI,GAAc,wCAAwC,SAAS,EAAS,CAAC,EAAS,CAAC,OAAO,EAAS,WAAW,EAAa,EAAE,GAAG,EAAO,WAAc,CAAC,IAAI,EAAe,gBAAgB,GAAG,CAAC,GAAU,CAAc,EAAG,EAAe,GAAW,CAAc,EAAQ,SAAI,EAAe,IAAI,IAAI,gBAA4B,2EAAG,EAAE,SAAS,EAAE,SAAS,EAAS,CAAC,EAAK,CAAC,GAAG,CAAC,GAAG,GAAM,GAAgB,EAAY,OAAO,IAAI,WAAW,CAAU,EAAE,GAAG,GAAY,OAAO,GAAW,CAAI,EAAO,UAAK,kDAAmD,MAAM,EAAI,CAAC,GAAM,CAAG,GAAG,SAAS,EAAgB,EAAE,CAAC,GAAG,CAAC,IAAa,GAAoB,IAAwB,GAAG,OAAO,QAAQ,WAAY,OAAO,MAAM,EAAe,CAAC,YAAY,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAS,CAAC,GAAG,CAAC,EAAS,GAAO,KAAK,uCAAuC,EAAe,IAAI,OAAO,EAAS,YAAe,EAAE,EAAE,MAAM,QAAQ,EAAE,CAAC,OAAO,GAAU,CAAc,EAAE,EAAG,OAAO,QAAQ,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC,OAAO,GAAU,CAAc,EAAE,EAAE,SAAS,EAAU,EAAE,CAAC,IAAI,EAAK,CAAC,EAAI,EAAa,EAAE,SAAS,CAAe,CAAC,EAAS,EAAO,CAAC,IAAI,EAAQ,EAAS,QAAQ,EAAO,IAAO,EAAQ,EAAW,EAAO,IAAO,EAAK,GAA2B,EAAW,MAAM,EAAE,EAAU,EAAO,IAAO,EAAK,GAAU,EAAO,IAAO,CAAI,EAAE,GAAoB,kBAAkB,EAAE,GAAiB,kBAAkB,EAAE,SAAS,CAA0B,CAAC,EAAO,CAAC,EAAgB,EAAO,QAAW,EAAE,SAAS,CAAsB,CAAC,EAAS,CAAC,OAAO,GAAiB,EAAE,KAAK,QAAQ,CAAC,EAAO,CAAC,IAAI,EAAO,YAAY,YAAY,EAAO,CAAI,EAAE,OAAO,EAAO,EAAE,KAAK,EAAS,QAAQ,CAAC,EAAO,CAAC,EAAI,0CAA0C,CAAM,EAAE,GAAM,CAAM,EAAE,EAAE,SAAS,CAAgB,EAAE,CAAC,GAAG,CAAC,GAAY,OAAO,YAAY,uBAAuB,YAAY,CAAC,GAAU,CAAc,GAAG,OAAO,QAAQ,WAAY,OAAO,MAAM,EAAe,CAAC,YAAY,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAS,CAAC,IAAI,EAAO,YAAY,qBAAqB,EAAS,CAAI,EAAE,OAAO,EAAO,KAAK,EAA2B,QAAQ,CAAC,EAAO,CAAgG,OAA/F,EAAI,kCAAkC,CAAM,EAAE,EAAI,2CAA2C,EAAS,EAAuB,CAA0B,EAAE,EAAE,EAAO,YAAO,EAAuB,CAA0B,EAAG,GAAG,EAAO,gBAAoB,GAAG,CAAC,IAAI,EAAQ,EAAO,gBAAmB,EAAK,CAAe,EAAE,OAAO,EAAQ,MAAM,EAAE,CAA8D,OAA7D,EAAI,sDAAsD,CAAC,EAAS,GAAoD,OAA7C,EAAiB,EAAE,MAAM,CAAkB,EAAQ,CAAC,EAAE,SAAS,EAAoB,CAAC,EAAU,CAAC,MAAM,EAAU,OAAO,EAAE,CAAC,IAAI,EAAS,EAAU,MAAM,EAAE,GAAG,OAAO,GAAU,WAAW,CAAC,EAAS,CAAM,EAAE,SAAS,IAAI,EAAK,EAAS,KAAK,GAAG,OAAO,IAAO,SAAU,GAAG,EAAS,MAAM,OAAW,EAAU,IAAI,CAAI,EAAE,EAAO,OAAU,IAAI,CAAI,EAAE,EAAS,GAAG,EAAQ,OAAK,EAAS,MAAM,OAAU,KAAK,EAAS,GAAG,GAAI,SAAS,EAAO,CAAC,EAAK,EAAI,EAAE,SAAS,EAAoB,CAAC,EAAG,EAAG,CAAC,OAAO,GAAQ,EAAG,CAAE,EAAE,IAAI,GAAoB,CAAC,EAAE,SAAS,EAAc,CAAC,EAAY,CAAC,MAAM,EAAY,OAAO,CAAC,IAAI,EAAI,EAAY,IAAI,EAAM,EAAI,EAAY,IAAI,EAAE,EAAI,CAAG,GAAG,SAAS,EAA0B,CAAC,EAAQ,CAAC,OAAO,KAAK,aAAgB,EAAQ,GAAS,EAAE,EAAE,IAAI,EAAqB,CAAC,EAAM,EAAgB,CAAC,EAAM,GAAiB,CAAC,EAAM,GAAO,GAAO,GAAO,GAAG,SAAS,EAAqB,CAAC,EAAK,CAAC,GAAe,IAAZ,OAAkB,MAAM,WAAW,EAAK,EAAK,QAAQ,iBAAiB,GAAG,EAAE,IAAI,EAAE,EAAK,WAAW,CAAC,EAAE,GAAG,GAAG,IAAQ,GAAG,GAAQ,MAAM,IAAI,EAAU,YAAO,EAAM,SAAS,EAAmB,CAAC,EAAK,EAAK,CAAkC,OAAjC,EAAK,GAAsB,CAAI,EAAa,SAAS,OAAO,mBAAmB,EAAK;AAAA;AAAA;AAAA,CAA+E,EAAE,CAAI,EAAE,SAAS,EAAW,CAAC,EAAc,EAAU,CAAC,IAAI,EAAW,GAAoB,EAAU,QAAQ,CAAC,EAAQ,CAAC,KAAK,KAAK,EAAU,KAAK,QAAQ,EAAQ,IAAI,EAAU,MAAM,CAAO,EAAE,MAAM,GAAG,IAAQ,OAAW,KAAK,MAAM,KAAK,SAAS,EAAE;AAAA,EAAK,EAAM,QAAQ,qBAAqB,EAAE,EAAG,EAA2O,OAAzO,EAAW,UAAU,OAAO,OAAO,EAAc,SAAS,EAAE,EAAW,UAAU,YAAY,EAAW,EAAW,UAAU,SAAS,QAAQ,EAAE,CAAC,GAAG,KAAK,UAAU,OAAW,OAAO,KAAK,KAAU,YAAO,KAAK,KAAK,KAAK,KAAK,SAAiB,EAAW,IAAI,GAAc,OAAU,SAAS,EAAkB,CAAC,EAAQ,CAAC,MAAM,IAAI,GAAc,CAAO,EAAE,SAAS,EAA6B,CAAC,EAAQ,EAAe,EAAkB,CAAC,EAAQ,QAAQ,QAAQ,CAAC,EAAK,CAAC,GAAiB,GAAM,EAAe,EAAE,SAAS,CAAU,CAAC,EAAe,CAAC,IAAI,EAAiB,EAAkB,CAAc,EAAE,GAAG,EAAiB,SAAS,EAAQ,OAAQ,GAAmB,iCAAiC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAQ,OAAO,EAAE,EAAG,EAAa,EAAQ,GAAG,EAAiB,EAAE,EAAG,IAAI,EAAmB,MAAM,EAAe,MAAM,EAAM,EAAkB,CAAC,EAAM,EAAW,EAAqY,GAAnY,EAAe,QAAQ,QAAQ,CAAC,EAAG,EAAE,CAAC,GAAG,EAAgB,eAAe,CAAE,EAAG,EAAe,GAAG,EAAgB,GAAQ,KAA4B,GAA3B,EAAkB,KAAK,CAAE,EAAK,CAAC,EAAqB,eAAe,CAAE,EAAG,EAAqB,GAAI,CAAC,EAAE,EAAqB,GAAI,KAAK,QAAQ,EAAE,CAAoD,GAAnD,EAAe,GAAG,EAAgB,GAAI,EAAE,EAAc,IAAa,EAAkB,OAAQ,EAAW,CAAc,EAAG,GAAG,EAAS,EAAkB,SAAtB,EAA8B,EAAW,CAAc,EAAG,SAAS,EAA8B,CAAC,EAAW,CAAC,IAAI,EAAI,GAAoB,GAAY,OAAO,GAAoB,GAAY,IAAuB,eAAnB,EAAwD,cAAlB,EAAqD,OAAjB,GAAtB,EAAkD,EAAW,EAAa,IAAI,QAAQ,CAAC,EAAM,CAAC,OAAO,EAAM,iBAAiB,EAAE,OAAO,EAAa,IAAI,QAAQ,CAAC,EAAM,CAAC,OAAO,EAAM,mBAAmB,CAAC,EAAE,GAA8B,CAAC,CAAU,EAAE,EAAW,QAAQ,CAAC,EAAW,CAAC,IAAI,EAAO,CAAC,EAA4hB,OAA1hB,EAAa,QAAQ,QAAQ,CAAC,EAAM,EAAE,CAAC,IAAI,EAAU,EAAM,UAAc,EAAiB,EAAW,GAAO,EAAO,EAAM,OAAW,EAAc,EAAM,cAAkB,EAAmB,EAAW,EAAE,EAAa,QAAY,EAAO,EAAM,OAAW,EAAc,EAAM,cAAc,EAAO,GAAW,CAAC,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAiB,aAAgB,EAAO,EAAc,CAAG,CAAC,GAAG,MAAM,QAAQ,CAAC,EAAI,GAAE,CAAC,IAAI,GAAY,CAAC,EAAE,EAAO,EAAc,EAAI,EAAmB,WAAc,GAAY,EAAC,CAAC,EAAE,GAAe,EAAW,EAAE,EAAE,EAAQ,CAAC,CAAC,KAAK,EAAI,KAAK,aAAe,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAG,CAAC,EAAE,QAAQ,KAAK,EAAQ,EAAG,GAAG,EAAO,GAAG,KAAK,CAAG,EAAqB,OAAnB,EAAc,CAAG,EAAS,GAAI,WAAa,QAAQ,CAAC,EAAY,EAAE,CAAC,QAAQ,KAAa,EAAQ,GAAG,EAAE,KAAa,GAAI,MAAU,UAAU,oBAAoB,EAAU,GAAG,EAAG,IAAI,EAAI,EAAe,EAAE,IAAI,KAAa,EAAQ,EAAO,GAAW,MAAM,EAAI,EAAE,EAAU,EAAE,GAAG,IAAc,KAAM,EAAY,KAAK,EAAc,CAAG,EAAE,OAAO,GAAK,eAAiB,EAAE,qBAAuB,GAA2B,mBAAmB,CAAa,CAAC,EAAE,EAAE,SAAS,EAAwB,CAAC,EAAc,EAAK,EAAK,EAAS,EAAS,EAAE,SAAS,EAAgB,CAAC,EAAK,CAAC,OAAO,OAAW,GAAE,MAAO,OAAO,GAAE,MAAO,OAAO,GAAE,MAAO,OAAO,GAAE,MAAO,WAAU,MAAU,UAAU,sBAAsB,CAAI,GAAG,SAAS,EAAqB,EAAE,CAAC,IAAI,EAAU,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAG,EAAM,GAAG,OAAO,aAAa,CAAC,EAAE,GAAiB,EAAM,IAAI,GAAiB,OAAU,SAAS,CAAgB,CAAC,EAAI,CAAC,IAAI,EAAI,GAAO,EAAE,EAAI,MAAM,EAAO,GAAI,GAAK,GAAiB,EAAO,MAAM,OAAO,EAAI,IAAI,GAAa,OAAU,SAAS,CAAiB,CAAC,EAAQ,CAAC,MAAM,IAAI,GAAa,CAAO,EAAE,SAAS,CAAY,CAAC,EAAQ,EAAmB,EAAQ,CAAqB,GAApB,EAAQ,GAAS,CAAC,EAAK,EAAE,mBAAmB,GAAqB,MAAU,UAAU,yDAAyD,EAAE,IAAI,EAAK,EAAmB,KAAK,GAAG,CAAC,EAAS,EAAkB,SAAS,EAAK,+CAA+C,EAAE,GAAG,EAAgB,eAAe,CAAO,EAAG,GAAG,EAAQ,6BAA8B,OAAY,OAAkB,yBAAyB,EAAK,SAAS,EAAgF,GAA7E,EAAgB,GAAS,EAAmB,OAAO,GAAiB,GAAY,EAAqB,eAAe,CAAO,EAAE,CAAC,IAAI,EAAU,EAAqB,GAAS,OAAO,EAAqB,GAAS,EAAU,QAAQ,QAAQ,CAAC,EAAG,CAAC,EAAG,EAAE,GAAG,SAAS,EAAsB,CAAC,EAAQ,EAAK,EAAK,EAAU,EAAW,CAAC,IAAI,EAAM,GAAiB,CAAI,EAAE,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAG,CAAC,MAAM,CAAC,CAAC,GAAI,WAAa,QAAQ,CAAC,EAAY,EAAE,CAAC,OAAO,EAAE,EAAU,GAAY,eAAiB,EAAE,qBAAuB,QAAQ,CAAC,EAAQ,CAAC,IAAI,EAAK,GAAG,IAAO,EAAG,EAAK,GAAW,QAAG,IAAO,EAAG,EAAK,EAAY,QAAG,IAAO,EAAG,EAAK,EAAY,WAAU,UAAU,8BAA8B,CAAI,EAAE,OAAO,KAAK,aAAgB,EAAK,GAAS,EAAM,GAAG,mBAAmB,IAAI,CAAC,EAAE,IAAI,GAAgB,CAAC,EAAM,EAAmB,CAAC,CAAC,EAAE,CAAC,MAAM,MAAS,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,EAAI,EAAE,CAAC,MAAM,EAAK,CAAC,EAAE,SAAS,EAAc,CAAC,EAAO,CAAC,GAAG,EAAO,GAAO,EAAE,EAAmB,GAAQ,WAAjC,EAA2C,EAAmB,GAAQ,OAAU,GAAgB,KAAK,CAAM,EAAG,SAAS,EAAmB,EAAE,CAAC,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAmB,OAAO,EAAE,EAAG,GAAG,EAAmB,KAAK,OAAW,EAAE,EAAO,OAAO,EAAM,SAAS,EAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAmB,OAAO,EAAE,EAAG,GAAG,EAAmB,KAAK,OAAW,OAAO,EAAmB,GAAI,OAAO,KAAK,SAAS,EAAU,EAAE,CAAC,EAAO,oBAAuB,GAAoB,EAAO,gBAAmB,GAAgB,SAAS,EAAgB,CAAC,EAAM,CAAC,OAAO,OAAY,QAAW,MAAO,QAAO,KAAM,MAAO,OAAO,GAAM,MAAO,OAAO,GAAO,MAAO,WAAU,CAAC,IAAI,EAAO,GAAgB,OAAO,GAAgB,IAAI,EAAE,EAAmB,OAA2D,OAApD,EAAmB,GAAQ,CAAC,SAAS,EAAE,MAAM,CAAK,EAAS,CAAM,GAAG,SAAS,EAAuB,CAAC,EAAQ,EAAK,CAAC,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAO,CAAC,IAAI,EAAG,EAAmB,GAAQ,MAA6B,OAAvB,GAAe,CAAM,EAAS,GAAI,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,OAAO,GAAiB,CAAK,GAAG,eAAiB,EAAE,qBAAuB,GAA2B,mBAAmB,IAAI,CAAC,EAAE,SAAS,EAAmB,CAAC,EAAM,EAAW,EAAU,CAAC,GAAe,EAAM,GAAY,gBAA9B,OAA4C,CAAC,IAAI,EAAS,EAAM,GAAY,EAAM,GAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAM,GAAY,cAAc,eAAe,UAAU,MAAM,EAAG,EAAkB,aAAa,EAAU,iDAAiD,UAAU,OAAO,uBAAuB,EAAM,GAAY,cAAc,IAAI,EAAE,OAAO,EAAM,GAAY,cAAc,UAAU,QAAQ,MAAM,KAAK,SAAS,GAAG,EAAM,GAAY,cAAc,CAAC,EAAE,EAAM,GAAY,cAAc,EAAS,UAAU,GAAU,SAAS,EAAkB,CAAC,EAAK,EAAM,EAAa,CAAC,GAAG,EAAO,eAAe,CAAI,EAAE,CAAC,GAAe,IAAZ,QAAsC,EAAO,GAAM,gBAAzB,QAAoD,EAAO,GAAM,cAAc,KAAvC,OAAsD,EAAkB,gCAAgC,EAAK,SAAS,EAAwC,GAAtC,GAAoB,EAAO,EAAK,CAAI,EAAK,EAAO,eAAe,CAAY,EAAG,EAAkB,uFAAuF,EAAa,IAAI,EAAE,EAAO,GAAM,cAAc,GAAc,EAA8B,QAAnB,EAAO,GAAM,EAAqB,IAAZ,OAA0B,EAAO,GAAM,aAAa,EAAe,SAAS,EAAwB,CAAC,EAAK,EAAM,EAAO,CAAC,OAAO,OAAY,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,IAAI,EAAK,EAAO,GAAM,EAAO,OAAO,KAAK,aAAgB,EAAK,EAAQ,OAAQ,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,IAAI,EAAK,EAAO,EAAO,EAAQ,OAAO,KAAK,aAAgB,EAAK,GAAS,EAAE,OAAQ,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,IAAI,EAAK,EAAO,EAAO,EAAQ,OAAO,KAAK,aAAgB,EAAK,GAAS,EAAE,WAAW,MAAU,UAAU,yBAAyB,CAAI,GAAG,SAAS,EAAsB,CAAC,EAAQ,EAAK,EAAK,EAAS,CAAC,IAAI,EAAM,GAAiB,CAAI,EAAE,EAAK,EAAiB,CAAI,EAAE,SAAS,CAAI,EAAE,EAAE,EAAK,OAAO,CAAC,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,YAAY,EAAK,aAAe,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,YAAY,OAAO,IAAI,WAAa,QAAQ,CAAC,EAAY,EAAE,CAAC,OAAO,EAAE,OAAO,eAAiB,EAAE,qBAAuB,GAAyB,EAAK,EAAM,CAAQ,EAAE,mBAAmB,IAAI,CAAC,EAAE,GAAmB,EAAK,CAAI,EAAE,SAAS,EAAW,CAAC,EAAK,CAAC,IAAI,EAAI,GAAe,CAAI,EAAM,EAAG,EAAiB,CAAG,EAAa,OAAX,EAAM,CAAG,EAAS,EAAG,SAAS,EAAqB,CAAC,EAAQ,EAAU,CAAC,IAAI,EAAK,EAAgB,GAAS,GAAe,IAAZ,OAAkB,EAAkB,EAAU,qBAAqB,GAAY,CAAO,CAAC,EAAE,OAAO,EAAK,SAAS,EAA4B,CAAC,EAAY,EAAK,EAAU,CAAC,IAAI,EAAS,GAAsB,EAAY,MAAM,EAAE,EAAK,EAAiB,CAAI,EAAE,IAAI,EAAK,EAAS,YAAgB,EAAM,OAAO,OAAO,EAAS,YAAY,UAAU,CAAC,MAAM,CAAC,MAAM,CAAS,EAAE,YAAY,CAAC,MAAM,GAAoB,EAAS,KAAK,IAAI,EAAK,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAK,OAAO,GAAW,EAAM,EAAK,GAAM,EAAM,SAAS,EAAY,CAAC,EAAE,CAAC,GAAG,IAAI,KAAM,MAAM,OAAO,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,UAAU,IAAI,SAAS,IAAI,WAAY,OAAO,EAAE,SAAS,EAAO,WAAM,GAAG,EAAG,SAAS,EAAyB,CAAC,EAAK,EAAM,CAAC,OAAO,OAAY,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,OAAO,KAAK,aAAgB,GAAQ,GAAS,EAAE,OAAQ,GAAE,OAAO,QAAQ,CAAC,EAAQ,CAAC,OAAO,KAAK,aAAgB,GAAQ,GAAS,EAAE,WAAW,MAAU,UAAU,uBAAuB,CAAI,GAAG,SAAS,EAAuB,CAAC,EAAQ,EAAK,EAAK,CAAC,IAAI,EAAM,GAAiB,CAAI,EAAE,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAM,CAAC,OAAO,GAAO,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,GAAG,OAAO,IAAQ,UAAU,OAAO,IAAQ,UAAW,MAAU,UAAU,mBAAmB,GAAa,CAAK,EAAE,QAAQ,KAAK,IAAI,EAAE,OAAO,GAAO,eAAiB,EAAE,qBAAuB,GAA0B,EAAK,CAAK,EAAE,mBAAmB,IAAI,CAAC,EAAE,SAAS,EAAI,CAAC,EAAY,EAAa,CAAC,GAAG,EAAE,aAAuB,UAAW,MAAU,UAAU,qCAAqC,OAAO,EAAY,0BAA0B,EAAE,IAAI,EAAM,GAAoB,EAAY,MAAM,sBAAsB,QAAQ,EAAE,EAAE,EAAE,EAAM,UAAU,EAAY,UAAU,IAAI,EAAI,IAAI,EAAU,EAAE,EAAY,MAAM,EAAI,CAAY,EAAE,OAAO,aAAa,OAAO,EAAE,EAAI,SAAS,EAAoB,CAAC,EAAU,EAAS,EAAU,EAAe,EAAc,CAAC,IAAI,EAAS,EAAS,OAAO,GAAG,EAAS,EAAG,EAAkB,gFAAgF,EAAE,IAAI,EAAkB,EAAS,KAAK,MAAM,IAAY,KAAS,EAAqB,GAAM,QAAQ,EAAE,EAAE,EAAE,EAAS,OAAO,EAAE,EAAG,GAAG,EAAS,KAAK,MAAM,EAAS,GAAG,qBAAqB,OAAU,CAAC,EAAqB,GAAK,MAAO,IAAI,EAAQ,EAAS,GAAG,OAAO,OAAW,EAAS,GAAO,EAAc,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAS,EAAE,EAAE,EAAG,IAAW,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,IAAgB,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,QAAQ,IAAI,EAAc,mBAAmB,GAAsB,CAAS,EAAE,IAAI,EAAS;AAAA,4BAAqC,EAAS,GAAG;AAAA,8BAAuC,EAAU,8DAA8D,EAAS,GAAG;AAAA;AAAA,EAAoB,GAAG,EAAsB,GAAe;AAAA,EAA0B,IAAI,EAAU,EAAqB,cAAc,OAAW,EAAM,CAAC,oBAAoB,UAAU,KAAK,iBAAiB,UAAU,YAAY,EAAM,EAAM,CAAC,EAAkB,EAAe,EAAc,GAAe,EAAS,GAAG,EAAS,EAAE,EAAE,GAAG,EAAmB,GAAe,yCAAyC,EAAU;AAAA,EAAa,QAAQ,EAAE,EAAE,EAAE,EAAS,EAAE,EAAE,EAAG,GAAe,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAU,QAAQ,EAAE,SAAS,EAAS,EAAE,GAAG,KAAK;AAAA,EAAK,EAAM,KAAK,UAAU,CAAC,EAAE,EAAM,KAAK,EAAS,EAAE,EAAE,EAAE,GAAG,EAAmB,EAAc,aAAa,EAAc,OAAO,EAAE,KAAK,IAAI,EAAyH,GAA3G,IAAgB,EAAQ,YAAY,IAAI,cAAc,EAAc,OAAO,EAAE,KAAK,IAAI,EAAc;AAAA,EAAU,EAAsB,GAAe;AAAA,EAAsC,aAAQ,EAAE,EAAkB,EAAE,EAAE,EAAE,EAAS,OAAO,EAAE,EAAE,CAAC,IAAI,EAAU,IAAI,EAAE,YAAY,OAAO,EAAE,GAAG,QAAQ,GAAG,EAAS,GAAG,qBAAqB,KAAM,GAAe,EAAU,SAAS,EAAU,SAAS,EAAS,GAAG,KAAK;AAAA,EAAK,EAAM,KAAK,EAAU,OAAO,EAAE,EAAM,KAAK,EAAS,GAAG,kBAAkB,EAAI,GAAG,EAAS,GAAe;AAAA;AAAA,EAA8D,GAAe;AAAA,EAAM,EAAM,KAAK,CAAa,EAAE,IAAI,EAAgB,GAAK,SAAS,CAAK,EAAE,MAAM,KAAK,CAAK,EAAE,OAAO,EAAgB,SAAS,EAAmB,CAAC,EAAM,EAAa,CAAC,IAAI,EAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAM,IAAK,EAAM,KAAK,EAAQ,IAAc,GAAG,EAAE,EAAE,OAAO,EAAM,SAAS,EAAmB,CAAC,EAAK,EAAM,EAAa,CAAC,GAAG,CAAC,EAAO,eAAe,CAAI,EAAG,GAAmB,qCAAqC,EAAE,GAAe,EAAO,GAAM,gBAAzB,QAAoD,IAAZ,OAA0B,EAAO,GAAM,cAAc,GAAc,EAAW,OAAO,GAAM,EAAM,EAAO,GAAM,SAAS,EAAc,SAAS,EAAa,CAAC,EAAI,EAAI,EAAK,CAAC,IAAI,EAAE,EAAO,WAAW,GAAK,OAAO,GAAM,EAAK,OAAO,EAAE,MAAM,KAAK,CAAC,CAAG,EAAE,OAAO,CAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAG,EAAE,SAAS,EAAO,CAAC,EAAI,EAAI,EAAK,CAAC,GAAG,EAAI,SAAS,GAAG,EAAG,OAAO,GAAc,EAAI,EAAI,CAAI,EAAE,OAAO,EAAU,IAAI,CAAG,EAAE,MAAM,KAAK,CAAI,EAAE,SAAS,EAAY,CAAC,EAAI,EAAI,CAAC,IAAI,EAAS,CAAC,EAAE,OAAO,QAAQ,EAAE,CAAC,EAAS,OAAO,UAAU,OAAO,QAAQ,EAAE,EAAE,EAAE,UAAU,OAAO,IAAK,EAAS,GAAG,UAAU,GAAG,OAAO,GAAQ,EAAI,EAAI,CAAQ,GAAG,SAAS,CAAuB,CAAC,EAAU,EAAY,CAAC,EAAU,EAAiB,CAAS,EAAE,SAAS,CAAa,EAAE,CAAC,GAAG,EAAU,SAAS,GAAG,EAAG,OAAO,GAAa,EAAU,CAAW,EAAE,OAAO,EAAU,IAAI,CAAW,EAAE,IAAI,EAAG,EAAc,EAAE,GAAG,OAAO,IAAK,WAAY,EAAkB,2CAA2C,EAAU,KAAK,CAAW,EAAE,OAAO,EAAG,IAAI,GAAiB,OAAU,SAAS,EAAqB,CAAC,EAAQ,EAAM,CAAC,IAAI,EAAa,CAAC,EAAM,EAAK,CAAC,EAAE,SAAS,CAAK,CAAC,EAAK,CAAC,GAAG,EAAK,GAAO,OAAO,GAAG,EAAgB,GAAO,OAAO,GAAG,GAAiB,GAAM,CAAC,GAAiB,GAAM,QAAQ,CAAK,EAAE,OAAO,EAAa,KAAK,CAAI,EAAE,EAAK,GAAM,GAA0B,MAArB,EAAM,QAAQ,CAAK,EAAQ,IAAI,GAAiB,EAAQ,KAAK,EAAa,IAAI,EAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAA0B,CAAC,EAAK,EAAS,EAAgB,EAAU,EAAW,EAAG,CAAC,IAAI,EAAS,GAAoB,EAAS,CAAe,EAAE,EAAK,EAAiB,CAAI,EAAE,EAAW,EAAwB,EAAU,CAAU,EAAE,GAAmB,EAAK,QAAQ,EAAE,CAAC,GAAsB,eAAe,EAAK,wBAAwB,CAAQ,GAAG,EAAS,CAAC,EAAE,GAA8B,CAAC,EAAE,EAAS,QAAQ,CAAC,EAAS,CAAC,IAAI,EAAiB,CAAC,EAAS,GAAG,IAAI,EAAE,OAAO,EAAS,MAAM,CAAC,CAAC,EAAsG,OAApG,GAAoB,EAAK,GAAqB,EAAK,EAAiB,KAAK,EAAW,CAAE,EAAE,EAAS,CAAC,EAAQ,CAAC,EAAE,EAAE,SAAS,EAA2B,CAAC,EAAK,EAAM,EAAO,CAAC,OAAO,OAAY,GAAE,OAAO,EAAO,QAA0B,CAAC,EAAQ,CAAC,OAAO,GAAM,IAAU,QAA0B,CAAC,EAAQ,CAAC,OAAO,EAAO,QAAe,GAAE,OAAO,EAAO,QAA2B,CAAC,EAAQ,CAAC,OAAO,EAAO,GAAS,IAAI,QAA2B,CAAC,EAAQ,CAAC,OAAO,EAAQ,GAAS,QAAS,GAAE,OAAO,EAAO,QAA2B,CAAC,EAAQ,CAAC,OAAO,EAAO,GAAS,IAAI,QAA2B,CAAC,EAAQ,CAAC,OAAO,EAAQ,GAAS,YAAY,MAAU,UAAU,yBAAyB,CAAI,GAAG,SAAS,EAAyB,CAAC,EAAc,EAAK,EAAK,EAAS,EAAS,CAA6B,GAA5B,EAAK,EAAiB,CAAI,EAAK,IAAW,GAAI,EAAS,WAAW,IAAI,EAAM,GAAiB,CAAI,EAAM,EAAa,QAAQ,CAAC,EAAM,CAAC,OAAO,GAAO,GAAG,IAAW,EAAE,CAAC,IAAI,EAAS,GAAG,EAAE,EAAK,EAAa,QAAQ,CAAC,EAAM,CAAC,OAAO,GAAO,IAAW,GAAU,IAAI,EAAe,EAAK,SAAS,UAAU,EAAE,EAAa,EAAc,CAAC,KAAK,EAAK,aAAe,EAAa,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,GAAG,OAAO,IAAQ,UAAU,OAAO,IAAQ,UAAW,MAAU,UAAU,mBAAmB,GAAa,CAAK,EAAE,QAAQ,KAAK,IAAI,EAAE,GAAG,EAAM,GAAU,EAAM,EAAU,MAAU,UAAU,qBAAqB,GAAa,CAAK,EAAE,wDAAwD,EAAK,wCAAwC,EAAS,KAAK,EAAS,IAAI,EAAE,OAAO,EAAe,IAAQ,EAAE,EAAM,GAAG,eAAiB,EAAE,qBAAuB,GAA4B,EAAK,EAAM,IAAW,CAAC,EAAE,mBAAmB,IAAI,CAAC,EAAE,SAAS,EAA6B,CAAC,EAAQ,EAAc,EAAK,CAAC,IAAI,EAAY,CAAC,UAAU,WAAW,WAAW,YAAY,WAAW,YAAY,aAAa,YAAY,EAAM,EAAG,EAAY,GAAe,SAAS,CAAgB,CAAC,EAAO,CAAC,EAAO,GAAQ,EAAE,IAAI,EAAK,EAAY,EAAK,EAAK,GAAY,EAAK,EAAK,EAAO,GAAG,OAAO,IAAI,EAAG,GAAO,EAAK,CAAI,EAAE,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,EAAiB,eAAiB,EAAE,qBAAuB,CAAgB,EAAE,CAAC,6BAA6B,EAAI,CAAC,EAAE,SAAS,EAA4B,CAAC,EAAQ,EAAK,CAAC,EAAK,EAAiB,CAAI,EAAE,IAAI,EAAgB,IAAO,cAAc,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAM,CAAC,IAAI,EAAO,EAAQ,GAAO,GAAO,EAAI,GAAG,EAAgB,CAAC,IAAI,EAAe,EAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAO,EAAE,EAAE,CAAC,IAAI,EAAe,EAAM,EAAE,EAAE,GAAG,GAAG,GAAQ,EAAO,IAAiB,EAAE,CAAC,IAAI,EAAQ,EAAe,EAAmB,EAAc,GAAa,EAAe,CAAO,EAAE,GAAG,IAAM,OAAW,EAAI,EAAmB,QAAK,OAAO,aAAa,CAAC,EAAE,GAAK,EAAc,EAAe,EAAe,IAAQ,KAAC,IAAI,EAAM,MAAM,CAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAO,EAAE,EAAG,EAAE,GAAG,OAAO,aAAa,EAAO,EAAM,EAAE,EAAE,EAAE,EAAI,EAAE,KAAK,EAAE,EAAe,OAAb,EAAM,CAAK,EAAS,GAAK,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,GAAG,aAAiB,YAAa,EAAM,IAAI,WAAW,CAAK,EAAE,IAAI,EAAc,EAAoB,OAAO,IAAQ,SAAS,GAAG,EAAE,GAAqB,aAAiB,YAAY,aAAiB,mBAAmB,aAAiB,WAAY,EAAkB,uCAAuC,EAAE,GAAG,GAAiB,EAAqB,EAAU,QAAQ,EAAE,CAAC,OAAO,GAAgB,CAAK,GAAQ,OAAU,QAAQ,EAAE,CAAC,OAAO,EAAM,QAAQ,IAAI,EAAO,EAAU,EAAM,EAAI,GAAQ,EAAE,EAAO,CAAC,EAAyB,GAAvB,EAAQ,GAAK,GAAG,EAAU,GAAiB,EAAqB,GAAa,EAAM,EAAI,EAAE,EAAO,CAAC,EAAO,QAAG,EAAqB,QAAQ,EAAE,EAAE,EAAE,EAAO,EAAE,EAAE,CAAC,IAAI,EAAS,EAAM,WAAW,CAAC,EAAE,GAAG,EAAS,IAAK,EAAM,CAAG,EAAE,EAAkB,wDAAwD,EAAE,EAAO,EAAI,EAAE,GAAG,EAAe,aAAQ,EAAE,EAAE,EAAE,EAAO,EAAE,EAAG,EAAO,EAAI,EAAE,GAAG,EAAM,GAAK,GAAG,IAAc,KAAM,EAAY,KAAK,EAAM,CAAG,EAAE,OAAO,GAAK,eAAiB,EAAE,qBAAuB,GAA2B,mBAAmB,QAAQ,CAAC,EAAI,CAAC,EAAM,CAAG,EAAE,CAAC,EAAE,SAAS,EAA6B,CAAC,EAAQ,EAAS,EAAK,CAAC,EAAK,EAAiB,CAAI,EAAE,IAAI,EAAa,EAAa,EAAQ,EAAe,EAAM,GAAG,IAAW,EAAG,EAAa,GAAc,EAAa,GAAc,EAAe,GAAiB,EAAQ,QAAQ,EAAE,CAAC,OAAO,GAAS,EAAM,EAAO,QAAG,IAAW,EAAG,EAAa,GAAc,EAAa,GAAc,EAAe,GAAiB,EAAQ,QAAQ,EAAE,CAAC,OAAO,GAAS,EAAM,EAAE,EAAa,EAAQ,CAAC,KAAK,EAAK,aAAe,QAAQ,CAAC,EAAM,CAAC,IAAI,EAAO,EAAQ,GAAO,GAAO,EAAK,EAAQ,EAAM,EAAQ,EAAe,EAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAO,EAAE,EAAE,CAAC,IAAI,EAAe,EAAM,EAAE,EAAE,EAAS,GAAG,GAAG,GAAQ,EAAK,GAAgB,IAAQ,EAAE,CAAC,IAAI,EAAa,EAAe,EAAmB,EAAc,EAAa,EAAe,CAAY,EAAE,GAAG,IAAM,OAAW,EAAI,EAAmB,QAAK,OAAO,aAAa,CAAC,EAAE,GAAK,EAAc,EAAe,EAAe,GAAuB,OAAb,EAAM,CAAK,EAAS,GAAK,WAAa,QAAQ,CAAC,EAAY,EAAM,CAAC,GAAK,OAAO,IAAQ,SAAW,EAAkB,6CAA6C,CAAI,EAAE,IAAI,EAAO,EAAe,CAAK,EAAM,EAAI,GAAQ,EAAE,EAAO,CAAQ,EAA0E,GAAxE,EAAQ,GAAK,GAAG,GAAQ,EAAM,EAAa,EAAM,EAAI,EAAE,EAAO,CAAQ,EAAK,IAAc,KAAM,EAAY,KAAK,EAAM,CAAG,EAAE,OAAO,GAAK,eAAiB,EAAE,qBAAuB,GAA2B,mBAAmB,QAAQ,CAAC,EAAI,CAAC,EAAM,CAAG,EAAE,CAAC,EAAE,SAAS,EAA8B,CAAC,EAAQ,EAAK,EAAqB,EAAe,EAAoB,EAAc,CAAC,GAAoB,GAAS,CAAC,KAAK,EAAiB,CAAI,EAAE,eAAe,EAAwB,EAAqB,CAAc,EAAE,cAAc,EAAwB,EAAoB,CAAa,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,EAAoC,CAAC,EAAW,EAAU,EAAiB,EAAgB,EAAO,EAAc,EAAmB,EAAgB,EAAO,EAAc,CAAC,GAAoB,GAAY,OAAO,KAAK,CAAC,UAAU,EAAiB,CAAS,EAAE,iBAAiB,EAAiB,OAAO,EAAwB,EAAgB,CAAM,EAAE,cAAc,EAAc,mBAAmB,EAAmB,OAAO,EAAwB,EAAgB,CAAM,EAAE,cAAc,CAAa,CAAC,EAAE,SAAS,EAAsB,CAAC,EAAQ,EAAK,CAAC,EAAK,EAAiB,CAAI,EAAE,EAAa,EAAQ,CAAC,OAAO,GAAK,KAAK,EAAK,eAAiB,EAAE,aAAe,QAAQ,EAAE,CAAC,QAAkB,WAAa,QAAQ,CAAC,EAAY,EAAE,CAAC,OAAiB,CAAC,EAAE,IAAI,GAAc,CAAC,EAAE,SAAS,EAAiB,CAAC,EAAQ,CAAC,IAAI,EAAO,GAAc,GAAS,GAAG,IAAS,OAAW,OAAO,EAAiB,CAAO,EAAO,YAAO,EAAQ,SAAS,EAAgB,EAAE,CAAC,GAAG,OAAO,aAAa,SAAU,OAAO,WAAW,OAAO,QAAQ,EAAE,CAAC,OAAO,UAAU,EAAE,aAAa,EAAE,EAAE,SAAS,EAAkB,CAAC,EAAK,CAAC,GAAG,IAAO,EAAG,OAAO,GAAiB,GAAiB,CAAC,EAAoC,YAA7B,EAAK,GAAkB,CAAI,EAAS,GAAiB,GAAiB,EAAE,EAAK,EAAG,SAAS,EAAc,CAAC,EAAO,CAAC,GAAG,EAAO,EAAG,EAAmB,GAAQ,UAAU,EAAG,SAAS,EAAmB,CAAC,EAAS,CAAC,IAAI,EAAS,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAS,EAAE,EAAG,IAAW,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,IAAI,EAAa,mCAAmC,EAAS;AAAA,EAAoC,QAAQ,EAAE,EAAE,EAAE,EAAS,EAAE,EAAG,GAAc,cAAc,EAAE,gEAAgE,EAAE,iBAAiB,EAAE;AAAA,SAAkB,EAAE,aAAa,EAAE;AAAA,iBAAmD,EAAE;AAAA,EAA2H,OAAnG,GAAc,6BAA6B,EAAS;AAAA;AAAA;AAAA,EAA0D,SAAS,wBAAwB,SAAS,mBAAmB,CAAY,EAAE,GAAsB,EAAO,EAAgB,EAAE,IAAI,GAAa,CAAC,EAAE,SAAS,EAAa,CAAC,EAAO,CAAC,GAAG,CAAC,EAAQ,EAAkB,oCAAoC,CAAM,EAAE,OAAO,EAAmB,GAAQ,MAAM,SAAS,EAAW,CAAC,EAAO,EAAS,EAAS,EAAK,CAAC,EAAO,GAAc,CAAM,EAAE,IAAI,EAAM,GAAa,GAAU,GAAG,CAAC,EAAO,EAAM,GAAoB,CAAQ,EAAE,GAAa,GAAU,EAAM,OAAO,EAAM,EAAO,EAAS,CAAI,EAAE,SAAS,EAAM,EAAE,CAAC,GAAM,EAAE,SAAS,EAAsB,CAAC,EAAK,EAAI,EAAI,CAAC,EAAO,WAAW,EAAK,EAAI,EAAI,CAAG,EAAE,SAAS,EAAyB,CAAC,EAAK,CAAC,GAAG,CAAkG,OAAjG,EAAW,KAAK,EAAK,GAAO,WAAW,QAAQ,EAAE,EAAE,GAA2B,EAAW,MAAM,EAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAuB,CAAC,EAAc,CAAC,IAAI,EAAQ,EAAO,OAAO,EAAc,IAAgB,EAAE,IAAI,EAAY,WAAW,GAAG,EAAc,EAAa,MAAO,GAAM,QAAQ,EAAQ,EAAE,GAAS,EAAE,GAAS,EAAE,CAAC,IAAI,EAAkB,GAAS,EAAE,IAAG,GAAS,EAAkB,KAAK,IAAI,EAAkB,EAAc,SAAS,EAAE,IAAI,EAAQ,KAAK,IAAI,EAAY,GAAQ,KAAK,IAAI,EAAc,CAAiB,EAAE,KAAK,CAAC,EAAM,EAAY,GAA0B,CAAO,EAAE,GAAG,EAAa,MAAO,GAAM,MAAO,GAAM,GAAc,EAAO,cAAiB,GAAY,MAAM,eAAe,EAAE,GAAsB,EAAE,GAAa,EAAO,aAAgB,GAAY,MAAM,cAAc,EAAE,GAAW,EAAE,GAAiB,EAAO,iBAAoB,GAAY,MAAM,kBAAkB,EAAE,IAAI,GAAc,CAAC,EAAI,GAAqB,EAAI,GAA+B,EAAI,GAAyB,EAAI,GAAuB,EAAI,GAAwB,EAAI,GAAuB,EAAI,GAA6B,EAAI,GAAwB,EAAI,GAA2B,EAAI,GAA0B,EAAI,GAA8B,EAAI,GAA6B,EAAI,GAA8B,EAAI,GAA+B,EAAI,GAAqC,EAAI,GAAuB,EAAI,GAAe,EAAI,GAAmB,EAAI,GAAe,EAAI,GAAY,EAAI,GAAO,EAAI,GAAuB,EAAI,EAAuB,EAAM,GAAI,GAAW,EAAM,GAAmB,EAAO,mBAAsB,QAAQ,EAAE,CAAC,OAAO,GAAmB,EAAO,mBAAsB,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,GAAQ,EAAO,QAAW,QAAQ,EAAE,CAAC,OAAO,GAAQ,EAAO,QAAW,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,EAAM,EAAO,MAAS,QAAQ,EAAE,CAAC,OAAO,EAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,GAAe,EAAO,eAAkB,QAAQ,EAAE,CAAC,OAAO,GAAe,EAAO,eAAkB,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,GAA4C,EAAO,4CAA+C,QAAQ,EAAE,CAAC,OAAO,GAA4C,EAAO,4CAA+C,EAAO,IAAO,GAAM,MAAM,KAAK,SAAS,GAAO,GAAU,EAAsB,SAAS,CAAS,EAAE,CAAC,GAAG,CAAC,GAAU,GAAI,EAAE,GAAG,CAAC,GAAU,EAAsB,GAAW,SAAS,EAAG,CAAC,EAAK,CAAuB,GAAtB,EAAK,GAAM,EAAc,EAAgB,EAAG,OAAgB,GAAT,GAAO,EAAK,EAAgB,EAAG,OAAO,SAAS,CAAK,EAAE,CAAC,GAAG,GAAU,OAA+C,GAAxC,GAAU,GAAK,EAAO,UAAa,GAAQ,GAAM,OAAiD,GAA1C,GAAY,EAAE,EAAoB,CAAM,EAAK,EAAO,qBAAwB,EAAO,qBAAwB,EAAE,GAAQ,EAAE,GAAG,EAAO,UAAc,EAAO,UAAa,YAAY,EAAE,WAAW,QAAQ,EAAE,CAAC,WAAW,QAAQ,EAAE,CAAC,EAAO,UAAa,EAAE,GAAG,CAAC,EAAE,EAAM,GAAG,CAAC,EAAO,OAAM,EAAqB,GAAlB,EAAO,IAAO,GAAO,EAAO,QAAW,CAAC,GAAG,OAAO,EAAO,SAAY,WAAW,EAAO,QAAW,CAAC,EAAO,OAAU,EAAE,MAAM,EAAO,QAAW,OAAO,EAAG,EAAO,QAAW,IAAI,EAAE,EAG7kqC,OAHglqC,GAAI,EAG7kqC,EAAO,QAGb,EACY,MCCf,IAAI,EAAkC,KAClC,EAAmD,KAEvD,eAAe,EAAc,EAAwB,CACnD,GAAI,EACF,OAAO,EAGT,GAAI,EACF,OAAO,EA0HT,OAvHA,GAAwB,SAAiC,CACvD,GAAI,CAMF,GAAI,OAAO,KAAS,IACjB,OAAwC,KAAO,OAIlD,GAAI,OAAO,KAAS,KAAe,CAAC,KAAK,SACtC,KAAyC,SAAW,CACnD,KAAkB,wEACpB,EAIF,GACE,OAAO,kBAAsB,KAC7B,OAAO,OAAW,IAGhB,WACA,kBAAoB,YAIxB,IAAM,EAAuB,MAC3B,EAIA,IACwB,CACxB,GAAI,CAEF,IAAM,EAAa,MAAM,GAAe,CAAQ,EAChD,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IACN,kCAAkC,OAAc,EAAW,WAAa,MAAM,QAAQ,CAAC,MACzF,EAEF,OAAO,EAAc,CAAE,aAAc,GAAM,WAAY,CAAW,CAAC,EACnE,MAAO,EAAO,CAEd,GAAI,OAAO,QAAY,KAAe,QAAQ,KAC5C,QAAQ,KACN,yFACA,CACF,EAEF,OAAO,EAAc,CAAE,aAAc,EAAK,CAAC,IAO/C,GAFsB,MAAM,GAAW,EAEpB,CACjB,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,oDAAoD,EAElE,GAAI,CAGF,IAAM,EAAoB,KACL,+BAYrB,GAVA,EAAe,MAAM,EACnB,EAAkB,QAIC,IAAI,IACrB,kCACY,wEACd,EAAE,IACJ,EACI,EACF,OAAO,EAET,MAAO,EAAW,CAClB,GAAI,OAAO,QAAY,KAAe,QAAQ,KAC5C,QAAQ,KACN,gEACA,CACF,GAkBN,GAXA,EAAe,MAAM,EACnB,GAImB,IAAI,IACrB,6BACY,wEACd,EAAE,IACJ,EAEI,CAAC,EACH,MAAU,MAAM,4BAA4B,EAG9C,OAAO,EACP,MAAO,EAAO,CAEd,MADA,EAAuB,KACb,MACR,+BAA+B,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,GACtF,KAED,EAEI,EAOT,SAAS,EAAmB,CAAC,EAA6C,CAExE,MAAO,CACL,QAAS,GAAS,SAAW,GAC7B,YAAa,EACb,YAAa,EACb,OAAQ,GAAS,QAAU,EAC3B,aAAc,GAAS,cAAgB,GACvC,gBAAiB,GAAS,iBAAmB,GAC7C,iBAAkB,GAAS,kBAAoB,EAC/C,YAAa,GAAS,aAAe,EACrC,WAAY,GAAS,YAAc,EACnC,SAAU,GAAS,UAAY,EAC/B,KAAM,GAAS,MAAQ,EACvB,gBAAiB,EACjB,cAAe,GAAS,eAAiB,EACzC,WAAY,GAAS,YAAc,EACnC,gBAAiB,EACjB,kBAAmB,GAAS,mBAAqB,EACjD,gBAAiB,GAAS,iBAAmB,EAC7C,cAAe,GAAS,eAAiB,GAAS,SAAW,GAC7D,SAAU,GAAS,SAAW,EAAI,EAClC,MAAO,GAAS,OAAS,EACzB,WAAY,GAAS,YAAc,EACnC,kBAAmB,EACnB,aAAc,EACd,WAAY,EACZ,cAAe,GAAS,eAAiB,GAAS,SAAW,GAC7D,kBAAmB,EACnB,cAAe,GAAS,eAAiB,CAC3C,EAMF,eAAsB,EAAgB,CACpC,EACA,EACA,EACqB,CAMrB,GAJA,GAAmB,CAAK,EACxB,GAAoB,CAAO,EAGvB,GAAQ,QACV,MAAM,IAAI,aAAa,UAAW,YAAY,EAIhD,IAAoB,MAAd,EACe,OAAf,EACa,KAAb,GADS,EAGf,GAAI,EAAE,aAAgB,aAAe,EAAE,aAAgB,mBACrD,MAAU,MAAM,oDAAoD,EAGtE,IAAM,EAAK,YAAY,IAAI,EACrB,EAAS,MAAM,GAAe,EAC9B,EAAK,YAAY,IAAI,EAE3B,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,+BAA+B,EAAK,GAAI,QAAQ,CAAC,KAAK,EAClE,QAAQ,IACN,uBAAuB,GAAgB,WAAY,EAAe,QAAU,WAC9E,EAIF,GAAI,GAAQ,QACV,MAAM,IAAI,aAAa,UAAW,YAAY,EAGhD,IAAM,EAAgB,GAAoB,CAAO,EAI3C,EACJ,aAAgB,kBACZ,IAAI,WAAW,EAAK,OAAuB,EAAK,WAAY,EAAK,MAAM,EACvE,IAAI,WACF,EAAK,OACL,EAAK,WACL,EAAK,MACP,EAEN,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,yBAA0B,CAAa,EAGrD,IAAM,EAAK,YAAY,IAAI,EACrB,EAAS,EAAO,OAAO,EAAW,EAAO,EAAQ,CAAa,EAC9D,GAAK,YAAY,IAAI,EAE3B,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,gCAAgC,GAAK,GAAI,QAAQ,CAAC,KAAK,EAGrE,GAAI,GAAQ,QACV,MAAM,IAAI,aAAa,UAAW,YAAY,EAGhD,GAAI,CAAC,EACH,MAAU,MAAM,sBAAsB,EAGxC,OAAO,EAOT,GAAI,OAAO,KAAS,IAClB,KAAK,UAAY,MAAO,IAAwB,CAC9C,IAAM,EAAO,EAAM,KAGnB,GAAI,GAAM,OAAS,cAAe,CAChC,KAAK,YAAY,CAAE,KAAM,cAAe,CAAC,EACzC,OAGF,IAAM,EAAU,EAKV,EAAuC,CAC3C,GAAI,EAAQ,GACZ,GAAI,EACN,EAEA,GAAI,CACF,GAAI,EAAQ,OAAS,cAAe,CAClC,IAAQ,QAAO,WAAY,EAAQ,QAE7B,EAAK,YAAY,IAAI,EACrB,EAAa,IAAI,gBACjB,EAAS,MAAM,GACnB,EACA,EACA,EAAW,MACb,EACM,EAAK,YAAY,IAAI,EAE3B,GAAI,OAAO,QAAY,KAAe,QAAQ,IAC5C,QAAQ,IAAI,8BAA8B,EAAK,GAAI,QAAQ,CAAC,KAAK,EAGnE,EAAS,GAAK,GACd,EAAS,KAAO,EAIhB,KAAK,YAAY,CAAQ,EAEzB,OAAS,MAAQ,yBAAyB,EAAQ,OAClD,KAAK,YAAY,CAAQ,EAE3B,MAAO,EAAO,CACd,EAAS,MAAQ,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACtE,KAAK,YAAY,CAAQ",
|
|
12
|
+
"debugId": "45438A42C74F196364756E2164756E21",
|
|
12
13
|
"names": []
|
|
13
14
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var g=Object.create;var{getPrototypeOf:h,defineProperty:f,getOwnPropertyNames:i}=Object;var j=Object.prototype.hasOwnProperty;var k=(a,c,b)=>{b=a!=null?g(h(a)):{};let d=c||!a||!a.__esModule?f(b,"default",{value:a,enumerable:!0}):b;for(let e of i(a))if(!j.call(d,e))f(d,e,{get:()=>a[e],enumerable:!0});return d};var l=((a)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(c,b)=>(typeof require<"u"?require:c)[b]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});
|
|
2
|
-
export{k as
|
|
2
|
+
export{k as c,l as d};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=B199D22A6B72ED5764756E2164756E21
|
package/dist/index.browser.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{b as
|
|
1
|
+
import{b as q}from"./chunk-szbj3b6y.js";import{c as j,d as N}from"./chunk-zzfbcc7e.js";function v(){return typeof Bun<"u"}var b=0;async function T(G,Q,J,X,Y){return new Promise((Z,$)=>{let _=++b;if(X?.aborted){$(new DOMException("Aborted","AbortError"));return}let H=(S)=>{let O=S.data;if(O.id!==_)return;if(K(),O.ok&&O.data!==void 0)Z(O.data);else $(Error(O.error||"Unknown worker error"))},V=(S)=>{K(),$(Error(`Worker error: ${S.message}`))},A=()=>{K(),$(new DOMException("Aborted","AbortError"))},K=()=>{G.removeEventListener("message",H),G.removeEventListener("error",V),X?.removeEventListener("abort",A)};G.addEventListener("message",H),G.addEventListener("error",V),X?.addEventListener("abort",A);let I={type:Q,id:_,payload:J};if(Y&&Y.length>0)G.postMessage(I,Y);else G.postMessage(I)})}var L,x=null;async function W(){if(L!==void 0)return L;if(x)return x;return x=(async()=>{if(typeof window>"u"||typeof document>"u")return L=null;let G=document.querySelector('meta[name="squoosh-base"]');if(G?.content)return L=G.content;try{let J=await fetch(window.location.href).then((Y)=>Y.text()),X=[{regex:/["']([^"']*assets[^"']*resize\.worker\.browser[^"']*\.js)["']/,package:"resize"},{regex:/["']([^"']*assets[^"']*webp\.worker\.browser[^"']*\.js)["']/,package:"webp"}];for(let{regex:Y,package:Z}of X){let $=J.match(Y);if($?.[1]){let _=$[1];return h(Z,`${Z}.worker.browser.mjs`,_),L=_.substring(0,_.lastIndexOf("/")+1)}}}catch{}try{let X=import.meta.url.match(/^(.*\/node_modules\/@squoosh-kit\/runtime\/)/);if(X)return L=X[1].replace("runtime/","")}catch{}let Q=["/node_modules/@squoosh-kit/","/@squoosh-kit/",window.location.origin+"/node_modules/@squoosh-kit/"];for(let J of Q)try{let X=`${J}resize/dist/resize.worker.browser.mjs`;return await fetch(X,{method:"HEAD",mode:"no-cors"}),L=J}catch{}return L=null})(),x}var E={};function u(G,Q,J){let X=`${Q}:${J}`;if(E[X])return E[X];return`${G.replace(/\/$/,"")+"/"}@squoosh-kit/${Q}/dist/${J}`}function h(G,Q,J){let X=`${G}:${Q}`;E[X]=J}function p(G,Q){if(Q)try{return new Worker(Q,{type:"module"})}catch(Z){let $=Z instanceof Error?Z.message:String(Z);throw Error(`Failed to create worker from custom URL ${Q}: ${$}`)}let J=G.endsWith(".js")?G:`${G}.js`,X={"resize.worker.js":{package:"@squoosh-kit/resize",specifier:"resize.worker.js"},"webp.worker.js":{package:"@squoosh-kit/webp",specifier:"webp.worker.js"}},Y=X[J];if(!Y)throw Error(`Unknown worker: ${J}. Supported workers: ${Object.keys(X).join(", ")}`);try{if(typeof window<"u"){let H=Y.package.split("/")[1],V=J.replace(".js",".browser.mjs"),A=L!==void 0?L:null;if(A)try{let S=u(A,H,V);return new Worker(S,{type:"module"})}catch{}let K=[`../../${H}/dist/${V}`,`../../../node_modules/@squoosh-kit/${H}/dist/${V}`,`../../../${H}/dist/${V}`],I=null;for(let S of K)try{let O=new URL(S,import.meta.url);return new Worker(O,{type:"module"})}catch(O){I=O instanceof Error?O:Error(String(O))}if(I)throw I;throw Error(`Could not resolve worker ${J} using any available path strategy`)}let Z=v()?".bun.js":".node.mjs",$=J.replace(".js",""),_=Y.package.includes("resize")?`../../resize/src/${$}.ts`:`../../webp/src/${$}.ts`;try{return new Worker(new URL(_,import.meta.url),{type:"module"})}catch{let H=Y.package.includes("resize")?`../../resize/dist/${$}.${Z.slice(1)}`:`../../webp/dist/${$}.${Z.slice(1)}`;try{return new Worker(new URL(H,import.meta.url),{type:"module"})}catch{if(typeof import.meta.resolve==="function")try{let V=import.meta.resolve(`${Y.package}/${Y.specifier}`);return new Worker(V,{type:"module"})}catch{}}}throw Error(`Failed to create worker from ${J}. Tried TypeScript source, dist output, and import.meta.resolve. Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed.`)}catch(Z){let $=Z instanceof Error?Z.message:String(Z);throw Error(`Failed to create worker from ${J}: ${$}. Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed. If you're using Vite, ensure the worker files are not being optimized as dependencies.`)}}function D(G,Q){let J,X=1e4;if(typeof Q==="number")X=Q;else if(Q)J=Q.customWorkerUrl,X=Q.timeoutMs??1e4;if(typeof window<"u"&&L===void 0)W().catch(()=>{});return new Promise((Y,Z)=>{let $=setTimeout(()=>{Z(Error(`Worker initialization timeout after ${X}ms. Worker file: ${G}`))},X),_;try{_=p(G,J)}catch(K){clearTimeout($),Z(K);return}let H=(K)=>{if(K.data?.type==="worker:ready")clearTimeout($),_.removeEventListener("message",H),_.removeEventListener("error",V),_.removeEventListener("messageerror",A),Y(_)},V=(K)=>{clearTimeout($),_.removeEventListener("message",H),_.removeEventListener("error",V),_.removeEventListener("messageerror",A),Z(Error(`Worker failed to start: ${K?.message||"Unknown error"}. Worker file: ${G}`))},A=()=>{clearTimeout($),_.removeEventListener("message",H),_.removeEventListener("error",V),_.removeEventListener("messageerror",A),Z(Error(`Worker message error during initialization. Worker file: ${G}`))};_.addEventListener("message",H),_.addEventListener("error",V),_.addEventListener("messageerror",A),_.postMessage({type:"worker:ping"})})}class z{async encode(G,Q,J){let Y=(await import("./chunk-0zm3fssb.js")).webpEncodeClient;return Y(G,Q,J)}async terminate(){}}class F{worker=null;workerReady=null;customWorkerUrl;constructor(G){this.customWorkerUrl=G}async getWorker(){if(!this.worker){if(!this.workerReady)this.workerReady=this.createWorker();this.worker=await this.workerReady}return this.worker}async createWorker(){return D("webp.worker",{customWorkerUrl:this.customWorkerUrl})}async encode(G,Q,J){let X=await this.getWorker();return q(G),T(X,"webp:encode",{image:G,options:Q},J)}async terminate(){if(this.worker)this.worker.terminate(),this.worker=null,this.workerReady=null}}function y(G,Q){return G==="client"?new z:new F(Q)}var P=null,C;function s(G){C=G,P=null}async function i(G,Q,J){if(!P)P=y("worker",C);return P.encode(G,Q,J)}function t(G="worker",Q){let J=y(G,Q);return Object.assign((X,Y,Z)=>{return J.encode(X,Y,Z)},{terminate:async()=>{await J.terminate()}})}class B{async resize(G,Q,J){let Y=(await import("./chunk-1nammd75.js")).resizeClient;return Y(G,Q,J)}async terminate(){}}class f{worker=null;workerReady=null;customWorkerUrl;constructor(G){this.customWorkerUrl=G}async getWorker(){if(!this.worker){if(!this.workerReady)this.workerReady=this.createWorker();this.worker=await this.workerReady}return this.worker}async createWorker(){return D("resize.worker",{customWorkerUrl:this.customWorkerUrl})}async resize(G,Q,J){let X=await this.getWorker();q(G);try{return await T(X,"resize:run",{image:G,options:Q},J)}catch(Y){throw console.error("Resize error:",Y),Y}}async terminate(){if(this.worker)this.worker.terminate(),this.worker=null,this.workerReady=null}}function M(G,Q){return G==="client"?new B:new f(Q)}var R=null,U;function JG(G){U=G,R=null}async function QG(G,Q,J){if(!R)R=M("worker",U);return R.resize(G,Q,J)}function XG(G="worker",Q){let J=M(G,Q);return Object.assign((X,Y,Z)=>{return J.resize(X,Y,Z)},{terminate:async()=>{await J.terminate()}})}export{QG as resize,i as encode,t as createWebpEncoder,XG as createResizer,s as configureWebpWorker,JG as configureResizeWorker};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=E310452C3BD3FC3C64756E2164756E21
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * Runtime environment detection utilities\n */\n\n/**\n * Detect if running in a Web Worker context\n */\nexport function isWorker(): boolean {\n return (\n typeof self !== 'undefined' &&\n typeof (globalThis as unknown as { DedicatedWorkerGlobalScope?: unknown })\n .DedicatedWorkerGlobalScope !== 'undefined'\n );\n}\n\n/**\n * Detect if running in a browser context\n */\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * Detect if running in Bun\n */\nexport function isBun(): boolean {\n return typeof Bun !== 'undefined';\n}\n\n/**\n * Detect if running in Node.js\n */\nexport function isNode(): boolean {\n return (\n typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null\n );\n}\n\n/**\n * Check if ImageData is available in the current environment\n */\nexport function hasImageData(): boolean {\n return typeof ImageData !== 'undefined';\n}\n",
|
|
6
6
|
"/**\n * Generic worker communication helper with support for transferables and AbortSignal\n */\n\nexport interface WorkerRequest<T = unknown> {\n type: string;\n id: number;\n payload: T;\n}\n\nexport interface WorkerResponse<T = unknown> {\n id: number;\n ok: boolean;\n data?: T;\n error?: string;\n}\n\nlet requestId = 0;\n\n/**\n * Call a worker with a typed request and wait for response\n *\n * @param worker - The worker instance to call\n * @param type - The message type\n * @param payload - The payload to send\n * @param signal - Optional AbortSignal to cancel the operation\n * @param transfer - Optional list of Transferable objects to transfer\n * @returns Promise that resolves with the worker's response data\n */\nexport async function callWorker<TPayload, TResponse>(\n worker: Worker,\n type: string,\n payload: TPayload,\n signal?: AbortSignal,\n transfer?: Transferable[]\n): Promise<TResponse> {\n return new Promise<TResponse>((resolve, reject) => {\n const id = ++requestId;\n\n // Check if already aborted\n if (signal?.aborted) {\n reject(new DOMException('Aborted', 'AbortError'));\n return;\n }\n\n const handleMessage = (event: MessageEvent) => {\n const response = event.data as WorkerResponse<TResponse>;\n if (response.id !== id) return;\n\n cleanup();\n\n if (response.ok && response.data !== undefined) {\n resolve(response.data);\n } else {\n reject(new Error(response.error || 'Unknown worker error'));\n }\n };\n\n const handleError = (error: ErrorEvent) => {\n cleanup();\n reject(new Error(`Worker error: ${error.message}`));\n };\n\n const handleAbort = () => {\n cleanup();\n reject(new DOMException('Aborted', 'AbortError'));\n };\n\n const cleanup = () => {\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n signal?.removeEventListener('abort', handleAbort);\n };\n\n // Set up listeners\n worker.addEventListener('message', handleMessage);\n worker.addEventListener('error', handleError);\n signal?.addEventListener('abort', handleAbort);\n\n // Send the request\n const request: WorkerRequest<TPayload> = { type, id, payload };\n\n if (transfer && transfer.length > 0) {\n worker.postMessage(request, transfer);\n } else {\n worker.postMessage(request);\n }\n });\n}\n",
|
|
7
|
-
"/**\n * Worker helper utilities for creating and managing Web Workers\n *\n * This module provides centralized logic for creating worker instances\n * in different environments (browser, Node.js, Bun) using import.meta.resolve\n * for server-side and package-relative paths for browsers.\n */\n\nimport { isBun } from './env';\n\n/**\n * Create a Web Worker for a specific codec\n *\n * In Node.js/Bun environments, uses import.meta.resolve to locate worker files.\n * In browser environments, uses relative paths within node_modules that Vite can resolve.\n *\n * @param workerFilename - The name of the worker file (e.g., 'resize.worker' or 'webp.worker')\n * @returns Worker instance\n * @throws Error if worker creation fails with detailed error message\n */\nexport function createCodecWorker(workerFilename: string): Worker {\n // Ensure filename has correct format\n const normalizedName = workerFilename.endsWith('.js')\n ? workerFilename\n : `${workerFilename}.js`;\n\n // Map worker filenames to their package and export\n const workerMap: Record<string, { package: string; specifier: string }> = {\n 'resize.worker.js': {\n package: '@squoosh-kit/resize',\n specifier: 'resize.worker.js',\n },\n 'webp.worker.js': {\n package: '@squoosh-kit/webp',\n specifier: 'webp.worker.js',\n },\n };\n\n const workerConfig = workerMap[normalizedName];\n if (!workerConfig) {\n throw new Error(\n `Unknown worker: ${normalizedName}. ` +\n `Supported workers: ${Object.keys(workerMap).join(', ')}`\n );\n }\n\n try {\n // In browser contexts, use relative paths within the installed packages\n if (typeof window !== 'undefined') {\n const packageName = workerConfig.package.split('/')[1]; // Extract 'resize' or 'webp'\n const workerFile = normalizedName.replace('.js', '.browser.mjs');\n\n // Try multiple path strategies to support both:\n // 1. Monorepo development structure: ../../{package}/dist/{workerFile}\n // 2. npm installed structure: ../../../{package}/dist/{workerFile}\n const pathStrategies = [\n // First try monorepo structure (when runtime is at packages/runtime/src)\n `../../${packageName}/dist/${workerFile}`,\n // Then try npm structure (when runtime is at node_modules/@squoosh-kit/runtime)\n `../../../node_modules/@squoosh-kit/${packageName}/dist/${workerFile}`,\n // Alternative npm structure for cases where packages are flattened\n `../../../${packageName}/dist/${workerFile}`,\n ];\n\n let lastError: Error | null = null;\n\n for (const relPath of pathStrategies) {\n try {\n const workerUrl = new URL(relPath, import.meta.url);\n return new Worker(workerUrl, {\n type: 'module',\n });\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n // Continue to next strategy\n }\n }\n\n // If all strategies failed, throw the last error\n if (lastError) {\n throw lastError;\n }\n throw new Error(\n `Could not resolve worker ${normalizedName} using any available path strategy`\n );\n }\n\n // Node.js/Bun: use import.meta.resolve if available\n if (typeof import.meta.resolve === 'function') {\n try {\n const resolved = import.meta.resolve(\n `${workerConfig.package}/${workerConfig.specifier}`\n );\n return new Worker(resolved, { type: 'module' });\n } catch {\n // Fallback if resolve fails - use relative path as last resort\n }\n }\n\n // Fallback for Bun: use relative path from this file's location\n const platformExt = isBun() ? '.bun.js' : '.node.mjs';\n const baseName = normalizedName.replace('.js', '');\n const relPath = workerConfig.package.includes('resize')\n ? `../../resize/dist/${baseName}.${platformExt.slice(1)}`\n : `../../webp/dist/${baseName}.${platformExt.slice(1)}`;\n\n return new Worker(new URL(relPath, import.meta.url), { type: 'module' });\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to create worker from ${normalizedName}: ${errorMessage}. ` +\n `Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed. ` +\n `If you're using Vite, ensure the worker files are not being optimized as dependencies.`\n );\n }\n}\n\n/**\n * Create a worker with initialization timeout and ready signal handling\n *\n * This is a higher-level function that creates a worker and waits for it\n * to signal that it's ready to receive messages.\n *\n * @param workerFilename - The name of the worker file\n * @param timeoutMs - Timeout in milliseconds (default: 10000)\n * @returns Promise that resolves to a ready Worker instance\n * @throws Error if worker creation fails or times out\n */\nexport function createReadyWorker(\n workerFilename: string,\n timeoutMs: number = 10000\n): Promise<Worker> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(\n new Error(\n `Worker initialization timeout after ${timeoutMs}ms. Worker file: ${workerFilename}`\n )\n );\n }, timeoutMs);\n\n let worker: Worker;\n try {\n worker = createCodecWorker(workerFilename);\n } catch (error) {\n clearTimeout(timeout);\n reject(error);\n return;\n }\n\n const handleMessage = (event: MessageEvent) => {\n if (event.data?.type === 'worker:ready') {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n resolve(worker);\n }\n };\n\n worker.addEventListener('message', handleMessage);\n worker.postMessage({ type: 'worker:ping' });\n });\n}\n",
|
|
8
|
-
"/**\n * Bridge implementation for the WebP package, handling worker and client modes.\n */\n\nimport {\n callWorker,\n createReadyWorker,\n type ImageInput,\n} from '@squoosh-kit/runtime';\nimport { validateImageInput } from '@squoosh-kit/runtime';\nimport type { EncodeInputOptions } from './types';\n\ninterface WebPBridge {\n encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array>;\n terminate(): Promise<void>;\n}\n\nclass WebpClientBridge implements WebPBridge {\n async encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n // Dynamically import the client encoder to avoid module loading issues in Vite\n const module = await import('./webp.worker.js');\n const webpEncodeClient = module.webpEncodeClient as (\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return webpEncodeClient(image, options, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass WebpWorkerBridge implements WebPBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n\n private async getWorker(): Promise<Worker> {\n if (!this.worker) {\n if (!this.workerReady) {\n this.workerReady = this.createWorker();\n }\n this.worker = await this.workerReady;\n }\n return this.worker;\n }\n\n private async createWorker(): Promise<Worker> {\n // Use the centralized worker helper for robust path resolution\n return createReadyWorker('webp.worker');\n }\n\n async encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n const worker = await this.getWorker();\n\n validateImageInput(image);\n return callWorker(worker, 'webp:encode', { image, options }, signal);\n }\n\n async terminate(): Promise<void> {\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n this.workerReady = null;\n }\n }\n}\n\nexport function createBridge(mode: 'worker' | 'client'): WebPBridge {\n return mode === 'client'
|
|
9
|
-
"/**\n * @squoosh-kit/webp public API\n */\n\nimport type { ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge } from './bridge';\nimport type { EncodeInputOptions } from './types';\n\nexport type { ImageInput, EncodeInputOptions };\n\n// Global bridge instance for reuse\nlet globalClientBridge: ReturnType<typeof createBridge> | null = null;\n\n/**\n * A WebP image encoder that can be reused for multiple operations.\n * Can be terminated to clean up associated resources (especially workers).\n */\nexport type WebpEncoderFactory = ((\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n) => Promise<Uint8Array>) & {\n /**\n * Terminates the encoder and cleans up resources.\n * Important for worker mode to prevent memory leaks.\n *\n * @example\n * const encoder = createWebpEncoder('worker');\n * try {\n * const result = await encoder(imageData, options);\n * } finally {\n * await encoder.terminate();\n * }\n */\n terminate(): Promise<void>;\n};\n\n/**\n * Encodes an image to WebP format. Uses worker mode for UI responsiveness.\n *\n * @param imageData - The image data to encode.\n * @param options - WebP encoding options.\n * @param signal - (Optional) AbortSignal to cancel the encoding operation.\n * If provided, you can cancel the operation by calling\n * `controller.abort()` on the associated AbortController.\n * If not provided, the operation cannot be cancelled.\n * @returns A Promise resolving to the encoded WebP data as a Uint8Array.\n *\n * @example\n * // With cancellation support\n * const controller = new AbortController();\n * const result = await encode(imageData, { quality: 85 }, controller.signal);\n * setTimeout(() => controller.abort(), 5000);\n *\n * @example\n * // Without cancellation (operation cannot be stopped)\n * const result = await encode(imageData, { quality: 85 });\n */\nexport async function encode(\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n // Use worker mode for UI responsiveness - prevents blocking the main thread\n if (!globalClientBridge) {\n globalClientBridge = createBridge('worker');\n }\n\n return globalClientBridge.encode(imageData, options, signal);\n}\n\n/**\n * Creates a reusable WebP encoder function for a specific execution mode.\n * This is useful for processing multiple images without the overhead of\n * creating a new worker or client instance each time.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @returns A function that encodes an image to WebP format with optional AbortSignal.\n */\nexport function createWebpEncoder(\n mode: 'worker' | 'client' = 'worker'\n): WebpEncoderFactory {\n const bridge = createBridge(mode);\n\n return Object.assign(\n (\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ) => {\n return bridge.encode(imageData, options, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n",
|
|
10
|
-
"/**\n * Bridge implementation for the Resize package, handling worker and client modes.\n */\n\nimport {\n callWorker,\n createReadyWorker,\n type ImageInput,\n} from '@squoosh-kit/runtime';\nimport { validateImageInput } from '@squoosh-kit/runtime';\nimport type { ResizeOptions } from './types.ts';\n\ninterface ResizeBridge {\n resize(\n image: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n ): Promise<ImageInput>;\n terminate(): Promise<void>;\n}\n\nclass ResizeClientBridge implements ResizeBridge {\n async resize(\n image: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n ): Promise<ImageInput> {\n // Dynamically import the client resizer to avoid module loading issues in Vite\n const module = await import('./resize.worker.ts');\n const resizeClient = module.resizeClient as (\n image: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n ) => Promise<ImageInput>;\n return resizeClient(image, options, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass ResizeWorkerBridge implements ResizeBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n\n private async getWorker(): Promise<Worker> {\n if (!this.worker) {\n if (!this.workerReady) {\n this.workerReady = this.createWorker();\n }\n this.worker = await this.workerReady;\n }\n return this.worker;\n }\n\n private async createWorker(): Promise<Worker> {\n // Use the centralized worker helper for robust path resolution\n return createReadyWorker('resize.worker');\n }\n\n async resize(\n image: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n ): Promise<ImageInput> {\n const worker = await this.getWorker();\n\n validateImageInput(image);\n\n try {\n const result = await callWorker<\n { image: ImageInput; options: ResizeOptions },\n ImageInput\n >(worker, 'resize:run', { image, options }, signal);\n\n return result;\n } catch (error) {\n console.error('Resize error:', error);\n throw error;\n }\n }\n\n async terminate(): Promise<void> {\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n this.workerReady = null;\n }\n }\n}\n\nexport function createBridge(mode: 'worker' | 'client'): ResizeBridge {\n return mode === 'client'\n ? new ResizeClientBridge()\n : new ResizeWorkerBridge();\n}\n",
|
|
11
|
-
"/**\n * @squoosh-kit/resize public API\n */\n\nimport type { ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge } from './bridge';\nimport type { ResizeOptions } from './types';\n\nexport type { ImageInput, ResizeOptions };\n\n// Global bridge instance for reuse\nlet globalClientBridge: ReturnType<typeof createBridge> | null = null;\n\n/**\n * A resizable image processor that can be reused for multiple operations.\n * Can be terminated to clean up associated resources (especially workers).\n */\nexport type ResizerFactory = ((\n imageData: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n) => Promise<ImageInput>) & {\n /**\n * Terminates the resizer and cleans up resources.\n * Important for worker mode to prevent memory leaks.\n *\n * @example\n * const resizer = createResizer('worker');\n * try {\n * const result = await resizer(imageData, options);\n * } finally {\n * await resizer.terminate();\n * }\n */\n terminate(): Promise<void>;\n};\n\n/**\n * Resizes an image. Uses worker mode for UI responsiveness.\n *\n * @param imageData - The image data to resize.\n * @param options - Resize options.\n * @param signal - (Optional) AbortSignal to cancel the resizing operation.\n * If provided, you can cancel the operation by calling\n * `controller.abort()` on the associated AbortController.\n * If not provided, the operation cannot be cancelled.\n * @returns A Promise resolving to the resized image data.\n *\n * @example\n * // With cancellation support\n * const controller = new AbortController();\n * const result = await resize(imageData, { width: 800 }, controller.signal);\n * setTimeout(() => controller.abort(), 5000);\n *\n * @example\n * // Without cancellation (operation cannot be stopped)\n * const result = await resize(imageData, { width: 800 });\n */\nexport async function resize(\n imageData: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n): Promise<ImageInput> {\n // Use worker mode for UI responsiveness - prevents blocking the main thread\n if (!globalClientBridge) {\n globalClientBridge = createBridge('worker');\n }\n\n return globalClientBridge.resize(imageData, options, signal);\n}\n\n/**\n * Creates a reusable resizer function for a specific execution mode.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @returns A function that resizes an image with optional AbortSignal.\n */\nexport function createResizer(\n mode: 'worker' | 'client' = 'worker'\n): ResizerFactory {\n const bridge = createBridge(mode);\n\n return Object.assign(\n (imageData: ImageInput, options: ResizeOptions, signal?: AbortSignal) => {\n return bridge.resize(imageData, options, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n"
|
|
7
|
+
"/**\n * Worker helper utilities for creating and managing Web Workers\n *\n * This module provides centralized logic for creating worker instances\n * in different environments (browser, Node.js, Bun) using import.meta.resolve\n * for server-side and package-relative paths for browsers.\n *\n * Smart auto-detection: Automatically detects the correct worker base URL\n * using meta tags, import.meta.url inference, and HEAD request probing.\n */\n\nimport { isBun } from './env';\n\n// Cache for detected worker base URL\n// undefined = not yet detected, null = detection failed, string = detected base\nlet detectedWorkerBase: string | null | undefined;\nlet detectionPromise: Promise<string | null> | null = null;\n\n/**\n * Auto-detect the correct base URL for squoosh-kit worker files\n * Uses multiple strategies: meta tag, import.meta.url inference, and HEAD requests\n */\nasync function detectWorkerBase(): Promise<string | null> {\n if (detectedWorkerBase !== undefined) {\n return detectedWorkerBase;\n }\n\n if (detectionPromise) {\n return detectionPromise;\n }\n\n detectionPromise = (async () => {\n // Only run in browser environment\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return (detectedWorkerBase = null);\n }\n\n // Strategy 1: Check for optional meta tag (for users with complex deploys)\n const metaTag = document.querySelector(\n 'meta[name=\"squoosh-base\"]'\n ) as HTMLMetaElement | null;\n if (metaTag?.content) {\n return (detectedWorkerBase = metaTag.content);\n }\n\n // Strategy 2: Look for Vite-bundled workers in assets directory FIRST\n // Vite bundles workers as separate chunks with hashes, e.g., resize.worker.browser-ABC123.js\n // This is the most common case for production Vite/React apps\n try {\n // Fetch the current HTML document to find script references\n const html = await fetch(window.location.href).then((r) => r.text());\n\n // Look for both resize and webp worker scripts in assets\n const workerPatterns = [\n {\n regex:\n /[\"']([^\"']*assets[^\"']*resize\\.worker\\.browser[^\"']*\\.js)[\"']/,\n package: 'resize',\n },\n {\n regex: /[\"']([^\"']*assets[^\"']*webp\\.worker\\.browser[^\"']*\\.js)[\"']/,\n package: 'webp',\n },\n ];\n\n for (const { regex, package: packageName } of workerPatterns) {\n const match = html.match(regex);\n if (match?.[1]) {\n const workerPath = match[1];\n // Cache the full hashed URL\n cacheHashedWorkerUrl(\n packageName,\n `${packageName}.worker.browser.mjs`,\n workerPath\n );\n // Return the base assets path for fallback\n const assetsBase = workerPath.substring(\n 0,\n workerPath.lastIndexOf('/') + 1\n );\n return (detectedWorkerBase = assetsBase);\n }\n }\n } catch {\n // Continue to next strategy\n }\n\n // Strategy 3: Infer from current script context (for npm-installed packages)\n try {\n // Try to detect if we're already in node_modules by checking import.meta.url\n const currentUrl = import.meta.url;\n const match = currentUrl.match(\n /^(.*\\/node_modules\\/@squoosh-kit\\/runtime\\/)/\n );\n if (match) {\n const base = match[1].replace('runtime/', '');\n return (detectedWorkerBase = base);\n }\n } catch {\n // Continue to next strategy\n }\n\n // Strategy 4: Try common CDN/deployment patterns with HEAD requests\n const testPatterns = [\n '/node_modules/@squoosh-kit/',\n '/@squoosh-kit/',\n window.location.origin + '/node_modules/@squoosh-kit/',\n ];\n\n for (const pattern of testPatterns) {\n try {\n // Test if the pattern is valid by checking if resize worker exists\n const testUrl = `${pattern}resize/dist/resize.worker.browser.mjs`;\n await fetch(testUrl, {\n method: 'HEAD',\n mode: 'no-cors',\n });\n // If fetch succeeds without error, pattern is valid\n return (detectedWorkerBase = pattern);\n } catch {\n // Continue to next pattern\n }\n }\n\n // No detection successful\n return (detectedWorkerBase = null);\n })();\n\n return detectionPromise;\n}\n\n/**\n * Manually trigger worker base URL detection\n * Useful for debugging or for apps that need explicit control over detection timing\n *\n * @returns Promise that resolves to the detected base URL (or null if detection fails)\n */\nexport async function initializeWorkerDetection(): Promise<string | null> {\n return detectWorkerBase();\n}\n\n// Cache for hashed worker URLs (for Vite-bundled apps)\nconst hashedWorkerUrls: Record<string, string> = {};\n\n/**\n * Build worker URL from detected base\n */\nfunction buildWorkerUrlFromBase(\n base: string,\n packageName: string,\n workerFile: string\n): string {\n // Check if we have a cached hashed URL for this worker\n const cacheKey = `${packageName}:${workerFile}`;\n if (hashedWorkerUrls[cacheKey]) {\n return hashedWorkerUrls[cacheKey];\n }\n\n // Ensure base ends with / and doesn't have leading @\n const normalizedBase = base.replace(/\\/$/, '') + '/';\n return `${normalizedBase}@squoosh-kit/${packageName}/dist/${workerFile}`;\n}\n\n/**\n * Cache a hashed worker URL (called during Vite assets detection)\n */\nfunction cacheHashedWorkerUrl(\n packageName: string,\n workerFile: string,\n hashedUrl: string\n): void {\n const cacheKey = `${packageName}:${workerFile}`;\n hashedWorkerUrls[cacheKey] = hashedUrl;\n}\n\n/**\n * Create a Web Worker for a specific codec\n *\n * In Node.js/Bun environments, uses import.meta.resolve to locate worker files.\n * In browser environments, uses smart auto-detection with fallback to relative paths.\n *\n * @param workerFilename - The name of the worker file (e.g., 'resize.worker' or 'webp.worker')\n * @param customWorkerUrl - (Optional) Custom URL for the worker file. When provided, this takes precedence.\n * Useful for explicit URL configuration when auto-detection fails.\n * @returns Worker instance\n * @throws Error if worker creation fails with detailed error message\n */\nexport function createCodecWorker(\n workerFilename: string,\n customWorkerUrl?: string\n): Worker {\n // If a custom worker URL is provided, use it directly\n if (customWorkerUrl) {\n try {\n return new Worker(customWorkerUrl, { type: 'module' });\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to create worker from custom URL ${customWorkerUrl}: ${errorMessage}`\n );\n }\n }\n // Ensure filename has correct format\n const normalizedName = workerFilename.endsWith('.js')\n ? workerFilename\n : `${workerFilename}.js`;\n\n // Map worker filenames to their package and export\n const workerMap: Record<string, { package: string; specifier: string }> = {\n 'resize.worker.js': {\n package: '@squoosh-kit/resize',\n specifier: 'resize.worker.js',\n },\n 'webp.worker.js': {\n package: '@squoosh-kit/webp',\n specifier: 'webp.worker.js',\n },\n };\n\n const workerConfig = workerMap[normalizedName];\n if (!workerConfig) {\n throw new Error(\n `Unknown worker: ${normalizedName}. ` +\n `Supported workers: ${Object.keys(workerMap).join(', ')}`\n );\n }\n\n try {\n // In browser contexts, try smart auto-detection first, then fall back to relative paths\n if (typeof window !== 'undefined') {\n const packageName = workerConfig.package.split('/')[1]; // Extract 'resize' or 'webp'\n const workerFile = normalizedName.replace('.js', '.browser.mjs');\n\n // If detection has already been attempted, use cached result\n const cachedBase =\n detectedWorkerBase !== undefined ? detectedWorkerBase : null;\n if (cachedBase) {\n try {\n const detectedUrl = buildWorkerUrlFromBase(\n cachedBase,\n packageName,\n workerFile\n );\n return new Worker(detectedUrl, { type: 'module' });\n } catch {\n // Fall through to relative paths\n }\n }\n\n // Try multiple path strategies to support both:\n // 1. Monorepo development structure: ../../{package}/dist/{workerFile}\n // 2. npm installed structure: ../../../{package}/dist/{workerFile}\n const pathStrategies = [\n // First try monorepo structure (when runtime is at packages/runtime/src)\n `../../${packageName}/dist/${workerFile}`,\n // Then try npm structure (when runtime is at node_modules/@squoosh-kit/runtime)\n `../../../node_modules/@squoosh-kit/${packageName}/dist/${workerFile}`,\n // Alternative npm structure for cases where packages are flattened\n `../../../${packageName}/dist/${workerFile}`,\n ];\n\n let lastError: Error | null = null;\n\n for (const relPath of pathStrategies) {\n try {\n const workerUrl = new URL(relPath, import.meta.url);\n return new Worker(workerUrl, {\n type: 'module',\n });\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n // Continue to next strategy\n }\n }\n\n // If all strategies failed, throw the last error\n if (lastError) {\n throw lastError;\n }\n throw new Error(\n `Could not resolve worker ${normalizedName} using any available path strategy`\n );\n }\n\n // Fallbacks for monorepo/dev without build artifacts\n const platformExt = isBun() ? '.bun.js' : '.node.mjs';\n const baseName = normalizedName.replace('.js', '');\n\n // 1) Try TypeScript source first (Bun can transpile TS, works in dev)\n const srcRelPath = workerConfig.package.includes('resize')\n ? `../../resize/src/${baseName}.ts`\n : `../../webp/src/${baseName}.ts`;\n try {\n return new Worker(new URL(srcRelPath, import.meta.url), {\n type: 'module',\n });\n } catch {\n // 2) Try dist output (if already built)\n const distRelPath = workerConfig.package.includes('resize')\n ? `../../resize/dist/${baseName}.${platformExt.slice(1)}`\n : `../../webp/dist/${baseName}.${platformExt.slice(1)}`;\n try {\n return new Worker(new URL(distRelPath, import.meta.url), {\n type: 'module',\n });\n } catch {\n // 3) Try import.meta.resolve as last resort\n if (typeof import.meta.resolve === 'function') {\n try {\n const resolved = import.meta.resolve(\n `${workerConfig.package}/${workerConfig.specifier}`\n );\n return new Worker(resolved, { type: 'module' });\n } catch {\n // Continue to error below\n }\n }\n }\n }\n\n // If we get here, all fallbacks failed\n throw new Error(\n `Failed to create worker from ${normalizedName}. ` +\n `Tried TypeScript source, dist output, and import.meta.resolve. ` +\n `Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed.`\n );\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to create worker from ${normalizedName}: ${errorMessage}. ` +\n `Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed. ` +\n `If you're using Vite, ensure the worker files are not being optimized as dependencies.`\n );\n }\n}\n\n/**\n * Create a worker with initialization timeout and ready signal handling\n *\n * This is a higher-level function that creates a worker and waits for it\n * to signal that it's ready to receive messages.\n *\n * Automatically triggers smart auto-detection of worker base URLs in browser environments.\n *\n * @param workerFilename - The name of the worker file\n * @param options - Configuration options for worker creation\n * @param options.customWorkerUrl - (Optional) Custom URL for the worker file\n * @param options.timeoutMs - Timeout in milliseconds (default: 10000)\n * @returns Promise that resolves to a ready Worker instance\n * @throws Error if worker creation fails or times out\n */\nexport function createReadyWorker(\n workerFilename: string,\n options?: { customWorkerUrl?: string; timeoutMs?: number } | number\n): Promise<Worker> {\n // Support both old API (timeoutMs as number) and new API (options object)\n let customWorkerUrl: string | undefined;\n let timeoutMs: number = 10000;\n\n if (typeof options === 'number') {\n timeoutMs = options;\n } else if (options) {\n customWorkerUrl = options.customWorkerUrl;\n timeoutMs = options.timeoutMs ?? 10000;\n }\n\n // Kick off auto-detection in the background (doesn't block)\n // This will cache the result for subsequent calls\n if (typeof window !== 'undefined' && detectedWorkerBase === undefined) {\n detectWorkerBase().catch(() => {\n // Silently fail detection - we'll fall back to relative paths\n });\n }\n\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(\n new Error(\n `Worker initialization timeout after ${timeoutMs}ms. Worker file: ${workerFilename}`\n )\n );\n }, timeoutMs);\n\n let worker: Worker;\n try {\n worker = createCodecWorker(workerFilename, customWorkerUrl);\n } catch (error) {\n clearTimeout(timeout);\n reject(error);\n return;\n }\n\n const handleMessage = (event: MessageEvent) => {\n if (event.data?.type === 'worker:ready') {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n worker.removeEventListener('messageerror', handleMessageError);\n resolve(worker);\n }\n };\n\n const handleError = (event: ErrorEvent) => {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n worker.removeEventListener('messageerror', handleMessageError);\n reject(\n new Error(\n `Worker failed to start: ${event?.message || 'Unknown error'}. Worker file: ${workerFilename}`\n )\n );\n };\n\n const handleMessageError = () => {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n worker.removeEventListener('messageerror', handleMessageError);\n reject(\n new Error(\n `Worker message error during initialization. Worker file: ${workerFilename}`\n )\n );\n };\n\n worker.addEventListener('message', handleMessage);\n worker.addEventListener('error', handleError);\n worker.addEventListener('messageerror', handleMessageError);\n worker.postMessage({ type: 'worker:ping' });\n });\n}\n",
|
|
8
|
+
"/**\n * Bridge implementation for the WebP package, handling worker and client modes.\n */\n\nimport {\n callWorker,\n createReadyWorker,\n type ImageInput,\n} from '@squoosh-kit/runtime';\nimport { validateImageInput } from '@squoosh-kit/runtime';\nimport type { EncodeInputOptions } from './types';\n\ninterface WebPBridge {\n encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array>;\n terminate(): Promise<void>;\n}\n\nclass WebpClientBridge implements WebPBridge {\n async encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n // Dynamically import the client encoder to avoid module loading issues in Vite\n const module = await import('./webp.worker.js');\n const webpEncodeClient = module.webpEncodeClient as (\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return webpEncodeClient(image, options, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass WebpWorkerBridge implements WebPBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n private customWorkerUrl: string | undefined;\n\n constructor(customWorkerUrl?: string) {\n this.customWorkerUrl = customWorkerUrl;\n }\n\n private async getWorker(): Promise<Worker> {\n if (!this.worker) {\n if (!this.workerReady) {\n this.workerReady = this.createWorker();\n }\n this.worker = await this.workerReady;\n }\n return this.worker;\n }\n\n private async createWorker(): Promise<Worker> {\n // Use the centralized worker helper for robust path resolution\n return createReadyWorker('webp.worker', {\n customWorkerUrl: this.customWorkerUrl,\n });\n }\n\n async encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n const worker = await this.getWorker();\n\n validateImageInput(image);\n return callWorker(worker, 'webp:encode', { image, options }, signal);\n }\n\n async terminate(): Promise<void> {\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n this.workerReady = null;\n }\n }\n}\n\nexport function createBridge(\n mode: 'worker' | 'client',\n customWorkerUrl?: string\n): WebPBridge {\n return mode === 'client'\n ? new WebpClientBridge()\n : new WebpWorkerBridge(customWorkerUrl);\n}\n",
|
|
9
|
+
"/**\n * @squoosh-kit/webp public API\n */\n\nimport type { ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge } from './bridge';\nimport type { EncodeInputOptions } from './types';\n\nexport type { ImageInput, EncodeInputOptions };\n\n// Global bridge instance for reuse\nlet globalClientBridge: ReturnType<typeof createBridge> | null = null;\nlet globalCustomWorkerUrl: string | undefined;\n\n/**\n * A WebP image encoder that can be reused for multiple operations.\n * Can be terminated to clean up associated resources (especially workers).\n */\nexport type WebpEncoderFactory = ((\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n) => Promise<Uint8Array>) & {\n /**\n * Terminates the encoder and cleans up resources.\n * Important for worker mode to prevent memory leaks.\n *\n * @example\n * const encoder = createWebpEncoder('worker');\n * try {\n * const result = await encoder(imageData, options);\n * } finally {\n * await encoder.terminate();\n * }\n */\n terminate(): Promise<void>;\n};\n\n/**\n * Configure the global WebP worker URL. Call this before using the encode function\n * in environments like Vite where the worker path needs to be explicitly resolved.\n *\n * @param workerUrl - The absolute URL to the WebP worker file.\n * In Vite apps, use: new URL('@squoosh-kit/webp/dist/webp.worker.browser.mjs', import.meta.url).href\n *\n * @example\n * import { configureWebpWorker, encode } from '@squoosh-kit/webp';\n *\n * // In your Vite app initialization:\n * configureWebpWorker(\n * new URL('@squoosh-kit/webp/dist/webp.worker.browser.mjs', import.meta.url).href\n * );\n *\n * // Then use encode normally:\n * const result = await encode(imageData, { quality: 85 });\n */\nexport function configureWebpWorker(workerUrl: string): void {\n globalCustomWorkerUrl = workerUrl;\n // Reset the bridge so it uses the new worker URL on next call\n globalClientBridge = null;\n}\n\n/**\n * Encodes an image to WebP format. Uses worker mode for UI responsiveness.\n *\n * @param imageData - The image data to encode.\n * @param options - WebP encoding options.\n * @param signal - (Optional) AbortSignal to cancel the encoding operation.\n * If provided, you can cancel the operation by calling\n * `controller.abort()` on the associated AbortController.\n * If not provided, the operation cannot be cancelled.\n * @returns A Promise resolving to the encoded WebP data as a Uint8Array.\n *\n * @example\n * // With cancellation support\n * const controller = new AbortController();\n * const result = await encode(imageData, { quality: 85 }, controller.signal);\n * setTimeout(() => controller.abort(), 5000);\n *\n * @example\n * // Without cancellation (operation cannot be stopped)\n * const result = await encode(imageData, { quality: 85 });\n */\nexport async function encode(\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n // Use worker mode for UI responsiveness - prevents blocking the main thread\n if (!globalClientBridge) {\n globalClientBridge = createBridge('worker', globalCustomWorkerUrl);\n }\n\n return globalClientBridge.encode(imageData, options, signal);\n}\n\n/**\n * Creates a reusable WebP encoder function for a specific execution mode.\n * This is useful for processing multiple images without the overhead of\n * creating a new worker or client instance each time.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @param customWorkerUrl - (Optional) Custom URL for the worker file in 'worker' mode.\n * @returns A function that encodes an image to WebP format with optional AbortSignal.\n *\n * @example\n * // In a Vite app with custom worker URL:\n * const encoder = createWebpEncoder(\n * 'worker',\n * new URL('@squoosh-kit/webp/dist/webp.worker.browser.mjs', import.meta.url).href\n * );\n * const result = await encoder(imageData, { quality: 85 });\n * await encoder.terminate();\n */\nexport function createWebpEncoder(\n mode: 'worker' | 'client' = 'worker',\n customWorkerUrl?: string\n): WebpEncoderFactory {\n const bridge = createBridge(mode, customWorkerUrl);\n\n return Object.assign(\n (\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ) => {\n return bridge.encode(imageData, options, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n",
|
|
10
|
+
"/**\n * Bridge implementation for the Resize package, handling worker and client modes.\n */\n\nimport {\n callWorker,\n createReadyWorker,\n type ImageInput,\n} from '@squoosh-kit/runtime';\nimport { validateImageInput } from '@squoosh-kit/runtime';\nimport type { ResizeOptions } from './types.ts';\n\ninterface ResizeBridge {\n resize(\n image: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n ): Promise<ImageInput>;\n terminate(): Promise<void>;\n}\n\nclass ResizeClientBridge implements ResizeBridge {\n async resize(\n image: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n ): Promise<ImageInput> {\n // Dynamically import the client resizer to avoid module loading issues in Vite\n const module = await import('./resize.worker.ts');\n const resizeClient = module.resizeClient as (\n image: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n ) => Promise<ImageInput>;\n return resizeClient(image, options, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass ResizeWorkerBridge implements ResizeBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n private customWorkerUrl: string | undefined;\n\n constructor(customWorkerUrl?: string) {\n this.customWorkerUrl = customWorkerUrl;\n }\n\n private async getWorker(): Promise<Worker> {\n if (!this.worker) {\n if (!this.workerReady) {\n this.workerReady = this.createWorker();\n }\n this.worker = await this.workerReady;\n }\n return this.worker;\n }\n\n private async createWorker(): Promise<Worker> {\n // Use the centralized worker helper for robust path resolution\n return createReadyWorker('resize.worker', {\n customWorkerUrl: this.customWorkerUrl,\n });\n }\n\n async resize(\n image: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n ): Promise<ImageInput> {\n const worker = await this.getWorker();\n\n validateImageInput(image);\n\n try {\n const result = await callWorker<\n { image: ImageInput; options: ResizeOptions },\n ImageInput\n >(worker, 'resize:run', { image, options }, signal);\n\n return result;\n } catch (error) {\n console.error('Resize error:', error);\n throw error;\n }\n }\n\n async terminate(): Promise<void> {\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n this.workerReady = null;\n }\n }\n}\n\nexport function createBridge(\n mode: 'worker' | 'client',\n customWorkerUrl?: string\n): ResizeBridge {\n return mode === 'client'\n ? new ResizeClientBridge()\n : new ResizeWorkerBridge(customWorkerUrl);\n}\n",
|
|
11
|
+
"/**\n * @squoosh-kit/resize public API\n */\n\nimport type { ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge } from './bridge';\nimport type { ResizeOptions } from './types';\n\nexport type { ImageInput, ResizeOptions };\n\n// Global bridge instance for reuse\nlet globalClientBridge: ReturnType<typeof createBridge> | null = null;\nlet globalCustomWorkerUrl: string | undefined;\n\n/**\n * A resizable image processor that can be reused for multiple operations.\n * Can be terminated to clean up associated resources (especially workers).\n */\nexport type ResizerFactory = ((\n imageData: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n) => Promise<ImageInput>) & {\n /**\n * Terminates the resizer and cleans up resources.\n * Important for worker mode to prevent memory leaks.\n *\n * @example\n * const resizer = createResizer('worker');\n * try {\n * const result = await resizer(imageData, options);\n * } finally {\n * await resizer.terminate();\n * }\n */\n terminate(): Promise<void>;\n};\n\n/**\n * Configure the global resize worker URL. Call this before using the resize function\n * in environments like Vite where the worker path needs to be explicitly resolved.\n *\n * @param workerUrl - The absolute URL to the resize worker file.\n * In Vite apps, use: new URL('@squoosh-kit/resize/dist/resize.worker.browser.mjs', import.meta.url).href\n *\n * @example\n * import { configureResizeWorker, resize } from '@squoosh-kit/resize';\n *\n * // In your Vite app initialization:\n * configureResizeWorker(\n * new URL('@squoosh-kit/resize/dist/resize.worker.browser.mjs', import.meta.url).href\n * );\n *\n * // Then use resize normally:\n * const result = await resize(imageData, { width: 800 });\n */\nexport function configureResizeWorker(workerUrl: string): void {\n globalCustomWorkerUrl = workerUrl;\n // Reset the bridge so it uses the new worker URL on next call\n globalClientBridge = null;\n}\n\n/**\n * Resizes an image. Uses worker mode for UI responsiveness.\n *\n * @param imageData - The image data to resize.\n * @param options - Resize options.\n * @param signal - (Optional) AbortSignal to cancel the resizing operation.\n * If provided, you can cancel the operation by calling\n * `controller.abort()` on the associated AbortController.\n * If not provided, the operation cannot be cancelled.\n * @returns A Promise resolving to the resized image data.\n *\n * @example\n * // With cancellation support\n * const controller = new AbortController();\n * const result = await resize(imageData, { width: 800 }, controller.signal);\n * setTimeout(() => controller.abort(), 5000);\n *\n * @example\n * // Without cancellation (operation cannot be stopped)\n * const result = await resize(imageData, { width: 800 });\n */\nexport async function resize(\n imageData: ImageInput,\n options: ResizeOptions,\n signal?: AbortSignal\n): Promise<ImageInput> {\n // Use worker mode for UI responsiveness - prevents blocking the main thread\n if (!globalClientBridge) {\n globalClientBridge = createBridge('worker', globalCustomWorkerUrl);\n }\n\n return globalClientBridge.resize(imageData, options, signal);\n}\n\n/**\n * Creates a reusable resizer function for a specific execution mode.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @param customWorkerUrl - (Optional) Custom URL for the worker file in 'worker' mode.\n * @returns A function that resizes an image with optional AbortSignal.\n *\n * @example\n * // In a Vite app with custom worker URL:\n * const resizer = createResizer(\n * 'worker',\n * new URL('@squoosh-kit/resize/dist/resize.worker.browser.mjs', import.meta.url).href\n * );\n * const result = await resizer(imageData, { width: 800 });\n * await resizer.terminate();\n */\nexport function createResizer(\n mode: 'worker' | 'client' = 'worker',\n customWorkerUrl?: string\n): ResizerFactory {\n const bridge = createBridge(mode, customWorkerUrl);\n\n return Object.assign(\n (imageData: ImageInput, options: ResizeOptions, signal?: AbortSignal) => {\n return bridge.resize(imageData, options, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "6FAyBO,GAAS,CAAK,EAAY,CAC/B,OAAO,OAAO,IAAQ,ICTxB,IAAI,EAAY,EAYhB,eAAsB,CAA+B,CACnD,EACA,EACA,EACA,EACA,EACoB,CACpB,OAAO,IAAI,QAAmB,CAAC,EAAS,IAAW,CACjD,IAAM,EAAK,EAAE,EAGb,GAAI,GAAQ,QAAS,CACnB,EAAO,IAAI,aAAa,UAAW,YAAY,CAAC,EAChD,OAGF,IAAM,EAAgB,CAAC,IAAwB,CAC7C,IAAM,EAAW,EAAM,KACvB,GAAI,EAAS,KAAO,EAAI,OAIxB,GAFA,EAAQ,EAEJ,EAAS,IAAM,EAAS,OAAS,OACnC,EAAQ,EAAS,IAAI,EAErB,OAAW,MAAM,EAAS,OAAS,sBAAsB,CAAC,GAIxD,EAAc,CAAC,IAAsB,CACzC,EAAQ,EACR,EAAW,MAAM,iBAAiB,EAAM,SAAS,CAAC,GAG9C,EAAc,IAAM,CACxB,EAAQ,EACR,EAAO,IAAI,aAAa,UAAW,YAAY,CAAC,GAG5C,EAAU,IAAM,CACpB,EAAO,oBAAoB,UAAW,CAAa,EACnD,EAAO,oBAAoB,QAAS,CAAW,EAC/C,GAAQ,oBAAoB,QAAS,CAAW,GAIlD,EAAO,iBAAiB,UAAW,CAAa,EAChD,EAAO,iBAAiB,QAAS,CAAW,EAC5C,GAAQ,iBAAiB,QAAS,CAAW,EAG7C,IAAM,EAAmC,CAAE,OAAM,KAAI,SAAQ,EAE7D,GAAI,GAAY,EAAS,OAAS,EAChC,EAAO,YAAY,EAAS,CAAQ,EAEpC,OAAO,YAAY,CAAO,EAE7B,
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "E310452C3BD3FC3C64756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|