From e342766cbf5c7ca03c703632b98ba13fcdc38851 Mon Sep 17 00:00:00 2001 From: Ingvar Stepanyan Date: Fri, 17 Jul 2020 16:19:02 +0100 Subject: [PATCH] Switch vals to thread_locals It's not possible to share them across threads, so in case we decide to use multithreading in the future, it's best to mark them as thread_local right away, even if it's a no-op right now. --- codecs/imagequant/imagequant.cpp | 2 +- codecs/imagequant/imagequant.js | 73 +++++++++++++------------ codecs/imagequant/imagequant.wasm | Bin 57677 -> 57729 bytes codecs/mozjpeg_enc/example.html | 45 +++++++-------- codecs/mozjpeg_enc/mozjpeg_enc.cpp | 2 +- codecs/mozjpeg_enc/mozjpeg_enc.js | 80 +++++++++++++-------------- codecs/mozjpeg_enc/mozjpeg_enc.wasm | Bin 227572 -> 227611 bytes codecs/webp/dec/webp_dec.cpp | 4 +- codecs/webp/dec/webp_dec.js | 72 ++++++++++++------------ codecs/webp/dec/webp_dec.wasm | Bin 79592 -> 79650 bytes codecs/webp/enc/webp_enc.cpp | 2 +- codecs/webp/enc/webp_enc.js | 82 ++++++++++++++-------------- codecs/webp/enc/webp_enc.wasm | Bin 147962 -> 148003 bytes 13 files changed, 182 insertions(+), 180 deletions(-) diff --git a/codecs/imagequant/imagequant.cpp b/codecs/imagequant/imagequant.cpp index 2150174c..b249fff0 100644 --- a/codecs/imagequant/imagequant.cpp +++ b/codecs/imagequant/imagequant.cpp @@ -14,7 +14,7 @@ int version() { (((LIQ_VERSION / 1) % 100) << 0); } -const val Uint8ClampedArray = val::global("Uint8ClampedArray"); +thread_local const val Uint8ClampedArray = val::global("Uint8ClampedArray"); #define liq_ptr(T) std::unique_ptr> diff --git a/codecs/imagequant/imagequant.js b/codecs/imagequant/imagequant.js index 77094b8f..37cf44c0 100644 --- a/codecs/imagequant/imagequant.js +++ b/codecs/imagequant/imagequant.js @@ -17,42 +17,43 @@ function la(a,b,c){var e=F;if(0>1;for(var e=c+b/2;!(c>=e)&&G[c];)++c;c<<=1;if(32>1];if(0==f||c==b/2)return e;++c;e+=String.fromCharCode(f)}}function oa(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var e=b;c=c<2*a.length?c/2:a.length;for(var f=0;f>1]=a.charCodeAt(f),b+=2;H[b>>1]=0;return b-e}function pa(a){return 2*a.length} function qa(a,b){for(var c=0,e="";!(c>=b/4);){var f=I[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e}function ra(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var e=b;c=e+c-4;for(var f=0;f=g){var l=a.charCodeAt(++f);g=65536+((g&1023)<<10)|l&1023}I[b>>2]=g;b+=4;if(b+4>c)break}I[b>>2]=0;return b-e} function sa(a){for(var b=0,c=0;c=e&&++c;b+=4}return b}var J,ta,F,H,G,I,L,ua,va;function wa(a){J=a;d.HEAP8=ta=new Int8Array(a);d.HEAP16=H=new Int16Array(a);d.HEAP32=I=new Int32Array(a);d.HEAPU8=F=new Uint8Array(a);d.HEAPU16=G=new Uint16Array(a);d.HEAPU32=L=new Uint32Array(a);d.HEAPF32=ua=new Float32Array(a);d.HEAPF64=va=new Float64Array(a)}var xa=d.INITIAL_MEMORY||16777216;d.wasmMemory?E=d.wasmMemory:E=new WebAssembly.Memory({initial:xa/65536,maximum:32768}); -E&&(J=E.buffer);xa=J.byteLength;wa(J);I[1468]=5248912;function M(a){for(;0=b?"_"+a:a} -function Na(a,b){a=Ma(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}function Oa(a){var b=Error,c=Na(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c} -var Pa=void 0;function W(a){throw new Pa(a);}var Qa=void 0;function Ra(a,b){function c(k){k=b(k);if(k.length!==e.length)throw new Qa("Mismatched type converter count");for(var h=0;h>2])}function Ya(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a} -function Za(a,b){switch(b){case 2:return function(c){return this.fromWireType(ua[c>>2])};case 3:return function(c){return this.fromWireType(va[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function $a(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Na(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} -function ab(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function bb(a,b){var c=d;if(void 0===c[a].R){var e=c[a];c[a]=function(){c[a].R.hasOwnProperty(arguments.length)||W("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].R+")!");return c[a].R[arguments.length].apply(this,arguments)};c[a].R=[];c[a].R[e.W]=e}} -function cb(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].R&&void 0!==d[a].R[c])&&W("Cannot register public name '"+a+"' twice"),bb(a,a),d.hasOwnProperty(c)&&W("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].R[c]=b):(d[a]=b,void 0!==c&&(d[a].$=c))}function db(a,b){for(var c=[],e=0;e>2)+e]);return c} -function eb(a,b){a=S(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return G[e>>1]};case 2:return c?function(e){return I[e>>2]}:function(e){return L[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var kb={}; -function lb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function mb(a,b){var c=U[a];void 0===c&&W(b+" has unknown type "+gb(a));return c}for(var nb={},ob=[null,[],[]],pb=Array(256),qb=0;256>qb;++qb)pb[qb]=String.fromCharCode(qb);La=pb;Pa=d.BindingError=Oa("BindingError");Qa=d.InternalError=Oa("InternalError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},S:null})},t:function(a,b){b=S(b);X(a,{name:b,fromWireType:function(c){var e=Y[c].value; -Ta(c);return e},toWireType:function(c,e){return Ua(e)},argPackAdvance:8,readValueFromPointer:Xa,S:null})},h:function(a,b,c){c=Ka(c);b=S(b);X(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+Ya(f)+'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:Za(b,c),S:null})},d:function(a,b,c,e,f,g){var l=db(b,c);a=S(a);f=eb(e,f);cb(a,function(){ib("Cannot call "+a+" due to unbound types", -l)},b-1);Ra(l,function(k){var h=[k[0],null].concat(k.slice(1)),n=k=a,p=f,q=h.length;2>q&&W("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var y=null!==h[1]&&!1,C=!1,m=1;m>>k}}var h=-1!=b.indexOf("unsigned");X(a,{name:b,fromWireType:g,toWireType:function(n,p){if("number"!==typeof p&&"boolean"!==typeof p)throw new TypeError('Cannot convert "'+Ya(p)+'" to '+this.name);if(pf)throw new TypeError('Passing a number "'+Ya(p)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return h?p>>>0:p|0},argPackAdvance:8,readValueFromPointer:jb(b, -l,0!==e),S:null})},a:function(a,b,c){function e(g){g>>=2;var l=L;return new f(J,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=S(c);X(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{Y:!0})},i:function(a,b){b=S(b);var c="std::string"===b;X(a,{name:b,fromWireType:function(e){var f=L[e>>2];if(c)for(var g=e+4,l=0;l<=f;++l){var k=e+4+l;if(0==F[k]||l==f){g=g?ka(F,g,k-g):"";if(void 0===h)var h=g;else h+=String.fromCharCode(0), -h+=g;g=k+1}}else{h=Array(f);for(l=0;l=q&&(q=65536+((q&1023)<<10)|f.charCodeAt(++p)&1023);127>=q?++n:n=2047>=q?n+ -2:65535>=q?n+3:n+4}return n}:function(){return f.length})(),k=rb(4+l+1);L[k>>2]=l;if(c&&g)la(f,k+4,l+1);else if(g)for(g=0;g>2],p=l(),q,y=h+4,C=0;C<=n;++C){var m=h+4+C*b;if(0==p[m>>k]||C==n)y=e(y,m-y),void 0===q?q=y:(q+=String.fromCharCode(0),q+=y),y=m+b}Z(h);return q},toWireType:function(h,n){"string"!==typeof n&&W("Cannot pass non-string to C++ string type "+c);var p=g(n),q=rb(4+p+b);L[q>>2]=p>>k;f(n,q+4,p+b);null!==h&&h.push(Z,q);return q},argPackAdvance:8,readValueFromPointer:Xa,S:function(h){Z(h)}})},k:function(a,b){b=S(b);X(a,{Z:!0,name:b,argPackAdvance:0,fromWireType:function(){}, -toWireType:function(){}})},u:Ta,v:function(a){if(0===a)return Ua(lb());var b=kb[a];a=void 0===b?S(a):b;return Ua(lb()[a])},l:function(a){4>> 2) + "+g+'], "parameter '+g+ -'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(mb,d,Ua);nb[b]=f}return f(a,c,e)},f:function(){A()},r:function(a,b,c){F.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=F.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);wa(E.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},s:function(){return 0},o:function(){},g:function(a,b,c,e){for(var f=0,g=0;g>2],k=I[b+(8*g+4)>>2],h=0;h>2]=f;return 0},memory:E,p:function(){},table:ha}; -(function(){function a(f){d.asm=f.exports;N--;d.monitorRunDependencies&&d.monitorRunDependencies(N);0==N&&(null!==Da&&(clearInterval(Da),Da=null),O&&(f=O,O=null,f()))}function b(f){a(f.instance)}function c(f){return Ia().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){B("failed to asynchronously prepare wasm: "+g);A(g)})}var e={a:sb};N++;d.monitorRunDependencies&&d.monitorRunDependencies(N);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return B("Module.instantiateWasm callback failed with error: "+ -f),!1}(function(){if(D||"function"!==typeof WebAssembly.instantiateStreaming||Fa()||Ea("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){B("wasm streaming compile failed: "+g);B("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); -var Ja=d.___wasm_call_ctors=function(){return(Ja=d.___wasm_call_ctors=d.asm.w).apply(null,arguments)},rb=d._malloc=function(){return(rb=d._malloc=d.asm.x).apply(null,arguments)},Z=d._free=function(){return(Z=d._free=d.asm.y).apply(null,arguments)},hb=d.___getTypeName=function(){return(hb=d.___getTypeName=d.asm.z).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.A).apply(null,arguments)}; -d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.B).apply(null,arguments)};d.dynCall_iiiiiif=function(){return(d.dynCall_iiiiiif=d.asm.C).apply(null,arguments)};d.dynCall_viiiiif=function(){return(d.dynCall_viiiiif=d.asm.D).apply(null,arguments)};d.dynCall_iiiiif=function(){return(d.dynCall_iiiiif=d.asm.E).apply(null,arguments)};d.dynCall_viiiif=function(){return(d.dynCall_viiiif=d.asm.F).apply(null,arguments)};d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.G).apply(null,arguments)}; -d.dynCall_i=function(){return(d.dynCall_i=d.asm.H).apply(null,arguments)};d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.I).apply(null,arguments)};d.dynCall_vif=function(){return(d.dynCall_vif=d.asm.J).apply(null,arguments)};d.dynCall_iidiiii=function(){return(d.dynCall_iidiiii=d.asm.K).apply(null,arguments)};d.dynCall_vii=function(){return(d.dynCall_vii=d.asm.L).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.M).apply(null,arguments)}; -d.dynCall_jiji=function(){return(d.dynCall_jiji=d.asm.N).apply(null,arguments)};d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.O).apply(null,arguments)};d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.P).apply(null,arguments)};d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.Q).apply(null,arguments)};var tb;O=function ub(){tb||vb();tb||(O=ub)}; -function vb(){function a(){if(!tb&&(tb=!0,d.calledRun=!0,!ia)){M(za);M(Aa);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Ba.unshift(b)}M(Ba)}}if(!(0=b?"_"+a:a} +function Oa(a,b){a=Na(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}function Pa(a){var b=Error,c=Oa(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c} +var Qa=void 0;function W(a){throw new Qa(a);}var Ra=void 0;function Sa(a,b){function c(k){k=b(k);if(k.length!==e.length)throw new Ra("Mismatched type converter count");for(var h=0;h>2])}function Za(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a} +function $a(a,b){switch(b){case 2:return function(c){return this.fromWireType(ua[c>>2])};case 3:return function(c){return this.fromWireType(va[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function ab(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Oa(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} +function bb(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function cb(a,b){var c=d;if(void 0===c[a].S){var e=c[a];c[a]=function(){c[a].S.hasOwnProperty(arguments.length)||W("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].S+")!");return c[a].S[arguments.length].apply(this,arguments)};c[a].S=[];c[a].S[e.Y]=e}} +function db(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].S&&void 0!==d[a].S[c])&&W("Cannot register public name '"+a+"' twice"),cb(a,a),d.hasOwnProperty(c)&&W("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].S[c]=b):(d[a]=b,void 0!==c&&(d[a].aa=c))}function eb(a,b){for(var c=[],e=0;e>2)+e]);return c} +function fb(a,b){a=S(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return G[e>>1]};case 2:return c?function(e){return I[e>>2]}:function(e){return L[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var lb={}; +function mb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function nb(a,b){var c=U[a];void 0===c&&W(b+" has unknown type "+hb(a));return c}for(var ob={},pb=[null,[],[]],qb=Array(256),rb=0;256>rb;++rb)qb[rb]=String.fromCharCode(rb);Ma=qb;Qa=d.BindingError=Pa("BindingError");Ra=d.InternalError=Pa("InternalError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},T:null})},t:function(a,b){b=S(b);X(a,{name:b, +fromWireType:function(c){var e=Y[c].value;Ua(c);return e},toWireType:function(c,e){return Xa(e)},argPackAdvance:8,readValueFromPointer:Ya,T:null})},h:function(a,b,c){c=La(c);b=S(b);X(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+Za(f)+'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:$a(b,c),T:null})},d:function(a,b,c,e,f,g){var l=eb(b,c);a=S(a);f=fb(e,f);db(a,function(){jb("Cannot call "+ +a+" due to unbound types",l)},b-1);Sa(l,function(k){var h=[k[0],null].concat(k.slice(1)),n=k=a,p=f,q=h.length;2>q&&W("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var y=null!==h[1]&&!1,C=!1,m=1;m>>k}}var h=-1!=b.indexOf("unsigned");X(a,{name:b,fromWireType:g,toWireType:function(n,p){if("number"!==typeof p&&"boolean"!==typeof p)throw new TypeError('Cannot convert "'+Za(p)+'" to '+this.name);if(pf)throw new TypeError('Passing a number "'+Za(p)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+ +e+", "+f+"]!");return h?p>>>0:p|0},argPackAdvance:8,readValueFromPointer:kb(b,l,0!==e),T:null})},a:function(a,b,c){function e(g){g>>=2;var l=L;return new f(J,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=S(c);X(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{Z:!0})},i:function(a,b){b=S(b);var c="std::string"===b;X(a,{name:b,fromWireType:function(e){var f=L[e>>2];if(c)for(var g=e+4,l=0;l<=f;++l){var k=e+4+l; +if(0==F[k]||l==f){g=g?ka(F,g,k-g):"";if(void 0===h)var h=g;else h+=String.fromCharCode(0),h+=g;g=k+1}}else{h=Array(f);for(l=0;l=q&&(q=65536+((q&1023)<<10)|f.charCodeAt(++p)&1023);127>=q?++n:n=2047>=q?n+2:65535>=q?n+3:n+4}return n}:function(){return f.length})(),k=sb(4+l+1);L[k>>2]=l;if(c&&g)la(f,k+4,l+1);else if(g)for(g=0;g>2],p=l(),q,y=h+4,C=0;C<=n;++C){var m=h+4+C*b;if(0==p[m>>k]||C==n)y=e(y,m-y),void 0===q?q=y:(q+=String.fromCharCode(0),q+=y),y=m+b}Z(h);return q},toWireType:function(h,n){"string"!==typeof n&&W("Cannot pass non-string to C++ string type "+c);var p=g(n),q=sb(4+p+b);L[q>>2]=p>>k;f(n,q+4,p+b);null!==h&&h.push(Z,q);return q},argPackAdvance:8,readValueFromPointer:Ya, +T:function(h){Z(h)}})},j:function(a,b){b=S(b);X(a,{$:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},r:Ua,v:function(a){if(0===a)return Xa(mb());var b=lb[a];a=void 0===b?S(a):b;return Xa(mb()[a])},k:function(a){4>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(nb,d,Xa);ob[b]=f}return f(a,c,e)},f:function(){A()},q:function(a,b,c){F.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=F.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);wa(E.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},s:function(){return 0},o:function(){},g:function(a,b,c,e){for(var f=0,g=0;g>2],k=I[b+(8*g+4)>>2],h=0;h>2]=f;return 0},memory:E, +p:function(){},table:ha}; +(function(){function a(f){d.asm=f.exports;N--;d.monitorRunDependencies&&d.monitorRunDependencies(N);0==N&&(null!==Ea&&(clearInterval(Ea),Ea=null),O&&(f=O,O=null,f()))}function b(f){a(f.instance)}function c(f){return Ja().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){B("failed to asynchronously prepare wasm: "+g);A(g)})}var e={a:tb};N++;d.monitorRunDependencies&&d.monitorRunDependencies(N);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return B("Module.instantiateWasm callback failed with error: "+f), +!1}(function(){if(D||"function"!==typeof WebAssembly.instantiateStreaming||Ga()||Fa("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){B("wasm streaming compile failed: "+g);B("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); +var Ka=d.___wasm_call_ctors=function(){return(Ka=d.___wasm_call_ctors=d.asm.x).apply(null,arguments)},sb=d._malloc=function(){return(sb=d._malloc=d.asm.y).apply(null,arguments)},Z=d._free=function(){return(Z=d._free=d.asm.z).apply(null,arguments)},ib=d.___getTypeName=function(){return(ib=d.___getTypeName=d.asm.A).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.B).apply(null,arguments)}; +d.dynCall_iiiiiif=function(){return(d.dynCall_iiiiiif=d.asm.C).apply(null,arguments)};d.dynCall_viiiiif=function(){return(d.dynCall_viiiiif=d.asm.D).apply(null,arguments)};d.dynCall_iiiiif=function(){return(d.dynCall_iiiiif=d.asm.E).apply(null,arguments)};d.dynCall_viiiif=function(){return(d.dynCall_viiiif=d.asm.F).apply(null,arguments)};d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.G).apply(null,arguments)};d.dynCall_i=function(){return(d.dynCall_i=d.asm.H).apply(null,arguments)}; +d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.I).apply(null,arguments)};d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.J).apply(null,arguments)};d.dynCall_vif=function(){return(d.dynCall_vif=d.asm.K).apply(null,arguments)};d.dynCall_iidiiii=function(){return(d.dynCall_iidiiii=d.asm.L).apply(null,arguments)};d.dynCall_vii=function(){return(d.dynCall_vii=d.asm.M).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.N).apply(null,arguments)}; +d.dynCall_jiji=function(){return(d.dynCall_jiji=d.asm.O).apply(null,arguments)};d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.P).apply(null,arguments)};d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.Q).apply(null,arguments)};d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.R).apply(null,arguments)};var ub;O=function vb(){ub||wb();ub||(O=vb)}; +function wb(){function a(){if(!ub&&(ub=!0,d.calledRun=!0,!ia)){M(za);M(Aa);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Ca.unshift(b)}M(Ca)}}if(!(0fkH$Sh5!bFf)x`GSC9lw zsH_@<=T-`lL5nm(EGTHH^$BgMiel?ieC4^c`n2y^dEb9$g4);jI$`ep&-u^!&wu{& zuV?txFN`(EjgF&aJVBZ2MH<|sQyneRG(79Icsv(tCZ0<)!gHx+;d!frZP46+mpSlq z2ivIe+!dM^&)b}y+j)$8@%+V0m#xyNS#NH}2v=j>jrH?ErNY>#Z_o|5>2YKP%{H={+7EQ; zmgkmKTB$vz(<-em-J#`@)IKB{rrk$0TsuWHLOV$`QhS+bl=c$QXzc{i7;Q0))s7R5 z(|$oTUVD*fg4RVeQ9DL7Njpk3S^GKB6zv6~YqUir=%-*r00796G0Fn|=N5CGxyw>r#`NSRL7EZXtR~^>q(S%E+>5q*-g! z+M4Z>&AP}`tKI3)i7oE({P8x4@#42M(pqbh(S-TU=46wHlC297x!~@rr|v8((Y2sC z)=%iy!vW1UWVF8ROMYZ-QED2KAmyVq3UfbL_1ZyZ{v44jri_}k8wg+ zq1rzv7t{lq-h^$j6m&^8H3q2xBITWK^hfN@@^FCkTK-Wc>aqgqv6!l8O=Q|ff$ zA1S0dlIkc!B_&rDUH@DSD1oOi7;Dx?W3J@}X_0Hi<0YqrW&BvxlH8lNsAI_mRvY=q zl00CO`j6y(SRs%SR11KS+5Oj8~;z zQQCNFR}E=5Cs(kDOpx;6#N3N)LsY1LPg{|EwUx~q!vfhjm0GORS1n5)q~j>|r&ssy zEDJMnVp%epN_20~uuaK25>pD>4TaF73IS>CRGArrp`O=e+!N}a&a+s{d6p4XrS4fl zH!G4e&y#t5K5GX>^)sOBO&CSC*%&mt^<#BrzZ58~2a}-Lj?Vl17Hr}~<^m{QC~Gm4 za7WfAYE_}^`>8YXT(*mV=**c0o)UBOfUeA4Ro>?471=IWXKXoVf3|B8j$Uvt$m_gJ zyZTLTC@y9`P+}{uB5!N=^zj(Dwaf;gMM2`xd&}frwYyi@bruu@rtOlwAt~tl`yogY zqc8EBH~eX6SQE}(UJMOuZg0lN89KBaz}mv5b5 z3PA(3IydKMWSj~?zogmVcfnp9hv48&tIGU71DY$G^TQE~#)*DtlF(r%r%Gid==$82 zY_71GZ<}P(D8I|r18#Xy{W!m>D7p%B+!CF}DCc8hsw%ZkSO1)y|(k1nwoyT3CK$X9HeVx}=;{pLjEDlul0Vy_Shg6hD z&(7q>vC<_yV zrB$7w=uUZ`QI8_KcwIi?u8^~W74u5pmGZt|aZ}WzYw!eQYm>9t@OMHfm|a!^`FhA^ zHJ7JDPA5E12!m)MkpbS2Ru6_13bVkbg-Z?01ir%Hv1>mK6PzD zkoKw-1-AKQnfzRBE9iyhO9lC+6AmsG^z6g^yctY~aBvcVEX}Go>oH( z2heG?qHxm?#1_Zim>BE5t;GZcMUaF;F?|Lf%Xgzn%s^o-!;7wq#Wlm$|1Pc_DB`%* z&@&d-*7tn;pM-}=#fNfY;UN|pIDkN0Q3uhg@=DgwR@Gio$O0&d$>XDv>dLdBQXQ^V zfX~xW(2H<^mN(4O|N9d2xH{3pzOT;5lC%hvt_hP1|@I~J=RFFPOe7VrhIKt3-( z-}e@M^1rnRcv&xeIbLRoo`Yl78)c{ZtXBqHT73D*f6CLL3>FX+9~3+g4tR0JcsUX} znFVAJUL5)aKaA5hS)okWQmfig@uK5@Iak04#NZ~(cVWIA-3@}mk9zlmD|BYbw#d(V zuOruOK}}St+CKCAD{KQ4bwo3d7^6D++?V#HCDO5s9`!MryxWg7C>WX8_o5y@24Tb- zmO3U69dK3O0j!r`%b{T+%!x6qr3|V5K>c|@zkas`-J*&G z<_&Ntb%&W)jC_B@J;q26e5tpaR+XAwRTV#=yV+lDt?CJ4$EvQOt5st4WU5eg)hT%1 zR$Ywj;F0P92)Jjfhf!~pUh`~HrR9MgfDx+-Vgl5q-l-`Yor^74HOTy=SNMZ^&_L*H z3$lnwcE#Ri7*X~uXs!Iz>CxraLFo}b&58p_2wo&cCJ!8{(+brx_!_v+_XcmF%*gFm zH4^{moNXQA(&vt0c`Hl8nOd%a69m=wpuZCla80S z_UYb#q<{|tybUA$hV3miYNy~$(!34h!T}-mfW>yq7&}q?LA_Tyw4&K&L4vAifTJML zT*Ezbt&K_Or-q=FZ3Tp#hAFn1Bqv!9+BRheeRjNfUp*lQQ7kpUz68HpE*!)0*#(6*yN3rWN|wQBT-bRkkV<_)4(RR3`;LoP%2 zZ8M~0AQ!3*dIkY-+L=zyQ<{aN+c+^1B(^1yZ>inW z({!wsGNFV9t05DvbzO)4t5n;Bn`oN)>xBNE-r(6KrbhZt3=?HU9-Y)>!m#H~&7)5v zO;b}yZ!U>!nO3ON;mDC6TtoCP$~V2v`~v5r8m8Mlntjnl#a4nAZC35m$GYc2>9FP} z(|eh0Zz^v_E{d3|W|Wz8Eh|S&nvro`2U%7r5fl~r1zt5V#{mOOWhlD?Ml3>UgH+cl z(PU>Sk_wJvou!fnX_`D-Dj&8)s`#Pwq9$tginJ`Xe?}H9RIkh^NL|P@S#>cxAxccd zE4m?-o>l2L*e0{B2H&uU4yt!=C{zhEr)F?M4fWF-!xpyLq=SGwn1EqRX4aaMVESsr ztPzx>9+*{(=QFcrtFqZmd96fdQvs@{fcwe}cuNp+miX71^_ky5W8HnNM^U2(I`Cx&U_5F~(Cgq@GNX%5@^hB;+4R{dlReHH)ogkc3k=!Cg zoIF(|w+jh(2@^>XUy=Bd#D9|bg2d+}{zBr; z=ULK}&m;;{Zq1UqJjzgKCi;HG(7HJJcA`iY|3UJ>B(aXLLv;C4Lv9Mv!8TIg3oGKv>1XS>*QVK*S+$0D_HhX^Q zxT)|Q_j|*vkiG46rdh}jyZ-Q==K{$b87fgl*~!*J1n#Vz^NqEZ)B*W_e5VXOo+5%l0O zuvt=uZ9Q8>3 zLRzi7i)}=l(#22H!|LqfzL^hGqJ~4^@J`cmy$(x2KQ zZ!8(6Q-MltScPXxLm{4r8WzwlmAmXXm8?W9O1e|QBY$f)L<8GA{Z1q)tJUh zG&nL~MS)4v)r?imi0E&ws!iaV8`&*V5Ia$~PlHU}YfJm{_qPwQ0&%{ar?8q^8n~+ez$%wY#R#PgOxveGh|4wtexNM4G^MlJC}g-I;bH?ypm7Nmo zVH*x8=3|A*uq{LbBy0;_<5rv#cZ#LxzKQuX_%J6%57S;0MA(FLg*-{rt8Mq@CbAsi zZNp-i(=Wp6QCJWh@KFs&_JVhdD&aZwZg&J31It0M?5`!31YZVwqaDp@^2L zts8=c-x&=z2n+iMWYjwwO8$R-fA7CShXtnG8^>046u`Bzbyn#<_@_=ZkzoZ8J!A@- zeJ{cGZky2yIM{3fGq3L1crGd1k9$RM0(m)aaYij|2|;IfwM?OG^>NEJp<2vEQpUwf ziEdh6yhSZKT$=nkU{$k3Nc;en=?{xOs=l=lxz?uEJmfDOt#2X{tlz{r*z22C(l|AC za}%DgY<`$FsybDZ)8P~c=9S_gQAV8N;5l19qn=emdo$muFau8Le`(8K+c*%{ZCo@M z+48t8PujMTjjhv-+0qc1k%BhMjUP06Z@)h4yHhKnU_Qj`Xf2@Hw-3Ugx3*8}pNRt3 zG7i zF$^p1F%q)mSr982?xq6+KxA^mIP7@*xyNPW#=m}NSpl<{gn}h$k;vqm@c4imdW1s7 zE#txx6&OmA=XbVZnQ^;;;v03%IqK2&>>lIA2NZz1fIjS8 zQ(iiyxG#UNJs5u}mEp5#(yiv~&X4~lnVVmyNf$Rg7o6r^HETCU zCNiomQ)&+CZ-Ser)&AW<&zBC|rG5waBL_aT`LUj!_Z{#_)$&-L8vmH^{LX3bWYif4 zM9%eCh4+L5uj{E^daT%U)MP#Xnx`$-u=y5>m~Y$A3~f0sX!}98MJJNWjg9 z3&2hl8R$e2Iu2uTD#$#2PayMDRZncB|BAfyM4m~#Bk%v@OER58=G~v#^w{S8V-uUf z5X=4BFn+`S2?;#L3DVKh<6jXG=m1SoUmg0Y_Jss_ECIO#jmqYm z04-qPYoZS+gvp^Gy4T|g$ZLbpD5Mo)3but1VH=CYlt|@scj)wp`pMyJdPto-Tt(Na zZw?nBi!OYA7oNX(ej4Se^dsf&wLNT~2&%D1%GK&4cQ~GHtfVH4%xWr;TY$Z zHDTezUk}IAsP}eauh({ZOmQy{EeYFR9>9GZa1mll5T@<|Dg((SszR_|A2gks4phXG z@J)CO@=q0m_NCZiHF`p_Xsl zpj3pin?X2WhaE8wF6l-juXSkFE-KU_mye*J$Wv{dCF%Df1eECI5S#;;PQ(!psWY8} z=^oYNg}<1u`o%TMeRLiq7(QBvX)Q;u&Dem$huqe)srv<5KKK;BSg-ziG$;Pgek>Nm zqWLQSSiZ;uPk=f3_JX-}YSOVmi3by$bT%4&+BoUlc5DHN>s>vqJxtt5K8L7&T}9bD zdq93cE^~U*RvV{{gp7I_;yGyM@~)LlR}xYu)pWESs;p@uk9{nJYv8vI@t~8IA_51o z$?uZVKnn7I06##A>CkA$b6LuyI93ECEM}o5Khgp&9kPv<%8u{myp|VpBje@m@ajm%K^sMxXi*;=ABp?o@)P|NZ$NPYdpB_B$jX31ui-=y-Jl*m z(Xa4W53m81=G=P-Yc{(UXh=vK6B)jJTPBPwPknqMyXTKlg~LVYA?*#D+2Ct$=Z#w% zEe#TOMT7VT%sO)sjjHm$7mBO4s;=>45sa>(kGznb&dP(=P5NWPfFh6+$c)A73WfM(8j}F(zKW+fk;>W@tzT8*r1At848j5Lf zT|ZW(C&yX2*7)xE>aLTsd^;RF0!xP2p*}cyFDk>ur?^V|@D!@Vi0_pU(T~-jS8Hfz zWcjNX3>2T!UfYfu?vvMuXlvxNUwiZ+H5#s+q+51b@+k{7i7pKJfL9`E_sWZ2X-E?t zTfD%ud*v=hxP>A9idu0?UX~jAMllI>%Ny5ciDc*>zP0$y!Z*pKY3uObYpPG*EZKaf zjAp4`XGWkHZa6ap@PRWutFK$Qq_Jjrecj?)=ielkEvs9lEp$FNqlB=mKZtdvrftBt zn|6$T#B;V-kCgwm!f^3Q{neb`7dX%?KzZ>uj~p3gVVybT(S6wS!pL zjVM%;-z;!5(Fr~^_xHK+%eyg+>d_cxXB0D!F}%UE>XSFGcQaJ!$5u<#inl^ea|1U^ z)a!4RxfuJty8PBu>QGbP9;L6zRXg4;vVNXxkx!E+bFEZ$>-n^J`2{)>G`S{E{psyY z?}0pvgeHHkeCG>t{+wqeBx#Uq5MdC#K(Vjro+=gW~7Z9hLS z`D@#vR16DPF8sE4`7(YLRUe!$Z?bXwkOmUz_-5eC8!kcL)W(7HSI(P%YvaPDOVI6n zCZOK~C==f-d|yX1^-FJAIB(AUWy_Z0|Ki|tXKZ{n;O_DFqmSueeBb){ zOVp-!GK+Z4ZRlfqBeA6?WALYVci_vP6!q(OM#u388zVYZ{=1WDom%>Cy3^N+z7Ey$ zZttdB0UgHoM$BRO1itfP@aupV#Nf99*TvwAfS1SM&jB~aU=4gNjKMy@;TW6&xIP9K z0$v=0E0eW6?dDkHDj;r(!D9gPr&GIntU7GxG?w=#yjWuKOovV#Q*>R delta 9305 zcmai4349bq*6-KdnVF<#LggZpOpcyOLJpFUa3tKMxB`U314TuJh$u_~3Pi;-0g*$a zL>{cl8N~IBfDUL>)Bq~1i^!_$dVsL5uI#S5cN=UM&wP$Pqgm+AxaF^)9SN!Lv>+~h`? zg?FN5YU-zJ332`TxSnI1y34B@q?tNUz3Dx&gcYBiV3y~(44=p?);Y(>(Nl?s8~$dW z5lGa_G$Ryr8RkG2CAct^$4oJe6w`F~ODRo_bH!6L$+jI`y5+t)jc(A|by}=d(v4ac z-K2d=B(>#4BehqFMrp4Qjn?)PjnVcIjn(!N)oNWt^Rw?3qP=0ZVQKWd7A2cnq{dD8|}Q&RqCE#lb9gh<~LpGloa{Q)mKkzEl~@Z z<9!57Jsi|*L$+~wd@%i?l5lONZQ4eW?hVmcvqt_Pa%G8J$uq3<{+Lqr)%py%tVC+6uPyrSVS#R^Qw?m34Fu9M z44g6mG=$u>=yAx*1P^TU3?-OR-e%Jc3oxHoSA9`b{)1IUt(@e&=WIHk_uiBcqk=H| zaNpo;%pTPAW^79FK$m1wQ-~ITp=zJ&d=a~&G#n(oM*Yc_D5rp>H-+2|RtwKb+*Q7@ zL~c}lvN;@5d$Tp4CSNHF8aNg(PaUHt95ht3B{%Yf9)F>gTqP#Zy}U#OQEn5D@$XV< zXg&K=vx*!%msm+_9)Qz)n zHQ0tIsO3R_0Q|1OT9tfb`d}SQ-kn~JL;51!A5cdfJ6qd@bJe5g3gTMX z_78!KUFyH1tfM5XI7&sjC!|DGjWVJV(LE~UQu5%8OU#&-s}33FLLE?0*PDSww%HUi zyN`KUM!!_Zog0H7oQ~jneHH}!*BNs_TK~*>kfjGR@1+**A6Q8pkrxATgpU1LQ$dqI zI|tp>**BIhbHsz}xG9bxtL4;Q(Ez=cLbYOgT`kkbN3+Y~V;TTiOwK9KS=l|j4u~sD zqT@(muPu>l`SP5>MemehQuH2GZ?(Y_Wh0xbf$?71$d>jN{7hAQhr4o8<4=}F^{kVR z<>U_8rG|tI4DN6s4^%xAZ+j-$@wQR7&}Uh)vkd1f%>}+V$hxD-4*njl&aE79${9sC zMA0F{WW2LjRw!P(EP1NTR>ayQo5%WKaDp!R9&gI6vZ5<1vOD;rT)%#*jK9wv z=mowq5o#BmJk%~z?G1K+_1bEeQzsv>v*{>*Y3Hb>#9)=Ldof)t#^(lus-r1bRf(yT z);Uu}2~wNEKWtf=3(=)a=f6*%KJBjaksADAaG)aiXQO0ukgO3(NNUil_@#6yx?k-l z`;C$?HB?;HQ5I#W?dn#2xl;{QhqyDkf)z6#XR|aCD!e*scr~aV*g7Skw5=7#uE>=T z9obc8D?yffqMU_^kT&EqY9|Am8-TS9DT4`pwhd?ZwhJfb zxS2J*9{w-(`dG1_=M`?uirMU#y;fEotcj|73l|hE0XH5gQrtLH6ywIJqUwrQ%8GTz z&SGa#&;uI|4tm0h(?36rgFLNx?tdj{*Z)I|))aEZoX3+T$6|U9gAcV*dJm`}bhh4? zc#Nn(bn*wivopJSMw$!g!1Tlwsa)UjfC@x0P-m(ME z3b3!3Rh8CbVZ0sP6D<1DKK)?YoKbRFz5Fodrq{Un$(1C^&I}w4gLh{;)4wBuC)TIH5 zQ%4t4XJqK;en!%Jh2avIcAu@kgoR!5Ah*U6S3ZN%R zgI`hseqdq|4d&4k&x@N1#38(4;+1s%no0fL<=8}=I4?3}QkW<`^6=y?6G6z;=jYIg z$nx`3Nk3H>**G;{r)MI2FFcoM8>d`UZ+;pSHN5yDJMHVJW@+LV1c_=xR0#rj??oxx zby062tx#Yk8jQ3R?c zE_cA7T4cB~8(2nbKwcuU_@j$6>1zJR#d&F0D^w-CS(cR;#Ss=)UXn&nbL}Ozsfgu< zOSaJt?lC<-L4~UjNxdn|eWy?LVROwoCXf#$0&Vm3n!HI68mo=SMCKGSgRV2ZV^nk^ zo$1D3*698hq}GK{`Qz!MDZqu77NVST>16>Gkcum9bvVEmPl0;8b}9qIPh8rPl#Ko} z0Wf;rj~u?No^r?Q$USfU$zqDD4%2ionLnA?o9kxuf<;(3qlCusrWsezxHU5;0h~PZ z20mS%lek?irE)4!3<2WG`hdA7UB>Y__4)J(PpU68Tm8~-s=Iho{otHjkRsI?jlsrl z3(J2~-9nJ22(Hpg*;k+5|EM1(2}kA?csaR&bvMEAC_zDrej52OL_`842t zM&gg0Hmh$&iP|L2V_e7u{29u_Qw{NIo|8sxylzge{y)Ue%z21Pc>3IGEX;EYu<&zp)AXr>R8kH3NP@Kp26!Mr*O3$m8NgqmUHNTa-te_})c1z}~s&>L|7ag1tY* zE^i7{=3$@lkX|IO&=9c^5(`sfD_a~V3PPIdgiqgqEMI|QJ>S&yISr0neO;bO)A+6% zTi~d@H`OGnI}zC~!cYm1NRM1{(;b9d^~BA~Qu~B7X1nt_neG|`I0%>ng*xDz5M zxBDC_jM$uxWg5z}T0-ehP*BnRsJb12J@`BUd-aOTcwB4wpYrY}Q5;gDf@!)aY$qbP zxdUxMS5$y>aXT-(ql6lH(;dZCjldFN+okZ;AaSc5hXaF>-y8*;9$eF5rk-Mv(?^%f1D#Er9*MMoZQ1i{liK|9256!a_O$Nj@WoZX@ zEl=x%mBAVmh0pRCY_4eM?JK5u5LV)tlQjOf-hJ0tlt0{6g|c7k5R})nX6OAl|7dkB1x*P;-N16B9}dl80qUg*syRA5oZ(dYG-wD;O?UTOxOFqGw9gJSRQrH_^S3iSWU&VD%}e`?LgIo zlpQIIOjVlP+fiiORF{iLWPzYo<$d?Omz?RtRT?OPK00r4ggaK3K_Wj`eGX-E@3wQx zM!*OlN>celk#1TZyu}DK#A)*LpjEBX2@)4Ty?kL&!H>1&!{r=q%R%h$McW53@(1r# zk&bW8Vj9oO*EFMa@qKg`Z{~qn?Y1)4=9wryNp4du@?l$U<*#`}9~DEVLC960{emrD zwjpG3*Q@B>2*`*npS5ixfUVON0ci+-Wae7SMY-I#ep=?)Ln|ObUbT)Bqw}%#gMsAV zFgf6dr!aA)YbPSzwd_>K{Oz|TA?RPS!4ItU8~Wj6#^DV!0GDs9?eB-UQWy%?V+bbXg@DA`E*HOFazel(2mbAtT(NT%MD3_z+no~BG}dF zrvXh_Ir*$6=u1EV?2R_QHw-vcpJMb%j{rv7W;p->{ zSq>eUVtM47ZKL$09|O7sNJ@ez;o64_-RZ$NI~hUUbq_y5bsT)eFVchYDg~T?4$bxn zo5w$b7>^e{au0nM(I3q*sXP+w_>N2`f5_TyQ#%jaK0fJGk7(|F#sTwv+b1R}B*%3| z(}=IOkMt>OTxLu(Zg>8>QP;Kx|@JB_k z>NlguuWmE0RMa=k?U{!CBWL9!pS{ z$4J*;vZ^#hLQ2x{t;YET0Sz^xUQAu?IbO^K7iPePse2~naganR5N6JyQe1)1tsc?d zOjK(ckiX4-dM#bZ|9pBnJ;fJBcF+`d?fSlEN1}Wx5f+xl29z1of(9NFZ3vG{wVCMg z?oL#9N>Cp}K4J<^5)rm-G>9pY;k$3rX(K=PYycMWx6fA5x$NyMKtSKOa}&xVol_~B z3!W==eVd4ji6BpVuGH;TA(4>0^tok`fiExt^gCexi}X^=?Et3ZZp2+|y*Pw! z=h_#)G57eyIXwKOSy<%3m+~>}z)R=(?}SKT>Qw}__X*UzFgiZ5iYs5vO8CSF9t6RQ z9G>=auE++f04p2r0ne85@|OoEJ(TE#f>GDA7C|Kc=H)qMV2eEmr58ZErA&3{Kw;`Sp%lV0}#f46m>6lj)6*@Wq0oOEy+ofV?&eYZ#?XVjYG41Pi;*PY z)1QG0Ky}Hz|A>dyAn;Vbh3fiBa=MMkZEAOotG&2{?&{nsMb zh2_9!=eKN!3XE{xxH(bY(upwRtVZ11f$nH7&ey$Kp0wQ;l`pUI`uEsi{jOL0n(Re# z{pVNf3%+)ObQ4;K?tB##AeE`oCt}JYnrd6AhFtsF

)9A>>0|agGvV(7lF#^IBHl zPBehS)+`m>H$!}57XgSKz(1Od79D0!eLO(d5+4@MJU) zwjN%OgsbpPBKk$7_=sDt9jSCdc3L7$TqavQ(k0t1d7mY9Lpm(zFy!Q%?n+iFlIZG_8s0ZDkcNetWcj zJc&2IJq(qjZ}+n2I=`zlZJDWQt$4ae$7W!9CnYlYonCt6ig!y5mzpo%;@`iWZCyEL zOmzN<(fU>0^`>ZjUUz+CwBFcVe&EHThLG=N`-OY{{`mXz~fJIhL38agLRk40a_as}jF>O>(Y9 zmL|7w^RZ0N8>nES_j&8FQbbFKj}1!s+_oqUXhACu-_lN>#&<`~{HU~9BxzbtOp%Vq zk4JIYkGAuh2F+ePYxcEGbFZ0?X6H8)?H)iGcrx*Hp*{|en&bSY%F4!TuAVz<#_WX) zuUY8eH^%S-XW=hKo0 diff --git a/codecs/mozjpeg_enc/example.html b/codecs/mozjpeg_enc/example.html index 6900e1d0..2cff900f 100644 --- a/codecs/mozjpeg_enc/example.html +++ b/codecs/mozjpeg_enc/example.html @@ -20,28 +20,29 @@ module.onRuntimeInitialized = async _ => { console.log('Version:', module.version().toString(16)); const image = await loadImage('../example.png'); - let results = []; - for (let i = 0; i < 2; i++) { - results.push(module.encode(image.data, image.width, image.height, { - quality: 75, - baseline: false, - arithmetic: false, - progressive: true, - optimize_coding: true, - smoothing: 0, - color_space: 3, - quant_table: 3, - trellis_multipass: false, - trellis_opt_zero: false, - trellis_opt_table: false, - trellis_loops: 1, - auto_subsample: true, - chroma_subsample: 2, - separate_chroma_quality: false, - chroma_quality: 75, - })); - } + const result = module.encode(image.data, image.width, image.height, { + quality: 75, + baseline: false, + arithmetic: false, + progressive: true, + optimize_coding: true, + smoothing: 0, + color_space: 3, + quant_table: 3, + trellis_multipass: false, + trellis_opt_zero: false, + trellis_opt_table: false, + trellis_loops: 1, + auto_subsample: true, + chroma_subsample: 2, + separate_chroma_quality: false, + chroma_quality: 75, + }); - console.log(results); + const blob = new Blob([result], {type: 'image/jpeg'}); + const blobURL = URL.createObjectURL(blob); + const img = document.createElement('img'); + img.src = blobURL; + document.body.appendChild(img); }; diff --git a/codecs/mozjpeg_enc/mozjpeg_enc.cpp b/codecs/mozjpeg_enc/mozjpeg_enc.cpp index 28162601..27388587 100644 --- a/codecs/mozjpeg_enc/mozjpeg_enc.cpp +++ b/codecs/mozjpeg_enc/mozjpeg_enc.cpp @@ -55,7 +55,7 @@ int version() { return version; } -const val Uint8Array = val::global("Uint8Array"); +thread_local const val Uint8Array = val::global("Uint8Array"); val encode(std::string image_in, int image_width, int image_height, MozJpegOptions opts) { uint8_t* image_buffer = (uint8_t*)image_in.c_str(); diff --git a/codecs/mozjpeg_enc/mozjpeg_enc.js b/codecs/mozjpeg_enc/mozjpeg_enc.js index 73f15298..7d79efb6 100644 --- a/codecs/mozjpeg_enc/mozjpeg_enc.js +++ b/codecs/mozjpeg_enc/mozjpeg_enc.js @@ -17,46 +17,46 @@ function oa(a,b,c){var e=I;if(0>1;for(var e=c+b/2;!(c>=e)&&ra[c];)++c;c<<=1;if(32>1];if(0==f||c==b/2)return e;++c;e+=String.fromCharCode(f)}}function sa(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var e=b;c=c<2*a.length?c/2:a.length;for(var f=0;f>1]=a.charCodeAt(f),b+=2;J[b>>1]=0;return b-e}function ta(a){return 2*a.length} function ua(a,b){for(var c=0,e="";!(c>=b/4);){var f=K[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e}function va(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var e=b;c=e+c-4;for(var f=0;f=g){var l=a.charCodeAt(++f);g=65536+((g&1023)<<10)|l&1023}K[b>>2]=g;b+=4;if(b+4>c)break}K[b>>2]=0;return b-e} function wa(a){for(var b=0,c=0;c=e&&++c;b+=4}return b}var L,M,I,J,ra,K,N,xa,ya;function za(a){L=a;d.HEAP8=M=new Int8Array(a);d.HEAP16=J=new Int16Array(a);d.HEAP32=K=new Int32Array(a);d.HEAPU8=I=new Uint8Array(a);d.HEAPU16=ra=new Uint16Array(a);d.HEAPU32=N=new Uint32Array(a);d.HEAPF32=xa=new Float32Array(a);d.HEAPF64=ya=new Float64Array(a)}var Aa=d.INITIAL_MEMORY||16777216;d.wasmMemory?H=d.wasmMemory:H=new WebAssembly.Memory({initial:Aa/65536,maximum:32768}); -H&&(L=H.buffer);Aa=L.byteLength;za(L);K[23016]=5335104;function Ba(a){for(;0>2])}var R={},S={},Sa={};function Ta(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Ua(a,b){a=Ta(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)} -function Va(a){var b=Error,c=Ua(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Wa=void 0; -function Xa(a,b,c){function e(k){k=c(k);if(k.length!==a.length)throw new Wa("Mismatched type converter count");for(var h=0;h>2])};case 3:return function(c){return this.fromWireType(ya[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function fb(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Ua(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} -function gb(a,b){var c=d;if(void 0===c[a].X){var e=c[a];c[a]=function(){c[a].X.hasOwnProperty(arguments.length)||V("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].X+")!");return c[a].X[arguments.length].apply(this,arguments)};c[a].X=[];c[a].X[e.da]=e}} -function hb(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].X&&void 0!==d[a].X[c])&&V("Cannot register public name '"+a+"' twice"),gb(a,a),d.hasOwnProperty(c)&&V("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].X[c]=b):(d[a]=b,void 0!==c&&(d[a].qa=c))}function ib(a,b){for(var c=[],e=0;e>2)+e]);return c} -function Y(a,b){a=U(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return ra[e>>1]};case 2:return c?function(e){return K[e>>2]}:function(e){return N[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var ob={}; -function pb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function qb(a,b){var c=S[a];void 0===c&&V(b+" has unknown type "+kb(a));return c}var rb={},sb={};function tb(){if(!ub){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ba||"./this.program"},b;for(b in sb)a[b]=sb[b];var c=[];for(b in a)c.push(b+"="+a[b]);ub=c}return ub} -var ub,vb=[null,[],[]];Wa=d.InternalError=Va("InternalError");for(var wb=Array(256),xb=0;256>xb;++xb)wb[xb]=String.fromCharCode(xb);Za=wb;$a=d.BindingError=Va("BindingError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},Y:null})},w:function(a,b){b=U(b);T(a,{name:b,fromWireType:function(c){var e=X[c].value;bb(c);return e},toWireType:function(c,e){return cb(e)},argPackAdvance:8,readValueFromPointer:Ra,Y:null})},h:function(a,b,c){c=Ya(c);b=U(b);T(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+db(f)+'" to '+this.name);return f}, -argPackAdvance:8,readValueFromPointer:eb(b,c),Y:null})},e:function(a,b,c,e,f,g){var l=ib(b,c);a=U(a);f=Y(e,f);hb(a,function(){mb("Cannot call "+a+" due to unbound types",l)},b-1);Xa([],l,function(k){var h=[k[0],null].concat(k.slice(1)),m=k=a,n=f,q=h.length;2>q&&V("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var y=null!==h[1]&&!1,z=!1,p=1;p>>k}}var h=-1!=b.indexOf("unsigned");T(a,{name:b,fromWireType:g,toWireType:function(m,n){if("number"!==typeof n&&"boolean"!==typeof n)throw new TypeError('Cannot convert "'+db(n)+'" to '+this.name); -if(nf)throw new TypeError('Passing a number "'+db(n)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return h?n>>>0:n|0},argPackAdvance:8,readValueFromPointer:nb(b,l,0!==e),Y:null})},a:function(a,b,c){function e(g){g>>=2;var l=N;return new f(L,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=U(c);T(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e}, -{ja:!0})},i:function(a,b){b=U(b);var c="std::string"===b;T(a,{name:b,fromWireType:function(e){var f=N[e>>2];if(c)for(var g=e+4,l=0;l<=f;++l){var k=e+4+l;if(0==I[k]||l==f){g=g?na(I,g,k-g):"";if(void 0===h)var h=g;else h+=String.fromCharCode(0),h+=g;g=k+1}}else{h=Array(f);for(l=0;l=q&&(q=65536+((q&1023)<<10)|f.charCodeAt(++n)&1023);127>=q?++m:m=2047>=q?m+2:65535>=q?m+3:m+4}return m}:function(){return f.length})(),k=yb(4+l+1);N[k>>2]=l;if(c&&g)oa(f,k+4,l+1);else if(g)for(g=0;g>2],n=l(),q,y=h+4,z=0;z<=m;++z){var p=h+4+z*b;if(0==n[p>>k]||z==m)y=e(y,p-y),void 0===q?q=y:(q+=String.fromCharCode(0),q+=y),y=p+b}Z(h);return q},toWireType:function(h,m){"string"!==typeof m&&V("Cannot pass non-string to C++ string type "+ -c);var n=g(m),q=yb(4+n+b);N[q>>2]=n>>k;f(m,q+4,n+b);null!==h&&h.push(Z,q);return q},argPackAdvance:8,readValueFromPointer:Ra,Y:function(h){Z(h)}})},n:function(a,b,c,e,f,g){Pa[a]={name:U(b),ka:Y(c,e),la:Y(f,g),ba:[]}},f:function(a,b,c,e,f,g,l,k,h,m){Pa[a].ba.push({ea:U(b),ia:c,ga:Y(e,f),ha:g,na:l,ma:Y(k,h),oa:m})},y:function(a,b){b=U(b);T(a,{pa:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},A:bb,B:function(a){if(0===a)return cb(pb());var b=ob[a];a=void 0===b?U(a):b; -return cb(pb()[a])},l:function(a){4>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n"; -f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(qb,d,cb);rb[b]=f}return f(a,c,e)},r:function(){D()},q:function(a,b,c){I.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=I.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);za(H.buffer);var f= -1;break a}catch(g){}f=void 0}if(f)return!0}return!1},s:function(a,b){var c=0;tb().forEach(function(e,f){var g=b+c;f=K[a+4*f>>2]=g;for(g=0;g>0]=e.charCodeAt(g);M[f>>0]=0;c+=e.length+1});return 0},t:function(a,b){var c=tb();K[a>>2]=c.length;var e=0;c.forEach(function(f){e+=f.length+1});K[b>>2]=e;return 0},z:function(a){if(!noExitRuntime&&(la=!0,d.onExit))d.onExit(a);u(a,new ha(a))},v:function(){return 0},o:function(){},g:function(a,b,c,e){for(var f=0,g=0;g>2],k=K[b+(8*g+4)>>2],h=0;h>2]=f;return 0},memory:H,p:function(){},table:ja}; -(function(){function a(f){d.asm=f.exports;O--;d.monitorRunDependencies&&d.monitorRunDependencies(O);0==O&&(null!==Ha&&(clearInterval(Ha),Ha=null),P&&(f=P,P=null,f()))}function b(f){a(f.instance)}function c(f){return Ma().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){E("failed to asynchronously prepare wasm: "+g);D(g)})}var e={a:zb};O++;d.monitorRunDependencies&&d.monitorRunDependencies(O);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return E("Module.instantiateWasm callback failed with error: "+ -f),!1}(function(){if(G||"function"!==typeof WebAssembly.instantiateStreaming||Ja()||Ia("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){E("wasm streaming compile failed: "+g);E("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); -var Na=d.___wasm_call_ctors=function(){return(Na=d.___wasm_call_ctors=d.asm.C).apply(null,arguments)},Z=d._free=function(){return(Z=d._free=d.asm.D).apply(null,arguments)},yb=d._malloc=function(){return(yb=d._malloc=d.asm.E).apply(null,arguments)},lb=d.___getTypeName=function(){return(lb=d.___getTypeName=d.asm.F).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.G).apply(null,arguments)}; -d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.H).apply(null,arguments)};d.dynCall_i=function(){return(d.dynCall_i=d.asm.I).apply(null,arguments)};d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.J).apply(null,arguments)};d.dynCall_viii=function(){return(d.dynCall_viii=d.asm.K).apply(null,arguments)};d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.L).apply(null,arguments)};d.dynCall_iiiiii=function(){return(d.dynCall_iiiiii=d.asm.M).apply(null,arguments)}; -d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.N).apply(null,arguments)};d.dynCall_vii=function(){return(d.dynCall_vii=d.asm.O).apply(null,arguments)};d.dynCall_iiiiiii=function(){return(d.dynCall_iiiiiii=d.asm.P).apply(null,arguments)};d.dynCall_iiiii=function(){return(d.dynCall_iiiii=d.asm.Q).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.R).apply(null,arguments)};d.dynCall_viiiiiiii=function(){return(d.dynCall_viiiiiiii=d.asm.S).apply(null,arguments)}; -d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.T).apply(null,arguments)};d.dynCall_viiiiiii=function(){return(d.dynCall_viiiiiii=d.asm.U).apply(null,arguments)};d.dynCall_jiji=function(){return(d.dynCall_jiji=d.asm.V).apply(null,arguments)};d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.W).apply(null,arguments)};var Ab;function ha(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}P=function Bb(){Ab||Cb();Ab||(P=Bb)}; -function Cb(){function a(){if(!Ab&&(Ab=!0,d.calledRun=!0,!la)){Ba(Da);Ba(Ea);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Fa.unshift(b)}Ba(Fa)}}if(!(0>2])}var R={},S={},Ta={};function Ua(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Va(a,b){a=Ua(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)} +function Wa(a){var b=Error,c=Va(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Xa=void 0; +function Ya(a,b,c){function e(k){k=c(k);if(k.length!==a.length)throw new Xa("Mismatched type converter count");for(var h=0;h>2])};case 3:return function(c){return this.fromWireType(ya[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function gb(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Va(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} +function hb(a,b){var c=d;if(void 0===c[a].Y){var e=c[a];c[a]=function(){c[a].Y.hasOwnProperty(arguments.length)||V("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].Y+")!");return c[a].Y[arguments.length].apply(this,arguments)};c[a].Y=[];c[a].Y[e.fa]=e}} +function ib(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].Y&&void 0!==d[a].Y[c])&&V("Cannot register public name '"+a+"' twice"),hb(a,a),d.hasOwnProperty(c)&&V("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].Y[c]=b):(d[a]=b,void 0!==c&&(d[a].ra=c))}function jb(a,b){for(var c=[],e=0;e>2)+e]);return c} +function Y(a,b){a=U(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return ra[e>>1]};case 2:return c?function(e){return K[e>>2]}:function(e){return N[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var pb={}; +function qb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function rb(a,b){var c=S[a];void 0===c&&V(b+" has unknown type "+lb(a));return c}var sb={},tb={};function ub(){if(!vb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ba||"./this.program"},b;for(b in tb)a[b]=tb[b];var c=[];for(b in a)c.push(b+"="+a[b]);vb=c}return vb} +var vb,wb=[null,[],[]];Xa=d.InternalError=Wa("InternalError");for(var xb=Array(256),yb=0;256>yb;++yb)xb[yb]=String.fromCharCode(yb);$a=xb;ab=d.BindingError=Wa("BindingError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},Z:null})},w:function(a,b){b=U(b);T(a,{name:b,fromWireType:function(c){var e=X[c].value;cb(c);return e},toWireType:function(c,e){return db(e)},argPackAdvance:8,readValueFromPointer:Sa,Z:null})},h:function(a,b,c){c=Za(c);b=U(b);T(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+ +eb(f)+'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:fb(b,c),Z:null})},e:function(a,b,c,e,f,g){var l=jb(b,c);a=U(a);f=Y(e,f);ib(a,function(){nb("Cannot call "+a+" due to unbound types",l)},b-1);Ya([],l,function(k){var h=[k[0],null].concat(k.slice(1)),m=k=a,n=f,q=h.length;2>q&&V("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var y=null!==h[1]&&!1,z=!1,p=1;p>>k}}var h=-1!=b.indexOf("unsigned");T(a,{name:b,fromWireType:g,toWireType:function(m,n){if("number"!==typeof n&&"boolean"!==typeof n)throw new TypeError('Cannot convert "'+eb(n)+ +'" to '+this.name);if(nf)throw new TypeError('Passing a number "'+eb(n)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return h?n>>>0:n|0},argPackAdvance:8,readValueFromPointer:ob(b,l,0!==e),Z:null})},a:function(a,b,c){function e(g){g>>=2;var l=N;return new f(L,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=U(c);T(a,{name:c,fromWireType:e,argPackAdvance:8, +readValueFromPointer:e},{ka:!0})},i:function(a,b){b=U(b);var c="std::string"===b;T(a,{name:b,fromWireType:function(e){var f=N[e>>2];if(c)for(var g=e+4,l=0;l<=f;++l){var k=e+4+l;if(0==I[k]||l==f){g=g?na(I,g,k-g):"";if(void 0===h)var h=g;else h+=String.fromCharCode(0),h+=g;g=k+1}}else{h=Array(f);for(l=0;l=q&&(q=65536+((q&1023)<<10)|f.charCodeAt(++n)&1023);127>=q?++m:m=2047>=q?m+2:65535>=q?m+3:m+4}return m}:function(){return f.length})(),k=zb(4+l+1);N[k>>2]=l;if(c&&g)oa(f,k+4,l+1);else if(g)for(g=0;g>2],n=l(),q,y=h+4,z=0;z<=m;++z){var p=h+4+z*b;if(0==n[p>>k]||z==m)y=e(y,p-y),void 0===q?q=y:(q+=String.fromCharCode(0),q+=y),y=p+b}Z(h);return q},toWireType:function(h, +m){"string"!==typeof m&&V("Cannot pass non-string to C++ string type "+c);var n=g(m),q=zb(4+n+b);N[q>>2]=n>>k;f(m,q+4,n+b);null!==h&&h.push(Z,q);return q},argPackAdvance:8,readValueFromPointer:Sa,Z:function(h){Z(h)}})},m:function(a,b,c,e,f,g){Qa[a]={name:U(b),la:Y(c,e),ma:Y(f,g),da:[]}},f:function(a,b,c,e,f,g,l,k,h,m){Qa[a].da.push({ga:U(b),ja:c,ha:Y(e,f),ia:g,oa:l,na:Y(k,h),pa:m})},y:function(a,b){b=U(b);T(a,{qa:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},v:cb, +B:function(a){if(0===a)return db(qb());var b=pb[a];a=void 0===b?U(a):b;return db(qb()[a])},k:function(a){4>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+ +g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(rb,d,db);sb[b]=f}return f(a,c,e)},r:function(){D()},q:function(a,b,c){I.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=I.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);za(H.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},s:function(a,b){var c=0;ub().forEach(function(e,f){var g=b+c;f=K[a+4*f>>2]=g;for(g=0;g>0]=e.charCodeAt(g);M[f>>0]=0;c+=e.length+1});return 0},t:function(a,b){var c=ub();K[a>>2]=c.length;var e=0;c.forEach(function(f){e+=f.length+1});K[b>>2]=e;return 0},z:function(a){if(!noExitRuntime&&(la=!0,d.onExit))d.onExit(a);u(a,new ha(a))},u:function(){return 0},o:function(){},g:function(a, +b,c,e){for(var f=0,g=0;g>2],k=K[b+(8*g+4)>>2],h=0;h>2]=f;return 0},memory:H,p:function(){},table:ja}; +(function(){function a(f){d.asm=f.exports;O--;d.monitorRunDependencies&&d.monitorRunDependencies(O);0==O&&(null!==Ia&&(clearInterval(Ia),Ia=null),P&&(f=P,P=null,f()))}function b(f){a(f.instance)}function c(f){return Na().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){E("failed to asynchronously prepare wasm: "+g);D(g)})}var e={a:Ab};O++;d.monitorRunDependencies&&d.monitorRunDependencies(O);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return E("Module.instantiateWasm callback failed with error: "+ +f),!1}(function(){if(G||"function"!==typeof WebAssembly.instantiateStreaming||Ka()||Ja("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){E("wasm streaming compile failed: "+g);E("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); +var Oa=d.___wasm_call_ctors=function(){return(Oa=d.___wasm_call_ctors=d.asm.D).apply(null,arguments)},Z=d._free=function(){return(Z=d._free=d.asm.E).apply(null,arguments)},zb=d._malloc=function(){return(zb=d._malloc=d.asm.F).apply(null,arguments)},mb=d.___getTypeName=function(){return(mb=d.___getTypeName=d.asm.G).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.H).apply(null,arguments)}; +d.dynCall_i=function(){return(d.dynCall_i=d.asm.I).apply(null,arguments)};d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.J).apply(null,arguments)};d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.K).apply(null,arguments)};d.dynCall_viii=function(){return(d.dynCall_viii=d.asm.L).apply(null,arguments)};d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.M).apply(null,arguments)};d.dynCall_iiiiii=function(){return(d.dynCall_iiiiii=d.asm.N).apply(null,arguments)}; +d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.O).apply(null,arguments)};d.dynCall_vii=function(){return(d.dynCall_vii=d.asm.P).apply(null,arguments)};d.dynCall_iiiiiii=function(){return(d.dynCall_iiiiiii=d.asm.Q).apply(null,arguments)};d.dynCall_iiiii=function(){return(d.dynCall_iiiii=d.asm.R).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.S).apply(null,arguments)};d.dynCall_viiiiiiii=function(){return(d.dynCall_viiiiiiii=d.asm.T).apply(null,arguments)}; +d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.U).apply(null,arguments)};d.dynCall_viiiiiii=function(){return(d.dynCall_viiiiiii=d.asm.V).apply(null,arguments)};d.dynCall_jiji=function(){return(d.dynCall_jiji=d.asm.W).apply(null,arguments)};d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.X).apply(null,arguments)};var Bb;function ha(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}P=function Cb(){Bb||Db();Bb||(P=Cb)}; +function Db(){function a(){if(!Bb&&(Bb=!0,d.calledRun=!0,!la)){Ba(Da);Ba(Ea);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Ga.unshift(b)}Ba(Ga)}}if(!(0_{YWS1Gde(@ z(h~Zlp5CF4=}oqmy}|y&US~JFL9emdud;u$J#07I#h#=m=$0;ZyJ;7_LNC)x^e=jm z?l(7^_nDi_jpn_kGB=p(&2^?U*P3h0mF5a_xw*_-YTjecH|Lpi?l!+=C)hXa16KDw z+t1!(@3ME;KK2Rwn0?3|qnGO0VRn}N&d#vY>^Jr+`-Poi|HtayW^b`W>~nUIeZ~&3 zPuaiNi)<%*fd!dlYnWmWvGwd8>UW;b(Vz4Op;=e=JDsLq=@;tvf7I_g`hiYSzwhZM z`kA6PZ;zaBjv!WV89tWeWft=>!)primj%+Ci-~gNfQa-Y^euzuSf-Cz;sW)IHH4u7 z@}O&`O=6+EIih6_NHkHBsP}uRj3rqVYq;HJwYW%{K0NA)h}-GjKz8IdMn3sY^hojr za^1Bo$7eZ(<+qqcmW%5S_gk@+!;0YDET;`dE3hWE*6U8U42!^ZI!_OLRkE4UKV*H| zUNlzjZQBOrpKVLcvHUAp)Gmwipfn zxaSS0c&t#kbVt^9ev9|EOh+|DhL$TVlb1=WGLdeRWtHn`l-yU@4JGfgs6~6X8#K@o zac_$IF&7p_%^gC;fdgI0)a*^0{k{-;ht2+{>MqT_DHio`RGWGVr)XfjyX+!bQFl2^ zlxMbcTTDdqnO=uz;rB*}yVrex$gI=i2;%MB(i)d1KM;P(mR)K*v7nBy$jkiRNS+;- zR5P41`fFO)MZDWG+^JeXEM}_5U;y)Md8FGNbe9~}y*-q%s`~_NI(fE7NAk+HwQcBD zd425|UgmCYSj^S{S&Zk&_iGbMv)s|(RcN?{(aVkPY}!Wn1M@JjeM~Q|HW{q){*d*_ z#GXUJ)!(xVc>~*e4kmQY^?DthJ-z!-LX(s{%k6GPR4*J{$jrWX#*Bc#o9icA}$ z9|ro8bD?7gPZ#7NTi^H~f01Fp9*PEeDP0a6)JXj$4X&ZAK=;AB7`-hW!;U3&cVjO^ zST1Zemyh-HQlUX!Cof$)d?%I47l%Jgo8{OMWoWM-u>kGVk*{jqEU&)07vPUvU4{0stF7cs(+%sk#ZI#`}=3h24r#3Rjl}2WUjf}gYw`?zip@N@-w+p;FwhK{~r19NQ_84CS zoi85WmC6EdjE^JgDnGdrQ~_|>{RVS{+QMaWzF=y3B`Kr zk-r98FyFkF=3wSx`QY>np%F(7zvT#_Zkxk3WIrGvoKQmxbv?eOYVkc@2X==>R!?f8 z9trBTGg6ytD12j>M+Km=Xhv#0z)i3uzyc#?%y1?px;MG7otSOq`{2?Ow95GxfiG_z zOZDY3OnU^lnb1F;A?S+sB@EAqAx&r_c{zWEuv5{CM9J(yp|*jxrqXcTHbj(wLTwsN zU!}1&T(_|?H4%l0LW4sC&`yDmVZy{{;^n#&&M+rEgXXF^(G_h&xcvcNW19Irse;Qi&H`Q<|; z0ZQUTM3_n(Gp2&!8o2aJzBoK?q&o@2MN|{NHF~IKIKuryL8dGJnGTOou5wov>pa_%8{xT3$m~j8Q8Juow$hd_?RyCa+qRA@5iv zuG!AS>rXlP!z8{#^$>|QPdoX8BpOj|C2;`N10>F%+CqFAj6W*VRu7|Da>nXPBskBk{s3v#yfsM5pLp?qa+3d+ycW+d5j z#)yVfnbUP~DF+P1%c(4`om-ri$SbgWIiD$)t?x!%?f+~7kyxZx_= zBAcleaPm3oC5q4Xnq>?D)k2kKnd-|*gxuyEH>DK9Qs$F*6~>s#b<8z|W0sEL>FV8? zl%9;73}&G%CvrAVw=E`=4$AWzJICFnT^Ed3G`{KNcgY@`%IUeloJ|`DAtqsSE)A5O zH!q>pf!8;`MbPZ(ElI3_Px8iRBd(W_!6EVJC%U%C_9R)5$&+ElqV(#veCmn2bHY-_ zi&K~)*015-1TA;G*d2moBEuW<WE5t#2iufi(COS?w)q8#0qkSXk&Qmj>{aryW1;@J zP@k`oyWX#GFEBCgPd)e#$v!xS^z_6B`{`x*!iNRe5yw94KXx@CUK;#*uQ|zLI-zAf zV)cyG07FcjY4(9U)UF8F9D z?Ue^Vvg+R?55{UZ))2wqXaR_0;V)tAdWAY6*doJ@@*;2cVv$~TYBd|;d{e{W=L>MQ z5<6bAF(h7i4Tl?^Vz`IsvlkQ7dOND28z!PdZjkW_mfrVd5WOZB9Oz5`mhT^!10~memPNPAmp)6CD?cl;TgCLe{Qk4llt)R6=IUk` zTWiJ(nyHgbv1XAI9?Lp74Ww%hCcD1Wi+5Bu9(TIAPlq|$p5{>JL(4anxbBZLYrPZ z`|%?W!Gic=`SjtAJtu~t4L={+g`BR)NaRhRldnCwWUdCayad{L;m>F9)I5{;Vm*}) zOQ1LYB3b-JX6zz>07TA8e4ZTjMR8FzE9sia@R z`9)RBg|_OQHAcC43cD)wiTh>rk@obStU8if@GgmcZ#jz$JCLCzsFPtEuUJ;dQ+Z#} z3@J-PBu`6m%h5-yy0^kA;di6qW0lzQ_Pkn{-41Qvdx)G`)qIlIfTj)cNMVU#bS5mF z*jnf_u$YmsUIQP-$H}*kl+#ja9?hk3vh~p{v);fL1m9bjD#5cM9 z>vWm(b-xb!Ky7;)91FKP$Z?51=$a<~9|rR7Z%XB-Ut`nBaQW%6T9g^b%TNwG z-WlbZ(6j!s%c(dGf@8=B;Cm z6oh_)s_dGdksp3rgw01M2U2S}_~f8gH`rN~I|4KKn8O{3n%{sl>&27(_+Ml>`o!8X zR$ocnBU^sgVdxbu%MtQe&PyK4X?rXOJeFClS6uHljD(dUxkRq+_n@aMZQbx{5VXd2 zW)FN0*hboG4Y)SM_hpJCt0Lp0=|#{ ztJWYaJ_hLvCX=s_Ro@rYuONNf04O2^=?J0mdTu+v)S*M8EQT1NwIwb*?a)yI_aMc( zyXsw|DQ#UFPFuz5ckNVnEx{5_JsY}r80oHs_Qb_KpO$EPp!j?Slj*358vgxh$yCfP zF}rAZW!u2Xh_DDFHY4IA0k!$SX^(VQ>6?vY+-!XP!;J~q`i>29U=j6)YprC+p?o-pw-sA`!inlhpKzfH`a}e(H+%?b zoy7Y-5rgWm5Amv#IO!7!z@77nL{!W3MN3p$@g9YZ*bIknO_Z zS{D;)>T53Af4eSTG`I(79J7HKsEd*Rg_T=>E2bj(-ftOT_mf@5p1w0)Gi`)t#vM+B z3)897nZO56du&VtjH?NA;&f)Rp5rLNpsdJAg3S{9cRB4eut;W}$)x$R>P%<1Ehffk z;TN3AY^ldIq93UTEWR}0MGWu+4xTAuNj6s;#;!hBT0D>RM7!4iH!R|)*?;+ks zwPhsI?j>(r`1A0M^@C&aCgX{?sQQ8C|u0+gqyN@O`q;X!qo$0 z+Ju{1_9yPPZ`}4WY&q<9!0~B~HtYq4OUM?y0PwBMUxQ@8%f2eRz%V` zDp5a1QhRzud86otra4wb+3WRT6p0u;Z4+NPeOVp`_KK!b47@#>s!_cdO+x{Uchili zX1nPDR8g^%uG+=WfMk38FE2Uu{j%5W9}At~rYDjYt4%R9HAH$ns;RLw9M$WwG>j5d zY8=&MRNAirgv3_IRLd+fh*#>{0KF?phUmiKpJJN)b+U zWM(282T_DThZyMR%hdhx)P_pcd-0S@rNQ6hsROy!lfF#+U!I-S{mm!}j2~|XE3wqu z&1fO5QiGdQU-GIg&8aJSgNK__OQO~4bPK9T11ASAwXpQf`DRwZj2N@2yFv9zpzf5d zRwPh2Fnd3NvT3RMJpsyFr}`#RN8lDDQaj*wCL)Vir_O1hr8=~v5vW$Qq~BAsu$s8& zvMm!yY`p!{f^}wmo!ZihQc~{M$4SzsK}V`r9|-ZkcPb1gPkqn|6Xyk6CecX3!xTfx zfGh5^xRk(~keZuJCuzExkV5sSzD>dF;RC@LsnnT)7N=OudG|$((6le7)1%P9bs13N z&1z`|_)IX@W&~>L#WPihTu7U#8geNe)s|ecQ0>a4 zQK(Y#XaTCNc~pREUmkUCsfWiQn(5Ok=ZkV_ZUDiaHY>? z`iu{IKU2Nuqe@gU`S4x?)Wu?I9h{X%FR0yfNHy2PRFnFQ>0uNB16wr0(bt=S!p_$Z!g?Ql2RM!;ID0`TG#K=^y z6;TeRfLcP*<1+yL1J|~oZ4D2Bs&BC^{iI@ej7+tu82%$ueOPQygpb&Q-jF=%TRUK?cItx; zc-7vnR+mwR>Q@fG`gs`*4g=^(^-LKRs@uzHIc-y}3Mxm{wSsm~g<8>xidAw)TBe*8 zv|r8YL`flN=Ze{8wPoM+AXw-ZVm{l>_VxJ!r%prP3OL-!+8hAV`D`--O@8-=&a{rk zs`Z`eL)xJxR#FwJ?UnFA+3H9omGC?d%-6@#y!w%m@hp|mg;r8e^;8$SsH?7c)$bWx zSVcJu-5r7+O}bTYO&|M#beU$47UnG8Q%$VFj_Vm*Swlw9F`1XD@1tJ`-!-93|Pq$&Rm->@0vP_$=-)pL(K{Q_V z8$bhqxo-e`PzPn!QIF;wu%WPESBRuW)zP(4TCx~;(=zpX9X*FZcMPO0vAx4j5qOW{ zWx;Iq>x7=2F2mX7=P0#v80B;cJ!w_h z@gel!1QxbjVHS29+g7s+)H*iIA|#O-Je-PJgOe>g!g5%8NUA~hmk5NM zCb-%@oa*vB>T3mI^1s)PaNilO4c<|CMj)h)R^vxdTGnV-7{kM_X#ChA_I&K%8bBJb zAAnODpdJ{3Bx#I#Wdx<7Iyi!QI|DeuGWGok>fpq#hk$DK3I8s^p?ADPn3IL62mU&S+V;;! za!&pbXV|(v$%wfj{w~d7d7cfb4}qEh*gBZtN&@m@N;Q2fb&L+l=G0R>Hclui6>l(SJT-T<>8c+g$c~>@#AI(Yj2s{fpeWq0py|^J zC}aA?JQ{wctD0~lyhB&D{zmHQyc4eK4)x`YbRgV(8kH! zO0|Co1N3eN^z_Npg3^NvCQ}uQ(0m*`SG_%zu5WSW&lMb@pDU=En=xIwnt3y|{Tn{~ za|ZQ-jSrr@nIb4wbA!8>C9vwb>aS^()Jgvg1_l8SQe-TKdCk&U=52VO!GRsOC`E>S z?*@f&z{0de#=QhV>!y>3hd;DZn*=Tnb5+B1oMUWCJZ?38cUn`U65|d}r&OClXE=J9 zA~9`O$ zb+3mkB2LdF_TZNssE&oIpF`DGq3ZZ0oTfBv`cO%FiK=mFEwlmmYAw4?oy^r~WmYIwg*`+3waM7{;RCA&HMy(YI1wf2{x*qy8oz zF6Pm)HMSRfDGj6eNoGHTi_aji`!4%B&lVoxNBbQ6hNG9wm-w@4?yb}z53|7`Ob7w> zOfWkg&tQq6_cO!hrVidpty^eYW47(u_n2_f>A_aF(K-e**>MMsgC7OY+(B0{IBmsHwS-GA=*=Y^W$Z+1QWJWeK-vzuWwR9O-7U;HX%)zhu%f2Y8$ z1-p{uxq4ce-4J@s5jyre#JUVWAEXyeU%4j%usi{P;EfG5k>~}r|8DZ6>?D1y9gVCI z8M29so`_j~Tw^Bk3gw@z>~G1&60!M_l|Gb;A7T0NJQAOQYSMX}kOv00o~LMrRP@OU@LY@3 z@e9b#76xZsL^eW8*8j-nV8kS1-ylcAL-0r)Y4iy!0y$DYyqPK}OW{ph;j_6YWj3*D>Y zSe@?1u^%God1WQBZ1rL*b^|>hM7uY&avOXhE(>!k2 z#Hq6?#Eco&+-^*qXsC?^EOpVY0v6m=V2ADHa(keJLqNm>FcCzwyB!>a4p8(e=O^4-^m;6;KXWRAgB|`2PK70=WB;A6@;bs;jH3tE;QK=b>L> zPW~LTwTjF)DNXjF@cz!j11#p;o;$7ktSm(O}~{q9Mk& zL_>{lh=v&lh=v0SDScCxqFo9qqtI=k+l?3UNqtE`3XVB6W#^c2mh7_x)5(<}5c{e%8a zFVP0`A#=U?p!tBQ%ys5kbB!s@)#fU5rFoyZ++1cZHJ6x+%!TG%=KLn}dv=%|Vjr;~ zyV!^91NJ_9kG;!wvrpN_>}Pg@{lreOA@8ua*%xdd+spQ_ z&)H|}@9ZV^Hx^(ovej%QTgU#y*04oXcZU8$r|I8>>X0EP=@9H}nW6gD@Y_lGb0eN))Jc94HJUp4^Q{_|)yZ}XyTN8Q*Y&2ju2*|lp1Wy?`r zZ$bHf*V^z|Ht|{fls~OoyzaVNNj=JCC9`97XT=S+8SG42rK>=Axb!(qfHtOpMpJpU zysAuwJ6-b>`D@%1a$`mijP(BTV+MXTDnSpT+s(*hhFzaceN}qz-Yuh{-=7Cn7Rv>)5Uwi zE}$H`I9b&z*OO#ZKW%Twbc-g&``Ao0-Pzz}uu@%&VWCfLMBYb^5v6HeERZAkY_ChS zZ}5hTyVe}rZw}Q;3gTVls_{8;ub4s^vQM=q2Fw_Xmo<1Jc!qygbv>4o+}S4uNR(GqNVKZm^g#NRWpotZUf!S2T3@Z#Z z?v=-DQrbVEXH+{8rgj%KINp`qe*~n>?B9z#{^$B%LHMA7Z{XvtfwdGjNQ?C`2(YZS zM2*75t7KN)yy$uiWJBXLn;Lk%e{-)8RkpOg7z++BFICI#WApk0>gk; zbRF)c6j?ufD@+uAMKyW-wO8z5^tOx|d64?ZpGJ0|A{kcy63UkPP4tkwZd3{C4~<%k zx@YtjTJQg8^cbS`vf%2z^q`!5^-T8z%wt)y;_AfJV|=th=8P$&o^sNd0U$p;rV{m| zW9-rg$s1+68@zCdT0KTPOt>2CDENVeipSE9JTQjf2V{XMTr{;9H}jrSjGcqdUL5;i zWluDUwIk8O5XJC%hpEX0CI`{hjuM8h+m<8N5Oyn5P|}KVWt1!58n=)hm9^t@F8P>S z`7yLcD>+v9r?d1d&-J}B!ZR%6kwnAn@T``@1!OVms5pOi(t z{Op>0O!CVm*EdtPzujcS_XYCI4Ywp=0hnTCgr2p#Be?T*ft;#;$&JsOQN8=YDp=tB zVcBn5en%U_bLW`c%QQ&vVg|967Ru&nwK=_op&g6tC^WEmZ(aAeq8V%`P8ba!uxg{) z;I=$Ft(a_?KfMIywbK`(JUo3l%A02_C41BP89K^bm^lFDfLV2M1$t#tLp2s+j`;vB zfHDR0FSF9xYr+8tb_GedEdYMctduDlUp2KAJsM~r5U0?5KsDW?VO4cy^W9z-7M7+V zdWK|_1(^{+!Q=}u+m|!9awdS&KW_GHHzmnkw|1Z}{omg@o*GN^cp0o2`s1mBE~{Up z@YHD1j1G~P@aM<^8;J;%%xM&?8>nk8jn{QUM2gA~kLIt`R0pr?Sjw7-LQKKN!3L-& zwb4DAXidCCm%<&AqLy~bX4MKhF(LRLPopLM^H6~AV=Pj-dKXz z)H=AXsJ9M6*INhCTGy?*I=X`B=;|;9b=6F*I<+>?76{g%Q%GP?h!u*MCci-bQ+I?D zmCN(<3J^K+=X1Veu*tq8NOb*^%(Lfr!6u z=L_K>%y#pEa>kd0d7D>ND_j0?mM-jHduvG{bu z>Yzia6N<5fuE5+FfHzpl4qAS@sC2|?0+z)0;e#O`RB_Ol0eLIwvM?QLH_A%T43QyD z@Pr8U)?*Q5HQI)b7{oK=^t*S_(oMY=n^9P7P{lzGXf6mt6xUnIyygX1ivMZuiL%?0 zz9?^BQik$*r#!agZc3Lkm-a;Y%u<2!$EDYz9KLKY%14(q#BE@D=hEE?EnN?)*`K<+ znqc*b_vOLr%kTS?(*2A-&-gaRw=%wk@#h$SmhsJuKg0Obj6WqC@2_rrl8HB-b@Rta z90m9jiB-?J`9>030Ujl>2jCGBzX3c<{4b3EnTZ2i9R8-Q4*#D3!2cQm_zwbrfAKbl z{|Uw)XVw`aS7Qc(@>DO&G|Vc7Kbx>A!CJCvWhvb(Z(CV`Jn4m%A0uDeusT6*TxB7l z!-n_AgzlA9br%`jm@b{vfhkT0P{7NwI-4AXXhfP(!V+wz^9-{pw2KQp|Cw^~>h6xX zPAN`b(a1=enhsRXa>^QQT!-!J)oEZmzq$iu`s3vc7Td)VCnd5HtaQ$2%T;UpP=(yR zHjC!Svuhtfea$)_>aVQ3D*j<+n~py^6DBSgBAj>k=c$(oDasEIypxm%KU+lNpYY^l zt~YN}xaR2OAVpocnNsDE2V1uB?!vZNv%m5YwRX-Z-s#8_^QPq$5up^GrR3hg6q;+nh@M z{7>OtzxRcOloup^OlQWdUySat5@@K28~~wIy9d4y%2t4;(?-Nb zCstrb)@-h+h@Eg@#E$#OlIqhD^rk%isonS%dC)@ae8-K+!_ILa4=iyAx$t&9H9g5} zM1mgWMc(Z-#IAq3wSf(BuC?N7;CC}{Z+_jOkoeo{Zqb%U8rGG>8bO#j&{YMCFcB3D zrHtQT8y++0)P;=e9m0!z*=st1-sJ>(#;?E$E;zbSsMj%GzO>tpc?T(>h{l*iKF^ki zciRcrNqlU82c9l=8qh~Glr``x{b`@o5WVKV{`1a6|CDM^9la{Q+p_?sowPTDZj&GE zO_m$?7C5y+dO`laH#zBX(yE2^F^rAX69wI@lUT9pUN?VScG)-6zRhbc1I-vZ4s&5X z30?${rl#90en3y-*YdS}AJA8F)ff4+SZ@DfWgJpKL!YuZCI%;sXfVAlui5X#31ad7 zo+w-Pr=>iLgUevCsUN_bU@k$T2O^mc^D*qUQ zcj{5^L@fD8)_v)vEpo<}Sp~a7NZaLO(O%+Zy28DtXw*Bb!!Ne&e*7``62DireA%P_ zjUjB)Py2TuGb}LTc`NG3>(4B?Q=>XuM7?zW%(i)2W&*!gcjd#h=qPZHtokZF<{qGc zL^4dgNlyE!u%HrpU(4UntO=MPhsdwg2`w~7>1*JXx(63@{ZPL3Rb_|8&UCn|jZ*W3 zllkf)ejro6?ndv+;a?}S_eiR*?Zk`2Z-Q`rj`aq`T`6~cos{xGevx666O1p`RFoN}>(8cokB%eD1L}y0Edf$_Ha>@Bbq~ZaG{m-3JA_>VNPR8Y$g}YETY3 zRDyERp>mWv4y9&X640O{1^mO~c$;%{)5GG+R|y(T;9}SHz=zM~mp3j5_8SdLGV# zAQz8&BRBy69c^$7LIiz?bR0wk_m~)!!4c45+^II{V2<&i9fCPfm|Zl|_f95XF7G&2 zkhq+XGGov>w380)nyy2;Y&n+Ph(L}Tj8_Qv4TuYTs@KRg#Ot}D$tV7tFPPYrFH9aI z?)RZZ521WG+;$cleZmd!j8B9C1boO)I*Ye_2=P6{M?Mh^@TCulP7iU!C*nXm>l5(+ z%X35rfJbsf0%)6agxv`EN{&bY_PrdD32-n+_<(#pmq&|VbFi7L%ooe@ang$9E^#&o zhohCbVqva`5*81-8q8CO@rnCCFk18MRiQjvto*>q%~!!b;>5P#9m*)H2D2(Iy!v_3 zU?=^C?G`efas%7++UG?xV5ilvlW5xh>Z)p;7OEcm4 z<_uFF5~p zT)2R9Jjgg^gD^}NqyLL4Kl-(h@>icsgS2#~?0s@x8!dAyVrQ6-HHD$KohQ>l|KX&^ zp)|ptS}6&?r6=kx4iJ3Ej+iRg9I~uP=VrHJsPIS}+OM5#`kFCY6 z%bjj+`?s9Vq~zhe7_B#I898Q?Lu_{29qc&1PX6mZokH}LpaZ9QPPlY=+QsjZ#b;9J zCOP;_M|5@lnHw+x?>qHFXSyV6satWtY;VVF{uZazP8ZLW#bSReExR$)>=k4!u7%~x!&4a z39h&H1zI~WAG;jF zs2FqY-1LNK!!&I)XnTqJQMyWJRM?>qEC=Aku0UTS^zSiVtgdAwQWSY(L&L_%8?T7L zLyITIM#&3R3!^eBR{vp8K3|oZI-IG|L2$cCz1!w$om!j2YR{^jCgo7B`o*MiXfn)2 zc`@2k++r8}(Z%ysvx_olo!ac893QUB`eTjT17^+gB1h;8Htn|UY-flq&IQ{}q+#lJ z7j;a|1$iTDsK#N)reuJ&0Gb&LMQ(!Ms-bS`*zqQ9gA*8+hNsEPgOjEfxG9C!s`YNl zf@&>p!m?Cf2f=waHHW2JUdGGS@-P|*(|s031GELh={|sG!>K+g-4YXKi9H6+p4jYg zLq>K4F1W+^eJV8qrdp=zHAq+YM^GWa_6V9lg(@wQy3s4@%1FAtwU6zQ&h)sVaJ))a zHBribeogWzl4SzgYArK+hOTRo6w+kVLJl`1xhGzCHGugJWPU z+|oqw0`+b*%?Pqy2k>YN)dQT0p^+4?2E|f!dbxAkPsk~8(}S(5z#v|ZHG(k+-`Pb^&rReH67V(Dr|8yeWL2>ZF-Rhh`dkq}#-OAKq^OVtN$s52F<FQitx`$S%MeV4LJnF-C)SEnk*!I+c=zf(I zM`bCH<-(m5=DZz$h?OxT+HCz?t8R~@zLcT1$59^$WAT(pOH`+L*iWkY@zevf7vrfb zXh-8=aH;Y;0GX~Pcc4)K+dI&yWG|)>w^xn_B3W>a=r}vjKY>OQo}Y9EfJ^Js$XxLBqqZc{5t^wUOrl1B#AI4Rj|4U) zQ#k`KPLt^Kt_x_PdHK|#)Z-#20PPG8z)9D7vR&SC<8AA)Kszr* zo3Zb`gHvI&lU*k9O)5W&iaL(PUahmET@Sh&#N%)4gD2#TRkO3mM}yTvS+t4LRAn|L zv`Ir(+ONP(19+O6oDJR6)V6F&1^6%N?S4fR8#+9>DLNsJw%29*cd8 z&%w1nzr`C7lrqFe#XJp0r5gC0(*tC$02U2*_#B}JdvE_9xL!F3S%Xz^5#fJ(wl{Dola(c$79>Ld#MIn3ZQE1y}d!H(D>@A8N zdr!b412~(CwY>vh6eAqLXUeMo>{m}jKMdmqORnj zd)4r+@Uu=TvKzusg__w78dRta-DvC|zB;S=?lhdbs3*Ilt1ikc!Nc{F>eUhi*{9Tj z61p?^Ri~aVrR8dO589=|dQd!-s_i`y2WorJGWxSBEu&I^o61P3CwfvskX&ANi%#hg zbm4aT%8>XiIK^YCaB9G*(a?u=mzAhJ11Oyhwlz@YO{#M_t)X%1&2l`pKcm)HP$j^= z3Ph(2#d}c^&-Os3kEM9^J0s57YG^N7K{e{DUUWf&-n55m0)a}(V)*=0&=U!B^`iCR zL0^|CPHSP#;WcV~HP&KHU`I7A#qSAJZ9mEfxV0ZW29Q*P7~fwFuA#RPDmwPZ9z%20 zqye-R*nbazS^Ebv22w1!yJ2l@RwcFI@1~~I(!DfE{aj1!=}zUYgCVb0ch}MD@!b$- zaB%4+P7oh}x_&{vRgD`&eS5T$;1sSof@VAPC_7plXmXNAL30{#Str`e#cc_kulvR3 z`v%c;^cp)1JLH_fbQ?PRaWMHJx@&K3@S1A;aGIzV451;Qyf*{^shjFHl=`*nh6RO5 zx=batY$#n5sWpp6Xzi{}4W+-L(KEy7k(dFYX9YLbL-#=aaN4Z>(!7#xV8bjm+{M}l z8n2`{N({cy{P)Wb9&*&?5tNmvAA_7X6^#Aj!;r44qazSOQ&roMm}5|aD_y_u=(fW~ z(y-d+^s@`TgE+x1t7}SYpREryXa}B4cy{T5NgW+YS-pZ}T$jL&Qo(phuaF2w$B>9n z-FX9Y^c_@BxiKLTL585!i)V@oHZ^4b3alHv>3D{t>!D z-|i4JG?YU=?5L)WLN+u;tr|rs8Dp@17@mB^*4-}g>TVa;2-1jMK%CGBwQCes^jP)N zC`tyfM$&ckt=EIV}bWp3kW;RMhK854-x1 zvA~6!J86eR`eK0t-zz&|r!{Lsze#ZE74H(}G-2w78RMzTU>~w}Y6wb(-|ORxxHBj} zOiNha$w4&+QLP9&On+a_Kn>_pJvN?tLn;wBCoj~Gm_Qj0+9e!x_X&s|UUka^ ztY?o(n1~(56R4j^?ZP_uD$#+!*-Gv3Y2GL}JWw`Jk+?NM)u#K6#S!?dT=s= zLofB_Wa{s}1EK16)$Rt`6RQ4n15FQAC*4T>X^VR5MtZo7^EBPUaTXM(P3{SdoPvyk zz76bdz|N7J2je0jokT}-1V*YKE1YjURoK(WLn*3y8q%H=HGdi113mPs26e=t z2a;w|IK^mbh$C|ZTp&vo&Z2~#PUm<}@gfUthOf=h>F8}xK;IBJLPBAm1E*C6Z-Mau zVNgx8$iqXUuF(F0tHCU_Z5B>7p&{9=Mo4L`RG?k#Y)W=GbmpVyEFw5$EgM&@TJk(f zQWIt){q(50v+?7rJk|MTnon8kxtnPihKr}4+~Bj18GQCp-RDr>Mkpg~LGX6y zt1$?j(l!c=Phll(vI1lG#oA|~S`qfOpizowpHqV-T4j`03Gzg(%6{g7N&=jD@Lz1Q zVDPbB!Do?w>D(SX!LJ{gWm&uQg(|CpJ0DjIZ$aj=HL&d#Z1UO1nDuwUZFs9t&2#a+ zCb0K8F;$%or>)EtZL#LCidaQp}6 zJa&t{P}rL9T;e&(V`I`0$hqVg5cDU$Rc*PIx_3fv2oE=goD4m|@AOUwR}8**8ICk% z-A1|X(LVyDc3$VM5`jAUq(l^sl$OMrko4D2qpM&>RJD!)SiiP+| zVW~R25a)~ef#r*E#Kh^~q~d}83;B{XFg&Mw{0Vpkrj#-63+ z_&O5&;^%N|`m3694hhdtwc#8N%R>Vnouep*^mG4tgsgj1hYQHc76+cVfRu!qRT{Ac zXtIIW;rK~jvxJSt^y>qe9gcgfLHtgo80!)w-FP`^EWb1G6=No0Qoc1=k33J3vx_)J zMtf)5$ZxeYb|DyAZ!Q(u)-^6xW70M1zHl~(t_kc5XIsMXxipp`(+TX0Wyd4v1vNZ@ zWvXKx+4b~70QG_7?O^c5Oh4F(C-ZqSujO|!{#UG*6WiTb>rD~X^MP%NEV><=GDW?c z$C9H)PMI;MOw67=>GpdM<*~q_JabGfwN+xSSww9Ev*wzTbsTv;8RGccZi|>9&H}of HYsvougn{Be diff --git a/codecs/webp/dec/webp_dec.cpp b/codecs/webp/dec/webp_dec.cpp index ea6eed74..fe7fdd61 100644 --- a/codecs/webp/dec/webp_dec.cpp +++ b/codecs/webp/dec/webp_dec.cpp @@ -10,8 +10,8 @@ int version() { return WebPGetDecoderVersion(); } -const val Uint8ClampedArray = val::global("Uint8ClampedArray"); -const val ImageData = val::global("ImageData"); +thread_local const val Uint8ClampedArray = val::global("Uint8ClampedArray"); +thread_local const val ImageData = val::global("ImageData"); val decode(std::string buffer) { int width, height; diff --git a/codecs/webp/dec/webp_dec.js b/codecs/webp/dec/webp_dec.js index 9f842235..93739ca1 100644 --- a/codecs/webp/dec/webp_dec.js +++ b/codecs/webp/dec/webp_dec.js @@ -16,42 +16,42 @@ function ka(a,b,c){var e=F;if(0>1;for(var e=c+b/2;!(c>=e)&&G[c];)++c;c<<=1;if(32>1];if(0==f||c==b/2)return e;++c;e+=String.fromCharCode(f)}}function na(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var e=b;c=c<2*a.length?c/2:a.length;for(var f=0;f>1]=a.charCodeAt(f),b+=2;H[b>>1]=0;return b-e}function oa(a){return 2*a.length} function pa(a,b){for(var c=0,e="";!(c>=b/4);){var f=I[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e}function qa(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var e=b;c=e+c-4;for(var f=0;f=g){var n=a.charCodeAt(++f);g=65536+((g&1023)<<10)|n&1023}I[b>>2]=g;b+=4;if(b+4>c)break}I[b>>2]=0;return b-e} function ra(a){for(var b=0,c=0;c=e&&++c;b+=4}return b}var K,sa,F,H,G,I,L,ta,ua;function va(a){K=a;d.HEAP8=sa=new Int8Array(a);d.HEAP16=H=new Int16Array(a);d.HEAP32=I=new Int32Array(a);d.HEAPU8=F=new Uint8Array(a);d.HEAPU16=G=new Uint16Array(a);d.HEAPU32=L=new Uint32Array(a);d.HEAPF32=ta=new Float32Array(a);d.HEAPF64=ua=new Float64Array(a)}var wa=d.INITIAL_MEMORY||16777216;d.wasmMemory?E=d.wasmMemory:E=new WebAssembly.Memory({initial:wa/65536,maximum:32768}); -E&&(K=E.buffer);wa=K.byteLength;va(K);I[3260]=5256080;function M(a){for(;0=b?"_"+a:a} -function Ma(a,b){a=La(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}function Na(a){var b=Error,c=Ma(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c} -var Oa=void 0;function W(a){throw new Oa(a);}var Pa=void 0;function Qa(a,b){function c(k){k=b(k);if(k.length!==e.length)throw new Pa("Mismatched type converter count");for(var h=0;h>2])}function Xa(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a} -function Ya(a,b){switch(b){case 2:return function(c){return this.fromWireType(ta[c>>2])};case 3:return function(c){return this.fromWireType(ua[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function Za(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Ma(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} -function $a(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function ab(a,b){var c=d;if(void 0===c[a].I){var e=c[a];c[a]=function(){c[a].I.hasOwnProperty(arguments.length)||W("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].I+")!");return c[a].I[arguments.length].apply(this,arguments)};c[a].I=[];c[a].I[e.N]=e}} -function bb(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].I&&void 0!==d[a].I[c])&&W("Cannot register public name '"+a+"' twice"),ab(a,a),d.hasOwnProperty(c)&&W("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].I[c]=b):(d[a]=b,void 0!==c&&(d[a].S=c))}function cb(a,b){for(var c=[],e=0;e>2)+e]);return c} -function db(a,b){a=S(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return G[e>>1]};case 2:return c?function(e){return I[e>>2]}:function(e){return L[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var jb={}; -function kb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function lb(a,b){var c=U[a];void 0===c&&W(b+" has unknown type "+fb(a));return c}for(var mb={},nb=Array(256),ob=0;256>ob;++ob)nb[ob]=String.fromCharCode(ob);Ka=nb;Oa=d.BindingError=Na("BindingError");Pa=d.InternalError=Na("InternalError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},J:null})},p:function(a,b){b=S(b);X(a,{name:b,fromWireType:function(c){var e=Y[c].value; -Sa(c);return e},toWireType:function(c,e){return Va(e)},argPackAdvance:8,readValueFromPointer:Wa,J:null})},h:function(a,b,c){c=Ja(c);b=S(b);X(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+Xa(f)+'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:Ya(b,c),J:null})},f:function(a,b,c,e,f,g){var n=cb(b,c);a=S(a);f=db(e,f);bb(a,function(){hb("Cannot call "+a+" due to unbound types", -n)},b-1);Qa(n,function(k){var h=[k[0],null].concat(k.slice(1)),p=k=a,q=f,m=h.length;2>m&&W("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==h[1]&&!1,y=!1,l=1;l>>k}}var h=-1!=b.indexOf("unsigned");X(a,{name:b,fromWireType:g,toWireType:function(p,q){if("number"!==typeof q&&"boolean"!==typeof q)throw new TypeError('Cannot convert "'+Xa(q)+'" to '+this.name);if(qf)throw new TypeError('Passing a number "'+Xa(q)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return h?q>>>0:q|0},argPackAdvance:8,readValueFromPointer:ib(b, -n,0!==e),J:null})},a:function(a,b,c){function e(g){g>>=2;var n=L;return new f(K,n[g+1],n[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=S(c);X(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{P:!0})},e:function(a,b){b=S(b);var c="std::string"===b;X(a,{name:b,fromWireType:function(e){var f=L[e>>2];if(c)for(var g=e+4,n=0;n<=f;++n){var k=e+4+n;if(0==F[k]||n==f){if(g){var h=g;var p=F,q=h+(k-g);for(g=h;p[g]&&!(g>=q);)++g; -if(16m?q+=String.fromCharCode(m):(m-=65536,q+=String.fromCharCode(55296|m>>10,56320|m&1023))}}else q+=String.fromCharCode(m)}h=q}}else h="";if(void 0===l)var l=h;else l+=String.fromCharCode(0),l+=h;g=k+1}}else{l=Array(f);for(n=0;n=m&&(m=65536+((m&1023)<<10)|f.charCodeAt(++q)&1023);127>=m?++p:p=2047>=m?p+2:65535>=m?p+3:p+4}return p}:function(){return f.length})(),k=pb(4+n+1);L[k>> -2]=n;if(c&&g)ka(f,k+4,n+1);else if(g)for(g=0;g>2],q= -n(),m,r=h+4,y=0;y<=p;++y){var l=h+4+y*b;if(0==q[l>>k]||y==p)r=e(r,l-r),void 0===m?m=r:(m+=String.fromCharCode(0),m+=r),r=l+b}Z(h);return m},toWireType:function(h,p){"string"!==typeof p&&W("Cannot pass non-string to C++ string type "+c);var q=g(p),m=pb(4+q+b);L[m>>2]=q>>k;f(p,m+4,q+b);null!==h&&h.push(Z,m);return m},argPackAdvance:8,readValueFromPointer:Wa,J:function(h){Z(h)}})},j:function(a,b){b=S(b);X(a,{R:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},q:Sa,r:function(a){if(0=== -a)return Va(kb());var b=jb[a];a=void 0===b?S(a):b;return Va(kb()[a])},m:function(a){4>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+ -g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",n+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(lb,d,Va);mb[b]=f}return f(a,c,e)},o:function(){B()},n:function(a,b,c){F.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=F.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>> -16);va(E.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},memory:E,table:ha}; -(function(){function a(f){d.asm=f.exports;N--;d.monitorRunDependencies&&d.monitorRunDependencies(N);0==N&&(null!==Ca&&(clearInterval(Ca),Ca=null),O&&(f=O,O=null,f()))}function b(f){a(f.instance)}function c(f){return Ha().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){C("failed to asynchronously prepare wasm: "+g);B(g)})}var e={a:qb};N++;d.monitorRunDependencies&&d.monitorRunDependencies(N);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return C("Module.instantiateWasm callback failed with error: "+ -f),!1}(function(){if(D||"function"!==typeof WebAssembly.instantiateStreaming||Ea()||Da("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){C("wasm streaming compile failed: "+g);C("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); -var Ia=d.___wasm_call_ctors=function(){return(Ia=d.___wasm_call_ctors=d.asm.s).apply(null,arguments)},pb=d._malloc=function(){return(pb=d._malloc=d.asm.t).apply(null,arguments)},Z=d._free=function(){return(Z=d._free=d.asm.u).apply(null,arguments)},gb=d.___getTypeName=function(){return(gb=d.___getTypeName=d.asm.v).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.w).apply(null,arguments)}; -d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.x).apply(null,arguments)};d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.y).apply(null,arguments)};d.dynCall_vii=function(){return(d.dynCall_vii=d.asm.z).apply(null,arguments)};d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.A).apply(null,arguments)};d.dynCall_i=function(){return(d.dynCall_i=d.asm.B).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.C).apply(null,arguments)}; -d.dynCall_iiiiiii=function(){return(d.dynCall_iiiiiii=d.asm.D).apply(null,arguments)};d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.E).apply(null,arguments)};d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.F).apply(null,arguments)};d.dynCall_viiiiiiiii=function(){return(d.dynCall_viiiiiiiii=d.asm.G).apply(null,arguments)};d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.H).apply(null,arguments)};var rb;O=function sb(){rb||tb();rb||(O=sb)}; -function tb(){function a(){if(!rb&&(rb=!0,d.calledRun=!0,!ia)){M(ya);M(za);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Aa.unshift(b)}M(Aa)}}if(!(0=b?"_"+a:a} +function Na(a,b){a=Ma(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}function Oa(a){var b=Error,c=Na(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c} +var Pa=void 0;function W(a){throw new Pa(a);}var Qa=void 0;function Ra(a,b){function c(k){k=b(k);if(k.length!==e.length)throw new Qa("Mismatched type converter count");for(var h=0;h>2])}function Ya(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a} +function Za(a,b){switch(b){case 2:return function(c){return this.fromWireType(ta[c>>2])};case 3:return function(c){return this.fromWireType(ua[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function $a(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Na(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} +function ab(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function bb(a,b){var c=d;if(void 0===c[a].J){var e=c[a];c[a]=function(){c[a].J.hasOwnProperty(arguments.length)||W("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].J+")!");return c[a].J[arguments.length].apply(this,arguments)};c[a].J=[];c[a].J[e.P]=e}} +function cb(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].J&&void 0!==d[a].J[c])&&W("Cannot register public name '"+a+"' twice"),bb(a,a),d.hasOwnProperty(c)&&W("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].J[c]=b):(d[a]=b,void 0!==c&&(d[a].T=c))}function db(a,b){for(var c=[],e=0;e>2)+e]);return c} +function eb(a,b){a=S(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return G[e>>1]};case 2:return c?function(e){return I[e>>2]}:function(e){return L[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var kb={}; +function lb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function mb(a,b){var c=U[a];void 0===c&&W(b+" has unknown type "+gb(a));return c}for(var nb={},ob=Array(256),pb=0;256>pb;++pb)ob[pb]=String.fromCharCode(pb);La=ob;Pa=d.BindingError=Oa("BindingError");Qa=d.InternalError=Oa("InternalError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},K:null})},r:function(a,b){b=S(b);X(a,{name:b, +fromWireType:function(c){var e=Y[c].value;Va(c);return e},toWireType:function(c,e){return Wa(e)},argPackAdvance:8,readValueFromPointer:Xa,K:null})},g:function(a,b,c){c=Ka(c);b=S(b);X(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+Ya(f)+'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:Za(b,c),K:null})},e:function(a,b,c,e,f,g){var n=db(b,c);a=S(a);f=eb(e,f);cb(a,function(){ib("Cannot call "+ +a+" due to unbound types",n)},b-1);Ra(n,function(k){var h=[k[0],null].concat(k.slice(1)),p=k=a,q=f,m=h.length;2>m&&W("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==h[1]&&!1,y=!1,l=1;l>>k}}var h=-1!=b.indexOf("unsigned");X(a,{name:b,fromWireType:g,toWireType:function(p,q){if("number"!==typeof q&&"boolean"!==typeof q)throw new TypeError('Cannot convert "'+Ya(q)+'" to '+this.name);if(qf)throw new TypeError('Passing a number "'+Ya(q)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+ +e+", "+f+"]!");return h?q>>>0:q|0},argPackAdvance:8,readValueFromPointer:jb(b,n,0!==e),K:null})},a:function(a,b,c){function e(g){g>>=2;var n=L;return new f(K,n[g+1],n[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=S(c);X(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{R:!0})},h:function(a,b){b=S(b);var c="std::string"===b;X(a,{name:b,fromWireType:function(e){var f=L[e>>2];if(c)for(var g=e+4,n=0;n<=f;++n){var k=e+4+n; +if(0==F[k]||n==f){if(g){var h=g;var p=F,q=h+(k-g);for(g=h;p[g]&&!(g>=q);)++g;if(16m?q+=String.fromCharCode(m):(m-=65536,q+=String.fromCharCode(55296|m>>10,56320|m&1023))}}else q+=String.fromCharCode(m)}h=q}}else h="";if(void 0===l)var l=h;else l+=String.fromCharCode(0), +l+=h;g=k+1}}else{l=Array(f);for(n=0;n=m&&(m=65536+((m&1023)<<10)|f.charCodeAt(++q)&1023);127>=m?++p:p=2047>=m?p+ +2:65535>=m?p+3:p+4}return p}:function(){return f.length})(),k=qb(4+n+1);L[k>>2]=n;if(c&&g)ka(f,k+4,n+1);else if(g)for(g=0;g>2],q=n(),m,r=h+4,y=0;y<=p;++y){var l=h+4+y*b;if(0==q[l>>k]||y==p)r=e(r,l-r),void 0===m?m=r:(m+=String.fromCharCode(0),m+=r),r=l+b}Z(h);return m},toWireType:function(h,p){"string"!==typeof p&&W("Cannot pass non-string to C++ string type "+c);var q=g(p),m=qb(4+q+b);L[m>>2]=q>>k;f(p,m+4,q+b);null!==h&&h.push(Z,m);return m},argPackAdvance:8,readValueFromPointer:Xa,K:function(h){Z(h)}})},k:function(a,b){b=S(b);X(a,{S:!0,name:b,argPackAdvance:0,fromWireType:function(){}, +toWireType:function(){}})},o:Va,s:function(a){if(0===a)return Wa(lb());var b=kb[a];a=void 0===b?S(a):b;return Wa(lb()[a])},n:function(a){4>> 2) + "+g+'], "parameter '+g+ +'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",n+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(mb,d,Wa);nb[b]=f}return f(a,c,e)},q:function(){B()},p:function(a,b,c){F.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=F.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);va(E.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},memory:E,table:ha}; +(function(){function a(f){d.asm=f.exports;N--;d.monitorRunDependencies&&d.monitorRunDependencies(N);0==N&&(null!==Da&&(clearInterval(Da),Da=null),O&&(f=O,O=null,f()))}function b(f){a(f.instance)}function c(f){return Ia().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){C("failed to asynchronously prepare wasm: "+g);B(g)})}var e={a:rb};N++;d.monitorRunDependencies&&d.monitorRunDependencies(N);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return C("Module.instantiateWasm callback failed with error: "+ +f),!1}(function(){if(D||"function"!==typeof WebAssembly.instantiateStreaming||Fa()||Ea("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){C("wasm streaming compile failed: "+g);C("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); +var Ja=d.___wasm_call_ctors=function(){return(Ja=d.___wasm_call_ctors=d.asm.t).apply(null,arguments)},qb=d._malloc=function(){return(qb=d._malloc=d.asm.u).apply(null,arguments)},Z=d._free=function(){return(Z=d._free=d.asm.v).apply(null,arguments)},hb=d.___getTypeName=function(){return(hb=d.___getTypeName=d.asm.w).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.x).apply(null,arguments)}; +d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.y).apply(null,arguments)};d.dynCall_vii=function(){return(d.dynCall_vii=d.asm.z).apply(null,arguments)};d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.A).apply(null,arguments)};d.dynCall_i=function(){return(d.dynCall_i=d.asm.B).apply(null,arguments)};d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.C).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.D).apply(null,arguments)}; +d.dynCall_iiiiiii=function(){return(d.dynCall_iiiiiii=d.asm.E).apply(null,arguments)};d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.F).apply(null,arguments)};d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.G).apply(null,arguments)};d.dynCall_viiiiiiiii=function(){return(d.dynCall_viiiiiiiii=d.asm.H).apply(null,arguments)};d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.I).apply(null,arguments)};var sb;O=function tb(){sb||ub();sb||(O=tb)}; +function ub(){function a(){if(!sb&&(sb=!0,d.calledRun=!0,!ia)){M(ya);M(za);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Ba.unshift(b)}M(Ba)}}if(!(0N1p7%D-413J|{=Bc-Ys}S*!MM%il6y!RhdxAw*B}h(q-IFDR#}!e&l^wu zU@U&IYB43yEp&_KK{-luqa3a2C~tKzw`oy;Z`XV%$2gd=nhWqa%|ID)=*K&l3a52~ z!#h#a&^pN}?{Fw5YhGZcIFwTrjeEjv6DCc$OK_0l_0RNE+?jIPx}+BE^0{?48KfBo z3Eky#kx$bM5#{j+UFc*8g(8swT>Dj#=E68yjG?754@xzj*We@T_v1)Zj8?PeXNJhh_A#I`UhR4ALu-NPv_`6`j*bp89Ghh(AV@8?a+_WF@2l=ceU5&gK3kuqSL;{BAL5F*EPfZi#fV?T&tlY1;-dIb ze8v~`gsM~G8*x%RMW2X|#Yf_}_)vTxj*0ihd*Y}#B39EHIw1Zg-W2=AKJkWlUF;Ei z#ZK{>cvb8YyTvx~ve+uZ;w7;~Y!>=@>SR@uIu$roAo_IjqFXo7{`J(I(suuT& zva2*p%ob5Qml&t?wK3uQjoohQ&E3oc)G!H5G(yLU{ zEZx#9vV`nes!^mOdvHhDxv0l~Y!wn*!fX>^M9scLlk2+R7iCKG9=1Mx3OX}eV`tC; z8oyCT;TPA&xFGWyXPWU^q{-5yW$E@+D%JG*$joqAY#X8!p3x{Xu|$2>XaeUImQoy#E9^r_{BmJQOkTicQANm){g9uBFBRg<<+CU%?+^b{2MUq;dWc?wKhV0XetI)(3iu#FH z1aBeQc}?VKHshAQtwev=5$NM__X%BzXInb+}KgzVCf+F37r1&PQ z)%MA@*aOrog|vK@NAA}BZs1$SxGZ-JMe7ce227FPtr%MJfU@TPBEQ3|SiMeLLj^`V zV4_2{tSr09YXmajrGr=9w#78nw?giu$T)nuEI_;1XAgk5L+$1?o@d(yD8u$#lH*;u+*>dLtTbIA!2s)=D6V^O+}1GYTu7 zqnWnWllygDn*X8zUvD!_?F7kZaQ0PCwiSX_7$G3cS~U)8T8XBG54PSU=zTuYHh~wk zmGmC3Xj|;mTLQk^wpr{^bb-BrYFE2LnAy>AQM*O{S!poZl@uCeC#9 zFetV+!r8d7TRuI;bGj8#N_cy>21Ez>K=;{H5bk~5TcUfEee7e+zW6py2>vwblTQh` zM#$Adt`hP|A)gR(rI0Ixd|b%oLM{{bCa?X;JDT*^>ps-%GYaA%y>j$eS;KRC8qnoczWV`>y> zuqc87v4T`#$YwmSe`W@Hfi5=#D{P$8c#TUQ<~9A}>0PJ%d-#?9aLHM`V?Y;_mj`r2 zSvv4`>d$Ki-bAPQ(!ixrY7ennjpS|N2X7c8aQMHtv9M*5vf22{)v%|Q7;o#-LJ~-I zkbqQY%2SKvj)VL0(}Q22CwcHqt?3C~c++~y=ECxHTFKX!2WbW0Sw4b}^6~QK*oCX* zML66=L;gne6#w>@o>ahHhlV?L((Kizv|LS7_6m>&bT8nqBRc-c)-f za94c_=c&W-FGE|wjx`^aY2%a{APhBu*>W_|CQD26YdDIUY#-2KG$}QlWOHo9hv@1A zp|C7b0X>DypEN9=Hu0)q8T1_Q8rGJ+=3j^TJAWY>I@TPvf#mh|;bD`wy>XUE>ro35lNKF?vaxk zrA7gwt=KKIo0X&1)e@?FpTG+QMrhTEiJa8#+OFj7`0J_2-sP91K%{dRc#fkb^|XN z9i;Dg=jasrmOmKXjy~mvx0c6zrbBHgpCFO!!c%XZlwJvy3ks(nO`eAzL2aesZ1?y4 z$F0B6r{SM(YeJOB$zw9J6H`_D*Rd9bEQj>_SX-|QSuqm&W*JJEZQb6}6w5nu%*a5c zvvkME?{b2MpjeFT1SDI*PRimY@|R<-r%Emy+k)2fu(8K6PSLn~shD3H7f60aNvnb} z5frzoVl23l zbU(?L@L$b3FJ)(}fv%$sQP-bTk7L@v$iX$|yp$4!vxm9`Ys76Q_DU@cxJ$&wM)0;V ziq|>jD2B+BykcS&eZo5@=FrD{cH$8Fi0w(85pT|#l$DSHNrlW+OOYP=STdJip47Q< zMhtwaWte`)B1jPGI98y6*$MfTUT1L99r-Z0J?=P-?1uBEjHT{eGo>Biqf_D&x;mY7n9=o|;eHc<}TQh zopJd}Hw?rguE-L_!+Ktweg(njl{+5<&B7VYQHE#qL3wpX2IiJ=*KL#nB}Z>wbgtA| z!O`diFt7OQee@+~-903(dmt(;6wvJp!d@XPz%q>&+hx;*n%5ZrQ4G0LU)WW_16*bm@6D6SvpdJaP!o%Fb7oZ%d|yeG72iGJN|X0s+E_%Fn!PUbIaHNu{z%RV zgl1mghe5ubH&hiujE|~9KGnJ31M|qQ-&;x=|8#GY#tF`;2?ijGW9(J97IZ@I$lADM zIuEVRp!D#J>PAHAY|TzK(lH{ppPj+`XAO&>(B5u#KGAhN?!N0#ZoaPs<(d21XI3*Cr4_qRWgNtesB*W)9^#pL`mV|#ghfp z>FFh1v7X;88AKbn6Q|JAJcRE?j(?2Dv8$%HFCH`3Y_Dv=LuwvRPF5MiYq3snPZ4~n zwl~(~4v&^6Wh$45bB%#5p$gsBLo$;K9xJ0vKKCeWz+-U+P?m$Tc=BU;yldG|u3DOt z)bxKdBRpve%4Gg{X^@)oJxlYr>C(@6!ip*U$g&)6vna^ACMGXL>} zn=FUa3a?r>T7=s_bCGz>x^BGrsitbAKC~6Eyx26QZ#_0>`8DRgeBs4p>Z2${pAf(LVtQg96`m=I z`gDDG$mTZ4S^VLy29wNUYfE?I(Fo8JcvW3mhp(vvmem2vBS1XQ4;S~3cj7dqne#m| zzSgehY70=YMaV4Go^&fi^;#^H-Eq#jP-+=psy%@dENoG!%oFYqAm$?^<2ib3vlJW* zg!c+n4OE)bsl8UU_Srgt;(5nb+z9iRTPHV;cg&Xxm4DJ?q!MA=rWi5$BW_-^xs~yF zo$M>>fR%NVm>G`YPTP}HPY8$u8-`RYC{~M}$`C8CN%!#dmk$b_ynQ6@b5)uo2lJ8b zRmk=R>}ah}$fkgLVMiwAg#W%{8sXD*XA*&6*lY9n*L zcL#)Q#WQ!O1HF8AyS!F7(&G9^pkWCZNEmJvCz>M%j0Isc6s z8o<7N#pVFhrxqT@egOB}*Ewongh+zuk$o?D2bu-&PPUijzH}b5KgJw*jea0k?eE&5 z19k&<6Sy6M0tDO$^a-@~{A*pp#ZEy1}N8&QxMjfsWswekR0A7*= z+*E{OJwI}!DXrseNAeIcpFT2#mU8E#{org>l6*o71zb>e7qV#Ne7xqUpO*2yqq$VW z7mp@#+M6kbjEEPj0A0cqkRu#aj?g7<1G@@p&8LV|XpY8!+g_L>vpM;_tmy1Cb=KS} zx9rGW-+PHV@~`h@r)Mia1lz&)x1?srU}T&; zb-!t^0EVGi5s0eKIlWm#V|$)^JQI_kEopFzl0+`^j?Wi_OUwgBf7<}emE5& zSl;n+IKc;wKT4}P?L;TQLr-)>fVb?#$bz-VRB#O%6gMN%Ruhd@a}^RnDptI>4&xW< zzE#Kq4u0fE9@P7zp{Wzp%`9v~P*j!(X%p62rT@6d@t!F2_Y9hW9}< zREl`+sj>lMp%K8j>>APAS+MGRLukaUp-T};MTiI=yhsV%<1JTDYzSgvVATC#AgbpS zu#tsh5oNiMb|rny~D)xaJPvEAXHKDfL`?KMc5Ps&f=S4{d=Bk1;%v@za zxN`^RIQ4~WYCGi1O4*U@s5r{Wc?8msMPH`n{+SH9u?&g}UvN1_2+_bR5i14FQd!cm zFWbm-b$2`}do|>@oc2`<>7z1YpY1yYARsyITLePUWoT1KmW}I+QCnp zPKtXak}s=-SlN|;7m9Y^bUTblXHsY@r=7`33gdN5391H$!HHIdlrQn{Gi#ggAj=DV z!3-)w0qBk8s*u}t33!4@Ydr7+}LDtXHH%_)Z;|9*Hb9$Pd=5;d;UTlft_<{%$Zek~_}3rXyN&)$UP zu(|2^$>^!(d=?D*w(}DKH~V2`dZ}L>U9&>n+@%Ggx?2spPq93k>~*N}?jM%X>*4YX zaYTE0{Es)J##ynru8YRMBz5X>ayJ>ML_w_MKL#mb$;F2Y95JvV+aVPK7{WB5pFy$L zfgloAOWF;UIq+f=6L`Y9bg{d%;8E@4WnU| zoJ^*hfN4?7fI2?5<`+67j^uaHLg(>GBd}Y74K7s`@j)H4tIKY}Q({T+M|LR}V$ZSgz)FTGfK*Y6yOv&9YY^47FVj zjlEvMgj+x-&<)w1TGj}QSH=ejiKS1*D~nsH0zXk{|Hu`8Bp}$G{YQB$;#;gCX02Hs zWP=EYzx$(2q9c=fnDW|YC}OKT@_lY|H4CpjUOb}Ex zuvSTxrC15+O{9s=O|(1_F|qP^OIRiNO&zvt3}ql=cdMr!NLItgC81(3x(Qu9Df8EsMkx4 z<)QeYU}zj^Q`-mcFh1}n7xY+lW&c}Ob_Cg_URR}Bmk6?JeSseGP)Zs49~o)81-*!C z0^Jfpj>3?CPHR*IIU2}o(>mj!toRb}A~L~ggxyxNcFB^OR4+B7k{a7f@qvJ*q_5Z9 zMvYd#&KrNp?C>fq4&o6Mh!?e3m*T-)?*a1HLW7+q=VBP1*NaFS2o?HTS`A*r6O<&_ zPFr>UrzAstlm$ut>Z7Ky82H~>+th6KQ6{}xbJ#~M>2S^OKI(++EsdhJHK(I!c-dii zCB&)9@C0y~qTU@;;9|(Lh_EmP? zSbg>Sa**HXwKPsvE5EKuji!v^e`ox%mQfikfO-?+b#=`LqSso_^ z%+*%9<&m17qN#KIxkz{xAax`+N0Qc>-|_#BG;6Nj^=x6U^xDhd&}|_Nd#(Z=_1X`6 eZ5?jXkZZTijiI&8$W_y_7!M(?ZNrM`LGj-Na$oQO delta 9966 zcmai4349er(x2*?cTSGZL2k&r$B~ynAdnD9xH2K(5akktU0qN_g~ugqL|MfIgay=9 zw19ws1TQ>r2|N%{TtL+Iwis=b?1={mYj^PruexzS#)>1Zc9m>V<~;2SkR+M6^V+DQ(6vO^hmdZ##; zsm`crng*Kbnt^tP=0$t6Lo?IC&r&q*X*W!pF>8*XI#E|AlIS{D&2T^5`Cl*E}ANOLOs4)TPw$ z87`f4BUShLbe}GSaC;P`PNZpCqE9zS2LL`E!$agEBMyI@BvNVq-V){psG8KTW+5q{1)W&^>PTbGhAKuLHR?w;BC;HO=KR3C!ZM*!4{07vtJS=2AJvk*^wZtK z^bC{qN9~+WHCj2{q9xO8?LI-bYKw?&(|#nHqy0eiC+&ZTZ0&oZO6?`0{@MkiD(yR> zYVBL10opf21GTS+25INXH(!uulR1yR)X(aF*H7y&(O!L0o%k1hO<&OG#82o6@&BL? z=?rbt579wA!h7_T+6DSu`h0z!UZ-CYzle+CXYrHxm-tcqApS>uFTN39iwR$e^WvQN zK&+wF^boD0l~hkFXgMt-reoqmaa24)N5uQ$J#kpPD-MZ+;(*vM_K9~y1Fff5#9r~T z*dum}UE*)zMe&l@E}j?9i5=nv5fQz&h(@tV{8c1Vn`eSV^g^b7eHKWLnYEHU=D>2e-o{+;3@DRC)+LXo_LzY>-6`-%Cq z=t0>rb5OaaS-PcJWC=O2T%+iV9KcnwU+sYZ+AAbR3A0CZAl~dBX=W3Pps-!DXGO;e zTd%RtMEm3bTUU58yA#!d8sh>+)2M)Gn%7QLM0hjouURAo+qO1SwJ4dT%UnyhFHyOs zw?wv%3{2`ll)<&hZPG$Pnu5h>GCkWYAiY+v0Q@vZlDE;{d2-4mdW{dIR8bD6r}i*k z7ja}-F3XT_M1Gh0H03@))$!5U-12cUFxDbDLJ=w80teH2{y#L|@tm}Q^c?R=YfbAT zr_-`BTf4zgCYwHoaj8f(;~dEDH}l!W8#t|~vTJH}JXtO~E{w(-#yWTF@tTQg1thRZ zrdAsjwieJFL2N^&@{*zu?cyy(cHnP1hy+B{Z7LN;6PbIXMH}w~Z5F3?wP-qb?^;gD zd~??!l*T)|mc|zbT^3CZ2e6CsWaLs;oX^heD;_hf$Rhip`9c3FXB`GPaY?_ne*Z zsE*ASFc$+#*v_-cMvZ)$f`%LkW!BZz-8OR;0Pk#=+)UWWNZVVZ5b{@qteFMtF);zm z$fmH;=|F6qY5FmHC(X3AL0ny4LaF?x@+YY$x9t_67r44taB$Cn-?aQ8kz-;hcxI^0 z^~oOCO}tqOY56RV+@S~Dz!${3EO$J`>CPYxm~H{L8c@KEz48Lx0?uGH)a&#mDlpCg z(;TWFdlj^Mkw6B#bnuF84=i6jr^y#6Iu8%%9i-=Za_`{~_l4ehG?o9+y9jMcpG9a_ z_bJON2#QisWVx#?QEhoFIc(M}7%28)JD=|}7FIT}Z(Foe`gTo9hUI9b5X5;b7A8O6 zcSY?p0>qb_*=mnSK8amc!)+@J`!d2nn6Wbw(zH@dGm}8*P-ym-n#{NHvCR&sPjA0{HD{{JW9ST zVt&&Z6Px3$|Au^1n7`u>cjWTnVP~ifZyR2T_Q&CU(3Xz4k%scx5m(Va_`--4k>w*t z3iy<>qq=rXQ?46-g&H>45>ssbmaqg;9Wfx)Y4gO8Ts8WNY-Ip8Sz2~LgV}4cJgCKM zG69E4;p&+rihF2Ie#;MPrbzjshCX5>sJ&@+oe- zx(hwYXRdBd8~B&2d(s*1aZRA#Ns;J80Oe!l6)oX7oI&Up9a@VHz={;RrR=9a*I$#L zbXu4g2)btM!E0Jkm_NPd3~l7s|Ij6?73?~_Y0t1jwxRaVTO(U>(zuHJX^v^AeaC6S z!}MS!Nr{@-)me<1u4W?~ei=_1cR5zRZQP(MW5-W9BoI4i6z8HV;E)KZV-XT1(MOTo zgN;z9Z?}5N*i*B6s`G~MT3d=)maGuPJ6Q){s@1Wb(uW(Mi$KDG( zS6w?J+3EE}$qoC0Lce-#hgO+!2KHFK9%H228$vR3%XNrpne3m?wl=+7D^>d>0rUWS zNOe{Vqh0I?%XjoBKiz&4qnzm>*4xe4PhwcLHUrTahArRHgO1O#ggq}mI!Kdiu=YYN z)Fj=iSO-aOdX}0~Zsx5MM#D4uuP@|&*I()1pi&I%vK+x{uJ0Cmg}z4c(d$F>DbvJE z`h>G5meB`1dg7S)6FN+Yx)3ChHt(1?BWE)f7`Fo>mirpet&+P=9`{rn3*U=-1JIu_l22 z+*__j|LwOdqC(bZhtW=-U0Pg-`7x)3D6iHP2A;mlmOT|}m+&-n{z9+;DdcE_9{xvjFIiwilfw0SD$ z%`00)+WzSV$^;RZcrj@_tWd#m;0~DA-+mXJ=Jt1tO{og{v%^8%{z}-Zg#{QJyY!A5 zsRRFThmE#uZV>G?b9?wZK>cY*L}W3qo!cAwK0Y@Oeox#v5d=5gS%P-Wow+HBEU8p< zvVT4SvET&dHs0s->a`)g*tGf2wMAT1J2pwhSI4pqwcaGR#uw_!x#zrW3%NUXISHxA zGlD$uT5z91h_4t1b=iea)mkH}g05^i7aGI1xRl~_sq`oBaMJjYxW=duwU%=@apccY zQ(5sPnMmw}qC%%#cQPjCRvuQ@6$_eI7w!%*Dc~_JkCSOfwdj)Bu-KTy@*2}*L2gxA zIXXsfWZArAqHOMcR|eYM^KWm43;$fi3-7u_)x2=Q0JLu}C`GF;?1i@9!q%Ys!@_V; zGkf`a(`@CO*icX{U4;yl)`gr<;>?FQm(3q8?ABt6V}L!2=AbZ}wMknXVA`+&+zOe z6- zaChR6P{60cf>I=6XI{XCqtN0Nex~IscA(`ef`5xwrhD!hQerm-!-Ys&#bTT?FukP7 z5}Ru5#cP%4(9$M#}FJ<&eie@{m$;h*lY(B|CRnm_-`cc|S@ z-IoP@{p-G6NFsOKUq_S{DSu$5fT3*U{^*xY7pF3+v+%R+qa(jp}Y#UFL$Xk`O2cLEzP8oW3TN>sQUm)krp*BO`VjLTKyxNhBB0ukwohGLJX2_`7TU(5Z@9%_(h#YUL1~*O;bX7SK6ia}Hg`+Z)@XJ=vI^b=fR)Do!CR)0q-1WAhGH zq+)QGcQ-nZ4;xcxFpt~Z17*U@E&UB9*@h`nZ7gd7aETDbtY`x2qre~xQIxBi@DDWs ztDAr|Q6QCXelDIjL`sIGIGL8JES7j=O3a-WYIozs7Gbkod)Tdf)6OKArIQF0!u(`P zxwaMuSJ+ zaaABYh&wVZ<=eWRp@KjDLZV-di6@e11U9~yhDYNQ# zRPdP{ccQQw|3Y_8*i*o3UuaDoBQL&i3*pgqXF8#8@JoyNwU_hFj}$wp>KTpa{*C$I zO9AT2-@VigZHK>&Wx1b6Tgo7&I?8+l|m4W!)T{%g(9fD}s zTthwF=-aW&3VexjCA#NG^pIMA@gMJ>NB+Gll_EX&+(-P=%a#6Nj-$pIpU4CE*3&TF zysvfpog}XZTik0QP1KrT6kJg_wt~}pOUz-o9)rf=>W6WgSNi#fN7+fRyXloJG@P?u zEi#8U6AkClulC1P(yCW;d-lQ>R7_FwD;?K_!?u`h&zrx%J5{Q#GsyGFa-&h5E&90e zP*(20g>!V)I58Lb@arlXxaAFy+Jb%~U%&dXK@%hIy?IhEE?c#ZDE4Wev|f z(47wPh65dNRk`m#x88>dk~@8`>BvBp!Ds;#$12+=`38Cs7Ga@sF9i`%NdO(CZ_s)F zfwn@fSkkfs4y_3OpWiC_u}3+M&YGGTb~`22w$F zyJXl)Nm-fOe1u5l=qlZD+xK*m`TWzN+_?N~bpqY0YV6G&-rYjI`PjP!Ir%F2aXDlP za$DZP@d!xvpVheB!{K25ufuHrK%6*LQuyrT!SUEB=oQ?aIlMV5KOQ9t4yd{mwbx;= z!`7K>_IoFAU32C8Lx|r!G7A;|fTLp&0UtiPjMi}RvA%$39qWS(u<_Wn^e`tKPtQOu z22~ZSMZ_sZItiCR?pAR;fYN5d@!#W?^rhn&G=twizRFvnG>$7qzV(A`yz^`&J;RsI z=BKFQN#)G8hCA*=69#W`ug`MQ?o~(f=OYNU@RRo9qnhoJevLbxn1OS<`b2NkaYs*# zruE$UWM8Dr(@u`b?-}r+jPO|TGnG0L0O=Aq6FEO_0kN4rh>4eOeC}igP3F$0(#l?> zfJ@<}!lPIKsbyO3DVA#x^o)EN7QW)xT|jdJQNA#)%OE^!9oW?#{iKpS{e;p!4KSaVtChRG;ic!HPXz>q_1i@G=% z6lmkQ*GHxD)253ZRnHpopFHoQd{ic?IL5#z@?(DCqmHtpWlTlH2pUry%2WLPM@MKY zzw`0GOwy&HUm;}bK?r}?M8ECQ<5lyN31nuM|=rTVY6cp zGJvaxWyR4wU+DfRNWqCH*kEzc$ z?|-$Dc1C7=okH{?-}TMNtYj+*1y~&Zr7On)Z?Mt8iyvZr^-YLUIpf>=iyS%Njj+Y= z<~s@NfC-1hZU=%)P@t?xR7Iy3PArv=d|QYWxxTaf70PMD3gk=N<-2@{_`B~GxZRpP zzs}$j-yKVMGj=oPv46x37w^5$uGL%MifHt1?EcMduP#8(&lhamzxDk-XMCnpn!&0K zC9xv?y9!uNVT_mKileA?G)3}=vUC)I=y+8(l|cbIic>r@D56gJ4P2|LGiqaj@Li%l z-bZbEKLQeXAT)@~T9ONE#H-v%ffzK(>5@|*0*;Uu!4n7-<}EF<%70Z6y}>L0y@x{l`=55zrk9GI7FKP$WvEp2hKE89f^enY zATQMIls{Dhb18k|9S<8}M~4EU6((kfwK_cVP@*YmlvUb>vdaI9bgaoMf9}&OU3qT} zGw4{6GbPl~%p8-H3NP5`m=R6|6Jc7oO+=UD&Xc^><$%d zy7(Y!#mZkM)c%@l8_0IyxnrKQ5dUK$#n!`7mszN}onEzNg&Oj3XS?lnNQrHiLt{U# zV5-5iD(4Q{p4ian5U)%L66$B4Oi@lB-ot>7@F}?MrB=wk%Px&cLaq%RV%3`EDb&D& z*I(+9=E$TzVR>yc94!Sr@&KQ|luP@UCs3)cET}2dlW#7+fh}<(Q0DgchhPsq^3px&oSCU|-ZkbWvPN&+$m}M)Mvjzg!&x)t~ z@^WN~NZl2KZFJqx<^qMQf7?wXDXl)&Lv5npYY^Af z_ZkGR7T;?eBtoL4#gO%rJk&M~-*POt1`G(mq;QAfeBh~H@1a!H7mW6`Z8`2O4`tS( z4_2zi*)7JEdD6)SGF6CPPDDqn6w~&BaT5Rre?b>M1bzm%-k=I3$6F`n- zWyQWjO^9Nz2ex@#bG?+C+8u*YBH;YN=c{GAWcT_;FLg-ku2P91NN!wqZ5VOHqw=BW zxo&!9s`4YMmQmKGo4DE|Ifb8{p6ywkm#EJ-xJx29${brM{FD`Ym3_lhFZOD%>)YpQSgZzgcqjAb{`CK1VIm#?^0DFmF-l8;NU-AK{LlS1M@!BiBwvHI>vKJxqu$Ou5`@Oac d{?jEJw(p6jM>~+G{)Q6dGM??rOXx4+e*y6YTzdcj diff --git a/codecs/webp/enc/webp_enc.cpp b/codecs/webp/enc/webp_enc.cpp index 2b9a812b..2a3ead9b 100644 --- a/codecs/webp/enc/webp_enc.cpp +++ b/codecs/webp/enc/webp_enc.cpp @@ -11,7 +11,7 @@ int version() { return WebPGetEncoderVersion(); } -const val Uint8Array = val::global("Uint8Array"); +thread_local const val Uint8Array = val::global("Uint8Array"); val encode(std::string img, int width, int height, WebPConfig config) { uint8_t* img_in = (uint8_t*)img.c_str(); diff --git a/codecs/webp/enc/webp_enc.js b/codecs/webp/enc/webp_enc.js index 87fd70de..845a1ca4 100644 --- a/codecs/webp/enc/webp_enc.js +++ b/codecs/webp/enc/webp_enc.js @@ -16,47 +16,47 @@ function la(a,b,c){var e=H;if(0>1;for(var e=c+b/2;!(c>=e)&&I[c];)++c;c<<=1;if(32>1];if(0==f||c==b/2)return e;++c;e+=String.fromCharCode(f)}}function oa(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var e=b;c=c<2*a.length?c/2:a.length;for(var f=0;f>1]=a.charCodeAt(f),b+=2;J[b>>1]=0;return b-e}function pa(a){return 2*a.length} function qa(a,b){for(var c=0,e="";!(c>=b/4);){var f=K[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e}function ra(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var e=b;c=e+c-4;for(var f=0;f=g){var l=a.charCodeAt(++f);g=65536+((g&1023)<<10)|l&1023}K[b>>2]=g;b+=4;if(b+4>c)break}K[b>>2]=0;return b-e} function sa(a){for(var b=0,c=0;c=e&&++c;b+=4}return b}var L,M,H,J,I,K,N,ta,ua;function va(a){L=a;d.HEAP8=M=new Int8Array(a);d.HEAP16=J=new Int16Array(a);d.HEAP32=K=new Int32Array(a);d.HEAPU8=H=new Uint8Array(a);d.HEAPU16=I=new Uint16Array(a);d.HEAPU32=N=new Uint32Array(a);d.HEAPF32=ta=new Float32Array(a);d.HEAPF64=ua=new Float64Array(a)}var wa=d.INITIAL_MEMORY||16777216;d.wasmMemory?G=d.wasmMemory:G=new WebAssembly.Memory({initial:wa/65536,maximum:32768}); -G&&(L=G.buffer);wa=L.byteLength;va(L);K[8668]=5277712;function xa(a){for(;0>2])}var R={},S={},Oa={};function Pa(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Qa(a,b){a=Pa(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)} -function Ra(a){var b=Error,c=Qa(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Sa=void 0; -function Ta(a,b,c){function e(k){k=c(k);if(k.length!==a.length)throw new Sa("Mismatched type converter count");for(var h=0;h>1])};case 2:return function(e){return this.fromWireType((c?K:N)[e>>2])};default:throw new TypeError("Unknown integer type: "+a);}}function cb(a){a=db(a);var b=U(a);Y(a);return b}function eb(a,b){var c=S[a];void 0===c&&V(b+" has unknown type "+cb(a));return c} -function fb(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}function gb(a,b){switch(b){case 2:return function(c){return this.fromWireType(ta[c>>2])};case 3:return function(c){return this.fromWireType(ua[c>>3])};default:throw new TypeError("Unknown float type: "+a);}} -function hb(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Qa(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}function ib(a,b){for(var c=[],e=0;e>2)+e]);return c} -function Z(a,b){a=U(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return I[e>>1]};case 2:return c?function(e){return K[e>>2]}:function(e){return N[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var mb={}; -function nb(){return"object"===typeof globalThis?globalThis:Function("return this")()}var ob={};Sa=d.InternalError=Ra("InternalError");for(var pb=Array(256),qb=0;256>qb;++qb)pb[qb]=String.fromCharCode(qb);Va=pb;Wa=d.BindingError=Ra("BindingError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},P:null})},t:function(a,b){b=U(b);T(a,{name:b,fromWireType:function(c){var e=X[c].value;Ya(c);return e},toWireType:function(c,e){return Za(e)},argPackAdvance:8,readValueFromPointer:Na,P:null})},n:function(a,b,c,e){function f(){}c=Ua(c);b=U(b);f.values={};T(a,{name:b,constructor:f,fromWireType:function(g){return this.constructor.values[g]},toWireType:function(g,l){return l.value},argPackAdvance:8,readValueFromPointer:bb(b, -c,e),P:null});ab(b,f)},m:function(a,b,c){var e=eb(a,"enum");b=U(b);a=e.constructor;e=Object.create(e.constructor.prototype,{value:{value:c},constructor:{value:Qa(e.name+"_"+b,function(){})}});a.values[c]=e;a[b]=e},f:function(a,b,c){c=Ua(c);b=U(b);T(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+fb(f)+'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:gb(b,c),P:null})},h:function(a, -b,c,e,f,g){var l=ib(b,c);a=U(a);f=Z(e,f);ab(a,function(){kb("Cannot call "+a+" due to unbound types",l)},b-1);Ta([],l,function(k){var h=[k[0],null].concat(k.slice(1)),m=k=a,q=f,n=h.length;2>n&&V("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var t=null!==h[1]&&!1,v=!1,p=1;p>>k}}var h=-1!=b.indexOf("unsigned");T(a,{name:b,fromWireType:g,toWireType:function(m,q){if("number"!==typeof q&&"boolean"!==typeof q)throw new TypeError('Cannot convert "'+fb(q)+'" to '+this.name);if(qf)throw new TypeError('Passing a number "'+fb(q)+'" from JS side to C/C++ side to an argument of type "'+ -b+'", which is outside the valid range ['+e+", "+f+"]!");return h?q>>>0:q|0},argPackAdvance:8,readValueFromPointer:lb(b,l,0!==e),P:null})},a:function(a,b,c){function e(g){g>>=2;var l=N;return new f(L,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=U(c);T(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{ba:!0})},g:function(a,b){b=U(b);var c="std::string"===b;T(a,{name:b,fromWireType:function(e){var f=N[e>>2];if(c)for(var g= -e+4,l=0;l<=f;++l){var k=e+4+l;if(0==H[k]||l==f){if(g){var h=g;var m=H,q=h+(k-g);for(g=h;m[g]&&!(g>=q);)++g;if(16n?q+=String.fromCharCode(n):(n-=65536,q+=String.fromCharCode(55296|n>>10,56320|n&1023))}}else q+=String.fromCharCode(n)}h=q}}else h="";if(void 0=== -p)var p=h;else p+=String.fromCharCode(0),p+=h;g=k+1}}else{p=Array(f);for(l=0;l=n&&(n=65536+((n&1023)<<10)|f.charCodeAt(++q)& -1023);127>=n?++m:m=2047>=n?m+2:65535>=n?m+3:m+4}return m}:function(){return f.length})(),k=rb(4+l+1);N[k>>2]=l;if(c&&g)la(f,k+4,l+1);else if(g)for(g=0;g>2],q=l(),n,t=h+4,v=0;v<=m;++v){var p=h+4+v*b;if(0==q[p>>k]||v==m)t=e(t,p-t),void 0===n?n=t:(n+=String.fromCharCode(0),n+=t),t=p+b}Y(h);return n},toWireType:function(h,m){"string"!==typeof m&&V("Cannot pass non-string to C++ string type "+c);var q=g(m),n=rb(4+q+b);N[n>>2]=q>>k;f(m,n+4,q+b);null!==h&&h.push(Y,n);return n},argPackAdvance:8,readValueFromPointer:Na,P:function(h){Y(h)}})},l:function(a,b,c, -e,f,g){La[a]={name:U(b),da:Z(c,e),ea:Z(f,g),V:[]}},d:function(a,b,c,e,f,g,l,k,h,m){La[a].V.push({X:U(b),aa:c,Z:Z(e,f),$:g,ga:l,fa:Z(k,h),ha:m})},v:function(a,b){b=U(b);T(a,{ia:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},p:Ya,s:function(a){if(0===a)return Za(nb());var b=mb[a];a=void 0===b?U(a):b;return Za(nb()[a])},w:function(a){4>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(eb,d,Za);ob[b]=f}return f(a, -c,e)},r:function(){C()},q:function(a,b,c){H.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=H.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);va(G.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},memory:G,table:ha}; -(function(){function a(f){d.asm=f.exports;O--;d.monitorRunDependencies&&d.monitorRunDependencies(O);0==O&&(null!==Da&&(clearInterval(Da),Da=null),P&&(f=P,P=null,f()))}function b(f){a(f.instance)}function c(f){return Ia().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){D("failed to asynchronously prepare wasm: "+g);C(g)})}var e={a:sb};O++;d.monitorRunDependencies&&d.monitorRunDependencies(O);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return D("Module.instantiateWasm callback failed with error: "+ -f),!1}(function(){if(E||"function"!==typeof WebAssembly.instantiateStreaming||Fa()||Ea("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){D("wasm streaming compile failed: "+g);D("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); -var Ja=d.___wasm_call_ctors=function(){return(Ja=d.___wasm_call_ctors=d.asm.x).apply(null,arguments)},rb=d._malloc=function(){return(rb=d._malloc=d.asm.y).apply(null,arguments)},Y=d._free=function(){return(Y=d._free=d.asm.z).apply(null,arguments)},db=d.___getTypeName=function(){return(db=d.___getTypeName=d.asm.A).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.B).apply(null,arguments)}; -d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.C).apply(null,arguments)};d.dynCall_i=function(){return(d.dynCall_i=d.asm.D).apply(null,arguments)};d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.E).apply(null,arguments)};d.dynCall_viii=function(){return(d.dynCall_viii=d.asm.F).apply(null,arguments)};d.dynCall_fii=function(){return(d.dynCall_fii=d.asm.G).apply(null,arguments)};d.dynCall_viif=function(){return(d.dynCall_viif=d.asm.H).apply(null,arguments)}; -d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.I).apply(null,arguments)};d.dynCall_iiiiii=function(){return(d.dynCall_iiiiii=d.asm.J).apply(null,arguments)};d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.K).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.L).apply(null,arguments)};d.dynCall_viiiiiiiii=function(){return(d.dynCall_viiiiiiiii=d.asm.M).apply(null,arguments)};d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.N).apply(null,arguments)}; -d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.O).apply(null,arguments)};var tb;P=function ub(){tb||vb();tb||(P=ub)}; -function vb(){function a(){if(!tb&&(tb=!0,d.calledRun=!0,!ia)){xa(za);xa(Aa);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Ba.unshift(b)}xa(Ba)}}if(!(0>2])}var R={},S={},Pa={};function Qa(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Ra(a,b){a=Qa(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)} +function Sa(a){var b=Error,c=Ra(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Ta=void 0; +function Ua(a,b,c){function e(k){k=c(k);if(k.length!==a.length)throw new Ta("Mismatched type converter count");for(var h=0;h>1])};case 2:return function(e){return this.fromWireType((c?K:N)[e>>2])};default:throw new TypeError("Unknown integer type: "+a);}}function db(a){a=eb(a);var b=U(a);Y(a);return b}function fb(a,b){var c=S[a];void 0===c&&V(b+" has unknown type "+db(a));return c} +function gb(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}function hb(a,b){switch(b){case 2:return function(c){return this.fromWireType(ta[c>>2])};case 3:return function(c){return this.fromWireType(ua[c>>3])};default:throw new TypeError("Unknown float type: "+a);}} +function ib(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Ra(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}function jb(a,b){for(var c=[],e=0;e>2)+e]);return c} +function Z(a,b){a=U(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return I[e>>1]};case 2:return c?function(e){return K[e>>2]}:function(e){return N[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var nb={}; +function ob(){return"object"===typeof globalThis?globalThis:Function("return this")()}var pb={};Ta=d.InternalError=Sa("InternalError");for(var qb=Array(256),rb=0;256>rb;++rb)qb[rb]=String.fromCharCode(rb);Wa=qb;Xa=d.BindingError=Sa("BindingError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},R:null})},t:function(a,b){b=U(b);T(a,{name:b,fromWireType:function(c){var e=X[c].value;Za(c);return e},toWireType:function(c,e){return $a(e)},argPackAdvance:8,readValueFromPointer:Oa,R:null})},n:function(a,b,c,e){function f(){}c=Va(c);b=U(b);f.values={};T(a,{name:b,constructor:f,fromWireType:function(g){return this.constructor.values[g]},toWireType:function(g, +l){return l.value},argPackAdvance:8,readValueFromPointer:cb(b,c,e),R:null});bb(b,f)},m:function(a,b,c){var e=fb(a,"enum");b=U(b);a=e.constructor;e=Object.create(e.constructor.prototype,{value:{value:c},constructor:{value:Ra(e.name+"_"+b,function(){})}});a.values[c]=e;a[b]=e},g:function(a,b,c){c=Va(c);b=U(b);T(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+gb(f)+'" to '+this.name);return f},argPackAdvance:8, +readValueFromPointer:hb(b,c),R:null})},i:function(a,b,c,e,f,g){var l=jb(b,c);a=U(a);f=Z(e,f);bb(a,function(){lb("Cannot call "+a+" due to unbound types",l)},b-1);Ua([],l,function(k){var h=[k[0],null].concat(k.slice(1)),m=k=a,q=f,n=h.length;2>n&&V("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var t=null!==h[1]&&!1,v=!1,p=1;p>>k}}var h=-1!=b.indexOf("unsigned");T(a,{name:b,fromWireType:g,toWireType:function(m,q){if("number"!==typeof q&&"boolean"!==typeof q)throw new TypeError('Cannot convert "'+gb(q)+'" to '+this.name);if(qf)throw new TypeError('Passing a number "'+ +gb(q)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return h?q>>>0:q|0},argPackAdvance:8,readValueFromPointer:mb(b,l,0!==e),R:null})},a:function(a,b,c){function e(g){g>>=2;var l=N;return new f(L,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=U(c);T(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{da:!0})},h:function(a,b){b=U(b);var c="std::string"=== +b;T(a,{name:b,fromWireType:function(e){var f=N[e>>2];if(c)for(var g=e+4,l=0;l<=f;++l){var k=e+4+l;if(0==H[k]||l==f){if(g){var h=g;var m=H,q=h+(k-g);for(g=h;m[g]&&!(g>=q);)++g;if(16n?q+=String.fromCharCode(n):(n-=65536,q+=String.fromCharCode(55296|n>> +10,56320|n&1023))}}else q+=String.fromCharCode(n)}h=q}}else h="";if(void 0===p)var p=h;else p+=String.fromCharCode(0),p+=h;g=k+1}}else{p=Array(f);for(l=0;l=n&&(n=65536+((n&1023)<<10)|f.charCodeAt(++q)&1023);127>=n?++m:m=2047>=n?m+2:65535>=n?m+3:m+4}return m}:function(){return f.length})(),k=sb(4+l+1);N[k>>2]=l;if(c&&g)la(f,k+4,l+1);else if(g)for(g=0;g>2],q=l(),n,t=h+4,v=0;v<=m;++v){var p=h+4+v*b;if(0==q[p>>k]||v==m)t=e(t,p-t),void 0===n?n=t:(n+=String.fromCharCode(0),n+=t),t=p+b}Y(h);return n},toWireType:function(h,m){"string"!==typeof m&&V("Cannot pass non-string to C++ string type "+c);var q=g(m),n=sb(4+q+b);N[n>>2]=q>>k;f(m,n+4,q+b);null!==h&&h.push(Y,n);return n}, +argPackAdvance:8,readValueFromPointer:Oa,R:function(h){Y(h)}})},l:function(a,b,c,e,f,g){Ma[a]={name:U(b),ea:Z(c,e),fa:Z(f,g),W:[]}},e:function(a,b,c,e,f,g,l,k,h,m){Ma[a].W.push({Z:U(b),ba:c,$:Z(e,f),aa:g,ha:l,ga:Z(k,h),ia:m})},v:function(a,b){b=U(b);T(a,{ja:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},p:Za,q:function(a){if(0===a)return $a(ob());var b=nb[a];a=void 0===b?U(a):b;return $a(ob()[a])},w:function(a){4>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(fb, +d,$a);pb[b]=f}return f(a,c,e)},s:function(){C()},r:function(a,b,c){H.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=H.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);va(G.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},memory:G,table:ha}; +(function(){function a(f){d.asm=f.exports;O--;d.monitorRunDependencies&&d.monitorRunDependencies(O);0==O&&(null!==Ea&&(clearInterval(Ea),Ea=null),P&&(f=P,P=null,f()))}function b(f){a(f.instance)}function c(f){return Ja().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){D("failed to asynchronously prepare wasm: "+g);C(g)})}var e={a:tb};O++;d.monitorRunDependencies&&d.monitorRunDependencies(O);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return D("Module.instantiateWasm callback failed with error: "+ +f),!1}(function(){if(E||"function"!==typeof WebAssembly.instantiateStreaming||Ga()||Fa("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){D("wasm streaming compile failed: "+g);D("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); +var Ka=d.___wasm_call_ctors=function(){return(Ka=d.___wasm_call_ctors=d.asm.y).apply(null,arguments)},sb=d._malloc=function(){return(sb=d._malloc=d.asm.z).apply(null,arguments)},Y=d._free=function(){return(Y=d._free=d.asm.A).apply(null,arguments)},eb=d.___getTypeName=function(){return(eb=d.___getTypeName=d.asm.B).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.C).apply(null,arguments)}; +d.dynCall_i=function(){return(d.dynCall_i=d.asm.D).apply(null,arguments)};d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.E).apply(null,arguments)};d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.F).apply(null,arguments)};d.dynCall_viii=function(){return(d.dynCall_viii=d.asm.G).apply(null,arguments)};d.dynCall_fii=function(){return(d.dynCall_fii=d.asm.H).apply(null,arguments)};d.dynCall_viif=function(){return(d.dynCall_viif=d.asm.I).apply(null,arguments)}; +d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.J).apply(null,arguments)};d.dynCall_iiiiii=function(){return(d.dynCall_iiiiii=d.asm.K).apply(null,arguments)};d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.L).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.M).apply(null,arguments)};d.dynCall_viiiiiiiii=function(){return(d.dynCall_viiiiiiiii=d.asm.N).apply(null,arguments)};d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.O).apply(null,arguments)}; +d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.P).apply(null,arguments)};var ub;P=function vb(){ub||wb();ub||(P=vb)}; +function wb(){function a(){if(!ub&&(ub=!0,d.calledRun=!0,!ia)){xa(za);xa(Aa);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Ca.unshift(b)}xa(Ca)}}if(!(0k6tiVB8|ev#56_840MALfbg~hL^c0=G z)i990&G5-r&8y5rTQ;(KC7Xud@AJj`$utvuep61h_O~#K3QgNruT!pJ8@6p40?kd^ zFf6~1h-|X`$><6nhGF|md9(dNrC}z=$0t}qP+Y2InbvuK0lzPif^lZ58K?g&%O5b& z3A!`LF#X)I8A2oc8HSP9!1R-!KTMx~nsH@1Tk(-&VaPS?g04fs#K=1Z*% zBm*o)y3aOzwhwEveg4EigFqwDYxhHs|zHZAf0X8&TZupc!a zHrJc?n=8%b=2CNsxyYPnzHJ@0UbXgGyR7Y2jrF9p&Dv@`VQsNCTbrzn*5lR&Yo33u ze~$ky|7`y(|4jc3f0h4l-(S8zeNF!Go$>wd`_1>O?-$?CzMp(Q`hM_z@B7ZT)%URP zA>TW+-uIwyolpAilN6WMZ;tOS-z<9Be!|{ter?s7Pn%DfznB*swcfI3nn&>OkcH0~ z<_z-<>!9_Tb-=oy%H;oFv|hIMTNk`!y<+XNf{Pxh86MXvKq)oLl7FV0`^?^UscR&M z9OF@k#)wNpA;U2oa!m1zd^BY?ZIR7Wd!_#;(X|{B7rUq5A@_?!*X9pl%ekpn(FXZR zYAfm`>(|>9zll(=iNu@oK)qYh)~!FBR>_C!x2GoZMEzluFT14`&{26^THC;03i}*e zyd>AAHK#T5)wI^A^k-VWXb}n(U=ntzV-%SIks+HmXh~nnAq_@nKW6pP_+u27J{Sr$ zJzGnl)+Y^`c72K*!!@H0xnhcVibBOim5yCx8WEpkx`yKunT{d8v9Ls+gB5X^E&gL+ z9;ak^dNKVVr=<4~|AdP8vgYOVKLfO0zU2H#-^o4UZj>Sa4$qRyBKeh{`FbaMAoGiV z`*_j-!MBt^04Y+R`a+KFRz|}-rWp+z_@atLBNR%-++17CqX;J5-bCe4l&5PH8-~aO zYz)VW>NMu5Q)4h`Le7{d%51MpIt3Y&Cp#77QuCTC3sz>fU14IOaqjMCiEBjSgaddu zreg_|ki*|@m55eED7&+PjpQ6z*liLva%Hz#8Y?gEejB|cU+tdLc$P203X$GS|J*rR>X-B_?+>?N<_OH>^S$01!3EyQd>4LuNql7xjH9am5 zWM%>HZ1FGoTMvi+C9_I%sj{YH=^&yLa*6vrJuPRK-AbAAkFw76TTO?aW63|)j2L2! ze7x82q&ZlUo`w%A*eJ7mAE9jdP47rtR#ph;n<3NtTuhtgO?@_@iw1r3(z7EWY*m(7 zimAt;r4I`Th>v9dzIpvWFe6s)M9Kny;u+~)rijV=YKmJO3mJ}y2k=O|Z=!X)E23hT zM>=7Df)#R&upgKQULtbj_P!l3lT&>o{+%Y4cZ;lF?iB4X!$F5o*+k_~*pC(ftzTp~ zA^gL1dE5-ldPsRW^^*^mcd`13el`CpZ$kDlQ)Eg}kxTE&78RrDd#NgVr~PPa{CB9m z`B0`~GUAEj^1F%#%`>w?%`_s3A)7Fv>10&yd z*)o$HnRI1W`j6~?bKl}e605B)#Pc{ebO?Oe{V@@hNhHVp~xxtDEctx?{N1j=#`_MK0vHUphfqV9H`?wDfx7O^#asw6a!~E?eaqpEAT^jE$ zL57@hZF(ZIfs5REJaQhsHe950fUG(v%MFBWcWgM${cDfMR)HEQ3ZU{g*QRIYX1M|t zhN8m47td8dY2L7ASarp)LI{?dhm{~*J!~L7B)=WDq|L{WJ>Wi;sDV-uYOm?V?HCnZ z8DHAEG%$t?#K_35q4pgSt&2RK3l$eed8Q_VC@V56KD&t z+O8eNV!zhbcbiPDg+ejTKhHlE@$X*{Xl<)-sL)d z7Iv4*1;d?Gv@#jR+<5M+kUM*Rcq1Fmw5VZk| zLV3}MW^}onHli1vdq$+A#qkk`LL0fOK-4wCdbi)uwasV`D?A2l^Ab0r7jmf&mal7) zh`I*X;xF*$s4N)Si$=>)Bik?!_oJhABh%BP7#1Qp;KogC4<;LHI!3-ZvVCxL-DgxL z-`EIk+uzuRa%A+zF>w(Fg^0+LH#QDD2RQ^Wnk^GXjcG8JQJb|HVxG6rmsGjW?~O!LoZaL*|0$In^=ty(n7HV6bB~vyAFUTqld^ z6iDM1i63kBM_UlRC4U)xH9cQ*>6pC~cg)<(yjJFoYn1=4351Se5X%khj5#R^=>ZTi z&mBIlQR>$$N6aQxpaVK)b*sNzJuWl1BR11;4`oJ0E4;xLs(5=1_b}(k!{h2zwyMVG zY=Adb@)noqyo_js+#+55Xe<+Bx>eY?3^A9gF?tcdLs{ITe=@|?-ynC_D9^^Ts*3t$ zhxV8hUs+(d&gh5_g4-4|m?6-ZNI);ht(3!WZbq}^qMHZO8}fsjFKJoDg4EZ<5*;jT zAY*G(^k>ZVxezEBjKTi8<=f&FdCe_-GPu(sQ$#$Di@ky{1Y^sPyKY$sURE)_N#4)Q zo=^$e66BQ)PKs}Ik4-SePjbol<|$J(vmro1z4S_%NPgLN=bw@qAB~ zPiU5S8@4V1_{Q^_CaWft(KPwegyvK!Pfr*|U&xCm)=T{y)3#YR3k5JZW>hSvOzcc| z%WV_efzy6Iv89;9ijN7LV3`yUt!1N0c{Ho0_aw)J@i%fxIi62U$%M*rU`i{>syQ>I z3887j+d5FK9E#^$x$L&?^p!k%+ZtLc$4|Y!Xf?6O(rW{HdIBir7rrqNUGA@TRIHX~Zoe2q zUvLMM0eQ+BV8rLD<1q_uw=u`O|P`K!t!T-8g-H z(#VjfM!UilVvQV9nFAP3tttdEV2DYsm>j`mqY+-7hX=i+J!3p7O_^~Kp8IBu&2_?d$fdC9 zLXU+21fz1oAtwl;LP}md)1eP*Cd_PN(R{h)t}M*3_O5mr5SF43M(2lx2R6nvrvT{o zoG!Flmd@!A{F!{9Ff$}p${BM?GG4^GUFwU;o31e+ku0nNog9(}=CrWiu@g;sa88y? zn_Ey&j5%jaLA8u2VpN#HEvA5M$0Nr}h*9$Dxj9Woxq(R&Q0f)oDMn2Q-Rg-ow1?sp z>*Nu+Zf-t3BKOQ~l=TRm*NV<-`-r4@ne?#Co|kJqOi}sT+`LYVhTQx4^-$(gd3Hz` zdj7?r4NDY@;!px-n4%bqDwg-n8%jm;^t=xBGD4wFWL6^gI}`hm7!~tm=erw%W`^B; zDW2Q!ZVZ|^arYRazhuApj`_JIN6pWxbWercGp~?{bN3!5ckVt;ojL^4cQ+tyxr>oD z-KTVV`xo;s+Pn@va8T(1xYr2o%wa|25$7_McluH-1 zree8o!5kQl0~ZcJdiBC?@lF`j0r)@-U6|FrIMhzVucv`OJocA~tt9rs0u*OJn(ncz zs5r%2KYJ_St!+g^DB0@Xi9rXv89f>3Y0JH{Xsc|!sCmn+)X@y+J#qhtpn+Qz7BC7j z^&sB-SU>{f*!ulbE?o2={aI78crJAs2b6>yha}N@P*T& z0Bb^PY|f7tPnh76@uFn}7Fz#ANMOhse;AyAg;cy~hm5+U?6I_Q@whB>74PN)v&BZ{ zSg?>;>Oe^1+co-zgIGPQYG{lNo(hdJaamhut?eE>j_zSag+db;%k=_mH!kX0lf~GY z>z3^$dPX)Fuc`pgoE2AOZ?{7SEeggYupdIev_UOcYD6wvkr8wq zKg-R4Xeggp5v8dzYi09{t3|D5C(P{aIy(g@EU#Ia388b_N{616D_4d~pMs9Z%2E^$ zXk~tg7V#`|`8cS&{OHKt+uR-a9rlkO0g)4O0xiiDx5?jEHV&4an?kcyOEK@=tBQN( zpaFY105VQO^jDlqx&dUE<=H5*V=_aVfjOSA;C-`1tt?r69sC0Kt?rUq7KuwVu`L!V zl(A$llOL{Ll#~sV+_5&5S<@jQvgNcjT?cdr8-;^x?_|X9iZH_H{_yG>2l)Q z;wB%PRw$!JMV8+?-h;3apFboj=0)ZS0Il-Fb`ROC6Zu$q z#d5_DP#9gSR~!9jm5Nto=)t0dOn8Ts5896*UY0!`d`M@kghxVWeEVP(y(Vv2@8G#) zeMx%za0=tzq=@N=sFNVtvy)Ejl*iV$%-U}|2@ZgvF$;boaFw8wgyMZQ;fLA~9h8?p zyq5}O)*}u5ui1cPW7+$WnQ?>Q2l9zQ@{LC>2oDMeu!2EQ)sVwWf&~#}?u6-Zt%I`b zqfP5)Ie};-j^_a_ITFIYfUVvBXgPq+^btf!Ec3{t6^Tb}@B@Q=gSL1}HrX(Oo|E@( z$c78&@eLi2{$xWl@X@5lN~o3W@mSjERsgH1)qZwRG4|@mLz&_qmIkuV*$JJjXW%8p z&TI1nUWnQH(}yy;r9a&+ zpWf0E&(F3@1c6`m#19SNgJO1JgbKAj=Flc>unyna7M9eCt>y9m_80)V`Eu*fdI!lY z<++M~d-^h*$a3(u-mq65*fxMZm8Z7#=mEaOB#Ql$&0tQ4qOB82sYwZIe&Y% z_;~cpu12F~-}ZQdPw?JTn(o*|uj&TD|A_i_v);L^`_>*%$vFg|r6gLfE?k`ehKUnj7E}VY83Y$+EiwU5pw9RD%eEu zM0=l~?;4w!3Ev4Ql0k`mzV5kK^(q;D$+GG5AIQ8H^6RIe&|UKuuN(^3{Jd3ss?G)8PsoI$~YIBW7sK>=uZHWWa& z`dxCDB)K@lz(Ep!EJ$+w{DFg{{;xcYvzPB)X@+O+z9#-3D3Tz4lmqt7gNx?vedY9% z%-f%l^%JpUluc#uA9zr)tT;a9fJfk>{g1}1EU3O~BpoO^|Fg}3IhA=%JbOCx*y$9n zTOk<_?#dnH0S`p;a6GmsE*c5wEC;Vx{Xkv)z(4CJ>KXih)rX=fnlnph2@u2)nk_Dg zjdxy#*WtMgIri15m^l_*H%-Dc8Iv$g__8o_r2kRKOb&&nR|wg8UP~UI9a(;0J&*5o zbY6zn_*@2`;>a6by9{%Pi$McEhdOA0i`I3H#d&)JiiSY*2LJzPg85;-|Ia2t-J#wj zS$43E21)FAjJ3}5$Mz1;c$sx`)8%Ie`ahK0q0n3$U|0I4GlJW!3ly2&2?7ocKt9%Z zCJA6Ta9;j+(8XzH``0@q`~%!?!Z19<9#h;e_q@@j z^cT`dp*NpBKw0ibX2_X8_AqUUU;ihm8v_E_;QRABBM~Y2q zEcYJmiRZ;{_q6AkP{KZbySKflF0rI8v9vC+ye_e_E^&WdVtrlWVJ}f%ZhUtm&ir+! z_2sx@70rtr9LfSi*ud9s@w!a;s2CEd z$4Balw+Zb;MhFrQ3ot^gh=`f6&Aimx@EV8whP&Yi#j4n$uwE}bOxlkjF4gkL6H~k( zkriqxQ|8x`JwEo^h*fx}rr*bYBEP)olcson{7FWQ{Nzod#d7$kJ#%pG$#iVMUjYsT z9^idJGD2r~@zYh9=Fop1g(J1~XRqME`nS*C!M+^&yd7LW{x9C9%$gHlyl$e><6jqD z)8*-oCLg#P?qWD{npj2ztgph@pnVawbXG>O$M?uwK=EVXVD)@$Ngf*=H=2X`oEwfY{ zhlPUkc}z+C0Cz_jb>PzzR$K+LzPH?C$9V^Ez=DM5=0N_#^0jZf(c?1ybdwxqh7Mbl zaNhX=IA{h0h#`8*fv20MH-gdw=d@2WV_X2!hafk_cDd+udQv0s8%zqq1?7$8_S1cm znlUF~>&L5=b0$ZPd6E)j$#;p=NOu2j6l#RPp_1xqZ2zv5j?16E8ytK9j2t*+fSV2a zes1M(-uR~GuYR!#)XQvKtktH*Gx1^xm`(t|Dl@`~_?P7P!lqSz^Z`R zWx~M$q7s*7;Q@afPMXmNSHo6>#HWaMDm7ybkrNQVT3U%JGB1RREb^J55_Ua|t;2aq zIK>6i*R#=`i0W8xVzK3QD}IgTxb?+i)J1b1O&pV(e{kq}`Nj`<&SjgX0Y(X8xxIN> zSyf@<#8@S{T`grmoC2-`J=Hw2x)R|51F4oUu|x}Gy))M03IO6 zKAyLIoh-qw80e`$tS<87-);pA2LIl?XCq)CD98p3^i)_AXT}I9*kT(+d<+GQbQTJJ zQEj|XF%5nw&Rt+js%F3 zFaY7ygF2BS$|D(0`kj&V4%R#%Ec*3>s>|h|KgvOk>;AaJ{{VBMweq(=Ho>j`$e+Ct z?se+VHbtvVMkc*_4-I2}ZfIXnE#Tud+|%G=C9>~dPUSjwfUzu?!6$zVt9`Awvni^HHm8S_#0fo8$^@k z=>Z@aO_xkNnl8C-O_xlhoQoZfIr6+=!K&DurpvBp51>wh6Fezf|GksC$#4F?h`KH7 z0d#$2*$f)kvKuBDn1E_VU)P=__%i`#IxM# z{epv#xiU&YmVC15?hfd4-#Bz_sYxb9sI5{awN67D<|KT&2KK{JJ0M!94@|m*@>MH~ zhF?9`j#xYt5Cw5x@Frn8jC7Wm!zDmrE&P&SY{l#cZ!BaInZM1fkE;-!30# za{GMstwp(1t`cp^Z9Xo>|Lw5Wrm?ZSpt=`u`5sRlfVcQ=b%jlByR^Xi3^5PcvAS43 z6UZVA=$4L-AQnx}yBCi?K$J5vilwM79#Svc)D0tBK5Bx67W=3XEmW8J=xS=Hw)zMv zwffLU4lP*jr>y$(Z9d9it(}PsZbHB4s#^Hzl6qYc2~`P=!^dMGuEZxwl=M?$dPME? zQ$Cfb_x*HJ3W9XNz&t3kXQ73*27os)^fd2=p~AI%P>zz8?(9UbR4CP(G94sfvF44|LVq9!C`5b1m}BV z7^7Iat`2s>hZpPw7pBhTU?)ePN~5A*XCc-}jSo;-x*jpEZp45tMEH?f8=y?Y9|43| z0iO_2AGeC!^1mi)GxKAyPrwUr4-jAm){>6-j*Q=Z$TqRj* zP>>drqrME%{AA1oo**52iYgguR*1TW7BU7DnZLq`s9p`xK0TH$p2`41G9)L65O^L-D@Dj!SDl3)RQMI}# zl`_)CVf9+i!XXoouZ+2Qwz@Nw2DaE_MiQ7Kg&1-1_=qmVS2AL{LheU^JwIb^^&}ws zZ>f}>lcARes)Gp)2?5;zPhDMXQYG~Oy{>9cJ!+8)`z7F3l|Y`rQ;zc>{z4=zzJ$oE zO{h<8DWr2_IsMb<5rl-O@6%~G^luJ5Wy`xzo8M4d1Nbi})~lN{sB7wjh&sVU+>c@^ zws=%MmjQ}hr%q*1Nfx4LIOG&?P7GZHst_-NOMqdCM^yVvkomi6XeM1A>;~3|gA7x2 zQ@b*$Wg$*JeLxkUA5K5vZ_@S;fP)>@ND#nVvFBU9#Dc% zy7M|gH~7LaH#o2^e2*o|*&)!6>E=Ymqnh`+K`qWdJy(UiSs0iFG9fV{>bY#{UYV&+ zlTaO$!#WEJal{KGag1y><j0(h%AcH(AWdqBroh?`jr ziG^C+9ChQz;1jVJH%CM8LqlrnxF~MS2LfSrdk&4E$JOUKfZ>J8$)&DTpoZqs9LlWy zG?${(C<|M`5egp|;%RVsE!Nog!fUGw6B9LRQa;V39Q8{+;fPo{4$V(FZRsOX)@)Hf zPJF9&0Sa`7`nN+Dqf&=3O$Hfl4pYMhIjCcb8XE$_#v-v32jS&bUxewp`rR>>?ZR>t z2*|bF(+F<7MGcM6?2`Yf1XF~+P)iD4Z3T8cp#mB`Z?Q@#ptR0)2f6NacpbzYt~oXm zr#GIJ@HqHs5fH@&l*UxTnT;u|iW@=Lz1NUh)n)AGjLD78Wejgjd9+o{Yz*#Lqh3GT zwjpJx!Xj!Ij)b!@!;pxCbILmLp)xexY$s<-Bx7?V!rnI(EuulrM_SKG0sqsX1_;zn zh`^QR@u(EBLw!<2S5zW|Jgax2&&hCttU$d?kw9-RIX#lxdqN@z5QD*XgxG{1jCoYR zNp|Xs&p|g(c##niu5Zj{H$jv|Qgxn_>V=s*so^vyIh>n-;}$;WNfsGqsqQ0&elE4q zBxiV;w(#}@+m2mg$cwrodErew!k&8dRTH`bh~qY;oVfAfWTzgaz=)=FCH7)hQ_84B z0DH2y1*{GyJOQU(EV!Tyr*3fb3rrDRiHL6B8z{d5>lP`5TCry(p3 zo0?NW{t-AZVh#O(GdE=E;Wc#pDy2DP zz+?|Hv5N8PU~?ejv+C>SU<_HRu$aaKBh14RA|#$wtBNU%(p|;W45SOTsrv){fGLC2 z5QL%rECwYMs8%hY<&9T2x1ch5Mm^brMo^hbZ%GfLY)4CqI8T}|WYe${FwO)%Lh#=T zv5j++og}eM{n3(Mr7zUJ5*mp$F;N0Gs(mZ0bgLTNidy1zcPlyyD!HaL^+B{P;Ds6+ zTT?UIqTX#y4Kto5>@dP~&=^{Qj#1#$CRM);jii?9jy5zX!xJ8;81HQ@G!s@6cBrr0 z&}#o{ge`ncEoe(UvGPN00iL(jw{0n>#|w7EOoaI+p7#<-F`-imYvJ!WC@`=(P4F3x z3^ia@G44zs@0zTOA~aD|w4>}a9c-eZh;lfxoWK~dTHW3b!|YNk+fi=vPTf17Uur5* zFSnx>4R>&+i8=exnGN)f)5wbyuqd{GD^x~%+S!Ov6c`XiU{O3%2F^>dJT$t3xw`iS z9Q>_4U6!}kMlFtX=0}2f$&Mtnhc3VjGC{nkMt6YbwWoGR2WS!Wiu$%AU5nR+o#=Mj zr(W$um*eGhrhW_ z|GE!ElI{c(W=XqK;hsUytoGql3(UmHh@$hLgD8Z0PBNq(Mi|zG`p^OOXcq{s11hyE zT}B6LZ|q9LDRmMnPT=Pdh7g%B5+-C!L|RDX1%?*2)kh$$wi((Y9M@`;GPJR6%R zCZP?-5yHR_6DPoKg6tFpp%PC5PY4q-Off;5q88pjKEQMW5S7>0Pa`9)#;C`-Q$gaZ z=FVyW1gdjX{Gg6^r)3mTH}{|`GPA-drrt#tvK~YLMgztp#6k5z4{A+ssFYH=j$T(2 zOKG0dK3osv!Psn1iX@N5*<<@~5@rct^57Ab?b4g|GQ$Z@KAUu=lNJTD%M)4ZPnSA@ zo;#F5v3NrbDx=)I*G=rd-$~M}8IXlr3GntryLdy%GHQx(pD&|lQ#_W!yO!WGYdNIm z^`u^qcdz%PayqOU^rG(l-?W`X)-~aZa-=AOQPa3=n1+Z%voRn6*0&FQGx+K&d&ZWUia!_%+Q zF)2=*j%nY@@h*N;tx&Tns7LAxI@}4TgS-mZzv6jyv;rpfZdKABob!kp)}LNT&h`uu zAJlO-UL37$F@O>Yb-G?alXKp+wK9$qJH!}`cFifc5Q8ICUdE&9^$REuGXR%>C_gs? zNG{C497q?^3+j@AG_%QDIOGK|dl|96kuFUHXXGJ)NH1uUEr`_f>d%4H&wm8`A6qd1 z?V*V#Tm*g-e-)MnsG{RD7sE)LbukstG4<%h)Ia{h^NX$rW4`7RXkPEDMVEkozNfZa z0$FrieR2sMMA;LUQfasXEm&|O2Cu?JOlVj;)1cSD*NVl66G~i0y>cU<48BmOxv7bW z9t$_@c(u?R8>;b_QPcQ0fk!&tP(5@R6$XJcb;U<6qn3>#P!E~kfM!CV>x3~8#3@4E zLNAVQsv)xtMy zBLo;A0qqBcpKu|ETp=t}e603dP8Hoh(zXtixB$~qoOlPjp*s*Ca0v$GEZCqN>=iFg z!uAULFt-LHR|9u@oH zfB$ExY%O|>2G!5|!a%~Ey%(xH*V6V*tPj(D_#paJjEt;O6I)Ph7-Fg_x)L~kjT&?%wH|PYpyeB^1Z%MuCr&XB zu=q-gsjvQUOr~ETj0hwiW&6PbZXz(NuKSqCbfRLWdgn^&(g5bOjSHhpegR;H4H4EH zHcR6{)U?g?2-7^z$ALBu2Q!LE+^PK_KKBr;dx%~iTx7^kzy(=b+@)p@q9*WtZ5ag3 zW~w@jaBQknHw>mDbermU6)dMpb=_4o8W;vwR|&6Jy>k_nLe{2VO+yoBV#>g2jlCIa z#?{n06Enn`-746;PzHe!V~-we?Hh15#;5-3w`(acudXPAZy2!-+F!G*x*ppOqkc49O&>-# z_5P2|o@#Guet0DgXzmfu+KdpN0Nx(0bf; zagfM*Z$O+dA-N!Y#XdC@zjM%WhQ2G!z7O^-axs$!ipfbCp3Sjj9!-jqm=2F5J_Zqi zUIN#HDi5$*5*xzUaZ7Vya7km;YRmBVR%@F1ZUtB(g&ixJ@e9n{nj z)C{kON6;p`F1Z1cqJx@$1F)lmdg=yhh}Zi!Kmc@5ZAYS?4(i5{bP=M#++UBA_{&sJ zkEFgdP5m{JhNOLEf|M}=UwdJd!Gc-%rMme>pwpLX#f@;@Wve%Dq$zmy8AW~7i=(Js zrE5ZI5YutTm}yF|(+Rz>9gp4^ivbSkOQ1N2Q_ehr&EN=08}w3F=+R3NuKS9POhg9D zzum3HP@oW|0eJ$<1ck-E5u(W%Ag`gtUJcwDgH|`xEkfX82Z|U;G7brf&|g$r|UuI;a+mqNc&$QQyl@ z*Np?Oyj!gw2QD;6eL9Zxg);;n@r5%Mo1(QUxS8hCPio`M+O_n>&D6QPfYl-G-a}W~ z6w!B@!A$CcXPJ~q%=Br@1y%!lV7qRB%^;G*Y4)}8?yI)9zyK*wH{C)|^VAc!P=EU` zDCg?0Tj)ajElypG`%+$N<#?*Fi$lo!d_4SFy0rNO8tnU%IJ3n>oX0#rfwJsBxE($R z+GozDe&pNi@|Vts3J@~&c{x{lU1`4gHdJ4c~e{j>1wn5U*to3ov0Is`Sk)pfpUbOKZC zyiU$9;CjbJsQL|W^|6XkQ`9;hp&dy!U zyN#NjZS{}os(rW7fcgVQW2G6B+>FUUqX56f0M&RZRMq9`)~PTV2dINnp_Q*tDYw(z z_*#8C_5rQfeyOYf((Uv~(og1tPlx8|<3Zf3QZ;vg?Y35D?x5Db);p^^S?beiR6spd z;7%}`o~jGK?os3J1e5Qnp1qTD@OtM?5OPl?rc+KzPfQG&0oW+N{GzAoHXT@2?Nb*{ zhX=80I`vF{heESROBT(WJ?a+ksQ0FW&)l=TlG--72gn)6s#lD}^nH$yYBLRC}<4;ll3fBP3=sc^&d%h{-+i7P-m7XQ+xwT28an$CZ>u3)C-_ z)F}Q-!i2$2=c`6l)QC>13#usJzktBCm#PW4po@yTswmfwiZ*I}SVesrZ(!lf{wyKk zkO7sjX+Iy484l>P6lErqI~)=Xm_gxsvn{tWY`IWIA!x8$QL#W(&43}zLjz@X)_k>f z25i(D)cZ5&8hTlEo=IafZeUb15e@{duU{AxGVMO~0^HQ7dtxRvi{Ip302LdRm__v) zKJH^DJDdAh!DBvX)wXNl=$7wCP96a|ORoB@-mF(IXv#GZU z57fRnbYamVo*V+Au;|S`B(d6$8X_bn7TJZ=MZ_sxX@6NIwn16N2E znYAb9Q6sbI6Z#H@kG&&MP~dGJ3te-p*n<1Z?$!X?*OzIRzIay^1AyV-;3&{iv@(sD zNyi)`&amYRdNka5%sp4xqT4F5=K<`w+Pwgtg(WI}AvMOU)k28bCF-h$(Ce3|dyuJ0?uGQ+ zwvh6Z9$~<+nd<&%F#B9ct@HnaR`31_Gvjx@oB&d?qa^0>ln2)_rgGgck##~ zDhu7fXT3lhM&JC!*n%oc^<7L~bpJ^2;h;&Lw+FKqG2~@i>OK^TkD>5|6By^f*BMaI zwQzdIX2`$P*d;Ur)bZ^SDBB;X#QR{E{|iQxuFY_QLkJ^Yb03YVe{Lj@rtSyFk{{d$ zNPnPU58RJewWLlN@B21If*qiGm71lReM6MPd-#d^PEvZ8Hhfhd2++h@5jQwd55#9# z*z`7xNWUWLM}K_?6mYEe<_Qj5i*u`RBS7_B3fNw#CN4!t`$;a>^~K+6-BL>F#*fZnKObUl5fURws{{|S5wS-2n<>VWbf zx-G(VRHxI8V(LsCZ1%URr@+eZQo|MXF7{XqH$x3>&-1F=Fmm@Jgv@l0B|+fYSo+(FmgN5n z-0&kd*n&_bzo1R5<3aIv7_=IT!-ixx` zDOd;}g@Wzq4RN$e)WmXPTcQit%!DSUJ7QqJ!mJ|!^bSr5==7$B{x zAw^$OQ>$T`^i^A{X*6Cr>!=vhu2@GiQ=7KOECB|ed*fJlJcLtI^}#wyulFMC6VGvP zh&{|Y#cmaNkSd#gj%|0V5JCr>$4!2GEXD_To>-wjSl85LpQ&vRQlp`|{=D<+uQ52DBA5XVg1q^;z&00lWDj!B%KBNVGQY<(&(3f`Y=)2F5}Rv;IvG4)tPa1F;QEBO8(`DOi0uYG z@C#_(Za|mQb;V~CI!;vk#d>ynRnX=Wu^^_CTzn29a5{AyC^;DRO3!`8i91rFF z^oC2d2Op<9h&rqCO_blUGd3K47IyDIlb95RFrVVim^m8_S-jyS$TL;nJS7GQw7_Eiynk_!X?Md@c%^B52+ zQN8;ZUD|J{A6M2`m)B+c*nZL}T#{nZ=KgV@u)n9Ypz ztdQ#WI60MbAyHY_WuO=MtO_~4Ce|M(L=tez zH0A%OakbPjxYUb@!O#Dxt+iBA_w9&pYrm?cQxtlD^sNPK<~Qo&XK4jJpl;tm?Glh5 z#B|ZSctGLmVri&4R#Tv+e<#%-`f0~bYL$rmx|-Fb>|L-xK$W}BQKhHE|Ibtj9hw=# ze^ccy`qZXxYG>~u(+Y*Kk3d4ca#4%lEBMW%d)15N%FXe$RW3dEzJ*zMJK0{~_Aa<9j1c3x(*=I;&dNyMe{pVccZ>Pj1aN~ zF#qEF_A>bIuP4;nV~Ddm^A>f6C~kigMpl+uc9br!JYhoD_uMu{A^+eTxCcUo43X&G z%lg7YxB!4)41Pb!>M7nYa#$|jvlHAS0e1yX9o=O~C3zv&5|6|Q0;ji2-kAYF;8m~It9%}{Sayj!1}t%%33M}^&W@oo-YTjE^@ujk|4 zLcHFLcZ=|PKOTO13>5E{;Pq>~+ZL~RLAN7b%Y$xLyjBO@-8`9%L3b~|pAAC4!+UR# zQ!3_k?L>i~ZFd#C-S__71z{!R# zz4jg2No&>McPS?m+2jZmq>J5l*g+jWrA!e|t9#$2TME|r5u+Jq%NM^YiGPUd(Gf8$ zcQWx0SL{^y7)=23Ej08_2IOqjGdL^p;;tMc=M`|y94@Nl-`wf|4?*rlh delta 22626 zcma)k34Be*+y8max%cMY+(bqqvdg(w5X8R3E+>Roic&3FKc!SfD2i@KsFK!FHFWF^ z)mCdMqD_mo+WNJWDyoXos_ORZru)wS`^>qqy#M#}zHdIvnKRp&dFI*Ynft`-z@HBU zwsthF4U{7D%%sd3G@M2mKBTwnbhKe2e}@r`bd2GXQ_UuIyvR>7{7COIJV+<&HdBl! zU(lS~X3d*T-*Wluk`Dll*>@Qt{~olPuF4h|;Z*qP_l;C%r*= z*6S%Tj3j>?pksJF_~*sSJYHX{-(S-R`aAo50V*M9(W2MQVASAvy2p6JNB0{2={_Tg z9OJk}`NktAbuso>)YX`4QGxNQMcs^7Eb4B&Y*C@H+oB%EPK$aPFIm*fc+sNXMx{m9 z882AW$9Uca41;vxUbCjk9Uc+*!tM}p?=P_j(cD5zT>&Q)@Eyywb6Rkdd7O% zn(Le6d(b!A_keGfZ>F!*cgcIv`?vhmmsE1W`@MIIcfI!s@B6gQyVhIoebl?i`-pd; zcY$}lcb@lQ??c`)?_BR3?}Ogi-dVKQv&FN?{Ezj5`MkNq{MGFJo^{lkX&%ALODUHU%~kDmIchB;QTA8-2UixQ&*{jWt?RwmetkR;netB-W<) zM(wLRi>`9xw4t&oQkn>Wo)waJ4iIvB>G$zfwG&&4qc(`?hBBGD)qtc~e$ zlWfy3lH~U_lVp#Y$@HZhQFAP9kcVofL?ziqzL9InW;K&j)6g0NT)JdU6gvn5n?-mP zQ^gKxC)G$zwhi&Eg(hCx!kRtVrbm2ZVNzeqK1q$}M>#F2v$z&S;>(HyN&on1o!oE# zLl@**p^lU!z2OJq=EZ+b7O@dFlYscN9YaIdY$R zgSN*hDGKp4%%YHiH|iN{1cOBw&o&wvhR6V*4BINwc^O?hEj5E@%kRZST!VbLs=9OS z3~E?0wD$6pmdbPtJIdMf5^>XTl*q*DZPT^{YRKkyr&JX63{zS=1N+M*vO&km*wV*4 zR#LINsnb35x;)$|z1}QujL8!=ZJ+IPl8eN9dIcV=hexa`lnI?%XP04VKJf;*4PU47 zU?>XtrbStpO|Xs&3{yxsv2#<(mFqeW^e3kR13luLywusIbJEVspcxgN@&*xoD3$Xg z?T`=W-%ZKV?9z^Yujtri9Qo#$VMC0STf5#??LjO_Ps589JS#&5M=4eQTo8^*Neu## zlVnD>>uHm`v)d*Nk>0&lQffGeO-VKLF!d<(^kM;i@v*$Vd#zq)%&=7uOQ`@*fRSu3 zg-zZ;Q%toj6xb$`Z1CJuCVB@PQ6zS`L=^JHSV6}K`G99YVUZ?xcF)C3e(WCh?KH8x zJ7sF2o&Ay-ina-jO*9UMeCPqt`b3f)#D7eeznhF%k0>mpLbYfGdfARzyXkfQC*QeMfqn~<*B~ov(ZCWjK$|btZwVeB?NqQ3+04mORb=6I-sNZo>x9Pz)nj}#ViQKWSiYVgPKU4namAG z$%6yZ#sr7S@5PfD{4Z9erIyN{4RbXvBGLk0RB}I3(9kY zTY?gjhO{v0LD}n;S-`VHx753g@qgbk0vJDR=%17>hy1G<()s`DhxE+9GP>L>nUiKVD$LjjE(>f#`EiTZa#pqHx3I8;-1)S)S@KS z@rOLlxKNaH@imumx>dR(nnZ^PL%wcY9+SHWbQy{+3tqp{1%qeZ+7MvqcWV|T(v(}9 zBLCE_edr1K%dL;5oP|6Bd01jQWKOWPi{NdFM0@%8@DyqAvhi)nC1`NDr>_?%+v7xW zgLK{ZN|lE04Gdf!$lr^BdxOqjhV2d5CVPTX}oA4WdM&jZ?eK(`>k1zB7m z|9xAXc+9~BJU!0ka{2ddnOI!1&QTp&6uHRbGH4IO!8o z;;0aVNrdF5qwD#>RD9r7sWSeK;+n-w1FZQFb9GiIK-Vd9$sJEt&tEaO68C{+tCAZ>79M(9eMuF{xyJm zwzs||axFg)0$5sv`S+TTLjRVdCUi?K1zX8BMHmX6mB%oL*n==hl5b2{0Ooc5#QOA$ zynkXk{VbPF%&C44^9RhwQ^Yg0#1Q%Z#7r6@f0-C+JH#<37li>Tt|Ev)%$7&=V5@W; zLj=Tx??vhvzr5n4>^rGp?A_Rx7#Cs0{c`T4e7ax0Jt>D~$loU2TK5an#aM8ZY%|8T z8bH#24!ZNON*46%FNqvE{jPRYCSSa(6}azrcQp|YGKrhmex8(HG?R@c*P>Y!y(ily ztiy3r3)51tT!@68OqXEzNc^moL1Rglho?59lnV3i`h?+f?#ZR+2O*xqz~V3ny$cgiEv66mFh&!%mobVZ;pt#|N}#WH?1Se#mr zpWA0V(Qs7IRgE3t2(glaTZk;ivT_<5_F-8*tPVI>N`O&mNfvt1nUm+ zCTmJrATvu7X@P82+6|`2w9*DhpDyj0+68MClN~W7%$N|yjC*NTA-c%m%!z0;eP%zT zhh~n;$P9Uc4uzN(`XKngc``#mI~vr2oE$XErjIJ_omJmTf7lmF)KkL@6Tv>H1PIO3 zurSS69&D9d0PqxGhdHs3!0K?!sQ`FzPJ3D|yU)pu{)N0wX{i|$N|w!On*16IFzU{@ z;TXMR$sJI#Z*w|M3lH0F&ZnyPA5;Egi3!^ zrJF&eUzfW*kc!dr(YZD0Nx5NeCenR#>mvPrZgTpQG$}a2&EzW&&7<|LofV{_9guLlIuk$AZu-Jk$9GkB7|x&XWBk9x|P6c$AsqlqF7D&Z@U{huwIf!x=o# z;UXRnn@;%w-TpN^(EfxaKCm=#VrQl?F9SI8=MSRAa^?Kylp_z#p93p$;DX-BuUpV@ zaAwGI7;u@uCu3|efM^vL@c_&*HIoByTWM%_G4O|EU%q&b#2c^?#h;*B=R|6e_!_;P z*;}zY+7va!W3tV{yP`2_F@`sQ(9bV?fS!|WAIWL*9JMk1dIz1q!g#{YC6BD5zbkSV%_SNqUwt&$-j0tk_a#xw0apjj2b0~-uHh|zd$d-IzbKfFLXdNS zTgQwQjrgrKn5-c-Q?Q2ap%)ne)St3&aUuO7A6;Av0%GgpTjF6Jg^3w4z{0{rJR@t# zo;5d-HnCB_r8OXs0l*YFL(b@VBiFEr$C`?_zz*1cR()1_xI7@Xn6SG8qH!2DTd!DX zePGhQ5LgAPS^?1#1yxzuZAraGff9MIkSIR-riC1498Oqz{~4Tcje-_F?T|zsQm=EGwdWWN3MgHAK81`z^1L zcG6|QQP?0GiQk6t>T#BtMW`=XZqtjhe0eBu2UIwW2*uUM3ZoCAM8Gfu?6S?4oV4L@ zc*F~YGUQ@7@r$&e?QcS+xLeYSdeNP)%%k~=C0Nf}D;jkHXuxqx7-F2o8hT#II(`(G zg=whrM1+Yp2Ggp9Fw2b>WbVr0a1<bbT# zTTYl$63E#AE_EnoQi1$s2I!jYgID*df7Z0}uvoCp;v#1+G@-W%FAzZFSZr7VU7(8^ z(0&fD9?|2I%T728Z9@O0FLwS1mf%-<0}Z-E>g1ENBp@6toe`0#Pu{<#HaN@UYr=5b zyuPMk!oM}1M~T<83&R7Q;l}NcPo=DvKr!%0*q+wrS>90+uS3<=3bFQLK;*q9SClsf zN8Vqa4kh*T@|N_fOk0~-z&;fW)Y{yO0i1nSkyxOW_p>_3y86#nL5TO9OXiaujoG2} zG)iIF>K^lD$=do^jj^)EeW5_GZ)6~|m_cC!t{2S51C!p_O(5cfYm*xT0mUmIOinz` zVGnCOUe;03RQw1n(y_X>(0^8**e~PPWyiovB9?lg@)%;T?6z*bE>Q3f>4IO^mD1bt z?k8-d%bsYO)GAb+1=nQgl%S~?(TcrsVyFE0i6-=xj9Z^fZ&qZlZ$WfG-tr_ILNfGJ z9pBrYuvgTTy`P#DbrXC(UU8Fr|EcRjH--F|?oDucp(Lc0C1`u#JNP!YIv~3|-JnJa zw7+l^e-yfGI9LStQ;MAVbfHMm=5{n{B84ZP?iu@@2Q0u~C!j|hl}$H{%-BsZ)*D)W z@GA>^fVo5j1sSQfZOEnF@~aIE!8a41XXDv#4gnA{OAx+;TmABqwg^Mfb{=w=_Ze?UuXXWE=k6Pch0Lxpq6~F{}YFlsm zRQ|NBbB_SFfn9tCJC6)d4|b-klpTY}!0R2^EAbgPNJPAI&Foobq{t~lHd%aCF>!l6 zqJwgIg-u_`ofSFAe^JpGY0VwE^sel)qq%=5{2hS*Z?bGh$BK7%_^C~^U28*8%zxPp z%C+7iAPU5s&^1i`U_~BSoSKsXt3@;5b+d}N7fdq~gy&RmZ5Hy>M6F=ZgCzu`k>v1l z3T2%a=h8{J`NgJ9Pr43btOhO*pn;7~dBjNyYTeO+EO!JnONIvaLc~>6d+A1kuWi)M zR!CRwOsCuAi#yvR{dwoe)a4Y8axTR|dR&StObeykH6f=dt59$e?T8-KLAFu{MXBG%jU0~Nle76v+6zG3}j$5%>vA2 zwO4J~_0=30wi91%T>UL?5Kv|t0PG0ZnIgBoT6^Rwys$WB3l>xc|H~>0*1{-gWr`JC zYjZ6UeuckpQZNeD)su`WqX>Q^Hi{x9k{@2rD{q3|Dw^yWOLE<77wC2=UvG=_o!2vw zeyh{iHymJp-!}$U|DMWO2J!+O9_D-b{2Oy54!K)&4w?*+OT0Plw2}i zXKDImie7F7M`Dpz`(Uy3K7hLE7(LT;AIHmTB)XWJZQ48|KXV#Wlq=<+nL*0Myjfcg zcym3@XMTUPA=0e3>id4AaE$m#4tT2!ewx#76{h}7>@;Ol*$3TYGAo5qY;cR8Wv6|~ z@G{)A@9Bsc2IY69^zYBU`nBEuIVBl(fc>Hwa2D7B-51#a7&8x(0bCIcLjgT**sqIh zJR9H&z=SiA(H)3dOa5`N3(h$^zSB158l;`|&NTW>UV6vI(V=}P zsoGkWxePq0<)T~`9Ll0SvglAMMD~M+TE?yM*$L3ZVNZxXrdTca9cn?p%D)d~AWePO zM%(u9*6zHP_29@j;GU3ueo<}(Z2^oA2{X@*W|H#Rv387IUA(1zTahdFJhx*%QqeizSN6AD$c;{~3DRhdOq8CjKCT9sK=m04YtSyz== z?`CSq?H_E!@jV6|e&Sy_^#BS6IE$HQAZ8vj$p^K{RYAPsnriv=i8l0<%sM#(=@Tc% zVS?39Wu{$jBR0U91^DXTOd0iLuT%H`kM*CNnuxImeE168A>&VXLpu0$Yov=#w?}&L zbVk;d(Vy0?GMHIfaT7&h_I_jL;-ZW_QiQKHCU# zqT5+j`xsPHD4{IP*k_>yxG06mYDN92`sE?M4rE}pyRSfvf3M)u7?k=L zL#9o$O_-DURHn;?Ze8xShQw}Hk^9XGs=mw<;!#e(n%>~rbLYO@k{Y3VZIZbQgV$rj zHuhpZ``tGkezMFwaRQcsDVBhhi67xW$fsOBf8f9cfubKQ=fp{d9*!uG(OMq2UoVe- z-;th?;zE6TOt!m_3eWAp3k^EdfhGYDuU9nSEdz6e*fT{1g<;@Lo-|WwWFX zmy(|h#h~=qlng+nc zh^3y*)ACFG)AEC5`L(9)WVTz)juY)yJe7o8sN7woD0CDCh#K##kPv=KMSh6g~HU%IKjuECsSE| zdIgHCb_PK2oI(kd1F=PZ`Ab`P%EG_aDaZ`*He2i(4qI?xLuCTrfa4EaSj?M*LEw}C znu|=hBY+!KO)-|PKx;Yw*W9690cuPw9fB0{O&{3-Yp^RAFM@EEMmVj{anot+@BYt! zgLS$~71rq&Y5&$OhOsWn#_1h;$w|L4&TaVZ4ira2Ud6h_>Ay3^4gEb0Cd|FRPie-8 z=4k*s2zX{XrB?B#5E!wUXXU|_1i-rprL&kR+gF)?)S|y+r$1_gbBy>SEBXU0L2uD; zx#*9a>MP7mn1mk$@48M0$anro1*7=#kGnx#xBi*ar4Bv>>hfT*#1Lfll~XL&Beqi5 z%S47jFB6#$<(G*}zsPt0WFmw6!6h^F1Cgc6&VMz=qR0Q`5*p4E?3#K|dH%1i)Lqv9 z+pgI?oNOme4=3eXWx!($-~(xQm&5)p1Y9=!-QTx{InS!a|7?QGeDgmAv{L@`PmAmo zCgTkIf(NjJ>atgu5zc=VvdKOd?Tm8v4>8*=1vW+ycmyx84Ad*_R=ouAb+{kk2);v25$D`(lYAPqyuKa~{XXZf-90!&%8$6B9+f323qpn(NfxME*hOj;!R`meRJ_PS5hJ}~4Obzu=%l3`tsoNH{Ob81xKYTrmlih2-4^>=9 zG#5{(gC6Qg-Bq-g>H{t z(z+E|`ke%~**PDLsg9@^aH{SMe$@CyBXvs@b?%m}3t-#9yk{(F!}HJtv5;eK09^Ng z1Z8G-=SPF%ZIJEeq6|FJP9@r@PogMs@U_jUyA7*Q2l9a6sydju)ch~Qczbf#6ehvt zu3W}fEZr8tMXIl#5{K}YwKsqqpRPeL5l_ZfHFlIPjdDw)s!IL3l;eHCQG$r4&_v)& zXQ>1_Kx9|Cdc{vk1!#~{RZEcx>Gd)|^kFIF9~6`{cU8d+Cc=Q>+1Qf-w8(PzZ-hz> zP-|MOt`ATqPO&EjC=s9s7&+V#jEgPHN0katPgC_G%cb` zbs?JO#bI@Dy|@YhbYS&xkU9kCGje2`zr&}ejs&R>HBoj9)lPc#@y`azl1PF1Dgu;su2s?*QX>vvX+&d zVreu~VD(fSeNGRl1%giEZFF^dI$;gm*iQAx={~PctX83TYSs904^TJgoQ1Owtdl)p zF?^t6h;aag*2BE|$U2{8L8_V^PkkD1G{Z4W20=z}Bxk8F-r_`icOaccT-?<}`^OR} zjgnM)0%FHEs@w!Xt-acpK#enCdib5vruZ6M&p2V>H#ZbOh~&zI8q|`4x)k+X(m#=& zLZF5EBZ+RKR5di2l4+fqnoJ$y*CKL*HIK6qeOf%J_9lal%hgZG)HF2-?iJU89vkcj z%n`4FckoHqld5A1i2t}k{L{eb4$!D@G+>Gj>Wvg?5`%+7FGCyPYOF4%P!c_SwG)lA z4RX#`HBnpBsQ;K`K6T(K7#a8kFv`T?CpOkL(%dr{Kn3nxoV>9I9$rh(iYM5@&=3g2 z=gScVeNg_8&hoe;GDyQxdWI7;pJ7|hiG_>j#z@nfng^q;frxD7)9bv zH8M=I|NEN15iH#=4I2sXH~3>P@0T55I!*l zaIs^sGWpPxzqd_|u1zbcSXo&#ALzR%3!G)E`Y;PJ=vL*eLoKk7wsmNOnpT&Zp=e88 z0IgMB$f=}yRRv>chnilOnpRbhtp}d*oI*TB&%k!Xz33ASbsBMxZVNt|!r_K$m`!y; zp->vwR8WLM>G^H>2sM;sr`hSn;pENXFoO9~)x>NXWPhv`l4d|xK)UZGU3ma-D*}{$o+lfKERGdKgb{x>+lLnMn z;x@uJL}MKF0eN5{r`k0zb3}I6#4J;IexflPZhX4Q#w85MvCKfL>2kl$8>k-$<^veI zGpr7hMg7aL8wFMz@1FIZq`wb4!~J3JMf$6)ITW@h z1WPG$FNMG933K=yv_L#!po6}se#`-*NKp+NQE_yL`DIL)P`tJgh3G}~Mk8tn>V|f# zM~CPG>kYFSl%_n5K{sL5rZE({32JI%%BM>8QezrPj;hs!)}ijTCYZuD6UJsDHZTEO zh?k&U9UHKfOXKWnVym*6(%bZfI@FYI#|oKx0Wj6E8HGV#w>G0Dcr0p0#~{i^HK%S- zAqFB^Y;R5tX|wvMIn_yio`4txj={FtCapViZlg+TLAO(5HLC>;N_IsA8U|d9fKtJ7 z{U!Bd3tH)Wo3PVwE7_8|VC5gQq+0ckVIYt(d?Or21K@PfUR)3CXA-Xfn6cpX;$@ZI ziqcc=0~Yb2q6VTfViSlcmZ&2zG!)rb!94xNV!4{xifYj=Ro;p+;&$o* zwL^ocOdV`RjqAL`g(l|g!(bj@eU!#|L)*Bu);;>&%V#Mp7a7=46%f|k~74w>!lnb3{PvvX5&;#h->en_j z438Vz(tY%%I?|Q~;!&?1^@wSO^AboC+ZrocscG#fiP0Ixx;=HHeQHa4NUeP;r32kS`zptG zfCke1F4o;x5lH4RJg8ukf*eu+=?HC=L-2^RKF&t!mDPzlmE08!o8m6iMq>LSz8M|> z!F?Rp$DQ3KoP#MLCQWh`Y7q`LH2@+K6GMcji6a39H9(4F$h#+bwMA-4{y>G?2P-%%^_sR7>polh@ScexAiS&YM6=3Vtj7wQVpi1UL& zI;=9fQm0;rJa#PWiU*0)gGMlQS5brI3Rd)CPngoLs@z^+n@7~>Ui4~Qs%tZNL2FJxyjR((H^ma# zbh(bETz}jHbx_}^@IZ(<=2WNTE*vNFGM=))tD$~q%?4R;O&nk2g9ajNqQqeSwqZwK znHgjpW)|o}ed!f7xDQmyqv~`Y$_T!qZLMf@dRck;QV-t|aDQycfWGu9!QSWxb`u!P zc&tY#x*lxc1BIxNUV%PWm)a`aA7bX18r2_)*eUfGd@FQPJ>MUa=!E*JKOIEf3j-)G z)C1jEmLe>z2VYMNd3e8}6u}#cS&I)<(hbx#BLt0=FP&*#Y9b)U!YwqtLa)eD_uN1Y z0*I^e>JU7&@dnC54BqAHlQ&S4x}gxu2V8&%#RLJPnBp)(_n?!Z7*sSl9INA1RO5k^ z755pdGVsT89C<*TSHlNV{TiQopdldu5Jo2RW9+Cnr`8Ol^lG0#?ZzUQrv$`VwQnHx z?DVm=T%eQrnQWrO`#4$F1Bx?TgWtALRiMQY(zqVF37oEm}z{|cgka1@3g_g~& zv_%sc!*rfJh_Q;C&lkZ_$hBth5{{cXvp=Az>khD7qc2Y%byys%L1MN(_Tp_3VGjp6 zL3)vuXM$`S8HTt=HNhP;8mflfM9q7@%V8-7Yphz+imsv15bC+#9JQ=Peq+T&6y$e}4rQNR!g;ep`Ffi2T`5H*08m}#Bo!>&a5 ziBU~rn!0lkbhO!O-XIthS?c*g6sCLBi9sZ3hAJLRN9k_Wc?b-H8S0K9G!{4n4?cg99A4lZ{J%@L@il#a7_T zi3bIiC`C)gLreTyO&mroeIN1lpnKKEVUX+hs>8!59hXqREh3jtz`GcYdMd)j^|fK}H|;Fsc1$tc4z1EcFpFG*6sMs%@ifF)&=p9i`UtXP_pzT5d&S>7 ztvZdMAuubKkD&KqAKwZ6gg#g6Zlih82MDcLM?9c%M}qseRudO&>aGd#tF8v@vPL;~{0gIq+O z35`Ka$IVo`ygs0`{u0ly8FS)p@u1knNyYkZ+!JFAR_h_B0!_)u`vMVP!&}~t-63`RC9TT z4)LxAp1}wi1@$VHIfX7|2e2#o#D7??<{@$Q3KIZ3>8VPJ0PdM;LlG^Gal+9Bh!y6b zz*N<3EY-=Wnp!XaHYvn1K9$Dm50)nFmy@Vk-2^BJqbRDyGRO z__&zTQXT*iA=pxDGT4|Sq~DNH3FDyE9Z}bfqxyn5hhKb)<5BQ=n5t^dIBE_dJpYWc;b$P@x#ED%H5v3b!YEf8yrD}-QIihscQbhtg6zELjlql2xW^SP*FVlzyp zSrUJ_r}V#T4Dz zchX$?Sv_>8_E^1nC$)!H_{!H~}U}SWTZm1$ewMfqHrVArV&b6REG~ zDCb5^q^@pm^F-?D$qAzDuZeJY>Ds(WG}!w$ap8qY)KVRtM5&&?xF25oc>cVc`-5{! z?t;HLtPbBrHEDC@7k5ETpK!mdjUf|n~*7=mAtRq9k~**P+ROG_Mmf7K9py=shW zDlZSR;Oaq`{+!u-v+>G2@Ot$iS65aI^4Q(fBC%>Bnr=b8PB}tNRN>uFWZWfjYm_Cc zNq5uW#DB4P(9qF(vkO0U_HL@5;8tA&6P11sHH`F$@QteFs9UbCx@HAx)jibUa<6MA z_TfF$yGF0EfNk<*CwU5^GCxHx)&5@SuS?Xtdtq<(QfKdl3jdg@b00l~x99Go)N1I( z#!glH5ALIL)qXbDy$~$Zr-!(gq~5xpx>GY1H;tP6n(Zpbg;lj_29(;l>cR}F-&Ox^ z0*o2QfMSI^?0yjl<7W`UhM3JGe{=M5K&-P8X!`)u(P1}A7C#U29?VzaSKX#jZOT_g z_y!)U`SFlCJPlGNU!_flb(gQ&OsBSu^BLiwAz69gI;K7X#QgD#7OcDEYrO~@g2@b2 zpRXRDPPTe?Iwe$#0|Q45*ge?%YISxx6(qe+!3RhSKP@R-)*{|l9cDmuJ)}m=pq4cs z0>MVH#uy=8eIp~N{#8PcCC##&l91^@wqQCIv=yz1&Qowx)eU?}?(4&<9bW0Q8eU47 zzIgss7mL}}1EkyhfhENYnlte5*5;u$Zq1;nCk#rcAJ zp6n4DP{_(DycmXf+8gG(G`NwbuQW~>3zE4+qP`mX03FY$&+IVD*$tix=gnBu6x-f$ zRZaTM2BM}`E`{td;VJuY4)x7OTL&>Zk&rMP_(HT14%Yh5r7~(# z`QcosV$o1KynQy!<2Xn7GRbLgW>Bd`hC9oX&yBT zY>j~JIn`)BW#b5ir@v$yWIkuInc=!+>$g#uu+`Vr1cP}zDKt$EVdd_G4E|CMC)s*V zTq`Pgw>I!qKIbeSTf8zK+rCI;EP&O%NEIxAq+g`QFM!dpNUcGk>ambAtF7YIL#6RJ zKO10lQx{V6%s*jmIKRUd`i*ZNV5{$8&Bg01;>)zQq4qAI2P^k2gvt(o=jV@5esClo z9c%26s>LDz`;w_{UPNDZ`dIJQpvjYX^1KQW!Ed(u9z~fr3q3RxqfrYqiWX1?v&}5F zk$7UC*5I*2LgP54zLQil}7M6v4m1W%^6L8N5G0M{0JLt zTdmF090M2Slp=;--LwSo?4#x`p>WI7T(8@Ui>&oSf_@nrw%C2janKx#KN}}!Sl!mD zTOF0^%n~X~YR(HlZ|9(|C=>)uv#JjePFqSN=wtQqQb?Ll;O$7oWwu~0>Z9?UY@X(I zkD=QcHU2T2e>GQScoUeW=`2Gm91gq@zSc**_!!+9*Bq~l5T9r2n6`_mo`QIot?pJ- z(8%RD+zlhx;%{&LzewHoAXsE4U&?aUiusvW-aKSOP zd>Q4WpZ0DF$K+bcW}XT8&yeP^0ElSuiTY$2)o6%W)wgV|JK;GvR_|#53<;38Sh3U2 zUN}$SIIx#fBY4O9ET^O(0LIwA&j;o-VL5f}_#$ZAa!R9^ijUxD#Y$*8zR4yy)03#> z{(c7H3?i2X46%ssv7r*N*lNmJs*MBKV^DSP0()J|upz^eL!W!Yju24YA$*Stqdqx+U&2qf6N~?YqO&fT3ch zcIYti;N^FVe{TqxEHNFz=|CRvfQQDyf+6nrGdRvf_PyZ}raK|& zbII}Y4Ch5=xB-`-9QDd_8kkhyDSuG^;uDA0^X7v|8(`86RzPUgSJ$sVR6~6=(S2LC zg3`0=^WkLq9O9p#X-}s>1_14OcE8}jr&rM0j5hF%wE_EW19iR)wzLfl z`Zi$UZGc>DDp#zeXu@_rxr!?B7`mEntbX!oa#2z?aQuizwGMv%dWI1_2UNW1*^5w zGn5{!RU|0SFlI(RLs`92`2G+W1GHhBvhXhn1lwZA^~dn*1~?veXQpohiO9_G!n%^4 z88kzlm=K>;_I-lZdvo@ht{Hq7KZbzc+|ZZiHQxp{Xx9-g14DMQ_VA0kZZio>wd)wXinM%ZB`qx8=YIHlkcB#yH1o2|1)I9sN(hdDc6XW!-QBAq?N z*(ExAkh9Bl_5f#B>FnE_Ek$4{iT#|Nt+V^Q!5iUf0{4X!C<;}s-a-$M&u2KZNLP)H-xRvgR=HOMZV+$JTgl#l*Ftk)+ z_Q1ThjcEi=(dA!KVG|WK$$UH`cp$CJR>jtu99yeHO_3th6t_U2mco36$izz>l>tV9 z&*4Z_SE@U<(;ZYt9obH`Q4ICgExx!NifN`Qtbos#xu!dr25M>ry+V(wRy*k7*iTsX zLyap44(^~d|Cay|;PjRHeg~yA{er=TdkB~*)FfzuS{oIg>qe}Yif`E)Q&s*=Wt-=5 zXsSddO`!j%nU&C2zvf4xdaV-ElWxoleh5!}S4mB)-fi(+W%i5o4F%VbzAXT<{Z?h} zq-C^5y||NF#h^SIv&2-z8uiCc$_qXoX(`aM>n^IG$JOt7&*^khoFrjVf4HTJ1dXurt=>9w(^D7$h6|(4A!XTVjuXK zT=~Xc`op9J>gBh9!}Hb2w=jotwO}9RWn2L6*ucCv4DS*84I%c30^m3GpM5wMC|9-i zW82Er-2K$dQw|AGd2l~{PxOS^eSpFln@x^Lf~BIP9v}xomPS;*kNK?n>i`XaeCvCV zGUFqc=B~PmR9SkEekS@sO*sS|@dvf$5Y_ekK*8E-?IB94{P+-!CfJVM57XxOr9Rh( zj`=}(xBX&?@*SZq?bqsSbWjKyLzq~c2nY$`7K7Rme~x&5j%=v_{{spHaD495@9O&_ zRJ&Hy0N|=odJNl-A4D?jcs-12dXzepoHn5fyKWmJi+>~y20kKy3=!)rWKpyZ0sC;H z@^d@fUi^HW<7x4n9pfDJJM*hKrt?rW6a}3#+{1Q0#|Yvv%lVE2C2el^i=RivPgx?W z16LQ3$1hn1kT1bcSvsW%14Fy{0jCCcTNc1iBH7N`fRm2LmVkqJ5a*SElZD5-0Vf-e z4+HSL<3j%MsDec1RiLM6B~(tP|}7 zMU=BM=zyCCo!5d+j1w!OfN1QLRAY})ZlGINga0l*r;ePUrs~6^)DFV7=6f(EQq+|9 zXkZ{!=DB&p+IdoPMOiGSiASzX;5H~9H(8hQZ4uZ(GDmkTc9FIyy^+r zXp;hdRvjT_uYW)jYOg>bLNLTeBz|rY{}BSDV`W$%rr