var mozjpeg_enc = (function() { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(mozjpeg_enc) { mozjpeg_enc = mozjpeg_enc || {}; var d;d||(d=typeof mozjpeg_enc !== 'undefined' ? mozjpeg_enc : {});var p={},q;for(q in d)d.hasOwnProperty(q)&&(p[q]=d[q]);var aa="./this.program";function t(a,b){throw b;}var u=!1,v=!1,ba=!1,ca=!1,da=!1;u="object"===typeof window;v="function"===typeof importScripts;ba=(ca="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node)&&!u&&!v;da=!u&&!ba&&!v;var w="",x,z,ha,ia; if(ba)w=__dirname+"/",x=function(a,b){ha||(ha=require("fs"));ia||(ia=require("path"));a=ia.normalize(a);return ha.readFileSync(a,b?null:"utf8")},z=function(a){a=x(a,!0);a.buffer||(a=new Uint8Array(a));a.buffer||A("Assertion failed: undefined");return a},1>2];a=b+a+15&-16;a>na()&&A();C[ma>>2]=a;return b}var oa={"f64-rem":function(a,b){return a%b},"debugger":function(){}},D;d.wasmBinary&&(D=d.wasmBinary);var pa;d.noExitRuntime&&(pa=d.noExitRuntime);"object"!==typeof WebAssembly&&B("no native wasm support detected");var E,qa=new WebAssembly.Table({initial:208,maximum:208,element:"anyfunc"}),ra=!1,sa="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0; function ta(a,b,c){var e=b+c;for(c=b;a[c]&&!(c>=e);)++c;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e} function ua(a,b,c,e){if(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&1023}if(127>=g){if(c>=e)break;b[c++]=g}else{if(2047>=g){if(c+1>=e)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=e)break;b[c++]=224|g>>12}else{if(c+3>=e)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}} function va(a){for(var b=0,c=0;c=e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++c)&1023);127>=e?++b:b=2047>=e?b+2:65535>=e?b+3:b+4}return b}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function wa(a){0>2]=5332368; function I(a){for(;0>2];var c=C[b>>2]}else Ra.aa=!0,O.USER="web_user",O.LOGNAME="web_user",O.PATH="/",O.PWD="/",O.HOME="/home/web_user",O.LANG=("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",O._=aa,c=Ia?P(1024):la(1024),b=Ia?P(256):la(256),C[b>>2]=c,C[a>>2]=b;a=[];var e=0,f;for(f in O)if("string"===typeof O[f]){var g=f+"="+O[f];a.push(g);e+=g.length}if(1024>0]=e.charCodeAt(k);F[h>>0]=0;C[b+4*f>>2]=c;c+=g.length+1}C[b+4*a.length>>2]=0}var Sa=[null,[],[]];function Ta(){return 0}function Ua(){return 0}function Va(a,b,c,e){try{for(var f=0,g=0;g>2],k=C[b+(8*g+4)>>2],r=0;r>2]=f;return 0}catch(n){return"undefined"!==typeof FS&&n instanceof FS.ra||A(n),n.sa}}var Wa={}; function Xa(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function Ya(a){return this.fromWireType(H[a>>2])}var Q={},R={},Za={};function $a(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 ab(a,b){a=$a(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)} function bb(a){var b=Error,c=ab(a,function(b){this.name=a;this.message=b;b=Error(b).stack;void 0!==b&&(this.stack=this.toString()+"\n"+b.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 cb=void 0; function db(a,b,c){function e(b){b=c(b);if(b.length!==a.length)throw new cb("Mismatched type converter count");for(var e=0;e>2])};case 3:return function(a){return this.fromWireType(Aa[a>>3])};default:throw new TypeError("Unknown float type: "+a);}}function nb(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=ab(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} function ob(a,b){var c=d;if(void 0===c[a].Z){var e=c[a];c[a]=function(){c[a].Z.hasOwnProperty(arguments.length)||U("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].Z+")!");return c[a].Z[arguments.length].apply(this,arguments)};c[a].Z=[];c[a].Z[e.fa]=e}} function pb(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].Z&&void 0!==d[a].Z[c])&&U("Cannot register public name '"+a+"' twice"),ob(a,a),d.hasOwnProperty(c)&&U("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].Z[c]=b):(d[a]=b,void 0!==c&&(d[a].ua=c))}function qb(a,b){for(var c=[],e=0;e>2)+e]);return c} function W(a,b){a=T(a);if(void 0!==d["FUNCTION_TABLE_"+a])var c=d["FUNCTION_TABLE_"+a][b];else if("undefined"!==typeof FUNCTION_TABLE)c=FUNCTION_TABLE[b];else{c=d["dynCall_"+a];void 0===c&&(c=d["dynCall_"+a.replace(/f/g,"d")],void 0===c&&U("No dynCall invoker for signature: "+a));for(var e=[],f=1;f>1]}:function(a){return ya[a>>1]};case 2:return c?function(a){return C[a>>2]}:function(a){return H[a>>2]};default:throw new TypeError("Unknown integer type: "+a);}}function na(){return F.length}function Y(a){if(0===a)return 0;a=a?ta(G,a,void 0):"";if(!O.hasOwnProperty(a))return 0;Y.aa&&X(Y.aa);a=O[a];var b=va(a)+1,c=P(b);c&&ua(a,F,c,b);Y.aa=c;return Y.aa} cb=d.InternalError=bb("InternalError");for(var wb=Array(256),xb=0;256>xb;++xb)wb[xb]=String.fromCharCode(xb);gb=wb;hb=d.BindingError=bb("BindingError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},$:null})},j:function(a,b){b=T(b);S(a,{name:b,fromWireType:function(a){var b=V[a].value;jb(a);return b},toWireType:function(a,b){return kb(b)},argPackAdvance:8,readValueFromPointer:Ya,$:null})},g:function(a,b,c){c=eb(c);b=T(b);S(a,{name:b,fromWireType:function(a){return a},toWireType:function(a,b){if("number"!==typeof b&&"boolean"!==typeof b)throw new TypeError('Cannot convert "'+ lb(b)+'" to '+this.name);return b},argPackAdvance:8,readValueFromPointer:mb(b,c),$:null})},f:function(a,b,c,e,f,g){var h=qb(b,c);a=T(a);f=W(e,f);pb(a,function(){ub("Cannot call "+a+" due to unbound types",h)},b-1);db([],h,function(c){var e=[c[0],null].concat(c.slice(1)),h=c=a,k=f,n=e.length;2>n&&U("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Ba=null!==e[1]&&!1,ea=!1,l=1;l>>k}}var r=-1!=b.indexOf("unsigned");S(a,{name:b,fromWireType:g,toWireType:function(a,c){if("number"!==typeof c&&"boolean"!==typeof c)throw new TypeError('Cannot convert "'+lb(c)+ '" to '+this.name);if(cf)throw new TypeError('Passing a number "'+lb(c)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return r?c>>>0:c|0},argPackAdvance:8,readValueFromPointer:vb(b,h,0!==e),$:null})},b:function(a,b,c){function e(a){a>>=2;var b=H;return new f(b.buffer,b[a+1],b[a])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=T(c);S(a,{name:c,fromWireType:e,argPackAdvance:8, readValueFromPointer:e},{la:!0})},i:function(a,b){b=T(b);var c="std::string"===b;S(a,{name:b,fromWireType:function(a){var b=H[a>>2];if(c){var e=G[a+4+b],h=0;0!=e&&(h=e,G[a+4+b]=0);var k=a+4;for(e=0;e<=b;++e){var r=a+4+e;if(0==G[r]){k=k?ta(G,k,void 0):"";if(void 0===m)var m=k;else m+=String.fromCharCode(0),m+=k;k=r+1}}0!=h&&(G[a+4+b]=h)}else{m=Array(b);for(e=0;e>2]=f;if(c&&e)ua(b,G,k+4,f+1);else if(e)for(e=0;e>2],g=Array(c),m=a+4>>f,y=0;y>2]=g;for(var y=h+4>>f,n=0;n=b?b=wa(2*b):b=Math.min(wa((3*b+2147483648)/4),2147418112);a:{try{E.grow(b-buffer.byteLength+65535>>16);Ca(E.buffer);var c=1;break a}catch(e){}c=void 0}return c?!0:!1},q:function(a){if(!pa&&(ra=!0,d.onExit))d.onExit(a);t(a,new ja(a))},p:Y,d:function(a){return Math.pow(2,a)},a:A,memory:E,o:function(){},table:qa},yb=d.asm({},Pa,buffer);d.asm=yb; d.___embind_register_native_and_builtin_types=function(){return d.asm.C.apply(null,arguments)};var tb=d.___getTypeName=function(){return d.asm.D.apply(null,arguments)},X=d._free=function(){return d.asm.E.apply(null,arguments)},P=d._malloc=function(){return d.asm.F.apply(null,arguments)},Qa=d.globalCtors=function(){return d.asm.Y.apply(null,arguments)};d.dynCall_i=function(){return d.asm.G.apply(null,arguments)};d.dynCall_ii=function(){return d.asm.H.apply(null,arguments)}; d.dynCall_iidiiii=function(){return d.asm.I.apply(null,arguments)};d.dynCall_iii=function(){return d.asm.J.apply(null,arguments)};d.dynCall_iiii=function(){return d.asm.K.apply(null,arguments)};d.dynCall_iiiii=function(){return d.asm.L.apply(null,arguments)};d.dynCall_iiiiii=function(){return d.asm.M.apply(null,arguments)};d.dynCall_iiiiiii=function(){return d.asm.N.apply(null,arguments)};d.dynCall_jiji=function(){return d.asm.O.apply(null,arguments)}; d.dynCall_v=function(){return d.asm.P.apply(null,arguments)};d.dynCall_vi=function(){return d.asm.Q.apply(null,arguments)};d.dynCall_vii=function(){return d.asm.R.apply(null,arguments)};d.dynCall_viii=function(){return d.asm.S.apply(null,arguments)};d.dynCall_viiii=function(){return d.asm.T.apply(null,arguments)};d.dynCall_viiiii=function(){return d.asm.U.apply(null,arguments)};d.dynCall_viiiiii=function(){return d.asm.V.apply(null,arguments)}; d.dynCall_viiiiiii=function(){return d.asm.W.apply(null,arguments)};d.dynCall_viiiiiiii=function(){return d.asm.X.apply(null,arguments)};d.asm=yb;var Z;d.then=function(a){if(Z)a(d);else{var b=d.onRuntimeInitialized;d.onRuntimeInitialized=function(){b&&b();a(d)}}return d};function ja(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}K=function zb(){Z||Ab();Z||(K=zb)}; function Ab(){function a(){if(!Z&&(Z=!0,!ra)){Ia=!0;I(Fa);I(Ga);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var a=d.postRun.shift();Ha.unshift(a)}I(Ha)}}if(!(0