From 629d64326db39b435e6e1ac01ad7dfb5122c2449 Mon Sep 17 00:00:00 2001 From: Ingvar Stepanyan Date: Thu, 1 Aug 2019 17:01:25 +0100 Subject: [PATCH] Swap OptiPNG with OxiPNG This makes building simpler and allows us to potentially use multithreading version in the future. For now points to a custom fork of OxiPNG that enables WebAssembly support, as PR is still pending review. --- codecs/optipng/.gitignore | 2 - codecs/optipng/README.md | 26 - codecs/optipng/build.sh | 44 -- codecs/optipng/example.html | 19 - codecs/optipng/optipng.cpp | 53 -- codecs/optipng/optipng.d.ts | 10 - codecs/optipng/optipng.js | 22 - codecs/optipng/optipng.wasm | Bin 177359 -> 0 bytes codecs/optipng/package-lock.json | 543 ------------------ codecs/optipng/package.json | 17 - codecs/oxipng/.gitignore | 1 + codecs/oxipng/Cargo.lock | 377 ++++++++++++ codecs/oxipng/Cargo.toml | 20 + codecs/oxipng/Dockerfile | 9 + codecs/oxipng/build.sh | 22 + codecs/oxipng/package-lock.json | 4 + codecs/oxipng/package.json | 7 + codecs/oxipng/pkg/oxipng.d.ts | 7 + codecs/oxipng/pkg/oxipng.js | 54 ++ codecs/oxipng/pkg/oxipng_bg.d.ts | 5 + codecs/oxipng/pkg/oxipng_bg.wasm | Bin 0 -> 388337 bytes codecs/oxipng/pkg/package.json | 15 + codecs/oxipng/src/lib.rs | 7 + package-lock.json | 441 +++++++------- package.json | 2 +- src/codecs/encoders.ts | 8 +- src/codecs/optipng/encoder.ts | 18 - .../{optipng => oxipng}/encoder-meta.ts | 2 +- src/codecs/oxipng/encoder.ts | 6 + src/codecs/{optipng => oxipng}/options.tsx | 4 +- src/codecs/processor-worker/index.ts | 12 +- src/codecs/processor.ts | 10 +- src/components/Options/index.tsx | 6 +- src/components/compress/index.tsx | 4 +- 34 files changed, 788 insertions(+), 989 deletions(-) delete mode 100644 codecs/optipng/.gitignore delete mode 100644 codecs/optipng/README.md delete mode 100755 codecs/optipng/build.sh delete mode 100644 codecs/optipng/example.html delete mode 100644 codecs/optipng/optipng.cpp delete mode 100644 codecs/optipng/optipng.d.ts delete mode 100644 codecs/optipng/optipng.js delete mode 100644 codecs/optipng/optipng.wasm delete mode 100644 codecs/optipng/package-lock.json delete mode 100644 codecs/optipng/package.json create mode 100644 codecs/oxipng/.gitignore create mode 100644 codecs/oxipng/Cargo.lock create mode 100644 codecs/oxipng/Cargo.toml create mode 100644 codecs/oxipng/Dockerfile create mode 100644 codecs/oxipng/build.sh create mode 100644 codecs/oxipng/package-lock.json create mode 100644 codecs/oxipng/package.json create mode 100644 codecs/oxipng/pkg/oxipng.d.ts create mode 100644 codecs/oxipng/pkg/oxipng.js create mode 100644 codecs/oxipng/pkg/oxipng_bg.d.ts create mode 100644 codecs/oxipng/pkg/oxipng_bg.wasm create mode 100644 codecs/oxipng/pkg/package.json create mode 100644 codecs/oxipng/src/lib.rs delete mode 100644 src/codecs/optipng/encoder.ts rename src/codecs/{optipng => oxipng}/encoder-meta.ts (90%) create mode 100644 src/codecs/oxipng/encoder.ts rename src/codecs/{optipng => oxipng}/options.tsx (91%) diff --git a/codecs/optipng/.gitignore b/codecs/optipng/.gitignore deleted file mode 100644 index 7bde8c02..00000000 --- a/codecs/optipng/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -build/ -*.o diff --git a/codecs/optipng/README.md b/codecs/optipng/README.md deleted file mode 100644 index 85bd3db0..00000000 --- a/codecs/optipng/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# OptiPNG - -- Source: -- Version: v0.7.7 - -## Dependencies - -- Docker - -## Example - -See `example.html` - -## API - -### `int version()` - -Returns the version of optipng as a number. va.b.c is encoded as 0x0a0b0c - -### `ArrayBuffer compress(std::string buffer, {level})`; - -`compress` will re-compress the given PNG image via `buffer`. `level` is a number between 0 and 7. - -### `void free_result()` - -Frees the result created by `compress()`. diff --git a/codecs/optipng/build.sh b/codecs/optipng/build.sh deleted file mode 100755 index 3a523b59..00000000 --- a/codecs/optipng/build.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -set -e - -export OPTIMIZE="-Os" -export PREFIX="/src/build" - -echo "=============================================" -echo "Compiling optipng" -echo "=============================================" -( - cd node_modules/optipng - CFLAGS="${OPTIMIZE} -Isrc/zlib" emconfigure ./configure --prefix=${PREFIX} - emmake make - emmake make install - mkdir -p ${PREFIX}/lib - mv ${PREFIX}/bin/optipng ${PREFIX}/lib/liboptipng.so -) -echo "=============================================" -echo "Compiling optipng done" -echo "=============================================" - -echo "=============================================" -echo "Compiling optipng wrapper" -echo "=============================================" -( - emcc \ - --bind \ - ${OPTIMIZE} \ - --closure 1 \ - -s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME="optipng"' \ - -o "optipng.js" \ - --std=c++11 \ - optipng.cpp \ - ${PREFIX}/lib/liboptipng.so -) -echo "=============================================" -echo "Compiling optipng wrapper done" -echo "=============================================" - -echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" -echo "Did you update your docker image?" -echo "Run \`docker pull trzeci/emscripten-upstream\`" -echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/codecs/optipng/example.html b/codecs/optipng/example.html deleted file mode 100644 index d54a71be..00000000 --- a/codecs/optipng/example.html +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/codecs/optipng/optipng.cpp b/codecs/optipng/optipng.cpp deleted file mode 100644 index 5df54971..00000000 --- a/codecs/optipng/optipng.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include "emscripten/bind.h" -#include "emscripten/val.h" - -#include - -using namespace emscripten; - -extern "C" int main(int argc, char *argv[]); - -int version() { - // FIXME (@surma): Haven’t found a version in optipng :( - return 0; -} - -struct OptiPngOpts { - int level; -}; - -uint8_t* result; -val compress(std::string png, OptiPngOpts opts) { - remove("input.png"); - remove("output.png"); - FILE* infile = fopen("input.png", "wb"); - fwrite(png.c_str(), png.length(), 1, infile); - fflush(infile); - fclose(infile); - - char optlevel[8]; - sprintf(&optlevel[0], "-o%d", opts.level); - char* args[] = {"optipng", optlevel, "-out", "output.png", "input.png"}; - main(5, args); - - FILE *outfile = fopen("output.png", "rb"); - fseek(outfile, 0, SEEK_END); - int fsize = ftell(outfile); - result = (uint8_t*) malloc(fsize); - fseek(outfile, 0, SEEK_SET); - fread(result, fsize, 1, outfile); - return val(typed_memory_view(fsize, result)); -} - -void free_result() { - free(result); -} - -EMSCRIPTEN_BINDINGS(my_module) { - value_object("OptiPngOpts") - .field("level", &OptiPngOpts::level); - - function("version", &version); - function("compress", &compress); - function("free_result", &free_result); -} diff --git a/codecs/optipng/optipng.d.ts b/codecs/optipng/optipng.d.ts deleted file mode 100644 index 072f21d8..00000000 --- a/codecs/optipng/optipng.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import {EncodeOptions} from "src/codecs/optipng/encoder"; - -export interface OptiPngModule extends EmscriptenWasm.Module { - compress(data: BufferSource, opts: EncodeOptions): Uint8Array; - free_result(): void; -} - -export default function(opts: EmscriptenWasm.ModuleOpts): OptiPngModule; - - diff --git a/codecs/optipng/optipng.js b/codecs/optipng/optipng.js deleted file mode 100644 index cd6101bc..00000000 --- a/codecs/optipng/optipng.js +++ /dev/null @@ -1,22 +0,0 @@ - -var optipng = (function() { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; - return ( -function(optipng) { - optipng = optipng || {}; - -var Module=typeof optipng!=="undefined"?optipng:{};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=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||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"];function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":140,"maximum":140+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NONE=3;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,stackAlloc,dynamicAlloc][allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[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=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=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr){var endPtr=ptr;var idx=endPtr>>1;while(HEAP16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}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=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=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function 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 DYNAMIC_BASE=5347808,DYNAMICTOP_PTR=104768;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}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+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="optipng.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}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)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___lock(){}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(fd){if(fd===undefined)fd=SYSCALLS.get();var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall10(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall15(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();FS.chmod(path,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall197(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall212(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),owner=SYSCALLS.get(),group=SYSCALLS.get();FS.chown(path,owner,group);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:___setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall320(which,varargs){SYSCALLS.varargs=varargs;try{var dirfd=SYSCALLS.get(),path=SYSCALLS.getStr(),times=SYSCALLS.get(),flags=SYSCALLS.get();path=SYSCALLS.calculateAt(dirfd,path);var seconds=HEAP32[times>>2];var nanoseconds=HEAP32[times+4>>2];var atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=8;seconds=HEAP32[times>>2];nanoseconds=HEAP32[times+4>>2];var mtime=seconds*1e3+nanoseconds/(1e3*1e3);FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall38(which,varargs){SYSCALLS.varargs=varargs;try{var old_path=SYSCALLS.getStr(),new_path=SYSCALLS.getStr();FS.rename(old_path,new_path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall39(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall40(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.rmdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}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>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>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;i0?", ":"")+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>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 embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>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}}var isUnsignedType=name.indexOf("unsigned")!=-1;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(valuemaxRange){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(heap["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 endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_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>2];var HEAP=getHeap();var str;var endChar=HEAP[value+4+length*charSize>>shift];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAP[value+4+length*charSize>>shift]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0){var stringSegment=decodeString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}if(endCharSwap!=0)HEAP[value+4+length*charSize>>shift]=endCharSwap;_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}})}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}function _emscripten_get_heap_size(){return HEAPU8.length}var setjmpId=0;function _saveSetjmp(env,label,table,size){env=env|0;label=label|0;table=table|0;size=size|0;var i=0;setjmpId=setjmpId+1|0;HEAP32[env>>2]=setjmpId;while((i|0)<(size|0)){if((HEAP32[table+(i<<3)>>2]|0)==0){HEAP32[table+(i<<3)>>2]=setjmpId;HEAP32[table+((i<<3)+4)>>2]=label;HEAP32[table+((i<<3)+8)>>2]=0;setTempRet0(size|0);return table|0}i=i+1|0}size=size*2|0;table=_realloc(table|0,8*(size+1|0)|0)|0;table=_saveSetjmp(env|0,label|0,table|0,size|0)|0;setTempRet0(size|0);return table|0}function _testSetjmp(id,table,size){id=id|0;table=table|0;size=size|0;var i=0,curr=0;while((i|0)<(size|0)){curr=HEAP32[table+(i<<3)>>2]|0;if((curr|0)==0)break;if((curr|0)==(id|0)){return HEAP32[table+((i<<3)+4)>>2]|0}i=i+1|0}return 0}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}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=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648-PAGE_MULTIPLE;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;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(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _exit(status){exit(status)}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _setTempRet0($i){setTempRet0($i|0)}FS.staticInit();InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"e":___assert_fail,"T":___lock,"y":___syscall10,"$":___syscall15,"C":___syscall195,"_":___syscall197,"P":___syscall212,"B":___syscall221,"Y":___syscall320,"Q":___syscall33,"R":___syscall38,"Z":___syscall39,"S":___syscall40,"W":___syscall5,"V":___syscall54,"u":___unlock,"X":__embind_finalize_value_object,"M":__embind_register_bool,"L":__embind_register_emval,"w":__embind_register_float,"t":__embind_register_function,"j":__embind_register_integer,"h":__embind_register_memory_view,"x":__embind_register_std_string,"s":__embind_register_std_wstring,"ca":__embind_register_value_object,"aa":__embind_register_value_object_field,"N":__embind_register_void,"D":__emval_decref,"K":__emval_incref,"da":__emval_take_value,"p":_abort,"f":_emscripten_longjmp,"I":_emscripten_memcpy_big,"J":_emscripten_resize_heap,"q":_exit,"z":_fd_close,"O":_fd_fdstat_get,"U":_fd_read,"E":_fd_seek,"A":_fd_write,"a":_getTempRet0,"k":invoke_ii,"i":invoke_iii,"r":invoke_iiii,"n":invoke_iiiii,"H":invoke_iiji,"v":invoke_v,"g":invoke_vi,"d":invoke_vii,"o":invoke_viii,"l":invoke_viiii,"ba":invoke_viiiii,"F":invoke_vj,"G":invoke_vjji,"memory":wasmMemory,"m":_saveSetjmp,"b":_setTempRet0,"table":wasmTable,"c":_testSetjmp};var asm=createWasm();Module["asm"]=asm;var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["ea"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["fa"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["ga"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ha"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ia"]).apply(null,arguments)};var _realloc=Module["_realloc"]=function(){return(_realloc=Module["_realloc"]=Module["asm"]["ja"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["ka"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["la"]).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"]["ma"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["na"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["oa"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["pa"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["qa"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ra"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["sa"]).apply(null,arguments)};var dynCall_vj=Module["dynCall_vj"]=function(){return(dynCall_vj=Module["dynCall_vj"]=Module["asm"]["ta"]).apply(null,arguments)};var dynCall_vjji=Module["dynCall_vjji"]=function(){return(dynCall_vjji=Module["dynCall_vjji"]=Module["asm"]["ua"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["va"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["wa"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["xa"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["ya"]).apply(null,arguments)};var dynCall_iiji=Module["dynCall_iiji"]=function(){return(dynCall_iiji=Module["dynCall_iiji"]=Module["asm"]["za"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["Aa"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["Ba"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["Ca"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["Da"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["Ea"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["Fa"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["Ga"]).apply(null,arguments)};function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vjji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vjji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vj(index,a1,a2){var sp=stackSave();try{dynCall_vj(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}Module["asm"]=asm;var calledRun;Module["then"]=function(func){if(calledRun){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];args=args||[];var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=entryFunction(argc,argv);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="unwind"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;noExitRuntime=true;run(); - - - return optipng -} -); -})(); -if (typeof exports === 'object' && typeof module === 'object') - module.exports = optipng; - else if (typeof define === 'function' && define['amd']) - define([], function() { return optipng; }); - else if (typeof exports === 'object') - exports["optipng"] = optipng; - \ No newline at end of file diff --git a/codecs/optipng/optipng.wasm b/codecs/optipng/optipng.wasm deleted file mode 100644 index 774303604b85ff65534653b168df65ef0728ffd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177359 zcmd443!Gh7S^vG(+WTB)_Dr(Vrfr%DcAsO^AQ>8bYg*F+vw}%4NooIxTKu3k3W#R{ zcG4l#zinoE0SdHGXqAdp0xeK5K*9e1f>cSdl%l8w%S**pDj*gwSQM4N6#9OD&)WOU znOwLD@B22Lv-e(mU7q!<=eC~pthL>)i(lZKbN;2_`!5U&3+_U1e}3V@Y(bBt)%RR- zl1Otd-I3B#3Q29da+4BxlGyT{jg}9r=P~@cV|C{PXgpW`xqpX=KEJ`aTL^1o!i&$sknwmbtjM*6JF`Q2^zFK}J%U+4;c zf5pmP)K*J*n*IK`<=pR{&=%2IyX zelM`}XW9MF*zeEV?|S`)UAx>`F2Ar#u!LVsm*?!#yY>s7`+{HD^Q*xv(xKM;u3y;w zTz`?f#%I5mzdMH$yDj?Ca@>yb+YYUE`@}4SuFFGkA#80Hb$PWOZ4`xrw3}&(=IH z_%P9-*ZKHZJ98`Z(6Rqqy4Y_BIsQNl!@!lC-B#d9D5d6BH*a-YU|YBCZhK<9pyh7S z?MyHbh?02lJ$Ew_@9>Wc&)wzzArH^n~eqQ!|X2i z>si>n%Uzj;7wmF>>%$9oxwnPzE4$o3hj7s@_fH|r?Q;JZ!XD}h;o@EH3n9$!au0^^ zqFwHR5cckJ4~OvLUGDEgxMY|6dk#5D_t_A(?sA_A;c3(#!jJEA z4~4L8m-|!*+jqH7hj8XD_cvke28K5J;+6gj`FrwLW}nVKk$*J5JHIRcg%|ynzdO7lyCVC~@R9H-e^;|o#EZ#5AxUL*N4}J*M!&P*X17% zH~AaF$HJ@g>+|cv)6O{O)#1lKlYc6|FaLP{7x~}h59SZ#?+bsG-=F_^{%86B3V)Kn zH@`K1OaA8kmi*@Yru?__2eQA;{xtiO>~r~N^Q*(ZWM9lao_#EPfA$C2`?B|D@6K+^ zem8r2c5C+5{7QdwxH-HwyVAcVdr5Y6_G<24n!P-G71x(#*JRgbkA(4;|5^9l`44!% z5N0a3ZPHb4Lva0Ica^WgD(8yImmkhu@jM?=u6$;~7v%TT&c*LPa}vDvLdJ6y21=^7 z=QCC4WfP%@D|=ZLq961_TuIKNPy_i=1KGgZSV<#QHYh)o7ps6_TjjUy*+wnC+*%Y@ z!siRrvUt#)N19VZWq)nuDCKCgmkIdFUmUYJ3h_XTXDMed0BPk?`tZ?!4F>)eM>)Xj zQKdmyW#>)mKARJ;RF%a`=lXd(=*|W?p~~aTpx@dt>F6(2fUM0y>D=X;L!R!sn?pC< zO>7Pm>8{)y%5=ASb6B13)@%-I(%rhvVO_ebHis(Rt=}Bhr@IZC!-jOXadX(1?lx@> zo6_AWo5LyT?zGL}v~+jI=5Pibo0+wa&CK>g)jHSEPZ#LnGU$EG69RIEsmkeSA+%*N zKYIy@;9=0uD>sq^dQ&|Nx)5n7^;;bH6LP~A7t&p}#brRVtd$0uj0%_4a>#JhL{t15 z(hn1Y5vhqY4EkAI7*sUqDn`*Dh?#~di~B~?p{#h>XaZoxPRe-cXu3#sOzAH2HwzK; zL5Ve}tU>7JNUQ)jfaekQbL~C9d*QAWA z)1^!oh$db%EVg@i_x$1AbDF9&PIGb1o_@|K$4d43cl29ZtCv=-t9mW!6W&3wuUe;O zYtp4mmu|X<2dYE@7pgxeLEqxk;u4vbb=NUIQ?cPN@b7Jebn9psS^b;9;PbJ(3@#&WyS6+sY?ui2z zy92c-9#=X>*A%r*yYGvos^C?5nF#=|cRz;+Q&T&mGtQTg@k;0#!P1H!h(9H>RH}S4 zH3utl^o%Av$XOI`pY)w25y^-`6^?P2u=MegxxO3pTJ(`-5FA{PM97h>%1oTjLaO(_ zv#opB3%De;M5hl};+ga(Kx5}}r9c-xLjvt(B(nMV$UEDEGuKwR-c0m8vNhiG&bI!j zF7B(si|3#{VUpfS-1rJf)J6EJ#F}0kunZ0gt0AkX+Yf3iQ03Y}OqvP?6*SqN#nn)P z0c;FaE@5@oVP>3T=rG|p(P2xi zB|5AtPtAW5Vr(s=uoe_HB+c)f7=;Rh=Q|)qIz2*+tx;m6yEQS=)guxk=|+sux)9Y6 zBUE}gp)H9B*rK6LqrPuIosyVoh_QS|29?oYsO1Ly2QSR`q1z-+1Pe3{Wtz}~CJJZ+ z5=y2FmkGg_E)o*}k!^LSiWif-k6oIQ#E&Pb{l^~bphebFF9QDSPaVW^Z|u(XX;a#F z@u8C}C7m90JZuI_1VY z+b0G0ULrtzejT=k!~$nOb|cxO32c^ksJ+Nd{2*$@}eD;qENc+m+Bp*{X$(&&wxU6=cGm zNWu`i0s)92RP=Kh1~61szRgSi0hGG8AylhcuHQ!aM!#cHqJZp`e<9T4seL>5rw#Wm#8}^VU4p!uuKFwD8V{-i(gw5uP{W)e(C%2$^cBH9quL#SuJ z7t3P#vmZX!Jk><^q?9A^^L$Emu)u=e#gHj_-*uzQB|!GBx)+JDKHd^#wbX^ zMagJ2mU`ma1j!_@nI&FiK!=@<5M9a$&*sTaM;`(BlAVsbFD@`^bnycV=x<{^$nTQ5 zUaP@%2dM+5=|3XT{@Hv_`d=O->HpS}{#O+v`X8pCm!tY0ivUqNs{gS;(f=T6PnDtn zA^v&vhFhlpyQ4#rC7EQVOUo2`*A#j;DRdn9J!iut9VbD;h_tJ49{ocER&5jrJwl~t zJ)208tWj*E0folLi5HP5WuIvWaJ8p;8o?~OGv^t^%#;@xmB$Lc@6H1<-G=Ww@b@-` zB0V3S^T{F3mt6ZcIe!EVJ?SP`>MIWVdxq*PxBcEdhfL!`p7#*Mx z7({rzo>#PHg(k>kO;3!;&2sxa88piXw4O{FfsRSRK%gMBRx63(gcT#fOyFicW?g9_ znKII(kuT^U5@?zVO&|$sX^ViuAJ|A47iK`AcrBJnmbHu+aV9q)S74B!0uRI4oX7d7 zG~OmjC!yHPxm1BozIe^N$OIvG%cVaUH(@EZNmDz>yS0Pnc}n1b4Gaj|urnIL0d?|+XhL8`sgZUpCn_q4YzoJ!rdaI?67k^gc%lC>)0#2{WY z7w>=jC*Iz=SODDqo_b1oRdcggVMPzH%^2)iOl4#gF2b?6Xf519U zW?8Z|lzmqNHwj&r7sdrSUd-Ta(>6V6&z2Xioxu8{^Jh-B@ZKPQa(jnq)vD9+pKG}I z11m9?zGSxDRE-WX>)tNOsEkfQ93p&Ljp-xjSa9;z^#l`jgFamBPeTJX7F>uR&pLAu3-)pl2@#;4;$@u zSRtV9Bp;p?7b#=f&qeuFp)c&5@t~XJKdC1Ui<$B!USc+7ww}sW8sFbIb*xjTzUDwQhu|0 z+ZA(G78=xQpfc-<7Qe`YPlWW^|79=a|Egb9<2F~-1sDxadF_N9j{4F7LI>XsFPB%1 zpqlo$Oh{j(3q0Euk#zps{;eb0w@9C4-yYGwMdRzLPI9o}R8GEf8QhH(j=+)wFHNZA z;=-P?2^HR02`tS&qI_Fak8jH-Qy8jbglpdxw~cR05Snj`YUiOCnI`gWnX$$cU%nNp zEy0H9at)UnSzNT%@Xf`ppgK(KcD}LLRj1+)X{pVmcpjf+QhX5q2jZP^%b;&O0wGSx zBNgNwdwejbq)9`&?<$pdU4-x{TT05~z!C=`p|A^Z z1`2!43IVC+IWsHKCajdG$&(rJf5QnY@{|aHJh_ZGVU0Wy{@JJ(HXogZ0YKx01zF#8 z7G{3gB`+*A*UZ8~GYb<^M!m3b$~ux7^7LUyo*3D3fV77mSeV?%)4D;Iq(f{0CO0ZY zrbDGJQ7H=Ma4OBWW1_i4rR1JxOd2XR`DRpV>mqW$ibxN2zrxE5n%u8OyT&Npv_2(* zHhFE_j}K%_gYRUC)kO^X46}wJlN6Q5){0~{6(8FF=rR_Dj32ngeO=SNXrEruI#Uq} zCh(hurAANI_CNOE{cmnZ7Wo|#Ugk%@icUfso?O=-BHc7WC7)KpDY#2Qn~v?P+>7V> zVm#R|BN975Y{kMPcAA<|6JwX0l^P^?zxHWRw_eC`X)l0@unyS^FrT`Gv1S|q@f(AR zMUs~cafElae$AciduXKQ7e#>>MrxKZg*#k~>V2E*76ADTSO!SaiUlHJ$zy@W|8{tV zg`-iAMQe#yS`DvYLLJU4HM0&!FD+a!RKPsnZw0REL?0`swPMC+pL*5OsFegsrU!gaL2S5So!N2*43CzI2f$?ll^w)T7twl~-5&~LyZ&2kas_BUDTzud305qj6xVsW4eLuU`YWMNt zfpKxn2E}H8r2qTBj%Pm-1N^ZPA{ zxM6vPPa&Z3_5cs>pBddbb#N9-ta0^j(Aia86h#xDhBcX2MizG!+f}vnR<`5$M$8C@ zjAA%;mI@;J1VfiVDSDCGX2yXNM7URNXC-hqhqJ1>FCSR2&hT!hToZ^OdRxsEO^LE8 z!MsuZT-_AZ%o!_pv>ZrMInplZx6%y@%@{;EDo^4p$Mh84q>f&&tfLmkIP9qUalx?m z8rH`iyG)I0s+j|6h@bxIzBxncR9v{2S38U1lOB2+jvt14W4~SfmbWpjtDutzSkvyreioTxSiMLOToZfx zu=?YG%VOprE>8f2k_0#<)>Lk{p1)6(@R~XirCp1aMZB@bpGG+BjvdK6WC9CETJ}zZ zf+)UJ!^!nVR-<0+wbtxv)5L;jAvMWmzMWQIO3 z2JXkc_SF{;AOj*OFA?2hcnCgVUH zD7TkX`Lj&g5~N4N3+LE_#`^hjA!(^@(~ndznF*BKy6}=q#SxO7c|V&y@GNx_OCf(N zg82CfW7s;+HwLu!$cQPPguB|V%MvK+2L~=aHM>NNuV4)jQibI5B?wlN#$qdChyr0Z z3okhIwZOC!DPjYFu|dE=syN*)MrBIkpZFO$>E zdbD@Xp3U^N^1~y>=%_uU0Z8g6T%9f@^jBx;prxH>yuV_41em_&M;mnEGszf#x z?Sc)Ai3K@PG)}OX$piInCd!W*W_Uy2AqS1OCzgfyrSvSq!djN4amm0USy(1Rp)fcw zyha^+PC~@AGDrc1Cf5O~hsp}Ydb*TiA2Q6gdhQ4aaNWbILgrm@0@*=`5}y_=Tr-r9 z!INjF!j*-y2ug$R?Z$dQW@e;|Uwat3E6+181*9v_8eK2r-CrP`2K1`17RdIWSz}6K zw-MYctcb@!;G=J#V0i%{6?BZWIKEv9b#Z?p7OK@Gpnev>GU-^Wu=ll^QihZ;%wRCk z$v^P)M$I*1m3w+}B4UqjW%YoVWSg(Dr>D^1yVqER2@A!+Mmmz9(2@+ZaGMI9Ggq&B zpl(=K`bnAv@>8hb=v(JZ|q)}Oa69$`*8YmXfsae7a?wf1O1 z6ney+MP_c+Aqm@LGEXT<;2OfR>h&6JLse>?D)cjjG9iGvxUvzMmD|d~;9~hqDsjD5 zEu_s55`wmlFA^#~zVEWP#!bY8DTR6PV{h<3C2w*MvN18-daE3{8N-xHN>`4*5b-{~ zd$uk}qb>Id7|}IMd3_iq26$5Vq*%m6(l7>5 z#KM4Kmp-HSo2(ZM5ThGP0@}0@f?+_2KH1_UNVv}YCE%XYLKC`SC03tdi}<0yeMC&o zqn;!VjPYBt1w-b+a(=RB%@buJw+Rn)_Z&)dmk;k45o|z7{Hy!r>5>BZr^1^&0t{t=NM*SkS{7W<*gb(PT8}Wq8%mt&iLm@V zh=q8?U9OZFK-C%;r54dsJ?Q22z07xf`I~ybA>1DbFtFh)&rlt($o&$(P}LA@-Nw7` zc8cOJR`P)CjVVTdXYn$B2z4-;__3O3>!HvH(t1W6a84`<0x4t+f)a6GJVm}=4MDE? zZ<8?0XFE!QpkweAR3{ET*&lCp_3#08IyWi-1SY@-A?H7Tbn(q}+j0)Rs2X+{bv4P0YOXj76gLttAV zF6>J6gvpDqgX}6;Q@fkU;d@4#S{$;uwsE;~N9ixAtE4B&H)WM$4wZI(sb(-h>$=O% z1PPJ}b!;J*I>w&1s2`FUNP@^=t|TonWU=cLGJGg;{ILn%5I z+$Ek9tqC!PgeE{1(H6)lS}#m1H=C)j;cO;p7>sA6TqvH5k| z)iPll^0b;Zfz0TYnQB=;_XT1~%0Ub-=uZwrRO2$6JB0BWw*tx}`g+h`F?^TT?^+dU zKIL!KX>Fwi!jV@d(|Xd{QcWwjO?IdXf+Qe`7I#9CN}phfx_CN+MAX}$H(7&)8;MMl z23GmsXuq^dhwYcc_9xZ8aN*AaMY!nTr09ApX1WYOq(*T7P9V zp`Zx44;O>nP2H$)iz-VO{357v2UX8Pbu0L_Ib4)j?@oEA@ zYk!~c)>n2~F@osP7}&E?EFdcnGj(kWL}7`tJ!M4mtisg9K~#|@9Qip!%i!!yEhDQ~ z6hOyOe=gEcS-rLHKsEzSzUhe-PBpT|Azv|q2R{4cUttg*7ysGCt6uHP+!gWKzqXVw z4pYcJsq8{mx03kQZT#1i@Av$$Wl6MSKwk8fr9?#{*{M#~^+C4qOMeN2?6byU^ z^e1WRfqF?|BoseL6=4SX2}-oDVG>T(koh`}WkItlFAZp0@MtQxc>~$!Wb{xeMO$hh zU{s%XCV>xorL(h zgD9ro6fHril1%Zoo7py3mx}Maxm^o``0kqt;fn8CN_Y|9@nF2-cEcZ}UpwG!ZNS*$j_H2J3PEeQLXa(6A;?U|X`3*7gr$H? zrIutS9Qtng3IUw0Y^uLrA;{_#f^2Dp08jeSYLgG^sPC5BD~AFiv!u`V?_qi7EN1Um zkLd+La>?G25d)B`F@YGwW)BT63}r8VepKFKI$&=|zA5X+ZNm|CZxLAxhAas97YBr9 zDPhu9JW_&GlP{lRd6x;}{kb1E>9(<-#s9iYp=bazZxdRLI}c}Q=Mq<3yDM3EoL2y~YSYJAsr6?nE)U}guL5~5 z=(p!DHjQ!?9mRH~0buGv;z;j`m(^H$t=tCWDV5yPY-T6n$0h#f2mSGrJ>Gno20<5b z2bvp>yL}qL0$(5w1*GQQ$eKL9M0cuz|5Jx?u9-KuM#UN8p$*|6z00XdrSLO};smz5;YQzeBW33@7^4ejWv3tQU+ ze5-<@I2H&{a)Kk2|0mN7b7*Q$9LdyvB@B;0i`bC4x``baMsJ{H;dVOceD0WwVKs|DnD}yB4A>vjXQclR3VYlW0I<@y~LzX zo3bou*s20Gb#_e2W7yB3x86AOxN2-~!M+y48{nugqkn=43}A?|sG0}>EX*;h#4$kv zIk=N=f;}8_Jz44CPthydV~s+~upcu$;%C@9J1@xE=Msxd^XN0_(qwh8RRhZ0KGkQZ z)o$gVkB??^gLqe3OI)KgR*&NS*J~TVlym}f_Nw*5UdVvbR#D`7le*KIP4ee==o*e{ ze#ycb(H`koB^FXO0LL60JjXRJ?#aMazoAJ}3z7|JTC$N5Xy-6@6aM?H-Qu*}$Y&%@ z3)@OgFzzCul(Te`9VHbyWXF`E-!tS6m5a6+QYxzRz+r9Ux!QeW*rsi~TEQ9OK)spK z00{fbCbv5?fEc7@PHUHH}bFwfh^o~~6R@NceVNW0FwueL$9N8W{*x@i#*`AH;u0y!1 zw{27FG|c#;p{a<~D;`tOpVy%$UKW`F#DX$`BtQb%l}pnV^#<{DNJli{s)Y-18&3#L zwjfITGWZW^zZRbvc8Zm>9<#}Nw0)H3f3JP!-$2Di2lT7;NTj}O!0R5-H9ChZY_i%Y zqfSwJ>b-;p_#R<=bH17!XMs!XF(&q4Mmatw$8z$azwM*8Dh^`)^3R*Q>(WX&X@Bu? zOM8`PohCVCJTo2_dz-_TWt?Dq4PrN~RdQS2X(A1A=m^DTF$}@cERGSMk71Ekm3XC9 zrEtKbZ*NZ(u{|bdv6D&}_yfMYO{mSvcX5e#LI|{{{YNyP6+N4%CGo8tujahej@Q$X zhO#h<3&^30)@Uv6^PJ}(0|SI&3QXZ$Oq$xP=eEy;Ul#Gkss%T%4^9)kbFGpJQsj1OKbVZOyFk`~We zynlZnC?a$5;pXP5H&U~#_Z?CNj3e9RH3K#i(IJ`D9rm|s4lG9o;@QT6O-5LRgedS* zb6}(g>6o~y#?|itSk$ErNx%VCQC5Zn=2Yv7;!R%AF=9X3WDJ&3Nv9}3vGp<$$fI+j z42=W=$a_irD{F_7Ub!~acPh3SGYD8Uv*e8yMbf=SfFMBOt}el#dAz&S(3DFz)K8A} zh&9?Qik~&|G*{y?Q0PGeib-emOw(wj7gVe1=^DUks?|hNMMi7iWay6MX1`@N6M(wh zDQO%Jrbt?&$FQm+dql31tAi}GATr1U`Ss5XDv5sC8s_RY!h~MISPGRi84Z;(XS1TB za}Q+c2ryej08kZ3VQF@ZO^CV8vt=fvlc88|&`D5z=2UZ`L5InoIuBr-4{bS zL_}atj7CIgBUREjRzZl0P(tOv>sgPRMCS>3ueuDD!+@s@>pVhg@rSFzN+Ko@0r#@W zsDl{83emD=C!RX!9mnOgLGKvEmk%?B*_HBlSO*mbTdkbM31{vTR!XsRdMjn-_-f^# zNBtd~F@3~hjpN$mI#Z9=1JYEyab!^P!9Hw=Ai<-EwEYTaIjQmOcGG2)L6A!+DpMqp*0C?s} ze)-2N9*b@yYp({rn%E=YX=JH99i|(j1=SmxDdP`|N!V>7IIRZ~riN_we*|JCh0LT5 z?qeB6HjDKl!w11C>1C2VJv`mLV?kqPae&88cIe8n{7o9VSk5F93dEce$pbW*h81)( zs}bh$owEQMalp?~jBTN;O{QV%#E-f``47H7DWV}#8FFC$0QvtzMdwq7Al@3BAxWomi z2R*XYz`I_T(d+hB(~T82c`Yq2QP|{a zzj~~OG*-|HCSQ531_x@x`Jxecd^YnG{5srWuVI;pM(nX`DK8FjN^2mb&ofz>g90kq8OfrZf-SJv?e>Ck%~l@(DIze4YtIzUM^ zSH5GZA|}~Xe!g~q$9%6EmX-)0%C>65JxQJ6^O$TUR&Rcx9EQ6?1WrEDY9kGVK3kX5 zaUDw!<->bsNU{fJPTH)#R0!Op2P;(Lpm)3gEa3R#LB}umq#aE%FplHM zaijv4E1YMDKR+F z6vs-(R4f0TeNvW$fu)uB)-0S3McM>QN$aW6%-68d?U2x>YKuHpe4xpS%qI2{{$f5x zT4izbq_Q|i@W{e+6>c41L_foOY70}56EAQAsRx>in;Iho4H>CGG+;nspHVX9RzuHcYLC__e@7@lXIz4p7RvIN7qhKr?osL{mmePiNfe| zH7^t?n{YCr{Q*|Vg{dq{n`93}#WHuGC~KXShRMr^3|Hw)CmpXdh-=TDVh)v1W07$> zOj$UzhrODRWJw8gNQ4EW1&Nm6oOd`817O8Tip23Az}T|hxaN>R!%CrAlxHG20$?7X z(mb}=nB(GGzerm73-Qlb5kX|c!>382j6#S$9@*~-<+WoDN^ZPVNAML^$=3fmIofb&bhWJ zNL_`T6>2gr6=I%s(%C%_L*X7Mk@BZ`WpDGRg+ZAW^bo$M&+4k&p4m*ijtQRCxbwCps)j^Hwj;hXaQ&7Y5(iu_*0?K+im8j`FvIBw?M1fauTeI;)o$^%G zU_$rHFadH*N~zFe-#IRp@DMd_8Lmt^7d37f_O|ZnhG;>EU<7Qq!3{%jB($h+5CfT0 z&u%fS2ptviL9FM}LmPyBh6n32jR|wPR*@4tH73)P2D-Eif(7i8RjS@xWx|i1#SJZr zgY=OKa*RGZ9u33Gh75WIuZGD!;=yr-E}bw!z>WMO*@7115g&T;$g*`BX2iUT9HnWx zB%CQjUI^aAoFl+!f@YB(fGS`ZZ#I&g1TvaV;iJ{4cY&`Nb=`+_9D@ys7F=yLo2(3% zx{#lh>QT^oGN$-E5_PL9GItOP(&HQ$ zi1djJCqf2qA2n7807W5jL)tH*FpJZYdS672NJKg1v`pCy-3BS;FV=~P3K$P;F{053 zL@2Z#7r?+EK45#sv{4W&QGvXDAphPC3M-;obZWeR!vO0K^{Nt>jO^Y#UQ-I3e!LmW zYyyP-&J_?QLk7}j$DVQvZ5`d-8WBb0ZyZ zg4}{aSVx+%vpR}fTUzqA@DDm9UCTa7hgXx!gu;6)aQxm6qge0VfZc^l4a_BB!>zns zK-$mfhmELVyC$}KH_)CTPADGkgfj3=SXP14j)V$r0i!Pfu8@hg$)_}KBxySjWT1}f z^=1IEhZjl_`TnZJc9FEIyPq9I1N)50PB{9%Bx~^4Vc|;pq-=OCmuT zqlwnWYg%i1B`DOV4dJ2VfHAS+ffKD_Jg;3LI zuDZIKJQCr9AEU8;myzSa$htqq!$9cb@Gylj6rx#ps8iozp<>NWfpAnE)Zb>!@j zv>aNU_nHF440DX5P;n@5qx5SSNL}#dr&(Z<{Ec_8Y4>lk;w5ALc-a~=L>b6T-Bj7- zv~;P`WrNmC8IAE+VfWH2f)ePHE}Vnawp;6<7G?V=7LghZDVk^Du!l9Je@zWcJFGlB zm_i)Yg%mc|m$TMjjR(VKPQo#;(->3QrZH}HY*Jy2 zz}mS8QH96Op6U@UY87QKQYRQKDGR0dUpa=`J1bXK>m z$_|xCLyQao0Cd3!BcU^&h za$OADnE>zq2YbVN<~mV9KzeCq1KpON79ZT8ccQJ)^p3$90j_%Z{dI6d?{=8}m!?{{ZKnw)BreeQHsMb^~wJ5(vVYA>GlA{>wsDt@l8&tP7 zE_KptWWOISti_C61KB1oF3&J3FULOshdJ1kTnSs zJ>cBsftEsXoyRBw4<$q>1 zxNdPj8t1&(vK)VIWMr6_#mo1zeoX`_1zyi#(&jytb}l}mHTk%&N4Lt~*9_a6ZOdK< z+GKM*`@``t@xY8-?QO6R)^J(B%26ArFe{jFv3@ANVTPG+mf^H-n88{$IwOcmODWKg zIcGa@A;KK9(Z48SZW5WoSyb9o##~h11`b5ljn)L~P^H-_@L3OP#@5-*PZM;7o+o%p zA|@Bx@FgP^OyNzlw35YcYKLUhaNpIf5QU*xDzwYMcO>m4^=OWYb{ooz-_IC2sW$a? zeZ23A*ZheN7*5X@nn$E^`nMrG2gSyYIt-i(v8`m(n}DrYyEl8&mGATAEBS(1on4>Vpq3owFTKPDP;`?9buHBy$wP2rPtPolT%(cK}1C{zkvM--0?n3nnHsa)2ELWA3$Ct%2xA=%S70|>s zxn!jg^dpcM-a(D1t>zy`Uav2 zL1d9Jp!he$kz}x74}o#|GT)6E+3^bcWw9v)ztX9DeEIVf@;dG{FJDa!$?3^a?W`J0 zqsgOT4Ai1U;=L6b)IN&4tL>z<8;T6m2 za%qtx!$r>>hu5p?2k?zaLP_Wle`$`k_%>pRPPY{8rBhcWlAyR(i%#Ndd4tlq5Vq4= zT^3c|C4vUC2U$>hPhuCzIqe7+!6i|kMiCNJS%*FGTq&?)b5J0WA}o1H_6I$)g*X1X zPZl(YjIU1*CKxi}3lmpaeItc~_|@RKg?cny`FpOl3?fGF^9)?ww1L1^hm@j7EUvq` z(R+npK1qW{^`8qS{B`@@z!@1-wjq4Q?i9%~>{(!wbb^TuwL}oTSNH%DWC2+Dik`sI z=L}0IcC-pd?q9@-)hMjn3`R9@=$qTU;m<@YC6GC4{x*zHQ0NC1p}QeG9Qww<;*W=| z1=}iGzERw10Ix$o!zk`ZY)f6w29v6JDeXx zu35Fh5X*iNGO;$}f^EhR7#R<^@+k~&@rgz!g&EZ_?Yf#Nm|4mL>vJZKr`>qc6Kq^3 zTU+O!0H4MC>i`jsuzAW_t7w#qrzmR$WdK^ z1X4@Ani!N9Y3wsmmhJ0E+dX0_Z)mRIat1=KJ~)ZVebk2ih_%M8+bM4u`L&z4BlhRA zok{Rb_Za-|YsEY3A)>|d*^MipE)u(93W{%F;If&>wr=pP@CByyBKa{;%WzmY$N=8!x6qgCJ7XJ9UmQ%)f1u|nu)Biu#Mm_tz_zy7inFV zigAoecO^>1*r1S(5U~hqTb>b#B5Mc*qCy>3%WD(=4gH4lmju>zZQxph>OLQTJJFpj zS_YZ`>lQo3^h6R*qtI_d_Y5logzW+;CIJj*C!%1Ckc>~Y~c3slILON>QXp`wW!hw@g(uQ7;|70m(KHzfY9SOz7nDd_3YtqdMjT!h(Lw z3*f94v9&D!Xc1j%LDllMwso?S=xj3_22WC-wm$WO=(ZwKU%K`3Mg3P@xz#;GGfy8+ z78wL-NtXwZUJDVVr{ZiBqyFG2aoFuCgZzFCe5~0df++b*0uBiXFue7> zVXm%aToetFGBQ($Aeb4t;2S@l_$+hVF)Pwu004Qqt?R~@{oeo|<0^B*O9A=laN`Mlw^-Oq%St!&hCZC9>QyF#Hq);im#G@v+ zXZdr+^WdoIf;wQxQtL=$CSHuAf*VFQ;WkSqc65Cn~TU2k!+F;jG&Y8Ddse;{D`T4 z=)@lJj=yec!qKM|FajWABo5F}Bmj3`zU6(dZ*6C8Sa8^6{GrOdmHAk8^;;{?|8|45 zSNs4#+L}lAXF$7lLBIbM7=_DsK^JeIVBs5JATe0fx{22%Ft&6O$)HV2w2FAe=nxqK zw;W*Upil^~KF8k(r#`>jWDNb`C`x`tKKV&KM>=Ib8~NlXxIrS>Cz2FQMPXcp zCAxCm^93x0!Xwc186iWe3TihrgQ$*Ze#C2-M&qSju+0+`Ax1_9WYDv^JDN3+73yK( z@W`M1G*Gl@0N=5@Wi#TtXOId#VghRQO}fE_ASq}-8Oy3 z^P3Quea5pPDf;_eAuvZj>(6+8+XP1cMhMJ4_Z2^%oY~;>}+gYN`RxYv2|fB0RM0Z*QI1fGJLt-6&r>cnQ|%bM7*8(AQBOwQEH>Z(KB8{ zMhwnxp7C?9Ln?hM8Sfw?^X_Fe{?L(Nd{pMv@_a|^%MDaW$Cg$2kVlBWf}4doBT zhq(LLwIQMl2*CWo^75=)%*w|?`SnnKEtHRj@~ffzFLr~65~tdKP;5ND|5c$pA>MLB zh#$7QN4d-6!`vSe@BekW5dYooZ~qOYU-fFG-!~So=jI2>e-H6aZXWXS^ISgdMqlEEBI)#5aFp zCErGe#BO5?{WvtX0cvG>EZSON%9(4y8#c(<@GUysf!`1-mRRgP+ZX_Cyo#)DOMtx> zZD-}uQ8n?(SNgK8R2suTZe9l@KG4NG(l#)Ck5KxDuml{@Ax)UDt~;e2L5h*hWS_HJ zZZi@GB5ta2Ne~vRi2@<$8H!QaiC&kG_c0l>EoK3%wp&x9kev}f^jVlaZj96ABr}i0 zfK#6j0g$~74S>W;Cjb%sg-+GsS5RV`8=N8D@g}?z!d=tb_(Xa#{=I1GVBM62E+BVo z2=+tspS3|40E-oEL%f8%A;@(jp?vL88aZT$Mrdd_M7G1=kkL7` zfvkMZ_o#t`(6?a<9#JG!-2Y13<6EvcGSM6i6^z7+_xePJ0&@stj6dUDg_3IR6OD^&O6!EStwTgj>Jm2mE&x zr^60?ut8dc)kMQ|>&)-+05*-4H+_#faaYp`p#RYKa9r+g+NqKC-KPQMJc8|jeEo!* z+>RDN{M+=t8Yd{w=4*I34onji=UjYLSGBzDWb`TfM9i5287 z)zkr#Ia!W9RtSH1`PrCkwZWSB=o^KxzM~Vj+pYPUkom|l#Wt2(>nuH`X{uc3OP*l8 zcReObR+fjaG&c`7H`f_I^$3JcGEz~+*-WMC>Q5hRjZL1WiIg=(ajJ>i-WZ^Z05h=cI4G5 zLFW}5@zswW{nd|fSn*Lx{a;6awaFc|6n@=Qp~xg#1uYFh(yFyqtC`Kv38BpPxjIh8 z*Ovz9oAwIrO+zTkVaJv0FmDCwP^v5+#(S8b^YM14U$V;0QQk~h`CW++l5-R2 zY%7t>!Q@|)Zx(>hVPVM#q0P=(x+PyiHOESn^=Om5I(i#cH7)D#YJe6DY062&3cIls zxWa0*mQrX;PaC-$y*g}m%rFdg$dA5J(6)E!F|~lCqXs=uyDp_Ntrn8?v>N=fFK#M% zad`vxrcY3j?8#H%x(4&KAy3u4k{q~GS0Fv#7=~Q55IiddmHWefw)K>&-x?oV$!Bl) zJu|sMPw?1wtez za;A?<*dmXkBPfCLXU<&98S{zrv|}Ub22Pnt;NUPbA(=K=QejDWLk%fzqKt(ovCs~% z%nFMw4`|NG5U<7~qm5(6AB=mmy;J0zws*29wh{++NZyBM*?d;GW_3o3Bf~9^PV(jm z`xr;Mxluk^aT^!Kei(8$i4mCsK5jVj0R%}PBvM4k@%HT@5f+`-IwJC^d^-_@cz?8N zLRa%?X9r!|s*)Vp-iKW=d`*TTT^#Dj+5Wog}_AKqbu-_PH% zPpcv|rQ5NgK&GRD>tP|dP!dm4lx_naB(`?g3(*X0tOZk0b*yg?SyOV_X_veUiH1i?K9NY+&6}U-$_- z!$&*&SX5V}Oz0P^o5oIjg|E0nA?gEY_-WXb1d`aT4t|m8)nwm73MPdiD|TkW3@5cc z-K@6Ez8yjCj1BAt`nd8k-FM zm5gdaC*~*{7}M<8M41sXp_HQ^b363i*mMfnk@w1UGRL&G>SJ12!X3nm>kQMlEo*Z!x->+Boj8p2oea%j)Wu9)Q)lR1-I+|iP93sBcKqzp2kPKo zR-8w=mDSx!8ftmB4t;l|ZVgYL)wYDxEjAd@EsT>p*mBjt1*-2j4lK99GM{Ftzn2F^ z3+_KUuD=YZCAC2x!1d^1v)>9(`7DdB)(BFe0gGUl1}vb;po_0PmepU%H1=^US(=Fk`8_D~q%q5vA;~H`*?;i=4I~L) z_1M)&`ub6jH2R^#?;eu)$e|%A9da~6Ja>H)?A-nT4R-$HDA*bQo{-RsjdXNGBQhB7 ziulnG6@~2MS7;xZtcS>ZBxkXm&67%E%|>$oHhw9PDpV_^?uz1lK|)!Q7#SH5C#Xk7 zcAoC_Xy4B=;Y_p(ZghmUg}tz^=D4)Y_Aai-(0B(|&Xuw-owjW##n`LHlhigbC8=$v z3YtFaCaK-B^T`1o&qR{iX=^Fc%eJ3#CZ;5zLhXodQ@{g?T0&3q4K=PUs)#PzdNye# zcv6WhF;+2}#&USdu1&gdKBYh%J6xDxfjZ(JK%Y=2WFZT-_glpH7$RGSI@UWzQ1_WG zyKDmx5e7YN+E(X&Q?+q#+60@_Sr=`S0a$Nb?{4JNp#xNdxo0KgNxMa#6HQyH>@Z$% zXU0HZpD5}fm20`qBfFJT3w_ClbfmasLpCbU4;7uG^6Joc-JzQ54AqoGXQ~=Y%0#Ex znRzX=9{OSmfyc686*n$+6)-MX+sk3i`_P6RPcFf_q<L|>*jQy6}5BDFzeBy5SoUJ`@d>=(AwXj zu3W;c>A2>k_93jTC0JVxtRgY(3}l=;u|tqMt8?}x5sayS7{NP7*|iei%53J=f$c+& znJ+mL_Zz@IN*AI~O_mxPUI63o}`M@3ev}`FF(kqu&?SR>}8HN1OREp|)+DM=3T^ZCyh$-bB!FR?pU|HW_%{n4A!v`1*n;;kOgTNj~@-z22uE0>Z}szls*E0R>x9CSclGIZptHKA4j$> z7B3fI2w_c_q&!Hyf%zih7bUoTLB{+zDk65|PIm7;m_CY()+rS zWA#3@d)st!xNru6!LeW08^#89Wq_e;}P$ron>TKJX(=C1M;=}$4u_aP`o|&rJ-J5KSfLKRmn@Z=W-2^BU=8}{qDZi zxp6kWG?)^t*zYPW&LR9sxv<|!+hEyo)SFcDX~c4qwG}yNzqeA-2AoWz!p1?DZ7J!| z`3>Qeo>BEoZ&fw}9nhz0g*Gg4*hxnAN=Ip-=&Xcogts_oeX&4a)X)QZj~{zrbb1+6 zXV%M?gFNAHM@rNh|kV_A^`9{v@F|Y+xZ-!K&yviZHVy0D&{zKtJXfk(8{0hNuEs zVkV+Sce1w>-*3BgiHXsj28=lXchGiFSCzu)tjy*>vT(*39~A_v&rGnnxVz|3JfPIUPpWwJQUzPR+2k8Tag(qDyX0gFYU;Z(y#T)c-0S(#4L<|$!CZv}l z1v4->3`Madoc+g^NzKEB_zgOnSjAxbALg?ZFVZ#zu%|PhO`h)7%V*;@R9=RiIP1rd zyZU8sYnS-yjGeTQ*4fY^9oR-h<2Fg=GxzB90&xs4XmYy}x3kffPqM2{bAz%=@zQ1< zxRi7mNyN69*jq~7r&K;sl1z!EbR3CLsxe0)626ZxO$j%o~=$Y(whv63P7x?8fa{sHp2wGLW!VkYlE%2$KE_cNwPY@4WQR3*+@T{FfEN;@}WcV z{4;tRj-&x)bBYFy`cOrSqp20`@c#48n!AI)Lv$0+i&u&aCY9!w9FXOq4 zLu&v)s}LgIG+qouH|*KQ&IG<3V26j>P_mEHb`)5iAq(Z(lNFkq0M6nqiiT3pp!h(38o@n&Iq}cb!&T`Ja@Ab6~@8js=Si4DK= zb10d-qj_;6mJ`bH-?Q2kikdCI3`pz?wKvla`Dp8s+FKgeyhs~G#*Ll;z@deD5=Tg8 z`SQSCE;sQ$=2;b~;d2W%VH#l}2Ify^^XryqsG;+~PBeP&xJo z%Lp(|$9Pl=BoBJ&4u~wi;Wz4?#;W@|7BNG-F(rv+#S|~x9B!f=Uc9ExYfPi>poI8} zk-VUuyzFMC(AgRYeV0(Jqy`~;gPYJo!6YC6PYWDvPPgKvcK0UZ#6amG^P?H1)9!Bp zVA_4o@9yIjPLhWG%D(GrfL&aK-7j7lviOKr|uZ5A#85LPnZKt&e|ANf2-!Kx?pOYjjh37++UsmsUJ zPr8V|i#cMXD4rmC(8{D$W!9Bb<)risx$Li|^P+*`Nmc_pPv|T=lId~%&32A{M60A7 z$-LsT6ks{yd;pySnF!fK$bRd~-}t^ixbMy@t{p!$!_gOyv2FPV;@{DTpc@cDiKMmd z_|xw1Fj=!X#qL=?n` z^Sz+qkvRqnC$|yZzmK+MMWOX&)k3)S{z;WIVPBV2xe9t|L1rdM41wr1YN+3#VbO$I z4~OC)yflSgY6Rg(-qD8Cuo?n$9MqLSTxtjpgCy2BYKRZld<(fau=rcZ)&3TNHhl-s z4t&&ROIpY&wunc?VE`%{_Ux$W~fUu)R_v=Ux_|jyUTMJZ9*(08?6Sc zeo~*jR_!PqL@;`UT=})&iM*1Z+GUT%`JEiUsXP+our)fWR=5VZ!(Qo8ravNClfyN0Q{$)=xGW z%AjGMOa}!Phmn*w;v*;n;~`LFOSIHaGDDcj8A1s@21F^QfQEzk+9v>p=3dym(6N=1 zji>TBKPD19&t#xB(}6s))M&Flu28QI4@B>p%&S_aN8aEqKFat=P2g}^&3ki3#>LuT ze{e(^9VU~V zsi9mOGH&`HruKjdhh3OAG3b##Soe6M$NW=(B5=mR>3)0ab(eFGji+C)(M8qi!z2nD zVa&=mCK!2~`fBmS=`N29nLErcL2Z(@pB03VU z+AotqMkSCQAW)Du>D+Ty{Ifrj@b%%=V=}bNR80IS zqmfZ6e+MzLyVeuaZXJ<2CaaMVfR}WjuXb}cl1S6yN(`^zQ!K3IZMYy*r8VD z@lQ|Mh>9BAx*h&aNWG zj^mMHk_ATMj2MK|ny|H7fJ8Wokw7T7jbiCPB;y#D>*ShP?~I=X8=Bd^^+m+fT(nK5 zs#D01Z~8&%ws~Cdm#{Go5=5WYF-BymeX*E%O~>u*2!k|@foT!} z0d3nvB);QL5eSo1s9^&Uxq!eC8Rikzxs142m~Wl#v0QY=M`PPYFLIb;nL(yr*0LUL z-!XTZrZFzGt#Jv<#s#`l*Tl5cXI1EeCs7w`gjTHuB}m_@W?oa{#F1)DrHl@a&>k%a zSqypkTL!1Xt;~u^!~V}QT_tXCh8;G(fLecHVU(f|8Av{>Cz04tj}i1x<0XpVGmOk% zGztt7fkg@>Gc6cm*j{s?5sHnj`I_5@kGlC0ve>pEXGHGzv`W7<#Xbzrr~BU!sq>m0 zsz-W#WBocm@@tp_o3t6KVegEk?Yy-B%0xh#wI_DPcRWJ#))jLAGO|gE3gku-S$BW^ zsZgGYCai^Tv0FDOzbKxzxmumpE<-Fhgq3(h7?iltGGJUj+!-!{S81Zlkk=uhBSMVP zkr-3W&2UVHTm;+Ev9Wt0mZ|xu%GdTIWs#PG*mpDyR z8N?_^7S@KsBVNsFg)NaxpfwFZU=8ZIDva44nYhz#lKBvq6^Y|{;q?OKY;mu|1IXLJ z#DoMb`fPF6h^CnQyh2xwLVCHb8c-Utioe6l20Lu}2(R$38-Xwh?P zR8ZQ)W_Z?t$Xr>*L-H2Y3 zO@N(r*d3=pqMZ9r0^iX*m*4E7+C!OgG^0$j3BO`f-AQ}exoR9=@xq=+(E@vj-q92f zDiu-iaapvkWH0#UQ$2)Eur|a{Yr><`Iv8S58YdYO7zCd(gJSYkcPn(LuBCB6u0*Bm z2niUu6Xo4D_gOn$wj0-SGKkQqQl9PdmrNKL!`PH%8w+omGk`crG)8QMxza6@yh(6| zPwjNindkA(Pla|>#+E~*+Kne)zeW0UsN~?v_>MEcBJyNO*+%4KvM*GNB#oWARNNU@ z${I3fGnle51ZB`?RIruNBEpKVDMTHQlO{lFyH6?Qo!)3OV=+(niIla_rVkI*)L)Z1 z&O0R+{jn{K3J-)jvZzcWn=!n(a^}??YLwW8PwTm}1-CG$=DWXzajZTJvh~U^2MEigW%hy`K2b_<8qR`R#nNq5L!bF@NPdx_T;tHHUAqjhuG zuYwF4o(h(RSfL>5tNf`^HcGqzaud~EtDQChx*5(#DPJD6X|)c1SX|8UtYVX1XDbiB z{D3&P@$^uTA-zCmic)d!vB=JeiP*pw*khW^d)@C$6HNPRUy#A-qK1ZnL3=^Ds)$b7 zBE4qqp*F}y=BP~-M(5<8z=4Bls)FbQ3_RME41}aJYd)1V$Sx@FP+S_BhrTF*T)sa~ zGU9Vjk(;992xVup*2#z&*{}Kny$m_Xi5|vlSiRz6H#+kWL|m82@Ox64^@MFTBJIPZ zX;N((-=I88eLm=n0gib3M@F0j=$ED0SGl9OBCSqn z(n8qU8aCIup37zeq0UvSk54cY*3+S|SYDq!u9^5uU2@8@awJKf3NNc?y`s zqBa4YeJ;@$XpaUlPY?0UC)LC<_nl8hP4|O)@K`^|#d3oTaaP^KoH(+uT4Xl*6d`6^ ztdQW$2fG+8+YNI6cwhNE5y}&W1QkXpGS3uKTM>mEryi))0 zS)0Nq@4mnK1Rp|kz;Rc7seEQKT>g#(p^uB!m>JjHhri5w!UXsw;adpiY2i?R#tr;% z7UNY)22kL4T`Z`-_>-_>3?eLb4q%WN9D|%q)&KHDeOtXk@Sc-pOBf!ue%>2*8C9$$ zV%1oVLw=ymA-b*5H_I2WE zreEklQ8Je2rvi1B?TPKIj8(jwEfR4y_=fh0&E_H|c9|KmQ^Hz0)=r=e&lJcJAo~qI zL<^C~ZHP9(0oCH~BLR@WOJId}3IZWd2Yb*cM-hR^Fkn~(a^s{%ezKjiOU?Ti(SdrP zjXUsZa@pr2Vcc2p1)DTI#0!AcLxUE*AiaFd20wClFVxL9W0u4qrIAd63WbIAy2R>8 zHe#4qQZ07(m$#bcc5d#tX@5Z z`tE!0HE+53v(fX#9Alw}{et zXc89iky)TbgsF=!8)T_Wramd5WS+W7TtHN5+v=odHY5N7q)UoozL71SN)U}ws!*mP za7EHup!N;Hm9ajzJTDYuLeQ9J*J^My&xHkT;`SLi6KZ?aK4WLfAP$jeLrxmIpGFgcq^s$6e}c&XM7abAisu_GX9 z*xIy87LP5VWi=`JQ4GBr^$uT06h`Wk(y3UnGPRK;M$Y#3Tf7?J3b9rVE)igi#}{W2 zMFd2pMRHW#<0s={fl9x*%W!^e%U$kqe&Z0{?BJZ^v@DCPng(HeX@mg2+R)%n&VZUM zeEBju0Tvgt`oM1#*~!KVbSFM$5dJ~>N862A5jS$ia#RSBpjV(T#)8z3>_kz%^ofL9#VamZLtajF9o_$zeU zjJx(^G~%qEf!lh(yedslK35&^*NG{HJOfwAJQ;0LViVdI;&Ew8-nL&@)(3&s*w_IJ z)YqnVE;f;&M?ng;O7((j@v>9J>Yv?VFS7oQk_v5RW92{EcV$#B*O ztI1=nX6AhBJ6b~Izb-#Dn0qj(Ef13ntOlhARy(Ku1#)>1uwIq#0n2)7U%?33GgjnM~_7~E?8wARczqh;7{@!ALZ@0fY z?eDGjcL%YC#VdXPq?Y2tbW2OI&^g!7BJy?)i*6jl?b0OJxLskQHaC>Kqs0nGLxiGo zH+D_U8lRMXlMFeZu;1FnvezWRP$>fM`48~}GeamF<19yahx=Q&zX#gTyx?d87Dudm zAobmyEfMid(pi8`uPckCq?7B9g6ZZe+L)U;C*;wmh3UctgxIR#LqoEJ!QI z5oTS`u5>ZGKG#;a$@8XiV$C~9vOx?%G@+{&2|n+#r>)hATCxD)zN-~DLsEAyOMW$^ zhFZ))qv#A(bk-)0cB2^vf<->d049)z6epgZvI;r4HHMKxLJ!+c?4;GNcRI1GeKa#s42jMbo~~=$T_h&at@vfU z#xGL#=N*fMuuP9(#vngtWJYfxjIszu8G%k<7NU8PP=nWkQx2S%uaKhR10AM@j#zgI zT|Q8~rN1mejs&uS8Q1~2V2gQUhkZiU&ktiD+Cvt|JwQah@&klO%HgO8f3%PA1He?i zm~L|+=&dJy@QtH|iO!vfN(?FXcSj538NxE)6GNy3fi0}fBuvSnQMkiA>(ek&z`)#dJ-rtb60)V-h5=AZ$4AK zDN{h)TuFq7M}6vs`^x<)1Nv?grMv9!o%Z(*`+K|n-D!Vs#RN>+20tq;2q?JMUhUvj zFKxpPaW?bLy;6GW|H3!B?VDSavN(U0AAd^U6298)H}A-Kgi2$x$1Mr|UpAOk3ta=)QUqCLw!A z?z+=NduME7&PTEbZ1&(#oFX^fDcNB>s^ym>?2NTG9 z9VQqi!3G!4vI>+hXE8(q*%8NBLHN2)A0w7Ut7z+8{rS2v<@=-X2#BHOCdYO)TQ)QI z!PQ#k{cFqp$D1r|iu= zt8f!C)4+K7Yc=&WHo@ecG9jcHza;SEpjvhWHw4)+_A@N3&_Z>-c?REBYl=J~sVIa< zSTyqw8#Lg!kNjj6ysS`Q~gDX+*30v>(PP&!0 zu#0JyW|@eBE)?>ZPzY*aroA3zDsh{sZ#SRIOg-oKxv~t$5JC5!P zC^(oDw}O;A983`j0;Bqbb%!2S)tVgWp-knF2NGi=@~A{lVBE~U7uTK$Z1m;Y6Z}JX z!v0G26+Fa~2GOg9Xw}15m#|ba$AnGnMGr1Dz>Tc2E3&69bIvhhV7j!~{8ariM4X(z zz(h(Ur4Ylpd-H@O$bY5o-@+7m`*J;ar1#*D3q81|QI+`O(R%Ra-h+><)Pwg|53Y(a z?-t^ecZ8r&@6;}sciF>Hm03b>nQ3;}4u*SO6H^fE$Z7&C`d1%?`8HudPLYEfA=dJwMs|!*k=i8sB0hooj&xNolj)P#9MVEVu}AFvc}y$;vN`vBe?P`LP3&k zGW*XYO}D0(#urnRwBVAP7|hoT5_f&(F6V^n`sL`6%1;9p*=EtsvydNOGPCwQH^nay z#qdr1p;IIM@9MiIZ!VG#{i**I?Kx$8cO=|Do?rBpVlnM zUk0_oVHk4>r*174`MCjiPFdxDv;(SX9Yv>>;)V30A#cRJFy$EmtMlLUGLs;xTcV)p4G4C2Y9J7Vu5CUtrUc5HG`UT5R zNDBb|+|iUlrw*aqCZ{1jzv-R7GYt_BLB4{%$RNc_J`bZ z)=(2cikpo(=6=GnSbcJe9#0IHhl)4tXG(ylt$GmWW{WzO>8+ zk(cJ*K(CVizQ?#Pu?;=CEwEw{9mtmH68U0FAgkA!l(lzUGYrOH6MgxvH0!7%zN(0P z(zc=U5LE>X8ve+FcahZ~tgX_YHTg~SPF_}C ze#W-xn^YY;m?{5F0MCERO20p*vxr^MGi1`pPSuWU+=-J(%6x&kAV8?X!kVjM?d?7A zXYc!vl2W-J+hb@T%0Cy2Jou3Puk5)Ioy3n15dH8TW%&O}62IF%#q|9B{A5?I!cNmFBzf5LpQ zR+4TQg@yy52$^B@QAj40hl6|1cOrL_uO~KbGIfPEJD^Uq6L-%WNdH*9c6Z+l(5PPd zr_4P7lr-EuS6>09DZBgT#P)f(;cnZ`)>HmpZl|40>Uzvu?FPa$a@q0 z2ie$&VF1N9myNa3H(mGPWGSyWSvm!U(w1Zon`i56@bDjx+z1!^C7KR{ z4VsZSlP-^hQnle+ssBmdF< z+Q!AI4&w%JHn7n!356lTa7^=*c|JYz5UeNCZma38e`9UzL+LF47Z&4clmYgQT30mI zdYofFLM=Ou?H3k1Y(KSqkWS1PbXYNU?ZlBs2AH$1dHCsU5_$(a`VyLH*uH~D=#kFB z;nh%e3Y4i=vJ?4zSOmnU-xvp1i4Xa^&nAe@5Jg?|en;P+7NA&>ndwQ0tnTjczwY#x z-Tt!6U+%UG`7`hI(bRYO%f0?FnQD9__O5&xGZi2M2oh;OvL*;Nf>?Kg7>BM11EwDOE)_o8wt$4b#ev zNfi;E9p}_Tk(BRATPKrOo^MC!Xo*#pHka1yC*ep&bu`W71!z1bVSp#yqu=uqsh2Ft zUHg52=>4XT`sV_chdE1bF8Yk1PN+qAiPNwj3OgUh3sQSrccn$Q(n+!Fzpplmsa~BD z;$9+lNDAXIlA0$ZVCxp!sdWAlx@(`oAHp6fV}XJ<;t3%~;M#hN8jg+n85J;UKeu zxrZoJvJ*On#_7kZ!wwZkdZi+&Lkv_zc$Nhh8Zi%3PO_etx}L{T)+qaFBf%N?Qa=-; za%v_H+PTCUZcUs;fF_zYIU`H`95AFMT9|`x`gVPacDuLhGXkv-uf6Ev?hq2Nrmuvv zOZmFxUNZsBs!Ao0My8aAN{81DzYx=wS}RmTxC;^$U~E~+Qj|~UXb7l8H4Wh_eF}u; z+@4CHL3X#B%;6Y@`;-4u>qvNx)ro8&RwRFkn%iRtSg+e}*2|NK#7dQgcgq>R{}~$a zjarnu`@dUjXx4{Li|zaart^UnVMfy5D{PsX4{rl9 z#Eei4|Iv={6Lt3+?IP$T^87^Z|C8KGO*d&s$&haHzrI)Rp~|^?9t@``-M7DOcc;`X z1WbZx=C`%nO(X2zzI((qbB;x_1j+JGBi%>xr{0C417w2D!vlI4P&Qi3p)F43YptVFxw~;CrSQt~lL&I#?XXsA zg(CN6Vm|dsWbOf}W-@3-rh?1Xp?LW4_H9La+u8zc7lclXVI5Vd_#Ex&{n-*)oK;|) zK>9qrjmP#;dRx)(cW}tWf=JG@y|>ZC;wW2WwXmp{yDlrOiP3qU<-q~J9c4oR$s!?- zj^bw8UBINPB|_HVLH2N5u36XEaxU-%OTve|L^7?KJSi6k_7Fkq=XstqkmWO+cDH1% zHpS?t%#;CH9Xf0|DTXn$xG!JBoJ3{^!`n?kamc~pE#ZEt`|;J9_48nkU!%}FRj6ptGYNPEm#}j)>qO|ox|^IItCG#Qj*6QsOQ8NKhKJn2idz?nL-t|`D2RGktOn>(_lE!K=L zyf#99S_#CEZ`jw0$22{+3IN@@I$s+C-9yWIN#LkrKEv^@;d3ghmC);Euh*1~rBsBz zs)zhXS4o%ap;Wfq3QC#oQ&dJUsMM$U>#;pem?ykh>0)OTP<4Do=SM+ctILv2dsUp1 zt&(aJh($Xl^7ie|dEE3#wJ~g94b>4z4DlQiFzm?vqebO5E<}jdLYPe(+oVuqOo2+O z4R`57?4ABYec=c}ZK~T4tRwH(>K7f=aTpdU=9NUp>P2PHVz}7^$Vqx=t3hdP+RYt{ zN>Em4*DWN~RwH!E1HpQDY*te3UjIlm;1(AxY9@FhNwoo*^4|QZt}j*32;oR&))fpk zDnqaZo-gi7hxIQOS1(500^uPH@JMffi9cK);2IV5)4sN#JnhS?wC@`l8HE8LA6cD} z>`B%9A0y}CCE*+zYImait274UO#c5$RnD97KK53IrR_e?8gW<(t8&-|m0)(!KlMd# zr6?27z@i`gW2>sA9yDnvRfBE}7&Xr>yb_Q+%Q%tkE(V7(`(Zu>S`&!-ukqedYj?j#`F814>K1 zD$gARX)BZfiWz6Btdh07i2Z$1Z*a}^X+~ix^Ngu_LyhDJvCbrP##y@27I%46b*94M z-DT=Rh_63IVh>{NJb*%5qJ~C=P7!X^D7dhI3H{CNG;Ixyg&QBG2ytv7{aDW!_S>CC zjuQ|{S|`s@NFYs*I?E}Pm8JbZBCRM7uwP~1IC4(=A6b)pMVJ(F&K%lpQdZ(A5+1Gv9c z@Z9^S*-A!D(b#w12;MNFlxc?N%caohOk8ZRFsi!NaO-^UNEL}0P@RB7A*RipL=Wkd-Xx9ZhsJLC@4-y#jTAQCN2@8-e zXPq*0J`N*!t5aom?QedTgt5%7%zv9)b#s)EEF)GDzAsL%oR9#FwDJ)3;{d%vHNlnk8P^O`saIbEaN$WrX_c+?M6 zbZ|S%cJ<8PAEXqjrYWQlTvjI({OlSeb8S}1Ts6EP4qZtXHtO1}&1BMG;92)^O?92E z@%*LNBJMA>h(=F~=%s-5denAb^xmo{3)8LnNU3xjKTGX;r!T&%SDe$5GZ)zz)#2V} zvs-zy|LpeOX9HV#y)VxGtk;6DD9zW(npwd8>`kUT-Bf;-&=-z}_P~1DtPlRL|KPgb z2QxF5@=4tLBm@MgwvWH%KY3WuOQfJ_(OWM+8>TP&^4rQLSZ!`~d!t?hvp@J}|G{^A z4b1xBhs~sov6dxy!8#B{@NRDaig2KYEdPlO+G;a2yz5}TyunO+Ox|zvH>BzCH>|Uu z>Im6~9pvw~o59}VPPsSw0vx~Hp4hIK!wSL#KVuW`cJ4>R{Vm*&g!>)bxBR_`mQU7h zm2q5^Xc)C;C=-f*`W?WnnMP73)(+nnO?g|GgWgDCzI~j6(P8%5p>ZZBU9aHMS%8RA__So+zjT5qmiR;uNOY4xf@DLFz4!F>=^5<{NFi zh3ILhu$T*+4_nIqqWhg*=dkB@OIj`1eBSEr1R1j_l~os{T6Px!hb0X2S5LsrS|wsb z$hW0HRV@???6uJ7iv&tcRzz>-k!`x5RQ_y>ry;Qmjpf?tV(3{NH1hZ0`*32ULi4?o z^;#AJUilq?=R`d)V*gg&yUi(FSL zkh1#xT~L+EJfl0hiEk-L`EItUBjW`guR4V**VhyeZwc(BoYP6^&+6#-v6v!qG^Q_0 zO~sL8Q_GAkQtU^?0ro`9z(O1tPKu9{Rjb~-Z=BS@H18WPS~O3a%8^mXRT8=o@hfh4 zbh>p4m81N19Eaa4j5d1M&fkrD3=kTwp{V>5gu#42dkE2bJ`JPh)ZOGx{c=ZvIUzKG)IzX80-0i+W;!O`E!Qz`= zC659%Y6z{-46K5{=+TS~t-9*?c$MK7tBpn{0NU$muZvX&t=~(XP$W3$;9LszZ7r4M zH+vwhdEIE%fX@TdSG!Bt!Z$T8^#<@}u%LIFGVb2PW^0dC*?vL@Sx~Cdz@ABl>@gYQ z9vybJ_ytxe-n|My(Dy=(Y^2MmfUwN?cywQm?dRkwX zz7;KGLvWQaV_M`tga|QjGNI}-4u4{}kc!40tJO=j__o(xBfxMhMbz31?1e5fu-{x~ z1~z-0<}NRxnPiH_D~j|LbgI4a6-A<(3pc)E!_R@Zwj;C?tMW z1o5kV1<&zFS|f}ipT?5nlj4C|%WiV60qj@ZX1S@!v9qN@8pUwCrdKO3 zXd}##Yb5d7QSKI-=_2%rb~ z+DPCio#bx?Ojxa}d^!08v0fqz-)nKz)ppabG1*m9m;}jj%qkuBzPj><6#qm-yV2$v zy4wQvg9A*&2-LQ^c7haR#p*rMj1Y7mK9)_$?|fl49q$IP8uwT(^L#+601_T;O#i7%@U7hK+r)?Vg6oN2M}AaYju zb60e+Pb1a{HP6gUUSeN|@-wX~-+U<<`&okrUWFt zylms=dm})kqVmDRd&QH@Q1YXD?}|9LvDQCZbM^bXsr%!fM0Way0Vq*&N?G5oXj_*< zQ4cd})A@}uNy~8!jfy?OtG7<&Z|Bi5X-n9#B~pnZez4_*kMcIUcv~OFw#`LZT=u;L zI-rJzO4PvEwkVr2a^Vrh+3;Bt3vp1lOajUu?_GBu%ptiD1ewKJ0OKRI9LhGedV`*=1sk1Lk zS1kmmGzl1%YWkah)Bu{kHtn(0v5>)AI3ywm?^8wcjQo zdFH1(YiNCXiFxn1M}a%pqSE%%FOs}HdFe0AZ<@M@?CS@$A9_GU#-_q9vy(9VsVM~d zjZn#he-pP88{LEy!6A3+1GwWofN;SVmtz`tTEa0ljqZ%=TReV==l<=1Xwc^2Ktk

*r;H=y1T=Lg1ChbB=lRv^EQXH9flUHXkA*8NdxnZIte#$HB;+3X21>(Y8M*zk7tHPD z6q5x5c|B_{Sh*2eosXIA49G(GAH z{goH!W9jaExUafvx>nW66Z$8^$I|M4r9`ivC$jYY#ma?VTaOb?_uo6I$v;Pp8g}=Z z0g~hY?(!i8wY;zTjRBnBpRaxg4p8<4B4fJy{R?K}7I82&rzEHG1Je(GVUkVqp7+OD z=V6m;zx5c|WInp-n-cwOR1wcJ`-z9e^hD>txbzU02v@(i)YiS1S_R4DNXGj|Le**@ zt;-(#h2y-!BoNGln7uI|JbdMw(6@g!ty z1|Cd3X7a(%gW^^+u141{qCP{<3En#EJvulB73)3b)O@9duwUlxf8UVbGm2z3_1og? zmCxfo9XWg(^QHOotz2-QetPBkk{%6AT4g9QEb9vlXue{l!p)D#pD)9&Z6-Z96pzdJ zw4ETh!+bUDZfH%}vW460s#`s|n#h{E&a_IFMD6?Oiq#SB!ZNfdEM{ybuym51h3I_j z($E%jCE~!xgTg|qy)x=2#T>m%x40D>G3^^4f|S%9xpA{30w&j=u9&j=86wrKHh79v z9oGk90rD(3O%c^f;ka=NzzKM&{0>uDd27jp@OJhN_k=-C*wbT(QY^+YgcAMoY%}Mz zrrBtxUccp+&>*)~yh9_IT%!f7ZFH!8!6BG5xsF)(nOT|V@$T(`)T}@nrMl3oOt6pu zRu{~9Q~Ih7l0p{qid~^;HlGrE4Wu#cQPPU55rG6wp*iin2nM#tk_-a-=?XrUM=zNQ z7@MiHyRi}r(LA6N1f$I$aSqgGoFpK!?<$6i1a@J$Q5RNd@-7M=U zmLlFEgcEhAY$7D8QWVi+kgs8nrwfwGM6BwgVl2NownGWn*X_lbEXK|LImYG-5Hehf zIA?TFjN4ErfgU826DVPeG$w5-h>#MI5N|k@1H{^WVF`UE+7>5;_|sla?LaXCMie-a z3@F_S+bzH2#^^y&-hY9x2vjNDl|#~!vjgPIx95@uiQN%G6@`~zGS#=tW3~ZVv^7}x zM@Q6BS@5g|m>ML@4=-I98H*B|~9ncy+`M4BiwLgeN{t56}w9JWd06 zCzFkLb(G+tOg>#D4*BVdmC*s5)+9`!&Q;L?qggOWwOG{E4m8suATG5jO)ww;Mq`X1 z2-;bMy7&{hOE8`hk0X0W0G6=j25d4ISXHeQ4*w--KsSIl^uztk?)17JHiTpiHh6s# zbwDNt8*J4Fo2Z_(u!rrB43GNQ5STFF68Ro=bP*36(!x+nOVklq?3JVTH zD|%>1u!s5fRPHSduAcu~$nnqL6P{~QagX$#zuTVY?@DcevfUm8`b>Kla`=sIAwt=S zpj+HhpCx)^vB4~Eol*g4T&1itQg@*EtrtQhdms7PYo^EpM3%XWcx!bqZSaZwB^Y`f z)73Lw7%^X-EBRo;M}R8?^|$OR0vOm|naOH!s2Y8eeK9sK0_xV}V1X*CepoL~gSYJE zI)#c>6;PP(LqcEo-3tcMvgVZuhc2AIw}92x$$j=tSh4tX24&zZ@e_b+BNpz_E_(i= zBAU`o7AAW9Nn`eNIG=BJn28uH`DysmZ;JWcFFEisC}z9F}Qq0n|(?A8lyBPbD28wp)EFi#y6H{7R}qbqgQu1g?S#tsFo}xAL`HOmD@Usgs;KbFNJsLW|6&sBbxodOO&B4 zRQ);E+Bjg6E78E%WJVBoi^Z8u8n%PJfPTzNMF|#PUqZgYXrFeRS`=j!tbG)@04qyD z3FR1;UIXG=6zN;LBUcn7mvk_x4x0ojMzS|ZENekfiXav!?uIKQEtCkzMA32nf_CYM zC&HO=FNXZzB1P-M+fjZr5F=Oi=S?xT;SlU{l1Ze$kA9WPFC(54^azNU|$y9k6v!e+OV|r4P3Y`80e78m@3f z(V#|FCMW78%NGy06;%EWtyPe$SHvA&0y!=&q&nxBd|fKYQx7?lz%d92zoc1U{w zcX4O2duW@jKshsE@n-bsNA}45=eETCU>iyedUJR2@~m@MGFcp6`Y_<0QTkfUaQ|zP zPObp6i_uHF3;1g9-q&u-&jrfEipBXl-oAmczxE0=Y-jHJ#ENp4^XMubrG#%R;+HNb zBk4Mkl+qA&79zM&l6W)XR!!yKi-n}^-T2ff{O_eSI-(3ltKfFY(pA(=Y`Y2fRiaIr zb8PinimFPo20Ft{?gPaZ=^gL2KK$ONKILw%_XpmkzbsG{guca6ZLBja zAi2<3=6*^4ow2;rrc?`WHN2`7F}Y~p)>+DQa5#mA7$QyO3ob8)h-FbMz4GGj;TpEL z{hzO-Gf;rtTzbiKcsCTPV3m~>hvQO%3I_jD@36T)X#Jvt^ut=uT44^3TW~nVH5N9D zHVZkSZitS77-Fs?#aK~uwuBYn5mRpD51HjVONt5i&1ju+!Z--B$fhau8hWybp5ULU z-~z)m-5^r}O%QOOZaV|DShS@>hKyp-W^~0)8;ORD@yORXcAYR@w1rso!f;x&Hx}a? zC?Q;TaXq(%Y=6y#PuiqIgF*pgf)zh>XHlR8LgW_yY2ibvWIAX94D>G$OZ<4;NR8k&vSmC z(P?v`eS#FL-DHw>hX_XvmX@q5asj%4nAzzoyW>Sl9gCR$0-xMmb`85&sSa5YDQjCI(3bX zm*4JvD{P=S5~ezY;WC72V4#Pyp#&@sP&BCQwu@nulVuEn*pf!IoN;(9Di4gtRX&)+ zp554)5JwZV^+Jdmt4T46C8cPc#iQ4r#qwpj>^B%sm`}KGDr&es>rOE3j@VKBT-Z}P z8a0Ii*XTovLtuE6z~A5nV~*U68B5VxO2RYsn3F#}dV(+{9L1I>w-L!*M!_MoLvKo0m!21rM|g!SK9bVZ_hTvwFD0i1AW3pJ6)U>PJlU4m0MAKHu zCDVd}tWOK3rZnozLw!@w8YU>sO*1o%3-fcCU-$>s3L+i_mMN}HOw=y@z`8vsnSZR&g&qGD7fdJL0U9a`d->z?h_}SD!mOa`TMUp@m zp}F?+Se)?cEc!geESCz_L~{@_2#iB9CX;hgg?gm)p$FucARa4PLd%$j5MrwLk*bst z@qn?UVWrdhD>x@ka}lt_XDGc_4JE?dnCNhb;T|R9ll6@UbRvlUrgAUBM}A5oFcLo& zPPv8bb4V#!V$_1RfnqyqgF%TQH^R89gbmqY{6u?!a5r|x{H&Y0i~)6R>5e2TD`jLc z**SutIU)$VHIp|Z(fpWbK$T&Ubt_nqoGXra?{K7%WU;Ifh{ zDwLA(%aKL^%2`b8AZaC1Xmr2|t{4Z-1(vyUE@PP7QN|UtDx>0VQ;N%t0o*hxNII8}u@?w0NBs55(g;U(}346Mb(8#oVCAYu238~a$>o!M9 z*HJ@1TQj<U=2TNPxS=b}f;rddQ|E@5!@4K&kEcmFgF`;Bu>N z*!s^E-G2KTeAn2E^NwUShZn*#1W~0~rF6Cw`Dq;^X{{(M*asO3zZn)uaW>(`PKPXZ zi8d85xDbgnNlltZ?gpTdiO$N|!AChCZhyMEQ*ABJ=h{?zt;i7oRc(V}EVRW{1r%yH zE9jluS(Qa7)!fkeoky9v*3^#DPR&C+a8k%_E0zKof}tsRU3=Mc5Vm%-D(|OZmkXAHPxP% zwZmn3f9(s}ukff_y3Fl1N7U}{+W6PU7WSGvJPb}T{C;*iiIIq~>9E5FOf=q^J5m#6 zb0BY`zqy>|>Z}mh8T(O`*%?32Q!8O4NfuxiLotrDBpIWq6Sorlrw3i|+x^1vgJ@?y zjt;{aw|`%DM#+-je(Cx116RZU(vng~jeO@vz`*8SS~mCJ{`*UM&Gj?R2(L`q&8Qrs_Bd`w-Cg_HqU+0ff)LaMEDd26nz4 z5Qe(m^qj$U;k|FH)`g#j`uVBZ=IDOt=j;wuok5wm$=l=G&9HKjOq4zyxhDI11-n)S z_xQ(e>L8olHjcFGjH^B~$0TXd5gvSy2E%26L$TBwUYMxojNCPMNh29BbOXEeE>9c4 zFCQo$v6LUAY#uWYZ?9woBKa?Z-5h#Tq6<$YZ;Rg^|4EG;D(t}yHj#Y7RG(f~4@{Ss zs*T-L|Jc2vE%NiNzlFBnI;iyrKYl3F*ud7`UbTK5Z4;5c;*fo_LZuAWSmCqx>}Lc9 z^1=-acCE4xesVvR4WyiXcc~iAd6+>b4NCXut`sz-c4AyM65F^wzXyu@{6Fmn#Aa>G zoBd=)Q%$U;PpkZULxs?9;&+Vt(fv6F6d0Km8d~N)u+Gz8*68uK# zJ3nhi6>p0?jGsP*rC=5cTR+N$-dY5SV_S`TEQ`5c101^vpP z5H;YhpZ0Xspx@6FQp70k-u?L~|0lUMLB)rl4hR<>Guz^;;w$z68@a@T82aEB4h1~} zr%Di_9@myKTEgIK=k5$1tF)~GBG4l4z%09}7e!QK5mkW+EXp@`_ObMnN>|Y->gb&L z>}r7Vn8k+;<3KbvV#DE|c^whe*AEYRux}E;+HxSV34bQOJie?Sky>(HdRe>`%T;e3 z)>A%xcQo>qDDulVrbW7)-*@QaD?mJ0|Kk!;de)SXs`+2&;BK97Y&C>sPu+@uZ-#B3 zD|QWAMMDhR9ChpBvX@)_=rw)46y`U-=G8sKdyN#F^n{Mq-S}-NgjWSs;4a7xrsCkx zJoIGCgHq}MRN60flJ>=!R!R8$Kpt8%RkR{Epr#KuBgOyK7j5amS3!0z%MAM*8}Qr; z6cszrX$_ga1=FVTcMc?)fs@2*dc#xIC@v5x23I?9=|L|&DZXmc1$~254Mj18E224G z2rqwl!7Jw}240|89DIaQAd&)jyUByPdUj-h*Ij$R=xTs?ti-{5>g@&Aig7zQVLiX+ zpASX;4MYo_^l15msh9WlSG4Lbbm1EHg0f~Z8J6R+Xx(7AaBs7VJbfyf z4hqCOzPO)>e4xVgsvd2)3d#TR<^3SJVqTCuhk5sjfQl{*_22u_p`iY>l0#`3r3Zqk zR%xfUNtoQoRF?5kLum|ud=tUnHsdX8aUQaxX1YKybMc3N!UCS zu^)g1gx2p1KouoWUooJ_u{mJHH*f&mLCY||;N%8$K}WJ2n6CWX8cP)U5-}XF z=dny30uX%wRGi!y)XGUUia)8J;-A&V#N_e+;+K&9aTfkx_?s{4dzP#l`;8s|V++Hl z3tvPc-BOX6vshEdOKUh2ohDW2_TLZ54myx-e`}5@d{5Lfh5uZeBs_4qh+vf|P2n#r z`~Ms2#H{}R`U}qMdsbJGBuMGUqmO?-UYIFBXT@tZf!z((zF<`zMBf9Mj-L8Kf8O)g z_jOQAckcRM?R!>rdbUmU=ca!%-yWb%^yWPS4eA4#0WdwpXP$G`{Ls~S?y(z1&ncTb z?F{y>YE)4ogEQ@B`9;oZPToW>j`-RM+_Gu+LpW{yHL#OEN_1GA^H997P+XrIz| z>)Q@7XJH5EbpvI`q^ahNRo(6zZ21olrrUv>Mt42ko_NwTd%c`3Bc;EN^g4O8+da6+ zfvhrrlYrq7dp2ua57P0^JfR0t^&ZPZZS0>|s`+f=AL2YlzkPd8d&bjy?ahaR+BVA3 z?w+q6y0nRadTg)1G%jLab?oZivr>JpUn?M` zVBBgNCIYqx;4d51&)RScOR?6W?g5=tf_&TwKtGSTgCzX=A@CbVJ$fKLG4LdTqYjlu zAVg0iYo7kp9sv8Lksmz<8kxVz3jKX-fFyq~D4FX^CG+iHljcjF%R#g7Kth2Ve5dCS zMFoY3pr(r-(?fb#yM5?u`&qjk0t9`nSDfKh|9}U!IR3ecT2*78;IS}Xn+(SLCxfvz z1MIu~E32Q}8*844KUO~Zm^sgW`Islod3N-Zo;c@O_lZZ%c~%_N>3bGrpp?*ZcW>n& z-FcvJ2L#`fCv=Y7Un^m}zO%paT3SOL+5t0CwLCq%P5*p@D~|l7c^W)-Y|-qcNTdha zBP(=Nx7X=o$~1lDCVGCPUd~;nU|c}MtNdbEG)H|LmLEDZF#sMlOP3!pFKXh-B(jt)-anPXo1x6{QwYtC`+< z@htp@R=)mk$c{mBW1uyTRx08>Dxk7di@Z%@up%^2sa#&-aq;0x`tV2~`z4^*7>JYI z3gAlAu0`#Iy;A#}$AWoYONAcjzp@|QccA2g{QYnrcEsU508020lip~Lc2K3)WM!Y) zuMu!y;}Do{eBqKsy~gLxR!T!uN|~cd`=d8f2IJA-fqGnkFi!@SlMnyfp%{t|0R(U( zNuDp7=;5X|FxajnPqcQv@sQTe14Z&;TQn#Ld(8^&7L~~V(7!(xyCkIU$2}WYHmKgt zjru!6ZlU@!_(kUo1HT{;WCvj(<+DEQw1r{ivp19U3>7=HoaTY!DqExYC6n<63So!fEANtRg8$Ptk7u^x zb@NfE)?zEl(c8Z*7>z}iY#^(#SxQFKbysEudUtgF?h_%Dsz4S?mIV@A8!5*y1(qCo( zpKQThd|{3g-aAb45vtt9xy(jzVm5zdyqR>Yfp8xWm{G&*pylKc3=KaX?KutBoR|hB zIBc4CvSr|cR(-S{Kv#?)LhhH$NK_63IIzb<xJJ=RySF9n|Vmw7^jmiCPsoKdM^>e@!*(K>LO?QKdsSB_f)(=MX=_k_!8Y*??yT90@^2pWQ1=?B zNUB6=ZLJch_K))q`EKyPNPnVng!A>TZLyY! zQ3N&P>vh^DHcB{~;T^uPytrH6owx@T_1@G7pV37k zLL4X_!TL60R49250J0n#0G)y%{|wBeFi>R6-Bw`qh90#2Kj~&g*%sNFw)VQ z#Icr%m7yVaPqxxL;%rc%a1-u_(K@1B*l}C?&4FQLx=5cnkgrpv**O~R2GkYqUqLoe z+;h%}6Jp46b#PXpp6-A~W?HOYm-@1-5|>+2Xk#X(rr?rEWDq3$*+4QwDqI~~q5hM( zB<==DrB!g8+%{RkrtYmfOp+T6T4JYeB}H29ct-wMN+fQSy42H$sAVPBA8kkDr z*B^0hyFKsIq8W7YL;*jfC44Z&S&16g=!}acaA$~5&X33*5Opv+5L*nS(<(6N_@&Xn z8VhtYt&UTC6^Fu5|44zxh16k7nLC(0^y*})M$#$L8A*Gdl5bN4kyNd>-B!b|5fn#= zIJ43qYi$7(011R^HoE*mSprmyaAP{NKcoqlC^C9v1y^-xj~S!ja3rU`gcg0j#+Lqw z*AQ5Q&=+X8MUxSiwhaWz5602{dz65y-b+4SAp$pF|HalZgqS);|2eLwhKLrRp2yV6 zS)PRBY3d|rbBr?Qc6%A!2J0!Hs~c_N7NLwa@!DZKicwY=0FJD%04e>_*4nL{<1s`sFmZMvwMjb_8I^2Hge5WT={TE-&Eica z(um5EuQ!IoaHQ@yq9yAAW$=NvAWmJ+=;GRjFY^=l-k8|`{3<`Qi9}_22_MX2gwS^k-#qjz8%x()B?Nq{LM}vgh>IEEKm@v&GjD>#M?>;0m-c zWI+D3eod{HO)?g8++Ji7^2>|!Clzu2^!~7Y%FP2&leDE$1Q&~O8D!C@`#7Wv{P}U+ z)Lo=gg;D+va>Ywgc)ms?VN7}UF>yOE3JH27@b2Q%d`13zNsXk;!t(BztSXQ z^Uu%NnL&7sALFM(CJC$vcM~3rK|^4VOU?1&l>D2Na56?tqp$2BOzcFU*j5bdtJeCI zV}LOT7=0y>k8YR_ONcmp3jygvaF0M!BS zdbORN;3PJRk^<2UM72wwH^vf* z9^aMcXPN^%_#q^Wtl>&L##6 z2d#KQ+=g}nxA|T{F^OB@Gn>cxb1jKc=&#PgCo7{B?ru;>=s$trQ zXi&z9D!JQABEl(okCptkFZpdN`5hLAC=sjpw3s6PKx+cM4@rBbywx;uc0KvL@$5DrF!|k>+IPTyYx(LyziRy^f9a+3$Um~ z?w^jzA4XJk7Rcac?T+`gd+yjsdpx`uW3YNKF+nJMi+$6c^(L2DjWI@fYC)a>kJwVh~dZ`A`-i*w8vqGyzrh93RWkci(8&i&}2qyj+0`KTrU5qH) zh?!?PM$Da(_+!IQmK8Kf-Iw>O*t>3g$=^YP3V-G#*%K@`BV z(Hmq@(zS|1Z^D3a)@Pr@2yn8WAGD85QG`xn8JsNvLd1Z;9FPL~4@KhqzX;kZUb8g- z0+iB7&0#9gbT}O1g<`Y-dqNU@UQDQ);6q&~cn*4u+R6zkYk1K`B?I1~f;rGLCGFZV zPf+KZmQhQb_N7(%nYv!J#$O+Kny!iI>DdJ~F{x@6YC&i!U4x!f!qi9c;RzD~k*C~{ z;uXYbRFnFrVVoWxikZR^0!C4Dysk+3vk_^kA9hLCnXZ-nh0jwe-H*{Magn|c< zq-QM7SZMNL)QM!W~g z1uaHS3xikF1>#?bii#mk!JH!(g<8m4&EI7(J;7N(4pQFp=h`MAg?x@o)DykfK*%zk z_c!xhwzt8WqQr7Qf9h=MBGlQiZRifGljT2Qp3$JMjYb1^0M@AP~C;bFG57#CHYM3J7i3vdM2!k8Reo$kGW@!;=kf|lz$48vX%h5^JVrXoiC~i zH1NrL)Q?IlT{%E24Mn|L`dU6)9ktz0l_t}D`B?YBjjE3zs}capJSq|8?t5C_3qFz< zHscW)=Z7~MwR_`ItWeWJh}BHj_@OB@J~pD4ZT}d2=GiX`y|#*&Nw8i?!OtI6rxB{* z8|ukULGZhWzY%rfbkbYDZi~CfTiL<5OC|4y1zK7hvNbR zxnfHa0@fmR7ZI`@xh_DwG#eEqj}Xii=@&@Kh%9x9$VwAPA_=8s8FvJFGfM{*awm}n zWh;K3=$Q3{j8(~IcL!@&O>z1O4t;J`-6i^hitH1`_O5#2LXaV!*fV>p@gYd=Bm%Y% zUjLd;uQ5DahJ%-^M(-O^WsvTj09EwfV!LlFxK z#7nwCFsb`wqV#$KGBwhJywZ8FftNwx$WM}}PTi`YWasyDFX<{N%tHRIRXqwtT1i|b`M>bB(&whx zhZ91Idqy)8jN(a&(tnqJbNgpG0WJxV@BZhK8hDIA0?Poyj%9kU{-*8?M}~X1{it4> zB4jF(!U~p(gaPuB+3pEx$gm05tD-S@3xs!3=CRg-S_Q{$*jPyxk%)NI)doWRmZZ2{OuIA|i`*HB1pU;4ILuZ0~)D=R1aJX$Wx67)f;K z(PFqxQjR%lsk&stG8ECPwb=-lBH56ilbz_zOHwR3Sq^?;4#`Twoh5aY_=9k;+!s3D z{sYo1i1o(oT|FbV@}M$!=_C?I6?7pT)~!$wE+EIoI&87I+dL^2%B7>YTv~~X81L9c zh)BNFJA_cTd2Gz)8hs##0-v!wEgDoIG)}1oY{XE*zoy)aFw)b-geF9Mq;e1^`*ZfX zW<16=w>Taalz3#q$wi5h3skN*ZNCy>q$Q0QGWYqzrkKrXhi#PJ?cKfGJIh-QFj)Tl zN`dXZa+m~~-9{(HCX@6IGw6pK*o(rHK|gJds(k`$C!4!tQ-owD$T6MQJK;c`qOWMi zL5u;g)Mh{eG~`Q_;$wtLm79>PBc^p4ePiXANE zS2nc)J&7ll8OmPYx|-(%$`c%zW%d46{FR#|eL%C<>_@*oVv26jG|2&N2S|(z8l9M~ z(rbFh0*NmIm_uq+4Y4pl(c5Z63R_hLVkU6QRc(?X@LjGJ!0xjLSy4z5ug_HD_y*Db6 zzMv1ZAtQ>HT!9TCSwAuF>s{pj_v)$DwgW>E5-yhYPj3nJH?Xow^=r81l+7}C(x$kS zPLweHzlSDuKi}KK(QJ6eeu3E89I(@*j$7HyHfZW@V9wPpH2GP#%s~2g5#eQcm zL~Tzd-6P-PMgD3jcb;3VNB>TcosWtpxE>)ZOW=3U?wDqwcr?4~zNU{~#)g1pGAhIue+Fr;V0`e7n6jT> zHcYt*FUaET%>u;jo!R>yJkeA7r%uSl0#pP6`!-AUVapFqa?FN8Vd4s#nqmQDd>iYd zV`H-N+I2TqSD3u1S7mfk)iIMOGIoOZ5%n-jWqSn=ZJQu)pu?CyhFp@0`D0fn7a?8D z9|z_~rR8(|SS)ec_pXom9TR<7Kg{pzkDVtO&;-e_783IV5xYG#5}jS|fw#$&ClRJz zvBI?#Cb}=0lG@2HPqLQ+x)c%pcA>Ppq$Q<^pq| zDLR^;Od%oI&K>~CU&d0NVe=Xjqj!!CUj9dTbX*GeTO|3F$%&?=@M|SgESIAvB0lD& z(WM^S*!jn{@yjA{S$0ji^W`gI&-z5>5an(mMXAXWRvX^F+S-0 zp$Pp}m}fp?lVA(QtP;5#sS-pYpgJ@*s$$951)UzOL^cY-_2VVL!$g^-=#mBd$GY5< z6~zkTmH{&U=9u_MP}*6ROakT~iNP44?u79v>I#a2W~=v3!$)ix3*;BclWk&L`q05QTZsQ=YtPHR>F2pVJv>KcTvl|Z=tn*nGwXk$z|7^Q4I%O{xdq*$}|l@*w!Ic7VX zTrfJ6IhR~(%al9v0u7S8YKc}enJ~y`w2zjif%mF~C63%1m(6|KKsr$bOCXJ4%yh%& zLR03fv9deDI%tG@Ey7n8&FoxrCrt^+4Lq2mo=~r^NLYf?A}$C?(b~)_NR%;UNzA|e z_vCRUw+t?8c>0k?BT)|k&Tvj&RyB$@bgCwG#VkxwHel*k_JygX`@$3}Cd1Xt&xc7+ zWqHDQuq7m{a!a>tLjLzb_II9?fkqv$5zLJT3f79yWHI3vkE}OkI#AkZvEK2?Bo}1F z$-x*W=Q14SsC*A=zG} zhu`AidEES?CoA?S?p9rzVj?$ll!jV7OAU;kdI#fNA{x=!n?dC~P(SqD)E$YbvCa*G z&U3>r&)=`q?Q@Kkf&+b?6@r4z=UZ$U;a>lwI(Z6+*nQ07G8Pq{DuVMvoVmOFuxKn! zwK-*6YhV5iA(3?**Hu#lB|A+ae}dInl0RE(5&H~LPNft@oJ^DO4B@J{$sb>^^R&0&#R)Q`!boH4t}Q6C3Au zTLdI$qA~ppiq^JQCG_|>bZ{T!+b8X4PBIvS1kL#S&2Hzv#8UOOT4lh8H=ZOlqE2r` zlM%x^Kw5ayE%GR~J+Z!zr2=WYW1$c#6m=KSC0o(P1;(Ha>MYz13lxVNSLkv9;&HiK zM11oV#nSwPad!dTi`)l~?L(BEO8SRDY=$K8wSeiiYj%*Ab&nLuynL!F=tz&ij~7|m zkHd7kzB2}Eq_)G2qnue+Q^LSEio-}yqvZ|`8r`<6scA&EtZj#u&_i1%>7YQuZWcp-dReVm0B2jhAB?66Yjg6?>ycYE6LC40Mv}Z4%2(jJ+ zsyH~H0?E;TdMi1{6wRTJ)KqU(K3uQ-$b+o>kBl#U<-@-6z0pROA=KG2)mAS3nJN}> zww#JS%xbH0Rzq4W!wSezy)?q6p1Clp2fcscd_Qk}v6<+Ly_uIk&*F~Y-l1s zeeAF{2Q*C@?mhvY1i^4!$+#3--(7^P>hXDZY-3k>ZH$peXEQSMiWqrhGaTE`$RnPS zM<8A*EJnr1eO39f8-@BwPooC9!`Rk3i%qla5@c(PqdOZnAuGf$40?hLQC$Fsh?$ZQ z>K=w8>lTuWbjKVbk4<|Op?`6u0dsvgR(L81j)d}`?|plPdMkH+u#!1fJh;L|ptOE-h6 zumX@1)_t>;Vql~&o;Eg-u3%84`XNDZ}Q|R|$l7{R_>6Ixkn$oMn_B9g6K7z}_M~k!uZSWrnnL0}{cb~nnEBcL# zS=dbY{e>V~By1L&swO>&!G$i4PZ(cp?tUs6m7p6F*Jc`CsY%QLW3Ete=~%3$M-af6 zW6{8~$ld+ydf!z%cK3vdmtrh!kW`!m7>0nz`~tb#6v7yt>UT-mpDa>TmyuExgEs;Z z7#B8clT#O#22a|pq`XnC4L5xl@m;Z>ry4trh?mIHEme~h)rjxn2wfD6pD1DE^}WQu zm`7-w*Ap5qF~02M^w~lKZhmY+qhDZvC@n@20mutseIhTqs7?4aDKZ+Q$Y@Q9 zjP^?r<|~fc>_dvAn-LfNQbf977h@4_Y?5{(UTrDn*18`lVz5gHu{bet0=Y??h}=Y! z>_(J?SR17pkzKZ{kHgv{8o^JNBUn*cjlR#QC{7#qNX^+q#%T_}A!3<%f@F7yY68oif9FM6}a{BKq!cb{MuAorP%&F(ri zSjpqMI`6A*$VO=2PfKjTAe@^pHTP7sxF-KvWDsMLmnCb&8z!~N5>6(pu*70ZD<=MF zoz=316z|bqC;=HtxO-s^`ytc)mI;TT&|t=kmR4F+e=6d=)C1%ohFtMdZ?q=$7`7n5 zkRt%A5|!|ib#At-RHx>x2{99D8kU?J5>JN*@=ntspxtnGrcKT!wfI6_>WYn8P`1oJ zv`OMot(Zs+)X8N$JU~kWBNr7{s%*w~I zVHa^}!&aTgVQ|6LvWj=#O|$GRvAm!zg*_;%E=9UE%d1KkzBde-K0@J;YLmi=5xR{` zJ)qy}gs)oF=h;g7-SpHIC7|65q4yR#bJ>SuMLTO2NE;1gB}tXA3o^ON}?50M*dW2 zoD80+pFwGi`{FQ7pOC0cpYGuW82wW3-8Cxowh_lET!A*g7=R_>2ZMf09}I^kIrQe5 zCB%E?Gs&qlqeY5}N)-#sDo~rd2UicihL|)3D)|Jv!|)H_9S8t`m`&Ta=uShLvPel+ z!clf5K9HJ(wonzTIwne%Bn(>rr@{y4hcRC3jy+J>cCq2eM#P0aV12>06LYz2M79>~ zA<<4&==g$fDplPq(bBFoT49;{P`}+-{Z_He)YPw~Pp^JeFZK~NJuA{XJDFmRmJR6{ zurE9E&x!;c`b5LGTy;TgX?fo8SwITQRxbZFu?Jcp@Nl(Z*Y7dy*P#r_Z%i`}8wzbM zrlD+Mxcx>g@^#wVd9@)yYQJe3rcToP${9{VoP~}Nabyg~wnX+1qw#PMW$Giiw-nwEHXz7{kW`FqSaFLUhsFeCBse5lm_Qn~Z= zXMg@I{+1B>k&YR(>FRbUBWF2y_JQP8FkK3cv>~>dM0mnZyP z1_rIE$=A?)p6{9l+4|TUWOTtW$kcOOk<`Tnr+E*iKO$>{#VAA3 zFW2b7Onx`O(#$3<>gYdh#L>h{fDl(kQ&h-FKZT#7rbD9y{y&Vw+p19%HdVV}8P8jR z@8OyYI<#lN>;rlsOYaQ^K-Ldf9e~iL>7VadgF)4a1L1BTr4i*e{ViOD3m*UYO26@6RPdSXm)0mmpj zsq@^Ex*=IoOj~aMe@ii=?DM;*FJQ-h)Y-|5*@j|pp+3wI8xgVxRAdTUi0A9!87Qaf zACo+n<52auOk%L$aw-OQF6VU&OImI4>qWL3M=gj@#2;uBwo!(vWn#2p zpcXtp6*oYcS9uY}_(ZG0M40uoe~3#FrY_m+)EieX!eA%apZ-1P60aBm2wYc!UrVUSuSbhQ)5fU2Y2&Kj=1aH34F8D*@6Fr%HZGaY1E^4fj}K z6WNuJ5qejN(S2b8Sd6d^8X3^X{J5>vI2ac=y&y!xRJ)-oGdzH6+gKILG>8|H&AC{n zv^+&4WAfGlwz|Wo6J3}MzNyZrYAeyHYdXmwV=zWdM?2B67G{1}R0pE%4(Hj_-!(b? z>F+q2DGMd#I4L{CoempO$q*Z727*?EBeD?^wG(l|qKz4wy**y)i1aWsC#*sNDgCy1 z7`BLHI)yc?&Zb%t42!k#-OwHV#gm6S@jjcztm4!mDQ!hVUM3piAjUvU#kVF-oH^mM zkSO`qgxMi$mC_vPiFkb;#ZeOlku;hg2Wx{`cO}_hr5qzGCwT)xQ;E1! z0C69yxzg5nzMj@3Za)fAO$4RH<;OuPjn-nR+3AOLKCcANhXFdRAyC1WAYpp4wgCnp zLzLqEVE}5CP@$Fs5-O#pdeB0JiOGXGTVU5}94u5!GZU9(|8vL&3`v0Pl#%+|7>%-d zHV1o`Njj*VGIYQSPog-mN~WSKOT#n$(@rFzm%gKUIw3HiFt>dMhh-$|Qg2vBt43~# zn|Zua_6XUAZ5fMKxT^E(ikw>>>!f3n`G^tHZwbZ(Ew~W}{kX9Ww_4NU_FUwgAyR9h^W9}j*J2hrCQ8z10f^12?(_s73XQ7mqH9fUB%q&-s&gXg55KzRrW}uQR4h4-Rojx zYL&2K|E1DO>2!y(A%{Q!t#HPTCon;;We)SmRt>1u>pV~l|CHyBI{?+rPa!jPhTFSp z1F?fq+}3!PNTdS)5K67+2X4=*FW+9j#$f&PF>SEgE{`-TR#{t+kPwK|6P^(<-5<)u z3F?6fqiJalpf_mn0tGA|a3#nI8?skg)Jv2MU;i?+1SL%>hQ?Z=;) znn(d0u5^|mCwp=#AMZ5sc(|18@6qm7JS?Oau%)vfL>9EWYhYO7ARuOpCVJvN!tx*j zD%v2U=ExX_OpP#ioMMNp2EXW}b0gj#$OKVDstg0>Q%OuW!))uA zPK_oZA82G_h-D&@;TtoGrNY{FvbgE4B787qwG$Sv>s}SD8507g>-DIbya~+OZVZ_! zG17$(R`-)j4T=btIvz_s3Y55T3HnXR@g@?t==2Ye5uhjt=56!@>t2Phoz&oJ4!dn+ zD0f2}jAeBE0y?0*+oSt)-2I)=eW$y>C%QjAc~Z=UV_;S=6_KfVyM_f?Q`Q$IgbT&c z;b7q{n+HOYC2nu+3W%d3e+Ab(g5{yU|ipzkO%Mq zI6y}!KB!oR@qET^Q!?B7vatEp2JgTX)prK`f=Wa}C}y3~5VN{_7%mT=UEfFRK(J`i}L6a0_z`*n!1v9D$;{ z6P9r&1u}IOF(0h4EjNd{g8M1hEpWYV&F*>|_U>r*l4MKx+{NAAFraErpxe zCLK98Iy(=>_ecl!%J=_bK5?|MiRQ(ya1k>shdJ3IHmofvwYM2$#r7}Rmr^IifOKnIGpRxlu zx*X7TIZ&5oVG(A-B$1rR7yHW#{_%C9l{X1@0q%m^_Yo(xv8zbv_DPxBC$7xc{Gb(Q zfg*P7c>e!8E^I^u-e4M1EDPXl67WRTz=8rx5jkm|L6jV!h8|ET3DOG=^@w9=5~3-# zp#S%6SS?4j;$KFZZP@S0WY-BPI;((9ZqCSqy*`*o9Vj*f;cCD7mOk)V3Y?fJ@#4_! z6aY>v)7k_K8A`l^xnx+!!R?osw!xFW%PHP{Xodu;YKUscwzM$ap%!s0YC>=~5>q&fCTE5Er-8q~h%JlKsHpCW;LuN@7|B z|657WK!Gs`6gtD{VW41;$RlAU3n>=T_LGhi{O2WzCaOwV{ZtmpiJ9a=77Z*Zj&gN> zOp^KbSZPdZTv_~Xd`NnUQpp?b3c6iZU+Nq^<^5`;qG=ziO>O8@(|$~0crSGcxeg!1 zV?`EiS}#+J5HM0wK%fy?H=z5|6Z;B9<6Hp!VKqgsb8c-p>I0spkbu2PV86nY$ zm#Klf=n$D=%|W4BAo<&Mfd@?OsabSv*)e8r-5zsV7-Q4HG8#GY(5~)qUB!^*>a`SR ztGoW#4g@a?r1Y_2w_m2T9~uO$u`5+u+U-RF8$U9o1v&_WS5yJJlus`8lduw>7d+~R zOu7<|0a`AQePtB6C7*82OoI3TCW9Q`R{I3mhO}3`zMQi3wpa z=7MF5U_)u4VG80CWpWOo4m05{hcZc-R3m+&KEk@OT)H%#F3dn6{^G$I+ph2bp1h24boqhX-k zX9)(bC|qcE1zXNsgq?+R(F@Jw(n{EjXvNyHf#ys~cRK8KM$e3lc4IY`K41xo=7Tg& z77jr=B}ld|V^XvE{0YnjCrQX$5<+UCJ9B~FEe#|h65%0Bc7hJX$6QWIBDv7CBwK>m zQyK;cb4*SqvDTp}ww5vzf?xosRq<#3Fs-f+^%$|QWO8fHD4F9NeA6s+Ylw^ZBXHZ5sE(gG=&h`s>91 zdea--LD&ZRSGGoSL09snxk(rq9enx!qJz%xv}EDti`)(vS7&tWifjJgEWt2CN))<+ceY8xSA%s9rELTY`a0{{NowR1o^}$W86L2|#gE>TK zYf(6gfyzjGQ)Er9Df?=J!imJZWO%5G&wNe_h?sWX@i5V2_X1VoHjN~a6p~Zu~Vmxs=_hW9~IVYpRu6Ur7 z%4G80xVe?f@beNKwrX$EXu0=xOm1MSj!nOuYC-|%jjB6CV668J#Z}=gnDd|Pn*I<` z@zkM$20H=gtVqvFZH>|D?#pNhJSor1zPd3Yd~iYZ0QHKmag6o0#^RtyTdHieNrc+E z2M4J`?Za8btc=`ar1*h>AWwI?z~twGY^mG|eDjG{Z`ckkK@?9t0*q$E*wGS<;H4g*DNaz4kLJ@@Ec#HK>lkVNmFVOBM$R_OhB-(U}0muB4Bys zyjw1kv$+WUE44uI#lZ#;>yd&Tap2H5W^|or*8}XjAoV>BvD|wD8UiRK43KrpX}bDV z#J8a|E5V1q3w!L=Re^OC81~;_4>oQ0EsZG};01qrB1DvfKxoK?GM-wH9XN*;MFYi)3A?EH)gq?^XzcMLr zJ4MhZr-&(4hWBwh7Lg}?><9}lxbYAuh)T$&u|N%58|!Ir3xb5h10WzUO*;wOe}g1d zCpwlDh^;E)K|568nD%+F8ZJ8XN|{N*6Wm%U25Nxwl_3Y4g>4&9VcgPLWf9{!DY^(x z;XTzIW~I)(pj^bs6&9W&Nfas%jnkcqn&7=mAppUTkti;KW5n&lHsZ?Bfe-S?qf>L> zGHg!dr#5)a9|mJ>JL6CJH-0{V$5Y?85ITQtF_8}=Ign6vQViddik_ePzT@|S3=6dB zVn;rQXpz$k`z~Piw3q{kaav>4?n5_03?l~!@P#<@fp>^|aFKjDf%*zVntv39wKG=Sg)^LrMT*2SA)0`quA&LMZt&9c&QAr zM;6OLVunM4Ehk_2J0+_E#Ds?6tSt&vX~UMIU+#uL0fc=8CWjnIv=CQEUh-!Nx~y3M ze1;2-u0}}D))*PsRRG<&?A|E~@@5$Q%63W=IGMNiL&nUbx`bFjb_kY`9`ONlkv;4Xg-?!+S%7)bOo|rm(MMX@k7o$c_X%5o_9Vow0~+WL?s+SY1*c0 z&rBNN($r_?_>B6PP(~^F9NFaskKT00$@$buG@7i+I_eN0EG{j5yJB6y{PheX8pzO0 za3v(T&@Gmh^d`R?0tN*_0HNPdm|d*Eu9KpD9ZwJOsE=9b(*38!$LACBWAQ{j*$t{q zwsC-8Du9Kz2bZ0kx2(VN$%1DFYT$u(le2qzs!C#pX|+7PqoKrf^&)*dCqc#N$4WCHjk2VgY>S`VYAG`~-&% zjYU=C6}`T#zcle?SoA9Xveq2$WB;9WM@~8D(jD_7<&P9t=%2YGCbWo)KCow92!Mgy zdj~Q1Y#G;?=I{#97Pvm++TYpnGE0O0sReHNVwwcn1PFbJKuHqez{0)(`(>Q&P+2VQ zEk#f*Fq}cOE}2HOiq*Yu|?R6i}l{4)EN+| zxr-et<%-9$4RE2G?k+(fFBX3x7lc>pZdku%#GuzwO$<1hdWqFYy8_1NlT*QkfAdne z#UQ3v!iy(kjB1L$h)IW{e(ZN9-RAc9V^cFU1n_r-ptBPj@R=N(nxSQgfosKXAMfsw zd=mioZ@={1y?v*Z2T!5}ScT4!uEbf$efPkz%HS-NI`<%K<9Fy>_Moq;u?daJ6$l@E z`lLMoG;+C9mtxuj61e7DX_wa%_NVHrG@M_Ie$HlD=v4{whd+q-R_6rVH=sO{tumJ)hQ4^xR@YqiMC%UW8AXthYFTQ}=nI*d@_%ookI zSuFfDJ4R}bvs}1f(^8iSBd3Gli7LyKVWHd7u*LBCa4m)m1Q(E9m>jG2j z%)e?M0!k)-otMj7;%<r<+cqiX-fQ9CZ`p=_z)ziO(Ih70RZ*a3#Y{(FB^gE6E98*oyh4e_0o?W%@XrwTWtE?he<4Rs+=_8}Vmpezt_JLYI(UXwTnf zFfthJ=FONy3}>q$@$(z?g4!$>&fvE|U6)kJGnWGVHCiWX(xBjUW#v+l4|vF~LURrd zL7dW5yCc*<3M-{nGsR4`?H?-lFe4=Y)i;wOH-*0CWtV@_CC#((6j2sxdt2~U7%f4p zml`9Br%o}Tu8-?;1tzLA?P}~bTG}q*Tx7x7rU$T0?hnO2QBkdLv%n660O%E@r0$BB ziUoQTJ2%={0<~P8L3SRWK~{F2EAiCV+5MJ16>Rfxr*$82mDE(G0b!OOQ zj4o-)(C0q*oJ>9)s^LB#2JzvS5UwDH5)&81-5tlaz(Y40`=D>s_* z;tfu(fVY7CSn{y}&XgTVIu&@<_r^Vaahxx(y}`A8M)%|JLU82%N4J*oZ7yO1(lVa@Htv!%sutnf@`3JUGbslL8*$7R!Se%^4Z!)Y#vnh&8N;rwb$3D^{N5h zMsFty^CMz@P!86`FYRVLuH@j%atC@MHJ$c?GuFl}Mi_{afbt5Zp))dGQ}{>wX75y3 zXhd^^UpCVTy7yY1HLpT23y%oAOfJbuQG8<1m)%Bj&?>yag3*r)$rFq(8A>NQP zFDE^lQ!398^F+4-S8T~C;4pVi^o3#p?WpAw#oK~&*3$G?&kHtpYvRS{bDAKcB1klV z?xjwDF{hM3?P^X^SVDQQRx(s9s`}l_6c;4NO-j z8>B|YT5GA`*Kex^@?CHL9lZ^H^+%0J&(3-$ygJN_BbH55qJ}r!9R1pRAD=0S4j)S5 zg!dB|PQfd~Q#0_@$aTU;N0X^F@e-snM^RC8$Ht{TGAor#J{l@P_?hLMK|vT|)|}Ge zv&VJDaFA=SS9H)k_Z&3u2D;G;@`A0egg)hX>W6gAnjeCy_YHnk4Z+#KPyl+%pA)6A zUR|mjLxv}UhMb4mxm3d_Ud&voapzKvC69@87zXgJ``8y(e`ORB+Xl(I=rFLfgHcIR z&9Z^vb@ITA-+<_X+ho|~<=tlh`tpXdhNHdz_M1vwkIStwn)v6K|{)aYwcDM_YfKJc^4Irz} zg4A3ZYLz(m%?;V-k&?+gP?el-0CvF!sVaR*XK2v_=Xu#|p`p`}rXkPzU@(pfHQW-) zY19y-8}(St!B!UQ7qk|<&c$k`3rE!Gc&9E94R29IR=KGDGu#sFjAFM=BDt>!fixK+ z7FbAvY5PSSD?FKevw&RJJ?v|yNwFGZW2zLVSnvT~-a)F7 zTS{YIX~N=5&M=8j(0?{Fn6j?d8S)z1V;3lP$vM~}c$Gjn&K6`K8jD>?S4qg6BN2zi zF2yChi6thuC1-BF5?teE`8aA0zW$1VgWToIaFfT|+uW2ZXBwFMOf4-eE{V~JuK*Di;TrK_=ugys7Icuk@KN_vjXr~#@Q;~?$q&T`p0 zi~`A)b014gFj43yl*p4E2x&kfR}PvB3g8kp5WW$mfe4e*;@CN>fy4n1)7%C^xI=`( zN&7Ys%`}S^kC+Wac*Rn%fw&L3Y4<2xvW`; zKw~6u#+U9IN-VKJwPY7Z)MGcX!~{Rd`3hT(jgmxI_jwG7z*ofy&s+*KYn1K=SY<@u-40X>S^uR3qy#@Skqz+gn$AGn_q~KZDH??& zaq_6{;4r6xc5jPCk)4wm`^Opt8*G>26gVFG?JQWv4}Jhce9&tV4xChHoF*MZxAOXx zDwUQ2M5+_#pJlZsUZFKj(=5xI12pmEF9n|JGbe~l?M$U-nA2CftQ3**@)xlvM$Z@M ztPBqoIaJ)RF<>%v`34HwjN-7iwA0tQOS90#;)0Ffyvh{iDp3#lD(Gkh| zrXHrw!d>}wjDGzh#$lQY(u&XFNlc{f6hG@^gR0Npv-pdTC%A#XgZTSn{_;gEuF8OK z$AFNil=-XTyHYgxnc%@G?&0=ax@)i&%OsZifVGgCsSfnQ3two&abSt1Ch7ZX6g6Cs zlqFyYD)5l+w11|qWM3p#OKowhy4?FCZ3caii;x`ObPB22x9ukEZ-#@GCZKERaV%wh zW}boF69+%=7YT9Ef*36i6;tqnYX(_>9PwOfp-Qy!yW4+zD z(ecfKn}cWVk#rAg3?dOyD&x0}oFsXe`A{Xz2?e^WN$?QyQgNt$;F&)gW64#q{1Ce% zVlTQg9YjV9@dEr7#_3JXQWCj7LhtAIPXw$4t#1|{z?z;#dsOkE0oK(IIMd2^PX-5H zKYSv$gW-r2(c1aKy-y~`@W4gfEiWf^4pY@>4Wt5J&@IFzWo5_kS2Es~cnW(y-f?8)8P zCwIq_`y=(@6Wp*VjrJ%6uxb?HOt7B#W8m>Hbsw6H1v)<=qZ?pEw2r-|E_aeEb+u$= zGy%+^K!_qYW@raD9H7VzB;chkX2#r|$eMyIz}v!|TJmE6TuJn^>|6 z!s$q7n0@kwn5}Cg7l1VEL71kr5Uz$>c&UdZ9Nf!p@nOws@b7(72LTNjy9Bkt5{a!I zYFTci+c-o?BJhZEGjk#qeW}t*Jt$oomx1Z<@=iHJFH&4xnsD;B`PtYuVotD_@}s%V zLJO0Ez5(R=FyPBg6bQD88i(A&v6v5F$Meh-GQ718IV)$4C*VR!?DZWpQQuBh!$> zi{#r0le?l3Dn9E<5u{c?j=2?#M$&MQlI}#eP>v(;;7(cea z&zNCXv&58qb{^5M6|jZK_fxs?)hR3cZWMUTAN2n?56a2YckU%vgC*@7s^3v2E~C50 z@<`MQYXTB=Rl-T4O<_V*YLgSU$Gyws0v zxNG6`vPumd-Gl11;sqyJ<{TFv>}{$7U(p=tE@(hp#H^AMs%xk{NY`Zl9VMhUCChp* zArMpR5PkG;?`|sioOreybk=>KLU#e9II)d%kVCp`7srfYxvV~HKqsRgTCXOq3v{)(#6eEVJvg97`;&O4vQN_b(Rq6Q=mrIDtktqd4Vu`Lq zmdnvZE|*KB;Bv|v@u5I*IU(Dw;c`;V>>4g-u!*C>@xkA4XGN%om`=!3QVEcn!QH#0m{JsaQkyg@$x~x8 zeB-#pK}Kvk&gv-vbH%QKV#UJZ6C#_Y!B61RP*1r3Zkf2FSwkc>0-uLlJk^}!L&z!+ zZa5HBJTFzQix7{A1U0Cn&Tq0@Z6nWXO|v@Dv1~F5VA)Rh6t8E0P=0BF+~JC$F)V#Z zhV&r(5~)k1%@4xJkRL$`zwhBK6Z;sH8e)G+!aM1^sQ+ft@H&N!Kn6!@qSl#`0zkue zz``EpVUw{Nqp5!M)=!Z1qnXg`^pX`l%VCOyc??*v*Ym04RCQ3ql3EegQDy~ zlAK|0>p5G?WrGKjZ0s@Yw2T>yKCQ0YUx=4ecS~g$Sthu;gkRU}l1-;a)En39j5+Im z9}%SobwQfVez=e4`tg)mH)dCOtg%PBqSNN3*>}fw;_e~uktw2{0)h zUaY^@%KiP>b(|JzZ$P{zKlyxqtiR@os1ehoYIeSrm4x85Li(~$g8fqCl;0t1S%F|I z+2Ca(e@E@9Cq(>=;$c5q0oI2#dqJX(3b#+hBTHIX?yR$8Eqx~ zdNlE=H=DGp3lsUmL?19g+rmWu z|A2|25EB|a=OUYgr3-D7aH< zwpbeutUa~H>^ZFE)B#xT!jX{jV|q_;+Ahk=he(Dw{sMyxskcOQIiW$El8VN*-{}|X zEkE5}7e}%PVK?Z$K&RcdLI5j-{vYX7CX{g+-Tv0y%FJ>ulnXAx7VvN-QNfv?!CLnS z`MAcpG~yFzSWHwNK7C1;(usr~#!>-{cMqmS!?v5{^2F(LEI@l==!J|+vyOXS%;S)I zp07}uUC?X6Dl6dP&QAFTY*t+(s;Ev(Q{YTIGYjdU3THJ4NF?v;6Wd-Z8NSm;dlc?$8P+qaUMb!-5agIK=+GRI=NMuS?nY|>!C z@&-4eCT^O-7vWMBg#74Bh1yLKaIhL^;E`;kd7Vi?RhAJ5d4(v!02rj@Yv<|kjpd3i19027-xa{KMOnp4{WP&E3 z6y{G;5wa3%NzeGv0jA88^zh)`h);aBUC1zA+F2J?3=%5R2?Tr&sl6mde_dS#U{9K2 zZu3NIm;y3Kl#76TrTNoJ#Iy3W9iIsXGpqyc9~&u{C6whKvZFJkHrPy7)>nb&++1-RMc#{4ncb>G zLoop0sG#7+!6DM$^23WO4Fj|x12aIXfhl1UX3s_#Q-V9?@P^lmJ!|pPvy@C}{w`mW zvCBAtq5+|iGJJvtrKrm3@SU9gmrr#jh#5uC4A`AT!bTsN-bfv=tOWrLGI|{cV^Lor) z8=}D=`edBcvU;<_&Zlq$bxxX4iVcYEK#IJQeVa*uuvkU#lD~{~qps4sH&I|4(oylRwL6 z{+W1#9-x6RHmh_%vA&hfe|nWb*f}|)u^{H+o)I?c55u2D2GJHF`&mmre$LH@jw50i z33=a&n455a1gy@JJV@O~_+F@UE`10_%1bGI8#awIq4MK_P6W@>xF6^Hs8&Yrro+vEW7af{9kSq*bE!#-$)0v_w2Z`fX6@oy`|5oWyN*d_S3zP}8z zG5fab3j}hoVkFpyn8UIdBq}Yfm>O2vFrs2f7P$eUz=El7VGlNv2zN2xYtYOz_ydZA zcn9+tqOe3n!R!IF%l%{`nKkAR#&3iXPk_^Ha3k8G7#x0uJN*#^fPbN=ZP*$lE(W&tahZaij z{z6Z`@JJ3RAWJ$66=m{*FFkFxja$XlP=Ka^!}bZwER_hPtA?PBvpyMBLGT@@+3zDh z0U?d>wiJ{A*a+{%0<`x8CWG{ID)j+6l_>L`FF@nB!zeAEl;Yeh=QF$1dR4XZaJv)) zWz$r6YXL@TVwxE}iQp3$XAxE?KL8H;LR=yyac4Bx>7!+E7&^92IWh}i@Y^PCLJ88} zwFLm3kJm{I1p7^##7{(NiadayB=YjKBsttgk=4Y+&d*Nj?EJzitKp#Yvl#4UcM(!v zu%GQq7O0;Tl(Hp$t!Z0j-sj|bU60PmO5@#ErpkE1S4q=vc7FMxz0?Cmf5 z(CF7X&FCgGXU0esk(%S3+^4i~bo>`O6wv+?5A17!q40so%OKA$P|!}WPwC%>>B|p% zKfkq@8Osj_O)Hk21bU~!|5!YF$8ijZZ`vm@D zzP%~NMJ#nwJizW(!)!-0i;BkjPUQpV$r6riog%43mOB}n*d=`SShtKT>5hju+3bS2 z$f&QZ{sb@=`2(7n+D`N0;%iWDBZ-Xoq6Rc-hWi9Q#qkADN*_h^^P0uaF-J}3V=DR5 zI1(9{3mCN6J{L?SoRi+$IaMJzewikZBjOsvI}s?YB(cf+>by2sSu?c~%PVospbaQH zRK_Tqg!@b9Wa#iH=AY4e`Y&~ajY4#VG*1LqL8*yg4Vv}+!cbmf0=H{<7lVp_ z{sfgr<2xQ z0=6v+pwKMxzYYlv(>KbZi}LW|zAz#hY%=4uk7xeGr2fM7l5M&6!}iQSWP;7WEAeuM zui^uw;7(_a7&|64#z?uEDU?Pu3E)&rbmqr6 z?b*1y`R>DMgi> z+XrHnfO&&A8?$f7>w6&XEaMBbIU;mpda2*x{D4G0v1A$@FU2mMPN*z33ErYNH@br^ z)Fi|tA)iRS!y3{C2L|T26H$UxU`iP9p1E`CAX~Fa=7SW2Cy`2^B&UHt<^^m)^@67) zuX3Kh5@vj8+Q$!58r9_iyGuAyjTXsUU^1uhb0H2Rto z9$s*51Cywvjqwr?%qpq%aE z-mb~yjpxVr@kotKo^nEcb8AQY@Yd$VUQ0)Nbh)D1D{tAe)@x~Puh*+`-g#}+-W=}d zHZSH+#%oM3Pd9qY(`}jhmS(S}rKzT zQ@W|8ZRMin_30IrOQuZmypK=yyrc6xuc9KiVfTDB&+EPA^EyS%C~YuY{F;`=mNvhsD$}5H6KBn}Qr_$q zzuti0;k3%B?%| zI$B#>+S=2#{({P>Q^O83tyMMYED)8`C(rX1w6p+6^Gd&ZWjjNqS(=~bXX+O>SG9Mv zrM<@bYDm&gx3#sjjrI4;c=gTg>9%G@9zLpSYpYr*oV3(*Yuc|)(^}fEoE$6weo)fh z;?F*O=1dSU+cG4HKyC!!Fv6w^e}%(<@^N>KAR;!(@@{qny&2*(+cJ@-38PU z-P#E$0iZ!o*f=0)sxsM5tLxkS+H`CC5-YVBq%b08%ZhQmL(PN`sV^=8Q0FC;|}r1gws)%NvDlAx20jxV|m1X06U`I zj9UA{Nrt4q~wMR{*(4k{fFv;2w z>MR#>gXki!>{6>gF7240aN70WkskzD47e%>6%Rov`!@kp^U@kk&Ii7=CH_p4i2^WtfXG;fRQntj-`%~U%3 z1ZX8ifXQS55=OlBaD)$H1YWa>h1Axv!g!ns3{6i5a=aGC><9BFRaU~on z8WC&lOa8aObYvT=C1P@5xi)>ApIxthb4SynkO5}-PaY^bs#L#tF9rO&WBlt#t9#xh?SXYPcsX>$oabamXLL`tj@9 zTAGZl0vM9hYeGY;FL%NyXl-poc`+@gx}(0a-Ct1;4Le+wMHvRj=PPS*~1#AQtJI1|C94lZh6*_!tE@<(~IP;|a| z?jsDe8s~MAyC>m zL%sHSv*#mpB<+?k@u+d-Ep_Fl#zoMWRAio=cH(6Pvs2Y1Ju=dQ{l=EX^);c67$K)S zc_0mg9yC#ny4v6i_KD78?>%FLbou|D-30 z+2rV42vNUG3fs{CKsb&i1FNXUaWK;kSrk7;Uc z7vB^mN%}dxC)DU$8)d6VOE&W)D=S1Y8Sw5zhiUINgTy*Ln^xn=7s)0(cS zud6pj&q<~X7O1$55rh*@8PBHCv5ANxx=^K2i9Q@Nou6(*kD`UT`nF7agcNb#+zISr zCQT;u>*~fv29$L2@tSb!uRGJg5KWSar zDfNnaNKK~|`Q`q6?3=U}gFouPVg9I*6$cbeYH3~BR=;>jyI)o_)UP=3z%gPzqlWQo zKm8ibZN&lpG%(xj&qFi9gHb*=y`(ME(!6cu(dD#ofFCs1LKGQ)a(yF4-nPZ|SFzFl zw2qbN+^nVfxEC5RScefLZs}(+!4VM(?-kXCAtAn;rz1 zrR`8Bf_}5sVP<7hbxWg+?QM(&Z(_^hNNElU(UzcFnp#WU^`tI(%Ms{B-jZ}Ha;U%8UZxUS0myM=R%dfiI4TSUzLrf^ z!3mX(ERX$9Bv#~QaK(fsoK}2f#(7PlKgC=b;e_HN2-QlHF6Lu`!Dd-TO$RH!DWV0( zF|yMYQb>=PidvS|>W3`CNA>rdg%`>mXCk4Bv@U@pQN`NZTJVw_hrK5IJmMNQSrJp| zVhi#EbhOIr*I31xb}E5Wzp=}EA~uW14irFGn)r_?waAl>HmTHRDEOdIv1I+&WvRkj&JIvH>VjTG*=~Z!an04e2BmAsD>_A zfXo=Fq0zui`iaGx4EDEW%aY*X!oUJZSGBVi)DaL@;|U05vp2D=r2*yYzr%X29=ENa zwgEX8UP~)&%3$kqfAl&nHdStQ*i^wxveSVPEzi`Ujz(#^ zzGjU%giKZ}q3;eeUc`M&&2o|k&zFfR)=^gBHKayds@M5yZVC0QMqE$dJYf*osQpKO z^MpAiNFy@RG;dR+$wwq%>!ZBfkCr7UkXC1+71Mgu@QRA^me9u?5yH%cM;f&{_5292 z=7bvn_ws=1mwH;&ub^k^4((Eb~ZuFSQf-aNEhmRgmToS`;!e+a`a zl;P#L1bl4cZMfGyeuZbOsd7%pD2Hn@OsmUvsF?q&J1!%@a~Vv?a?O~7v=Il+Ypv-H ztx0pCN4W78E}An#>uTX5xjpAkcXkb0rkwN6BOdh=iC>4Bxn^LQvJg>ZmIk}3neta-Rx(10~dIIqxm-g z+`I{k%>>-KBW(Wk%Bc&!0aaZL(ja7(<=_pO<+jL+Xw9Jw#TeFFXEG-g98UBg25s_$ zx@eVpbsacX=C-AmcdjKicJHGyVrn@CVQArZxd^(s2W04F2bhI1i%(5@Hn8H@ zTci|g)tWSDuJ*)wV5B)7wzQ%oL|=xP7lbuKlSYQ(zmi2Pptg`CBjF&Gw;dYBnTAQ( z1E~wTE>yjvvTx(Twn$(nh#Hlzt^;&TugUYA?TH zXc$#rQD2J)ftXgM+ssdI7F%}^1o?bOxCi+Y1no9p8I zuaNf5gU%W4f8eT??$EY89j;?3?M?DH)jA?>Tv;B*;l)lf-E=?}c;ptyqQh*9o}?f~ z?V`Wp=&L~44zg`Z_>Xu+0;hIlv63K>ZXI)=f)jE%dg>bUx*jwUYy zRW!G=1ad6)(3G}h8Thn}Dsya9nzptiZ9c^R%ptaAQW0O1X!Z?L&{C716C3eDTY6QP zf|CJ2+#YFfzT$?h8X`uQ`Rz@A&$3$?Gh=$J;t0y#(fdu}SB{}{b4v$`sAC3VW}rYb zCf!1+h$mX`EHNw;C>a5;Z#dIo$N&9Qe4=BQDGhNTIG){_>$U)HRkwk_tC=EXz3909-py7-{37cLks@ZJ{X z0ysreM@={M^>8O(q*k|J;5cDj<3M#jHBHnl>-^?xF>A z7Ae7^yCOReKCMueFp-l{1xE&g1iMUS}7$dsS#++5xXMRHGLe6FVj2Y3K837rtO`>oNQT(dv$vV1A{v( zY9~63z&Jeg(Hi?PpIGSmh_K#^%_8P1P2OqEN|qyasDtb$(rZZ0Spm^XkVsawG+Wd< zbmoEVPM9%>1&T(@d0dejKvM@($NAu7F>K?qN#j9K4$rOtCxvsydSr!xiqn<7H zAoKE;kis4M_ZO@+Lg`Knr=g+ z$h@hvd`2^zOw1nQD@g(lM&@7<*`w~gF@;{ism@qjsS5PZ{>BpU@aF}t0IFX7p40wn3K zY6{!Q`iFBHDbK!cOJ@t@G_ooa*6zw^vFXbxQcjs~bY|8NX;UC7?X6moZOPnojwcg^ zgFQ4lc4z4yZkYo83d?v}VW~Z?JF{UhMHPf?X~XKZL_`7**@?&r+xIpLZf&)ZV@zO8 zR9Nji@wphW)SN7+T_r8l;VkiTS0LU*e}X0EfCX>Zs-3$&yBE z>)X7cMccH^<8N#_%n~bC)j7FlAFFOLd?F_&zzKZoT$%}Cj4XmF>*ng4Mi8J%dgW?T zSGHtBC8k>!ISh}L;d(L9T@DcDFCnP5X2;--Ir>U4?^04*ln|ZGRSxHCF_~?e*2wbD z;xDJ2jB7~gZo-8nfHrlscfgKUO3XA8#=wTqFotUwm7+CEv)MC)qf|-N%Z+{4)YRiD zly&SJ3@(d`RXxmL=!Plh5S5e6Xt-1@mqHydf+)dB`59Hspk9(-sFJ(P4>Z>I4)U`a z`S9W7CPq};SdXV?B`6{JJM9~~HQ<9nACQ=X?h#`sMYtpwWpsW13Pn>Xig5 zfd?~=AV(gmr>^0cR}t|(Qrg>Q9_@*H?8e$<>TsGlx&9L9!hnE=pw>!Y<^xC z`*ybc67H0>ND(86P-RTT?1wv z_RJ$e*uZRmY4(=J2Pm;P0jFeBhc|y^b4zQcJ~Ot+=U>>j|2;=S znPZIOXMCBOQ&|&Xu}YgLEfP}UhytMbjFmw>ObHVtwNy?W#_cREZACvxAVdpRcNuS@ z_S%FL8n#wGewbgrL_g$s6cS@z0p&oqx;3cETl|Af%Nti%D8O*-gqBO2F2E}E8ZR{C!bIGuh1 zpbA_U>KBvf9vT{$5!$zOEr&M;Mi}-5_N-=~Re=qMt{9<^!a`@FgkfRHWvZ+U-^+og z5|9K;UnYXq6!@>wwwhdR+Es|0Vugj#m6P8@E^I|IdG&QZTu!;UX;;TQM2ygRL?Z0j zQ^TDr6*(oc=6F_2Wx;#n=@!~^&ljPd+7>G9v|#D61%|0ZCgPRBh~3D<0^{D zMZM@6?JA>_rjcjd|<20UY};hg#zI2|TBaW8p;i{|9gRY?7AO_bMJ`z)l)xI$BG z(v2`Un${yx-~Lcv4*887wtq-~_5Q(H8;oD|x|<5BSTWSWwyGv1aC$ITd9KYC+Bant zsfD1RFA9|^fOq)V!VXCblmk)u8-|f;6OLS=LD6T6DKcP{`;Z|j z2yP;&tjTDYYsB89YZVs4s2LHOkMT~e4OZ?qDS^4{!z>Q};Fjv8 z3aX8Rh_!(rasv9{bH6M-9Jg&L?7ehocWQP76cTgG$il*d4;fcj-csS0Hy_83Mp9Td zQp~ynpCsEmG9h|fD#Eg>Y7X=<7sv1`Gtw`wqm9C{u&^u3eM=isVrU_@XIEkRsM~*= z!sRWadTY3RUo}0<%8%&*$-X@*l&g;nWEfQ`BO2Tt`2BiR$*E9oeT>?#M-84DYN8Qz z>qK?R_Uj4P=xi01Sr?8RTvnxG)W{y)9I#EDZ95vZ-!`?>I-NuyhW)ue5hh%ZBgb@A z#+e&QZD|a-PC04QA_GKi%@UlE%}CsiHoR!sC@LjE8o`v~mXMZV>8Lq%mF)xbM9C;E zZ#f`@tTel$Zm|=eW}#3E6M%eEln%cPMZml}F5O@#+p27*To3g_Y+Jr%Q6^Xq1-k+n z(b5-(rU3BoZ)+u6x-5g!%F$$3nFD&1kx=zrK~LI26sGuZl@n=Rq)94?_WwgA#lxxV zEkM5brP-k_DK)2JH}F7wHvbO$fa#93L@wp|DR-)-pJ}OUC+RjloW$w0KeKWY`<|y* zd+f~CZpL=BcC`1RxiX8jg;UC(8jNZh1+W_$#28xJ#PiG!SkcnfKyh)QL(^5w*d}-b zr_mlnBK2!l74HMK3%B`Y5+s_!UX!r1mW4#>WXZUeR&%PlRO)EQ2GwWPudK>cHB`|y zc@iCdnX*vBNWPk%T!q!@&uFP82h1;1_&fX3a~pFk>%t2zI4zc3Tc|DD`j_BG*KytO zFWk}X?bAirH7mWWu-Dc^C&$2u8IP`-chF?-KmHud`*HkC;Aav)x}VnLK6K0v3ub%PaG~XJf>CI>wLMGDWl9^A7aJ zcq7X_n7KEm{6G&T)zu=~rsNyw+DYgYEofVb_#6v^@KJ^E)7Em)6kQPWuqSo)*DEYE zp{uw>b^YR^=sw4V>nvolm`St5-_bR|aC3rJhAH~Q#(C^uocOlqF*N3x3vqG<(uk_T zs=_PVRE}Qa5=Wg;KD@fB!3*qVA4ncGF!;Y!0_vw>7I81KbP>6 zd%cGHxf5r3bEok$m!DvkRoTe%&HQ}8Pwur>=~~Q=F9b1r4`3@bgx~{?HX4$BOx~=X zX77V$D<#K;r{lhpr{yiETC9{!=k}P2a*{J1b(+VI#6bZ+XEHPWi*_wKc!=la@8NmR zmT*|4?|Jif_q?xn^Sn<6Gps?L_xiUy@BCsa@NZ$P)pw7$V6i2)9+>LupIVA;oHPh$K^3q3D)_IGAS%If~Y_ERO zq`6-Gf}`5KmZ?)SUMqQ`UhDMlW;`VZdl}tkSgl?LSDlxU{?tB&!tIr_rg*DVP4IkU z@4?-d#ghM+aM{Q{D~44K`1}2b6<+bJN1FPa|MAk+{cosw?9w+lT(`OQ$cp@1w23L#uzd<>g)f z^7d;@hppT4@o!Fj_LL*mH14qRriR*8|Em7-uaBkAnsan)$CnxlYHAJ{`1wEk_dWNw ze)B=!Pu0(SJ2>{awq=X2d;0Cf!PB~%VK4l4=c>&QulxA!l06=|>xe5Z zz5l6!H$1rh>hK)5=Uw2Qz4R1eu&AwaKzkA(deU97jU*5p;ZYsQN(3$~nKG1*Z ziRFhh^}W2Y_QKfFHSc_USVKc~Rpa0nN2X7m?NxvHw@V8ee{e&r_?I8|J^9E-2LAKc zFWsJ=``*3V|9SmGXCHsYeP6u3+iTU8MMZg~CB7cPDAkfukTzW(1IKmY8~_v$Bo@lx}CQ_om@%jWgRzMLt~oBYS!68kQi zS@g5Vj_?24!OQaJ{w#=pCzVP*beiAqu|3xP&-{3&yVMP1rK^%p4S4&}iv(~D!~efavEe=L6B>BUEG z_~~l}>&DL*edqL-_v!!Q%;KWkJ~=co`q))@!LQyw_VvSGUwqU1=QUTXe5iivId@e( zzUwJ<8`eJ4vghcxmdv|!MZYH!(~=L|w{yI7#9sM_KXlOjkCr7Lyz`=kckh$8^sb|C z{Q8AW6;EwmclOmU4cqP3t>3$SQ|*uT`mpA&SN&vZN72Pi@tX?@uNpskz+X;X+^21a zBfb2S4}JL39apV?>(+hl_`#Usd;0z8yk{=z|Il-Py!ZWAk1u)smE@LZo;_{iTU-9| z*xcSkmAJ}^0Q+G~#@9T9V2Y>kBgJ*5J|92xVzH9zZ ze{%Pb{L!25zqsIq-w!=<>w5_**Aej~?}_`Q`iMJ=$11<>M7UJnhDXNBripU{2q&Uixk21Dl>c z>)rQ1fBdD7|IlyFx?jvX;nsEMm7j9;Q-jx>e%SV#4o&Ux()?#zKR)iF;Qgw@U$}Mn zj_<5H;DvQ-24A-Nl>G0mDL#47&EAh*`Mmu0D<2(Bz^Fu#<^WA^^Y4b<#4moA(uhMru`tr|iJ?5CdTr+iY*%J*d z^9k=PksH)KF9oe*@D);jZ8Ou{OLz~KXA{cit9Qq z9DL?}Yx`XA?+w@Na{sxj2dvzB^PXegzw_X)SALXvX!^TLe^~rzaPZz+kIJ93@`K4I zRKIt6`J7F^9=za{*jYPWGU0&%=brNJ9zWgm(wK+)Ke~3z%#R-^IseAXik`ge+#L$N zCyt(8@xqj|t3Pl4-TXIKEI8(Y`*&(w`;+I#pL@pT11`I8?wS|2Zg=w&zj@~KH~)I^ z-o5gG!#bao=OV+_3j;Zw|TT@0-WpU4F{;*EHT)c-qg0On>ap zJI&ubbm|HJUa}(n)+Z~+kGOaGkkReMg}d#)_x5=oZkRvgu5+i)Yu%b&S@He}$A0zE zJAZn3)0bZzf8plm4q5y76Q7Sh>y!ujTzKVi3pU(wVEV?JW~@2oprV`Cls@+Py23La zzcn@InD-YAX#9BU@5jH?bk2ZH?US}&_)&b1;LpEoZTw|tu;RsOFO0st;GOdG9$n|% zuzGdzhF#AJmVNJmg-h1FyJFHyFEuXw_MGya7M(D<-&N(s-+67YH*R}x&3*GLPFZ_F z^{r<=J%8OrJ3spIYe#;d_crvo^`>(N-`lXY;;Oyh-}}_Rt!((+ zFQ&IX+fsbYXT$fN`sSOXx7Mxg^XQ2+3*KE&n*M0kA3wS?e*LDKix*$GdgNYfuNk`j z)<@s|*EL(e9Q(va&;Q`dcc0qOaC7IE3-7#QT;Vl$o;YUp&ua+i-se6Ar zv!bHU-EX!||L5k0!$zMnb=8VHkExmc!sm|=$9zs_C#!W)Nff7xxxJ#>Z!-fB|I_*UVX*xOu?|8$Vxp_(_jf&)ogdF(-Zh z<2}~=_{ITuy?WVBKP&bY{BdE$oG-4Zu72Ug`758?WzL(GN1X8a+)K+}_`#OJPgL)4 z*16^L9=L433*UWU_suV@E%@t4Cw%{wP3dXP7fx>+v37pPyQ8-sdvl+{J(eyQ(s!Tq z`0d_adE;d_Oy6*RUGat2e`oKr9(-fN;~!po?&iN#Z~b!P9`C>N(t~eq*zt?aH})TY z%2|7zaOZ{N?;EnY^|PHGuRmz&I}=x}`0{(}8q%+Ryzqoa4=9}f_vK@ze|pEQh3h}K zX8UXRePaAsZC?(#SnL0QrJG{STUIB&`_R<*t2Y()`OBuq3+_Dr+`LnFo|C`+upI`R zf6&tdpFj2T{%^j2c)!|z?OHhh;urfCm0w+S$h4!Atv}go@U+L?-tF5fuG@X+ZpVK6 z7s(ODKdSoMuA5%}`JjKUtN+$-Kiq%&uh)FK!%z3RW4jAyW>PyYJb0%)Mt-&9s`J+G zJnQXMySy=V)|eNDoqynY7d>{+eV--A9{l&o@(-E!8;kwNUzonj zwL4YL-hKXzl^quz`bEvwIgb|(o_*213uoT&+L~Ewu6$(bZ66d&`(*ZnDZd*w2ji1eb;Adm!y|v@o=c@1aL8oYM0BrV+O+>MY*>&3l)9`o`a% zy5p^vZpi%M=(`Snr{Sfq{xoXw`akCPU-kBwL-%@rp#S#YkGT4}zgB&G?BCvgYs9BGGaS^dFwM^636B|+iGKiTK;e|~=Hxu5?2>p7nsd(3e!9eKe0FAg~K zi9pVP`s~K1%I}LmIpMO~E?n_N(*?sP?sL(% z%HF&9s&PNP?B@$=FaPk*rI$Y1`Nk!m{bs{8Pu+6D)tBus=BjH~e*WVjE$i0okiX)J zLm#O4(GQ>g=*p4%pLuSdMKjL%{+s>Jt3Ugx^Z)we&a+Szx?V+3!b=mb2hlgqVQ5B5(v zdo|vSw#lXIfU$9@XZb4}DgCdnGH~SV?V?jhR*EP z)3UNRD=A7C4WHjA%VgV?Jjnm4*En~cweWsxyH`nH> z7>CQ8O##_!O2wplR+Z%q&g~Rgvh{h*ovz3TPhQpf4c^8fmk;yt)L-)`44Qh4!*NM= zS=)yUe}kPP&EF!HxxJCpY+q@rSk5~|pL(vgzu@SRZQN4h3m!ymZgroN656CZIKeNK z{gZ-@+s=K_+w@dZUR$S5wRA8ztIqYAyEE5R=6u7uwVwx0LUwdiIs4~IGo;(nWf#{ChEC5nzIc%`+;q&1=_R!$?NitsCA0Lj zEW7vbmOuv9j@ndgr#}mCkC8LoJgy zGQIX)IDUca{v}GahTqxK7Id1(zNKrWN2cCBCJ?)!bY1r~zFTelyK<{eDH#e#Xvqa1 zi(Kzkd!L^Y?(jXoVeS69pc|9k9knt_6YtNPb9(sZ8i9qJZ%l)ox4*lcs9^B0m-*Sn zJWO?HmP{(My->lTx@F(XzS^PU9fuY&oOs_#aCt5{RAs(@?gI_QnAv-Gr7inDefr*V zONDP8y_tf6b~{2uyJy{=u90`rBwk=)j~=^hRCGmfO4k#ikG89aSM`}>=&pD-k#mcW zfuru-6Sos;8}c+Gw3wS)>=Z8h6>ksT*z)Ga75^6LRpSZ|bw8C69*7FdUEJzfFI2=E za?t;; z3C|Ik>4lQUx=jmIR{4Fs{P98G@f3IS33&xK!*6r1+wEBH_KuUHu||G$`OSdFFY?(;o4a( zog!Vz@8VS;`+lH2&^V@w*)hKT?k3+yPhSq+EisR7-g-^QCu60Hckabur=jq8*Sc52 z6k9WAPM@|feDjs*r-J4?PbJ00 zC%wnnmg4PgJ}Bkm=(N>U?f!cwVyO@3p4XC;V;i>61}}Z!yJF>9&{iv0+P5sBs_ezL z@@*TP9!YnKw5yoxXx=#R_3jc^(;`P}?Gp3bM=FVRcPrE$FX}wToOgdu>(M(`e4ASa zzb^3X^P1(?_U*L$Hp6y@vPJ_Am7tmI($7weTVnr+XJg$mYT#T&Hs*;c20wotw`{DH zN6BPa|EDOh^ zviquw&#|9-%)PF#Y2S-`Msp4}g`DAdpdb?TP&E39GedB{n4VEL*Iw%kNaUzdK%O<*rx4 z`N+6PWAS|+<@PhT}(YFbBfN*Wu~r?q7!tnSE{ z-tSUV@XGnU!g{YG2iSa5#~q+^=DpPGxbTKT<$UgQl3Kf( zlJ-BlSH-jOVSg#(LFdHS=BB&v?mnLH@u>Log!X8^s4CH0AIlY1`xk_CiFF=DBtOD5Gg>7nE<>teQH`LvMVlOd=wLvzV?T4(^!(Npnk7BLQW+(!)aaPBEs`0l z_7i#H1u9=2j|;58}adxy35q-yk*0ixhF>c@Qy5zCpkrivQ>E@j_-QAkM|BV zKEK=%E#H2%$kom+|Ac{I)=Piyn^S@VhCSz~d*{n4+4M8G=+gwHw0t`aH3n+!xQbo} zSOyMyyQ) zw(U)VzOYr@*zb!|LP)p8jq??DmPfLEM7AaBwWOr+rgyYvEW36yPvBMem!=P2>QmP` zwc2`z^+@YmmUOH#i^&q@6}09Pk&}?u3TU4v$K3Ba?47d_UjSIu(NUQ}5{y=fr5E|s8Oxt+v=DjmHNtS}W7iN5RlTr}8uG@a z(sapn9D+)-7h6=mUv8XO9Ol{);1JQT{=8@4`}g6R>U)hT8*kQU&x?-N__8mBtD>;d zGBh{Gb&gJS#^OmCdE@9MU+Vbt>$lnW+nE^-`tbU;>D^ja!@Fa^MsUFkrX1TPpMXpE zLzt228m&f2Dm|RXh?1+7k})xX%=qyhHWjNEg!E?E__Vc&sF=xcYed*9N~#>tC8Qpe zXApwf(drfn`A$1`l~~+)G`fMlZ-)*Qg-K|5Td-GMUY<&E8HXU%C#8x!$Ofs+Ls9H>l`_!y#g{N2Z%Z59$ zhFS)0YB%%_Z-~tEuH0K>GhCEK*F71dwRxJ9e8Frkk#{mmhBLU-LxPM0y3d+>H+~2= zjMi|rD+;Oq(z>*%yN7QGUjTHq#w4Ce6I^sIQI2siJK%au1#>&QoSor#Egvp*5xpx@ zczL(Fn`O+8u*_p$5%%Tc5~up8D6Oj#GUNu=6!YdBJRy?y@R=nc`OQq-rq#)5@9i*) z`zGCHV#~fntlZG5vd8JB)LoUtc%fNo70V}7^rmoTw>7Sb7nponHYOgrINagX*3&O1T-kkr zC#Uh7LVUEIUP@6!K%;!QXT8Yh`8|d@tA|6vAG&&%T#c|9d}Be^{A8>ZTt?3?JS3R) zHeT=M%vAZ|wdC~d~i=O+Cv%cmfN8-jJs+s6kULo@`zB@X}Jn36o zxL5Rd)5j0F(C(*NjLTFR$FMb;C#7&CK>BH&(S*YxGBOU*Qzcayr^df_+%JBzvqr+R zUJe*Gd`E= z8N8XR8ymxzdr^D&Jho-78f(O?H4kj^pWS|0W0rUxMct}8Ms3f%;u+1}FJ=l*9?5$@ z+c`NeIY+Ty{kww7>N+_m(b8krMWT{|tGv#$+@7Aurw|`;8_J^UH z7oRiR#6uI^*x)oVEOOn^(D^c{;T+jFHq_o2_Nkm+;2U8O=dbmp!|%(^KJSuPAFq&C zt3A}0vw03^&2~Donda;(qUWf5(#@golDX^g*1Ik)7oNCHVn6TR<(X*QS}$uNa!72k z#e}7cQr3r=bvS=pDn+kfVpF=yG~>}R!z=qTj5yz(S*XACqrn#WOUzp{4D|V|@!vl^ zN(&NpNL#-1Shiv&o4eKeO5K&EEp&^|7k4bzK2fo3qwr(%s)&0wkLUERmbK_y<@P$( z`eVWG0O-|jSB`=0KTIkJK? z@5^}pXzVlx>uv@XVT`A(4xV}k^)ykWf_ssozsd>xcivqoS>P^q& z-blWhb-ivwZ5>14-Ax0ob+=-D7c^XK9)FvyTqWg9n*L7TZy~#s=TA@Vn<9~RT=zh_ zi{;5ZlU}^v-4%H?tMc0C%!tzs2egFJ4t@zclu_a@zc+*`v|qhq(Y}E@n-aIrR@<@I zo-2u`drfjff@gf>!B+|MKRwvaVX|dgtz1d;K9_A_~ zoS3+F?7g)-d5;^jb7jw`pK#;2ee$T^Q2xu%jc29`EHyeojB9s&vb(?M1g9a2N9x>J*yr zITa+huBd38{Eg$JD-j;m;DDf9i8!=Z1^d-LK`GUcZ*M;MQ$_g*~S?2dD^$i|8FK{Te6Um^r?o zSMhLA^8A8Y*;BM|qq^)FXLQAruCE@a<6cq}M>MJ~)ACGzWzW5J)!WDOo~6gR#>U-w zq}_G4A=%6(WabpT7f<I_CueVg@YTsPTk1mtJ=)f&3V}&W=(cLQ;(Eb>0n;jswEOsNyIqt2Sm779SQvD_j>L`3-kKVV_Ek#vt+tgI+*JlkJEV(~(smqw=b{>D% zaQ^$Q&R2%h%eGtY7ju857{C_z*0`c>iE77#p-467h0j-b>t!Ekj=nZ@Ny9@dES_)e zQ#;Li+wNugOD#wAKlWx!&QI7DB&yjj%CSZNbEU50!HInn*JI=kVp(ia5FX_|t zAPn0Y@dd!PPW2aR&MT8AwG27#^UCDl!WRJ5luP$dpY_uaq0ud**Dl?6?Do`=(hac! zeAl|y?c#5{rF5z)S4%>`F!ETi-2Ga&^$y__{eZzVC-FD}P1`3HTpP9Wws$u5LRGC>83We=2_q9|P57qWD79QFm@s`)=&=OCs zx%ij_h$BXeA{6cC^)NIG$c=B`fY)DlauUvJqs(Mqhz0S zr3A0G{U~J8w`%y^3f&B!Eu0hY>N*vS>tdef= z?>Ehh5D4}}K){`N;MddYzY$*}7a}MNvkCYeL`%EKSgOMal(16cqor;sOXskLXPRf#H)j9AuKj8}>8kBr|tR6{3vg)#^ z5ft)qvc^UsIDXXGa8oCOA7}Oyv{D$8`3V6+a5N4VLC3i!;|MCjK>yr0B?LEVB6xBB z1Rufdf^Vsu0~hJJ4Db`ev>-x|3+JEE0)QGp&@U4FTsQ%T<^W`2XG2NL}*XYUKw?q zU_qOO_1Dp!2Xz-94?7o1`o{nR*u7{^#mmTMh)#{}J?$b8%>xztLu3{T1}jK-~#Uf_)T<6HsVdzRZ4+a`o ze-r)VY#5pwP=I|3N{)9dFogXI?dhnm0Wz=;pnqr7BY-aKhv*;Y4$=I;bl8+?@yYFV1QTH&hEhNjV8VWk_2l-f0ys~JzKfOrFxYco zH?i`M`xeor!Y+c6+q)f@z}E){?T9o>>jiy^S>Hkoat$-{BMA*1G|Nlf4mIP@VusZRenpl6Em4A2Gim>ycWPfqM2=*JaC&$ws;JBq{vhu$fwjS&bR{s5A ztHQ2=lFz4PU^rRd zd%&IoyAVp|Ya1|z{SNKP{QvIwuVdxk1wQid&x4ZwF~9(JAKH`gY=IQ)y{!CiggqB_ z8!P`lu&2Q;hjN1*URu<{=c zTO0O0R{p(UE5R;-lH(Z<7Qz02_GJElcl_UC<=+iH3h+M-CC57!7{Y#y_GJFo02$Z^ zS^1BEtqc1REB}75r^CJgkW!R-q21o#lVShq6iDuA2MQTPR@R6>GE;Sj;i zNu{Y2eSRuCAx@>R2~#H$QdEkpAeByxr&4I5)F?t9o6b*VL;EPSmmu4V3sAYp_M9SA zN3y*GKb3=Q&n`?=C)=wDQhCVs+@jP=qwU!-F`;6T!i5(WI;JWNOi}nSfe|9a2uWfB zAx9_^GYK7H0bxNn6G22YafG-`JRv7PqlKI_{k#aEEx8D?79m6;7h%>SLi||x2~*+* zB2X|P`mqhE%R_M?bP1cees!R(5i!a?Dr&?wv#eu_9nmZC<{r#O%s zFxK~2pJRQIy@+BF!y=AF0?T+Tl31j$NMq5*LQrtmT@EUh6NL+fJPnsDKYr3gr;q!k zFn%fIX}NzYJpWL5|Hnd}uKT|fjG%y^ppcL-iU^7*tBA3R_%B7`mookzisU~OssFJ^ z|Bq!f|5Q%ooy;|ZLFST78JQMxT*=eB$wHpuO%_2`5n>f`+!y<5>pa)rpXWEsM7>vfy29^f9uY&3a4-b-W6W z7H+(5>;Ox^O)w3d0zTjskOBvQEqDm#f=aLvd;@G?3z!dTz$9=OIDyAN5bOfWK@*q( zioja%9*hI=U=g?hl)wq#1zv#hU>~pn?LZrx2jSog-~_S25Yz$%a2&XS9v}+Rz)H{p zG{89!3_b#0kOY>3+h97#2Y%oUkO7%s4d?*6pbA8Q?|=fL025pS6TuH z4p0Y$AP~F*bg&(mfI2W0pLQ|m@Pzz`? zv>7@RIulw9Ertd`gP;S@0Vo5?fF?i_po^i4q4m&us4`R;dJ=jP>J9aVzJ$JnN#sbglMn;Tn2LB2yg~Z0DioK zKB=ft5t}+Xn-PX`11Z1;1OfRa%y_^FL;)|50Tdtr=s*IHiwNKW(tsTZ0S1r+TtEyk zFMg#kOvy>m&#=M%8O&7?;V&@P#uoksCUA%~2D9KBh2c6DZ!FGO`>}Ro{+Rb;Z^-fg z0XY^VWKKx%xnUH{cd_;OK^F_mzp;1Bu3-v8j_iYsKlW;lxd0}(bk1>91_w7g4;wE9 zUsUb>PGNYGTQ%lQZV9;+W4)8TlD&~V;L{EAK_HI=@f@&B=Aufh4RIW0^m9)}B0;Dq%gV~CS*wK-Q~Yotjj8zQaugebDS%PL6axWA zhZjQTaWr|P;(5w94(r*+aS;?DIs-|ibK(z!;3V6SEt%bjGm*^pXhA@-0ht^&f=)h6 zzF^`XbN?1L28Eko=0HWrF&!OPf<9U$>sWV>^x;KJ(uaK3aFBlpI+^0pL}OiYG<^6G z4=O{>9ezv}=wymU6NQQ(YM3<<%qBSTj#;A)bb=Wjg9zB7WT*)FEE;_({n*;keaE^B zqz|^J4!Zb1Z|&cHo2Q~?t*mB^QC3k4RaOg?#bD#-w&Y!k2|q_aVkvVe-m96FTM;>w zU_OCTN63ONabwvSCxk|g|I43$%_QlpR^u4lJiL53q=bY;M8(7<#!E^`%S@1+I7#k@ z!#}P6zjXfp!590(!Ntx=#mzKSw0vNg)OqFBt8}??ILUCsy4Sb!S%H19cBpeI4qKta>Es zL9F@?)Yq}<8K`@*>PJ!cV$};!_hHp5QTJulucPk9s^3N3g;noDoh*acMsi=tIs4eY z;%f;a5=4P5fGjT9C(3e69RE5#$WxH#e;V%5{LDoIvTw3nWW|m{{pZ-* zU~dQU;NS8-L*3p!*!MpMC&xa66`Qp>kJjIE2y}HJ~nKNgwOjq9^XIvu)7eCO}#vM3_pY0zPhq4d$bPbvNBk=Fm{rw*5jqe&v6Zc z{ubCE=-0^PBcmHl#@_wk$M*btY|p>N#v}iV{q{e_R#*G$2vS%7=~y*!CL0cJC5R;n zqpxkh^K%^YTlZ%_?BpZ&0FKjOXmv!B" +"checksum png 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8422b27bb2c013dd97b9aef69e161ce262236f49aaf46a0489011c8ff0264602" +"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +"checksum rgb 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "4f089652ca87f5a82a62935ec6172a534066c7b97be003cc8f702ee9a7a59c92" +"checksum syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)" = "eadc09306ca51a40555dd6fc2b415538e9e18bc9f870e47b1a524a79fe2dcf5e" +"checksum typed-arena 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6c06a92aef38bb4dc5b0df00d68496fc31307c5344c867bb61678c6e1671ec5" +"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +"checksum wasm-bindgen 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "4de97fa1806bb1a99904216f6ac5e0c050dc4f8c676dc98775047c38e5c01b55" +"checksum wasm-bindgen-backend 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "5d82c170ef9f5b2c63ad4460dfcee93f3ec04a9a36a4cc20bc973c39e59ab8e3" +"checksum wasm-bindgen-macro 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "f07d50f74bf7a738304f6b8157f4a581e1512cd9e9cdb5baad8c31bbe8ffd81d" +"checksum wasm-bindgen-macro-support 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "95cf8fe77e45ba5f91bc8f3da0c3aa5d464b3d8ed85d84f4d4c7cc106436b1d7" +"checksum wasm-bindgen-shared 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "d9c2d4d4756b2e46d3a5422e06277d02e4d3e1d62d138b76a4c681e925743623" +"checksum zopfli 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4079b79464426ade2a1b0177fb0ce8396ba6b4084267407e333573c666073964" diff --git a/codecs/oxipng/Cargo.toml b/codecs/oxipng/Cargo.toml new file mode 100644 index 00000000..1258e944 --- /dev/null +++ b/codecs/oxipng/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "oxipng" +version = "0.1.0" +authors = ["Ingvar Stepanyan "] +edition = "2018" +publish = false + +[lib] +crate-type = ["cdylib"] + +[dependencies] +oxipng = { version = "2.2.2", default-features = false } +wasm-bindgen = "0.2.48" + +[profile.release] +lto = true +opt-level = "s" + +[patch.crates-io] +oxipng = { git = "https://github.com/RReverser/oxipng.git", branch = "wasm" } diff --git a/codecs/oxipng/Dockerfile b/codecs/oxipng/Dockerfile new file mode 100644 index 00000000..4d58a71f --- /dev/null +++ b/codecs/oxipng/Dockerfile @@ -0,0 +1,9 @@ +FROM rust +RUN rustup target add wasm32-unknown-unknown +RUN curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh + +RUN mkdir /opt/wabt && \ + curl -L https://github.com/WebAssembly/wabt/releases/download/1.0.11/wabt-1.0.11-linux.tar.gz | tar -xzf - -C /opt/wabt --strip 1 + +ENV PATH="/opt/wabt:${PATH}" +WORKDIR /src diff --git a/codecs/oxipng/build.sh b/codecs/oxipng/build.sh new file mode 100644 index 00000000..1e46f657 --- /dev/null +++ b/codecs/oxipng/build.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +set -e + +echo "=============================================" +echo "Compiling wasm" +echo "=============================================" +( + wasm-pack build + wasm-strip pkg/oxipng_bg.wasm + rm pkg/.gitignore +) +echo "=============================================" +echo "Compiling wasm done" +echo "=============================================" + +echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" +echo "Did you update your docker image?" +echo "Run \`docker pull ubuntu\`" +echo "Run \`docker pull rust\`" +echo "Run \`docker build -t squoosh-oxipng .\`" +echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/codecs/oxipng/package-lock.json b/codecs/oxipng/package-lock.json new file mode 100644 index 00000000..a9713147 --- /dev/null +++ b/codecs/oxipng/package-lock.json @@ -0,0 +1,4 @@ +{ + "name": "oxipng", + "lockfileVersion": 1 +} diff --git a/codecs/oxipng/package.json b/codecs/oxipng/package.json new file mode 100644 index 00000000..391c50cf --- /dev/null +++ b/codecs/oxipng/package.json @@ -0,0 +1,7 @@ +{ + "name": "oxipng", + "scripts": { + "build:image": "docker build -t squoosh-oxipng .", + "build": "docker run --rm -v $(pwd):/src squoosh-oxipng ./build.sh" + } +} diff --git a/codecs/oxipng/pkg/oxipng.d.ts b/codecs/oxipng/pkg/oxipng.d.ts new file mode 100644 index 00000000..b5b90ac4 --- /dev/null +++ b/codecs/oxipng/pkg/oxipng.d.ts @@ -0,0 +1,7 @@ +/* tslint:disable */ +/** +* @param {Uint8Array} data +* @param {number} level +* @returns {Uint8Array} +*/ +export function optimise(data: Uint8Array, level: number): Uint8Array; diff --git a/codecs/oxipng/pkg/oxipng.js b/codecs/oxipng/pkg/oxipng.js new file mode 100644 index 00000000..b48af053 --- /dev/null +++ b/codecs/oxipng/pkg/oxipng.js @@ -0,0 +1,54 @@ +import * as wasm from './oxipng_bg.wasm'; + +let cachegetUint8Memory = null; +function getUint8Memory() { + if (cachegetUint8Memory === null || cachegetUint8Memory.buffer !== wasm.memory.buffer) { + cachegetUint8Memory = new Uint8Array(wasm.memory.buffer); + } + return cachegetUint8Memory; +} + +let WASM_VECTOR_LEN = 0; + +function passArray8ToWasm(arg) { + const ptr = wasm.__wbindgen_malloc(arg.length * 1); + getUint8Memory().set(arg, ptr / 1); + WASM_VECTOR_LEN = arg.length; + return ptr; +} + +let cachegetInt32Memory = null; +function getInt32Memory() { + if (cachegetInt32Memory === null || cachegetInt32Memory.buffer !== wasm.memory.buffer) { + cachegetInt32Memory = new Int32Array(wasm.memory.buffer); + } + return cachegetInt32Memory; +} + +function getArrayU8FromWasm(ptr, len) { + return getUint8Memory().subarray(ptr / 1, ptr / 1 + len); +} +/** +* @param {Uint8Array} data +* @param {number} level +* @returns {Uint8Array} +*/ +export function optimise(data, level) { + const retptr = 8; + const ret = wasm.optimise(retptr, passArray8ToWasm(data), WASM_VECTOR_LEN, level); + const memi32 = getInt32Memory(); + const v0 = getArrayU8FromWasm(memi32[retptr / 4 + 0], memi32[retptr / 4 + 1]).slice(); + wasm.__wbindgen_free(memi32[retptr / 4 + 0], memi32[retptr / 4 + 1] * 1); + return v0; +} + +let cachedTextDecoder = new TextDecoder('utf-8'); + +function getStringFromWasm(ptr, len) { + return cachedTextDecoder.decode(getUint8Memory().subarray(ptr, ptr + len)); +} + +export const __wbindgen_throw = function(arg0, arg1) { + throw new Error(getStringFromWasm(arg0, arg1)); +}; + diff --git a/codecs/oxipng/pkg/oxipng_bg.d.ts b/codecs/oxipng/pkg/oxipng_bg.d.ts new file mode 100644 index 00000000..f00a45b5 --- /dev/null +++ b/codecs/oxipng/pkg/oxipng_bg.d.ts @@ -0,0 +1,5 @@ +/* tslint:disable */ +export const memory: WebAssembly.Memory; +export function optimise(a: number, b: number, c: number, d: number): void; +export function __wbindgen_malloc(a: number): number; +export function __wbindgen_free(a: number, b: number): void; diff --git a/codecs/oxipng/pkg/oxipng_bg.wasm b/codecs/oxipng/pkg/oxipng_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3dc3af570f9e76210a1fcb08085685ca79746905 GIT binary patch literal 388337 zcmeFa4V+v>mG^&Nx_c%w-ILA>5J@C;o2WsFLBIq7l{=b*5Lo2p@o{~gU2uJGP)vx? zb;Fgz|a#Ha^S1o^@(bsCe$Hd)=w&>#SBPdM$7(EBP6n z+FyY27y@Llc*4~q`MQ7=zXDo%epY-|;^M(4&OPJRFMY+!U;M=Onaxv9dDXwX^yM#j z@e5ym%JP>iJL6SRE&XYFSK2?2BuTA5ZBD8UCe2EJ|AYzETGFW1Y6<`ApOn<9{r&t* zYe}31w@*Y}O`E?w>q4 zNha5-`wms=$+Sw1uj5+15~;9#Qk%k)%8ax>?yvP%sM|h`cox^vRtJ-P_ zf8vBs_u+lqAIE7mPWpLb|HZ&CL~49mNhw@O4W-(IefU_#_^L7?=}-Fs62~!k)RMk9 z?(6Fp+CsmQs73lOt|irpwPX^X=uI3a{HxR^)%L2SmAH}!P5z_ZYKzrO(X>{nCRJdk z{Kv)qo2ZgB%BWQZvTpeuzSpHPsZ!~yqZ#Q*?PV`~*%{0JHHrGqc*XLUzU-xEzA);W)Ws$*d*11% zpYi+p7NYE>6T>qW$CjnN^gwc9j{G)l-!iOHGOw- zOY)86d&ystzb0=;FHEkF-9>;aBtMG3l)Nc@V|qz?e{yMh ze|*B4`1bVt^n&!lbXEHL^oQxK$sOtU(sR;t(+%nO)3>A_OYTh1OFx(VD1G|H>ATaj z(@!N|P410H;`b*%kKdENH`$o{BKc!-Rr2%X56KnDkJEdS3*+}C|DOIJ-IAXAfp~p# zS9*E6F1<1tc=yJsccu5fKS>T;S$*C9QLBE z<|+rIYb)~;J)RLBKgmB{6CO_uj}P{bSJ~rAetX)^`+3EOhqi$>KaHs8p0wTS;@Mxss;scU;c8H5r;Yg)*==`Mac$y#Rzr8(8j(TMNxkJ{s`t$qarL75h z-@=9(T5o3q?$GtwAlPk4+Cu5})Z>3GKWhi1p*0)%)mJpc9Wp;%m4NiY^V2oDK52fs zmTSH$Y3I}0?jRsMxF)y>`N}qERhNKPe?IcpbZOqdBI|R947*k9vpU!2s@6g4vsy1) zH({t2RgyHWMl``e;7y537c>U=k<5vrR^#yK_QW+@U*5lbSw8a>3mQ%ERFBo$`J;We zTv}=8iNEE^ovEt~C-al@DiplssvGFL5pMNW(w>)W;WhW0bbq_Q2im-3jhoI{tTggkUMzzpbO4x9sD$bjAtiDEok(Ea=N6U zjsd>wYiC1wlr_?$XiR#1W2zf+jkcp{ZJK#_6uCav$m4da(atN28=}UX==L;&t>;8P zNVAE${xHqJcusUjnkDtRKzoGO&~3AtKTh`L2^|fb+Xj?{xY()R2q5_I1OPKsJh4bobvA2Lp# z);f)}>JRDa$w9!R^N{bS4~pR{>IijKBcHgmMH{Va8hK?!3n(b4p}c=lLlQh~c|Prx z6pM~FMK!IRBX;1jy!k`AWOgz`;y62*CPgTAtsqUtw#^TvVl=wHUy|yHhtv*nr=o~s zZ#U(!$zWWz0#ykp@u(-~!M;7iBmCFIE~+gs!#O7VFyP$yyoxd8IaFh8YuqYTV=Bu- zd90v-z>Z9k`kIl1x|fNLbigVGBe$!`usr*-?SBwuU^`} zB-p>y9gOJ{YHF2KC${BSF1JQ)mzuiiU+xm!EOQg>cXRnN7-!n@WxoH%&`A%(zYaYr z_B~8`LH5yXSw$A}I@!lK*vIRy>ave!6R-6)5se>gqO6xScL$p&E8J@n@ja;YP*r+v zFH=eJm5}nsjmuPBn#ZiXm4r~RO<*8Yi)4alUbT!=ylR2PYK11S9x>jTH;7QWrHyJb zre5!=ZZ7JzRBy(Iac=4gQgo}UNk#APZ}KJ7@=*Lx?z&McwBBe%)e*@<#c4Z=*8c=r z7~C;&*@@{xQ~E|n>Xu4;2THJ z5p(J7ombru<@+|@oQ!f^R#ghW#oRP(6IdO%6FImEV7-3ggOGzQm>@qyuo}G(Jb@bL zL?27D$+~_t#Z#)}n-O@j; z>3MJ3n!2Dd8JEaLA+nlN#jcGY0#lJpHzfDp0D0Trnj#xEkykCRblj2#j^b={FJ|L! zv}&iR0S zM&fi00kh^BXvszgjSPpkK5yX%g+>7Vk#7W+ zCv>;4-BfmW(HaH@_!4vDVX?({t-&_$v`b)`N4_-^tV_0zoV?;y-QG*Cru6KCof5AB#QQ#;U5dMM^ ze_`t8^TzsMtY@MrqjlI=BWLfOAP0=X;KOpzFO$}6x5S;zLZ}&q*n5o@XERz_&|v6q zt(nngfMYI{Tv{BVi9rtl-V@CvP@*d_)yN!Qk&Zh&y1I-K(2Z(cYbYN{jt8{_n4qQ6 z70_Cf!njGH2=G-6EygX!frO2Aq(SjzH1rtC-wlLneog{Kfl8oYV*cobjeXq21vsY~ z^mtd}_(pKWzVFR(mPh#QO&i_>y?&YDJ z*#qUC5=s)F+yj&Wpd`!l?R^I2mjTKtT~N;GfwHxPk_ISSfieh`ba}pQqCxpxfbvc$ zuL7CVdcbTe!4z738(e4EUSui$bjIFWhCGtKW*vsSd zVw9anr5oDsM=3VS2D{GKm{4cxe~slB%io+$t==&y= zxYJR`nBLZ8)mS(=+<)3#i9T~ zNJi*<@s5N9OVR6O!SP*E(dA@GDuR<`hG9G>3%%Mc425qsS{TOjtx|*`o)bNL0g9i- z*w9SY^I9Pmon4V7p2JW)8yb^QJI;FJft_{N#VVUEz@#BTljxh5M6YVx)DH1SiKbDo zA~oZwDU&Iw?3P3?euV2io0gFz$Uiq)izJ#Yqg{*)ix4lPQIo_wFuOaGM12hW7U5NcD(VYFIp~z6@Hm=*wNvs<4Cg z6cNkLkiJ888_P?~J7f8A!VIPU?AEPga=V$Fzav#-9Mh|g#$}T(b@YI2@-Wp=7kBK@ z2v~-Pp%DiD&J5okZu|eU{h6?b+Zbg(U>IwUZrg3%PXDN3#D0Dlf%l^M*^y+~5wU#3 zv4<776Q#%SkcSn2Z~XpuIIQ@49(FO<+3B!L{^hvt@Wb?TDjhF)kDv4K{2V67_lzOS zNzaGlFNCl%y+@iYJyy#f+|HQr-8n8#^;(rck%o&`jZ@a+pon zs8qTPt3oVCvsfDl`801+BF>nDCR6o3E()W;Ze27c~p^qhf0 zkPl_fAhl?kVpL(yU}6y+QE;I%XP^ip!HY0kFfkADbP+8knap%pt&`rhutE0}*&d7Q z6-Ch}<~1LL-&Rgc6+!q{FCZPvhlT>Q<@)?J?fkW59Cd@W**Kp>vbf&o!S;KwBV{1G zh{}&xRK6Q-VsOui+xgN_fU))+d==>c-vJMJRSCEV)UN`tVzHg(rv~`-06t+9U?STc zz>_@Sx(B?b1YCsf*8o_tzz*Pw0lpZ(XDj=vn-2`G9W7 zkN1%G_K-K0kS7Gl8-YBh2l51i{24*sIJyg;*bREF2R+S$-c*7f2%t9s`rsbW0|xp= zf!^}EQCJ_+4can2Cg%Hk(3?xpg8}qrK+o?1J!qi6D$sO!FXJ874f-h_>lq&OttIGs z0DUW+bhG^;BnULYAOxIrC%3Js`tYL* zxfoXbAZB3H68k~gTP44^+V+9q`odkE(^D>AFc>Y(+>IigcQ;#>Q!*y$Y#ut0u4hhf zGMF%(2i=)@W|+0ZoL+hwGj2XbWJ<~;F`dZtvciR_W-lgLib(4FfIM9hrksA6>ZW$4 zF{UunoY?nxr|`mzmD{VEM>Iz>-khG= z5a#s6E06G;o*OFT&<}P_&nB=egYtpq^hEHknFLQB(ZcxhLCxtc5P3}~>6QhJ1%6I% zfjl>#5$~qR_pzLDa^t7aN#2F2Kh;e59=S#njFM~gXrY~Krm-_WNzO%=fJ~y;*z=QP zOxy?kIQGQ-PUa_jXYG3j%FNnpa!pBKl5ox1Gu4ZfU<<~XweQLOno>^Imx3J{W~1s?s!Akw-8!$f6DEl=`?wPIpO8pS(v-$B|Ps*d93@Gl=zI z<2a=JtE+b+rJL3`wM963dU?UB>nBBzJ!@q4w<^kMnEPuL@;%Ao z7CC+59yxv3a{AakaypKjqQUma>28tJ1NO-2!28tJz4qAChiy-l-?T?g$C6Vt*d96EEpp0|{5|gk67MdztN{_f6K5$v|JLpk!45azJ9x9rx_Na z?KD%-wgLY89j&m?XQ#bJ&pu+k)<>`HjE3+%Yp+sv6G8x#{a;zu{HQYdi?sljn@mO? zJF=;imEW59@=Auc@|5<8@mAWn^*)thC+j`Bd+Zeml|8z6 z`n)9U3){Q8byKmrHNW!S8>8k1t#c)j-&V3}*G$`--?m06thrX%?82rzw<-r8P@^_v zeZb9md=*;2)3pKqL)ehDYbT4YJ)E>M#M-6R2gRWSzNLEQ_iI)cXco&U@AIy2$kZCYFCgz&d*Yf|(U$uUuqW=GE||URU7#uVal~Oy7qDk$ zam>UcCr&+s(l~U=h&~YtayD&Aj;GSBueXVOcY2Fh{Dc+?0~-mDasQrJZ8Iv z6q5oe_R_&R;*YhE8Wzx+ELqbI3s@%Gz+ugIr?2pW*>* zYhl}zmW!lqm}P8cd!#<19LGxQuvQg@>TLQy*^?R4H%l(m*4A+0UNGKVaQBO7S&Kc@ zbJvVw9d^+{I;6#avQPK!nrzf*ORlY$Ert~rLmd(<>{-v=own2~951mmM%F05JZWa4 z7UKJTR^_VF1N^1L-)5iHoRdZBdrQr;+}t~X+AU+ejZs8VXQ$8P-_v#=bK@2V55!AF zKDIp1;}to(lCyrB?Nl4uIF?5X8!?w;krsoFw|l)jy`3E>AT>Phrc1laf2~_5T4QI587TwT*YYyrtDB@enWmc)z2#~zxlpx z$1OlNd;maBaEgy7s0!Ohn5`mo8esQ#w!@LWD~`jEG7Rd|>x5!=em2xjM_^uCAiFRcNVD((Eal34E)SqE!`CvR9OnKO+qi5^o2eAq8 zE_*d>xgQ!Y!)sXG`JERx|OYd+OHo@Ln9{M)kCfIB+V5ZY=f?cfG?lGi2TUU&` zM!RS0isHx`+lStcucVSL$FaxWPFB!IMmN!3QP8qH)n?2QJYw>97ECEcs@xF!p@>7- zuMfiOM;15?Ex5H0X+!K?mIa$@mcNAx){ZU=d2B6x*Rd*6$jxWd6GRQPqWA7ld{Lb znzQr4>;SGDqAWWo6s-B#-m37rRNOcx`gk}aii2?W(eH3p)a~USZDVBmL< z*usys`mu^1TlpdNKRkJUvP#!AJY2*1sv{M)ewlJSN4J<}<43aGPOPcrlb3K5%igXQ z&TN~)F`fSCnd9*v3re=^^pIY$1^z?y9Y>!Y@-Snc-gop}J{F=hW2cBp0q^MK?q)=F zvV*rQ_j7D?-27#-FBgA6*km1@)hss4&7Q!qslF)X?6BBjED;j0cRr<^9SEN`Qfbn? z{h72a_I%MvsT?-S6s|;x4#iqYSuj>ddFW_8_Je8UQx@5QwFWK~zauih;$wD@3g2?B z?Mm%(1qgdu)A_UJiRr{wzF4lKG�VAhDfN=sE`%a81BXK@#UkBpdmgKXgNsJu#n_ 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 I|8xudH#|kU7XSbN literal 0 HcmV?d00001 diff --git a/codecs/oxipng/pkg/package.json b/codecs/oxipng/pkg/package.json new file mode 100644 index 00000000..10127789 --- /dev/null +++ b/codecs/oxipng/pkg/package.json @@ -0,0 +1,15 @@ +{ + "name": "oxipng", + "collaborators": [ + "Ingvar Stepanyan " + ], + "version": "0.1.0", + "files": [ + "oxipng_bg.wasm", + "oxipng.js", + "oxipng.d.ts" + ], + "module": "oxipng.js", + "types": "oxipng.d.ts", + "sideEffects": "false" +} \ No newline at end of file diff --git a/codecs/oxipng/src/lib.rs b/codecs/oxipng/src/lib.rs new file mode 100644 index 00000000..33258111 --- /dev/null +++ b/codecs/oxipng/src/lib.rs @@ -0,0 +1,7 @@ +use wasm_bindgen::prelude::*; + +#[wasm_bindgen(catch)] +pub fn optimise(data: &[u8], level: u8) -> Vec { + let options = oxipng::Options::from_preset(level); + oxipng::optimize_from_memory(data, &options).unwrap_throw() +} diff --git a/package-lock.json b/package-lock.json index e039b91d..e35d0cd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1380,175 +1380,179 @@ "dev": true }, "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", - "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", - "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", - "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", - "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", - "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.7.11" + "@webassemblyjs/wast-printer": "1.8.5" } }, "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", - "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", - "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", - "dev": true + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", - "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" } }, "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", - "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", - "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", "dev": true, "requires": { - "@xtuc/long": "4.2.1" + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", - "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", - "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" } }, "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", - "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" } }, "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", - "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" } }, "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", - "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" } }, "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", - "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", - "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" } }, "@webcomponents/custom-elements": { @@ -1620,9 +1624,9 @@ "dev": true }, "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "abab": { @@ -1670,15 +1674,6 @@ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "^5.0.0" - } - }, "acorn-globals": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz", @@ -1897,11 +1892,12 @@ } }, "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, "requires": { + "object-assign": "^4.1.1", "util": "0.10.3" }, "dependencies": { @@ -2235,9 +2231,9 @@ } }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "batch": { @@ -2954,9 +2950,9 @@ "dev": true }, "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -4618,9 +4614,9 @@ "dev": true }, "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", + "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -4772,9 +4768,9 @@ } }, "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -4821,9 +4817,9 @@ "dev": true }, "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", "dev": true }, "eventsource": { @@ -6960,9 +6956,9 @@ "dev": true }, "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "iferr": { @@ -7078,12 +7074,6 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -8972,9 +8962,9 @@ } }, "loader-runner": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", - "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true }, "loader-utils": { @@ -9134,6 +9124,12 @@ "tmpl": "1.0.x" } }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "dev": true + }, "map-age-cleaner": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz", @@ -9711,9 +9707,9 @@ "dev": true }, "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, "requires": { "assert": "^1.1.1", @@ -9723,10 +9719,10 @@ "constants-browserify": "^1.0.0", "crypto-browserify": "^3.11.0", "domain-browser": "^1.1.1", - "events": "^1.0.0", + "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", + "path-browserify": "0.0.1", "process": "^0.11.10", "punycode": "^1.2.4", "querystring-es3": "^0.2.0", @@ -9737,8 +9733,8 @@ "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", "url": "^0.11.0", - "util": "^0.10.3", - "vm-browserify": "0.0.4" + "util": "^0.11.0", + "vm-browserify": "^1.0.1" }, "dependencies": { "punycode": { @@ -10355,9 +10351,9 @@ "dev": true }, "pako": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", - "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", "dev": true }, "parallel-transform": { @@ -10381,16 +10377,17 @@ } }, "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", + "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "dev": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-json": { @@ -10428,9 +10425,9 @@ "dev": true }, "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, "path-dirname": { @@ -12180,9 +12177,9 @@ "dev": true }, "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" @@ -13676,9 +13673,9 @@ "dev": true }, "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, "requires": { "inherits": "~2.0.1", @@ -14216,9 +14213,9 @@ "dev": true }, "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -15211,9 +15208,9 @@ "dev": true }, "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, "requires": { "inherits": "2.0.3" @@ -15326,13 +15323,10 @@ } }, "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true }, "w3c-hr-time": { "version": "1.0.1", @@ -15370,9 +15364,9 @@ "dev": true }, "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", - "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -15433,57 +15427,82 @@ "dev": true }, "webpack": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.0.tgz", - "integrity": "sha512-gPNTMGR5ZlBucXmEQ34TRxRqXnGYq9P3t8LeP9rvhkNnr+Cn+HvZMxGuJ4Hl7zdmoRUZP+GosniqJiadXW/RqQ==", + "version": "4.39.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.3.tgz", + "integrity": "sha512-BXSI9M211JyCVc3JxHWDpze85CvjC842EvpRsVTc/d15YJGlox7GIDd38kJgWrb3ZluyvIjgenbLDMBQPDcxYQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", + "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" }, "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "acorn": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", + "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "dev": true + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "requires": { "source-list-map": "^2.0.0", diff --git a/package.json b/package.json index aef04d59..77590c77 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "typed-css-modules": "0.4.2", "typescript": "3.5.3", "url-loader": "2.1.0", - "webpack": "4.28.0", + "webpack": "4.39.3", "webpack-bundle-analyzer": "3.4.1", "webpack-cli": "3.3.4", "webpack-dev-server": "3.8.0", diff --git a/src/codecs/encoders.ts b/src/codecs/encoders.ts index ef053535..aa925674 100644 --- a/src/codecs/encoders.ts +++ b/src/codecs/encoders.ts @@ -1,5 +1,5 @@ import * as identity from './identity/encoder-meta'; -import * as optiPNG from './optipng/encoder-meta'; +import * as oxiPNG from './oxipng/encoder-meta'; import * as mozJPEG from './mozjpeg/encoder-meta'; import * as webP from './webp/encoder-meta'; import * as browserPNG from './browser-png/encoder-meta'; @@ -17,7 +17,7 @@ export interface EncoderSupportMap { export type EncoderState = identity.EncoderState | - optiPNG.EncoderState | + oxiPNG.EncoderState | mozJPEG.EncoderState | webP.EncoderState | browserPNG.EncoderState | @@ -31,7 +31,7 @@ export type EncoderState = export type EncoderOptions = identity.EncodeOptions | - optiPNG.EncodeOptions | + oxiPNG.EncodeOptions | mozJPEG.EncodeOptions | webP.EncodeOptions | browserPNG.EncodeOptions | @@ -47,7 +47,7 @@ export type EncoderType = keyof typeof encoderMap; export const encoderMap = { [identity.type]: identity, - [optiPNG.type]: optiPNG, + [oxiPNG.type]: oxiPNG, [mozJPEG.type]: mozJPEG, [webP.type]: webP, [browserPNG.type]: browserPNG, diff --git a/src/codecs/optipng/encoder.ts b/src/codecs/optipng/encoder.ts deleted file mode 100644 index 164c4063..00000000 --- a/src/codecs/optipng/encoder.ts +++ /dev/null @@ -1,18 +0,0 @@ -import optipng, { OptiPngModule } from '../../../codecs/optipng/optipng'; -import wasmUrl from '../../../codecs/optipng/optipng.wasm'; -import { EncodeOptions } from './encoder-meta'; -import { initEmscriptenModule } from '../util'; - -let emscriptenModule: Promise; - -export async function compress(data: BufferSource, options: EncodeOptions): Promise { - if (!emscriptenModule) emscriptenModule = initEmscriptenModule(optipng, wasmUrl); - - const module = await emscriptenModule; - const resultView = module.compress(data, options); - const result = new Uint8Array(resultView); - module.free_result(); - - // wasm can’t run on SharedArrayBuffers, so we hard-cast to ArrayBuffer. - return result.buffer as ArrayBuffer; -} diff --git a/src/codecs/optipng/encoder-meta.ts b/src/codecs/oxipng/encoder-meta.ts similarity index 90% rename from src/codecs/optipng/encoder-meta.ts rename to src/codecs/oxipng/encoder-meta.ts index 0fa86ea5..c7e08113 100644 --- a/src/codecs/optipng/encoder-meta.ts +++ b/src/codecs/oxipng/encoder-meta.ts @@ -4,7 +4,7 @@ export interface EncodeOptions { export interface EncoderState { type: typeof type; options: EncodeOptions; } export const type = 'png'; -export const label = 'OptiPNG'; +export const label = 'OxiPNG'; export const mimeType = 'image/png'; export const extension = 'png'; diff --git a/src/codecs/oxipng/encoder.ts b/src/codecs/oxipng/encoder.ts new file mode 100644 index 00000000..b0469d76 --- /dev/null +++ b/src/codecs/oxipng/encoder.ts @@ -0,0 +1,6 @@ +import { optimise } from '../../../codecs/oxipng/pkg'; +import { EncodeOptions } from './encoder-meta'; + +export async function compress(data: ArrayBuffer, options: EncodeOptions): Promise { + return optimise(new Uint8Array(data), options.level).buffer; +} diff --git a/src/codecs/optipng/options.tsx b/src/codecs/oxipng/options.tsx similarity index 91% rename from src/codecs/optipng/options.tsx rename to src/codecs/oxipng/options.tsx index 5212707e..d3ed1949 100644 --- a/src/codecs/optipng/options.tsx +++ b/src/codecs/oxipng/options.tsx @@ -10,7 +10,7 @@ type Props = { onChange(newOptions: EncodeOptions): void; }; -export default class OptiPNGEncoderOptions extends Component { +export default class OxiPNGEncoderOptions extends Component { @bind onChange(event: Event) { const form = (event.currentTarget as HTMLInputElement).closest('form') as HTMLFormElement; @@ -28,7 +28,7 @@ export default class OptiPNGEncoderOptions extends Component { resize(data, opts)); } -async function optiPngEncode( - data: BufferSource, options: import('../optipng/encoder-meta').EncodeOptions, +async function oxiPngEncode( + data: ArrayBuffer, options: import('../oxipng/encoder-meta').EncodeOptions, ): Promise { const { compress } = await import( - /* webpackChunkName: "process-optipng" */ - '../optipng/encoder'); - return timed('optiPngEncode', () => compress(data, options)); + /* webpackChunkName: "process-oxipng" */ + '../oxipng/encoder'); + return timed('oxiPngEncode', () => compress(data, options)); } async function webpEncode( @@ -87,7 +87,7 @@ const exports = { quantize, rotate, resize, - optiPngEncode, + oxiPngEncode, webpEncode, webpDecode, }; diff --git a/src/codecs/processor.ts b/src/codecs/processor.ts index 9509656c..71a90c52 100644 --- a/src/codecs/processor.ts +++ b/src/codecs/processor.ts @@ -2,7 +2,7 @@ import { proxy } from 'comlink'; import { QuantizeOptions } from './imagequant/processor-meta'; import { canvasEncode, blobToArrayBuffer } from '../lib/util'; import { EncodeOptions as MozJPEGEncoderOptions } from './mozjpeg/encoder-meta'; -import { EncodeOptions as OptiPNGEncoderOptions } from './optipng/encoder-meta'; +import { EncodeOptions as OxiPNGEncoderOptions } from './oxipng/encoder-meta'; import { EncodeOptions as WebPEncoderOptions } from './webp/encoder-meta'; import { EncodeOptions as BrowserJPEGOptions } from './browser-jpeg/encoder-meta'; import { EncodeOptions as BrowserWebpEncodeOptions } from './browser-webp/encoder-meta'; @@ -143,13 +143,13 @@ export default class Processor { } @Processor._processingJob({ needsWorker: true }) - async optiPngEncode( - data: ImageData, opts: OptiPNGEncoderOptions, + async oxiPngEncode( + data: ImageData, opts: OxiPNGEncoderOptions, ): Promise { - // OptiPNG expects PNG input. + // OxiPNG expects PNG input. const pngBlob = await canvasEncode(data, 'image/png'); const pngBuffer = await blobToArrayBuffer(pngBlob); - return this._workerApi!.optiPngEncode(pngBuffer, opts); + return this._workerApi!.oxiPngEncode(pngBuffer, opts); } @Processor._processingJob({ needsWorker: true }) diff --git a/src/components/Options/index.tsx b/src/components/Options/index.tsx index 2fdc1c6a..94fb9389 100644 --- a/src/components/Options/index.tsx +++ b/src/components/Options/index.tsx @@ -3,7 +3,7 @@ import { h, Component } from 'preact'; import * as style from './style.scss'; import { bind } from '../../lib/initial-util'; import { cleanSet, cleanMerge } from '../../lib/clean-modify'; -import OptiPNGEncoderOptions from '../../codecs/optipng/options'; +import OxiPNGEncoderOptions from '../../codecs/oxipng/options'; import MozJpegEncoderOptions from '../../codecs/mozjpeg/options'; import BrowserJPEGEncoderOptions from '../../codecs/browser-jpeg/options'; import WebPEncoderOptions from '../../codecs/webp/options'; @@ -13,7 +13,7 @@ import QuantizerOptionsComponent from '../../codecs/imagequant/options'; import ResizeOptionsComponent from '../../codecs/resize/options'; import * as identity from '../../codecs/identity/encoder-meta'; -import * as optiPNG from '../../codecs/optipng/encoder-meta'; +import * as oxiPNG from '../../codecs/oxipng/encoder-meta'; import * as mozJPEG from '../../codecs/mozjpeg/encoder-meta'; import * as webP from '../../codecs/webp/encoder-meta'; import * as browserPNG from '../../codecs/browser-png/encoder-meta'; @@ -44,7 +44,7 @@ const encoderOptionsComponentMap: { [x: string]: (new (...args: any[]) => Component) | undefined; } = { [identity.type]: undefined, - [optiPNG.type]: OptiPNGEncoderOptions, + [oxiPNG.type]: OxiPNGEncoderOptions, [mozJPEG.type]: MozJpegEncoderOptions, [webP.type]: WebPEncoderOptions, [browserPNG.type]: undefined, diff --git a/src/components/compress/index.tsx b/src/components/compress/index.tsx index 4c19a7bd..f85bd7fd 100644 --- a/src/components/compress/index.tsx +++ b/src/components/compress/index.tsx @@ -7,7 +7,7 @@ import Output from '../Output'; import Options from '../Options'; import ResultCache from './result-cache'; import * as identity from '../../codecs/identity/encoder-meta'; -import * as optiPNG from '../../codecs/optipng/encoder-meta'; +import * as oxiPNG from '../../codecs/oxipng/encoder-meta'; import * as mozJPEG from '../../codecs/mozjpeg/encoder-meta'; import * as webP from '../../codecs/webp/encoder-meta'; import * as browserPNG from '../../codecs/browser-png/encoder-meta'; @@ -138,7 +138,7 @@ async function compressImage( ): Promise { const compressedData = await (() => { switch (encodeData.type) { - case optiPNG.type: return processor.optiPngEncode(image, encodeData.options); + case oxiPNG.type: return processor.oxiPngEncode(image, encodeData.options); case mozJPEG.type: return processor.mozjpegEncode(image, encodeData.options); case webP.type: return processor.webpEncode(image, encodeData.options); case browserPNG.type: return processor.browserPngEncode(image);